<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Dec 1, 2015 at 3:20 PM Hal Finkel <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
No; and how does this even help? As was pointed out, there are actually two sign bits to flip.<br></blockquote><div><br></div><div>Sorry, I should have read the "Extended precision" format. It turns out (bitcast (fabs x)) should translate to something like (pseudo code):</div><div><br></div><div>i128 x;<br></div><div>populate x...</div><div>u64 hi_signbit_mask = 0x8000000000000000;</div><div>x.lo ^= x.hi & hi_signbit_mask;</div><div><div>x.hi &= ~hi_signbit_mask;</div></div><div>return x;</div><div><br></div><div>...and (bitcast (fneg x)) should translate to (xor (bitcast x) 0x80000000000000008000000000000000).</div><div><br></div><div>These are quite different from the current generic combiners and probably deserve separate code.</div></div></div>