summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/scheduler-backtracking.ll
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-12-12 19:20:21 +0000
committerCraig Topper <craig.topper@intel.com>2018-12-12 19:20:21 +0000
commit4937adf75f024f5cbd3cc190d5bd57d1761aefc3 (patch)
treed7a7794e50161f74cfd6aa0c008d32296392121b /llvm/test/CodeGen/X86/scheduler-backtracking.ll
parent2ef6c46b2f9a2f9dce73d7b15bf837a2feb0bd8a (diff)
downloadbcm5719-llvm-4937adf75f024f5cbd3cc190d5bd57d1761aefc3.tar.gz
bcm5719-llvm-4937adf75f024f5cbd3cc190d5bd57d1761aefc3.zip
[X86] Emit SBB instead of SETCC_CARRY from LowerSELECT. Break false dependency on the SBB input.
I'm hoping we can just replace SETCC_CARRY with SBB. This is another step towards that. I've explicitly used zero as the input to the setcc to avoid a false dependency that we've had with the SETCC_CARRY. I changed one of the patterns that used NEG to instead use an explicit compare with 0 on the LHS. We needed the zero anyway to avoid the false dependency. The negate would clobber its input register. By using a CMP we can avoid that which could be useful. Differential Revision: https://reviews.llvm.org/D55414 llvm-svn: 348959
Diffstat (limited to 'llvm/test/CodeGen/X86/scheduler-backtracking.ll')
-rw-r--r--llvm/test/CodeGen/X86/scheduler-backtracking.ll20
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/test/CodeGen/X86/scheduler-backtracking.ll b/llvm/test/CodeGen/X86/scheduler-backtracking.ll
index 5af630f2091..cb8571bf61a 100644
--- a/llvm/test/CodeGen/X86/scheduler-backtracking.ll
+++ b/llvm/test/CodeGen/X86/scheduler-backtracking.ll
@@ -697,8 +697,8 @@ define i64 @test4(i64 %a, i64 %b) nounwind {
; ILP-NEXT: cmpq %rdi, %rsi
; ILP-NEXT: sbbq $0, %rdx
; ILP-NEXT: movl $0, %edx
-; ILP-NEXT: sbbq $0, %rdx
-; ILP-NEXT: sbbq $0, %rcx
+; ILP-NEXT: sbbq %rdx, %rdx
+; ILP-NEXT: sbbq %rcx, %rcx
; ILP-NEXT: setae %cl
; ILP-NEXT: movzbl %cl, %ecx
; ILP-NEXT: subq %rcx, %rax
@@ -713,8 +713,8 @@ define i64 @test4(i64 %a, i64 %b) nounwind {
; HYBRID-NEXT: cmpq %rdi, %rsi
; HYBRID-NEXT: sbbq $0, %rcx
; HYBRID-NEXT: movl $0, %ecx
-; HYBRID-NEXT: sbbq $0, %rcx
-; HYBRID-NEXT: sbbq $0, %rax
+; HYBRID-NEXT: sbbq %rcx, %rcx
+; HYBRID-NEXT: sbbq %rax, %rax
; HYBRID-NEXT: setae %al
; HYBRID-NEXT: movzbl %al, %ecx
; HYBRID-NEXT: movl $2, %eax
@@ -730,8 +730,8 @@ define i64 @test4(i64 %a, i64 %b) nounwind {
; BURR-NEXT: cmpq %rdi, %rsi
; BURR-NEXT: sbbq $0, %rcx
; BURR-NEXT: movl $0, %ecx
-; BURR-NEXT: sbbq $0, %rcx
-; BURR-NEXT: sbbq $0, %rax
+; BURR-NEXT: sbbq %rcx, %rcx
+; BURR-NEXT: sbbq %rax, %rax
; BURR-NEXT: setae %al
; BURR-NEXT: movzbl %al, %ecx
; BURR-NEXT: movl $2, %eax
@@ -747,8 +747,8 @@ define i64 @test4(i64 %a, i64 %b) nounwind {
; SRC-NEXT: cmpq %rdi, %rsi
; SRC-NEXT: sbbq $0, %rax
; SRC-NEXT: movl $0, %eax
-; SRC-NEXT: sbbq $0, %rax
-; SRC-NEXT: sbbq $0, %rcx
+; SRC-NEXT: sbbq %rax, %rax
+; SRC-NEXT: sbbq %rcx, %rcx
; SRC-NEXT: setae %al
; SRC-NEXT: movzbl %al, %ecx
; SRC-NEXT: movl $2, %eax
@@ -765,8 +765,8 @@ define i64 @test4(i64 %a, i64 %b) nounwind {
; LIN-NEXT: cmpq %rdi, %rsi
; LIN-NEXT: sbbq $0, %rdx
; LIN-NEXT: movl $0, %edx
-; LIN-NEXT: sbbq $0, %rdx
-; LIN-NEXT: sbbq $0, %rcx
+; LIN-NEXT: sbbq %rdx, %rdx
+; LIN-NEXT: sbbq %rcx, %rcx
; LIN-NEXT: setae %cl
; LIN-NEXT: movzbl %cl, %ecx
; LIN-NEXT: subq %rcx, %rax
OpenPOWER on IntegriCloud