[llvm] [RISCV] Add 16 bit GPR sub-register for Zhinx. (PR #107446)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 5 21:06:18 PDT 2024
================
@@ -83,41 +83,81 @@ def sub_gpr_odd : SubRegIndex<32, 32> {
let RegAltNameIndices = [ABIRegAltName] in {
let isConstant = true in
- def X0 : RISCVReg<0, "x0", ["zero"]>, DwarfRegNum<[0]>;
+ def X0_H : RISCVReg<0, "x0", ["zero"]>;
let CostPerUse = [0, 1] in {
- def X1 : RISCVReg<1, "x1", ["ra"]>, DwarfRegNum<[1]>;
- def X2 : RISCVReg<2, "x2", ["sp"]>, DwarfRegNum<[2]>;
- def X3 : RISCVReg<3, "x3", ["gp"]>, DwarfRegNum<[3]>;
- def X4 : RISCVReg<4, "x4", ["tp"]>, DwarfRegNum<[4]>;
- def X5 : RISCVReg<5, "x5", ["t0"]>, DwarfRegNum<[5]>;
- def X6 : RISCVReg<6, "x6", ["t1"]>, DwarfRegNum<[6]>;
- def X7 : RISCVReg<7, "x7", ["t2"]>, DwarfRegNum<[7]>;
+ def X1_H : RISCVReg<1, "x1", ["ra"]>;
+ def X2_H : RISCVReg<2, "x2", ["sp"]>;
+ def X3_H : RISCVReg<3, "x3", ["gp"]>;
+ def X4_H : RISCVReg<4, "x4", ["tp"]>;
+ def X5_H : RISCVReg<5, "x5", ["t0"]>;
+ def X6_H : RISCVReg<6, "x6", ["t1"]>;
+ def X7_H : RISCVReg<7, "x7", ["t2"]>;
}
- def X8 : RISCVReg<8, "x8", ["s0", "fp"]>, DwarfRegNum<[8]>;
- def X9 : RISCVReg<9, "x9", ["s1"]>, DwarfRegNum<[9]>;
- def X10 : RISCVReg<10,"x10", ["a0"]>, DwarfRegNum<[10]>;
- def X11 : RISCVReg<11,"x11", ["a1"]>, DwarfRegNum<[11]>;
- def X12 : RISCVReg<12,"x12", ["a2"]>, DwarfRegNum<[12]>;
- def X13 : RISCVReg<13,"x13", ["a3"]>, DwarfRegNum<[13]>;
- def X14 : RISCVReg<14,"x14", ["a4"]>, DwarfRegNum<[14]>;
- def X15 : RISCVReg<15,"x15", ["a5"]>, DwarfRegNum<[15]>;
+ def X8_H : RISCVReg<8, "x8", ["s0", "fp"]>;
+ def X9_H : RISCVReg<9, "x9", ["s1"]>;
+ def X10_H : RISCVReg<10,"x10", ["a0"]>;
+ def X11_H : RISCVReg<11,"x11", ["a1"]>;
+ def X12_H : RISCVReg<12,"x12", ["a2"]>;
+ def X13_H : RISCVReg<13,"x13", ["a3"]>;
+ def X14_H : RISCVReg<14,"x14", ["a4"]>;
+ def X15_H : RISCVReg<15,"x15", ["a5"]>;
let CostPerUse = [0, 1] in {
- def X16 : RISCVReg<16,"x16", ["a6"]>, DwarfRegNum<[16]>;
- def X17 : RISCVReg<17,"x17", ["a7"]>, DwarfRegNum<[17]>;
- def X18 : RISCVReg<18,"x18", ["s2"]>, DwarfRegNum<[18]>;
- def X19 : RISCVReg<19,"x19", ["s3"]>, DwarfRegNum<[19]>;
- def X20 : RISCVReg<20,"x20", ["s4"]>, DwarfRegNum<[20]>;
- def X21 : RISCVReg<21,"x21", ["s5"]>, DwarfRegNum<[21]>;
- def X22 : RISCVReg<22,"x22", ["s6"]>, DwarfRegNum<[22]>;
- def X23 : RISCVReg<23,"x23", ["s7"]>, DwarfRegNum<[23]>;
- def X24 : RISCVReg<24,"x24", ["s8"]>, DwarfRegNum<[24]>;
- def X25 : RISCVReg<25,"x25", ["s9"]>, DwarfRegNum<[25]>;
- def X26 : RISCVReg<26,"x26", ["s10"]>, DwarfRegNum<[26]>;
- def X27 : RISCVReg<27,"x27", ["s11"]>, DwarfRegNum<[27]>;
- def X28 : RISCVReg<28,"x28", ["t3"]>, DwarfRegNum<[28]>;
- def X29 : RISCVReg<29,"x29", ["t4"]>, DwarfRegNum<[29]>;
- def X30 : RISCVReg<30,"x30", ["t5"]>, DwarfRegNum<[30]>;
- def X31 : RISCVReg<31,"x31", ["t6"]>, DwarfRegNum<[31]>;
+ def X16_H : RISCVReg<16,"x16", ["a6"]>;
+ def X17_H : RISCVReg<17,"x17", ["a7"]>;
+ def X18_H : RISCVReg<18,"x18", ["s2"]>;
+ def X19_H : RISCVReg<19,"x19", ["s3"]>;
+ def X20_H : RISCVReg<20,"x20", ["s4"]>;
+ def X21_H : RISCVReg<21,"x21", ["s5"]>;
+ def X22_H : RISCVReg<22,"x22", ["s6"]>;
+ def X23_H : RISCVReg<23,"x23", ["s7"]>;
+ def X24_H : RISCVReg<24,"x24", ["s8"]>;
+ def X25_H : RISCVReg<25,"x25", ["s9"]>;
+ def X26_H : RISCVReg<26,"x26", ["s10"]>;
+ def X27_H : RISCVReg<27,"x27", ["s11"]>;
+ def X28_H : RISCVReg<28,"x28", ["t3"]>;
+ def X29_H : RISCVReg<29,"x29", ["t4"]>;
+ def X30_H : RISCVReg<30,"x30", ["t5"]>;
+ def X31_H : RISCVReg<31,"x31", ["t6"]>;
+ }
+
+ let SubRegIndices = [sub_16] in {
----------------
topperc wrote:
It's not covered by subregs. There's no sub reg for the upper bits.
https://github.com/llvm/llvm-project/pull/107446
More information about the llvm-commits
mailing list