<div dir="ltr"><div dir="ltr">On Wed, Aug 29, 2018 at 12:16 PM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="gmail-">On Wed, 29 Aug 2018 at 07:51, Cameron McInally via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> The current thinking is that FNEG(X) and FSUB(-0.0, X) are not the same operation when X is a NaN or 0.<br>
<br>
</span>Do you mean denormals (when flushed) rather than 0 there? AFAIK it's<br>
OK for 0 itself.</blockquote><div><br></div><div style="font-size:12.800000190734863px">Bah, you're correct. 0s are fine. That's assuming the xform is always to FSUB(-0.0,X) and not FSUB(0.0,X).</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">NaNs are not ok. I.e.:</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">FNEG( NaN) = -NaN</div><div style="font-size:12.800000190734863px">FNEG(-NaN) =  NaN</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">FSUB(-0.0,  NaN) = NaN</div><div style="font-size:12.800000190734863px">FSUB(-0.0, -NaN) = NaN</div><div style="font-size:12.800000190734863px"><br></div><div><span style="font-size:12.800000190734863px">Thanks for the correction, Tim.</span> </div></div></div></div></div>