https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117735
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Other "failures" for this loop nest is choosing an alias versioning check that is invariant in the outer loop so we'd version that instead of just the inner loop. We also fail to implement (or schedule) unswitching of the outer loop on inner loop niter checks the vectorizer inserts for costing and jumps around vector/epilog. For perfect nests (and outer loops without actual code) the vectorizer could consider unswitching the initial epilog entry conditions itself (at the expense of code size of course).