From 1f40bb47cc8a5affff43096de49bf753b8fd2cd5 Mon Sep 17 00:00:00 2001 From: Wenju He Date: Fri, 21 Nov 2025 05:44:57 +0100 Subject: [PATCH 1/2] Add clang patch to enable BFloat16 for SPIR/SPIR-V --- ...lang-Enable-BFloat16-for-SPIR-SPIR-V.patch | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 patches/clang/0001-Clang-Enable-BFloat16-for-SPIR-SPIR-V.patch diff --git a/patches/clang/0001-Clang-Enable-BFloat16-for-SPIR-SPIR-V.patch b/patches/clang/0001-Clang-Enable-BFloat16-for-SPIR-SPIR-V.patch new file mode 100644 index 00000000..5a602b9c --- /dev/null +++ b/patches/clang/0001-Clang-Enable-BFloat16-for-SPIR-SPIR-V.patch @@ -0,0 +1,36 @@ +From e3aa87e0aaad941c35709c8dc7a479b2a5251cfe Mon Sep 17 00:00:00 2001 +From: Wenju He +Date: Fri, 21 Nov 2025 05:43:57 +0100 +Subject: [PATCH] [Clang] Enable BFloat16 for SPIR/SPIR-V + +--- + clang/lib/Basic/Targets/SPIR.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/clang/lib/Basic/Targets/SPIR.h b/clang/lib/Basic/Targets/SPIR.h +index c0849b69dcdb..78a1c0e78107 100644 +--- a/clang/lib/Basic/Targets/SPIR.h ++++ b/clang/lib/Basic/Targets/SPIR.h +@@ -103,6 +103,9 @@ protected: + UseAddrSpaceMapMangling = true; + HasLegalHalfType = true; + HasFloat16 = true; ++ HasBFloat16 = true; ++ BFloat16Width = BFloat16Align = 16; ++ BFloat16Format = &llvm::APFloat::BFloat(); + // Define available target features + // These must be defined in sorted order! + NoAsmVariants = true; +@@ -389,9 +392,6 @@ public: + resetDataLayout("e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-" + "v256:256-v512:512-v1024:1024-n32:64-S32-G1-P4-A0"); + +- BFloat16Width = BFloat16Align = 16; +- BFloat16Format = &llvm::APFloat::BFloat(); +- + HasLegalHalfType = true; + HasFloat16 = true; + HalfArgsAndReturns = true; +-- +2.39.1 + From 60aba13cb738bac35a6ef6f725d64f70e0aebfa9 Mon Sep 17 00:00:00 2001 From: Wenju He Date: Mon, 24 Nov 2025 07:35:49 +0100 Subject: [PATCH 2/2] fix cmake typo elsef --- cmake/modules/CMakeFunctions.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/modules/CMakeFunctions.cmake b/cmake/modules/CMakeFunctions.cmake index 13a013c6..c13f2600 100644 --- a/cmake/modules/CMakeFunctions.cmake +++ b/cmake/modules/CMakeFunctions.cmake @@ -141,7 +141,7 @@ function(apply_patches repo_dir patches_dir base_revision target_branch) message(STATUS "[OPENCL-CLANG] Not present - ${patching_log}") endif() endforeach(patch) - elsef(patches_needed EQUAL 0) # The target branch already exists + elseif(patches_needed EQUAL 0) # The target branch already exists execute_process( # Check it out COMMAND ${GIT_EXECUTABLE} checkout ${target_branch} WORKING_DIRECTORY ${repo_dir}