https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91769
--- Comment #4 from Dragan Mladjenovic <dragan.mladjeno...@rt-rk.com> --- Hi, This fix is propbably nothing more than: --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4862,7 +4862,7 @@ mips_split_move (rtx dest, rtx src, enum mips_split_type split_type, rtx insn_) { rtx tmp = XEXP (src, 0); mips_classify_address (&addr, tmp, GET_MODE (tmp), true); - if (addr.reg && REGNO (addr.reg) != REGNO (dest)) + if (addr.reg && !reg_overlap_mentioned_p (dest, addr.reg)) validate_change (next, &SET_SRC (set), src, false); } else But I have to regtest it before posting it on the mailing list. There are more bug reports that are potentialy relate to this particular piece of code, so I have to check them too.