Daily bump.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / declare-2.c
blob2078a33afa95b4d4c3465bc48a36771342af6af7
1 /* { dg-do run { target openacc_nvidia_accel_selected } } */
3 #include <stdlib.h>
5 #define N 16
7 float c[N];
8 #pragma acc declare device_resident (c)
10 #pragma acc routine
11 float
12 subr2 (float a)
14 int i;
16 for (i = 0; i < N; i++)
17 c[i] = 2.0;
19 for (i = 0; i < N; i++)
20 a += c[i];
22 return a;
25 float b[N];
26 #pragma acc declare copyin (b)
28 #pragma acc routine
29 float
30 subr1 (float a)
32 int i;
34 for (i = 0; i < N; i++)
35 a += b[i];
37 return a;
40 int
41 main (int argc, char **argv)
43 float a;
44 int i;
46 for (i = 0; i < 16; i++)
47 b[i] = 1.0;
49 a = 0.0;
51 a = subr1 (a);
53 if (a != 16.0)
54 abort ();
56 a = 0.0;
58 a = subr2 (a);
60 if (a != 32.0)
61 abort ();
63 return 0;