<div dir="ltr"><div><div><div>Hi Carlos -<br><br></div>That sounds like a good patch.<br><br></div>Warning - following the link below may remove some of the educational joy for the immediate task at hand:<br><a href="http://reviews.llvm.org/D13076">http://reviews.llvm.org/D13076</a><br><br></div>...but I wouldn't worry too much, there's plenty more opportunity where that came from. :)<br><div><div><br></div><div>Feel free to post follow-up questions here or via a patch review on Phabricator:<br><a href="http://llvm.org/docs/Phabricator.html">http://llvm.org/docs/Phabricator.html</a><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 7, 2016 at 7:17 AM, Carlos Liam via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I'm interested in implementing an InstCombine optimization that I discovered and verified with Alive-NJ (with the help of the authors of Alive-NJ). The optimization is described in Alive-NJ format as follows:<br>
<br>
Name: xor->fsub<br>
Pre: isSignBit(C)<br>
%x = bitcast %A<br>
%y = xor %x, C<br>
%z = bitcast %y<br>
=><br>
%z = fsub -0.0, %A<br>
<br>
Effectively the optimization targets code that casts a float to an int with the same width, XORs the sign bit, and casts back to float, and replaces it with a subtraction from -0.0.<br>
<br>
I am not very familiar with C++ or the LLVM codebase so I would greatly appreciate some help in writing a patch adding this optimization.<br>
<br>
Thanks in advance.<br>
<br>
 - CL<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br></div>