[Openmp-commits] [PATCH] D90642: [OpenMP] Fixed an issue in the test case parallel_offloading_map
Shilei Tian via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Mon Nov 2 13:24:29 PST 2020
tianshilei1992 created this revision.
Herald added subscribers: openmp-commits, guansong, yaxunl.
Herald added a project: OpenMP.
tianshilei1992 requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added a subscriber: sstefan1.
There is a non-conforming use of variable-sized array in the test case `parallel_offloading_map.c`. This patch fixed it.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D90642
Files:
openmp/libomptarget/test/offloading/parallel_offloading_map.c
openmp/libomptarget/test/offloading/parallel_offloading_map.cpp
Index: openmp/libomptarget/test/offloading/parallel_offloading_map.cpp
===================================================================
--- /dev/null
+++ openmp/libomptarget/test/offloading/parallel_offloading_map.cpp
@@ -0,0 +1,43 @@
+// RUN: %libomptarget-compilexx-run-and-check-aarch64-unknown-linux-gnu
+// RUN: %libomptarget-compilexx-run-and-check-powerpc64-ibm-linux-gnu
+// RUN: %libomptarget-compilexx-run-and-check-powerpc64le-ibm-linux-gnu
+// RUN: %libomptarget-compilexx-run-and-check-x86_64-pc-linux-gnu
+// RUN: %libomptarget-compilexx-run-and-check-nvptx64-nvidia-cuda
+
+#include <cassert>
+#include <iostream>
+
+int main(int argc, char *argv[]) {
+ constexpr const int num_threads = 64, N = 128;
+ int array[num_threads] = {0};
+
+#pragma omp parallel for
+ for (int i = 0; i < num_threads; ++i) {
+ int tmp[N];
+
+ for (int j = 0; j < N; ++j) {
+ tmp[j] = i;
+ }
+
+#pragma omp target teams distribute parallel for map(tofrom : tmp)
+ for (int j = 0; j < N; ++j) {
+ tmp[j] += j;
+ }
+
+ for (int j = 0; j < N; ++j) {
+ array[i] += tmp[j];
+ }
+ }
+
+ // Verify
+ for (int i = 0; i < num_threads; ++i) {
+ const int ref = (0 + N - 1) * N / 2 + i * N;
+ assert(array[i] == ref);
+ }
+
+ std::cout << "PASS\n";
+
+ return 0;
+}
+
+// CHECK: PASS
Index: openmp/libomptarget/test/offloading/parallel_offloading_map.c
===================================================================
--- openmp/libomptarget/test/offloading/parallel_offloading_map.c
+++ /dev/null
@@ -1,42 +0,0 @@
-// RUN: %libomptarget-compile-aarch64-unknown-linux-gnu && env OMP_MAX_ACTIVE_LEVELS=2 %libomptarget-run-aarch64-unknown-linux-gnu | %fcheck-aarch64-unknown-linux-gnu
-// RUN: %libomptarget-compile-powerpc64-ibm-linux-gnu && env OMP_MAX_ACTIVE_LEVELS=2 %libomptarget-run-powerpc64-ibm-linux-gnu | %fcheck-powerpc64-ibm-linux-gnu
-// RUN: %libomptarget-compile-powerpc64le-ibm-linux-gnu && env OMP_MAX_ACTIVE_LEVELS=2 %libomptarget-run-powerpc64le-ibm-linux-gnu | %fcheck-powerpc64le-ibm-linux-gnu
-// RUN: %libomptarget-compile-x86_64-pc-linux-gnu && env OMP_MAX_ACTIVE_LEVELS=2 %libomptarget-run-x86_64-pc-linux-gnu | %fcheck-x86_64-pc-linux-gnu -allow-empty
-// RUN: %libomptarget-compile-nvptx64-nvidia-cuda && env OMP_MAX_ACTIVE_LEVELS=2 %libomptarget-run-nvptx64-nvidia-cuda | %fcheck-nvptx64-nvidia-cuda -allow-empty
-#include <assert.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[]) {
- const int num_threads = 64, N = 128;
- int array[num_threads] = {0};
-
-#pragma omp parallel for
- for (int i = 0; i < num_threads; ++i) {
- int tmp[N];
-
- for (int j = 0; j < N; ++j) {
- tmp[j] = i;
- }
-
-#pragma omp target teams distribute parallel for map(tofrom : tmp)
- for (int j = 0; j < N; ++j) {
- tmp[j] += j;
- }
-
- for (int j = 0; j < N; ++j) {
- array[i] += tmp[j];
- }
- }
-
- // Verify
- for (int i = 0; i < num_threads; ++i) {
- const int ref = (0 + N - 1) * N / 2 + i * N;
- assert(array[i] == ref);
- }
-
- printf("PASS\n");
-
- return 0;
-}
-
-// CHECK: PASS
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90642.302386.patch
Type: text/x-patch
Size: 3090 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20201102/e52a2977/attachment.bin>
More information about the Openmp-commits
mailing list