From 681b39081c3e88080eff23e03c7d26fc7509e8a2 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 8 May 2018 13:30:58 +0000 Subject: [PATCH] [llvm-mca][x86] Add div/idiv, mul/imul and inc/dec/neg/nop instruction tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331765 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/tools/llvm-mca/X86/Atom/resources-x86_64.s | 256 ++++++++++++++++++++- .../llvm-mca/X86/Broadwell/resources-x86_64.s | 256 ++++++++++++++++++++- test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s | 256 ++++++++++++++++++++- test/tools/llvm-mca/X86/Haswell/resources-x86_64.s | 256 ++++++++++++++++++++- test/tools/llvm-mca/X86/SLM/resources-x86_64.s | 256 ++++++++++++++++++++- .../llvm-mca/X86/SandyBridge/resources-x86_64.s | 256 ++++++++++++++++++++- .../llvm-mca/X86/SkylakeClient/resources-x86_64.s | 256 ++++++++++++++++++++- .../llvm-mca/X86/SkylakeServer/resources-x86_64.s | 256 ++++++++++++++++++++- test/tools/llvm-mca/X86/Znver1/resources-x86_64.s | 256 ++++++++++++++++++++- 9 files changed, 2295 insertions(+), 9 deletions(-) diff --git a/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/test/tools/llvm-mca/X86/Atom/resources-x86_64.s index d2315f81efb..9cc689e895f 100644 --- a/test/tools/llvm-mca/X86/Atom/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Atom/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 1 2 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 1 2 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 1 2 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.50 decb %dil +# CHECK-NEXT: 1 1 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.50 decw %di +# CHECK-NEXT: 1 1 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.50 decl %edi +# CHECK-NEXT: 1 1 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.50 decq %rdi +# CHECK-NEXT: 1 1 1.00 * * decq (%rax) +# CHECK-NEXT: 1 50 25.00 * divb %dil +# CHECK-NEXT: 1 68 34.00 * * divb (%rax) +# CHECK-NEXT: 1 50 25.00 * divw %si +# CHECK-NEXT: 1 50 25.00 * * divw (%rax) +# CHECK-NEXT: 1 50 25.00 * divl %edx +# CHECK-NEXT: 1 50 25.00 * * divl (%rax) +# CHECK-NEXT: 1 130 65.00 * divq %rcx +# CHECK-NEXT: 1 130 65.00 * * divq (%rax) +# CHECK-NEXT: 1 62 31.00 * idivb %dil +# CHECK-NEXT: 1 62 31.00 * * idivb (%rax) +# CHECK-NEXT: 1 62 31.00 * idivw %si +# CHECK-NEXT: 1 62 31.00 * * idivw (%rax) +# CHECK-NEXT: 1 62 31.00 * idivl %edx +# CHECK-NEXT: 1 62 31.00 * * idivl (%rax) +# CHECK-NEXT: 1 130 65.00 * idivq %rcx +# CHECK-NEXT: 1 130 65.00 * * idivq (%rax) +# CHECK-NEXT: 1 7 3.50 imulb %dil +# CHECK-NEXT: 1 7 3.50 * imulb (%rax) +# CHECK-NEXT: 1 7 3.50 imulw %di +# CHECK-NEXT: 1 8 4.00 * imulw (%rax) +# CHECK-NEXT: 1 6 3.00 imulw %di, %di +# CHECK-NEXT: 1 7 3.50 * imulw (%rax), %di +# CHECK-NEXT: 1 6 3.00 imulw $511, %di, %di +# CHECK-NEXT: 1 7 3.50 * imulw $511, (%rax), %di +# CHECK-NEXT: 1 6 3.00 imulw $7, %di, %di +# CHECK-NEXT: 1 7 3.50 * imulw $7, (%rax), %di +# CHECK-NEXT: 1 6 3.00 imull %edi +# CHECK-NEXT: 1 7 3.50 * imull (%rax) +# CHECK-NEXT: 1 5 5.00 imull %edi, %edi +# CHECK-NEXT: 1 5 5.00 * imull (%rax), %edi +# CHECK-NEXT: 1 5 5.00 imull $665536, %edi, %edi +# CHECK-NEXT: 1 5 5.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 5 5.00 imull $7, %edi, %edi +# CHECK-NEXT: 1 5 5.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 1 12 6.00 imulq %rdi +# CHECK-NEXT: 1 12 6.00 * imulq (%rax) +# CHECK-NEXT: 1 12 6.00 imulq %rdi, %rdi +# CHECK-NEXT: 1 12 6.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 14 7.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 1 14 7.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 14 7.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 1 14 7.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 incb %dil +# CHECK-NEXT: 1 1 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.50 incw %di +# CHECK-NEXT: 1 1 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.50 incl %edi +# CHECK-NEXT: 1 1 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.50 incq %rdi +# CHECK-NEXT: 1 1 1.00 * * incq (%rax) +# CHECK-NEXT: 1 7 3.50 mulb %dil +# CHECK-NEXT: 1 7 3.50 * mulb (%rax) +# CHECK-NEXT: 1 7 3.50 mulw %si +# CHECK-NEXT: 1 8 4.00 * mulw (%rax) +# CHECK-NEXT: 1 6 3.00 mull %edx +# CHECK-NEXT: 1 7 3.50 * mull (%rax) +# CHECK-NEXT: 1 12 6.00 mulq %rcx +# CHECK-NEXT: 1 12 6.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.50 negb %dil +# CHECK-NEXT: 1 1 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.50 negw %si +# CHECK-NEXT: 1 1 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.50 negl %edx +# CHECK-NEXT: 1 1 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.50 negq %rcx +# CHECK-NEXT: 1 1 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 0.50 nop +# CHECK-NEXT: 1 1 0.50 nopw %di +# CHECK-NEXT: 1 1 0.50 nopw (%rcx) +# CHECK-NEXT: 1 1 0.50 nopl %esi +# CHECK-NEXT: 1 1 0.50 nopl (%r8) +# CHECK-NEXT: 1 1 0.50 nopq %rdx +# CHECK-NEXT: 1 1 0.50 nopq (%r9) # CHECK-NEXT: 1 1 1.00 rclb %dil # CHECK-NEXT: 1 1 1.00 rcrb %dil # CHECK-NEXT: 1 1 1.00 * rclb (%rax) @@ -771,7 +944,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 402.50 198.50 +# CHECK-NEXT: 1184.50 938.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -883,6 +1056,87 @@ subq (%rax), %rdi # CHECK-NEXT: 1.00 1.00 btcq $7, (%rax) # CHECK-NEXT: 1.00 1.00 btrq $7, (%rax) # CHECK-NEXT: 1.00 1.00 btsq $7, (%rax) +# CHECK-NEXT: 0.50 0.50 decb %dil +# CHECK-NEXT: 1.00 - decb (%rax) +# CHECK-NEXT: 0.50 0.50 decw %di +# CHECK-NEXT: 1.00 - decw (%rax) +# CHECK-NEXT: 0.50 0.50 decl %edi +# CHECK-NEXT: 1.00 - decl (%rax) +# CHECK-NEXT: 0.50 0.50 decq %rdi +# CHECK-NEXT: 1.00 - decq (%rax) +# CHECK-NEXT: 25.00 25.00 divb %dil +# CHECK-NEXT: 34.00 34.00 divb (%rax) +# CHECK-NEXT: 25.00 25.00 divw %si +# CHECK-NEXT: 25.00 25.00 divw (%rax) +# CHECK-NEXT: 25.00 25.00 divl %edx +# CHECK-NEXT: 25.00 25.00 divl (%rax) +# CHECK-NEXT: 65.00 65.00 divq %rcx +# CHECK-NEXT: 65.00 65.00 divq (%rax) +# CHECK-NEXT: 31.00 31.00 idivb %dil +# CHECK-NEXT: 31.00 31.00 idivb (%rax) +# CHECK-NEXT: 31.00 31.00 idivw %si +# CHECK-NEXT: 31.00 31.00 idivw (%rax) +# CHECK-NEXT: 31.00 31.00 idivl %edx +# CHECK-NEXT: 31.00 31.00 idivl (%rax) +# CHECK-NEXT: 65.00 65.00 idivq %rcx +# CHECK-NEXT: 65.00 65.00 idivq (%rax) +# CHECK-NEXT: 3.50 3.50 imulb %dil +# CHECK-NEXT: 3.50 3.50 imulb (%rax) +# CHECK-NEXT: 3.50 3.50 imulw %di +# CHECK-NEXT: 4.00 4.00 imulw (%rax) +# CHECK-NEXT: 3.00 3.00 imulw %di, %di +# CHECK-NEXT: 3.50 3.50 imulw (%rax), %di +# CHECK-NEXT: 3.00 3.00 imulw $511, %di, %di +# CHECK-NEXT: 3.50 3.50 imulw $511, (%rax), %di +# CHECK-NEXT: 3.00 3.00 imulw $7, %di, %di +# CHECK-NEXT: 3.50 3.50 imulw $7, (%rax), %di +# CHECK-NEXT: 3.00 3.00 imull %edi +# CHECK-NEXT: 3.50 3.50 imull (%rax) +# CHECK-NEXT: 5.00 - imull %edi, %edi +# CHECK-NEXT: 5.00 - imull (%rax), %edi +# CHECK-NEXT: 5.00 - imull $665536, %edi, %edi +# CHECK-NEXT: 5.00 - imull $665536, (%rax), %edi +# CHECK-NEXT: 5.00 - imull $7, %edi, %edi +# CHECK-NEXT: 5.00 - imull $7, (%rax), %edi +# CHECK-NEXT: 6.00 6.00 imulq %rdi +# CHECK-NEXT: 6.00 6.00 imulq (%rax) +# CHECK-NEXT: 6.00 6.00 imulq %rdi, %rdi +# CHECK-NEXT: 6.00 6.00 imulq (%rax), %rdi +# CHECK-NEXT: 7.00 7.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 7.00 7.00 imulq $665536, (%rax), %rdi +# CHECK-NEXT: 7.00 7.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 7.00 7.00 imulq $7, (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 incb %dil +# CHECK-NEXT: 1.00 - incb (%rax) +# CHECK-NEXT: 0.50 0.50 incw %di +# CHECK-NEXT: 1.00 - incw (%rax) +# CHECK-NEXT: 0.50 0.50 incl %edi +# CHECK-NEXT: 1.00 - incl (%rax) +# CHECK-NEXT: 0.50 0.50 incq %rdi +# CHECK-NEXT: 1.00 - incq (%rax) +# CHECK-NEXT: 3.50 3.50 mulb %dil +# CHECK-NEXT: 3.50 3.50 mulb (%rax) +# CHECK-NEXT: 3.50 3.50 mulw %si +# CHECK-NEXT: 4.00 4.00 mulw (%rax) +# CHECK-NEXT: 3.00 3.00 mull %edx +# CHECK-NEXT: 3.50 3.50 mull (%rax) +# CHECK-NEXT: 6.00 6.00 mulq %rcx +# CHECK-NEXT: 6.00 6.00 mulq (%rax) +# CHECK-NEXT: 0.50 0.50 negb %dil +# CHECK-NEXT: 1.00 - negb (%r8) +# CHECK-NEXT: 0.50 0.50 negw %si +# CHECK-NEXT: 1.00 - negw (%r9) +# CHECK-NEXT: 0.50 0.50 negl %edx +# CHECK-NEXT: 1.00 - negl (%rax) +# CHECK-NEXT: 0.50 0.50 negq %rcx +# CHECK-NEXT: 1.00 - negq (%r10) +# CHECK-NEXT: 0.50 0.50 nop +# CHECK-NEXT: 0.50 0.50 nopw %di +# CHECK-NEXT: 0.50 0.50 nopw (%rcx) +# CHECK-NEXT: 0.50 0.50 nopl %esi +# CHECK-NEXT: 0.50 0.50 nopl (%r8) +# CHECK-NEXT: 0.50 0.50 nopq %rdx +# CHECK-NEXT: 0.50 0.50 nopq (%r9) # CHECK-NEXT: 1.00 - rclb %dil # CHECK-NEXT: 1.00 - rcrb %dil # CHECK-NEXT: 1.00 - rclb (%rax) diff --git a/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s index 46c44006eb4..46da90eb0b9 100644 --- a/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 4 6 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 4 6 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 4 6 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 decb %dil +# CHECK-NEXT: 3 7 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.25 decw %di +# CHECK-NEXT: 3 7 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.25 decl %edi +# CHECK-NEXT: 3 7 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.25 decq %rdi +# CHECK-NEXT: 3 7 1.00 * * decq (%rax) +# CHECK-NEXT: 1 25 10.00 * divb %dil +# CHECK-NEXT: 8 34 2.00 * * divb (%rax) +# CHECK-NEXT: 32 80 8.00 * divw %si +# CHECK-NEXT: 8 34 2.00 * * divw (%rax) +# CHECK-NEXT: 32 80 8.00 * divl %edx +# CHECK-NEXT: 8 34 2.00 * * divl (%rax) +# CHECK-NEXT: 32 80 8.00 * divq %rcx +# CHECK-NEXT: 8 34 2.00 * * divq (%rax) +# CHECK-NEXT: 1 25 10.00 * idivb %dil +# CHECK-NEXT: 8 35 2.00 * * idivb (%rax) +# CHECK-NEXT: 1 25 10.00 * idivw %si +# CHECK-NEXT: 8 35 2.00 * * idivw (%rax) +# CHECK-NEXT: 1 25 10.00 * idivl %edx +# CHECK-NEXT: 8 35 2.00 * * idivl (%rax) +# CHECK-NEXT: 1 25 10.00 * idivq %rcx +# CHECK-NEXT: 8 35 2.00 * * idivq (%rax) +# CHECK-NEXT: 1 3 1.00 imulb %dil +# CHECK-NEXT: 2 8 1.00 * imulb (%rax) +# CHECK-NEXT: 4 4 1.00 imulw %di +# CHECK-NEXT: 5 9 1.00 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 2 8 1.00 * imulw (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $511, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $7, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 3 4 1.00 imull %edi +# CHECK-NEXT: 4 9 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 4 1.00 imulq %rdi +# CHECK-NEXT: 3 9 1.00 * imulq (%rax) +# CHECK-NEXT: 1 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 incb %dil +# CHECK-NEXT: 3 7 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.25 incw %di +# CHECK-NEXT: 3 7 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.25 incl %edi +# CHECK-NEXT: 3 7 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.25 incq %rdi +# CHECK-NEXT: 3 7 1.00 * * incq (%rax) +# CHECK-NEXT: 1 3 1.00 mulb %dil +# CHECK-NEXT: 2 8 1.00 * mulb (%rax) +# CHECK-NEXT: 4 4 1.00 mulw %si +# CHECK-NEXT: 5 9 1.00 * mulw (%rax) +# CHECK-NEXT: 3 4 1.00 mull %edx +# CHECK-NEXT: 4 9 1.00 * mull (%rax) +# CHECK-NEXT: 2 4 1.00 mulq %rcx +# CHECK-NEXT: 3 9 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.25 negb %dil +# CHECK-NEXT: 3 7 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.25 negw %si +# CHECK-NEXT: 3 7 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.25 negl %edx +# CHECK-NEXT: 3 7 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.25 negq %rcx +# CHECK-NEXT: 3 7 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 0.25 nop +# CHECK-NEXT: 1 1 0.25 nopw %di +# CHECK-NEXT: 1 1 0.25 nopw (%rcx) +# CHECK-NEXT: 1 1 0.25 nopl %esi +# CHECK-NEXT: 1 1 0.25 nopl (%r8) +# CHECK-NEXT: 1 1 0.25 nopq %rdx +# CHECK-NEXT: 1 1 0.25 nopq (%r9) # CHECK-NEXT: 3 3 0.75 rclb %dil # CHECK-NEXT: 3 3 0.75 rcrb %dil # CHECK-NEXT: 5 8 0.75 * rclb (%rax) @@ -779,7 +952,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 269.75 125.25 142.67 142.67 118.00 74.25 269.75 52.67 +# CHECK-NEXT: 50.00 - 339.25 219.75 165.17 165.17 130.00 125.25 304.75 56.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -891,6 +1064,87 @@ subq (%rax), %rdi # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btcq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btrq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btsq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - divb %dil +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - divb (%rax) +# CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divw %si +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - divw (%rax) +# CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divl %edx +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - divl (%rax) +# CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divq %rcx +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - divq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivb %dil +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - idivb (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivw %si +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - idivw (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivl %edx +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - idivl (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivq %rcx +# CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - idivq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - imulw %di +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - imulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulw %di, %di +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulw (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $511, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $511, (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $7, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $7, (%rax), %di +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - imull %edi +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - imull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imull %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $665536, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $665536, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $7, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $7, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - 1.00 - - imulq %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - 1.00 - - imulq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulq %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $7, (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - mulw (%rax) +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - mull %edx +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - mull (%rax) +# CHECK-NEXT: - - - 1.00 - - - 1.00 - - mulq %rcx +# CHECK-NEXT: - - - 1.00 0.50 0.50 - 1.00 - - mulq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negb (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negw %si +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negw (%r9) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negl %edx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negq %rcx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negq (%r10) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nop +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw (%rcx) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl %esi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq %rdx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq (%r9) # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb %dil # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax) diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s index 865bd2170d4..7171811df88 100644 --- a/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 2 4 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 2 4 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 2 4 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.50 decb %dil +# CHECK-NEXT: 2 5 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.50 decw %di +# CHECK-NEXT: 2 5 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.50 decl %edi +# CHECK-NEXT: 2 5 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.50 decq %rdi +# CHECK-NEXT: 2 5 1.00 * * decq (%rax) +# CHECK-NEXT: 1 12 12.00 * divb %dil +# CHECK-NEXT: 1 15 12.00 * * divb (%rax) +# CHECK-NEXT: 2 17 17.00 * divw %si +# CHECK-NEXT: 2 20 17.00 * * divw (%rax) +# CHECK-NEXT: 2 25 25.00 * divl %edx +# CHECK-NEXT: 2 28 25.00 * * divl (%rax) +# CHECK-NEXT: 2 41 41.00 * divq %rcx +# CHECK-NEXT: 2 44 41.00 * * divq (%rax) +# CHECK-NEXT: 1 12 12.00 * idivb %dil +# CHECK-NEXT: 1 15 12.00 * * idivb (%rax) +# CHECK-NEXT: 2 17 17.00 * idivw %si +# CHECK-NEXT: 2 20 17.00 * * idivw (%rax) +# CHECK-NEXT: 2 25 25.00 * idivl %edx +# CHECK-NEXT: 2 28 25.00 * * idivl (%rax) +# CHECK-NEXT: 2 41 41.00 * idivq %rcx +# CHECK-NEXT: 2 44 41.00 * * idivq (%rax) +# CHECK-NEXT: 2 3 1.00 imulb %dil +# CHECK-NEXT: 2 6 1.00 * imulb (%rax) +# CHECK-NEXT: 2 3 1.00 imulw %di +# CHECK-NEXT: 2 6 1.00 * imulw (%rax) +# CHECK-NEXT: 2 3 1.00 imulw %di, %di +# CHECK-NEXT: 2 6 1.00 * imulw (%rax), %di +# CHECK-NEXT: 2 3 1.00 imulw $511, %di, %di +# CHECK-NEXT: 2 6 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 2 3 1.00 imulw $7, %di, %di +# CHECK-NEXT: 2 6 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 2 3 1.00 imull %edi +# CHECK-NEXT: 2 6 1.00 * imull (%rax) +# CHECK-NEXT: 2 3 1.00 imull %edi, %edi +# CHECK-NEXT: 2 6 1.00 * imull (%rax), %edi +# CHECK-NEXT: 2 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 2 6 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 2 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 2 6 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 6 4.00 imulq %rdi +# CHECK-NEXT: 2 9 4.00 * imulq (%rax) +# CHECK-NEXT: 2 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 6 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 2 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 6 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 2 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 6 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 incb %dil +# CHECK-NEXT: 2 5 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.50 incw %di +# CHECK-NEXT: 2 5 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.50 incl %edi +# CHECK-NEXT: 2 5 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.50 incq %rdi +# CHECK-NEXT: 2 5 1.00 * * incq (%rax) +# CHECK-NEXT: 2 3 1.00 mulb %dil +# CHECK-NEXT: 2 6 1.00 * mulb (%rax) +# CHECK-NEXT: 2 3 1.00 mulw %si +# CHECK-NEXT: 2 6 1.00 * mulw (%rax) +# CHECK-NEXT: 2 3 1.00 mull %edx +# CHECK-NEXT: 2 6 1.00 * mull (%rax) +# CHECK-NEXT: 2 6 4.00 mulq %rcx +# CHECK-NEXT: 2 9 4.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.50 negb %dil +# CHECK-NEXT: 2 5 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.50 negw %si +# CHECK-NEXT: 2 5 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.50 negl %edx +# CHECK-NEXT: 2 5 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.50 negq %rcx +# CHECK-NEXT: 2 5 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 0.50 nop +# CHECK-NEXT: 1 1 0.50 nopw %di +# CHECK-NEXT: 1 1 0.50 nopw (%rcx) +# CHECK-NEXT: 1 1 0.50 nopl %esi +# CHECK-NEXT: 1 1 0.50 nopl (%r8) +# CHECK-NEXT: 1 1 0.50 nopq %rdx +# CHECK-NEXT: 1 1 0.50 nopq (%r9) # CHECK-NEXT: 1 1 0.50 rclb %dil # CHECK-NEXT: 1 1 0.50 rcrb %dil # CHECK-NEXT: 2 4 1.00 * rclb (%rax) @@ -783,7 +956,7 @@ subq (%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: 342.00 342.00 - - - - - 177.00 - 146.00 - - - - +# CHECK-NEXT: 357.50 407.50 380.00 - - - - 214.00 46.00 158.00 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -895,6 +1068,87 @@ subq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - btcq $7, (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - btrq $7, (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - btsq $7, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - decb %dil +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - decb (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - decw %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - decw (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - decl %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - decl (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - decq %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - decq (%rax) +# CHECK-NEXT: - 1.00 12.00 - - - - - - - - - - - divb %dil +# CHECK-NEXT: - 1.00 12.00 - - - - 1.00 - - - - - - divb (%rax) +# CHECK-NEXT: - 1.00 17.00 - - - - - - - - - - - divw %si +# CHECK-NEXT: - 1.00 17.00 - - - - 1.00 - - - - - - divw (%rax) +# CHECK-NEXT: - 1.00 25.00 - - - - - - - - - - - divl %edx +# CHECK-NEXT: - 1.00 25.00 - - - - 1.00 - - - - - - divl (%rax) +# CHECK-NEXT: - 1.00 41.00 - - - - - - - - - - - divq %rcx +# CHECK-NEXT: - 1.00 41.00 - - - - 1.00 - - - - - - divq (%rax) +# CHECK-NEXT: - 1.00 12.00 - - - - - - - - - - - idivb %dil +# CHECK-NEXT: - 1.00 12.00 - - - - 1.00 - - - - - - idivb (%rax) +# CHECK-NEXT: - 1.00 17.00 - - - - - - - - - - - idivw %si +# CHECK-NEXT: - 1.00 17.00 - - - - 1.00 - - - - - - idivw (%rax) +# CHECK-NEXT: - 1.00 25.00 - - - - - - - - - - - idivl %edx +# CHECK-NEXT: - 1.00 25.00 - - - - 1.00 - - - - - - idivl (%rax) +# CHECK-NEXT: - 1.00 41.00 - - - - - - - - - - - idivq %rcx +# CHECK-NEXT: - 1.00 41.00 - - - - 1.00 - - - - - - idivq (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulb %dil +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulb (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulw %di +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulw (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulw %di, %di +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulw (%rax), %di +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulw $511, %di, %di +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulw $511, (%rax), %di +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulw $7, %di, %di +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulw $7, (%rax), %di +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %edi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imull (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull %edi, %edi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imull (%rax), %edi +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull $665536, %edi, %edi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imull $665536, (%rax), %edi +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imull $7, %edi, %edi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imull $7, (%rax), %edi +# CHECK-NEXT: - 1.00 - - - - - - 4.00 - - - - - imulq %rdi +# CHECK-NEXT: - 1.00 - - - - - 1.00 4.00 - - - - - imulq (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulq %rdi, %rdi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulq (%rax), %rdi +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulq $665536, (%rax), %rdi +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - imulq $7, %rdi, %rdi +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - imulq $7, (%rax), %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - incb %dil +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - incb (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - incw %di +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - incw (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - incl %edi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - incl (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - incq %rdi +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - incq (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - mulb %dil +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - mulb (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - mulw %si +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - mulw (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 1.00 - - - - - mull %edx +# CHECK-NEXT: - 1.00 - - - - - 1.00 1.00 - - - - - mull (%rax) +# CHECK-NEXT: - 1.00 - - - - - - 4.00 - - - - - mulq %rcx +# CHECK-NEXT: - 1.00 - - - - - 1.00 4.00 - - - - - mulq (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - negb %dil +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - negb (%r8) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - negw %si +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - negw (%r9) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - negl %edx +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - negl (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - negq %rcx +# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - negq (%r10) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nop +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nopw %di +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nopw (%rcx) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nopl %esi +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nopl (%r8) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nopq %rdx +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - nopq (%r9) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rclb %dil # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rcrb %dil # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - rclb (%rax) diff --git a/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s index ae62d4c5219..4e775655a55 100644 --- a/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 4 7 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 4 7 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 4 7 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 decb %dil +# CHECK-NEXT: 3 7 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.25 decw %di +# CHECK-NEXT: 3 7 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.25 decl %edi +# CHECK-NEXT: 3 7 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.25 decq %rdi +# CHECK-NEXT: 3 7 1.00 * * decq (%rax) +# CHECK-NEXT: 9 22 1.00 * divb %dil +# CHECK-NEXT: 2 29 10.00 * * divb (%rax) +# CHECK-NEXT: 32 98 8.00 * divw %si +# CHECK-NEXT: 2 29 10.00 * * divw (%rax) +# CHECK-NEXT: 32 98 8.00 * divl %edx +# CHECK-NEXT: 2 29 10.00 * * divl (%rax) +# CHECK-NEXT: 32 98 8.00 * divq %rcx +# CHECK-NEXT: 2 29 10.00 * * divq (%rax) +# CHECK-NEXT: 9 23 1.00 * idivb %dil +# CHECK-NEXT: 2 29 10.00 * * idivb (%rax) +# CHECK-NEXT: 66 112 16.50 * idivw %si +# CHECK-NEXT: 2 29 10.00 * * idivw (%rax) +# CHECK-NEXT: 66 112 16.50 * idivl %edx +# CHECK-NEXT: 2 29 10.00 * * idivl (%rax) +# CHECK-NEXT: 66 112 16.50 * idivq %rcx +# CHECK-NEXT: 2 29 10.00 * * idivq (%rax) +# CHECK-NEXT: 1 3 1.00 imulb %dil +# CHECK-NEXT: 2 8 1.00 * imulb (%rax) +# CHECK-NEXT: 4 4 1.00 imulw %di +# CHECK-NEXT: 5 9 1.00 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 2 8 1.00 * imulw (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $511, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $7, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 3 4 1.00 imull %edi +# CHECK-NEXT: 4 9 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 4 1.00 imulq %rdi +# CHECK-NEXT: 3 9 1.00 * imulq (%rax) +# CHECK-NEXT: 1 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 incb %dil +# CHECK-NEXT: 3 7 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.25 incw %di +# CHECK-NEXT: 3 7 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.25 incl %edi +# CHECK-NEXT: 3 7 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.25 incq %rdi +# CHECK-NEXT: 3 7 1.00 * * incq (%rax) +# CHECK-NEXT: 1 3 1.00 mulb %dil +# CHECK-NEXT: 2 8 1.00 * mulb (%rax) +# CHECK-NEXT: 4 4 1.00 mulw %si +# CHECK-NEXT: 5 9 1.00 * mulw (%rax) +# CHECK-NEXT: 3 4 1.00 mull %edx +# CHECK-NEXT: 4 9 1.00 * mull (%rax) +# CHECK-NEXT: 2 4 1.00 mulq %rcx +# CHECK-NEXT: 3 9 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.25 negb %dil +# CHECK-NEXT: 3 7 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.25 negw %si +# CHECK-NEXT: 3 7 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.25 negl %edx +# CHECK-NEXT: 3 7 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.25 negq %rcx +# CHECK-NEXT: 3 7 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 0.25 nop +# CHECK-NEXT: 1 1 0.25 nopw %di +# CHECK-NEXT: 1 1 0.25 nopw (%rcx) +# CHECK-NEXT: 1 1 0.25 nopl %esi +# CHECK-NEXT: 1 1 0.25 nopl (%r8) +# CHECK-NEXT: 1 1 0.25 nopq %rdx +# CHECK-NEXT: 1 1 0.25 nopq (%r9) # CHECK-NEXT: 3 3 0.75 rclb %dil # CHECK-NEXT: 3 3 0.75 rcrb %dil # CHECK-NEXT: 5 9 0.75 * rclb (%rax) @@ -779,7 +952,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 275.25 130.75 133.67 133.67 109.00 79.75 275.25 49.67 +# CHECK-NEXT: 80.00 - 390.25 240.75 156.17 156.17 121.00 148.25 384.75 53.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -891,6 +1064,87 @@ subq (%rax), %rdi # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btcq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btrq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btsq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decq (%rax) +# CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - divb %dil +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divb (%rax) +# CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divw %si +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divw (%rax) +# CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divl %edx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divl (%rax) +# CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divq %rcx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divq (%rax) +# CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - idivb %dil +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - idivb (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivw %si +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - idivw (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivl %edx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - idivl (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivq %rcx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - idivq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - imulw %di +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - imulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulw %di, %di +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulw (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $511, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $511, (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $7, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $7, (%rax), %di +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - imull %edi +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - imull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imull %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $665536, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $665536, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $7, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $7, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - 1.00 - imulq %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - 1.00 - imulq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulq %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $7, (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - mulw (%rax) +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - mull %edx +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - mull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - 1.00 - mulq %rcx +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - 1.00 - mulq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negb (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negw %si +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negw (%r9) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negl %edx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negq %rcx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negq (%r10) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nop +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw (%rcx) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl %esi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq %rdx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq (%r9) # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb %dil # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax) diff --git a/test/tools/llvm-mca/X86/SLM/resources-x86_64.s b/test/tools/llvm-mca/X86/SLM/resources-x86_64.s index 1e9fd777213..9e11a077eb7 100644 --- a/test/tools/llvm-mca/X86/SLM/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SLM/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 2 4 2.00 * * btcq $7, (%rax) # CHECK-NEXT: 2 4 2.00 * * btrq $7, (%rax) # CHECK-NEXT: 2 4 2.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.50 decb %dil +# CHECK-NEXT: 2 5 2.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.50 decw %di +# CHECK-NEXT: 2 5 2.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.50 decl %edi +# CHECK-NEXT: 2 5 2.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.50 decq %rdi +# CHECK-NEXT: 2 5 2.00 * * decq (%rax) +# CHECK-NEXT: 1 25 25.00 * divb %dil +# CHECK-NEXT: 1 29 25.00 * * divb (%rax) +# CHECK-NEXT: 1 25 25.00 * divw %si +# CHECK-NEXT: 1 29 25.00 * * divw (%rax) +# CHECK-NEXT: 1 25 25.00 * divl %edx +# CHECK-NEXT: 1 29 25.00 * * divl (%rax) +# CHECK-NEXT: 1 25 25.00 * divq %rcx +# CHECK-NEXT: 1 29 25.00 * * divq (%rax) +# CHECK-NEXT: 1 25 25.00 * idivb %dil +# CHECK-NEXT: 1 29 25.00 * * idivb (%rax) +# CHECK-NEXT: 1 25 25.00 * idivw %si +# CHECK-NEXT: 1 29 25.00 * * idivw (%rax) +# CHECK-NEXT: 1 25 25.00 * idivl %edx +# CHECK-NEXT: 1 29 25.00 * * idivl (%rax) +# CHECK-NEXT: 1 25 25.00 * idivq %rcx +# CHECK-NEXT: 1 29 25.00 * * idivq (%rax) +# CHECK-NEXT: 1 3 1.00 imulb %dil +# CHECK-NEXT: 1 6 1.00 * imulb (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di +# CHECK-NEXT: 1 6 1.00 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 1 6 1.00 * imulw (%rax), %di +# CHECK-NEXT: 1 3 1.00 imulw $511, %di, %di +# CHECK-NEXT: 1 6 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 1 3 1.00 imulw $7, %di, %di +# CHECK-NEXT: 1 6 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 1 3 1.00 imull %edi +# CHECK-NEXT: 1 6 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 1 6 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 1 6 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 1 6 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imulq %rdi +# CHECK-NEXT: 1 6 1.00 * imulq (%rax) +# CHECK-NEXT: 1 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 1 6 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 1 6 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 1 6 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.50 incb %dil +# CHECK-NEXT: 2 5 2.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.50 incw %di +# CHECK-NEXT: 2 5 2.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.50 incl %edi +# CHECK-NEXT: 2 5 2.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.50 incq %rdi +# CHECK-NEXT: 2 5 2.00 * * incq (%rax) +# CHECK-NEXT: 1 3 1.00 mulb %dil +# CHECK-NEXT: 1 6 1.00 * mulb (%rax) +# CHECK-NEXT: 1 3 1.00 mulw %si +# CHECK-NEXT: 1 6 1.00 * mulw (%rax) +# CHECK-NEXT: 1 3 1.00 mull %edx +# CHECK-NEXT: 1 6 1.00 * mull (%rax) +# CHECK-NEXT: 1 3 1.00 mulq %rcx +# CHECK-NEXT: 1 6 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.50 negb %dil +# CHECK-NEXT: 2 5 2.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.50 negw %si +# CHECK-NEXT: 2 5 2.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.50 negl %edx +# CHECK-NEXT: 2 5 2.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.50 negq %rcx +# CHECK-NEXT: 2 5 2.00 * * negq (%r10) +# CHECK-NEXT: 1 1 - nop +# CHECK-NEXT: 1 1 - nopw %di +# CHECK-NEXT: 1 1 - nopw (%rcx) +# CHECK-NEXT: 1 1 - nopl %esi +# CHECK-NEXT: 1 1 - nopl (%r8) +# CHECK-NEXT: 1 1 - nopq %rdx +# CHECK-NEXT: 1 1 - nopq (%r9) # CHECK-NEXT: 1 1 1.00 rclb %dil # CHECK-NEXT: 1 1 1.00 rcrb %dil # CHECK-NEXT: 2 4 2.00 * rclb (%rax) @@ -777,7 +950,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] -# CHECK-NEXT: - - - - - 298.00 106.00 335.00 +# CHECK-NEXT: 400.00 - - - - 324.00 166.00 384.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: @@ -889,6 +1062,87 @@ subq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 2.00 btcq $7, (%rax) # CHECK-NEXT: - - - - - 0.50 0.50 2.00 btrq $7, (%rax) # CHECK-NEXT: - - - - - 0.50 0.50 2.00 btsq $7, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - decb %dil +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 decb (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - decw %di +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 decw (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - decl %edi +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 decl (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - decq %rdi +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 decq (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - divb %dil +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 divb (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - divw %si +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 divw (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - divl %edx +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 divl (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - divq %rcx +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 divq (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - idivb %dil +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 idivb (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - idivw %si +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 idivw (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - idivl %edx +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 idivl (%rax) +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 - idivq %rcx +# CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 idivq (%rax) +# CHECK-NEXT: - - - - - - 1.00 - imulb %dil +# CHECK-NEXT: - - - - - - 1.00 1.00 imulb (%rax) +# CHECK-NEXT: - - - - - - 1.00 - imulw %di +# CHECK-NEXT: - - - - - - 1.00 1.00 imulw (%rax) +# CHECK-NEXT: - - - - - - 1.00 - imulw %di, %di +# CHECK-NEXT: - - - - - - 1.00 1.00 imulw (%rax), %di +# CHECK-NEXT: - - - - - - 1.00 - imulw $511, %di, %di +# CHECK-NEXT: - - - - - - 1.00 1.00 imulw $511, (%rax), %di +# CHECK-NEXT: - - - - - - 1.00 - imulw $7, %di, %di +# CHECK-NEXT: - - - - - - 1.00 1.00 imulw $7, (%rax), %di +# CHECK-NEXT: - - - - - - 1.00 - imull %edi +# CHECK-NEXT: - - - - - - 1.00 1.00 imull (%rax) +# CHECK-NEXT: - - - - - - 1.00 - imull %edi, %edi +# CHECK-NEXT: - - - - - - 1.00 1.00 imull (%rax), %edi +# CHECK-NEXT: - - - - - - 1.00 - imull $665536, %edi, %edi +# CHECK-NEXT: - - - - - - 1.00 1.00 imull $665536, (%rax), %edi +# CHECK-NEXT: - - - - - - 1.00 - imull $7, %edi, %edi +# CHECK-NEXT: - - - - - - 1.00 1.00 imull $7, (%rax), %edi +# CHECK-NEXT: - - - - - - 1.00 - imulq %rdi +# CHECK-NEXT: - - - - - - 1.00 1.00 imulq (%rax) +# CHECK-NEXT: - - - - - - 1.00 - imulq %rdi, %rdi +# CHECK-NEXT: - - - - - - 1.00 1.00 imulq (%rax), %rdi +# CHECK-NEXT: - - - - - - 1.00 - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - - - - 1.00 1.00 imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - - - - 1.00 - imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - - - - 1.00 1.00 imulq $7, (%rax), %rdi +# CHECK-NEXT: - - - - - 0.50 0.50 - incb %dil +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 incb (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - incw %di +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 incw (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - incl %edi +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 incl (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - incq %rdi +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 incq (%rax) +# CHECK-NEXT: - - - - - - 1.00 - mulb %dil +# CHECK-NEXT: - - - - - - 1.00 1.00 mulb (%rax) +# CHECK-NEXT: - - - - - - 1.00 - mulw %si +# CHECK-NEXT: - - - - - - 1.00 1.00 mulw (%rax) +# CHECK-NEXT: - - - - - - 1.00 - mull %edx +# CHECK-NEXT: - - - - - - 1.00 1.00 mull (%rax) +# CHECK-NEXT: - - - - - - 1.00 - mulq %rcx +# CHECK-NEXT: - - - - - - 1.00 1.00 mulq (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - negb %dil +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 negb (%r8) +# CHECK-NEXT: - - - - - 0.50 0.50 - negw %si +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 negw (%r9) +# CHECK-NEXT: - - - - - 0.50 0.50 - negl %edx +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 negl (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - negq %rcx +# CHECK-NEXT: - - - - - 1.00 1.00 2.00 negq (%r10) +# CHECK-NEXT: - - - - - - - - nop +# CHECK-NEXT: - - - - - - - - nopw %di +# CHECK-NEXT: - - - - - - - - nopw (%rcx) +# CHECK-NEXT: - - - - - - - - nopl %esi +# CHECK-NEXT: - - - - - - - - nopl (%r8) +# CHECK-NEXT: - - - - - - - - nopq %rdx +# CHECK-NEXT: - - - - - - - - nopq (%r9) # CHECK-NEXT: - - - - - 1.00 - - rclb %dil # CHECK-NEXT: - - - - - 1.00 - - rcrb %dil # CHECK-NEXT: - - - - - 1.00 - 2.00 rclb (%rax) diff --git a/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s index f08f3a4a6d4..b1e6c640ed6 100644 --- a/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 4 7 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 4 7 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 4 7 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.33 decb %dil +# CHECK-NEXT: 3 7 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.33 decw %di +# CHECK-NEXT: 3 7 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.33 decl %edi +# CHECK-NEXT: 3 7 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.33 decq %rdi +# CHECK-NEXT: 3 7 1.00 * * decq (%rax) +# CHECK-NEXT: 1 25 10.00 * divb %dil +# CHECK-NEXT: 2 30 10.00 * * divb (%rax) +# CHECK-NEXT: 1 25 10.00 * divw %si +# CHECK-NEXT: 2 30 10.00 * * divw (%rax) +# CHECK-NEXT: 1 25 10.00 * divl %edx +# CHECK-NEXT: 2 30 10.00 * * divl (%rax) +# CHECK-NEXT: 1 25 10.00 * divq %rcx +# CHECK-NEXT: 2 30 10.00 * * divq (%rax) +# CHECK-NEXT: 1 25 10.00 * idivb %dil +# CHECK-NEXT: 2 30 10.00 * * idivb (%rax) +# CHECK-NEXT: 1 25 10.00 * idivw %si +# CHECK-NEXT: 2 30 10.00 * * idivw (%rax) +# CHECK-NEXT: 1 25 10.00 * idivl %edx +# CHECK-NEXT: 2 30 10.00 * * idivl (%rax) +# CHECK-NEXT: 1 25 10.00 * idivq %rcx +# CHECK-NEXT: 2 30 10.00 * * idivq (%rax) +# CHECK-NEXT: 1 3 1.00 imulb %dil +# CHECK-NEXT: 2 8 1.00 * imulb (%rax) +# CHECK-NEXT: 4 4 1.33 imulw %di +# CHECK-NEXT: 5 9 1.33 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 2 8 1.00 * imulw (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $511, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $7, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 3 4 1.00 imull %edi +# CHECK-NEXT: 4 9 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 4 1.00 imulq %rdi +# CHECK-NEXT: 3 9 1.00 * imulq (%rax) +# CHECK-NEXT: 1 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.33 incb %dil +# CHECK-NEXT: 3 7 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.33 incw %di +# CHECK-NEXT: 3 7 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.33 incl %edi +# CHECK-NEXT: 3 7 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.33 incq %rdi +# CHECK-NEXT: 3 7 1.00 * * incq (%rax) +# CHECK-NEXT: 1 3 1.00 mulb %dil +# CHECK-NEXT: 2 8 1.00 * mulb (%rax) +# CHECK-NEXT: 4 4 1.33 mulw %si +# CHECK-NEXT: 5 9 1.33 * mulw (%rax) +# CHECK-NEXT: 3 4 1.00 mull %edx +# CHECK-NEXT: 4 9 1.00 * mull (%rax) +# CHECK-NEXT: 2 4 1.00 mulq %rcx +# CHECK-NEXT: 3 9 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.33 negb %dil +# CHECK-NEXT: 3 7 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.33 negw %si +# CHECK-NEXT: 3 7 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.33 negl %edx +# CHECK-NEXT: 3 7 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.33 negq %rcx +# CHECK-NEXT: 3 7 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 - nop +# CHECK-NEXT: 1 1 - nopw %di +# CHECK-NEXT: 1 1 - nopw (%rcx) +# CHECK-NEXT: 1 1 - nopl %esi +# CHECK-NEXT: 1 1 - nopl (%r8) +# CHECK-NEXT: 1 1 - nopq %rdx +# CHECK-NEXT: 1 1 - nopq (%r9) # CHECK-NEXT: 1 1 0.50 rclb %dil # CHECK-NEXT: 1 1 0.50 rcrb %dil # CHECK-NEXT: 3 6 1.00 * rclb (%rax) @@ -777,7 +950,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 276.33 61.33 161.00 288.33 170.50 170.50 +# CHECK-NEXT: 160.00 - 313.67 108.67 173.00 305.67 195.00 195.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -889,6 +1062,87 @@ subq (%rax), %rdi # CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 btcq $7, (%rax) # CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 btrq $7, (%rax) # CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 btsq $7, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - decb %dil +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 decb (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - decw %di +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 decw (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - decl %edi +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 decl (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - decq %rdi +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 decq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - divb %dil +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divb (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - divw %si +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divw (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - divl %edx +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divl (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - divq %rcx +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - idivb %dil +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 idivb (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - idivw %si +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 idivw (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - idivl %edx +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 idivl (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - idivq %rcx +# CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 idivq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - imulb %dil +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imulb (%rax) +# CHECK-NEXT: - - 1.17 1.67 - 1.17 - - imulw %di +# CHECK-NEXT: - - 1.17 1.67 - 1.17 0.50 0.50 imulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - imulw %di, %di +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imulw (%rax), %di +# CHECK-NEXT: - - 0.33 1.33 - 0.33 - - imulw $511, %di, %di +# CHECK-NEXT: - - 0.33 1.33 - 0.33 0.50 0.50 imulw $511, (%rax), %di +# CHECK-NEXT: - - 0.33 1.33 - 0.33 - - imulw $7, %di, %di +# CHECK-NEXT: - - 0.33 1.33 - 0.33 0.50 0.50 imulw $7, (%rax), %di +# CHECK-NEXT: - - 0.83 1.33 - 0.83 - - imull %edi +# CHECK-NEXT: - - 0.83 1.33 - 0.83 0.50 0.50 imull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - imull %edi, %edi +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imull (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - imull $665536, %edi, %edi +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imull $665536, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - imull $7, %edi, %edi +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imull $7, (%rax), %edi +# CHECK-NEXT: - - 1.00 1.00 - - - - imulq %rdi +# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 imulq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - imulq %rdi, %rdi +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imulq (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 imulq $7, (%rax), %rdi +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - incb %dil +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 incb (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - incw %di +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 incw (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - incl %edi +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 incl (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - incq %rdi +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 incq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - mulb %dil +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 mulb (%rax) +# CHECK-NEXT: - - 1.17 1.67 - 1.17 - - mulw %si +# CHECK-NEXT: - - 1.17 1.67 - 1.17 0.50 0.50 mulw (%rax) +# CHECK-NEXT: - - 0.83 1.33 - 0.83 - - mull %edx +# CHECK-NEXT: - - 0.83 1.33 - 0.83 0.50 0.50 mull (%rax) +# CHECK-NEXT: - - 1.00 1.00 - - - - mulq %rcx +# CHECK-NEXT: - - 1.00 1.00 - - 0.50 0.50 mulq (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - negb %dil +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 negb (%r8) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - negw %si +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 negw (%r9) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - negl %edx +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 negl (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - negq %rcx +# CHECK-NEXT: - - 0.33 0.33 1.00 0.33 1.00 1.00 negq (%r10) +# CHECK-NEXT: - - - - - - - - nop +# CHECK-NEXT: - - - - - - - - nopw %di +# CHECK-NEXT: - - - - - - - - nopw (%rcx) +# CHECK-NEXT: - - - - - - - - nopl %esi +# CHECK-NEXT: - - - - - - - - nopl (%r8) +# CHECK-NEXT: - - - - - - - - nopq %rdx +# CHECK-NEXT: - - - - - - - - nopq (%r9) # CHECK-NEXT: - - 0.50 - - 0.50 - - rclb %dil # CHECK-NEXT: - - 0.50 - - 0.50 - - rcrb %dil # CHECK-NEXT: - - 0.50 - 1.00 0.50 1.00 1.00 rclb (%rax) diff --git a/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s index 24152f4078e..fe6ca2b114a 100644 --- a/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 4 6 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 4 6 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 4 6 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 decb %dil +# CHECK-NEXT: 3 7 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.25 decw %di +# CHECK-NEXT: 3 7 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.25 decl %edi +# CHECK-NEXT: 3 7 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.25 decq %rdi +# CHECK-NEXT: 3 7 1.00 * * decq (%rax) +# CHECK-NEXT: 1 25 10.00 * divb %dil +# CHECK-NEXT: 2 29 10.00 * * divb (%rax) +# CHECK-NEXT: 32 76 8.00 * divw %si +# CHECK-NEXT: 2 29 10.00 * * divw (%rax) +# CHECK-NEXT: 32 76 8.00 * divl %edx +# CHECK-NEXT: 2 29 10.00 * * divl (%rax) +# CHECK-NEXT: 32 76 8.00 * divq %rcx +# CHECK-NEXT: 2 29 10.00 * * divq (%rax) +# CHECK-NEXT: 1 25 10.00 * idivb %dil +# CHECK-NEXT: 8 28 4.00 * * idivb (%rax) +# CHECK-NEXT: 66 102 16.50 * idivw %si +# CHECK-NEXT: 8 28 4.00 * * idivw (%rax) +# CHECK-NEXT: 66 102 16.50 * idivl %edx +# CHECK-NEXT: 8 28 4.00 * * idivl (%rax) +# CHECK-NEXT: 66 102 16.50 * idivq %rcx +# CHECK-NEXT: 8 28 4.00 * * idivq (%rax) +# CHECK-NEXT: 1 3 1.00 imulb %dil +# CHECK-NEXT: 2 8 1.00 * imulb (%rax) +# CHECK-NEXT: 4 4 1.00 imulw %di +# CHECK-NEXT: 5 9 1.00 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 2 8 1.00 * imulw (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $511, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $7, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 3 4 1.00 imull %edi +# CHECK-NEXT: 4 9 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 4 1.00 imulq %rdi +# CHECK-NEXT: 3 9 1.00 * imulq (%rax) +# CHECK-NEXT: 1 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 incb %dil +# CHECK-NEXT: 3 7 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.25 incw %di +# CHECK-NEXT: 3 7 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.25 incl %edi +# CHECK-NEXT: 3 7 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.25 incq %rdi +# CHECK-NEXT: 3 7 1.00 * * incq (%rax) +# CHECK-NEXT: 1 3 1.00 mulb %dil +# CHECK-NEXT: 2 8 1.00 * mulb (%rax) +# CHECK-NEXT: 4 4 1.00 mulw %si +# CHECK-NEXT: 5 9 1.00 * mulw (%rax) +# CHECK-NEXT: 3 4 1.00 mull %edx +# CHECK-NEXT: 4 9 1.00 * mull (%rax) +# CHECK-NEXT: 2 4 1.00 mulq %rcx +# CHECK-NEXT: 3 9 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.25 negb %dil +# CHECK-NEXT: 3 7 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.25 negw %si +# CHECK-NEXT: 3 7 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.25 negl %edx +# CHECK-NEXT: 3 7 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.25 negq %rcx +# CHECK-NEXT: 3 7 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 0.25 nop +# CHECK-NEXT: 1 1 0.25 nopw %di +# CHECK-NEXT: 1 1 0.25 nopw (%rcx) +# CHECK-NEXT: 1 1 0.25 nopl %esi +# CHECK-NEXT: 1 1 0.25 nopl (%r8) +# CHECK-NEXT: 1 1 0.25 nopq %rdx +# CHECK-NEXT: 1 1 0.25 nopq (%r9) # CHECK-NEXT: 3 3 0.75 rclb %dil # CHECK-NEXT: 3 3 0.75 rcrb %dil # CHECK-NEXT: 5 8 0.75 * rclb (%rax) @@ -779,7 +952,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 286.75 108.25 142.67 142.67 118.00 57.25 286.75 52.67 +# CHECK-NEXT: 60.00 - 406.75 200.75 165.17 165.17 130.00 161.25 391.25 56.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -891,6 +1064,87 @@ subq (%rax), %rdi # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btcq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btrq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btsq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - divb %dil +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divb (%rax) +# CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divw %si +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divw (%rax) +# CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divl %edx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divl (%rax) +# CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divq %rcx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivb %dil +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivb (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivw %si +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivw (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivl %edx +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivl (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivq %rcx +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - imulw %di +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - imulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulw %di, %di +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulw (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $511, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $511, (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $7, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $7, (%rax), %di +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - imull %edi +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - imull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imull %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $665536, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $665536, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $7, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $7, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - 1.00 - - imulq %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - 1.00 - - imulq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulq %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $7, (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - mulw (%rax) +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - mull %edx +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - mull (%rax) +# CHECK-NEXT: - - - 1.00 - - - 1.00 - - mulq %rcx +# CHECK-NEXT: - - - 1.00 0.50 0.50 - 1.00 - - mulq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negb (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negw %si +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negw (%r9) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negl %edx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negq %rcx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negq (%r10) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nop +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw (%rcx) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl %esi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq %rdx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq (%r9) # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb %dil # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax) diff --git a/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s index 5b381ca8ad3..a8400136652 100644 --- a/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 4 6 1.00 * * btcq $7, (%rax) # CHECK-NEXT: 4 6 1.00 * * btrq $7, (%rax) # CHECK-NEXT: 4 6 1.00 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 decb %dil +# CHECK-NEXT: 3 7 1.00 * * decb (%rax) +# CHECK-NEXT: 1 1 0.25 decw %di +# CHECK-NEXT: 3 7 1.00 * * decw (%rax) +# CHECK-NEXT: 1 1 0.25 decl %edi +# CHECK-NEXT: 3 7 1.00 * * decl (%rax) +# CHECK-NEXT: 1 1 0.25 decq %rdi +# CHECK-NEXT: 3 7 1.00 * * decq (%rax) +# CHECK-NEXT: 1 25 10.00 * divb %dil +# CHECK-NEXT: 2 29 10.00 * * divb (%rax) +# CHECK-NEXT: 32 76 8.00 * divw %si +# CHECK-NEXT: 2 29 10.00 * * divw (%rax) +# CHECK-NEXT: 32 76 8.00 * divl %edx +# CHECK-NEXT: 2 29 10.00 * * divl (%rax) +# CHECK-NEXT: 32 76 8.00 * divq %rcx +# CHECK-NEXT: 2 29 10.00 * * divq (%rax) +# CHECK-NEXT: 1 25 10.00 * idivb %dil +# CHECK-NEXT: 8 28 4.00 * * idivb (%rax) +# CHECK-NEXT: 66 102 16.50 * idivw %si +# CHECK-NEXT: 8 28 4.00 * * idivw (%rax) +# CHECK-NEXT: 66 102 16.50 * idivl %edx +# CHECK-NEXT: 8 28 4.00 * * idivl (%rax) +# CHECK-NEXT: 66 102 16.50 * idivq %rcx +# CHECK-NEXT: 8 28 4.00 * * idivq (%rax) +# CHECK-NEXT: 1 3 1.00 imulb %dil +# CHECK-NEXT: 2 8 1.00 * imulb (%rax) +# CHECK-NEXT: 4 4 1.00 imulw %di +# CHECK-NEXT: 5 9 1.00 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $511, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 2 4 1.00 imulw $7, %di, %di +# CHECK-NEXT: 3 8 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 3 4 1.00 imull %edi +# CHECK-NEXT: 4 9 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 2 8 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 4 1.00 imulq %rdi +# CHECK-NEXT: 3 9 1.00 * imulq (%rax) +# CHECK-NEXT: 1 3 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 1 3 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 8 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 incb %dil +# CHECK-NEXT: 3 7 1.00 * * incb (%rax) +# CHECK-NEXT: 1 1 0.25 incw %di +# CHECK-NEXT: 3 7 1.00 * * incw (%rax) +# CHECK-NEXT: 1 1 0.25 incl %edi +# CHECK-NEXT: 3 7 1.00 * * incl (%rax) +# CHECK-NEXT: 1 1 0.25 incq %rdi +# CHECK-NEXT: 3 7 1.00 * * incq (%rax) +# CHECK-NEXT: 1 3 1.00 mulb %dil +# CHECK-NEXT: 2 8 1.00 * mulb (%rax) +# CHECK-NEXT: 4 4 1.00 mulw %si +# CHECK-NEXT: 5 9 1.00 * mulw (%rax) +# CHECK-NEXT: 3 4 1.00 mull %edx +# CHECK-NEXT: 4 9 1.00 * mull (%rax) +# CHECK-NEXT: 2 4 1.00 mulq %rcx +# CHECK-NEXT: 3 9 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.25 negb %dil +# CHECK-NEXT: 3 7 1.00 * * negb (%r8) +# CHECK-NEXT: 1 1 0.25 negw %si +# CHECK-NEXT: 3 7 1.00 * * negw (%r9) +# CHECK-NEXT: 1 1 0.25 negl %edx +# CHECK-NEXT: 3 7 1.00 * * negl (%rax) +# CHECK-NEXT: 1 1 0.25 negq %rcx +# CHECK-NEXT: 3 7 1.00 * * negq (%r10) +# CHECK-NEXT: 1 1 0.25 nop +# CHECK-NEXT: 1 1 0.25 nopw %di +# CHECK-NEXT: 1 1 0.25 nopw (%rcx) +# CHECK-NEXT: 1 1 0.25 nopl %esi +# CHECK-NEXT: 1 1 0.25 nopl (%r8) +# CHECK-NEXT: 1 1 0.25 nopq %rdx +# CHECK-NEXT: 1 1 0.25 nopq (%r9) # CHECK-NEXT: 3 3 0.75 rclb %dil # CHECK-NEXT: 3 3 0.75 rcrb %dil # CHECK-NEXT: 5 8 0.75 * rclb (%rax) @@ -779,7 +952,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 286.75 108.25 142.67 142.67 118.00 57.25 286.75 52.67 +# CHECK-NEXT: 60.00 - 407.00 201.00 165.17 165.17 130.00 161.50 391.50 56.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -891,6 +1064,87 @@ subq (%rax), %rdi # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btcq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btrq $7, (%rax) # CHECK-NEXT: - - 0.50 - 0.83 0.83 1.00 - 0.50 0.33 btsq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - decq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 decq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - divb %dil +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divb (%rax) +# CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divw %si +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divw (%rax) +# CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divl %edx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divl (%rax) +# CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divq %rcx +# CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divq (%rax) +# CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivb %dil +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivb (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivw %si +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivw (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivl %edx +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivl (%rax) +# CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivq %rcx +# CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - imulw %di +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - imulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulw %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $511, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $511, (%rax), %di +# CHECK-NEXT: - - 0.25 1.25 - - - 0.25 0.25 - imulw $7, %di, %di +# CHECK-NEXT: - - 0.25 1.25 0.50 0.50 - 0.25 0.25 - imulw $7, (%rax), %di +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - imull %edi +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - imull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imull %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $665536, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $665536, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - imull $7, %edi, %edi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imull $7, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - 1.00 - - imulq %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - 1.00 - - imulq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - imulq %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - imulq $7, (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incb (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incw %di +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incw (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incl %edi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - incq %rdi +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 incq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - mulb %dil +# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - mulb (%rax) +# CHECK-NEXT: - - 1.00 1.50 - - - 0.50 1.00 - mulw %si +# CHECK-NEXT: - - 1.00 1.50 0.50 0.50 - 0.50 1.00 - mulw (%rax) +# CHECK-NEXT: - - 0.75 1.25 - - - 0.25 0.75 - mull %edx +# CHECK-NEXT: - - 0.75 1.25 0.50 0.50 - 0.25 0.75 - mull (%rax) +# CHECK-NEXT: - - - 1.00 - - - 1.00 - - mulq %rcx +# CHECK-NEXT: - - - 1.00 0.50 0.50 - 1.00 - - mulq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negb %dil +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negb (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negw %si +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negw (%r9) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negl %edx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negl (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - negq %rcx +# CHECK-NEXT: - - 0.25 0.25 0.83 0.83 1.00 0.25 0.25 0.33 negq (%r10) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nop +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw %di +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopw (%rcx) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl %esi +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopl (%r8) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq %rdx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - nopq (%r9) # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb %dil # CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax) diff --git a/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s b/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s index 2da59ea1b75..e5f6cd1f5c2 100644 --- a/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s @@ -120,6 +120,98 @@ btcq $7, (%rax) btrq $7, (%rax) btsq $7, (%rax) +decb %dil +decb (%rax) +decw %di +decw (%rax) +decl %edi +decl (%rax) +decq %rdi +decq (%rax) + +divb %dil +divb (%rax) +divw %si +divw (%rax) +divl %edx +divl (%rax) +divq %rcx +divq (%rax) + +idivb %dil +idivb (%rax) +idivw %si +idivw (%rax) +idivl %edx +idivl (%rax) +idivq %rcx +idivq (%rax) + +imulb %dil +imulb (%rax) + +imulw %di +imulw (%rax) +imulw %di, %di +imulw (%rax), %di +imulw $511, %di, %di +imulw $511, (%rax), %di +imulw $7, %di, %di +imulw $7, (%rax), %di + +imull %edi +imull (%rax) +imull %edi, %edi +imull (%rax), %edi +imull $665536, %edi, %edi +imull $665536, (%rax), %edi +imull $7, %edi, %edi +imull $7, (%rax), %edi + +imulq %rdi +imulq (%rax) +imulq %rdi, %rdi +imulq (%rax), %rdi +imulq $665536, %rdi, %rdi +imulq $665536, (%rax), %rdi +imulq $7, %rdi, %rdi +imulq $7, (%rax), %rdi + +incb %dil +incb (%rax) +incw %di +incw (%rax) +incl %edi +incl (%rax) +incq %rdi +incq (%rax) + +mulb %dil +mulb (%rax) +mulw %si +mulw (%rax) +mull %edx +mull (%rax) +mulq %rcx +mulq (%rax) + +negb %dil +negb (%r8) +negw %si +negw (%r9) +negl %edx +negl (%rax) +negq %rcx +negq (%r10) + +nop +nopw %di +nopw (%rcx) +nopl %esi +nopl (%r8) +nopq %rdx +nopq (%r9) + rclb %dil rcrb %dil rclb (%rax) @@ -512,6 +604,87 @@ subq (%rax), %rdi # CHECK-NEXT: 2 6 0.50 * * btcq $7, (%rax) # CHECK-NEXT: 2 6 0.50 * * btrq $7, (%rax) # CHECK-NEXT: 2 6 0.50 * * btsq $7, (%rax) +# CHECK-NEXT: 1 1 0.25 decb %dil +# CHECK-NEXT: 2 5 0.50 * * decb (%rax) +# CHECK-NEXT: 1 1 0.25 decw %di +# CHECK-NEXT: 2 5 0.50 * * decw (%rax) +# CHECK-NEXT: 1 1 0.25 decl %edi +# CHECK-NEXT: 2 5 0.50 * * decl (%rax) +# CHECK-NEXT: 1 1 0.25 decq %rdi +# CHECK-NEXT: 2 5 0.50 * * decq (%rax) +# CHECK-NEXT: 1 15 1.00 * divb %dil +# CHECK-NEXT: 1 45 41.00 * * divb (%rax) +# CHECK-NEXT: 2 17 1.00 * divw %si +# CHECK-NEXT: 1 45 41.00 * * divw (%rax) +# CHECK-NEXT: 2 25 1.00 * divl %edx +# CHECK-NEXT: 1 45 41.00 * * divl (%rax) +# CHECK-NEXT: 2 41 1.00 * divq %rcx +# CHECK-NEXT: 1 45 41.00 * * divq (%rax) +# CHECK-NEXT: 1 15 1.00 * idivb %dil +# CHECK-NEXT: 1 45 41.00 * * idivb (%rax) +# CHECK-NEXT: 2 17 1.00 * idivw %si +# CHECK-NEXT: 1 45 41.00 * * idivw (%rax) +# CHECK-NEXT: 2 25 1.00 * idivl %edx +# CHECK-NEXT: 1 45 41.00 * * idivl (%rax) +# CHECK-NEXT: 2 41 1.00 * idivq %rcx +# CHECK-NEXT: 1 45 41.00 * * idivq (%rax) +# CHECK-NEXT: 1 4 1.00 imulb %dil +# CHECK-NEXT: 2 8 1.00 * imulb (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di +# CHECK-NEXT: 1 8 1.00 * imulw (%rax) +# CHECK-NEXT: 1 3 1.00 imulw %di, %di +# CHECK-NEXT: 1 3 1.00 * imulw (%rax), %di +# CHECK-NEXT: 1 3 1.00 imulw $511, %di, %di +# CHECK-NEXT: 1 3 1.00 * imulw $511, (%rax), %di +# CHECK-NEXT: 1 3 1.00 imulw $7, %di, %di +# CHECK-NEXT: 1 3 1.00 * imulw $7, (%rax), %di +# CHECK-NEXT: 1 3 1.00 imull %edi +# CHECK-NEXT: 1 8 1.00 * imull (%rax) +# CHECK-NEXT: 1 3 1.00 imull %edi, %edi +# CHECK-NEXT: 1 3 1.00 * imull (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: 1 3 1.00 * imull $665536, (%rax), %edi +# CHECK-NEXT: 1 3 1.00 imull $7, %edi, %edi +# CHECK-NEXT: 1 3 1.00 * imull $7, (%rax), %edi +# CHECK-NEXT: 2 4 1.00 imulq %rdi +# CHECK-NEXT: 2 9 1.00 * imulq (%rax) +# CHECK-NEXT: 2 4 1.00 imulq %rdi, %rdi +# CHECK-NEXT: 2 4 1.00 * imulq (%rax), %rdi +# CHECK-NEXT: 2 4 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: 2 4 1.00 * imulq $665536, (%rax), %rdi +# CHECK-NEXT: 2 4 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: 2 4 1.00 * imulq $7, (%rax), %rdi +# CHECK-NEXT: 1 1 0.25 incb %dil +# CHECK-NEXT: 2 5 0.50 * * incb (%rax) +# CHECK-NEXT: 1 1 0.25 incw %di +# CHECK-NEXT: 2 5 0.50 * * incw (%rax) +# CHECK-NEXT: 1 1 0.25 incl %edi +# CHECK-NEXT: 2 5 0.50 * * incl (%rax) +# CHECK-NEXT: 1 1 0.25 incq %rdi +# CHECK-NEXT: 2 5 0.50 * * incq (%rax) +# CHECK-NEXT: 1 4 1.00 mulb %dil +# CHECK-NEXT: 2 8 1.00 * mulb (%rax) +# CHECK-NEXT: 1 3 1.00 mulw %si +# CHECK-NEXT: 1 8 1.00 * mulw (%rax) +# CHECK-NEXT: 1 3 1.00 mull %edx +# CHECK-NEXT: 1 8 1.00 * mull (%rax) +# CHECK-NEXT: 2 4 1.00 mulq %rcx +# CHECK-NEXT: 2 9 1.00 * mulq (%rax) +# CHECK-NEXT: 1 1 0.25 negb %dil +# CHECK-NEXT: 2 5 0.50 * * negb (%r8) +# CHECK-NEXT: 1 1 0.25 negw %si +# CHECK-NEXT: 2 5 0.50 * * negw (%r9) +# CHECK-NEXT: 1 1 0.25 negl %edx +# CHECK-NEXT: 2 5 0.50 * * negl (%rax) +# CHECK-NEXT: 1 1 0.25 negq %rcx +# CHECK-NEXT: 2 5 0.50 * * negq (%r10) +# CHECK-NEXT: 1 1 - nop +# CHECK-NEXT: 1 1 - nopw %di +# CHECK-NEXT: 1 1 - nopw (%rcx) +# CHECK-NEXT: 1 1 - nopl %esi +# CHECK-NEXT: 1 1 - nopl (%r8) +# CHECK-NEXT: 1 1 - nopq %rdx +# CHECK-NEXT: 1 1 - nopq (%r9) # CHECK-NEXT: 1 1 0.25 rclb %dil # CHECK-NEXT: 1 1 0.25 rcrb %dil # CHECK-NEXT: 1 100 - * rclb (%rax) @@ -781,7 +954,7 @@ subq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: 93.00 93.00 81.00 81.00 81.00 81.00 - - - - - - +# CHECK-NEXT: 119.00 119.00 87.00 121.00 103.00 87.00 336.00 - - - - 34.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -893,6 +1066,87 @@ subq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - btcq $7, (%rax) # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - btrq $7, (%rax) # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - btsq $7, (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - decb %dil +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - decb (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - decw %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - decw (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - decl %edi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - decl (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - decq %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - decq (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - divb %dil +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - divb (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - divw %si +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - divw (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - divl %edx +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - divl (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - divq %rcx +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - divq (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - idivb %dil +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - idivb (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - idivw %si +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - idivw (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - idivl %edx +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - idivl (%rax) +# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - idivq %rcx +# CHECK-NEXT: 2.00 2.00 - - 1.00 - 41.00 - - - - - idivq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulb %dil +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 imulb (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw %di +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 imulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw %di, %di +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw (%rax), %di +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw $511, %di, %di +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw $511, (%rax), %di +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw $7, %di, %di +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw $7, (%rax), %di +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull %edi +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 imull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull %edi, %edi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull $665536, %edi, %edi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull $665536, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull $7, %edi, %edi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imull $7, (%rax), %edi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq %rdi +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 imulq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq %rdi, %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq $665536, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq $665536, (%rax), %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq $7, %rdi, %rdi +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulq $7, (%rax), %rdi +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - incb %dil +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - incb (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - incw %di +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - incw (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - incl %edi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - incl (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - incq %rdi +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - incq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 mulb %dil +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 mulb (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 mulw %si +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 mulw (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 mull %edx +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 mull (%rax) +# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 mulq %rcx +# CHECK-NEXT: 0.50 0.50 - 1.00 - - - - - - - 1.00 mulq (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - negb %dil +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - negb (%r8) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - negw %si +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - negw (%r9) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - negl %edx +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - negl (%rax) +# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - negq %rcx +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - negq (%r10) +# CHECK-NEXT: - - - - - - - - - - - - nop +# CHECK-NEXT: - - - - - - - - - - - - nopw %di +# CHECK-NEXT: - - - - - - - - - - - - nopw (%rcx) +# CHECK-NEXT: - - - - - - - - - - - - nopl %esi +# CHECK-NEXT: - - - - - - - - - - - - nopl (%r8) +# CHECK-NEXT: - - - - - - - - - - - - nopq %rdx +# CHECK-NEXT: - - - - - - - - - - - - nopq (%r9) # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - rclb %dil # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - rcrb %dil # CHECK-NEXT: - - - - - - - - - - - - rclb (%rax) -- 2.11.0