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.