https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70252
--- Comment #2 from Ilya Enkovich <ienkovich at gcc dot gnu.org> --- Seems it is due to incorrect mask conversion. The problem is that both scalar mask of 4 elements and scalar mask of 8 elements have QImode. It makes us think that we may get vec<bool>(4) using vec_unpack_[lo|hi]_expr on vec<bool>(16).