diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/InstructionCombining.cpp | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp index 838b33cb23c..864b2fa5ee0 100644 --- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp @@ -2702,7 +2702,8 @@ Instruction *InstCombiner::visitMul(BinaryOperator &I) {                   Context->getConstantInt(Op0->getType(), Val.logBase2()));        }      } else if (isa<VectorType>(Op1->getType())) { -      // TODO: If Op1 is all zeros and Op0 is all finite, return all zeros. +      if (Op1->isNullValue()) +        return ReplaceInstUsesWith(I, Op1);        if (ConstantVector *Op1V = dyn_cast<ConstantVector>(Op1)) {          if (Op1V->isAllOnesValue())              // X * -1 == 0 - X | 

