[llvm] r343494 - [X86][Btver2] Fix BT(C|R|S)mr & BT(C|R|S)mi schedule latency + uop counts

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 1 09:31:30 PDT 2018


Author: rksimon
Date: Mon Oct  1 09:31:30 2018
New Revision: 343494

URL: http://llvm.org/viewvc/llvm-project?rev=343494&view=rev
Log:
[X86][Btver2] Fix BT(C|R|S)mr & BT(C|R|S)mi schedule latency + uop counts

Match AMD Fam16h SOG + llvm-exegesis tests

Modified:
    llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
    llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll
    llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s

Modified: llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td?rev=343494&r1=343493&r2=343494&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td (original)
+++ llvm/trunk/lib/Target/X86/X86ScheduleBtVer2.td Mon Oct  1 09:31:30 2018
@@ -208,8 +208,8 @@ defm : X86WriteRes<WriteBitTest,
 defm : X86WriteRes<WriteBitTestImmLd,    [JALU01,JLAGU], 4, [1,1], 1>;
 defm : X86WriteRes<WriteBitTestRegLd,    [JALU01,JLAGU], 4, [1,1], 5>;
 defm : X86WriteRes<WriteBitTestSet,      [JALU01], 1, [1], 2>;
-defm : X86WriteRes<WriteBitTestSetImmLd, [JALU01,JLAGU], 3, [1,1], 1>;
-defm : X86WriteRes<WriteBitTestSetRegLd, [JALU01,JLAGU], 3, [1,1], 1>;
+defm : X86WriteRes<WriteBitTestSetImmLd, [JALU01,JLAGU], 4, [1,1], 3>;
+defm : X86WriteRes<WriteBitTestSetRegLd, [JALU01,JLAGU], 4, [1,1], 7>;
 
 // This is for simple LEAs with one or two input operands.
 def : WriteRes<WriteLEA, [JALU01]>;

Modified: llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll?rev=343494&r1=343493&r2=343494&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll (original)
+++ llvm/trunk/test/CodeGen/X86/schedule-x86_64.ll Mon Oct  1 09:31:30 2018
@@ -2850,17 +2850,17 @@ define void @test_bt_btc_btr_bts_16(i16
 ; BTVER2-NEXT:    btrw %si, %di # sched: [1:0.50]
 ; BTVER2-NEXT:    btsw %si, %di # sched: [1:0.50]
 ; BTVER2-NEXT:    btw %si, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btcw %si, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btrw %si, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btsw %si, (%rdx) # sched: [4:1.00]
+; BTVER2-NEXT:    btcw %si, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btrw %si, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btsw %si, (%rdx) # sched: [5:1.00]
 ; BTVER2-NEXT:    btw $7, %di # sched: [1:0.50]
 ; BTVER2-NEXT:    btcw $7, %di # sched: [1:0.50]
 ; BTVER2-NEXT:    btrw $7, %di # sched: [1:0.50]
 ; BTVER2-NEXT:    btsw $7, %di # sched: [1:0.50]
 ; BTVER2-NEXT:    btw $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btcw $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btrw $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btsw $7, (%rdx) # sched: [4:1.00]
+; BTVER2-NEXT:    btcw $7, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btrw $7, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btsw $7, (%rdx) # sched: [5:1.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
@@ -3073,17 +3073,17 @@ define void @test_bt_btc_btr_bts_32(i32
 ; BTVER2-NEXT:    btrl %esi, %edi # sched: [1:0.50]
 ; BTVER2-NEXT:    btsl %esi, %edi # sched: [1:0.50]
 ; BTVER2-NEXT:    btl %esi, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btcl %esi, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btrl %esi, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btsl %esi, (%rdx) # sched: [4:1.00]
+; BTVER2-NEXT:    btcl %esi, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btrl %esi, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btsl %esi, (%rdx) # sched: [5:1.00]
 ; BTVER2-NEXT:    btl $7, %edi # sched: [1:0.50]
 ; BTVER2-NEXT:    btcl $7, %edi # sched: [1:0.50]
 ; BTVER2-NEXT:    btrl $7, %edi # sched: [1:0.50]
 ; BTVER2-NEXT:    btsl $7, %edi # sched: [1:0.50]
 ; BTVER2-NEXT:    btl $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btcl $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btrl $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btsl $7, (%rdx) # sched: [4:1.00]
+; BTVER2-NEXT:    btcl $7, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btrl $7, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btsl $7, (%rdx) # sched: [5:1.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;
@@ -3296,17 +3296,17 @@ define void @test_bt_btc_btr_bts_64(i64
 ; BTVER2-NEXT:    btrq %rsi, %rdi # sched: [1:0.50]
 ; BTVER2-NEXT:    btsq %rsi, %rdi # sched: [1:0.50]
 ; BTVER2-NEXT:    btq %rsi, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btcq %rsi, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btrq %rsi, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btsq %rsi, (%rdx) # sched: [4:1.00]
+; BTVER2-NEXT:    btcq %rsi, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btrq %rsi, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btsq %rsi, (%rdx) # sched: [5:1.00]
 ; BTVER2-NEXT:    btq $7, %rdi # sched: [1:0.50]
 ; BTVER2-NEXT:    btcq $7, %rdi # sched: [1:0.50]
 ; BTVER2-NEXT:    btrq $7, %rdi # sched: [1:0.50]
 ; BTVER2-NEXT:    btsq $7, %rdi # sched: [1:0.50]
 ; BTVER2-NEXT:    btq $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btcq $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btrq $7, (%rdx) # sched: [4:1.00]
-; BTVER2-NEXT:    btsq $7, (%rdx) # sched: [4:1.00]
+; BTVER2-NEXT:    btcq $7, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btrq $7, (%rdx) # sched: [5:1.00]
+; BTVER2-NEXT:    btsq $7, (%rdx) # sched: [5:1.00]
 ; BTVER2-NEXT:    #NO_APP
 ; BTVER2-NEXT:    retq # sched: [4:1.00]
 ;

Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s?rev=343494&r1=343493&r2=343494&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s Mon Oct  1 09:31:30 2018
@@ -970,49 +970,49 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      1     0.50                        btrw	%si, %di
 # CHECK-NEXT:  2      1     0.50                        btsw	%si, %di
 # CHECK-NEXT:  5      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:  8      5     1.00    *      *            btcw	%si, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            btrw	%si, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            btsw	%si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw	$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      4     1.00    *                   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:  4      5     1.00    *      *            btcw	$7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            btrw	$7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            btsw	$7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl	%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:  5      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:  8      5     1.00    *      *            btcl	%esi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            btrl	%esi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            btsl	%esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl	$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      4     1.00    *                   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:  4      5     1.00    *      *            btcl	$7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            btrl	$7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            btsl	$7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq	%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:  5      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:  8      5     1.00    *      *            btcq	%rsi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            btrq	%rsi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            btsq	%rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq	$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      4     1.00    *                   btq	$7, (%rax)
-# 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:  4      5     1.00    *      *            btcq	$7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            btrq	$7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            btsq	$7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        cbtw
 # CHECK-NEXT:  1      1     0.50                        cwtl
 # CHECK-NEXT:  1      1     0.50                        cltq




More information about the llvm-commits mailing list