@@ -45,79 +45,59 @@ multiclass XOForm_RTAB5_L1r<bits<6> opcode, bits<9> xo, dag OOL, dag IOL,
4545 }
4646}
4747
48- class VXForm_VRTB5<bits<11> xo, bits<5> R, dag OOL, dag IOL, string asmstr,
49- list<dag> pattern> : I<4, OOL, IOL, asmstr, NoItinerary> {
48+ class VXForm_VRTB5_Base<bits<11> xo, dag OOL, dag IOL, string asmstr,
49+ list<dag> pattern>
50+ : I<4, OOL, IOL, asmstr, NoItinerary> {
5051 bits<5> VRT;
5152 bits<5> VRB;
5253
5354 let Pattern = pattern;
5455
5556 let Inst{6...10} = VRT;
56- let Inst{11...15} = R;
5757 let Inst{16...20} = VRB;
5858 let Inst{21...31} = xo;
5959}
6060
61+ class VXForm_VRTB5<bits<11> xo, bits<5> R, dag OOL, dag IOL, string asmstr,
62+ list<dag> pattern>
63+ : VXForm_VRTB5_Base<xo, OOL, IOL, asmstr, pattern> {
64+
65+ let Inst{11...15} = R;
66+ }
67+
6168class VXForm_VRTB5_UIM2<bits<11> xo, bits<3> R, dag OOL, dag IOL, string asmstr,
6269 list<dag> pattern>
63- : I<4, OOL, IOL, asmstr, NoItinerary> {
64- bits<5> VRT;
65- bits<5> VRB;
70+ : VXForm_VRTB5_Base<xo, OOL, IOL, asmstr, pattern> {
6671 bits<2> UIM;
6772
68- let Pattern = pattern;
69-
70- let Inst{6...10} = VRT;
7173 let Inst{11...13} = R;
7274 let Inst{14...15} = UIM;
73- let Inst{16...20} = VRB;
74- let Inst{21...31} = xo;
7575}
7676
7777class VXForm_VRTB5_UIM1<bits<11> xo, bits<4> R, dag OOL, dag IOL, string asmstr,
7878 list<dag> pattern>
79- : I<4, OOL, IOL, asmstr, NoItinerary> {
80- bits<5> VRT;
81- bits<5> VRB;
79+ : VXForm_VRTB5_Base<xo, OOL, IOL, asmstr, pattern> {
8280 bits<1> UIM;
8381
84- let Pattern = pattern;
85-
86- let Inst{6...10} = VRT;
8782 let Inst{11...14} = R;
8883 let Inst{15} = UIM;
89- let Inst{16...20} = VRB;
90- let Inst{21...31} = xo;
9184}
9285
9386class VXForm_VRTB5_UIM3<bits<11> xo, bits<2> R, dag OOL, dag IOL, string asmstr,
9487 list<dag> pattern>
95- : I<4, OOL, IOL, asmstr, NoItinerary> {
96- bits<5> VRT;
97- bits<5> VRB;
88+ : VXForm_VRTB5_Base<xo, OOL, IOL, asmstr, pattern> {
9889 bits<3> UIM;
9990
100- let Pattern = pattern;
101-
102- let Inst{6...10} = VRT;
10391 let Inst{11...12} = R;
10492 let Inst{13...15} = UIM;
105- let Inst{16...20} = VRB;
106- let Inst{21...31} = xo;
10793}
10894
10995class VXForm_VRTAB5<bits<11> xo, dag OOL, dag IOL, string asmstr,
110- list<dag> pattern> : I<4, OOL, IOL, asmstr, NoItinerary> {
111- bits<5> VRT;
96+ list<dag> pattern>
97+ : VXForm_VRTB5_Base<xo, OOL, IOL, asmstr, pattern> {
11298 bits<5> VRA;
113- bits<5> VRB;
11499
115- let Pattern = pattern;
116-
117- let Inst{6...10} = VRT;
118100 let Inst{11...15} = VRA;
119- let Inst{16...20} = VRB;
120- let Inst{21...31} = xo;
121101}
122102
123103class XX3Form_XTBp5_M2<bits<9> xo, dag OOL, dag IOL, string asmstr,
0 commit comments