https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127634
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2026-09-27
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
```
Trying 8 -> 10:
8: r106:V8SI=vec_concat(r111:V2DI#0,const_vector)
REG_DEAD r111:V2DI
10: r108:V4DI=vec_concat(vec_select(r106:V8SI#0,parallel),r110:V2DI)
REG_DEAD r110:V2DI
REG_DEAD r106:V8SI
Failed to match this instruction:
(set (reg:V4DI 108)
(vec_concat:V4DI (vec_select:V2DI (subreg:V4DI (vec_concat:V8SI
(subreg:V4SI (reg:V2DI 111 [ loD.44994 ]) 0)
(const_vector:V4SI [
(const_int 0 [0]) repeated x4
])) 0)
(parallel [
(const_int 0 [0])
(const_int 1 [0x1])
]))
(reg:V2DI 110 [ hiD.44993 ])))
```
that inner subreg could be:
(vec_concat:V4DI (reg:V2DI 111 [ loD.44994 ]) (const_vector:V2DI [
(const_int 0 [0]) repeated x2
]))
And then the vec_select becomes:
(reg:V2DI 111 [ loD.44994 ])
That is one way of fixing this.