[clang] 9ce7725 - [HLSL] Add __spirv__ macro (#132848)

via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 28 07:49:22 PDT 2025


Author: Cassandra Beckley
Date: 2025-03-28T10:49:19-04:00
New Revision: 9ce77255b9a48b024e434e5c4017da07fc44bbe1

URL: https://github.com/llvm/llvm-project/commit/9ce77255b9a48b024e434e5c4017da07fc44bbe1
DIFF: https://github.com/llvm/llvm-project/commit/9ce77255b9a48b024e434e5c4017da07fc44bbe1.diff

LOG: [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.

Added: 
    

Modified: 
    clang/lib/Basic/Targets/SPIR.cpp
    clang/test/Preprocessor/predefined-macros-hlsl.hlsl

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets/SPIR.cpp b/clang/lib/Basic/Targets/SPIR.cpp
index 5c076f694dfa4..5b5f47f9647a2 100644
--- a/clang/lib/Basic/Targets/SPIR.cpp
+++ b/clang/lib/Basic/Targets/SPIR.cpp
@@ -59,6 +59,7 @@ void SPIR64TargetInfo::getTargetDefines(const LangOptions &Opts,
 void BaseSPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,
                                            MacroBuilder &Builder) const {
   DefineStd(Builder, "SPIRV", Opts);
+  DefineStd(Builder, "spirv", Opts);
 }
 
 void SPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,

diff  --git a/clang/test/Preprocessor/predefined-macros-hlsl.hlsl b/clang/test/Preprocessor/predefined-macros-hlsl.hlsl
index cd211713bf892..26bda6b7be167 100644
--- a/clang/test/Preprocessor/predefined-macros-hlsl.hlsl
+++ b/clang/test/Preprocessor/predefined-macros-hlsl.hlsl
@@ -9,6 +9,8 @@
 // RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-vertex | FileCheck -match-full-lines %s --check-prefixes=CHECK,VERTEX,NOHALF
 // 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
 
+// RUN: %clang_cc1 %s -E -dM -o - -triple spirv-unknown-vulkan-compute | FileCheck -match-full-lines %s --check-prefixes=CHECK,COMPUTE,NOHALF,SPIRV
+
 // HALF: #define __HLSL_ENABLE_16_BIT 1
 // NOHALF-NOT: __HLSL_ENABLE_16_BIT
 
@@ -34,6 +36,8 @@
 // PIXEL: #define __SHADER_TARGET_STAGE 0
 // VERTEX: #define __SHADER_TARGET_STAGE 1
 
+// SPIRV: #define __spirv__ 1
+
 // 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
 // STD2015: warning: support for HLSL language version hlsl2015 is incomplete, recommend using hlsl202x instead
 // STD2015: #define __HLSL_VERSION 2015


        


More information about the cfe-commits mailing list