https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123585
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So what we are trying to simplify is:
```
(vec_select:SI
(vec_select:V4SI (reg:V2SI 314 [ BS_ARG_0 ])
(parallel [
(const_int 1 [0x1])
(const_int 0 [0])
(const_int 1 [0x1])
(const_int 0 [0]) // 3
]))
(parallel [
(const_int 3 [0x3])
])
)
```
But n_elts is set to the inner most mode so V2SI which seems wrong.
The assert looks incorrect. As it should be asserting i < 4 (n_elts of V4SI).
So it shoud simplify down to:
(vec_select:SI
(reg:V2SI 314 [ BS_ARG_0 ])
(parallel [
(const_int 0 [0x0])
])
)