Skip to content

Commit d9746a6

Browse files
authored
[RISCV][NFC] Pass LMUL to copyPhysRegVector
The opcode will be determined by LMUL. Reviewers: preames, lukel97, topperc Reviewed By: lukel97, topperc Pull Request: #84448
1 parent 6af6416 commit d9746a6

File tree

2 files changed

+27
-27
lines changed

2 files changed

+27
-27
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -299,36 +299,36 @@ void RISCVInstrInfo::copyPhysRegVector(MachineBasicBlock &MBB,
299299
MachineBasicBlock::iterator MBBI,
300300
const DebugLoc &DL, MCRegister DstReg,
301301
MCRegister SrcReg, bool KillSrc,
302-
unsigned Opc, unsigned NF) const {
302+
RISCVII::VLMUL LMul, unsigned NF) const {
303303
const TargetRegisterInfo *TRI = STI.getRegisterInfo();
304304

305-
RISCVII::VLMUL LMul;
305+
unsigned Opc;
306306
unsigned SubRegIdx;
307307
unsigned VVOpc, VIOpc;
308-
switch (Opc) {
308+
switch (LMul) {
309309
default:
310310
llvm_unreachable("Impossible LMUL for vector register copy.");
311-
case RISCV::VMV1R_V:
312-
LMul = RISCVII::LMUL_1;
311+
case RISCVII::LMUL_1:
312+
Opc = RISCV::VMV1R_V;
313313
SubRegIdx = RISCV::sub_vrm1_0;
314314
VVOpc = RISCV::PseudoVMV_V_V_M1;
315315
VIOpc = RISCV::PseudoVMV_V_I_M1;
316316
break;
317-
case RISCV::VMV2R_V:
318-
LMul = RISCVII::LMUL_2;
317+
case RISCVII::LMUL_2:
318+
Opc = RISCV::VMV2R_V;
319319
SubRegIdx = RISCV::sub_vrm2_0;
320320
VVOpc = RISCV::PseudoVMV_V_V_M2;
321321
VIOpc = RISCV::PseudoVMV_V_I_M2;
322322
break;
323-
case RISCV::VMV4R_V:
324-
LMul = RISCVII::LMUL_4;
323+
case RISCVII::LMUL_4:
324+
Opc = RISCV::VMV4R_V;
325325
SubRegIdx = RISCV::sub_vrm4_0;
326326
VVOpc = RISCV::PseudoVMV_V_V_M4;
327327
VIOpc = RISCV::PseudoVMV_V_I_M4;
328328
break;
329-
case RISCV::VMV8R_V:
329+
case RISCVII::LMUL_8:
330330
assert(NF == 1);
331-
LMul = RISCVII::LMUL_8;
331+
Opc = RISCV::VMV8R_V;
332332
SubRegIdx = RISCV::sub_vrm1_0; // There is no sub_vrm8_0.
333333
VVOpc = RISCV::PseudoVMV_V_V_M8;
334334
VIOpc = RISCV::PseudoVMV_V_I_M8;
@@ -505,87 +505,87 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
505505

506506
// VR->VR copies.
507507
if (RISCV::VRRegClass.contains(DstReg, SrcReg)) {
508-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V);
508+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1);
509509
return;
510510
}
511511

512512
if (RISCV::VRM2RegClass.contains(DstReg, SrcReg)) {
513-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV2R_V);
513+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_2);
514514
return;
515515
}
516516

517517
if (RISCV::VRM4RegClass.contains(DstReg, SrcReg)) {
518-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV4R_V);
518+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_4);
519519
return;
520520
}
521521

522522
if (RISCV::VRM8RegClass.contains(DstReg, SrcReg)) {
523-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV8R_V);
523+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_8);
524524
return;
525525
}
526526

527527
if (RISCV::VRN2M1RegClass.contains(DstReg, SrcReg)) {
528-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
528+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
529529
/*NF=*/2);
530530
return;
531531
}
532532

533533
if (RISCV::VRN2M2RegClass.contains(DstReg, SrcReg)) {
534-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV2R_V,
534+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_2,
535535
/*NF=*/2);
536536
return;
537537
}
538538

539539
if (RISCV::VRN2M4RegClass.contains(DstReg, SrcReg)) {
540-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV4R_V,
540+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_4,
541541
/*NF=*/2);
542542
return;
543543
}
544544

545545
if (RISCV::VRN3M1RegClass.contains(DstReg, SrcReg)) {
546-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
546+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
547547
/*NF=*/3);
548548
return;
549549
}
550550

551551
if (RISCV::VRN3M2RegClass.contains(DstReg, SrcReg)) {
552-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV2R_V,
552+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_2,
553553
/*NF=*/3);
554554
return;
555555
}
556556

557557
if (RISCV::VRN4M1RegClass.contains(DstReg, SrcReg)) {
558-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
558+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
559559
/*NF=*/4);
560560
return;
561561
}
562562

563563
if (RISCV::VRN4M2RegClass.contains(DstReg, SrcReg)) {
564-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV2R_V,
564+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_2,
565565
/*NF=*/4);
566566
return;
567567
}
568568

569569
if (RISCV::VRN5M1RegClass.contains(DstReg, SrcReg)) {
570-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
570+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
571571
/*NF=*/5);
572572
return;
573573
}
574574

575575
if (RISCV::VRN6M1RegClass.contains(DstReg, SrcReg)) {
576-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
576+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
577577
/*NF=*/6);
578578
return;
579579
}
580580

581581
if (RISCV::VRN7M1RegClass.contains(DstReg, SrcReg)) {
582-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
582+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
583583
/*NF=*/7);
584584
return;
585585
}
586586

587587
if (RISCV::VRN8M1RegClass.contains(DstReg, SrcReg)) {
588-
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCV::VMV1R_V,
588+
copyPhysRegVector(MBB, MBBI, DL, DstReg, SrcReg, KillSrc, RISCVII::LMUL_1,
589589
/*NF=*/8);
590590
return;
591591
}

llvm/lib/Target/RISCV/RISCVInstrInfo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class RISCVInstrInfo : public RISCVGenInstrInfo {
6969
void copyPhysRegVector(MachineBasicBlock &MBB,
7070
MachineBasicBlock::iterator MBBI, const DebugLoc &DL,
7171
MCRegister DstReg, MCRegister SrcReg, bool KillSrc,
72-
unsigned Opc, unsigned NF = 1) const;
72+
RISCVII::VLMUL LMul, unsigned NF = 1) const;
7373
void copyPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
7474
const DebugLoc &DL, MCRegister DstReg, MCRegister SrcReg,
7575
bool KillSrc) const override;

0 commit comments

Comments
 (0)