https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117253
Davide Italiano <dccitaliano at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #2 from Davide Italiano <dccitaliano at gmail dot com> ---
(In reply to Andrew Pinski from comment #1)
> aarch64 does NOT show a regression.
>
> But basically the issue:
> if ((i * j) > 20 && (i + j) < 15) {
> result += i * j;
> }
>
> is converted to result += (i * j) * ((i * j) > 20 && (i + j) < 15).
>
> And then selects the multiply due to code size and it just goes down hill
> from there.
>
> This is 100% a synthetic test so I am not sure we are worried about the code
> size increase here for x86_64; especially for x86_64.
Thanks for taking a look Andrew. Not extremely familiar with this code, but I
wonder if the fact this shows a regression only on some arches suggests this
peephole is kind-of target-dependent?