Skip to content

Commit 9ce7725

Browse files
[HLSL] Add __spirv__ macro (#132848)
This macro can be used by HLSL code to detect that it is being compiled for the SPIR-V target.
1 parent bf5627c commit 9ce7725

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

clang/lib/Basic/Targets/SPIR.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ void SPIR64TargetInfo::getTargetDefines(const LangOptions &Opts,
5959
void BaseSPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,
6060
MacroBuilder &Builder) const {
6161
DefineStd(Builder, "SPIRV", Opts);
62+
DefineStd(Builder, "spirv", Opts);
6263
}
6364

6465
void SPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,

clang/test/Preprocessor/predefined-macros-hlsl.hlsl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-vertex | FileCheck -match-full-lines %s --check-prefixes=CHECK,VERTEX,NOHALF
1010
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.3-vertex -fnative-half-type | FileCheck -match-full-lines %s --check-prefixes=CHECK,VERTEX,HALF
1111

12+
// RUN: %clang_cc1 %s -E -dM -o - -triple spirv-unknown-vulkan-compute | FileCheck -match-full-lines %s --check-prefixes=CHECK,COMPUTE,NOHALF,SPIRV
13+
1214
// HALF: #define __HLSL_ENABLE_16_BIT 1
1315
// NOHALF-NOT: __HLSL_ENABLE_16_BIT
1416

@@ -34,6 +36,8 @@
3436
// PIXEL: #define __SHADER_TARGET_STAGE 0
3537
// VERTEX: #define __SHADER_TARGET_STAGE 1
3638

39+
// SPIRV: #define __spirv__ 1
40+
3741
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -E -dM -o - -x hlsl -std=hlsl2015 2>&1 | FileCheck -match-full-lines %s --check-prefixes=STD2015
3842
// STD2015: warning: support for HLSL language version hlsl2015 is incomplete, recommend using hlsl202x instead
3943
// STD2015: #define __HLSL_VERSION 2015

0 commit comments

Comments
 (0)