http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48823
Steve Ellcey <sje at cup dot hp.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |sje at cup dot hp.com Resolution| |INVALID --- Comment #3 from Steve Ellcey <sje at cup dot hp.com> 2011-10-13 17:57:50 UTC --- The difference in results is due to the use of the fma instructions (fused multiply add). If you don't want the fma instructions to be used you should use the -ffp-contract=on flag. Otherwise GCC will use them and accept the slightly different floating point results due to no rounding being done between the multiply and the add in the fma instruction. GCC will also do other optimizations that may change the results of inexact floating point instructions. I am resolving this as invalid since this change in the least significant bit of an inexact floating point value is reasonable without fp-contract being on.