2017-08-11 23:46:22 +08:00
///
/// Perform several driver tests for OpenMP offloading
///
// REQUIRES: clang-driver
// REQUIRES: x86-registered-target
// REQUIRES: powerpc-registered-target
// REQUIRES: nvptx-registered-target
/// ###########################################################################
/// Check -Xopenmp-target uses one of the archs provided when several archs are used.
2017-11-21 22:44:45 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda \
/ / RUN : - Xopenmp - target - march = sm_35 - Xopenmp - target - march = sm_60 % s 2 > & 1 \
2017-08-11 23:46:22 +08:00
// RUN: | FileCheck -check-prefix=CHK-FOPENMP-TARGET-ARCHS %s
// CHK-FOPENMP-TARGET-ARCHS: ptxas{{.*}}" "--gpu-name" "sm_60"
// CHK-FOPENMP-TARGET-ARCHS: nvlink{{.*}}" "-arch" "sm_60"
/// ###########################################################################
/// Check -Xopenmp-target -march=sm_35 works as expected when two triples are present.
2017-11-21 22:44:45 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp \
/ / RUN : - fopenmp - targets = powerpc64le - ibm - linux - gnu , nvptx64 - nvidia - cuda \
/ / RUN : - Xopenmp - target = nvptx64 - nvidia - cuda - march = sm_35 % s 2 > & 1 \
2017-08-11 23:46:22 +08:00
// RUN: | FileCheck -check-prefix=CHK-FOPENMP-TARGET-COMPILATION %s
// CHK-FOPENMP-TARGET-COMPILATION: ptxas{{.*}}" "--gpu-name" "sm_35"
// CHK-FOPENMP-TARGET-COMPILATION: nvlink{{.*}}" "-arch" "sm_35"
/// ###########################################################################
2018-09-28 00:12:32 +08:00
/// Check that -lomptarget-nvptx is passed to nvlink.
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp \
/ / RUN : - fopenmp - targets = nvptx64 - nvidia - cuda % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-NVLINK %s
/// Check that the value of --libomptarget-nvptx-path is forwarded to nvlink.
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp \
/ / RUN : - - libomptarget - nvptx - path = / path / to / libomptarget / \
/ / RUN : - fopenmp - targets = nvptx64 - nvidia - cuda % s 2 > & 1 \
// RUN: | FileCheck -check-prefixes=CHK-NVLINK,CHK-LIBOMPTARGET-NVPTX-PATH %s
// CHK-NVLINK: nvlink
// CHK-LIBOMPTARGET-NVPTX-PATH-SAME: "-L/path/to/libomptarget/"
// CHK-NVLINK-SAME: "-lomptarget-nvptx"
/// ###########################################################################
2017-08-11 23:46:22 +08:00
/// Check cubin file generation and usage by nvlink
2017-11-21 22:44:45 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - target powerpc64le - unknown - linux - gnu - fopenmp = libomp \
/ / RUN : - fopenmp - targets = nvptx64 - nvidia - cuda - save - temps % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-CUBIN-NVLINK %s
/// Check cubin file generation and usage by nvlink when toolchain has BindArchAction
/ / RUN : % clang - # # # - no - canonical - prefixes - target x86_64 - apple - darwin17 .0 .0 - fopenmp = libomp \
/ / RUN : - fopenmp - targets = nvptx64 - nvidia - cuda % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-CUBIN-NVLINK %s
// CHK-CUBIN-NVLINK: clang{{.*}}" "-o" "[[PTX:.*\.s]]"
// CHK-CUBIN-NVLINK-NEXT: ptxas{{.*}}" "--output-file" "[[CUBIN:.*\.cubin]]" {{.*}}"[[PTX]]"
// CHK-CUBIN-NVLINK-NEXT: nvlink{{.*}}" {{.*}}"[[CUBIN]]"
/// ###########################################################################
2017-08-11 23:46:22 +08:00
2017-11-21 22:44:45 +08:00
/// Check unbundlink of assembly file, cubin file generation and usage by nvlink
// RUN: touch %t.s
2017-11-21 23:06:28 +08:00
/ / RUN : % clang - # # # - target powerpc64le - unknown - linux - gnu - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda \
/ / RUN : - no - canonical - prefixes - save - temps % t . s 2 > & 1 \
2017-11-21 22:44:45 +08:00
// RUN: | FileCheck -check-prefix=CHK-UNBUNDLING-PTXAS-CUBIN-NVLINK %s
2017-08-11 23:46:22 +08:00
2017-11-21 22:44:45 +08:00
/// Use DAG to ensure that assembly file has been unbundled.
// CHK-UNBUNDLING-PTXAS-CUBIN-NVLINK-DAG: ptxas{{.*}}" "--output-file" "[[CUBIN:.*\.cubin]]" {{.*}}"[[PTX:.*\.s]]"
// CHK-UNBUNDLING-PTXAS-CUBIN-NVLINK-DAG: clang-offload-bundler{{.*}}" "-type=s" {{.*}}"-outputs={{.*}}[[PTX]]
// CHK-UNBUNDLING-PTXAS-CUBIN-NVLINK-DAG-SAME: "-unbundle"
// CHK-UNBUNDLING-PTXAS-CUBIN-NVLINK: nvlink{{.*}}" {{.*}}"[[CUBIN]]"
2017-08-11 23:46:22 +08:00
/// ###########################################################################
2017-11-21 22:44:45 +08:00
/// Check cubin file generation and bundling
2017-11-21 23:06:28 +08:00
/ / RUN : % clang - # # # - target powerpc64le - unknown - linux - gnu - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda \
/ / RUN : - no - canonical - prefixes - save - temps % s - c 2 > & 1 \
2017-11-21 22:44:45 +08:00
// RUN: | FileCheck -check-prefix=CHK-PTXAS-CUBIN-BUNDLING %s
2017-08-11 23:46:22 +08:00
2017-11-21 22:44:45 +08:00
// CHK-PTXAS-CUBIN-BUNDLING: clang{{.*}}" "-o" "[[PTX:.*\.s]]"
// CHK-PTXAS-CUBIN-BUNDLING-NEXT: ptxas{{.*}}" "--output-file" "[[CUBIN:.*\.cubin]]" {{.*}}"[[PTX]]"
// CHK-PTXAS-CUBIN-BUNDLING: clang-offload-bundler{{.*}}" "-type=o" {{.*}}"-inputs={{.*}}[[CUBIN]]
2017-08-11 23:46:22 +08:00
/// ###########################################################################
2017-11-21 22:44:45 +08:00
/// Check cubin file unbundling and usage by nvlink
// RUN: touch %t.o
2017-11-21 23:06:28 +08:00
/ / RUN : % clang - # # # - target powerpc64le - unknown - linux - gnu - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda \
2018-09-29 00:17:59 +08:00
/ / RUN : - no - canonical - prefixes - save - temps % t . o % S / Inputs / in . so 2 > & 1 \
2017-11-21 22:44:45 +08:00
// RUN: | FileCheck -check-prefix=CHK-CUBIN-UNBUNDLING-NVLINK %s
2017-08-11 23:46:22 +08:00
2017-11-21 22:44:45 +08:00
/// Use DAG to ensure that cubin file has been unbundled.
2018-09-29 00:17:59 +08:00
// CHK-CUBIN-UNBUNDLING-NVLINK-NOT: clang-offload-bundler{{.*}}" "-type=o"{{.*}}in.so
2017-11-21 22:44:45 +08:00
// CHK-CUBIN-UNBUNDLING-NVLINK-DAG: nvlink{{.*}}" {{.*}}"[[CUBIN:.*\.cubin]]"
// CHK-CUBIN-UNBUNDLING-NVLINK-DAG: clang-offload-bundler{{.*}}" "-type=o" {{.*}}"-outputs={{.*}}[[CUBIN]]
// CHK-CUBIN-UNBUNDLING-NVLINK-DAG-SAME: "-unbundle"
2018-09-29 00:17:59 +08:00
// CHK-CUBIN-UNBUNDLING-NVLINK-NOT: clang-offload-bundler{{.*}}" "-type=o"{{.*}}in.so
2017-08-11 23:46:22 +08:00
/// ###########################################################################
2017-11-21 22:44:45 +08:00
/// Check cubin file generation and usage by nvlink
2017-08-11 23:46:22 +08:00
// RUN: touch %t1.o
// RUN: touch %t2.o
2017-11-21 22:44:45 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - target powerpc64le - unknown - linux - gnu - fopenmp = libomp \
/ / RUN : - fopenmp - targets = nvptx64 - nvidia - cuda % t1 . o % t2 . o 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-TWOCUBIN %s
/// Check cubin file generation and usage by nvlink when toolchain has BindArchAction
/ / RUN : % clang - # # # - no - canonical - prefixes - target x86_64 - apple - darwin17 .0 .0 - fopenmp = libomp \
/ / RUN : - fopenmp - targets = nvptx64 - nvidia - cuda % t1 . o % t2 . o 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-TWOCUBIN %s
2017-08-11 23:46:22 +08:00
2017-11-21 22:44:45 +08:00
// CHK-TWOCUBIN: nvlink{{.*}}openmp-offload-{{.*}}.cubin" "{{.*}}openmp-offload-{{.*}}.cubin"
2017-08-11 23:46:22 +08:00
/// ###########################################################################
/// Check PTXAS is passed -c flag when offloading to an NVIDIA device using OpenMP.
/ / RUN : % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - no - canonical - prefixes % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-PTXAS-DEFAULT %s
// CHK-PTXAS-DEFAULT: ptxas{{.*}}" "-c"
/// ###########################################################################
/// PTXAS is passed -c flag by default when offloading to an NVIDIA device using OpenMP - disable it.
2017-11-21 22:44:45 +08:00
/ / RUN : % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - fnoopenmp - relocatable - target \
/ / RUN : - save - temps - no - canonical - prefixes % s 2 > & 1 \
2017-08-11 23:46:22 +08:00
// RUN: | FileCheck -check-prefix=CHK-PTXAS-NORELO %s
// CHK-PTXAS-NORELO-NOT: ptxas{{.*}}" "-c"
/// ###########################################################################
/// PTXAS is passed -c flag by default when offloading to an NVIDIA device using OpenMP
/// Check that the flag is passed when -fopenmp-relocatable-target is used.
2017-11-21 22:44:45 +08:00
/ / RUN : % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - fopenmp - relocatable - target \
/ / RUN : - save - temps - no - canonical - prefixes % s 2 > & 1 \
2017-08-11 23:46:22 +08:00
// RUN: | FileCheck -check-prefix=CHK-PTXAS-RELO %s
// CHK-PTXAS-RELO: ptxas{{.*}}" "-c"
2017-09-26 05:56:32 +08:00
/// ###########################################################################
/// Check that error is not thrown by toolchain when no cuda lib flag is used.
/// Check that the flag is passed when -fopenmp-relocatable-target is used.
/ / RUN : % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 \
/ / RUN : - nocudalib - fopenmp - relocatable - target - save - temps - no - canonical - prefixes % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-FLAG-NOLIBDEVICE %s
// CHK-FLAG-NOLIBDEVICE-NOT: error:{{.*}}sm_60
2017-09-26 23:36:20 +08:00
/// ###########################################################################
/// Check that error is not thrown by toolchain when no cuda lib device is found when using -S.
/// Check that the flag is passed when -fopenmp-relocatable-target is used.
/ / RUN : % clang - # # # - S - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 \
/ / RUN : - fopenmp - relocatable - target - save - temps - no - canonical - prefixes % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-NOLIBDEVICE %s
// CHK-NOLIBDEVICE-NOT: error:{{.*}}sm_60
2018-03-14 07:19:52 +08:00
/// ###########################################################################
/// Check that the runtime bitcode library is part of the compile line. Create a bogus
/// bitcode library and add it to the LIBRARY_PATH.
/ / RUN : env LIBRARY_PATH = % S / Inputs / libomptarget % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda \
/ / RUN : - Xopenmp - target - march = sm_20 - - cuda - path = % S / Inputs / CUDA_80 / usr / local / cuda \
/ / RUN : - fopenmp - relocatable - target - save - temps - no - canonical - prefixes % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-BCLIB %s
2018-09-28 00:12:32 +08:00
/// The user can override default detection using --libomptarget-nvptx-path=.
/ / RUN : % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - - libomptarget - nvptx - path = % S / Inputs / libomptarget \
/ / RUN : - Xopenmp - target - march = sm_20 - - cuda - path = % S / Inputs / CUDA_80 / usr / local / cuda \
/ / RUN : - fopenmp - relocatable - target - save - temps - no - canonical - prefixes % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-BCLIB %s
2018-03-14 07:19:52 +08:00
2018-08-21 02:16:48 +08:00
// CHK-BCLIB: clang{{.*}}-triple{{.*}}nvptx64-nvidia-cuda{{.*}}-mlink-builtin-bitcode{{.*}}libomptarget-nvptx-sm_20.bc
2018-03-14 07:19:52 +08:00
// CHK-BCLIB-NOT: {{error:|warning:}}
/// ###########################################################################
/// Check that the warning is thrown when the libomptarget bitcode library is not found.
/// Libomptarget requires sm_35 or newer so an sm_20 bitcode library should never exist.
/ / RUN : % clang - # # # - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda \
/ / RUN : - Xopenmp - target - march = sm_20 - - cuda - path = % S / Inputs / CUDA_80 / usr / local / cuda \
/ / RUN : - fopenmp - relocatable - target - save - temps - no - canonical - prefixes % s 2 > & 1 \
// RUN: | FileCheck -check-prefix=CHK-BCLIB-WARN %s
// CHK-BCLIB-WARN: No library 'libomptarget-nvptx-sm_20.bc' found in the default clang lib directory or in LIBRARY_PATH. Expect degraded performance due to no inlining of runtime functions on target devices.
2018-04-19 00:31:09 +08:00
/// Check that debug info is emitted in dwarf-2
2018-12-12 22:52:27 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g - O1 - - no - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=DEBUG_DIRECTIVES %s
2018-04-19 00:31:09 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g - O3 2 > & 1 \
2018-12-12 22:52:27 +08:00
// RUN: | FileCheck -check-prefix=DEBUG_DIRECTIVES %s
2018-04-19 00:31:09 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g - O3 - - no - cuda - noopt - device - debug 2 > & 1 \
2018-12-12 22:52:27 +08:00
// RUN: | FileCheck -check-prefix=DEBUG_DIRECTIVES %s
2018-04-19 00:31:09 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g0 2 > & 1 \
// RUN: | FileCheck -check-prefix=NO_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - ggdb0 - O3 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=NO_DEBUG %s
2018-12-12 22:52:27 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - gline - directives - only 2 > & 1 \
// RUN: | FileCheck -check-prefix=DEBUG_DIRECTIVES %s
2018-04-19 00:31:09 +08:00
2018-12-12 22:52:27 +08:00
// DEBUG_DIRECTIVES-NOT: warning: debug
2018-07-28 03:45:14 +08:00
// NO_DEBUG-NOT: warning: debug
2018-12-12 22:52:27 +08:00
// NO_DEBUG: "-fopenmp-is-device"
// NO_DEBUG-NOT: "-debug-info-kind=
2018-04-19 00:31:09 +08:00
// NO_DEBUG: ptxas
2018-12-12 22:52:27 +08:00
// DEBUG_DIRECTIVES: "-triple" "nvptx64-nvidia-cuda"
// DEBUG_DIRECTIVES-SAME: "-debug-info-kind=line-directives-only"
// DEBUG_DIRECTIVES-SAME: "-fopenmp-is-device"
// DEBUG_DIRECTIVES: ptxas
// DEBUG_DIRECTIVES: "-lineinfo"
2018-04-19 00:31:09 +08:00
// NO_DEBUG-NOT: "-g"
// NO_DEBUG: nvlink
// NO_DEBUG-NOT: "-g"
2018-12-12 22:52:27 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g - O0 - - no - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
2018-04-19 00:31:09 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g - O0 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g - O3 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g2 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - ggdb2 - O0 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - g3 - O3 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - ggdb3 - O2 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
2018-12-12 22:52:27 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - gline - tables - only 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - ggdb1 - O2 - - cuda - noopt - device - debug 2 > & 1 \
// RUN: | FileCheck -check-prefix=HAS_DEBUG %s
2018-04-19 00:31:09 +08:00
2018-07-28 03:45:14 +08:00
// HAS_DEBUG-NOT: warning: debug
2018-04-19 00:31:09 +08:00
// HAS_DEBUG: "-triple" "nvptx64-nvidia-cuda"
2018-12-12 22:52:27 +08:00
// HAS_DEBUG-SAME: "-debug-info-kind={{limited|line-tables-only}}"
2018-04-19 00:31:09 +08:00
// HAS_DEBUG-SAME: "-dwarf-version=2"
// HAS_DEBUG-SAME: "-fopenmp-is-device"
// HAS_DEBUG: ptxas
// HAS_DEBUG-SAME: "-g"
// HAS_DEBUG-SAME: "--dont-merge-basicblocks"
// HAS_DEBUG-SAME: "--return-at-end"
// HAS_DEBUG: nvlink
// HAS_DEBUG-SAME: "-g"
2018-08-30 22:45:24 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fopenmp - cuda - mode 2 > & 1 \
// RUN: | FileCheck -check-prefix=CUDA_MODE %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fno - openmp - cuda - mode - fopenmp - cuda - mode 2 > & 1 \
// RUN: | FileCheck -check-prefix=CUDA_MODE %s
// CUDA_MODE: clang{{.*}}"-cc1"{{.*}}"-triple" "nvptx64-nvidia-cuda"
// CUDA_MODE-SAME: "-fopenmp-cuda-mode"
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fno - openmp - cuda - mode 2 > & 1 \
// RUN: | FileCheck -check-prefix=NO_CUDA_MODE %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fopenmp - cuda - mode - fno - openmp - cuda - mode 2 > & 1 \
// RUN: | FileCheck -check-prefix=NO_CUDA_MODE %s
// NO_CUDA_MODE-NOT: "-{{fno-|f}}openmp-cuda-mode"
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fopenmp - cuda - force - full - runtime 2 > & 1 \
// RUN: | FileCheck -check-prefix=FULL_RUNTIME %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fno - openmp - cuda - force - full - runtime - fopenmp - cuda - force - full - runtime 2 > & 1 \
// RUN: | FileCheck -check-prefix=FULL_RUNTIME %s
// FULL_RUNTIME: clang{{.*}}"-cc1"{{.*}}"-triple" "nvptx64-nvidia-cuda"
// FULL_RUNTIME-SAME: "-fopenmp-cuda-force-full-runtime"
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fno - openmp - cuda - force - full - runtime 2 > & 1 \
// RUN: | FileCheck -check-prefix=NO_FULL_RUNTIME %s
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fopenmp - cuda - force - full - runtime - fno - openmp - cuda - force - full - runtime 2 > & 1 \
// RUN: | FileCheck -check-prefix=NO_FULL_RUNTIME %s
// NO_FULL_RUNTIME-NOT: "-{{fno-|f}}openmp-cuda-force-full-runtime"
2019-02-21 00:36:22 +08:00
/ / RUN : % clang - # # # - no - canonical - prefixes - fopenmp = libomp - fopenmp - targets = nvptx64 - nvidia - cuda - Xopenmp - target - march = sm_60 % s - fopenmp - cuda - teams - reduction - recs - num = 2048 2 > & 1 \
// RUN: | FileCheck -check-prefix=CUDA_RED_RECS %s
// CUDA_RED_RECS: clang{{.*}}"-cc1"{{.*}}"-triple" "nvptx64-nvidia-cuda"
// CUDA_RED_RECS-SAME: "-fopenmp-cuda-teams-reduction-recs-num=2048"