1 /* Test 'no_create' clause on 'data' construct and nested compute construct,
2 with data present on the device. */
11 main (int argc
, char *argv
[])
14 int *arr
= (int *) malloc (N
* sizeof (*arr
));
17 acc_copyin (&var
, sizeof (var
));
18 acc_copyin (arr
, N
* sizeof (*arr
));
20 #pragma acc data no_create(var, arr[0:N])
22 devptr
[0] = (int *) acc_deviceptr (&var
);
23 devptr
[1] = (int *) acc_deviceptr (&arr
[2]);
25 if (devptr
[0] == NULL
)
27 if (devptr
[1] == NULL
)
30 if (acc_hostptr (devptr
[0]) != (void *) &var
)
32 if (acc_hostptr (devptr
[1]) != (void *) &arr
[2])
36 if (devptr
[0] != &var
)
38 if (devptr
[1] != &arr
[2])
41 if (devptr
[0] == &var
)
43 if (devptr
[1] == &arr
[2])
47 #pragma acc parallel copyout(devptr)
53 if (devptr
[0] == NULL
)
55 if (devptr
[1] == NULL
)
58 if (acc_hostptr (devptr
[0]) != (void *) &var
)
60 if (acc_hostptr (devptr
[1]) != (void *) &arr
[2])
64 if (devptr
[0] != &var
)
66 if (devptr
[1] != &arr
[2])
69 if (devptr
[0] == &var
)
71 if (devptr
[1] == &arr
[2])
76 acc_delete (&var
, sizeof (var
));
77 acc_delete (arr
, N
* sizeof (*arr
));