https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59371
--- Comment #28 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> --- If change code as below, 'i' is not starting from '0', and 'compare code' is '!=' then wrap/overflow on 'i' may happen, and optimizations (e.g. vectorization) are not applied. The below patch is trying to optimize this kind of loop. https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570424.html int foo (int *p, unsigned short u_n, unsigned short i) { int x = 0; for (; i != u_n; i++) { x = x + p[i]; } return x; }