https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116891
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[12/13/14/15 Regression] |[12/13/14/15 Regression] |invalid optimization of |invalid optimization of |-fma(-x,y,-z) when -03 and |-fma(-x,x,-z) when -03 and |-frounding-math are used |-frounding-math are used --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Simplified testcase: ``` double f(double ae, double ax) { return -__builtin_fma( -ax, ax, -ae ); } ``` That is pushing the outer negate into FMA is not valid due to addition/multiply being in infinite precision.