summaryrefslogtreecommitdiff
path: root/llvm
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-10-01 16:31:30 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-10-01 16:31:30 +0000
commit63bfd2ff43142fa36bdecd005fe6f705b0e2e625 (patch)
tree5255c8b831ac957e3417debcb102f87aa73dbea7 /llvm
parentd10d064286d662054315ef757cc13b0c2372942e (diff)
[X86][Btver2] Fix BT(C|R|S)mr & BT(C|R|S)mi schedule latency + uop counts
Match AMD Fam16h SOG + llvm-exegesis tests
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/X86ScheduleBtVer2.td4
-rw-r--r--llvm/test/CodeGen/X86/schedule-x86_64.ll36
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s36
3 files changed, 38 insertions, 38 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
index 8ac12c029f1..05f4172f086 100644
--- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
@@ -208,8 +208,8 @@ defm : X86WriteRes<WriteBitTest, [JALU01], 1, [1], 1>;
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]>;
diff --git a/llvm/test/CodeGen/X86/schedule-x86_64.ll b/llvm/test/CodeGen/X86/schedule-x86_64.ll
index 0e2af7889ae..78b8950175d 100644
--- a/llvm/test/CodeGen/X86/schedule-x86_64.ll
+++ b/llvm/test/CodeGen/X86/schedule-x86_64.ll
@@ -2850,17 +2850,17 @@ define void @test_bt_btc_btr_bts_16(i16 %a0, i16 %a1, i16 *%a2) optsize {
; 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 %a0, i32 %a1, i32 *%a2) optsize {
; 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 %a0, i64 %a1, i64 *%a2) optsize {
; 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]
;
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
index cb703173366..967d6927c23 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
@@ -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