]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Add 'libgomp.c-c++-common/pr100059-1.c'
authorTobias Burnus <tobias@codesourcery.com>
Tue, 13 Apr 2021 08:58:51 +0000 (08:58 +0000)
committerThomas Schwinge <thomas@codesourcery.com>
Mon, 4 Sep 2023 12:49:50 +0000 (14:49 +0200)
For nvptx offloading, it'll FAIL its execution test until nvptx-tools updated
to include commit 1b5946d78ef5dcfb640e9f545a7c791b7f623911
"Merge commit '26095fd01232061de9f79decb3e8222ef7b46191' into HEAD [#29]",
<https://github.com/MentorEmbedded/nvptx-tools/commit/1b5946d78ef5dcfb640e9f545a7c791b7f623911>.

libgomp/
* testsuite/libgomp.c-c++-common/pr100059-1.c: New.

Co-authored-by: Thomas Schwinge <thomas@codesourcery.com>
libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c [new file with mode: 0644]

diff --git a/libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c b/libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c
new file mode 100644 (file)
index 0000000..af12295
--- /dev/null
@@ -0,0 +1,55 @@
+/* Based on sollve_vv's tests/5.0/declare_target/test_nested_declare_target.c.  */\r
+\r
+#define N 1024\r
+int a[N], b[N], c[N];  \r
+int i = 0;\r
+\r
+void\r
+update ()\r
+{ \r
+  for (i = 0; i < N; i++)\r
+    {\r
+      a[i] += 1;\r
+      b[i] += 2;\r
+      c[i] += 3;\r
+    }\r
+}\r
+\r
+#pragma omp declare target \r
+#pragma omp declare target link(a,c,b,i)\r
+#pragma omp declare target to(update)  \r
+#pragma omp end declare target\r
+\r
+int\r
+main ()\r
+{\r
+  for (i = 0; i < N; i++)\r
+    {\r
+      a[i] = i;\r
+      b[i] = i + 1;\r
+      c[i] = i + 2;\r
+    }\r
+\r
+  //__builtin_printf("i=5: A=%d, B=%d, C=%d\n", a[5], b[5], c[5]);\r
+  \r
+  #pragma omp target map(to: i) map(tofrom: a, b, c) \r
+  {\r
+    update();  /* Device. */\r
+  }\r
+\r
+  //__builtin_printf("i=5: A=%d, B=%d, C=%d\n", a[5], b[5], c[5]);\r
+\r
+  for (i = 0; i < N; i++)\r
+    if ( a[i] != i + 1 || b[i] != i + 3 || c[i] != i + 5)\r
+      __builtin_abort();\r
+\r
+  update();  /* Host. */\r
+\r
+  //__builtin_printf("i=5: A=%d, B=%d, C=%d\n", a[5], b[5], c[5]);\r
+\r
+  for (i = 0; i < N; i++)\r
+    if ( a[i] != i + 2 || b[i] != i + 5 || c[i] != i + 8)\r
+      __builtin_abort ();\r
+  \r
+  return 0;\r
+}\r