https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113467
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Sam James from comment #14) > I tried 'if (candidate && candidate->src != EDGE_PRED (loop->latch, > 0)->src)' as well given that seems way more sensible and that works too, but > obviously if I pick something eager or always true, it's going to help, so > I'll wait for you now. Yeah, that's what it meant to read - sorry for fat-fingering this so many times. Your other choice makes it simply never vectorize anything while this should really just disable all early-exit-peeled variants.