1 | // Tests CUDA compilation with -E. |
2 | |
3 | // REQUIRES: clang-driver |
4 | // REQUIRES: x86-registered-target |
5 | // REQUIRES: nvptx-registered-target |
6 | |
7 | #ifndef __CUDA_ARCH__ |
8 | #define PREPROCESSED_AWAY |
9 | clang_unittest_no_arch PREPROCESSED_AWAY |
10 | #else |
11 | clang_unittest_cuda_arch __CUDA_ARCH__ |
12 | #endif |
13 | |
14 | // CHECK-NOT: PREPROCESSED_AWAY |
15 | |
16 | // RUN: %clang -E -target x86_64-linux-gnu --cuda-gpu-arch=sm_20 -nocudainc -nocudalib %s 2>&1 \ |
17 | // RUN: | FileCheck -check-prefix NOARCH %s |
18 | // RUN: %clang -E -target x86_64-linux-gnu --cuda-gpu-arch=sm_20 --cuda-host-only -nocudainc %s 2>&1 \ |
19 | // RUN: | FileCheck -check-prefix NOARCH %s |
20 | // NOARCH: clang_unittest_no_arch |
21 | |
22 | // RUN: %clang -E -target x86_64-linux-gnu --cuda-gpu-arch=sm_20 --cuda-device-only -nocudainc -nocudalib %s 2>&1 \ |
23 | // RUN: | FileCheck -check-prefix SM20 %s |
24 | // SM20: clang_unittest_cuda_arch 200 |
25 | |
26 | // RUN: %clang -E -target x86_64-linux-gnu --cuda-gpu-arch=sm_30 --cuda-device-only -nocudainc -nocudalib %s 2>&1 \ |
27 | // RUN: | FileCheck -check-prefix SM30 %s |
28 | // SM30: clang_unittest_cuda_arch 300 |
29 | |
30 | // RUN: %clang -E -target x86_64-linux-gnu --cuda-gpu-arch=sm_20 --cuda-gpu-arch=sm_30 \ |
31 | // RUN: --cuda-device-only -nocudainc -nocudalib %s 2>&1 \ |
32 | // RUN: | FileCheck -check-prefix SM20 -check-prefix SM30 %s |
33 | |