aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2019-05-16 05:47:16 -0700
committerThomas Schwinge <thomas@codesourcery.com>2020-03-03 12:17:44 +0100
commitf6ddcaeddf0bcb7999ac81c384707c06b1cb49af (patch)
tree863f858ac692ded73f8d97738301597001c05dd0 /libgomp
parent3dcd61cae159a31b2628f27b1e278aa49bfe8235 (diff)
downloadgcc-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.omp5
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c36
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;
+}