Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .github/workflows/on-push-verification-in-tree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,19 @@ jobs:
- name: Checkout opencl-clang sources for action files
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6

# This step will fail when the branch naming scheme 'ocl-open-XXX' changes!
- name: Parse LLVM version from branch name
id: check-llvm-version
run: |
BRANCH="${{ github.base_ref }}" # on: pull_request, otherwise null
BRANCH=${BRANCH:-${{ github.ref_name }}} # on: push
LLVM_VERSION_LONG=$(echo $BRANCH | grep -oP '\d+') # Eg. 190 for LLVM 19
LLVM_VERSION_SHORT=${LLVM_VERSION_LONG::-1} # Eg. 19 for LLVM 19
echo "llvm_version=$LLVM_VERSION_SHORT" >> $GITHUB_OUTPUT

- name: Run build-opencl-clang action
uses: ./.github/actions/build-opencl-clang
with:
ref_llvm: main
ref_translator: main
ref_llvm: release/${{ steps.check-llvm-version.outputs.llvm_version }}.x
ref_translator: llvm_release_${{ steps.check-llvm-version.outputs.llvm_version }}0
ref_opencl-clang: ${{ github.ref }}
2 changes: 1 addition & 1 deletion cmake/modules/CMakeFunctions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
36 changes: 36 additions & 0 deletions patches/clang/0001-Clang-Enable-BFloat16-for-SPIR-SPIR-V.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
From 6e240c1b150b4623d126539320b00375f6ee4ed6 Mon Sep 17 00:00:00 2001
From: Wenju He <[email protected]>
Date: Fri, 21 Nov 2025 05:37:58 +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 37cf9d7921ba..f593971bb3a0 100644
--- a/clang/lib/Basic/Targets/SPIR.h
+++ b/clang/lib/Basic/Targets/SPIR.h
@@ -101,6 +101,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;
@@ -384,9 +387,6 @@ public:
resetDataLayout("e-i64:64-v16:16-v24:32-v32:32-v48:64-"
"v96:128-v192:256-v256:256-v512:512-v1024:1024-G1-P4-A0");

- BFloat16Width = BFloat16Align = 16;
- BFloat16Format = &llvm::APFloat::BFloat();
-
HasLegalHalfType = true;
HasFloat16 = true;
HalfArgsAndReturns = true;
--
2.39.1

Loading