This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/12331] Incorrect floating-point result due to loss of significance
- From: "adam at irvine dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Sep 2003 19:27:09 -0000
- Subject: [Bug target/12331] Incorrect floating-point result due to loss of significance
- References: <20030918181632.12331.adam@irvine.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12331
------- Additional Comments From adam at irvine dot com 2003-09-18 19:27 -------
I do not understand why this bug, and similar bugs, are simply dismissed as
"expected behavior" when it is possible to reasonably generate code to make
things work correctly. In this case, the problem is the fstpl instruction that
stores an 80-bit float into a 64-bit temporary; since the Pentium has (as far as
I can tell from the processor manual) instructions to load and store 80-bit
floats form/to memory without rounding, there appears to be no good reason why
the compiler *must* generate the code that rounds; thus this seems to me to be a
bug, not simply a consequence of "excess precision in the FPU" or an "inherent
limitation of floating-point types" or the like.