https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66623
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It's supposed to handle cases like (vect-outer-fir-big-array.c): for (k = 0; k < 4; k++) { for (i = 0; i < N; i++) { diff = 0; for (j = k; j < M; j+=4) { diff += in[j+i]*coeff[j]; } out[i] += diff; } } where indeed there is no association in the outer loop. So it indeed _is_ about double-reductions only. The current code setup isn't prepared to detect the situation in question easily (and the patch is too strict).