diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-07-14 02:01:53 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-07-14 02:01:53 +0000 |
commit | b468709c917c27059100dc77e6c3b024bdfc3484 (patch) | |
tree | 8c962aabe75753871da0ec47899860eb9fa521fc | |
parent | f6bc4ae4a1a2dbf986099ab7b74106e8d273cbe1 (diff) | |
download | external_llvm-b468709c917c27059100dc77e6c3b024bdfc3484.zip external_llvm-b468709c917c27059100dc77e6c3b024bdfc3484.tar.gz external_llvm-b468709c917c27059100dc77e6c3b024bdfc3484.tar.bz2 |
Fix trivial todo in instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75586 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/InstructionCombining.cpp | 3 | ||||
-rw-r--r-- | test/Transforms/InstCombine/mul.ll | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 838b33c..864b2fa 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/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 diff --git a/test/Transforms/InstCombine/mul.ll b/test/Transforms/InstCombine/mul.ll index 9b5f7a5..cd13803 100644 --- a/test/Transforms/InstCombine/mul.ll +++ b/test/Transforms/InstCombine/mul.ll @@ -83,3 +83,8 @@ define internal void @test13(<4 x float>*) { store <4 x float> %3, <4 x float>* %0, align 1 ret void } + +define <16 x i8> @test14(<16 x i8> %a) { + %b = mul <16 x i8> %a, zeroinitializer + ret <16 x i8> %b +} |