https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111566
--- Comment #3 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> --- riscv-v.cc:legitimize_move has: if (MEM_P (dest) && !REG_P (src)) src = force_reg (mode, src); return false; since src is passed by value, this is pointless. The caller still had src as a MEM.