http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48397
Zdenek Sojka <zsojka at seznam dot cz> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|gcc.target/i386/pr46419.c |gcc.target/i386/pr46419.c |FAILs with |FAILs with |-fsched2-use-superblocks |-fsched2-use-superblocks - |-fno-tree-loop-ivcanon |mixing FPU and MMX code |--param |without emms |max-predicted-iterations=1 | |-m32 | --- Comment #1 from Zdenek Sojka <zsojka at seznam dot cz> 2011-04-03 17:30:28 UTC --- Another, different set of flags to reproduce the failure: $ gcc -O -fsched2-use-superblocks -fschedule-insns2 --param max-jump-thread-duplication-stmts=1 -m32 testcase.c $ ./a.out Aborted In this case, x87 and MMX and SSE instructions are mixed in the code: ... .L8: pxor mm0, mm0 # tmp148 movq mm1, QWORD PTR [esp+8] # tmp147, %sfp xorps xmm0, xmm0 # tmp155 punpcklbw mm1, mm0 # tmp147, tmp148 pxor mm0, mm0 # tmp151 fld DWORD PTR .LC1 # fld DWORD PTR [esp+20] # out fucomip st, st(1) #, fstp st(0) # fld DWORD PTR .LC2 # jp .L10 #, movq mm2, mm1 # tmp150, D.6008 punpcklwd mm2, mm0 # tmp150, tmp151 fld DWORD PTR [esp+24] # out punpckhwd mm1, mm0 # tmp152, tmp151 jne .L11 #, ...