10b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
85ffd83dbSDimitry Andric// Automatically generated file, do not edit!
90b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
100b57cec5SDimitry Andric
11fe6060f1SDimitry Andricclass Enc_01d3d0 : OpcodeHexagon {
12fe6060f1SDimitry Andric  bits <5> Vu32;
13fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
14fe6060f1SDimitry Andric  bits <5> Rt32;
15fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
16fe6060f1SDimitry Andric  bits <5> Vdd32;
17fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
18fe6060f1SDimitry Andric}
19fe6060f1SDimitry Andricclass Enc_02553a : OpcodeHexagon {
20fe6060f1SDimitry Andric  bits <7> Ii;
21fe6060f1SDimitry Andric  let Inst{11-5} = Ii{6-0};
220b57cec5SDimitry Andric  bits <5> Rs32;
230b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
24fe6060f1SDimitry Andric  bits <2> Pd4;
25fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
26fe6060f1SDimitry Andric}
27fe6060f1SDimitry Andricclass Enc_03833b : OpcodeHexagon {
28fe6060f1SDimitry Andric  bits <5> Rss32;
29fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
30fe6060f1SDimitry Andric  bits <5> Rt32;
31fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
32fe6060f1SDimitry Andric  bits <2> Pd4;
33fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
34fe6060f1SDimitry Andric}
35fe6060f1SDimitry Andricclass Enc_041d7b : OpcodeHexagon {
36fe6060f1SDimitry Andric  bits <11> Ii;
37fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
38fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
39fe6060f1SDimitry Andric  bits <4> Rs16;
40fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
41fe6060f1SDimitry Andric  bits <5> n1;
42fe6060f1SDimitry Andric  let Inst{28-28} = n1{4-4};
43fe6060f1SDimitry Andric  let Inst{24-23} = n1{3-2};
44fe6060f1SDimitry Andric  let Inst{13-13} = n1{1-1};
45fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
46fe6060f1SDimitry Andric}
47bdd1243dSDimitry Andricclass Enc_046afa : OpcodeHexagon {
48bdd1243dSDimitry Andric  bits <1> Mu2;
49bdd1243dSDimitry Andric  let Inst{13-13} = Mu2{0-0};
50bdd1243dSDimitry Andric  bits <5> Vss32;
51bdd1243dSDimitry Andric  let Inst{4-0} = Vss32{4-0};
52bdd1243dSDimitry Andric  bits <5> Rx32;
53bdd1243dSDimitry Andric  let Inst{20-16} = Rx32{4-0};
54bdd1243dSDimitry Andric}
55fe6060f1SDimitry Andricclass Enc_04c959 : OpcodeHexagon {
56fe6060f1SDimitry Andric  bits <2> Ii;
57fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
58fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
59fe6060f1SDimitry Andric  bits <6> II;
60fe6060f1SDimitry Andric  let Inst{11-8} = II{5-2};
61fe6060f1SDimitry Andric  let Inst{6-5} = II{1-0};
62fe6060f1SDimitry Andric  bits <5> Rt32;
63fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
64fe6060f1SDimitry Andric  bits <5> Ryy32;
65fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
66fe6060f1SDimitry Andric}
67fe6060f1SDimitry Andricclass Enc_0527db : OpcodeHexagon {
68fe6060f1SDimitry Andric  bits <4> Rs16;
69fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
70fe6060f1SDimitry Andric  bits <4> Rx16;
71fe6060f1SDimitry Andric  let Inst{3-0} = Rx16{3-0};
72fe6060f1SDimitry Andric}
73fe6060f1SDimitry Andricclass Enc_052c7d : OpcodeHexagon {
74fe6060f1SDimitry Andric  bits <5> Ii;
75fe6060f1SDimitry Andric  let Inst{6-3} = Ii{4-1};
76fe6060f1SDimitry Andric  bits <5> Rt32;
77fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
78fe6060f1SDimitry Andric  bits <5> Rx32;
79fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
80fe6060f1SDimitry Andric}
81fe6060f1SDimitry Andricclass Enc_08d755 : OpcodeHexagon {
82fe6060f1SDimitry Andric  bits <8> Ii;
83fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
84fe6060f1SDimitry Andric  bits <5> Rs32;
85fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
86fe6060f1SDimitry Andric  bits <2> Pd4;
87fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
88fe6060f1SDimitry Andric}
89fe6060f1SDimitry Andricclass Enc_0aa344 : OpcodeHexagon {
90fe6060f1SDimitry Andric  bits <5> Gss32;
91fe6060f1SDimitry Andric  let Inst{20-16} = Gss32{4-0};
92fe6060f1SDimitry Andric  bits <5> Rdd32;
93fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
94fe6060f1SDimitry Andric}
95fe6060f1SDimitry Andricclass Enc_0b2e5b : OpcodeHexagon {
96fe6060f1SDimitry Andric  bits <3> Ii;
97fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
98fe6060f1SDimitry Andric  bits <5> Vu32;
99fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
100fe6060f1SDimitry Andric  bits <5> Vv32;
101fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
102fe6060f1SDimitry Andric  bits <5> Vd32;
103fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
104fe6060f1SDimitry Andric}
105fe6060f1SDimitry Andricclass Enc_0b51ce : OpcodeHexagon {
106fe6060f1SDimitry Andric  bits <3> Ii;
107fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
108fe6060f1SDimitry Andric  bits <2> Qv4;
109fe6060f1SDimitry Andric  let Inst{12-11} = Qv4{1-0};
110fe6060f1SDimitry Andric  bits <5> Vs32;
111fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
112fe6060f1SDimitry Andric  bits <5> Rx32;
113fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
114fe6060f1SDimitry Andric}
115fe6060f1SDimitry Andricclass Enc_0cb018 : OpcodeHexagon {
116fe6060f1SDimitry Andric  bits <5> Cs32;
117fe6060f1SDimitry Andric  let Inst{20-16} = Cs32{4-0};
1180b57cec5SDimitry Andric  bits <5> Rd32;
1190b57cec5SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1200b57cec5SDimitry Andric}
121fe6060f1SDimitry Andricclass Enc_0d8870 : OpcodeHexagon {
122fe6060f1SDimitry Andric  bits <12> Ii;
123fe6060f1SDimitry Andric  let Inst{26-25} = Ii{11-10};
124fe6060f1SDimitry Andric  let Inst{13-13} = Ii{9-9};
125fe6060f1SDimitry Andric  let Inst{7-0} = Ii{8-1};
126fe6060f1SDimitry Andric  bits <5> Rs32;
127fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
128fe6060f1SDimitry Andric  bits <3> Nt8;
129fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
130fe6060f1SDimitry Andric}
131fe6060f1SDimitry Andricclass Enc_0d8adb : OpcodeHexagon {
132fe6060f1SDimitry Andric  bits <8> Ii;
133fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
134fe6060f1SDimitry Andric  bits <5> Rss32;
135fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
136fe6060f1SDimitry Andric  bits <2> Pd4;
137fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
138fe6060f1SDimitry Andric}
139fe6060f1SDimitry Andricclass Enc_0e41fa : OpcodeHexagon {
140fe6060f1SDimitry Andric  bits <5> Vuu32;
141fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
142fe6060f1SDimitry Andric  bits <5> Rt32;
143fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
144fe6060f1SDimitry Andric  bits <5> Vd32;
145fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
146fe6060f1SDimitry Andric}
147fe6060f1SDimitry Andricclass Enc_0ed752 : OpcodeHexagon {
148fe6060f1SDimitry Andric  bits <5> Rss32;
149fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
150fe6060f1SDimitry Andric  bits <5> Cdd32;
151fe6060f1SDimitry Andric  let Inst{4-0} = Cdd32{4-0};
152fe6060f1SDimitry Andric}
153fe6060f1SDimitry Andricclass Enc_0f8bab : OpcodeHexagon {
154fe6060f1SDimitry Andric  bits <5> Vu32;
155fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
156fe6060f1SDimitry Andric  bits <5> Rt32;
157fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
158fe6060f1SDimitry Andric  bits <2> Qd4;
159fe6060f1SDimitry Andric  let Inst{1-0} = Qd4{1-0};
160fe6060f1SDimitry Andric}
161fe6060f1SDimitry Andricclass Enc_0fa531 : OpcodeHexagon {
162fe6060f1SDimitry Andric  bits <15> Ii;
163fe6060f1SDimitry Andric  let Inst{21-21} = Ii{14-14};
164fe6060f1SDimitry Andric  let Inst{13-13} = Ii{13-13};
165fe6060f1SDimitry Andric  let Inst{11-1} = Ii{12-2};
166fe6060f1SDimitry Andric  bits <5> Rs32;
167fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
168fe6060f1SDimitry Andric}
169fe6060f1SDimitry Andricclass Enc_10bc21 : OpcodeHexagon {
170fe6060f1SDimitry Andric  bits <4> Ii;
171fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
172fe6060f1SDimitry Andric  bits <5> Rt32;
173fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
174fe6060f1SDimitry Andric  bits <5> Rx32;
175fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
176fe6060f1SDimitry Andric}
177fe6060f1SDimitry Andricclass Enc_1178da : OpcodeHexagon {
178fe6060f1SDimitry Andric  bits <3> Ii;
179fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
180fe6060f1SDimitry Andric  bits <5> Vu32;
181fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
182fe6060f1SDimitry Andric  bits <5> Vv32;
183fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
184fe6060f1SDimitry Andric  bits <5> Vxx32;
185fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
186fe6060f1SDimitry Andric}
187fe6060f1SDimitry Andricclass Enc_11a146 : OpcodeHexagon {
188fe6060f1SDimitry Andric  bits <4> Ii;
189fe6060f1SDimitry Andric  let Inst{11-8} = Ii{3-0};
190fe6060f1SDimitry Andric  bits <5> Rss32;
191fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
192fe6060f1SDimitry Andric  bits <5> Rd32;
193fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
194fe6060f1SDimitry Andric}
195fe6060f1SDimitry Andricclass Enc_12b6e9 : OpcodeHexagon {
196fe6060f1SDimitry Andric  bits <4> Ii;
197fe6060f1SDimitry Andric  let Inst{11-8} = Ii{3-0};
1985ffd83dbSDimitry Andric  bits <5> Rss32;
1995ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
2005ffd83dbSDimitry Andric  bits <5> Rdd32;
2015ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2025ffd83dbSDimitry Andric}
203fe6060f1SDimitry Andricclass Enc_134437 : OpcodeHexagon {
204fe6060f1SDimitry Andric  bits <2> Qs4;
205fe6060f1SDimitry Andric  let Inst{9-8} = Qs4{1-0};
206fe6060f1SDimitry Andric  bits <2> Qt4;
207fe6060f1SDimitry Andric  let Inst{23-22} = Qt4{1-0};
208fe6060f1SDimitry Andric  bits <2> Qd4;
209fe6060f1SDimitry Andric  let Inst{1-0} = Qd4{1-0};
2100b57cec5SDimitry Andric}
2110b57cec5SDimitry Andricclass Enc_140c83 : OpcodeHexagon {
2120b57cec5SDimitry Andric  bits <10> Ii;
2130b57cec5SDimitry Andric  let Inst{21-21} = Ii{9-9};
2140b57cec5SDimitry Andric  let Inst{13-5} = Ii{8-0};
2150b57cec5SDimitry Andric  bits <5> Rs32;
2160b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2170b57cec5SDimitry Andric  bits <5> Rd32;
2180b57cec5SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2190b57cec5SDimitry Andric}
220fe6060f1SDimitry Andricclass Enc_143445 : OpcodeHexagon {
221fe6060f1SDimitry Andric  bits <13> Ii;
222fe6060f1SDimitry Andric  let Inst{26-25} = Ii{12-11};
223fe6060f1SDimitry Andric  let Inst{13-13} = Ii{10-10};
224fe6060f1SDimitry Andric  let Inst{7-0} = Ii{9-2};
225fe6060f1SDimitry Andric  bits <5> Rs32;
226fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
227fe6060f1SDimitry Andric  bits <5> Rt32;
228fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
229fe6060f1SDimitry Andric}
230fe6060f1SDimitry Andricclass Enc_143a3c : OpcodeHexagon {
231fe6060f1SDimitry Andric  bits <6> Ii;
232fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
233fe6060f1SDimitry Andric  bits <6> II;
234fe6060f1SDimitry Andric  let Inst{23-21} = II{5-3};
235fe6060f1SDimitry Andric  let Inst{7-5} = II{2-0};
236fe6060f1SDimitry Andric  bits <5> Rss32;
237fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
238fe6060f1SDimitry Andric  bits <5> Rxx32;
239fe6060f1SDimitry Andric  let Inst{4-0} = Rxx32{4-0};
240fe6060f1SDimitry Andric}
241fe6060f1SDimitry Andricclass Enc_14640c : OpcodeHexagon {
242fe6060f1SDimitry Andric  bits <11> Ii;
243fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
244fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
245fe6060f1SDimitry Andric  bits <4> Rs16;
246fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
247fe6060f1SDimitry Andric  bits <5> n1;
248fe6060f1SDimitry Andric  let Inst{28-28} = n1{4-4};
249fe6060f1SDimitry Andric  let Inst{24-22} = n1{3-1};
250fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
251fe6060f1SDimitry Andric}
252fe6060f1SDimitry Andricclass Enc_14d27a : OpcodeHexagon {
253fe6060f1SDimitry Andric  bits <5> II;
254fe6060f1SDimitry Andric  let Inst{12-8} = II{4-0};
255fe6060f1SDimitry Andric  bits <11> Ii;
256fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
257fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
258fe6060f1SDimitry Andric  bits <4> Rs16;
259fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
260fe6060f1SDimitry Andric}
261fe6060f1SDimitry Andricclass Enc_152467 : OpcodeHexagon {
262fe6060f1SDimitry Andric  bits <5> Ii;
263fe6060f1SDimitry Andric  let Inst{8-5} = Ii{4-1};
264fe6060f1SDimitry Andric  bits <5> Rd32;
265fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
266fe6060f1SDimitry Andric  bits <5> Rx32;
267fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
268fe6060f1SDimitry Andric}
269fe6060f1SDimitry Andricclass Enc_158beb : OpcodeHexagon {
270fe6060f1SDimitry Andric  bits <2> Qs4;
271fe6060f1SDimitry Andric  let Inst{6-5} = Qs4{1-0};
272fe6060f1SDimitry Andric  bits <5> Rt32;
273fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
274fe6060f1SDimitry Andric  bits <1> Mu2;
275fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
276fe6060f1SDimitry Andric  bits <5> Vv32;
277fe6060f1SDimitry Andric  let Inst{4-0} = Vv32{4-0};
278fe6060f1SDimitry Andric}
279fe6060f1SDimitry Andricclass Enc_163a3c : OpcodeHexagon {
280fe6060f1SDimitry Andric  bits <7> Ii;
281fe6060f1SDimitry Andric  let Inst{12-7} = Ii{6-1};
282fe6060f1SDimitry Andric  bits <5> Rs32;
283fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
284fe6060f1SDimitry Andric  bits <5> Rt32;
285fe6060f1SDimitry Andric  let Inst{4-0} = Rt32{4-0};
286fe6060f1SDimitry Andric}
287fe6060f1SDimitry Andricclass Enc_16c48b : OpcodeHexagon {
288fe6060f1SDimitry Andric  bits <5> Rt32;
289fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
290fe6060f1SDimitry Andric  bits <1> Mu2;
291fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
292fe6060f1SDimitry Andric  bits <5> Vv32;
293fe6060f1SDimitry Andric  let Inst{12-8} = Vv32{4-0};
294fe6060f1SDimitry Andric  bits <5> Vw32;
295fe6060f1SDimitry Andric  let Inst{4-0} = Vw32{4-0};
296fe6060f1SDimitry Andric}
297fe6060f1SDimitry Andricclass Enc_178717 : OpcodeHexagon {
298fe6060f1SDimitry Andric  bits <11> Ii;
299fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
300fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
301fe6060f1SDimitry Andric  bits <4> Rs16;
302fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
303fe6060f1SDimitry Andric  bits <6> n1;
304fe6060f1SDimitry Andric  let Inst{28-28} = n1{5-5};
305fe6060f1SDimitry Andric  let Inst{25-23} = n1{4-2};
306fe6060f1SDimitry Andric  let Inst{13-13} = n1{1-1};
307fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
308fe6060f1SDimitry Andric}
309fe6060f1SDimitry Andricclass Enc_179b35 : OpcodeHexagon {
310fe6060f1SDimitry Andric  bits <5> Rs32;
311fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
312fe6060f1SDimitry Andric  bits <5> Rtt32;
313fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
314fe6060f1SDimitry Andric  bits <5> Rx32;
315fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
316fe6060f1SDimitry Andric}
3175ffd83dbSDimitry Andricclass Enc_18c338 : OpcodeHexagon {
3185ffd83dbSDimitry Andric  bits <8> Ii;
3195ffd83dbSDimitry Andric  let Inst{12-5} = Ii{7-0};
3205ffd83dbSDimitry Andric  bits <8> II;
3215ffd83dbSDimitry Andric  let Inst{22-16} = II{7-1};
3225ffd83dbSDimitry Andric  let Inst{13-13} = II{0-0};
3230b57cec5SDimitry Andric  bits <5> Rdd32;
3240b57cec5SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
3250b57cec5SDimitry Andric}
326fe6060f1SDimitry Andricclass Enc_1a9974 : OpcodeHexagon {
327fe6060f1SDimitry Andric  bits <2> Ii;
328fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
329fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
330fe6060f1SDimitry Andric  bits <2> Pv4;
331fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
3320b57cec5SDimitry Andric  bits <5> Rs32;
3330b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
334fe6060f1SDimitry Andric  bits <5> Ru32;
335fe6060f1SDimitry Andric  let Inst{12-8} = Ru32{4-0};
3360b57cec5SDimitry Andric  bits <5> Rtt32;
337fe6060f1SDimitry Andric  let Inst{4-0} = Rtt32{4-0};
338fe6060f1SDimitry Andric}
339fe6060f1SDimitry Andricclass Enc_1aa186 : OpcodeHexagon {
3405ffd83dbSDimitry Andric  bits <5> Rss32;
3415ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
3425ffd83dbSDimitry Andric  bits <5> Rt32;
3435ffd83dbSDimitry Andric  let Inst{12-8} = Rt32{4-0};
344fe6060f1SDimitry Andric  bits <5> Rxx32;
345fe6060f1SDimitry Andric  let Inst{4-0} = Rxx32{4-0};
3460b57cec5SDimitry Andric}
347fe6060f1SDimitry Andricclass Enc_1aaec1 : OpcodeHexagon {
348fe6060f1SDimitry Andric  bits <3> Ii;
349fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
350fe6060f1SDimitry Andric  bits <3> Os8;
351fe6060f1SDimitry Andric  let Inst{2-0} = Os8{2-0};
3525ffd83dbSDimitry Andric  bits <5> Rx32;
3535ffd83dbSDimitry Andric  let Inst{20-16} = Rx32{4-0};
3545ffd83dbSDimitry Andric}
355fe6060f1SDimitry Andricclass Enc_1b64fb : OpcodeHexagon {
356fe6060f1SDimitry Andric  bits <16> Ii;
357fe6060f1SDimitry Andric  let Inst{26-25} = Ii{15-14};
358fe6060f1SDimitry Andric  let Inst{20-16} = Ii{13-9};
359fe6060f1SDimitry Andric  let Inst{13-13} = Ii{8-8};
360fe6060f1SDimitry Andric  let Inst{7-0} = Ii{7-0};
361fe6060f1SDimitry Andric  bits <5> Rt32;
362fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
363fe6060f1SDimitry Andric}
364fe6060f1SDimitry Andricclass Enc_1bd127 : OpcodeHexagon {
365fe6060f1SDimitry Andric  bits <5> Vu32;
366fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
367fe6060f1SDimitry Andric  bits <3> Rt8;
368fe6060f1SDimitry Andric  let Inst{18-16} = Rt8{2-0};
369fe6060f1SDimitry Andric  bits <5> Vdddd32;
370fe6060f1SDimitry Andric  let Inst{4-0} = Vdddd32{4-0};
371fe6060f1SDimitry Andric}
372fe6060f1SDimitry Andricclass Enc_1cf4ca : OpcodeHexagon {
373fe6060f1SDimitry Andric  bits <6> Ii;
374fe6060f1SDimitry Andric  let Inst{17-16} = Ii{5-4};
375fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
376fe6060f1SDimitry Andric  bits <2> Pv4;
377fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
378fe6060f1SDimitry Andric  bits <5> Rt32;
379fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
380fe6060f1SDimitry Andric}
381fe6060f1SDimitry Andricclass Enc_1de724 : OpcodeHexagon {
382fe6060f1SDimitry Andric  bits <11> Ii;
383fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
384fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
385fe6060f1SDimitry Andric  bits <4> Rs16;
386fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
387fe6060f1SDimitry Andric  bits <4> n1;
388fe6060f1SDimitry Andric  let Inst{28-28} = n1{3-3};
389fe6060f1SDimitry Andric  let Inst{24-22} = n1{2-0};
390fe6060f1SDimitry Andric}
391fe6060f1SDimitry Andricclass Enc_1ef990 : OpcodeHexagon {
392fe6060f1SDimitry Andric  bits <2> Pv4;
393fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
394fe6060f1SDimitry Andric  bits <1> Mu2;
395fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
396fe6060f1SDimitry Andric  bits <5> Vs32;
397fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
398fe6060f1SDimitry Andric  bits <5> Rx32;
399fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
400fe6060f1SDimitry Andric}
401fe6060f1SDimitry Andricclass Enc_1f19b5 : OpcodeHexagon {
402fe6060f1SDimitry Andric  bits <5> Ii;
403fe6060f1SDimitry Andric  let Inst{9-5} = Ii{4-0};
404fe6060f1SDimitry Andric  bits <5> Rss32;
405fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
406fe6060f1SDimitry Andric  bits <2> Pd4;
407fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
408fe6060f1SDimitry Andric}
409fe6060f1SDimitry Andricclass Enc_1f5ba6 : OpcodeHexagon {
410fe6060f1SDimitry Andric  bits <4> Rd16;
411fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
412fe6060f1SDimitry Andric}
413fe6060f1SDimitry Andricclass Enc_1f5d8f : OpcodeHexagon {
414fe6060f1SDimitry Andric  bits <1> Mu2;
415fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
416fe6060f1SDimitry Andric  bits <5> Ryy32;
417fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
418fe6060f1SDimitry Andric  bits <5> Rx32;
419fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
420fe6060f1SDimitry Andric}
421fe6060f1SDimitry Andricclass Enc_211aaa : OpcodeHexagon {
422fe6060f1SDimitry Andric  bits <11> Ii;
423fe6060f1SDimitry Andric  let Inst{26-25} = Ii{10-9};
424fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
4255ffd83dbSDimitry Andric  bits <5> Rs32;
4265ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
427fe6060f1SDimitry Andric  bits <5> Rd32;
428fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
4295ffd83dbSDimitry Andric}
430fe6060f1SDimitry Andricclass Enc_217147 : OpcodeHexagon {
431fe6060f1SDimitry Andric  bits <2> Qv4;
432fe6060f1SDimitry Andric  let Inst{23-22} = Qv4{1-0};
433fe6060f1SDimitry Andric}
434fe6060f1SDimitry Andricclass Enc_222336 : OpcodeHexagon {
435fe6060f1SDimitry Andric  bits <4> Ii;
436fe6060f1SDimitry Andric  let Inst{8-5} = Ii{3-0};
437fe6060f1SDimitry Andric  bits <5> Rd32;
438fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
439fe6060f1SDimitry Andric  bits <5> Rx32;
440fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
441fe6060f1SDimitry Andric}
442fe6060f1SDimitry Andricclass Enc_223005 : OpcodeHexagon {
443fe6060f1SDimitry Andric  bits <6> Ii;
444fe6060f1SDimitry Andric  let Inst{6-3} = Ii{5-2};
445fe6060f1SDimitry Andric  bits <3> Nt8;
446fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
447fe6060f1SDimitry Andric  bits <5> Rx32;
448fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
449fe6060f1SDimitry Andric}
450fe6060f1SDimitry Andricclass Enc_226535 : OpcodeHexagon {
451fe6060f1SDimitry Andric  bits <8> Ii;
452fe6060f1SDimitry Andric  let Inst{12-7} = Ii{7-2};
453fe6060f1SDimitry Andric  bits <5> Rs32;
454fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
455fe6060f1SDimitry Andric  bits <5> Rt32;
456fe6060f1SDimitry Andric  let Inst{4-0} = Rt32{4-0};
457fe6060f1SDimitry Andric}
458fe6060f1SDimitry Andricclass Enc_22c845 : OpcodeHexagon {
459fe6060f1SDimitry Andric  bits <14> Ii;
460fe6060f1SDimitry Andric  let Inst{10-0} = Ii{13-3};
461fe6060f1SDimitry Andric  bits <5> Rx32;
462fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
463fe6060f1SDimitry Andric}
464fe6060f1SDimitry Andricclass Enc_2301d6 : OpcodeHexagon {
465fe6060f1SDimitry Andric  bits <6> Ii;
466fe6060f1SDimitry Andric  let Inst{20-16} = Ii{5-1};
467fe6060f1SDimitry Andric  let Inst{8-8} = Ii{0-0};
468fe6060f1SDimitry Andric  bits <2> Pt4;
469fe6060f1SDimitry Andric  let Inst{10-9} = Pt4{1-0};
470fe6060f1SDimitry Andric  bits <5> Rd32;
471fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
472fe6060f1SDimitry Andric}
473fe6060f1SDimitry Andricclass Enc_245865 : OpcodeHexagon {
474fe6060f1SDimitry Andric  bits <5> Vu32;
475fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
476fe6060f1SDimitry Andric  bits <5> Vv32;
477fe6060f1SDimitry Andric  let Inst{23-19} = Vv32{4-0};
478fe6060f1SDimitry Andric  bits <3> Rt8;
479fe6060f1SDimitry Andric  let Inst{18-16} = Rt8{2-0};
480fe6060f1SDimitry Andric  bits <5> Vx32;
481fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
482fe6060f1SDimitry Andric}
483fe6060f1SDimitry Andricclass Enc_24a7dc : OpcodeHexagon {
484fe6060f1SDimitry Andric  bits <5> Vu32;
485fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
486fe6060f1SDimitry Andric  bits <5> Vv32;
487fe6060f1SDimitry Andric  let Inst{23-19} = Vv32{4-0};
488fe6060f1SDimitry Andric  bits <3> Rt8;
489fe6060f1SDimitry Andric  let Inst{18-16} = Rt8{2-0};
490fe6060f1SDimitry Andric  bits <5> Vdd32;
491fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
492fe6060f1SDimitry Andric}
493fe6060f1SDimitry Andricclass Enc_25bef0 : OpcodeHexagon {
4945ffd83dbSDimitry Andric  bits <16> Ii;
495fe6060f1SDimitry Andric  let Inst{26-25} = Ii{15-14};
4965ffd83dbSDimitry Andric  let Inst{20-16} = Ii{13-9};
4975ffd83dbSDimitry Andric  let Inst{13-5} = Ii{8-0};
4985ffd83dbSDimitry Andric  bits <5> Rd32;
4995ffd83dbSDimitry Andric  let Inst{4-0} = Rd32{4-0};
5005ffd83dbSDimitry Andric}
501fe6060f1SDimitry Andricclass Enc_263841 : OpcodeHexagon {
502fe6060f1SDimitry Andric  bits <5> Vu32;
503fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
5045ffd83dbSDimitry Andric  bits <5> Rtt32;
505fe6060f1SDimitry Andric  let Inst{20-16} = Rtt32{4-0};
506fe6060f1SDimitry Andric  bits <5> Vd32;
507fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
508fe6060f1SDimitry Andric}
509fe6060f1SDimitry Andricclass Enc_277737 : OpcodeHexagon {
510fe6060f1SDimitry Andric  bits <8> Ii;
511fe6060f1SDimitry Andric  let Inst{22-21} = Ii{7-6};
512fe6060f1SDimitry Andric  let Inst{13-13} = Ii{5-5};
513fe6060f1SDimitry Andric  let Inst{7-5} = Ii{4-2};
514fe6060f1SDimitry Andric  bits <5> Ru32;
515fe6060f1SDimitry Andric  let Inst{4-0} = Ru32{4-0};
516fe6060f1SDimitry Andric  bits <5> Rs32;
517fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
518fe6060f1SDimitry Andric  bits <5> Rd32;
519fe6060f1SDimitry Andric  let Inst{12-8} = Rd32{4-0};
520fe6060f1SDimitry Andric}
521fe6060f1SDimitry Andricclass Enc_27b757 : OpcodeHexagon {
522fe6060f1SDimitry Andric  bits <4> Ii;
523fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
524fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
525fe6060f1SDimitry Andric  bits <2> Pv4;
526fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
527fe6060f1SDimitry Andric  bits <5> Rt32;
528fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
529fe6060f1SDimitry Andric  bits <5> Vs32;
530fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
531fe6060f1SDimitry Andric}
532fe6060f1SDimitry Andricclass Enc_27fd0e : OpcodeHexagon {
533fe6060f1SDimitry Andric  bits <6> Ii;
534fe6060f1SDimitry Andric  let Inst{8-5} = Ii{5-2};
535fe6060f1SDimitry Andric  bits <1> Mu2;
536fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
537fe6060f1SDimitry Andric  bits <5> Rd32;
538fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
539fe6060f1SDimitry Andric  bits <5> Rx32;
540fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
541fe6060f1SDimitry Andric}
542fe6060f1SDimitry Andricclass Enc_284ebb : OpcodeHexagon {
543fe6060f1SDimitry Andric  bits <2> Ps4;
544fe6060f1SDimitry Andric  let Inst{17-16} = Ps4{1-0};
545fe6060f1SDimitry Andric  bits <2> Pt4;
546fe6060f1SDimitry Andric  let Inst{9-8} = Pt4{1-0};
5475ffd83dbSDimitry Andric  bits <2> Pd4;
5485ffd83dbSDimitry Andric  let Inst{1-0} = Pd4{1-0};
5495ffd83dbSDimitry Andric}
550fe6060f1SDimitry Andricclass Enc_28a2dc : OpcodeHexagon {
551fe6060f1SDimitry Andric  bits <5> Ii;
552fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
553fe6060f1SDimitry Andric  bits <5> Rs32;
554fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
555fe6060f1SDimitry Andric  bits <5> Rx32;
556fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
557fe6060f1SDimitry Andric}
558fe6060f1SDimitry Andricclass Enc_28dcbb : OpcodeHexagon {
559fe6060f1SDimitry Andric  bits <5> Rt32;
560fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
561fe6060f1SDimitry Andric  bits <1> Mu2;
562fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
563fe6060f1SDimitry Andric  bits <5> Vvv32;
564fe6060f1SDimitry Andric  let Inst{4-0} = Vvv32{4-0};
565fe6060f1SDimitry Andric}
566fe6060f1SDimitry Andricclass Enc_2a3787 : OpcodeHexagon {
567fe6060f1SDimitry Andric  bits <13> Ii;
568fe6060f1SDimitry Andric  let Inst{26-25} = Ii{12-11};
569fe6060f1SDimitry Andric  let Inst{13-5} = Ii{10-2};
570fe6060f1SDimitry Andric  bits <5> Rs32;
571fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
572fe6060f1SDimitry Andric  bits <5> Rd32;
573fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
574fe6060f1SDimitry Andric}
575fe6060f1SDimitry Andricclass Enc_2a7b91 : OpcodeHexagon {
576fe6060f1SDimitry Andric  bits <6> Ii;
577fe6060f1SDimitry Andric  let Inst{20-16} = Ii{5-1};
578fe6060f1SDimitry Andric  let Inst{8-8} = Ii{0-0};
579fe6060f1SDimitry Andric  bits <2> Pt4;
580fe6060f1SDimitry Andric  let Inst{10-9} = Pt4{1-0};
581fe6060f1SDimitry Andric  bits <5> Rdd32;
582fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
583fe6060f1SDimitry Andric}
584fe6060f1SDimitry Andricclass Enc_2ae154 : OpcodeHexagon {
585fe6060f1SDimitry Andric  bits <5> Rs32;
586fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
587fe6060f1SDimitry Andric  bits <5> Rt32;
588fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
589fe6060f1SDimitry Andric  bits <5> Rx32;
590fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
5915ffd83dbSDimitry Andric}
5925ffd83dbSDimitry Andricclass Enc_2b3f60 : OpcodeHexagon {
5935ffd83dbSDimitry Andric  bits <5> Rss32;
5945ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
5955ffd83dbSDimitry Andric  bits <5> Rtt32;
5965ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
5975ffd83dbSDimitry Andric  bits <5> Rdd32;
5985ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
5995ffd83dbSDimitry Andric  bits <2> Px4;
6005ffd83dbSDimitry Andric  let Inst{6-5} = Px4{1-0};
6015ffd83dbSDimitry Andric}
602fe6060f1SDimitry Andricclass Enc_2b518f : OpcodeHexagon {
603fe6060f1SDimitry Andric  bits <32> Ii;
604fe6060f1SDimitry Andric  let Inst{27-16} = Ii{31-20};
605fe6060f1SDimitry Andric  let Inst{13-0} = Ii{19-6};
606fe6060f1SDimitry Andric}
607fe6060f1SDimitry Andricclass Enc_2bae10 : OpcodeHexagon {
608fe6060f1SDimitry Andric  bits <4> Ii;
609fe6060f1SDimitry Andric  let Inst{10-8} = Ii{3-1};
610fe6060f1SDimitry Andric  bits <4> Rs16;
611fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
612fe6060f1SDimitry Andric  bits <4> Rd16;
613fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
614fe6060f1SDimitry Andric}
615fe6060f1SDimitry Andricclass Enc_2d7491 : OpcodeHexagon {
616fe6060f1SDimitry Andric  bits <13> Ii;
617fe6060f1SDimitry Andric  let Inst{26-25} = Ii{12-11};
618fe6060f1SDimitry Andric  let Inst{13-5} = Ii{10-2};
619fe6060f1SDimitry Andric  bits <5> Rs32;
620fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
621fe6060f1SDimitry Andric  bits <5> Rdd32;
622fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
623fe6060f1SDimitry Andric}
624fe6060f1SDimitry Andricclass Enc_2d829e : OpcodeHexagon {
625fe6060f1SDimitry Andric  bits <14> Ii;
626fe6060f1SDimitry Andric  let Inst{10-0} = Ii{13-3};
627fe6060f1SDimitry Andric  bits <5> Rs32;
628fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
629fe6060f1SDimitry Andric}
630fe6060f1SDimitry Andricclass Enc_2df31d : OpcodeHexagon {
631fe6060f1SDimitry Andric  bits <8> Ii;
632fe6060f1SDimitry Andric  let Inst{9-4} = Ii{7-2};
633fe6060f1SDimitry Andric  bits <4> Rd16;
634fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
635fe6060f1SDimitry Andric}
636fe6060f1SDimitry Andricclass Enc_2e1979 : OpcodeHexagon {
637fe6060f1SDimitry Andric  bits <2> Ii;
638fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
639fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
640fe6060f1SDimitry Andric  bits <2> Pv4;
641fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
642fe6060f1SDimitry Andric  bits <5> Rs32;
643fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
644fe6060f1SDimitry Andric  bits <5> Rt32;
645fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
646fe6060f1SDimitry Andric  bits <5> Rd32;
647fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
648fe6060f1SDimitry Andric}
649fe6060f1SDimitry Andricclass Enc_2ea740 : OpcodeHexagon {
650fe6060f1SDimitry Andric  bits <4> Ii;
651fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
652fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
653fe6060f1SDimitry Andric  bits <2> Qv4;
654fe6060f1SDimitry Andric  let Inst{12-11} = Qv4{1-0};
655fe6060f1SDimitry Andric  bits <5> Rt32;
656fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
657fe6060f1SDimitry Andric  bits <5> Vs32;
658fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
659fe6060f1SDimitry Andric}
660fe6060f1SDimitry Andricclass Enc_2ebe3b : OpcodeHexagon {
661fe6060f1SDimitry Andric  bits <1> Mu2;
662fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
663fe6060f1SDimitry Andric  bits <5> Vd32;
664fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
665fe6060f1SDimitry Andric  bits <5> Rx32;
666fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
667fe6060f1SDimitry Andric}
668fe6060f1SDimitry Andricclass Enc_2f2f04 : OpcodeHexagon {
669fe6060f1SDimitry Andric  bits <1> Ii;
670fe6060f1SDimitry Andric  let Inst{5-5} = Ii{0-0};
671fe6060f1SDimitry Andric  bits <5> Vuu32;
672fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
673fe6060f1SDimitry Andric  bits <5> Rt32;
674fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
675fe6060f1SDimitry Andric  bits <5> Vdd32;
676fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
677fe6060f1SDimitry Andric}
678fe6060f1SDimitry Andricclass Enc_2fbf3c : OpcodeHexagon {
679fe6060f1SDimitry Andric  bits <3> Ii;
680fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
681fe6060f1SDimitry Andric  bits <4> Rs16;
682fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
683fe6060f1SDimitry Andric  bits <4> Rd16;
684fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
685fe6060f1SDimitry Andric}
686fe6060f1SDimitry Andricclass Enc_310ba1 : OpcodeHexagon {
687fe6060f1SDimitry Andric  bits <5> Vu32;
688fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
689fe6060f1SDimitry Andric  bits <5> Rtt32;
690fe6060f1SDimitry Andric  let Inst{20-16} = Rtt32{4-0};
691fe6060f1SDimitry Andric  bits <5> Vx32;
692fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
693fe6060f1SDimitry Andric}
6945ffd83dbSDimitry Andricclass Enc_311abd : OpcodeHexagon {
6955ffd83dbSDimitry Andric  bits <5> Ii;
6965ffd83dbSDimitry Andric  let Inst{12-8} = Ii{4-0};
6975ffd83dbSDimitry Andric  bits <5> Rs32;
6985ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
6995ffd83dbSDimitry Andric  bits <5> Rdd32;
7005ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
7015ffd83dbSDimitry Andric}
702fe6060f1SDimitry Andricclass Enc_31aa6a : OpcodeHexagon {
7035ffd83dbSDimitry Andric  bits <5> Ii;
704fe6060f1SDimitry Andric  let Inst{6-3} = Ii{4-1};
705fe6060f1SDimitry Andric  bits <2> Pv4;
706fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
707fe6060f1SDimitry Andric  bits <3> Nt8;
708fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
709fe6060f1SDimitry Andric  bits <5> Rx32;
710fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
711fe6060f1SDimitry Andric}
712fe6060f1SDimitry Andricclass Enc_31db33 : OpcodeHexagon {
713fe6060f1SDimitry Andric  bits <2> Qt4;
714fe6060f1SDimitry Andric  let Inst{6-5} = Qt4{1-0};
715fe6060f1SDimitry Andric  bits <5> Vu32;
716fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
717fe6060f1SDimitry Andric  bits <5> Vv32;
718fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
719fe6060f1SDimitry Andric  bits <5> Vd32;
720fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
721fe6060f1SDimitry Andric}
722fe6060f1SDimitry Andricclass Enc_322e1b : OpcodeHexagon {
723fe6060f1SDimitry Andric  bits <6> Ii;
724fe6060f1SDimitry Andric  let Inst{22-21} = Ii{5-4};
725fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
726fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
727fe6060f1SDimitry Andric  bits <6> II;
728fe6060f1SDimitry Andric  let Inst{23-23} = II{5-5};
729fe6060f1SDimitry Andric  let Inst{4-0} = II{4-0};
7305ffd83dbSDimitry Andric  bits <5> Rs32;
7315ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
7325ffd83dbSDimitry Andric  bits <5> Rd32;
733fe6060f1SDimitry Andric  let Inst{12-8} = Rd32{4-0};
734fe6060f1SDimitry Andric}
735fe6060f1SDimitry Andricclass Enc_323f2d : OpcodeHexagon {
736fe6060f1SDimitry Andric  bits <6> II;
737fe6060f1SDimitry Andric  let Inst{11-8} = II{5-2};
738fe6060f1SDimitry Andric  let Inst{6-5} = II{1-0};
739fe6060f1SDimitry Andric  bits <5> Rd32;
7405ffd83dbSDimitry Andric  let Inst{4-0} = Rd32{4-0};
741fe6060f1SDimitry Andric  bits <5> Re32;
742fe6060f1SDimitry Andric  let Inst{20-16} = Re32{4-0};
7435ffd83dbSDimitry Andric}
744fe6060f1SDimitry Andricclass Enc_329361 : OpcodeHexagon {
7455ffd83dbSDimitry Andric  bits <2> Pu4;
746fe6060f1SDimitry Andric  let Inst{6-5} = Pu4{1-0};
747fe6060f1SDimitry Andric  bits <5> Rss32;
748fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
749fe6060f1SDimitry Andric  bits <5> Rtt32;
750fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
7515ffd83dbSDimitry Andric  bits <5> Rdd32;
7525ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
7535ffd83dbSDimitry Andric}
754fe6060f1SDimitry Andricclass Enc_33f8ba : OpcodeHexagon {
7555ffd83dbSDimitry Andric  bits <8> Ii;
756fe6060f1SDimitry Andric  let Inst{12-8} = Ii{7-3};
757fe6060f1SDimitry Andric  let Inst{4-2} = Ii{2-0};
758fe6060f1SDimitry Andric  bits <5> Rx32;
759fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
7605ffd83dbSDimitry Andric}
7615ffd83dbSDimitry Andricclass Enc_3680c2 : OpcodeHexagon {
7625ffd83dbSDimitry Andric  bits <7> Ii;
7635ffd83dbSDimitry Andric  let Inst{11-5} = Ii{6-0};
7645ffd83dbSDimitry Andric  bits <5> Rss32;
7655ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
7665ffd83dbSDimitry Andric  bits <2> Pd4;
7675ffd83dbSDimitry Andric  let Inst{1-0} = Pd4{1-0};
7685ffd83dbSDimitry Andric}
769fe6060f1SDimitry Andricclass Enc_3694bd : OpcodeHexagon {
770fe6060f1SDimitry Andric  bits <11> Ii;
771fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
772fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
773fe6060f1SDimitry Andric  bits <3> Ns8;
774fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
775fe6060f1SDimitry Andric  bits <5> n1;
776fe6060f1SDimitry Andric  let Inst{29-29} = n1{4-4};
777fe6060f1SDimitry Andric  let Inst{26-25} = n1{3-2};
778fe6060f1SDimitry Andric  let Inst{23-22} = n1{1-0};
779fe6060f1SDimitry Andric}
780fe6060f1SDimitry Andricclass Enc_372c9d : OpcodeHexagon {
781fe6060f1SDimitry Andric  bits <2> Pv4;
782fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
783fe6060f1SDimitry Andric  bits <1> Mu2;
784fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
785fe6060f1SDimitry Andric  bits <3> Os8;
786fe6060f1SDimitry Andric  let Inst{2-0} = Os8{2-0};
787fe6060f1SDimitry Andric  bits <5> Rx32;
788fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
789fe6060f1SDimitry Andric}
790fe6060f1SDimitry Andricclass Enc_395cc4 : OpcodeHexagon {
791fe6060f1SDimitry Andric  bits <7> Ii;
792fe6060f1SDimitry Andric  let Inst{6-3} = Ii{6-3};
793fe6060f1SDimitry Andric  bits <1> Mu2;
794fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
795fe6060f1SDimitry Andric  bits <5> Rtt32;
796fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
797fe6060f1SDimitry Andric  bits <5> Rx32;
798fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
799fe6060f1SDimitry Andric}
800fe6060f1SDimitry Andricclass Enc_397f23 : OpcodeHexagon {
801fe6060f1SDimitry Andric  bits <8> Ii;
802fe6060f1SDimitry Andric  let Inst{13-13} = Ii{7-7};
803fe6060f1SDimitry Andric  let Inst{7-3} = Ii{6-2};
804fe6060f1SDimitry Andric  bits <2> Pv4;
805fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
806fe6060f1SDimitry Andric  bits <5> Rs32;
807fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
808fe6060f1SDimitry Andric  bits <5> Rt32;
809fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
810fe6060f1SDimitry Andric}
811fe6060f1SDimitry Andricclass Enc_399e12 : OpcodeHexagon {
812fe6060f1SDimitry Andric  bits <4> Rs16;
813fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
814fe6060f1SDimitry Andric  bits <3> Rdd8;
815fe6060f1SDimitry Andric  let Inst{2-0} = Rdd8{2-0};
816fe6060f1SDimitry Andric}
817fe6060f1SDimitry Andricclass Enc_3a2484 : OpcodeHexagon {
818fe6060f1SDimitry Andric  bits <11> Ii;
819fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
820fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
821fe6060f1SDimitry Andric  bits <4> Rs16;
822fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
823fe6060f1SDimitry Andric  bits <4> n1;
824fe6060f1SDimitry Andric  let Inst{28-28} = n1{3-3};
825fe6060f1SDimitry Andric  let Inst{24-23} = n1{2-1};
826fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
827fe6060f1SDimitry Andric}
828fe6060f1SDimitry Andricclass Enc_3a3d62 : OpcodeHexagon {
829fe6060f1SDimitry Andric  bits <5> Rs32;
830fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
831fe6060f1SDimitry Andric  bits <5> Rdd32;
832fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
833fe6060f1SDimitry Andric}
834fe6060f1SDimitry Andricclass Enc_3b7631 : OpcodeHexagon {
835fe6060f1SDimitry Andric  bits <5> Vu32;
836fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
837fe6060f1SDimitry Andric  bits <5> Vdddd32;
838fe6060f1SDimitry Andric  let Inst{4-0} = Vdddd32{4-0};
839fe6060f1SDimitry Andric  bits <3> Rx8;
840fe6060f1SDimitry Andric  let Inst{18-16} = Rx8{2-0};
841fe6060f1SDimitry Andric}
842fe6060f1SDimitry Andricclass Enc_3d5b28 : OpcodeHexagon {
843fe6060f1SDimitry Andric  bits <5> Rss32;
844fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
845fe6060f1SDimitry Andric  bits <5> Rt32;
846fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
847fe6060f1SDimitry Andric  bits <5> Rd32;
848fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
849fe6060f1SDimitry Andric}
850fe6060f1SDimitry Andricclass Enc_3d6d37 : OpcodeHexagon {
851fe6060f1SDimitry Andric  bits <2> Qs4;
852fe6060f1SDimitry Andric  let Inst{6-5} = Qs4{1-0};
853fe6060f1SDimitry Andric  bits <5> Rt32;
854fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
855fe6060f1SDimitry Andric  bits <1> Mu2;
856fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
857fe6060f1SDimitry Andric  bits <5> Vvv32;
858fe6060f1SDimitry Andric  let Inst{12-8} = Vvv32{4-0};
859fe6060f1SDimitry Andric  bits <5> Vw32;
860fe6060f1SDimitry Andric  let Inst{4-0} = Vw32{4-0};
861fe6060f1SDimitry Andric}
862fe6060f1SDimitry Andricclass Enc_3d920a : OpcodeHexagon {
863fe6060f1SDimitry Andric  bits <6> Ii;
864fe6060f1SDimitry Andric  let Inst{8-5} = Ii{5-2};
865fe6060f1SDimitry Andric  bits <5> Rd32;
866fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
867fe6060f1SDimitry Andric  bits <5> Rx32;
868fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
869fe6060f1SDimitry Andric}
870fe6060f1SDimitry Andricclass Enc_3dac0b : OpcodeHexagon {
871fe6060f1SDimitry Andric  bits <2> Qt4;
872fe6060f1SDimitry Andric  let Inst{6-5} = Qt4{1-0};
873fe6060f1SDimitry Andric  bits <5> Vu32;
874fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
875fe6060f1SDimitry Andric  bits <5> Vv32;
876fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
877fe6060f1SDimitry Andric  bits <5> Vdd32;
878fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
879fe6060f1SDimitry Andric}
880fe6060f1SDimitry Andricclass Enc_3e3989 : OpcodeHexagon {
881fe6060f1SDimitry Andric  bits <11> Ii;
882fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
883fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
884fe6060f1SDimitry Andric  bits <4> Rs16;
885fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
886fe6060f1SDimitry Andric  bits <6> n1;
887fe6060f1SDimitry Andric  let Inst{28-28} = n1{5-5};
888fe6060f1SDimitry Andric  let Inst{25-22} = n1{4-1};
889fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
890fe6060f1SDimitry Andric}
891fe6060f1SDimitry Andricclass Enc_3f97c8 : OpcodeHexagon {
892fe6060f1SDimitry Andric  bits <6> Ii;
893fe6060f1SDimitry Andric  let Inst{6-3} = Ii{5-2};
894fe6060f1SDimitry Andric  bits <1> Mu2;
895fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
896fe6060f1SDimitry Andric  bits <3> Nt8;
897fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
898fe6060f1SDimitry Andric  bits <5> Rx32;
899fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
900fe6060f1SDimitry Andric}
901fe6060f1SDimitry Andricclass Enc_3fc427 : OpcodeHexagon {
902fe6060f1SDimitry Andric  bits <5> Vu32;
903fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
904fe6060f1SDimitry Andric  bits <5> Vv32;
905fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
906fe6060f1SDimitry Andric  bits <5> Vxx32;
907fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
908fe6060f1SDimitry Andric}
909bdd1243dSDimitry Andricclass Enc_403871 : OpcodeHexagon {
910bdd1243dSDimitry Andric  bits <5> Rx32;
911bdd1243dSDimitry Andric  let Inst{20-16} = Rx32{4-0};
912bdd1243dSDimitry Andric}
913fe6060f1SDimitry Andricclass Enc_405228 : OpcodeHexagon {
914fe6060f1SDimitry Andric  bits <11> Ii;
915fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
916fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
917fe6060f1SDimitry Andric  bits <4> Rs16;
918fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
919fe6060f1SDimitry Andric  bits <3> n1;
920fe6060f1SDimitry Andric  let Inst{28-28} = n1{2-2};
921fe6060f1SDimitry Andric  let Inst{24-23} = n1{1-0};
922fe6060f1SDimitry Andric}
9235ffd83dbSDimitry Andricclass Enc_412ff0 : OpcodeHexagon {
9245ffd83dbSDimitry Andric  bits <5> Rss32;
9255ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
9265ffd83dbSDimitry Andric  bits <5> Ru32;
9275ffd83dbSDimitry Andric  let Inst{4-0} = Ru32{4-0};
9285ffd83dbSDimitry Andric  bits <5> Rxx32;
9295ffd83dbSDimitry Andric  let Inst{12-8} = Rxx32{4-0};
9305ffd83dbSDimitry Andric}
931fe6060f1SDimitry Andricclass Enc_420cf3 : OpcodeHexagon {
932fe6060f1SDimitry Andric  bits <6> Ii;
933fe6060f1SDimitry Andric  let Inst{22-21} = Ii{5-4};
934fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
935fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
936fe6060f1SDimitry Andric  bits <5> Ru32;
937fe6060f1SDimitry Andric  let Inst{4-0} = Ru32{4-0};
938fe6060f1SDimitry Andric  bits <5> Rs32;
939fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
940fe6060f1SDimitry Andric  bits <5> Rd32;
941fe6060f1SDimitry Andric  let Inst{12-8} = Rd32{4-0};
942fe6060f1SDimitry Andric}
943fe6060f1SDimitry Andricclass Enc_437f33 : OpcodeHexagon {
944fe6060f1SDimitry Andric  bits <5> Rs32;
945fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
946fe6060f1SDimitry Andric  bits <5> Rt32;
947fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
948fe6060f1SDimitry Andric  bits <2> Pu4;
949fe6060f1SDimitry Andric  let Inst{6-5} = Pu4{1-0};
950fe6060f1SDimitry Andric  bits <5> Rx32;
951fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
952fe6060f1SDimitry Andric}
953fe6060f1SDimitry Andricclass Enc_44215c : OpcodeHexagon {
954fe6060f1SDimitry Andric  bits <6> Ii;
955fe6060f1SDimitry Andric  let Inst{17-16} = Ii{5-4};
956fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
957fe6060f1SDimitry Andric  bits <2> Pv4;
958fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
959fe6060f1SDimitry Andric  bits <3> Nt8;
960fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
961fe6060f1SDimitry Andric}
962fe6060f1SDimitry Andricclass Enc_44271f : OpcodeHexagon {
963fe6060f1SDimitry Andric  bits <5> Gs32;
964fe6060f1SDimitry Andric  let Inst{20-16} = Gs32{4-0};
965fe6060f1SDimitry Andric  bits <5> Rd32;
966fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
967fe6060f1SDimitry Andric}
968fe6060f1SDimitry Andricclass Enc_44661f : OpcodeHexagon {
969fe6060f1SDimitry Andric  bits <1> Mu2;
970fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
971fe6060f1SDimitry Andric  bits <5> Rx32;
972fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
973fe6060f1SDimitry Andric}
974fe6060f1SDimitry Andricclass Enc_448f7f : OpcodeHexagon {
975fe6060f1SDimitry Andric  bits <11> Ii;
976fe6060f1SDimitry Andric  let Inst{26-25} = Ii{10-9};
977fe6060f1SDimitry Andric  let Inst{13-13} = Ii{8-8};
978fe6060f1SDimitry Andric  let Inst{7-0} = Ii{7-0};
979fe6060f1SDimitry Andric  bits <5> Rs32;
980fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
981fe6060f1SDimitry Andric  bits <5> Rt32;
982fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
983fe6060f1SDimitry Andric}
984fe6060f1SDimitry Andricclass Enc_45364e : OpcodeHexagon {
985fe6060f1SDimitry Andric  bits <5> Vu32;
986fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
987fe6060f1SDimitry Andric  bits <5> Vv32;
988fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
989fe6060f1SDimitry Andric  bits <5> Vd32;
990fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
991fe6060f1SDimitry Andric}
992fe6060f1SDimitry Andricclass Enc_454a26 : OpcodeHexagon {
993fe6060f1SDimitry Andric  bits <2> Pt4;
994fe6060f1SDimitry Andric  let Inst{9-8} = Pt4{1-0};
995fe6060f1SDimitry Andric  bits <2> Ps4;
996fe6060f1SDimitry Andric  let Inst{17-16} = Ps4{1-0};
997fe6060f1SDimitry Andric  bits <2> Pd4;
998fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
999fe6060f1SDimitry Andric}
1000fe6060f1SDimitry Andricclass Enc_46c951 : OpcodeHexagon {
1001fe6060f1SDimitry Andric  bits <6> Ii;
1002fe6060f1SDimitry Andric  let Inst{12-7} = Ii{5-0};
1003fe6060f1SDimitry Andric  bits <5> II;
1004fe6060f1SDimitry Andric  let Inst{4-0} = II{4-0};
1005fe6060f1SDimitry Andric  bits <5> Rs32;
1006fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1007fe6060f1SDimitry Andric}
10085f757f3fSDimitry Andricclass Enc_46f33d : OpcodeHexagon {
10095f757f3fSDimitry Andric  bits <5> Rss32;
10105f757f3fSDimitry Andric  let Inst{20-16} = Rss32{4-0};
10115f757f3fSDimitry Andric  bits <5> Rt32;
10125f757f3fSDimitry Andric  let Inst{12-8} = Rt32{4-0};
10135f757f3fSDimitry Andric}
1014fe6060f1SDimitry Andricclass Enc_47ee5e : OpcodeHexagon {
1015fe6060f1SDimitry Andric  bits <2> Ii;
1016fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1017fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
1018fe6060f1SDimitry Andric  bits <2> Pv4;
1019fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
1020fe6060f1SDimitry Andric  bits <5> Rs32;
1021fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1022fe6060f1SDimitry Andric  bits <5> Ru32;
1023fe6060f1SDimitry Andric  let Inst{12-8} = Ru32{4-0};
1024fe6060f1SDimitry Andric  bits <3> Nt8;
1025fe6060f1SDimitry Andric  let Inst{2-0} = Nt8{2-0};
1026fe6060f1SDimitry Andric}
1027fe6060f1SDimitry Andricclass Enc_47ef61 : OpcodeHexagon {
1028fe6060f1SDimitry Andric  bits <3> Ii;
1029fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
1030fe6060f1SDimitry Andric  bits <5> Rt32;
1031fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1032fe6060f1SDimitry Andric  bits <5> Rs32;
1033fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1034fe6060f1SDimitry Andric  bits <5> Rd32;
1035fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1036fe6060f1SDimitry Andric}
1037fe6060f1SDimitry Andricclass Enc_48b75f : OpcodeHexagon {
1038fe6060f1SDimitry Andric  bits <5> Rs32;
1039fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1040fe6060f1SDimitry Andric  bits <2> Pd4;
1041fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
1042fe6060f1SDimitry Andric}
1043fe6060f1SDimitry Andricclass Enc_4aca3a : OpcodeHexagon {
1044fe6060f1SDimitry Andric  bits <11> Ii;
1045fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1046fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1047fe6060f1SDimitry Andric  bits <3> Ns8;
1048fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
1049fe6060f1SDimitry Andric  bits <3> n1;
1050fe6060f1SDimitry Andric  let Inst{29-29} = n1{2-2};
1051fe6060f1SDimitry Andric  let Inst{26-25} = n1{1-0};
1052fe6060f1SDimitry Andric}
1053fe6060f1SDimitry Andricclass Enc_4b39e4 : OpcodeHexagon {
1054fe6060f1SDimitry Andric  bits <3> Ii;
1055fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
1056fe6060f1SDimitry Andric  bits <5> Vu32;
1057fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1058fe6060f1SDimitry Andric  bits <5> Vv32;
1059fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
1060fe6060f1SDimitry Andric  bits <5> Vdd32;
1061fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
1062fe6060f1SDimitry Andric}
1063fe6060f1SDimitry Andricclass Enc_4dc228 : OpcodeHexagon {
1064fe6060f1SDimitry Andric  bits <9> Ii;
1065fe6060f1SDimitry Andric  let Inst{12-8} = Ii{8-4};
1066fe6060f1SDimitry Andric  let Inst{4-3} = Ii{3-2};
1067fe6060f1SDimitry Andric  bits <10> II;
1068fe6060f1SDimitry Andric  let Inst{20-16} = II{9-5};
1069fe6060f1SDimitry Andric  let Inst{7-5} = II{4-2};
1070fe6060f1SDimitry Andric  let Inst{1-0} = II{1-0};
1071fe6060f1SDimitry Andric}
1072fe6060f1SDimitry Andricclass Enc_4df4e9 : OpcodeHexagon {
1073fe6060f1SDimitry Andric  bits <11> Ii;
1074fe6060f1SDimitry Andric  let Inst{26-25} = Ii{10-9};
1075fe6060f1SDimitry Andric  let Inst{13-13} = Ii{8-8};
1076fe6060f1SDimitry Andric  let Inst{7-0} = Ii{7-0};
1077fe6060f1SDimitry Andric  bits <5> Rs32;
1078fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1079fe6060f1SDimitry Andric  bits <3> Nt8;
1080fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1081fe6060f1SDimitry Andric}
1082fe6060f1SDimitry Andricclass Enc_4dff07 : OpcodeHexagon {
1083fe6060f1SDimitry Andric  bits <2> Qv4;
1084fe6060f1SDimitry Andric  let Inst{12-11} = Qv4{1-0};
1085fe6060f1SDimitry Andric  bits <1> Mu2;
1086fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1087fe6060f1SDimitry Andric  bits <5> Vs32;
1088fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
1089fe6060f1SDimitry Andric  bits <5> Rx32;
1090fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1091fe6060f1SDimitry Andric}
1092fe6060f1SDimitry Andricclass Enc_4e4a80 : OpcodeHexagon {
1093fe6060f1SDimitry Andric  bits <2> Qs4;
1094fe6060f1SDimitry Andric  let Inst{6-5} = Qs4{1-0};
1095fe6060f1SDimitry Andric  bits <5> Rt32;
1096fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1097fe6060f1SDimitry Andric  bits <1> Mu2;
1098fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1099fe6060f1SDimitry Andric  bits <5> Vvv32;
1100fe6060f1SDimitry Andric  let Inst{4-0} = Vvv32{4-0};
1101fe6060f1SDimitry Andric}
1102fe6060f1SDimitry Andricclass Enc_4f4ed7 : OpcodeHexagon {
1103fe6060f1SDimitry Andric  bits <18> Ii;
1104fe6060f1SDimitry Andric  let Inst{26-25} = Ii{17-16};
1105fe6060f1SDimitry Andric  let Inst{20-16} = Ii{15-11};
1106fe6060f1SDimitry Andric  let Inst{13-5} = Ii{10-2};
1107fe6060f1SDimitry Andric  bits <5> Rd32;
1108fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1109fe6060f1SDimitry Andric}
1110fe6060f1SDimitry Andricclass Enc_4f677b : OpcodeHexagon {
1111fe6060f1SDimitry Andric  bits <2> Ii;
1112fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1113fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
1114fe6060f1SDimitry Andric  bits <6> II;
1115fe6060f1SDimitry Andric  let Inst{11-8} = II{5-2};
1116fe6060f1SDimitry Andric  let Inst{6-5} = II{1-0};
1117fe6060f1SDimitry Andric  bits <5> Rt32;
1118fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1119fe6060f1SDimitry Andric  bits <5> Rd32;
1120fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1121fe6060f1SDimitry Andric}
1122fe6060f1SDimitry Andricclass Enc_500cb0 : OpcodeHexagon {
1123fe6060f1SDimitry Andric  bits <5> Vu32;
1124fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1125fe6060f1SDimitry Andric  bits <5> Vxx32;
1126fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
1127fe6060f1SDimitry Andric}
1128fe6060f1SDimitry Andricclass Enc_509701 : OpcodeHexagon {
1129fe6060f1SDimitry Andric  bits <19> Ii;
1130fe6060f1SDimitry Andric  let Inst{26-25} = Ii{18-17};
1131fe6060f1SDimitry Andric  let Inst{20-16} = Ii{16-12};
1132fe6060f1SDimitry Andric  let Inst{13-5} = Ii{11-3};
1133fe6060f1SDimitry Andric  bits <5> Rdd32;
1134fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1135fe6060f1SDimitry Andric}
1136fe6060f1SDimitry Andricclass Enc_50b5ac : OpcodeHexagon {
1137fe6060f1SDimitry Andric  bits <6> Ii;
1138fe6060f1SDimitry Andric  let Inst{17-16} = Ii{5-4};
1139fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
1140fe6060f1SDimitry Andric  bits <2> Pv4;
1141fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
1142fe6060f1SDimitry Andric  bits <5> Rtt32;
1143fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
1144fe6060f1SDimitry Andric}
1145fe6060f1SDimitry Andricclass Enc_50e578 : OpcodeHexagon {
1146fe6060f1SDimitry Andric  bits <5> Vu32;
1147fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1148fe6060f1SDimitry Andric  bits <5> Rs32;
1149fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1150fe6060f1SDimitry Andric  bits <5> Rd32;
1151fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1152fe6060f1SDimitry Andric}
1153fe6060f1SDimitry Andricclass Enc_5138b3 : OpcodeHexagon {
1154fe6060f1SDimitry Andric  bits <5> Vu32;
1155fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1156fe6060f1SDimitry Andric  bits <5> Rt32;
1157fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1158fe6060f1SDimitry Andric  bits <5> Vx32;
1159fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
1160fe6060f1SDimitry Andric}
1161fe6060f1SDimitry Andricclass Enc_51436c : OpcodeHexagon {
1162fe6060f1SDimitry Andric  bits <16> Ii;
1163fe6060f1SDimitry Andric  let Inst{23-22} = Ii{15-14};
1164fe6060f1SDimitry Andric  let Inst{13-0} = Ii{13-0};
1165fe6060f1SDimitry Andric  bits <5> Rx32;
1166fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1167fe6060f1SDimitry Andric}
1168fe6060f1SDimitry Andricclass Enc_51635c : OpcodeHexagon {
1169fe6060f1SDimitry Andric  bits <7> Ii;
1170fe6060f1SDimitry Andric  let Inst{8-4} = Ii{6-2};
1171fe6060f1SDimitry Andric  bits <4> Rd16;
1172fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
1173fe6060f1SDimitry Andric}
1174fe6060f1SDimitry Andricclass Enc_527412 : OpcodeHexagon {
1175fe6060f1SDimitry Andric  bits <2> Ps4;
1176fe6060f1SDimitry Andric  let Inst{17-16} = Ps4{1-0};
1177fe6060f1SDimitry Andric  bits <2> Pt4;
1178fe6060f1SDimitry Andric  let Inst{9-8} = Pt4{1-0};
1179fe6060f1SDimitry Andric  bits <5> Rd32;
1180fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1181fe6060f1SDimitry Andric}
1182fe6060f1SDimitry Andricclass Enc_52a5dd : OpcodeHexagon {
1183fe6060f1SDimitry Andric  bits <4> Ii;
1184fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
1185fe6060f1SDimitry Andric  bits <2> Pv4;
1186fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
1187fe6060f1SDimitry Andric  bits <3> Nt8;
1188fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1189fe6060f1SDimitry Andric  bits <5> Rx32;
1190fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1191fe6060f1SDimitry Andric}
1192fe6060f1SDimitry Andricclass Enc_53dca9 : OpcodeHexagon {
1193fe6060f1SDimitry Andric  bits <6> Ii;
1194fe6060f1SDimitry Andric  let Inst{11-8} = Ii{5-2};
1195fe6060f1SDimitry Andric  bits <4> Rs16;
1196fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
1197fe6060f1SDimitry Andric  bits <4> Rd16;
1198fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
1199fe6060f1SDimitry Andric}
1200fe6060f1SDimitry Andricclass Enc_541f26 : OpcodeHexagon {
1201fe6060f1SDimitry Andric  bits <18> Ii;
1202fe6060f1SDimitry Andric  let Inst{26-25} = Ii{17-16};
1203fe6060f1SDimitry Andric  let Inst{20-16} = Ii{15-11};
1204fe6060f1SDimitry Andric  let Inst{13-13} = Ii{10-10};
1205fe6060f1SDimitry Andric  let Inst{7-0} = Ii{9-2};
1206fe6060f1SDimitry Andric  bits <5> Rt32;
1207fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1208fe6060f1SDimitry Andric}
1209fe6060f1SDimitry Andricclass Enc_55355c : OpcodeHexagon {
1210fe6060f1SDimitry Andric  bits <2> Ii;
1211fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1212fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
1213fe6060f1SDimitry Andric  bits <5> Rs32;
1214fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1215fe6060f1SDimitry Andric  bits <5> Ru32;
1216fe6060f1SDimitry Andric  let Inst{12-8} = Ru32{4-0};
1217fe6060f1SDimitry Andric  bits <5> Rtt32;
1218fe6060f1SDimitry Andric  let Inst{4-0} = Rtt32{4-0};
1219fe6060f1SDimitry Andric}
1220fe6060f1SDimitry Andricclass Enc_569cfe : OpcodeHexagon {
1221fe6060f1SDimitry Andric  bits <5> Rt32;
1222fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1223fe6060f1SDimitry Andric  bits <5> Vx32;
1224fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
1225fe6060f1SDimitry Andric}
1226fe6060f1SDimitry Andricclass Enc_57a33e : OpcodeHexagon {
1227fe6060f1SDimitry Andric  bits <9> Ii;
1228fe6060f1SDimitry Andric  let Inst{13-13} = Ii{8-8};
1229fe6060f1SDimitry Andric  let Inst{7-3} = Ii{7-3};
1230fe6060f1SDimitry Andric  bits <2> Pv4;
1231fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
1232fe6060f1SDimitry Andric  bits <5> Rs32;
1233fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1234fe6060f1SDimitry Andric  bits <5> Rtt32;
1235fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
1236fe6060f1SDimitry Andric}
1237fe6060f1SDimitry Andricclass Enc_585242 : OpcodeHexagon {
1238fe6060f1SDimitry Andric  bits <6> Ii;
1239fe6060f1SDimitry Andric  let Inst{13-13} = Ii{5-5};
1240fe6060f1SDimitry Andric  let Inst{7-3} = Ii{4-0};
1241fe6060f1SDimitry Andric  bits <2> Pv4;
1242fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
1243fe6060f1SDimitry Andric  bits <5> Rs32;
1244fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1245fe6060f1SDimitry Andric  bits <3> Nt8;
1246fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1247fe6060f1SDimitry Andric}
1248fe6060f1SDimitry Andricclass Enc_58a8bf : OpcodeHexagon {
1249fe6060f1SDimitry Andric  bits <3> Ii;
1250fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
1251fe6060f1SDimitry Andric  bits <2> Pv4;
1252fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
1253fe6060f1SDimitry Andric  bits <5> Vd32;
1254fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
1255fe6060f1SDimitry Andric  bits <5> Rx32;
1256fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1257fe6060f1SDimitry Andric}
12585f757f3fSDimitry Andricclass Enc_598f6c : OpcodeHexagon {
12595f757f3fSDimitry Andric  bits <5> Rtt32;
12605f757f3fSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
12615f757f3fSDimitry Andric}
1262fe6060f1SDimitry Andricclass Enc_5a18b3 : OpcodeHexagon {
1263fe6060f1SDimitry Andric  bits <11> Ii;
1264fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1265fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1266fe6060f1SDimitry Andric  bits <3> Ns8;
1267fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
1268fe6060f1SDimitry Andric  bits <5> n1;
1269fe6060f1SDimitry Andric  let Inst{29-29} = n1{4-4};
1270fe6060f1SDimitry Andric  let Inst{26-25} = n1{3-2};
1271fe6060f1SDimitry Andric  let Inst{22-22} = n1{1-1};
1272fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
1273fe6060f1SDimitry Andric}
1274fe6060f1SDimitry Andricclass Enc_5ab2be : OpcodeHexagon {
1275fe6060f1SDimitry Andric  bits <5> Rs32;
1276fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1277fe6060f1SDimitry Andric  bits <5> Rt32;
1278fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1279fe6060f1SDimitry Andric  bits <5> Rd32;
1280fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1281fe6060f1SDimitry Andric}
1282fe6060f1SDimitry Andricclass Enc_5bdd42 : OpcodeHexagon {
1283fe6060f1SDimitry Andric  bits <7> Ii;
1284fe6060f1SDimitry Andric  let Inst{8-5} = Ii{6-3};
1285fe6060f1SDimitry Andric  bits <5> Rdd32;
1286fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1287fe6060f1SDimitry Andric  bits <5> Rx32;
1288fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1289fe6060f1SDimitry Andric}
1290fe6060f1SDimitry Andricclass Enc_5c124a : OpcodeHexagon {
1291fe6060f1SDimitry Andric  bits <19> Ii;
1292fe6060f1SDimitry Andric  let Inst{26-25} = Ii{18-17};
1293fe6060f1SDimitry Andric  let Inst{20-16} = Ii{16-12};
1294fe6060f1SDimitry Andric  let Inst{13-13} = Ii{11-11};
1295fe6060f1SDimitry Andric  let Inst{7-0} = Ii{10-3};
1296fe6060f1SDimitry Andric  bits <5> Rtt32;
1297fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
1298fe6060f1SDimitry Andric}
1299fe6060f1SDimitry Andricclass Enc_5ccba9 : OpcodeHexagon {
1300fe6060f1SDimitry Andric  bits <8> Ii;
1301fe6060f1SDimitry Andric  let Inst{12-7} = Ii{7-2};
1302fe6060f1SDimitry Andric  bits <6> II;
1303fe6060f1SDimitry Andric  let Inst{13-13} = II{5-5};
1304fe6060f1SDimitry Andric  let Inst{4-0} = II{4-0};
1305fe6060f1SDimitry Andric  bits <2> Pv4;
1306fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
1307fe6060f1SDimitry Andric  bits <5> Rs32;
1308fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1309fe6060f1SDimitry Andric}
1310fe6060f1SDimitry Andricclass Enc_5cd7e9 : OpcodeHexagon {
1311fe6060f1SDimitry Andric  bits <12> Ii;
1312fe6060f1SDimitry Andric  let Inst{26-25} = Ii{11-10};
1313fe6060f1SDimitry Andric  let Inst{13-5} = Ii{9-1};
1314fe6060f1SDimitry Andric  bits <5> Rs32;
1315fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1316fe6060f1SDimitry Andric  bits <5> Ryy32;
1317fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
1318fe6060f1SDimitry Andric}
1319fe6060f1SDimitry Andricclass Enc_5d6c34 : OpcodeHexagon {
1320fe6060f1SDimitry Andric  bits <6> Ii;
1321fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
1322fe6060f1SDimitry Andric  bits <5> Rs32;
1323fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1324fe6060f1SDimitry Andric  bits <2> Pd4;
1325fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
1326fe6060f1SDimitry Andric}
1327fe6060f1SDimitry Andricclass Enc_5de85f : OpcodeHexagon {
1328fe6060f1SDimitry Andric  bits <11> Ii;
1329fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1330fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1331fe6060f1SDimitry Andric  bits <5> Rt32;
1332fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1333fe6060f1SDimitry Andric  bits <3> Ns8;
1334fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
1335fe6060f1SDimitry Andric}
1336fe6060f1SDimitry Andricclass Enc_5e2823 : OpcodeHexagon {
1337fe6060f1SDimitry Andric  bits <5> Rs32;
1338fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1339fe6060f1SDimitry Andric  bits <5> Rd32;
1340fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1341fe6060f1SDimitry Andric}
1342fe6060f1SDimitry Andricclass Enc_5e8512 : OpcodeHexagon {
1343fe6060f1SDimitry Andric  bits <5> Vu32;
1344fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1345fe6060f1SDimitry Andric  bits <5> Rt32;
1346fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1347fe6060f1SDimitry Andric  bits <5> Vxx32;
1348fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
1349fe6060f1SDimitry Andric}
1350fe6060f1SDimitry Andricclass Enc_5e87ce : OpcodeHexagon {
1351fe6060f1SDimitry Andric  bits <16> Ii;
1352fe6060f1SDimitry Andric  let Inst{23-22} = Ii{15-14};
1353fe6060f1SDimitry Andric  let Inst{20-16} = Ii{13-9};
1354fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
1355fe6060f1SDimitry Andric  bits <5> Rd32;
1356fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1357fe6060f1SDimitry Andric}
1358fe6060f1SDimitry Andricclass Enc_5eac98 : OpcodeHexagon {
1359fe6060f1SDimitry Andric  bits <6> Ii;
1360fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
1361fe6060f1SDimitry Andric  bits <5> Rss32;
1362fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
1363fe6060f1SDimitry Andric  bits <5> Rdd32;
1364fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1365fe6060f1SDimitry Andric}
1366bdd1243dSDimitry Andricclass Enc_5eb169 : OpcodeHexagon {
1367bdd1243dSDimitry Andric  bits <3> Ii;
1368bdd1243dSDimitry Andric  let Inst{10-8} = Ii{2-0};
1369bdd1243dSDimitry Andric  bits <5> Vdd32;
1370bdd1243dSDimitry Andric  let Inst{4-0} = Vdd32{4-0};
1371bdd1243dSDimitry Andric  bits <5> Rx32;
1372bdd1243dSDimitry Andric  let Inst{20-16} = Rx32{4-0};
1373bdd1243dSDimitry Andric}
1374fe6060f1SDimitry Andricclass Enc_607661 : OpcodeHexagon {
1375fe6060f1SDimitry Andric  bits <6> Ii;
1376fe6060f1SDimitry Andric  let Inst{12-7} = Ii{5-0};
1377fe6060f1SDimitry Andric  bits <5> Rd32;
1378fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1379fe6060f1SDimitry Andric}
1380fe6060f1SDimitry Andricclass Enc_6185fe : OpcodeHexagon {
1381fe6060f1SDimitry Andric  bits <2> Ii;
1382fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1383fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
1384fe6060f1SDimitry Andric  bits <6> II;
1385fe6060f1SDimitry Andric  let Inst{11-8} = II{5-2};
1386fe6060f1SDimitry Andric  let Inst{6-5} = II{1-0};
1387fe6060f1SDimitry Andric  bits <5> Rt32;
1388fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1389fe6060f1SDimitry Andric  bits <5> Rdd32;
1390fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1391fe6060f1SDimitry Andric}
1392fe6060f1SDimitry Andricclass Enc_61f0b0 : OpcodeHexagon {
1393fe6060f1SDimitry Andric  bits <5> Rs32;
1394fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1395fe6060f1SDimitry Andric  bits <5> Rt32;
1396fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1397fe6060f1SDimitry Andric  bits <5> Rxx32;
1398fe6060f1SDimitry Andric  let Inst{4-0} = Rxx32{4-0};
1399fe6060f1SDimitry Andric}
1400fe6060f1SDimitry Andricclass Enc_621fba : OpcodeHexagon {
1401fe6060f1SDimitry Andric  bits <5> Rs32;
1402fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1403fe6060f1SDimitry Andric  bits <5> Gd32;
1404fe6060f1SDimitry Andric  let Inst{4-0} = Gd32{4-0};
1405fe6060f1SDimitry Andric}
1406fe6060f1SDimitry Andricclass Enc_625deb : OpcodeHexagon {
1407fe6060f1SDimitry Andric  bits <4> Ii;
1408fe6060f1SDimitry Andric  let Inst{10-8} = Ii{3-1};
1409fe6060f1SDimitry Andric  bits <4> Rs16;
1410fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
1411fe6060f1SDimitry Andric  bits <4> Rt16;
1412fe6060f1SDimitry Andric  let Inst{3-0} = Rt16{3-0};
1413fe6060f1SDimitry Andric}
1414fe6060f1SDimitry Andricclass Enc_6339d5 : OpcodeHexagon {
1415fe6060f1SDimitry Andric  bits <2> Ii;
1416fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1417fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
1418fe6060f1SDimitry Andric  bits <2> Pv4;
1419fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
1420fe6060f1SDimitry Andric  bits <5> Rs32;
1421fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1422fe6060f1SDimitry Andric  bits <5> Ru32;
1423fe6060f1SDimitry Andric  let Inst{12-8} = Ru32{4-0};
1424fe6060f1SDimitry Andric  bits <5> Rt32;
1425fe6060f1SDimitry Andric  let Inst{4-0} = Rt32{4-0};
1426fe6060f1SDimitry Andric}
1427bdd1243dSDimitry Andricclass Enc_634460 : OpcodeHexagon {
1428bdd1243dSDimitry Andric  bits <4> Ii;
1429bdd1243dSDimitry Andric  let Inst{13-13} = Ii{3-3};
1430bdd1243dSDimitry Andric  let Inst{10-8} = Ii{2-0};
1431bdd1243dSDimitry Andric  bits <5> Rt32;
1432bdd1243dSDimitry Andric  let Inst{20-16} = Rt32{4-0};
1433bdd1243dSDimitry Andric  bits <5> Vdd32;
1434bdd1243dSDimitry Andric  let Inst{4-0} = Vdd32{4-0};
1435bdd1243dSDimitry Andric}
1436fe6060f1SDimitry Andricclass Enc_63eaeb : OpcodeHexagon {
1437fe6060f1SDimitry Andric  bits <2> Ii;
1438fe6060f1SDimitry Andric  let Inst{1-0} = Ii{1-0};
1439fe6060f1SDimitry Andric  bits <4> Rs16;
1440fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
1441fe6060f1SDimitry Andric}
1442fe6060f1SDimitry Andricclass Enc_6413b6 : OpcodeHexagon {
1443fe6060f1SDimitry Andric  bits <11> Ii;
1444fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1445fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1446fe6060f1SDimitry Andric  bits <3> Ns8;
1447fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
1448fe6060f1SDimitry Andric  bits <5> n1;
1449fe6060f1SDimitry Andric  let Inst{29-29} = n1{4-4};
1450fe6060f1SDimitry Andric  let Inst{26-25} = n1{3-2};
1451fe6060f1SDimitry Andric  let Inst{23-23} = n1{1-1};
1452fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
1453fe6060f1SDimitry Andric}
1454fe6060f1SDimitry Andricclass Enc_645d54 : OpcodeHexagon {
1455fe6060f1SDimitry Andric  bits <2> Ii;
1456fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1457fe6060f1SDimitry Andric  let Inst{5-5} = Ii{0-0};
1458fe6060f1SDimitry Andric  bits <5> Rss32;
1459fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
1460fe6060f1SDimitry Andric  bits <5> Rt32;
1461fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1462fe6060f1SDimitry Andric  bits <5> Rdd32;
1463fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1464fe6060f1SDimitry Andric}
1465fe6060f1SDimitry Andricclass Enc_65d691 : OpcodeHexagon {
1466fe6060f1SDimitry Andric  bits <2> Ps4;
1467fe6060f1SDimitry Andric  let Inst{17-16} = Ps4{1-0};
1468fe6060f1SDimitry Andric  bits <2> Pd4;
1469fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
1470fe6060f1SDimitry Andric}
1471fe6060f1SDimitry Andricclass Enc_65f095 : OpcodeHexagon {
1472fe6060f1SDimitry Andric  bits <6> Ii;
1473fe6060f1SDimitry Andric  let Inst{6-3} = Ii{5-2};
1474fe6060f1SDimitry Andric  bits <2> Pv4;
1475fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
1476fe6060f1SDimitry Andric  bits <3> Nt8;
1477fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1478fe6060f1SDimitry Andric  bits <5> Rx32;
1479fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1480fe6060f1SDimitry Andric}
1481fe6060f1SDimitry Andricclass Enc_667b39 : OpcodeHexagon {
1482fe6060f1SDimitry Andric  bits <5> Css32;
1483fe6060f1SDimitry Andric  let Inst{20-16} = Css32{4-0};
1484fe6060f1SDimitry Andric  bits <5> Rdd32;
1485fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1486fe6060f1SDimitry Andric}
1487fe6060f1SDimitry Andricclass Enc_668704 : OpcodeHexagon {
1488fe6060f1SDimitry Andric  bits <11> Ii;
1489fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1490fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1491fe6060f1SDimitry Andric  bits <4> Rs16;
1492fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
1493fe6060f1SDimitry Andric  bits <5> n1;
1494fe6060f1SDimitry Andric  let Inst{28-28} = n1{4-4};
1495fe6060f1SDimitry Andric  let Inst{25-22} = n1{3-0};
1496fe6060f1SDimitry Andric}
1497fe6060f1SDimitry Andricclass Enc_66bce1 : OpcodeHexagon {
1498fe6060f1SDimitry Andric  bits <11> Ii;
1499fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1500fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1501fe6060f1SDimitry Andric  bits <4> Rs16;
1502fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
1503fe6060f1SDimitry Andric  bits <4> Rd16;
1504fe6060f1SDimitry Andric  let Inst{11-8} = Rd16{3-0};
1505fe6060f1SDimitry Andric}
1506fe6060f1SDimitry Andricclass Enc_690862 : OpcodeHexagon {
1507fe6060f1SDimitry Andric  bits <13> Ii;
1508fe6060f1SDimitry Andric  let Inst{26-25} = Ii{12-11};
1509fe6060f1SDimitry Andric  let Inst{13-13} = Ii{10-10};
1510fe6060f1SDimitry Andric  let Inst{7-0} = Ii{9-2};
1511fe6060f1SDimitry Andric  bits <5> Rs32;
1512fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1513fe6060f1SDimitry Andric  bits <3> Nt8;
1514fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1515fe6060f1SDimitry Andric}
1516fe6060f1SDimitry Andricclass Enc_691712 : OpcodeHexagon {
1517fe6060f1SDimitry Andric  bits <2> Pv4;
1518fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
1519fe6060f1SDimitry Andric  bits <1> Mu2;
1520fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1521fe6060f1SDimitry Andric  bits <5> Rx32;
1522fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1523fe6060f1SDimitry Andric}
1524fe6060f1SDimitry Andricclass Enc_69d63b : OpcodeHexagon {
1525fe6060f1SDimitry Andric  bits <11> Ii;
1526fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1527fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1528fe6060f1SDimitry Andric  bits <3> Ns8;
1529fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
1530fe6060f1SDimitry Andric}
1531fe6060f1SDimitry Andricclass Enc_6a5972 : OpcodeHexagon {
1532fe6060f1SDimitry Andric  bits <11> Ii;
1533fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1534fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1535fe6060f1SDimitry Andric  bits <4> Rs16;
1536fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
1537fe6060f1SDimitry Andric  bits <4> Rt16;
1538fe6060f1SDimitry Andric  let Inst{11-8} = Rt16{3-0};
1539fe6060f1SDimitry Andric}
1540fe6060f1SDimitry Andricclass Enc_6b197f : OpcodeHexagon {
1541fe6060f1SDimitry Andric  bits <4> Ii;
1542fe6060f1SDimitry Andric  let Inst{8-5} = Ii{3-0};
1543fe6060f1SDimitry Andric  bits <5> Ryy32;
1544fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
1545fe6060f1SDimitry Andric  bits <5> Rx32;
1546fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1547fe6060f1SDimitry Andric}
1548fe6060f1SDimitry Andricclass Enc_6baed4 : OpcodeHexagon {
1549fe6060f1SDimitry Andric  bits <3> Ii;
1550fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
1551fe6060f1SDimitry Andric  bits <2> Pv4;
1552fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
1553fe6060f1SDimitry Andric  bits <5> Rx32;
1554fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1555fe6060f1SDimitry Andric}
1556fe6060f1SDimitry Andricclass Enc_6c9440 : OpcodeHexagon {
1557fe6060f1SDimitry Andric  bits <10> Ii;
1558fe6060f1SDimitry Andric  let Inst{21-21} = Ii{9-9};
1559fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
1560fe6060f1SDimitry Andric  bits <5> Rd32;
1561fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1562fe6060f1SDimitry Andric}
1563fe6060f1SDimitry Andricclass Enc_6c9ee0 : OpcodeHexagon {
1564fe6060f1SDimitry Andric  bits <3> Ii;
1565fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
1566fe6060f1SDimitry Andric  bits <5> Rx32;
1567fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1568fe6060f1SDimitry Andric}
1569fe6060f1SDimitry Andricclass Enc_6f70ca : OpcodeHexagon {
1570fe6060f1SDimitry Andric  bits <8> Ii;
1571fe6060f1SDimitry Andric  let Inst{8-4} = Ii{7-3};
1572fe6060f1SDimitry Andric}
1573fe6060f1SDimitry Andricclass Enc_6f83e7 : OpcodeHexagon {
1574fe6060f1SDimitry Andric  bits <2> Qv4;
1575fe6060f1SDimitry Andric  let Inst{23-22} = Qv4{1-0};
1576fe6060f1SDimitry Andric  bits <5> Vd32;
1577fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
1578fe6060f1SDimitry Andric}
1579fe6060f1SDimitry Andricclass Enc_70b24b : OpcodeHexagon {
1580fe6060f1SDimitry Andric  bits <6> Ii;
1581fe6060f1SDimitry Andric  let Inst{8-5} = Ii{5-2};
1582fe6060f1SDimitry Andric  bits <1> Mu2;
1583fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1584fe6060f1SDimitry Andric  bits <5> Rdd32;
1585fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1586fe6060f1SDimitry Andric  bits <5> Rx32;
1587fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1588fe6060f1SDimitry Andric}
1589fe6060f1SDimitry Andricclass Enc_70fb07 : OpcodeHexagon {
1590fe6060f1SDimitry Andric  bits <6> Ii;
1591fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
1592fe6060f1SDimitry Andric  bits <5> Rss32;
1593fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
1594fe6060f1SDimitry Andric  bits <5> Rxx32;
1595fe6060f1SDimitry Andric  let Inst{4-0} = Rxx32{4-0};
1596fe6060f1SDimitry Andric}
1597fe6060f1SDimitry Andricclass Enc_71bb9b : OpcodeHexagon {
1598fe6060f1SDimitry Andric  bits <5> Vu32;
1599fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1600fe6060f1SDimitry Andric  bits <5> Vv32;
1601fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
1602fe6060f1SDimitry Andric  bits <5> Vdd32;
1603fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
1604fe6060f1SDimitry Andric}
1605fe6060f1SDimitry Andricclass Enc_71f1b4 : OpcodeHexagon {
1606fe6060f1SDimitry Andric  bits <6> Ii;
1607fe6060f1SDimitry Andric  let Inst{8-5} = Ii{5-2};
1608fe6060f1SDimitry Andric  bits <5> Rdd32;
1609fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1610fe6060f1SDimitry Andric  bits <5> Rx32;
1611fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1612fe6060f1SDimitry Andric}
1613fe6060f1SDimitry Andricclass Enc_7222b7 : OpcodeHexagon {
1614fe6060f1SDimitry Andric  bits <5> Rt32;
1615fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1616fe6060f1SDimitry Andric  bits <2> Qd4;
1617fe6060f1SDimitry Andric  let Inst{1-0} = Qd4{1-0};
1618fe6060f1SDimitry Andric}
1619fe6060f1SDimitry Andricclass Enc_724154 : OpcodeHexagon {
1620fe6060f1SDimitry Andric  bits <6> II;
1621fe6060f1SDimitry Andric  let Inst{5-0} = II{5-0};
1622fe6060f1SDimitry Andric  bits <3> Nt8;
1623fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1624fe6060f1SDimitry Andric  bits <5> Re32;
1625fe6060f1SDimitry Andric  let Inst{20-16} = Re32{4-0};
1626fe6060f1SDimitry Andric}
1627fe6060f1SDimitry Andricclass Enc_729ff7 : OpcodeHexagon {
1628fe6060f1SDimitry Andric  bits <3> Ii;
1629fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
1630fe6060f1SDimitry Andric  bits <5> Rtt32;
1631fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
1632fe6060f1SDimitry Andric  bits <5> Rss32;
1633fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
1634fe6060f1SDimitry Andric  bits <5> Rdd32;
1635fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1636fe6060f1SDimitry Andric}
1637fe6060f1SDimitry Andricclass Enc_733b27 : OpcodeHexagon {
1638fe6060f1SDimitry Andric  bits <5> Ii;
1639fe6060f1SDimitry Andric  let Inst{8-5} = Ii{4-1};
1640fe6060f1SDimitry Andric  bits <2> Pt4;
1641fe6060f1SDimitry Andric  let Inst{10-9} = Pt4{1-0};
1642fe6060f1SDimitry Andric  bits <5> Rd32;
1643fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1644fe6060f1SDimitry Andric  bits <5> Rx32;
1645fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1646fe6060f1SDimitry Andric}
1647fe6060f1SDimitry Andricclass Enc_736575 : OpcodeHexagon {
1648fe6060f1SDimitry Andric  bits <11> Ii;
1649fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1650fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1651fe6060f1SDimitry Andric  bits <4> Rs16;
1652fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
1653fe6060f1SDimitry Andric  bits <4> n1;
1654fe6060f1SDimitry Andric  let Inst{28-28} = n1{3-3};
1655fe6060f1SDimitry Andric  let Inst{25-23} = n1{2-0};
1656fe6060f1SDimitry Andric}
1657fe6060f1SDimitry Andricclass Enc_74aef2 : OpcodeHexagon {
1658fe6060f1SDimitry Andric  bits <4> Ii;
1659fe6060f1SDimitry Andric  let Inst{8-5} = Ii{3-0};
1660fe6060f1SDimitry Andric  bits <1> Mu2;
1661fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1662fe6060f1SDimitry Andric  bits <5> Ryy32;
1663fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
1664fe6060f1SDimitry Andric  bits <5> Rx32;
1665fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1666fe6060f1SDimitry Andric}
1667fe6060f1SDimitry Andricclass Enc_74d4e5 : OpcodeHexagon {
1668fe6060f1SDimitry Andric  bits <1> Mu2;
1669fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1670fe6060f1SDimitry Andric  bits <5> Rd32;
1671fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1672fe6060f1SDimitry Andric  bits <5> Rx32;
1673fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1674fe6060f1SDimitry Andric}
1675fe6060f1SDimitry Andricclass Enc_770858 : OpcodeHexagon {
1676fe6060f1SDimitry Andric  bits <2> Ps4;
1677fe6060f1SDimitry Andric  let Inst{6-5} = Ps4{1-0};
1678fe6060f1SDimitry Andric  bits <5> Vu32;
1679fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1680fe6060f1SDimitry Andric  bits <5> Vd32;
1681fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
1682fe6060f1SDimitry Andric}
1683fe6060f1SDimitry Andricclass Enc_784502 : OpcodeHexagon {
1684fe6060f1SDimitry Andric  bits <3> Ii;
1685fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
1686fe6060f1SDimitry Andric  bits <2> Pv4;
1687fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
1688fe6060f1SDimitry Andric  bits <3> Os8;
1689fe6060f1SDimitry Andric  let Inst{2-0} = Os8{2-0};
1690fe6060f1SDimitry Andric  bits <5> Rx32;
1691fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1692fe6060f1SDimitry Andric}
1693fe6060f1SDimitry Andricclass Enc_78cbf0 : OpcodeHexagon {
1694fe6060f1SDimitry Andric  bits <18> Ii;
1695fe6060f1SDimitry Andric  let Inst{26-25} = Ii{17-16};
1696fe6060f1SDimitry Andric  let Inst{20-16} = Ii{15-11};
1697fe6060f1SDimitry Andric  let Inst{13-13} = Ii{10-10};
1698fe6060f1SDimitry Andric  let Inst{7-0} = Ii{9-2};
1699fe6060f1SDimitry Andric  bits <3> Nt8;
1700fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1701fe6060f1SDimitry Andric}
1702fe6060f1SDimitry Andricclass Enc_78e566 : OpcodeHexagon {
1703fe6060f1SDimitry Andric  bits <2> Pt4;
1704fe6060f1SDimitry Andric  let Inst{9-8} = Pt4{1-0};
1705fe6060f1SDimitry Andric  bits <5> Rdd32;
1706fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1707fe6060f1SDimitry Andric}
1708fe6060f1SDimitry Andricclass Enc_79b8c8 : OpcodeHexagon {
1709fe6060f1SDimitry Andric  bits <6> Ii;
1710fe6060f1SDimitry Andric  let Inst{6-3} = Ii{5-2};
1711fe6060f1SDimitry Andric  bits <1> Mu2;
1712fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1713fe6060f1SDimitry Andric  bits <5> Rt32;
1714fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1715fe6060f1SDimitry Andric  bits <5> Rx32;
1716fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1717fe6060f1SDimitry Andric}
1718fe6060f1SDimitry Andricclass Enc_7a0ea6 : OpcodeHexagon {
1719fe6060f1SDimitry Andric  bits <4> Rd16;
1720fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
1721fe6060f1SDimitry Andric  bits <1> n1;
1722fe6060f1SDimitry Andric  let Inst{9-9} = n1{0-0};
1723fe6060f1SDimitry Andric}
1724fe6060f1SDimitry Andricclass Enc_7b523d : OpcodeHexagon {
1725fe6060f1SDimitry Andric  bits <5> Vu32;
1726fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
1727fe6060f1SDimitry Andric  bits <5> Vv32;
1728fe6060f1SDimitry Andric  let Inst{23-19} = Vv32{4-0};
1729fe6060f1SDimitry Andric  bits <3> Rt8;
1730fe6060f1SDimitry Andric  let Inst{18-16} = Rt8{2-0};
1731fe6060f1SDimitry Andric  bits <5> Vxx32;
1732fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
1733fe6060f1SDimitry Andric}
1734fe6060f1SDimitry Andricclass Enc_7b7ba8 : OpcodeHexagon {
1735fe6060f1SDimitry Andric  bits <2> Qu4;
1736fe6060f1SDimitry Andric  let Inst{9-8} = Qu4{1-0};
1737fe6060f1SDimitry Andric  bits <5> Rt32;
1738fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1739fe6060f1SDimitry Andric  bits <5> Vd32;
1740fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
1741fe6060f1SDimitry Andric}
1742349cc55cSDimitry Andricclass Enc_7d1542 : OpcodeHexagon {
1743349cc55cSDimitry Andric  bits <7> Ss128;
1744349cc55cSDimitry Andric  let Inst{22-16} = Ss128{6-0};
1745349cc55cSDimitry Andric  bits <5> Rd32;
1746349cc55cSDimitry Andric  let Inst{4-0} = Rd32{4-0};
1747349cc55cSDimitry Andric}
1748fe6060f1SDimitry Andricclass Enc_7e5a82 : OpcodeHexagon {
1749fe6060f1SDimitry Andric  bits <5> Ii;
1750fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
1751fe6060f1SDimitry Andric  bits <5> Rss32;
1752fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
1753fe6060f1SDimitry Andric  bits <5> Rdd32;
1754fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1755fe6060f1SDimitry Andric}
1756fe6060f1SDimitry Andricclass Enc_7eaeb6 : OpcodeHexagon {
1757fe6060f1SDimitry Andric  bits <6> Ii;
1758fe6060f1SDimitry Andric  let Inst{6-3} = Ii{5-2};
1759fe6060f1SDimitry Andric  bits <2> Pv4;
1760fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
1761fe6060f1SDimitry Andric  bits <5> Rt32;
1762fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1763fe6060f1SDimitry Andric  bits <5> Rx32;
1764fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1765fe6060f1SDimitry Andric}
1766fe6060f1SDimitry Andricclass Enc_7eb485 : OpcodeHexagon {
1767fe6060f1SDimitry Andric  bits <2> Ii;
1768fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1769fe6060f1SDimitry Andric  let Inst{6-6} = Ii{0-0};
1770fe6060f1SDimitry Andric  bits <6> II;
1771fe6060f1SDimitry Andric  let Inst{5-0} = II{5-0};
1772fe6060f1SDimitry Andric  bits <5> Ru32;
1773fe6060f1SDimitry Andric  let Inst{20-16} = Ru32{4-0};
1774fe6060f1SDimitry Andric  bits <3> Nt8;
1775fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
1776fe6060f1SDimitry Andric}
1777fe6060f1SDimitry Andricclass Enc_7eee72 : OpcodeHexagon {
1778fe6060f1SDimitry Andric  bits <1> Mu2;
1779fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1780fe6060f1SDimitry Andric  bits <5> Rdd32;
1781fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1782fe6060f1SDimitry Andric  bits <5> Rx32;
1783fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1784fe6060f1SDimitry Andric}
1785fe6060f1SDimitry Andricclass Enc_7f1a05 : OpcodeHexagon {
1786fe6060f1SDimitry Andric  bits <5> Ru32;
1787fe6060f1SDimitry Andric  let Inst{4-0} = Ru32{4-0};
1788fe6060f1SDimitry Andric  bits <5> Rs32;
1789fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1790fe6060f1SDimitry Andric  bits <5> Ry32;
1791fe6060f1SDimitry Andric  let Inst{12-8} = Ry32{4-0};
1792fe6060f1SDimitry Andric}
1793fe6060f1SDimitry Andricclass Enc_7fa7f6 : OpcodeHexagon {
1794fe6060f1SDimitry Andric  bits <6> II;
1795fe6060f1SDimitry Andric  let Inst{11-8} = II{5-2};
1796fe6060f1SDimitry Andric  let Inst{6-5} = II{1-0};
1797fe6060f1SDimitry Andric  bits <5> Rdd32;
1798fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1799fe6060f1SDimitry Andric  bits <5> Re32;
1800fe6060f1SDimitry Andric  let Inst{20-16} = Re32{4-0};
1801fe6060f1SDimitry Andric}
1802fe6060f1SDimitry Andricclass Enc_800e04 : OpcodeHexagon {
1803fe6060f1SDimitry Andric  bits <11> Ii;
1804fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
1805fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
1806fe6060f1SDimitry Andric  bits <4> Rs16;
1807fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
1808fe6060f1SDimitry Andric  bits <6> n1;
1809fe6060f1SDimitry Andric  let Inst{28-28} = n1{5-5};
1810fe6060f1SDimitry Andric  let Inst{25-22} = n1{4-1};
1811fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
1812fe6060f1SDimitry Andric}
1813bdd1243dSDimitry Andricclass Enc_80296d : OpcodeHexagon {
1814bdd1243dSDimitry Andric  bits <5> Rs32;
1815bdd1243dSDimitry Andric  let Inst{12-8} = Rs32{4-0};
1816bdd1243dSDimitry Andric  bits <5> Rtt32;
1817bdd1243dSDimitry Andric  let Inst{20-16} = Rtt32{4-0};
1818bdd1243dSDimitry Andric  bits <5> Rd32;
1819bdd1243dSDimitry Andric  let Inst{4-0} = Rd32{4-0};
1820bdd1243dSDimitry Andric}
1821fe6060f1SDimitry Andricclass Enc_802dc0 : OpcodeHexagon {
1822fe6060f1SDimitry Andric  bits <1> Ii;
1823fe6060f1SDimitry Andric  let Inst{8-8} = Ii{0-0};
1824fe6060f1SDimitry Andric  bits <2> Qv4;
1825fe6060f1SDimitry Andric  let Inst{23-22} = Qv4{1-0};
1826fe6060f1SDimitry Andric}
1827fe6060f1SDimitry Andricclass Enc_81ac1d : OpcodeHexagon {
1828fe6060f1SDimitry Andric  bits <24> Ii;
1829fe6060f1SDimitry Andric  let Inst{24-16} = Ii{23-15};
1830fe6060f1SDimitry Andric  let Inst{13-1} = Ii{14-2};
1831fe6060f1SDimitry Andric}
1832fe6060f1SDimitry Andricclass Enc_8203bb : OpcodeHexagon {
1833fe6060f1SDimitry Andric  bits <6> Ii;
1834fe6060f1SDimitry Andric  let Inst{12-7} = Ii{5-0};
1835fe6060f1SDimitry Andric  bits <8> II;
1836fe6060f1SDimitry Andric  let Inst{13-13} = II{7-7};
1837fe6060f1SDimitry Andric  let Inst{6-0} = II{6-0};
1838fe6060f1SDimitry Andric  bits <5> Rs32;
1839fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1840fe6060f1SDimitry Andric}
1841bdd1243dSDimitry Andricclass Enc_829a68 : OpcodeHexagon {
1842bdd1243dSDimitry Andric  bits <1> Mu2;
1843bdd1243dSDimitry Andric  let Inst{13-13} = Mu2{0-0};
1844bdd1243dSDimitry Andric  bits <5> Vdd32;
1845bdd1243dSDimitry Andric  let Inst{4-0} = Vdd32{4-0};
1846bdd1243dSDimitry Andric  bits <5> Rx32;
1847bdd1243dSDimitry Andric  let Inst{20-16} = Rx32{4-0};
1848bdd1243dSDimitry Andric}
1849fe6060f1SDimitry Andricclass Enc_830e5d : OpcodeHexagon {
1850fe6060f1SDimitry Andric  bits <8> Ii;
1851fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
1852fe6060f1SDimitry Andric  bits <8> II;
1853fe6060f1SDimitry Andric  let Inst{22-16} = II{7-1};
1854fe6060f1SDimitry Andric  let Inst{13-13} = II{0-0};
1855fe6060f1SDimitry Andric  bits <2> Pu4;
1856fe6060f1SDimitry Andric  let Inst{24-23} = Pu4{1-0};
1857fe6060f1SDimitry Andric  bits <5> Rd32;
1858fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1859fe6060f1SDimitry Andric}
18605ffd83dbSDimitry Andricclass Enc_831a7d : OpcodeHexagon {
18615ffd83dbSDimitry Andric  bits <5> Rss32;
18625ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
18635ffd83dbSDimitry Andric  bits <5> Rtt32;
18645ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
18655ffd83dbSDimitry Andric  bits <5> Rxx32;
18665ffd83dbSDimitry Andric  let Inst{4-0} = Rxx32{4-0};
18675ffd83dbSDimitry Andric  bits <2> Pe4;
18685ffd83dbSDimitry Andric  let Inst{6-5} = Pe4{1-0};
18695ffd83dbSDimitry Andric}
1870fe6060f1SDimitry Andricclass Enc_83ee64 : OpcodeHexagon {
1871fe6060f1SDimitry Andric  bits <5> Ii;
1872fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
1873fe6060f1SDimitry Andric  bits <5> Rs32;
1874fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1875fe6060f1SDimitry Andric  bits <2> Pd4;
1876fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
1877fe6060f1SDimitry Andric}
1878fe6060f1SDimitry Andricclass Enc_84b2cd : OpcodeHexagon {
1879fe6060f1SDimitry Andric  bits <8> Ii;
1880fe6060f1SDimitry Andric  let Inst{12-7} = Ii{7-2};
1881fe6060f1SDimitry Andric  bits <5> II;
1882fe6060f1SDimitry Andric  let Inst{4-0} = II{4-0};
1883fe6060f1SDimitry Andric  bits <5> Rs32;
1884fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1885fe6060f1SDimitry Andric}
1886fe6060f1SDimitry Andricclass Enc_84bff1 : OpcodeHexagon {
1887fe6060f1SDimitry Andric  bits <2> Ii;
1888fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
1889fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
1890fe6060f1SDimitry Andric  bits <5> Rs32;
1891fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1892fe6060f1SDimitry Andric  bits <5> Rt32;
1893fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1894fe6060f1SDimitry Andric  bits <5> Rdd32;
1895fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
1896fe6060f1SDimitry Andric}
1897fe6060f1SDimitry Andricclass Enc_84d359 : OpcodeHexagon {
1898fe6060f1SDimitry Andric  bits <4> Ii;
1899fe6060f1SDimitry Andric  let Inst{3-0} = Ii{3-0};
1900fe6060f1SDimitry Andric  bits <4> Rs16;
1901fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
1902fe6060f1SDimitry Andric}
1903fe6060f1SDimitry Andricclass Enc_85bf58 : OpcodeHexagon {
1904fe6060f1SDimitry Andric  bits <7> Ii;
1905fe6060f1SDimitry Andric  let Inst{6-3} = Ii{6-3};
1906fe6060f1SDimitry Andric  bits <5> Rtt32;
1907fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
1908fe6060f1SDimitry Andric  bits <5> Rx32;
1909fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1910fe6060f1SDimitry Andric}
1911fe6060f1SDimitry Andricclass Enc_864a5a : OpcodeHexagon {
1912fe6060f1SDimitry Andric  bits <9> Ii;
1913fe6060f1SDimitry Andric  let Inst{12-8} = Ii{8-4};
1914fe6060f1SDimitry Andric  let Inst{4-3} = Ii{3-2};
1915fe6060f1SDimitry Andric  bits <5> Rs32;
1916fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1917fe6060f1SDimitry Andric}
1918fe6060f1SDimitry Andricclass Enc_865390 : OpcodeHexagon {
1919fe6060f1SDimitry Andric  bits <3> Ii;
1920fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
1921fe6060f1SDimitry Andric  bits <2> Pv4;
1922fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
1923fe6060f1SDimitry Andric  bits <5> Vs32;
1924fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
1925fe6060f1SDimitry Andric  bits <5> Rx32;
1926fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
1927fe6060f1SDimitry Andric}
1928fe6060f1SDimitry Andricclass Enc_86a14b : OpcodeHexagon {
1929fe6060f1SDimitry Andric  bits <8> Ii;
1930fe6060f1SDimitry Andric  let Inst{7-3} = Ii{7-3};
1931fe6060f1SDimitry Andric  bits <3> Rdd8;
1932fe6060f1SDimitry Andric  let Inst{2-0} = Rdd8{2-0};
1933fe6060f1SDimitry Andric}
1934fe6060f1SDimitry Andricclass Enc_87c142 : OpcodeHexagon {
1935fe6060f1SDimitry Andric  bits <7> Ii;
1936fe6060f1SDimitry Andric  let Inst{8-4} = Ii{6-2};
1937fe6060f1SDimitry Andric  bits <4> Rt16;
1938fe6060f1SDimitry Andric  let Inst{3-0} = Rt16{3-0};
1939fe6060f1SDimitry Andric}
1940fe6060f1SDimitry Andricclass Enc_88c16c : OpcodeHexagon {
1941fe6060f1SDimitry Andric  bits <5> Rss32;
1942fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
1943fe6060f1SDimitry Andric  bits <5> Rtt32;
1944fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
1945fe6060f1SDimitry Andric  bits <5> Rxx32;
1946fe6060f1SDimitry Andric  let Inst{4-0} = Rxx32{4-0};
1947fe6060f1SDimitry Andric}
1948fe6060f1SDimitry Andricclass Enc_88d4d9 : OpcodeHexagon {
1949fe6060f1SDimitry Andric  bits <2> Pu4;
1950fe6060f1SDimitry Andric  let Inst{9-8} = Pu4{1-0};
1951fe6060f1SDimitry Andric  bits <5> Rs32;
1952fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1953fe6060f1SDimitry Andric}
1954fe6060f1SDimitry Andricclass Enc_890909 : OpcodeHexagon {
1955fe6060f1SDimitry Andric  bits <5> Rs32;
1956fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1957fe6060f1SDimitry Andric  bits <5> Rd32;
1958fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
1959fe6060f1SDimitry Andric  bits <2> Pe4;
1960fe6060f1SDimitry Andric  let Inst{6-5} = Pe4{1-0};
1961fe6060f1SDimitry Andric}
1962fe6060f1SDimitry Andricclass Enc_895bd9 : OpcodeHexagon {
1963fe6060f1SDimitry Andric  bits <2> Qu4;
1964fe6060f1SDimitry Andric  let Inst{9-8} = Qu4{1-0};
1965fe6060f1SDimitry Andric  bits <5> Rt32;
1966fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1967fe6060f1SDimitry Andric  bits <5> Vx32;
1968fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
1969fe6060f1SDimitry Andric}
1970fe6060f1SDimitry Andricclass Enc_8b8927 : OpcodeHexagon {
1971fe6060f1SDimitry Andric  bits <5> Rt32;
1972fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
1973fe6060f1SDimitry Andric  bits <1> Mu2;
1974fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
1975fe6060f1SDimitry Andric  bits <5> Vv32;
1976fe6060f1SDimitry Andric  let Inst{4-0} = Vv32{4-0};
1977fe6060f1SDimitry Andric}
1978fe6060f1SDimitry Andricclass Enc_8b8d61 : OpcodeHexagon {
1979fe6060f1SDimitry Andric  bits <6> Ii;
1980fe6060f1SDimitry Andric  let Inst{22-21} = Ii{5-4};
1981fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
1982fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
1983fe6060f1SDimitry Andric  bits <5> Rs32;
1984fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
1985fe6060f1SDimitry Andric  bits <5> Ru32;
1986fe6060f1SDimitry Andric  let Inst{4-0} = Ru32{4-0};
1987fe6060f1SDimitry Andric  bits <5> Rd32;
1988fe6060f1SDimitry Andric  let Inst{12-8} = Rd32{4-0};
1989fe6060f1SDimitry Andric}
1990fe6060f1SDimitry Andricclass Enc_8bcba4 : OpcodeHexagon {
1991fe6060f1SDimitry Andric  bits <6> II;
1992fe6060f1SDimitry Andric  let Inst{5-0} = II{5-0};
1993fe6060f1SDimitry Andric  bits <5> Rt32;
1994fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
1995fe6060f1SDimitry Andric  bits <5> Re32;
1996fe6060f1SDimitry Andric  let Inst{20-16} = Re32{4-0};
1997fe6060f1SDimitry Andric}
1998fe6060f1SDimitry Andricclass Enc_8c2412 : OpcodeHexagon {
1999fe6060f1SDimitry Andric  bits <2> Ps4;
2000fe6060f1SDimitry Andric  let Inst{6-5} = Ps4{1-0};
2001fe6060f1SDimitry Andric  bits <5> Vu32;
2002fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2003fe6060f1SDimitry Andric  bits <5> Vv32;
2004fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
2005fe6060f1SDimitry Andric  bits <5> Vdd32;
2006fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
2007fe6060f1SDimitry Andric}
2008fe6060f1SDimitry Andricclass Enc_8c6530 : OpcodeHexagon {
2009fe6060f1SDimitry Andric  bits <5> Rtt32;
2010fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
2011fe6060f1SDimitry Andric  bits <5> Rss32;
2012fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2013fe6060f1SDimitry Andric  bits <2> Pu4;
2014fe6060f1SDimitry Andric  let Inst{6-5} = Pu4{1-0};
2015fe6060f1SDimitry Andric  bits <5> Rdd32;
2016fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2017fe6060f1SDimitry Andric}
2018fe6060f1SDimitry Andricclass Enc_8d8a30 : OpcodeHexagon {
2019fe6060f1SDimitry Andric  bits <4> Ii;
2020fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
2021fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
2022fe6060f1SDimitry Andric  bits <2> Pv4;
2023fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
2024fe6060f1SDimitry Andric  bits <5> Rt32;
2025fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2026fe6060f1SDimitry Andric  bits <5> Vd32;
2027fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2028fe6060f1SDimitry Andric}
2029fe6060f1SDimitry Andricclass Enc_8dbdfe : OpcodeHexagon {
2030fe6060f1SDimitry Andric  bits <8> Ii;
2031fe6060f1SDimitry Andric  let Inst{13-13} = Ii{7-7};
2032fe6060f1SDimitry Andric  let Inst{7-3} = Ii{6-2};
2033fe6060f1SDimitry Andric  bits <2> Pv4;
2034fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
2035fe6060f1SDimitry Andric  bits <5> Rs32;
2036fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2037fe6060f1SDimitry Andric  bits <3> Nt8;
2038fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2039fe6060f1SDimitry Andric}
2040fe6060f1SDimitry Andricclass Enc_8dbe85 : OpcodeHexagon {
2041fe6060f1SDimitry Andric  bits <1> Mu2;
2042fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2043fe6060f1SDimitry Andric  bits <3> Nt8;
2044fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2045fe6060f1SDimitry Andric  bits <5> Rx32;
2046fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2047fe6060f1SDimitry Andric}
2048fe6060f1SDimitry Andricclass Enc_8dec2e : OpcodeHexagon {
2049fe6060f1SDimitry Andric  bits <5> Ii;
2050fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
2051fe6060f1SDimitry Andric  bits <5> Rss32;
2052fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2053fe6060f1SDimitry Andric  bits <5> Rd32;
2054fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2055fe6060f1SDimitry Andric}
2056fe6060f1SDimitry Andricclass Enc_8df4be : OpcodeHexagon {
2057fe6060f1SDimitry Andric  bits <17> Ii;
2058fe6060f1SDimitry Andric  let Inst{26-25} = Ii{16-15};
2059fe6060f1SDimitry Andric  let Inst{20-16} = Ii{14-10};
2060fe6060f1SDimitry Andric  let Inst{13-5} = Ii{9-1};
2061fe6060f1SDimitry Andric  bits <5> Rd32;
2062fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2063fe6060f1SDimitry Andric}
2064fe6060f1SDimitry Andricclass Enc_8e583a : OpcodeHexagon {
2065fe6060f1SDimitry Andric  bits <11> Ii;
2066fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2067fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2068fe6060f1SDimitry Andric  bits <4> Rs16;
2069fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
2070fe6060f1SDimitry Andric  bits <5> n1;
2071fe6060f1SDimitry Andric  let Inst{28-28} = n1{4-4};
2072fe6060f1SDimitry Andric  let Inst{25-23} = n1{3-1};
2073fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
2074fe6060f1SDimitry Andric}
2075349cc55cSDimitry Andricclass Enc_8f7633 : OpcodeHexagon {
2076349cc55cSDimitry Andric  bits <5> Rs32;
2077349cc55cSDimitry Andric  let Inst{20-16} = Rs32{4-0};
2078349cc55cSDimitry Andric  bits <7> Sd128;
2079349cc55cSDimitry Andric  let Inst{6-0} = Sd128{6-0};
2080349cc55cSDimitry Andric}
2081fe6060f1SDimitry Andricclass Enc_90cd8b : OpcodeHexagon {
2082fe6060f1SDimitry Andric  bits <5> Rss32;
2083fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2084fe6060f1SDimitry Andric  bits <5> Rd32;
2085fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2086fe6060f1SDimitry Andric}
2087fe6060f1SDimitry Andricclass Enc_91b9fe : OpcodeHexagon {
2088fe6060f1SDimitry Andric  bits <5> Ii;
2089fe6060f1SDimitry Andric  let Inst{6-3} = Ii{4-1};
2090fe6060f1SDimitry Andric  bits <1> Mu2;
2091fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2092fe6060f1SDimitry Andric  bits <3> Nt8;
2093fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2094fe6060f1SDimitry Andric  bits <5> Rx32;
2095fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2096fe6060f1SDimitry Andric}
2097fe6060f1SDimitry Andricclass Enc_927852 : OpcodeHexagon {
2098fe6060f1SDimitry Andric  bits <5> Rss32;
2099fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2100fe6060f1SDimitry Andric  bits <5> Rt32;
2101fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2102fe6060f1SDimitry Andric  bits <5> Rdd32;
2103fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2104fe6060f1SDimitry Andric}
2105fe6060f1SDimitry Andricclass Enc_928ca1 : OpcodeHexagon {
2106fe6060f1SDimitry Andric  bits <1> Mu2;
2107fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2108fe6060f1SDimitry Andric  bits <5> Rtt32;
2109fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
2110fe6060f1SDimitry Andric  bits <5> Rx32;
2111fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2112fe6060f1SDimitry Andric}
2113fe6060f1SDimitry Andricclass Enc_935d9b : OpcodeHexagon {
2114fe6060f1SDimitry Andric  bits <5> Ii;
2115fe6060f1SDimitry Andric  let Inst{6-3} = Ii{4-1};
2116fe6060f1SDimitry Andric  bits <1> Mu2;
2117fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2118fe6060f1SDimitry Andric  bits <5> Rt32;
2119fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2120fe6060f1SDimitry Andric  bits <5> Rx32;
2121fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2122fe6060f1SDimitry Andric}
2123fe6060f1SDimitry Andricclass Enc_93af4c : OpcodeHexagon {
2124fe6060f1SDimitry Andric  bits <7> Ii;
2125fe6060f1SDimitry Andric  let Inst{10-4} = Ii{6-0};
2126fe6060f1SDimitry Andric  bits <4> Rx16;
2127fe6060f1SDimitry Andric  let Inst{3-0} = Rx16{3-0};
2128fe6060f1SDimitry Andric}
2129fe6060f1SDimitry Andricclass Enc_95441f : OpcodeHexagon {
2130fe6060f1SDimitry Andric  bits <5> Vu32;
2131fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2132fe6060f1SDimitry Andric  bits <5> Vv32;
2133fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
2134fe6060f1SDimitry Andric  bits <2> Qd4;
2135fe6060f1SDimitry Andric  let Inst{1-0} = Qd4{1-0};
2136fe6060f1SDimitry Andric}
2137fe6060f1SDimitry Andricclass Enc_96ce4f : OpcodeHexagon {
2138fe6060f1SDimitry Andric  bits <4> Ii;
2139fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
2140fe6060f1SDimitry Andric  bits <1> Mu2;
2141fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2142fe6060f1SDimitry Andric  bits <3> Nt8;
2143fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2144fe6060f1SDimitry Andric  bits <5> Rx32;
2145fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2146fe6060f1SDimitry Andric}
2147fe6060f1SDimitry Andricclass Enc_97d666 : OpcodeHexagon {
2148fe6060f1SDimitry Andric  bits <4> Rs16;
2149fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
2150fe6060f1SDimitry Andric  bits <4> Rd16;
2151fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
2152fe6060f1SDimitry Andric}
2153fe6060f1SDimitry Andricclass Enc_989021 : OpcodeHexagon {
2154fe6060f1SDimitry Andric  bits <5> Rt32;
2155fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2156fe6060f1SDimitry Andric  bits <5> Vy32;
2157fe6060f1SDimitry Andric  let Inst{12-8} = Vy32{4-0};
2158fe6060f1SDimitry Andric  bits <5> Vx32;
2159fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
2160fe6060f1SDimitry Andric}
2161fe6060f1SDimitry Andricclass Enc_98c0b8 : OpcodeHexagon {
2162fe6060f1SDimitry Andric  bits <2> Ii;
2163fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
2164fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
2165fe6060f1SDimitry Andric  bits <2> Pv4;
2166fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
2167fe6060f1SDimitry Andric  bits <5> Rs32;
2168fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2169fe6060f1SDimitry Andric  bits <5> Rt32;
2170fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2171fe6060f1SDimitry Andric  bits <5> Rdd32;
2172fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2173fe6060f1SDimitry Andric}
2174fe6060f1SDimitry Andricclass Enc_9a33d5 : OpcodeHexagon {
2175fe6060f1SDimitry Andric  bits <7> Ii;
2176fe6060f1SDimitry Andric  let Inst{6-3} = Ii{6-3};
2177fe6060f1SDimitry Andric  bits <2> Pv4;
2178fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
2179fe6060f1SDimitry Andric  bits <5> Rtt32;
2180fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
2181fe6060f1SDimitry Andric  bits <5> Rx32;
2182fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2183fe6060f1SDimitry Andric}
2184fe6060f1SDimitry Andricclass Enc_9ac432 : OpcodeHexagon {
2185fe6060f1SDimitry Andric  bits <2> Ps4;
2186fe6060f1SDimitry Andric  let Inst{17-16} = Ps4{1-0};
2187fe6060f1SDimitry Andric  bits <2> Pt4;
2188fe6060f1SDimitry Andric  let Inst{9-8} = Pt4{1-0};
2189fe6060f1SDimitry Andric  bits <2> Pu4;
2190fe6060f1SDimitry Andric  let Inst{7-6} = Pu4{1-0};
2191fe6060f1SDimitry Andric  bits <2> Pd4;
2192fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
2193fe6060f1SDimitry Andric}
2194fe6060f1SDimitry Andricclass Enc_9b0bc1 : OpcodeHexagon {
2195fe6060f1SDimitry Andric  bits <2> Pu4;
2196fe6060f1SDimitry Andric  let Inst{6-5} = Pu4{1-0};
2197fe6060f1SDimitry Andric  bits <5> Rt32;
2198fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2199fe6060f1SDimitry Andric  bits <5> Rs32;
2200fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2201fe6060f1SDimitry Andric  bits <5> Rd32;
2202fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2203fe6060f1SDimitry Andric}
2204fe6060f1SDimitry Andricclass Enc_9be1de : OpcodeHexagon {
2205fe6060f1SDimitry Andric  bits <2> Qs4;
2206fe6060f1SDimitry Andric  let Inst{6-5} = Qs4{1-0};
2207fe6060f1SDimitry Andric  bits <5> Rt32;
2208fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2209fe6060f1SDimitry Andric  bits <1> Mu2;
2210fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2211fe6060f1SDimitry Andric  bits <5> Vv32;
2212fe6060f1SDimitry Andric  let Inst{12-8} = Vv32{4-0};
2213fe6060f1SDimitry Andric  bits <5> Vw32;
2214fe6060f1SDimitry Andric  let Inst{4-0} = Vw32{4-0};
2215fe6060f1SDimitry Andric}
2216fe6060f1SDimitry Andricclass Enc_9cdba7 : OpcodeHexagon {
2217fe6060f1SDimitry Andric  bits <8> Ii;
2218fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
2219fe6060f1SDimitry Andric  bits <5> Rs32;
2220fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2221fe6060f1SDimitry Andric  bits <5> Rdd32;
2222fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2223fe6060f1SDimitry Andric}
2224fe6060f1SDimitry Andricclass Enc_9d1247 : OpcodeHexagon {
2225fe6060f1SDimitry Andric  bits <7> Ii;
2226fe6060f1SDimitry Andric  let Inst{8-5} = Ii{6-3};
2227fe6060f1SDimitry Andric  bits <2> Pt4;
2228fe6060f1SDimitry Andric  let Inst{10-9} = Pt4{1-0};
2229fe6060f1SDimitry Andric  bits <5> Rdd32;
2230fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2231fe6060f1SDimitry Andric  bits <5> Rx32;
2232fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2233fe6060f1SDimitry Andric}
2234fe6060f1SDimitry Andricclass Enc_9e2e1c : OpcodeHexagon {
2235fe6060f1SDimitry Andric  bits <5> Ii;
2236fe6060f1SDimitry Andric  let Inst{8-5} = Ii{4-1};
2237fe6060f1SDimitry Andric  bits <1> Mu2;
2238fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2239fe6060f1SDimitry Andric  bits <5> Ryy32;
2240fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
2241fe6060f1SDimitry Andric  bits <5> Rx32;
2242fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2243fe6060f1SDimitry Andric}
2244fe6060f1SDimitry Andricclass Enc_9e4c3f : OpcodeHexagon {
2245fe6060f1SDimitry Andric  bits <6> II;
2246fe6060f1SDimitry Andric  let Inst{13-8} = II{5-0};
2247fe6060f1SDimitry Andric  bits <11> Ii;
2248fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2249fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2250fe6060f1SDimitry Andric  bits <4> Rd16;
2251fe6060f1SDimitry Andric  let Inst{19-16} = Rd16{3-0};
2252fe6060f1SDimitry Andric}
22535f757f3fSDimitry Andricclass Enc_9e9047 : OpcodeHexagon {
22545f757f3fSDimitry Andric  bits <2> Pt4;
22555f757f3fSDimitry Andric  let Inst{9-8} = Pt4{1-0};
22565f757f3fSDimitry Andric  bits <5> Rs32;
22575f757f3fSDimitry Andric  let Inst{20-16} = Rs32{4-0};
22585f757f3fSDimitry Andric}
2259fe6060f1SDimitry Andricclass Enc_9ea4cf : OpcodeHexagon {
2260fe6060f1SDimitry Andric  bits <2> Ii;
2261fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
2262fe6060f1SDimitry Andric  let Inst{6-6} = Ii{0-0};
2263fe6060f1SDimitry Andric  bits <6> II;
2264fe6060f1SDimitry Andric  let Inst{5-0} = II{5-0};
2265fe6060f1SDimitry Andric  bits <5> Ru32;
2266fe6060f1SDimitry Andric  let Inst{20-16} = Ru32{4-0};
2267fe6060f1SDimitry Andric  bits <5> Rt32;
2268fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2269fe6060f1SDimitry Andric}
2270fe6060f1SDimitry Andricclass Enc_9fae8a : OpcodeHexagon {
2271fe6060f1SDimitry Andric  bits <6> Ii;
2272fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
2273fe6060f1SDimitry Andric  bits <5> Rs32;
2274fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2275fe6060f1SDimitry Andric  bits <5> Rd32;
2276fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2277fe6060f1SDimitry Andric}
2278fe6060f1SDimitry Andricclass Enc_a05677 : OpcodeHexagon {
2279fe6060f1SDimitry Andric  bits <5> Ii;
2280fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
2281fe6060f1SDimitry Andric  bits <5> Rs32;
2282fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2283fe6060f1SDimitry Andric  bits <5> Rd32;
2284fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2285fe6060f1SDimitry Andric}
2286fe6060f1SDimitry Andricclass Enc_a1640c : OpcodeHexagon {
2287fe6060f1SDimitry Andric  bits <6> Ii;
2288fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
2289fe6060f1SDimitry Andric  bits <5> Rss32;
2290fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2291fe6060f1SDimitry Andric  bits <5> Rd32;
2292fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2293fe6060f1SDimitry Andric}
2294fe6060f1SDimitry Andricclass Enc_a198f6 : OpcodeHexagon {
2295fe6060f1SDimitry Andric  bits <7> Ii;
2296fe6060f1SDimitry Andric  let Inst{10-5} = Ii{6-1};
2297fe6060f1SDimitry Andric  bits <2> Pt4;
2298fe6060f1SDimitry Andric  let Inst{12-11} = Pt4{1-0};
2299fe6060f1SDimitry Andric  bits <5> Rs32;
2300fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2301fe6060f1SDimitry Andric  bits <5> Rd32;
2302fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2303fe6060f1SDimitry Andric}
2304fe6060f1SDimitry Andricclass Enc_a1e29d : OpcodeHexagon {
2305fe6060f1SDimitry Andric  bits <5> Ii;
2306fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
2307fe6060f1SDimitry Andric  bits <5> II;
2308fe6060f1SDimitry Andric  let Inst{22-21} = II{4-3};
2309fe6060f1SDimitry Andric  let Inst{7-5} = II{2-0};
2310fe6060f1SDimitry Andric  bits <5> Rs32;
2311fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2312fe6060f1SDimitry Andric  bits <5> Rx32;
2313fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
2314fe6060f1SDimitry Andric}
2315fe6060f1SDimitry Andricclass Enc_a21d47 : OpcodeHexagon {
2316fe6060f1SDimitry Andric  bits <6> Ii;
2317fe6060f1SDimitry Andric  let Inst{10-5} = Ii{5-0};
2318fe6060f1SDimitry Andric  bits <2> Pt4;
2319fe6060f1SDimitry Andric  let Inst{12-11} = Pt4{1-0};
2320fe6060f1SDimitry Andric  bits <5> Rs32;
2321fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2322fe6060f1SDimitry Andric  bits <5> Rd32;
2323fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2324fe6060f1SDimitry Andric}
2325fe6060f1SDimitry Andricclass Enc_a255dc : OpcodeHexagon {
2326fe6060f1SDimitry Andric  bits <3> Ii;
2327fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
2328fe6060f1SDimitry Andric  bits <5> Vd32;
2329fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2330fe6060f1SDimitry Andric  bits <5> Rx32;
2331fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2332fe6060f1SDimitry Andric}
2333fe6060f1SDimitry Andricclass Enc_a27588 : OpcodeHexagon {
2334fe6060f1SDimitry Andric  bits <11> Ii;
2335fe6060f1SDimitry Andric  let Inst{26-25} = Ii{10-9};
2336fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
2337fe6060f1SDimitry Andric  bits <5> Rs32;
2338fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2339fe6060f1SDimitry Andric  bits <5> Ryy32;
2340fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
2341fe6060f1SDimitry Andric}
2342fe6060f1SDimitry Andricclass Enc_a30110 : OpcodeHexagon {
2343fe6060f1SDimitry Andric  bits <5> Vu32;
2344fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2345fe6060f1SDimitry Andric  bits <5> Vv32;
2346fe6060f1SDimitry Andric  let Inst{23-19} = Vv32{4-0};
2347fe6060f1SDimitry Andric  bits <3> Rt8;
2348fe6060f1SDimitry Andric  let Inst{18-16} = Rt8{2-0};
2349fe6060f1SDimitry Andric  bits <5> Vd32;
2350fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2351fe6060f1SDimitry Andric}
23520eae32dcSDimitry Andricclass Enc_a33d04 : OpcodeHexagon {
23530eae32dcSDimitry Andric  bits <5> Vuu32;
23540eae32dcSDimitry Andric  let Inst{12-8} = Vuu32{4-0};
23550eae32dcSDimitry Andric  bits <5> Vd32;
23560eae32dcSDimitry Andric  let Inst{4-0} = Vd32{4-0};
23570eae32dcSDimitry Andric}
2358fe6060f1SDimitry Andricclass Enc_a42857 : OpcodeHexagon {
2359fe6060f1SDimitry Andric  bits <11> Ii;
2360fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2361fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2362fe6060f1SDimitry Andric  bits <4> Rs16;
2363fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
2364fe6060f1SDimitry Andric  bits <5> n1;
2365fe6060f1SDimitry Andric  let Inst{28-28} = n1{4-4};
2366fe6060f1SDimitry Andric  let Inst{24-22} = n1{3-1};
2367fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
2368fe6060f1SDimitry Andric}
2369fe6060f1SDimitry Andricclass Enc_a4ef14 : OpcodeHexagon {
2370fe6060f1SDimitry Andric  bits <5> Rd32;
2371fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2372fe6060f1SDimitry Andric}
2373fe6060f1SDimitry Andricclass Enc_a51a9a : OpcodeHexagon {
2374fe6060f1SDimitry Andric  bits <8> Ii;
2375fe6060f1SDimitry Andric  let Inst{12-8} = Ii{7-3};
2376fe6060f1SDimitry Andric  let Inst{4-2} = Ii{2-0};
2377fe6060f1SDimitry Andric}
2378fe6060f1SDimitry Andricclass Enc_a56825 : OpcodeHexagon {
2379fe6060f1SDimitry Andric  bits <5> Rss32;
2380fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2381fe6060f1SDimitry Andric  bits <5> Rtt32;
2382fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
2383fe6060f1SDimitry Andric  bits <5> Rdd32;
2384fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2385fe6060f1SDimitry Andric}
2386fe6060f1SDimitry Andricclass Enc_a568d4 : OpcodeHexagon {
2387fe6060f1SDimitry Andric  bits <5> Rt32;
2388fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2389fe6060f1SDimitry Andric  bits <5> Rs32;
2390fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2391fe6060f1SDimitry Andric  bits <5> Rx32;
2392fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
2393fe6060f1SDimitry Andric}
2394fe6060f1SDimitry Andricclass Enc_a5ed8a : OpcodeHexagon {
2395fe6060f1SDimitry Andric  bits <5> Rt32;
2396fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2397fe6060f1SDimitry Andric  bits <5> Vd32;
2398fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2399fe6060f1SDimitry Andric}
2400fe6060f1SDimitry Andricclass Enc_a641d0 : OpcodeHexagon {
2401fe6060f1SDimitry Andric  bits <5> Rt32;
2402fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2403fe6060f1SDimitry Andric  bits <1> Mu2;
2404fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2405fe6060f1SDimitry Andric  bits <5> Vvv32;
2406fe6060f1SDimitry Andric  let Inst{12-8} = Vvv32{4-0};
2407fe6060f1SDimitry Andric  bits <5> Vw32;
2408fe6060f1SDimitry Andric  let Inst{4-0} = Vw32{4-0};
2409fe6060f1SDimitry Andric}
2410fe6060f1SDimitry Andricclass Enc_a6853f : OpcodeHexagon {
2411fe6060f1SDimitry Andric  bits <11> Ii;
2412fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2413fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2414fe6060f1SDimitry Andric  bits <3> Ns8;
2415fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
2416fe6060f1SDimitry Andric  bits <6> n1;
2417fe6060f1SDimitry Andric  let Inst{29-29} = n1{5-5};
2418fe6060f1SDimitry Andric  let Inst{26-25} = n1{4-3};
2419fe6060f1SDimitry Andric  let Inst{23-22} = n1{2-1};
2420fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
2421fe6060f1SDimitry Andric}
2422fe6060f1SDimitry Andricclass Enc_a6ce9c : OpcodeHexagon {
2423fe6060f1SDimitry Andric  bits <6> Ii;
2424fe6060f1SDimitry Andric  let Inst{3-0} = Ii{5-2};
2425fe6060f1SDimitry Andric  bits <4> Rs16;
2426fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
2427fe6060f1SDimitry Andric}
2428349cc55cSDimitry Andricclass Enc_a705fc : OpcodeHexagon {
2429349cc55cSDimitry Andric  bits <5> Rss32;
2430349cc55cSDimitry Andric  let Inst{20-16} = Rss32{4-0};
2431349cc55cSDimitry Andric  bits <7> Sdd128;
2432349cc55cSDimitry Andric  let Inst{6-0} = Sdd128{6-0};
2433349cc55cSDimitry Andric}
2434fe6060f1SDimitry Andricclass Enc_a7341a : OpcodeHexagon {
2435fe6060f1SDimitry Andric  bits <5> Vu32;
2436fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2437fe6060f1SDimitry Andric  bits <5> Vv32;
2438fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
2439fe6060f1SDimitry Andric  bits <5> Vx32;
2440fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
2441fe6060f1SDimitry Andric}
2442fe6060f1SDimitry Andricclass Enc_a75aa6 : OpcodeHexagon {
2443fe6060f1SDimitry Andric  bits <5> Rs32;
2444fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2445fe6060f1SDimitry Andric  bits <5> Rt32;
2446fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2447fe6060f1SDimitry Andric  bits <1> Mu2;
2448fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2449fe6060f1SDimitry Andric}
2450fe6060f1SDimitry Andricclass Enc_a7b8e8 : OpcodeHexagon {
2451fe6060f1SDimitry Andric  bits <6> Ii;
2452fe6060f1SDimitry Andric  let Inst{22-21} = Ii{5-4};
2453fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
2454fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
2455fe6060f1SDimitry Andric  bits <5> Rs32;
2456fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2457fe6060f1SDimitry Andric  bits <5> Rt32;
2458fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2459fe6060f1SDimitry Andric  bits <5> Rd32;
2460fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2461fe6060f1SDimitry Andric}
2462fe6060f1SDimitry Andricclass Enc_a803e0 : OpcodeHexagon {
2463fe6060f1SDimitry Andric  bits <7> Ii;
2464fe6060f1SDimitry Andric  let Inst{12-7} = Ii{6-1};
2465fe6060f1SDimitry Andric  bits <8> II;
2466fe6060f1SDimitry Andric  let Inst{13-13} = II{7-7};
2467fe6060f1SDimitry Andric  let Inst{6-0} = II{6-0};
2468fe6060f1SDimitry Andric  bits <5> Rs32;
2469fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2470fe6060f1SDimitry Andric}
2471fe6060f1SDimitry Andricclass Enc_a90628 : OpcodeHexagon {
2472fe6060f1SDimitry Andric  bits <2> Qv4;
2473fe6060f1SDimitry Andric  let Inst{23-22} = Qv4{1-0};
2474fe6060f1SDimitry Andric  bits <5> Vu32;
2475fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2476fe6060f1SDimitry Andric  bits <5> Vx32;
2477fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
2478fe6060f1SDimitry Andric}
2479fe6060f1SDimitry Andricclass Enc_a94f3b : OpcodeHexagon {
2480fe6060f1SDimitry Andric  bits <5> Rs32;
2481fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2482fe6060f1SDimitry Andric  bits <5> Rt32;
2483fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2484fe6060f1SDimitry Andric  bits <5> Rd32;
2485fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2486fe6060f1SDimitry Andric  bits <2> Pe4;
2487fe6060f1SDimitry Andric  let Inst{6-5} = Pe4{1-0};
2488fe6060f1SDimitry Andric}
2489fe6060f1SDimitry Andricclass Enc_aad80c : OpcodeHexagon {
2490fe6060f1SDimitry Andric  bits <5> Vuu32;
2491fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
2492fe6060f1SDimitry Andric  bits <5> Rt32;
2493fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2494fe6060f1SDimitry Andric  bits <5> Vdd32;
2495fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
2496fe6060f1SDimitry Andric}
2497fe6060f1SDimitry Andricclass Enc_acd6ed : OpcodeHexagon {
2498fe6060f1SDimitry Andric  bits <9> Ii;
2499fe6060f1SDimitry Andric  let Inst{10-5} = Ii{8-3};
2500fe6060f1SDimitry Andric  bits <2> Pt4;
2501fe6060f1SDimitry Andric  let Inst{12-11} = Pt4{1-0};
2502fe6060f1SDimitry Andric  bits <5> Rs32;
2503fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2504fe6060f1SDimitry Andric  bits <5> Rdd32;
2505fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2506fe6060f1SDimitry Andric}
2507fe6060f1SDimitry Andricclass Enc_ad1831 : OpcodeHexagon {
2508fe6060f1SDimitry Andric  bits <16> Ii;
2509fe6060f1SDimitry Andric  let Inst{26-25} = Ii{15-14};
2510fe6060f1SDimitry Andric  let Inst{20-16} = Ii{13-9};
2511fe6060f1SDimitry Andric  let Inst{13-13} = Ii{8-8};
2512fe6060f1SDimitry Andric  let Inst{7-0} = Ii{7-0};
2513fe6060f1SDimitry Andric  bits <3> Nt8;
2514fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2515fe6060f1SDimitry Andric}
2516fe6060f1SDimitry Andricclass Enc_ad1c74 : OpcodeHexagon {
2517fe6060f1SDimitry Andric  bits <11> Ii;
2518fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2519fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2520fe6060f1SDimitry Andric  bits <4> Rs16;
2521fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
2522fe6060f1SDimitry Andric}
2523fe6060f1SDimitry Andricclass Enc_ad9bef : OpcodeHexagon {
2524fe6060f1SDimitry Andric  bits <5> Vu32;
2525fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2526fe6060f1SDimitry Andric  bits <5> Rtt32;
2527fe6060f1SDimitry Andric  let Inst{20-16} = Rtt32{4-0};
2528fe6060f1SDimitry Andric  bits <5> Vxx32;
2529fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
2530fe6060f1SDimitry Andric}
2531fe6060f1SDimitry Andricclass Enc_adf111 : OpcodeHexagon {
2532fe6060f1SDimitry Andric  bits <5> Vu32;
2533fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2534fe6060f1SDimitry Andric  bits <5> Rt32;
2535fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2536fe6060f1SDimitry Andric  bits <2> Qx4;
2537fe6060f1SDimitry Andric  let Inst{1-0} = Qx4{1-0};
2538fe6060f1SDimitry Andric}
2539fe6060f1SDimitry Andricclass Enc_b00112 : OpcodeHexagon {
2540fe6060f1SDimitry Andric  bits <5> Rss32;
2541fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2542fe6060f1SDimitry Andric  bits <5> Rtt32;
2543fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
2544fe6060f1SDimitry Andric}
2545bdd1243dSDimitry Andricclass Enc_b025d6 : OpcodeHexagon {
2546bdd1243dSDimitry Andric  bits <3> Ii;
2547bdd1243dSDimitry Andric  let Inst{10-8} = Ii{2-0};
2548bdd1243dSDimitry Andric  bits <5> Vss32;
2549bdd1243dSDimitry Andric  let Inst{4-0} = Vss32{4-0};
2550bdd1243dSDimitry Andric  bits <5> Rx32;
2551bdd1243dSDimitry Andric  let Inst{20-16} = Rx32{4-0};
2552bdd1243dSDimitry Andric}
2553fe6060f1SDimitry Andricclass Enc_b05839 : OpcodeHexagon {
2554fe6060f1SDimitry Andric  bits <7> Ii;
2555fe6060f1SDimitry Andric  let Inst{8-5} = Ii{6-3};
2556fe6060f1SDimitry Andric  bits <1> Mu2;
2557fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2558fe6060f1SDimitry Andric  bits <5> Rdd32;
2559fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2560fe6060f1SDimitry Andric  bits <5> Rx32;
2561fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2562fe6060f1SDimitry Andric}
2563fe6060f1SDimitry Andricclass Enc_b087ac : OpcodeHexagon {
2564fe6060f1SDimitry Andric  bits <5> Vu32;
2565fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2566fe6060f1SDimitry Andric  bits <5> Rt32;
2567fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2568fe6060f1SDimitry Andric  bits <5> Vd32;
2569fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2570fe6060f1SDimitry Andric}
2571fe6060f1SDimitry Andricclass Enc_b0e9d8 : OpcodeHexagon {
2572fe6060f1SDimitry Andric  bits <10> Ii;
2573fe6060f1SDimitry Andric  let Inst{21-21} = Ii{9-9};
2574fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
2575fe6060f1SDimitry Andric  bits <5> Rs32;
2576fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2577fe6060f1SDimitry Andric  bits <5> Rx32;
2578fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
2579fe6060f1SDimitry Andric}
2580fe6060f1SDimitry Andricclass Enc_b15941 : OpcodeHexagon {
2581fe6060f1SDimitry Andric  bits <4> Ii;
2582fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
2583fe6060f1SDimitry Andric  bits <1> Mu2;
2584fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
2585fe6060f1SDimitry Andric  bits <5> Rt32;
2586fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2587fe6060f1SDimitry Andric  bits <5> Rx32;
2588fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2589fe6060f1SDimitry Andric}
2590fe6060f1SDimitry Andricclass Enc_b1e1fb : OpcodeHexagon {
2591fe6060f1SDimitry Andric  bits <11> Ii;
2592fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2593fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2594fe6060f1SDimitry Andric  bits <4> Rs16;
2595fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
2596fe6060f1SDimitry Andric  bits <5> n1;
2597fe6060f1SDimitry Andric  let Inst{28-28} = n1{4-4};
2598fe6060f1SDimitry Andric  let Inst{25-23} = n1{3-1};
2599fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
2600fe6060f1SDimitry Andric}
2601fe6060f1SDimitry Andricclass Enc_b388cf : OpcodeHexagon {
2602fe6060f1SDimitry Andric  bits <5> Ii;
2603fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
2604fe6060f1SDimitry Andric  bits <5> II;
2605fe6060f1SDimitry Andric  let Inst{22-21} = II{4-3};
2606fe6060f1SDimitry Andric  let Inst{7-5} = II{2-0};
2607fe6060f1SDimitry Andric  bits <5> Rs32;
2608fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2609fe6060f1SDimitry Andric  bits <5> Rd32;
2610fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2611fe6060f1SDimitry Andric}
2612fe6060f1SDimitry Andricclass Enc_b38ffc : OpcodeHexagon {
2613fe6060f1SDimitry Andric  bits <4> Ii;
2614fe6060f1SDimitry Andric  let Inst{11-8} = Ii{3-0};
2615fe6060f1SDimitry Andric  bits <4> Rs16;
2616fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
2617fe6060f1SDimitry Andric  bits <4> Rt16;
2618fe6060f1SDimitry Andric  let Inst{3-0} = Rt16{3-0};
2619fe6060f1SDimitry Andric}
2620fe6060f1SDimitry Andricclass Enc_b43b67 : OpcodeHexagon {
2621fe6060f1SDimitry Andric  bits <5> Vu32;
2622fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2623fe6060f1SDimitry Andric  bits <5> Vv32;
2624fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
2625fe6060f1SDimitry Andric  bits <5> Vd32;
2626fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2627fe6060f1SDimitry Andric  bits <2> Qx4;
2628fe6060f1SDimitry Andric  let Inst{6-5} = Qx4{1-0};
2629fe6060f1SDimitry Andric}
2630fe6060f1SDimitry Andricclass Enc_b4e6cf : OpcodeHexagon {
2631fe6060f1SDimitry Andric  bits <10> Ii;
2632fe6060f1SDimitry Andric  let Inst{21-21} = Ii{9-9};
2633fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
2634fe6060f1SDimitry Andric  bits <5> Ru32;
2635fe6060f1SDimitry Andric  let Inst{4-0} = Ru32{4-0};
2636fe6060f1SDimitry Andric  bits <5> Rx32;
2637fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2638fe6060f1SDimitry Andric}
2639fe6060f1SDimitry Andricclass Enc_b62ef7 : OpcodeHexagon {
2640fe6060f1SDimitry Andric  bits <3> Ii;
2641fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
2642fe6060f1SDimitry Andric  bits <5> Vs32;
2643fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
2644fe6060f1SDimitry Andric  bits <5> Rx32;
2645fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2646fe6060f1SDimitry Andric}
2647fe6060f1SDimitry Andricclass Enc_b72622 : OpcodeHexagon {
2648fe6060f1SDimitry Andric  bits <2> Ii;
2649fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
2650fe6060f1SDimitry Andric  let Inst{5-5} = Ii{0-0};
2651fe6060f1SDimitry Andric  bits <5> Rss32;
2652fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2653fe6060f1SDimitry Andric  bits <5> Rt32;
2654fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2655fe6060f1SDimitry Andric  bits <5> Rxx32;
2656fe6060f1SDimitry Andric  let Inst{4-0} = Rxx32{4-0};
2657fe6060f1SDimitry Andric}
2658fe6060f1SDimitry Andricclass Enc_b78edd : OpcodeHexagon {
2659fe6060f1SDimitry Andric  bits <11> Ii;
2660fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2661fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2662fe6060f1SDimitry Andric  bits <4> Rs16;
2663fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
2664fe6060f1SDimitry Andric  bits <4> n1;
2665fe6060f1SDimitry Andric  let Inst{28-28} = n1{3-3};
2666fe6060f1SDimitry Andric  let Inst{24-23} = n1{2-1};
2667fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
2668fe6060f1SDimitry Andric}
2669fe6060f1SDimitry Andricclass Enc_b7fad3 : OpcodeHexagon {
2670fe6060f1SDimitry Andric  bits <2> Pv4;
2671fe6060f1SDimitry Andric  let Inst{9-8} = Pv4{1-0};
2672fe6060f1SDimitry Andric  bits <5> Rs32;
2673fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2674fe6060f1SDimitry Andric  bits <5> Rdd32;
2675fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2676fe6060f1SDimitry Andric}
2677fe6060f1SDimitry Andricclass Enc_b8309d : OpcodeHexagon {
2678fe6060f1SDimitry Andric  bits <9> Ii;
2679fe6060f1SDimitry Andric  let Inst{8-3} = Ii{8-3};
2680fe6060f1SDimitry Andric  bits <3> Rtt8;
2681fe6060f1SDimitry Andric  let Inst{2-0} = Rtt8{2-0};
2682fe6060f1SDimitry Andric}
2683fe6060f1SDimitry Andricclass Enc_b84c4c : OpcodeHexagon {
2684fe6060f1SDimitry Andric  bits <6> Ii;
2685fe6060f1SDimitry Andric  let Inst{13-8} = Ii{5-0};
2686fe6060f1SDimitry Andric  bits <6> II;
2687fe6060f1SDimitry Andric  let Inst{23-21} = II{5-3};
2688fe6060f1SDimitry Andric  let Inst{7-5} = II{2-0};
2689fe6060f1SDimitry Andric  bits <5> Rss32;
2690fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2691fe6060f1SDimitry Andric  bits <5> Rdd32;
2692fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2693fe6060f1SDimitry Andric}
2694fe6060f1SDimitry Andricclass Enc_b886fd : OpcodeHexagon {
2695fe6060f1SDimitry Andric  bits <5> Ii;
2696fe6060f1SDimitry Andric  let Inst{6-3} = Ii{4-1};
2697fe6060f1SDimitry Andric  bits <2> Pv4;
2698fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
2699fe6060f1SDimitry Andric  bits <5> Rt32;
2700fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2701fe6060f1SDimitry Andric  bits <5> Rx32;
2702fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2703fe6060f1SDimitry Andric}
2704fe6060f1SDimitry Andricclass Enc_b8c967 : OpcodeHexagon {
2705fe6060f1SDimitry Andric  bits <8> Ii;
2706fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
2707fe6060f1SDimitry Andric  bits <5> Rs32;
2708fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2709fe6060f1SDimitry Andric  bits <5> Rd32;
2710fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2711fe6060f1SDimitry Andric}
2712fe6060f1SDimitry Andricclass Enc_b909d2 : OpcodeHexagon {
2713fe6060f1SDimitry Andric  bits <11> Ii;
2714fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2715fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2716fe6060f1SDimitry Andric  bits <4> Rs16;
2717fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
2718fe6060f1SDimitry Andric  bits <7> n1;
2719fe6060f1SDimitry Andric  let Inst{28-28} = n1{6-6};
2720fe6060f1SDimitry Andric  let Inst{25-22} = n1{5-2};
2721fe6060f1SDimitry Andric  let Inst{13-13} = n1{1-1};
2722fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
2723fe6060f1SDimitry Andric}
2724fe6060f1SDimitry Andricclass Enc_b91167 : OpcodeHexagon {
2725fe6060f1SDimitry Andric  bits <2> Ii;
2726fe6060f1SDimitry Andric  let Inst{6-5} = Ii{1-0};
2727fe6060f1SDimitry Andric  bits <5> Vuu32;
2728fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
2729fe6060f1SDimitry Andric  bits <5> Vvv32;
2730fe6060f1SDimitry Andric  let Inst{20-16} = Vvv32{4-0};
2731fe6060f1SDimitry Andric  bits <5> Vdd32;
2732fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
2733fe6060f1SDimitry Andric}
2734fe6060f1SDimitry Andricclass Enc_b97f71 : OpcodeHexagon {
2735fe6060f1SDimitry Andric  bits <6> Ii;
2736fe6060f1SDimitry Andric  let Inst{8-5} = Ii{5-2};
2737fe6060f1SDimitry Andric  bits <2> Pt4;
2738fe6060f1SDimitry Andric  let Inst{10-9} = Pt4{1-0};
2739fe6060f1SDimitry Andric  bits <5> Rd32;
2740fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2741fe6060f1SDimitry Andric  bits <5> Rx32;
2742fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2743fe6060f1SDimitry Andric}
2744bdd1243dSDimitry Andricclass Enc_b98b95 : OpcodeHexagon {
2745bdd1243dSDimitry Andric  bits <4> Ii;
2746bdd1243dSDimitry Andric  let Inst{13-13} = Ii{3-3};
2747bdd1243dSDimitry Andric  let Inst{10-8} = Ii{2-0};
2748bdd1243dSDimitry Andric  bits <5> Rt32;
2749bdd1243dSDimitry Andric  let Inst{20-16} = Rt32{4-0};
2750bdd1243dSDimitry Andric  bits <5> Vss32;
2751bdd1243dSDimitry Andric  let Inst{4-0} = Vss32{4-0};
2752bdd1243dSDimitry Andric}
2753fe6060f1SDimitry Andricclass Enc_b9c5fb : OpcodeHexagon {
2754fe6060f1SDimitry Andric  bits <5> Rss32;
2755fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
2756fe6060f1SDimitry Andric  bits <5> Rdd32;
2757fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2758fe6060f1SDimitry Andric}
2759fe6060f1SDimitry Andricclass Enc_bc03e5 : OpcodeHexagon {
2760fe6060f1SDimitry Andric  bits <17> Ii;
2761fe6060f1SDimitry Andric  let Inst{26-25} = Ii{16-15};
2762fe6060f1SDimitry Andric  let Inst{20-16} = Ii{14-10};
2763fe6060f1SDimitry Andric  let Inst{13-13} = Ii{9-9};
2764fe6060f1SDimitry Andric  let Inst{7-0} = Ii{8-1};
2765fe6060f1SDimitry Andric  bits <3> Nt8;
2766fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2767fe6060f1SDimitry Andric}
2768fe6060f1SDimitry Andricclass Enc_bd0b33 : OpcodeHexagon {
2769fe6060f1SDimitry Andric  bits <10> Ii;
2770fe6060f1SDimitry Andric  let Inst{21-21} = Ii{9-9};
2771fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
2772fe6060f1SDimitry Andric  bits <5> Rs32;
2773fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2774fe6060f1SDimitry Andric  bits <2> Pd4;
2775fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
2776fe6060f1SDimitry Andric}
2777fe6060f1SDimitry Andricclass Enc_bd1cbc : OpcodeHexagon {
2778fe6060f1SDimitry Andric  bits <5> Ii;
2779fe6060f1SDimitry Andric  let Inst{8-5} = Ii{4-1};
2780fe6060f1SDimitry Andric  bits <5> Ryy32;
2781fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
2782fe6060f1SDimitry Andric  bits <5> Rx32;
2783fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2784fe6060f1SDimitry Andric}
2785fe6060f1SDimitry Andricclass Enc_bd6011 : OpcodeHexagon {
2786fe6060f1SDimitry Andric  bits <5> Rt32;
2787fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2788fe6060f1SDimitry Andric  bits <5> Rs32;
2789fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2790fe6060f1SDimitry Andric  bits <5> Rd32;
2791fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2792fe6060f1SDimitry Andric}
2793fe6060f1SDimitry Andricclass Enc_bd811a : OpcodeHexagon {
2794fe6060f1SDimitry Andric  bits <5> Rs32;
2795fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2796fe6060f1SDimitry Andric  bits <5> Cd32;
2797fe6060f1SDimitry Andric  let Inst{4-0} = Cd32{4-0};
2798fe6060f1SDimitry Andric}
2799fe6060f1SDimitry Andricclass Enc_bddee3 : OpcodeHexagon {
2800fe6060f1SDimitry Andric  bits <5> Vu32;
2801fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2802fe6060f1SDimitry Andric  bits <5> Vyyyy32;
2803fe6060f1SDimitry Andric  let Inst{4-0} = Vyyyy32{4-0};
2804fe6060f1SDimitry Andric  bits <3> Rx8;
2805fe6060f1SDimitry Andric  let Inst{18-16} = Rx8{2-0};
2806fe6060f1SDimitry Andric}
2807fe6060f1SDimitry Andricclass Enc_be32a5 : OpcodeHexagon {
2808fe6060f1SDimitry Andric  bits <5> Rs32;
2809fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2810fe6060f1SDimitry Andric  bits <5> Rt32;
2811fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2812fe6060f1SDimitry Andric  bits <5> Rdd32;
2813fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2814fe6060f1SDimitry Andric}
2815bdd1243dSDimitry Andricclass Enc_bea5da : OpcodeHexagon {
2816bdd1243dSDimitry Andric  bits <10> Ii;
2817bdd1243dSDimitry Andric  let Inst{17-16} = Ii{9-8};
2818bdd1243dSDimitry Andric  let Inst{12-8} = Ii{7-3};
2819bdd1243dSDimitry Andric  let Inst{4-2} = Ii{2-0};
2820bdd1243dSDimitry Andric}
2821fe6060f1SDimitry Andricclass Enc_bfbf03 : OpcodeHexagon {
2822fe6060f1SDimitry Andric  bits <2> Qs4;
2823fe6060f1SDimitry Andric  let Inst{9-8} = Qs4{1-0};
2824fe6060f1SDimitry Andric  bits <2> Qd4;
2825fe6060f1SDimitry Andric  let Inst{1-0} = Qd4{1-0};
2826fe6060f1SDimitry Andric}
2827fe6060f1SDimitry Andricclass Enc_c0cdde : OpcodeHexagon {
2828fe6060f1SDimitry Andric  bits <9> Ii;
2829fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
2830fe6060f1SDimitry Andric  bits <5> Rs32;
2831fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2832fe6060f1SDimitry Andric  bits <2> Pd4;
2833fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
2834fe6060f1SDimitry Andric}
2835fe6060f1SDimitry Andricclass Enc_c175d0 : OpcodeHexagon {
2836fe6060f1SDimitry Andric  bits <4> Ii;
2837fe6060f1SDimitry Andric  let Inst{11-8} = Ii{3-0};
2838fe6060f1SDimitry Andric  bits <4> Rs16;
2839fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
2840fe6060f1SDimitry Andric  bits <4> Rd16;
2841fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
2842fe6060f1SDimitry Andric}
2843fe6060f1SDimitry Andricclass Enc_c1d806 : OpcodeHexagon {
2844fe6060f1SDimitry Andric  bits <5> Vu32;
2845fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2846fe6060f1SDimitry Andric  bits <5> Vv32;
2847fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
2848fe6060f1SDimitry Andric  bits <5> Vd32;
2849fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2850fe6060f1SDimitry Andric  bits <2> Qe4;
2851fe6060f1SDimitry Andric  let Inst{6-5} = Qe4{1-0};
2852fe6060f1SDimitry Andric}
2853fe6060f1SDimitry Andricclass Enc_c2b48e : OpcodeHexagon {
2854fe6060f1SDimitry Andric  bits <5> Rs32;
2855fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2856fe6060f1SDimitry Andric  bits <5> Rt32;
2857fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2858fe6060f1SDimitry Andric  bits <2> Pd4;
2859fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
2860fe6060f1SDimitry Andric}
2861fe6060f1SDimitry Andricclass Enc_c31910 : OpcodeHexagon {
2862fe6060f1SDimitry Andric  bits <8> Ii;
2863fe6060f1SDimitry Andric  let Inst{23-21} = Ii{7-5};
2864fe6060f1SDimitry Andric  let Inst{13-13} = Ii{4-4};
2865fe6060f1SDimitry Andric  let Inst{7-5} = Ii{3-1};
2866fe6060f1SDimitry Andric  let Inst{3-3} = Ii{0-0};
2867fe6060f1SDimitry Andric  bits <5> II;
2868fe6060f1SDimitry Andric  let Inst{12-8} = II{4-0};
2869fe6060f1SDimitry Andric  bits <5> Rx32;
2870fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2871fe6060f1SDimitry Andric}
2872fe6060f1SDimitry Andricclass Enc_c4dc92 : OpcodeHexagon {
2873fe6060f1SDimitry Andric  bits <2> Qv4;
2874fe6060f1SDimitry Andric  let Inst{23-22} = Qv4{1-0};
2875fe6060f1SDimitry Andric  bits <5> Vu32;
2876fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2877fe6060f1SDimitry Andric  bits <5> Vd32;
2878fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
2879fe6060f1SDimitry Andric}
2880fe6060f1SDimitry Andricclass Enc_c6220b : OpcodeHexagon {
2881fe6060f1SDimitry Andric  bits <2> Ii;
2882fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
2883fe6060f1SDimitry Andric  let Inst{7-7} = Ii{0-0};
2884fe6060f1SDimitry Andric  bits <5> Rs32;
2885fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2886fe6060f1SDimitry Andric  bits <5> Ru32;
2887fe6060f1SDimitry Andric  let Inst{12-8} = Ru32{4-0};
2888fe6060f1SDimitry Andric  bits <3> Nt8;
2889fe6060f1SDimitry Andric  let Inst{2-0} = Nt8{2-0};
2890fe6060f1SDimitry Andric}
2891fe6060f1SDimitry Andricclass Enc_c7a204 : OpcodeHexagon {
2892fe6060f1SDimitry Andric  bits <6> II;
2893fe6060f1SDimitry Andric  let Inst{5-0} = II{5-0};
2894fe6060f1SDimitry Andric  bits <5> Rtt32;
2895fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
2896fe6060f1SDimitry Andric  bits <5> Re32;
2897fe6060f1SDimitry Andric  let Inst{20-16} = Re32{4-0};
2898fe6060f1SDimitry Andric}
2899fe6060f1SDimitry Andricclass Enc_c7cd90 : OpcodeHexagon {
2900fe6060f1SDimitry Andric  bits <4> Ii;
2901fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
2902fe6060f1SDimitry Andric  bits <3> Nt8;
2903fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
2904fe6060f1SDimitry Andric  bits <5> Rx32;
2905fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2906fe6060f1SDimitry Andric}
2907fe6060f1SDimitry Andricclass Enc_c85e2a : OpcodeHexagon {
2908fe6060f1SDimitry Andric  bits <5> Ii;
2909fe6060f1SDimitry Andric  let Inst{12-8} = Ii{4-0};
2910fe6060f1SDimitry Andric  bits <5> II;
2911fe6060f1SDimitry Andric  let Inst{22-21} = II{4-3};
2912fe6060f1SDimitry Andric  let Inst{7-5} = II{2-0};
2913fe6060f1SDimitry Andric  bits <5> Rd32;
2914fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2915fe6060f1SDimitry Andric}
2916bdd1243dSDimitry Andricclass Enc_c89067 : OpcodeHexagon {
2917bdd1243dSDimitry Andric  bits <5> Rtt32;
2918bdd1243dSDimitry Andric  let Inst{20-16} = Rtt32{4-0};
2919bdd1243dSDimitry Andric  bits <5> Rdd32;
2920bdd1243dSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2921bdd1243dSDimitry Andric  bits <5> Rx32;
2922bdd1243dSDimitry Andric  let Inst{12-8} = Rx32{4-0};
2923bdd1243dSDimitry Andric}
2924fe6060f1SDimitry Andricclass Enc_c90aca : OpcodeHexagon {
2925fe6060f1SDimitry Andric  bits <8> Ii;
2926fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
2927fe6060f1SDimitry Andric  bits <5> Rs32;
2928fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2929fe6060f1SDimitry Andric  bits <5> Rx32;
2930fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
2931fe6060f1SDimitry Andric}
2932fe6060f1SDimitry Andricclass Enc_c9a18e : OpcodeHexagon {
2933fe6060f1SDimitry Andric  bits <11> Ii;
2934fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
2935fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
2936fe6060f1SDimitry Andric  bits <3> Ns8;
2937fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
2938fe6060f1SDimitry Andric  bits <5> Rt32;
2939fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2940fe6060f1SDimitry Andric}
2941fe6060f1SDimitry Andricclass Enc_c9e3bc : OpcodeHexagon {
2942fe6060f1SDimitry Andric  bits <4> Ii;
2943fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
2944fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
2945fe6060f1SDimitry Andric  bits <5> Rt32;
2946fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2947fe6060f1SDimitry Andric  bits <5> Vs32;
2948fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
2949fe6060f1SDimitry Andric}
2950fe6060f1SDimitry Andricclass Enc_ca3887 : OpcodeHexagon {
2951fe6060f1SDimitry Andric  bits <5> Rs32;
2952fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2953fe6060f1SDimitry Andric  bits <5> Rt32;
2954fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2955fe6060f1SDimitry Andric}
2956fe6060f1SDimitry Andricclass Enc_cb4b4e : OpcodeHexagon {
2957fe6060f1SDimitry Andric  bits <2> Pu4;
2958fe6060f1SDimitry Andric  let Inst{6-5} = Pu4{1-0};
2959fe6060f1SDimitry Andric  bits <5> Rs32;
2960fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2961fe6060f1SDimitry Andric  bits <5> Rt32;
2962fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2963fe6060f1SDimitry Andric  bits <5> Rdd32;
2964fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
2965fe6060f1SDimitry Andric}
2966fe6060f1SDimitry Andricclass Enc_cb785b : OpcodeHexagon {
2967fe6060f1SDimitry Andric  bits <5> Vu32;
2968fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
2969fe6060f1SDimitry Andric  bits <5> Rtt32;
2970fe6060f1SDimitry Andric  let Inst{20-16} = Rtt32{4-0};
2971fe6060f1SDimitry Andric  bits <5> Vdd32;
2972fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
2973fe6060f1SDimitry Andric}
2974fe6060f1SDimitry Andricclass Enc_cb9321 : OpcodeHexagon {
2975fe6060f1SDimitry Andric  bits <16> Ii;
2976fe6060f1SDimitry Andric  let Inst{27-21} = Ii{15-9};
2977fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
2978fe6060f1SDimitry Andric  bits <5> Rs32;
2979fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
2980fe6060f1SDimitry Andric  bits <5> Rd32;
2981fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
2982fe6060f1SDimitry Andric}
2983fe6060f1SDimitry Andricclass Enc_cc449f : OpcodeHexagon {
2984fe6060f1SDimitry Andric  bits <4> Ii;
2985fe6060f1SDimitry Andric  let Inst{6-3} = Ii{3-0};
2986fe6060f1SDimitry Andric  bits <2> Pv4;
2987fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
2988fe6060f1SDimitry Andric  bits <5> Rt32;
2989fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
2990fe6060f1SDimitry Andric  bits <5> Rx32;
2991fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
2992fe6060f1SDimitry Andric}
2993fe6060f1SDimitry Andricclass Enc_cc857d : OpcodeHexagon {
2994fe6060f1SDimitry Andric  bits <5> Vuu32;
2995fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
2996fe6060f1SDimitry Andric  bits <5> Rt32;
2997fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
2998fe6060f1SDimitry Andric  bits <5> Vx32;
2999fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
3000fe6060f1SDimitry Andric}
3001fe6060f1SDimitry Andricclass Enc_cd4705 : OpcodeHexagon {
3002fe6060f1SDimitry Andric  bits <3> Ii;
3003fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
3004fe6060f1SDimitry Andric  bits <5> Vu32;
3005fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
3006fe6060f1SDimitry Andric  bits <5> Vv32;
3007fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
3008fe6060f1SDimitry Andric  bits <5> Vx32;
3009fe6060f1SDimitry Andric  let Inst{4-0} = Vx32{4-0};
3010fe6060f1SDimitry Andric}
3011fe6060f1SDimitry Andricclass Enc_cd82bc : OpcodeHexagon {
3012fe6060f1SDimitry Andric  bits <4> Ii;
3013fe6060f1SDimitry Andric  let Inst{21-21} = Ii{3-3};
3014fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
3015fe6060f1SDimitry Andric  bits <6> II;
3016fe6060f1SDimitry Andric  let Inst{13-8} = II{5-0};
3017fe6060f1SDimitry Andric  bits <5> Rs32;
3018fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3019fe6060f1SDimitry Andric  bits <5> Rx32;
3020fe6060f1SDimitry Andric  let Inst{4-0} = Rx32{4-0};
3021fe6060f1SDimitry Andric}
3022fe6060f1SDimitry Andricclass Enc_cda00a : OpcodeHexagon {
3023fe6060f1SDimitry Andric  bits <12> Ii;
3024fe6060f1SDimitry Andric  let Inst{19-16} = Ii{11-8};
3025fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
3026fe6060f1SDimitry Andric  bits <2> Pu4;
3027fe6060f1SDimitry Andric  let Inst{22-21} = Pu4{1-0};
3028fe6060f1SDimitry Andric  bits <5> Rd32;
3029fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
3030fe6060f1SDimitry Andric}
3031fe6060f1SDimitry Andricclass Enc_ce6828 : OpcodeHexagon {
3032fe6060f1SDimitry Andric  bits <14> Ii;
3033fe6060f1SDimitry Andric  let Inst{26-25} = Ii{13-12};
3034fe6060f1SDimitry Andric  let Inst{13-13} = Ii{11-11};
3035fe6060f1SDimitry Andric  let Inst{7-0} = Ii{10-3};
3036fe6060f1SDimitry Andric  bits <5> Rs32;
3037fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3038fe6060f1SDimitry Andric  bits <5> Rtt32;
3039fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
3040fe6060f1SDimitry Andric}
3041fe6060f1SDimitry Andricclass Enc_cf1927 : OpcodeHexagon {
3042fe6060f1SDimitry Andric  bits <1> Mu2;
3043fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
3044fe6060f1SDimitry Andric  bits <3> Os8;
3045fe6060f1SDimitry Andric  let Inst{2-0} = Os8{2-0};
3046fe6060f1SDimitry Andric  bits <5> Rx32;
3047fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
3048fe6060f1SDimitry Andric}
3049bdd1243dSDimitry Andricclass Enc_d0fe02 : OpcodeHexagon {
3050bdd1243dSDimitry Andric  bits <5> Rxx32;
3051bdd1243dSDimitry Andric  let Inst{20-16} = Rxx32{4-0};
3052bdd1243dSDimitry Andric  bits <0> sgp10;
3053bdd1243dSDimitry Andric}
3054fe6060f1SDimitry Andricclass Enc_d15d19 : OpcodeHexagon {
3055fe6060f1SDimitry Andric  bits <1> Mu2;
3056fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
3057fe6060f1SDimitry Andric  bits <5> Vs32;
3058fe6060f1SDimitry Andric  let Inst{4-0} = Vs32{4-0};
3059fe6060f1SDimitry Andric  bits <5> Rx32;
3060fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
3061fe6060f1SDimitry Andric}
30625ffd83dbSDimitry Andricclass Enc_d2216a : OpcodeHexagon {
30635ffd83dbSDimitry Andric  bits <5> Rss32;
30645ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
30655ffd83dbSDimitry Andric  bits <5> Rtt32;
30665ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
30675ffd83dbSDimitry Andric  bits <5> Rd32;
30685ffd83dbSDimitry Andric  let Inst{4-0} = Rd32{4-0};
30695ffd83dbSDimitry Andric}
30705ffd83dbSDimitry Andricclass Enc_d2c7f1 : OpcodeHexagon {
30715ffd83dbSDimitry Andric  bits <5> Rtt32;
30725ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
30735ffd83dbSDimitry Andric  bits <5> Rss32;
30745ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
30755ffd83dbSDimitry Andric  bits <5> Rdd32;
30765ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
30775ffd83dbSDimitry Andric  bits <2> Pe4;
30785ffd83dbSDimitry Andric  let Inst{6-5} = Pe4{1-0};
30795ffd83dbSDimitry Andric}
30805ffd83dbSDimitry Andricclass Enc_d44e31 : OpcodeHexagon {
30815ffd83dbSDimitry Andric  bits <6> Ii;
30825ffd83dbSDimitry Andric  let Inst{12-7} = Ii{5-0};
30835ffd83dbSDimitry Andric  bits <5> Rs32;
30845ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
30855ffd83dbSDimitry Andric  bits <5> Rt32;
30865ffd83dbSDimitry Andric  let Inst{4-0} = Rt32{4-0};
30875ffd83dbSDimitry Andric}
3088fe6060f1SDimitry Andricclass Enc_d483b9 : OpcodeHexagon {
3089fe6060f1SDimitry Andric  bits <1> Ii;
3090fe6060f1SDimitry Andric  let Inst{5-5} = Ii{0-0};
3091fe6060f1SDimitry Andric  bits <5> Vuu32;
3092fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
30935ffd83dbSDimitry Andric  bits <5> Rt32;
3094fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
3095fe6060f1SDimitry Andric  bits <5> Vxx32;
3096fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
30975ffd83dbSDimitry Andric}
3098fe6060f1SDimitry Andricclass Enc_d50cd3 : OpcodeHexagon {
3099fe6060f1SDimitry Andric  bits <3> Ii;
3100fe6060f1SDimitry Andric  let Inst{7-5} = Ii{2-0};
3101fe6060f1SDimitry Andric  bits <5> Rss32;
3102fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
3103fe6060f1SDimitry Andric  bits <5> Rtt32;
3104fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
3105fe6060f1SDimitry Andric  bits <5> Rdd32;
3106fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
3107fe6060f1SDimitry Andric}
3108fe6060f1SDimitry Andricclass Enc_d5c73f : OpcodeHexagon {
3109fe6060f1SDimitry Andric  bits <1> Mu2;
3110fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
31115ffd83dbSDimitry Andric  bits <5> Rt32;
3112fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
3113fe6060f1SDimitry Andric  bits <5> Rx32;
3114fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
31155ffd83dbSDimitry Andric}
3116fe6060f1SDimitry Andricclass Enc_d6990d : OpcodeHexagon {
3117fe6060f1SDimitry Andric  bits <5> Vuu32;
3118fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
3119fe6060f1SDimitry Andric  bits <5> Rt32;
3120fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
3121fe6060f1SDimitry Andric  bits <5> Vxx32;
3122fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
3123fe6060f1SDimitry Andric}
3124fe6060f1SDimitry Andricclass Enc_d7a65e : OpcodeHexagon {
31255ffd83dbSDimitry Andric  bits <6> Ii;
31265ffd83dbSDimitry Andric  let Inst{12-7} = Ii{5-0};
3127fe6060f1SDimitry Andric  bits <6> II;
3128fe6060f1SDimitry Andric  let Inst{13-13} = II{5-5};
31295ffd83dbSDimitry Andric  let Inst{4-0} = II{4-0};
3130fe6060f1SDimitry Andric  bits <2> Pv4;
3131fe6060f1SDimitry Andric  let Inst{6-5} = Pv4{1-0};
31325ffd83dbSDimitry Andric  bits <5> Rs32;
31335ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
31345ffd83dbSDimitry Andric}
3135fe6060f1SDimitry Andricclass Enc_d7bc34 : OpcodeHexagon {
3136fe6060f1SDimitry Andric  bits <5> Vu32;
3137fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
3138fe6060f1SDimitry Andric  bits <3> Rt8;
3139fe6060f1SDimitry Andric  let Inst{18-16} = Rt8{2-0};
3140fe6060f1SDimitry Andric  bits <5> Vyyyy32;
3141fe6060f1SDimitry Andric  let Inst{4-0} = Vyyyy32{4-0};
3142fe6060f1SDimitry Andric}
3143fe6060f1SDimitry Andricclass Enc_d7dc10 : OpcodeHexagon {
31445ffd83dbSDimitry Andric  bits <5> Rs32;
31455ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
3146fe6060f1SDimitry Andric  bits <5> Rtt32;
3147fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
3148fe6060f1SDimitry Andric  bits <2> Pd4;
3149fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
31505ffd83dbSDimitry Andric}
31515ffd83dbSDimitry Andricclass Enc_da664b : OpcodeHexagon {
31525ffd83dbSDimitry Andric  bits <2> Ii;
31535ffd83dbSDimitry Andric  let Inst{13-13} = Ii{1-1};
31545ffd83dbSDimitry Andric  let Inst{7-7} = Ii{0-0};
31555ffd83dbSDimitry Andric  bits <5> Rs32;
31565ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
31575ffd83dbSDimitry Andric  bits <5> Rt32;
31585ffd83dbSDimitry Andric  let Inst{12-8} = Rt32{4-0};
31595ffd83dbSDimitry Andric  bits <5> Rd32;
31605ffd83dbSDimitry Andric  let Inst{4-0} = Rd32{4-0};
31610b57cec5SDimitry Andric}
31625ffd83dbSDimitry Andricclass Enc_da8d43 : OpcodeHexagon {
31635ffd83dbSDimitry Andric  bits <6> Ii;
31645ffd83dbSDimitry Andric  let Inst{13-13} = Ii{5-5};
31655ffd83dbSDimitry Andric  let Inst{7-3} = Ii{4-0};
31665ffd83dbSDimitry Andric  bits <2> Pv4;
31675ffd83dbSDimitry Andric  let Inst{1-0} = Pv4{1-0};
31685ffd83dbSDimitry Andric  bits <5> Rs32;
31695ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
31705ffd83dbSDimitry Andric  bits <5> Rt32;
31715ffd83dbSDimitry Andric  let Inst{12-8} = Rt32{4-0};
31725ffd83dbSDimitry Andric}
3173fe6060f1SDimitry Andricclass Enc_daea09 : OpcodeHexagon {
3174fe6060f1SDimitry Andric  bits <17> Ii;
3175fe6060f1SDimitry Andric  let Inst{23-22} = Ii{16-15};
3176fe6060f1SDimitry Andric  let Inst{20-16} = Ii{14-10};
3177fe6060f1SDimitry Andric  let Inst{13-13} = Ii{9-9};
3178fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
3179fe6060f1SDimitry Andric  bits <2> Pu4;
3180fe6060f1SDimitry Andric  let Inst{9-8} = Pu4{1-0};
3181fe6060f1SDimitry Andric}
3182fe6060f1SDimitry Andricclass Enc_db40cd : OpcodeHexagon {
3183fe6060f1SDimitry Andric  bits <6> Ii;
3184fe6060f1SDimitry Andric  let Inst{6-3} = Ii{5-2};
31855ffd83dbSDimitry Andric  bits <5> Rt32;
31865ffd83dbSDimitry Andric  let Inst{12-8} = Rt32{4-0};
31870b57cec5SDimitry Andric  bits <5> Rx32;
31880b57cec5SDimitry Andric  let Inst{20-16} = Rx32{4-0};
31890b57cec5SDimitry Andric}
3190fe6060f1SDimitry Andricclass Enc_dbd70c : OpcodeHexagon {
3191fe6060f1SDimitry Andric  bits <5> Rss32;
3192fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
3193fe6060f1SDimitry Andric  bits <5> Rtt32;
3194fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
3195fe6060f1SDimitry Andric  bits <2> Pu4;
3196fe6060f1SDimitry Andric  let Inst{6-5} = Pu4{1-0};
3197fe6060f1SDimitry Andric  bits <5> Rdd32;
3198fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
3199fe6060f1SDimitry Andric}
3200fe6060f1SDimitry Andricclass Enc_dd766a : OpcodeHexagon {
3201fe6060f1SDimitry Andric  bits <5> Vu32;
3202fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
3203fe6060f1SDimitry Andric  bits <5> Vdd32;
3204fe6060f1SDimitry Andric  let Inst{4-0} = Vdd32{4-0};
3205fe6060f1SDimitry Andric}
3206fe6060f1SDimitry Andricclass Enc_de0214 : OpcodeHexagon {
3207fe6060f1SDimitry Andric  bits <12> Ii;
3208fe6060f1SDimitry Andric  let Inst{26-25} = Ii{11-10};
3209fe6060f1SDimitry Andric  let Inst{13-5} = Ii{9-1};
32100b57cec5SDimitry Andric  bits <5> Rs32;
32110b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3212fe6060f1SDimitry Andric  bits <5> Rd32;
3213fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
32140b57cec5SDimitry Andric}
32150eae32dcSDimitry Andricclass Enc_de5ea0 : OpcodeHexagon {
32160eae32dcSDimitry Andric  bits <5> Vuu32;
32170eae32dcSDimitry Andric  let Inst{12-8} = Vuu32{4-0};
32180eae32dcSDimitry Andric  bits <5> Vv32;
32190eae32dcSDimitry Andric  let Inst{20-16} = Vv32{4-0};
32200eae32dcSDimitry Andric  bits <5> Vd32;
32210eae32dcSDimitry Andric  let Inst{4-0} = Vd32{4-0};
32220eae32dcSDimitry Andric}
3223fe6060f1SDimitry Andricclass Enc_e07374 : OpcodeHexagon {
3224fe6060f1SDimitry Andric  bits <5> Rs32;
3225fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3226fe6060f1SDimitry Andric  bits <5> Rtt32;
3227fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
3228fe6060f1SDimitry Andric  bits <5> Rd32;
3229fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
3230fe6060f1SDimitry Andric}
3231fe6060f1SDimitry Andricclass Enc_e0820b : OpcodeHexagon {
3232fe6060f1SDimitry Andric  bits <5> Vu32;
3233fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
3234fe6060f1SDimitry Andric  bits <5> Vv32;
3235fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
3236fe6060f1SDimitry Andric  bits <2> Qs4;
3237fe6060f1SDimitry Andric  let Inst{6-5} = Qs4{1-0};
3238fe6060f1SDimitry Andric  bits <5> Vd32;
3239fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
3240fe6060f1SDimitry Andric}
3241fe6060f1SDimitry Andricclass Enc_e0a47a : OpcodeHexagon {
32425ffd83dbSDimitry Andric  bits <4> Ii;
3243fe6060f1SDimitry Andric  let Inst{8-5} = Ii{3-0};
3244fe6060f1SDimitry Andric  bits <1> Mu2;
3245fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
3246fe6060f1SDimitry Andric  bits <5> Rd32;
3247fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
3248fe6060f1SDimitry Andric  bits <5> Rx32;
3249fe6060f1SDimitry Andric  let Inst{20-16} = Rx32{4-0};
3250fe6060f1SDimitry Andric}
3251fe6060f1SDimitry Andricclass Enc_e26546 : OpcodeHexagon {
3252fe6060f1SDimitry Andric  bits <5> Ii;
3253fe6060f1SDimitry Andric  let Inst{6-3} = Ii{4-1};
32545ffd83dbSDimitry Andric  bits <3> Nt8;
32555ffd83dbSDimitry Andric  let Inst{10-8} = Nt8{2-0};
32565ffd83dbSDimitry Andric  bits <5> Rx32;
32575ffd83dbSDimitry Andric  let Inst{20-16} = Rx32{4-0};
32585ffd83dbSDimitry Andric}
3259349cc55cSDimitry Andricclass Enc_e32517 : OpcodeHexagon {
3260349cc55cSDimitry Andric  bits <7> Sss128;
3261349cc55cSDimitry Andric  let Inst{22-16} = Sss128{6-0};
3262349cc55cSDimitry Andric  bits <5> Rdd32;
3263349cc55cSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
3264349cc55cSDimitry Andric}
3265fe6060f1SDimitry Andricclass Enc_e38e1f : OpcodeHexagon {
3266fe6060f1SDimitry Andric  bits <8> Ii;
3267fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
3268fe6060f1SDimitry Andric  bits <2> Pu4;
3269fe6060f1SDimitry Andric  let Inst{22-21} = Pu4{1-0};
3270fe6060f1SDimitry Andric  bits <5> Rs32;
3271fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3272fe6060f1SDimitry Andric  bits <5> Rd32;
3273fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
3274fe6060f1SDimitry Andric}
3275fe6060f1SDimitry Andricclass Enc_e39bb2 : OpcodeHexagon {
3276fe6060f1SDimitry Andric  bits <6> Ii;
3277fe6060f1SDimitry Andric  let Inst{9-4} = Ii{5-0};
3278fe6060f1SDimitry Andric  bits <4> Rd16;
3279fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
3280fe6060f1SDimitry Andric}
3281fe6060f1SDimitry Andricclass Enc_e3b0c4 : OpcodeHexagon {
3282fe6060f1SDimitry Andric
3283fe6060f1SDimitry Andric}
3284fe6060f1SDimitry Andricclass Enc_e66a97 : OpcodeHexagon {
3285fe6060f1SDimitry Andric  bits <7> Ii;
3286fe6060f1SDimitry Andric  let Inst{12-7} = Ii{6-1};
3287fe6060f1SDimitry Andric  bits <5> II;
3288fe6060f1SDimitry Andric  let Inst{4-0} = II{4-0};
3289fe6060f1SDimitry Andric  bits <5> Rs32;
3290fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3291fe6060f1SDimitry Andric}
3292fe6060f1SDimitry Andricclass Enc_e6abcf : OpcodeHexagon {
32935ffd83dbSDimitry Andric  bits <5> Rs32;
32945ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
32955ffd83dbSDimitry Andric  bits <5> Rtt32;
32965ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
32975ffd83dbSDimitry Andric}
3298fe6060f1SDimitry Andricclass Enc_e6c957 : OpcodeHexagon {
3299fe6060f1SDimitry Andric  bits <10> Ii;
3300fe6060f1SDimitry Andric  let Inst{21-21} = Ii{9-9};
3301fe6060f1SDimitry Andric  let Inst{13-5} = Ii{8-0};
3302fe6060f1SDimitry Andric  bits <5> Rdd32;
3303fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
3304fe6060f1SDimitry Andric}
3305fe6060f1SDimitry Andricclass Enc_e7581c : OpcodeHexagon {
3306fe6060f1SDimitry Andric  bits <5> Vu32;
3307fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
3308fe6060f1SDimitry Andric  bits <5> Vd32;
3309fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
3310fe6060f1SDimitry Andric}
3311fe6060f1SDimitry Andricclass Enc_e83554 : OpcodeHexagon {
3312fe6060f1SDimitry Andric  bits <5> Ii;
3313fe6060f1SDimitry Andric  let Inst{8-5} = Ii{4-1};
3314fe6060f1SDimitry Andric  bits <1> Mu2;
3315fe6060f1SDimitry Andric  let Inst{13-13} = Mu2{0-0};
3316fe6060f1SDimitry Andric  bits <5> Rd32;
3317fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
33185ffd83dbSDimitry Andric  bits <5> Rx32;
33195ffd83dbSDimitry Andric  let Inst{20-16} = Rx32{4-0};
33205ffd83dbSDimitry Andric}
33215ffd83dbSDimitry Andricclass Enc_e8c45e : OpcodeHexagon {
33225ffd83dbSDimitry Andric  bits <7> Ii;
33235ffd83dbSDimitry Andric  let Inst{13-13} = Ii{6-6};
33245ffd83dbSDimitry Andric  let Inst{7-3} = Ii{5-1};
33255ffd83dbSDimitry Andric  bits <2> Pv4;
33265ffd83dbSDimitry Andric  let Inst{1-0} = Pv4{1-0};
33270b57cec5SDimitry Andric  bits <5> Rs32;
33280b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
33290b57cec5SDimitry Andric  bits <5> Rt32;
33305ffd83dbSDimitry Andric  let Inst{12-8} = Rt32{4-0};
33315ffd83dbSDimitry Andric}
3332fe6060f1SDimitry Andricclass Enc_e90a15 : OpcodeHexagon {
33330b57cec5SDimitry Andric  bits <11> Ii;
3334fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
3335fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
3336fe6060f1SDimitry Andric  bits <3> Ns8;
3337fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
3338fe6060f1SDimitry Andric  bits <4> n1;
3339fe6060f1SDimitry Andric  let Inst{29-29} = n1{3-3};
3340fe6060f1SDimitry Andric  let Inst{26-25} = n1{2-1};
3341fe6060f1SDimitry Andric  let Inst{22-22} = n1{0-0};
33420b57cec5SDimitry Andric}
33430b57cec5SDimitry Andricclass Enc_e957fb : OpcodeHexagon {
33440b57cec5SDimitry Andric  bits <12> Ii;
33450b57cec5SDimitry Andric  let Inst{26-25} = Ii{11-10};
33460b57cec5SDimitry Andric  let Inst{13-13} = Ii{9-9};
33470b57cec5SDimitry Andric  let Inst{7-0} = Ii{8-1};
33480b57cec5SDimitry Andric  bits <5> Rs32;
33490b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
33500b57cec5SDimitry Andric  bits <5> Rt32;
33510b57cec5SDimitry Andric  let Inst{12-8} = Rt32{4-0};
33520b57cec5SDimitry Andric}
3353fe6060f1SDimitry Andricclass Enc_ea23e4 : OpcodeHexagon {
33545ffd83dbSDimitry Andric  bits <5> Rtt32;
33555ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
33565ffd83dbSDimitry Andric  bits <5> Rss32;
33575ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
33585ffd83dbSDimitry Andric  bits <5> Rdd32;
33595ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
33605ffd83dbSDimitry Andric}
3361fe6060f1SDimitry Andricclass Enc_ea4c54 : OpcodeHexagon {
33625ffd83dbSDimitry Andric  bits <2> Pu4;
33635ffd83dbSDimitry Andric  let Inst{6-5} = Pu4{1-0};
33645ffd83dbSDimitry Andric  bits <5> Rs32;
33655ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
3366fe6060f1SDimitry Andric  bits <5> Rt32;
3367fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
33685ffd83dbSDimitry Andric  bits <5> Rd32;
3369fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
33705ffd83dbSDimitry Andric}
3371fe6060f1SDimitry Andricclass Enc_eaa9f8 : OpcodeHexagon {
3372fe6060f1SDimitry Andric  bits <5> Vu32;
3373fe6060f1SDimitry Andric  let Inst{12-8} = Vu32{4-0};
3374fe6060f1SDimitry Andric  bits <5> Vv32;
3375fe6060f1SDimitry Andric  let Inst{20-16} = Vv32{4-0};
3376fe6060f1SDimitry Andric  bits <2> Qx4;
3377fe6060f1SDimitry Andric  let Inst{1-0} = Qx4{1-0};
3378fe6060f1SDimitry Andric}
3379fe6060f1SDimitry Andricclass Enc_eafd18 : OpcodeHexagon {
33805ffd83dbSDimitry Andric  bits <5> II;
33815ffd83dbSDimitry Andric  let Inst{12-8} = II{4-0};
3382fe6060f1SDimitry Andric  bits <11> Ii;
3383fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
3384fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
3385fe6060f1SDimitry Andric  bits <3> Ns8;
3386fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
33875ffd83dbSDimitry Andric}
3388fe6060f1SDimitry Andricclass Enc_eca7c8 : OpcodeHexagon {
33890b57cec5SDimitry Andric  bits <2> Ii;
33900b57cec5SDimitry Andric  let Inst{13-13} = Ii{1-1};
33910b57cec5SDimitry Andric  let Inst{7-7} = Ii{0-0};
33920b57cec5SDimitry Andric  bits <5> Rs32;
33930b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
33940b57cec5SDimitry Andric  bits <5> Ru32;
33950b57cec5SDimitry Andric  let Inst{12-8} = Ru32{4-0};
33960b57cec5SDimitry Andric  bits <5> Rt32;
33970b57cec5SDimitry Andric  let Inst{4-0} = Rt32{4-0};
33980b57cec5SDimitry Andric}
3399fe6060f1SDimitry Andricclass Enc_ecbcc8 : OpcodeHexagon {
3400fe6060f1SDimitry Andric  bits <5> Rs32;
3401fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
34020b57cec5SDimitry Andric}
3403fe6060f1SDimitry Andricclass Enc_ed48be : OpcodeHexagon {
34040b57cec5SDimitry Andric  bits <2> Ii;
3405fe6060f1SDimitry Andric  let Inst{6-5} = Ii{1-0};
3406fe6060f1SDimitry Andric  bits <3> Rdd8;
3407fe6060f1SDimitry Andric  let Inst{2-0} = Rdd8{2-0};
3408fe6060f1SDimitry Andric}
3409fe6060f1SDimitry Andricclass Enc_ed5027 : OpcodeHexagon {
3410fe6060f1SDimitry Andric  bits <5> Rss32;
3411fe6060f1SDimitry Andric  let Inst{20-16} = Rss32{4-0};
3412fe6060f1SDimitry Andric  bits <5> Gdd32;
3413fe6060f1SDimitry Andric  let Inst{4-0} = Gdd32{4-0};
3414fe6060f1SDimitry Andric}
3415fe6060f1SDimitry Andricclass Enc_ee5ed0 : OpcodeHexagon {
3416fe6060f1SDimitry Andric  bits <4> Rs16;
3417fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
3418fe6060f1SDimitry Andric  bits <4> Rd16;
3419fe6060f1SDimitry Andric  let Inst{3-0} = Rd16{3-0};
3420fe6060f1SDimitry Andric  bits <2> n1;
3421fe6060f1SDimitry Andric  let Inst{9-8} = n1{1-0};
3422fe6060f1SDimitry Andric}
3423fe6060f1SDimitry Andricclass Enc_ef601b : OpcodeHexagon {
3424fe6060f1SDimitry Andric  bits <4> Ii;
3425fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
3426fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
34270b57cec5SDimitry Andric  bits <2> Pv4;
3428fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
3429fe6060f1SDimitry Andric  bits <5> Rt32;
3430fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
34310b57cec5SDimitry Andric}
3432fe6060f1SDimitry Andricclass Enc_efaed8 : OpcodeHexagon {
3433fe6060f1SDimitry Andric  bits <1> Ii;
3434fe6060f1SDimitry Andric  let Inst{8-8} = Ii{0-0};
34350b57cec5SDimitry Andric}
3436fe6060f1SDimitry Andricclass Enc_f0cca7 : OpcodeHexagon {
3437fe6060f1SDimitry Andric  bits <8> Ii;
3438fe6060f1SDimitry Andric  let Inst{12-5} = Ii{7-0};
34395ffd83dbSDimitry Andric  bits <6> II;
3440fe6060f1SDimitry Andric  let Inst{20-16} = II{5-1};
3441fe6060f1SDimitry Andric  let Inst{13-13} = II{0-0};
3442fe6060f1SDimitry Andric  bits <5> Rdd32;
3443fe6060f1SDimitry Andric  let Inst{4-0} = Rdd32{4-0};
34440b57cec5SDimitry Andric}
34450b57cec5SDimitry Andricclass Enc_f20719 : OpcodeHexagon {
34460b57cec5SDimitry Andric  bits <7> Ii;
34470b57cec5SDimitry Andric  let Inst{12-7} = Ii{6-1};
34480b57cec5SDimitry Andric  bits <6> II;
34490b57cec5SDimitry Andric  let Inst{13-13} = II{5-5};
34500b57cec5SDimitry Andric  let Inst{4-0} = II{4-0};
34510b57cec5SDimitry Andric  bits <2> Pv4;
34520b57cec5SDimitry Andric  let Inst{6-5} = Pv4{1-0};
34530b57cec5SDimitry Andric  bits <5> Rs32;
34540b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
34550b57cec5SDimitry Andric}
34565ffd83dbSDimitry Andricclass Enc_f37377 : OpcodeHexagon {
34575ffd83dbSDimitry Andric  bits <8> Ii;
34585ffd83dbSDimitry Andric  let Inst{12-7} = Ii{7-2};
34595ffd83dbSDimitry Andric  bits <8> II;
34605ffd83dbSDimitry Andric  let Inst{13-13} = II{7-7};
34615ffd83dbSDimitry Andric  let Inst{6-0} = II{6-0};
34620b57cec5SDimitry Andric  bits <5> Rs32;
34630b57cec5SDimitry Andric  let Inst{20-16} = Rs32{4-0};
34640b57cec5SDimitry Andric}
3465fe6060f1SDimitry Andricclass Enc_f394d3 : OpcodeHexagon {
34660b57cec5SDimitry Andric  bits <6> II;
3467fe6060f1SDimitry Andric  let Inst{11-8} = II{5-2};
3468fe6060f1SDimitry Andric  let Inst{6-5} = II{1-0};
3469fe6060f1SDimitry Andric  bits <5> Ryy32;
3470fe6060f1SDimitry Andric  let Inst{4-0} = Ryy32{4-0};
34715ffd83dbSDimitry Andric  bits <5> Re32;
34725ffd83dbSDimitry Andric  let Inst{20-16} = Re32{4-0};
34730b57cec5SDimitry Andric}
34745ffd83dbSDimitry Andricclass Enc_f3f408 : OpcodeHexagon {
34755ffd83dbSDimitry Andric  bits <4> Ii;
34765ffd83dbSDimitry Andric  let Inst{13-13} = Ii{3-3};
34775ffd83dbSDimitry Andric  let Inst{10-8} = Ii{2-0};
34785ffd83dbSDimitry Andric  bits <5> Rt32;
34795ffd83dbSDimitry Andric  let Inst{20-16} = Rt32{4-0};
34805ffd83dbSDimitry Andric  bits <5> Vd32;
34815ffd83dbSDimitry Andric  let Inst{4-0} = Vd32{4-0};
34825ffd83dbSDimitry Andric}
3483fe6060f1SDimitry Andricclass Enc_f4413a : OpcodeHexagon {
34845ffd83dbSDimitry Andric  bits <4> Ii;
3485fe6060f1SDimitry Andric  let Inst{8-5} = Ii{3-0};
3486fe6060f1SDimitry Andric  bits <2> Pt4;
3487fe6060f1SDimitry Andric  let Inst{10-9} = Pt4{1-0};
3488fe6060f1SDimitry Andric  bits <5> Rd32;
3489fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
34905ffd83dbSDimitry Andric  bits <5> Rx32;
34915ffd83dbSDimitry Andric  let Inst{20-16} = Rx32{4-0};
34925ffd83dbSDimitry Andric}
3493fe6060f1SDimitry Andricclass Enc_f44229 : OpcodeHexagon {
3494fe6060f1SDimitry Andric  bits <7> Ii;
3495fe6060f1SDimitry Andric  let Inst{13-13} = Ii{6-6};
3496fe6060f1SDimitry Andric  let Inst{7-3} = Ii{5-1};
34975ffd83dbSDimitry Andric  bits <2> Pv4;
3498fe6060f1SDimitry Andric  let Inst{1-0} = Pv4{1-0};
3499fe6060f1SDimitry Andric  bits <5> Rs32;
3500fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3501fe6060f1SDimitry Andric  bits <3> Nt8;
3502fe6060f1SDimitry Andric  let Inst{10-8} = Nt8{2-0};
35035ffd83dbSDimitry Andric}
3504fe6060f1SDimitry Andricclass Enc_f4f57b : OpcodeHexagon {
3505fe6060f1SDimitry Andric  bits <2> Ii;
3506fe6060f1SDimitry Andric  let Inst{6-5} = Ii{1-0};
3507fe6060f1SDimitry Andric  bits <5> Vuu32;
3508fe6060f1SDimitry Andric  let Inst{12-8} = Vuu32{4-0};
3509fe6060f1SDimitry Andric  bits <5> Vvv32;
3510fe6060f1SDimitry Andric  let Inst{20-16} = Vvv32{4-0};
3511fe6060f1SDimitry Andric  bits <5> Vxx32;
3512fe6060f1SDimitry Andric  let Inst{4-0} = Vxx32{4-0};
35135ffd83dbSDimitry Andric}
3514fe6060f1SDimitry Andricclass Enc_f55a0c : OpcodeHexagon {
3515fe6060f1SDimitry Andric  bits <6> Ii;
3516fe6060f1SDimitry Andric  let Inst{11-8} = Ii{5-2};
3517fe6060f1SDimitry Andric  bits <4> Rs16;
3518fe6060f1SDimitry Andric  let Inst{7-4} = Rs16{3-0};
3519fe6060f1SDimitry Andric  bits <4> Rt16;
3520fe6060f1SDimitry Andric  let Inst{3-0} = Rt16{3-0};
35215ffd83dbSDimitry Andric}
3522fe6060f1SDimitry Andricclass Enc_f5e933 : OpcodeHexagon {
3523fe6060f1SDimitry Andric  bits <2> Ps4;
3524fe6060f1SDimitry Andric  let Inst{17-16} = Ps4{1-0};
3525fe6060f1SDimitry Andric  bits <5> Rd32;
3526fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
35275ffd83dbSDimitry Andric}
3528fe6060f1SDimitry Andricclass Enc_f6fe0b : OpcodeHexagon {
3529fe6060f1SDimitry Andric  bits <11> Ii;
3530fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
3531fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
3532fe6060f1SDimitry Andric  bits <4> Rs16;
3533fe6060f1SDimitry Andric  let Inst{19-16} = Rs16{3-0};
3534fe6060f1SDimitry Andric  bits <6> n1;
3535fe6060f1SDimitry Andric  let Inst{28-28} = n1{5-5};
3536fe6060f1SDimitry Andric  let Inst{24-22} = n1{4-2};
3537fe6060f1SDimitry Andric  let Inst{13-13} = n1{1-1};
3538fe6060f1SDimitry Andric  let Inst{8-8} = n1{0-0};
35395ffd83dbSDimitry Andric}
35405ffd83dbSDimitry Andricclass Enc_f7430e : OpcodeHexagon {
35415ffd83dbSDimitry Andric  bits <4> Ii;
35425ffd83dbSDimitry Andric  let Inst{13-13} = Ii{3-3};
35435ffd83dbSDimitry Andric  let Inst{10-8} = Ii{2-0};
35445ffd83dbSDimitry Andric  bits <2> Pv4;
35455ffd83dbSDimitry Andric  let Inst{12-11} = Pv4{1-0};
35465ffd83dbSDimitry Andric  bits <5> Rt32;
35475ffd83dbSDimitry Andric  let Inst{20-16} = Rt32{4-0};
35485ffd83dbSDimitry Andric  bits <3> Os8;
35495ffd83dbSDimitry Andric  let Inst{2-0} = Os8{2-0};
35505ffd83dbSDimitry Andric}
3551fe6060f1SDimitry Andricclass Enc_f77fbc : OpcodeHexagon {
35525ffd83dbSDimitry Andric  bits <4> Ii;
35535ffd83dbSDimitry Andric  let Inst{13-13} = Ii{3-3};
35545ffd83dbSDimitry Andric  let Inst{10-8} = Ii{2-0};
35555ffd83dbSDimitry Andric  bits <5> Rt32;
35565ffd83dbSDimitry Andric  let Inst{20-16} = Rt32{4-0};
3557fe6060f1SDimitry Andric  bits <3> Os8;
3558fe6060f1SDimitry Andric  let Inst{2-0} = Os8{2-0};
35595ffd83dbSDimitry Andric}
3560fe6060f1SDimitry Andricclass Enc_f79415 : OpcodeHexagon {
3561fe6060f1SDimitry Andric  bits <2> Ii;
3562fe6060f1SDimitry Andric  let Inst{13-13} = Ii{1-1};
3563fe6060f1SDimitry Andric  let Inst{6-6} = Ii{0-0};
3564fe6060f1SDimitry Andric  bits <6> II;
3565fe6060f1SDimitry Andric  let Inst{5-0} = II{5-0};
3566fe6060f1SDimitry Andric  bits <5> Ru32;
3567fe6060f1SDimitry Andric  let Inst{20-16} = Ru32{4-0};
3568fe6060f1SDimitry Andric  bits <5> Rtt32;
3569fe6060f1SDimitry Andric  let Inst{12-8} = Rtt32{4-0};
35705ffd83dbSDimitry Andric}
3571fe6060f1SDimitry Andricclass Enc_f7ea77 : OpcodeHexagon {
3572fe6060f1SDimitry Andric  bits <11> Ii;
3573fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
3574fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
3575fe6060f1SDimitry Andric  bits <3> Ns8;
3576fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
3577fe6060f1SDimitry Andric  bits <4> n1;
3578fe6060f1SDimitry Andric  let Inst{29-29} = n1{3-3};
3579fe6060f1SDimitry Andric  let Inst{26-25} = n1{2-1};
3580fe6060f1SDimitry Andric  let Inst{13-13} = n1{0-0};
3581fe6060f1SDimitry Andric}
3582fe6060f1SDimitry Andricclass Enc_f82302 : OpcodeHexagon {
3583fe6060f1SDimitry Andric  bits <11> Ii;
3584fe6060f1SDimitry Andric  let Inst{21-20} = Ii{10-9};
3585fe6060f1SDimitry Andric  let Inst{7-1} = Ii{8-2};
3586fe6060f1SDimitry Andric  bits <3> Ns8;
3587fe6060f1SDimitry Andric  let Inst{18-16} = Ns8{2-0};
3588fe6060f1SDimitry Andric  bits <4> n1;
3589fe6060f1SDimitry Andric  let Inst{29-29} = n1{3-3};
3590fe6060f1SDimitry Andric  let Inst{26-25} = n1{2-1};
3591fe6060f1SDimitry Andric  let Inst{23-23} = n1{0-0};
3592fe6060f1SDimitry Andric}
3593fe6060f1SDimitry Andricclass Enc_f82eaf : OpcodeHexagon {
3594fe6060f1SDimitry Andric  bits <8> Ii;
3595fe6060f1SDimitry Andric  let Inst{10-5} = Ii{7-2};
3596fe6060f1SDimitry Andric  bits <2> Pt4;
3597fe6060f1SDimitry Andric  let Inst{12-11} = Pt4{1-0};
3598fe6060f1SDimitry Andric  bits <5> Rs32;
3599fe6060f1SDimitry Andric  let Inst{20-16} = Rs32{4-0};
3600fe6060f1SDimitry Andric  bits <5> Rd32;
3601fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
3602fe6060f1SDimitry Andric}
3603fe6060f1SDimitry Andricclass Enc_f8c1c4 : OpcodeHexagon {
3604fe6060f1SDimitry Andric  bits <2> Pv4;
3605fe6060f1SDimitry Andric  let Inst{12-11} = Pv4{1-0};
36065ffd83dbSDimitry Andric  bits <1> Mu2;
36075ffd83dbSDimitry Andric  let Inst{13-13} = Mu2{0-0};
3608fe6060f1SDimitry Andric  bits <5> Vd32;
3609fe6060f1SDimitry Andric  let Inst{4-0} = Vd32{4-0};
36105ffd83dbSDimitry Andric  bits <5> Rx32;
36115ffd83dbSDimitry Andric  let Inst{20-16} = Rx32{4-0};
36125ffd83dbSDimitry Andric}
36135ffd83dbSDimitry Andricclass Enc_f8ecf9 : OpcodeHexagon {
36145ffd83dbSDimitry Andric  bits <5> Vuu32;
36155ffd83dbSDimitry Andric  let Inst{12-8} = Vuu32{4-0};
36165ffd83dbSDimitry Andric  bits <5> Vvv32;
36175ffd83dbSDimitry Andric  let Inst{20-16} = Vvv32{4-0};
36185ffd83dbSDimitry Andric  bits <5> Vdd32;
36195ffd83dbSDimitry Andric  let Inst{4-0} = Vdd32{4-0};
36205ffd83dbSDimitry Andric}
3621fe6060f1SDimitry Andricclass Enc_fa3ba4 : OpcodeHexagon {
36225ffd83dbSDimitry Andric  bits <14> Ii;
3623fe6060f1SDimitry Andric  let Inst{26-25} = Ii{13-12};
3624fe6060f1SDimitry Andric  let Inst{13-5} = Ii{11-3};
36255ffd83dbSDimitry Andric  bits <5> Rs32;
36265ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
36275ffd83dbSDimitry Andric  bits <5> Rdd32;
36285ffd83dbSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
36295ffd83dbSDimitry Andric}
3630fe6060f1SDimitry Andricclass Enc_fb6577 : OpcodeHexagon {
3631fe6060f1SDimitry Andric  bits <2> Pu4;
3632fe6060f1SDimitry Andric  let Inst{9-8} = Pu4{1-0};
36335ffd83dbSDimitry Andric  bits <5> Rs32;
36345ffd83dbSDimitry Andric  let Inst{20-16} = Rs32{4-0};
3635fe6060f1SDimitry Andric  bits <5> Rd32;
3636fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
36375ffd83dbSDimitry Andric}
3638bdd1243dSDimitry Andricclass Enc_fc4562 : OpcodeHexagon {
3639bdd1243dSDimitry Andric  bits <5> Rs32;
3640bdd1243dSDimitry Andric  let Inst{12-8} = Rs32{4-0};
3641bdd1243dSDimitry Andric  bits <5> Rtt32;
3642bdd1243dSDimitry Andric  let Inst{20-16} = Rtt32{4-0};
3643bdd1243dSDimitry Andric  bits <5> Rdd32;
3644bdd1243dSDimitry Andric  let Inst{4-0} = Rdd32{4-0};
3645bdd1243dSDimitry Andric}
3646fe6060f1SDimitry Andricclass Enc_fcf7a7 : OpcodeHexagon {
36475ffd83dbSDimitry Andric  bits <5> Rss32;
36485ffd83dbSDimitry Andric  let Inst{20-16} = Rss32{4-0};
36495ffd83dbSDimitry Andric  bits <5> Rtt32;
36505ffd83dbSDimitry Andric  let Inst{12-8} = Rtt32{4-0};
3651fe6060f1SDimitry Andric  bits <2> Pd4;
3652fe6060f1SDimitry Andric  let Inst{1-0} = Pd4{1-0};
36535ffd83dbSDimitry Andric}
3654fe6060f1SDimitry Andricclass Enc_fda92c : OpcodeHexagon {
3655fe6060f1SDimitry Andric  bits <17> Ii;
3656fe6060f1SDimitry Andric  let Inst{26-25} = Ii{16-15};
3657fe6060f1SDimitry Andric  let Inst{20-16} = Ii{14-10};
3658fe6060f1SDimitry Andric  let Inst{13-13} = Ii{9-9};
3659fe6060f1SDimitry Andric  let Inst{7-0} = Ii{8-1};
3660fe6060f1SDimitry Andric  bits <5> Rt32;
3661fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
3662fe6060f1SDimitry Andric}
3663fe6060f1SDimitry Andricclass Enc_fef969 : OpcodeHexagon {
3664fe6060f1SDimitry Andric  bits <6> Ii;
3665fe6060f1SDimitry Andric  let Inst{20-16} = Ii{5-1};
3666fe6060f1SDimitry Andric  let Inst{5-5} = Ii{0-0};
3667fe6060f1SDimitry Andric  bits <5> Rt32;
3668fe6060f1SDimitry Andric  let Inst{12-8} = Rt32{4-0};
3669fe6060f1SDimitry Andric  bits <5> Rd32;
3670fe6060f1SDimitry Andric  let Inst{4-0} = Rd32{4-0};
3671fe6060f1SDimitry Andric}
3672fe6060f1SDimitry Andricclass Enc_ff3442 : OpcodeHexagon {
3673fe6060f1SDimitry Andric  bits <4> Ii;
3674fe6060f1SDimitry Andric  let Inst{13-13} = Ii{3-3};
3675fe6060f1SDimitry Andric  let Inst{10-8} = Ii{2-0};
3676fe6060f1SDimitry Andric  bits <5> Rt32;
3677fe6060f1SDimitry Andric  let Inst{20-16} = Rt32{4-0};
36785ffd83dbSDimitry Andric}
3679