[llvm] [SPIR-V] Add Float16 support when targeting Vulkan (PR #77115)

Ilia Diachkov via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 10 12:32:14 PST 2024


================
@@ -730,10 +731,13 @@ void addInstrRequirements(const MachineInstr &MI,
     break;
   }
   case SPIRV::OpTypePointer: {
+    if (!ST.isOpenCLEnv())
+      break;
     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.
----------------
iliya-diyachkov wrote:

Hm... it looks like you don't want to execute these lines for Vulkan:
```
auto SC = MI.getOperand(1).getImm();
Reqs.getAndAddRequirements(SPIRV::OperandCategory::StorageClassOperand, SC, ST);
```
however, in the previous patch, you were going to disable only the code after the comment.

https://github.com/llvm/llvm-project/pull/77115


More information about the llvm-commits mailing list