blob: 085ef61a0ab6947925c066193170130ea0e69b49 [file] [log] [blame]
Artem Belevich98607b62015-09-23 21:49:39 +00001// REQUIRES: clang-driver
2// REQUIRES: x86-registered-target
Artem Belevichfa11ab52015-11-17 22:28:46 +00003// REQUIRES: nvptx-registered-target
Artem Belevich98607b62015-09-23 21:49:39 +00004//
Artem Belevichfa11ab52015-11-17 22:28:46 +00005// # Check that we properly detect CUDA installation.
Artem Belevich98607b62015-09-23 21:49:39 +00006// RUN: %clang -v --target=i386-unknown-linux \
Artem Belevichfa11ab52015-11-17 22:28:46 +00007// RUN: --sysroot=%S/no-cuda-there 2>&1 | FileCheck %s -check-prefix NOCUDA
8// RUN: %clang -v --target=i386-unknown-linux \
9// RUN: --sysroot=%S/Inputs/CUDA 2>&1 | FileCheck %s
Artem Belevich98607b62015-09-23 21:49:39 +000010// RUN: %clang -v --target=i386-unknown-linux \
Artem Belevich34f481a2015-11-17 22:28:50 +000011// RUN: --sysroot=%S/Inputs/CUDA 2>&1 | FileCheck %s
12// RUN: %clang -v --target=i386-unknown-linux \
Artem Belevich98607b62015-09-23 21:49:39 +000013// RUN: --cuda-path=%S/Inputs/CUDA/usr/local/cuda 2>&1 | FileCheck %s
14
Artem Belevich34f481a2015-11-17 22:28:50 +000015// Make sure we map libdevice bitcode files to proper GPUs.
16// RUN: %clang -### -v --target=i386-unknown-linux --cuda-gpu-arch=sm_21 \
17// RUN: --cuda-path=%S/Inputs/CUDA/usr/local/cuda %s 2>&1 \
18// RUN: | FileCheck %s -check-prefix COMMON \
19// RUN: -check-prefix LIBDEVICE -check-prefix LIBDEVICE21
Artem Belevichfa11ab52015-11-17 22:28:46 +000020// RUN: %clang -### -v --target=i386-unknown-linux --cuda-gpu-arch=sm_35 \
21// RUN: --cuda-path=%S/Inputs/CUDA/usr/local/cuda %s 2>&1 \
Artem Belevich34f481a2015-11-17 22:28:50 +000022// RUN: | FileCheck %s -check-prefix COMMON -check-prefix CUDAINC \
23// RUN: -check-prefix LIBDEVICE -check-prefix LIBDEVICE35
24// Verify that -nocudainc prevents adding include path to CUDA headers.
Artem Belevichfa11ab52015-11-17 22:28:46 +000025// RUN: %clang -### -v --target=i386-unknown-linux --cuda-gpu-arch=sm_35 \
26// RUN: -nocudainc --cuda-path=%S/Inputs/CUDA/usr/local/cuda %s 2>&1 \
Artem Belevich34f481a2015-11-17 22:28:50 +000027// RUN: | FileCheck %s -check-prefix COMMON -check-prefix NOCUDAINC \
28// RUN: -check-prefix LIBDEVICE -check-prefix LIBDEVICE35
Artem Belevichfa11ab52015-11-17 22:28:46 +000029// We should not add any CUDA include paths if there's no valid CUDA installation
30// RUN: %clang -### -v --target=i386-unknown-linux --cuda-gpu-arch=sm_35 \
31// RUN: --cuda-path=%S/no-cuda-there %s 2>&1 \
32// RUN: | FileCheck %s -check-prefix COMMON -check-prefix NOCUDAINC
33
Artem Belevich34f481a2015-11-17 22:28:50 +000034// Verify that no options related to bitcode linking are passes if
35// there's no bitcode file.
36// RUN: %clang -### -v --target=i386-unknown-linux --cuda-gpu-arch=sm_30 \
37// RUN: --cuda-path=%S/Inputs/CUDA/usr/local/cuda %s 2>&1 \
38// RUN: | FileCheck %s -check-prefix COMMON -check-prefix NOLIBDEVICE
39// .. or if we explicitly passed -nocudalib
40// RUN: %clang -### -v --target=i386-unknown-linux --cuda-gpu-arch=sm_35 \
41// RUN: -nocudalib --cuda-path=%S/Inputs/CUDA/usr/local/cuda %s 2>&1 \
42// RUN: | FileCheck %s -check-prefix COMMON -check-prefix NOLIBDEVICE
43
Artem Belevich98607b62015-09-23 21:49:39 +000044// CHECK: Found CUDA installation: {{.*}}/Inputs/CUDA/usr/local/cuda
45// NOCUDA-NOT: Found CUDA installation:
Artem Belevichfa11ab52015-11-17 22:28:46 +000046
47// COMMON: "-triple" "nvptx-nvidia-cuda"
48// COMMON-SAME: "-fcuda-is-device"
Artem Belevich34f481a2015-11-17 22:28:50 +000049// LIBDEVICE-SAME: "-mlink-cuda-bitcode"
50// NOLIBDEVICE-NOT: "-mlink-cuda-bitcode"
51// LIBDEVICE21-SAME: libdevice.compute_20.10.bc
52// LIBDEVICE35-SAME: libdevice.compute_35.10.bc
53// NOLIBDEVICE-NOT: libdevice.compute_{{.*}}.bc
54// LIBDEVICE-SAME: "-target-feature" "+ptx42"
55// NOLIBDEVICE-NOT: "-target-feature" "+ptx42"
Artem Belevichfa11ab52015-11-17 22:28:46 +000056// CUDAINC-SAME: "-internal-isystem" "{{.*}}/Inputs/CUDA/usr/local/cuda/include"
57// NOCUDAINC-NOT: "-internal-isystem" "{{.*}}/cuda/include"
58// COMMON-SAME: "-x" "cuda"
59