diff --git a/lib/Transforms/InstCombine/InstructionCombining.cpp b/lib/Transforms/InstCombine/InstructionCombining.cpp index 390b63c1965..7f8c3ae5581 100644 --- a/lib/Transforms/InstCombine/InstructionCombining.cpp +++ b/lib/Transforms/InstCombine/InstructionCombining.cpp @@ -965,7 +965,7 @@ Value *InstCombiner::Descale(Value *Val, APInt Scale, bool &NoSignedWrap) { continue; } - if (Cast->getOperand(0)) { + if (Cast->getOpcode() == Instruction::Trunc) { // Op is truncated from a larger type, descale in the larger type. // Suppose Op = trunc X, and we descale X as Y * sext Scale. Then // trunc (Y * sext Scale) = (trunc Y) * Scale