https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103197
--- Comment #2 from acsawdey at gcc dot gnu.org --- >From the reload dump: 0 Non input pseudo reload: reject++ 1 Non-pseudo reload: reject+=2 1 Non input pseudo reload: reject++ alt=0,overall=16,losers=2,rld_nregs=2 0 Non input pseudo reload: reject++ alt=1,overall=7,losers=1,rld_nregs=1 alt=2,overall=6,losers=1,rld_nregs=0 [...] Choosing alt 2 in insn 9: (0) wa (1) Z {*movqi_internal} The addressing for insn 9 is just reg+const so why did it think it would have to reload one register for alt 1 (d-form) and 0 for alt 2 which is x-form?