https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118638
Richard Sandiford <rsandifo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu.org --- Comment #17 from Richard Sandiford <rsandifo at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #16) > Created attachment 60291 [details] > gcc15-pr118638.patch > > Untested fix. > > Note, for GCC 16 I think we should extend this, also handle multiplication by > (1 << x) + 1 for x >= len, because when extracting the low len bits, the > multiplication by 1 << x will leave all len bits 0 and so it really is just > extraction of the len bits from the other MULT operand. > Which is why I've left the len > 1 check in the inner if rather than outer. LGTM.