https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66626
--- Comment #11 from H.J. Lu <hjl.tools at gmail dot com> --- LRA tries to reload SI 90: (insn 14 13 15 3 (set (reg/f:SI 6 bp) (mem:SI (reg/f:SI 90 [ CHAIN.1 ]) [0 S4 A8])) ../y.i:9 86 {*movsi_internal} (nil)) (insn 15 14 16 3 (clobber (mem:BLK (scratch) [0 A8])) ../y.i:9 -1 (nil)) (insn 16 15 17 3 (clobber (mem:BLK (reg/f:SI 7 sp) [0 A8])) ../y.i:9 -1 (nil)) (insn 17 16 18 3 (set (reg/f:SI 7 sp) (mem:SI (plus:SI (reg/f:SI 90 [ CHAIN.1 ]) (const_int 4 [0x4])) [0 S4 A8])) ../y.i:9 86 {*movsi_internal} (expr_list:REG_DEAD (reg/f:SI 90 [ CHAIN.1 ]) (nil))) It generates: (insn 32 13 14 3 (set (reg:SI 1 dx [94]) (mem/c:SI (plus:SI (reg/f:SI 6 bp) (const_int 4 [0x4])) [0 S4 A8])) ../y.i:9 86 {*movsi_internal} (nil)) (insn 14 32 15 3 (set (reg/f:SI 6 bp) (mem:SI (reg:SI 1 dx [94]) [0 S4 A8])) ../y.i:9 86 {*movsi_internal} (nil)) (insn 15 14 16 3 (clobber (mem:BLK (scratch) [0 A8])) ../y.i:9 -1 (nil)) (insn 16 15 33 3 (clobber (mem:BLK (reg/f:SI 7 sp) [0 A8])) ../y.i:9 -1 (nil)) (insn 33 16 17 3 (set (reg:SI 2 cx [95]) (mem/c:SI (plus:SI (reg/f:SI 6 bp) (const_int 4 [0x4])) [0 S4 A8])) ../y.i:9 86 {*movsi_internal} (nil)) (insn 17 33 18 3 (set (reg/f:SI 7 sp) (mem:SI (plus:SI (reg:SI 2 cx [95]) (const_int 4 [0x4])) [0 S4 A8])) ../y.i:9 86 {*movsi_internal} (nil)) It shouldn't add insn 33 and should just use EDX in insn 17.