http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59961
--- Comment #3 from Olaf <olaf at robots dot ox.ac.uk> --- Well... naive me found it quite surprising and unexpected that the following two lines produce grossly different results: double result1 = -s1*d1 + s2*d2; double result2 = s2*d2 - s1*d1; ...but never mind.