https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64010
--- Comment #3 from Nick Clifton <nickc at redhat dot com> --- Hi Alex, This appears to be a reload bug. Before reload we have: (call_insn 12 (call:HI (mem:HI (mem:HI (plus:HI (reg:HI R14) (const_int 2)))) (const_int 0)) After reload this becomes: (insn 17 (set (reg:HI R14) (mem:HI (plus:HI (reg:HI R14) (const_int 2))))) (call_insn 12 (call:HI (mem:HI (reg:HI R14)) (const_int 0))) The uploaded patch fixes this but, not being a reload expert, I am not sure if this is the correct way to solve the problem. It also seems suspicious that if this is a generic reload problem, then why has it not been reported and fixed before now ?