Thanks, and yeah it looks cleaner now.<div><br></div><div>Alex<br><br><div class="gmail_quote">On Tue, Dec 27, 2011 at 1:32 AM, Nick Lewycky <span dir="ltr"><<a href="mailto:nicholas@mxc.ca">nicholas@mxc.ca</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 12/26/2011 09:04 PM, Alexander Malyshev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Adds the pattern for cos(-x) -> cos(x). Test file included.<br>
</blockquote>
<br></div>
+    // cos(-x) -> cos(x)<br>
+    Value *Op1 = CI->getArgOperand(0);<br>
+    if (BinaryOperator *BinExpr = dyn_cast<BinaryOperator>(Op1)) {<br>
+      if (ConstantFP *C = dyn_cast<ConstantFP>(BinExpr-><u></u>getOperand(0))) {<br>
+        if (BinExpr->getOpcode() == Instruction::FSub &&<br>
+            C->getValueAPF().isZero()) {<br>
<br>
I think you can simplify this using BinExpr->isFNeg()?<br>
<br>
This looks great overall, if that simplification works please resend an updated patch!<br>
<br>
Nick<br>
<br>
+          Value *X = BinExpr->getOperand(1);<br>
+          return B.CreateCall(Callee, X, "");<br>
+        }<br>
+      }<br>
+    }<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Alex<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">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/<u></u>mailman/listinfo/llvm-commits</a><br>
</blockquote>
<br>
</blockquote></div><br></div>