------- Comment #1 from ubizjak at gmail dot com  2007-08-25 12:39 -------
There is a small problem in combine. It tries to combine insn 17 and 18, but:

Failed to match this instruction:
(set (reg:DF 58 [ D.1658 ])
    (const_double:DF -1.0e+0 [-0x0.8p+1]))
Failed to match this instruction:
(set (reg:DF 58 [ D.1658 ])
    (const_double:DF -1.0e+0 [-0x0.8p+1]))

It looks to me, that in the second case combine "over-optimizes" the combined
instruction, failing to check for:

(set (reg:DF 58 [ D.1658 ])
        (float_extend:DF (mem/u/c/i:SF (symbol_ref/u:SI ("*.LC2")))))

which just happens to be valid insn for i387 and as such also appropriate for
ifcvt cmove transformation in the second ifcvt pass (after combine).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33187

Reply via email to