http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47617
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-02-06 02:13:37 UTC --- I think you need to use -frounding-math. GCC assumes by default the rounding mode is round-to-nearest. See http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Optimize-Options.html#index-frounding_002dmath-819 .