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];
16 for (i
= 0; i
< N
*8; i
++)
21 /* Different operations in both cases - vectorization with interleaving. */
22 for (i
= 0; i
< N
; i
++)
50 for (i
= 0; i
< N
; i
++)
68 || out
[i
*4 + 3] != b3
)
72 || out2
[i
*4 + 1] != b1
73 || out2
[i
*4 + 2] != b4
74 || out2
[i
*4 + 3] != b5
)
78 /* Different operations in the first case - vectorization with interleaving. */
79 for (i
= 0; i
< N
; i
++)
107 for (i
= 0; i
< N
; i
++)
123 || out
[i
*4 + 1] != b1
124 || out
[i
*4 + 2] != b2
125 || out
[i
*4 + 3] != b3
)
129 || out2
[i
*4 + 1] != b1
130 || out2
[i
*4 + 2] != b4
131 || out2
[i
*4 + 3] != b5
)
136 /* Different operations in the second case - vectorization with interleaving. */
137 for (i
= 0; i
< N
; i
++)
165 for (i
= 0; i
< N
; i
++)
181 || out
[i
*4 + 1] != b1
182 || out
[i
*4 + 2] != b2
183 || out
[i
*4 + 3] != b3
)
187 || out2
[i
*4 + 1] != b1
188 || out2
[i
*4 + 2] != b4
189 || out2
[i
*4 + 3] != b5
)
206 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { target { vect_strided4 || vect_extract_even_odd } } } } */
207 /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided4 || vect_extract_even_odd } } } } } */