[Openmp-commits] [openmp] f5eebc2 - [OpenMP] Fixed an issue in the test case parallel_offloading_map

Shilei Tian via Openmp-commits openmp-commits at lists.llvm.org
Tue Nov 3 12:59:22 PST 2020


Author: Shilei Tian
Date: 2020-11-03T15:59:16-05:00
New Revision: f5eebc25cc37332713888116beb4c2d9b09107ff

URL: https://github.com/llvm/llvm-project/commit/f5eebc25cc37332713888116beb4c2d9b09107ff
DIFF: https://github.com/llvm/llvm-project/commit/f5eebc25cc37332713888116beb4c2d9b09107ff.diff

LOG: [OpenMP] Fixed an issue in the test case parallel_offloading_map

There is a non-conforming use of variable-sized array in the test case `parallel_offloading_map.c`. This patch fixed it.

Reviewed By: protze.joachim

Differential Revision: https://reviews.llvm.org/D90642

Added: 
    openmp/libomptarget/test/offloading/parallel_offloading_map.cpp

Modified: 
    

Removed: 
    openmp/libomptarget/test/offloading/parallel_offloading_map.c


################################################################################
diff  --git a/openmp/libomptarget/test/offloading/parallel_offloading_map.c b/openmp/libomptarget/test/offloading/parallel_offloading_map.c
deleted file mode 100644
index afac7225f37a..000000000000
--- a/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

diff  --git a/openmp/libomptarget/test/offloading/parallel_offloading_map.cpp b/openmp/libomptarget/test/offloading/parallel_offloading_map.cpp
new file mode 100644
index 000000000000..ea89c8bc7576
--- /dev/null
+++ b/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


        


More information about the Openmp-commits mailing list