https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97459
--- Comment #21 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 49639 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49639&action=edit gcc11-pr97459-alt.patch Variant version of the patch which avoids the final adjustment from unsigned to signed modulo by using different correction addend and signed modulo on the word. But it seems to have mixed effects, on i386 results in somewhat smaller code, but on x86_64 in larger code.