https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84101
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- Just looking at what we feed combine: (insn 9 8 15 2 (set (reg:V2DI 89) (vec_concat:V2DI (reg:DI 90 [ num ]) (reg:DI 92))) "t.c":9:12 4182 {vec_concatv2di} (expr_list:REG_DEAD (reg:DI 92) (expr_list:REG_DEAD (reg:DI 90 [ num ]) (nil)))) (insn 15 9 16 2 (set (reg/i:TI 0 ax) (subreg:TI (reg:V2DI 89) 0)) "t.c":10:1 65 {*movti_internal} (expr_list:REG_DEAD (reg:V2DI 89) (nil))) I wonder why we can't "simplify" this into individual sets of the hardreg pair? fwprop sees the same thing so that's another possible fixing point. Not sure if the backend in the end would like to see the above TImode set decomposed though...