1 /* { dg-require-effective-target vect_int } */
12 void foo (char * __restrict__ dst
, char * __restrict__ src
, int h
,
13 int stride
, int dummy
)
17 for (i
= 0; i
< h
; i
++)
19 dst
[0] += A
*src
[0] + src
[stride
];
20 dst
[1] += A
*src
[1] + src
[1+stride
];
21 dst
[2] += A
*src
[2] + src
[2+stride
];
22 dst
[3] += A
*src
[3] + src
[3+stride
];
23 dst
[4] += A
*src
[4] + src
[4+stride
];
24 dst
[5] += A
*src
[5] + src
[5+stride
];
25 dst
[6] += A
*src
[6] + src
[6+stride
];
26 dst
[7] += A
*src
[7] + src
[7+stride
];
41 for (i
= 0; i
< N
; i
++)
47 foo (dst
, src
, N
, 8, 0);
49 for (i
= 0; i
< N
/2; i
++)
51 if (dst
[i
] != A
* src
[i
] + src
[i
+8])
58 /* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp" { target vect64 } } } */
59 /* { dg-final { cleanup-tree-dump "slp" } } */