https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60962

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Of course the inconsistency with

      /* We want to canonicalize to positive real constants.  Pretend
         that only negative ones can be easily negated.  */

is that we don't transform x + -2.*y to x - 2.*y (which in this case would
also pessimize code, but well...).

IMHO we should canonicalize here in some way and either always prefering
PLUS or positive constants should do the job.  The code generation issue
is something for the RTL expander.

Reply via email to