diff --git a/openmp/libomptarget/test/offloading/fortran/basic_array.f90 b/openmp/libomptarget/test/Inputs/basic_array.f90 similarity index 100% rename from openmp/libomptarget/test/offloading/fortran/basic_array.f90 rename to openmp/libomptarget/test/Inputs/basic_array.f90 diff --git a/openmp/libomptarget/test/lit.cfg b/openmp/libomptarget/test/lit.cfg index 2406aaf44e39e..f54edf9157467 100644 --- a/openmp/libomptarget/test/lit.cfg +++ b/openmp/libomptarget/test/lit.cfg @@ -58,7 +58,10 @@ def evaluate_bool_env(env): config.name = 'libomptarget :: ' + config.libomptarget_current_target # suffixes: A list of file extensions to treat as test files. -config.suffixes = ['.c', '.cpp', '.cc'] +config.suffixes = ['.c', '.cpp', '.cc', '.f90'] + +# excludes: A list of directories to exclude from the testuites. +config.excludes = ['Inputs'] # test_source_root: The root path where tests are located. config.test_source_root = os.path.dirname(__file__) @@ -162,6 +165,8 @@ for libomptarget_target in config.libomptarget_all_targets: "%libomptarget-compilexx-run-and-check-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compile-run-and-check-generic", "%libomptarget-compile-run-and-check-" + libomptarget_target)) + config.substitutions.append(("%libomptarget-compile-fortran-run-and-check-generic", + "%libomptarget-compile-fortran-run-and-check-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compilexx-and-run-generic", "%libomptarget-compilexx-and-run-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compile-and-run-generic", @@ -170,6 +175,8 @@ for libomptarget_target in config.libomptarget_all_targets: "%libomptarget-compilexx-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compile-generic", "%libomptarget-compile-" + libomptarget_target)) + config.substitutions.append(("%libomptarget-compile-fortran-generic", + "%libomptarget-compile-fortran-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compileoptxx-run-and-check-generic", "%libomptarget-compileoptxx-run-and-check-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compileopt-run-and-check-generic", @@ -204,6 +211,10 @@ for libomptarget_target in config.libomptarget_all_targets: libomptarget_target, \ "%libomptarget-compile-and-run-" + libomptarget_target + \ " | " + config.libomptarget_filecheck + " %s")) + config.substitutions.append(("%libomptarget-compile-fortran-run-and-check-" + \ + libomptarget_target, \ + "%libomptarget-compile-fortran-and-run-" + libomptarget_target + \ + " | " + config.libomptarget_filecheck + " %s")) config.substitutions.append(("%libomptarget-compilexx-and-run-" + \ libomptarget_target, \ "%libomptarget-compilexx-" + libomptarget_target + " && " + \ @@ -212,6 +223,10 @@ for libomptarget_target in config.libomptarget_all_targets: libomptarget_target, \ "%libomptarget-compile-" + libomptarget_target + " && " + \ "%libomptarget-run-" + libomptarget_target)) + config.substitutions.append(("%libomptarget-compile-fortran-and-run-" + \ + libomptarget_target, \ + "%libomptarget-compile-fortran-" + libomptarget_target + " && " + \ + "%libomptarget-run-" + libomptarget_target)) config.substitutions.append(("%libomptarget-compilexx-" + \ libomptarget_target, \ "%clangxx-" + libomptarget_target + " %s -o %t" + \ @@ -220,6 +235,9 @@ for libomptarget_target in config.libomptarget_all_targets: libomptarget_target, \ "%clang-" + libomptarget_target + " %s -o %t" + (" -lcgpu" if config.libomptarget_has_libc else ""))) + config.substitutions.append(("%libomptarget-compile-fortran-" + \ + libomptarget_target, \ + "%flang-" + libomptarget_target + " %s -o %t")) config.substitutions.append(("%libomptarget-compileoptxx-run-and-check-" + \ libomptarget_target, \ "%libomptarget-compileoptxx-and-run-" + libomptarget_target + \ @@ -256,18 +274,27 @@ for libomptarget_target in config.libomptarget_all_targets: config.substitutions.append(("%clang-" + libomptarget_target, \ "%clang %openmp_flags %cuda_flags %flags -fopenmp-targets=" +\ remove_suffix_if_present(libomptarget_target))) + config.substitutions.append(("%flang-" + libomptarget_target, \ + "%flang %openmp_flags %flags -fopenmp-targets=" +\ + remove_suffix_if_present(libomptarget_target))) config.substitutions.append(("%fcheck-" + libomptarget_target, \ config.libomptarget_filecheck + " %s")) else: config.substitutions.append(("%libomptarget-compile-run-and-check-" + \ libomptarget_target, \ "echo ignored-command")) + config.substitutions.append(("%libomptarget-compile-fortran-run-and-check-" + \ + libomptarget_target, \ + "echo ignored-command")) config.substitutions.append(("%libomptarget-compilexx-run-and-check-" + \ libomptarget_target, \ "echo ignored-command")) config.substitutions.append(("%libomptarget-compile-and-run-" + \ libomptarget_target, \ "echo ignored-command")) + config.substitutions.append(("%libomptarget-compile-fortran-and-run-" + \ + libomptarget_target, \ + "echo ignored-command")) config.substitutions.append(("%libomptarget-compilexx-and-run-" + \ libomptarget_target, \ "echo ignored-command")) @@ -277,6 +304,9 @@ for libomptarget_target in config.libomptarget_all_targets: config.substitutions.append(("%libomptarget-compile-" + \ libomptarget_target, \ "echo ignored-command")) + config.substitutions.append(("%libomptarget-compile-fortran-" + \ + libomptarget_target, \ + "echo ignored-command")) config.substitutions.append(("%libomptarget-compileopt-run-and-check-" + \ libomptarget_target, \ "echo ignored-command")) @@ -307,6 +337,8 @@ for libomptarget_target in config.libomptarget_all_targets: "echo ignored-command")) config.substitutions.append(("%fcheck-" + libomptarget_target, \ "echo ignored-command")) + config.substitutions.append(("%flang-" + libomptarget_target, \ + "echo ignored-command")) config.substitutions.append(("%clangxx", config.test_cxx_compiler)) config.substitutions.append(("%clang", config.test_c_compiler)) diff --git a/openmp/libomptarget/test/offloading/fortran/basic_array.c b/openmp/libomptarget/test/offloading/fortran/basic_array.c index 20334e8793056..4daf1d4b0a998 100644 --- a/openmp/libomptarget/test/offloading/fortran/basic_array.c +++ b/openmp/libomptarget/test/offloading/fortran/basic_array.c @@ -2,7 +2,7 @@ // REQUIRES: flang, amdgcn-amd-amdhsa // RUN: %flang -c -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa \ -// RUN: %S/basic_array.f90 -o basic_array.o +// RUN: %S/../../Inputs/basic_array.f90 -o basic_array.o // RUN: %libomptarget-compile-generic basic_array.o // RUN: %t | %fcheck-generic diff --git a/openmp/libomptarget/test/offloading/fortran/basic_target_region.f90 b/openmp/libomptarget/test/offloading/fortran/basic_target_region.f90 new file mode 100644 index 0000000000000..295452b0698a6 --- /dev/null +++ b/openmp/libomptarget/test/offloading/fortran/basic_target_region.f90 @@ -0,0 +1,21 @@ +! Basic offloading test with a target region +! REQUIRES: flang, amdgcn-amd-amdhsa +! UNSUPPORTED: nvptx64-nvidia-cuda +! UNSUPPORTED: nvptx64-nvidia-cuda-LTO +! UNSUPPORTED: aarch64-unknown-linux-gnu +! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO +! UNSUPPORTED: x86_64-pc-linux-gnu +! UNSUPPORTED: x86_64-pc-linux-gnu-LTO + +! RUN: %libomptarget-compile-fortran-run-and-check-generic +program main + integer :: x; + x = 0 +!$omp target map(from:x) + x = 5 +!$omp end target + print *, "x = ", x +end program main + +! CHECK: x = 5 +