1 /* { dg-require-effective-target vect_int } */
10 main1 (unsigned short a0, unsigned short a1, unsigned short a2,
11 unsigned short a3, unsigned short a4, unsigned short a5,
12 unsigned short a6, unsigned short a7, unsigned short a8,
13 unsigned short a9, unsigned short a10, unsigned short a11,
14 unsigned short a12, unsigned short a13, unsigned short a14,
18 unsigned short out[N*16];
20 for (i = 0; i < N; i++)
29 for (i = 0; i < N; i++)
34 || out[i*4 + 3] != a3)
38 for (i = 0; i < N; i++)
59 for (i = 0; i < N; i++)
62 || out[i*16 + 1] != a7
63 || out[i*16 + 2] != a1
64 || out[i*16 + 3] != a2
65 || out[i*16 + 4] != a8
66 || out[i*16 + 5] != a5
67 || out[i*16 + 6] != a5
68 || out[i*16 + 7] != a4
69 || out[i*16 + 8] != a12
70 || out[i*16 + 9] != a13
71 || out[i*16 + 10] != a14
72 || out[i*16 + 11] != a15
73 || out[i*16 + 12] != a6
74 || out[i*16 + 13] != a9
75 || out[i*16 + 14] != a0
76 || out[i*16 + 15] != a7)
80 /* SLP with unrolling by 8. */
81 for (i = 0; i < N; i++)
89 for (i = 0; i < N; i++)
93 || out[i*3 + 2] != a2)
97 /* SLP with unrolling by 8. */
98 for (i = 0; i < N; i++)
110 out[i*11 + 10] = a14;
114 for (i = 0; i < N; i++)
117 || out[i*11 + 1] != a7
118 || out[i*11 + 2] != a1
119 || out[i*11 + 3] != a2
120 || out[i*11 + 4] != a8
121 || out[i*11 + 5] != a5
122 || out[i*11 + 6] != a5
123 || out[i*11 + 7] != a4
124 || out[i*11 + 8] != a12
125 || out[i*11 + 9] != a13
126 || out[i*11 + 10] != a14)
138 main1 (15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
143 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
144 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" } } */
145 /* { dg-final { cleanup-tree-dump "vect" } } */