> I recall that some STMT_VINFO_RELEVANT_P checks have a || > STMT_VINFO_DEF_TYPE () == vect_reduction_def > or VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE ()).
It's rather || STMT_VINFO_LIVE_P in most cases and this works here, the vectorization is properly blocked: opt56.adb:9:29: note: not vectorized: different sized masks types in statement, vector(16) unsigned char and vector(4) <unnamed type> opt56.adb:9:29: note: can't determine vectorization factor. opt56.adb:6:4: note: vectorized 0 loops in function. -- Eric Botcazou