https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83827
--- Comment #2 from Hongtao.liu <crazylht at gmail dot com> ---
For f, pass_combine failed
Trying 20, 21 -> 22:
20: clobber r83:TI
21: r83:TI#0=r88:DI
REG_DEAD r88:DI
22: r83:TI#8=r89:DI
REG_DEAD r89:DI
Can't combine i2 into i3
(insn 20 6 21 2 (clobber (reg/v:TI 83 [ x ])) "test.cpp":3:11 -1
(nil))
(insn 21 20 22 2 (set (subreg:DI (reg/v:TI 83 [ x ]) 0)
(reg:DI 88 [ x ])) "test.cpp":3:11 74 {*movdi_internal}
(expr_list:REG_DEAD (reg:DI 88 [ x ])
(nil)))
(insn 22 21 8 2 (set (subreg:DI (reg/v:TI 83 [ x ]) 8)
(reg:DI 89 [+8 ])) "test.cpp":3:11 74 {*movdi_internal}
(expr_list:REG_DEAD (reg:DI 89 [+8 ])
And it should be optimized to (set (reg:TI 83) (subreg:TI (vec_concat:V2DI
(reg:DI 88) (reg:DI 89)) 0))??