1 #include <stdlib.h>
2
3 #define N (1024 * 512)
4 #define COUNTERTYPE unsigned int
5
6 int
7 main (void)
8 {
9 unsigned int i;
10
11 unsigned int *__restrict c;
12
13 c = (unsigned int *__restrict)malloc (N * sizeof (unsigned int));
14
15 for (COUNTERTYPE i = 0; i < N; i++)
16 c[i] = i * 2;
17
18 #pragma acc kernels copy (c[0:N])
19 {
20 for (COUNTERTYPE ii = 0; ii < N; ii++)
21 c[ii] = c[ii] + ii + 1;
22 }
23
24 for (COUNTERTYPE i = 0; i < N; i++)
25 if (c[i] != i * 2 + i + 1)
26 abort ();
27
28 free (c);
29
30 return 0;
31 }