https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #28 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- Created attachment 33527 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33527&action=edit Another reduced test case (with "-m4 -ml -O2 -std=gnu99") Here is a test case for the ICE in assign_by_spill which looks caused by another reason. .reload dump says that the problematic insn is something like 107: {r166:SF=[r942:SI+r943:SI];use :PSI;clobber r784:SI;} and Creating newreg=942 from oldreg=374, assigning class R0_REGS to address r942 Creating newreg=943, assigning class GENERAL_REGS to base + disp r943 Change to class R0_REGS for r943 which means that R0_REGS is assigned to both r942 and r943.