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.
|
// X < 0 -> X == 0, jump on sign.
|
||||||
X86CC = X86::COND_S;
|
X86CC = X86::COND_S;
|
||||||
return true;
|
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