https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112661
--- Comment #8 from Richard Sandiford <rsandifo at gcc dot gnu.org> --- I think we're going down the wrong path here. If I've understood the original change correctly, dummy masks aren't special because they're masks. They're special because all elements are equal to the same value. A mask such as: { 1, 1, 1, 0, 1 } would not be OK, just like an integer vector with those values would not be OK. So IMO we should check whether all elements are equal, rather than whether the type is one thing or another.