[Bug target/57057] Bad optimization on x86 for minps and maxps

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 25 08:14:00 GMT 2013


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Target|                            |x86_64-*-*, i?86-*-*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-04-25
     Ever Confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-25 08:14:23 UTC ---
That it's "fixed" with -O1 is because the different MINPS invocations are
CSEd and only the first one is carried out.

The issue here is that MINPS is not commutative, but the SMIN RTX code
is specified as being commutative.  Which means with !flag_finite_math_only
the x86 backend has to use an UNSPEC to expand __builtin_ia32_minps and
friends.



More information about the Gcc-bugs mailing list