Skip to content

Commit 4216a30

Browse files
authored
[RISCV][NFC] Use sub to construct RVV registers without V0 (#82962)
This reduces some lines.
1 parent 1542601 commit 4216a30

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

llvm/lib/Target/RISCV/RISCVRegisterInfo.td

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -512,25 +512,21 @@ def VR : VReg<!listconcat(VM1VTs, VMaskVTs),
512512
(add (sequence "V%u", 8, 31),
513513
(sequence "V%u", 0, 7)), 1>;
514514

515-
def VRNoV0 : VReg<!listconcat(VM1VTs, VMaskVTs),
516-
(add (sequence "V%u", 8, 31),
517-
(sequence "V%u", 1, 7)), 1>;
515+
def VRNoV0 : VReg<!listconcat(VM1VTs, VMaskVTs), (sub VR, V0), 1>;
518516

519517
def VRM2 : VReg<VM2VTs, (add (sequence "V%uM2", 8, 31, 2),
520518
(sequence "V%uM2", 0, 7, 2)), 2>;
521519

522-
def VRM2NoV0 : VReg<VM2VTs, (add (sequence "V%uM2", 8, 31, 2),
523-
(sequence "V%uM2", 2, 7, 2)), 2>;
520+
def VRM2NoV0 : VReg<VM2VTs, (sub VRM2, V0M2), 2>;
524521

525-
def VRM4 : VReg<VM4VTs,
526-
(add V8M4, V12M4, V16M4, V20M4, V24M4, V28M4, V0M4, V4M4), 4>;
522+
def VRM4 : VReg<VM4VTs, (add V8M4, V12M4, V16M4, V20M4,
523+
V24M4, V28M4, V0M4, V4M4), 4>;
527524

528-
def VRM4NoV0 : VReg<VM4VTs,
529-
(add V8M4, V12M4, V16M4, V20M4, V24M4, V28M4, V4M4), 4>;
525+
def VRM4NoV0 : VReg<VM4VTs, (sub VRM4, V0M4), 4>;
530526

531527
def VRM8 : VReg<VM8VTs, (add V8M8, V16M8, V24M8, V0M8), 8>;
532528

533-
def VRM8NoV0 : VReg<VM8VTs, (add V8M8, V16M8, V24M8), 8>;
529+
def VRM8NoV0 : VReg<VM8VTs, (sub VRM8, V0M8), 8>;
534530

535531
def VMV0 : RegisterClass<"RISCV", VMaskVTs, 64, (add V0)> {
536532
let Size = 64;

0 commit comments

Comments
 (0)