111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-additional-options "-std=c99" { target c } } */
|
|
3
|
|
4 int t;
|
|
5 #pragma omp threadprivate (t)
|
|
6
|
|
7 #pragma omp declare target
|
|
8 int f, l, ll, r;
|
|
9
|
|
10 void
|
|
11 foo (int d, int m, int i1, int i2, int p, int *idp, int s,
|
|
12 int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q)
|
|
13 {
|
|
14 #pragma omp distribute parallel for \
|
|
15 private (p) firstprivate (f) collapse(1) dist_schedule(static, 16) \
|
|
16 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
|
|
17 lastprivate (l) schedule(static, 4)
|
|
18 for (int i = 0; i < 64; i++)
|
|
19 ll++;
|
|
20 #pragma omp distribute parallel for simd \
|
|
21 private (p) firstprivate (f) collapse(1) dist_schedule(static, 16) \
|
|
22 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
|
|
23 lastprivate (l) schedule(static, 4) \
|
|
24 safelen(8) simdlen(4) aligned(q: 32)
|
|
25 for (int i = 0; i < 64; i++)
|
|
26 ll++;
|
|
27 #pragma omp distribute simd \
|
|
28 private (p) firstprivate (f) collapse(1) dist_schedule(static, 16) \
|
|
29 safelen(8) simdlen(4) aligned(q: 32) reduction(+:r)
|
|
30 for (int i = 0; i < 64; i++)
|
|
31 ll++;
|
|
32 }
|
|
33 #pragma omp end declare target
|
|
34
|
|
35 void
|
|
36 bar (int d, int m, int i1, int i2, int p, int *idp, int s,
|
|
37 int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q, int *dd)
|
|
38 {
|
|
39 #pragma omp for simd \
|
|
40 private (p) firstprivate (f) lastprivate (l) linear (ll:1) reduction(+:r) schedule(static, 4) collapse(1) nowait \
|
|
41 safelen(8) simdlen(4) aligned(q: 32)
|
|
42 for (int i = 0; i < 64; i++)
|
|
43 ll++;
|
|
44 #pragma omp parallel for \
|
|
45 private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) copyin(t) reduction(+:r) num_threads (nth) proc_bind(spread) \
|
|
46 lastprivate (l) linear (ll:1) ordered schedule(static, 4) collapse(1)
|
|
47 for (int i = 0; i < 64; i++)
|
|
48 ll++;
|
|
49 #pragma omp parallel for simd \
|
|
50 private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) copyin(t) reduction(+:r) num_threads (nth) proc_bind(spread) \
|
|
51 lastprivate (l) linear (ll:1) schedule(static, 4) collapse(1) \
|
|
52 safelen(8) simdlen(4) aligned(q: 32)
|
|
53 for (int i = 0; i < 64; i++)
|
|
54 ll++;
|
|
55 #pragma omp parallel sections \
|
|
56 private (p) firstprivate (f) if (parallel: i2) default(shared) shared(s) copyin(t) reduction(+:r) num_threads (nth) proc_bind(spread) \
|
|
57 lastprivate (l)
|
|
58 {
|
|
59 #pragma omp section
|
|
60 {}
|
|
61 #pragma omp section
|
|
62 {}
|
|
63 }
|
|
64 #pragma omp target parallel \
|
|
65 device(d) map (tofrom: m) if (target: i1) private (p) firstprivate (f) defaultmap(tofrom: scalar) is_device_ptr (idp) \
|
|
66 if (parallel: i2) default(shared) shared(s) reduction(+:r) num_threads (nth) proc_bind(spread) \
|
|
67 nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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) nowait depend(inout: dd[0])
|
|
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 nowait depend(inout: dd[0])
|
|
120 for (int i = 0; i < 64; i++)
|
|
121 ll++;
|
|
122 #pragma omp taskloop simd \
|
|
123 private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) grainsize (g) collapse(1) untied if(taskloop: i1) final(fi) mergeable nogroup priority (pp) \
|
|
124 safelen(8) simdlen(4) linear(ll: 1) aligned(q: 32) reduction(+:r)
|
|
125 for (int i = 0; i < 64; i++)
|
|
126 ll++;
|
|
127 #pragma omp taskwait
|
|
128 #pragma omp taskloop simd \
|
|
129 private (p) firstprivate (f) lastprivate (l) shared (s) default(shared) num_tasks (nta) collapse(1) if(taskloop: i1) final(fi) priority (pp) \
|
|
130 safelen(8) simdlen(4) linear(ll: 1) aligned(q: 32) reduction(+:r)
|
|
131 for (int i = 0; i < 64; i++)
|
|
132 ll++;
|
|
133 #pragma omp target nowait depend(inout: dd[0])
|
|
134 #pragma omp teams distribute \
|
|
135 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
|
|
136 collapse(1) dist_schedule(static, 16)
|
|
137 for (int i = 0; i < 64; i++)
|
|
138 ;
|
|
139 #pragma omp target
|
|
140 #pragma omp teams distribute parallel for \
|
|
141 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
|
|
142 collapse(1) dist_schedule(static, 16) \
|
|
143 if (parallel: i2) num_threads (nth) proc_bind(spread) \
|
|
144 lastprivate (l) schedule(static, 4)
|
|
145 for (int i = 0; i < 64; i++)
|
|
146 ll++;
|
|
147 #pragma omp target
|
|
148 #pragma omp teams distribute parallel for simd \
|
|
149 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
|
|
150 collapse(1) dist_schedule(static, 16) \
|
|
151 if (parallel: i2) num_threads (nth) proc_bind(spread) \
|
|
152 lastprivate (l) schedule(static, 4) \
|
|
153 safelen(8) simdlen(4) aligned(q: 32)
|
|
154 for (int i = 0; i < 64; i++)
|
|
155 ll++;
|
|
156 #pragma omp target
|
|
157 #pragma omp teams distribute simd \
|
|
158 private(p) firstprivate (f) shared(s) default(shared) reduction(+:r) num_teams(nte) thread_limit(tl) \
|
|
159 collapse(1) dist_schedule(static, 16) \
|
|
160 safelen(8) simdlen(4) aligned(q: 32)
|
|
161 for (int i = 0; i < 64; i++)
|
|
162 ll++;
|
|
163 }
|