https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123523
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2026-01-10
Ever confirmed|0 |1
Status|UNCONFIRMED |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 63314
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=63314&action=edit
gcc16-pr123523.patch
Untested fix.
The pattern uses DImode shift count (which is what the HW is doing), but
simplify-rtx.cc was assuming that shift counts will be at most word_mode.
Now, CONST_INT payload, the only VOIDmode constant, is 64-bit, so if we always
use DImode, it matches that and will never reject some shift counts.