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" } } */