Set num_threads to 50 on 32-bit hppa in two libgomp loop tests
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / async-data-1-1.c
blob9f2bed8aca82c5ef9fe6ee069440247ac734016a
1 /* Verify back to back 'async' operations, one data mapping.
3 Due to one data mapping, this isn't using the libgomp 'cbuf' buffering.
4 */
7 #include <stdlib.h>
10 #define N 128
13 static void
14 t1 (void)
16 unsigned int *a;
17 int i;
18 int nbytes;
20 nbytes = N * sizeof (unsigned int);
22 a = (unsigned int *) malloc (nbytes);
24 for (i = 0; i < N; i++)
25 a[i] = 3;
27 #pragma acc parallel async copy (a[0:N])
28 for (int ii = 0; ii < N; ii++)
29 a[ii] += 1;
31 #pragma acc parallel async copy (a[0:N])
32 for (int ii = 0; ii < N; ii++)
33 a[ii] += 1;
35 #pragma acc wait
37 for (i = 0; i < N; i++)
38 if (a[i] != 5)
39 abort ();
43 static void
44 t2 (void)
46 unsigned int *a;
47 int i;
48 int nbytes;
50 nbytes = N * sizeof (unsigned int);
52 a = (unsigned int *) malloc (nbytes);
54 #pragma acc data copyin (a[0:N])
56 for (i = 0; i < N; i++)
57 a[i] = 3;
59 #pragma acc update async device (a[0:N])
60 #pragma acc parallel async present (a[0:N])
61 for (int ii = 0; ii < N; ii++)
62 a[ii] += 1;
63 #pragma acc update async host (a[0:N])
65 #pragma acc update async device (a[0:N])
66 #pragma acc parallel async present (a[0:N])
67 for (int ii = 0; ii < N; ii++)
68 a[ii] += 1;
69 #pragma acc update async host (a[0:N])
71 #pragma acc wait
74 for (i = 0; i < N; i++)
75 if (a[i] != 5)
76 abort ();
80 int
81 main (void)
83 t1 ();
85 t2 ();
87 return 0;