From: Chris Lattner Date: Wed, 8 Feb 2006 01:20:23 +0000 (+0000) Subject: Fix a problem in my patch yesterday, causing a miscompilation of 176.gcc X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=62d1ade893b3ed93ed64cc5797a9e8117e197fa9;p=oota-llvm.git Fix a problem in my patch yesterday, causing a miscompilation of 176.gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26045 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 60583385317..1958e5647e1 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -464,7 +464,7 @@ static uint64_t ComputeMaskedNonZeroBits(Value *V, uint64_t Mask, // (shl X, C1) & C2 == 0 iff (X & C2 >>u C1) == 0 if (ConstantUInt *SA = dyn_cast(I->getOperand(1))) return ComputeMaskedNonZeroBits(I->getOperand(0),Mask >> SA->getValue(), - Depth+1); + Depth+1) << SA->getValue(); break; case Instruction::Shr: // (ushr X, C1) & C2 == 0 iff (-1 >> C1) & C2 == 0 @@ -472,7 +472,8 @@ static uint64_t ComputeMaskedNonZeroBits(Value *V, uint64_t Mask, if (I->getType()->isUnsigned()) { Mask <<= SA->getValue(); Mask &= I->getType()->getIntegralTypeMask(); - return ComputeMaskedNonZeroBits(I->getOperand(0), Mask, Depth+1); + return ComputeMaskedNonZeroBits(I->getOperand(0), Mask, Depth+1) + >> SA->getValue(); } break; }