/* { dg-do compile } */ | |
/* { dg-options "-O3 --param tree-reassoc-width=4" } */ | |
/* { dg-additional-options "-mavx2" { target { x86_64-*-* i?86-*-* } } } */ | |
#define N 40 | |
#define M 128 | |
unsigned int in[N+M]; | |
unsigned short out[N]; | |
/* Outer-loop vectorization. */ | |
void | |
foo (){ | |
int i,j; | |
unsigned int diff; | |
for (i = 0; i < N; i++) { | |
diff = 0; | |
for (j = 0; j < M; j+=8) { | |
diff += in[j+i]; | |
} | |
out[i]=(unsigned short)diff; | |
} | |
return; | |
} |