1 /* { dg-require-effective-target vect_int } */
12 unsigned short out
[N
*8], out2
[N
*8], b0
, b1
, b2
, b3
, b4
, a0
, a1
, a2
, a3
, b5
;
13 unsigned short in
[N
*8];
15 for (i
= 0; i
< N
*8; i
++)
20 /* Different operations in both cases - vectorization with interleaving. */
21 for (i
= 0; i
< N
; i
++)
48 for (i
= 0; i
< N
; i
++)
66 || out
[i
*4 + 3] != b3
)
70 || out2
[i
*4 + 1] != b1
71 || out2
[i
*4 + 2] != b4
72 || out2
[i
*4 + 3] != b5
)
76 /* Different operations in the first case - vectorization with interleaving. */
77 for (i
= 0; i
< N
; i
++)
104 for (i
= 0; i
< N
; i
++)
120 || out
[i
*4 + 1] != b1
121 || out
[i
*4 + 2] != b2
122 || out
[i
*4 + 3] != b3
)
126 || out2
[i
*4 + 1] != b1
127 || out2
[i
*4 + 2] != b4
128 || out2
[i
*4 + 3] != b5
)
133 /* Different operations in the second case - vectorization with interleaving. */
134 for (i
= 0; i
< N
; i
++)
161 for (i
= 0; i
< N
; i
++)
177 || out
[i
*4 + 1] != b1
178 || out
[i
*4 + 2] != b2
179 || out
[i
*4 + 3] != b3
)
183 || out2
[i
*4 + 1] != b1
184 || out2
[i
*4 + 2] != b4
185 || out2
[i
*4 + 3] != b5
)
202 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" { target { vect_strided4 || vect_extract_even_odd } } } } */
203 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { vect_strided4 || vect_extract_even_odd } } } } } */
204 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_strided4 } } } */
205 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! { vect_strided4 } } } } } */