Get the number of bits to set in a mask correct for a shl/lshr transform.
authorReid Spencer <rspencer@reidspencer.com>
Mon, 26 Mar 2007 17:18:58 +0000 (17:18 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 26 Mar 2007 17:18:58 +0000 (17:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35357 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/InstructionCombining.cpp

index 586c7b1fb10cb0a9ded11d9f880b40b8a962d71c..78446bc67fb963c7e586e975bfda0450bded36ea 100644 (file)
@@ -5858,7 +5858,7 @@ Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, ConstantInt *Op1,
           BinaryOperator::createLShr(X, ConstantInt::get(Ty, ShiftDiff));
         InsertNewInstBefore(Shift, I);
         
-        APInt Mask(APInt::getLowBitsSet(TypeBits, ShiftAmt2));
+        APInt Mask(APInt::getLowBitsSet(TypeBits, TypeBits - ShiftAmt2));
         return BinaryOperator::createAnd(Shift, ConstantInt::get(Mask));
       }