Somehow fpu comparisons are used in SSE heavy code with -mfpmath=sse. Case in point (not from the testcase): 401447: fldz [snip lots of SSE only operations] 401535: movss %xmm2,0xc(%esp) 40153b: flds 0xc(%esp) 40153f: fcomip %st(1),%st 401541: jbe 401650
I couldn't reduce further the attached testcase, but it's really obvious something's wrong the generated code for fp_compare vs pristine_intersection. Switches: -O3 -march=k8 -mfpmath=sse -ffast-math -fomit-frame-pointer -- Summary: sub optimal use of fpu comparisons in SSE code Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbptbp at gmail dot com CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: cygwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19252