Skip to content

Commit 164b046

Browse files
committed
[RISCV] Convert segment registers to VR registers in RISCVMCInstLower.
Similar to what we do for the LMUL>1 register classes. The printing is only working today because the segment registers have "ABI" names set to their base register name.
1 parent 9e3ca79 commit 164b046

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

llvm/lib/Target/RISCV/RISCVMCInstLower.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,19 @@ static bool lowerRISCVVMachineInstrToMCInst(const MachineInstr *MI,
193193
} else if (RISCV::FPR64RegClass.contains(Reg)) {
194194
Reg = TRI->getSubReg(Reg, RISCV::sub_32);
195195
assert(Reg && "Superregister does not exist");
196+
} else if (RISCV::VRN2M1RegClass.contains(Reg) ||
197+
RISCV::VRN2M2RegClass.contains(Reg) ||
198+
RISCV::VRN2M4RegClass.contains(Reg) ||
199+
RISCV::VRN3M1RegClass.contains(Reg) ||
200+
RISCV::VRN3M2RegClass.contains(Reg) ||
201+
RISCV::VRN4M1RegClass.contains(Reg) ||
202+
RISCV::VRN4M2RegClass.contains(Reg) ||
203+
RISCV::VRN5M1RegClass.contains(Reg) ||
204+
RISCV::VRN6M1RegClass.contains(Reg) ||
205+
RISCV::VRN7M1RegClass.contains(Reg) ||
206+
RISCV::VRN8M1RegClass.contains(Reg)) {
207+
Reg = TRI->getSubReg(Reg, RISCV::sub_vrm1_0);
208+
assert(Reg && "Subregister does not exist");
196209
}
197210

198211
MCOp = MCOperand::createReg(Reg);

0 commit comments

Comments
 (0)