Testing of C/C++ OpenACC cache directive.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / cache-1.c
blob3f1f0bb3764d4ddf205edefd26f4088bf91a6a39
1 int
2 main (int argc, char **argv)
4 #define N 2
5 int a[N], b[N];
6 int i;
8 for (i = 0; i < N; i++)
10 a[i] = 3;
11 b[i] = 0;
14 #pragma acc parallel copyin (a[0:N]) copyout (b[0:N])
16 int ii;
18 for (ii = 0; ii < N; ii++)
20 const int idx = ii;
21 int n = 1;
22 const int len = n;
24 #pragma acc cache (a[0:N])
26 #pragma acc cache (a[0:N], b[0:N])
28 #pragma acc cache (a[0])
30 #pragma acc cache (a[0], a[1], b[0:N])
32 #pragma acc cache (a[idx])
34 #pragma acc cache (a[idx:len])
36 b[ii] = a[ii];
41 for (i = 0; i < N; i++)
43 if (a[i] != b[i])
44 __builtin_abort ();
47 return 0;