https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91469
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Elsewhere we have sth with similar effect, but only disqualifying toplevel MEM.
if (!MEM_P (src))
{
replace_with_subreg_in_insn (insn, reg, reg);
bitmap_clear_bit (conv, INSN_UID (insn));
}
and
if (!MEM_P (dst) || !REG_P (src))
replace_with_subreg_in_insn (insn, reg, reg);
in the end it might be an ordering issue of splitting out memory operands
and converting regs (convert_registers vs. convert_insn).