1 /* PR middle-end/106548. */
2 /* { dg-additional-options "-msse2" { target sse2_runtime } } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
7 __attribute__((noinline
, noclone
)) int
10 #pragma omp parallel for simd linear (i: 4)
11 for (int j
= 16; j
< 64; j
++)
19 __attribute__((noinline
, noclone
)) short int
20 f2 (short int i
, char k
)
22 #pragma omp parallel for simd linear (i: k + 1)
23 for (long j
= 16; j
< 64; j
++)
31 __attribute__((noinline
, noclone
)) long long int
32 f3 (long long int i
, long long int k
)
34 #pragma omp parallel for simd linear (i: k)
35 for (short j
= 16; j
< 64; j
++)
43 __attribute__((noinline
, noclone
)) int
46 #pragma omp parallel for simd linear (i: 4) schedule(static, 3)
47 for (int j
= 16; j
< 64; j
++)
55 __attribute__((noinline
, noclone
)) short int
56 f5 (short int i
, char k
)
58 #pragma omp parallel for simd linear (i: k + 1) schedule(static, 5)
59 for (long j
= 16; j
< 64; j
++)
67 __attribute__((noinline
, noclone
)) long long int
68 f6 (long long int i
, long long int k
)
70 #pragma omp parallel for simd linear (i: k) schedule(static, 7)
71 for (short j
= 16; j
< 64; j
++)
79 __attribute__((noinline
, noclone
)) int
82 #pragma omp parallel for simd linear (i: 4) schedule(dynamic, 3)
83 for (int j
= 16; j
< 64; j
++)
91 __attribute__((noinline
, noclone
)) short int
92 f8 (short int i
, char k
)
94 #pragma omp parallel for simd linear (i: k + 1) schedule(dynamic, 5)
95 for (long j
= 16; j
< 64; j
++)
103 __attribute__((noinline
, noclone
)) long long int
104 f9 (long long int i
, long long int k
)
106 #pragma omp parallel for simd linear (i: k) schedule(dynamic, 7)
107 for (short j
= 16; j
< 64; j
++)
115 __attribute__((noinline
, noclone
)) int
116 f10 (int i
, long step
)
118 #pragma omp parallel for simd linear (i: 4)
119 for (int j
= 16; j
< 112; j
+= step
)
127 __attribute__((noinline
, noclone
)) short int
128 f11 (short int i
, char k
, char step
)
130 #pragma omp parallel for simd linear (i: k + 1)
131 for (long j
= 16; j
< 112; j
+= step
)
139 __attribute__((noinline
, noclone
)) long long int
140 f12 (long long int i
, long long int k
, int step
)
142 #pragma omp parallel for simd linear (i: k)
143 for (short j
= 16; j
< 112; j
+= step
)
151 __attribute__((noinline
, noclone
)) int
152 f13 (int i
, long long int step
)
154 #pragma omp parallel for simd linear (i: 4) schedule(static, 3)
155 for (int j
= 16; j
< 112; j
+= step
)
163 __attribute__((noinline
, noclone
)) short int
164 f14 (short int i
, char k
, int step
)
166 #pragma omp parallel for simd linear (i: k + 1) schedule(static, 5)
167 for (long j
= 16; j
< 112; j
+= step
)
175 __attribute__((noinline
, noclone
)) long long int
176 f15 (long long int i
, long long int k
, long int step
)
178 #pragma omp parallel for simd linear (i: k) schedule(static, 7)
179 for (short j
= 16; j
< 112; j
+= step
)
187 __attribute__((noinline
, noclone
)) int
188 f16 (int i
, long long int step
)
190 #pragma omp parallel for simd linear (i: 4) schedule(dynamic, 3)
191 for (int j
= 16; j
< 112; j
+= step
)
199 __attribute__((noinline
, noclone
)) short int
200 f17 (short int i
, char k
, int step
)
202 #pragma omp parallel for simd linear (i: k + 1) schedule(dynamic, 5)
203 for (long j
= 16; j
< 112; j
+= step
)
211 __attribute__((noinline
, noclone
)) long long int
212 f18 (long long int i
, long long int k
, long int step
)
214 #pragma omp parallel for simd linear (i: k) schedule(dynamic, 7)
215 for (short j
= 16; j
< 112; j
+= step
)
227 if (x != 8 + 48 * 4) \
228 __builtin_abort (); \
229 for (int i = 0; i < 256; i++) \
230 if (a[i] != (((i & 3) == 0 && i >= 8 \
232 ? ((i - 8) / 4) + 16 : 0)) \
233 __builtin_abort (); \
234 __builtin_memset (a, 0, sizeof (a))
237 TEST (f3 (8LL, 4LL));
240 TEST (f6 (8LL, 4LL));
243 TEST (f9 (8LL, 4LL));
245 TEST (f11 (8, 3, 2));
246 TEST (f12 (8LL, 4LL, 2));
248 TEST (f14 (8, 3, 2));
249 TEST (f15 (8LL, 4LL, 2));
251 TEST (f17 (8, 3, 2));
252 TEST (f18 (8LL, 4LL, 2));