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])
    ])
)

Reply via email to