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 #,
...