------- Comment #11 from vincent at vinc17 dot org 2008-09-06 22:19 ------- (In reply to comment #10) > The funny thing is that this only happens with -O2 or -O1 but not with -O0 ie > no optimization it is all correct , when we optimize the results start > varying.
Because with -O0, some values are stored to memory and re-read from memory, hence rounded to double precision (53-bit significand), a bit like with -ffloat-store. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37390