------- Comment #4 from rguenth at gcc dot gnu dot org 2008-01-04 14:08 ------- But forcing a to a reg before fixes this. Uros?
Index: i386.c =================================================================== --- i386.c (revision 131319) +++ i386.c (working copy) @@ -24238,6 +24238,7 @@ void ix86_emit_swsqrtsf (rtx res, rtx a, 1.0 / sqrt(a) = 0.5 * rsqrtss(a) * (3.0 - a * rsqrtss(a) * rsqrtss(a)) */ /* Compare a to zero. */ + a = force_reg (mode, a); emit_insn (gen_rtx_SET (VOIDmode, mask, gen_rtx_NE (mode, a, zero))); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34673