From aa3e15784573a560b89478d72dcb108096a82df5 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 16 Nov 2008 05:14:43 +0000 Subject: [PATCH] do some computation with apints instead of ConstantInts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59401 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/InstructionCombining.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index a8dcfa447da..acea4bd49a5 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -3590,16 +3590,15 @@ Instruction *InstCombiner::FoldAndOfICmps(Instruction &I, return 0; // Ensure that the larger constant is on the RHS. - ICmpInst::Predicate GT; + bool ShouldSwap; if (ICmpInst::isSignedPredicate(LHSCC) || (ICmpInst::isEquality(LHSCC) && ICmpInst::isSignedPredicate(RHSCC))) - GT = ICmpInst::ICMP_SGT; + ShouldSwap = LHSCst->getValue().sgt(RHSCst->getValue()); else - GT = ICmpInst::ICMP_UGT; - - Constant *Cmp = ConstantExpr::getICmp(GT, LHSCst, RHSCst); - if (cast(Cmp)->getZExtValue()) { + ShouldSwap = LHSCst->getValue().ugt(RHSCst->getValue()); + + if (ShouldSwap) { std::swap(LHS, RHS); std::swap(LHSCst, RHSCst); std::swap(LHSCC, RHSCC);