[Bug tree-optimization/89811] uint32_t load is not recognized if shifts are done in a fixed-size loop

2021-09-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89811

Andrew Pinski  changed:

   What|Removed |Added

 CC||gabravier at gmail dot com

--- Comment #3 from Andrew Pinski  ---
*** Bug 94834 has been marked as a duplicate of this bug. ***

[Bug tree-optimization/89811] uint32_t load is not recognized if shifts are done in a fixed-size loop

2021-09-04 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89811

Andrew Pinski  changed:

   What|Removed |Added

   Severity|normal  |enhancement
   Last reconfirmed|2019-03-25 00:00:00 |2021-9-4

[Bug tree-optimization/89811] uint32_t load is not recognized if shifts are done in a fixed-size loop

2019-04-22 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89811

Segher Boessenkool  changed:

   What|Removed |Added

 CC||segher at gcc dot gnu.org

--- Comment #2 from Segher Boessenkool  ---
On PowerPC, for "bad" we get

addi 9,3,2
lbz 0,1(3)
lbz 3,0(3)
lhbrx 10,0,9
rlwimi 0,10,8,0,31-8
rlwimi 3,0,8,0,31-8
rldicl 3,3,0,32
blr

(BE -m64); it managed to recognise the top two bytes as a byte-reverse load,
but not the lower two.

(And yup, "loop" uses no byte-reverse at all.)