https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71842
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Mon, 11 Jul 2016, glisse at gcc dot gnu.org wrote: > double f(double x, double y){ return fma(x, y, 0.); } Would require -fno-signed-zeroes to be valid to optimize to x*y. > double g(double x, double y){ return fma(0., x, y); } Would require -ffinite-math-only -fno-signed-zeroes to be valid to optimize to y. Also the cases that might overflow / underflow / involve domain errors from infinities have issues with errno setting, though GCC currently ignores the possibility of fma setting errno.