27 lines
461 B
C
27 lines
461 B
C
/* { 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;
|
|
}
|