mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42026 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
11f7bfbb83
commit
5f6913cecd
@ -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