https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107096
--- Comment #6 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- I don't think we should key this off whether the masks are integers or vectors. In principle there's no reason why a vector-based couldn't work the AVX512 way, or an integer approach the SVE way. (build_truth_vector_type_for_mode is currently hard-coded to 1 bit per element for integers, but that could change.) At the moment: We make the simplifying assumption that if a sequence of nV masks is suitable for one (nS,nL) pair, we can reuse it for (nS/2,nL/2) by VIEW_CONVERTing it. This holds for all current targets that support fully-masked loops. The PR means supporting targets where this assumption doesn't hold. But I think we should test for it explicitly somehow. For now we can probably assume that the assumption holds when the two mask modes have equal size.