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?