diff options
author | Vyacheslav Levytskyy <vyacheslav.levytskyy@intel.com> | 2024-10-15 18:43:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-15 18:43:09 +0200 |
commit | bfe84f7085d82d06d61c632a7bad1e692fd159e4 (patch) | |
tree | fd5d5547de5a64e0ccf8e61681fb43826443701a /llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | |
parent | 8d8996dd1e5ded4da4c87ccbb103576a3c52cd15 (diff) | |
download | llvm-bfe84f7085d82d06d61c632a7bad1e692fd159e4.zip llvm-bfe84f7085d82d06d61c632a7bad1e692fd159e4.tar.gz llvm-bfe84f7085d82d06d61c632a7bad1e692fd159e4.tar.bz2 |
[SPIR-V] Implement support of the SPV_INTEL_split_barrier SPIRV extension (#112359)
This PR implements support of the SPV_EXT_arithmetic_fence SPIRV
extension
(https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/INTEL/SPV_INTEL_split_barrier.asciidoc)
and adds builtins from
https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_split_work_group_barrier.html
Diffstat (limited to 'llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp')
-rw-r--r-- | llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp index 70cdd73..db5463f 100644 --- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp @@ -1211,6 +1211,13 @@ void addInstrRequirements(const MachineInstr &MI, Reqs.addExtension(SPIRV::Extension::SPV_EXT_arithmetic_fence); Reqs.addCapability(SPIRV::Capability::ArithmeticFenceEXT); break; + case SPIRV::OpControlBarrierArriveINTEL: + case SPIRV::OpControlBarrierWaitINTEL: + if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_split_barrier)) { + Reqs.addExtension(SPIRV::Extension::SPV_INTEL_split_barrier); + Reqs.addCapability(SPIRV::Capability::SplitBarrierINTEL); + } + break; default: break; } |