[llvm] [SPIR-V] Add lowering for G_FEXP10 (PR #182466)

Juan Manuel Martinez CaamaƱo via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 20 03:49:30 PST 2026


================
@@ -1370,6 +1388,54 @@ bool SPIRVInstructionSelector::selectExtInst(Register ResVReg,
   }
   return false;
 }
+
+bool SPIRVInstructionSelector::selectExtInstWithSrcs(
+    Register ResVReg, SPIRVTypeInst ResType, MachineInstr &I,
+    std::vector<Register> SrcRegs, GL::GLSLExtInst GLInst) const {
+  ExtInstList ExtInsts = {{SPIRV::InstructionSet::GLSL_std_450, GLInst}};
+  return selectExtInstWithSrcs(ResVReg, ResType, I, SrcRegs, ExtInsts);
+}
+
+bool SPIRVInstructionSelector::selectExtInstWithSrcs(
+    Register ResVReg, SPIRVTypeInst ResType, MachineInstr &I,
+    std::vector<Register> SrcRegs, CL::OpenCLExtInst CLInst) const {
+  ExtInstList ExtInsts = {{SPIRV::InstructionSet::OpenCL_std, CLInst}};
+  return selectExtInstWithSrcs(ResVReg, ResType, I, SrcRegs, ExtInsts);
+}
+
+bool SPIRVInstructionSelector::selectExtInstWithSrcs(
+    Register ResVReg, SPIRVTypeInst ResType, MachineInstr &I,
+    std::vector<Register> SrcRegs, CL::OpenCLExtInst CLInst,
+    GL::GLSLExtInst GLInst) const {
+  ExtInstList ExtInsts = {{SPIRV::InstructionSet::OpenCL_std, CLInst},
+                          {SPIRV::InstructionSet::GLSL_std_450, GLInst}};
+  return selectExtInstWithSrcs(ResVReg, ResType, I, SrcRegs, ExtInsts);
+}
+
+bool SPIRVInstructionSelector::selectExtInstWithSrcs(
+    Register ResVReg, SPIRVTypeInst ResType, MachineInstr &I,
+    std::vector<Register> SrcRegs, const ExtInstList &Insts) const {
+  for (const auto &Ex : Insts) {
+    SPIRV::InstructionSet::InstructionSet Set = Ex.first;
+    if (STI.canUseExtInstSet(Set)) {
----------------
jmmartinez wrote:

Prefer using continue to reduce indentation.

```cpp
for() {
   ...
   if(!STI.canUseExtInstSet(Set))
      continue; 
}
```

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


More information about the llvm-commits mailing list