[llvm] [SPIRV] Add support for the SPIR-V extension SPV_KHR_bfloat16 (PR #155645)
Marcos Maronas via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 11 01:10:23 PDT 2025
================
@@ -1261,12 +1267,30 @@ void addInstrRequirements(const MachineInstr &MI,
Reqs.addCapability(SPIRV::Capability::Int8);
break;
}
+ case SPIRV::OpDot: {
+ const MachineRegisterInfo &MRI = MI.getMF()->getRegInfo();
+ SPIRVType *TypeDef = MRI.getVRegDef(MI.getOperand(1).getReg());
+ if (isBFloat16Type(TypeDef))
+ Reqs.addCapability(SPIRV::Capability::BFloat16DotProductKHR);
+ break;
+ }
case SPIRV::OpTypeFloat: {
unsigned BitWidth = MI.getOperand(1).getImm();
if (BitWidth == 64)
Reqs.addCapability(SPIRV::Capability::Float64);
- else if (BitWidth == 16)
- Reqs.addCapability(SPIRV::Capability::Float16);
+ else if (BitWidth == 16) {
+ if ((MI.getNumOperands() == 3) &&
----------------
maarquitos14 wrote:
Can we use `isBFloat16Type(MI)` instead?
https://github.com/llvm/llvm-project/pull/155645
More information about the llvm-commits
mailing list