[Bug middle-end/33187] Missed cmove opportunity
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Aug 25 12:39:00 GMT 2007
------- 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
More information about the Gcc-bugs
mailing list