https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110823
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amonakov at gcc dot gnu.org --- Comment #4 from Alexander Monakov <amonakov at gcc dot gnu.org> --- It's a weakness in the REE pass. AFAICT normally it would handle this, but here there are two elimination candidates in 'main', the first is eliminated successfully, and then REE punts on the second because one if its reaching definitions is the first redundant extension: /* If def_insn is already scheduled to be deleted, don't attempt to modify it. */ if (state->modified[INSN_UID (def_insn)].deleted) return false; While looking into this I noticed that the fix for PR 61094 introduced a write-only bitfield 'do_not_reextend' (the Changelog wrongly claimed it was used).