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

Reply via email to