Floating point trouble with x86's extended precision
Jim Wilson
wilson@tuliptree.org
Fri Aug 22 02:43:00 GMT 2003
Bradley Lucier wrote:
> I, and other people, think that the inability to get predictable
> behavior from GCC (even from an option that you might not like to use
> because of speed or other issues) is a bug.
While I agreee that the current behaviour is a problem, I don't see any
good solution for it.
If we add explicit rounding after every operation, we effectively halve
the FPU performance, and we introduce double rounding errors. It isn't
clear if this is a better option, though it would be nice if it was
available as an option.
The best pragmatic solution is probably to set the rounding control to
64-bits, but then we lose access to long double which some people need,
and we still have excess precision problems for float. long double has
been available as part of GNU/Linux for so long that I don't think we
can take it away by default. That would upset too many people. This
can be done via a constructor, or by modifying the startup file.
Otherwise, the only solution is to avoid the x86 FP register stack.
This can be done by avoiding use of x86 hardware entirely. It can also
be done by using the SSE registers for FP.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
More information about the Gcc
mailing list