@@ -58,83 +58,51 @@ class QCIRVInstRR<bits<5> func5, DAGOperand InTyRs1, string opcodestr>
5858 (ins InTyRs1:$rs1, GPRNoX0:$rs2), opcodestr, "$rd, $rs1, $rs2">;
5959
6060let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
61- class QCISELECTIICC<bits<3> func3 , string opcodestr>
62- : RVInst<(outs GPRNoX0:$rd_wb), (ins GPRNoX0:$rd, GPRNoX0:$rs1 ,
63- simm5:$simm5 , simm5:$simm), opcodestr ,
64- "$rd, $rs1, $simm5 , $simm", [], InstFormatR4 > {
61+ class QCISELECTIICC<bits<3> funct3 , string opcodestr>
62+ : RVInstR4<0b00, funct3, OPC_CUSTOM_2, (outs GPRNoX0:$rd_wb) ,
63+ (ins GPRNoX0:$rd, GPRNoX0:$rs1, simm5:$simm1 , simm5:$simm2) ,
64+ opcodestr, "$rd, $rs1, $simm1 , $simm2" > {
6565 let Constraints = "$rd = $rd_wb";
66- bits<5> simm;
67- bits<5> simm5;
68- bits<5> rs1;
69- bits<5> rd;
70-
71- let Inst{31-27} = simm;
72- let Inst{26-25} = 0b00;
73- let Inst{24-20} = simm5;
74- let Inst{19-15} = rs1;
75- let Inst{14-12} = func3;
76- let Inst{11-7} = rd;
77- let Inst{6-0} = 0b1011011;
66+ bits<5> simm1;
67+ bits<5> simm2;
68+
69+ let rs3 = simm2;
70+ let rs2 = simm1;
7871}
7972
8073let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
81- class QCISELECTICC<bits<3> func3 , string opcodestr>
82- : RVInst<(outs GPRNoX0:$rd_wb), (ins GPRNoX0:$rd, GPRNoX0:$rs1 ,
83- GPRNoX0:$rs2, simm5:$simm), opcodestr ,
84- "$rd, $rs1, $rs2, $simm", [], InstFormatR4 > {
74+ class QCISELECTICC<bits<3> funct3 , string opcodestr>
75+ : RVInstR4<0b01, funct3, OPC_CUSTOM_2, (outs GPRNoX0:$rd_wb) ,
76+ (ins GPRNoX0:$rd, GPRNoX0:$rs1, GPRNoX0:$rs2, simm5:$simm2) ,
77+ opcodestr, "$rd, $rs1, $rs2, $simm2" > {
8578 let Constraints = "$rd = $rd_wb";
86- bits<5> simm;
87- bits<5> rs1;
88- bits<5> rs2;
89- bits<5> rd;
90-
91- let Inst{31-27} = simm;
92- let Inst{26-25} = 0b01;
93- let Inst{24-20} = rs2;
94- let Inst{19-15} = rs1;
95- let Inst{14-12} = func3;
96- let Inst{11-7} = rd;
97- let Inst{6-0} = 0b1011011;
79+ bits<5> simm2;
80+
81+ let rs3 = simm2;
9882}
9983
10084let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
101- class QCISELECTCCI<bits<3> func3 , string opcodestr>
102- : RVInst<(outs GPRNoX0:$rd_wb), (ins GPRNoX0:$rd, simm5:$simm5 ,
103- GPRNoX0:$rs2, GPRNoX0:$rs3), opcodestr ,
104- "$rd, $simm5 , $rs2, $rs3", [], InstFormatR4 > {
85+ class QCISELECTCCI<bits<3> funct3 , string opcodestr>
86+ : RVInstR4<0b10, funct3, OPC_CUSTOM_2, (outs GPRNoX0:$rd_wb) ,
87+ (ins GPRNoX0:$rd, simm5:$imm, GPRNoX0:$rs2, GPRNoX0:$rs3),
88+ opcodestr, "$rd, $imm , $rs2, $rs3"> {
10589 let Constraints = "$rd = $rd_wb";
106- bits<5> rs3;
107- bits<5> simm5;
108- bits<5> rs2;
109- bits<5> rd;
110-
111- let Inst{31-27} = rs3;
112- let Inst{26-25} = 0b10;
113- let Inst{24-20} = rs2;
114- let Inst{19-15} = simm5;
115- let Inst{14-12} = func3;
116- let Inst{11-7} = rd;
117- let Inst{6-0} = 0b1011011;
90+ bits<5> imm;
91+
92+ let rs1 = imm;
11893}
11994
12095let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
121- class QCISELECTICCI<bits<3> func3 , string opcodestr>
122- : RVInst<(outs GPRNoX0:$rd_wb), (ins GPRNoX0:$rd, simm5:$simm5 ,
123- GPRNoX0:$rs2, simm5:$simm), opcodestr ,
124- "$rd, $simm5 , $rs2, $simm", [], InstFormatR4 > {
96+ class QCISELECTICCI<bits<3> funct3 , string opcodestr>
97+ : RVInstR4<0b11, funct3, OPC_CUSTOM_2, (outs GPRNoX0:$rd_wb) ,
98+ (ins GPRNoX0:$rd, simm5:$imm, GPRNoX0:$rs2, simm5:$simm2) ,
99+ opcodestr, "$rd, $imm , $rs2, $simm2" > {
125100 let Constraints = "$rd = $rd_wb";
126- bits<5> simm;
127- bits<5> simm5;
128- bits<5> rs2;
129- bits<5> rd;
130-
131- let Inst{31-27} = simm;
132- let Inst{26-25} = 0b11;
133- let Inst{24-20} = rs2;
134- let Inst{19-15} = simm5;
135- let Inst{14-12} = func3;
136- let Inst{11-7} = rd;
137- let Inst{6-0} = 0b1011011;
101+ bits<5> imm;
102+ bits<5> simm2;
103+
104+ let rs3 = simm2;
105+ let rs1 = imm;
138106}
139107
140108//===----------------------------------------------------------------------===//
0 commit comments