2 /* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
11 main (int argc
, char **argv
)
16 float *d_a
, *d_b
, *d_c
;
19 a
= (float *) malloc (N
* sizeof (float));
20 b
= (float *) malloc (N
* sizeof (float));
21 c
= (float *) malloc (N
* sizeof (float));
23 d_a
= (float *) acc_malloc (N
* sizeof (float));
24 d_b
= (float *) acc_malloc (N
* sizeof (float));
25 d_c
= (float *) acc_malloc (N
* sizeof (float));
27 for (i
= 0; i
< N
; i
++)
33 acc_map_data (a
, d_a
, N
* sizeof (float));
34 acc_map_data (b
, d_b
, N
* sizeof (float));
35 acc_map_data (c
, d_c
, N
* sizeof (float));
37 #pragma acc update device (a[0:N], b[0:N])
39 #pragma acc parallel present (a[0:N], b[0:N])
43 for (ii
= 0; ii
< N
; ii
++)
47 #pragma acc update host (a[0:N], b[0:N])
49 for (i
= 0; i
< N
; i
++)
58 if (!acc_is_present (&a
[0], (N
* sizeof (float))))
61 if (!acc_is_present (&b
[0], (N
* sizeof (float))))
64 for (i
= 0; i
< N
; i
++)
70 #pragma acc update device (a[0:N], b[0:N])
72 #pragma acc parallel present (a[0:N], b[0:N])
76 for (ii
= 0; ii
< N
; ii
++)
80 #pragma acc update host (a[0:N], b[0:N])
82 for (i
= 0; i
< N
; i
++)
91 if (!acc_is_present (&a
[0], (N
* sizeof (float))))
94 if (!acc_is_present (&b
[0], (N
* sizeof (float))))
97 for (i
= 0; i
< N
; i
++)
103 #pragma acc update device (a[0:N], b[0:N])
105 #pragma acc parallel present (a[0:N], b[0:N])
109 for (ii
= 0; ii
< N
; ii
++)
113 #pragma acc update host (a[0:N], b[0:N])
115 for (i
= 0; i
< N
; i
++)
124 if (!acc_is_present (&a
[0], (N
* sizeof (float))))
127 if (!acc_is_present (&b
[0], (N
* sizeof (float))))
130 for (i
= 0; i
< N
; i
++)
136 #pragma acc update device (a[0:N], b[0:N])
138 for (i
= 0; i
< N
; i
++)
143 #pragma acc parallel present (a[0:N], b[0:N])
147 for (ii
= 0; ii
< N
; ii
++)
151 #pragma acc update host (a[0:N], b[0:N])
153 for (i
= 0; i
< N
; i
++)
162 if (!acc_is_present (&a
[0], (N
* sizeof (float))))
165 if (!acc_is_present (&b
[0], (N
* sizeof (float))))
168 for (i
= 0; i
< N
; i
++)
174 #pragma acc update device (a[0:N], b[0:N])
176 for (i
= 0; i
< N
; i
++)
181 #pragma acc parallel present (a[0:N], b[0:N])
185 for (ii
= 0; ii
< N
; ii
++)
189 #pragma acc update host (a[0:N], b[0:N])
191 for (i
= 0; i
< N
; i
++)
200 for (i
= 0; i
< N
; i
++)
205 #pragma acc update device (a[0:N])
207 #pragma acc parallel present (a[0:N], b[0:N])
211 for (ii
= 0; ii
< N
; ii
++)
215 #pragma acc update host (a[0:N], b[0:N])
217 for (i
= 0; i
< N
; i
++)
226 if (!acc_is_present (&a
[0], (N
* sizeof (float))))
229 if (!acc_is_present (&b
[0], (N
* sizeof (float))))
232 for (i
= 0; i
< N
; i
++)
237 #pragma acc update device (a[0:N])
239 for (i
= 0; i
< N
; i
++)
244 #pragma acc update device (a[0:NDIV2])
246 #pragma acc parallel present (a[0:N], b[0:N])
250 for (ii
= 0; ii
< N
; ii
++)
254 #pragma acc update host (a[0:N], b[0:N])
256 for (i
= 0; i
< NDIV2
; i
++)
265 for (i
= NDIV2
; i
< N
; i
++)
274 if (!acc_is_present (&a
[0], (N
* sizeof (float))))
277 if (!acc_is_present (&b
[0], (N
* sizeof (float))))
280 for (i
= 0; i
< N
; i
++)
285 #pragma acc update device (a[0:4])
287 #pragma acc parallel present (a[0:N])
291 for (ii
= 0; ii
< N
; ii
++)
295 #pragma acc update host (a[4:4])
297 for (i
= 0; i
< NDIV2
; i
++)
303 for (i
= NDIV2
; i
< N
; i
++)
309 #pragma acc update host (a[0:4])
311 for (i
= 0; i
< NDIV2
; i
++)
317 for (i
= NDIV2
; i
< N
; i
++)
328 #pragma acc update device (a[2:4])
330 #pragma acc parallel present (a[0:N])
334 for (ii
= 0; ii
< N
; ii
++)
338 #pragma acc update host (a[2:4])
340 for (i
= 0; i
< 2; i
++)
346 for (i
= 2; i
< 6; i
++)
352 for (i
= 6; i
< N
; i
++)