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.

Reply via email to