]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td
Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302418, and update
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / Hexagon / HexagonDepInstrFormats.td
1 //===--- HexagonDepInstrFormats.td ----------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 class Enc_890909 : OpcodeHexagon {
11   bits <5> Rs32;
12   let Inst{20-16} = Rs32{4-0};
13   bits <5> Rd32;
14   let Inst{4-0} = Rd32{4-0};
15   bits <2> Pe4;
16   let Inst{6-5} = Pe4{1-0};
17 }
18 class Enc_527412 : OpcodeHexagon {
19   bits <2> Ps4;
20   let Inst{17-16} = Ps4{1-0};
21   bits <2> Pt4;
22   let Inst{9-8} = Pt4{1-0};
23   bits <5> Rd32;
24   let Inst{4-0} = Rd32{4-0};
25 }
26 class Enc_efaed8 : OpcodeHexagon {
27   bits <1> Ii;
28   let Inst{8-8} = Ii{0-0};
29 }
30 class Enc_a568d4 : OpcodeHexagon {
31   bits <5> Rt32;
32   let Inst{12-8} = Rt32{4-0};
33   bits <5> Rs32;
34   let Inst{20-16} = Rs32{4-0};
35   bits <5> Rx32;
36   let Inst{4-0} = Rx32{4-0};
37 }
38 class Enc_27b757 : OpcodeHexagon {
39   bits <4> Ii;
40   let Inst{13-13} = Ii{3-3};
41   let Inst{10-8} = Ii{2-0};
42   bits <2> Pv4;
43   let Inst{12-11} = Pv4{1-0};
44   bits <5> Rt32;
45   let Inst{20-16} = Rt32{4-0};
46   bits <5> Vs32;
47   let Inst{4-0} = Vs32{4-0};
48 }
49 class Enc_5de85f : OpcodeHexagon {
50   bits <11> Ii;
51   let Inst{21-20} = Ii{10-9};
52   let Inst{7-1} = Ii{8-2};
53   bits <5> Rt32;
54   let Inst{12-8} = Rt32{4-0};
55   bits <3> Ns8;
56   let Inst{18-16} = Ns8{2-0};
57 }
58 class Enc_0e41fa : OpcodeHexagon {
59   bits <5> Vuu32;
60   let Inst{12-8} = Vuu32{4-0};
61   bits <5> Rt32;
62   let Inst{20-16} = Rt32{4-0};
63   bits <5> Vd32;
64   let Inst{4-0} = Vd32{4-0};
65 }
66 class Enc_802dc0 : OpcodeHexagon {
67   bits <1> Ii;
68   let Inst{8-8} = Ii{0-0};
69   bits <2> Qv4;
70   let Inst{23-22} = Qv4{1-0};
71 }
72 class Enc_6b197f : OpcodeHexagon {
73   bits <4> Ii;
74   let Inst{8-5} = Ii{3-0};
75   bits <5> Ryy32;
76   let Inst{4-0} = Ryy32{4-0};
77   bits <5> Rx32;
78   let Inst{20-16} = Rx32{4-0};
79 }
80 class Enc_1f5d8f : OpcodeHexagon {
81   bits <1> Mu2;
82   let Inst{13-13} = Mu2{0-0};
83   bits <5> Ryy32;
84   let Inst{4-0} = Ryy32{4-0};
85   bits <5> Rx32;
86   let Inst{20-16} = Rx32{4-0};
87 }
88 class Enc_51436c : OpcodeHexagon {
89   bits <16> Ii;
90   let Inst{23-22} = Ii{15-14};
91   let Inst{13-0} = Ii{13-0};
92   bits <5> Rx32;
93   let Inst{20-16} = Rx32{4-0};
94 }
95 class Enc_c7a204 : OpcodeHexagon {
96   bits <6> II;
97   let Inst{5-0} = II{5-0};
98   bits <5> Rtt32;
99   let Inst{12-8} = Rtt32{4-0};
100   bits <5> Re32;
101   let Inst{20-16} = Re32{4-0};
102 }
103 class Enc_db40cd : OpcodeHexagon {
104   bits <6> Ii;
105   let Inst{6-3} = Ii{5-2};
106   bits <5> Rt32;
107   let Inst{12-8} = Rt32{4-0};
108   bits <5> Rx32;
109   let Inst{20-16} = Rx32{4-0};
110 }
111 class Enc_a1e29d : OpcodeHexagon {
112   bits <5> Ii;
113   let Inst{12-8} = Ii{4-0};
114   bits <5> II;
115   let Inst{22-21} = II{4-3};
116   let Inst{7-5} = II{2-0};
117   bits <5> Rs32;
118   let Inst{20-16} = Rs32{4-0};
119   bits <5> Rx32;
120   let Inst{4-0} = Rx32{4-0};
121 }
122 class Enc_d15d19 : OpcodeHexagon {
123   bits <1> Mu2;
124   let Inst{13-13} = Mu2{0-0};
125   bits <5> Vs32;
126   let Inst{4-0} = Vs32{4-0};
127   bits <5> Rx32;
128   let Inst{20-16} = Rx32{4-0};
129 }
130 class Enc_e90a15 : OpcodeHexagon {
131   bits <11> Ii;
132   let Inst{21-20} = Ii{10-9};
133   let Inst{7-1} = Ii{8-2};
134   bits <3> Ns8;
135   let Inst{18-16} = Ns8{2-0};
136   bits <4> n1;
137   let Inst{29-29} = n1{3-3};
138   let Inst{26-25} = n1{2-1};
139   let Inst{22-22} = n1{0-0};
140 }
141 class Enc_e0a47a : OpcodeHexagon {
142   bits <4> Ii;
143   let Inst{8-5} = Ii{3-0};
144   bits <1> Mu2;
145   let Inst{13-13} = Mu2{0-0};
146   bits <5> Rd32;
147   let Inst{4-0} = Rd32{4-0};
148   bits <5> Rx32;
149   let Inst{20-16} = Rx32{4-0};
150 }
151 class Enc_140c83 : OpcodeHexagon {
152   bits <10> Ii;
153   let Inst{21-21} = Ii{9-9};
154   let Inst{13-5} = Ii{8-0};
155   bits <5> Rs32;
156   let Inst{20-16} = Rs32{4-0};
157   bits <5> Rd32;
158   let Inst{4-0} = Rd32{4-0};
159 }
160 class Enc_7eee72 : OpcodeHexagon {
161   bits <1> Mu2;
162   let Inst{13-13} = Mu2{0-0};
163   bits <5> Rdd32;
164   let Inst{4-0} = Rdd32{4-0};
165   bits <5> Rx32;
166   let Inst{20-16} = Rx32{4-0};
167 }
168 class Enc_d7dc10 : OpcodeHexagon {
169   bits <5> Rs32;
170   let Inst{20-16} = Rs32{4-0};
171   bits <5> Rtt32;
172   let Inst{12-8} = Rtt32{4-0};
173   bits <2> Pd4;
174   let Inst{1-0} = Pd4{1-0};
175 }
176 class Enc_736575 : OpcodeHexagon {
177   bits <11> Ii;
178   let Inst{21-20} = Ii{10-9};
179   let Inst{7-1} = Ii{8-2};
180   bits <4> Rs16;
181   let Inst{19-16} = Rs16{3-0};
182   bits <4> n1;
183   let Inst{28-28} = n1{3-3};
184   let Inst{25-23} = n1{2-0};
185 }
186 class Enc_8dec2e : OpcodeHexagon {
187   bits <5> Ii;
188   let Inst{12-8} = Ii{4-0};
189   bits <5> Rss32;
190   let Inst{20-16} = Rss32{4-0};
191   bits <5> Rd32;
192   let Inst{4-0} = Rd32{4-0};
193 }
194 class Enc_eaa9f8 : OpcodeHexagon {
195   bits <5> Vu32;
196   let Inst{12-8} = Vu32{4-0};
197   bits <5> Vv32;
198   let Inst{20-16} = Vv32{4-0};
199   bits <2> Qx4;
200   let Inst{1-0} = Qx4{1-0};
201 }
202 class Enc_509701 : OpcodeHexagon {
203   bits <19> Ii;
204   let Inst{26-25} = Ii{18-17};
205   let Inst{20-16} = Ii{16-12};
206   let Inst{13-5} = Ii{11-3};
207   bits <5> Rdd32;
208   let Inst{4-0} = Rdd32{4-0};
209 }
210 class Enc_830e5d : OpcodeHexagon {
211   bits <8> Ii;
212   let Inst{12-5} = Ii{7-0};
213   bits <8> II;
214   let Inst{22-16} = II{7-1};
215   let Inst{13-13} = II{0-0};
216   bits <2> Pu4;
217   let Inst{24-23} = Pu4{1-0};
218   bits <5> Rd32;
219   let Inst{4-0} = Rd32{4-0};
220 }
221 class Enc_79b8c8 : OpcodeHexagon {
222   bits <6> Ii;
223   let Inst{6-3} = Ii{5-2};
224   bits <1> Mu2;
225   let Inst{13-13} = Mu2{0-0};
226   bits <5> Rt32;
227   let Inst{12-8} = Rt32{4-0};
228   bits <5> Rx32;
229   let Inst{20-16} = Rx32{4-0};
230 }
231 class Enc_58a8bf : OpcodeHexagon {
232   bits <3> Ii;
233   let Inst{10-8} = Ii{2-0};
234   bits <2> Pv4;
235   let Inst{12-11} = Pv4{1-0};
236   bits <5> Vd32;
237   let Inst{4-0} = Vd32{4-0};
238   bits <5> Rx32;
239   let Inst{20-16} = Rx32{4-0};
240 }
241 class Enc_041d7b : OpcodeHexagon {
242   bits <11> Ii;
243   let Inst{21-20} = Ii{10-9};
244   let Inst{7-1} = Ii{8-2};
245   bits <4> Rs16;
246   let Inst{19-16} = Rs16{3-0};
247   bits <5> n1;
248   let Inst{28-28} = n1{4-4};
249   let Inst{24-23} = n1{3-2};
250   let Inst{13-13} = n1{1-1};
251   let Inst{8-8} = n1{0-0};
252 }
253 class Enc_f44229 : OpcodeHexagon {
254   bits <7> Ii;
255   let Inst{13-13} = Ii{6-6};
256   let Inst{7-3} = Ii{5-1};
257   bits <2> Pv4;
258   let Inst{1-0} = Pv4{1-0};
259   bits <5> Rs32;
260   let Inst{20-16} = Rs32{4-0};
261   bits <3> Nt8;
262   let Inst{10-8} = Nt8{2-0};
263 }
264 class Enc_aad80c : OpcodeHexagon {
265   bits <5> Vuu32;
266   let Inst{12-8} = Vuu32{4-0};
267   bits <5> Rt32;
268   let Inst{20-16} = Rt32{4-0};
269   bits <5> Vdd32;
270   let Inst{4-0} = Vdd32{4-0};
271 }
272 class Enc_87c142 : OpcodeHexagon {
273   bits <7> Ii;
274   let Inst{8-4} = Ii{6-2};
275   bits <4> Rt16;
276   let Inst{3-0} = Rt16{3-0};
277 }
278 class Enc_86a14b : OpcodeHexagon {
279   bits <8> Ii;
280   let Inst{7-3} = Ii{7-3};
281   bits <3> Rdd8;
282   let Inst{2-0} = Rdd8{2-0};
283 }
284 class Enc_9a33d5 : OpcodeHexagon {
285   bits <7> Ii;
286   let Inst{6-3} = Ii{6-3};
287   bits <2> Pv4;
288   let Inst{1-0} = Pv4{1-0};
289   bits <5> Rtt32;
290   let Inst{12-8} = Rtt32{4-0};
291   bits <5> Rx32;
292   let Inst{20-16} = Rx32{4-0};
293 }
294 class Enc_a56825 : OpcodeHexagon {
295   bits <5> Rss32;
296   let Inst{20-16} = Rss32{4-0};
297   bits <5> Rtt32;
298   let Inst{12-8} = Rtt32{4-0};
299   bits <5> Rdd32;
300   let Inst{4-0} = Rdd32{4-0};
301 }
302 class Enc_9ea4cf : OpcodeHexagon {
303   bits <2> Ii;
304   let Inst{13-13} = Ii{1-1};
305   let Inst{6-6} = Ii{0-0};
306   bits <6> II;
307   let Inst{5-0} = II{5-0};
308   bits <5> Ru32;
309   let Inst{20-16} = Ru32{4-0};
310   bits <5> Rt32;
311   let Inst{12-8} = Rt32{4-0};
312 }
313 class Enc_ee5ed0 : OpcodeHexagon {
314   bits <4> Rs16;
315   let Inst{7-4} = Rs16{3-0};
316   bits <4> Rd16;
317   let Inst{3-0} = Rd16{3-0};
318   bits <2> n1;
319   let Inst{9-8} = n1{1-0};
320 }
321 class Enc_935d9b : OpcodeHexagon {
322   bits <5> Ii;
323   let Inst{6-3} = Ii{4-1};
324   bits <1> Mu2;
325   let Inst{13-13} = Mu2{0-0};
326   bits <5> Rt32;
327   let Inst{12-8} = Rt32{4-0};
328   bits <5> Rx32;
329   let Inst{20-16} = Rx32{4-0};
330 }
331 class Enc_61f0b0 : OpcodeHexagon {
332   bits <5> Rs32;
333   let Inst{20-16} = Rs32{4-0};
334   bits <5> Rt32;
335   let Inst{12-8} = Rt32{4-0};
336   bits <5> Rxx32;
337   let Inst{4-0} = Rxx32{4-0};
338 }
339 class Enc_bd6011 : OpcodeHexagon {
340   bits <5> Rt32;
341   let Inst{12-8} = Rt32{4-0};
342   bits <5> Rs32;
343   let Inst{20-16} = Rs32{4-0};
344   bits <5> Rd32;
345   let Inst{4-0} = Rd32{4-0};
346 }
347 class Enc_65d691 : OpcodeHexagon {
348   bits <2> Ps4;
349   let Inst{17-16} = Ps4{1-0};
350   bits <2> Pd4;
351   let Inst{1-0} = Pd4{1-0};
352 }
353 class Enc_e8c45e : OpcodeHexagon {
354   bits <7> Ii;
355   let Inst{13-13} = Ii{6-6};
356   let Inst{7-3} = Ii{5-1};
357   bits <2> Pv4;
358   let Inst{1-0} = Pv4{1-0};
359   bits <5> Rs32;
360   let Inst{20-16} = Rs32{4-0};
361   bits <5> Rt32;
362   let Inst{12-8} = Rt32{4-0};
363 }
364 class Enc_ca3887 : OpcodeHexagon {
365   bits <5> Rs32;
366   let Inst{20-16} = Rs32{4-0};
367   bits <5> Rt32;
368   let Inst{12-8} = Rt32{4-0};
369 }
370 class Enc_a94f3b : OpcodeHexagon {
371   bits <5> Rs32;
372   let Inst{20-16} = Rs32{4-0};
373   bits <5> Rt32;
374   let Inst{12-8} = Rt32{4-0};
375   bits <5> Rd32;
376   let Inst{4-0} = Rd32{4-0};
377   bits <2> Pe4;
378   let Inst{6-5} = Pe4{1-0};
379 }
380 class Enc_625deb : OpcodeHexagon {
381   bits <4> Ii;
382   let Inst{10-8} = Ii{3-1};
383   bits <4> Rs16;
384   let Inst{7-4} = Rs16{3-0};
385   bits <4> Rt16;
386   let Inst{3-0} = Rt16{3-0};
387 }
388 class Enc_1f5ba6 : OpcodeHexagon {
389   bits <4> Rd16;
390   let Inst{3-0} = Rd16{3-0};
391 }
392 class Enc_cd82bc : OpcodeHexagon {
393   bits <4> Ii;
394   let Inst{21-21} = Ii{3-3};
395   let Inst{7-5} = Ii{2-0};
396   bits <6> II;
397   let Inst{13-8} = II{5-0};
398   bits <5> Rs32;
399   let Inst{20-16} = Rs32{4-0};
400   bits <5> Rx32;
401   let Inst{4-0} = Rx32{4-0};
402 }
403 class Enc_399e12 : OpcodeHexagon {
404   bits <4> Rs16;
405   let Inst{7-4} = Rs16{3-0};
406   bits <3> Rdd8;
407   let Inst{2-0} = Rdd8{2-0};
408 }
409 class Enc_d7a65e : OpcodeHexagon {
410   bits <6> Ii;
411   let Inst{12-7} = Ii{5-0};
412   bits <6> II;
413   let Inst{13-13} = II{5-5};
414   let Inst{4-0} = II{4-0};
415   bits <2> Pv4;
416   let Inst{6-5} = Pv4{1-0};
417   bits <5> Rs32;
418   let Inst{20-16} = Rs32{4-0};
419 }
420 class Enc_607661 : OpcodeHexagon {
421   bits <6> Ii;
422   let Inst{12-7} = Ii{5-0};
423   bits <5> Rd32;
424   let Inst{4-0} = Rd32{4-0};
425 }
426 class Enc_6a5972 : OpcodeHexagon {
427   bits <11> Ii;
428   let Inst{21-20} = Ii{10-9};
429   let Inst{7-1} = Ii{8-2};
430   bits <4> Rs16;
431   let Inst{19-16} = Rs16{3-0};
432   bits <4> Rt16;
433   let Inst{11-8} = Rt16{3-0};
434 }
435 class Enc_53dca9 : OpcodeHexagon {
436   bits <6> Ii;
437   let Inst{11-8} = Ii{5-2};
438   bits <4> Rs16;
439   let Inst{7-4} = Rs16{3-0};
440   bits <4> Rd16;
441   let Inst{3-0} = Rd16{3-0};
442 }
443 class Enc_27fd0e : OpcodeHexagon {
444   bits <6> Ii;
445   let Inst{8-5} = Ii{5-2};
446   bits <1> Mu2;
447   let Inst{13-13} = Mu2{0-0};
448   bits <5> Rd32;
449   let Inst{4-0} = Rd32{4-0};
450   bits <5> Rx32;
451   let Inst{20-16} = Rx32{4-0};
452 }
453 class Enc_93af4c : OpcodeHexagon {
454   bits <7> Ii;
455   let Inst{10-4} = Ii{6-0};
456   bits <4> Rx16;
457   let Inst{3-0} = Rx16{3-0};
458 }
459 class Enc_5bdd42 : OpcodeHexagon {
460   bits <7> Ii;
461   let Inst{8-5} = Ii{6-3};
462   bits <5> Rdd32;
463   let Inst{4-0} = Rdd32{4-0};
464   bits <5> Rx32;
465   let Inst{20-16} = Rx32{4-0};
466 }
467 class Enc_71f1b4 : OpcodeHexagon {
468   bits <6> Ii;
469   let Inst{8-5} = Ii{5-2};
470   bits <5> Rdd32;
471   let Inst{4-0} = Rdd32{4-0};
472   bits <5> Rx32;
473   let Inst{20-16} = Rx32{4-0};
474 }
475 class Enc_14640c : OpcodeHexagon {
476   bits <11> Ii;
477   let Inst{21-20} = Ii{10-9};
478   let Inst{7-1} = Ii{8-2};
479   bits <4> Rs16;
480   let Inst{19-16} = Rs16{3-0};
481   bits <5> n1;
482   let Inst{28-28} = n1{4-4};
483   let Inst{24-22} = n1{3-1};
484   let Inst{13-13} = n1{0-0};
485 }
486 class Enc_31db33 : OpcodeHexagon {
487   bits <2> Qt4;
488   let Inst{6-5} = Qt4{1-0};
489   bits <5> Vu32;
490   let Inst{12-8} = Vu32{4-0};
491   bits <5> Vv32;
492   let Inst{20-16} = Vv32{4-0};
493   bits <5> Vd32;
494   let Inst{4-0} = Vd32{4-0};
495 }
496 class Enc_65f095 : OpcodeHexagon {
497   bits <6> Ii;
498   let Inst{6-3} = Ii{5-2};
499   bits <2> Pv4;
500   let Inst{1-0} = Pv4{1-0};
501   bits <3> Nt8;
502   let Inst{10-8} = Nt8{2-0};
503   bits <5> Rx32;
504   let Inst{20-16} = Rx32{4-0};
505 }
506 class Enc_784502 : OpcodeHexagon {
507   bits <3> Ii;
508   let Inst{10-8} = Ii{2-0};
509   bits <2> Pv4;
510   let Inst{12-11} = Pv4{1-0};
511   bits <3> Os8;
512   let Inst{2-0} = Os8{2-0};
513   bits <5> Rx32;
514   let Inst{20-16} = Rx32{4-0};
515 }
516 class Enc_6413b6 : OpcodeHexagon {
517   bits <11> Ii;
518   let Inst{21-20} = Ii{10-9};
519   let Inst{7-1} = Ii{8-2};
520   bits <3> Ns8;
521   let Inst{18-16} = Ns8{2-0};
522   bits <5> n1;
523   let Inst{29-29} = n1{4-4};
524   let Inst{26-25} = n1{3-2};
525   let Inst{23-23} = n1{1-1};
526   let Inst{13-13} = n1{0-0};
527 }
528 class Enc_7a0ea6 : OpcodeHexagon {
529   bits <4> Rd16;
530   let Inst{3-0} = Rd16{3-0};
531   bits <1> n1;
532   let Inst{9-9} = n1{0-0};
533 }
534 class Enc_84bff1 : OpcodeHexagon {
535   bits <2> Ii;
536   let Inst{13-13} = Ii{1-1};
537   let Inst{7-7} = Ii{0-0};
538   bits <5> Rs32;
539   let Inst{20-16} = Rs32{4-0};
540   bits <5> Rt32;
541   let Inst{12-8} = Rt32{4-0};
542   bits <5> Rdd32;
543   let Inst{4-0} = Rdd32{4-0};
544 }
545 class Enc_74aef2 : OpcodeHexagon {
546   bits <4> Ii;
547   let Inst{8-5} = Ii{3-0};
548   bits <1> Mu2;
549   let Inst{13-13} = Mu2{0-0};
550   bits <5> Ryy32;
551   let Inst{4-0} = Ryy32{4-0};
552   bits <5> Rx32;
553   let Inst{20-16} = Rx32{4-0};
554 }
555 class Enc_78e566 : OpcodeHexagon {
556   bits <2> Pt4;
557   let Inst{9-8} = Pt4{1-0};
558   bits <5> Rdd32;
559   let Inst{4-0} = Rdd32{4-0};
560 }
561 class Enc_437f33 : OpcodeHexagon {
562   bits <5> Rs32;
563   let Inst{20-16} = Rs32{4-0};
564   bits <5> Rt32;
565   let Inst{12-8} = Rt32{4-0};
566   bits <2> Pu4;
567   let Inst{6-5} = Pu4{1-0};
568   bits <5> Rx32;
569   let Inst{4-0} = Rx32{4-0};
570 }
571 class Enc_0527db : OpcodeHexagon {
572   bits <4> Rs16;
573   let Inst{7-4} = Rs16{3-0};
574   bits <4> Rx16;
575   let Inst{3-0} = Rx16{3-0};
576 }
577 class Enc_420cf3 : OpcodeHexagon {
578   bits <6> Ii;
579   let Inst{22-21} = Ii{5-4};
580   let Inst{13-13} = Ii{3-3};
581   let Inst{7-5} = Ii{2-0};
582   bits <5> Ru32;
583   let Inst{4-0} = Ru32{4-0};
584   bits <5> Rs32;
585   let Inst{20-16} = Rs32{4-0};
586   bits <5> Rd32;
587   let Inst{12-8} = Rd32{4-0};
588 }
589 class Enc_e39bb2 : OpcodeHexagon {
590   bits <6> Ii;
591   let Inst{9-4} = Ii{5-0};
592   bits <4> Rd16;
593   let Inst{3-0} = Rd16{3-0};
594 }
595 class Enc_1b64fb : OpcodeHexagon {
596   bits <16> Ii;
597   let Inst{26-25} = Ii{15-14};
598   let Inst{20-16} = Ii{13-9};
599   let Inst{13-13} = Ii{8-8};
600   let Inst{7-0} = Ii{7-0};
601   bits <5> Rt32;
602   let Inst{12-8} = Rt32{4-0};
603 }
604 class Enc_c6220b : OpcodeHexagon {
605   bits <2> Ii;
606   let Inst{13-13} = Ii{1-1};
607   let Inst{7-7} = Ii{0-0};
608   bits <5> Rs32;
609   let Inst{20-16} = Rs32{4-0};
610   bits <5> Ru32;
611   let Inst{12-8} = Ru32{4-0};
612   bits <3> Nt8;
613   let Inst{2-0} = Nt8{2-0};
614 }
615 class Enc_322e1b : OpcodeHexagon {
616   bits <6> Ii;
617   let Inst{22-21} = Ii{5-4};
618   let Inst{13-13} = Ii{3-3};
619   let Inst{7-5} = Ii{2-0};
620   bits <6> II;
621   let Inst{23-23} = II{5-5};
622   let Inst{4-0} = II{4-0};
623   bits <5> Rs32;
624   let Inst{20-16} = Rs32{4-0};
625   bits <5> Rd32;
626   let Inst{12-8} = Rd32{4-0};
627 }
628 class Enc_989021 : OpcodeHexagon {
629   bits <5> Rt32;
630   let Inst{20-16} = Rt32{4-0};
631   bits <5> Vy32;
632   let Inst{12-8} = Vy32{4-0};
633   bits <5> Vx32;
634   let Inst{4-0} = Vx32{4-0};
635 }
636 class Enc_178717 : OpcodeHexagon {
637   bits <11> Ii;
638   let Inst{21-20} = Ii{10-9};
639   let Inst{7-1} = Ii{8-2};
640   bits <4> Rs16;
641   let Inst{19-16} = Rs16{3-0};
642   bits <6> n1;
643   let Inst{28-28} = n1{5-5};
644   let Inst{25-23} = n1{4-2};
645   let Inst{13-13} = n1{1-1};
646   let Inst{8-8} = n1{0-0};
647 }
648 class Enc_78cbf0 : OpcodeHexagon {
649   bits <18> Ii;
650   let Inst{26-25} = Ii{17-16};
651   let Inst{20-16} = Ii{15-11};
652   let Inst{13-13} = Ii{10-10};
653   let Inst{7-0} = Ii{9-2};
654   bits <3> Nt8;
655   let Inst{10-8} = Nt8{2-0};
656 }
657 class Enc_052c7d : OpcodeHexagon {
658   bits <5> Ii;
659   let Inst{6-3} = Ii{4-1};
660   bits <5> Rt32;
661   let Inst{12-8} = Rt32{4-0};
662   bits <5> Rx32;
663   let Inst{20-16} = Rx32{4-0};
664 }
665 class Enc_fcf7a7 : OpcodeHexagon {
666   bits <5> Rss32;
667   let Inst{20-16} = Rss32{4-0};
668   bits <5> Rtt32;
669   let Inst{12-8} = Rtt32{4-0};
670   bits <2> Pd4;
671   let Inst{1-0} = Pd4{1-0};
672 }
673 class Enc_55355c : OpcodeHexagon {
674   bits <2> Ii;
675   let Inst{13-13} = Ii{1-1};
676   let Inst{7-7} = Ii{0-0};
677   bits <5> Rs32;
678   let Inst{20-16} = Rs32{4-0};
679   bits <5> Ru32;
680   let Inst{12-8} = Ru32{4-0};
681   bits <5> Rtt32;
682   let Inst{4-0} = Rtt32{4-0};
683 }
684 class Enc_211aaa : OpcodeHexagon {
685   bits <11> Ii;
686   let Inst{26-25} = Ii{10-9};
687   let Inst{13-5} = Ii{8-0};
688   bits <5> Rs32;
689   let Inst{20-16} = Rs32{4-0};
690   bits <5> Rd32;
691   let Inst{4-0} = Rd32{4-0};
692 }
693 class Enc_6185fe : OpcodeHexagon {
694   bits <2> Ii;
695   let Inst{13-13} = Ii{1-1};
696   let Inst{7-7} = Ii{0-0};
697   bits <6> II;
698   let Inst{11-8} = II{5-2};
699   let Inst{6-5} = II{1-0};
700   bits <5> Rt32;
701   let Inst{20-16} = Rt32{4-0};
702   bits <5> Rdd32;
703   let Inst{4-0} = Rdd32{4-0};
704 }
705 class Enc_cd4705 : OpcodeHexagon {
706   bits <3> Ii;
707   let Inst{7-5} = Ii{2-0};
708   bits <5> Vu32;
709   let Inst{12-8} = Vu32{4-0};
710   bits <5> Vv32;
711   let Inst{20-16} = Vv32{4-0};
712   bits <5> Vx32;
713   let Inst{4-0} = Vx32{4-0};
714 }
715 class Enc_2ebe3b : OpcodeHexagon {
716   bits <1> Mu2;
717   let Inst{13-13} = Mu2{0-0};
718   bits <5> Vd32;
719   let Inst{4-0} = Vd32{4-0};
720   bits <5> Rx32;
721   let Inst{20-16} = Rx32{4-0};
722 }
723 class Enc_3d5b28 : OpcodeHexagon {
724   bits <5> Rss32;
725   let Inst{20-16} = Rss32{4-0};
726   bits <5> Rt32;
727   let Inst{12-8} = Rt32{4-0};
728   bits <5> Rd32;
729   let Inst{4-0} = Rd32{4-0};
730 }
731 class Enc_5ab2be : OpcodeHexagon {
732   bits <5> Rs32;
733   let Inst{20-16} = Rs32{4-0};
734   bits <5> Rt32;
735   let Inst{12-8} = Rt32{4-0};
736   bits <5> Rd32;
737   let Inst{4-0} = Rd32{4-0};
738 }
739 class Enc_fef969 : OpcodeHexagon {
740   bits <6> Ii;
741   let Inst{20-16} = Ii{5-1};
742   let Inst{5-5} = Ii{0-0};
743   bits <5> Rt32;
744   let Inst{12-8} = Rt32{4-0};
745   bits <5> Rd32;
746   let Inst{4-0} = Rd32{4-0};
747 }
748 class Enc_63eaeb : OpcodeHexagon {
749   bits <2> Ii;
750   let Inst{1-0} = Ii{1-0};
751   bits <4> Rs16;
752   let Inst{7-4} = Rs16{3-0};
753 }
754 class Enc_95441f : OpcodeHexagon {
755   bits <5> Vu32;
756   let Inst{12-8} = Vu32{4-0};
757   bits <5> Vv32;
758   let Inst{20-16} = Vv32{4-0};
759   bits <2> Qd4;
760   let Inst{1-0} = Qd4{1-0};
761 }
762 class Enc_372c9d : OpcodeHexagon {
763   bits <2> Pv4;
764   let Inst{12-11} = Pv4{1-0};
765   bits <1> Mu2;
766   let Inst{13-13} = Mu2{0-0};
767   bits <3> Os8;
768   let Inst{2-0} = Os8{2-0};
769   bits <5> Rx32;
770   let Inst{20-16} = Rx32{4-0};
771 }
772 class Enc_4dff07 : OpcodeHexagon {
773   bits <2> Qv4;
774   let Inst{12-11} = Qv4{1-0};
775   bits <1> Mu2;
776   let Inst{13-13} = Mu2{0-0};
777   bits <5> Vs32;
778   let Inst{4-0} = Vs32{4-0};
779   bits <5> Rx32;
780   let Inst{20-16} = Rx32{4-0};
781 }
782 class Enc_04c959 : OpcodeHexagon {
783   bits <2> Ii;
784   let Inst{13-13} = Ii{1-1};
785   let Inst{7-7} = Ii{0-0};
786   bits <6> II;
787   let Inst{11-8} = II{5-2};
788   let Inst{6-5} = II{1-0};
789   bits <5> Rt32;
790   let Inst{20-16} = Rt32{4-0};
791   bits <5> Ryy32;
792   let Inst{4-0} = Ryy32{4-0};
793 }
794 class Enc_b62ef7 : OpcodeHexagon {
795   bits <3> Ii;
796   let Inst{10-8} = Ii{2-0};
797   bits <5> Vs32;
798   let Inst{4-0} = Vs32{4-0};
799   bits <5> Rx32;
800   let Inst{20-16} = Rx32{4-0};
801 }
802 class Enc_2b518f : OpcodeHexagon {
803   bits <32> Ii;
804   let Inst{27-16} = Ii{31-20};
805   let Inst{13-0} = Ii{19-6};
806 }
807 class Enc_b388cf : OpcodeHexagon {
808   bits <5> Ii;
809   let Inst{12-8} = Ii{4-0};
810   bits <5> II;
811   let Inst{22-21} = II{4-3};
812   let Inst{7-5} = II{2-0};
813   bits <5> Rs32;
814   let Inst{20-16} = Rs32{4-0};
815   bits <5> Rd32;
816   let Inst{4-0} = Rd32{4-0};
817 }
818 class Enc_ad1c74 : OpcodeHexagon {
819   bits <11> Ii;
820   let Inst{21-20} = Ii{10-9};
821   let Inst{7-1} = Ii{8-2};
822   bits <4> Rs16;
823   let Inst{19-16} = Rs16{3-0};
824 }
825 class Enc_74d4e5 : OpcodeHexagon {
826   bits <1> Mu2;
827   let Inst{13-13} = Mu2{0-0};
828   bits <5> Rd32;
829   let Inst{4-0} = Rd32{4-0};
830   bits <5> Rx32;
831   let Inst{20-16} = Rx32{4-0};
832 }
833 class Enc_c90aca : OpcodeHexagon {
834   bits <8> Ii;
835   let Inst{12-5} = Ii{7-0};
836   bits <5> Rs32;
837   let Inst{20-16} = Rs32{4-0};
838   bits <5> Rx32;
839   let Inst{4-0} = Rx32{4-0};
840 }
841 class Enc_222336 : OpcodeHexagon {
842   bits <4> Ii;
843   let Inst{8-5} = Ii{3-0};
844   bits <5> Rd32;
845   let Inst{4-0} = Rd32{4-0};
846   bits <5> Rx32;
847   let Inst{20-16} = Rx32{4-0};
848 }
849 class Enc_5e87ce : OpcodeHexagon {
850   bits <16> Ii;
851   let Inst{23-22} = Ii{15-14};
852   let Inst{20-16} = Ii{13-9};
853   let Inst{13-5} = Ii{8-0};
854   bits <5> Rd32;
855   let Inst{4-0} = Rd32{4-0};
856 }
857 class Enc_f7ea77 : OpcodeHexagon {
858   bits <11> Ii;
859   let Inst{21-20} = Ii{10-9};
860   let Inst{7-1} = Ii{8-2};
861   bits <3> Ns8;
862   let Inst{18-16} = Ns8{2-0};
863   bits <4> n1;
864   let Inst{29-29} = n1{3-3};
865   let Inst{26-25} = n1{2-1};
866   let Inst{13-13} = n1{0-0};
867 }
868 class Enc_245865 : OpcodeHexagon {
869   bits <5> Vu32;
870   let Inst{12-8} = Vu32{4-0};
871   bits <5> Vv32;
872   let Inst{23-19} = Vv32{4-0};
873   bits <3> Rt8;
874   let Inst{18-16} = Rt8{2-0};
875   bits <5> Vx32;
876   let Inst{4-0} = Vx32{4-0};
877 }
878 class Enc_88d4d9 : OpcodeHexagon {
879   bits <2> Pu4;
880   let Inst{9-8} = Pu4{1-0};
881   bits <5> Rs32;
882   let Inst{20-16} = Rs32{4-0};
883 }
884 class Enc_c0cdde : OpcodeHexagon {
885   bits <9> Ii;
886   let Inst{13-5} = Ii{8-0};
887   bits <5> Rs32;
888   let Inst{20-16} = Rs32{4-0};
889   bits <2> Pd4;
890   let Inst{1-0} = Pd4{1-0};
891 }
892 class Enc_226535 : OpcodeHexagon {
893   bits <8> Ii;
894   let Inst{12-7} = Ii{7-2};
895   bits <5> Rs32;
896   let Inst{20-16} = Rs32{4-0};
897   bits <5> Rt32;
898   let Inst{4-0} = Rt32{4-0};
899 }
900 class Enc_31aa6a : OpcodeHexagon {
901   bits <5> Ii;
902   let Inst{6-3} = Ii{4-1};
903   bits <2> Pv4;
904   let Inst{1-0} = Pv4{1-0};
905   bits <3> Nt8;
906   let Inst{10-8} = Nt8{2-0};
907   bits <5> Rx32;
908   let Inst{20-16} = Rx32{4-0};
909 }
910 class Enc_397f23 : OpcodeHexagon {
911   bits <8> Ii;
912   let Inst{13-13} = Ii{7-7};
913   let Inst{7-3} = Ii{6-2};
914   bits <2> Pv4;
915   let Inst{1-0} = Pv4{1-0};
916   bits <5> Rs32;
917   let Inst{20-16} = Rs32{4-0};
918   bits <5> Rt32;
919   let Inst{12-8} = Rt32{4-0};
920 }
921 class Enc_865390 : OpcodeHexagon {
922   bits <3> Ii;
923   let Inst{10-8} = Ii{2-0};
924   bits <2> Pv4;
925   let Inst{12-11} = Pv4{1-0};
926   bits <5> Vs32;
927   let Inst{4-0} = Vs32{4-0};
928   bits <5> Rx32;
929   let Inst{20-16} = Rx32{4-0};
930 }
931 class Enc_98c0b8 : OpcodeHexagon {
932   bits <2> Ii;
933   let Inst{13-13} = Ii{1-1};
934   let Inst{7-7} = Ii{0-0};
935   bits <2> Pv4;
936   let Inst{6-5} = Pv4{1-0};
937   bits <5> Rs32;
938   let Inst{20-16} = Rs32{4-0};
939   bits <5> Rt32;
940   let Inst{12-8} = Rt32{4-0};
941   bits <5> Rdd32;
942   let Inst{4-0} = Rdd32{4-0};
943 }
944 class Enc_bfbf03 : OpcodeHexagon {
945   bits <2> Qs4;
946   let Inst{9-8} = Qs4{1-0};
947   bits <2> Qd4;
948   let Inst{1-0} = Qd4{1-0};
949 }
950 class Enc_ecbcc8 : OpcodeHexagon {
951   bits <5> Rs32;
952   let Inst{20-16} = Rs32{4-0};
953 }
954 class Enc_f5e933 : OpcodeHexagon {
955   bits <2> Ps4;
956   let Inst{17-16} = Ps4{1-0};
957   bits <5> Rd32;
958   let Inst{4-0} = Rd32{4-0};
959 }
960 class Enc_3fc427 : OpcodeHexagon {
961   bits <5> Vu32;
962   let Inst{12-8} = Vu32{4-0};
963   bits <5> Vv32;
964   let Inst{20-16} = Vv32{4-0};
965   bits <5> Vxx32;
966   let Inst{4-0} = Vxx32{4-0};
967 }
968 class Enc_01d3d0 : OpcodeHexagon {
969   bits <5> Vu32;
970   let Inst{12-8} = Vu32{4-0};
971   bits <5> Rt32;
972   let Inst{20-16} = Rt32{4-0};
973   bits <5> Vdd32;
974   let Inst{4-0} = Vdd32{4-0};
975 }
976 class Enc_b0e9d8 : OpcodeHexagon {
977   bits <10> Ii;
978   let Inst{21-21} = Ii{9-9};
979   let Inst{13-5} = Ii{8-0};
980   bits <5> Rs32;
981   let Inst{20-16} = Rs32{4-0};
982   bits <5> Rx32;
983   let Inst{4-0} = Rx32{4-0};
984 }
985 class Enc_3694bd : OpcodeHexagon {
986   bits <11> Ii;
987   let Inst{21-20} = Ii{10-9};
988   let Inst{7-1} = Ii{8-2};
989   bits <3> Ns8;
990   let Inst{18-16} = Ns8{2-0};
991   bits <5> n1;
992   let Inst{29-29} = n1{4-4};
993   let Inst{26-25} = n1{3-2};
994   let Inst{23-22} = n1{1-0};
995 }
996 class Enc_a42857 : OpcodeHexagon {
997   bits <11> Ii;
998   let Inst{21-20} = Ii{10-9};
999   let Inst{7-1} = Ii{8-2};
1000   bits <4> Rs16;
1001   let Inst{19-16} = Rs16{3-0};
1002   bits <5> n1;
1003   let Inst{28-28} = n1{4-4};
1004   let Inst{24-22} = n1{3-1};
1005   let Inst{8-8} = n1{0-0};
1006 }
1007 class Enc_b7fad3 : OpcodeHexagon {
1008   bits <2> Pv4;
1009   let Inst{9-8} = Pv4{1-0};
1010   bits <5> Rs32;
1011   let Inst{20-16} = Rs32{4-0};
1012   bits <5> Rdd32;
1013   let Inst{4-0} = Rdd32{4-0};
1014 }
1015 class Enc_223005 : OpcodeHexagon {
1016   bits <6> Ii;
1017   let Inst{6-3} = Ii{5-2};
1018   bits <3> Nt8;
1019   let Inst{10-8} = Nt8{2-0};
1020   bits <5> Rx32;
1021   let Inst{20-16} = Rx32{4-0};
1022 }
1023 class Enc_9e4c3f : OpcodeHexagon {
1024   bits <6> II;
1025   let Inst{13-8} = II{5-0};
1026   bits <11> Ii;
1027   let Inst{21-20} = Ii{10-9};
1028   let Inst{7-1} = Ii{8-2};
1029   bits <4> Rd16;
1030   let Inst{19-16} = Rd16{3-0};
1031 }
1032 class Enc_8b8d61 : OpcodeHexagon {
1033   bits <6> Ii;
1034   let Inst{22-21} = Ii{5-4};
1035   let Inst{13-13} = Ii{3-3};
1036   let Inst{7-5} = Ii{2-0};
1037   bits <5> Rs32;
1038   let Inst{20-16} = Rs32{4-0};
1039   bits <5> Ru32;
1040   let Inst{4-0} = Ru32{4-0};
1041   bits <5> Rd32;
1042   let Inst{12-8} = Rd32{4-0};
1043 }
1044 class Enc_88c16c : OpcodeHexagon {
1045   bits <5> Rss32;
1046   let Inst{20-16} = Rss32{4-0};
1047   bits <5> Rtt32;
1048   let Inst{12-8} = Rtt32{4-0};
1049   bits <5> Rxx32;
1050   let Inst{4-0} = Rxx32{4-0};
1051 }
1052 class Enc_770858 : OpcodeHexagon {
1053   bits <2> Ps4;
1054   let Inst{6-5} = Ps4{1-0};
1055   bits <5> Vu32;
1056   let Inst{12-8} = Vu32{4-0};
1057   bits <5> Vd32;
1058   let Inst{4-0} = Vd32{4-0};
1059 }
1060 class Enc_bd811a : OpcodeHexagon {
1061   bits <5> Rs32;
1062   let Inst{20-16} = Rs32{4-0};
1063   bits <5> Cd32;
1064   let Inst{4-0} = Cd32{4-0};
1065 }
1066 class Enc_b05839 : OpcodeHexagon {
1067   bits <7> Ii;
1068   let Inst{8-5} = Ii{6-3};
1069   bits <1> Mu2;
1070   let Inst{13-13} = Mu2{0-0};
1071   bits <5> Rdd32;
1072   let Inst{4-0} = Rdd32{4-0};
1073   bits <5> Rx32;
1074   let Inst{20-16} = Rx32{4-0};
1075 }
1076 class Enc_bc03e5 : OpcodeHexagon {
1077   bits <17> Ii;
1078   let Inst{26-25} = Ii{16-15};
1079   let Inst{20-16} = Ii{14-10};
1080   let Inst{13-13} = Ii{9-9};
1081   let Inst{7-0} = Ii{8-1};
1082   bits <3> Nt8;
1083   let Inst{10-8} = Nt8{2-0};
1084 }
1085 class Enc_412ff0 : OpcodeHexagon {
1086   bits <5> Rss32;
1087   let Inst{20-16} = Rss32{4-0};
1088   bits <5> Ru32;
1089   let Inst{4-0} = Ru32{4-0};
1090   bits <5> Rxx32;
1091   let Inst{12-8} = Rxx32{4-0};
1092 }
1093 class Enc_c9a18e : OpcodeHexagon {
1094   bits <11> Ii;
1095   let Inst{21-20} = Ii{10-9};
1096   let Inst{7-1} = Ii{8-2};
1097   bits <3> Ns8;
1098   let Inst{18-16} = Ns8{2-0};
1099   bits <5> Rt32;
1100   let Inst{12-8} = Rt32{4-0};
1101 }
1102 class Enc_be32a5 : OpcodeHexagon {
1103   bits <5> Rs32;
1104   let Inst{20-16} = Rs32{4-0};
1105   bits <5> Rt32;
1106   let Inst{12-8} = Rt32{4-0};
1107   bits <5> Rdd32;
1108   let Inst{4-0} = Rdd32{4-0};
1109 }
1110 class Enc_e6abcf : OpcodeHexagon {
1111   bits <5> Rs32;
1112   let Inst{20-16} = Rs32{4-0};
1113   bits <5> Rtt32;
1114   let Inst{12-8} = Rtt32{4-0};
1115 }
1116 class Enc_6339d5 : OpcodeHexagon {
1117   bits <2> Ii;
1118   let Inst{13-13} = Ii{1-1};
1119   let Inst{7-7} = Ii{0-0};
1120   bits <2> Pv4;
1121   let Inst{6-5} = Pv4{1-0};
1122   bits <5> Rs32;
1123   let Inst{20-16} = Rs32{4-0};
1124   bits <5> Ru32;
1125   let Inst{12-8} = Ru32{4-0};
1126   bits <5> Rt32;
1127   let Inst{4-0} = Rt32{4-0};
1128 }
1129 class Enc_d6990d : OpcodeHexagon {
1130   bits <5> Vuu32;
1131   let Inst{12-8} = Vuu32{4-0};
1132   bits <5> Rt32;
1133   let Inst{20-16} = Rt32{4-0};
1134   bits <5> Vxx32;
1135   let Inst{4-0} = Vxx32{4-0};
1136 }
1137 class Enc_6c9440 : OpcodeHexagon {
1138   bits <10> Ii;
1139   let Inst{21-21} = Ii{9-9};
1140   let Inst{13-5} = Ii{8-0};
1141   bits <5> Rd32;
1142   let Inst{4-0} = Rd32{4-0};
1143 }
1144 class Enc_0d8adb : OpcodeHexagon {
1145   bits <8> Ii;
1146   let Inst{12-5} = Ii{7-0};
1147   bits <5> Rss32;
1148   let Inst{20-16} = Rss32{4-0};
1149   bits <2> Pd4;
1150   let Inst{1-0} = Pd4{1-0};
1151 }
1152 class Enc_50e578 : OpcodeHexagon {
1153   bits <5> Vu32;
1154   let Inst{12-8} = Vu32{4-0};
1155   bits <5> Rs32;
1156   let Inst{20-16} = Rs32{4-0};
1157   bits <5> Rd32;
1158   let Inst{4-0} = Rd32{4-0};
1159 }
1160 class Enc_1cf4ca : OpcodeHexagon {
1161   bits <6> Ii;
1162   let Inst{17-16} = Ii{5-4};
1163   let Inst{6-3} = Ii{3-0};
1164   bits <2> Pv4;
1165   let Inst{1-0} = Pv4{1-0};
1166   bits <5> Rt32;
1167   let Inst{12-8} = Rt32{4-0};
1168 }
1169 class Enc_48b75f : OpcodeHexagon {
1170   bits <5> Rs32;
1171   let Inst{20-16} = Rs32{4-0};
1172   bits <2> Pd4;
1173   let Inst{1-0} = Pd4{1-0};
1174 }
1175 class Enc_b97f71 : OpcodeHexagon {
1176   bits <6> Ii;
1177   let Inst{8-5} = Ii{5-2};
1178   bits <2> Pt4;
1179   let Inst{10-9} = Pt4{1-0};
1180   bits <5> Rd32;
1181   let Inst{4-0} = Rd32{4-0};
1182   bits <5> Rx32;
1183   let Inst{20-16} = Rx32{4-0};
1184 }
1185 class Enc_9d1247 : OpcodeHexagon {
1186   bits <7> Ii;
1187   let Inst{8-5} = Ii{6-3};
1188   bits <2> Pt4;
1189   let Inst{10-9} = Pt4{1-0};
1190   bits <5> Rdd32;
1191   let Inst{4-0} = Rdd32{4-0};
1192   bits <5> Rx32;
1193   let Inst{20-16} = Rx32{4-0};
1194 }
1195 class Enc_f4413a : OpcodeHexagon {
1196   bits <4> Ii;
1197   let Inst{8-5} = Ii{3-0};
1198   bits <2> Pt4;
1199   let Inst{10-9} = Pt4{1-0};
1200   bits <5> Rd32;
1201   let Inst{4-0} = Rd32{4-0};
1202   bits <5> Rx32;
1203   let Inst{20-16} = Rx32{4-0};
1204 }
1205 class Enc_f7430e : OpcodeHexagon {
1206   bits <4> Ii;
1207   let Inst{13-13} = Ii{3-3};
1208   let Inst{10-8} = Ii{2-0};
1209   bits <2> Pv4;
1210   let Inst{12-11} = Pv4{1-0};
1211   bits <5> Rt32;
1212   let Inst{20-16} = Rt32{4-0};
1213   bits <3> Os8;
1214   let Inst{2-0} = Os8{2-0};
1215 }
1216 class Enc_e7581c : OpcodeHexagon {
1217   bits <5> Vu32;
1218   let Inst{12-8} = Vu32{4-0};
1219   bits <5> Vd32;
1220   let Inst{4-0} = Vd32{4-0};
1221 }
1222 class Enc_2301d6 : OpcodeHexagon {
1223   bits <6> Ii;
1224   let Inst{20-16} = Ii{5-1};
1225   let Inst{8-8} = Ii{0-0};
1226   bits <2> Pt4;
1227   let Inst{10-9} = Pt4{1-0};
1228   bits <5> Rd32;
1229   let Inst{4-0} = Rd32{4-0};
1230 }
1231 class Enc_c31910 : OpcodeHexagon {
1232   bits <8> Ii;
1233   let Inst{23-21} = Ii{7-5};
1234   let Inst{13-13} = Ii{4-4};
1235   let Inst{7-5} = Ii{3-1};
1236   let Inst{3-3} = Ii{0-0};
1237   bits <5> II;
1238   let Inst{12-8} = II{4-0};
1239   bits <5> Rx32;
1240   let Inst{20-16} = Rx32{4-0};
1241 }
1242 class Enc_2f2f04 : OpcodeHexagon {
1243   bits <1> Ii;
1244   let Inst{5-5} = Ii{0-0};
1245   bits <5> Vuu32;
1246   let Inst{12-8} = Vuu32{4-0};
1247   bits <5> Rt32;
1248   let Inst{20-16} = Rt32{4-0};
1249   bits <5> Vdd32;
1250   let Inst{4-0} = Vdd32{4-0};
1251 }
1252 class Enc_8d8a30 : OpcodeHexagon {
1253   bits <4> Ii;
1254   let Inst{13-13} = Ii{3-3};
1255   let Inst{10-8} = Ii{2-0};
1256   bits <2> Pv4;
1257   let Inst{12-11} = Pv4{1-0};
1258   bits <5> Rt32;
1259   let Inst{20-16} = Rt32{4-0};
1260   bits <5> Vd32;
1261   let Inst{4-0} = Vd32{4-0};
1262 }
1263 class Enc_2d7491 : OpcodeHexagon {
1264   bits <13> Ii;
1265   let Inst{26-25} = Ii{12-11};
1266   let Inst{13-5} = Ii{10-2};
1267   bits <5> Rs32;
1268   let Inst{20-16} = Rs32{4-0};
1269   bits <5> Rdd32;
1270   let Inst{4-0} = Rdd32{4-0};
1271 }
1272 class Enc_a803e0 : OpcodeHexagon {
1273   bits <7> Ii;
1274   let Inst{12-7} = Ii{6-1};
1275   bits <8> II;
1276   let Inst{13-13} = II{7-7};
1277   let Inst{6-0} = II{6-0};
1278   bits <5> Rs32;
1279   let Inst{20-16} = Rs32{4-0};
1280 }
1281 class Enc_45364e : OpcodeHexagon {
1282   bits <5> Vu32;
1283   let Inst{12-8} = Vu32{4-0};
1284   bits <5> Vv32;
1285   let Inst{20-16} = Vv32{4-0};
1286   bits <5> Vd32;
1287   let Inst{4-0} = Vd32{4-0};
1288 }
1289 class Enc_b909d2 : OpcodeHexagon {
1290   bits <11> Ii;
1291   let Inst{21-20} = Ii{10-9};
1292   let Inst{7-1} = Ii{8-2};
1293   bits <4> Rs16;
1294   let Inst{19-16} = Rs16{3-0};
1295   bits <7> n1;
1296   let Inst{28-28} = n1{6-6};
1297   let Inst{25-22} = n1{5-2};
1298   let Inst{13-13} = n1{1-1};
1299   let Inst{8-8} = n1{0-0};
1300 }
1301 class Enc_e6c957 : OpcodeHexagon {
1302   bits <10> Ii;
1303   let Inst{21-21} = Ii{9-9};
1304   let Inst{13-5} = Ii{8-0};
1305   bits <5> Rdd32;
1306   let Inst{4-0} = Rdd32{4-0};
1307 }
1308 class Enc_fa3ba4 : OpcodeHexagon {
1309   bits <14> Ii;
1310   let Inst{26-25} = Ii{13-12};
1311   let Inst{13-5} = Ii{11-3};
1312   bits <5> Rs32;
1313   let Inst{20-16} = Rs32{4-0};
1314   bits <5> Rdd32;
1315   let Inst{4-0} = Rdd32{4-0};
1316 }
1317 class Enc_0d8870 : OpcodeHexagon {
1318   bits <12> Ii;
1319   let Inst{26-25} = Ii{11-10};
1320   let Inst{13-13} = Ii{9-9};
1321   let Inst{7-0} = Ii{8-1};
1322   bits <5> Rs32;
1323   let Inst{20-16} = Rs32{4-0};
1324   bits <3> Nt8;
1325   let Inst{10-8} = Nt8{2-0};
1326 }
1327 class Enc_9fae8a : OpcodeHexagon {
1328   bits <6> Ii;
1329   let Inst{13-8} = Ii{5-0};
1330   bits <5> Rs32;
1331   let Inst{20-16} = Rs32{4-0};
1332   bits <5> Rd32;
1333   let Inst{4-0} = Rd32{4-0};
1334 }
1335 class Enc_18c338 : OpcodeHexagon {
1336   bits <8> Ii;
1337   let Inst{12-5} = Ii{7-0};
1338   bits <8> II;
1339   let Inst{22-16} = II{7-1};
1340   let Inst{13-13} = II{0-0};
1341   bits <5> Rdd32;
1342   let Inst{4-0} = Rdd32{4-0};
1343 }
1344 class Enc_5ccba9 : OpcodeHexagon {
1345   bits <8> Ii;
1346   let Inst{12-7} = Ii{7-2};
1347   bits <6> II;
1348   let Inst{13-13} = II{5-5};
1349   let Inst{4-0} = II{4-0};
1350   bits <2> Pv4;
1351   let Inst{6-5} = Pv4{1-0};
1352   bits <5> Rs32;
1353   let Inst{20-16} = Rs32{4-0};
1354 }
1355 class Enc_0ed752 : OpcodeHexagon {
1356   bits <5> Rss32;
1357   let Inst{20-16} = Rss32{4-0};
1358   bits <5> Cdd32;
1359   let Inst{4-0} = Cdd32{4-0};
1360 }
1361 class Enc_143445 : OpcodeHexagon {
1362   bits <13> Ii;
1363   let Inst{26-25} = Ii{12-11};
1364   let Inst{13-13} = Ii{10-10};
1365   let Inst{7-0} = Ii{9-2};
1366   bits <5> Rs32;
1367   let Inst{20-16} = Rs32{4-0};
1368   bits <5> Rt32;
1369   let Inst{12-8} = Rt32{4-0};
1370 }
1371 class Enc_3a3d62 : OpcodeHexagon {
1372   bits <5> Rs32;
1373   let Inst{20-16} = Rs32{4-0};
1374   bits <5> Rdd32;
1375   let Inst{4-0} = Rdd32{4-0};
1376 }
1377 class Enc_3e3989 : OpcodeHexagon {
1378   bits <11> Ii;
1379   let Inst{21-20} = Ii{10-9};
1380   let Inst{7-1} = Ii{8-2};
1381   bits <4> Rs16;
1382   let Inst{19-16} = Rs16{3-0};
1383   bits <6> n1;
1384   let Inst{28-28} = n1{5-5};
1385   let Inst{25-22} = n1{4-1};
1386   let Inst{8-8} = n1{0-0};
1387 }
1388 class Enc_152467 : OpcodeHexagon {
1389   bits <5> Ii;
1390   let Inst{8-5} = Ii{4-1};
1391   bits <5> Rd32;
1392   let Inst{4-0} = Rd32{4-0};
1393   bits <5> Rx32;
1394   let Inst{20-16} = Rx32{4-0};
1395 }
1396 class Enc_daea09 : OpcodeHexagon {
1397   bits <17> Ii;
1398   let Inst{23-22} = Ii{16-15};
1399   let Inst{20-16} = Ii{14-10};
1400   let Inst{13-13} = Ii{9-9};
1401   let Inst{7-1} = Ii{8-2};
1402   bits <2> Pu4;
1403   let Inst{9-8} = Pu4{1-0};
1404 }
1405 class Enc_f37377 : OpcodeHexagon {
1406   bits <8> Ii;
1407   let Inst{12-7} = Ii{7-2};
1408   bits <8> II;
1409   let Inst{13-13} = II{7-7};
1410   let Inst{6-0} = II{6-0};
1411   bits <5> Rs32;
1412   let Inst{20-16} = Rs32{4-0};
1413 }
1414 class Enc_a198f6 : OpcodeHexagon {
1415   bits <7> Ii;
1416   let Inst{10-5} = Ii{6-1};
1417   bits <2> Pt4;
1418   let Inst{12-11} = Pt4{1-0};
1419   bits <5> Rs32;
1420   let Inst{20-16} = Rs32{4-0};
1421   bits <5> Rd32;
1422   let Inst{4-0} = Rd32{4-0};
1423 }
1424 class Enc_3dac0b : OpcodeHexagon {
1425   bits <2> Qt4;
1426   let Inst{6-5} = Qt4{1-0};
1427   bits <5> Vu32;
1428   let Inst{12-8} = Vu32{4-0};
1429   bits <5> Vv32;
1430   let Inst{20-16} = Vv32{4-0};
1431   bits <5> Vdd32;
1432   let Inst{4-0} = Vdd32{4-0};
1433 }
1434 class Enc_e38e1f : OpcodeHexagon {
1435   bits <8> Ii;
1436   let Inst{12-5} = Ii{7-0};
1437   bits <2> Pu4;
1438   let Inst{22-21} = Pu4{1-0};
1439   bits <5> Rs32;
1440   let Inst{20-16} = Rs32{4-0};
1441   bits <5> Rd32;
1442   let Inst{4-0} = Rd32{4-0};
1443 }
1444 class Enc_f8ecf9 : OpcodeHexagon {
1445   bits <5> Vuu32;
1446   let Inst{12-8} = Vuu32{4-0};
1447   bits <5> Vvv32;
1448   let Inst{20-16} = Vvv32{4-0};
1449   bits <5> Vdd32;
1450   let Inst{4-0} = Vdd32{4-0};
1451 }
1452 class Enc_7f1a05 : OpcodeHexagon {
1453   bits <5> Ru32;
1454   let Inst{4-0} = Ru32{4-0};
1455   bits <5> Rs32;
1456   let Inst{20-16} = Rs32{4-0};
1457   bits <5> Ry32;
1458   let Inst{12-8} = Ry32{4-0};
1459 }
1460 class Enc_2df31d : OpcodeHexagon {
1461   bits <8> Ii;
1462   let Inst{9-4} = Ii{7-2};
1463   bits <4> Rd16;
1464   let Inst{3-0} = Rd16{3-0};
1465 }
1466 class Enc_25bef0 : OpcodeHexagon {
1467   bits <16> Ii;
1468   let Inst{26-25} = Ii{15-14};
1469   let Inst{20-16} = Ii{13-9};
1470   let Inst{13-5} = Ii{8-0};
1471   bits <5> Rd32;
1472   let Inst{4-0} = Rd32{4-0};
1473 }
1474 class Enc_f82302 : OpcodeHexagon {
1475   bits <11> Ii;
1476   let Inst{21-20} = Ii{10-9};
1477   let Inst{7-1} = Ii{8-2};
1478   bits <3> Ns8;
1479   let Inst{18-16} = Ns8{2-0};
1480   bits <4> n1;
1481   let Inst{29-29} = n1{3-3};
1482   let Inst{26-25} = n1{2-1};
1483   let Inst{23-23} = n1{0-0};
1484 }
1485 class Enc_83ee64 : OpcodeHexagon {
1486   bits <5> Ii;
1487   let Inst{12-8} = Ii{4-0};
1488   bits <5> Rs32;
1489   let Inst{20-16} = Rs32{4-0};
1490   bits <2> Pd4;
1491   let Inst{1-0} = Pd4{1-0};
1492 }
1493 class Enc_adf111 : OpcodeHexagon {
1494   bits <5> Vu32;
1495   let Inst{12-8} = Vu32{4-0};
1496   bits <5> Rt32;
1497   let Inst{20-16} = Rt32{4-0};
1498   bits <2> Qx4;
1499   let Inst{1-0} = Qx4{1-0};
1500 }
1501 class Enc_46c951 : OpcodeHexagon {
1502   bits <6> Ii;
1503   let Inst{12-7} = Ii{5-0};
1504   bits <5> II;
1505   let Inst{4-0} = II{4-0};
1506   bits <5> Rs32;
1507   let Inst{20-16} = Rs32{4-0};
1508 }
1509 class Enc_5d6c34 : OpcodeHexagon {
1510   bits <6> Ii;
1511   let Inst{13-8} = Ii{5-0};
1512   bits <5> Rs32;
1513   let Inst{20-16} = Rs32{4-0};
1514   bits <2> Pd4;
1515   let Inst{1-0} = Pd4{1-0};
1516 }
1517 class Enc_4df4e9 : OpcodeHexagon {
1518   bits <11> Ii;
1519   let Inst{26-25} = Ii{10-9};
1520   let Inst{13-13} = Ii{8-8};
1521   let Inst{7-0} = Ii{7-0};
1522   bits <5> Rs32;
1523   let Inst{20-16} = Rs32{4-0};
1524   bits <3> Nt8;
1525   let Inst{10-8} = Nt8{2-0};
1526 }
1527 class Enc_91b9fe : OpcodeHexagon {
1528   bits <5> Ii;
1529   let Inst{6-3} = Ii{4-1};
1530   bits <1> Mu2;
1531   let Inst{13-13} = Mu2{0-0};
1532   bits <3> Nt8;
1533   let Inst{10-8} = Nt8{2-0};
1534   bits <5> Rx32;
1535   let Inst{20-16} = Rx32{4-0};
1536 }
1537 class Enc_a7b8e8 : OpcodeHexagon {
1538   bits <6> Ii;
1539   let Inst{22-21} = Ii{5-4};
1540   let Inst{13-13} = Ii{3-3};
1541   let Inst{7-5} = Ii{2-0};
1542   bits <5> Rs32;
1543   let Inst{20-16} = Rs32{4-0};
1544   bits <5> Rt32;
1545   let Inst{12-8} = Rt32{4-0};
1546   bits <5> Rd32;
1547   let Inst{4-0} = Rd32{4-0};
1548 }
1549 class Enc_2b3f60 : OpcodeHexagon {
1550   bits <5> Rss32;
1551   let Inst{20-16} = Rss32{4-0};
1552   bits <5> Rtt32;
1553   let Inst{12-8} = Rtt32{4-0};
1554   bits <5> Rdd32;
1555   let Inst{4-0} = Rdd32{4-0};
1556   bits <2> Px4;
1557   let Inst{6-5} = Px4{1-0};
1558 }
1559 class Enc_bd1cbc : OpcodeHexagon {
1560   bits <5> Ii;
1561   let Inst{8-5} = Ii{4-1};
1562   bits <5> Ryy32;
1563   let Inst{4-0} = Ryy32{4-0};
1564   bits <5> Rx32;
1565   let Inst{20-16} = Rx32{4-0};
1566 }
1567 class Enc_a30110 : OpcodeHexagon {
1568   bits <5> Vu32;
1569   let Inst{12-8} = Vu32{4-0};
1570   bits <5> Vv32;
1571   let Inst{23-19} = Vv32{4-0};
1572   bits <3> Rt8;
1573   let Inst{18-16} = Rt8{2-0};
1574   bits <5> Vd32;
1575   let Inst{4-0} = Vd32{4-0};
1576 }
1577 class Enc_f3f408 : OpcodeHexagon {
1578   bits <4> Ii;
1579   let Inst{13-13} = Ii{3-3};
1580   let Inst{10-8} = Ii{2-0};
1581   bits <5> Rt32;
1582   let Inst{20-16} = Rt32{4-0};
1583   bits <5> Vd32;
1584   let Inst{4-0} = Vd32{4-0};
1585 }
1586 class Enc_690862 : OpcodeHexagon {
1587   bits <13> Ii;
1588   let Inst{26-25} = Ii{12-11};
1589   let Inst{13-13} = Ii{10-10};
1590   let Inst{7-0} = Ii{9-2};
1591   bits <5> Rs32;
1592   let Inst{20-16} = Rs32{4-0};
1593   bits <3> Nt8;
1594   let Inst{10-8} = Nt8{2-0};
1595 }
1596 class Enc_2a3787 : OpcodeHexagon {
1597   bits <13> Ii;
1598   let Inst{26-25} = Ii{12-11};
1599   let Inst{13-5} = Ii{10-2};
1600   bits <5> Rs32;
1601   let Inst{20-16} = Rs32{4-0};
1602   bits <5> Rd32;
1603   let Inst{4-0} = Rd32{4-0};
1604 }
1605 class Enc_d5c73f : OpcodeHexagon {
1606   bits <1> Mu2;
1607   let Inst{13-13} = Mu2{0-0};
1608   bits <5> Rt32;
1609   let Inst{12-8} = Rt32{4-0};
1610   bits <5> Rx32;
1611   let Inst{20-16} = Rx32{4-0};
1612 }
1613 class Enc_3f97c8 : OpcodeHexagon {
1614   bits <6> Ii;
1615   let Inst{6-3} = Ii{5-2};
1616   bits <1> Mu2;
1617   let Inst{13-13} = Mu2{0-0};
1618   bits <3> Nt8;
1619   let Inst{10-8} = Nt8{2-0};
1620   bits <5> Rx32;
1621   let Inst{20-16} = Rx32{4-0};
1622 }
1623 class Enc_d50cd3 : OpcodeHexagon {
1624   bits <3> Ii;
1625   let Inst{7-5} = Ii{2-0};
1626   bits <5> Rss32;
1627   let Inst{20-16} = Rss32{4-0};
1628   bits <5> Rtt32;
1629   let Inst{12-8} = Rtt32{4-0};
1630   bits <5> Rdd32;
1631   let Inst{4-0} = Rdd32{4-0};
1632 }
1633 class Enc_729ff7 : OpcodeHexagon {
1634   bits <3> Ii;
1635   let Inst{7-5} = Ii{2-0};
1636   bits <5> Rtt32;
1637   let Inst{12-8} = Rtt32{4-0};
1638   bits <5> Rss32;
1639   let Inst{20-16} = Rss32{4-0};
1640   bits <5> Rdd32;
1641   let Inst{4-0} = Rdd32{4-0};
1642 }
1643 class Enc_217147 : OpcodeHexagon {
1644   bits <2> Qv4;
1645   let Inst{23-22} = Qv4{1-0};
1646 }
1647 class Enc_b9c5fb : OpcodeHexagon {
1648   bits <5> Rss32;
1649   let Inst{20-16} = Rss32{4-0};
1650   bits <5> Rdd32;
1651   let Inst{4-0} = Rdd32{4-0};
1652 }
1653 class Enc_f394d3 : OpcodeHexagon {
1654   bits <6> II;
1655   let Inst{11-8} = II{5-2};
1656   let Inst{6-5} = II{1-0};
1657   bits <5> Ryy32;
1658   let Inst{4-0} = Ryy32{4-0};
1659   bits <5> Re32;
1660   let Inst{20-16} = Re32{4-0};
1661 }
1662 class Enc_0cb018 : OpcodeHexagon {
1663   bits <5> Cs32;
1664   let Inst{20-16} = Cs32{4-0};
1665   bits <5> Rd32;
1666   let Inst{4-0} = Rd32{4-0};
1667 }
1668 class Enc_541f26 : OpcodeHexagon {
1669   bits <18> Ii;
1670   let Inst{26-25} = Ii{17-16};
1671   let Inst{20-16} = Ii{15-11};
1672   let Inst{13-13} = Ii{10-10};
1673   let Inst{7-0} = Ii{9-2};
1674   bits <5> Rt32;
1675   let Inst{12-8} = Rt32{4-0};
1676 }
1677 class Enc_724154 : OpcodeHexagon {
1678   bits <6> II;
1679   let Inst{5-0} = II{5-0};
1680   bits <3> Nt8;
1681   let Inst{10-8} = Nt8{2-0};
1682   bits <5> Re32;
1683   let Inst{20-16} = Re32{4-0};
1684 }
1685 class Enc_179b35 : OpcodeHexagon {
1686   bits <5> Rs32;
1687   let Inst{20-16} = Rs32{4-0};
1688   bits <5> Rtt32;
1689   let Inst{12-8} = Rtt32{4-0};
1690   bits <5> Rx32;
1691   let Inst{4-0} = Rx32{4-0};
1692 }
1693 class Enc_585242 : OpcodeHexagon {
1694   bits <6> Ii;
1695   let Inst{13-13} = Ii{5-5};
1696   let Inst{7-3} = Ii{4-0};
1697   bits <2> Pv4;
1698   let Inst{1-0} = Pv4{1-0};
1699   bits <5> Rs32;
1700   let Inst{20-16} = Rs32{4-0};
1701   bits <3> Nt8;
1702   let Inst{10-8} = Nt8{2-0};
1703 }
1704 class Enc_cf1927 : OpcodeHexagon {
1705   bits <1> Mu2;
1706   let Inst{13-13} = Mu2{0-0};
1707   bits <3> Os8;
1708   let Inst{2-0} = Os8{2-0};
1709   bits <5> Rx32;
1710   let Inst{20-16} = Rx32{4-0};
1711 }
1712 class Enc_b84c4c : OpcodeHexagon {
1713   bits <6> Ii;
1714   let Inst{13-8} = Ii{5-0};
1715   bits <6> II;
1716   let Inst{23-21} = II{5-3};
1717   let Inst{7-5} = II{2-0};
1718   bits <5> Rss32;
1719   let Inst{20-16} = Rss32{4-0};
1720   bits <5> Rdd32;
1721   let Inst{4-0} = Rdd32{4-0};
1722 }
1723 class Enc_9ac432 : OpcodeHexagon {
1724   bits <2> Ps4;
1725   let Inst{17-16} = Ps4{1-0};
1726   bits <2> Pt4;
1727   let Inst{9-8} = Pt4{1-0};
1728   bits <2> Pu4;
1729   let Inst{7-6} = Pu4{1-0};
1730   bits <2> Pd4;
1731   let Inst{1-0} = Pd4{1-0};
1732 }
1733 class Enc_8203bb : OpcodeHexagon {
1734   bits <6> Ii;
1735   let Inst{12-7} = Ii{5-0};
1736   bits <8> II;
1737   let Inst{13-13} = II{7-7};
1738   let Inst{6-0} = II{6-0};
1739   bits <5> Rs32;
1740   let Inst{20-16} = Rs32{4-0};
1741 }
1742 class Enc_e66a97 : OpcodeHexagon {
1743   bits <7> Ii;
1744   let Inst{12-7} = Ii{6-1};
1745   bits <5> II;
1746   let Inst{4-0} = II{4-0};
1747   bits <5> Rs32;
1748   let Inst{20-16} = Rs32{4-0};
1749 }
1750 class Enc_8c2412 : OpcodeHexagon {
1751   bits <2> Ps4;
1752   let Inst{6-5} = Ps4{1-0};
1753   bits <5> Vu32;
1754   let Inst{12-8} = Vu32{4-0};
1755   bits <5> Vv32;
1756   let Inst{20-16} = Vv32{4-0};
1757   bits <5> Vdd32;
1758   let Inst{4-0} = Vdd32{4-0};
1759 }
1760 class Enc_284ebb : OpcodeHexagon {
1761   bits <2> Ps4;
1762   let Inst{17-16} = Ps4{1-0};
1763   bits <2> Pt4;
1764   let Inst{9-8} = Pt4{1-0};
1765   bits <2> Pd4;
1766   let Inst{1-0} = Pd4{1-0};
1767 }
1768 class Enc_733b27 : OpcodeHexagon {
1769   bits <5> Ii;
1770   let Inst{8-5} = Ii{4-1};
1771   bits <2> Pt4;
1772   let Inst{10-9} = Pt4{1-0};
1773   bits <5> Rd32;
1774   let Inst{4-0} = Rd32{4-0};
1775   bits <5> Rx32;
1776   let Inst{20-16} = Rx32{4-0};
1777 }
1778 class Enc_22c845 : OpcodeHexagon {
1779   bits <14> Ii;
1780   let Inst{10-0} = Ii{13-3};
1781   bits <5> Rx32;
1782   let Inst{20-16} = Rx32{4-0};
1783 }
1784 class Enc_9b0bc1 : OpcodeHexagon {
1785   bits <2> Pu4;
1786   let Inst{6-5} = Pu4{1-0};
1787   bits <5> Rt32;
1788   let Inst{12-8} = Rt32{4-0};
1789   bits <5> Rs32;
1790   let Inst{20-16} = Rs32{4-0};
1791   bits <5> Rd32;
1792   let Inst{4-0} = Rd32{4-0};
1793 }
1794 class Enc_ea4c54 : OpcodeHexagon {
1795   bits <2> Pu4;
1796   let Inst{6-5} = Pu4{1-0};
1797   bits <5> Rs32;
1798   let Inst{20-16} = Rs32{4-0};
1799   bits <5> Rt32;
1800   let Inst{12-8} = Rt32{4-0};
1801   bits <5> Rd32;
1802   let Inst{4-0} = Rd32{4-0};
1803 }
1804 class Enc_b72622 : OpcodeHexagon {
1805   bits <2> Ii;
1806   let Inst{13-13} = Ii{1-1};
1807   let Inst{5-5} = Ii{0-0};
1808   bits <5> Rss32;
1809   let Inst{20-16} = Rss32{4-0};
1810   bits <5> Rt32;
1811   let Inst{12-8} = Rt32{4-0};
1812   bits <5> Rxx32;
1813   let Inst{4-0} = Rxx32{4-0};
1814 }
1815 class Enc_569cfe : OpcodeHexagon {
1816   bits <5> Rt32;
1817   let Inst{20-16} = Rt32{4-0};
1818   bits <5> Vx32;
1819   let Inst{4-0} = Vx32{4-0};
1820 }
1821 class Enc_96ce4f : OpcodeHexagon {
1822   bits <4> Ii;
1823   let Inst{6-3} = Ii{3-0};
1824   bits <1> Mu2;
1825   let Inst{13-13} = Mu2{0-0};
1826   bits <3> Nt8;
1827   let Inst{10-8} = Nt8{2-0};
1828   bits <5> Rx32;
1829   let Inst{20-16} = Rx32{4-0};
1830 }
1831 class Enc_143a3c : OpcodeHexagon {
1832   bits <6> Ii;
1833   let Inst{13-8} = Ii{5-0};
1834   bits <6> II;
1835   let Inst{23-21} = II{5-3};
1836   let Inst{7-5} = II{2-0};
1837   bits <5> Rss32;
1838   let Inst{20-16} = Rss32{4-0};
1839   bits <5> Rxx32;
1840   let Inst{4-0} = Rxx32{4-0};
1841 }
1842 class Enc_57a33e : OpcodeHexagon {
1843   bits <9> Ii;
1844   let Inst{13-13} = Ii{8-8};
1845   let Inst{7-3} = Ii{7-3};
1846   bits <2> Pv4;
1847   let Inst{1-0} = Pv4{1-0};
1848   bits <5> Rs32;
1849   let Inst{20-16} = Rs32{4-0};
1850   bits <5> Rtt32;
1851   let Inst{12-8} = Rtt32{4-0};
1852 }
1853 class Enc_311abd : OpcodeHexagon {
1854   bits <5> Ii;
1855   let Inst{12-8} = Ii{4-0};
1856   bits <5> Rs32;
1857   let Inst{20-16} = Rs32{4-0};
1858   bits <5> Rdd32;
1859   let Inst{4-0} = Rdd32{4-0};
1860 }
1861 class Enc_a1640c : OpcodeHexagon {
1862   bits <6> Ii;
1863   let Inst{13-8} = Ii{5-0};
1864   bits <5> Rss32;
1865   let Inst{20-16} = Rss32{4-0};
1866   bits <5> Rd32;
1867   let Inst{4-0} = Rd32{4-0};
1868 }
1869 class Enc_de0214 : OpcodeHexagon {
1870   bits <12> Ii;
1871   let Inst{26-25} = Ii{11-10};
1872   let Inst{13-5} = Ii{9-1};
1873   bits <5> Rs32;
1874   let Inst{20-16} = Rs32{4-0};
1875   bits <5> Rd32;
1876   let Inst{4-0} = Rd32{4-0};
1877 }
1878 class Enc_a90628 : OpcodeHexagon {
1879   bits <2> Qv4;
1880   let Inst{23-22} = Qv4{1-0};
1881   bits <5> Vu32;
1882   let Inst{12-8} = Vu32{4-0};
1883   bits <5> Vx32;
1884   let Inst{4-0} = Vx32{4-0};
1885 }
1886 class Enc_fda92c : OpcodeHexagon {
1887   bits <17> Ii;
1888   let Inst{26-25} = Ii{16-15};
1889   let Inst{20-16} = Ii{14-10};
1890   let Inst{13-13} = Ii{9-9};
1891   let Inst{7-0} = Ii{8-1};
1892   bits <5> Rt32;
1893   let Inst{12-8} = Rt32{4-0};
1894 }
1895 class Enc_831a7d : OpcodeHexagon {
1896   bits <5> Rss32;
1897   let Inst{20-16} = Rss32{4-0};
1898   bits <5> Rtt32;
1899   let Inst{12-8} = Rtt32{4-0};
1900   bits <5> Rxx32;
1901   let Inst{4-0} = Rxx32{4-0};
1902   bits <2> Pe4;
1903   let Inst{6-5} = Pe4{1-0};
1904 }
1905 class Enc_11a146 : OpcodeHexagon {
1906   bits <4> Ii;
1907   let Inst{11-8} = Ii{3-0};
1908   bits <5> Rss32;
1909   let Inst{20-16} = Rss32{4-0};
1910   bits <5> Rd32;
1911   let Inst{4-0} = Rd32{4-0};
1912 }
1913 class Enc_b15941 : OpcodeHexagon {
1914   bits <4> Ii;
1915   let Inst{6-3} = Ii{3-0};
1916   bits <1> Mu2;
1917   let Inst{13-13} = Mu2{0-0};
1918   bits <5> Rt32;
1919   let Inst{12-8} = Rt32{4-0};
1920   bits <5> Rx32;
1921   let Inst{20-16} = Rx32{4-0};
1922 }
1923 class Enc_b78edd : OpcodeHexagon {
1924   bits <11> Ii;
1925   let Inst{21-20} = Ii{10-9};
1926   let Inst{7-1} = Ii{8-2};
1927   bits <4> Rs16;
1928   let Inst{19-16} = Rs16{3-0};
1929   bits <4> n1;
1930   let Inst{28-28} = n1{3-3};
1931   let Inst{24-23} = n1{2-1};
1932   let Inst{8-8} = n1{0-0};
1933 }
1934 class Enc_a27588 : OpcodeHexagon {
1935   bits <11> Ii;
1936   let Inst{26-25} = Ii{10-9};
1937   let Inst{13-5} = Ii{8-0};
1938   bits <5> Rs32;
1939   let Inst{20-16} = Rs32{4-0};
1940   bits <5> Ryy32;
1941   let Inst{4-0} = Ryy32{4-0};
1942 }
1943 class Enc_2a7b91 : OpcodeHexagon {
1944   bits <6> Ii;
1945   let Inst{20-16} = Ii{5-1};
1946   let Inst{8-8} = Ii{0-0};
1947   bits <2> Pt4;
1948   let Inst{10-9} = Pt4{1-0};
1949   bits <5> Rdd32;
1950   let Inst{4-0} = Rdd32{4-0};
1951 }
1952 class Enc_b43b67 : OpcodeHexagon {
1953   bits <5> Vu32;
1954   let Inst{12-8} = Vu32{4-0};
1955   bits <5> Vv32;
1956   let Inst{20-16} = Vv32{4-0};
1957   bits <5> Vd32;
1958   let Inst{4-0} = Vd32{4-0};
1959   bits <2> Qx4;
1960   let Inst{6-5} = Qx4{1-0};
1961 }
1962 class Enc_4aca3a : OpcodeHexagon {
1963   bits <11> Ii;
1964   let Inst{21-20} = Ii{10-9};
1965   let Inst{7-1} = Ii{8-2};
1966   bits <3> Ns8;
1967   let Inst{18-16} = Ns8{2-0};
1968   bits <3> n1;
1969   let Inst{29-29} = n1{2-2};
1970   let Inst{26-25} = n1{1-0};
1971 }
1972 class Enc_b38ffc : OpcodeHexagon {
1973   bits <4> Ii;
1974   let Inst{11-8} = Ii{3-0};
1975   bits <4> Rs16;
1976   let Inst{7-4} = Rs16{3-0};
1977   bits <4> Rt16;
1978   let Inst{3-0} = Rt16{3-0};
1979 }
1980 class Enc_cda00a : OpcodeHexagon {
1981   bits <12> Ii;
1982   let Inst{19-16} = Ii{11-8};
1983   let Inst{12-5} = Ii{7-0};
1984   bits <2> Pu4;
1985   let Inst{22-21} = Pu4{1-0};
1986   bits <5> Rd32;
1987   let Inst{4-0} = Rd32{4-0};
1988 }
1989 class Enc_2fbf3c : OpcodeHexagon {
1990   bits <3> Ii;
1991   let Inst{10-8} = Ii{2-0};
1992   bits <4> Rs16;
1993   let Inst{7-4} = Rs16{3-0};
1994   bits <4> Rd16;
1995   let Inst{3-0} = Rd16{3-0};
1996 }
1997 class Enc_70b24b : OpcodeHexagon {
1998   bits <6> Ii;
1999   let Inst{8-5} = Ii{5-2};
2000   bits <1> Mu2;
2001   let Inst{13-13} = Mu2{0-0};
2002   bits <5> Rdd32;
2003   let Inst{4-0} = Rdd32{4-0};
2004   bits <5> Rx32;
2005   let Inst{20-16} = Rx32{4-0};
2006 }
2007 class Enc_2ae154 : OpcodeHexagon {
2008   bits <5> Rs32;
2009   let Inst{20-16} = Rs32{4-0};
2010   bits <5> Rt32;
2011   let Inst{12-8} = Rt32{4-0};
2012   bits <5> Rx32;
2013   let Inst{4-0} = Rx32{4-0};
2014 }
2015 class Enc_50b5ac : OpcodeHexagon {
2016   bits <6> Ii;
2017   let Inst{17-16} = Ii{5-4};
2018   let Inst{6-3} = Ii{3-0};
2019   bits <2> Pv4;
2020   let Inst{1-0} = Pv4{1-0};
2021   bits <5> Rtt32;
2022   let Inst{12-8} = Rtt32{4-0};
2023 }
2024 class Enc_2ea740 : OpcodeHexagon {
2025   bits <4> Ii;
2026   let Inst{13-13} = Ii{3-3};
2027   let Inst{10-8} = Ii{2-0};
2028   bits <2> Qv4;
2029   let Inst{12-11} = Qv4{1-0};
2030   bits <5> Rt32;
2031   let Inst{20-16} = Rt32{4-0};
2032   bits <5> Vs32;
2033   let Inst{4-0} = Vs32{4-0};
2034 }
2035 class Enc_08d755 : OpcodeHexagon {
2036   bits <8> Ii;
2037   let Inst{12-5} = Ii{7-0};
2038   bits <5> Rs32;
2039   let Inst{20-16} = Rs32{4-0};
2040   bits <2> Pd4;
2041   let Inst{1-0} = Pd4{1-0};
2042 }
2043 class Enc_1178da : OpcodeHexagon {
2044   bits <3> Ii;
2045   let Inst{7-5} = Ii{2-0};
2046   bits <5> Vu32;
2047   let Inst{12-8} = Vu32{4-0};
2048   bits <5> Vv32;
2049   let Inst{20-16} = Vv32{4-0};
2050   bits <5> Vxx32;
2051   let Inst{4-0} = Vxx32{4-0};
2052 }
2053 class Enc_8dbe85 : OpcodeHexagon {
2054   bits <1> Mu2;
2055   let Inst{13-13} = Mu2{0-0};
2056   bits <3> Nt8;
2057   let Inst{10-8} = Nt8{2-0};
2058   bits <5> Rx32;
2059   let Inst{20-16} = Rx32{4-0};
2060 }
2061 class Enc_5a18b3 : OpcodeHexagon {
2062   bits <11> Ii;
2063   let Inst{21-20} = Ii{10-9};
2064   let Inst{7-1} = Ii{8-2};
2065   bits <3> Ns8;
2066   let Inst{18-16} = Ns8{2-0};
2067   bits <5> n1;
2068   let Inst{29-29} = n1{4-4};
2069   let Inst{26-25} = n1{3-2};
2070   let Inst{22-22} = n1{1-1};
2071   let Inst{13-13} = n1{0-0};
2072 }
2073 class Enc_14d27a : OpcodeHexagon {
2074   bits <5> II;
2075   let Inst{12-8} = II{4-0};
2076   bits <11> Ii;
2077   let Inst{21-20} = Ii{10-9};
2078   let Inst{7-1} = Ii{8-2};
2079   bits <4> Rs16;
2080   let Inst{19-16} = Rs16{3-0};
2081 }
2082 class Enc_a05677 : OpcodeHexagon {
2083   bits <5> Ii;
2084   let Inst{12-8} = Ii{4-0};
2085   bits <5> Rs32;
2086   let Inst{20-16} = Rs32{4-0};
2087   bits <5> Rd32;
2088   let Inst{4-0} = Rd32{4-0};
2089 }
2090 class Enc_f0cca7 : OpcodeHexagon {
2091   bits <8> Ii;
2092   let Inst{12-5} = Ii{7-0};
2093   bits <6> II;
2094   let Inst{20-16} = II{5-1};
2095   let Inst{13-13} = II{0-0};
2096   bits <5> Rdd32;
2097   let Inst{4-0} = Rdd32{4-0};
2098 }
2099 class Enc_500cb0 : OpcodeHexagon {
2100   bits <5> Vu32;
2101   let Inst{12-8} = Vu32{4-0};
2102   bits <5> Vxx32;
2103   let Inst{4-0} = Vxx32{4-0};
2104 }
2105 class Enc_7e5a82 : OpcodeHexagon {
2106   bits <5> Ii;
2107   let Inst{12-8} = Ii{4-0};
2108   bits <5> Rss32;
2109   let Inst{20-16} = Rss32{4-0};
2110   bits <5> Rdd32;
2111   let Inst{4-0} = Rdd32{4-0};
2112 }
2113 class Enc_12b6e9 : OpcodeHexagon {
2114   bits <4> Ii;
2115   let Inst{11-8} = Ii{3-0};
2116   bits <5> Rss32;
2117   let Inst{20-16} = Rss32{4-0};
2118   bits <5> Rdd32;
2119   let Inst{4-0} = Rdd32{4-0};
2120 }
2121 class Enc_6f70ca : OpcodeHexagon {
2122   bits <8> Ii;
2123   let Inst{8-4} = Ii{7-3};
2124 }
2125 class Enc_7222b7 : OpcodeHexagon {
2126   bits <5> Rt32;
2127   let Inst{20-16} = Rt32{4-0};
2128   bits <2> Qd4;
2129   let Inst{1-0} = Qd4{1-0};
2130 }
2131 class Enc_e3b0c4 : OpcodeHexagon {
2132 }
2133 class Enc_a255dc : OpcodeHexagon {
2134   bits <3> Ii;
2135   let Inst{10-8} = Ii{2-0};
2136   bits <5> Vd32;
2137   let Inst{4-0} = Vd32{4-0};
2138   bits <5> Rx32;
2139   let Inst{20-16} = Rx32{4-0};
2140 }
2141 class Enc_cb4b4e : OpcodeHexagon {
2142   bits <2> Pu4;
2143   let Inst{6-5} = Pu4{1-0};
2144   bits <5> Rs32;
2145   let Inst{20-16} = Rs32{4-0};
2146   bits <5> Rt32;
2147   let Inst{12-8} = Rt32{4-0};
2148   bits <5> Rdd32;
2149   let Inst{4-0} = Rdd32{4-0};
2150 }
2151 class Enc_9cdba7 : OpcodeHexagon {
2152   bits <8> Ii;
2153   let Inst{12-5} = Ii{7-0};
2154   bits <5> Rs32;
2155   let Inst{20-16} = Rs32{4-0};
2156   bits <5> Rdd32;
2157   let Inst{4-0} = Rdd32{4-0};
2158 }
2159 class Enc_5cd7e9 : OpcodeHexagon {
2160   bits <12> Ii;
2161   let Inst{26-25} = Ii{11-10};
2162   let Inst{13-5} = Ii{9-1};
2163   bits <5> Rs32;
2164   let Inst{20-16} = Rs32{4-0};
2165   bits <5> Ryy32;
2166   let Inst{4-0} = Ryy32{4-0};
2167 }
2168 class Enc_454a26 : OpcodeHexagon {
2169   bits <2> Pt4;
2170   let Inst{9-8} = Pt4{1-0};
2171   bits <2> Ps4;
2172   let Inst{17-16} = Ps4{1-0};
2173   bits <2> Pd4;
2174   let Inst{1-0} = Pd4{1-0};
2175 }
2176 class Enc_a6853f : OpcodeHexagon {
2177   bits <11> Ii;
2178   let Inst{21-20} = Ii{10-9};
2179   let Inst{7-1} = Ii{8-2};
2180   bits <3> Ns8;
2181   let Inst{18-16} = Ns8{2-0};
2182   bits <6> n1;
2183   let Inst{29-29} = n1{5-5};
2184   let Inst{26-25} = n1{4-3};
2185   let Inst{23-22} = n1{2-1};
2186   let Inst{13-13} = n1{0-0};
2187 }
2188 class Enc_c175d0 : OpcodeHexagon {
2189   bits <4> Ii;
2190   let Inst{11-8} = Ii{3-0};
2191   bits <4> Rs16;
2192   let Inst{7-4} = Rs16{3-0};
2193   bits <4> Rd16;
2194   let Inst{3-0} = Rd16{3-0};
2195 }
2196 class Enc_895bd9 : OpcodeHexagon {
2197   bits <2> Qu4;
2198   let Inst{9-8} = Qu4{1-0};
2199   bits <5> Rt32;
2200   let Inst{20-16} = Rt32{4-0};
2201   bits <5> Vx32;
2202   let Inst{4-0} = Vx32{4-0};
2203 }
2204 class Enc_ea23e4 : OpcodeHexagon {
2205   bits <5> Rtt32;
2206   let Inst{12-8} = Rtt32{4-0};
2207   bits <5> Rss32;
2208   let Inst{20-16} = Rss32{4-0};
2209   bits <5> Rdd32;
2210   let Inst{4-0} = Rdd32{4-0};
2211 }
2212 class Enc_4dc228 : OpcodeHexagon {
2213   bits <9> Ii;
2214   let Inst{12-8} = Ii{8-4};
2215   let Inst{4-3} = Ii{3-2};
2216   bits <10> II;
2217   let Inst{20-16} = II{9-5};
2218   let Inst{7-5} = II{4-2};
2219   let Inst{1-0} = II{1-0};
2220 }
2221 class Enc_10bc21 : OpcodeHexagon {
2222   bits <4> Ii;
2223   let Inst{6-3} = Ii{3-0};
2224   bits <5> Rt32;
2225   let Inst{12-8} = Rt32{4-0};
2226   bits <5> Rx32;
2227   let Inst{20-16} = Rx32{4-0};
2228 }
2229 class Enc_1aaec1 : OpcodeHexagon {
2230   bits <3> Ii;
2231   let Inst{10-8} = Ii{2-0};
2232   bits <3> Os8;
2233   let Inst{2-0} = Os8{2-0};
2234   bits <5> Rx32;
2235   let Inst{20-16} = Rx32{4-0};
2236 }
2237 class Enc_329361 : OpcodeHexagon {
2238   bits <2> Pu4;
2239   let Inst{6-5} = Pu4{1-0};
2240   bits <5> Rss32;
2241   let Inst{20-16} = Rss32{4-0};
2242   bits <5> Rtt32;
2243   let Inst{12-8} = Rtt32{4-0};
2244   bits <5> Rdd32;
2245   let Inst{4-0} = Rdd32{4-0};
2246 }
2247 class Enc_d2c7f1 : OpcodeHexagon {
2248   bits <5> Rtt32;
2249   let Inst{12-8} = Rtt32{4-0};
2250   bits <5> Rss32;
2251   let Inst{20-16} = Rss32{4-0};
2252   bits <5> Rdd32;
2253   let Inst{4-0} = Rdd32{4-0};
2254   bits <2> Pe4;
2255   let Inst{6-5} = Pe4{1-0};
2256 }
2257 class Enc_3680c2 : OpcodeHexagon {
2258   bits <7> Ii;
2259   let Inst{11-5} = Ii{6-0};
2260   bits <5> Rss32;
2261   let Inst{20-16} = Rss32{4-0};
2262   bits <2> Pd4;
2263   let Inst{1-0} = Pd4{1-0};
2264 }
2265 class Enc_1ef990 : OpcodeHexagon {
2266   bits <2> Pv4;
2267   let Inst{12-11} = Pv4{1-0};
2268   bits <1> Mu2;
2269   let Inst{13-13} = Mu2{0-0};
2270   bits <5> Vs32;
2271   let Inst{4-0} = Vs32{4-0};
2272   bits <5> Rx32;
2273   let Inst{20-16} = Rx32{4-0};
2274 }
2275 class Enc_e957fb : OpcodeHexagon {
2276   bits <12> Ii;
2277   let Inst{26-25} = Ii{11-10};
2278   let Inst{13-13} = Ii{9-9};
2279   let Inst{7-0} = Ii{8-1};
2280   bits <5> Rs32;
2281   let Inst{20-16} = Rs32{4-0};
2282   bits <5> Rt32;
2283   let Inst{12-8} = Rt32{4-0};
2284 }
2285 class Enc_c9e3bc : OpcodeHexagon {
2286   bits <4> Ii;
2287   let Inst{13-13} = Ii{3-3};
2288   let Inst{10-8} = Ii{2-0};
2289   bits <5> Rt32;
2290   let Inst{20-16} = Rt32{4-0};
2291   bits <5> Vs32;
2292   let Inst{4-0} = Vs32{4-0};
2293 }
2294 class Enc_2e1979 : OpcodeHexagon {
2295   bits <2> Ii;
2296   let Inst{13-13} = Ii{1-1};
2297   let Inst{7-7} = Ii{0-0};
2298   bits <2> Pv4;
2299   let Inst{6-5} = Pv4{1-0};
2300   bits <5> Rs32;
2301   let Inst{20-16} = Rs32{4-0};
2302   bits <5> Rt32;
2303   let Inst{12-8} = Rt32{4-0};
2304   bits <5> Rd32;
2305   let Inst{4-0} = Rd32{4-0};
2306 }
2307 class Enc_0b2e5b : OpcodeHexagon {
2308   bits <3> Ii;
2309   let Inst{7-5} = Ii{2-0};
2310   bits <5> Vu32;
2311   let Inst{12-8} = Vu32{4-0};
2312   bits <5> Vv32;
2313   let Inst{20-16} = Vv32{4-0};
2314   bits <5> Vd32;
2315   let Inst{4-0} = Vd32{4-0};
2316 }
2317 class Enc_d483b9 : OpcodeHexagon {
2318   bits <1> Ii;
2319   let Inst{5-5} = Ii{0-0};
2320   bits <5> Vuu32;
2321   let Inst{12-8} = Vuu32{4-0};
2322   bits <5> Rt32;
2323   let Inst{20-16} = Rt32{4-0};
2324   bits <5> Vxx32;
2325   let Inst{4-0} = Vxx32{4-0};
2326 }
2327 class Enc_51635c : OpcodeHexagon {
2328   bits <7> Ii;
2329   let Inst{8-4} = Ii{6-2};
2330   bits <4> Rd16;
2331   let Inst{3-0} = Rd16{3-0};
2332 }
2333 class Enc_e26546 : OpcodeHexagon {
2334   bits <5> Ii;
2335   let Inst{6-3} = Ii{4-1};
2336   bits <3> Nt8;
2337   let Inst{10-8} = Nt8{2-0};
2338   bits <5> Rx32;
2339   let Inst{20-16} = Rx32{4-0};
2340 }
2341 class Enc_70fb07 : OpcodeHexagon {
2342   bits <6> Ii;
2343   let Inst{13-8} = Ii{5-0};
2344   bits <5> Rss32;
2345   let Inst{20-16} = Rss32{4-0};
2346   bits <5> Rxx32;
2347   let Inst{4-0} = Rxx32{4-0};
2348 }
2349 class Enc_277737 : OpcodeHexagon {
2350   bits <8> Ii;
2351   let Inst{22-21} = Ii{7-6};
2352   let Inst{13-13} = Ii{5-5};
2353   let Inst{7-5} = Ii{4-2};
2354   bits <5> Ru32;
2355   let Inst{4-0} = Ru32{4-0};
2356   bits <5> Rs32;
2357   let Inst{20-16} = Rs32{4-0};
2358   bits <5> Rd32;
2359   let Inst{12-8} = Rd32{4-0};
2360 }
2361 class Enc_5c124a : OpcodeHexagon {
2362   bits <19> Ii;
2363   let Inst{26-25} = Ii{18-17};
2364   let Inst{20-16} = Ii{16-12};
2365   let Inst{13-13} = Ii{11-11};
2366   let Inst{7-0} = Ii{10-3};
2367   bits <5> Rtt32;
2368   let Inst{12-8} = Rtt32{4-0};
2369 }
2370 class Enc_928ca1 : OpcodeHexagon {
2371   bits <1> Mu2;
2372   let Inst{13-13} = Mu2{0-0};
2373   bits <5> Rtt32;
2374   let Inst{12-8} = Rtt32{4-0};
2375   bits <5> Rx32;
2376   let Inst{20-16} = Rx32{4-0};
2377 }
2378 class Enc_da664b : OpcodeHexagon {
2379   bits <2> Ii;
2380   let Inst{13-13} = Ii{1-1};
2381   let Inst{7-7} = Ii{0-0};
2382   bits <5> Rs32;
2383   let Inst{20-16} = Rs32{4-0};
2384   bits <5> Rt32;
2385   let Inst{12-8} = Rt32{4-0};
2386   bits <5> Rd32;
2387   let Inst{4-0} = Rd32{4-0};
2388 }
2389 class Enc_7b7ba8 : OpcodeHexagon {
2390   bits <2> Qu4;
2391   let Inst{9-8} = Qu4{1-0};
2392   bits <5> Rt32;
2393   let Inst{20-16} = Rt32{4-0};
2394   bits <5> Vd32;
2395   let Inst{4-0} = Vd32{4-0};
2396 }
2397 class Enc_47ee5e : OpcodeHexagon {
2398   bits <2> Ii;
2399   let Inst{13-13} = Ii{1-1};
2400   let Inst{7-7} = Ii{0-0};
2401   bits <2> Pv4;
2402   let Inst{6-5} = Pv4{1-0};
2403   bits <5> Rs32;
2404   let Inst{20-16} = Rs32{4-0};
2405   bits <5> Ru32;
2406   let Inst{12-8} = Ru32{4-0};
2407   bits <3> Nt8;
2408   let Inst{2-0} = Nt8{2-0};
2409 }
2410 class Enc_8bcba4 : OpcodeHexagon {
2411   bits <6> II;
2412   let Inst{5-0} = II{5-0};
2413   bits <5> Rt32;
2414   let Inst{12-8} = Rt32{4-0};
2415   bits <5> Re32;
2416   let Inst{20-16} = Re32{4-0};
2417 }
2418 class Enc_3a2484 : OpcodeHexagon {
2419   bits <11> Ii;
2420   let Inst{21-20} = Ii{10-9};
2421   let Inst{7-1} = Ii{8-2};
2422   bits <4> Rs16;
2423   let Inst{19-16} = Rs16{3-0};
2424   bits <4> n1;
2425   let Inst{28-28} = n1{3-3};
2426   let Inst{24-23} = n1{2-1};
2427   let Inst{13-13} = n1{0-0};
2428 }
2429 class Enc_a5ed8a : OpcodeHexagon {
2430   bits <5> Rt32;
2431   let Inst{20-16} = Rt32{4-0};
2432   bits <5> Vd32;
2433   let Inst{4-0} = Vd32{4-0};
2434 }
2435 class Enc_cb9321 : OpcodeHexagon {
2436   bits <16> Ii;
2437   let Inst{27-21} = Ii{15-9};
2438   let Inst{13-5} = Ii{8-0};
2439   bits <5> Rs32;
2440   let Inst{20-16} = Rs32{4-0};
2441   bits <5> Rd32;
2442   let Inst{4-0} = Rd32{4-0};
2443 }
2444 class Enc_668704 : OpcodeHexagon {
2445   bits <11> Ii;
2446   let Inst{21-20} = Ii{10-9};
2447   let Inst{7-1} = Ii{8-2};
2448   bits <4> Rs16;
2449   let Inst{19-16} = Rs16{3-0};
2450   bits <5> n1;
2451   let Inst{28-28} = n1{4-4};
2452   let Inst{25-22} = n1{3-0};
2453 }
2454 class Enc_a7341a : OpcodeHexagon {
2455   bits <5> Vu32;
2456   let Inst{12-8} = Vu32{4-0};
2457   bits <5> Vv32;
2458   let Inst{20-16} = Vv32{4-0};
2459   bits <5> Vx32;
2460   let Inst{4-0} = Vx32{4-0};
2461 }
2462 class Enc_5eac98 : OpcodeHexagon {
2463   bits <6> Ii;
2464   let Inst{13-8} = Ii{5-0};
2465   bits <5> Rss32;
2466   let Inst{20-16} = Rss32{4-0};
2467   bits <5> Rdd32;
2468   let Inst{4-0} = Rdd32{4-0};
2469 }
2470 class Enc_02553a : OpcodeHexagon {
2471   bits <7> Ii;
2472   let Inst{11-5} = Ii{6-0};
2473   bits <5> Rs32;
2474   let Inst{20-16} = Rs32{4-0};
2475   bits <2> Pd4;
2476   let Inst{1-0} = Pd4{1-0};
2477 }
2478 class Enc_acd6ed : OpcodeHexagon {
2479   bits <9> Ii;
2480   let Inst{10-5} = Ii{8-3};
2481   bits <2> Pt4;
2482   let Inst{12-11} = Pt4{1-0};
2483   bits <5> Rs32;
2484   let Inst{20-16} = Rs32{4-0};
2485   bits <5> Rdd32;
2486   let Inst{4-0} = Rdd32{4-0};
2487 }
2488 class Enc_8e583a : OpcodeHexagon {
2489   bits <11> Ii;
2490   let Inst{21-20} = Ii{10-9};
2491   let Inst{7-1} = Ii{8-2};
2492   bits <4> Rs16;
2493   let Inst{19-16} = Rs16{3-0};
2494   bits <5> n1;
2495   let Inst{28-28} = n1{4-4};
2496   let Inst{25-23} = n1{3-1};
2497   let Inst{13-13} = n1{0-0};
2498 }
2499 class Enc_b886fd : OpcodeHexagon {
2500   bits <5> Ii;
2501   let Inst{6-3} = Ii{4-1};
2502   bits <2> Pv4;
2503   let Inst{1-0} = Pv4{1-0};
2504   bits <5> Rt32;
2505   let Inst{12-8} = Rt32{4-0};
2506   bits <5> Rx32;
2507   let Inst{20-16} = Rx32{4-0};
2508 }
2509 class Enc_24a7dc : OpcodeHexagon {
2510   bits <5> Vu32;
2511   let Inst{12-8} = Vu32{4-0};
2512   bits <5> Vv32;
2513   let Inst{23-19} = Vv32{4-0};
2514   bits <3> Rt8;
2515   let Inst{18-16} = Rt8{2-0};
2516   bits <5> Vdd32;
2517   let Inst{4-0} = Vdd32{4-0};
2518 }
2519 class Enc_2d829e : OpcodeHexagon {
2520   bits <14> Ii;
2521   let Inst{10-0} = Ii{13-3};
2522   bits <5> Rs32;
2523   let Inst{20-16} = Rs32{4-0};
2524 }
2525 class Enc_4f4ed7 : OpcodeHexagon {
2526   bits <18> Ii;
2527   let Inst{26-25} = Ii{17-16};
2528   let Inst{20-16} = Ii{15-11};
2529   let Inst{13-5} = Ii{10-2};
2530   bits <5> Rd32;
2531   let Inst{4-0} = Rd32{4-0};
2532 }
2533 class Enc_84b2cd : OpcodeHexagon {
2534   bits <8> Ii;
2535   let Inst{12-7} = Ii{7-2};
2536   bits <5> II;
2537   let Inst{4-0} = II{4-0};
2538   bits <5> Rs32;
2539   let Inst{20-16} = Rs32{4-0};
2540 }
2541 class Enc_8dbdfe : OpcodeHexagon {
2542   bits <8> Ii;
2543   let Inst{13-13} = Ii{7-7};
2544   let Inst{7-3} = Ii{6-2};
2545   bits <2> Pv4;
2546   let Inst{1-0} = Pv4{1-0};
2547   bits <5> Rs32;
2548   let Inst{20-16} = Rs32{4-0};
2549   bits <3> Nt8;
2550   let Inst{10-8} = Nt8{2-0};
2551 }
2552 class Enc_90cd8b : OpcodeHexagon {
2553   bits <5> Rss32;
2554   let Inst{20-16} = Rss32{4-0};
2555   bits <5> Rd32;
2556   let Inst{4-0} = Rd32{4-0};
2557 }
2558 class Enc_bd0b33 : OpcodeHexagon {
2559   bits <10> Ii;
2560   let Inst{21-21} = Ii{9-9};
2561   let Inst{13-5} = Ii{8-0};
2562   bits <5> Rs32;
2563   let Inst{20-16} = Rs32{4-0};
2564   bits <2> Pd4;
2565   let Inst{1-0} = Pd4{1-0};
2566 }
2567 class Enc_c7cd90 : OpcodeHexagon {
2568   bits <4> Ii;
2569   let Inst{6-3} = Ii{3-0};
2570   bits <3> Nt8;
2571   let Inst{10-8} = Nt8{2-0};
2572   bits <5> Rx32;
2573   let Inst{20-16} = Rx32{4-0};
2574 }
2575 class Enc_405228 : OpcodeHexagon {
2576   bits <11> Ii;
2577   let Inst{21-20} = Ii{10-9};
2578   let Inst{7-1} = Ii{8-2};
2579   bits <4> Rs16;
2580   let Inst{19-16} = Rs16{3-0};
2581   bits <3> n1;
2582   let Inst{28-28} = n1{2-2};
2583   let Inst{24-23} = n1{1-0};
2584 }
2585 class Enc_81ac1d : OpcodeHexagon {
2586   bits <24> Ii;
2587   let Inst{24-16} = Ii{23-15};
2588   let Inst{13-1} = Ii{14-2};
2589 }
2590 class Enc_395cc4 : OpcodeHexagon {
2591   bits <7> Ii;
2592   let Inst{6-3} = Ii{6-3};
2593   bits <1> Mu2;
2594   let Inst{13-13} = Mu2{0-0};
2595   bits <5> Rtt32;
2596   let Inst{12-8} = Rtt32{4-0};
2597   bits <5> Rx32;
2598   let Inst{20-16} = Rx32{4-0};
2599 }
2600 class Enc_a51a9a : OpcodeHexagon {
2601   bits <8> Ii;
2602   let Inst{12-8} = Ii{7-3};
2603   let Inst{4-2} = Ii{2-0};
2604 }
2605 class Enc_d44e31 : OpcodeHexagon {
2606   bits <6> Ii;
2607   let Inst{12-7} = Ii{5-0};
2608   bits <5> Rs32;
2609   let Inst{20-16} = Rs32{4-0};
2610   bits <5> Rt32;
2611   let Inst{4-0} = Rt32{4-0};
2612 }
2613 class Enc_f77fbc : OpcodeHexagon {
2614   bits <4> Ii;
2615   let Inst{13-13} = Ii{3-3};
2616   let Inst{10-8} = Ii{2-0};
2617   bits <5> Rt32;
2618   let Inst{20-16} = Rt32{4-0};
2619   bits <3> Os8;
2620   let Inst{2-0} = Os8{2-0};
2621 }
2622 class Enc_d2216a : OpcodeHexagon {
2623   bits <5> Rss32;
2624   let Inst{20-16} = Rss32{4-0};
2625   bits <5> Rtt32;
2626   let Inst{12-8} = Rtt32{4-0};
2627   bits <5> Rd32;
2628   let Inst{4-0} = Rd32{4-0};
2629 }
2630 class Enc_85bf58 : OpcodeHexagon {
2631   bits <7> Ii;
2632   let Inst{6-3} = Ii{6-3};
2633   bits <5> Rtt32;
2634   let Inst{12-8} = Rtt32{4-0};
2635   bits <5> Rx32;
2636   let Inst{20-16} = Rx32{4-0};
2637 }
2638 class Enc_71bb9b : OpcodeHexagon {
2639   bits <5> Vu32;
2640   let Inst{12-8} = Vu32{4-0};
2641   bits <5> Vv32;
2642   let Inst{20-16} = Vv32{4-0};
2643   bits <5> Vdd32;
2644   let Inst{4-0} = Vdd32{4-0};
2645 }
2646 class Enc_52a5dd : OpcodeHexagon {
2647   bits <4> Ii;
2648   let Inst{6-3} = Ii{3-0};
2649   bits <2> Pv4;
2650   let Inst{1-0} = Pv4{1-0};
2651   bits <3> Nt8;
2652   let Inst{10-8} = Nt8{2-0};
2653   bits <5> Rx32;
2654   let Inst{20-16} = Rx32{4-0};
2655 }
2656 class Enc_5e2823 : OpcodeHexagon {
2657   bits <5> Rs32;
2658   let Inst{20-16} = Rs32{4-0};
2659   bits <5> Rd32;
2660   let Inst{4-0} = Rd32{4-0};
2661 }
2662 class Enc_28a2dc : OpcodeHexagon {
2663   bits <5> Ii;
2664   let Inst{12-8} = Ii{4-0};
2665   bits <5> Rs32;
2666   let Inst{20-16} = Rs32{4-0};
2667   bits <5> Rx32;
2668   let Inst{4-0} = Rx32{4-0};
2669 }
2670 class Enc_5138b3 : OpcodeHexagon {
2671   bits <5> Vu32;
2672   let Inst{12-8} = Vu32{4-0};
2673   bits <5> Rt32;
2674   let Inst{20-16} = Rt32{4-0};
2675   bits <5> Vx32;
2676   let Inst{4-0} = Vx32{4-0};
2677 }
2678 class Enc_84d359 : OpcodeHexagon {
2679   bits <4> Ii;
2680   let Inst{3-0} = Ii{3-0};
2681   bits <4> Rs16;
2682   let Inst{7-4} = Rs16{3-0};
2683 }
2684 class Enc_e07374 : OpcodeHexagon {
2685   bits <5> Rs32;
2686   let Inst{20-16} = Rs32{4-0};
2687   bits <5> Rtt32;
2688   let Inst{12-8} = Rtt32{4-0};
2689   bits <5> Rd32;
2690   let Inst{4-0} = Rd32{4-0};
2691 }
2692 class Enc_323f2d : OpcodeHexagon {
2693   bits <6> II;
2694   let Inst{11-8} = II{5-2};
2695   let Inst{6-5} = II{1-0};
2696   bits <5> Rd32;
2697   let Inst{4-0} = Rd32{4-0};
2698   bits <5> Re32;
2699   let Inst{20-16} = Re32{4-0};
2700 }
2701 class Enc_1a9974 : OpcodeHexagon {
2702   bits <2> Ii;
2703   let Inst{13-13} = Ii{1-1};
2704   let Inst{7-7} = Ii{0-0};
2705   bits <2> Pv4;
2706   let Inst{6-5} = Pv4{1-0};
2707   bits <5> Rs32;
2708   let Inst{20-16} = Rs32{4-0};
2709   bits <5> Ru32;
2710   let Inst{12-8} = Ru32{4-0};
2711   bits <5> Rtt32;
2712   let Inst{4-0} = Rtt32{4-0};
2713 }
2714 class Enc_1de724 : OpcodeHexagon {
2715   bits <11> Ii;
2716   let Inst{21-20} = Ii{10-9};
2717   let Inst{7-1} = Ii{8-2};
2718   bits <4> Rs16;
2719   let Inst{19-16} = Rs16{3-0};
2720   bits <4> n1;
2721   let Inst{28-28} = n1{3-3};
2722   let Inst{24-22} = n1{2-0};
2723 }
2724 class Enc_dd766a : OpcodeHexagon {
2725   bits <5> Vu32;
2726   let Inst{12-8} = Vu32{4-0};
2727   bits <5> Vdd32;
2728   let Inst{4-0} = Vdd32{4-0};
2729 }
2730 class Enc_0b51ce : OpcodeHexagon {
2731   bits <3> Ii;
2732   let Inst{10-8} = Ii{2-0};
2733   bits <2> Qv4;
2734   let Inst{12-11} = Qv4{1-0};
2735   bits <5> Vs32;
2736   let Inst{4-0} = Vs32{4-0};
2737   bits <5> Rx32;
2738   let Inst{20-16} = Rx32{4-0};
2739 }
2740 class Enc_b4e6cf : OpcodeHexagon {
2741   bits <10> Ii;
2742   let Inst{21-21} = Ii{9-9};
2743   let Inst{13-5} = Ii{8-0};
2744   bits <5> Ru32;
2745   let Inst{4-0} = Ru32{4-0};
2746   bits <5> Rx32;
2747   let Inst{20-16} = Rx32{4-0};
2748 }
2749 class Enc_44215c : OpcodeHexagon {
2750   bits <6> Ii;
2751   let Inst{17-16} = Ii{5-4};
2752   let Inst{6-3} = Ii{3-0};
2753   bits <2> Pv4;
2754   let Inst{1-0} = Pv4{1-0};
2755   bits <3> Nt8;
2756   let Inst{10-8} = Nt8{2-0};
2757 }
2758 class Enc_a21d47 : OpcodeHexagon {
2759   bits <6> Ii;
2760   let Inst{10-5} = Ii{5-0};
2761   bits <2> Pt4;
2762   let Inst{12-11} = Pt4{1-0};
2763   bits <5> Rs32;
2764   let Inst{20-16} = Rs32{4-0};
2765   bits <5> Rd32;
2766   let Inst{4-0} = Rd32{4-0};
2767 }
2768 class Enc_cc449f : OpcodeHexagon {
2769   bits <4> Ii;
2770   let Inst{6-3} = Ii{3-0};
2771   bits <2> Pv4;
2772   let Inst{1-0} = Pv4{1-0};
2773   bits <5> Rt32;
2774   let Inst{12-8} = Rt32{4-0};
2775   bits <5> Rx32;
2776   let Inst{20-16} = Rx32{4-0};
2777 }
2778 class Enc_645d54 : OpcodeHexagon {
2779   bits <2> Ii;
2780   let Inst{13-13} = Ii{1-1};
2781   let Inst{5-5} = Ii{0-0};
2782   bits <5> Rss32;
2783   let Inst{20-16} = Rss32{4-0};
2784   bits <5> Rt32;
2785   let Inst{12-8} = Rt32{4-0};
2786   bits <5> Rdd32;
2787   let Inst{4-0} = Rdd32{4-0};
2788 }
2789 class Enc_667b39 : OpcodeHexagon {
2790   bits <5> Css32;
2791   let Inst{20-16} = Css32{4-0};
2792   bits <5> Rdd32;
2793   let Inst{4-0} = Rdd32{4-0};
2794 }
2795 class Enc_927852 : OpcodeHexagon {
2796   bits <5> Rss32;
2797   let Inst{20-16} = Rss32{4-0};
2798   bits <5> Rt32;
2799   let Inst{12-8} = Rt32{4-0};
2800   bits <5> Rdd32;
2801   let Inst{4-0} = Rdd32{4-0};
2802 }
2803 class Enc_163a3c : OpcodeHexagon {
2804   bits <7> Ii;
2805   let Inst{12-7} = Ii{6-1};
2806   bits <5> Rs32;
2807   let Inst{20-16} = Rs32{4-0};
2808   bits <5> Rt32;
2809   let Inst{4-0} = Rt32{4-0};
2810 }
2811 class Enc_b087ac : OpcodeHexagon {
2812   bits <5> Vu32;
2813   let Inst{12-8} = Vu32{4-0};
2814   bits <5> Rt32;
2815   let Inst{20-16} = Rt32{4-0};
2816   bits <5> Vd32;
2817   let Inst{4-0} = Vd32{4-0};
2818 }
2819 class Enc_b1e1fb : OpcodeHexagon {
2820   bits <11> Ii;
2821   let Inst{21-20} = Ii{10-9};
2822   let Inst{7-1} = Ii{8-2};
2823   bits <4> Rs16;
2824   let Inst{19-16} = Rs16{3-0};
2825   bits <5> n1;
2826   let Inst{28-28} = n1{4-4};
2827   let Inst{25-23} = n1{3-1};
2828   let Inst{8-8} = n1{0-0};
2829 }
2830 class Enc_1f19b5 : OpcodeHexagon {
2831   bits <5> Ii;
2832   let Inst{9-5} = Ii{4-0};
2833   bits <5> Rss32;
2834   let Inst{20-16} = Rss32{4-0};
2835   bits <2> Pd4;
2836   let Inst{1-0} = Pd4{1-0};
2837 }
2838 class Enc_b8c967 : OpcodeHexagon {
2839   bits <8> Ii;
2840   let Inst{12-5} = Ii{7-0};
2841   bits <5> Rs32;
2842   let Inst{20-16} = Rs32{4-0};
2843   bits <5> Rd32;
2844   let Inst{4-0} = Rd32{4-0};
2845 }
2846 class Enc_fb6577 : OpcodeHexagon {
2847   bits <2> Pu4;
2848   let Inst{9-8} = Pu4{1-0};
2849   bits <5> Rs32;
2850   let Inst{20-16} = Rs32{4-0};
2851   bits <5> Rd32;
2852   let Inst{4-0} = Rd32{4-0};
2853 }
2854 class Enc_2bae10 : OpcodeHexagon {
2855   bits <4> Ii;
2856   let Inst{10-8} = Ii{3-1};
2857   bits <4> Rs16;
2858   let Inst{7-4} = Rs16{3-0};
2859   bits <4> Rd16;
2860   let Inst{3-0} = Rd16{3-0};
2861 }
2862 class Enc_c4dc92 : OpcodeHexagon {
2863   bits <2> Qv4;
2864   let Inst{23-22} = Qv4{1-0};
2865   bits <5> Vu32;
2866   let Inst{12-8} = Vu32{4-0};
2867   bits <5> Vd32;
2868   let Inst{4-0} = Vd32{4-0};
2869 }
2870 class Enc_03833b : OpcodeHexagon {
2871   bits <5> Rss32;
2872   let Inst{20-16} = Rss32{4-0};
2873   bits <5> Rt32;
2874   let Inst{12-8} = Rt32{4-0};
2875   bits <2> Pd4;
2876   let Inst{1-0} = Pd4{1-0};
2877 }
2878 class Enc_dbd70c : OpcodeHexagon {
2879   bits <5> Rss32;
2880   let Inst{20-16} = Rss32{4-0};
2881   bits <5> Rtt32;
2882   let Inst{12-8} = Rtt32{4-0};
2883   bits <2> Pu4;
2884   let Inst{6-5} = Pu4{1-0};
2885   bits <5> Rdd32;
2886   let Inst{4-0} = Rdd32{4-0};
2887 }
2888 class Enc_f6fe0b : OpcodeHexagon {
2889   bits <11> Ii;
2890   let Inst{21-20} = Ii{10-9};
2891   let Inst{7-1} = Ii{8-2};
2892   bits <4> Rs16;
2893   let Inst{19-16} = Rs16{3-0};
2894   bits <6> n1;
2895   let Inst{28-28} = n1{5-5};
2896   let Inst{24-22} = n1{4-2};
2897   let Inst{13-13} = n1{1-1};
2898   let Inst{8-8} = n1{0-0};
2899 }
2900 class Enc_9e2e1c : OpcodeHexagon {
2901   bits <5> Ii;
2902   let Inst{8-5} = Ii{4-1};
2903   bits <1> Mu2;
2904   let Inst{13-13} = Mu2{0-0};
2905   bits <5> Ryy32;
2906   let Inst{4-0} = Ryy32{4-0};
2907   bits <5> Rx32;
2908   let Inst{20-16} = Rx32{4-0};
2909 }
2910 class Enc_8df4be : OpcodeHexagon {
2911   bits <17> Ii;
2912   let Inst{26-25} = Ii{16-15};
2913   let Inst{20-16} = Ii{14-10};
2914   let Inst{13-5} = Ii{9-1};
2915   bits <5> Rd32;
2916   let Inst{4-0} = Rd32{4-0};
2917 }
2918 class Enc_66bce1 : OpcodeHexagon {
2919   bits <11> Ii;
2920   let Inst{21-20} = Ii{10-9};
2921   let Inst{7-1} = Ii{8-2};
2922   bits <4> Rs16;
2923   let Inst{19-16} = Rs16{3-0};
2924   bits <4> Rd16;
2925   let Inst{11-8} = Rd16{3-0};
2926 }
2927 class Enc_b8309d : OpcodeHexagon {
2928   bits <9> Ii;
2929   let Inst{8-3} = Ii{8-3};
2930   bits <3> Rtt8;
2931   let Inst{2-0} = Rtt8{2-0};
2932 }
2933 class Enc_5e8512 : OpcodeHexagon {
2934   bits <5> Vu32;
2935   let Inst{12-8} = Vu32{4-0};
2936   bits <5> Rt32;
2937   let Inst{20-16} = Rt32{4-0};
2938   bits <5> Vxx32;
2939   let Inst{4-0} = Vxx32{4-0};
2940 }
2941 class Enc_4f677b : OpcodeHexagon {
2942   bits <2> Ii;
2943   let Inst{13-13} = Ii{1-1};
2944   let Inst{7-7} = Ii{0-0};
2945   bits <6> II;
2946   let Inst{11-8} = II{5-2};
2947   let Inst{6-5} = II{1-0};
2948   bits <5> Rt32;
2949   let Inst{20-16} = Rt32{4-0};
2950   bits <5> Rd32;
2951   let Inst{4-0} = Rd32{4-0};
2952 }
2953 class Enc_3d920a : OpcodeHexagon {
2954   bits <6> Ii;
2955   let Inst{8-5} = Ii{5-2};
2956   bits <5> Rd32;
2957   let Inst{4-0} = Rd32{4-0};
2958   bits <5> Rx32;
2959   let Inst{20-16} = Rx32{4-0};
2960 }
2961 class Enc_e83554 : OpcodeHexagon {
2962   bits <5> Ii;
2963   let Inst{8-5} = Ii{4-1};
2964   bits <1> Mu2;
2965   let Inst{13-13} = Mu2{0-0};
2966   bits <5> Rd32;
2967   let Inst{4-0} = Rd32{4-0};
2968   bits <5> Rx32;
2969   let Inst{20-16} = Rx32{4-0};
2970 }
2971 class Enc_ed48be : OpcodeHexagon {
2972   bits <2> Ii;
2973   let Inst{6-5} = Ii{1-0};
2974   bits <3> Rdd8;
2975   let Inst{2-0} = Rdd8{2-0};
2976 }
2977 class Enc_f8c1c4 : OpcodeHexagon {
2978   bits <2> Pv4;
2979   let Inst{12-11} = Pv4{1-0};
2980   bits <1> Mu2;
2981   let Inst{13-13} = Mu2{0-0};
2982   bits <5> Vd32;
2983   let Inst{4-0} = Vd32{4-0};
2984   bits <5> Rx32;
2985   let Inst{20-16} = Rx32{4-0};
2986 }
2987 class Enc_1aa186 : OpcodeHexagon {
2988   bits <5> Rss32;
2989   let Inst{20-16} = Rss32{4-0};
2990   bits <5> Rt32;
2991   let Inst{12-8} = Rt32{4-0};
2992   bits <5> Rxx32;
2993   let Inst{4-0} = Rxx32{4-0};
2994 }
2995 class Enc_134437 : OpcodeHexagon {
2996   bits <2> Qs4;
2997   let Inst{9-8} = Qs4{1-0};
2998   bits <2> Qt4;
2999   let Inst{23-22} = Qt4{1-0};
3000   bits <2> Qd4;
3001   let Inst{1-0} = Qd4{1-0};
3002 }
3003 class Enc_97d666 : OpcodeHexagon {
3004   bits <4> Rs16;
3005   let Inst{7-4} = Rs16{3-0};
3006   bits <4> Rd16;
3007   let Inst{3-0} = Rd16{3-0};
3008 }
3009 class Enc_f82eaf : OpcodeHexagon {
3010   bits <8> Ii;
3011   let Inst{10-5} = Ii{7-2};
3012   bits <2> Pt4;
3013   let Inst{12-11} = Pt4{1-0};
3014   bits <5> Rs32;
3015   let Inst{20-16} = Rs32{4-0};
3016   bits <5> Rd32;
3017   let Inst{4-0} = Rd32{4-0};
3018 }
3019 class Enc_69d63b : OpcodeHexagon {
3020   bits <11> Ii;
3021   let Inst{21-20} = Ii{10-9};
3022   let Inst{7-1} = Ii{8-2};
3023   bits <3> Ns8;
3024   let Inst{18-16} = Ns8{2-0};
3025 }
3026 class Enc_f79415 : OpcodeHexagon {
3027   bits <2> Ii;
3028   let Inst{13-13} = Ii{1-1};
3029   let Inst{6-6} = Ii{0-0};
3030   bits <6> II;
3031   let Inst{5-0} = II{5-0};
3032   bits <5> Ru32;
3033   let Inst{20-16} = Ru32{4-0};
3034   bits <5> Rtt32;
3035   let Inst{12-8} = Rtt32{4-0};
3036 }
3037 class Enc_ce6828 : OpcodeHexagon {
3038   bits <14> Ii;
3039   let Inst{26-25} = Ii{13-12};
3040   let Inst{13-13} = Ii{11-11};
3041   let Inst{7-0} = Ii{10-3};
3042   bits <5> Rs32;
3043   let Inst{20-16} = Rs32{4-0};
3044   bits <5> Rtt32;
3045   let Inst{12-8} = Rtt32{4-0};
3046 }
3047 class Enc_800e04 : OpcodeHexagon {
3048   bits <11> Ii;
3049   let Inst{21-20} = Ii{10-9};
3050   let Inst{7-1} = Ii{8-2};
3051   bits <4> Rs16;
3052   let Inst{19-16} = Rs16{3-0};
3053   bits <6> n1;
3054   let Inst{28-28} = n1{5-5};
3055   let Inst{25-22} = n1{4-1};
3056   let Inst{13-13} = n1{0-0};
3057 }
3058 class Enc_ad1831 : OpcodeHexagon {
3059   bits <16> Ii;
3060   let Inst{26-25} = Ii{15-14};
3061   let Inst{20-16} = Ii{13-9};
3062   let Inst{13-13} = Ii{8-8};
3063   let Inst{7-0} = Ii{7-0};
3064   bits <3> Nt8;
3065   let Inst{10-8} = Nt8{2-0};
3066 }
3067 class Enc_0fa531 : OpcodeHexagon {
3068   bits <15> Ii;
3069   let Inst{21-21} = Ii{14-14};
3070   let Inst{13-13} = Ii{13-13};
3071   let Inst{11-1} = Ii{12-2};
3072   bits <5> Rs32;
3073   let Inst{20-16} = Rs32{4-0};
3074 }
3075 class Enc_7eaeb6 : OpcodeHexagon {
3076   bits <6> Ii;
3077   let Inst{6-3} = Ii{5-2};
3078   bits <2> Pv4;
3079   let Inst{1-0} = Pv4{1-0};
3080   bits <5> Rt32;
3081   let Inst{12-8} = Rt32{4-0};
3082   bits <5> Rx32;
3083   let Inst{20-16} = Rx32{4-0};
3084 }
3085 class Enc_f55a0c : OpcodeHexagon {
3086   bits <6> Ii;
3087   let Inst{11-8} = Ii{5-2};
3088   bits <4> Rs16;
3089   let Inst{7-4} = Rs16{3-0};
3090   bits <4> Rt16;
3091   let Inst{3-0} = Rt16{3-0};
3092 }
3093 class Enc_f20719 : OpcodeHexagon {
3094   bits <7> Ii;
3095   let Inst{12-7} = Ii{6-1};
3096   bits <6> II;
3097   let Inst{13-13} = II{5-5};
3098   let Inst{4-0} = II{4-0};
3099   bits <2> Pv4;
3100   let Inst{6-5} = Pv4{1-0};
3101   bits <5> Rs32;
3102   let Inst{20-16} = Rs32{4-0};
3103 }
3104 class Enc_eafd18 : OpcodeHexagon {
3105   bits <5> II;
3106   let Inst{12-8} = II{4-0};
3107   bits <11> Ii;
3108   let Inst{21-20} = Ii{10-9};
3109   let Inst{7-1} = Ii{8-2};
3110   bits <3> Ns8;
3111   let Inst{18-16} = Ns8{2-0};
3112 }
3113 class Enc_7b523d : OpcodeHexagon {
3114   bits <5> Vu32;
3115   let Inst{12-8} = Vu32{4-0};
3116   bits <5> Vv32;
3117   let Inst{23-19} = Vv32{4-0};
3118   bits <3> Rt8;
3119   let Inst{18-16} = Rt8{2-0};
3120   bits <5> Vxx32;
3121   let Inst{4-0} = Vxx32{4-0};
3122 }
3123 class Enc_47ef61 : OpcodeHexagon {
3124   bits <3> Ii;
3125   let Inst{7-5} = Ii{2-0};
3126   bits <5> Rt32;
3127   let Inst{12-8} = Rt32{4-0};
3128   bits <5> Rs32;
3129   let Inst{20-16} = Rs32{4-0};
3130   bits <5> Rd32;
3131   let Inst{4-0} = Rd32{4-0};
3132 }
3133 class Enc_cc857d : OpcodeHexagon {
3134   bits <5> Vuu32;
3135   let Inst{12-8} = Vuu32{4-0};
3136   bits <5> Rt32;
3137   let Inst{20-16} = Rt32{4-0};
3138   bits <5> Vx32;
3139   let Inst{4-0} = Vx32{4-0};
3140 }
3141 class Enc_7fa7f6 : OpcodeHexagon {
3142   bits <6> II;
3143   let Inst{11-8} = II{5-2};
3144   let Inst{6-5} = II{1-0};
3145   bits <5> Rdd32;
3146   let Inst{4-0} = Rdd32{4-0};
3147   bits <5> Re32;
3148   let Inst{20-16} = Re32{4-0};
3149 }
3150 class Enc_0f8bab : OpcodeHexagon {
3151   bits <5> Vu32;
3152   let Inst{12-8} = Vu32{4-0};
3153   bits <5> Rt32;
3154   let Inst{20-16} = Rt32{4-0};
3155   bits <2> Qd4;
3156   let Inst{1-0} = Qd4{1-0};
3157 }
3158 class Enc_7eb485 : OpcodeHexagon {
3159   bits <2> Ii;
3160   let Inst{13-13} = Ii{1-1};
3161   let Inst{6-6} = Ii{0-0};
3162   bits <6> II;
3163   let Inst{5-0} = II{5-0};
3164   bits <5> Ru32;
3165   let Inst{20-16} = Ru32{4-0};
3166   bits <3> Nt8;
3167   let Inst{10-8} = Nt8{2-0};
3168 }
3169 class Enc_864a5a : OpcodeHexagon {
3170   bits <9> Ii;
3171   let Inst{12-8} = Ii{8-4};
3172   let Inst{4-3} = Ii{3-2};
3173   bits <5> Rs32;
3174   let Inst{20-16} = Rs32{4-0};
3175 }
3176 class Enc_c2b48e : OpcodeHexagon {
3177   bits <5> Rs32;
3178   let Inst{20-16} = Rs32{4-0};
3179   bits <5> Rt32;
3180   let Inst{12-8} = Rt32{4-0};
3181   bits <2> Pd4;
3182   let Inst{1-0} = Pd4{1-0};
3183 }
3184 class Enc_8c6530 : OpcodeHexagon {
3185   bits <5> Rtt32;
3186   let Inst{12-8} = Rtt32{4-0};
3187   bits <5> Rss32;
3188   let Inst{20-16} = Rss32{4-0};
3189   bits <2> Pu4;
3190   let Inst{6-5} = Pu4{1-0};
3191   bits <5> Rdd32;
3192   let Inst{4-0} = Rdd32{4-0};
3193 }
3194 class Enc_448f7f : OpcodeHexagon {
3195   bits <11> Ii;
3196   let Inst{26-25} = Ii{10-9};
3197   let Inst{13-13} = Ii{8-8};
3198   let Inst{7-0} = Ii{7-0};
3199   bits <5> Rs32;
3200   let Inst{20-16} = Rs32{4-0};
3201   bits <5> Rt32;
3202   let Inst{12-8} = Rt32{4-0};
3203 }
3204 class Enc_da8d43 : OpcodeHexagon {
3205   bits <6> Ii;
3206   let Inst{13-13} = Ii{5-5};
3207   let Inst{7-3} = Ii{4-0};
3208   bits <2> Pv4;
3209   let Inst{1-0} = Pv4{1-0};
3210   bits <5> Rs32;
3211   let Inst{20-16} = Rs32{4-0};
3212   bits <5> Rt32;
3213   let Inst{12-8} = Rt32{4-0};
3214 }
3215 class Enc_a6ce9c : OpcodeHexagon {
3216   bits <6> Ii;
3217   let Inst{3-0} = Ii{5-2};
3218   bits <4> Rs16;
3219   let Inst{7-4} = Rs16{3-0};
3220 }
3221 class Enc_eca7c8 : OpcodeHexagon {
3222   bits <2> Ii;
3223   let Inst{13-13} = Ii{1-1};
3224   let Inst{7-7} = Ii{0-0};
3225   bits <5> Rs32;
3226   let Inst{20-16} = Rs32{4-0};
3227   bits <5> Ru32;
3228   let Inst{12-8} = Ru32{4-0};
3229   bits <5> Rt32;
3230   let Inst{4-0} = Rt32{4-0};
3231 }
3232 class Enc_4b39e4 : OpcodeHexagon {
3233   bits <3> Ii;
3234   let Inst{7-5} = Ii{2-0};
3235   bits <5> Vu32;
3236   let Inst{12-8} = Vu32{4-0};
3237   bits <5> Vv32;
3238   let Inst{20-16} = Vv32{4-0};
3239   bits <5> Vdd32;
3240   let Inst{4-0} = Vdd32{4-0};
3241 }