mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Emit integer x<1 as x<=0, as comparisons with zero (now includeing
64-bit) can use test instead of cmp with an immediate. llvm-svn: 42026
This commit is contained in:
parent
b9449c9118
commit
1aeaeec570
@ -1546,6 +1546,11 @@ static bool translateX86CC(ISD::CondCode SetCCOpcode, bool isFP,
|
||||
// X < 0 -> X == 0, jump on sign.
|
||||
X86CC = X86::COND_S;
|
||||
return true;
|
||||
} else if (SetCCOpcode == ISD::SETLT && RHSC->getValue() == 1) {
|
||||
// X < 1 -> X <= 0
|
||||
RHS = DAG.getConstant(0, RHS.getValueType());
|
||||
X86CC = X86::COND_LE;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
7
test/CodeGen/X86/cmp1.ll
Normal file
7
test/CodeGen/X86/cmp1.ll
Normal file
@ -0,0 +1,7 @@
|
||||
; RUN: llvm-as < %s | llc -march=x86-64 | grep -v cmp
|
||||
|
||||
define i64 @foo(i64 %x) {
|
||||
%t = icmp slt i64 %x, 1
|
||||
%r = zext i1 %t to i64
|
||||
ret i64 %r
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user