1 /* { dg-do compile } */ 2 /* { dg-options "-O3 --param tree-reassoc-width=4" } */ 3 /* { dg-additional-options "-mavx2" { target { x86_64-*-* i?86-*-* } } } */ 4 5 #define N 40 6 #define M 128 7 unsigned int in[N+M]; 8 unsigned short out[N]; 9 10 /* Outer-loop vectorization. */ 11 12 void foo()13foo (){ 14 int i,j; 15 unsigned int diff; 16 17 for (i = 0; i < N; i++) { 18 diff = 0; 19 for (j = 0; j < M; j+=8) { 20 diff += in[j+i]; 21 } 22 out[i]=(unsigned short)diff; 23 } 24 25 return; 26 } 27