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 %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 %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 %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 %s 2>&1 \ 32 // RUN: | FileCheck -check-prefix SM20 -check-prefix SM30 %s 33