[clang] c8f4fe3 - [Clang] Add macro for `__VULKAN__` environment (#196103)
via cfe-commits
cfe-commits at lists.llvm.org
Thu May 7 07:46:20 PDT 2026
Author: Joseph Huber
Date: 2026-05-07T09:46:14-05:00
New Revision: c8f4fe35a29534d420cd73f317fa1dabfe7560ee
URL: https://github.com/llvm/llvm-project/commit/c8f4fe35a29534d420cd73f317fa1dabfe7560ee
DIFF: https://github.com/llvm/llvm-project/commit/c8f4fe35a29534d420cd73f317fa1dabfe7560ee.diff
LOG: [Clang] Add macro for `__VULKAN__` environment (#196103)
Summary:
Adds a macro like for `__LINUX__` or `__WIN32`. The intention here is to
let code differentiate between vulkan variants or not.
Added:
Modified:
clang/lib/Basic/Targets/SPIR.cpp
clang/test/Preprocessor/predefined-macros.c
Removed:
################################################################################
diff --git a/clang/lib/Basic/Targets/SPIR.cpp b/clang/lib/Basic/Targets/SPIR.cpp
index e55a6ed8bc63f..b6d6b213d78ed 100644
--- a/clang/lib/Basic/Targets/SPIR.cpp
+++ b/clang/lib/Basic/Targets/SPIR.cpp
@@ -89,6 +89,8 @@ void BaseSPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,
DefineStd(Builder, "SPIRV", Opts);
if (Opts.HLSL)
DefineStd(Builder, "spirv", Opts);
+ if (getTriple().isVulkanOS())
+ Builder.defineMacro("__VULKAN__");
}
void SPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,
diff --git a/clang/test/Preprocessor/predefined-macros.c b/clang/test/Preprocessor/predefined-macros.c
index 8dbb477be4c5d..ab85cfc00b42a 100644
--- a/clang/test/Preprocessor/predefined-macros.c
+++ b/clang/test/Preprocessor/predefined-macros.c
@@ -238,6 +238,13 @@
// CHECK-SPIRV64-NOT: #define __SPIRV32__ 1
// CHECK-SPIRV64-NOT: #define __spirv__ 1
+// RUN: %clang_cc1 %s -E -dM -o - -x c -triple spirv64-unknown-vulkan \
+// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIRV64-VULKAN
+// CHECK-SPIRV64-VULKAN-DAG: #define __SPIRV__ 1
+// CHECK-SPIRV64-VULKAN-DAG: #define __SPIRV64__ 1
+// CHECK-SPIRV64-VULKAN-DAG: #define __VULKAN__ 1
+// CHECK-SPIRV64-VULKAN-NOT: #define __SPIRV32__ 1
+
// RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spirv64-amd-amdhsa \
// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIRV64-AMDGCN
// RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spirv64-amd-amdhsa -fatomic-ignore-denormal-mode \
More information about the cfe-commits
mailing list