[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jun 9 09:48:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796
Marc Glisse <glisse at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|UNCONFIRMED |NEW
Last reconfirmed| |2019-06-09
Summary|GCC: O2 vs O3 output |[8/9/10 Regression] GCC: O2
|differs on simple test |vs O3 output differs on
| |simple test
Ever confirmed|0 |1
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> ---
Confirmed.
I also notice a missed optimization:
_16 = ivtmp.21_234 + 2;
_2 = b[_16];
_41 = _2 ^ 9;
b[ivtmp.21_234] = _41;
_52 = b[_16];
_51 = _52 ^ 9;
b[ivtmp.21_234] = _51;
_65 = b[_16];
etc.
it seems clear from the first line that b[_16] and b[ivtmp.21_234] cannot
alias, so this should simplify. And it isn't just because cunroll is late, we
don't simplify it either if I write directly this pattern in C.
More information about the Gcc-bugs
mailing list