1extern "C" void abort ();
2
3#define M(x, y, z) O(x, y, z)
4#define O(x, y, z) x ## _ ## y ## _ ## z
5
6#pragma omp declare target
7
8#define F distribute
9#define G d
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
17
18#define F distribute
19#define G d_ds128
20#define S dist_schedule(static, 128)
21#define N(x) M(x, G, normal)
22#include "../libgomp.c/for-2.h"
23#undef S
24#undef N
25#undef F
26#undef G
27
28#define F distribute simd
29#define G ds
30#define S
31#define N(x) M(x, G, normal)
32#include "../libgomp.c/for-2.h"
33#undef S
34#undef N
35#undef F
36#undef G
37
38#define F distribute simd
39#define G ds_ds128
40#define S dist_schedule(static, 128)
41#define N(x) M(x, G, normal)
42#include "../libgomp.c/for-2.h"
43#undef S
44#undef N
45#undef F
46#undef G
47
48#define F distribute parallel for
49#define G dpf
50#include "../libgomp.c/for-1.h"
51#undef F
52#undef G
53
54#define F distribute parallel for dist_schedule(static, 128)
55#define G dpf_ds128
56#include "../libgomp.c/for-1.h"
57#undef F
58#undef G
59
60#define F distribute parallel for simd
61#define G dpfs
62#include "../libgomp.c/for-1.h"
63#undef F
64#undef G
65
66#define F distribute parallel for simd dist_schedule(static, 128)
67#define G dpfs_ds128
68#include "../libgomp.c/for-1.h"
69#undef F
70#undef G
71
72#pragma omp end declare target
73
74int
75main ()
76{
77  int err = 0;
78  #pragma omp target teams reduction(|:err)
79    {
80      err |= test_d_normal ();
81      err |= test_d_ds128_normal ();
82      err |= test_ds_normal ();
83      err |= test_ds_ds128_normal ();
84      err |= test_dpf_static ();
85      err |= test_dpf_static32 ();
86      err |= test_dpf_auto ();
87      err |= test_dpf_guided32 ();
88      err |= test_dpf_runtime ();
89      err |= test_dpf_ds128_static ();
90      err |= test_dpf_ds128_static32 ();
91      err |= test_dpf_ds128_auto ();
92      err |= test_dpf_ds128_guided32 ();
93      err |= test_dpf_ds128_runtime ();
94      err |= test_dpfs_static ();
95      err |= test_dpfs_static32 ();
96      err |= test_dpfs_auto ();
97      err |= test_dpfs_guided32 ();
98      err |= test_dpfs_runtime ();
99      err |= test_dpfs_ds128_static ();
100      err |= test_dpfs_ds128_static32 ();
101      err |= test_dpfs_ds128_auto ();
102      err |= test_dpfs_ds128_guided32 ();
103      err |= test_dpfs_ds128_runtime ();
104    }
105  if (err)
106    abort ();
107  return 0;
108}
109