https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93221
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So we have: (insn 4 3 5 2 (set (reg:OI 92) (subreg:OI (reg:V4SI 93) 0)) "t.c":9:1 3402 {*aarch64_movoi} (expr_list:REG_DEAD (reg:V4SI 93) (nil))) (insn 5 4 7 2 (set (subreg:V4SI (reg:OI 92) 16) (reg:V4SI 94)) "t.c":9:1 1200 {*aarch64_simd_movv4si} (expr_list:REG_DEAD (reg:V4SI 94) (nil))) IRA says: r94: preferred FP_REGS, alternative NO_REGS, allocno FP_REGS a2 (r94,l0) best FP_REGS, allocno FP_REGS r93: preferred FP_REGS, alternative NO_REGS, allocno FP_REGS a3 (r93,l0) best FP_REGS, allocno FP_REGS r92: preferred FP_REGS, alternative NO_REGS, allocno FP_REGS a1 (r92,l0) best FP_REGS, allocno FP_REGS a1(r92,l0) costs: FP_LO8_REGS:0 FP_LO_REGS:0 FP_REGS:0 MEM:6000 a2(r94,l0) costs: TAILCALL_ADDR_REGS:12000 GENERAL_REGS:12000 FP_LO8_REGS:2000 FP_LO_REGS:2000 FP_REGS:2000 POINTER_AND_FP_REGS:14000 MEM:5000 a3(r93,l0) costs: FP_LO8_REGS:2000 FP_LO_REGS:2000 FP_REGS:2000 MEM:5000