Improve atomic store implementation on hppa-linux.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / no_create-1.c
blob22e0c20cce9eee5ffeebcac5f2da94e43e757109
1 /* Test 'no_create' clause on compute construct, with data present on the
2 device. */
4 #include <stdlib.h>
5 #include <stdio.h>
6 #include <openacc.h>
8 #define N 128
10 int
11 main (int argc, char *argv[])
13 int var;
14 int *arr = (int *) malloc (N * sizeof (*arr));
15 int *devptr[2];
17 acc_copyin (&var, sizeof (var));
18 acc_copyin (arr, N * sizeof (*arr));
20 #pragma acc parallel no_create(var, arr[0:N]) copyout(devptr)
22 devptr[0] = &var;
23 devptr[1] = &arr[2];
26 if (acc_hostptr (devptr[0]) != (void *) &var)
27 __builtin_abort ();
28 if (acc_hostptr (devptr[1]) != (void *) &arr[2])
29 __builtin_abort ();
31 acc_delete (&var, sizeof (var));
32 acc_delete (arr, N * sizeof (*arr));
34 #if ACC_MEM_SHARED
35 if (devptr[0] != &var)
36 __builtin_abort ();
37 if (devptr[1] != &arr[2])
38 __builtin_abort ();
39 #else
40 if (devptr[0] == &var)
41 __builtin_abort ();
42 if (devptr[1] == &arr[2])
43 __builtin_abort ();
44 #endif
46 free (arr);
48 return 0;