https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #137 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to Kazumoto Kojima from comment #136) > Hope these observations help for clarifying issues. Kaz, thanks so much for chiming in and looking at these after such a long time! It's really appreciated! My concern is that, LRA was supposed to make things _better_ than old reload. But now we have to add even more hacks.... Perhaps some of the fixes should go into LRA itself -- in particular the one for R0 in comment #135. We already have the R0 constraint: (define_insn "*extend<mode>si2_compact_mem_disp" [(set (match_operand:SI 0 "arith_reg_dest" "=z,r") ^^^ .. your patch to add an explicit R0 clobber seems a good workaround, but also shows that something in LRA land is not working properly, I think.