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()13 foo (){
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