111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-require-effective-target vect_int } */
|
|
3
|
|
4 #define N 320
|
|
5 #define M 1024
|
|
6 unsigned short in[N+M];
|
|
7 unsigned short coeff[M];
|
|
8 unsigned int out[N];
|
|
9
|
|
10 /* Outer-loop vectorization. */
|
|
11
|
|
12 void
|
|
13 foo (){
|
|
14 int i,j;
|
|
15 unsigned short 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]*coeff[j];
|
|
21 }
|
|
22 out[i]=diff;
|
|
23 }
|
|
24 }
|
|
25
|
|
26 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { target { vect_short_mult && { ! vect_no_align } } } } } */
|
|
27 /* { dg-final { scan-tree-dump-times "zero step in outer loop." 1 "vect" } } */
|