[llvm] [LoongArch] Fix implicit PesudoXVINSGR2VR error (PR #152432)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 14 01:42:35 PDT 2025


================
@@ -6066,37 +6070,41 @@ emitPseudoXVINSGR2VR(MachineInstr &MI, MachineBasicBlock *BB,
   Register Elt = MI.getOperand(2).getReg();
   unsigned Idx = MI.getOperand(3).getImm();
 
-  Register ScratchReg1 = XSrc;
-  if (Idx >= HalfSize) {
-    ScratchReg1 = MRI.createVirtualRegister(RC);
-    BuildMI(*BB, MI, DL, TII->get(LoongArch::XVPERMI_D), ScratchReg1)
-        .addReg(XSrc)
-        .addImm(14);
-  }
+  if (XSrc.isVirtual() && MRI.getVRegDef(XSrc)->isImplicitDef() &&
----------------
zhaoqi5 wrote:

It is better to add some separate tests (maybe in `insertelement.ll`) for this case.

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


More information about the llvm-commits mailing list