diff --git a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp index 278cf6dc1d786..9ed3b97d1dc79 100644 --- a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp +++ b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp @@ -1945,9 +1945,12 @@ bool RISCVInsertVSETVLI::insertVSETMTK(MachineBasicBlock &MBB, .addImm(Log2_32(CurrInfo.getTWiden()) + 1); Changed = true; + Register Reg = Op.getReg(); + Op.setReg(Register()); + Op.setIsKill(false); if (LIS) { LIS->InsertMachineInstrInMaps(*TmpMI); - LiveInterval &LI = LIS->getInterval(Op.getReg()); + LiveInterval &LI = LIS->getInterval(Reg); // Erase the AVL operand from the instruction. LIS->shrinkToUses(&LI); @@ -1955,9 +1958,6 @@ bool RISCVInsertVSETVLI::insertVSETMTK(MachineBasicBlock &MBB, // SmallVector SplitLIs; // LIS->splitSeparateComponents(LI, SplitLIs); } - - Op.setReg(RISCV::NoRegister); - Op.setIsKill(false); } return Changed; }