[llvm] [SPIRV] Create a new OpSelect selector and fix register types. (PR #152311)

Farzon Lotfi via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 11:46:13 PDT 2025


================
@@ -440,13 +440,13 @@ void insertAssignInstr(Register Reg, Type *Ty, SPIRVType *SpvType,
   // Tablegen definition assumes SPIRV::ASSIGN_TYPE pseudo-instruction is
   // present after each auto-folded instruction to take a type reference from.
   Register NewReg = MRI.createGenericVirtualRegister(MRI.getType(Reg));
-  if (auto *RC = MRI.getRegClassOrNull(Reg)) {
-    MRI.setRegClass(NewReg, RC);
-  } else {
-    auto RegClass = GR->getRegClass(SpvType);
+  auto RegClass = GR->getRegClass(SpvType);
+  MRI.setRegClass(NewReg, RegClass);
+  MRI.setRegClass(Reg, RegClass);
+
+  if (auto *RC = MRI.getRegClassOrNull(Reg); RC != RegClass)
     MRI.setRegClass(NewReg, RegClass);
-    MRI.setRegClass(Reg, RegClass);
-  }
+
----------------
farzonl wrote:

delete if block

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


More information about the llvm-commits mailing list