https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #4 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- Ah, never mind, I see what's happening. The order of events is * if-conversion * loop vectorization * DCE * cunroll * slp vectorization If we force versioning on with if-conversion, then the loop vectorizer sees that it can't do anything with the loop, so it folds away the if-converted version. Thus SLP never gets a chance to look at the if-converted loop. So it seems that always forcing versioning on has an unintended consequence of missing SLP opportunities. Should the folding of LOOP_VECTORIZED (1, 2) be deferred to the SLP vectorizer?