PR c++/86342 - -Wdeprecated-copy and system headers.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / kernels-loop-n.c
blob9a3eaca13803584d8222b15cadf0771db67207f0
1 #include <stdlib.h>
3 #define N ((1024 * 512) + 1)
4 #define COUNTERTYPE unsigned int
6 static int __attribute__((noinline,noclone))
7 foo (COUNTERTYPE n)
9 unsigned int *__restrict a;
10 unsigned int *__restrict b;
11 unsigned int *__restrict c;
13 a = (unsigned int *__restrict)malloc (n * sizeof (unsigned int));
14 b = (unsigned int *__restrict)malloc (n * sizeof (unsigned int));
15 c = (unsigned int *__restrict)malloc (n * sizeof (unsigned int));
17 for (COUNTERTYPE i = 0; i < n; i++)
18 a[i] = i * 2;
20 for (COUNTERTYPE i = 0; i < n; i++)
21 b[i] = i * 4;
23 #pragma acc kernels copyin (a[0:n], b[0:n]) copyout (c[0:n])
25 for (COUNTERTYPE ii = 0; ii < n; ii++)
26 c[ii] = a[ii] + b[ii];
29 for (COUNTERTYPE i = 0; i < n; i++)
30 if (c[i] != a[i] + b[i])
31 abort ();
33 free (a);
34 free (b);
35 free (c);
37 return 0;
40 int
41 main (void)
43 return foo (N);