Set num_threads to 50 on 32-bit hppa in two libgomp loop tests
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / mdc-refcount-1.c
blob6170447e7d31372eddc9f5bf6b7093d68634db52
1 /* { dg-skip-if "" { *-*-* } { "-DACC_MEM_SHARED=1" } } */
3 #include <openacc.h>
4 #include <assert.h>
6 #define N 1024
8 struct mystr {
9 int *data;
12 static void
13 test (unsigned variant)
15 int arr[N];
16 struct mystr s;
18 s.data = arr;
20 acc_copyin (&s, sizeof (s));
21 acc_create (s.data, N * sizeof (int));
23 for (int i = 0; i < 20; i++)
25 if ((variant + i) % 1)
27 #pragma acc enter data attach(s.data)
29 else
30 acc_attach ((void **) &s.data);
32 if ((variant + i) % 2)
34 #pragma acc exit data detach(s.data)
36 else
37 acc_detach ((void **) &s.data);
40 assert (acc_is_present (arr, N * sizeof (int)));
41 assert (acc_is_present (&s, sizeof (s)));
43 acc_delete (arr, N * sizeof (int));
45 assert (!acc_is_present (arr, N * sizeof (int)));
47 acc_copyout (&s, sizeof (s));
49 assert (!acc_is_present (&s, sizeof (s)));
50 assert (s.data == arr);
53 int
54 main (int argc, char *argv[])
56 for (unsigned variant = 0; variant < 4; ++variant)
57 test (variant);
59 return 0;