Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c @ 144:8f4e72ab4e11
fix segmentation fault caused by nothing next cur_op to end
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 23 Dec 2018 21:23:56 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* Exercise the auto, independent, seq and tile loop clauses inside kernels regions. */ #include <assert.h> #define N 100 void check (int *a, int *b) { int i; for (i = 0; i < N; i++) assert (a[i] == b[i]); } int main () { int i, a[N], b[N]; #pragma acc kernels copy(a) { #pragma acc loop auto for (i = 0; i < N; i++) a[i] = i; } for (i = 0; i < N; i++) b[i] = i; check (a, b); #pragma acc kernels copyout(a) { #pragma acc loop independent for (i = 0; i < N; i++) a[i] = i; } check (a, b); #pragma acc kernels present_or_copy(a) { #pragma acc loop seq for (i = 0; i < N; i++) a[i] = i; } check (a, b); #pragma acc kernels pcopyout(a) present_or_copyin(b) { #pragma acc loop seq for (i = 0; i < N; i++) a[i] = b[i]; } check (a, b); return 0; }