Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.oacc-c-c++-common/nested-2.c @ 138:fc828634a951
merge
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Nov 2018 14:17:14 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ #include <stdlib.h> int main (int argc, char *argv[]) { #define N 10 char a[N]; int i; for (i = 0; i < N; ++i) a[i] = 0; #pragma acc data copy (a) { #pragma acc parallel present (a) { int j; for (j = 0; j < N; ++j) a[j] = j; } } for (i = 0; i < N; ++i) { if (a[i] != i) abort (); } for (i = 0; i < N; ++i) a[i] = 0; #pragma acc data copy (a) { #pragma acc kernels present (a) { int j; for (j = 0; j < N; ++j) a[j] = j; } } for (i = 0; i < N; ++i) { if (a[i] != i) abort (); } for (i = 0; i < N; ++i) a[i] = 0; #pragma acc data copy (a) { #pragma acc data present (a) { #pragma acc parallel present (a) { int j; for (j = 0; j < N; ++j) a[j] = j; } } } for (i = 0; i < N; ++i) { if (a[i] != i) abort (); } #pragma acc data copy (a) { #pragma acc data present (a) { #pragma acc kernels present (a) { int j; for (j = 0; j < N; ++j) a[j] = j; } } } for (i = 0; i < N; ++i) { if (a[i] != i) abort (); } for (i = 0; i < N; ++i) a[i] = 0; #pragma acc enter data copyin (a) #pragma acc data present (a) { #pragma acc parallel present (a) { int j; for (j = 0; j < N; ++j) a[j] = j; } } #pragma acc exit data copyout (a) for (i = 0; i < N; ++i) { if (a[i] != i) abort (); } #pragma acc enter data copyin (a) #pragma acc data present (a) { #pragma acc kernels present (a) { int j; for (j = 0; j < N; ++j) a[j] = j; } } #pragma acc exit data copyout (a) for (i = 0; i < N; ++i) { if (a[i] != i) abort (); } #pragma acc enter data create (a) #pragma acc parallel default (present) { for (int j = 0; j < N; ++j) a[j] = j + 1; } #pragma acc update host (a) for (i = 0; i < N; ++i) { if (a[i] != i + 1) abort (); } #pragma acc kernels default (present) { for (int j = 0; j < N; ++j) a[j] = j + 2; } #pragma acc exit data copyout (a) for (i = 0; i < N; ++i) { if (a[i] != i + 2) abort (); } return 0; }