-mfpmath=sse -mno-80387 troubles

Uros Bizjak uros@kss-loka.si
Thu Jan 27 15:41:00 GMT 2005


Hello!

>I'm yet again into troubles with -mfpmath=sse and with various gcc4
>versions, a 15 days old cvs checkout included.
>I have a function that when forced to be inlined in conjunction with
>-mno-80387 causes an ICE. If i remove the -mno-80387 switch, no more
>ICE, but i'm seeing a whole bunch of fpu comparisons and load/store
>(not in that function by nearby) the net result being a ~10%
>performance drop.
>
>  
>
These are now known problems :)

>a) should i fill a bug report for those ICEs (given that they happen
>in unusual condtions)
>b) i've already reported about the SSE/387 mixing, and it's been
>closed, and i've seen new PR about that (ie
>http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19653) and some patches
>flying around... so the question is should i report again, try an even
>more recent gcc or wait a bit?
>
>  
>
In latest CVS, these problems should be fixed. Please try to compile 
your code with the latest CVS gcc, and if it still crashes, please file 
a bugreport. If you spot an x87 constant, please add a testcase to 
PR19653. However ...

>Here's the kind of ICE i'm running into.
>src\raytrace_mono.cpp(365): error:  insn does not satisfy its constraints:
>(insn 965 933 966 12 src\raytrace_mono.cpp:358 (set (reg:CCFPU 17 flags)
>        (compare:CCFPU (reg:SF 9 st(1))
>            (reg:SF 8 st))) 28 {*cmpfp_iu_sse_only} (nil)
>    (expr_list:REG_DEAD (reg:SF 9 st(1))
>        (expr_list:REG_DEAD (reg:SF 8 st)
>            (nil))))
>src\raytrace_mono.cpp(365): internal compiler error:  in
>build_def_use, at regrename.c:761
>
... this problem should be fixed in CVS a couple of weeks ago by 
http://gcc.gnu.org/ml/gcc-cvs/2005-01/msg00466.html and a pack of 
follow-up patches.

Uros.



More information about the Gcc mailing list