What if it's a vector of float? NAN * 0 != 0 which is what the comment was alluding to with "finite".<br><br><div class="gmail_quote">2009/7/13 Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Author: efriedma<br>
Date: Mon Jul 13 21:01:53 2009<br>
New Revision: 75586<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=75586&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=75586&view=rev</a><br>
Log:<br>
Fix trivial todo in instcombine.<br>
<br>
<br>
Modified:<br>
    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp<br>
    llvm/trunk/test/Transforms/InstCombine/mul.ll<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=75586&r1=75585&r2=75586&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=75586&r1=75585&r2=75586&view=diff</a><br>


<br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Jul 13 21:01:53 2009<br>
@@ -2702,7 +2702,8 @@<br>
                  Context->getConstantInt(Op0->getType(), Val.logBase2()));<br>
       }<br>
     } else if (isa<VectorType>(Op1->getType())) {<br>
-      // TODO: If Op1 is all zeros and Op0 is all finite, return all zeros.<br>
+      if (Op1->isNullValue())<br>
+        return ReplaceInstUsesWith(I, Op1);<br>
<br>
       if (ConstantVector *Op1V = dyn_cast<ConstantVector>(Op1)) {<br>
         if (Op1V->isAllOnesValue())              // X * -1 == 0 - X<br>
<br>
Modified: llvm/trunk/test/Transforms/InstCombine/mul.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/mul.ll?rev=75586&r1=75585&r2=75586&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/mul.ll?rev=75586&r1=75585&r2=75586&view=diff</a><br>


<br>
==============================================================================<br>
--- llvm/trunk/test/Transforms/InstCombine/mul.ll (original)<br>
+++ llvm/trunk/test/Transforms/InstCombine/mul.ll Mon Jul 13 21:01:53 2009<br>
@@ -83,3 +83,8 @@<br>
        store <4 x float> %3, <4 x float>* %0, align 1<br>
        ret void<br>
 }<br>
+<br>
+define <16 x i8> @test14(<16 x i8> %a) {<br>
+        %b = mul <16 x i8> %a, zeroinitializer<br>
+        ret <16 x i8> %b<br>
+}<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br>