diff --git a/llvm/lib/Transforms/ExprTypeConvert.cpp b/llvm/lib/Transforms/ExprTypeConvert.cpp index 06added3770e..d8f6519bab84 100644 --- a/llvm/lib/Transforms/ExprTypeConvert.cpp +++ b/llvm/lib/Transforms/ExprTypeConvert.cpp @@ -190,9 +190,10 @@ static Value *ConvertExpressionToType(Value *V, const Type *Ty, case Instruction::Shl: case Instruction::Shr: - Res = new ShiftInst(cast(I)->getOpcode(), - ConvertExpressionToType(I->getOperand(0), Ty, VMC), + Res = new ShiftInst(cast(I)->getOpcode(), Dummy, I->getOperand(1), Name); + VMC.ExprMap[I] = Res; + Res->setOperand(0, ConvertExpressionToType(I->getOperand(0), Ty, VMC)); break; case Instruction::Load: {