Merge current set of OpenACC changes from gomp-4_0-branch.
[gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / present-2.c
1 /* { dg-do run } */
2 /* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
3
4 #include <openacc.h>
5 #include <stdlib.h>
6
7 int
8 main (int argc, char **argv)
9 {
10 int N = 8;
11 float *a, *b;
12 int i;
13
14 a = (float *) malloc (N * sizeof (float));
15 b = (float *) malloc (N * sizeof (float));
16
17 for (i = 0; i < N; i++)
18 {
19 a[i] = 4.0;
20 b[i] = 0.0;
21 }
22
23 #pragma acc data copyin(a[0:N]) copyout(b[0:N])
24 {
25
26 #pragma acc parallel present(a[0:N])
27 {
28 int ii;
29
30 for (ii = 0; ii < N; ii++)
31 {
32 b[ii] = a[ii];
33 }
34 }
35
36 }
37
38 for (i = 0; i < N; i++)
39 {
40 if (a[i] != 4.0)
41 abort ();
42
43 if (b[i] != 4.0)
44 abort ();
45 }
46
47 return 0;
48 }