Set num_threads to 50 on 32-bit hppa in two libgomp loop tests
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / no_create-4.c
blob963cb3a68f676ef68154f1b443a159fb86ae615c
1 /* Test 'no_create' clause on 'data' construct and nested compute construct,
2 with data present on the 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 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)
26 __builtin_abort ();
27 if (devptr[1] == NULL)
28 __builtin_abort ();
30 if (acc_hostptr (devptr[0]) != (void *) &var)
31 __builtin_abort ();
32 if (acc_hostptr (devptr[1]) != (void *) &arr[2])
33 __builtin_abort ();
35 #if ACC_MEM_SHARED
36 if (devptr[0] != &var)
37 __builtin_abort ();
38 if (devptr[1] != &arr[2])
39 __builtin_abort ();
40 #else
41 if (devptr[0] == &var)
42 __builtin_abort ();
43 if (devptr[1] == &arr[2])
44 __builtin_abort ();
45 #endif
47 #pragma acc parallel copyout(devptr)
49 devptr[0] = &var;
50 devptr[1] = &arr[2];
53 if (devptr[0] == NULL)
54 __builtin_abort ();
55 if (devptr[1] == NULL)
56 __builtin_abort ();
58 if (acc_hostptr (devptr[0]) != (void *) &var)
59 __builtin_abort ();
60 if (acc_hostptr (devptr[1]) != (void *) &arr[2])
61 __builtin_abort ();
63 #if ACC_MEM_SHARED
64 if (devptr[0] != &var)
65 __builtin_abort ();
66 if (devptr[1] != &arr[2])
67 __builtin_abort ();
68 #else
69 if (devptr[0] == &var)
70 __builtin_abort ();
71 if (devptr[1] == &arr[2])
72 __builtin_abort ();
73 #endif
76 acc_delete (&var, sizeof (var));
77 acc_delete (arr, N * sizeof (*arr));
79 free (arr);
81 return 0;