diff options
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp index 4a563b4eb75..08e16a7ee1a 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp @@ -62,7 +62,7 @@ static bool canEvaluateShiftedShift(unsigned FirstShiftAmt, Instruction *SecondShift, InstCombiner &IC, Instruction *CxtI) { assert(SecondShift->isLogicalShift() && "Unexpected instruction type"); - + // We need constant shifts. auto *SecondShiftConst = dyn_cast<ConstantInt>(SecondShift->getOperand(1)); if (!SecondShiftConst) @@ -256,6 +256,8 @@ static Value *GetShiftedValue(Value *V, unsigned NumBits, bool isLeftShift, BO->setHasNoSignedWrap(false); return BO; } + // FIXME: This is almost identical to the SHL case. Refactor both cases into + // a helper function. case Instruction::LShr: { BinaryOperator *BO = cast<BinaryOperator>(I); unsigned TypeWidth = BO->getType()->getScalarSizeInBits(); |