https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55001
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Testcase: typedef int v32si __attribute__((vector_size(128))); void foo (v32si *a, v32si *b, v32si *c) { *c = *a < *b ? (v32si){-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1} : (v32si){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; } that also shows that we initially create a signed-boolean:32 mask temporary even with AVX512VL which we'd need to change to signed-boolean:1 when we want to lower to two V16SImode vectors.