From 34ac6533f45765513c4b8512ec45fec42a591979 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Wed, 1 Aug 2018 15:29:47 +0000 Subject: [PATCH] [llvm-mca][x86] Add SET/TEST instruction resource tests llvm-svn: 338576 --- .../tools/llvm-mca/X86/Atom/resources-x86_64.s | 181 ++++++++++++++++++++- .../llvm-mca/X86/Broadwell/resources-x86_64.s | 181 ++++++++++++++++++++- .../tools/llvm-mca/X86/BtVer2/resources-x86_64.s | 181 ++++++++++++++++++++- .../tools/llvm-mca/X86/Generic/resources-x86_64.s | 181 ++++++++++++++++++++- .../tools/llvm-mca/X86/Haswell/resources-x86_64.s | 181 ++++++++++++++++++++- .../test/tools/llvm-mca/X86/SLM/resources-x86_64.s | 181 ++++++++++++++++++++- .../llvm-mca/X86/SandyBridge/resources-x86_64.s | 181 ++++++++++++++++++++- .../llvm-mca/X86/SkylakeClient/resources-x86_64.s | 181 ++++++++++++++++++++- .../llvm-mca/X86/SkylakeServer/resources-x86_64.s | 181 ++++++++++++++++++++- .../tools/llvm-mca/X86/Znver1/resources-x86_64.s | 181 ++++++++++++++++++++- 10 files changed, 1800 insertions(+), 10 deletions(-) diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s index 0c5cf63..9ed1651 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 2 1.00 U scasw %es:(%rdi), %ax # CHECK-NEXT: 1 2 1.00 U scasl %es:(%rdi), %eax # CHECK-NEXT: 1 2 1.00 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 1 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 1 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 1 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 1 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 1 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 1 2 1.00 * setne (%rax) +# CHECK-NEXT: 1 1 0.50 seta %al +# CHECK-NEXT: 1 2 1.00 * seta (%rax) +# CHECK-NEXT: 1 1 0.50 setbe %al +# CHECK-NEXT: 1 2 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 1 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 1 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 1 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 1 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 1 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 1 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 1 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 1 2 1.00 * setle (%rax) # CHECK-NEXT: 1 6 3.00 shldw %cl, %si, %di # CHECK-NEXT: 1 6 3.00 shrdw %cl, %si, %di # CHECK-NEXT: 1 6 3.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 subq %rsi, %rdi # CHECK-NEXT: 1 1 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 1 1 1.00 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 testb $7, %al +# CHECK-NEXT: 1 1 0.50 testb $7, %dil +# CHECK-NEXT: 1 1 1.00 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testb %sil, %dil +# CHECK-NEXT: 1 1 1.00 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.50 testw $511, %ax +# CHECK-NEXT: 1 1 0.50 testw $511, %di +# CHECK-NEXT: 1 1 1.00 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.50 testw $7, %di +# CHECK-NEXT: 1 1 1.00 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testw %si, %di +# CHECK-NEXT: 1 1 1.00 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.50 testl $665536, %eax +# CHECK-NEXT: 1 1 0.50 testl $665536, %edi +# CHECK-NEXT: 1 1 1.00 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.50 testl $7, %edi +# CHECK-NEXT: 1 1 1.00 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testl %esi, %edi +# CHECK-NEXT: 1 1 1.00 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.50 testq $665536, %rax +# CHECK-NEXT: 1 1 0.50 testq $665536, %rdi +# CHECK-NEXT: 1 1 1.00 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.50 testq $7, %rdi +# CHECK-NEXT: 1 1 1.00 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi +# CHECK-NEXT: 1 1 1.00 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.50 * U ud2 # CHECK-NEXT: 1 6 3.00 * xlatb # CHECK-NEXT: 1 1 0.50 xorb $7, %al @@ -1427,7 +1548,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 2275.50 1945.50 +# CHECK-NEXT: 2318.00 1977.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -2000,6 +2121,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 1.00 1.00 scasw %es:(%rdi), %ax # CHECK-NEXT: 1.00 1.00 scasl %es:(%rdi), %eax # CHECK-NEXT: 1.00 1.00 scasq %es:(%rdi), %rax +# CHECK-NEXT: 0.50 0.50 seto %al +# CHECK-NEXT: 1.00 1.00 seto (%rax) +# CHECK-NEXT: 0.50 0.50 setno %al +# CHECK-NEXT: 1.00 1.00 setno (%rax) +# CHECK-NEXT: 0.50 0.50 setb %al +# CHECK-NEXT: 1.00 1.00 setb (%rax) +# CHECK-NEXT: 0.50 0.50 setae %al +# CHECK-NEXT: 1.00 1.00 setae (%rax) +# CHECK-NEXT: 0.50 0.50 sete %al +# CHECK-NEXT: 1.00 1.00 sete (%rax) +# CHECK-NEXT: 0.50 0.50 setne %al +# CHECK-NEXT: 1.00 1.00 setne (%rax) +# CHECK-NEXT: 0.50 0.50 seta %al +# CHECK-NEXT: 1.00 1.00 seta (%rax) +# CHECK-NEXT: 0.50 0.50 setbe %al +# CHECK-NEXT: 1.00 1.00 setbe (%rax) +# CHECK-NEXT: 0.50 0.50 sets %al +# CHECK-NEXT: 1.00 1.00 sets (%rax) +# CHECK-NEXT: 0.50 0.50 setns %al +# CHECK-NEXT: 1.00 1.00 setns (%rax) +# CHECK-NEXT: 0.50 0.50 setp %al +# CHECK-NEXT: 1.00 1.00 setp (%rax) +# CHECK-NEXT: 0.50 0.50 setnp %al +# CHECK-NEXT: 1.00 1.00 setnp (%rax) +# CHECK-NEXT: 0.50 0.50 setl %al +# CHECK-NEXT: 1.00 1.00 setl (%rax) +# CHECK-NEXT: 0.50 0.50 setge %al +# CHECK-NEXT: 1.00 1.00 setge (%rax) +# CHECK-NEXT: 0.50 0.50 setg %al +# CHECK-NEXT: 1.00 1.00 setg (%rax) +# CHECK-NEXT: 0.50 0.50 setle %al +# CHECK-NEXT: 1.00 1.00 setle (%rax) # CHECK-NEXT: 3.00 3.00 shldw %cl, %si, %di # CHECK-NEXT: 3.00 3.00 shrdw %cl, %si, %di # CHECK-NEXT: 3.00 3.00 shldw %cl, %si, (%rax) @@ -2060,6 +2213,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 subq %rsi, %rdi # CHECK-NEXT: 1.00 - subq %rsi, (%rax) # CHECK-NEXT: 1.00 - subq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 testb $7, %al +# CHECK-NEXT: 0.50 0.50 testb $7, %dil +# CHECK-NEXT: 1.00 - testb $7, (%rax) +# CHECK-NEXT: 0.50 0.50 testb %sil, %dil +# CHECK-NEXT: 1.00 - testb %sil, (%rax) +# CHECK-NEXT: 0.50 0.50 testw $511, %ax +# CHECK-NEXT: 0.50 0.50 testw $511, %di +# CHECK-NEXT: 1.00 - testw $511, (%rax) +# CHECK-NEXT: 0.50 0.50 testw $7, %di +# CHECK-NEXT: 1.00 - testw $7, (%rax) +# CHECK-NEXT: 0.50 0.50 testw %si, %di +# CHECK-NEXT: 1.00 - testw %si, (%rax) +# CHECK-NEXT: 0.50 0.50 testl $665536, %eax +# CHECK-NEXT: 0.50 0.50 testl $665536, %edi +# CHECK-NEXT: 1.00 - testl $665536, (%rax) +# CHECK-NEXT: 0.50 0.50 testl $7, %edi +# CHECK-NEXT: 1.00 - testl $7, (%rax) +# CHECK-NEXT: 0.50 0.50 testl %esi, %edi +# CHECK-NEXT: 1.00 - testl %esi, (%rax) +# CHECK-NEXT: 0.50 0.50 testq $665536, %rax +# CHECK-NEXT: 0.50 0.50 testq $665536, %rdi +# CHECK-NEXT: 1.00 - testq $665536, (%rax) +# CHECK-NEXT: 0.50 0.50 testq $7, %rdi +# CHECK-NEXT: 1.00 - testq $7, (%rax) +# CHECK-NEXT: 0.50 0.50 testq %rsi, %rdi +# CHECK-NEXT: 1.00 - testq %rsi, (%rax) # CHECK-NEXT: 0.50 0.50 ud2 # CHECK-NEXT: 3.00 3.00 xlatb # CHECK-NEXT: 0.50 0.50 xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s index 8536c25..18ab980 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 3 7 0.50 U scasw %es:(%rdi), %ax # CHECK-NEXT: 3 7 0.50 U scasl %es:(%rdi), %eax # CHECK-NEXT: 3 7 0.50 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 3 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 3 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 3 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 3 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 3 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 3 2 1.00 * setne (%rax) +# CHECK-NEXT: 2 2 0.50 seta %al +# CHECK-NEXT: 4 3 1.00 * seta (%rax) +# CHECK-NEXT: 2 2 0.50 setbe %al +# CHECK-NEXT: 4 3 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 3 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 3 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 3 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 3 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 3 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 3 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 3 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 3 2 1.00 * setle (%rax) # CHECK-NEXT: 4 6 1.00 shldw %cl, %si, %di # CHECK-NEXT: 4 6 1.00 shrdw %cl, %si, %di # CHECK-NEXT: 6 11 1.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 subq %rsi, %rdi # CHECK-NEXT: 3 7 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 2 6 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 testb $7, %al +# CHECK-NEXT: 1 1 0.25 testb $7, %dil +# CHECK-NEXT: 2 6 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testb %sil, %dil +# CHECK-NEXT: 2 6 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $511, %ax +# CHECK-NEXT: 1 1 0.25 testw $511, %di +# CHECK-NEXT: 2 6 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $7, %di +# CHECK-NEXT: 2 6 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testw %si, %di +# CHECK-NEXT: 2 6 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $665536, %eax +# CHECK-NEXT: 1 1 0.25 testl $665536, %edi +# CHECK-NEXT: 2 6 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $7, %edi +# CHECK-NEXT: 2 6 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testl %esi, %edi +# CHECK-NEXT: 2 6 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $665536, %rax +# CHECK-NEXT: 1 1 0.25 testq $665536, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $7, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi +# CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 # CHECK-NEXT: 1 5 0.50 * xlatb # CHECK-NEXT: 1 1 0.25 xorb $7, %al @@ -1435,7 +1556,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 50.00 - 445.50 310.00 241.33 241.33 174.00 219.50 478.00 73.33 +# CHECK-NEXT: 50.00 - 469.00 317.50 252.17 252.17 190.00 227.00 501.50 78.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -2008,6 +2129,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasw %es:(%rdi), %ax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasl %es:(%rdi), %eax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - seto %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 seto (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setno %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setno (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setb %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setb (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setae %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setae (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sete %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sete (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setne %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setne (%rax) +# CHECK-NEXT: - - 0.75 0.25 - - - 0.25 0.75 - seta %al +# CHECK-NEXT: - - 0.75 0.25 0.33 0.33 1.00 0.25 0.75 0.33 seta (%rax) +# CHECK-NEXT: - - 0.75 0.25 - - - 0.25 0.75 - setbe %al +# CHECK-NEXT: - - 0.75 0.25 0.33 0.33 1.00 0.25 0.75 0.33 setbe (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sets %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sets (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setns %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setns (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setnp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setnp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setl %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setl (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setge %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setge (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setg %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setg (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setle %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setle (%rax) # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - shldw %cl, %si, %di # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - shrdw %cl, %si, %di # CHECK-NEXT: - - 1.00 1.50 0.83 0.83 - 0.50 1.00 0.33 shldw %cl, %si, (%rax) @@ -2068,6 +2221,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - subq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 subq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - subq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %al +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb %sil, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb %sil, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %ax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $511, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $7, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw %si, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw %si, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %eax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $7, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl %esi, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl %esi, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $7, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - xlatb # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s index a11bc6c..f08fddf 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.50 U scasw %es:(%rdi), %ax # CHECK-NEXT: 1 100 0.50 U scasl %es:(%rdi), %eax # CHECK-NEXT: 1 100 0.50 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 1 1 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 1 1 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 1 1 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 1 1 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 1 1 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 1 1 1.00 * setne (%rax) +# CHECK-NEXT: 1 1 0.50 seta %al +# CHECK-NEXT: 1 1 1.00 * seta (%rax) +# CHECK-NEXT: 1 1 0.50 setbe %al +# CHECK-NEXT: 1 1 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 1 1 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 1 1 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 1 1 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 1 1 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 1 1 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 1 1 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 1 1 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 1 1 1.00 * setle (%rax) # CHECK-NEXT: 7 4 4.00 shldw %cl, %si, %di # CHECK-NEXT: 7 4 4.00 shrdw %cl, %si, %di # CHECK-NEXT: 8 9 11.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 subq %rsi, %rdi # CHECK-NEXT: 2 5 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 1 4 1.00 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 testb $7, %al +# CHECK-NEXT: 1 1 0.50 testb $7, %dil +# CHECK-NEXT: 1 4 1.00 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testb %sil, %dil +# CHECK-NEXT: 1 4 1.00 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.50 testw $511, %ax +# CHECK-NEXT: 1 1 0.50 testw $511, %di +# CHECK-NEXT: 1 4 1.00 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.50 testw $7, %di +# CHECK-NEXT: 1 4 1.00 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testw %si, %di +# CHECK-NEXT: 1 4 1.00 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.50 testl $665536, %eax +# CHECK-NEXT: 1 1 0.50 testl $665536, %edi +# CHECK-NEXT: 1 4 1.00 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.50 testl $7, %edi +# CHECK-NEXT: 1 4 1.00 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testl %esi, %edi +# CHECK-NEXT: 1 4 1.00 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.50 testq $665536, %rax +# CHECK-NEXT: 1 1 0.50 testq $665536, %rdi +# CHECK-NEXT: 1 4 1.00 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.50 testq $7, %rdi +# CHECK-NEXT: 1 4 1.00 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi +# CHECK-NEXT: 1 4 1.00 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.50 * U ud2 # CHECK-NEXT: 1 5 1.00 * xlatb # CHECK-NEXT: 1 1 0.50 xorb $7, %al @@ -1439,7 +1560,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: 515.00 565.00 380.00 - - - - 296.00 64.00 195.00 - - - - +# CHECK-NEXT: 544.00 594.00 380.00 - - - - 307.00 64.00 211.00 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -2012,6 +2133,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - scasw %es:(%rdi), %ax # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - scasl %es:(%rdi), %eax # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - scasq %es:(%rdi), %rax +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - seto %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - seto (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setno %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setno (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setb %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setb (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setae %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setae (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - sete %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - sete (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setne %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setne (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - seta %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - seta (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setbe %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setbe (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - sets %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - sets (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setns %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setns (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setp %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setp (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setnp %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setnp (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setl %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setl (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setge %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setge (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setg %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setg (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - setle %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - 1.00 - - - - setle (%rax) # CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - shldw %cl, %si, %di # CHECK-NEXT: 4.00 4.00 - - - - - - - - - - - - shrdw %cl, %si, %di # CHECK-NEXT: 11.00 11.00 - - - - - 1.00 - - - - - - shldw %cl, %si, (%rax) @@ -2072,6 +2225,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - subq %rsi, %rdi # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - subq %rsi, (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - subq (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testb $7, %al +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testb $7, %dil +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testb $7, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testb %sil, %dil +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testb %sil, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testw $511, %ax +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testw $511, %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testw $511, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testw $7, %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testw $7, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testw %si, %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testw %si, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testl $665536, %eax +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testl $665536, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testl $665536, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testl $7, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testl $7, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testl %esi, %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testl %esi, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testq $665536, %rax +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testq $665536, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testq $665536, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testq $7, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testq $7, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testq %rsi, %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testq %rsi, (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - ud2 # CHECK-NEXT: - - - - - - - 1.00 - - - - - - xlatb # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s index 68f9d27..d94b8dd6 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 2 0.67 U scasw %es:(%rdi), %ax # CHECK-NEXT: 2 2 0.67 U scasl %es:(%rdi), %eax # CHECK-NEXT: 2 2 0.67 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 3 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 3 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 3 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 3 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 3 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 3 2 1.00 * setne (%rax) +# CHECK-NEXT: 2 2 1.00 seta %al +# CHECK-NEXT: 4 3 1.00 * seta (%rax) +# CHECK-NEXT: 2 2 1.00 setbe %al +# CHECK-NEXT: 4 3 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 3 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 3 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 3 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 3 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 3 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 3 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 3 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 3 2 1.00 * setle (%rax) # CHECK-NEXT: 4 4 1.50 shldw %cl, %si, %di # CHECK-NEXT: 4 4 1.50 shrdw %cl, %si, %di # CHECK-NEXT: 7 10 1.50 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 subq %rsi, %rdi # CHECK-NEXT: 3 7 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 2 6 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 testb $7, %al +# CHECK-NEXT: 1 1 0.33 testb $7, %dil +# CHECK-NEXT: 2 6 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testb %sil, %dil +# CHECK-NEXT: 2 6 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.33 testw $511, %ax +# CHECK-NEXT: 1 1 0.33 testw $511, %di +# CHECK-NEXT: 2 6 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.33 testw $7, %di +# CHECK-NEXT: 2 6 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testw %si, %di +# CHECK-NEXT: 2 6 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.33 testl $665536, %eax +# CHECK-NEXT: 1 1 0.33 testl $665536, %edi +# CHECK-NEXT: 2 6 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.33 testl $7, %edi +# CHECK-NEXT: 2 6 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testl %esi, %edi +# CHECK-NEXT: 2 6 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.33 testq $665536, %rax +# CHECK-NEXT: 1 1 0.33 testq $665536, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.33 testq $7, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testq %rsi, %rdi +# CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.33 * U ud2 # CHECK-NEXT: 1 5 0.50 * xlatb # CHECK-NEXT: 1 1 0.33 xorb $7, %al @@ -1433,7 +1554,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: 160.00 - 386.83 192.33 218.00 378.83 266.50 266.50 +# CHECK-NEXT: 160.00 - 413.50 201.00 234.00 405.50 280.00 280.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -2006,6 +2127,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.67 0.67 - 0.67 - - scasw %es:(%rdi), %ax # CHECK-NEXT: - - 0.67 0.67 - 0.67 - - scasl %es:(%rdi), %eax # CHECK-NEXT: - - 0.67 0.67 - 0.67 - - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.50 - - 0.50 - - seto %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 seto (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setno %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setno (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setb %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setb (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setae %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setae (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - sete %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 sete (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setne %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setne (%rax) +# CHECK-NEXT: - - 1.00 - - 1.00 - - seta %al +# CHECK-NEXT: - - 1.00 - 1.00 1.00 0.50 0.50 seta (%rax) +# CHECK-NEXT: - - 1.00 - - 1.00 - - setbe %al +# CHECK-NEXT: - - 1.00 - 1.00 1.00 0.50 0.50 setbe (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - sets %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 sets (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setns %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setns (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setp %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setp (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setnp %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setnp (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setl %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setl (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setge %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setge (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setg %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setg (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setle %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setle (%rax) # CHECK-NEXT: - - 1.83 0.33 - 1.83 - - shldw %cl, %si, %di # CHECK-NEXT: - - 1.83 0.33 - 1.83 - - shrdw %cl, %si, %di # CHECK-NEXT: - - 1.83 0.33 1.00 1.83 1.00 1.00 shldw %cl, %si, (%rax) @@ -2066,6 +2219,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - subq %rsi, %rdi # CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 subq %rsi, (%rax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 subq (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testb $7, %al +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testb $7, %dil +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testb $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testb %sil, %dil +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testb %sil, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw $511, %ax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw $511, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testw $511, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw $7, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testw $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw %si, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testw %si, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl $665536, %eax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl $665536, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testl $665536, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl $7, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testl $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl %esi, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testl %esi, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq $665536, %rax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq $665536, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq $665536, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq $7, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq %rsi, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq %rsi, (%rax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - ud2 # CHECK-NEXT: - - - - - - 0.50 0.50 xlatb # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s index 1d70991..517c1bc 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 3 7 0.50 U scasw %es:(%rdi), %ax # CHECK-NEXT: 3 7 0.50 U scasl %es:(%rdi), %eax # CHECK-NEXT: 3 7 0.50 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 3 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 3 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 3 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 3 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 3 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 3 2 1.00 * setne (%rax) +# CHECK-NEXT: 2 2 0.50 seta %al +# CHECK-NEXT: 4 3 1.00 * seta (%rax) +# CHECK-NEXT: 2 2 0.50 setbe %al +# CHECK-NEXT: 4 3 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 3 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 3 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 3 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 3 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 3 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 3 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 3 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 3 2 1.00 * setle (%rax) # CHECK-NEXT: 4 6 1.00 shldw %cl, %si, %di # CHECK-NEXT: 4 6 1.00 shrdw %cl, %si, %di # CHECK-NEXT: 6 12 1.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 subq %rsi, %rdi # CHECK-NEXT: 3 7 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 2 6 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 testb $7, %al +# CHECK-NEXT: 1 1 0.25 testb $7, %dil +# CHECK-NEXT: 2 6 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testb %sil, %dil +# CHECK-NEXT: 2 6 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $511, %ax +# CHECK-NEXT: 1 1 0.25 testw $511, %di +# CHECK-NEXT: 2 6 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $7, %di +# CHECK-NEXT: 2 6 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testw %si, %di +# CHECK-NEXT: 2 6 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $665536, %eax +# CHECK-NEXT: 1 1 0.25 testl $665536, %edi +# CHECK-NEXT: 2 6 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $7, %edi +# CHECK-NEXT: 2 6 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testl %esi, %edi +# CHECK-NEXT: 2 6 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $665536, %rax +# CHECK-NEXT: 1 1 0.25 testq $665536, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $7, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi +# CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 # CHECK-NEXT: 3 7 0.75 * xlatb # CHECK-NEXT: 1 1 0.25 xorb $7, %al @@ -1435,7 +1556,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 80.00 - 500.00 334.50 241.83 241.83 169.00 246.00 561.50 70.33 +# CHECK-NEXT: 80.00 - 523.50 342.00 252.67 252.67 185.00 253.50 585.00 75.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -2008,6 +2129,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasw %es:(%rdi), %ax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasl %es:(%rdi), %eax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - seto %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 seto (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setno %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setno (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setb %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setb (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setae %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setae (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sete %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sete (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setne %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setne (%rax) +# CHECK-NEXT: - - 0.75 0.25 - - - 0.25 0.75 - seta %al +# CHECK-NEXT: - - 0.75 0.25 0.33 0.33 1.00 0.25 0.75 0.33 seta (%rax) +# CHECK-NEXT: - - 0.75 0.25 - - - 0.25 0.75 - setbe %al +# CHECK-NEXT: - - 0.75 0.25 0.33 0.33 1.00 0.25 0.75 0.33 setbe (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sets %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sets (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setns %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setns (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setnp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setnp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setl %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setl (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setge %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setge (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setg %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setg (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setle %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setle (%rax) # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - shldw %cl, %si, %di # CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - shrdw %cl, %si, %di # CHECK-NEXT: - - 1.00 1.50 0.83 0.83 - 0.50 1.00 0.33 shldw %cl, %si, (%rax) @@ -2068,6 +2221,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - subq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 subq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - subq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %al +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb %sil, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb %sil, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %ax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $511, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $7, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw %si, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw %si, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %eax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $7, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl %esi, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl %esi, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $7, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 # CHECK-NEXT: - - - - - - - - - - xlatb # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s index a238ff5..2fb1bb8 100644 --- a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 1.00 U scasw %es:(%rdi), %ax # CHECK-NEXT: 1 100 1.00 U scasl %es:(%rdi), %eax # CHECK-NEXT: 1 100 1.00 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 1 1 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 1 1 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 1 1 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 1 1 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 1 1 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 1 1 1.00 * setne (%rax) +# CHECK-NEXT: 1 1 0.50 seta %al +# CHECK-NEXT: 1 1 1.00 * seta (%rax) +# CHECK-NEXT: 1 1 0.50 setbe %al +# CHECK-NEXT: 1 1 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 1 1 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 1 1 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 1 1 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 1 1 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 1 1 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 1 1 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 1 1 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 1 1 1.00 * setle (%rax) # CHECK-NEXT: 1 1 1.00 shldw %cl, %si, %di # CHECK-NEXT: 1 1 1.00 shrdw %cl, %si, %di # CHECK-NEXT: 2 4 2.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 subq %rsi, %rdi # CHECK-NEXT: 2 5 2.00 * * subq %rsi, (%rax) # CHECK-NEXT: 1 4 1.00 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 testb $7, %al +# CHECK-NEXT: 1 1 0.50 testb $7, %dil +# CHECK-NEXT: 1 4 1.00 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testb %sil, %dil +# CHECK-NEXT: 1 4 1.00 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.50 testw $511, %ax +# CHECK-NEXT: 1 1 0.50 testw $511, %di +# CHECK-NEXT: 1 4 1.00 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.50 testw $7, %di +# CHECK-NEXT: 1 4 1.00 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testw %si, %di +# CHECK-NEXT: 1 4 1.00 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.50 testl $665536, %eax +# CHECK-NEXT: 1 1 0.50 testl $665536, %edi +# CHECK-NEXT: 1 4 1.00 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.50 testl $7, %edi +# CHECK-NEXT: 1 4 1.00 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testl %esi, %edi +# CHECK-NEXT: 1 4 1.00 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.50 testq $665536, %rax +# CHECK-NEXT: 1 1 0.50 testq $665536, %rdi +# CHECK-NEXT: 1 4 1.00 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.50 testq $7, %rdi +# CHECK-NEXT: 1 4 1.00 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi +# CHECK-NEXT: 1 4 1.00 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 1.00 * U ud2 # CHECK-NEXT: 1 3 1.00 * xlatb # CHECK-NEXT: 1 1 0.50 xorb $7, %al @@ -1433,7 +1554,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] -# CHECK-NEXT: 400.00 - - 41.00 - 545.00 387.00 503.00 +# CHECK-NEXT: 400.00 - - 41.00 - 582.00 424.00 530.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: @@ -2006,6 +2127,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - scasw %es:(%rdi), %ax # CHECK-NEXT: - - - 1.00 - - - - scasl %es:(%rdi), %eax # CHECK-NEXT: - - - 1.00 - - - - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - - - - 0.50 0.50 - seto %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 seto (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setno %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setno (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setb %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setb (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setae %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setae (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - sete %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 sete (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setne %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setne (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - seta %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 seta (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setbe %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setbe (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - sets %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 sets (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setns %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setns (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setp %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setp (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setnp %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setnp (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setl %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setl (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setge %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setge (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setg %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setg (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - setle %al +# CHECK-NEXT: - - - - - 1.00 1.00 1.00 setle (%rax) # CHECK-NEXT: - - - - - 1.00 - - shldw %cl, %si, %di # CHECK-NEXT: - - - - - 1.00 - - shrdw %cl, %si, %di # CHECK-NEXT: - - - - - 1.00 - 2.00 shldw %cl, %si, (%rax) @@ -2066,6 +2219,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - subq %rsi, %rdi # CHECK-NEXT: - - - - - 1.00 1.00 2.00 subq %rsi, (%rax) # CHECK-NEXT: - - - - - 0.50 0.50 1.00 subq (%rax), %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 - testb $7, %al +# CHECK-NEXT: - - - - - 0.50 0.50 - testb $7, %dil +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testb $7, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testb %sil, %dil +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testb %sil, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testw $511, %ax +# CHECK-NEXT: - - - - - 0.50 0.50 - testw $511, %di +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testw $511, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testw $7, %di +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testw $7, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testw %si, %di +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testw %si, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testl $665536, %eax +# CHECK-NEXT: - - - - - 0.50 0.50 - testl $665536, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testl $665536, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testl $7, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testl $7, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testl %esi, %edi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testl %esi, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testq $665536, %rax +# CHECK-NEXT: - - - - - 0.50 0.50 - testq $665536, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testq $665536, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testq $7, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testq $7, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - testq %rsi, %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 testq %rsi, (%rax) # CHECK-NEXT: - - - 1.00 - - - - ud2 # CHECK-NEXT: - - - - - - - 1.00 xlatb # CHECK-NEXT: - - - - - 0.50 0.50 - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s index 1593861..dd83d67 100644 --- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 2 0.67 U scasw %es:(%rdi), %ax # CHECK-NEXT: 2 2 0.67 U scasl %es:(%rdi), %eax # CHECK-NEXT: 2 2 0.67 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 3 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 3 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 3 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 3 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 3 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 3 2 1.00 * setne (%rax) +# CHECK-NEXT: 2 2 1.00 seta %al +# CHECK-NEXT: 4 3 1.00 * seta (%rax) +# CHECK-NEXT: 2 2 1.00 setbe %al +# CHECK-NEXT: 4 3 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 3 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 3 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 3 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 3 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 3 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 3 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 3 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 3 2 1.00 * setle (%rax) # CHECK-NEXT: 4 4 1.50 shldw %cl, %si, %di # CHECK-NEXT: 4 4 1.50 shrdw %cl, %si, %di # CHECK-NEXT: 7 10 1.50 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 subq %rsi, %rdi # CHECK-NEXT: 3 7 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 2 6 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 testb $7, %al +# CHECK-NEXT: 1 1 0.33 testb $7, %dil +# CHECK-NEXT: 2 6 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testb %sil, %dil +# CHECK-NEXT: 2 6 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.33 testw $511, %ax +# CHECK-NEXT: 1 1 0.33 testw $511, %di +# CHECK-NEXT: 2 6 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.33 testw $7, %di +# CHECK-NEXT: 2 6 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testw %si, %di +# CHECK-NEXT: 2 6 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.33 testl $665536, %eax +# CHECK-NEXT: 1 1 0.33 testl $665536, %edi +# CHECK-NEXT: 2 6 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.33 testl $7, %edi +# CHECK-NEXT: 2 6 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testl %esi, %edi +# CHECK-NEXT: 2 6 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.33 testq $665536, %rax +# CHECK-NEXT: 1 1 0.33 testq $665536, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.33 testq $7, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.33 testq %rsi, %rdi +# CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.33 * U ud2 # CHECK-NEXT: 1 5 0.50 * xlatb # CHECK-NEXT: 1 1 0.33 xorb $7, %al @@ -1433,7 +1554,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: 160.00 - 386.83 192.33 218.00 378.83 266.50 266.50 +# CHECK-NEXT: 160.00 - 413.50 201.00 234.00 405.50 280.00 280.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -2006,6 +2127,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.67 0.67 - 0.67 - - scasw %es:(%rdi), %ax # CHECK-NEXT: - - 0.67 0.67 - 0.67 - - scasl %es:(%rdi), %eax # CHECK-NEXT: - - 0.67 0.67 - 0.67 - - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.50 - - 0.50 - - seto %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 seto (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setno %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setno (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setb %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setb (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setae %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setae (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - sete %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 sete (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setne %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setne (%rax) +# CHECK-NEXT: - - 1.00 - - 1.00 - - seta %al +# CHECK-NEXT: - - 1.00 - 1.00 1.00 0.50 0.50 seta (%rax) +# CHECK-NEXT: - - 1.00 - - 1.00 - - setbe %al +# CHECK-NEXT: - - 1.00 - 1.00 1.00 0.50 0.50 setbe (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - sets %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 sets (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setns %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setns (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setp %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setp (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setnp %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setnp (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setl %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setl (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setge %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setge (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setg %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setg (%rax) +# CHECK-NEXT: - - 0.50 - - 0.50 - - setle %al +# CHECK-NEXT: - - 0.50 - 1.00 0.50 0.50 0.50 setle (%rax) # CHECK-NEXT: - - 1.83 0.33 - 1.83 - - shldw %cl, %si, %di # CHECK-NEXT: - - 1.83 0.33 - 1.83 - - shrdw %cl, %si, %di # CHECK-NEXT: - - 1.83 0.33 1.00 1.83 1.00 1.00 shldw %cl, %si, (%rax) @@ -2066,6 +2219,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - subq %rsi, %rdi # CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 subq %rsi, (%rax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 subq (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testb $7, %al +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testb $7, %dil +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testb $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testb %sil, %dil +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testb %sil, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw $511, %ax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw $511, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testw $511, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw $7, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testw $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testw %si, %di +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testw %si, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl $665536, %eax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl $665536, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testl $665536, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl $7, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testl $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testl %esi, %edi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testl %esi, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq $665536, %rax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq $665536, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq $665536, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq $7, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq %rsi, %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq %rsi, (%rax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - ud2 # CHECK-NEXT: - - - - - - 0.50 0.50 xlatb # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s index 12cbef6..fc5b7cb 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 3 7 0.50 U scasw %es:(%rdi), %ax # CHECK-NEXT: 3 7 0.50 U scasl %es:(%rdi), %eax # CHECK-NEXT: 3 7 0.50 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 3 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 3 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 3 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 3 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 3 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 3 2 1.00 * setne (%rax) +# CHECK-NEXT: 2 2 1.00 seta %al +# CHECK-NEXT: 4 3 1.00 * seta (%rax) +# CHECK-NEXT: 2 2 1.00 setbe %al +# CHECK-NEXT: 4 3 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 3 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 3 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 3 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 3 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 3 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 3 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 3 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 3 2 1.00 * setle (%rax) # CHECK-NEXT: 4 6 1.00 shldw %cl, %si, %di # CHECK-NEXT: 4 6 1.00 shrdw %cl, %si, %di # CHECK-NEXT: 6 11 1.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 subq %rsi, %rdi # CHECK-NEXT: 3 7 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 2 6 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 testb $7, %al +# CHECK-NEXT: 1 1 0.25 testb $7, %dil +# CHECK-NEXT: 2 6 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testb %sil, %dil +# CHECK-NEXT: 2 6 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $511, %ax +# CHECK-NEXT: 1 1 0.25 testw $511, %di +# CHECK-NEXT: 2 6 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $7, %di +# CHECK-NEXT: 2 6 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testw %si, %di +# CHECK-NEXT: 2 6 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $665536, %eax +# CHECK-NEXT: 1 1 0.25 testl $665536, %edi +# CHECK-NEXT: 2 6 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $7, %edi +# CHECK-NEXT: 2 6 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testl %esi, %edi +# CHECK-NEXT: 2 6 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $665536, %rax +# CHECK-NEXT: 1 1 0.25 testq $665536, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $7, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi +# CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 # CHECK-NEXT: 1 5 0.50 * xlatb # CHECK-NEXT: 1 1 0.25 xorb $7, %al @@ -1435,7 +1556,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 60.00 - 512.75 290.75 241.33 241.33 174.00 255.25 564.25 73.33 +# CHECK-NEXT: 60.00 - 537.25 297.25 252.17 252.17 190.00 261.75 588.75 78.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -2008,6 +2129,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasw %es:(%rdi), %ax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasl %es:(%rdi), %eax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - seto %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 seto (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setno %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setno (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setb %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setb (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setae %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setae (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sete %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sete (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setne %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setne (%rax) +# CHECK-NEXT: - - 1.00 - - - - - 1.00 - seta %al +# CHECK-NEXT: - - 1.00 - 0.33 0.33 1.00 - 1.00 0.33 seta (%rax) +# CHECK-NEXT: - - 1.00 - - - - - 1.00 - setbe %al +# CHECK-NEXT: - - 1.00 - 0.33 0.33 1.00 - 1.00 0.33 setbe (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sets %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sets (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setns %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setns (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setnp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setnp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setl %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setl (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setge %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setge (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setg %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setg (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setle %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setle (%rax) # CHECK-NEXT: - - 1.25 1.25 - - - 0.25 1.25 - shldw %cl, %si, %di # CHECK-NEXT: - - 1.25 1.25 - - - 0.25 1.25 - shrdw %cl, %si, %di # CHECK-NEXT: - - 1.25 1.25 0.83 0.83 - 0.25 1.25 0.33 shldw %cl, %si, (%rax) @@ -2068,6 +2221,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - subq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 subq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - subq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %al +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb %sil, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb %sil, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %ax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $511, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $7, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw %si, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw %si, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %eax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $7, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl %esi, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl %esi, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $7, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - xlatb # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s index 37d8f7b14..c9f27e5 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 3 7 0.50 U scasw %es:(%rdi), %ax # CHECK-NEXT: 3 7 0.50 U scasl %es:(%rdi), %eax # CHECK-NEXT: 3 7 0.50 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.50 seto %al +# CHECK-NEXT: 3 2 1.00 * seto (%rax) +# CHECK-NEXT: 1 1 0.50 setno %al +# CHECK-NEXT: 3 2 1.00 * setno (%rax) +# CHECK-NEXT: 1 1 0.50 setb %al +# CHECK-NEXT: 3 2 1.00 * setb (%rax) +# CHECK-NEXT: 1 1 0.50 setae %al +# CHECK-NEXT: 3 2 1.00 * setae (%rax) +# CHECK-NEXT: 1 1 0.50 sete %al +# CHECK-NEXT: 3 2 1.00 * sete (%rax) +# CHECK-NEXT: 1 1 0.50 setne %al +# CHECK-NEXT: 3 2 1.00 * setne (%rax) +# CHECK-NEXT: 2 2 1.00 seta %al +# CHECK-NEXT: 4 3 1.00 * seta (%rax) +# CHECK-NEXT: 2 2 1.00 setbe %al +# CHECK-NEXT: 4 3 1.00 * setbe (%rax) +# CHECK-NEXT: 1 1 0.50 sets %al +# CHECK-NEXT: 3 2 1.00 * sets (%rax) +# CHECK-NEXT: 1 1 0.50 setns %al +# CHECK-NEXT: 3 2 1.00 * setns (%rax) +# CHECK-NEXT: 1 1 0.50 setp %al +# CHECK-NEXT: 3 2 1.00 * setp (%rax) +# CHECK-NEXT: 1 1 0.50 setnp %al +# CHECK-NEXT: 3 2 1.00 * setnp (%rax) +# CHECK-NEXT: 1 1 0.50 setl %al +# CHECK-NEXT: 3 2 1.00 * setl (%rax) +# CHECK-NEXT: 1 1 0.50 setge %al +# CHECK-NEXT: 3 2 1.00 * setge (%rax) +# CHECK-NEXT: 1 1 0.50 setg %al +# CHECK-NEXT: 3 2 1.00 * setg (%rax) +# CHECK-NEXT: 1 1 0.50 setle %al +# CHECK-NEXT: 3 2 1.00 * setle (%rax) # CHECK-NEXT: 4 6 1.00 shldw %cl, %si, %di # CHECK-NEXT: 4 6 1.00 shrdw %cl, %si, %di # CHECK-NEXT: 6 11 1.00 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 subq %rsi, %rdi # CHECK-NEXT: 3 7 1.00 * * subq %rsi, (%rax) # CHECK-NEXT: 2 6 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 testb $7, %al +# CHECK-NEXT: 1 1 0.25 testb $7, %dil +# CHECK-NEXT: 2 6 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testb %sil, %dil +# CHECK-NEXT: 2 6 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $511, %ax +# CHECK-NEXT: 1 1 0.25 testw $511, %di +# CHECK-NEXT: 2 6 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $7, %di +# CHECK-NEXT: 2 6 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testw %si, %di +# CHECK-NEXT: 2 6 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $665536, %eax +# CHECK-NEXT: 1 1 0.25 testl $665536, %edi +# CHECK-NEXT: 2 6 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $7, %edi +# CHECK-NEXT: 2 6 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testl %esi, %edi +# CHECK-NEXT: 2 6 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $665536, %rax +# CHECK-NEXT: 1 1 0.25 testq $665536, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $7, %rdi +# CHECK-NEXT: 2 6 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi +# CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 # CHECK-NEXT: 1 5 0.50 * xlatb # CHECK-NEXT: 1 1 0.25 xorb $7, %al @@ -1435,7 +1556,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: 60.00 - 513.00 291.00 241.33 241.33 174.00 255.50 564.50 73.33 +# CHECK-NEXT: 60.00 - 537.50 297.50 252.17 252.17 190.00 262.00 589.00 78.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -2008,6 +2129,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasw %es:(%rdi), %ax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasl %es:(%rdi), %eax # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - seto %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 seto (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setno %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setno (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setb %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setb (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setae %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setae (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sete %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sete (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setne %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setne (%rax) +# CHECK-NEXT: - - 1.00 - - - - - 1.00 - seta %al +# CHECK-NEXT: - - 1.00 - 0.33 0.33 1.00 - 1.00 0.33 seta (%rax) +# CHECK-NEXT: - - 1.00 - - - - - 1.00 - setbe %al +# CHECK-NEXT: - - 1.00 - 0.33 0.33 1.00 - 1.00 0.33 setbe (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - sets %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 sets (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setns %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setns (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setnp %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setnp (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setl %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setl (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setge %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setge (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setg %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setg (%rax) +# CHECK-NEXT: - - 0.50 - - - - - 0.50 - setle %al +# CHECK-NEXT: - - 0.50 - 0.33 0.33 1.00 - 0.50 0.33 setle (%rax) # CHECK-NEXT: - - 1.25 1.25 - - - 0.25 1.25 - shldw %cl, %si, %di # CHECK-NEXT: - - 1.25 1.25 - - - 0.25 1.25 - shrdw %cl, %si, %di # CHECK-NEXT: - - 1.25 1.25 0.83 0.83 - 0.25 1.25 0.33 shldw %cl, %si, (%rax) @@ -2068,6 +2221,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - subq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 subq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - subq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %al +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb $7, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testb %sil, %dil +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testb %sil, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %ax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $511, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $511, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw $7, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testw %si, %di +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testw %si, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %eax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $665536, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl $7, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testl %esi, %edi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testl %esi, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rax +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $665536, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq $7, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - xlatb # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - xorb $7, %al diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s index 1d5062c..a592ed2a 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s @@ -643,6 +643,39 @@ scasw scasl scasq +seto %al +seto (%rax) +setno %al +setno (%rax) +setb %al +setb (%rax) +setnb %al +setnb (%rax) +setz %al +setz (%rax) +setnz %al +setnz (%rax) +seta %al +seta (%rax) +setna %al +setna (%rax) +sets %al +sets (%rax) +setns %al +setns (%rax) +setp %al +setp (%rax) +setnp %al +setnp (%rax) +setl %al +setl (%rax) +setnl %al +setnl (%rax) +setg %al +setg (%rax) +setng %al +setng (%rax) + shldw %cl, %si, %di shrdw %cl, %si, %di shldw %cl, %si, (%rax) @@ -712,6 +745,36 @@ subq %rsi, %rdi subq %rsi, (%rax) subq (%rax), %rdi +testb $7, %al +testb $7, %dil +testb $7, (%rax) +testb %sil, %dil +testb %sil, (%rax) + +testw $511, %ax +testw $511, %di +testw $511, (%rax) +testw $7, %di +testw $7, (%rax) +testw %si, %di +testw %si, (%rax) + +testl $665536, %eax +testl $665536, %edi +testl $665536, (%rax) +testl $7, %edi +testl $7, (%rax) +testl %esi, %edi +testl %esi, (%rax) + +testq $665536, %rax +testq $665536, %rdi +testq $665536, (%rax) +testq $7, %rdi +testq $7, (%rax) +testq %rsi, %rdi +testq %rsi, (%rax) + ud2 xlatb @@ -1328,6 +1391,38 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.25 U scasw %es:(%rdi), %ax # CHECK-NEXT: 1 100 0.25 U scasl %es:(%rdi), %eax # CHECK-NEXT: 1 100 0.25 U scasq %es:(%rdi), %rax +# CHECK-NEXT: 1 1 0.25 seto %al +# CHECK-NEXT: 1 1 0.50 * seto (%rax) +# CHECK-NEXT: 1 1 0.25 setno %al +# CHECK-NEXT: 1 1 0.50 * setno (%rax) +# CHECK-NEXT: 1 1 0.25 setb %al +# CHECK-NEXT: 1 1 0.50 * setb (%rax) +# CHECK-NEXT: 1 1 0.25 setae %al +# CHECK-NEXT: 1 1 0.50 * setae (%rax) +# CHECK-NEXT: 1 1 0.25 sete %al +# CHECK-NEXT: 1 1 0.50 * sete (%rax) +# CHECK-NEXT: 1 1 0.25 setne %al +# CHECK-NEXT: 1 1 0.50 * setne (%rax) +# CHECK-NEXT: 1 1 0.25 seta %al +# CHECK-NEXT: 1 1 0.50 * seta (%rax) +# CHECK-NEXT: 1 1 0.25 setbe %al +# CHECK-NEXT: 1 1 0.50 * setbe (%rax) +# CHECK-NEXT: 1 1 0.25 sets %al +# CHECK-NEXT: 1 1 0.50 * sets (%rax) +# CHECK-NEXT: 1 1 0.25 setns %al +# CHECK-NEXT: 1 1 0.50 * setns (%rax) +# CHECK-NEXT: 1 1 0.25 setp %al +# CHECK-NEXT: 1 1 0.50 * setp (%rax) +# CHECK-NEXT: 1 1 0.25 setnp %al +# CHECK-NEXT: 1 1 0.50 * setnp (%rax) +# CHECK-NEXT: 1 1 0.25 setl %al +# CHECK-NEXT: 1 1 0.50 * setl (%rax) +# CHECK-NEXT: 1 1 0.25 setge %al +# CHECK-NEXT: 1 1 0.50 * setge (%rax) +# CHECK-NEXT: 1 1 0.25 setg %al +# CHECK-NEXT: 1 1 0.50 * setg (%rax) +# CHECK-NEXT: 1 1 0.25 setle %al +# CHECK-NEXT: 1 1 0.50 * setle (%rax) # CHECK-NEXT: 1 100 0.25 shldw %cl, %si, %di # CHECK-NEXT: 1 100 0.25 shrdw %cl, %si, %di # CHECK-NEXT: 1 100 0.25 * * shldw %cl, %si, (%rax) @@ -1388,6 +1483,32 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 subq %rsi, %rdi # CHECK-NEXT: 2 5 0.50 * * subq %rsi, (%rax) # CHECK-NEXT: 2 5 0.50 * subq (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 testb $7, %al +# CHECK-NEXT: 1 1 0.25 testb $7, %dil +# CHECK-NEXT: 2 5 0.50 * testb $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testb %sil, %dil +# CHECK-NEXT: 2 5 0.50 * testb %sil, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $511, %ax +# CHECK-NEXT: 1 1 0.25 testw $511, %di +# CHECK-NEXT: 2 5 0.50 * testw $511, (%rax) +# CHECK-NEXT: 1 1 0.25 testw $7, %di +# CHECK-NEXT: 2 5 0.50 * testw $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testw %si, %di +# CHECK-NEXT: 2 5 0.50 * testw %si, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $665536, %eax +# CHECK-NEXT: 1 1 0.25 testl $665536, %edi +# CHECK-NEXT: 2 5 0.50 * testl $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testl $7, %edi +# CHECK-NEXT: 2 5 0.50 * testl $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testl %esi, %edi +# CHECK-NEXT: 2 5 0.50 * testl %esi, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $665536, %rax +# CHECK-NEXT: 1 1 0.25 testq $665536, %rdi +# CHECK-NEXT: 2 5 0.50 * testq $665536, (%rax) +# CHECK-NEXT: 1 1 0.25 testq $7, %rdi +# CHECK-NEXT: 2 5 0.50 * testq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi +# CHECK-NEXT: 2 5 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 # CHECK-NEXT: 1 100 0.25 * xlatb # CHECK-NEXT: 1 1 0.25 xorb $7, %al @@ -1437,7 +1558,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: 147.50 147.50 131.50 165.50 147.50 131.50 392.00 - - - - 34.00 +# CHECK-NEXT: 161.00 161.00 146.00 180.00 162.00 146.00 392.00 - - - - 34.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -2010,6 +2131,38 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - - - - - - - - scasw %es:(%rdi), %ax # CHECK-NEXT: - - - - - - - - - - - - scasl %es:(%rdi), %eax # CHECK-NEXT: - - - - - - - - - - - - scasq %es:(%rdi), %rax +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - seto %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - seto (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setno %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setno (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setb %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setb (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setae %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setae (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - sete %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - sete (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setne %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setne (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - seta %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - seta (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setbe %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setbe (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - sets %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - sets (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setns %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setns (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setp %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setp (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setnp %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setnp (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setl %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setl (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setge %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setge (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setg %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setg (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - setle %al +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - setle (%rax) # CHECK-NEXT: - - - - - - - - - - - - shldw %cl, %si, %di # CHECK-NEXT: - - - - - - - - - - - - shrdw %cl, %si, %di # CHECK-NEXT: - - - - - - - - - - - - shldw %cl, %si, (%rax) @@ -2070,6 +2223,32 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - subq %rsi, %rdi # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - subq %rsi, (%rax) # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - subq (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testb $7, %al +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testb $7, %dil +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testb $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testb %sil, %dil +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testb %sil, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testw $511, %ax +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testw $511, %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testw $511, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testw $7, %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testw $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testw %si, %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testw %si, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testl $665536, %eax +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testl $665536, %edi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testl $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testl $7, %edi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testl $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testl %esi, %edi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testl %esi, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testq $665536, %rax +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testq $665536, %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testq $665536, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testq $7, %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testq %rsi, %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testq %rsi, (%rax) # CHECK-NEXT: - - - - - - - - - - - - ud2 # CHECK-NEXT: - - - - - - - - - - - - xlatb # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - xorb $7, %al -- 2.7.4