aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2007-09-17 14:49:27 +0000
committerDan Gohman <gohman@apple.com>2007-09-17 14:49:27 +0000
commit5f6913cecd9f760c02754772cb57fa4d9a96624f (patch)
tree8df4f05f0cd6c727e0ea21516454c1e66e27cc94 /lib/Target
parent11f7bfbb834e42cd53a81a84a1dfc118ae17c9c5 (diff)
downloadexternal_llvm-5f6913cecd9f760c02754772cb57fa4d9a96624f.zip
external_llvm-5f6913cecd9f760c02754772cb57fa4d9a96624f.tar.gz
external_llvm-5f6913cecd9f760c02754772cb57fa4d9a96624f.tar.bz2
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
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/X86ISelLowering.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 55f37a6..3b4b4f9 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -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;
}
}