]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/c-c++-common/gomp/clauses-1.c
gcc/
[thirdparty/gcc.git] / gcc / testsuite / c-c++-common / gomp / clauses-1.c
1 /* { dg-do compile } */
2 /* { dg-options "-fopenmp" } */
3 /* { dg-additional-options "-std=c99" { target c } } */
4
5 int t;
6 #pragma omp threadprivate (t)
7
8 #pragma omp declare target
9 int f, l, ll, r;
10
11 void
12 foo (int d, int m, int i1, int i2, int p, int *idp, int s,
13 int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q)
14 {
15 #pragma omp distribute parallel for \
16 private (p) firstprivate (f) collapse(1) dist_schedule(static, 16) \
17 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
18 lastprivate (l) schedule(static, 4)
19 for (int i = 0; i < 64; i++)
20 ll++;
21 #pragma omp distribute parallel for simd \
22 private (p) firstprivate (f) collapse(1) dist_schedule(static, 16) \
23 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
24 lastprivate (l) schedule(static, 4) \
25 safelen(8) simdlen(4) aligned(q: 32)
26 for (int i = 0; i < 64; i++)
27 ll++;
28 #pragma omp distribute simd \
29 private (p) firstprivate (f) collapse(1) dist_schedule(static, 16) \
30 safelen(8) simdlen(4) aligned(q: 32) reduction(+:r)
31 for (int i = 0; i < 64; i++)
32 ll++;
33 }
34 #pragma omp end declare target
35
36 void
37 bar (int d, int m, int i1, int i2, int p, int *idp, int s,
38 int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q)
39 {
40 #pragma omp for simd \
41 private (p) firstprivate (f) lastprivate (l) linear (ll:1) reduction(+:r) schedule(static, 4) collapse(1) nowait \
42 safelen(8) simdlen(4) aligned(q: 32)
43 for (int i = 0; i < 64; i++)
44 ll++;
45 #pragma omp parallel for \
46 private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) copyin(t) reduction(+:r) num_threads (nth) proc_bind(spread) \
47 lastprivate (l) linear (ll:1) ordered schedule(static, 4) collapse(1)
48 for (int i = 0; i < 64; i++)
49 ll++;
50 #pragma omp parallel for simd \
51 private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) copyin(t) reduction(+:r) num_threads (nth) proc_bind(spread) \
52 lastprivate (l) linear (ll:1) schedule(static, 4) collapse(1) \
53 safelen(8) simdlen(4) aligned(q: 32)
54 for (int i = 0; i < 64; i++)
55 ll++;
56 #pragma omp parallel sections \
57 private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) copyin(t) reduction(+:r) num_threads (nth) proc_bind(spread) \
58 lastprivate (l)
59 {
60 #pragma omp section
61 {}
62 #pragma omp section
63 {}
64 }
65 #pragma omp target parallel \
66 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
67 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread)
68 ;
69 #pragma omp target parallel for \
70 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
71 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
72 lastprivate (l) linear (ll:1) ordered schedule(static, 4) collapse(1)
73 for (int i = 0; i < 64; i++)
74 ll++;
75 #pragma omp target parallel for simd \
76 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
77 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
78 lastprivate (l) linear (ll:1) schedule(static, 4) collapse(1) \
79 safelen(8) simdlen(4) aligned(q: 32)
80 for (int i = 0; i < 64; i++)
81 ll++;
82 #pragma omp target teams \
83 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
84 shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl)
85 ;
86 #pragma omp target teams distribute \
87 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
88 shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
89 collapse(1) dist_schedule(static, 16)
90 for (int i = 0; i < 64; i++)
91 ;
92 #pragma omp target teams distribute parallel for \
93 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
94 shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
95 collapse(1) dist_schedule(static, 16) \
96 if (parallel: i2) num_threads (nth) proc_bind(spread) \
97 lastprivate (l) schedule(static, 4)
98 for (int i = 0; i < 64; i++)
99 ll++;
100 #pragma omp target teams distribute parallel for simd \
101 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
102 shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
103 collapse(1) dist_schedule(static, 16) \
104 if (parallel: i2) num_threads (nth) proc_bind(spread) \
105 lastprivate (l) schedule(static, 4) \
106 safelen(8) simdlen(4) aligned(q: 32)
107 for (int i = 0; i < 64; i++)
108 ll++;
109 #pragma omp target teams distribute simd \
110 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
111 shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
112 collapse(1) dist_schedule(static, 16) \
113 safelen(8) simdlen(4) aligned(q: 32)
114 for (int i = 0; i < 64; i++)
115 ll++;
116 #pragma omp target simd \
117 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
118 safelen(8) simdlen(4) lastprivate (l) linear(ll: 1) aligned(q: 32) reduction(+:r)
119 for (int i = 0; i < 64; i++)
120 ll++;
121 #pragma omp taskloop simd \
122 private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) grainsize (g) collapse(1) untied if(taskloop: i1) final(fi) mergeable nogroup priority (pp) \
123 safelen(8) simdlen(4) linear(ll: 1) aligned(q: 32) reduction(+:r)
124 for (int i = 0; i < 64; i++)
125 ll++;
126 #pragma omp taskwait
127 #pragma omp taskloop simd \
128 private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) num_tasks (nta) collapse(1) if(taskloop: i1) final(fi) priority (pp) \
129 safelen(8) simdlen(4) linear(ll: 1) aligned(q: 32) reduction(+:r)
130 for (int i = 0; i < 64; i++)
131 ll++;
132 #pragma omp target
133 #pragma omp teams distribute \
134 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
135 collapse(1) dist_schedule(static, 16)
136 for (int i = 0; i < 64; i++)
137 ;
138 #pragma omp target
139 #pragma omp teams distribute parallel for \
140 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
141 collapse(1) dist_schedule(static, 16) \
142 if (parallel: i2) num_threads (nth) proc_bind(spread) \
143 lastprivate (l) schedule(static, 4)
144 for (int i = 0; i < 64; i++)
145 ll++;
146 #pragma omp target
147 #pragma omp teams distribute parallel for simd \
148 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
149 collapse(1) dist_schedule(static, 16) \
150 if (parallel: i2) num_threads (nth) proc_bind(spread) \
151 lastprivate (l) schedule(static, 4) \
152 safelen(8) simdlen(4) aligned(q: 32)
153 for (int i = 0; i < 64; i++)
154 ll++;
155 #pragma omp target
156 #pragma omp teams distribute simd \
157 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
158 collapse(1) dist_schedule(static, 16) \
159 safelen(8) simdlen(4) aligned(q: 32)
160 for (int i = 0; i < 64; i++)
161 ll++;
162 }