https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113592
--- Comment #3 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- This testcase is probably not a good example for typical partail sum which relies on unroll loops. double foo (double* p, int n) { double sum = 0; for (int i = 0; i != n; i++) sum += p[i] * p[i]; return sum; } This should be better, vectorizer can do unroll + partial_sum itselves.