PR target/81988
[official-gcc.git] / libgomp / testsuite / libgomp.c++ / for-13.C
blobac1601a766fc82ef3e8b503483db70a6ee3f1f89
1 extern "C" void abort ();
3 #define M(x, y, z) O(x, y, z)
4 #define O(x, y, z) x ## _ ## y ## _ ## z
6 #pragma omp declare target
8 #define F for
9 #define G f
10 #define S
11 #define N(x) M(x, G, normal)
12 #include "../libgomp.c/for-2.h"
13 #undef S
14 #undef N
15 #undef F
16 #undef G
18 #pragma omp end declare target
20 #undef OMPFROM
21 #undef OMPTO
22 #define DO_PRAGMA(x) _Pragma (#x)
23 #define OMPFROM(v) DO_PRAGMA (omp target update from(v))
24 #define OMPTO(v) DO_PRAGMA (omp target update to(v))
26 #define F target parallel for
27 #define G tpf
28 #include "../libgomp.c/for-1.h"
29 #undef F
30 #undef G
32 #define F target simd
33 #define G t_simd
34 #define S
35 #define N(x) M(x, G, normal)
36 #include "../libgomp.c/for-2.h"
37 #undef S
38 #undef N
39 #undef F
40 #undef G
42 #define F target parallel for simd
43 #define G tpf_simd
44 #include "../libgomp.c/for-1.h"
45 #undef F
46 #undef G
48 #define F target teams distribute
49 #define G ttd
50 #define S
51 #define N(x) M(x, G, normal)
52 #include "../libgomp.c/for-2.h"
53 #undef S
54 #undef N
55 #undef F
56 #undef G
58 #define F target teams distribute
59 #define G ttd_ds128
60 #define S dist_schedule(static, 128)
61 #define N(x) M(x, G, normal)
62 #include "../libgomp.c/for-2.h"
63 #undef S
64 #undef N
65 #undef F
66 #undef G
68 #define F target teams distribute simd
69 #define G ttds
70 #define S
71 #define N(x) M(x, G, normal)
72 #include "../libgomp.c/for-2.h"
73 #undef S
74 #undef N
75 #undef F
76 #undef G
78 #define F target teams distribute simd
79 #define G ttds_ds128
80 #define S dist_schedule(static, 128)
81 #define N(x) M(x, G, normal)
82 #include "../libgomp.c/for-2.h"
83 #undef S
84 #undef N
85 #undef F
86 #undef G
88 #define F target teams distribute parallel for
89 #define G ttdpf
90 #include "../libgomp.c/for-1.h"
91 #undef F
92 #undef G
94 #define F target teams distribute parallel for dist_schedule(static, 128)
95 #define G ttdpf_ds128
96 #include "../libgomp.c/for-1.h"
97 #undef F
98 #undef G
100 #define F target teams distribute parallel for simd
101 #define G ttdpfs
102 #include "../libgomp.c/for-1.h"
103 #undef F
104 #undef G
106 #define F target teams distribute parallel for simd dist_schedule(static, 128)
107 #define G ttdpfs_ds128
108 #include "../libgomp.c/for-1.h"
109 #undef F
110 #undef G
113 main ()
115   if (test_tpf_static ()
116       || test_tpf_static32 ()
117       || test_tpf_auto ()
118       || test_tpf_guided32 ()
119       || test_tpf_runtime ()
120       || test_t_simd_normal ()
121       || test_tpf_simd_static ()
122       || test_tpf_simd_static32 ()
123       || test_tpf_simd_auto ()
124       || test_tpf_simd_guided32 ()
125       || test_tpf_simd_runtime ()
126       || test_ttd_normal ()
127       || test_ttd_ds128_normal ()
128       || test_ttds_normal ()
129       || test_ttds_ds128_normal ()
130       || test_ttdpf_static ()
131       || test_ttdpf_static32 ()
132       || test_ttdpf_auto ()
133       || test_ttdpf_guided32 ()
134       || test_ttdpf_runtime ()
135       || test_ttdpf_ds128_static ()
136       || test_ttdpf_ds128_static32 ()
137       || test_ttdpf_ds128_auto ()
138       || test_ttdpf_ds128_guided32 ()
139       || test_ttdpf_ds128_runtime ()
140       || test_ttdpfs_static ()
141       || test_ttdpfs_static32 ()
142       || test_ttdpfs_auto ()
143       || test_ttdpfs_guided32 ()
144       || test_ttdpfs_runtime ()
145       || test_ttdpfs_ds128_static ()
146       || test_ttdpfs_ds128_static32 ()
147       || test_ttdpfs_ds128_auto ()
148       || test_ttdpfs_ds128_guided32 ()
149       || test_ttdpfs_ds128_runtime ())
150     abort ();