https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038
--- Comment #7 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- (insn 1237 1236 1238 9 (set (reg:DF 32 %f0) (float:DF (reg:SI 2027 [ MEM[base: in_140, index: _139, offset: 0B]+-3 ]))) pr69038.C:647 155 {floatsidf2} (expr_list:REG_DEAD (reg:SI 2027 [ MEM[base: in_140, index: _139, offset: 0B]+-3 ]) (nil))) Spilling for insn 1237. reload failure for reload 0 Reloads for insn # 1237 Reload 0: reload_in (SI) = (reg:SI 2027 [ MEM[base: in_140, index: _139, offset: 0B]+-3 ]) FP_REGS, RELOAD_FOR_INPUT (opnum = 1) reload_in_reg: (reg:SI 2027 [ MEM[base: in_140, index: _139, offset: 0B]+-3 ]) But AFAICS %f0 could be used as reload register here thanks to the REG_DEAD note... It's probably too late to implement this in reload though.