xref: /aosp_15_r20/external/llvm/lib/Target/AMDGPU/VIInstrFormats.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//===-- VIInstrFormats.td - VI Instruction Encodings ----------------------===//
2*9880d681SAndroid Build Coastguard Worker//
3*9880d681SAndroid Build Coastguard Worker//                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker//
5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker//
8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker//
10*9880d681SAndroid Build Coastguard Worker// VI Instruction format definitions.
11*9880d681SAndroid Build Coastguard Worker//
12*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerclass DSe_vi <bits<8> op> : Enc64 {
15*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
16*9880d681SAndroid Build Coastguard Worker  bits<1> gds;
17*9880d681SAndroid Build Coastguard Worker  bits<8> addr;
18*9880d681SAndroid Build Coastguard Worker  bits<8> data0;
19*9880d681SAndroid Build Coastguard Worker  bits<8> data1;
20*9880d681SAndroid Build Coastguard Worker  bits<8> offset0;
21*9880d681SAndroid Build Coastguard Worker  bits<8> offset1;
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker  let Inst{7-0} = offset0;
24*9880d681SAndroid Build Coastguard Worker  let Inst{15-8} = offset1;
25*9880d681SAndroid Build Coastguard Worker  let Inst{16} = gds;
26*9880d681SAndroid Build Coastguard Worker  let Inst{24-17} = op;
27*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x36; //encoding
28*9880d681SAndroid Build Coastguard Worker  let Inst{39-32} = addr;
29*9880d681SAndroid Build Coastguard Worker  let Inst{47-40} = data0;
30*9880d681SAndroid Build Coastguard Worker  let Inst{55-48} = data1;
31*9880d681SAndroid Build Coastguard Worker  let Inst{63-56} = vdst;
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerclass MUBUFe_vi <bits<7> op> : Enc64 {
35*9880d681SAndroid Build Coastguard Worker  bits<12> offset;
36*9880d681SAndroid Build Coastguard Worker  bits<1> offen;
37*9880d681SAndroid Build Coastguard Worker  bits<1> idxen;
38*9880d681SAndroid Build Coastguard Worker  bits<1> glc;
39*9880d681SAndroid Build Coastguard Worker  bits<1> lds;
40*9880d681SAndroid Build Coastguard Worker  bits<8> vaddr;
41*9880d681SAndroid Build Coastguard Worker  bits<8> vdata;
42*9880d681SAndroid Build Coastguard Worker  bits<7> srsrc;
43*9880d681SAndroid Build Coastguard Worker  bits<1> slc;
44*9880d681SAndroid Build Coastguard Worker  bits<1> tfe;
45*9880d681SAndroid Build Coastguard Worker  bits<8> soffset;
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Worker  let Inst{11-0} = offset;
48*9880d681SAndroid Build Coastguard Worker  let Inst{12} = offen;
49*9880d681SAndroid Build Coastguard Worker  let Inst{13} = idxen;
50*9880d681SAndroid Build Coastguard Worker  let Inst{14} = glc;
51*9880d681SAndroid Build Coastguard Worker  let Inst{16} = lds;
52*9880d681SAndroid Build Coastguard Worker  let Inst{17} = slc;
53*9880d681SAndroid Build Coastguard Worker  let Inst{24-18} = op;
54*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x38; //encoding
55*9880d681SAndroid Build Coastguard Worker  let Inst{39-32} = vaddr;
56*9880d681SAndroid Build Coastguard Worker  let Inst{47-40} = vdata;
57*9880d681SAndroid Build Coastguard Worker  let Inst{52-48} = srsrc{6-2};
58*9880d681SAndroid Build Coastguard Worker  let Inst{55} = tfe;
59*9880d681SAndroid Build Coastguard Worker  let Inst{63-56} = soffset;
60*9880d681SAndroid Build Coastguard Worker}
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workerclass MTBUFe_vi <bits<4> op> : Enc64 {
63*9880d681SAndroid Build Coastguard Worker  bits<12> offset;
64*9880d681SAndroid Build Coastguard Worker  bits<1>  offen;
65*9880d681SAndroid Build Coastguard Worker  bits<1>  idxen;
66*9880d681SAndroid Build Coastguard Worker  bits<1>  glc;
67*9880d681SAndroid Build Coastguard Worker  bits<4>  dfmt;
68*9880d681SAndroid Build Coastguard Worker  bits<3>  nfmt;
69*9880d681SAndroid Build Coastguard Worker  bits<8>  vaddr;
70*9880d681SAndroid Build Coastguard Worker  bits<8>  vdata;
71*9880d681SAndroid Build Coastguard Worker  bits<7>  srsrc;
72*9880d681SAndroid Build Coastguard Worker  bits<1>  slc;
73*9880d681SAndroid Build Coastguard Worker  bits<1>  tfe;
74*9880d681SAndroid Build Coastguard Worker  bits<8>  soffset;
75*9880d681SAndroid Build Coastguard Worker
76*9880d681SAndroid Build Coastguard Worker  let Inst{11-0}  = offset;
77*9880d681SAndroid Build Coastguard Worker  let Inst{12}    = offen;
78*9880d681SAndroid Build Coastguard Worker  let Inst{13}    = idxen;
79*9880d681SAndroid Build Coastguard Worker  let Inst{14}    = glc;
80*9880d681SAndroid Build Coastguard Worker  let Inst{18-15} = op;
81*9880d681SAndroid Build Coastguard Worker  let Inst{22-19} = dfmt;
82*9880d681SAndroid Build Coastguard Worker  let Inst{25-23} = nfmt;
83*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x3a; //encoding
84*9880d681SAndroid Build Coastguard Worker  let Inst{39-32} = vaddr;
85*9880d681SAndroid Build Coastguard Worker  let Inst{47-40} = vdata;
86*9880d681SAndroid Build Coastguard Worker  let Inst{52-48} = srsrc{6-2};
87*9880d681SAndroid Build Coastguard Worker  let Inst{54}    = slc;
88*9880d681SAndroid Build Coastguard Worker  let Inst{55}    = tfe;
89*9880d681SAndroid Build Coastguard Worker  let Inst{63-56} = soffset;
90*9880d681SAndroid Build Coastguard Worker}
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Workerclass SMEMe_vi <bits<8> op, bit imm> : Enc64 {
93*9880d681SAndroid Build Coastguard Worker  bits<7>  sbase;
94*9880d681SAndroid Build Coastguard Worker  bits<7>  sdst;
95*9880d681SAndroid Build Coastguard Worker  bits<1>  glc;
96*9880d681SAndroid Build Coastguard Worker
97*9880d681SAndroid Build Coastguard Worker  let Inst{5-0}   = sbase{6-1};
98*9880d681SAndroid Build Coastguard Worker  let Inst{12-6}  = sdst;
99*9880d681SAndroid Build Coastguard Worker  let Inst{16}    = glc;
100*9880d681SAndroid Build Coastguard Worker  let Inst{17}    = imm;
101*9880d681SAndroid Build Coastguard Worker  let Inst{25-18} = op;
102*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x30; //encoding
103*9880d681SAndroid Build Coastguard Worker}
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Workerclass SMEM_IMMe_vi <bits<8> op> : SMEMe_vi<op, 1> {
106*9880d681SAndroid Build Coastguard Worker  bits<20> offset;
107*9880d681SAndroid Build Coastguard Worker  let Inst{51-32} = offset;
108*9880d681SAndroid Build Coastguard Worker}
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Workerclass SMEM_SOFFe_vi <bits<8> op> : SMEMe_vi<op, 0> {
111*9880d681SAndroid Build Coastguard Worker  bits<20> soff;
112*9880d681SAndroid Build Coastguard Worker  let Inst{51-32} = soff;
113*9880d681SAndroid Build Coastguard Worker}
114*9880d681SAndroid Build Coastguard Worker
115*9880d681SAndroid Build Coastguard Workerclass VOP3a_vi <bits<10> op> : Enc64 {
116*9880d681SAndroid Build Coastguard Worker  bits<2> src0_modifiers;
117*9880d681SAndroid Build Coastguard Worker  bits<9> src0;
118*9880d681SAndroid Build Coastguard Worker  bits<2> src1_modifiers;
119*9880d681SAndroid Build Coastguard Worker  bits<9> src1;
120*9880d681SAndroid Build Coastguard Worker  bits<2> src2_modifiers;
121*9880d681SAndroid Build Coastguard Worker  bits<9> src2;
122*9880d681SAndroid Build Coastguard Worker  bits<1> clamp;
123*9880d681SAndroid Build Coastguard Worker  bits<2> omod;
124*9880d681SAndroid Build Coastguard Worker
125*9880d681SAndroid Build Coastguard Worker  let Inst{8}     = src0_modifiers{1};
126*9880d681SAndroid Build Coastguard Worker  let Inst{9}     = src1_modifiers{1};
127*9880d681SAndroid Build Coastguard Worker  let Inst{10}    = src2_modifiers{1};
128*9880d681SAndroid Build Coastguard Worker  let Inst{15}    = clamp;
129*9880d681SAndroid Build Coastguard Worker  let Inst{25-16} = op;
130*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x34; //encoding
131*9880d681SAndroid Build Coastguard Worker  let Inst{40-32} = src0;
132*9880d681SAndroid Build Coastguard Worker  let Inst{49-41} = src1;
133*9880d681SAndroid Build Coastguard Worker  let Inst{58-50} = src2;
134*9880d681SAndroid Build Coastguard Worker  let Inst{60-59} = omod;
135*9880d681SAndroid Build Coastguard Worker  let Inst{61} = src0_modifiers{0};
136*9880d681SAndroid Build Coastguard Worker  let Inst{62} = src1_modifiers{0};
137*9880d681SAndroid Build Coastguard Worker  let Inst{63} = src2_modifiers{0};
138*9880d681SAndroid Build Coastguard Worker}
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Workerclass VOP3e_vi <bits<10> op> : VOP3a_vi <op> {
141*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Worker  let Inst{7-0} = vdst;
144*9880d681SAndroid Build Coastguard Worker}
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Worker// Encoding used for VOPC instructions encoded as VOP3
147*9880d681SAndroid Build Coastguard Worker// Differs from VOP3e by destination name (sdst) as VOPC doesn't have vector dst
148*9880d681SAndroid Build Coastguard Workerclass VOP3ce_vi <bits<10> op> : VOP3a_vi <op> {
149*9880d681SAndroid Build Coastguard Worker  bits<8> sdst;
150*9880d681SAndroid Build Coastguard Worker
151*9880d681SAndroid Build Coastguard Worker  let Inst{7-0} = sdst;
152*9880d681SAndroid Build Coastguard Worker}
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Workerclass VOP3be_vi <bits<10> op> : Enc64 {
155*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
156*9880d681SAndroid Build Coastguard Worker  bits<2> src0_modifiers;
157*9880d681SAndroid Build Coastguard Worker  bits<9> src0;
158*9880d681SAndroid Build Coastguard Worker  bits<2> src1_modifiers;
159*9880d681SAndroid Build Coastguard Worker  bits<9> src1;
160*9880d681SAndroid Build Coastguard Worker  bits<2> src2_modifiers;
161*9880d681SAndroid Build Coastguard Worker  bits<9> src2;
162*9880d681SAndroid Build Coastguard Worker  bits<7> sdst;
163*9880d681SAndroid Build Coastguard Worker  bits<2> omod;
164*9880d681SAndroid Build Coastguard Worker  bits<1> clamp;
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Worker  let Inst{7-0} = vdst;
167*9880d681SAndroid Build Coastguard Worker  let Inst{14-8} = sdst;
168*9880d681SAndroid Build Coastguard Worker  let Inst{15} = clamp;
169*9880d681SAndroid Build Coastguard Worker  let Inst{25-16} = op;
170*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x34; //encoding
171*9880d681SAndroid Build Coastguard Worker  let Inst{40-32} = src0;
172*9880d681SAndroid Build Coastguard Worker  let Inst{49-41} = src1;
173*9880d681SAndroid Build Coastguard Worker  let Inst{58-50} = src2;
174*9880d681SAndroid Build Coastguard Worker  let Inst{60-59} = omod;
175*9880d681SAndroid Build Coastguard Worker  let Inst{61} = src0_modifiers{0};
176*9880d681SAndroid Build Coastguard Worker  let Inst{62} = src1_modifiers{0};
177*9880d681SAndroid Build Coastguard Worker  let Inst{63} = src2_modifiers{0};
178*9880d681SAndroid Build Coastguard Worker}
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerclass VOP_DPP <dag outs, dag ins, string asm, list<dag> pattern, bit HasMods = 0> :
181*9880d681SAndroid Build Coastguard Worker    VOPAnyCommon <outs, ins, asm, pattern> {
182*9880d681SAndroid Build Coastguard Worker  let DPP = 1;
183*9880d681SAndroid Build Coastguard Worker  let Size = 8;
184*9880d681SAndroid Build Coastguard Worker
185*9880d681SAndroid Build Coastguard Worker  let AsmMatchConverter = !if(!eq(HasMods,1), "cvtDPP", "");
186*9880d681SAndroid Build Coastguard Worker}
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Workerclass VOP_DPPe : Enc64 {
189*9880d681SAndroid Build Coastguard Worker  bits<2> src0_modifiers;
190*9880d681SAndroid Build Coastguard Worker  bits<8> src0;
191*9880d681SAndroid Build Coastguard Worker  bits<2> src1_modifiers;
192*9880d681SAndroid Build Coastguard Worker  bits<9> dpp_ctrl;
193*9880d681SAndroid Build Coastguard Worker  bits<1> bound_ctrl;
194*9880d681SAndroid Build Coastguard Worker  bits<4> bank_mask;
195*9880d681SAndroid Build Coastguard Worker  bits<4> row_mask;
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Worker  let Inst{39-32} = src0;
198*9880d681SAndroid Build Coastguard Worker  let Inst{48-40} = dpp_ctrl;
199*9880d681SAndroid Build Coastguard Worker  let Inst{51}    = bound_ctrl;
200*9880d681SAndroid Build Coastguard Worker  let Inst{52}    = src0_modifiers{0}; // src0_neg
201*9880d681SAndroid Build Coastguard Worker  let Inst{53}    = src0_modifiers{1}; // src0_abs
202*9880d681SAndroid Build Coastguard Worker  let Inst{54}    = src1_modifiers{0}; // src1_neg
203*9880d681SAndroid Build Coastguard Worker  let Inst{55}    = src1_modifiers{1}; // src1_abs
204*9880d681SAndroid Build Coastguard Worker  let Inst{59-56} = bank_mask;
205*9880d681SAndroid Build Coastguard Worker  let Inst{63-60} = row_mask;
206*9880d681SAndroid Build Coastguard Worker}
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Workerclass VOP1_DPPe <bits<8> op> : VOP_DPPe {
209*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
210*9880d681SAndroid Build Coastguard Worker
211*9880d681SAndroid Build Coastguard Worker  let Inst{8-0} = 0xfa; // dpp
212*9880d681SAndroid Build Coastguard Worker  let Inst{16-9} = op;
213*9880d681SAndroid Build Coastguard Worker  let Inst{24-17} = vdst;
214*9880d681SAndroid Build Coastguard Worker  let Inst{31-25} = 0x3f; //encoding
215*9880d681SAndroid Build Coastguard Worker}
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Workerclass VOP2_DPPe <bits<6> op> : VOP_DPPe {
218*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
219*9880d681SAndroid Build Coastguard Worker  bits<8> src1;
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Worker  let Inst{8-0} = 0xfa; //dpp
222*9880d681SAndroid Build Coastguard Worker  let Inst{16-9} = src1;
223*9880d681SAndroid Build Coastguard Worker  let Inst{24-17} = vdst;
224*9880d681SAndroid Build Coastguard Worker  let Inst{30-25} = op;
225*9880d681SAndroid Build Coastguard Worker  let Inst{31} = 0x0; //encoding
226*9880d681SAndroid Build Coastguard Worker}
227*9880d681SAndroid Build Coastguard Worker
228*9880d681SAndroid Build Coastguard Workerclass VOP_SDWA <dag outs, dag ins, string asm, list<dag> pattern, bit HasMods = 0> :
229*9880d681SAndroid Build Coastguard Worker    VOPAnyCommon <outs, ins, asm, pattern> {
230*9880d681SAndroid Build Coastguard Worker  let SDWA = 1;
231*9880d681SAndroid Build Coastguard Worker  let Size = 8;
232*9880d681SAndroid Build Coastguard Worker}
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Workerclass VOP_SDWAe : Enc64 {
235*9880d681SAndroid Build Coastguard Worker  bits<8> src0;
236*9880d681SAndroid Build Coastguard Worker  bits<3> src0_sel;
237*9880d681SAndroid Build Coastguard Worker  bits<2> src0_fmodifiers; // {abs,neg}
238*9880d681SAndroid Build Coastguard Worker  bits<1> src0_imodifiers; // sext
239*9880d681SAndroid Build Coastguard Worker  bits<3> src1_sel;
240*9880d681SAndroid Build Coastguard Worker  bits<2> src1_fmodifiers;
241*9880d681SAndroid Build Coastguard Worker  bits<1> src1_imodifiers;
242*9880d681SAndroid Build Coastguard Worker  bits<3> dst_sel;
243*9880d681SAndroid Build Coastguard Worker  bits<2> dst_unused;
244*9880d681SAndroid Build Coastguard Worker  bits<1> clamp;
245*9880d681SAndroid Build Coastguard Worker
246*9880d681SAndroid Build Coastguard Worker  let Inst{39-32} = src0;
247*9880d681SAndroid Build Coastguard Worker  let Inst{42-40} = dst_sel;
248*9880d681SAndroid Build Coastguard Worker  let Inst{44-43} = dst_unused;
249*9880d681SAndroid Build Coastguard Worker  let Inst{45} = clamp;
250*9880d681SAndroid Build Coastguard Worker  let Inst{50-48} = src0_sel;
251*9880d681SAndroid Build Coastguard Worker  let Inst{53-52} = src0_fmodifiers;
252*9880d681SAndroid Build Coastguard Worker  let Inst{51} = src0_imodifiers;
253*9880d681SAndroid Build Coastguard Worker  let Inst{58-56} = src1_sel;
254*9880d681SAndroid Build Coastguard Worker  let Inst{61-60} = src1_fmodifiers;
255*9880d681SAndroid Build Coastguard Worker  let Inst{59} = src1_imodifiers;
256*9880d681SAndroid Build Coastguard Worker}
257*9880d681SAndroid Build Coastguard Worker
258*9880d681SAndroid Build Coastguard Workerclass VOP1_SDWAe <bits<8> op> : VOP_SDWAe {
259*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Worker  let Inst{8-0} = 0xf9; // sdwa
262*9880d681SAndroid Build Coastguard Worker  let Inst{16-9} = op;
263*9880d681SAndroid Build Coastguard Worker  let Inst{24-17} = vdst;
264*9880d681SAndroid Build Coastguard Worker  let Inst{31-25} = 0x3f; // encoding
265*9880d681SAndroid Build Coastguard Worker}
266*9880d681SAndroid Build Coastguard Worker
267*9880d681SAndroid Build Coastguard Workerclass VOP2_SDWAe <bits<6> op> : VOP_SDWAe {
268*9880d681SAndroid Build Coastguard Worker  bits<8> vdst;
269*9880d681SAndroid Build Coastguard Worker  bits<8> src1;
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Worker  let Inst{8-0} = 0xf9; // sdwa
272*9880d681SAndroid Build Coastguard Worker  let Inst{16-9} = src1;
273*9880d681SAndroid Build Coastguard Worker  let Inst{24-17} = vdst;
274*9880d681SAndroid Build Coastguard Worker  let Inst{30-25} = op;
275*9880d681SAndroid Build Coastguard Worker  let Inst{31} = 0x0; // encoding
276*9880d681SAndroid Build Coastguard Worker}
277*9880d681SAndroid Build Coastguard Worker
278*9880d681SAndroid Build Coastguard Workerclass VOPC_SDWAe <bits<8> op> : VOP_SDWAe {
279*9880d681SAndroid Build Coastguard Worker  bits<8> src1;
280*9880d681SAndroid Build Coastguard Worker
281*9880d681SAndroid Build Coastguard Worker  let Inst{8-0} = 0xf9; // sdwa
282*9880d681SAndroid Build Coastguard Worker  let Inst{16-9} = src1;
283*9880d681SAndroid Build Coastguard Worker  let Inst{24-17} = op;
284*9880d681SAndroid Build Coastguard Worker  let Inst{31-25} = 0x3e; // encoding
285*9880d681SAndroid Build Coastguard Worker
286*9880d681SAndroid Build Coastguard Worker  // VOPC disallows dst_sel and dst_unused as they have no effect on destination
287*9880d681SAndroid Build Coastguard Worker  let Inst{42-40} = 0x6;
288*9880d681SAndroid Build Coastguard Worker  let Inst{44-43} = 0x2;
289*9880d681SAndroid Build Coastguard Worker}
290*9880d681SAndroid Build Coastguard Worker
291*9880d681SAndroid Build Coastguard Workerclass EXPe_vi : EXPe {
292*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x31; //encoding
293*9880d681SAndroid Build Coastguard Worker}
294*9880d681SAndroid Build Coastguard Worker
295*9880d681SAndroid Build Coastguard Workerclass VINTRPe_vi <bits<2> op> : VINTRPe <op> {
296*9880d681SAndroid Build Coastguard Worker  let Inst{31-26} = 0x35; // encoding
297*9880d681SAndroid Build Coastguard Worker}
298