http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57057
Bug #: 57057 Summary: Bad optimization on x86 for minps and maxps Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: math...@gaunard.com When optimization -O1 or greater is enabled, minps and maxps will incorrectly deal with nan values. icc gives the correct result. See the attached C testcase, with -O0 it displays the correct result: res1 = (1.000000 1.000000 1.000000 1.000000) res2 = (-nan -nan -nan -nan) res3 = (1.000000 1.000000 1.000000 1.000000) res4 = (-nan -nan -nan -nan) With -O1 it displays res1 = (1.000000 1.000000 1.000000 1.000000) res2 = (1.000000 1.000000 1.000000 1.000000) res3 = (-nan -nan -nan -nan) res4 = (-nan -nan -nan -nan) The same also happens with the double-precision and AVX variants.