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