https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657
--- Comment #4 from Jose E. Marchesi <jemarch at gcc dot gnu.org> --- Looks like `combine' is generating paradoxical subregs of mems, which seem to confuse LRA and these weird incorrect reloads end up being generated. The easiest fix for this is to make the backend to use the instruction scheduler, which makes `combine' to not generate such subregs.