<div dir="ltr">On 15 August 2013 16:19, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Previously, copy propagation would cause bitcast_f2u(abs(float)) to<br>
be performed in a single step, but the application of source modifiers<br>
(abs, neg) happens after type conversion, leading to incorrect results.<br>
<br>
That is, for bitcast_f2u(abs(float)) we would in fact generate code to<br>
do abs(bitcast_f2u(float)).<br>
<br>
For example, whereas bitcast_f2u(abs(float)) might result in a register<br>
argument such as<br>
(abs)g2.2<0,1,0>UD<br>
<br>
v2: Set interfered = true and break in register_coalesce instead of<br>
returning false.<br></blockquote><div><br></div><div>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br></div></div></div></div>