1 /* { dg-require-effective-target vect_int } */
13 unsigned short out[N*8];
14 unsigned short in[N*8];
17 for (i = 0; i < N*8; i++)
20 if (y) /* Avoid vectorization. */
24 for (i = 0; i < N; i++)
27 out[i*8 + 1] = in[i*8 + 1];
28 out[i*8 + 2] = in[i*8 + 2];
29 out[i*8 + 3] = in[i*8 + 3];
30 out[i*8 + 4] = in[i*8 + 4];
31 out[i*8 + 5] = in[i*8 + 5];
32 out[i*8 + 6] = in[i*8 + 6];
33 out[i*8 + 7] = in[i*8 + 7];
39 for (i = 0; i < N; i++)
41 if (out[i*8] != in[i*8]
42 || out[i*8 + 1] != in[i*8 + 1]
43 || out[i*8 + 2] != in[i*8 + 2]
44 || out[i*8 + 3] != in[i*8 + 3]
45 || out[i*8 + 4] != in[i*8 + 4]
46 || out[i*8 + 5] != in[i*8 + 5]
47 || out[i*8 + 6] != in[i*8 + 6]
48 || out[i*8 + 7] != in[i*8 + 7]
53 for (i = 0; i < N*2; i++)
56 out[i*4 + 1] = in[i*4 + 1];
57 out[i*4 + 2] = in[i*4 + 2];
58 out[i*4 + 3] = in[i*4 + 3];
64 for (i = 0; i < N*2; i++)
66 if (out[i*4] != in[i*4]
67 || out[i*4 + 1] != in[i*4 + 1]
68 || out[i*4 + 2] != in[i*4 + 2]
69 || out[i*4 + 3] != in[i*4 + 3]
74 for (i = 0; i < N/2; i++)
77 out[i*16 + 1] = in[i*16 + 1];
78 out[i*16 + 2] = in[i*16 + 2];
79 out[i*16 + 3] = in[i*16 + 3];
80 out[i*16 + 4] = in[i*16 + 4];
81 out[i*16 + 5] = in[i*16 + 5];
82 out[i*16 + 6] = in[i*16 + 6];
83 out[i*16 + 7] = in[i*16 + 7];
84 out[i*16 + 8] = in[i*16 + 8];
85 out[i*16 + 9] = in[i*16 + 9];
86 out[i*16 + 10] = in[i*16 + 10];
87 out[i*16 + 11] = in[i*16 + 11];
88 out[i*16 + 12] = in[i*16 + 12];
89 out[i*16 + 13] = in[i*16 + 13];
90 out[i*16 + 14] = in[i*16 + 14];
91 out[i*16 + 15] = in[i*16 + 15];
97 for (i = 0; i < N/2; i++)
99 if (out[i*16] != in[i*16]
100 || out[i*16 + 1] != in[i*16 + 1]
101 || out[i*16 + 2] != in[i*16 + 2]
102 || out[i*16 + 3] != in[i*16 + 3]
103 || out[i*16 + 4] != in[i*16 + 4]
104 || out[i*16 + 5] != in[i*16 + 5]
105 || out[i*16 + 6] != in[i*16 + 6]
106 || out[i*16 + 7] != in[i*16 + 7]
107 || out[i*16 + 8] != in[i*16 + 8]
108 || out[i*16 + 9] != in[i*16 + 9]
109 || out[i*16 + 10] != in[i*16 + 10]
110 || out[i*16 + 11] != in[i*16 + 11]
111 || out[i*16 + 12] != in[i*16 + 12]
112 || out[i*16 + 13] != in[i*16 + 13]
113 || out[i*16 + 14] != in[i*16 + 14]
114 || out[i*16 + 15] != in[i*16 + 15]
132 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
133 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" } } */
134 /* { dg-final { cleanup-tree-dump "vect" } } */