Fix InstCombine/2006-04-28-ShiftShiftLongLong.ll
authorChris Lattner <sabre@nondot.org>
Fri, 28 Apr 2006 22:21:41 +0000 (22:21 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 28 Apr 2006 22:21:41 +0000 (22:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28019 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/InstructionCombining.cpp

index 590e0d9d97eccc895871b160b9933b59d350e618..7e9c3841cce74b58fb3b2af128ea8847fea4d9bb 100644 (file)
@@ -4435,7 +4435,7 @@ Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, ConstantUInt *Op1,
       // this case, C1 == C2 and C1 is 8, 16, or 32.
       if (ShiftAmt1 == ShiftAmt2) {
         const Type *SExtType = 0;
-        switch (ShiftAmt1) {
+        switch (Op0->getType()->getPrimitiveSizeInBits() - ShiftAmt1) {
         case 8 : SExtType = Type::SByteTy; break;
         case 16: SExtType = Type::ShortTy; break;
         case 32: SExtType = Type::IntTy; break;