[llvm] [SPIR-V] Add Float16 support when targeting Vulkan (PR #77115)
Natalie Chouinard via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 10 09:23:02 PST 2024
================
@@ -733,11 +734,12 @@ void addInstrRequirements(const MachineInstr &MI,
auto SC = MI.getOperand(1).getImm();
Reqs.getAndAddRequirements(SPIRV::OperandCategory::StorageClassOperand, SC,
ST);
- // If it's a type of pointer to float16, add Float16Buffer capability.
+ // If it's a type of pointer to float16 targeting OpenCL, add Float16Buffer
+ // capability.
assert(MI.getOperand(2).isReg());
const MachineRegisterInfo &MRI = MI.getMF()->getRegInfo();
SPIRVType *TypeDef = MRI.getVRegDef(MI.getOperand(2).getReg());
- if (TypeDef->getOpcode() == SPIRV::OpTypeFloat &&
+ if (ST.isOpenCLEnv() && TypeDef->getOpcode() == SPIRV::OpTypeFloat &&
TypeDef->getOperand(1).getImm() == 16)
Reqs.addCapability(SPIRV::Capability::Float16Buffer);
----------------
sudonatalie wrote:
Done
https://github.com/llvm/llvm-project/pull/77115
More information about the llvm-commits
mailing list