Make FMA code cope with redundant negates (PR89956)
This patch fixes a case in which, due to forced missed optimisations
in earlier passes, we have:
_1 = a * b
_2 = -_1
_3 = -_1
_4 = _2 + _3
and treated _4 as two FNMA candidates, once via _2 and once via _3.
2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
gcc/
PR tree-optimization/89956
* tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
multiple negates of the same value.
gcc/testsuite/
PR tree-optimization/89956
* gfortran.dg/pr89956.f90: New test.
From-SVN: r270162