[llvm] [SPIRV] Add support for `bfloat16` atomics via the `SPV_INTEL_16bit_atomics` extension (PR #166257)
Nathan Gauër via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 4 06:53:14 PST 2025
================
@@ -1081,11 +1088,21 @@ static void AddAtomicFloatRequirements(const MachineInstr &MI,
Reqs.addExtension(SPIRV::Extension::SPV_EXT_shader_atomic_float_add);
switch (BitWidth) {
case 16:
- if (!ST.canUseExtension(
- SPIRV::Extension::SPV_EXT_shader_atomic_float16_add))
- report_fatal_error(ATOM_FLT_REQ_EXT_MSG("16_add"), false);
- Reqs.addExtension(SPIRV::Extension::SPV_EXT_shader_atomic_float16_add);
- Reqs.addCapability(SPIRV::Capability::AtomicFloat16AddEXT);
+ if (isBFloat16Type(TypeDef)) {
+ if (!ST.canUseExtension(SPIRV::Extension::SPV_INTEL_16bit_atomics))
----------------
Keenuts wrote:
IIRC there is a later mechanism which checks which extension is allowed for the current target and raises an "SPIR-V module cannot be satisfied" error if an extension/capability is showing but is not allowed.
https://github.com/llvm/llvm-project/pull/166257
More information about the llvm-commits
mailing list