[X86][Btver2] BTC/BTR/BTS instructions take 2uops not 1
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 27 Sep 2018 16:39:52 +0000 (16:39 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 27 Sep 2018 16:39:52 +0000 (16:39 +0000)
llvm-svn: 343234

llvm/lib/Target/X86/X86ScheduleBtVer2.td
llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s

index 64fbbb0..0c9410a 100644 (file)
@@ -202,7 +202,7 @@ def  : WriteRes<WriteSETCCStore, [JALU01,JSAGU]>;
 def  : WriteRes<WriteLAHFSAHF, [JALU01]>;
 
 defm : X86WriteRes<WriteBitTest,    [JALU01], 1, [1], 1>;
-defm : X86WriteRes<WriteBitTestSet, [JALU01], 1, [1], 1>;
+defm : X86WriteRes<WriteBitTestSet, [JALU01], 1, [1], 2>;
 
 // This is for simple LEAs with one or two input operands.
 def : WriteRes<WriteLEA, [JALU01]>;
index df1fa38..27280db 100644 (file)
@@ -966,49 +966,49 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        bswapl %eax
 # CHECK-NEXT:  1      1     0.50                        bswapq %rax
 # CHECK-NEXT:  1      1     0.50                        btw    %si, %di
-# CHECK-NEXT:  1      1     0.50                        btcw   %si, %di
-# CHECK-NEXT:  1      1     0.50                        btrw   %si, %di
-# CHECK-NEXT:  1      1     0.50                        btsw   %si, %di
+# CHECK-NEXT:  2      1     0.50                        btcw   %si, %di
+# CHECK-NEXT:  2      1     0.50                        btrw   %si, %di
+# CHECK-NEXT:  2      1     0.50                        btsw   %si, %di
 # CHECK-NEXT:  1      4     1.00    *                   btw    %si, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btsw   %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
-# CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
-# CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
-# CHECK-NEXT:  1      1     0.50                        btsw   $7, %di
+# CHECK-NEXT:  2      1     0.50                        btcw   $7, %di
+# CHECK-NEXT:  2      1     0.50                        btrw   $7, %di
+# CHECK-NEXT:  2      1     0.50                        btsw   $7, %di
 # CHECK-NEXT:  1      1     0.50    *                   btw    $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btsw   $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
-# CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
-# CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
-# CHECK-NEXT:  1      1     0.50                        btsl   %esi, %edi
+# CHECK-NEXT:  2      1     0.50                        btcl   %esi, %edi
+# CHECK-NEXT:  2      1     0.50                        btrl   %esi, %edi
+# CHECK-NEXT:  2      1     0.50                        btsl   %esi, %edi
 # CHECK-NEXT:  1      4     1.00    *                   btl    %esi, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btsl   %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
-# CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
-# CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
-# CHECK-NEXT:  1      1     0.50                        btsl   $7, %edi
+# CHECK-NEXT:  2      1     0.50                        btcl   $7, %edi
+# CHECK-NEXT:  2      1     0.50                        btrl   $7, %edi
+# CHECK-NEXT:  2      1     0.50                        btsl   $7, %edi
 # CHECK-NEXT:  1      1     0.50    *                   btl    $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btsl   $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
-# CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
-# CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
-# CHECK-NEXT:  1      1     0.50                        btsq   %rsi, %rdi
+# CHECK-NEXT:  2      1     0.50                        btcq   %rsi, %rdi
+# CHECK-NEXT:  2      1     0.50                        btrq   %rsi, %rdi
+# CHECK-NEXT:  2      1     0.50                        btsq   %rsi, %rdi
 # CHECK-NEXT:  1      4     1.00    *                   btq    %rsi, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btsq   %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
-# CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
-# CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
-# CHECK-NEXT:  1      1     0.50                        btsq   $7, %rdi
+# CHECK-NEXT:  2      1     0.50                        btcq   $7, %rdi
+# CHECK-NEXT:  2      1     0.50                        btrq   $7, %rdi
+# CHECK-NEXT:  2      1     0.50                        btsq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50    *                   btq    $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  2      4     1.00    *      *            btrq   $7, (%rax)