diff options
author | Julian Brown <julian@codesourcery.com> | 2019-05-16 05:47:16 -0700 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2020-03-03 12:17:44 +0100 |
commit | f6ddcaeddf0bcb7999ac81c384707c06b1cb49af (patch) | |
tree | 863f858ac692ded73f8d97738301597001c05dd0 /libgomp | |
parent | 3dcd61cae159a31b2628f27b1e278aa49bfe8235 (diff) | |
download | gcc-f6ddcaeddf0bcb7999ac81c384707c06b1cb49af.zip gcc-f6ddcaeddf0bcb7999ac81c384707c06b1cb49af.tar.gz gcc-f6ddcaeddf0bcb7999ac81c384707c06b1cb49af.tar.bz2 |
Add kernels for-index reuse testcase.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c: New
test.
(cherry picked from openacc-gcc-9-branch commit
3f86b73b7706bdf066b1af71dfc5d8eb461eaa05)
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog.omp | 5 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c | 36 |
2 files changed, 41 insertions, 0 deletions
diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp index ef5579b..225b4b5 100644 --- a/libgomp/ChangeLog.omp +++ b/libgomp/ChangeLog.omp @@ -1,5 +1,10 @@ 2019-05-16 Julian Brown <julian@codesourcery.com> + * testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c: New + test. + +2019-05-16 Julian Brown <julian@codesourcery.com> + * target.c (gomp_map_vars_async): Initialise KEY and OFFSET fields in not-present case. diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c new file mode 100644 index 0000000..dafe412 --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c @@ -0,0 +1,36 @@ +/* { dg-xfail-run-if "unhandled case" { *-*-* } } */ + +/* Test reuse of loop index variables in kernels region. */ + +#include <assert.h> + +#define SIZE 16384 + +int +main (int argc, char* argv[]) +{ + float arr[SIZE], arr_o[SIZE]; + int i, o; + + for (i = 0; i < SIZE; i++) + arr[i] = i; + + i = 15; + #pragma acc kernels + { + i *= 30; + o = i; + + #pragma acc loop independent + for (i = 0; i < SIZE; i++) + arr_o[i] = arr[i] * 2; + } + + assert (i == SIZE); + assert (o == 450); + + for (i = 0; i < SIZE; i++) + assert (arr_o[i] == arr[i] * 2); + + return 0; +} |