http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57558
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |53947 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- That's because the first variant can loop infinitely for n == ULONG_MAX and that "infinite" cannot be represented using new induction variable as the vectorizer wants to. Well, not easily at least.