Applied to master as 91663770f795, thanks!
—Philipp.

On Wed, 29 Jul 2026 at 15:33, Jakub Jelinek <[email protected]> wrote:
>
> On Wed, Jul 29, 2026 at 03:16:54PM +0200, Konstantinos Eleftheriou wrote:
> > When store forwarding is avoided without eliminating the load (the store
> > only partially covers it), the extension wrapping the load's MEM is
> > re-applied after the bit-insert sequence, reusing SET_DEST (load) as the
> > move destination. As the load insn is kept here, that rtx is now shared
> > between two insns. That is fine for a plain REG, but in the case that the
> > dest is a SUBREG, it must not be shared (verify_rtx_sharing ICEs).
> >
> > Unshare the destination with copy_rtx when building the move.
> >
> > Bootstrapped/regtested on AArch64, x86-64 and PowerPC.
> >
> >       PR rtl-optimization/126434
> >
> > gcc/ChangeLog:
> >
> >       * avoid-store-forwarding.cc (process_store_forwarding): Unshare the
> >       load destination when building the re-extension move.
> >
> > gcc/testsuite/ChangeLog:
> >
> >       * gcc.dg/pr126434.c: New test.
>
> LGTM.
>
>         Jakub
>

Reply via email to