// REQUIRES: amdgpu-registered-target // RUN: %clang -E -dM --offload-arch=gfx906 -mwavefrontsize64 \ // RUN: --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=WAVE64 %s // RUN: %clang -E -dM --offload-arch=gfx1010 -mwavefrontsize64 \ // RUN: --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=WAVE64 %s // RUN: %clang -E -dM --offload-arch=gfx906 -mwavefrontsize64 \ // RUN: --cuda-device-only -nogpuinc -nogpulib \ // RUN: -mno-wavefrontsize64 %s 2>&1 | FileCheck --check-prefixes=WAVE64 %s // RUN: %clang -E -dM --offload-arch=gfx1010 -mwavefrontsize64 \ // RUN: --cuda-device-only -nogpuinc -nogpulib \ // RUN: -mno-wavefrontsize64 %s 2>&1 | FileCheck --check-prefixes=WAVE32 %s // RUN: %clang -E -dM --offload-arch=gfx906 -mno-wavefrontsize64 \ // RUN: --cuda-device-only -nogpuinc -nogpulib \ // RUN: -mwavefrontsize64 %s 2>&1 | FileCheck --check-prefixes=WAVE64 %s // RUN: %clang -E -dM --offload-arch=gfx1010 -mno-wavefrontsize64 \ // RUN: --cuda-device-only -nogpuinc -nogpulib \ // RUN: -mwavefrontsize64 %s 2>&1 | FileCheck --check-prefixes=WAVE64 %s // WAVE64-DAG: #define __AMDGCN_WAVEFRONT_SIZE__ 64 // WAVE32-DAG: #define __AMDGCN_WAVEFRONT_SIZE__ 32 // WAVE64-DAG: #define __AMDGCN_WAVEFRONT_SIZE 64 // WAVE32-DAG: #define __AMDGCN_WAVEFRONT_SIZE 32 // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mcumode \ // RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mno-cumode \ // RUN: %s 2>&1 | FileCheck --check-prefixes=CUMODE-ON,WARN-CUMODE %s // RUN: %clang -E -dM --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s // RUN: %clang -E -dM --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib -mcumode \ // RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s // RUN: %clang -E -dM --offload-arch=gfx1030 --cuda-device-only -nogpuinc -nogpulib -mno-cumode \ // RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s // Check no duplicate warnings. // RUN: %clang -E -dM --offload-arch=gfx906 --cuda-device-only -nogpuinc -nogpulib -mcumode \ // RUN: -mno-cumode -mno-cumode \ // RUN: %s 2>&1 | FileCheck --check-prefixes=CUMODE-ON,WARN-CUMODE %s // WARN-CUMODE-DAG: warning: ignoring '-mno-cumode' option as it is not currently supported for processor 'gfx906' [-Woption-ignored] // WARN-CUMODE-NOT: warning: ignoring '-mno-cumode' option as it is not currently supported for processor 'gfx906' [-Woption-ignored] // CUMODE-ON-DAG: #define __AMDGCN_CUMODE__ 1 // CUMODE-OFF-DAG: #define __AMDGCN_CUMODE__ 0 // RUN: %clang -E -dM --offload-arch=gfx90a --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=IMAGE,NOWARN %s // RUN: %clang -E -dM --offload-arch=gfx1100 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=IMAGE,NOWARN %s // RUN: %clang -E -dM --offload-arch=gfx940 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=NOIMAGE,NOWARN %s // RUN: %clang -E -dM --offload-arch=gfx941 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=NOIMAGE,NOWARN %s // RUN: %clang -E -dM --offload-arch=gfx942 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=NOIMAGE,NOWARN %s // RUN: %clang -E -dM --offload-arch=gfx1100 --cuda-device-only -nogpuinc -nogpulib \ // RUN: -Xclang -target-feature -Xclang "-image-insts" %s 2>&1 | FileCheck --check-prefixes=IMAGE,WARN %s // RUN: %clang -E -dM --offload-arch=gfx940 --cuda-device-only -nogpuinc -nogpulib \ // RUN: -Xclang -target-feature -Xclang "+image-insts" %s 2>&1 | FileCheck --check-prefixes=NOIMAGE,WARN %s // NOWARN-NOT: warning // WARN: warning: feature flag '{{[+|-]}}image-insts' is ignored since the feature is read only [-Winvalid-command-line-argument] // IMAGE-NOT: #define __HIP_NO_IMAGE_SUPPORT__ // IMAGE-NOT: #define __HIP_NO_IMAGE_SUPPORT // NOIMAGE-DAG: #define __HIP_NO_IMAGE_SUPPORT__ 1 // NOIMAGE-DAG: #define __HIP_NO_IMAGE_SUPPORT 1 // RUN: %clang -E -dM --offload-arch=gfx1100 -nogpuinc -nogpulib \ // RUN: -fgpu-default-stream=per-thread %s 2>&1 | FileCheck --check-prefixes=PTS %s // RUN: %clang -E -dM --offload-arch=gfx940 --cuda-device-only -nogpuinc -nogpulib \ // RUN: -fgpu-default-stream=legacy %s 2>&1 | FileCheck --check-prefixes=NOPTS %s // RUN: %clang -E -dM --offload-arch=gfx940 --cuda-device-only -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefixes=NOPTS %s // PTS-DAG: #define __HIP_API_PER_THREAD_DEFAULT_STREAM__ 1 // PTS-DAG: #define __HIP_API_PER_THREAD_DEFAULT_STREAM__ 1 // PTS-DAG: #define HIP_API_PER_THREAD_DEFAULT_STREAM 1 // PTS-DAG: #define HIP_API_PER_THREAD_DEFAULT_STREAM 1 // NOPTS-NOT: #define __HIP_API_PER_THREAD_DEFAULT_STREAM__ // NOPTS-NOT: #define HIP_API_PER_THREAD_DEFAULT_STREAM // RUN: %clang -E -dM --offload-arch=gfx906 -nogpuinc -nogpulib \ // RUN: %s 2>&1 | FileCheck --check-prefix=NOAPPROX %s // RUN: %clang -E -dM --offload-arch=gfx906 -nogpuinc -nogpulib -fgpu-approx-transcendentals \ // RUN: %s 2>&1 | FileCheck --check-prefix=APPROX %s // NOAPPROX-NOT: #define __CLANG_GPU_APPROX_TRANSCENDENTALS__ // APPROX: #define __CLANG_GPU_APPROX_TRANSCENDENTALS__ 1 // APPROX: #define __CLANG_GPU_APPROX_TRANSCENDENTALS__ 1