diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-12-12 22:47:55 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-12-12 22:47:55 +0000 |
commit | b98d9703bcbc7be1c764d39b35205340dfd05d6f (patch) | |
tree | 6c920b965a377bf127357cecb4fb2e0ee962e407 /libgomp/testsuite | |
parent | 4a8a652d1b48db4d74eab95d391824a60bcdc01b (diff) |
* omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up
function types - remove one argument.
* testsuite/libgomp.c-c++-common/for-16.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@267067 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp/testsuite')
-rw-r--r-- | libgomp/testsuite/libgomp.c-c++-common/for-16.c | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c-c++-common/for-16.c b/libgomp/testsuite/libgomp.c-c++-common/for-16.c new file mode 100644 index 00000000000..5649ba9ee87 --- /dev/null +++ b/libgomp/testsuite/libgomp.c-c++-common/for-16.c @@ -0,0 +1,114 @@ +extern +#ifdef __cplusplus +"C" +#endif +void abort (void); + +unsigned long long int k = 16; +#pragma omp declare target to (k) + +int +main () +{ + unsigned char a[144], b[144], c[144]; + int l; + #pragma omp target map(from:a, b, c) + { + int i; + unsigned long long int j; + #pragma omp parallel for schedule (runtime) + for (i = 0; i < 16; i++) + a[i] = i; + #pragma omp parallel for schedule (monotonic: runtime) + for (i = 0; i < 16; i++) + a[i + 16] = i + 16; + #pragma omp parallel for schedule (nonmonotonic: runtime) + for (i = 0; i < 16; i++) + a[i + 32] = i + 32; + #pragma omp parallel + { + #pragma omp for schedule (runtime) + for (i = 0; i < 16; i++) + a[i + 48] = i + 48; + #pragma omp for schedule (monotonic: runtime) + for (i = 0; i < 16; i++) + a[i + 64] = i + 64; + #pragma omp for schedule (nonmonotonic: runtime) + for (i = 0; i < 16; i++) + a[i + 80] = i + 80; + #pragma omp for schedule (runtime) + for (j = 0; j < k; j++) + a[j + 96] = j + 96; + #pragma omp for schedule (monotonic: runtime) + for (j = 0; j < k; j++) + a[j + 112] = j + 112; + #pragma omp for schedule (nonmonotonic: runtime) + for (j = 0; j < k; j++) + a[j + 128] = j + 128; + } + #pragma omp parallel for schedule (dynamic) + for (i = 0; i < 16; i++) + b[i] = i; + #pragma omp parallel for schedule (monotonic: dynamic) + for (i = 0; i < 16; i++) + b[i + 16] = i + 16; + #pragma omp parallel for schedule (nonmonotonic: dynamic) + for (i = 0; i < 16; i++) + b[i + 32] = i + 32; + #pragma omp parallel + { + #pragma omp for schedule (dynamic) + for (i = 0; i < 16; i++) + b[i + 48] = i + 48; + #pragma omp for schedule (monotonic: dynamic) + for (i = 0; i < 16; i++) + b[i + 64] = i + 64; + #pragma omp for schedule (nonmonotonic: dynamic) + for (i = 0; i < 16; i++) + b[i + 80] = i + 80; + #pragma omp for schedule (dynamic) + for (j = 0; j < k; j++) + b[j + 96] = j + 96; + #pragma omp for schedule (monotonic: dynamic) + for (j = 0; j < k; j++) + b[j + 112] = j + 112; + #pragma omp for schedule (nonmonotonic: dynamic) + for (j = 0; j < k; j++) + b[j + 128] = j + 128; + } + #pragma omp parallel for schedule (guided) + for (i = 0; i < 16; i++) + c[i] = i; + #pragma omp parallel for schedule (monotonic: guided) + for (i = 0; i < 16; i++) + c[i + 16] = i + 16; + #pragma omp parallel for schedule (nonmonotonic: guided) + for (i = 0; i < 16; i++) + c[i + 32] = i + 32; + #pragma omp parallel + { + #pragma omp for schedule (guided) + for (i = 0; i < 16; i++) + c[i + 48] = i + 48; + #pragma omp for schedule (monotonic: guided) + for (i = 0; i < 16; i++) + c[i + 64] = i + 64; + #pragma omp for schedule (nonmonotonic: guided) + for (i = 0; i < 16; i++) + c[i + 80] = i + 80; + #pragma omp for schedule (guided) + for (j = 0; j < k; j++) + c[j + 96] = j + 96; + #pragma omp for schedule (monotonic: guided) + for (j = 0; j < k; j++) + c[j + 112] = j + 112; + #pragma omp for schedule (nonmonotonic: guided) + for (j = 0; j < k; j++) + c[j + 128] = j + 128; + } + } + for (l = 0; l < 144; ++l) + if (a[l] != l || b[l] != l || c[l] != l) + abort (); + return 0; +} |