From 20e85b879b16a8ae6e04d47ec5b02ed2e1d924e7 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Fri, 13 Jul 2018 20:54:24 +0000 Subject: [PATCH] [X86] Try fixing r336768 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337043 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86ISelLowering.cpp | 2 +- test/CodeGen/X86/dagcombine-select.ll | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index cf22461a92f..82f52a3247f 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -33462,7 +33462,7 @@ static SDValue combineCMov(SDNode *N, SelectionDAG &DAG, if (AddOp1 && (AddOp2.getOpcode() == ISD::CTTZ_ZERO_UNDEF || AddOp2.getOpcode() == ISD::CTTZ)) { APInt Diff = Cnst->getAPIntValue() - AddOp1->getAPIntValue(); - if (CC == X86::COND_NE) { + if (CC == X86::COND_E) { Add = DAG.getNode(X86ISD::CMOV, DL, Add.getValueType(), AddOp2, DAG.getConstant(Diff, DL, Add.getValueType()), DAG.getConstant(CC, DL, MVT::i8), Cond); diff --git a/test/CodeGen/X86/dagcombine-select.ll b/test/CodeGen/X86/dagcombine-select.ll index ba9b9db6560..2b05154676e 100644 --- a/test/CodeGen/X86/dagcombine-select.ll +++ b/test/CodeGen/X86/dagcombine-select.ll @@ -287,7 +287,7 @@ define i64 @cttz_64_eq_select(i64 %v) nounwind { ; CHECK: # %bb.0: ; CHECK-NEXT: bsfq %rdi, %rcx ; CHECK-NEXT: movq $-1, %rax -; CHECK-NEXT: cmoveq %rcx, %rax +; CHECK-NEXT: cmovneq %rcx, %rax ; CHECK-NEXT: addq $6, %rax ; CHECK-NEXT: retq @@ -295,7 +295,7 @@ define i64 @cttz_64_eq_select(i64 %v) nounwind { ; BMI: # %bb.0: ; BMI-NEXT: tzcntq %rdi, %rcx ; BMI-NEXT: movq $-1, %rax -; BMI-NEXT: cmovbq %rcx, %rax +; BMI-NEXT: cmovaeq %rcx, %rax ; BMI-NEXT: addq $6, %rax ; BMI-NEXT: retq %cnt = tail call i64 @llvm.cttz.i64(i64 %v, i1 true) @@ -310,7 +310,7 @@ define i64 @cttz_64_ne_select(i64 %v) nounwind { ; CHECK: # %bb.0: ; CHECK-NEXT: bsfq %rdi, %rcx ; CHECK-NEXT: movq $-1, %rax -; CHECK-NEXT: cmoveq %rcx, %rax +; CHECK-NEXT: cmovneq %rcx, %rax ; CHECK-NEXT: addq $6, %rax ; CHECK-NEXT: retq @@ -318,7 +318,7 @@ define i64 @cttz_64_ne_select(i64 %v) nounwind { ; BMI: # %bb.0: ; BMI-NEXT: tzcntq %rdi, %rcx ; BMI-NEXT: movq $-1, %rax -; BMI-NEXT: cmovbq %rcx, %rax +; BMI-NEXT: cmovaeq %rcx, %rax ; BMI-NEXT: addq $6, %rax ; BMI-NEXT: retq %cnt = tail call i64 @llvm.cttz.i64(i64 %v, i1 true) @@ -334,7 +334,7 @@ define i32 @cttz_32_eq_select(i32 %v) nounwind { ; CHECK: # %bb.0: ; CHECK-NEXT: bsfl %edi, %ecx ; CHECK-NEXT: movl $-1, %eax -; CHECK-NEXT: cmovel %ecx, %eax +; CHECK-NEXT: cmovnel %ecx, %eax ; CHECK-NEXT: addl $6, %eax ; CHECK-NEXT: retq @@ -342,7 +342,7 @@ define i32 @cttz_32_eq_select(i32 %v) nounwind { ; BMI: # %bb.0: ; BMI-NEXT: tzcntl %edi, %ecx ; BMI-NEXT: movl $-1, %eax -; BMI-NEXT: cmovbl %ecx, %eax +; BMI-NEXT: cmovael %ecx, %eax ; BMI-NEXT: addl $6, %eax ; BMI-NEXT: retq %cnt = tail call i32 @llvm.cttz.i32(i32 %v, i1 true) @@ -357,7 +357,7 @@ define i32 @cttz_32_ne_select(i32 %v) nounwind { ; CHECK: # %bb.0: ; CHECK-NEXT: bsfl %edi, %ecx ; CHECK-NEXT: movl $-1, %eax -; CHECK-NEXT: cmovel %ecx, %eax +; CHECK-NEXT: cmovnel %ecx, %eax ; CHECK-NEXT: addl $6, %eax ; CHECK-NEXT: retq @@ -365,7 +365,7 @@ define i32 @cttz_32_ne_select(i32 %v) nounwind { ; BMI: # %bb.0: ; BMI-NEXT: tzcntl %edi, %ecx ; BMI-NEXT: movl $-1, %eax -; BMI-NEXT: cmovbl %ecx, %eax +; BMI-NEXT: cmovael %ecx, %eax ; BMI-NEXT: addl $6, %eax ; BMI-NEXT: retq %cnt = tail call i32 @llvm.cttz.i32(i32 %v, i1 true) -- 2.50.1