From: Zhou Sheng Date: Fri, 23 Mar 2007 03:13:21 +0000 (+0000) Subject: Make the "KnownZero ^ TypeMask" computation just once. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f62cc9f9e5ddd95adcb0f7317ef4458bbdbebffd;p=oota-llvm.git Make the "KnownZero ^ TypeMask" computation just once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35276 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 6d4a8ddb265..9713bc8a37d 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -7136,9 +7136,10 @@ Instruction *InstCombiner::commonIntCastTransforms(CastInst &CI) { if (pred != ICmpInst::ICMP_NE && pred != ICmpInst::ICMP_EQ) break; - if ((KnownZero^TypeMask).isPowerOf2()) { // Exactly 1 possible 1? + APInt KnownZeroMask(KnownZero ^ TypeMask); + if (KnownZeroMask.isPowerOf2()) { // Exactly 1 possible 1? bool isNE = pred == ICmpInst::ICMP_NE; - if (Op1CV != 0 && (Op1CV != (KnownZero^TypeMask))) { + if (Op1CV != 0 && (Op1CV != KnownZeroMask)) { // (X&4) == 2 --> false // (X&4) != 2 --> true Constant *Res = ConstantInt::get(Type::Int1Ty, isNE); @@ -7146,7 +7147,7 @@ Instruction *InstCombiner::commonIntCastTransforms(CastInst &CI) { return ReplaceInstUsesWith(CI, Res); } - unsigned ShiftAmt = (KnownZero^TypeMask).logBase2(); + unsigned ShiftAmt = KnownZeroMask.logBase2(); Value *In = Op0; if (ShiftAmt) { // Perform a logical shr by shiftamt.