https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88845
--- Comment #1 from Peter Bergner <bergner at gcc dot gnu.org> --- After IRA, we have the following RTL with pseudo 124 being assigned to r9, which does not meet the "f" constraint required by the inline asm: (insn 6 5 7 2 (set (reg:SI 124) (const_int 0 [0])) "pr88845.i":10:5 494 {*movsi_internal1} (expr_list:REG_EQUIV (const_int 0 [0]) (nil))) (insn 7 6 12 2 (parallel [ (asm_operands/v ("") ("") 0 [ (subreg:SF (reg:SI 124) 0) ] [ (asm_input:SF ("f") pr88845.i:11) ] [] pr88845.i:11) (clobber (reg:SI 76 ca)) ]) "pr88845.i":11:3 -1 (expr_list:REG_DEAD (reg:SI 124) (expr_list:REG_UNUSED (reg:SI 76 ca) (nil)))) LRA then generates the following: (insn 6 5 14 2 (set (reg:SI 124) (const_int 0 [0])) "pr88845.i":10:5 494 {*movsi_internal1} (expr_list:REG_EQUIV (const_int 0 [0]) (nil))) (insn 14 6 7 2 (set (reg:SF 125) (subreg:SF (reg:SI 124) 0)) "pr88845.i":11:3 -1 (nil)) (insn 7 14 12 2 (parallel [ (asm_operands/v ("") ("") 0 [ (reg:SF 125) ] [ (asm_input:SF ("f") pr88845.i:11) ] [] pr88845.i:11) (clobber (reg:SI 76 ca)) ]) "pr88845.i":11:3 -1 (expr_list:REG_DEAD (reg:SI 124) (expr_list:REG_UNUSED (reg:SI 76 ca) (nil)))) ...and we ICE in lra_set_insn_recog_data when handling the reload insn 14.