1 /* { dg-require-effective-target vect_int } */
13 unsigned short out
[N
*8], out2
[N
*8], b0
, b1
, b2
, b3
, b4
, a0
, a1
, a2
, a3
, b5
;
14 unsigned short in
[N
*8];
16 for (i
= 0; i
< N
*8; i
++)
21 /* Different operations in both cases - vectorization with interleaving. */
22 for (i
= 0; i
< N
; i
++)
49 for (i
= 0; i
< N
; i
++)
67 || out
[i
*4 + 3] != b3
)
71 || out2
[i
*4 + 1] != b1
72 || out2
[i
*4 + 2] != b4
73 || out2
[i
*4 + 3] != b5
)
77 /* Different operations in the first case - vectorization with interleaving. */
78 for (i
= 0; i
< N
; i
++)
105 for (i
= 0; i
< N
; i
++)
121 || out
[i
*4 + 1] != b1
122 || out
[i
*4 + 2] != b2
123 || out
[i
*4 + 3] != b3
)
127 || out2
[i
*4 + 1] != b1
128 || out2
[i
*4 + 2] != b4
129 || out2
[i
*4 + 3] != b5
)
134 /* Different operations in the second case - vectorization with interleaving. */
135 for (i
= 0; i
< N
; i
++)
162 for (i
= 0; i
< N
; i
++)
178 || out
[i
*4 + 1] != b1
179 || out
[i
*4 + 2] != b2
180 || out
[i
*4 + 3] != b3
)
184 || out2
[i
*4 + 1] != b1
185 || out2
[i
*4 + 2] != b4
186 || out2
[i
*4 + 3] != b5
)
203 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" { target vect_strided } } } */
204 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { vect_strided } } } } } */
205 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_strided } } } */
206 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! { vect_strided } } } } } */
207 /* { dg-final { cleanup-tree-dump "vect" } } */