[Bug target/14384] Invalid use of extra precision floating-point with -O0 optimization
wilson at specifixinc dot com
Thu Mar 11 02:34:00 GMT 2004
------- Additional Comments From wilson at specifixinc dot com 2004-03-11 02:34 -------
Subject: Re: Invalid use of extra precision floating-point
with -O0 optimization
anz at obs-nice dot fr wrote:
> This even simpler code shows that gcc doesn't round an expression to (float)
> keeps the extra precision even when an explicit cast is present, where it
> shouldn't be allowed to do so.
Yes. As I explained a week ago, this is the excess-precision problem
that has been known for over a decade. There is no easy solution in the
compiler because the design of the x86 FP register stack is flawed. You
either have to use a compiler workaround, or else you have to complain
to Intel, or else you have to stop doing FP work on the x86 FP register
Or you could try writing a fix for gcc yourself, but this will be hard,
and will hurt performance, and will introduce double-rounding errors.
So you may still have problems even with a fix. That is why we haven't
already done it.
Continuing to complain to us will only annoy us. We can't fix it.
More information about the Gcc-bugs