Skip to main content

asmkit/riscv/
opcodes.rs

1#[derive(Clone, Copy)]
2pub struct Immediate {
3    position_in_opcode: (u32, u32),
4    position_in_immediate: (u32, u32),
5}
6
7pub const UIMM_LO: Immediate = Immediate {
8    position_in_opcode: (31, 12),
9    position_in_immediate: (31, 12),
10};
11
12pub const S_TYPE_HI: Immediate = Immediate {
13    position_in_immediate: (11, 5),
14    position_in_opcode: (31, 25),
15};
16
17pub const S_TYPE_LO: Immediate = Immediate {
18    position_in_immediate: (4, 0),
19    position_in_opcode: (11, 7),
20};
21
22// imm[20]: Highest bit of the 21-bit immediate
23pub const UJ_TYPE_IMM_20: Immediate = Immediate {
24    position_in_immediate: (20, 20),
25    position_in_opcode: (31, 31),
26};
27
28// imm[10:1]: Lower 10 bits of the immediate value
29pub const UJ_TYPE_IMM_10_1: Immediate = Immediate {
30    position_in_immediate: (10, 1),
31    position_in_opcode: (30, 21),
32};
33
34// imm[11]: The 11th bit of the immediate
35pub const UJ_TYPE_IMM_11: Immediate = Immediate {
36    position_in_immediate: (11, 11),
37    position_in_opcode: (20, 20),
38};
39
40// imm[19:12]: Upper 8 bits (bits 19 to 12)
41pub const UJ_TYPE_IMM_19_12: Immediate = Immediate {
42    position_in_immediate: (19, 12),
43    position_in_opcode: (19, 12),
44};
45
46pub const I_TYPE_11_0: Immediate = Immediate {
47    position_in_immediate: (11, 0),
48    position_in_opcode: (31, 20),
49};
50
51// imm[12]: Highest bit of the immediate
52pub const B_TYPE_IMM_12: Immediate = Immediate {
53    position_in_immediate: (12, 12),
54    position_in_opcode: (31, 31),
55};
56
57// imm[10:5]: Middle bits of the immediate
58pub const B_TYPE_IMM_10_5: Immediate = Immediate {
59    position_in_immediate: (10, 5),
60    position_in_opcode: (30, 25),
61};
62
63// imm[4:1]: Lower bits of the immediate
64pub const B_TYPE_IMM_4_1: Immediate = Immediate {
65    position_in_immediate: (4, 1),
66    position_in_opcode: (11, 8),
67};
68
69// imm[11]: 11th bit of the immediate
70pub const B_TYPE_IMM_11: Immediate = Immediate {
71    position_in_immediate: (11, 11),
72    position_in_opcode: (7, 7),
73};
74
75// imm[11]: The highest bit of the immediate
76pub const CJ_TYPE_IMM_11: Immediate = Immediate {
77    position_in_immediate: (11, 11),
78    position_in_opcode: (12, 12), // Bit 12 in the compressed instruction
79};
80
81// imm[4]: The 4th bit of the immediate
82pub const CJ_TYPE_IMM_4: Immediate = Immediate {
83    position_in_immediate: (4, 4),
84    position_in_opcode: (11, 11), // Bit 11 in the compressed instruction
85};
86
87// imm[9:8]: Bits 9 and 8 of the immediate
88pub const CJ_TYPE_IMM_9_8: Immediate = Immediate {
89    position_in_immediate: (9, 8),
90    position_in_opcode: (10, 9), // Bits 10 and 9
91};
92
93// imm[10]: The 10th bit of the immediate
94pub const CJ_TYPE_IMM_10: Immediate = Immediate {
95    position_in_immediate: (10, 10),
96    position_in_opcode: (8, 8), // Bit 8
97};
98
99// imm[6]: The 6th bit of the immediate
100pub const CJ_TYPE_IMM_6: Immediate = Immediate {
101    position_in_immediate: (6, 6),
102    position_in_opcode: (7, 7), // Bit 7
103};
104
105// imm[7]: The 7th bit of the immediate
106pub const CJ_TYPE_IMM_7: Immediate = Immediate {
107    position_in_immediate: (7, 7),
108    position_in_opcode: (6, 6), // Bit 6
109};
110
111// imm[3:1]: Bits 3 to 1 of the immediate
112pub const CJ_TYPE_IMM_3_1: Immediate = Immediate {
113    position_in_immediate: (3, 1),
114    position_in_opcode: (5, 3), // Bits 5 to 3
115};
116
117// imm[5]: The 5th bit of the immediate
118pub const CJ_TYPE_IMM_5: Immediate = Immediate {
119    position_in_immediate: (5, 5),
120    position_in_opcode: (2, 2), // Bit 2
121};
122
123pub const BIMM12LOHI: &[Immediate] = &[
124    B_TYPE_IMM_12,
125    B_TYPE_IMM_11,
126    B_TYPE_IMM_10_5,
127    B_TYPE_IMM_4_1,
128];
129pub const S_TYPE: &[Immediate] = &[S_TYPE_HI, S_TYPE_LO];
130pub const IMM20: &[Immediate] = &[UIMM_LO];
131pub const JIMM20: &[Immediate] = &[
132    UJ_TYPE_IMM_20,
133    UJ_TYPE_IMM_19_12,
134    UJ_TYPE_IMM_11,
135    UJ_TYPE_IMM_10_1,
136];
137pub const I_TYPE: &[Immediate] = &[I_TYPE_11_0];
138pub const SIMM5: &[Immediate] = &[Immediate {
139    position_in_immediate: (4, 0),
140    position_in_opcode: (19, 15),
141}];
142
143pub const IMM6: &[Immediate] = &[];
144pub const IMM12LOHI: &[Immediate] = &[
145    Immediate {
146        position_in_immediate: (11, 5),
147        position_in_opcode: (31, 25),
148    },
149    Immediate {
150        position_in_immediate: (4, 0),
151        position_in_opcode: (11, 7),
152    },
153];
154
155pub const IMM12: &[Immediate] = &[Immediate {
156    position_in_immediate: (11, 0),
157    position_in_opcode: (31, 20),
158}];
159
160pub const ZIMM: &[Immediate] = &[Immediate {
161    position_in_immediate: (4, 0),
162    position_in_opcode: (19, 15),
163}];
164
165pub const ZIMM6LOHI: &[Immediate] = &[
166    Immediate {
167        position_in_immediate: (5, 5),
168        position_in_opcode: (26, 26),
169    },
170    Immediate {
171        position_in_immediate: (4, 0),
172        position_in_opcode: (19, 15),
173    },
174];
175pub const ZIMM11: &[Immediate] = &[Immediate {
176    position_in_immediate: (10, 0),
177    position_in_opcode: (30, 20),
178}];
179
180pub const ZIMM10: &[Immediate] = &[Immediate {
181    position_in_immediate: (9, 0),
182    position_in_opcode: (29, 20),
183}];
184
185pub const ZIMM5: &[Immediate] = &[Immediate {
186    position_in_immediate: (4, 0),
187    position_in_opcode: (19, 15),
188}];
189
190pub const C_SPIMM: &[Immediate] = &[Immediate {
191    position_in_immediate: (5, 4),
192    position_in_opcode: (3, 2),
193}];
194
195pub const C_UIMM8SP_S: &[Immediate] = &[
196    Immediate {
197        position_in_immediate: (5, 2),
198        position_in_opcode: (12, 9),
199    },
200    Immediate {
201        position_in_immediate: (7, 6),
202        position_in_opcode: (6, 5),
203    },
204];
205
206pub const C_UIMM1: &[Immediate] = &[Immediate {
207    position_in_immediate: (1, 1),
208    position_in_opcode: (5, 5),
209}];
210
211pub const C_UIMM7LOHI: &[Immediate] = &[
212    Immediate {
213        position_in_immediate: (5, 3),
214        position_in_opcode: (12, 10),
215    },
216    Immediate {
217        position_in_immediate: (2, 2),
218        position_in_opcode: (6, 6),
219    },
220    Immediate {
221        position_in_immediate: (6, 6),
222        position_in_opcode: (5, 5),
223    },
224];
225
226pub const C_UIMM9_SPLOHI: &[Immediate] = &[
227    Immediate {
228        position_in_immediate: (5, 5),
229        position_in_opcode: (12, 12),
230    },
231    Immediate {
232        position_in_immediate: (4, 2),
233        position_in_opcode: (6, 4),
234    },
235    Immediate {
236        position_in_immediate: (7, 6),
237        position_in_opcode: (3, 2),
238    },
239];
240
241pub const C_UIMM9SP_S: &[Immediate] = &[
242    Immediate {
243        position_in_immediate: (5, 3),
244        position_in_opcode: (12, 9),
245    },
246    Immediate {
247        position_in_immediate: (8, 6),
248        position_in_opcode: (8, 6),
249    },
250];
251
252pub const C_UIMM2: &[Immediate] = &[
253    Immediate {
254        position_in_immediate: (0, 0),
255        position_in_opcode: (6, 6),
256    },
257    Immediate {
258        position_in_immediate: (1, 1),
259        position_in_opcode: (5, 5),
260    },
261];
262
263pub const C_NZUIMM10: &[Immediate] = &[
264    Immediate {
265        position_in_immediate: (5, 4),
266        position_in_opcode: (12, 11),
267    },
268    Immediate {
269        position_in_immediate: (9, 6),
270        position_in_opcode: (10, 7),
271    },
272    Immediate {
273        position_in_immediate: (2, 2),
274        position_in_opcode: (6, 6),
275    },
276    Immediate {
277        position_in_immediate: (3, 3),
278        position_in_opcode: (5, 5),
279    },
280];
281
282pub const C_NZIMM10LOHI: &[Immediate] = &[
283    Immediate {
284        position_in_immediate: (5, 5),
285        position_in_opcode: (12, 12),
286    },
287    Immediate {
288        position_in_immediate: (4, 0),
289        position_in_opcode: (6, 2),
290    },
291];
292
293/// UNUSED FOR NOW!!!
294pub const C_UIMM10SP_S: &[Immediate] = &[];
295/// UNUSED FOR NOW!!!
296pub const C_UIMM10SPLOHI: &[Immediate] = &[];
297/// UNUSED FOR NOW!!!
298pub const C_UIMM9LOHI: &[Immediate] = &[];
299/// UNUSED FOR NOW!!!
300pub const IMM5: &[Immediate] = &[];
301/// UNUSED FOR NOW!!!
302pub const IMM4: &[Immediate] = &[];
303/// UNUSED FOR NOW!!!
304pub const IMM3: &[Immediate] = &[];
305/// UNUSED FOR NOW!!!
306pub const IMM2: &[Immediate] = &[];
307
308pub const C_NZUIMM5: &[Immediate] = C_NZUIMM6LOHI;
309
310pub const C_NZIMM18LOHI: &[Immediate] = &[
311    Immediate {
312        position_in_immediate: (5, 5),
313        position_in_opcode: (12, 12),
314    },
315    Immediate {
316        position_in_immediate: (4, 0),
317        position_in_opcode: (6, 2),
318    },
319];
320
321// imm[17] | ... | imm[16:12]
322pub const C_NZUIMM18LOHI: &[Immediate] = &[
323    Immediate {
324        position_in_immediate: (5, 5),
325        position_in_opcode: (12, 12),
326    },
327    Immediate {
328        position_in_immediate: (4, 0),
329        position_in_opcode: (6, 2),
330    },
331];
332
333pub const C_NZUIMM6LOHI: &[Immediate] = &[
334    Immediate {
335        position_in_immediate: (5, 5),
336        position_in_opcode: (13, 13),
337    },
338    Immediate {
339        position_in_immediate: (4, 0),
340        position_in_opcode: (7, 2),
341    },
342];
343
344pub const C_UIMM6LOHI: &[Immediate] = &[
345    Immediate {
346        position_in_immediate: (5, 5),
347        position_in_opcode: (12, 12),
348    },
349    Immediate {
350        position_in_immediate: (4, 0),
351        position_in_opcode: (6, 2),
352    },
353];
354
355pub const C_UIMM8LOHI: &[Immediate] = &[
356    Immediate {
357        position_in_immediate: (5, 3),
358        position_in_opcode: (12, 10),
359    },
360    Immediate {
361        position_in_immediate: (7, 6),
362        position_in_opcode: (7, 6),
363    },
364];
365
366pub const C_UIMM9SPLOHI: &[Immediate] = &[
367    Immediate {
368        position_in_immediate: (5, 5),
369        position_in_opcode: (13, 13),
370    },
371    Immediate {
372        position_in_immediate: (4, 3),
373        position_in_opcode: (7, 5),
374    },
375    Immediate {
376        position_in_immediate: (8, 6),
377        position_in_opcode: (4, 3),
378    },
379];
380
381pub const C_NZIMM6LOHI: &[Immediate] = &[
382    Immediate {
383        position_in_immediate: (5, 5),
384        position_in_opcode: (12, 12),
385    },
386    Immediate {
387        position_in_immediate: (4, 0),
388        position_in_opcode: (6, 2),
389    },
390];
391
392pub const C_BIMM9LOHI: &[Immediate] = &[
393    Immediate {
394        position_in_immediate: (8, 8),
395        position_in_opcode: (12, 12),
396    },
397    Immediate {
398        position_in_immediate: (4, 3),
399        position_in_opcode: (11, 10),
400    },
401    Immediate {
402        position_in_immediate: (7, 6),
403        position_in_opcode: (6, 5),
404    },
405    Immediate {
406        position_in_immediate: (2, 1),
407        position_in_opcode: (4, 3),
408    },
409    Immediate {
410        position_in_immediate: (5, 5),
411        position_in_opcode: (2, 2),
412    },
413];
414
415pub const C_UIMM8SPLOHI: &[Immediate] = &[
416    Immediate {
417        position_in_immediate: (5, 5),
418        position_in_opcode: (12, 12),
419    },
420    Immediate {
421        position_in_immediate: (4, 2),
422        position_in_opcode: (6, 4),
423    },
424    Immediate {
425        position_in_immediate: (7, 6),
426        position_in_opcode: (3, 2),
427    },
428];
429
430pub const C_UIMM8SP_SLOHI: &[Immediate] = &[
431    Immediate {
432        position_in_immediate: (5, 2),
433        position_in_opcode: (12, 9),
434    },
435    Immediate {
436        position_in_immediate: (7, 6),
437        position_in_opcode: (8, 7),
438    },
439];
440
441pub const C_IMM6LOHI: &[Immediate] = &[
442    Immediate {
443        position_in_immediate: (5, 5),
444        position_in_opcode: (12, 12),
445    },
446    Immediate {
447        position_in_immediate: (4, 0),
448        position_in_opcode: (6, 2),
449    },
450];
451pub const C_IMM12: &[Immediate] = &[
452    Immediate {
453        position_in_immediate: (11, 11),
454        position_in_opcode: (12, 12),
455    },
456    Immediate {
457        position_in_immediate: (4, 4),
458        position_in_opcode: (11, 11),
459    },
460    Immediate {
461        position_in_immediate: (9, 8),
462        position_in_opcode: (10, 9),
463    },
464    Immediate {
465        position_in_immediate: (10, 10),
466        position_in_opcode: (8, 8),
467    },
468    Immediate {
469        position_in_immediate: (6, 6),
470        position_in_opcode: (7, 7),
471    },
472    Immediate {
473        position_in_immediate: (7, 7),
474        position_in_opcode: (6, 6),
475    },
476    Immediate {
477        position_in_immediate: (3, 1),
478        position_in_opcode: (5, 3),
479    },
480    Immediate {
481        position_in_immediate: (5, 5),
482        position_in_opcode: (2, 2),
483    },
484];
485
486pub const C_IMM12LOHI: &[Immediate] = &[
487    Immediate {
488        position_in_immediate: (11, 11),
489        position_in_opcode: (12, 12),
490    },
491    Immediate {
492        position_in_immediate: (4, 4),
493        position_in_opcode: (11, 11),
494    },
495    Immediate {
496        position_in_immediate: (9, 8),
497        position_in_opcode: (10, 9),
498    },
499    Immediate {
500        position_in_immediate: (10, 10),
501        position_in_opcode: (8, 8),
502    },
503    Immediate {
504        position_in_immediate: (6, 6),
505        position_in_opcode: (7, 7),
506    },
507    Immediate {
508        position_in_immediate: (7, 7),
509        position_in_opcode: (6, 6),
510    },
511    Immediate {
512        position_in_immediate: (3, 1),
513        position_in_opcode: (5, 3),
514    },
515    Immediate {
516        position_in_immediate: (5, 5),
517        position_in_opcode: (2, 2),
518    },
519];
520
521pub const fn encode_immediate(immediate: &[Immediate], imm: i32) -> u32 {
522    let mut res = 0;
523    let mut i = 0;
524    while i < immediate.len() {
525        res |= immediate[i].encode(imm);
526        i += 1;
527    }
528    res
529}
530
531pub const fn decode_immediate(immediate: &[Immediate], op: u32) -> i32 {
532    let mut res = 0i32;
533    let mut i = 0;
534    while i < immediate.len() {
535        res |= immediate[i].decode(op);
536        i += 1;
537    }
538    res as _
539}
540
541pub fn is_immediate_valid(immediate: &[Immediate], imm: i32) -> bool {
542    immediate.iter().all(|i| i.is_valid(imm))
543}
544
545impl Immediate {
546    pub const fn encode(&self, imm: i32) -> u32 {
547        let imm = imm as u32;
548        let bit_count = self.position_in_immediate.0 - self.position_in_immediate.1 + 1;
549        let mask = (1u32 << bit_count) - 1;
550
551        ((imm >> self.position_in_immediate.1) & mask) << self.position_in_opcode.1
552    }
553
554    pub const fn decode(&self, op: u32) -> i32 {
555        let bit_count = self.position_in_opcode.0 - self.position_in_opcode.1 + 1;
556        let mask = (1u32 << bit_count) - 1;
557        (((op >> self.position_in_opcode.1) & mask) << self.position_in_immediate.1) as _
558    }
559
560    pub const fn is_valid(&self, imm: i32) -> bool {
561        self.decode(self.encode(imm)) == imm
562    }
563}
564
565/* Automatically generated by parse_opcodes */
566
567pub const MATCH_ADD: u32 = 0x33;
568pub const MASK_ADD: u32 = 0xfe00707f;
569pub const MATCH_ADD_UW: u32 = 0x800003b;
570pub const MASK_ADD_UW: u32 = 0xfe00707f;
571pub const MATCH_ADDI: u32 = 0x13;
572pub const MASK_ADDI: u32 = 0x707f;
573pub const MATCH_ADDIW: u32 = 0x1b;
574pub const MASK_ADDIW: u32 = 0x707f;
575pub const MATCH_ADDW: u32 = 0x3b;
576pub const MASK_ADDW: u32 = 0xfe00707f;
577pub const MATCH_AES32DSI: u32 = 0x2a000033;
578pub const MASK_AES32DSI: u32 = 0x3e00707f;
579pub const MATCH_AES32DSMI: u32 = 0x2e000033;
580pub const MASK_AES32DSMI: u32 = 0x3e00707f;
581pub const MATCH_AES32ESI: u32 = 0x22000033;
582pub const MASK_AES32ESI: u32 = 0x3e00707f;
583pub const MATCH_AES32ESMI: u32 = 0x26000033;
584pub const MASK_AES32ESMI: u32 = 0x3e00707f;
585pub const MATCH_AES64DS: u32 = 0x3a000033;
586pub const MASK_AES64DS: u32 = 0xfe00707f;
587pub const MATCH_AES64DSM: u32 = 0x3e000033;
588pub const MASK_AES64DSM: u32 = 0xfe00707f;
589pub const MATCH_AES64ES: u32 = 0x32000033;
590pub const MASK_AES64ES: u32 = 0xfe00707f;
591pub const MATCH_AES64ESM: u32 = 0x36000033;
592pub const MASK_AES64ESM: u32 = 0xfe00707f;
593pub const MATCH_AES64IM: u32 = 0x30001013;
594pub const MASK_AES64IM: u32 = 0xfff0707f;
595pub const MATCH_AES64KS1I: u32 = 0x31001013;
596pub const MASK_AES64KS1I: u32 = 0xff00707f;
597pub const MATCH_AES64KS2: u32 = 0x7e000033;
598pub const MASK_AES64KS2: u32 = 0xfe00707f;
599pub const MATCH_AMOADD_B: u32 = 0x2f;
600pub const MASK_AMOADD_B: u32 = 0xf800707f;
601pub const MATCH_AMOADD_D: u32 = 0x302f;
602pub const MASK_AMOADD_D: u32 = 0xf800707f;
603pub const MATCH_AMOADD_H: u32 = 0x102f;
604pub const MASK_AMOADD_H: u32 = 0xf800707f;
605pub const MATCH_AMOADD_W: u32 = 0x202f;
606pub const MASK_AMOADD_W: u32 = 0xf800707f;
607pub const MATCH_AMOAND_B: u32 = 0x6000002f;
608pub const MASK_AMOAND_B: u32 = 0xf800707f;
609pub const MATCH_AMOAND_D: u32 = 0x6000302f;
610pub const MASK_AMOAND_D: u32 = 0xf800707f;
611pub const MATCH_AMOAND_H: u32 = 0x6000102f;
612pub const MASK_AMOAND_H: u32 = 0xf800707f;
613pub const MATCH_AMOAND_W: u32 = 0x6000202f;
614pub const MASK_AMOAND_W: u32 = 0xf800707f;
615pub const MATCH_AMOCAS_B: u32 = 0x2800002f;
616pub const MASK_AMOCAS_B: u32 = 0xf800707f;
617pub const MATCH_AMOCAS_D: u32 = 0x2800302f;
618pub const MASK_AMOCAS_D: u32 = 0xf800707f;
619pub const MATCH_AMOCAS_H: u32 = 0x2800102f;
620pub const MASK_AMOCAS_H: u32 = 0xf800707f;
621pub const MATCH_AMOCAS_Q: u32 = 0x2800402f;
622pub const MASK_AMOCAS_Q: u32 = 0xf800707f;
623pub const MATCH_AMOCAS_W: u32 = 0x2800202f;
624pub const MASK_AMOCAS_W: u32 = 0xf800707f;
625pub const MATCH_AMOMAX_B: u32 = 0xa000002f;
626pub const MASK_AMOMAX_B: u32 = 0xf800707f;
627pub const MATCH_AMOMAX_D: u32 = 0xa000302f;
628pub const MASK_AMOMAX_D: u32 = 0xf800707f;
629pub const MATCH_AMOMAX_H: u32 = 0xa000102f;
630pub const MASK_AMOMAX_H: u32 = 0xf800707f;
631pub const MATCH_AMOMAX_W: u32 = 0xa000202f;
632pub const MASK_AMOMAX_W: u32 = 0xf800707f;
633pub const MATCH_AMOMAXU_B: u32 = 0xe000002f;
634pub const MASK_AMOMAXU_B: u32 = 0xf800707f;
635pub const MATCH_AMOMAXU_D: u32 = 0xe000302f;
636pub const MASK_AMOMAXU_D: u32 = 0xf800707f;
637pub const MATCH_AMOMAXU_H: u32 = 0xe000102f;
638pub const MASK_AMOMAXU_H: u32 = 0xf800707f;
639pub const MATCH_AMOMAXU_W: u32 = 0xe000202f;
640pub const MASK_AMOMAXU_W: u32 = 0xf800707f;
641pub const MATCH_AMOMIN_B: u32 = 0x8000002f;
642pub const MASK_AMOMIN_B: u32 = 0xf800707f;
643pub const MATCH_AMOMIN_D: u32 = 0x8000302f;
644pub const MASK_AMOMIN_D: u32 = 0xf800707f;
645pub const MATCH_AMOMIN_H: u32 = 0x8000102f;
646pub const MASK_AMOMIN_H: u32 = 0xf800707f;
647pub const MATCH_AMOMIN_W: u32 = 0x8000202f;
648pub const MASK_AMOMIN_W: u32 = 0xf800707f;
649pub const MATCH_AMOMINU_B: u32 = 0xc000002f;
650pub const MASK_AMOMINU_B: u32 = 0xf800707f;
651pub const MATCH_AMOMINU_D: u32 = 0xc000302f;
652pub const MASK_AMOMINU_D: u32 = 0xf800707f;
653pub const MATCH_AMOMINU_H: u32 = 0xc000102f;
654pub const MASK_AMOMINU_H: u32 = 0xf800707f;
655pub const MATCH_AMOMINU_W: u32 = 0xc000202f;
656pub const MASK_AMOMINU_W: u32 = 0xf800707f;
657pub const MATCH_AMOOR_B: u32 = 0x4000002f;
658pub const MASK_AMOOR_B: u32 = 0xf800707f;
659pub const MATCH_AMOOR_D: u32 = 0x4000302f;
660pub const MASK_AMOOR_D: u32 = 0xf800707f;
661pub const MATCH_AMOOR_H: u32 = 0x4000102f;
662pub const MASK_AMOOR_H: u32 = 0xf800707f;
663pub const MATCH_AMOOR_W: u32 = 0x4000202f;
664pub const MASK_AMOOR_W: u32 = 0xf800707f;
665pub const MATCH_AMOSWAP_B: u32 = 0x800002f;
666pub const MASK_AMOSWAP_B: u32 = 0xf800707f;
667pub const MATCH_AMOSWAP_D: u32 = 0x800302f;
668pub const MASK_AMOSWAP_D: u32 = 0xf800707f;
669pub const MATCH_AMOSWAP_H: u32 = 0x800102f;
670pub const MASK_AMOSWAP_H: u32 = 0xf800707f;
671pub const MATCH_AMOSWAP_W: u32 = 0x800202f;
672pub const MASK_AMOSWAP_W: u32 = 0xf800707f;
673pub const MATCH_AMOXOR_B: u32 = 0x2000002f;
674pub const MASK_AMOXOR_B: u32 = 0xf800707f;
675pub const MATCH_AMOXOR_D: u32 = 0x2000302f;
676pub const MASK_AMOXOR_D: u32 = 0xf800707f;
677pub const MATCH_AMOXOR_H: u32 = 0x2000102f;
678pub const MASK_AMOXOR_H: u32 = 0xf800707f;
679pub const MATCH_AMOXOR_W: u32 = 0x2000202f;
680pub const MASK_AMOXOR_W: u32 = 0xf800707f;
681pub const MATCH_AND: u32 = 0x7033;
682pub const MASK_AND: u32 = 0xfe00707f;
683pub const MATCH_ANDI: u32 = 0x7013;
684pub const MASK_ANDI: u32 = 0x707f;
685pub const MATCH_ANDN: u32 = 0x40007033;
686pub const MASK_ANDN: u32 = 0xfe00707f;
687pub const MATCH_AUIPC: u32 = 0x17;
688pub const MASK_AUIPC: u32 = 0x7f;
689pub const MATCH_BCLR: u32 = 0x48001033;
690pub const MASK_BCLR: u32 = 0xfe00707f;
691pub const MATCH_BCLRI: u32 = 0x48001013;
692pub const MASK_BCLRI: u32 = 0xfc00707f;
693pub const MATCH_BCLRI_RV32: u32 = 0x48001013;
694pub const MASK_BCLRI_RV32: u32 = 0xfe00707f;
695pub const MATCH_BEQ: u32 = 0x63;
696pub const MASK_BEQ: u32 = 0x707f;
697pub const MATCH_BEQZ: u32 = 0x63;
698pub const MASK_BEQZ: u32 = 0x1f0707f;
699pub const MATCH_BEXT: u32 = 0x48005033;
700pub const MASK_BEXT: u32 = 0xfe00707f;
701pub const MATCH_BEXTI: u32 = 0x48005013;
702pub const MASK_BEXTI: u32 = 0xfc00707f;
703pub const MATCH_BEXTI_RV32: u32 = 0x48005013;
704pub const MASK_BEXTI_RV32: u32 = 0xfe00707f;
705pub const MATCH_BGE: u32 = 0x5063;
706pub const MASK_BGE: u32 = 0x707f;
707pub const MATCH_BGEU: u32 = 0x7063;
708pub const MASK_BGEU: u32 = 0x707f;
709pub const MATCH_BGEZ: u32 = 0x5063;
710pub const MASK_BGEZ: u32 = 0x1f0707f;
711pub const MATCH_BGT: u32 = 0x4063;
712pub const MASK_BGT: u32 = 0x707f;
713pub const MATCH_BGTU: u32 = 0x6063;
714pub const MASK_BGTU: u32 = 0x707f;
715pub const MATCH_BGTZ: u32 = 0x4063;
716pub const MASK_BGTZ: u32 = 0xff07f;
717pub const MATCH_BINV: u32 = 0x68001033;
718pub const MASK_BINV: u32 = 0xfe00707f;
719pub const MATCH_BINVI: u32 = 0x68001013;
720pub const MASK_BINVI: u32 = 0xfc00707f;
721pub const MATCH_BINVI_RV32: u32 = 0x68001013;
722pub const MASK_BINVI_RV32: u32 = 0xfe00707f;
723pub const MATCH_BLE: u32 = 0x5063;
724pub const MASK_BLE: u32 = 0x707f;
725pub const MATCH_BLEU: u32 = 0x7063;
726pub const MASK_BLEU: u32 = 0x707f;
727pub const MATCH_BLEZ: u32 = 0x5063;
728pub const MASK_BLEZ: u32 = 0xff07f;
729pub const MATCH_BLT: u32 = 0x4063;
730pub const MASK_BLT: u32 = 0x707f;
731pub const MATCH_BLTU: u32 = 0x6063;
732pub const MASK_BLTU: u32 = 0x707f;
733pub const MATCH_BLTZ: u32 = 0x4063;
734pub const MASK_BLTZ: u32 = 0x1f0707f;
735pub const MATCH_BNE: u32 = 0x1063;
736pub const MASK_BNE: u32 = 0x707f;
737pub const MATCH_BNEZ: u32 = 0x1063;
738pub const MASK_BNEZ: u32 = 0x1f0707f;
739pub const MATCH_BREV8: u32 = 0x68705013;
740pub const MASK_BREV8: u32 = 0xfff0707f;
741pub const MATCH_BSET: u32 = 0x28001033;
742pub const MASK_BSET: u32 = 0xfe00707f;
743pub const MATCH_BSETI: u32 = 0x28001013;
744pub const MASK_BSETI: u32 = 0xfc00707f;
745pub const MATCH_BSETI_RV32: u32 = 0x28001013;
746pub const MASK_BSETI_RV32: u32 = 0xfe00707f;
747pub const MATCH_C_ADD: u32 = 0x9002;
748pub const MASK_C_ADD: u32 = 0xf003;
749pub const MATCH_C_ADDI: u32 = 0x1;
750pub const MASK_C_ADDI: u32 = 0xe003;
751pub const MATCH_C_ADDI16SP: u32 = 0x6101;
752pub const MASK_C_ADDI16SP: u32 = 0xef83;
753pub const MATCH_C_ADDI4SPN: u32 = 0x0;
754pub const MASK_C_ADDI4SPN: u32 = 0xe003;
755pub const MATCH_C_ADDIW: u32 = 0x2001;
756pub const MASK_C_ADDIW: u32 = 0xe003;
757pub const MATCH_C_ADDW: u32 = 0x9c21;
758pub const MASK_C_ADDW: u32 = 0xfc63;
759pub const MATCH_C_AND: u32 = 0x8c61;
760pub const MASK_C_AND: u32 = 0xfc63;
761pub const MATCH_C_ANDI: u32 = 0x8801;
762pub const MASK_C_ANDI: u32 = 0xec03;
763pub const MATCH_C_BEQZ: u32 = 0xc001;
764pub const MASK_C_BEQZ: u32 = 0xe003;
765pub const MATCH_C_BNEZ: u32 = 0xe001;
766pub const MASK_C_BNEZ: u32 = 0xe003;
767pub const MATCH_C_EBREAK: u32 = 0x9002;
768pub const MASK_C_EBREAK: u32 = 0xffff;
769pub const MATCH_C_FLD: u32 = 0x2000;
770pub const MASK_C_FLD: u32 = 0xe003;
771pub const MATCH_C_FLDSP: u32 = 0x2002;
772pub const MASK_C_FLDSP: u32 = 0xe003;
773pub const MATCH_C_FLW: u32 = 0x6000;
774pub const MASK_C_FLW: u32 = 0xe003;
775pub const MATCH_C_FLWSP: u32 = 0x6002;
776pub const MASK_C_FLWSP: u32 = 0xe003;
777pub const MATCH_C_FSD: u32 = 0xa000;
778pub const MASK_C_FSD: u32 = 0xe003;
779pub const MATCH_C_FSDSP: u32 = 0xa002;
780pub const MASK_C_FSDSP: u32 = 0xe003;
781pub const MATCH_C_FSW: u32 = 0xe000;
782pub const MASK_C_FSW: u32 = 0xe003;
783pub const MATCH_C_FSWSP: u32 = 0xe002;
784pub const MASK_C_FSWSP: u32 = 0xe003;
785pub const MATCH_C_J: u32 = 0xa001;
786pub const MASK_C_J: u32 = 0xe003;
787pub const MATCH_C_JAL: u32 = 0x2001;
788pub const MASK_C_JAL: u32 = 0xe003;
789pub const MATCH_C_JALR: u32 = 0x9002;
790pub const MASK_C_JALR: u32 = 0xf07f;
791pub const MATCH_C_JR: u32 = 0x8002;
792pub const MASK_C_JR: u32 = 0xf07f;
793pub const MATCH_C_LBU: u32 = 0x8000;
794pub const MASK_C_LBU: u32 = 0xfc03;
795pub const MATCH_C_LD: u32 = 0x6000;
796pub const MASK_C_LD: u32 = 0xe003;
797pub const MATCH_C_LDSP: u32 = 0x6002;
798pub const MASK_C_LDSP: u32 = 0xe003;
799pub const MATCH_C_LH: u32 = 0x8440;
800pub const MASK_C_LH: u32 = 0xfc43;
801pub const MATCH_C_LHU: u32 = 0x8400;
802pub const MASK_C_LHU: u32 = 0xfc43;
803pub const MATCH_C_LI: u32 = 0x4001;
804pub const MASK_C_LI: u32 = 0xe003;
805pub const MATCH_C_LUI: u32 = 0x6001;
806pub const MASK_C_LUI: u32 = 0xe003;
807pub const MATCH_C_LW: u32 = 0x4000;
808pub const MASK_C_LW: u32 = 0xe003;
809pub const MATCH_C_LWSP: u32 = 0x4002;
810pub const MASK_C_LWSP: u32 = 0xe003;
811pub const MATCH_C_MOP_1: u32 = 0x6081;
812pub const MASK_C_MOP_1: u32 = 0xffff;
813pub const MATCH_C_MOP_11: u32 = 0x6581;
814pub const MASK_C_MOP_11: u32 = 0xffff;
815pub const MATCH_C_MOP_13: u32 = 0x6681;
816pub const MASK_C_MOP_13: u32 = 0xffff;
817pub const MATCH_C_MOP_15: u32 = 0x6781;
818pub const MASK_C_MOP_15: u32 = 0xffff;
819pub const MATCH_C_MOP_3: u32 = 0x6181;
820pub const MASK_C_MOP_3: u32 = 0xffff;
821pub const MATCH_C_MOP_5: u32 = 0x6281;
822pub const MASK_C_MOP_5: u32 = 0xffff;
823pub const MATCH_C_MOP_7: u32 = 0x6381;
824pub const MASK_C_MOP_7: u32 = 0xffff;
825pub const MATCH_C_MOP_9: u32 = 0x6481;
826pub const MASK_C_MOP_9: u32 = 0xffff;
827pub const MATCH_C_MOP_N: u32 = 0x6081;
828pub const MASK_C_MOP_N: u32 = 0xf8ff;
829pub const MATCH_C_MUL: u32 = 0x9c41;
830pub const MASK_C_MUL: u32 = 0xfc63;
831pub const MATCH_C_MV: u32 = 0x8002;
832pub const MASK_C_MV: u32 = 0xf003;
833pub const MATCH_C_NOP: u32 = 0x1;
834pub const MASK_C_NOP: u32 = 0xef83;
835pub const MATCH_C_NOT: u32 = 0x9c75;
836pub const MASK_C_NOT: u32 = 0xfc7f;
837pub const MATCH_C_NTL_ALL: u32 = 0x9016;
838pub const MASK_C_NTL_ALL: u32 = 0xffff;
839pub const MATCH_C_NTL_P1: u32 = 0x900a;
840pub const MASK_C_NTL_P1: u32 = 0xffff;
841pub const MATCH_C_NTL_PALL: u32 = 0x900e;
842pub const MASK_C_NTL_PALL: u32 = 0xffff;
843pub const MATCH_C_NTL_S1: u32 = 0x9012;
844pub const MASK_C_NTL_S1: u32 = 0xffff;
845pub const MATCH_C_OR: u32 = 0x8c41;
846pub const MASK_C_OR: u32 = 0xfc63;
847pub const MATCH_C_SB: u32 = 0x8800;
848pub const MASK_C_SB: u32 = 0xfc03;
849pub const MATCH_C_SD: u32 = 0xe000;
850pub const MASK_C_SD: u32 = 0xe003;
851pub const MATCH_C_SDSP: u32 = 0xe002;
852pub const MASK_C_SDSP: u32 = 0xe003;
853pub const MATCH_C_SEXT_B: u32 = 0x9c65;
854pub const MASK_C_SEXT_B: u32 = 0xfc7f;
855pub const MATCH_C_SEXT_H: u32 = 0x9c6d;
856pub const MASK_C_SEXT_H: u32 = 0xfc7f;
857pub const MATCH_C_SEXT_W: u32 = 0x2001;
858pub const MASK_C_SEXT_W: u32 = 0xf07f;
859pub const MATCH_C_SH: u32 = 0x8c00;
860pub const MASK_C_SH: u32 = 0xfc43;
861pub const MATCH_C_SLLI: u32 = 0x2;
862pub const MASK_C_SLLI: u32 = 0xe003;
863pub const MATCH_C_SLLI_RV32: u32 = 0x2;
864pub const MASK_C_SLLI_RV32: u32 = 0xf003;
865pub const MATCH_C_SRAI: u32 = 0x8401;
866pub const MASK_C_SRAI: u32 = 0xec03;
867pub const MATCH_C_SRAI_RV32: u32 = 0x8401;
868pub const MASK_C_SRAI_RV32: u32 = 0xfc03;
869pub const MATCH_C_SRLI: u32 = 0x8001;
870pub const MASK_C_SRLI: u32 = 0xec03;
871pub const MATCH_C_SRLI_RV32: u32 = 0x8001;
872pub const MASK_C_SRLI_RV32: u32 = 0xfc03;
873pub const MATCH_C_SUB: u32 = 0x8c01;
874pub const MASK_C_SUB: u32 = 0xfc63;
875pub const MATCH_C_SUBW: u32 = 0x9c01;
876pub const MASK_C_SUBW: u32 = 0xfc63;
877pub const MATCH_C_SW: u32 = 0xc000;
878pub const MASK_C_SW: u32 = 0xe003;
879pub const MATCH_C_SWSP: u32 = 0xc002;
880pub const MASK_C_SWSP: u32 = 0xe003;
881pub const MATCH_C_XOR: u32 = 0x8c21;
882pub const MASK_C_XOR: u32 = 0xfc63;
883pub const MATCH_C_ZEXT_B: u32 = 0x9c61;
884pub const MASK_C_ZEXT_B: u32 = 0xfc7f;
885pub const MATCH_C_ZEXT_H: u32 = 0x9c69;
886pub const MASK_C_ZEXT_H: u32 = 0xfc7f;
887pub const MATCH_C_ZEXT_W: u32 = 0x9c71;
888pub const MASK_C_ZEXT_W: u32 = 0xfc7f;
889pub const MATCH_CBO_CLEAN: u32 = 0x10200f;
890pub const MASK_CBO_CLEAN: u32 = 0xfff07fff;
891pub const MATCH_CBO_FLUSH: u32 = 0x20200f;
892pub const MASK_CBO_FLUSH: u32 = 0xfff07fff;
893pub const MATCH_CBO_INVAL: u32 = 0x200f;
894pub const MASK_CBO_INVAL: u32 = 0xfff07fff;
895pub const MATCH_CBO_ZERO: u32 = 0x40200f;
896pub const MASK_CBO_ZERO: u32 = 0xfff07fff;
897pub const MATCH_CLMUL: u32 = 0xa001033;
898pub const MASK_CLMUL: u32 = 0xfe00707f;
899pub const MATCH_CLMULH: u32 = 0xa003033;
900pub const MASK_CLMULH: u32 = 0xfe00707f;
901pub const MATCH_CLMULR: u32 = 0xa002033;
902pub const MASK_CLMULR: u32 = 0xfe00707f;
903pub const MATCH_CLZ: u32 = 0x60001013;
904pub const MASK_CLZ: u32 = 0xfff0707f;
905pub const MATCH_CLZW: u32 = 0x6000101b;
906pub const MASK_CLZW: u32 = 0xfff0707f;
907pub const MATCH_CM_JALT: u32 = 0xa002;
908pub const MASK_CM_JALT: u32 = 0xfc03;
909pub const MATCH_CM_MVA01S: u32 = 0xac62;
910pub const MASK_CM_MVA01S: u32 = 0xfc63;
911pub const MATCH_CM_MVSA01: u32 = 0xac22;
912pub const MASK_CM_MVSA01: u32 = 0xfc63;
913pub const MATCH_CM_POP: u32 = 0xba02;
914pub const MASK_CM_POP: u32 = 0xff03;
915pub const MATCH_CM_POPRET: u32 = 0xbe02;
916pub const MASK_CM_POPRET: u32 = 0xff03;
917pub const MATCH_CM_POPRETZ: u32 = 0xbc02;
918pub const MASK_CM_POPRETZ: u32 = 0xff03;
919pub const MATCH_CM_PUSH: u32 = 0xb802;
920pub const MASK_CM_PUSH: u32 = 0xff03;
921pub const MATCH_CPOP: u32 = 0x60201013;
922pub const MASK_CPOP: u32 = 0xfff0707f;
923pub const MATCH_CPOPW: u32 = 0x6020101b;
924pub const MASK_CPOPW: u32 = 0xfff0707f;
925pub const MATCH_CSRC: u32 = 0x3073;
926pub const MASK_CSRC: u32 = 0x7fff;
927pub const MATCH_CSRCI: u32 = 0x7073;
928pub const MASK_CSRCI: u32 = 0x7fff;
929pub const MATCH_CSRR: u32 = 0x2073;
930pub const MASK_CSRR: u32 = 0xff07f;
931pub const MATCH_CSRRC: u32 = 0x3073;
932pub const MASK_CSRRC: u32 = 0x707f;
933pub const MATCH_CSRRCI: u32 = 0x7073;
934pub const MASK_CSRRCI: u32 = 0x707f;
935pub const MATCH_CSRRS: u32 = 0x2073;
936pub const MASK_CSRRS: u32 = 0x707f;
937pub const MATCH_CSRRSI: u32 = 0x6073;
938pub const MASK_CSRRSI: u32 = 0x707f;
939pub const MATCH_CSRRW: u32 = 0x1073;
940pub const MASK_CSRRW: u32 = 0x707f;
941pub const MATCH_CSRRWI: u32 = 0x5073;
942pub const MASK_CSRRWI: u32 = 0x707f;
943pub const MATCH_CSRS: u32 = 0x2073;
944pub const MASK_CSRS: u32 = 0x7fff;
945pub const MATCH_CSRSI: u32 = 0x6073;
946pub const MASK_CSRSI: u32 = 0x7fff;
947pub const MATCH_CSRW: u32 = 0x1073;
948pub const MASK_CSRW: u32 = 0x7fff;
949pub const MATCH_CSRWI: u32 = 0x5073;
950pub const MASK_CSRWI: u32 = 0x7fff;
951pub const MATCH_CTZ: u32 = 0x60101013;
952pub const MASK_CTZ: u32 = 0xfff0707f;
953pub const MATCH_CTZW: u32 = 0x6010101b;
954pub const MASK_CTZW: u32 = 0xfff0707f;
955pub const MATCH_CZERO_EQZ: u32 = 0xe005033;
956pub const MASK_CZERO_EQZ: u32 = 0xfe00707f;
957pub const MATCH_CZERO_NEZ: u32 = 0xe007033;
958pub const MASK_CZERO_NEZ: u32 = 0xfe00707f;
959pub const MATCH_DIV: u32 = 0x2004033;
960pub const MASK_DIV: u32 = 0xfe00707f;
961pub const MATCH_DIVU: u32 = 0x2005033;
962pub const MASK_DIVU: u32 = 0xfe00707f;
963pub const MATCH_DIVUW: u32 = 0x200503b;
964pub const MASK_DIVUW: u32 = 0xfe00707f;
965pub const MATCH_DIVW: u32 = 0x200403b;
966pub const MASK_DIVW: u32 = 0xfe00707f;
967pub const MATCH_DRET: u32 = 0x7b200073;
968pub const MASK_DRET: u32 = 0xffffffff;
969pub const MATCH_EBREAK: u32 = 0x100073;
970pub const MASK_EBREAK: u32 = 0xffffffff;
971pub const MATCH_ECALL: u32 = 0x73;
972pub const MASK_ECALL: u32 = 0xffffffff;
973pub const MATCH_FABS_D: u32 = 0x22002053;
974pub const MASK_FABS_D: u32 = 0xfe00707f;
975pub const MATCH_FABS_H: u32 = 0x24002053;
976pub const MASK_FABS_H: u32 = 0xfe00707f;
977pub const MATCH_FABS_Q: u32 = 0x26002053;
978pub const MASK_FABS_Q: u32 = 0xfe00707f;
979pub const MATCH_FABS_S: u32 = 0x20002053;
980pub const MASK_FABS_S: u32 = 0xfe00707f;
981pub const MATCH_FADD_D: u32 = 0x2000053;
982pub const MASK_FADD_D: u32 = 0xfe00007f;
983pub const MATCH_FADD_H: u32 = 0x4000053;
984pub const MASK_FADD_H: u32 = 0xfe00007f;
985pub const MATCH_FADD_Q: u32 = 0x6000053;
986pub const MASK_FADD_Q: u32 = 0xfe00007f;
987pub const MATCH_FADD_S: u32 = 0x53;
988pub const MASK_FADD_S: u32 = 0xfe00007f;
989pub const MATCH_FCLASS_D: u32 = 0xe2001053;
990pub const MASK_FCLASS_D: u32 = 0xfff0707f;
991pub const MATCH_FCLASS_H: u32 = 0xe4001053;
992pub const MASK_FCLASS_H: u32 = 0xfff0707f;
993pub const MATCH_FCLASS_Q: u32 = 0xe6001053;
994pub const MASK_FCLASS_Q: u32 = 0xfff0707f;
995pub const MATCH_FCLASS_S: u32 = 0xe0001053;
996pub const MASK_FCLASS_S: u32 = 0xfff0707f;
997pub const MATCH_FCVT_D_H: u32 = 0x42200053;
998pub const MASK_FCVT_D_H: u32 = 0xfff0007f;
999pub const MATCH_FCVT_D_L: u32 = 0xd2200053;
1000pub const MASK_FCVT_D_L: u32 = 0xfff0007f;
1001pub const MATCH_FCVT_D_LU: u32 = 0xd2300053;
1002pub const MASK_FCVT_D_LU: u32 = 0xfff0007f;
1003pub const MATCH_FCVT_D_Q: u32 = 0x42300053;
1004pub const MASK_FCVT_D_Q: u32 = 0xfff0007f;
1005pub const MATCH_FCVT_D_S: u32 = 0x42000053;
1006pub const MASK_FCVT_D_S: u32 = 0xfff0007f;
1007pub const MATCH_FCVT_D_W: u32 = 0xd2000053;
1008pub const MASK_FCVT_D_W: u32 = 0xfff0007f;
1009pub const MATCH_FCVT_D_WU: u32 = 0xd2100053;
1010pub const MASK_FCVT_D_WU: u32 = 0xfff0007f;
1011pub const MATCH_FCVT_H_D: u32 = 0x44100053;
1012pub const MASK_FCVT_H_D: u32 = 0xfff0007f;
1013pub const MATCH_FCVT_H_L: u32 = 0xd4200053;
1014pub const MASK_FCVT_H_L: u32 = 0xfff0007f;
1015pub const MATCH_FCVT_H_LU: u32 = 0xd4300053;
1016pub const MASK_FCVT_H_LU: u32 = 0xfff0007f;
1017pub const MATCH_FCVT_H_Q: u32 = 0x44300053;
1018pub const MASK_FCVT_H_Q: u32 = 0xfff0007f;
1019pub const MATCH_FCVT_H_S: u32 = 0x44000053;
1020pub const MASK_FCVT_H_S: u32 = 0xfff0007f;
1021pub const MATCH_FCVT_H_W: u32 = 0xd4000053;
1022pub const MASK_FCVT_H_W: u32 = 0xfff0007f;
1023pub const MATCH_FCVT_H_WU: u32 = 0xd4100053;
1024pub const MASK_FCVT_H_WU: u32 = 0xfff0007f;
1025pub const MATCH_FCVT_L_D: u32 = 0xc2200053;
1026pub const MASK_FCVT_L_D: u32 = 0xfff0007f;
1027pub const MATCH_FCVT_L_H: u32 = 0xc4200053;
1028pub const MASK_FCVT_L_H: u32 = 0xfff0007f;
1029pub const MATCH_FCVT_L_Q: u32 = 0xc6200053;
1030pub const MASK_FCVT_L_Q: u32 = 0xfff0007f;
1031pub const MATCH_FCVT_L_S: u32 = 0xc0200053;
1032pub const MASK_FCVT_L_S: u32 = 0xfff0007f;
1033pub const MATCH_FCVT_LU_D: u32 = 0xc2300053;
1034pub const MASK_FCVT_LU_D: u32 = 0xfff0007f;
1035pub const MATCH_FCVT_LU_H: u32 = 0xc4300053;
1036pub const MASK_FCVT_LU_H: u32 = 0xfff0007f;
1037pub const MATCH_FCVT_LU_Q: u32 = 0xc6300053;
1038pub const MASK_FCVT_LU_Q: u32 = 0xfff0007f;
1039pub const MATCH_FCVT_LU_S: u32 = 0xc0300053;
1040pub const MASK_FCVT_LU_S: u32 = 0xfff0007f;
1041pub const MATCH_FCVT_Q_D: u32 = 0x46100053;
1042pub const MASK_FCVT_Q_D: u32 = 0xfff0007f;
1043pub const MATCH_FCVT_Q_H: u32 = 0x46200053;
1044pub const MASK_FCVT_Q_H: u32 = 0xfff0007f;
1045pub const MATCH_FCVT_Q_L: u32 = 0xd6200053;
1046pub const MASK_FCVT_Q_L: u32 = 0xfff0007f;
1047pub const MATCH_FCVT_Q_LU: u32 = 0xd6300053;
1048pub const MASK_FCVT_Q_LU: u32 = 0xfff0007f;
1049pub const MATCH_FCVT_Q_S: u32 = 0x46000053;
1050pub const MASK_FCVT_Q_S: u32 = 0xfff0007f;
1051pub const MATCH_FCVT_Q_W: u32 = 0xd6000053;
1052pub const MASK_FCVT_Q_W: u32 = 0xfff0007f;
1053pub const MATCH_FCVT_Q_WU: u32 = 0xd6100053;
1054pub const MASK_FCVT_Q_WU: u32 = 0xfff0007f;
1055pub const MATCH_FCVT_S_D: u32 = 0x40100053;
1056pub const MASK_FCVT_S_D: u32 = 0xfff0007f;
1057pub const MATCH_FCVT_S_H: u32 = 0x40200053;
1058pub const MASK_FCVT_S_H: u32 = 0xfff0007f;
1059pub const MATCH_FCVT_S_L: u32 = 0xd0200053;
1060pub const MASK_FCVT_S_L: u32 = 0xfff0007f;
1061pub const MATCH_FCVT_S_LU: u32 = 0xd0300053;
1062pub const MASK_FCVT_S_LU: u32 = 0xfff0007f;
1063pub const MATCH_FCVT_S_Q: u32 = 0x40300053;
1064pub const MASK_FCVT_S_Q: u32 = 0xfff0007f;
1065pub const MATCH_FCVT_S_W: u32 = 0xd0000053;
1066pub const MASK_FCVT_S_W: u32 = 0xfff0007f;
1067pub const MATCH_FCVT_S_WU: u32 = 0xd0100053;
1068pub const MASK_FCVT_S_WU: u32 = 0xfff0007f;
1069pub const MATCH_FCVT_W_D: u32 = 0xc2000053;
1070pub const MASK_FCVT_W_D: u32 = 0xfff0007f;
1071pub const MATCH_FCVT_W_H: u32 = 0xc4000053;
1072pub const MASK_FCVT_W_H: u32 = 0xfff0007f;
1073pub const MATCH_FCVT_W_Q: u32 = 0xc6000053;
1074pub const MASK_FCVT_W_Q: u32 = 0xfff0007f;
1075pub const MATCH_FCVT_W_S: u32 = 0xc0000053;
1076pub const MASK_FCVT_W_S: u32 = 0xfff0007f;
1077pub const MATCH_FCVT_WU_D: u32 = 0xc2100053;
1078pub const MASK_FCVT_WU_D: u32 = 0xfff0007f;
1079pub const MATCH_FCVT_WU_H: u32 = 0xc4100053;
1080pub const MASK_FCVT_WU_H: u32 = 0xfff0007f;
1081pub const MATCH_FCVT_WU_Q: u32 = 0xc6100053;
1082pub const MASK_FCVT_WU_Q: u32 = 0xfff0007f;
1083pub const MATCH_FCVT_WU_S: u32 = 0xc0100053;
1084pub const MASK_FCVT_WU_S: u32 = 0xfff0007f;
1085pub const MATCH_FCVTMOD_W_D: u32 = 0xc2801053;
1086pub const MASK_FCVTMOD_W_D: u32 = 0xfff0707f;
1087pub const MATCH_FDIV_D: u32 = 0x1a000053;
1088pub const MASK_FDIV_D: u32 = 0xfe00007f;
1089pub const MATCH_FDIV_H: u32 = 0x1c000053;
1090pub const MASK_FDIV_H: u32 = 0xfe00007f;
1091pub const MATCH_FDIV_Q: u32 = 0x1e000053;
1092pub const MASK_FDIV_Q: u32 = 0xfe00007f;
1093pub const MATCH_FDIV_S: u32 = 0x18000053;
1094pub const MASK_FDIV_S: u32 = 0xfe00007f;
1095pub const MATCH_FENCE: u32 = 0xf;
1096pub const MASK_FENCE: u32 = 0x707f;
1097pub const MATCH_FENCE_I: u32 = 0x100f;
1098pub const MASK_FENCE_I: u32 = 0x707f;
1099pub const MATCH_FENCE_TSO: u32 = 0x8330000f;
1100pub const MASK_FENCE_TSO: u32 = 0xfff0707f;
1101pub const MATCH_FEQ_D: u32 = 0xa2002053;
1102pub const MASK_FEQ_D: u32 = 0xfe00707f;
1103pub const MATCH_FEQ_H: u32 = 0xa4002053;
1104pub const MASK_FEQ_H: u32 = 0xfe00707f;
1105pub const MATCH_FEQ_Q: u32 = 0xa6002053;
1106pub const MASK_FEQ_Q: u32 = 0xfe00707f;
1107pub const MATCH_FEQ_S: u32 = 0xa0002053;
1108pub const MASK_FEQ_S: u32 = 0xfe00707f;
1109pub const MATCH_FLD: u32 = 0x3007;
1110pub const MASK_FLD: u32 = 0x707f;
1111pub const MATCH_FLE_D: u32 = 0xa2000053;
1112pub const MASK_FLE_D: u32 = 0xfe00707f;
1113pub const MATCH_FLE_H: u32 = 0xa4000053;
1114pub const MASK_FLE_H: u32 = 0xfe00707f;
1115pub const MATCH_FLE_Q: u32 = 0xa6000053;
1116pub const MASK_FLE_Q: u32 = 0xfe00707f;
1117pub const MATCH_FLE_S: u32 = 0xa0000053;
1118pub const MASK_FLE_S: u32 = 0xfe00707f;
1119pub const MATCH_FLEQ_D: u32 = 0xa2004053;
1120pub const MASK_FLEQ_D: u32 = 0xfe00707f;
1121pub const MATCH_FLEQ_H: u32 = 0xa4004053;
1122pub const MASK_FLEQ_H: u32 = 0xfe00707f;
1123pub const MATCH_FLEQ_Q: u32 = 0xa6004053;
1124pub const MASK_FLEQ_Q: u32 = 0xfe00707f;
1125pub const MATCH_FLEQ_S: u32 = 0xa0004053;
1126pub const MASK_FLEQ_S: u32 = 0xfe00707f;
1127pub const MATCH_FLH: u32 = 0x1007;
1128pub const MASK_FLH: u32 = 0x707f;
1129pub const MATCH_FLI_D: u32 = 0xf2100053;
1130pub const MASK_FLI_D: u32 = 0xfff0707f;
1131pub const MATCH_FLI_H: u32 = 0xf4100053;
1132pub const MASK_FLI_H: u32 = 0xfff0707f;
1133pub const MATCH_FLI_Q: u32 = 0xf6100053;
1134pub const MASK_FLI_Q: u32 = 0xfff0707f;
1135pub const MATCH_FLI_S: u32 = 0xf0100053;
1136pub const MASK_FLI_S: u32 = 0xfff0707f;
1137pub const MATCH_FLQ: u32 = 0x4007;
1138pub const MASK_FLQ: u32 = 0x707f;
1139pub const MATCH_FLT_D: u32 = 0xa2001053;
1140pub const MASK_FLT_D: u32 = 0xfe00707f;
1141pub const MATCH_FLT_H: u32 = 0xa4001053;
1142pub const MASK_FLT_H: u32 = 0xfe00707f;
1143pub const MATCH_FLT_Q: u32 = 0xa6001053;
1144pub const MASK_FLT_Q: u32 = 0xfe00707f;
1145pub const MATCH_FLT_S: u32 = 0xa0001053;
1146pub const MASK_FLT_S: u32 = 0xfe00707f;
1147pub const MATCH_FLTQ_D: u32 = 0xa2005053;
1148pub const MASK_FLTQ_D: u32 = 0xfe00707f;
1149pub const MATCH_FLTQ_H: u32 = 0xa4005053;
1150pub const MASK_FLTQ_H: u32 = 0xfe00707f;
1151pub const MATCH_FLTQ_Q: u32 = 0xa6005053;
1152pub const MASK_FLTQ_Q: u32 = 0xfe00707f;
1153pub const MATCH_FLTQ_S: u32 = 0xa0005053;
1154pub const MASK_FLTQ_S: u32 = 0xfe00707f;
1155pub const MATCH_FLW: u32 = 0x2007;
1156pub const MASK_FLW: u32 = 0x707f;
1157pub const MATCH_FMADD_D: u32 = 0x2000043;
1158pub const MASK_FMADD_D: u32 = 0x600007f;
1159pub const MATCH_FMADD_H: u32 = 0x4000043;
1160pub const MASK_FMADD_H: u32 = 0x600007f;
1161pub const MATCH_FMADD_Q: u32 = 0x6000043;
1162pub const MASK_FMADD_Q: u32 = 0x600007f;
1163pub const MATCH_FMADD_S: u32 = 0x43;
1164pub const MASK_FMADD_S: u32 = 0x600007f;
1165pub const MATCH_FMAX_D: u32 = 0x2a001053;
1166pub const MASK_FMAX_D: u32 = 0xfe00707f;
1167pub const MATCH_FMAX_H: u32 = 0x2c001053;
1168pub const MASK_FMAX_H: u32 = 0xfe00707f;
1169pub const MATCH_FMAX_Q: u32 = 0x2e001053;
1170pub const MASK_FMAX_Q: u32 = 0xfe00707f;
1171pub const MATCH_FMAX_S: u32 = 0x28001053;
1172pub const MASK_FMAX_S: u32 = 0xfe00707f;
1173pub const MATCH_FMAXM_D: u32 = 0x2a003053;
1174pub const MASK_FMAXM_D: u32 = 0xfe00707f;
1175pub const MATCH_FMAXM_H: u32 = 0x2c003053;
1176pub const MASK_FMAXM_H: u32 = 0xfe00707f;
1177pub const MATCH_FMAXM_Q: u32 = 0x2e003053;
1178pub const MASK_FMAXM_Q: u32 = 0xfe00707f;
1179pub const MATCH_FMAXM_S: u32 = 0x28003053;
1180pub const MASK_FMAXM_S: u32 = 0xfe00707f;
1181pub const MATCH_FMIN_D: u32 = 0x2a000053;
1182pub const MASK_FMIN_D: u32 = 0xfe00707f;
1183pub const MATCH_FMIN_H: u32 = 0x2c000053;
1184pub const MASK_FMIN_H: u32 = 0xfe00707f;
1185pub const MATCH_FMIN_Q: u32 = 0x2e000053;
1186pub const MASK_FMIN_Q: u32 = 0xfe00707f;
1187pub const MATCH_FMIN_S: u32 = 0x28000053;
1188pub const MASK_FMIN_S: u32 = 0xfe00707f;
1189pub const MATCH_FMINM_D: u32 = 0x2a002053;
1190pub const MASK_FMINM_D: u32 = 0xfe00707f;
1191pub const MATCH_FMINM_H: u32 = 0x2c002053;
1192pub const MASK_FMINM_H: u32 = 0xfe00707f;
1193pub const MATCH_FMINM_Q: u32 = 0x2e002053;
1194pub const MASK_FMINM_Q: u32 = 0xfe00707f;
1195pub const MATCH_FMINM_S: u32 = 0x28002053;
1196pub const MASK_FMINM_S: u32 = 0xfe00707f;
1197pub const MATCH_FMSUB_D: u32 = 0x2000047;
1198pub const MASK_FMSUB_D: u32 = 0x600007f;
1199pub const MATCH_FMSUB_H: u32 = 0x4000047;
1200pub const MASK_FMSUB_H: u32 = 0x600007f;
1201pub const MATCH_FMSUB_Q: u32 = 0x6000047;
1202pub const MASK_FMSUB_Q: u32 = 0x600007f;
1203pub const MATCH_FMSUB_S: u32 = 0x47;
1204pub const MASK_FMSUB_S: u32 = 0x600007f;
1205pub const MATCH_FMUL_D: u32 = 0x12000053;
1206pub const MASK_FMUL_D: u32 = 0xfe00007f;
1207pub const MATCH_FMUL_H: u32 = 0x14000053;
1208pub const MASK_FMUL_H: u32 = 0xfe00007f;
1209pub const MATCH_FMUL_Q: u32 = 0x16000053;
1210pub const MASK_FMUL_Q: u32 = 0xfe00007f;
1211pub const MATCH_FMUL_S: u32 = 0x10000053;
1212pub const MASK_FMUL_S: u32 = 0xfe00007f;
1213pub const MATCH_FMV_D: u32 = 0x22000053;
1214pub const MASK_FMV_D: u32 = 0xfe00707f;
1215pub const MATCH_FMV_D_X: u32 = 0xf2000053;
1216pub const MASK_FMV_D_X: u32 = 0xfff0707f;
1217pub const MATCH_FMV_H: u32 = 0x24000053;
1218pub const MASK_FMV_H: u32 = 0xfe00707f;
1219pub const MATCH_FMV_H_X: u32 = 0xf4000053;
1220pub const MASK_FMV_H_X: u32 = 0xfff0707f;
1221pub const MATCH_FMV_Q: u32 = 0x26000053;
1222pub const MASK_FMV_Q: u32 = 0xfe00707f;
1223pub const MATCH_FMV_S: u32 = 0x20000053;
1224pub const MASK_FMV_S: u32 = 0xfe00707f;
1225pub const MATCH_FMV_S_X: u32 = 0xf0000053;
1226pub const MASK_FMV_S_X: u32 = 0xfff0707f;
1227pub const MATCH_FMV_W_X: u32 = 0xf0000053;
1228pub const MASK_FMV_W_X: u32 = 0xfff0707f;
1229pub const MATCH_FMV_X_D: u32 = 0xe2000053;
1230pub const MASK_FMV_X_D: u32 = 0xfff0707f;
1231pub const MATCH_FMV_X_H: u32 = 0xe4000053;
1232pub const MASK_FMV_X_H: u32 = 0xfff0707f;
1233pub const MATCH_FMV_X_S: u32 = 0xe0000053;
1234pub const MASK_FMV_X_S: u32 = 0xfff0707f;
1235pub const MATCH_FMV_X_W: u32 = 0xe0000053;
1236pub const MASK_FMV_X_W: u32 = 0xfff0707f;
1237pub const MATCH_FMVH_X_D: u32 = 0xe2100053;
1238pub const MASK_FMVH_X_D: u32 = 0xfff0707f;
1239pub const MATCH_FMVH_X_Q: u32 = 0xe6100053;
1240pub const MASK_FMVH_X_Q: u32 = 0xfff0707f;
1241pub const MATCH_FMVP_D_X: u32 = 0xb2000053;
1242pub const MASK_FMVP_D_X: u32 = 0xfe00707f;
1243pub const MATCH_FMVP_Q_X: u32 = 0xb6000053;
1244pub const MASK_FMVP_Q_X: u32 = 0xfe00707f;
1245pub const MATCH_FNEG_D: u32 = 0x22001053;
1246pub const MASK_FNEG_D: u32 = 0xfe00707f;
1247pub const MATCH_FNEG_H: u32 = 0x24001053;
1248pub const MASK_FNEG_H: u32 = 0xfe00707f;
1249pub const MATCH_FNEG_Q: u32 = 0x26001053;
1250pub const MASK_FNEG_Q: u32 = 0xfe00707f;
1251pub const MATCH_FNEG_S: u32 = 0x20001053;
1252pub const MASK_FNEG_S: u32 = 0xfe00707f;
1253pub const MATCH_FNMADD_D: u32 = 0x200004f;
1254pub const MASK_FNMADD_D: u32 = 0x600007f;
1255pub const MATCH_FNMADD_H: u32 = 0x400004f;
1256pub const MASK_FNMADD_H: u32 = 0x600007f;
1257pub const MATCH_FNMADD_Q: u32 = 0x600004f;
1258pub const MASK_FNMADD_Q: u32 = 0x600007f;
1259pub const MATCH_FNMADD_S: u32 = 0x4f;
1260pub const MASK_FNMADD_S: u32 = 0x600007f;
1261pub const MATCH_FNMSUB_D: u32 = 0x200004b;
1262pub const MASK_FNMSUB_D: u32 = 0x600007f;
1263pub const MATCH_FNMSUB_H: u32 = 0x400004b;
1264pub const MASK_FNMSUB_H: u32 = 0x600007f;
1265pub const MATCH_FNMSUB_Q: u32 = 0x600004b;
1266pub const MASK_FNMSUB_Q: u32 = 0x600007f;
1267pub const MATCH_FNMSUB_S: u32 = 0x4b;
1268pub const MASK_FNMSUB_S: u32 = 0x600007f;
1269pub const MATCH_FRCSR: u32 = 0x302073;
1270pub const MASK_FRCSR: u32 = 0xfffff07f;
1271pub const MATCH_FRFLAGS: u32 = 0x102073;
1272pub const MASK_FRFLAGS: u32 = 0xfffff07f;
1273pub const MATCH_FROUND_D: u32 = 0x42400053;
1274pub const MASK_FROUND_D: u32 = 0xfff0007f;
1275pub const MATCH_FROUND_H: u32 = 0x44400053;
1276pub const MASK_FROUND_H: u32 = 0xfff0007f;
1277pub const MATCH_FROUND_Q: u32 = 0x46400053;
1278pub const MASK_FROUND_Q: u32 = 0xfff0007f;
1279pub const MATCH_FROUND_S: u32 = 0x40400053;
1280pub const MASK_FROUND_S: u32 = 0xfff0007f;
1281pub const MATCH_FROUNDNX_D: u32 = 0x42500053;
1282pub const MASK_FROUNDNX_D: u32 = 0xfff0007f;
1283pub const MATCH_FROUNDNX_H: u32 = 0x44500053;
1284pub const MASK_FROUNDNX_H: u32 = 0xfff0007f;
1285pub const MATCH_FROUNDNX_Q: u32 = 0x46500053;
1286pub const MASK_FROUNDNX_Q: u32 = 0xfff0007f;
1287pub const MATCH_FROUNDNX_S: u32 = 0x40500053;
1288pub const MASK_FROUNDNX_S: u32 = 0xfff0007f;
1289pub const MATCH_FRRM: u32 = 0x202073;
1290pub const MASK_FRRM: u32 = 0xfffff07f;
1291pub const MATCH_FSCSR: u32 = 0x301073;
1292pub const MASK_FSCSR: u32 = 0xfff0707f;
1293pub const MATCH_FSD: u32 = 0x3027;
1294pub const MASK_FSD: u32 = 0x707f;
1295pub const MATCH_FSFLAGS: u32 = 0x101073;
1296pub const MASK_FSFLAGS: u32 = 0xfff0707f;
1297pub const MATCH_FSFLAGSI: u32 = 0x105073;
1298pub const MASK_FSFLAGSI: u32 = 0xfff0707f;
1299pub const MATCH_FSGNJ_D: u32 = 0x22000053;
1300pub const MASK_FSGNJ_D: u32 = 0xfe00707f;
1301pub const MATCH_FSGNJ_H: u32 = 0x24000053;
1302pub const MASK_FSGNJ_H: u32 = 0xfe00707f;
1303pub const MATCH_FSGNJ_Q: u32 = 0x26000053;
1304pub const MASK_FSGNJ_Q: u32 = 0xfe00707f;
1305pub const MATCH_FSGNJ_S: u32 = 0x20000053;
1306pub const MASK_FSGNJ_S: u32 = 0xfe00707f;
1307pub const MATCH_FSGNJN_D: u32 = 0x22001053;
1308pub const MASK_FSGNJN_D: u32 = 0xfe00707f;
1309pub const MATCH_FSGNJN_H: u32 = 0x24001053;
1310pub const MASK_FSGNJN_H: u32 = 0xfe00707f;
1311pub const MATCH_FSGNJN_Q: u32 = 0x26001053;
1312pub const MASK_FSGNJN_Q: u32 = 0xfe00707f;
1313pub const MATCH_FSGNJN_S: u32 = 0x20001053;
1314pub const MASK_FSGNJN_S: u32 = 0xfe00707f;
1315pub const MATCH_FSGNJX_D: u32 = 0x22002053;
1316pub const MASK_FSGNJX_D: u32 = 0xfe00707f;
1317pub const MATCH_FSGNJX_H: u32 = 0x24002053;
1318pub const MASK_FSGNJX_H: u32 = 0xfe00707f;
1319pub const MATCH_FSGNJX_Q: u32 = 0x26002053;
1320pub const MASK_FSGNJX_Q: u32 = 0xfe00707f;
1321pub const MATCH_FSGNJX_S: u32 = 0x20002053;
1322pub const MASK_FSGNJX_S: u32 = 0xfe00707f;
1323pub const MATCH_FSH: u32 = 0x1027;
1324pub const MASK_FSH: u32 = 0x707f;
1325pub const MATCH_FSQ: u32 = 0x4027;
1326pub const MASK_FSQ: u32 = 0x707f;
1327pub const MATCH_FSQRT_D: u32 = 0x5a000053;
1328pub const MASK_FSQRT_D: u32 = 0xfff0007f;
1329pub const MATCH_FSQRT_H: u32 = 0x5c000053;
1330pub const MASK_FSQRT_H: u32 = 0xfff0007f;
1331pub const MATCH_FSQRT_Q: u32 = 0x5e000053;
1332pub const MASK_FSQRT_Q: u32 = 0xfff0007f;
1333pub const MATCH_FSQRT_S: u32 = 0x58000053;
1334pub const MASK_FSQRT_S: u32 = 0xfff0007f;
1335pub const MATCH_FSRM: u32 = 0x201073;
1336pub const MASK_FSRM: u32 = 0xfff0707f;
1337pub const MATCH_FSRMI: u32 = 0x205073;
1338pub const MASK_FSRMI: u32 = 0xfff0707f;
1339pub const MATCH_FSUB_D: u32 = 0xa000053;
1340pub const MASK_FSUB_D: u32 = 0xfe00007f;
1341pub const MATCH_FSUB_H: u32 = 0xc000053;
1342pub const MASK_FSUB_H: u32 = 0xfe00007f;
1343pub const MATCH_FSUB_Q: u32 = 0xe000053;
1344pub const MASK_FSUB_Q: u32 = 0xfe00007f;
1345pub const MATCH_FSUB_S: u32 = 0x8000053;
1346pub const MASK_FSUB_S: u32 = 0xfe00007f;
1347pub const MATCH_FSW: u32 = 0x2027;
1348pub const MASK_FSW: u32 = 0x707f;
1349pub const MATCH_HFENCE_GVMA: u32 = 0x62000073;
1350pub const MASK_HFENCE_GVMA: u32 = 0xfe007fff;
1351pub const MATCH_HFENCE_VVMA: u32 = 0x22000073;
1352pub const MASK_HFENCE_VVMA: u32 = 0xfe007fff;
1353pub const MATCH_HINVAL_GVMA: u32 = 0x66000073;
1354pub const MASK_HINVAL_GVMA: u32 = 0xfe007fff;
1355pub const MATCH_HINVAL_VVMA: u32 = 0x26000073;
1356pub const MASK_HINVAL_VVMA: u32 = 0xfe007fff;
1357pub const MATCH_HLV_B: u32 = 0x60004073;
1358pub const MASK_HLV_B: u32 = 0xfff0707f;
1359pub const MATCH_HLV_BU: u32 = 0x60104073;
1360pub const MASK_HLV_BU: u32 = 0xfff0707f;
1361pub const MATCH_HLV_D: u32 = 0x6c004073;
1362pub const MASK_HLV_D: u32 = 0xfff0707f;
1363pub const MATCH_HLV_H: u32 = 0x64004073;
1364pub const MASK_HLV_H: u32 = 0xfff0707f;
1365pub const MATCH_HLV_HU: u32 = 0x64104073;
1366pub const MASK_HLV_HU: u32 = 0xfff0707f;
1367pub const MATCH_HLV_W: u32 = 0x68004073;
1368pub const MASK_HLV_W: u32 = 0xfff0707f;
1369pub const MATCH_HLV_WU: u32 = 0x68104073;
1370pub const MASK_HLV_WU: u32 = 0xfff0707f;
1371pub const MATCH_HLVX_HU: u32 = 0x64304073;
1372pub const MASK_HLVX_HU: u32 = 0xfff0707f;
1373pub const MATCH_HLVX_WU: u32 = 0x68304073;
1374pub const MASK_HLVX_WU: u32 = 0xfff0707f;
1375pub const MATCH_HSV_B: u32 = 0x62004073;
1376pub const MASK_HSV_B: u32 = 0xfe007fff;
1377pub const MATCH_HSV_D: u32 = 0x6e004073;
1378pub const MASK_HSV_D: u32 = 0xfe007fff;
1379pub const MATCH_HSV_H: u32 = 0x66004073;
1380pub const MASK_HSV_H: u32 = 0xfe007fff;
1381pub const MATCH_HSV_W: u32 = 0x6a004073;
1382pub const MASK_HSV_W: u32 = 0xfe007fff;
1383pub const MATCH_J: u32 = 0x6f;
1384pub const MASK_J: u32 = 0xfff;
1385pub const MATCH_JAL: u32 = 0x6f;
1386pub const MASK_JAL: u32 = 0x7f;
1387pub const MATCH_JAL_PSEUDO: u32 = 0xef;
1388pub const MASK_JAL_PSEUDO: u32 = 0xfff;
1389pub const MATCH_JALR: u32 = 0x67;
1390pub const MASK_JALR: u32 = 0x707f;
1391pub const MATCH_JALR_PSEUDO: u32 = 0xe7;
1392pub const MASK_JALR_PSEUDO: u32 = 0xfff07fff;
1393pub const MATCH_JR: u32 = 0x67;
1394pub const MASK_JR: u32 = 0xfff07fff;
1395pub const MATCH_LB: u32 = 0x3;
1396pub const MASK_LB: u32 = 0x707f;
1397pub const MATCH_LBU: u32 = 0x4003;
1398pub const MASK_LBU: u32 = 0x707f;
1399pub const MATCH_LD: u32 = 0x3003;
1400pub const MASK_LD: u32 = 0x707f;
1401pub const MATCH_LH: u32 = 0x1003;
1402pub const MASK_LH: u32 = 0x707f;
1403pub const MATCH_LHU: u32 = 0x5003;
1404pub const MASK_LHU: u32 = 0x707f;
1405pub const MATCH_LR_D: u32 = 0x1000302f;
1406pub const MASK_LR_D: u32 = 0xf9f0707f;
1407pub const MATCH_LR_W: u32 = 0x1000202f;
1408pub const MASK_LR_W: u32 = 0xf9f0707f;
1409pub const MATCH_LUI: u32 = 0x37;
1410pub const MASK_LUI: u32 = 0x7f;
1411pub const MATCH_LW: u32 = 0x2003;
1412pub const MASK_LW: u32 = 0x707f;
1413pub const MATCH_LWU: u32 = 0x6003;
1414pub const MASK_LWU: u32 = 0x707f;
1415pub const MATCH_MAX: u32 = 0xa006033;
1416pub const MASK_MAX: u32 = 0xfe00707f;
1417pub const MATCH_MAXU: u32 = 0xa007033;
1418pub const MASK_MAXU: u32 = 0xfe00707f;
1419pub const MATCH_MIN: u32 = 0xa004033;
1420pub const MASK_MIN: u32 = 0xfe00707f;
1421pub const MATCH_MINU: u32 = 0xa005033;
1422pub const MASK_MINU: u32 = 0xfe00707f;
1423pub const MATCH_MOP_R_0: u32 = 0x81c04073;
1424pub const MASK_MOP_R_0: u32 = 0xfff0707f;
1425pub const MATCH_MOP_R_1: u32 = 0x81d04073;
1426pub const MASK_MOP_R_1: u32 = 0xfff0707f;
1427pub const MATCH_MOP_R_10: u32 = 0x89e04073;
1428pub const MASK_MOP_R_10: u32 = 0xfff0707f;
1429pub const MATCH_MOP_R_11: u32 = 0x89f04073;
1430pub const MASK_MOP_R_11: u32 = 0xfff0707f;
1431pub const MATCH_MOP_R_12: u32 = 0x8dc04073;
1432pub const MASK_MOP_R_12: u32 = 0xfff0707f;
1433pub const MATCH_MOP_R_13: u32 = 0x8dd04073;
1434pub const MASK_MOP_R_13: u32 = 0xfff0707f;
1435pub const MATCH_MOP_R_14: u32 = 0x8de04073;
1436pub const MASK_MOP_R_14: u32 = 0xfff0707f;
1437pub const MATCH_MOP_R_15: u32 = 0x8df04073;
1438pub const MASK_MOP_R_15: u32 = 0xfff0707f;
1439pub const MATCH_MOP_R_16: u32 = 0xc1c04073;
1440pub const MASK_MOP_R_16: u32 = 0xfff0707f;
1441pub const MATCH_MOP_R_17: u32 = 0xc1d04073;
1442pub const MASK_MOP_R_17: u32 = 0xfff0707f;
1443pub const MATCH_MOP_R_18: u32 = 0xc1e04073;
1444pub const MASK_MOP_R_18: u32 = 0xfff0707f;
1445pub const MATCH_MOP_R_19: u32 = 0xc1f04073;
1446pub const MASK_MOP_R_19: u32 = 0xfff0707f;
1447pub const MATCH_MOP_R_2: u32 = 0x81e04073;
1448pub const MASK_MOP_R_2: u32 = 0xfff0707f;
1449pub const MATCH_MOP_R_20: u32 = 0xc5c04073;
1450pub const MASK_MOP_R_20: u32 = 0xfff0707f;
1451pub const MATCH_MOP_R_21: u32 = 0xc5d04073;
1452pub const MASK_MOP_R_21: u32 = 0xfff0707f;
1453pub const MATCH_MOP_R_22: u32 = 0xc5e04073;
1454pub const MASK_MOP_R_22: u32 = 0xfff0707f;
1455pub const MATCH_MOP_R_23: u32 = 0xc5f04073;
1456pub const MASK_MOP_R_23: u32 = 0xfff0707f;
1457pub const MATCH_MOP_R_24: u32 = 0xc9c04073;
1458pub const MASK_MOP_R_24: u32 = 0xfff0707f;
1459pub const MATCH_MOP_R_25: u32 = 0xc9d04073;
1460pub const MASK_MOP_R_25: u32 = 0xfff0707f;
1461pub const MATCH_MOP_R_26: u32 = 0xc9e04073;
1462pub const MASK_MOP_R_26: u32 = 0xfff0707f;
1463pub const MATCH_MOP_R_27: u32 = 0xc9f04073;
1464pub const MASK_MOP_R_27: u32 = 0xfff0707f;
1465pub const MATCH_MOP_R_28: u32 = 0xcdc04073;
1466pub const MASK_MOP_R_28: u32 = 0xfff0707f;
1467pub const MATCH_MOP_R_29: u32 = 0xcdd04073;
1468pub const MASK_MOP_R_29: u32 = 0xfff0707f;
1469pub const MATCH_MOP_R_3: u32 = 0x81f04073;
1470pub const MASK_MOP_R_3: u32 = 0xfff0707f;
1471pub const MATCH_MOP_R_30: u32 = 0xcde04073;
1472pub const MASK_MOP_R_30: u32 = 0xfff0707f;
1473pub const MATCH_MOP_R_31: u32 = 0xcdf04073;
1474pub const MASK_MOP_R_31: u32 = 0xfff0707f;
1475pub const MATCH_MOP_R_4: u32 = 0x85c04073;
1476pub const MASK_MOP_R_4: u32 = 0xfff0707f;
1477pub const MATCH_MOP_R_5: u32 = 0x85d04073;
1478pub const MASK_MOP_R_5: u32 = 0xfff0707f;
1479pub const MATCH_MOP_R_6: u32 = 0x85e04073;
1480pub const MASK_MOP_R_6: u32 = 0xfff0707f;
1481pub const MATCH_MOP_R_7: u32 = 0x85f04073;
1482pub const MASK_MOP_R_7: u32 = 0xfff0707f;
1483pub const MATCH_MOP_R_8: u32 = 0x89c04073;
1484pub const MASK_MOP_R_8: u32 = 0xfff0707f;
1485pub const MATCH_MOP_R_9: u32 = 0x89d04073;
1486pub const MASK_MOP_R_9: u32 = 0xfff0707f;
1487pub const MATCH_MOP_R_N: u32 = 0x81c04073;
1488pub const MASK_MOP_R_N: u32 = 0xb3c0707f;
1489pub const MATCH_MOP_RR_0: u32 = 0x82004073;
1490pub const MASK_MOP_RR_0: u32 = 0xfe00707f;
1491pub const MATCH_MOP_RR_1: u32 = 0x86004073;
1492pub const MASK_MOP_RR_1: u32 = 0xfe00707f;
1493pub const MATCH_MOP_RR_2: u32 = 0x8a004073;
1494pub const MASK_MOP_RR_2: u32 = 0xfe00707f;
1495pub const MATCH_MOP_RR_3: u32 = 0x8e004073;
1496pub const MASK_MOP_RR_3: u32 = 0xfe00707f;
1497pub const MATCH_MOP_RR_4: u32 = 0xc2004073;
1498pub const MASK_MOP_RR_4: u32 = 0xfe00707f;
1499pub const MATCH_MOP_RR_5: u32 = 0xc6004073;
1500pub const MASK_MOP_RR_5: u32 = 0xfe00707f;
1501pub const MATCH_MOP_RR_6: u32 = 0xca004073;
1502pub const MASK_MOP_RR_6: u32 = 0xfe00707f;
1503pub const MATCH_MOP_RR_7: u32 = 0xce004073;
1504pub const MASK_MOP_RR_7: u32 = 0xfe00707f;
1505pub const MATCH_MOP_RR_N: u32 = 0x82004073;
1506pub const MASK_MOP_RR_N: u32 = 0xb200707f;
1507pub const MATCH_MRET: u32 = 0x30200073;
1508pub const MASK_MRET: u32 = 0xffffffff;
1509pub const MATCH_MUL: u32 = 0x2000033;
1510pub const MASK_MUL: u32 = 0xfe00707f;
1511pub const MATCH_MULH: u32 = 0x2001033;
1512pub const MASK_MULH: u32 = 0xfe00707f;
1513pub const MATCH_MULHSU: u32 = 0x2002033;
1514pub const MASK_MULHSU: u32 = 0xfe00707f;
1515pub const MATCH_MULHU: u32 = 0x2003033;
1516pub const MASK_MULHU: u32 = 0xfe00707f;
1517pub const MATCH_MULW: u32 = 0x200003b;
1518pub const MASK_MULW: u32 = 0xfe00707f;
1519pub const MATCH_MV: u32 = 0x13;
1520pub const MASK_MV: u32 = 0xfff0707f;
1521pub const MATCH_NEG: u32 = 0x40000033;
1522pub const MASK_NEG: u32 = 0xfff0707f;
1523pub const MATCH_NOP: u32 = 0x13;
1524pub const MASK_NOP: u32 = 0xffffffff;
1525pub const MATCH_NTL_ALL: u32 = 0x500033;
1526pub const MASK_NTL_ALL: u32 = 0xffffffff;
1527pub const MATCH_NTL_P1: u32 = 0x200033;
1528pub const MASK_NTL_P1: u32 = 0xffffffff;
1529pub const MATCH_NTL_PALL: u32 = 0x300033;
1530pub const MASK_NTL_PALL: u32 = 0xffffffff;
1531pub const MATCH_NTL_S1: u32 = 0x400033;
1532pub const MASK_NTL_S1: u32 = 0xffffffff;
1533pub const MATCH_OR: u32 = 0x6033;
1534pub const MASK_OR: u32 = 0xfe00707f;
1535pub const MATCH_ORC_B: u32 = 0x28705013;
1536pub const MASK_ORC_B: u32 = 0xfff0707f;
1537pub const MATCH_ORI: u32 = 0x6013;
1538pub const MASK_ORI: u32 = 0x707f;
1539pub const MATCH_ORN: u32 = 0x40006033;
1540pub const MASK_ORN: u32 = 0xfe00707f;
1541pub const MATCH_PACK: u32 = 0x8004033;
1542pub const MASK_PACK: u32 = 0xfe00707f;
1543pub const MATCH_PACKH: u32 = 0x8007033;
1544pub const MASK_PACKH: u32 = 0xfe00707f;
1545pub const MATCH_PACKW: u32 = 0x800403b;
1546pub const MASK_PACKW: u32 = 0xfe00707f;
1547pub const MATCH_PAUSE: u32 = 0x100000f;
1548pub const MASK_PAUSE: u32 = 0xffffffff;
1549pub const MATCH_PREFETCH_I: u32 = 0x6013;
1550pub const MASK_PREFETCH_I: u32 = 0x1f07fff;
1551pub const MATCH_PREFETCH_R: u32 = 0x106013;
1552pub const MASK_PREFETCH_R: u32 = 0x1f07fff;
1553pub const MATCH_PREFETCH_W: u32 = 0x306013;
1554pub const MASK_PREFETCH_W: u32 = 0x1f07fff;
1555pub const MATCH_RDCYCLE: u32 = 0xc0002073;
1556pub const MASK_RDCYCLE: u32 = 0xfffff07f;
1557pub const MATCH_RDCYCLEH: u32 = 0xc8002073;
1558pub const MASK_RDCYCLEH: u32 = 0xfffff07f;
1559pub const MATCH_RDINSTRET: u32 = 0xc0202073;
1560pub const MASK_RDINSTRET: u32 = 0xfffff07f;
1561pub const MATCH_RDINSTRETH: u32 = 0xc8202073;
1562pub const MASK_RDINSTRETH: u32 = 0xfffff07f;
1563pub const MATCH_RDTIME: u32 = 0xc0102073;
1564pub const MASK_RDTIME: u32 = 0xfffff07f;
1565pub const MATCH_RDTIMEH: u32 = 0xc8102073;
1566pub const MASK_RDTIMEH: u32 = 0xfffff07f;
1567pub const MATCH_REM: u32 = 0x2006033;
1568pub const MASK_REM: u32 = 0xfe00707f;
1569pub const MATCH_REMU: u32 = 0x2007033;
1570pub const MASK_REMU: u32 = 0xfe00707f;
1571pub const MATCH_REMUW: u32 = 0x200703b;
1572pub const MASK_REMUW: u32 = 0xfe00707f;
1573pub const MATCH_REMW: u32 = 0x200603b;
1574pub const MASK_REMW: u32 = 0xfe00707f;
1575pub const MATCH_RET: u32 = 0x8067;
1576pub const MASK_RET: u32 = 0xffffffff;
1577pub const MATCH_REV8: u32 = 0x6b805013;
1578pub const MASK_REV8: u32 = 0xfff0707f;
1579pub const MATCH_REV8_RV32: u32 = 0x69805013;
1580pub const MASK_REV8_RV32: u32 = 0xfff0707f;
1581pub const MATCH_ROL: u32 = 0x60001033;
1582pub const MASK_ROL: u32 = 0xfe00707f;
1583pub const MATCH_ROLW: u32 = 0x6000103b;
1584pub const MASK_ROLW: u32 = 0xfe00707f;
1585pub const MATCH_ROR: u32 = 0x60005033;
1586pub const MASK_ROR: u32 = 0xfe00707f;
1587pub const MATCH_RORI: u32 = 0x60005013;
1588pub const MASK_RORI: u32 = 0xfc00707f;
1589pub const MATCH_RORI_RV32: u32 = 0x60005013;
1590pub const MASK_RORI_RV32: u32 = 0xfe00707f;
1591pub const MATCH_RORIW: u32 = 0x6000501b;
1592pub const MASK_RORIW: u32 = 0xfe00707f;
1593pub const MATCH_RORW: u32 = 0x6000503b;
1594pub const MASK_RORW: u32 = 0xfe00707f;
1595pub const MATCH_SB: u32 = 0x23;
1596pub const MASK_SB: u32 = 0x707f;
1597pub const MATCH_SBREAK: u32 = 0x100073;
1598pub const MASK_SBREAK: u32 = 0xffffffff;
1599pub const MATCH_SC_D: u32 = 0x1800302f;
1600pub const MASK_SC_D: u32 = 0xf800707f;
1601pub const MATCH_SC_W: u32 = 0x1800202f;
1602pub const MASK_SC_W: u32 = 0xf800707f;
1603pub const MATCH_SCALL: u32 = 0x73;
1604pub const MASK_SCALL: u32 = 0xffffffff;
1605pub const MATCH_SD: u32 = 0x3023;
1606pub const MASK_SD: u32 = 0x707f;
1607pub const MATCH_SEQZ: u32 = 0x103013;
1608pub const MASK_SEQZ: u32 = 0xfff0707f;
1609pub const MATCH_SEXT_B: u32 = 0x60401013;
1610pub const MASK_SEXT_B: u32 = 0xfff0707f;
1611pub const MATCH_SEXT_H: u32 = 0x60501013;
1612pub const MASK_SEXT_H: u32 = 0xfff0707f;
1613pub const MATCH_SEXT_W: u32 = 0x1b;
1614pub const MASK_SEXT_W: u32 = 0xfff0707f;
1615pub const MATCH_SFENCE_INVAL_IR: u32 = 0x18100073;
1616pub const MASK_SFENCE_INVAL_IR: u32 = 0xffffffff;
1617pub const MATCH_SFENCE_VMA: u32 = 0x12000073;
1618pub const MASK_SFENCE_VMA: u32 = 0xfe007fff;
1619pub const MATCH_SFENCE_W_INVAL: u32 = 0x18000073;
1620pub const MASK_SFENCE_W_INVAL: u32 = 0xffffffff;
1621pub const MATCH_SGTZ: u32 = 0x2033;
1622pub const MASK_SGTZ: u32 = 0xfe0ff07f;
1623pub const MATCH_SH: u32 = 0x1023;
1624pub const MASK_SH: u32 = 0x707f;
1625pub const MATCH_SH1ADD: u32 = 0x20002033;
1626pub const MASK_SH1ADD: u32 = 0xfe00707f;
1627pub const MATCH_SH1ADD_UW: u32 = 0x2000203b;
1628pub const MASK_SH1ADD_UW: u32 = 0xfe00707f;
1629pub const MATCH_SH2ADD: u32 = 0x20004033;
1630pub const MASK_SH2ADD: u32 = 0xfe00707f;
1631pub const MATCH_SH2ADD_UW: u32 = 0x2000403b;
1632pub const MASK_SH2ADD_UW: u32 = 0xfe00707f;
1633pub const MATCH_SH3ADD: u32 = 0x20006033;
1634pub const MASK_SH3ADD: u32 = 0xfe00707f;
1635pub const MATCH_SH3ADD_UW: u32 = 0x2000603b;
1636pub const MASK_SH3ADD_UW: u32 = 0xfe00707f;
1637pub const MATCH_SHA256SIG0: u32 = 0x10201013;
1638pub const MASK_SHA256SIG0: u32 = 0xfff0707f;
1639pub const MATCH_SHA256SIG1: u32 = 0x10301013;
1640pub const MASK_SHA256SIG1: u32 = 0xfff0707f;
1641pub const MATCH_SHA256SUM0: u32 = 0x10001013;
1642pub const MASK_SHA256SUM0: u32 = 0xfff0707f;
1643pub const MATCH_SHA256SUM1: u32 = 0x10101013;
1644pub const MASK_SHA256SUM1: u32 = 0xfff0707f;
1645pub const MATCH_SHA512SIG0: u32 = 0x10601013;
1646pub const MASK_SHA512SIG0: u32 = 0xfff0707f;
1647pub const MATCH_SHA512SIG0H: u32 = 0x5c000033;
1648pub const MASK_SHA512SIG0H: u32 = 0xfe00707f;
1649pub const MATCH_SHA512SIG0L: u32 = 0x54000033;
1650pub const MASK_SHA512SIG0L: u32 = 0xfe00707f;
1651pub const MATCH_SHA512SIG1: u32 = 0x10701013;
1652pub const MASK_SHA512SIG1: u32 = 0xfff0707f;
1653pub const MATCH_SHA512SIG1H: u32 = 0x5e000033;
1654pub const MASK_SHA512SIG1H: u32 = 0xfe00707f;
1655pub const MATCH_SHA512SIG1L: u32 = 0x56000033;
1656pub const MASK_SHA512SIG1L: u32 = 0xfe00707f;
1657pub const MATCH_SHA512SUM0: u32 = 0x10401013;
1658pub const MASK_SHA512SUM0: u32 = 0xfff0707f;
1659pub const MATCH_SHA512SUM0R: u32 = 0x50000033;
1660pub const MASK_SHA512SUM0R: u32 = 0xfe00707f;
1661pub const MATCH_SHA512SUM1: u32 = 0x10501013;
1662pub const MASK_SHA512SUM1: u32 = 0xfff0707f;
1663pub const MATCH_SHA512SUM1R: u32 = 0x52000033;
1664pub const MASK_SHA512SUM1R: u32 = 0xfe00707f;
1665pub const MATCH_SINVAL_VMA: u32 = 0x16000073;
1666pub const MASK_SINVAL_VMA: u32 = 0xfe007fff;
1667pub const MATCH_SLL: u32 = 0x1033;
1668pub const MASK_SLL: u32 = 0xfe00707f;
1669pub const MATCH_SLLI: u32 = 0x1013;
1670pub const MASK_SLLI: u32 = 0xfc00707f;
1671pub const MATCH_SLLI_RV32: u32 = 0x1013;
1672pub const MASK_SLLI_RV32: u32 = 0xfe00707f;
1673pub const MATCH_SLLI_UW: u32 = 0x800101b;
1674pub const MASK_SLLI_UW: u32 = 0xfc00707f;
1675pub const MATCH_SLLIW: u32 = 0x101b;
1676pub const MASK_SLLIW: u32 = 0xfe00707f;
1677pub const MATCH_SLLW: u32 = 0x103b;
1678pub const MASK_SLLW: u32 = 0xfe00707f;
1679pub const MATCH_SLT: u32 = 0x2033;
1680pub const MASK_SLT: u32 = 0xfe00707f;
1681pub const MATCH_SLTI: u32 = 0x2013;
1682pub const MASK_SLTI: u32 = 0x707f;
1683pub const MATCH_SLTIU: u32 = 0x3013;
1684pub const MASK_SLTIU: u32 = 0x707f;
1685pub const MATCH_SLTU: u32 = 0x3033;
1686pub const MASK_SLTU: u32 = 0xfe00707f;
1687pub const MATCH_SLTZ: u32 = 0x2033;
1688pub const MASK_SLTZ: u32 = 0xfff0707f;
1689pub const MATCH_SM3P0: u32 = 0x10801013;
1690pub const MASK_SM3P0: u32 = 0xfff0707f;
1691pub const MATCH_SM3P1: u32 = 0x10901013;
1692pub const MASK_SM3P1: u32 = 0xfff0707f;
1693pub const MATCH_SM4ED: u32 = 0x30000033;
1694pub const MASK_SM4ED: u32 = 0x3e00707f;
1695pub const MATCH_SM4KS: u32 = 0x34000033;
1696pub const MASK_SM4KS: u32 = 0x3e00707f;
1697pub const MATCH_SNEZ: u32 = 0x3033;
1698pub const MASK_SNEZ: u32 = 0xfe0ff07f;
1699pub const MATCH_SRA: u32 = 0x40005033;
1700pub const MASK_SRA: u32 = 0xfe00707f;
1701pub const MATCH_SRAI: u32 = 0x40005013;
1702pub const MASK_SRAI: u32 = 0xfc00707f;
1703pub const MATCH_SRAI_RV32: u32 = 0x40005013;
1704pub const MASK_SRAI_RV32: u32 = 0xfe00707f;
1705pub const MATCH_SRAIW: u32 = 0x4000501b;
1706pub const MASK_SRAIW: u32 = 0xfe00707f;
1707pub const MATCH_SRAW: u32 = 0x4000503b;
1708pub const MASK_SRAW: u32 = 0xfe00707f;
1709pub const MATCH_SRET: u32 = 0x10200073;
1710pub const MASK_SRET: u32 = 0xffffffff;
1711pub const MATCH_SRL: u32 = 0x5033;
1712pub const MASK_SRL: u32 = 0xfe00707f;
1713pub const MATCH_SRLI: u32 = 0x5013;
1714pub const MASK_SRLI: u32 = 0xfc00707f;
1715pub const MATCH_SRLI_RV32: u32 = 0x5013;
1716pub const MASK_SRLI_RV32: u32 = 0xfe00707f;
1717pub const MATCH_SRLIW: u32 = 0x501b;
1718pub const MASK_SRLIW: u32 = 0xfe00707f;
1719pub const MATCH_SRLW: u32 = 0x503b;
1720pub const MASK_SRLW: u32 = 0xfe00707f;
1721pub const MATCH_SUB: u32 = 0x40000033;
1722pub const MASK_SUB: u32 = 0xfe00707f;
1723pub const MATCH_SUBW: u32 = 0x4000003b;
1724pub const MASK_SUBW: u32 = 0xfe00707f;
1725pub const MATCH_SW: u32 = 0x2023;
1726pub const MASK_SW: u32 = 0x707f;
1727pub const MATCH_UNZIP: u32 = 0x8f05013;
1728pub const MASK_UNZIP: u32 = 0xfff0707f;
1729pub const MATCH_VAADD_VV: u32 = 0x24002057;
1730pub const MASK_VAADD_VV: u32 = 0xfc00707f;
1731pub const MATCH_VAADD_VX: u32 = 0x24006057;
1732pub const MASK_VAADD_VX: u32 = 0xfc00707f;
1733pub const MATCH_VAADDU_VV: u32 = 0x20002057;
1734pub const MASK_VAADDU_VV: u32 = 0xfc00707f;
1735pub const MATCH_VAADDU_VX: u32 = 0x20006057;
1736pub const MASK_VAADDU_VX: u32 = 0xfc00707f;
1737pub const MATCH_VADC_VIM: u32 = 0x40003057;
1738pub const MASK_VADC_VIM: u32 = 0xfe00707f;
1739pub const MATCH_VADC_VVM: u32 = 0x40000057;
1740pub const MASK_VADC_VVM: u32 = 0xfe00707f;
1741pub const MATCH_VADC_VXM: u32 = 0x40004057;
1742pub const MASK_VADC_VXM: u32 = 0xfe00707f;
1743pub const MATCH_VADD_VI: u32 = 0x3057;
1744pub const MASK_VADD_VI: u32 = 0xfc00707f;
1745pub const MATCH_VADD_VV: u32 = 0x57;
1746pub const MASK_VADD_VV: u32 = 0xfc00707f;
1747pub const MATCH_VADD_VX: u32 = 0x4057;
1748pub const MASK_VADD_VX: u32 = 0xfc00707f;
1749pub const MATCH_VAESDF_VS: u32 = 0xa600a077;
1750pub const MASK_VAESDF_VS: u32 = 0xfe0ff07f;
1751pub const MATCH_VAESDF_VV: u32 = 0xa200a077;
1752pub const MASK_VAESDF_VV: u32 = 0xfe0ff07f;
1753pub const MATCH_VAESDM_VS: u32 = 0xa6002077;
1754pub const MASK_VAESDM_VS: u32 = 0xfe0ff07f;
1755pub const MATCH_VAESDM_VV: u32 = 0xa2002077;
1756pub const MASK_VAESDM_VV: u32 = 0xfe0ff07f;
1757pub const MATCH_VAESEF_VS: u32 = 0xa601a077;
1758pub const MASK_VAESEF_VS: u32 = 0xfe0ff07f;
1759pub const MATCH_VAESEF_VV: u32 = 0xa201a077;
1760pub const MASK_VAESEF_VV: u32 = 0xfe0ff07f;
1761pub const MATCH_VAESEM_VS: u32 = 0xa6012077;
1762pub const MASK_VAESEM_VS: u32 = 0xfe0ff07f;
1763pub const MATCH_VAESEM_VV: u32 = 0xa2012077;
1764pub const MASK_VAESEM_VV: u32 = 0xfe0ff07f;
1765pub const MATCH_VAESKF1_VI: u32 = 0x8a002077;
1766pub const MASK_VAESKF1_VI: u32 = 0xfe00707f;
1767pub const MATCH_VAESKF2_VI: u32 = 0xaa002077;
1768pub const MASK_VAESKF2_VI: u32 = 0xfe00707f;
1769pub const MATCH_VAESZ_VS: u32 = 0xa603a077;
1770pub const MASK_VAESZ_VS: u32 = 0xfe0ff07f;
1771pub const MATCH_VAND_VI: u32 = 0x24003057;
1772pub const MASK_VAND_VI: u32 = 0xfc00707f;
1773pub const MATCH_VAND_VV: u32 = 0x24000057;
1774pub const MASK_VAND_VV: u32 = 0xfc00707f;
1775pub const MATCH_VAND_VX: u32 = 0x24004057;
1776pub const MASK_VAND_VX: u32 = 0xfc00707f;
1777pub const MATCH_VANDN_VV: u32 = 0x4000057;
1778pub const MASK_VANDN_VV: u32 = 0xfc00707f;
1779pub const MATCH_VANDN_VX: u32 = 0x4004057;
1780pub const MASK_VANDN_VX: u32 = 0xfc00707f;
1781pub const MATCH_VASUB_VV: u32 = 0x2c002057;
1782pub const MASK_VASUB_VV: u32 = 0xfc00707f;
1783pub const MATCH_VASUB_VX: u32 = 0x2c006057;
1784pub const MASK_VASUB_VX: u32 = 0xfc00707f;
1785pub const MATCH_VASUBU_VV: u32 = 0x28002057;
1786pub const MASK_VASUBU_VV: u32 = 0xfc00707f;
1787pub const MATCH_VASUBU_VX: u32 = 0x28006057;
1788pub const MASK_VASUBU_VX: u32 = 0xfc00707f;
1789pub const MATCH_VBREV8_V: u32 = 0x48042057;
1790pub const MASK_VBREV8_V: u32 = 0xfc0ff07f;
1791pub const MATCH_VBREV_V: u32 = 0x48052057;
1792pub const MASK_VBREV_V: u32 = 0xfc0ff07f;
1793pub const MATCH_VCLMUL_VV: u32 = 0x30002057;
1794pub const MASK_VCLMUL_VV: u32 = 0xfc00707f;
1795pub const MATCH_VCLMUL_VX: u32 = 0x30006057;
1796pub const MASK_VCLMUL_VX: u32 = 0xfc00707f;
1797pub const MATCH_VCLMULH_VV: u32 = 0x34002057;
1798pub const MASK_VCLMULH_VV: u32 = 0xfc00707f;
1799pub const MATCH_VCLMULH_VX: u32 = 0x34006057;
1800pub const MASK_VCLMULH_VX: u32 = 0xfc00707f;
1801pub const MATCH_VCLZ_V: u32 = 0x48062057;
1802pub const MASK_VCLZ_V: u32 = 0xfc0ff07f;
1803pub const MATCH_VCOMPRESS_VM: u32 = 0x5e002057;
1804pub const MASK_VCOMPRESS_VM: u32 = 0xfe00707f;
1805pub const MATCH_VCPOP_M: u32 = 0x40082057;
1806pub const MASK_VCPOP_M: u32 = 0xfc0ff07f;
1807pub const MATCH_VCPOP_V: u32 = 0x48072057;
1808pub const MASK_VCPOP_V: u32 = 0xfc0ff07f;
1809pub const MATCH_VCTZ_V: u32 = 0x4806a057;
1810pub const MASK_VCTZ_V: u32 = 0xfc0ff07f;
1811pub const MATCH_VDIV_VV: u32 = 0x84002057;
1812pub const MASK_VDIV_VV: u32 = 0xfc00707f;
1813pub const MATCH_VDIV_VX: u32 = 0x84006057;
1814pub const MASK_VDIV_VX: u32 = 0xfc00707f;
1815pub const MATCH_VDIVU_VV: u32 = 0x80002057;
1816pub const MASK_VDIVU_VV: u32 = 0xfc00707f;
1817pub const MATCH_VDIVU_VX: u32 = 0x80006057;
1818pub const MASK_VDIVU_VX: u32 = 0xfc00707f;
1819pub const MATCH_VFADD_VF: u32 = 0x5057;
1820pub const MASK_VFADD_VF: u32 = 0xfc00707f;
1821pub const MATCH_VFADD_VV: u32 = 0x1057;
1822pub const MASK_VFADD_VV: u32 = 0xfc00707f;
1823pub const MATCH_VFCLASS_V: u32 = 0x4c081057;
1824pub const MASK_VFCLASS_V: u32 = 0xfc0ff07f;
1825pub const MATCH_VFCVT_F_X_V: u32 = 0x48019057;
1826pub const MASK_VFCVT_F_X_V: u32 = 0xfc0ff07f;
1827pub const MATCH_VFCVT_F_XU_V: u32 = 0x48011057;
1828pub const MASK_VFCVT_F_XU_V: u32 = 0xfc0ff07f;
1829pub const MATCH_VFCVT_RTZ_X_F_V: u32 = 0x48039057;
1830pub const MASK_VFCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1831pub const MATCH_VFCVT_RTZ_XU_F_V: u32 = 0x48031057;
1832pub const MASK_VFCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1833pub const MATCH_VFCVT_X_F_V: u32 = 0x48009057;
1834pub const MASK_VFCVT_X_F_V: u32 = 0xfc0ff07f;
1835pub const MATCH_VFCVT_XU_F_V: u32 = 0x48001057;
1836pub const MASK_VFCVT_XU_F_V: u32 = 0xfc0ff07f;
1837pub const MATCH_VFDIV_VF: u32 = 0x80005057;
1838pub const MASK_VFDIV_VF: u32 = 0xfc00707f;
1839pub const MATCH_VFDIV_VV: u32 = 0x80001057;
1840pub const MASK_VFDIV_VV: u32 = 0xfc00707f;
1841pub const MATCH_VFIRST_M: u32 = 0x4008a057;
1842pub const MASK_VFIRST_M: u32 = 0xfc0ff07f;
1843pub const MATCH_VFMACC_VF: u32 = 0xb0005057;
1844pub const MASK_VFMACC_VF: u32 = 0xfc00707f;
1845pub const MATCH_VFMACC_VV: u32 = 0xb0001057;
1846pub const MASK_VFMACC_VV: u32 = 0xfc00707f;
1847pub const MATCH_VFMADD_VF: u32 = 0xa0005057;
1848pub const MASK_VFMADD_VF: u32 = 0xfc00707f;
1849pub const MATCH_VFMADD_VV: u32 = 0xa0001057;
1850pub const MASK_VFMADD_VV: u32 = 0xfc00707f;
1851pub const MATCH_VFMAX_VF: u32 = 0x18005057;
1852pub const MASK_VFMAX_VF: u32 = 0xfc00707f;
1853pub const MATCH_VFMAX_VV: u32 = 0x18001057;
1854pub const MASK_VFMAX_VV: u32 = 0xfc00707f;
1855pub const MATCH_VFMERGE_VFM: u32 = 0x5c005057;
1856pub const MASK_VFMERGE_VFM: u32 = 0xfe00707f;
1857pub const MATCH_VFMIN_VF: u32 = 0x10005057;
1858pub const MASK_VFMIN_VF: u32 = 0xfc00707f;
1859pub const MATCH_VFMIN_VV: u32 = 0x10001057;
1860pub const MASK_VFMIN_VV: u32 = 0xfc00707f;
1861pub const MATCH_VFMSAC_VF: u32 = 0xb8005057;
1862pub const MASK_VFMSAC_VF: u32 = 0xfc00707f;
1863pub const MATCH_VFMSAC_VV: u32 = 0xb8001057;
1864pub const MASK_VFMSAC_VV: u32 = 0xfc00707f;
1865pub const MATCH_VFMSUB_VF: u32 = 0xa8005057;
1866pub const MASK_VFMSUB_VF: u32 = 0xfc00707f;
1867pub const MATCH_VFMSUB_VV: u32 = 0xa8001057;
1868pub const MASK_VFMSUB_VV: u32 = 0xfc00707f;
1869pub const MATCH_VFMUL_VF: u32 = 0x90005057;
1870pub const MASK_VFMUL_VF: u32 = 0xfc00707f;
1871pub const MATCH_VFMUL_VV: u32 = 0x90001057;
1872pub const MASK_VFMUL_VV: u32 = 0xfc00707f;
1873pub const MATCH_VFMV_F_S: u32 = 0x42001057;
1874pub const MASK_VFMV_F_S: u32 = 0xfe0ff07f;
1875pub const MATCH_VFMV_S_F: u32 = 0x42005057;
1876pub const MASK_VFMV_S_F: u32 = 0xfff0707f;
1877pub const MATCH_VFMV_V_F: u32 = 0x5e005057;
1878pub const MASK_VFMV_V_F: u32 = 0xfff0707f;
1879pub const MATCH_VFNCVT_F_F_W: u32 = 0x480a1057;
1880pub const MASK_VFNCVT_F_F_W: u32 = 0xfc0ff07f;
1881pub const MATCH_VFNCVT_F_X_W: u32 = 0x48099057;
1882pub const MASK_VFNCVT_F_X_W: u32 = 0xfc0ff07f;
1883pub const MATCH_VFNCVT_F_XU_W: u32 = 0x48091057;
1884pub const MASK_VFNCVT_F_XU_W: u32 = 0xfc0ff07f;
1885pub const MATCH_VFNCVT_ROD_F_F_W: u32 = 0x480a9057;
1886pub const MASK_VFNCVT_ROD_F_F_W: u32 = 0xfc0ff07f;
1887pub const MATCH_VFNCVT_RTZ_X_F_W: u32 = 0x480b9057;
1888pub const MASK_VFNCVT_RTZ_X_F_W: u32 = 0xfc0ff07f;
1889pub const MATCH_VFNCVT_RTZ_XU_F_W: u32 = 0x480b1057;
1890pub const MASK_VFNCVT_RTZ_XU_F_W: u32 = 0xfc0ff07f;
1891pub const MATCH_VFNCVT_X_F_W: u32 = 0x48089057;
1892pub const MASK_VFNCVT_X_F_W: u32 = 0xfc0ff07f;
1893pub const MATCH_VFNCVT_XU_F_W: u32 = 0x48081057;
1894pub const MASK_VFNCVT_XU_F_W: u32 = 0xfc0ff07f;
1895pub const MATCH_VFNMACC_VF: u32 = 0xb4005057;
1896pub const MASK_VFNMACC_VF: u32 = 0xfc00707f;
1897pub const MATCH_VFNMACC_VV: u32 = 0xb4001057;
1898pub const MASK_VFNMACC_VV: u32 = 0xfc00707f;
1899pub const MATCH_VFNMADD_VF: u32 = 0xa4005057;
1900pub const MASK_VFNMADD_VF: u32 = 0xfc00707f;
1901pub const MATCH_VFNMADD_VV: u32 = 0xa4001057;
1902pub const MASK_VFNMADD_VV: u32 = 0xfc00707f;
1903pub const MATCH_VFNMSAC_VF: u32 = 0xbc005057;
1904pub const MASK_VFNMSAC_VF: u32 = 0xfc00707f;
1905pub const MATCH_VFNMSAC_VV: u32 = 0xbc001057;
1906pub const MASK_VFNMSAC_VV: u32 = 0xfc00707f;
1907pub const MATCH_VFNMSUB_VF: u32 = 0xac005057;
1908pub const MASK_VFNMSUB_VF: u32 = 0xfc00707f;
1909pub const MATCH_VFNMSUB_VV: u32 = 0xac001057;
1910pub const MASK_VFNMSUB_VV: u32 = 0xfc00707f;
1911pub const MATCH_VFRDIV_VF: u32 = 0x84005057;
1912pub const MASK_VFRDIV_VF: u32 = 0xfc00707f;
1913pub const MATCH_VFREC7_V: u32 = 0x4c029057;
1914pub const MASK_VFREC7_V: u32 = 0xfc0ff07f;
1915pub const MATCH_VFREDMAX_VS: u32 = 0x1c001057;
1916pub const MASK_VFREDMAX_VS: u32 = 0xfc00707f;
1917pub const MATCH_VFREDMIN_VS: u32 = 0x14001057;
1918pub const MASK_VFREDMIN_VS: u32 = 0xfc00707f;
1919pub const MATCH_VFREDOSUM_VS: u32 = 0xc001057;
1920pub const MASK_VFREDOSUM_VS: u32 = 0xfc00707f;
1921pub const MATCH_VFREDSUM_VS: u32 = 0x4001057;
1922pub const MASK_VFREDSUM_VS: u32 = 0xfc00707f;
1923pub const MATCH_VFREDUSUM_VS: u32 = 0x4001057;
1924pub const MASK_VFREDUSUM_VS: u32 = 0xfc00707f;
1925pub const MATCH_VFRSQRT7_V: u32 = 0x4c021057;
1926pub const MASK_VFRSQRT7_V: u32 = 0xfc0ff07f;
1927pub const MATCH_VFRSUB_VF: u32 = 0x9c005057;
1928pub const MASK_VFRSUB_VF: u32 = 0xfc00707f;
1929pub const MATCH_VFSGNJ_VF: u32 = 0x20005057;
1930pub const MASK_VFSGNJ_VF: u32 = 0xfc00707f;
1931pub const MATCH_VFSGNJ_VV: u32 = 0x20001057;
1932pub const MASK_VFSGNJ_VV: u32 = 0xfc00707f;
1933pub const MATCH_VFSGNJN_VF: u32 = 0x24005057;
1934pub const MASK_VFSGNJN_VF: u32 = 0xfc00707f;
1935pub const MATCH_VFSGNJN_VV: u32 = 0x24001057;
1936pub const MASK_VFSGNJN_VV: u32 = 0xfc00707f;
1937pub const MATCH_VFSGNJX_VF: u32 = 0x28005057;
1938pub const MASK_VFSGNJX_VF: u32 = 0xfc00707f;
1939pub const MATCH_VFSGNJX_VV: u32 = 0x28001057;
1940pub const MASK_VFSGNJX_VV: u32 = 0xfc00707f;
1941pub const MATCH_VFSLIDE1DOWN_VF: u32 = 0x3c005057;
1942pub const MASK_VFSLIDE1DOWN_VF: u32 = 0xfc00707f;
1943pub const MATCH_VFSLIDE1UP_VF: u32 = 0x38005057;
1944pub const MASK_VFSLIDE1UP_VF: u32 = 0xfc00707f;
1945pub const MATCH_VFSQRT_V: u32 = 0x4c001057;
1946pub const MASK_VFSQRT_V: u32 = 0xfc0ff07f;
1947pub const MATCH_VFSUB_VF: u32 = 0x8005057;
1948pub const MASK_VFSUB_VF: u32 = 0xfc00707f;
1949pub const MATCH_VFSUB_VV: u32 = 0x8001057;
1950pub const MASK_VFSUB_VV: u32 = 0xfc00707f;
1951pub const MATCH_VFWADD_VF: u32 = 0xc0005057;
1952pub const MASK_VFWADD_VF: u32 = 0xfc00707f;
1953pub const MATCH_VFWADD_VV: u32 = 0xc0001057;
1954pub const MASK_VFWADD_VV: u32 = 0xfc00707f;
1955pub const MATCH_VFWADD_WF: u32 = 0xd0005057;
1956pub const MASK_VFWADD_WF: u32 = 0xfc00707f;
1957pub const MATCH_VFWADD_WV: u32 = 0xd0001057;
1958pub const MASK_VFWADD_WV: u32 = 0xfc00707f;
1959pub const MATCH_VFWCVT_F_F_V: u32 = 0x48061057;
1960pub const MASK_VFWCVT_F_F_V: u32 = 0xfc0ff07f;
1961pub const MATCH_VFWCVT_F_X_V: u32 = 0x48059057;
1962pub const MASK_VFWCVT_F_X_V: u32 = 0xfc0ff07f;
1963pub const MATCH_VFWCVT_F_XU_V: u32 = 0x48051057;
1964pub const MASK_VFWCVT_F_XU_V: u32 = 0xfc0ff07f;
1965pub const MATCH_VFWCVT_RTZ_X_F_V: u32 = 0x48079057;
1966pub const MASK_VFWCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1967pub const MATCH_VFWCVT_RTZ_XU_F_V: u32 = 0x48071057;
1968pub const MASK_VFWCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1969pub const MATCH_VFWCVT_X_F_V: u32 = 0x48049057;
1970pub const MASK_VFWCVT_X_F_V: u32 = 0xfc0ff07f;
1971pub const MATCH_VFWCVT_XU_F_V: u32 = 0x48041057;
1972pub const MASK_VFWCVT_XU_F_V: u32 = 0xfc0ff07f;
1973pub const MATCH_VFWMACC_VF: u32 = 0xf0005057;
1974pub const MASK_VFWMACC_VF: u32 = 0xfc00707f;
1975pub const MATCH_VFWMACC_VV: u32 = 0xf0001057;
1976pub const MASK_VFWMACC_VV: u32 = 0xfc00707f;
1977pub const MATCH_VFWMSAC_VF: u32 = 0xf8005057;
1978pub const MASK_VFWMSAC_VF: u32 = 0xfc00707f;
1979pub const MATCH_VFWMSAC_VV: u32 = 0xf8001057;
1980pub const MASK_VFWMSAC_VV: u32 = 0xfc00707f;
1981pub const MATCH_VFWMUL_VF: u32 = 0xe0005057;
1982pub const MASK_VFWMUL_VF: u32 = 0xfc00707f;
1983pub const MATCH_VFWMUL_VV: u32 = 0xe0001057;
1984pub const MASK_VFWMUL_VV: u32 = 0xfc00707f;
1985pub const MATCH_VFWNMACC_VF: u32 = 0xf4005057;
1986pub const MASK_VFWNMACC_VF: u32 = 0xfc00707f;
1987pub const MATCH_VFWNMACC_VV: u32 = 0xf4001057;
1988pub const MASK_VFWNMACC_VV: u32 = 0xfc00707f;
1989pub const MATCH_VFWNMSAC_VF: u32 = 0xfc005057;
1990pub const MASK_VFWNMSAC_VF: u32 = 0xfc00707f;
1991pub const MATCH_VFWNMSAC_VV: u32 = 0xfc001057;
1992pub const MASK_VFWNMSAC_VV: u32 = 0xfc00707f;
1993pub const MATCH_VFWREDOSUM_VS: u32 = 0xcc001057;
1994pub const MASK_VFWREDOSUM_VS: u32 = 0xfc00707f;
1995pub const MATCH_VFWREDSUM_VS: u32 = 0xc4001057;
1996pub const MASK_VFWREDSUM_VS: u32 = 0xfc00707f;
1997pub const MATCH_VFWREDUSUM_VS: u32 = 0xc4001057;
1998pub const MASK_VFWREDUSUM_VS: u32 = 0xfc00707f;
1999pub const MATCH_VFWSUB_VF: u32 = 0xc8005057;
2000pub const MASK_VFWSUB_VF: u32 = 0xfc00707f;
2001pub const MATCH_VFWSUB_VV: u32 = 0xc8001057;
2002pub const MASK_VFWSUB_VV: u32 = 0xfc00707f;
2003pub const MATCH_VFWSUB_WF: u32 = 0xd8005057;
2004pub const MASK_VFWSUB_WF: u32 = 0xfc00707f;
2005pub const MATCH_VFWSUB_WV: u32 = 0xd8001057;
2006pub const MASK_VFWSUB_WV: u32 = 0xfc00707f;
2007pub const MATCH_VGHSH_VV: u32 = 0xb2002077;
2008pub const MASK_VGHSH_VV: u32 = 0xfe00707f;
2009pub const MATCH_VGMUL_VV: u32 = 0xa208a077;
2010pub const MASK_VGMUL_VV: u32 = 0xfe0ff07f;
2011pub const MATCH_VID_V: u32 = 0x5008a057;
2012pub const MASK_VID_V: u32 = 0xfdfff07f;
2013pub const MATCH_VIOTA_M: u32 = 0x50082057;
2014pub const MASK_VIOTA_M: u32 = 0xfc0ff07f;
2015pub const MATCH_VL1R_V: u32 = 0x2800007;
2016pub const MASK_VL1R_V: u32 = 0xfff0707f;
2017pub const MATCH_VL1RE16_V: u32 = 0x2805007;
2018pub const MASK_VL1RE16_V: u32 = 0xfff0707f;
2019pub const MATCH_VL1RE32_V: u32 = 0x2806007;
2020pub const MASK_VL1RE32_V: u32 = 0xfff0707f;
2021pub const MATCH_VL1RE64_V: u32 = 0x2807007;
2022pub const MASK_VL1RE64_V: u32 = 0xfff0707f;
2023pub const MATCH_VL1RE8_V: u32 = 0x2800007;
2024pub const MASK_VL1RE8_V: u32 = 0xfff0707f;
2025pub const MATCH_VL2R_V: u32 = 0x22800007;
2026pub const MASK_VL2R_V: u32 = 0xfff0707f;
2027pub const MATCH_VL2RE16_V: u32 = 0x22805007;
2028pub const MASK_VL2RE16_V: u32 = 0xfff0707f;
2029pub const MATCH_VL2RE32_V: u32 = 0x22806007;
2030pub const MASK_VL2RE32_V: u32 = 0xfff0707f;
2031pub const MATCH_VL2RE64_V: u32 = 0x22807007;
2032pub const MASK_VL2RE64_V: u32 = 0xfff0707f;
2033pub const MATCH_VL2RE8_V: u32 = 0x22800007;
2034pub const MASK_VL2RE8_V: u32 = 0xfff0707f;
2035pub const MATCH_VL4R_V: u32 = 0x62800007;
2036pub const MASK_VL4R_V: u32 = 0xfff0707f;
2037pub const MATCH_VL4RE16_V: u32 = 0x62805007;
2038pub const MASK_VL4RE16_V: u32 = 0xfff0707f;
2039pub const MATCH_VL4RE32_V: u32 = 0x62806007;
2040pub const MASK_VL4RE32_V: u32 = 0xfff0707f;
2041pub const MATCH_VL4RE64_V: u32 = 0x62807007;
2042pub const MASK_VL4RE64_V: u32 = 0xfff0707f;
2043pub const MATCH_VL4RE8_V: u32 = 0x62800007;
2044pub const MASK_VL4RE8_V: u32 = 0xfff0707f;
2045pub const MATCH_VL8R_V: u32 = 0xe2800007;
2046pub const MASK_VL8R_V: u32 = 0xfff0707f;
2047pub const MATCH_VL8RE16_V: u32 = 0xe2805007;
2048pub const MASK_VL8RE16_V: u32 = 0xfff0707f;
2049pub const MATCH_VL8RE32_V: u32 = 0xe2806007;
2050pub const MASK_VL8RE32_V: u32 = 0xfff0707f;
2051pub const MATCH_VL8RE64_V: u32 = 0xe2807007;
2052pub const MASK_VL8RE64_V: u32 = 0xfff0707f;
2053pub const MATCH_VL8RE8_V: u32 = 0xe2800007;
2054pub const MASK_VL8RE8_V: u32 = 0xfff0707f;
2055pub const MATCH_VLE16_V: u32 = 0x5007;
2056pub const MASK_VLE16_V: u32 = 0x1df0707f;
2057pub const MATCH_VLE16FF_V: u32 = 0x1005007;
2058pub const MASK_VLE16FF_V: u32 = 0x1df0707f;
2059pub const MATCH_VLE1_V: u32 = 0x2b00007;
2060pub const MASK_VLE1_V: u32 = 0xfff0707f;
2061pub const MATCH_VLE32_V: u32 = 0x6007;
2062pub const MASK_VLE32_V: u32 = 0x1df0707f;
2063pub const MATCH_VLE32FF_V: u32 = 0x1006007;
2064pub const MASK_VLE32FF_V: u32 = 0x1df0707f;
2065pub const MATCH_VLE64_V: u32 = 0x7007;
2066pub const MASK_VLE64_V: u32 = 0x1df0707f;
2067pub const MATCH_VLE64FF_V: u32 = 0x1007007;
2068pub const MASK_VLE64FF_V: u32 = 0x1df0707f;
2069pub const MATCH_VLE8_V: u32 = 0x7;
2070pub const MASK_VLE8_V: u32 = 0x1df0707f;
2071pub const MATCH_VLE8FF_V: u32 = 0x1000007;
2072pub const MASK_VLE8FF_V: u32 = 0x1df0707f;
2073pub const MATCH_VLM_V: u32 = 0x2b00007;
2074pub const MASK_VLM_V: u32 = 0xfff0707f;
2075pub const MATCH_VLOXEI16_V: u32 = 0xc005007;
2076pub const MASK_VLOXEI16_V: u32 = 0x1c00707f;
2077pub const MATCH_VLOXEI32_V: u32 = 0xc006007;
2078pub const MASK_VLOXEI32_V: u32 = 0x1c00707f;
2079pub const MATCH_VLOXEI64_V: u32 = 0xc007007;
2080pub const MASK_VLOXEI64_V: u32 = 0x1c00707f;
2081pub const MATCH_VLOXEI8_V: u32 = 0xc000007;
2082pub const MASK_VLOXEI8_V: u32 = 0x1c00707f;
2083pub const MATCH_VLSE16_V: u32 = 0x8005007;
2084pub const MASK_VLSE16_V: u32 = 0x1c00707f;
2085pub const MATCH_VLSE32_V: u32 = 0x8006007;
2086pub const MASK_VLSE32_V: u32 = 0x1c00707f;
2087pub const MATCH_VLSE64_V: u32 = 0x8007007;
2088pub const MASK_VLSE64_V: u32 = 0x1c00707f;
2089pub const MATCH_VLSE8_V: u32 = 0x8000007;
2090pub const MASK_VLSE8_V: u32 = 0x1c00707f;
2091pub const MATCH_VLUXEI16_V: u32 = 0x4005007;
2092pub const MASK_VLUXEI16_V: u32 = 0x1c00707f;
2093pub const MATCH_VLUXEI32_V: u32 = 0x4006007;
2094pub const MASK_VLUXEI32_V: u32 = 0x1c00707f;
2095pub const MATCH_VLUXEI64_V: u32 = 0x4007007;
2096pub const MASK_VLUXEI64_V: u32 = 0x1c00707f;
2097pub const MATCH_VLUXEI8_V: u32 = 0x4000007;
2098pub const MASK_VLUXEI8_V: u32 = 0x1c00707f;
2099pub const MATCH_VMACC_VV: u32 = 0xb4002057;
2100pub const MASK_VMACC_VV: u32 = 0xfc00707f;
2101pub const MATCH_VMACC_VX: u32 = 0xb4006057;
2102pub const MASK_VMACC_VX: u32 = 0xfc00707f;
2103pub const MATCH_VMADC_VI: u32 = 0x46003057;
2104pub const MASK_VMADC_VI: u32 = 0xfe00707f;
2105pub const MATCH_VMADC_VIM: u32 = 0x44003057;
2106pub const MASK_VMADC_VIM: u32 = 0xfe00707f;
2107pub const MATCH_VMADC_VV: u32 = 0x46000057;
2108pub const MASK_VMADC_VV: u32 = 0xfe00707f;
2109pub const MATCH_VMADC_VVM: u32 = 0x44000057;
2110pub const MASK_VMADC_VVM: u32 = 0xfe00707f;
2111pub const MATCH_VMADC_VX: u32 = 0x46004057;
2112pub const MASK_VMADC_VX: u32 = 0xfe00707f;
2113pub const MATCH_VMADC_VXM: u32 = 0x44004057;
2114pub const MASK_VMADC_VXM: u32 = 0xfe00707f;
2115pub const MATCH_VMADD_VV: u32 = 0xa4002057;
2116pub const MASK_VMADD_VV: u32 = 0xfc00707f;
2117pub const MATCH_VMADD_VX: u32 = 0xa4006057;
2118pub const MASK_VMADD_VX: u32 = 0xfc00707f;
2119pub const MATCH_VMAND_MM: u32 = 0x66002057;
2120pub const MASK_VMAND_MM: u32 = 0xfe00707f;
2121pub const MATCH_VMANDN_MM: u32 = 0x62002057;
2122pub const MASK_VMANDN_MM: u32 = 0xfe00707f;
2123pub const MATCH_VMANDNOT_MM: u32 = 0x60002057;
2124pub const MASK_VMANDNOT_MM: u32 = 0xfc00707f;
2125pub const MATCH_VMAX_VV: u32 = 0x1c000057;
2126pub const MASK_VMAX_VV: u32 = 0xfc00707f;
2127pub const MATCH_VMAX_VX: u32 = 0x1c004057;
2128pub const MASK_VMAX_VX: u32 = 0xfc00707f;
2129pub const MATCH_VMAXU_VV: u32 = 0x18000057;
2130pub const MASK_VMAXU_VV: u32 = 0xfc00707f;
2131pub const MATCH_VMAXU_VX: u32 = 0x18004057;
2132pub const MASK_VMAXU_VX: u32 = 0xfc00707f;
2133pub const MATCH_VMERGE_VIM: u32 = 0x5c003057;
2134pub const MASK_VMERGE_VIM: u32 = 0xfe00707f;
2135pub const MATCH_VMERGE_VVM: u32 = 0x5c000057;
2136pub const MASK_VMERGE_VVM: u32 = 0xfe00707f;
2137pub const MATCH_VMERGE_VXM: u32 = 0x5c004057;
2138pub const MASK_VMERGE_VXM: u32 = 0xfe00707f;
2139pub const MATCH_VMFEQ_VF: u32 = 0x60005057;
2140pub const MASK_VMFEQ_VF: u32 = 0xfc00707f;
2141pub const MATCH_VMFEQ_VV: u32 = 0x60001057;
2142pub const MASK_VMFEQ_VV: u32 = 0xfc00707f;
2143pub const MATCH_VMFGE_VF: u32 = 0x7c005057;
2144pub const MASK_VMFGE_VF: u32 = 0xfc00707f;
2145pub const MATCH_VMFGT_VF: u32 = 0x74005057;
2146pub const MASK_VMFGT_VF: u32 = 0xfc00707f;
2147pub const MATCH_VMFLE_VF: u32 = 0x64005057;
2148pub const MASK_VMFLE_VF: u32 = 0xfc00707f;
2149pub const MATCH_VMFLE_VV: u32 = 0x64001057;
2150pub const MASK_VMFLE_VV: u32 = 0xfc00707f;
2151pub const MATCH_VMFLT_VF: u32 = 0x6c005057;
2152pub const MASK_VMFLT_VF: u32 = 0xfc00707f;
2153pub const MATCH_VMFLT_VV: u32 = 0x6c001057;
2154pub const MASK_VMFLT_VV: u32 = 0xfc00707f;
2155pub const MATCH_VMFNE_VF: u32 = 0x70005057;
2156pub const MASK_VMFNE_VF: u32 = 0xfc00707f;
2157pub const MATCH_VMFNE_VV: u32 = 0x70001057;
2158pub const MASK_VMFNE_VV: u32 = 0xfc00707f;
2159pub const MATCH_VMIN_VV: u32 = 0x14000057;
2160pub const MASK_VMIN_VV: u32 = 0xfc00707f;
2161pub const MATCH_VMIN_VX: u32 = 0x14004057;
2162pub const MASK_VMIN_VX: u32 = 0xfc00707f;
2163pub const MATCH_VMINU_VV: u32 = 0x10000057;
2164pub const MASK_VMINU_VV: u32 = 0xfc00707f;
2165pub const MATCH_VMINU_VX: u32 = 0x10004057;
2166pub const MASK_VMINU_VX: u32 = 0xfc00707f;
2167pub const MATCH_VMNAND_MM: u32 = 0x76002057;
2168pub const MASK_VMNAND_MM: u32 = 0xfe00707f;
2169pub const MATCH_VMNOR_MM: u32 = 0x7a002057;
2170pub const MASK_VMNOR_MM: u32 = 0xfe00707f;
2171pub const MATCH_VMOR_MM: u32 = 0x6a002057;
2172pub const MASK_VMOR_MM: u32 = 0xfe00707f;
2173pub const MATCH_VMORN_MM: u32 = 0x72002057;
2174pub const MASK_VMORN_MM: u32 = 0xfe00707f;
2175pub const MATCH_VMORNOT_MM: u32 = 0x70002057;
2176pub const MASK_VMORNOT_MM: u32 = 0xfc00707f;
2177pub const MATCH_VMSBC_VV: u32 = 0x4e000057;
2178pub const MASK_VMSBC_VV: u32 = 0xfe00707f;
2179pub const MATCH_VMSBC_VVM: u32 = 0x4c000057;
2180pub const MASK_VMSBC_VVM: u32 = 0xfe00707f;
2181pub const MATCH_VMSBC_VX: u32 = 0x4e004057;
2182pub const MASK_VMSBC_VX: u32 = 0xfe00707f;
2183pub const MATCH_VMSBC_VXM: u32 = 0x4c004057;
2184pub const MASK_VMSBC_VXM: u32 = 0xfe00707f;
2185pub const MATCH_VMSBF_M: u32 = 0x5000a057;
2186pub const MASK_VMSBF_M: u32 = 0xfc0ff07f;
2187pub const MATCH_VMSEQ_VI: u32 = 0x60003057;
2188pub const MASK_VMSEQ_VI: u32 = 0xfc00707f;
2189pub const MATCH_VMSEQ_VV: u32 = 0x60000057;
2190pub const MASK_VMSEQ_VV: u32 = 0xfc00707f;
2191pub const MATCH_VMSEQ_VX: u32 = 0x60004057;
2192pub const MASK_VMSEQ_VX: u32 = 0xfc00707f;
2193pub const MATCH_VMSGT_VI: u32 = 0x7c003057;
2194pub const MASK_VMSGT_VI: u32 = 0xfc00707f;
2195pub const MATCH_VMSGT_VX: u32 = 0x7c004057;
2196pub const MASK_VMSGT_VX: u32 = 0xfc00707f;
2197pub const MATCH_VMSGTU_VI: u32 = 0x78003057;
2198pub const MASK_VMSGTU_VI: u32 = 0xfc00707f;
2199pub const MATCH_VMSGTU_VX: u32 = 0x78004057;
2200pub const MASK_VMSGTU_VX: u32 = 0xfc00707f;
2201pub const MATCH_VMSIF_M: u32 = 0x5001a057;
2202pub const MASK_VMSIF_M: u32 = 0xfc0ff07f;
2203pub const MATCH_VMSLE_VI: u32 = 0x74003057;
2204pub const MASK_VMSLE_VI: u32 = 0xfc00707f;
2205pub const MATCH_VMSLE_VV: u32 = 0x74000057;
2206pub const MASK_VMSLE_VV: u32 = 0xfc00707f;
2207pub const MATCH_VMSLE_VX: u32 = 0x74004057;
2208pub const MASK_VMSLE_VX: u32 = 0xfc00707f;
2209pub const MATCH_VMSLEU_VI: u32 = 0x70003057;
2210pub const MASK_VMSLEU_VI: u32 = 0xfc00707f;
2211pub const MATCH_VMSLEU_VV: u32 = 0x70000057;
2212pub const MASK_VMSLEU_VV: u32 = 0xfc00707f;
2213pub const MATCH_VMSLEU_VX: u32 = 0x70004057;
2214pub const MASK_VMSLEU_VX: u32 = 0xfc00707f;
2215pub const MATCH_VMSLT_VV: u32 = 0x6c000057;
2216pub const MASK_VMSLT_VV: u32 = 0xfc00707f;
2217pub const MATCH_VMSLT_VX: u32 = 0x6c004057;
2218pub const MASK_VMSLT_VX: u32 = 0xfc00707f;
2219pub const MATCH_VMSLTU_VV: u32 = 0x68000057;
2220pub const MASK_VMSLTU_VV: u32 = 0xfc00707f;
2221pub const MATCH_VMSLTU_VX: u32 = 0x68004057;
2222pub const MASK_VMSLTU_VX: u32 = 0xfc00707f;
2223pub const MATCH_VMSNE_VI: u32 = 0x64003057;
2224pub const MASK_VMSNE_VI: u32 = 0xfc00707f;
2225pub const MATCH_VMSNE_VV: u32 = 0x64000057;
2226pub const MASK_VMSNE_VV: u32 = 0xfc00707f;
2227pub const MATCH_VMSNE_VX: u32 = 0x64004057;
2228pub const MASK_VMSNE_VX: u32 = 0xfc00707f;
2229pub const MATCH_VMSOF_M: u32 = 0x50012057;
2230pub const MASK_VMSOF_M: u32 = 0xfc0ff07f;
2231pub const MATCH_VMUL_VV: u32 = 0x94002057;
2232pub const MASK_VMUL_VV: u32 = 0xfc00707f;
2233pub const MATCH_VMUL_VX: u32 = 0x94006057;
2234pub const MASK_VMUL_VX: u32 = 0xfc00707f;
2235pub const MATCH_VMULH_VV: u32 = 0x9c002057;
2236pub const MASK_VMULH_VV: u32 = 0xfc00707f;
2237pub const MATCH_VMULH_VX: u32 = 0x9c006057;
2238pub const MASK_VMULH_VX: u32 = 0xfc00707f;
2239pub const MATCH_VMULHSU_VV: u32 = 0x98002057;
2240pub const MASK_VMULHSU_VV: u32 = 0xfc00707f;
2241pub const MATCH_VMULHSU_VX: u32 = 0x98006057;
2242pub const MASK_VMULHSU_VX: u32 = 0xfc00707f;
2243pub const MATCH_VMULHU_VV: u32 = 0x90002057;
2244pub const MASK_VMULHU_VV: u32 = 0xfc00707f;
2245pub const MATCH_VMULHU_VX: u32 = 0x90006057;
2246pub const MASK_VMULHU_VX: u32 = 0xfc00707f;
2247pub const MATCH_VMV1R_V: u32 = 0x9e003057;
2248pub const MASK_VMV1R_V: u32 = 0xfe0ff07f;
2249pub const MATCH_VMV2R_V: u32 = 0x9e00b057;
2250pub const MASK_VMV2R_V: u32 = 0xfe0ff07f;
2251pub const MATCH_VMV4R_V: u32 = 0x9e01b057;
2252pub const MASK_VMV4R_V: u32 = 0xfe0ff07f;
2253pub const MATCH_VMV8R_V: u32 = 0x9e03b057;
2254pub const MASK_VMV8R_V: u32 = 0xfe0ff07f;
2255pub const MATCH_VMV_S_X: u32 = 0x42006057;
2256pub const MASK_VMV_S_X: u32 = 0xfff0707f;
2257pub const MATCH_VMV_V_I: u32 = 0x5e003057;
2258pub const MASK_VMV_V_I: u32 = 0xfff0707f;
2259pub const MATCH_VMV_V_V: u32 = 0x5e000057;
2260pub const MASK_VMV_V_V: u32 = 0xfff0707f;
2261pub const MATCH_VMV_V_X: u32 = 0x5e004057;
2262pub const MASK_VMV_V_X: u32 = 0xfff0707f;
2263pub const MATCH_VMV_X_S: u32 = 0x42002057;
2264pub const MASK_VMV_X_S: u32 = 0xfe0ff07f;
2265pub const MATCH_VMXNOR_MM: u32 = 0x7e002057;
2266pub const MASK_VMXNOR_MM: u32 = 0xfe00707f;
2267pub const MATCH_VMXOR_MM: u32 = 0x6e002057;
2268pub const MASK_VMXOR_MM: u32 = 0xfe00707f;
2269pub const MATCH_VNCLIP_WI: u32 = 0xbc003057;
2270pub const MASK_VNCLIP_WI: u32 = 0xfc00707f;
2271pub const MATCH_VNCLIP_WV: u32 = 0xbc000057;
2272pub const MASK_VNCLIP_WV: u32 = 0xfc00707f;
2273pub const MATCH_VNCLIP_WX: u32 = 0xbc004057;
2274pub const MASK_VNCLIP_WX: u32 = 0xfc00707f;
2275pub const MATCH_VNCLIPU_WI: u32 = 0xb8003057;
2276pub const MASK_VNCLIPU_WI: u32 = 0xfc00707f;
2277pub const MATCH_VNCLIPU_WV: u32 = 0xb8000057;
2278pub const MASK_VNCLIPU_WV: u32 = 0xfc00707f;
2279pub const MATCH_VNCLIPU_WX: u32 = 0xb8004057;
2280pub const MASK_VNCLIPU_WX: u32 = 0xfc00707f;
2281pub const MATCH_VNMSAC_VV: u32 = 0xbc002057;
2282pub const MASK_VNMSAC_VV: u32 = 0xfc00707f;
2283pub const MATCH_VNMSAC_VX: u32 = 0xbc006057;
2284pub const MASK_VNMSAC_VX: u32 = 0xfc00707f;
2285pub const MATCH_VNMSUB_VV: u32 = 0xac002057;
2286pub const MASK_VNMSUB_VV: u32 = 0xfc00707f;
2287pub const MATCH_VNMSUB_VX: u32 = 0xac006057;
2288pub const MASK_VNMSUB_VX: u32 = 0xfc00707f;
2289pub const MATCH_VNSRA_WI: u32 = 0xb4003057;
2290pub const MASK_VNSRA_WI: u32 = 0xfc00707f;
2291pub const MATCH_VNSRA_WV: u32 = 0xb4000057;
2292pub const MASK_VNSRA_WV: u32 = 0xfc00707f;
2293pub const MATCH_VNSRA_WX: u32 = 0xb4004057;
2294pub const MASK_VNSRA_WX: u32 = 0xfc00707f;
2295pub const MATCH_VNSRL_WI: u32 = 0xb0003057;
2296pub const MASK_VNSRL_WI: u32 = 0xfc00707f;
2297pub const MATCH_VNSRL_WV: u32 = 0xb0000057;
2298pub const MASK_VNSRL_WV: u32 = 0xfc00707f;
2299pub const MATCH_VNSRL_WX: u32 = 0xb0004057;
2300pub const MASK_VNSRL_WX: u32 = 0xfc00707f;
2301pub const MATCH_VOR_VI: u32 = 0x28003057;
2302pub const MASK_VOR_VI: u32 = 0xfc00707f;
2303pub const MATCH_VOR_VV: u32 = 0x28000057;
2304pub const MASK_VOR_VV: u32 = 0xfc00707f;
2305pub const MATCH_VOR_VX: u32 = 0x28004057;
2306pub const MASK_VOR_VX: u32 = 0xfc00707f;
2307pub const MATCH_VPOPC_M: u32 = 0x40082057;
2308pub const MASK_VPOPC_M: u32 = 0xfc0ff07f;
2309pub const MATCH_VREDAND_VS: u32 = 0x4002057;
2310pub const MASK_VREDAND_VS: u32 = 0xfc00707f;
2311pub const MATCH_VREDMAX_VS: u32 = 0x1c002057;
2312pub const MASK_VREDMAX_VS: u32 = 0xfc00707f;
2313pub const MATCH_VREDMAXU_VS: u32 = 0x18002057;
2314pub const MASK_VREDMAXU_VS: u32 = 0xfc00707f;
2315pub const MATCH_VREDMIN_VS: u32 = 0x14002057;
2316pub const MASK_VREDMIN_VS: u32 = 0xfc00707f;
2317pub const MATCH_VREDMINU_VS: u32 = 0x10002057;
2318pub const MASK_VREDMINU_VS: u32 = 0xfc00707f;
2319pub const MATCH_VREDOR_VS: u32 = 0x8002057;
2320pub const MASK_VREDOR_VS: u32 = 0xfc00707f;
2321pub const MATCH_VREDSUM_VS: u32 = 0x2057;
2322pub const MASK_VREDSUM_VS: u32 = 0xfc00707f;
2323pub const MATCH_VREDXOR_VS: u32 = 0xc002057;
2324pub const MASK_VREDXOR_VS: u32 = 0xfc00707f;
2325pub const MATCH_VREM_VV: u32 = 0x8c002057;
2326pub const MASK_VREM_VV: u32 = 0xfc00707f;
2327pub const MATCH_VREM_VX: u32 = 0x8c006057;
2328pub const MASK_VREM_VX: u32 = 0xfc00707f;
2329pub const MATCH_VREMU_VV: u32 = 0x88002057;
2330pub const MASK_VREMU_VV: u32 = 0xfc00707f;
2331pub const MATCH_VREMU_VX: u32 = 0x88006057;
2332pub const MASK_VREMU_VX: u32 = 0xfc00707f;
2333pub const MATCH_VREV8_V: u32 = 0x4804a057;
2334pub const MASK_VREV8_V: u32 = 0xfc0ff07f;
2335pub const MATCH_VRGATHER_VI: u32 = 0x30003057;
2336pub const MASK_VRGATHER_VI: u32 = 0xfc00707f;
2337pub const MATCH_VRGATHER_VV: u32 = 0x30000057;
2338pub const MASK_VRGATHER_VV: u32 = 0xfc00707f;
2339pub const MATCH_VRGATHER_VX: u32 = 0x30004057;
2340pub const MASK_VRGATHER_VX: u32 = 0xfc00707f;
2341pub const MATCH_VRGATHEREI16_VV: u32 = 0x38000057;
2342pub const MASK_VRGATHEREI16_VV: u32 = 0xfc00707f;
2343pub const MATCH_VROL_VV: u32 = 0x54000057;
2344pub const MASK_VROL_VV: u32 = 0xfc00707f;
2345pub const MATCH_VROL_VX: u32 = 0x54004057;
2346pub const MASK_VROL_VX: u32 = 0xfc00707f;
2347pub const MATCH_VROR_VI: u32 = 0x50003057;
2348pub const MASK_VROR_VI: u32 = 0xf800707f;
2349pub const MATCH_VROR_VV: u32 = 0x50000057;
2350pub const MASK_VROR_VV: u32 = 0xfc00707f;
2351pub const MATCH_VROR_VX: u32 = 0x50004057;
2352pub const MASK_VROR_VX: u32 = 0xfc00707f;
2353pub const MATCH_VRSUB_VI: u32 = 0xc003057;
2354pub const MASK_VRSUB_VI: u32 = 0xfc00707f;
2355pub const MATCH_VRSUB_VX: u32 = 0xc004057;
2356pub const MASK_VRSUB_VX: u32 = 0xfc00707f;
2357pub const MATCH_VS1R_V: u32 = 0x2800027;
2358pub const MASK_VS1R_V: u32 = 0xfff0707f;
2359pub const MATCH_VS2R_V: u32 = 0x22800027;
2360pub const MASK_VS2R_V: u32 = 0xfff0707f;
2361pub const MATCH_VS4R_V: u32 = 0x62800027;
2362pub const MASK_VS4R_V: u32 = 0xfff0707f;
2363pub const MATCH_VS8R_V: u32 = 0xe2800027;
2364pub const MASK_VS8R_V: u32 = 0xfff0707f;
2365pub const MATCH_VSADD_VI: u32 = 0x84003057;
2366pub const MASK_VSADD_VI: u32 = 0xfc00707f;
2367pub const MATCH_VSADD_VV: u32 = 0x84000057;
2368pub const MASK_VSADD_VV: u32 = 0xfc00707f;
2369pub const MATCH_VSADD_VX: u32 = 0x84004057;
2370pub const MASK_VSADD_VX: u32 = 0xfc00707f;
2371pub const MATCH_VSADDU_VI: u32 = 0x80003057;
2372pub const MASK_VSADDU_VI: u32 = 0xfc00707f;
2373pub const MATCH_VSADDU_VV: u32 = 0x80000057;
2374pub const MASK_VSADDU_VV: u32 = 0xfc00707f;
2375pub const MATCH_VSADDU_VX: u32 = 0x80004057;
2376pub const MASK_VSADDU_VX: u32 = 0xfc00707f;
2377pub const MATCH_VSBC_VVM: u32 = 0x48000057;
2378pub const MASK_VSBC_VVM: u32 = 0xfe00707f;
2379pub const MATCH_VSBC_VXM: u32 = 0x48004057;
2380pub const MASK_VSBC_VXM: u32 = 0xfe00707f;
2381pub const MATCH_VSE16_V: u32 = 0x5027;
2382pub const MASK_VSE16_V: u32 = 0x1df0707f;
2383pub const MATCH_VSE1_V: u32 = 0x2b00027;
2384pub const MASK_VSE1_V: u32 = 0xfff0707f;
2385pub const MATCH_VSE32_V: u32 = 0x6027;
2386pub const MASK_VSE32_V: u32 = 0x1df0707f;
2387pub const MATCH_VSE64_V: u32 = 0x7027;
2388pub const MASK_VSE64_V: u32 = 0x1df0707f;
2389pub const MATCH_VSE8_V: u32 = 0x27;
2390pub const MASK_VSE8_V: u32 = 0x1df0707f;
2391pub const MATCH_VSETIVLI: u32 = 0xc0007057;
2392pub const MASK_VSETIVLI: u32 = 0xc000707f;
2393pub const MATCH_VSETVL: u32 = 0x80007057;
2394pub const MASK_VSETVL: u32 = 0xfe00707f;
2395pub const MATCH_VSETVLI: u32 = 0x7057;
2396pub const MASK_VSETVLI: u32 = 0x8000707f;
2397pub const MATCH_VSEXT_VF2: u32 = 0x4803a057;
2398pub const MASK_VSEXT_VF2: u32 = 0xfc0ff07f;
2399pub const MATCH_VSEXT_VF4: u32 = 0x4802a057;
2400pub const MASK_VSEXT_VF4: u32 = 0xfc0ff07f;
2401pub const MATCH_VSEXT_VF8: u32 = 0x4801a057;
2402pub const MASK_VSEXT_VF8: u32 = 0xfc0ff07f;
2403pub const MATCH_VSHA2CH_VV: u32 = 0xba002077;
2404pub const MASK_VSHA2CH_VV: u32 = 0xfe00707f;
2405pub const MATCH_VSHA2CL_VV: u32 = 0xbe002077;
2406pub const MASK_VSHA2CL_VV: u32 = 0xfe00707f;
2407pub const MATCH_VSHA2MS_VV: u32 = 0xb6002077;
2408pub const MASK_VSHA2MS_VV: u32 = 0xfe00707f;
2409pub const MATCH_VSLIDE1DOWN_VX: u32 = 0x3c006057;
2410pub const MASK_VSLIDE1DOWN_VX: u32 = 0xfc00707f;
2411pub const MATCH_VSLIDE1UP_VX: u32 = 0x38006057;
2412pub const MASK_VSLIDE1UP_VX: u32 = 0xfc00707f;
2413pub const MATCH_VSLIDEDOWN_VI: u32 = 0x3c003057;
2414pub const MASK_VSLIDEDOWN_VI: u32 = 0xfc00707f;
2415pub const MATCH_VSLIDEDOWN_VX: u32 = 0x3c004057;
2416pub const MASK_VSLIDEDOWN_VX: u32 = 0xfc00707f;
2417pub const MATCH_VSLIDEUP_VI: u32 = 0x38003057;
2418pub const MASK_VSLIDEUP_VI: u32 = 0xfc00707f;
2419pub const MATCH_VSLIDEUP_VX: u32 = 0x38004057;
2420pub const MASK_VSLIDEUP_VX: u32 = 0xfc00707f;
2421pub const MATCH_VSLL_VI: u32 = 0x94003057;
2422pub const MASK_VSLL_VI: u32 = 0xfc00707f;
2423pub const MATCH_VSLL_VV: u32 = 0x94000057;
2424pub const MASK_VSLL_VV: u32 = 0xfc00707f;
2425pub const MATCH_VSLL_VX: u32 = 0x94004057;
2426pub const MASK_VSLL_VX: u32 = 0xfc00707f;
2427pub const MATCH_VSM3C_VI: u32 = 0xae002077;
2428pub const MASK_VSM3C_VI: u32 = 0xfe00707f;
2429pub const MATCH_VSM3ME_VV: u32 = 0x82002077;
2430pub const MASK_VSM3ME_VV: u32 = 0xfe00707f;
2431pub const MATCH_VSM4K_VI: u32 = 0x86002077;
2432pub const MASK_VSM4K_VI: u32 = 0xfe00707f;
2433pub const MATCH_VSM4R_VS: u32 = 0xa6082077;
2434pub const MASK_VSM4R_VS: u32 = 0xfe0ff07f;
2435pub const MATCH_VSM4R_VV: u32 = 0xa2082077;
2436pub const MASK_VSM4R_VV: u32 = 0xfe0ff07f;
2437pub const MATCH_VSM_V: u32 = 0x2b00027;
2438pub const MASK_VSM_V: u32 = 0xfff0707f;
2439pub const MATCH_VSMUL_VV: u32 = 0x9c000057;
2440pub const MASK_VSMUL_VV: u32 = 0xfc00707f;
2441pub const MATCH_VSMUL_VX: u32 = 0x9c004057;
2442pub const MASK_VSMUL_VX: u32 = 0xfc00707f;
2443pub const MATCH_VSOXEI16_V: u32 = 0xc005027;
2444pub const MASK_VSOXEI16_V: u32 = 0x1c00707f;
2445pub const MATCH_VSOXEI32_V: u32 = 0xc006027;
2446pub const MASK_VSOXEI32_V: u32 = 0x1c00707f;
2447pub const MATCH_VSOXEI64_V: u32 = 0xc007027;
2448pub const MASK_VSOXEI64_V: u32 = 0x1c00707f;
2449pub const MATCH_VSOXEI8_V: u32 = 0xc000027;
2450pub const MASK_VSOXEI8_V: u32 = 0x1c00707f;
2451pub const MATCH_VSRA_VI: u32 = 0xa4003057;
2452pub const MASK_VSRA_VI: u32 = 0xfc00707f;
2453pub const MATCH_VSRA_VV: u32 = 0xa4000057;
2454pub const MASK_VSRA_VV: u32 = 0xfc00707f;
2455pub const MATCH_VSRA_VX: u32 = 0xa4004057;
2456pub const MASK_VSRA_VX: u32 = 0xfc00707f;
2457pub const MATCH_VSRL_VI: u32 = 0xa0003057;
2458pub const MASK_VSRL_VI: u32 = 0xfc00707f;
2459pub const MATCH_VSRL_VV: u32 = 0xa0000057;
2460pub const MASK_VSRL_VV: u32 = 0xfc00707f;
2461pub const MATCH_VSRL_VX: u32 = 0xa0004057;
2462pub const MASK_VSRL_VX: u32 = 0xfc00707f;
2463pub const MATCH_VSSE16_V: u32 = 0x8005027;
2464pub const MASK_VSSE16_V: u32 = 0x1c00707f;
2465pub const MATCH_VSSE32_V: u32 = 0x8006027;
2466pub const MASK_VSSE32_V: u32 = 0x1c00707f;
2467pub const MATCH_VSSE64_V: u32 = 0x8007027;
2468pub const MASK_VSSE64_V: u32 = 0x1c00707f;
2469pub const MATCH_VSSE8_V: u32 = 0x8000027;
2470pub const MASK_VSSE8_V: u32 = 0x1c00707f;
2471pub const MATCH_VSSRA_VI: u32 = 0xac003057;
2472pub const MASK_VSSRA_VI: u32 = 0xfc00707f;
2473pub const MATCH_VSSRA_VV: u32 = 0xac000057;
2474pub const MASK_VSSRA_VV: u32 = 0xfc00707f;
2475pub const MATCH_VSSRA_VX: u32 = 0xac004057;
2476pub const MASK_VSSRA_VX: u32 = 0xfc00707f;
2477pub const MATCH_VSSRL_VI: u32 = 0xa8003057;
2478pub const MASK_VSSRL_VI: u32 = 0xfc00707f;
2479pub const MATCH_VSSRL_VV: u32 = 0xa8000057;
2480pub const MASK_VSSRL_VV: u32 = 0xfc00707f;
2481pub const MATCH_VSSRL_VX: u32 = 0xa8004057;
2482pub const MASK_VSSRL_VX: u32 = 0xfc00707f;
2483pub const MATCH_VSSUB_VV: u32 = 0x8c000057;
2484pub const MASK_VSSUB_VV: u32 = 0xfc00707f;
2485pub const MATCH_VSSUB_VX: u32 = 0x8c004057;
2486pub const MASK_VSSUB_VX: u32 = 0xfc00707f;
2487pub const MATCH_VSSUBU_VV: u32 = 0x88000057;
2488pub const MASK_VSSUBU_VV: u32 = 0xfc00707f;
2489pub const MATCH_VSSUBU_VX: u32 = 0x88004057;
2490pub const MASK_VSSUBU_VX: u32 = 0xfc00707f;
2491pub const MATCH_VSUB_VV: u32 = 0x8000057;
2492pub const MASK_VSUB_VV: u32 = 0xfc00707f;
2493pub const MATCH_VSUB_VX: u32 = 0x8004057;
2494pub const MASK_VSUB_VX: u32 = 0xfc00707f;
2495pub const MATCH_VSUXEI16_V: u32 = 0x4005027;
2496pub const MASK_VSUXEI16_V: u32 = 0x1c00707f;
2497pub const MATCH_VSUXEI32_V: u32 = 0x4006027;
2498pub const MASK_VSUXEI32_V: u32 = 0x1c00707f;
2499pub const MATCH_VSUXEI64_V: u32 = 0x4007027;
2500pub const MASK_VSUXEI64_V: u32 = 0x1c00707f;
2501pub const MATCH_VSUXEI8_V: u32 = 0x4000027;
2502pub const MASK_VSUXEI8_V: u32 = 0x1c00707f;
2503pub const MATCH_VWADD_VV: u32 = 0xc4002057;
2504pub const MASK_VWADD_VV: u32 = 0xfc00707f;
2505pub const MATCH_VWADD_VX: u32 = 0xc4006057;
2506pub const MASK_VWADD_VX: u32 = 0xfc00707f;
2507pub const MATCH_VWADD_WV: u32 = 0xd4002057;
2508pub const MASK_VWADD_WV: u32 = 0xfc00707f;
2509pub const MATCH_VWADD_WX: u32 = 0xd4006057;
2510pub const MASK_VWADD_WX: u32 = 0xfc00707f;
2511pub const MATCH_VWADDU_VV: u32 = 0xc0002057;
2512pub const MASK_VWADDU_VV: u32 = 0xfc00707f;
2513pub const MATCH_VWADDU_VX: u32 = 0xc0006057;
2514pub const MASK_VWADDU_VX: u32 = 0xfc00707f;
2515pub const MATCH_VWADDU_WV: u32 = 0xd0002057;
2516pub const MASK_VWADDU_WV: u32 = 0xfc00707f;
2517pub const MATCH_VWADDU_WX: u32 = 0xd0006057;
2518pub const MASK_VWADDU_WX: u32 = 0xfc00707f;
2519pub const MATCH_VWMACC_VV: u32 = 0xf4002057;
2520pub const MASK_VWMACC_VV: u32 = 0xfc00707f;
2521pub const MATCH_VWMACC_VX: u32 = 0xf4006057;
2522pub const MASK_VWMACC_VX: u32 = 0xfc00707f;
2523pub const MATCH_VWMACCSU_VV: u32 = 0xfc002057;
2524pub const MASK_VWMACCSU_VV: u32 = 0xfc00707f;
2525pub const MATCH_VWMACCSU_VX: u32 = 0xfc006057;
2526pub const MASK_VWMACCSU_VX: u32 = 0xfc00707f;
2527pub const MATCH_VWMACCU_VV: u32 = 0xf0002057;
2528pub const MASK_VWMACCU_VV: u32 = 0xfc00707f;
2529pub const MATCH_VWMACCU_VX: u32 = 0xf0006057;
2530pub const MASK_VWMACCU_VX: u32 = 0xfc00707f;
2531pub const MATCH_VWMACCUS_VX: u32 = 0xf8006057;
2532pub const MASK_VWMACCUS_VX: u32 = 0xfc00707f;
2533pub const MATCH_VWMUL_VV: u32 = 0xec002057;
2534pub const MASK_VWMUL_VV: u32 = 0xfc00707f;
2535pub const MATCH_VWMUL_VX: u32 = 0xec006057;
2536pub const MASK_VWMUL_VX: u32 = 0xfc00707f;
2537pub const MATCH_VWMULSU_VV: u32 = 0xe8002057;
2538pub const MASK_VWMULSU_VV: u32 = 0xfc00707f;
2539pub const MATCH_VWMULSU_VX: u32 = 0xe8006057;
2540pub const MASK_VWMULSU_VX: u32 = 0xfc00707f;
2541pub const MATCH_VWMULU_VV: u32 = 0xe0002057;
2542pub const MASK_VWMULU_VV: u32 = 0xfc00707f;
2543pub const MATCH_VWMULU_VX: u32 = 0xe0006057;
2544pub const MASK_VWMULU_VX: u32 = 0xfc00707f;
2545pub const MATCH_VWREDSUM_VS: u32 = 0xc4000057;
2546pub const MASK_VWREDSUM_VS: u32 = 0xfc00707f;
2547pub const MATCH_VWREDSUMU_VS: u32 = 0xc0000057;
2548pub const MASK_VWREDSUMU_VS: u32 = 0xfc00707f;
2549pub const MATCH_VWSLL_VI: u32 = 0xd4003057;
2550pub const MASK_VWSLL_VI: u32 = 0xfc00707f;
2551pub const MATCH_VWSLL_VV: u32 = 0xd4000057;
2552pub const MASK_VWSLL_VV: u32 = 0xfc00707f;
2553pub const MATCH_VWSLL_VX: u32 = 0xd4004057;
2554pub const MASK_VWSLL_VX: u32 = 0xfc00707f;
2555pub const MATCH_VWSUB_VV: u32 = 0xcc002057;
2556pub const MASK_VWSUB_VV: u32 = 0xfc00707f;
2557pub const MATCH_VWSUB_VX: u32 = 0xcc006057;
2558pub const MASK_VWSUB_VX: u32 = 0xfc00707f;
2559pub const MATCH_VWSUB_WV: u32 = 0xdc002057;
2560pub const MASK_VWSUB_WV: u32 = 0xfc00707f;
2561pub const MATCH_VWSUB_WX: u32 = 0xdc006057;
2562pub const MASK_VWSUB_WX: u32 = 0xfc00707f;
2563pub const MATCH_VWSUBU_VV: u32 = 0xc8002057;
2564pub const MASK_VWSUBU_VV: u32 = 0xfc00707f;
2565pub const MATCH_VWSUBU_VX: u32 = 0xc8006057;
2566pub const MASK_VWSUBU_VX: u32 = 0xfc00707f;
2567pub const MATCH_VWSUBU_WV: u32 = 0xd8002057;
2568pub const MASK_VWSUBU_WV: u32 = 0xfc00707f;
2569pub const MATCH_VWSUBU_WX: u32 = 0xd8006057;
2570pub const MASK_VWSUBU_WX: u32 = 0xfc00707f;
2571pub const MATCH_VXOR_VI: u32 = 0x2c003057;
2572pub const MASK_VXOR_VI: u32 = 0xfc00707f;
2573pub const MATCH_VXOR_VV: u32 = 0x2c000057;
2574pub const MASK_VXOR_VV: u32 = 0xfc00707f;
2575pub const MATCH_VXOR_VX: u32 = 0x2c004057;
2576pub const MASK_VXOR_VX: u32 = 0xfc00707f;
2577pub const MATCH_VZEXT_VF2: u32 = 0x48032057;
2578pub const MASK_VZEXT_VF2: u32 = 0xfc0ff07f;
2579pub const MATCH_VZEXT_VF4: u32 = 0x48022057;
2580pub const MASK_VZEXT_VF4: u32 = 0xfc0ff07f;
2581pub const MATCH_VZEXT_VF8: u32 = 0x48012057;
2582pub const MASK_VZEXT_VF8: u32 = 0xfc0ff07f;
2583pub const MATCH_WFI: u32 = 0x10500073;
2584pub const MASK_WFI: u32 = 0xffffffff;
2585pub const MATCH_WRS_NTO: u32 = 0xd00073;
2586pub const MASK_WRS_NTO: u32 = 0xffffffff;
2587pub const MATCH_WRS_STO: u32 = 0x1d00073;
2588pub const MASK_WRS_STO: u32 = 0xffffffff;
2589pub const MATCH_XNOR: u32 = 0x40004033;
2590pub const MASK_XNOR: u32 = 0xfe00707f;
2591pub const MATCH_XOR: u32 = 0x4033;
2592pub const MASK_XOR: u32 = 0xfe00707f;
2593pub const MATCH_XORI: u32 = 0x4013;
2594pub const MASK_XORI: u32 = 0x707f;
2595pub const MATCH_XPERM4: u32 = 0x28002033;
2596pub const MASK_XPERM4: u32 = 0xfe00707f;
2597pub const MATCH_XPERM8: u32 = 0x28004033;
2598pub const MASK_XPERM8: u32 = 0xfe00707f;
2599pub const MATCH_ZEXT_B: u32 = 0x7013;
2600pub const MASK_ZEXT_B: u32 = 0xfff0707f;
2601pub const MATCH_ZEXT_H: u32 = 0x800403b;
2602pub const MASK_ZEXT_H: u32 = 0xfff0707f;
2603pub const MATCH_ZEXT_H_RV32: u32 = 0x8004033;
2604pub const MASK_ZEXT_H_RV32: u32 = 0xfff0707f;
2605pub const MATCH_ZEXT_W: u32 = 0x800003b;
2606pub const MASK_ZEXT_W: u32 = 0xfff0707f;
2607pub const MATCH_ZIP: u32 = 0x8f01013;
2608pub const MASK_ZIP: u32 = 0xfff0707f;
2609pub const CSR_FFLAGS: u16 = 0x1;
2610pub const CSR_FRM: u16 = 0x2;
2611pub const CSR_FCSR: u16 = 0x3;
2612pub const CSR_VSTART: u16 = 0x8;
2613pub const CSR_VXSAT: u16 = 0x9;
2614pub const CSR_VXRM: u16 = 0xa;
2615pub const CSR_VCSR: u16 = 0xf;
2616pub const CSR_SSP: u16 = 0x11;
2617pub const CSR_SEED: u16 = 0x15;
2618pub const CSR_JVT: u16 = 0x17;
2619pub const CSR_CYCLE: u16 = 0xc00;
2620pub const CSR_TIME: u16 = 0xc01;
2621pub const CSR_INSTRET: u16 = 0xc02;
2622pub const CSR_HPMCOUNTER3: u16 = 0xc03;
2623pub const CSR_HPMCOUNTER4: u16 = 0xc04;
2624pub const CSR_HPMCOUNTER5: u16 = 0xc05;
2625pub const CSR_HPMCOUNTER6: u16 = 0xc06;
2626pub const CSR_HPMCOUNTER7: u16 = 0xc07;
2627pub const CSR_HPMCOUNTER8: u16 = 0xc08;
2628pub const CSR_HPMCOUNTER9: u16 = 0xc09;
2629pub const CSR_HPMCOUNTER10: u16 = 0xc0a;
2630pub const CSR_HPMCOUNTER11: u16 = 0xc0b;
2631pub const CSR_HPMCOUNTER12: u16 = 0xc0c;
2632pub const CSR_HPMCOUNTER13: u16 = 0xc0d;
2633pub const CSR_HPMCOUNTER14: u16 = 0xc0e;
2634pub const CSR_HPMCOUNTER15: u16 = 0xc0f;
2635pub const CSR_HPMCOUNTER16: u16 = 0xc10;
2636pub const CSR_HPMCOUNTER17: u16 = 0xc11;
2637pub const CSR_HPMCOUNTER18: u16 = 0xc12;
2638pub const CSR_HPMCOUNTER19: u16 = 0xc13;
2639pub const CSR_HPMCOUNTER20: u16 = 0xc14;
2640pub const CSR_HPMCOUNTER21: u16 = 0xc15;
2641pub const CSR_HPMCOUNTER22: u16 = 0xc16;
2642pub const CSR_HPMCOUNTER23: u16 = 0xc17;
2643pub const CSR_HPMCOUNTER24: u16 = 0xc18;
2644pub const CSR_HPMCOUNTER25: u16 = 0xc19;
2645pub const CSR_HPMCOUNTER26: u16 = 0xc1a;
2646pub const CSR_HPMCOUNTER27: u16 = 0xc1b;
2647pub const CSR_HPMCOUNTER28: u16 = 0xc1c;
2648pub const CSR_HPMCOUNTER29: u16 = 0xc1d;
2649pub const CSR_HPMCOUNTER30: u16 = 0xc1e;
2650pub const CSR_HPMCOUNTER31: u16 = 0xc1f;
2651pub const CSR_VL: u16 = 0xc20;
2652pub const CSR_VTYPE: u16 = 0xc21;
2653pub const CSR_VLENB: u16 = 0xc22;
2654pub const CSR_SSTATUS: u16 = 0x100;
2655pub const CSR_SEDELEG: u16 = 0x102;
2656pub const CSR_SIDELEG: u16 = 0x103;
2657pub const CSR_SIE: u16 = 0x104;
2658pub const CSR_STVEC: u16 = 0x105;
2659pub const CSR_SCOUNTEREN: u16 = 0x106;
2660pub const CSR_SENVCFG: u16 = 0x10a;
2661pub const CSR_SSTATEEN0: u16 = 0x10c;
2662pub const CSR_SSTATEEN1: u16 = 0x10d;
2663pub const CSR_SSTATEEN2: u16 = 0x10e;
2664pub const CSR_SSTATEEN3: u16 = 0x10f;
2665pub const CSR_SCOUNTINHIBIT: u16 = 0x120;
2666pub const CSR_SSCRATCH: u16 = 0x140;
2667pub const CSR_SEPC: u16 = 0x141;
2668pub const CSR_SCAUSE: u16 = 0x142;
2669pub const CSR_STVAL: u16 = 0x143;
2670pub const CSR_SIP: u16 = 0x144;
2671pub const CSR_STIMECMP: u16 = 0x14d;
2672pub const CSR_SCTRCTL: u16 = 0x14e;
2673pub const CSR_SCTRSTATUS: u16 = 0x14f;
2674pub const CSR_SISELECT: u16 = 0x150;
2675pub const CSR_SIREG: u16 = 0x151;
2676pub const CSR_SIREG2: u16 = 0x152;
2677pub const CSR_SIREG3: u16 = 0x153;
2678pub const CSR_SIREG4: u16 = 0x155;
2679pub const CSR_SIREG5: u16 = 0x156;
2680pub const CSR_SIREG6: u16 = 0x157;
2681pub const CSR_STOPEI: u16 = 0x15c;
2682pub const CSR_SCTRDEPTH: u16 = 0x15f;
2683pub const CSR_SATP: u16 = 0x180;
2684pub const CSR_SRMCFG: u16 = 0x181;
2685pub const CSR_SCONTEXT: u16 = 0x5a8;
2686pub const CSR_VSSTATUS: u16 = 0x200;
2687pub const CSR_VSIE: u16 = 0x204;
2688pub const CSR_VSTVEC: u16 = 0x205;
2689pub const CSR_VSSCRATCH: u16 = 0x240;
2690pub const CSR_VSEPC: u16 = 0x241;
2691pub const CSR_VSCAUSE: u16 = 0x242;
2692pub const CSR_VSTVAL: u16 = 0x243;
2693pub const CSR_VSIP: u16 = 0x244;
2694pub const CSR_VSTIMECMP: u16 = 0x24d;
2695pub const CSR_VSCTRCTL: u16 = 0x24e;
2696pub const CSR_VSISELECT: u16 = 0x250;
2697pub const CSR_VSIREG: u16 = 0x251;
2698pub const CSR_VSIREG2: u16 = 0x252;
2699pub const CSR_VSIREG3: u16 = 0x253;
2700pub const CSR_VSIREG4: u16 = 0x255;
2701pub const CSR_VSIREG5: u16 = 0x256;
2702pub const CSR_VSIREG6: u16 = 0x257;
2703pub const CSR_VSTOPEI: u16 = 0x25c;
2704pub const CSR_VSATP: u16 = 0x280;
2705pub const CSR_HSTATUS: u16 = 0x600;
2706pub const CSR_HEDELEG: u16 = 0x602;
2707pub const CSR_HIDELEG: u16 = 0x603;
2708pub const CSR_HIE: u16 = 0x604;
2709pub const CSR_HTIMEDELTA: u16 = 0x605;
2710pub const CSR_HCOUNTEREN: u16 = 0x606;
2711pub const CSR_HGEIE: u16 = 0x607;
2712pub const CSR_HVIEN: u16 = 0x608;
2713pub const CSR_HVICTL: u16 = 0x609;
2714pub const CSR_HENVCFG: u16 = 0x60a;
2715pub const CSR_HSTATEEN0: u16 = 0x60c;
2716pub const CSR_HSTATEEN1: u16 = 0x60d;
2717pub const CSR_HSTATEEN2: u16 = 0x60e;
2718pub const CSR_HSTATEEN3: u16 = 0x60f;
2719pub const CSR_HTVAL: u16 = 0x643;
2720pub const CSR_HIP: u16 = 0x644;
2721pub const CSR_HVIP: u16 = 0x645;
2722pub const CSR_HVIPRIO1: u16 = 0x646;
2723pub const CSR_HVIPRIO2: u16 = 0x647;
2724pub const CSR_HTINST: u16 = 0x64a;
2725pub const CSR_HGATP: u16 = 0x680;
2726pub const CSR_HCONTEXT: u16 = 0x6a8;
2727pub const CSR_HGEIP: u16 = 0xe12;
2728pub const CSR_VSTOPI: u16 = 0xeb0;
2729pub const CSR_SCOUNTOVF: u16 = 0xda0;
2730pub const CSR_STOPI: u16 = 0xdb0;
2731pub const CSR_UTVT: u16 = 0x7;
2732pub const CSR_UNXTI: u16 = 0x45;
2733pub const CSR_UINTSTATUS: u16 = 0x46;
2734pub const CSR_USCRATCHCSW: u16 = 0x48;
2735pub const CSR_USCRATCHCSWL: u16 = 0x49;
2736pub const CSR_STVT: u16 = 0x107;
2737pub const CSR_SNXTI: u16 = 0x145;
2738pub const CSR_SINTSTATUS: u16 = 0x146;
2739pub const CSR_SSCRATCHCSW: u16 = 0x148;
2740pub const CSR_SSCRATCHCSWL: u16 = 0x149;
2741pub const CSR_MTVT: u16 = 0x307;
2742pub const CSR_MNXTI: u16 = 0x345;
2743pub const CSR_MINTSTATUS: u16 = 0x346;
2744pub const CSR_MSCRATCHCSW: u16 = 0x348;
2745pub const CSR_MSCRATCHCSWL: u16 = 0x349;
2746pub const CSR_MSTATUS: u16 = 0x300;
2747pub const CSR_MISA: u16 = 0x301;
2748pub const CSR_MEDELEG: u16 = 0x302;
2749pub const CSR_MIDELEG: u16 = 0x303;
2750pub const CSR_MIE: u16 = 0x304;
2751pub const CSR_MTVEC: u16 = 0x305;
2752pub const CSR_MCOUNTEREN: u16 = 0x306;
2753pub const CSR_MVIEN: u16 = 0x308;
2754pub const CSR_MVIP: u16 = 0x309;
2755pub const CSR_MENVCFG: u16 = 0x30a;
2756pub const CSR_MSTATEEN0: u16 = 0x30c;
2757pub const CSR_MSTATEEN1: u16 = 0x30d;
2758pub const CSR_MSTATEEN2: u16 = 0x30e;
2759pub const CSR_MSTATEEN3: u16 = 0x30f;
2760pub const CSR_MCOUNTINHIBIT: u16 = 0x320;
2761pub const CSR_MSCRATCH: u16 = 0x340;
2762pub const CSR_MEPC: u16 = 0x341;
2763pub const CSR_MCAUSE: u16 = 0x342;
2764pub const CSR_MTVAL: u16 = 0x343;
2765pub const CSR_MIP: u16 = 0x344;
2766pub const CSR_MTINST: u16 = 0x34a;
2767pub const CSR_MTVAL2: u16 = 0x34b;
2768pub const CSR_MCTRCTL: u16 = 0x34e;
2769pub const CSR_MISELECT: u16 = 0x350;
2770pub const CSR_MIREG: u16 = 0x351;
2771pub const CSR_MIREG2: u16 = 0x352;
2772pub const CSR_MIREG3: u16 = 0x353;
2773pub const CSR_MIREG4: u16 = 0x355;
2774pub const CSR_MIREG5: u16 = 0x356;
2775pub const CSR_MIREG6: u16 = 0x357;
2776pub const CSR_MTOPEI: u16 = 0x35c;
2777pub const CSR_PMPCFG0: u16 = 0x3a0;
2778pub const CSR_PMPCFG1: u16 = 0x3a1;
2779pub const CSR_PMPCFG2: u16 = 0x3a2;
2780pub const CSR_PMPCFG3: u16 = 0x3a3;
2781pub const CSR_PMPCFG4: u16 = 0x3a4;
2782pub const CSR_PMPCFG5: u16 = 0x3a5;
2783pub const CSR_PMPCFG6: u16 = 0x3a6;
2784pub const CSR_PMPCFG7: u16 = 0x3a7;
2785pub const CSR_PMPCFG8: u16 = 0x3a8;
2786pub const CSR_PMPCFG9: u16 = 0x3a9;
2787pub const CSR_PMPCFG10: u16 = 0x3aa;
2788pub const CSR_PMPCFG11: u16 = 0x3ab;
2789pub const CSR_PMPCFG12: u16 = 0x3ac;
2790pub const CSR_PMPCFG13: u16 = 0x3ad;
2791pub const CSR_PMPCFG14: u16 = 0x3ae;
2792pub const CSR_PMPCFG15: u16 = 0x3af;
2793pub const CSR_PMPADDR0: u16 = 0x3b0;
2794pub const CSR_PMPADDR1: u16 = 0x3b1;
2795pub const CSR_PMPADDR2: u16 = 0x3b2;
2796pub const CSR_PMPADDR3: u16 = 0x3b3;
2797pub const CSR_PMPADDR4: u16 = 0x3b4;
2798pub const CSR_PMPADDR5: u16 = 0x3b5;
2799pub const CSR_PMPADDR6: u16 = 0x3b6;
2800pub const CSR_PMPADDR7: u16 = 0x3b7;
2801pub const CSR_PMPADDR8: u16 = 0x3b8;
2802pub const CSR_PMPADDR9: u16 = 0x3b9;
2803pub const CSR_PMPADDR10: u16 = 0x3ba;
2804pub const CSR_PMPADDR11: u16 = 0x3bb;
2805pub const CSR_PMPADDR12: u16 = 0x3bc;
2806pub const CSR_PMPADDR13: u16 = 0x3bd;
2807pub const CSR_PMPADDR14: u16 = 0x3be;
2808pub const CSR_PMPADDR15: u16 = 0x3bf;
2809pub const CSR_PMPADDR16: u16 = 0x3c0;
2810pub const CSR_PMPADDR17: u16 = 0x3c1;
2811pub const CSR_PMPADDR18: u16 = 0x3c2;
2812pub const CSR_PMPADDR19: u16 = 0x3c3;
2813pub const CSR_PMPADDR20: u16 = 0x3c4;
2814pub const CSR_PMPADDR21: u16 = 0x3c5;
2815pub const CSR_PMPADDR22: u16 = 0x3c6;
2816pub const CSR_PMPADDR23: u16 = 0x3c7;
2817pub const CSR_PMPADDR24: u16 = 0x3c8;
2818pub const CSR_PMPADDR25: u16 = 0x3c9;
2819pub const CSR_PMPADDR26: u16 = 0x3ca;
2820pub const CSR_PMPADDR27: u16 = 0x3cb;
2821pub const CSR_PMPADDR28: u16 = 0x3cc;
2822pub const CSR_PMPADDR29: u16 = 0x3cd;
2823pub const CSR_PMPADDR30: u16 = 0x3ce;
2824pub const CSR_PMPADDR31: u16 = 0x3cf;
2825pub const CSR_PMPADDR32: u16 = 0x3d0;
2826pub const CSR_PMPADDR33: u16 = 0x3d1;
2827pub const CSR_PMPADDR34: u16 = 0x3d2;
2828pub const CSR_PMPADDR35: u16 = 0x3d3;
2829pub const CSR_PMPADDR36: u16 = 0x3d4;
2830pub const CSR_PMPADDR37: u16 = 0x3d5;
2831pub const CSR_PMPADDR38: u16 = 0x3d6;
2832pub const CSR_PMPADDR39: u16 = 0x3d7;
2833pub const CSR_PMPADDR40: u16 = 0x3d8;
2834pub const CSR_PMPADDR41: u16 = 0x3d9;
2835pub const CSR_PMPADDR42: u16 = 0x3da;
2836pub const CSR_PMPADDR43: u16 = 0x3db;
2837pub const CSR_PMPADDR44: u16 = 0x3dc;
2838pub const CSR_PMPADDR45: u16 = 0x3dd;
2839pub const CSR_PMPADDR46: u16 = 0x3de;
2840pub const CSR_PMPADDR47: u16 = 0x3df;
2841pub const CSR_PMPADDR48: u16 = 0x3e0;
2842pub const CSR_PMPADDR49: u16 = 0x3e1;
2843pub const CSR_PMPADDR50: u16 = 0x3e2;
2844pub const CSR_PMPADDR51: u16 = 0x3e3;
2845pub const CSR_PMPADDR52: u16 = 0x3e4;
2846pub const CSR_PMPADDR53: u16 = 0x3e5;
2847pub const CSR_PMPADDR54: u16 = 0x3e6;
2848pub const CSR_PMPADDR55: u16 = 0x3e7;
2849pub const CSR_PMPADDR56: u16 = 0x3e8;
2850pub const CSR_PMPADDR57: u16 = 0x3e9;
2851pub const CSR_PMPADDR58: u16 = 0x3ea;
2852pub const CSR_PMPADDR59: u16 = 0x3eb;
2853pub const CSR_PMPADDR60: u16 = 0x3ec;
2854pub const CSR_PMPADDR61: u16 = 0x3ed;
2855pub const CSR_PMPADDR62: u16 = 0x3ee;
2856pub const CSR_PMPADDR63: u16 = 0x3ef;
2857pub const CSR_MSECCFG: u16 = 0x747;
2858pub const CSR_TSELECT: u16 = 0x7a0;
2859pub const CSR_TDATA1: u16 = 0x7a1;
2860pub const CSR_TDATA2: u16 = 0x7a2;
2861pub const CSR_TDATA3: u16 = 0x7a3;
2862pub const CSR_TINFO: u16 = 0x7a4;
2863pub const CSR_TCONTROL: u16 = 0x7a5;
2864pub const CSR_MCONTEXT: u16 = 0x7a8;
2865pub const CSR_MSCONTEXT: u16 = 0x7aa;
2866pub const CSR_DCSR: u16 = 0x7b0;
2867pub const CSR_DPC: u16 = 0x7b1;
2868pub const CSR_DSCRATCH0: u16 = 0x7b2;
2869pub const CSR_DSCRATCH1: u16 = 0x7b3;
2870pub const CSR_MCYCLE: u16 = 0xb00;
2871pub const CSR_MINSTRET: u16 = 0xb02;
2872pub const CSR_MHPMCOUNTER3: u16 = 0xb03;
2873pub const CSR_MHPMCOUNTER4: u16 = 0xb04;
2874pub const CSR_MHPMCOUNTER5: u16 = 0xb05;
2875pub const CSR_MHPMCOUNTER6: u16 = 0xb06;
2876pub const CSR_MHPMCOUNTER7: u16 = 0xb07;
2877pub const CSR_MHPMCOUNTER8: u16 = 0xb08;
2878pub const CSR_MHPMCOUNTER9: u16 = 0xb09;
2879pub const CSR_MHPMCOUNTER10: u16 = 0xb0a;
2880pub const CSR_MHPMCOUNTER11: u16 = 0xb0b;
2881pub const CSR_MHPMCOUNTER12: u16 = 0xb0c;
2882pub const CSR_MHPMCOUNTER13: u16 = 0xb0d;
2883pub const CSR_MHPMCOUNTER14: u16 = 0xb0e;
2884pub const CSR_MHPMCOUNTER15: u16 = 0xb0f;
2885pub const CSR_MHPMCOUNTER16: u16 = 0xb10;
2886pub const CSR_MHPMCOUNTER17: u16 = 0xb11;
2887pub const CSR_MHPMCOUNTER18: u16 = 0xb12;
2888pub const CSR_MHPMCOUNTER19: u16 = 0xb13;
2889pub const CSR_MHPMCOUNTER20: u16 = 0xb14;
2890pub const CSR_MHPMCOUNTER21: u16 = 0xb15;
2891pub const CSR_MHPMCOUNTER22: u16 = 0xb16;
2892pub const CSR_MHPMCOUNTER23: u16 = 0xb17;
2893pub const CSR_MHPMCOUNTER24: u16 = 0xb18;
2894pub const CSR_MHPMCOUNTER25: u16 = 0xb19;
2895pub const CSR_MHPMCOUNTER26: u16 = 0xb1a;
2896pub const CSR_MHPMCOUNTER27: u16 = 0xb1b;
2897pub const CSR_MHPMCOUNTER28: u16 = 0xb1c;
2898pub const CSR_MHPMCOUNTER29: u16 = 0xb1d;
2899pub const CSR_MHPMCOUNTER30: u16 = 0xb1e;
2900pub const CSR_MHPMCOUNTER31: u16 = 0xb1f;
2901pub const CSR_MCYCLECFG: u16 = 0x321;
2902pub const CSR_MINSTRETCFG: u16 = 0x322;
2903pub const CSR_MHPMEVENT3: u16 = 0x323;
2904pub const CSR_MHPMEVENT4: u16 = 0x324;
2905pub const CSR_MHPMEVENT5: u16 = 0x325;
2906pub const CSR_MHPMEVENT6: u16 = 0x326;
2907pub const CSR_MHPMEVENT7: u16 = 0x327;
2908pub const CSR_MHPMEVENT8: u16 = 0x328;
2909pub const CSR_MHPMEVENT9: u16 = 0x329;
2910pub const CSR_MHPMEVENT10: u16 = 0x32a;
2911pub const CSR_MHPMEVENT11: u16 = 0x32b;
2912pub const CSR_MHPMEVENT12: u16 = 0x32c;
2913pub const CSR_MHPMEVENT13: u16 = 0x32d;
2914pub const CSR_MHPMEVENT14: u16 = 0x32e;
2915pub const CSR_MHPMEVENT15: u16 = 0x32f;
2916pub const CSR_MHPMEVENT16: u16 = 0x330;
2917pub const CSR_MHPMEVENT17: u16 = 0x331;
2918pub const CSR_MHPMEVENT18: u16 = 0x332;
2919pub const CSR_MHPMEVENT19: u16 = 0x333;
2920pub const CSR_MHPMEVENT20: u16 = 0x334;
2921pub const CSR_MHPMEVENT21: u16 = 0x335;
2922pub const CSR_MHPMEVENT22: u16 = 0x336;
2923pub const CSR_MHPMEVENT23: u16 = 0x337;
2924pub const CSR_MHPMEVENT24: u16 = 0x338;
2925pub const CSR_MHPMEVENT25: u16 = 0x339;
2926pub const CSR_MHPMEVENT26: u16 = 0x33a;
2927pub const CSR_MHPMEVENT27: u16 = 0x33b;
2928pub const CSR_MHPMEVENT28: u16 = 0x33c;
2929pub const CSR_MHPMEVENT29: u16 = 0x33d;
2930pub const CSR_MHPMEVENT30: u16 = 0x33e;
2931pub const CSR_MHPMEVENT31: u16 = 0x33f;
2932pub const CSR_MVENDORID: u16 = 0xf11;
2933pub const CSR_MARCHID: u16 = 0xf12;
2934pub const CSR_MIMPID: u16 = 0xf13;
2935pub const CSR_MHARTID: u16 = 0xf14;
2936pub const CSR_MCONFIGPTR: u16 = 0xf15;
2937pub const CSR_MTOPI: u16 = 0xfb0;
2938pub const CSR_SIEH: u16 = 0x114;
2939pub const CSR_SIPH: u16 = 0x154;
2940pub const CSR_STIMECMPH: u16 = 0x15d;
2941pub const CSR_VSIEH: u16 = 0x214;
2942pub const CSR_VSIPH: u16 = 0x254;
2943pub const CSR_VSTIMECMPH: u16 = 0x25d;
2944pub const CSR_HTIMEDELTAH: u16 = 0x615;
2945pub const CSR_HIDELEGH: u16 = 0x613;
2946pub const CSR_HVIENH: u16 = 0x618;
2947pub const CSR_HENVCFGH: u16 = 0x61a;
2948pub const CSR_HVIPH: u16 = 0x655;
2949pub const CSR_HVIPRIO1H: u16 = 0x656;
2950pub const CSR_HVIPRIO2H: u16 = 0x657;
2951pub const CSR_HSTATEEN0H: u16 = 0x61c;
2952pub const CSR_HSTATEEN1H: u16 = 0x61d;
2953pub const CSR_HSTATEEN2H: u16 = 0x61e;
2954pub const CSR_HSTATEEN3H: u16 = 0x61f;
2955pub const CSR_CYCLEH: u16 = 0xc80;
2956pub const CSR_TIMEH: u16 = 0xc81;
2957pub const CSR_INSTRETH: u16 = 0xc82;
2958pub const CSR_HPMCOUNTER3H: u16 = 0xc83;
2959pub const CSR_HPMCOUNTER4H: u16 = 0xc84;
2960pub const CSR_HPMCOUNTER5H: u16 = 0xc85;
2961pub const CSR_HPMCOUNTER6H: u16 = 0xc86;
2962pub const CSR_HPMCOUNTER7H: u16 = 0xc87;
2963pub const CSR_HPMCOUNTER8H: u16 = 0xc88;
2964pub const CSR_HPMCOUNTER9H: u16 = 0xc89;
2965pub const CSR_HPMCOUNTER10H: u16 = 0xc8a;
2966pub const CSR_HPMCOUNTER11H: u16 = 0xc8b;
2967pub const CSR_HPMCOUNTER12H: u16 = 0xc8c;
2968pub const CSR_HPMCOUNTER13H: u16 = 0xc8d;
2969pub const CSR_HPMCOUNTER14H: u16 = 0xc8e;
2970pub const CSR_HPMCOUNTER15H: u16 = 0xc8f;
2971pub const CSR_HPMCOUNTER16H: u16 = 0xc90;
2972pub const CSR_HPMCOUNTER17H: u16 = 0xc91;
2973pub const CSR_HPMCOUNTER18H: u16 = 0xc92;
2974pub const CSR_HPMCOUNTER19H: u16 = 0xc93;
2975pub const CSR_HPMCOUNTER20H: u16 = 0xc94;
2976pub const CSR_HPMCOUNTER21H: u16 = 0xc95;
2977pub const CSR_HPMCOUNTER22H: u16 = 0xc96;
2978pub const CSR_HPMCOUNTER23H: u16 = 0xc97;
2979pub const CSR_HPMCOUNTER24H: u16 = 0xc98;
2980pub const CSR_HPMCOUNTER25H: u16 = 0xc99;
2981pub const CSR_HPMCOUNTER26H: u16 = 0xc9a;
2982pub const CSR_HPMCOUNTER27H: u16 = 0xc9b;
2983pub const CSR_HPMCOUNTER28H: u16 = 0xc9c;
2984pub const CSR_HPMCOUNTER29H: u16 = 0xc9d;
2985pub const CSR_HPMCOUNTER30H: u16 = 0xc9e;
2986pub const CSR_HPMCOUNTER31H: u16 = 0xc9f;
2987pub const CSR_MSTATUSH: u16 = 0x310;
2988pub const CSR_MIDELEGH: u16 = 0x313;
2989pub const CSR_MIEH: u16 = 0x314;
2990pub const CSR_MVIENH: u16 = 0x318;
2991pub const CSR_MVIPH: u16 = 0x319;
2992pub const CSR_MENVCFGH: u16 = 0x31a;
2993pub const CSR_MSTATEEN0H: u16 = 0x31c;
2994pub const CSR_MSTATEEN1H: u16 = 0x31d;
2995pub const CSR_MSTATEEN2H: u16 = 0x31e;
2996pub const CSR_MSTATEEN3H: u16 = 0x31f;
2997pub const CSR_MIPH: u16 = 0x354;
2998pub const CSR_MCYCLECFGH: u16 = 0x721;
2999pub const CSR_MINSTRETCFGH: u16 = 0x722;
3000pub const CSR_MHPMEVENT3H: u16 = 0x723;
3001pub const CSR_MHPMEVENT4H: u16 = 0x724;
3002pub const CSR_MHPMEVENT5H: u16 = 0x725;
3003pub const CSR_MHPMEVENT6H: u16 = 0x726;
3004pub const CSR_MHPMEVENT7H: u16 = 0x727;
3005pub const CSR_MHPMEVENT8H: u16 = 0x728;
3006pub const CSR_MHPMEVENT9H: u16 = 0x729;
3007pub const CSR_MHPMEVENT10H: u16 = 0x72a;
3008pub const CSR_MHPMEVENT11H: u16 = 0x72b;
3009pub const CSR_MHPMEVENT12H: u16 = 0x72c;
3010pub const CSR_MHPMEVENT13H: u16 = 0x72d;
3011pub const CSR_MHPMEVENT14H: u16 = 0x72e;
3012pub const CSR_MHPMEVENT15H: u16 = 0x72f;
3013pub const CSR_MHPMEVENT16H: u16 = 0x730;
3014pub const CSR_MHPMEVENT17H: u16 = 0x731;
3015pub const CSR_MHPMEVENT18H: u16 = 0x732;
3016pub const CSR_MHPMEVENT19H: u16 = 0x733;
3017pub const CSR_MHPMEVENT20H: u16 = 0x734;
3018pub const CSR_MHPMEVENT21H: u16 = 0x735;
3019pub const CSR_MHPMEVENT22H: u16 = 0x736;
3020pub const CSR_MHPMEVENT23H: u16 = 0x737;
3021pub const CSR_MHPMEVENT24H: u16 = 0x738;
3022pub const CSR_MHPMEVENT25H: u16 = 0x739;
3023pub const CSR_MHPMEVENT26H: u16 = 0x73a;
3024pub const CSR_MHPMEVENT27H: u16 = 0x73b;
3025pub const CSR_MHPMEVENT28H: u16 = 0x73c;
3026pub const CSR_MHPMEVENT29H: u16 = 0x73d;
3027pub const CSR_MHPMEVENT30H: u16 = 0x73e;
3028pub const CSR_MHPMEVENT31H: u16 = 0x73f;
3029pub const CSR_MNSCRATCH: u16 = 0x740;
3030pub const CSR_MNEPC: u16 = 0x741;
3031pub const CSR_MNCAUSE: u16 = 0x742;
3032pub const CSR_MNSTATUS: u16 = 0x744;
3033pub const CSR_MSECCFGH: u16 = 0x757;
3034pub const CSR_MCYCLEH: u16 = 0xb80;
3035pub const CSR_MINSTRETH: u16 = 0xb82;
3036pub const CSR_MHPMCOUNTER3H: u16 = 0xb83;
3037pub const CSR_MHPMCOUNTER4H: u16 = 0xb84;
3038pub const CSR_MHPMCOUNTER5H: u16 = 0xb85;
3039pub const CSR_MHPMCOUNTER6H: u16 = 0xb86;
3040pub const CSR_MHPMCOUNTER7H: u16 = 0xb87;
3041pub const CSR_MHPMCOUNTER8H: u16 = 0xb88;
3042pub const CSR_MHPMCOUNTER9H: u16 = 0xb89;
3043pub const CSR_MHPMCOUNTER10H: u16 = 0xb8a;
3044pub const CSR_MHPMCOUNTER11H: u16 = 0xb8b;
3045pub const CSR_MHPMCOUNTER12H: u16 = 0xb8c;
3046pub const CSR_MHPMCOUNTER13H: u16 = 0xb8d;
3047pub const CSR_MHPMCOUNTER14H: u16 = 0xb8e;
3048pub const CSR_MHPMCOUNTER15H: u16 = 0xb8f;
3049pub const CSR_MHPMCOUNTER16H: u16 = 0xb90;
3050pub const CSR_MHPMCOUNTER17H: u16 = 0xb91;
3051pub const CSR_MHPMCOUNTER18H: u16 = 0xb92;
3052pub const CSR_MHPMCOUNTER19H: u16 = 0xb93;
3053pub const CSR_MHPMCOUNTER20H: u16 = 0xb94;
3054pub const CSR_MHPMCOUNTER21H: u16 = 0xb95;
3055pub const CSR_MHPMCOUNTER22H: u16 = 0xb96;
3056pub const CSR_MHPMCOUNTER23H: u16 = 0xb97;
3057pub const CSR_MHPMCOUNTER24H: u16 = 0xb98;
3058pub const CSR_MHPMCOUNTER25H: u16 = 0xb99;
3059pub const CSR_MHPMCOUNTER26H: u16 = 0xb9a;
3060pub const CSR_MHPMCOUNTER27H: u16 = 0xb9b;
3061pub const CSR_MHPMCOUNTER28H: u16 = 0xb9c;
3062pub const CSR_MHPMCOUNTER29H: u16 = 0xb9d;
3063pub const CSR_MHPMCOUNTER30H: u16 = 0xb9e;
3064pub const CSR_MHPMCOUNTER31H: u16 = 0xb9f;
3065pub const CAUSE_MISALIGNED_FETCH: u8 = 0x0;
3066pub const CAUSE_FETCH_ACCESS: u8 = 0x1;
3067pub const CAUSE_ILLEGAL_INSTRUCTION: u8 = 0x2;
3068pub const CAUSE_BREAKPOINT: u8 = 0x3;
3069pub const CAUSE_MISALIGNED_LOAD: u8 = 0x4;
3070pub const CAUSE_LOAD_ACCESS: u8 = 0x5;
3071pub const CAUSE_MISALIGNED_STORE: u8 = 0x6;
3072pub const CAUSE_STORE_ACCESS: u8 = 0x7;
3073pub const CAUSE_USER_ECALL: u8 = 0x8;
3074pub const CAUSE_SUPERVISOR_ECALL: u8 = 0x9;
3075pub const CAUSE_VIRTUAL_SUPERVISOR_ECALL: u8 = 0xa;
3076pub const CAUSE_MACHINE_ECALL: u8 = 0xb;
3077pub const CAUSE_FETCH_PAGE_FAULT: u8 = 0xc;
3078pub const CAUSE_LOAD_PAGE_FAULT: u8 = 0xd;
3079pub const CAUSE_STORE_PAGE_FAULT: u8 = 0xf;
3080pub const CAUSE_DOUBLE_TRAP: u8 = 0x10;
3081pub const CAUSE_SOFTWARE_CHECK_FAULT: u8 = 0x12;
3082pub const CAUSE_HARDWARE_ERROR_FAULT: u8 = 0x13;
3083pub const CAUSE_FETCH_GUEST_PAGE_FAULT: u8 = 0x14;
3084pub const CAUSE_LOAD_GUEST_PAGE_FAULT: u8 = 0x15;
3085pub const CAUSE_VIRTUAL_INSTRUCTION: u8 = 0x16;
3086pub const CAUSE_STORE_GUEST_PAGE_FAULT: u8 = 0x17;
3087pub static OPCODE32_MATCH: [u32; 1021] = [
3088    0x33,        /* add */
3089    0xffff_ffff, /* add_uw */
3090    0x13,        /* addi */
3091    0xffff_ffff, /* addiw */
3092    0xffff_ffff, /* addw */
3093    0x2a000033,  /* aes32dsi */
3094    0x2e000033,  /* aes32dsmi */
3095    0x22000033,  /* aes32esi */
3096    0x26000033,  /* aes32esmi */
3097    0xffff_ffff, /* aes64ds */
3098    0xffff_ffff, /* aes64dsm */
3099    0xffff_ffff, /* aes64es */
3100    0xffff_ffff, /* aes64esm */
3101    0xffff_ffff, /* aes64im */
3102    0xffff_ffff, /* aes64ks1i */
3103    0xffff_ffff, /* aes64ks2 */
3104    0x2f,        /* amoadd_b */
3105    0xffff_ffff, /* amoadd_d */
3106    0x102f,      /* amoadd_h */
3107    0x202f,      /* amoadd_w */
3108    0x6000002f,  /* amoand_b */
3109    0xffff_ffff, /* amoand_d */
3110    0x6000102f,  /* amoand_h */
3111    0x6000202f,  /* amoand_w */
3112    0x2800002f,  /* amocas_b */
3113    0x2800302f,  /* amocas_d */
3114    0x2800102f,  /* amocas_h */
3115    0xffff_ffff, /* amocas_q */
3116    0x2800202f,  /* amocas_w */
3117    0xa000002f,  /* amomax_b */
3118    0xffff_ffff, /* amomax_d */
3119    0xa000102f,  /* amomax_h */
3120    0xa000202f,  /* amomax_w */
3121    0xe000002f,  /* amomaxu_b */
3122    0xffff_ffff, /* amomaxu_d */
3123    0xe000102f,  /* amomaxu_h */
3124    0xe000202f,  /* amomaxu_w */
3125    0x8000002f,  /* amomin_b */
3126    0xffff_ffff, /* amomin_d */
3127    0x8000102f,  /* amomin_h */
3128    0x8000202f,  /* amomin_w */
3129    0xc000002f,  /* amominu_b */
3130    0xffff_ffff, /* amominu_d */
3131    0xc000102f,  /* amominu_h */
3132    0xc000202f,  /* amominu_w */
3133    0x4000002f,  /* amoor_b */
3134    0xffff_ffff, /* amoor_d */
3135    0x4000102f,  /* amoor_h */
3136    0x4000202f,  /* amoor_w */
3137    0x800002f,   /* amoswap_b */
3138    0xffff_ffff, /* amoswap_d */
3139    0x800102f,   /* amoswap_h */
3140    0x800202f,   /* amoswap_w */
3141    0x2000002f,  /* amoxor_b */
3142    0xffff_ffff, /* amoxor_d */
3143    0x2000102f,  /* amoxor_h */
3144    0x2000202f,  /* amoxor_w */
3145    0x7033,      /* and */
3146    0x7013,      /* andi */
3147    0x40007033,  /* andn */
3148    0x17,        /* auipc */
3149    0x48001033,  /* bclr */
3150    0xffff_ffff, /* bclri */
3151    0x48001013,  /* bclri_rv32 */
3152    0x63,        /* beq */
3153    0x63,        /* beqz */
3154    0x48005033,  /* bext */
3155    0xffff_ffff, /* bexti */
3156    0x48005013,  /* bexti_rv32 */
3157    0x5063,      /* bge */
3158    0x7063,      /* bgeu */
3159    0x5063,      /* bgez */
3160    0x4063,      /* bgt */
3161    0x6063,      /* bgtu */
3162    0x4063,      /* bgtz */
3163    0x68001033,  /* binv */
3164    0xffff_ffff, /* binvi */
3165    0x68001013,  /* binvi_rv32 */
3166    0x5063,      /* ble */
3167    0x7063,      /* bleu */
3168    0x5063,      /* blez */
3169    0x4063,      /* blt */
3170    0x6063,      /* bltu */
3171    0x4063,      /* bltz */
3172    0x1063,      /* bne */
3173    0x1063,      /* bnez */
3174    0x68705013,  /* brev8 */
3175    0x28001033,  /* bset */
3176    0xffff_ffff, /* bseti */
3177    0x28001013,  /* bseti_rv32 */
3178    0x9002,      /* c_add */
3179    0x1,         /* c_addi */
3180    0x6101,      /* c_addi16sp */
3181    0x0,         /* c_addi4spn */
3182    0xffff_ffff, /* c_addiw */
3183    0xffff_ffff, /* c_addw */
3184    0x8c61,      /* c_and */
3185    0x8801,      /* c_andi */
3186    0xc001,      /* c_beqz */
3187    0xe001,      /* c_bnez */
3188    0x9002,      /* c_ebreak */
3189    0x2000,      /* c_fld */
3190    0x2002,      /* c_fldsp */
3191    0x6000,      /* c_flw */
3192    0x6002,      /* c_flwsp */
3193    0xa000,      /* c_fsd */
3194    0xa002,      /* c_fsdsp */
3195    0xe000,      /* c_fsw */
3196    0xe002,      /* c_fswsp */
3197    0xa001,      /* c_j */
3198    0x2001,      /* c_jal */
3199    0x9002,      /* c_jalr */
3200    0x8002,      /* c_jr */
3201    0x8000,      /* c_lbu */
3202    0xffff_ffff, /* c_ld */
3203    0xffff_ffff, /* c_ldsp */
3204    0x8440,      /* c_lh */
3205    0x8400,      /* c_lhu */
3206    0x4001,      /* c_li */
3207    0x6001,      /* c_lui */
3208    0x4000,      /* c_lw */
3209    0x4002,      /* c_lwsp */
3210    0x6081,      /* c_mop_1 */
3211    0x6581,      /* c_mop_11 */
3212    0x6681,      /* c_mop_13 */
3213    0x6781,      /* c_mop_15 */
3214    0x6181,      /* c_mop_3 */
3215    0x6281,      /* c_mop_5 */
3216    0x6381,      /* c_mop_7 */
3217    0x6481,      /* c_mop_9 */
3218    0x6081,      /* c_mop_N */
3219    0x9c41,      /* c_mul */
3220    0x8002,      /* c_mv */
3221    0x1,         /* c_nop */
3222    0x9c75,      /* c_not */
3223    0x9016,      /* c_ntl_all */
3224    0x900a,      /* c_ntl_p1 */
3225    0x900e,      /* c_ntl_pall */
3226    0x9012,      /* c_ntl_s1 */
3227    0x8c41,      /* c_or */
3228    0x8800,      /* c_sb */
3229    0xffff_ffff, /* c_sd */
3230    0xffff_ffff, /* c_sdsp */
3231    0x9c65,      /* c_sext_b */
3232    0x9c6d,      /* c_sext_h */
3233    0xffff_ffff, /* c_sext_w */
3234    0x8c00,      /* c_sh */
3235    0x2,         /* c_slli */
3236    0x2,         /* c_slli_rv32 */
3237    0x8401,      /* c_srai */
3238    0x8401,      /* c_srai_rv32 */
3239    0x8001,      /* c_srli */
3240    0x8001,      /* c_srli_rv32 */
3241    0x8c01,      /* c_sub */
3242    0xffff_ffff, /* c_subw */
3243    0xc000,      /* c_sw */
3244    0xc002,      /* c_swsp */
3245    0x8c21,      /* c_xor */
3246    0x9c61,      /* c_zext_b */
3247    0x9c69,      /* c_zext_h */
3248    0xffff_ffff, /* c_zext_w */
3249    0x10200f,    /* cbo_clean */
3250    0x20200f,    /* cbo_flush */
3251    0x200f,      /* cbo_inval */
3252    0x40200f,    /* cbo_zero */
3253    0xa001033,   /* clmul */
3254    0xa003033,   /* clmulh */
3255    0xa002033,   /* clmulr */
3256    0x60001013,  /* clz */
3257    0xffff_ffff, /* clzw */
3258    0xa002,      /* cm_jalt */
3259    0xac62,      /* cm_mva01s */
3260    0xac22,      /* cm_mvsa01 */
3261    0xba02,      /* cm_pop */
3262    0xbe02,      /* cm_popret */
3263    0xbc02,      /* cm_popretz */
3264    0xb802,      /* cm_push */
3265    0x60201013,  /* cpop */
3266    0xffff_ffff, /* cpopw */
3267    0x3073,      /* csrc */
3268    0x7073,      /* csrci */
3269    0x2073,      /* csrr */
3270    0x3073,      /* csrrc */
3271    0x7073,      /* csrrci */
3272    0x2073,      /* csrrs */
3273    0x6073,      /* csrrsi */
3274    0x1073,      /* csrrw */
3275    0x5073,      /* csrrwi */
3276    0x2073,      /* csrs */
3277    0x6073,      /* csrsi */
3278    0x1073,      /* csrw */
3279    0x5073,      /* csrwi */
3280    0x60101013,  /* ctz */
3281    0xffff_ffff, /* ctzw */
3282    0xe005033,   /* czero_eqz */
3283    0xe007033,   /* czero_nez */
3284    0x2004033,   /* div */
3285    0x2005033,   /* divu */
3286    0xffff_ffff, /* divuw */
3287    0xffff_ffff, /* divw */
3288    0x7b200073,  /* dret */
3289    0x100073,    /* ebreak */
3290    0x73,        /* ecall */
3291    0x22002053,  /* fabs_d */
3292    0x24002053,  /* fabs_h */
3293    0x26002053,  /* fabs_q */
3294    0x20002053,  /* fabs_s */
3295    0x2000053,   /* fadd_d */
3296    0x4000053,   /* fadd_h */
3297    0x6000053,   /* fadd_q */
3298    0x53,        /* fadd_s */
3299    0xe2001053,  /* fclass_d */
3300    0xe4001053,  /* fclass_h */
3301    0xe6001053,  /* fclass_q */
3302    0xe0001053,  /* fclass_s */
3303    0x42200053,  /* fcvt_d_h */
3304    0xffff_ffff, /* fcvt_d_l */
3305    0xffff_ffff, /* fcvt_d_lu */
3306    0x42300053,  /* fcvt_d_q */
3307    0x42000053,  /* fcvt_d_s */
3308    0xd2000053,  /* fcvt_d_w */
3309    0xd2100053,  /* fcvt_d_wu */
3310    0x44100053,  /* fcvt_h_d */
3311    0xffff_ffff, /* fcvt_h_l */
3312    0xffff_ffff, /* fcvt_h_lu */
3313    0x44300053,  /* fcvt_h_q */
3314    0x44000053,  /* fcvt_h_s */
3315    0xd4000053,  /* fcvt_h_w */
3316    0xd4100053,  /* fcvt_h_wu */
3317    0xffff_ffff, /* fcvt_l_d */
3318    0xffff_ffff, /* fcvt_l_h */
3319    0xffff_ffff, /* fcvt_l_q */
3320    0xffff_ffff, /* fcvt_l_s */
3321    0xffff_ffff, /* fcvt_lu_d */
3322    0xffff_ffff, /* fcvt_lu_h */
3323    0xffff_ffff, /* fcvt_lu_q */
3324    0xffff_ffff, /* fcvt_lu_s */
3325    0x46100053,  /* fcvt_q_d */
3326    0x46200053,  /* fcvt_q_h */
3327    0xffff_ffff, /* fcvt_q_l */
3328    0xffff_ffff, /* fcvt_q_lu */
3329    0x46000053,  /* fcvt_q_s */
3330    0xd6000053,  /* fcvt_q_w */
3331    0xd6100053,  /* fcvt_q_wu */
3332    0x40100053,  /* fcvt_s_d */
3333    0x40200053,  /* fcvt_s_h */
3334    0xffff_ffff, /* fcvt_s_l */
3335    0xffff_ffff, /* fcvt_s_lu */
3336    0x40300053,  /* fcvt_s_q */
3337    0xd0000053,  /* fcvt_s_w */
3338    0xd0100053,  /* fcvt_s_wu */
3339    0xc2000053,  /* fcvt_w_d */
3340    0xc4000053,  /* fcvt_w_h */
3341    0xc6000053,  /* fcvt_w_q */
3342    0xc0000053,  /* fcvt_w_s */
3343    0xc2100053,  /* fcvt_wu_d */
3344    0xc4100053,  /* fcvt_wu_h */
3345    0xc6100053,  /* fcvt_wu_q */
3346    0xc0100053,  /* fcvt_wu_s */
3347    0xc2801053,  /* fcvtmod_w_d */
3348    0x1a000053,  /* fdiv_d */
3349    0x1c000053,  /* fdiv_h */
3350    0x1e000053,  /* fdiv_q */
3351    0x18000053,  /* fdiv_s */
3352    0xf,         /* fence */
3353    0x100f,      /* fence_i */
3354    0x8330000f,  /* fence_tso */
3355    0xa2002053,  /* feq_d */
3356    0xa4002053,  /* feq_h */
3357    0xa6002053,  /* feq_q */
3358    0xa0002053,  /* feq_s */
3359    0x3007,      /* fld */
3360    0xa2000053,  /* fle_d */
3361    0xa4000053,  /* fle_h */
3362    0xa6000053,  /* fle_q */
3363    0xa0000053,  /* fle_s */
3364    0xa2004053,  /* fleq_d */
3365    0xa4004053,  /* fleq_h */
3366    0xa6004053,  /* fleq_q */
3367    0xa0004053,  /* fleq_s */
3368    0x1007,      /* flh */
3369    0xf2100053,  /* fli_d */
3370    0xf4100053,  /* fli_h */
3371    0xf6100053,  /* fli_q */
3372    0xf0100053,  /* fli_s */
3373    0x4007,      /* flq */
3374    0xa2001053,  /* flt_d */
3375    0xa4001053,  /* flt_h */
3376    0xa6001053,  /* flt_q */
3377    0xa0001053,  /* flt_s */
3378    0xa2005053,  /* fltq_d */
3379    0xa4005053,  /* fltq_h */
3380    0xa6005053,  /* fltq_q */
3381    0xa0005053,  /* fltq_s */
3382    0x2007,      /* flw */
3383    0x2000043,   /* fmadd_d */
3384    0x4000043,   /* fmadd_h */
3385    0x6000043,   /* fmadd_q */
3386    0x43,        /* fmadd_s */
3387    0x2a001053,  /* fmax_d */
3388    0x2c001053,  /* fmax_h */
3389    0x2e001053,  /* fmax_q */
3390    0x28001053,  /* fmax_s */
3391    0x2a003053,  /* fmaxm_d */
3392    0x2c003053,  /* fmaxm_h */
3393    0x2e003053,  /* fmaxm_q */
3394    0x28003053,  /* fmaxm_s */
3395    0x2a000053,  /* fmin_d */
3396    0x2c000053,  /* fmin_h */
3397    0x2e000053,  /* fmin_q */
3398    0x28000053,  /* fmin_s */
3399    0x2a002053,  /* fminm_d */
3400    0x2c002053,  /* fminm_h */
3401    0x2e002053,  /* fminm_q */
3402    0x28002053,  /* fminm_s */
3403    0x2000047,   /* fmsub_d */
3404    0x4000047,   /* fmsub_h */
3405    0x6000047,   /* fmsub_q */
3406    0x47,        /* fmsub_s */
3407    0x12000053,  /* fmul_d */
3408    0x14000053,  /* fmul_h */
3409    0x16000053,  /* fmul_q */
3410    0x10000053,  /* fmul_s */
3411    0x22000053,  /* fmv_d */
3412    0xffff_ffff, /* fmv_d_x */
3413    0x24000053,  /* fmv_h */
3414    0xf4000053,  /* fmv_h_x */
3415    0x26000053,  /* fmv_q */
3416    0x20000053,  /* fmv_s */
3417    0xf0000053,  /* fmv_s_x */
3418    0xf0000053,  /* fmv_w_x */
3419    0xffff_ffff, /* fmv_x_d */
3420    0xe4000053,  /* fmv_x_h */
3421    0xe0000053,  /* fmv_x_s */
3422    0xe0000053,  /* fmv_x_w */
3423    0xe2100053,  /* fmvh_x_d */
3424    0xffff_ffff, /* fmvh_x_q */
3425    0xb2000053,  /* fmvp_d_x */
3426    0xffff_ffff, /* fmvp_q_x */
3427    0x22001053,  /* fneg_d */
3428    0x24001053,  /* fneg_h */
3429    0x26001053,  /* fneg_q */
3430    0x20001053,  /* fneg_s */
3431    0x200004f,   /* fnmadd_d */
3432    0x400004f,   /* fnmadd_h */
3433    0x600004f,   /* fnmadd_q */
3434    0x4f,        /* fnmadd_s */
3435    0x200004b,   /* fnmsub_d */
3436    0x400004b,   /* fnmsub_h */
3437    0x600004b,   /* fnmsub_q */
3438    0x4b,        /* fnmsub_s */
3439    0x302073,    /* frcsr */
3440    0x102073,    /* frflags */
3441    0x42400053,  /* fround_d */
3442    0x44400053,  /* fround_h */
3443    0x46400053,  /* fround_q */
3444    0x40400053,  /* fround_s */
3445    0x42500053,  /* froundnx_d */
3446    0x44500053,  /* froundnx_h */
3447    0x46500053,  /* froundnx_q */
3448    0x40500053,  /* froundnx_s */
3449    0x202073,    /* frrm */
3450    0x301073,    /* fscsr */
3451    0x3027,      /* fsd */
3452    0x101073,    /* fsflags */
3453    0x105073,    /* fsflagsi */
3454    0x22000053,  /* fsgnj_d */
3455    0x24000053,  /* fsgnj_h */
3456    0x26000053,  /* fsgnj_q */
3457    0x20000053,  /* fsgnj_s */
3458    0x22001053,  /* fsgnjn_d */
3459    0x24001053,  /* fsgnjn_h */
3460    0x26001053,  /* fsgnjn_q */
3461    0x20001053,  /* fsgnjn_s */
3462    0x22002053,  /* fsgnjx_d */
3463    0x24002053,  /* fsgnjx_h */
3464    0x26002053,  /* fsgnjx_q */
3465    0x20002053,  /* fsgnjx_s */
3466    0x1027,      /* fsh */
3467    0x4027,      /* fsq */
3468    0x5a000053,  /* fsqrt_d */
3469    0x5c000053,  /* fsqrt_h */
3470    0x5e000053,  /* fsqrt_q */
3471    0x58000053,  /* fsqrt_s */
3472    0x201073,    /* fsrm */
3473    0x205073,    /* fsrmi */
3474    0xa000053,   /* fsub_d */
3475    0xc000053,   /* fsub_h */
3476    0xe000053,   /* fsub_q */
3477    0x8000053,   /* fsub_s */
3478    0x2027,      /* fsw */
3479    0x62000073,  /* hfence_gvma */
3480    0x22000073,  /* hfence_vvma */
3481    0x66000073,  /* hinval_gvma */
3482    0x26000073,  /* hinval_vvma */
3483    0x60004073,  /* hlv_b */
3484    0x60104073,  /* hlv_bu */
3485    0xffff_ffff, /* hlv_d */
3486    0x64004073,  /* hlv_h */
3487    0x64104073,  /* hlv_hu */
3488    0x68004073,  /* hlv_w */
3489    0xffff_ffff, /* hlv_wu */
3490    0x64304073,  /* hlvx_hu */
3491    0x68304073,  /* hlvx_wu */
3492    0x62004073,  /* hsv_b */
3493    0xffff_ffff, /* hsv_d */
3494    0x66004073,  /* hsv_h */
3495    0x6a004073,  /* hsv_w */
3496    0x6f,        /* j */
3497    0x6f,        /* jal */
3498    0xef,        /* jal_pseudo */
3499    0x67,        /* jalr */
3500    0xe7,        /* jalr_pseudo */
3501    0x67,        /* jr */
3502    0x3,         /* lb */
3503    0x4003,      /* lbu */
3504    0xffff_ffff, /* ld */
3505    0x1003,      /* lh */
3506    0x5003,      /* lhu */
3507    0xffff_ffff, /* lr_d */
3508    0x1000202f,  /* lr_w */
3509    0x37,        /* lui */
3510    0x2003,      /* lw */
3511    0xffff_ffff, /* lwu */
3512    0xa006033,   /* max */
3513    0xa007033,   /* maxu */
3514    0xa004033,   /* min */
3515    0xa005033,   /* minu */
3516    0x81c04073,  /* mop_r_0 */
3517    0x81d04073,  /* mop_r_1 */
3518    0x89e04073,  /* mop_r_10 */
3519    0x89f04073,  /* mop_r_11 */
3520    0x8dc04073,  /* mop_r_12 */
3521    0x8dd04073,  /* mop_r_13 */
3522    0x8de04073,  /* mop_r_14 */
3523    0x8df04073,  /* mop_r_15 */
3524    0xc1c04073,  /* mop_r_16 */
3525    0xc1d04073,  /* mop_r_17 */
3526    0xc1e04073,  /* mop_r_18 */
3527    0xc1f04073,  /* mop_r_19 */
3528    0x81e04073,  /* mop_r_2 */
3529    0xc5c04073,  /* mop_r_20 */
3530    0xc5d04073,  /* mop_r_21 */
3531    0xc5e04073,  /* mop_r_22 */
3532    0xc5f04073,  /* mop_r_23 */
3533    0xc9c04073,  /* mop_r_24 */
3534    0xc9d04073,  /* mop_r_25 */
3535    0xc9e04073,  /* mop_r_26 */
3536    0xc9f04073,  /* mop_r_27 */
3537    0xcdc04073,  /* mop_r_28 */
3538    0xcdd04073,  /* mop_r_29 */
3539    0x81f04073,  /* mop_r_3 */
3540    0xcde04073,  /* mop_r_30 */
3541    0xcdf04073,  /* mop_r_31 */
3542    0x85c04073,  /* mop_r_4 */
3543    0x85d04073,  /* mop_r_5 */
3544    0x85e04073,  /* mop_r_6 */
3545    0x85f04073,  /* mop_r_7 */
3546    0x89c04073,  /* mop_r_8 */
3547    0x89d04073,  /* mop_r_9 */
3548    0x81c04073,  /* mop_r_N */
3549    0x82004073,  /* mop_rr_0 */
3550    0x86004073,  /* mop_rr_1 */
3551    0x8a004073,  /* mop_rr_2 */
3552    0x8e004073,  /* mop_rr_3 */
3553    0xc2004073,  /* mop_rr_4 */
3554    0xc6004073,  /* mop_rr_5 */
3555    0xca004073,  /* mop_rr_6 */
3556    0xce004073,  /* mop_rr_7 */
3557    0x82004073,  /* mop_rr_N */
3558    0x30200073,  /* mret */
3559    0x2000033,   /* mul */
3560    0x2001033,   /* mulh */
3561    0x2002033,   /* mulhsu */
3562    0x2003033,   /* mulhu */
3563    0xffff_ffff, /* mulw */
3564    0x13,        /* mv */
3565    0x40000033,  /* neg */
3566    0x13,        /* nop */
3567    0x500033,    /* ntl_all */
3568    0x200033,    /* ntl_p1 */
3569    0x300033,    /* ntl_pall */
3570    0x400033,    /* ntl_s1 */
3571    0x6033,      /* or */
3572    0x28705013,  /* orc_b */
3573    0x6013,      /* ori */
3574    0x40006033,  /* orn */
3575    0x8004033,   /* pack */
3576    0x8007033,   /* packh */
3577    0xffff_ffff, /* packw */
3578    0x100000f,   /* pause */
3579    0x6013,      /* prefetch_i */
3580    0x106013,    /* prefetch_r */
3581    0x306013,    /* prefetch_w */
3582    0xc0002073,  /* rdcycle */
3583    0xc8002073,  /* rdcycleh */
3584    0xc0202073,  /* rdinstret */
3585    0xc8202073,  /* rdinstreth */
3586    0xc0102073,  /* rdtime */
3587    0xc8102073,  /* rdtimeh */
3588    0x2006033,   /* rem */
3589    0x2007033,   /* remu */
3590    0xffff_ffff, /* remuw */
3591    0xffff_ffff, /* remw */
3592    0x8067,      /* ret */
3593    0xffff_ffff, /* rev8 */
3594    0x69805013,  /* rev8_rv32 */
3595    0x60001033,  /* rol */
3596    0xffff_ffff, /* rolw */
3597    0x60005033,  /* ror */
3598    0xffff_ffff, /* rori */
3599    0x60005013,  /* rori_rv32 */
3600    0xffff_ffff, /* roriw */
3601    0xffff_ffff, /* rorw */
3602    0x23,        /* sb */
3603    0x100073,    /* sbreak */
3604    0xffff_ffff, /* sc_d */
3605    0x1800202f,  /* sc_w */
3606    0x73,        /* scall */
3607    0xffff_ffff, /* sd */
3608    0x103013,    /* seqz */
3609    0x60401013,  /* sext_b */
3610    0x60501013,  /* sext_h */
3611    0xffff_ffff, /* sext_w */
3612    0x18100073,  /* sfence_inval_ir */
3613    0x12000073,  /* sfence_vma */
3614    0x18000073,  /* sfence_w_inval */
3615    0x2033,      /* sgtz */
3616    0x1023,      /* sh */
3617    0x20002033,  /* sh1add */
3618    0xffff_ffff, /* sh1add_uw */
3619    0x20004033,  /* sh2add */
3620    0xffff_ffff, /* sh2add_uw */
3621    0x20006033,  /* sh3add */
3622    0xffff_ffff, /* sh3add_uw */
3623    0x10201013,  /* sha256sig0 */
3624    0x10301013,  /* sha256sig1 */
3625    0x10001013,  /* sha256sum0 */
3626    0x10101013,  /* sha256sum1 */
3627    0xffff_ffff, /* sha512sig0 */
3628    0x5c000033,  /* sha512sig0h */
3629    0x54000033,  /* sha512sig0l */
3630    0xffff_ffff, /* sha512sig1 */
3631    0x5e000033,  /* sha512sig1h */
3632    0x56000033,  /* sha512sig1l */
3633    0xffff_ffff, /* sha512sum0 */
3634    0x50000033,  /* sha512sum0r */
3635    0xffff_ffff, /* sha512sum1 */
3636    0x52000033,  /* sha512sum1r */
3637    0x16000073,  /* sinval_vma */
3638    0x1033,      /* sll */
3639    0x1013,      /* slli */
3640    0x1013,      /* slli_rv32 */
3641    0xffff_ffff, /* slli_uw */
3642    0xffff_ffff, /* slliw */
3643    0xffff_ffff, /* sllw */
3644    0x2033,      /* slt */
3645    0x2013,      /* slti */
3646    0x3013,      /* sltiu */
3647    0x3033,      /* sltu */
3648    0x2033,      /* sltz */
3649    0x10801013,  /* sm3p0 */
3650    0x10901013,  /* sm3p1 */
3651    0x30000033,  /* sm4ed */
3652    0x34000033,  /* sm4ks */
3653    0x3033,      /* snez */
3654    0x40005033,  /* sra */
3655    0x40005013,  /* srai */
3656    0x40005013,  /* srai_rv32 */
3657    0xffff_ffff, /* sraiw */
3658    0xffff_ffff, /* sraw */
3659    0x10200073,  /* sret */
3660    0x5033,      /* srl */
3661    0x5013,      /* srli */
3662    0x5013,      /* srli_rv32 */
3663    0xffff_ffff, /* srliw */
3664    0xffff_ffff, /* srlw */
3665    0x40000033,  /* sub */
3666    0xffff_ffff, /* subw */
3667    0x2023,      /* sw */
3668    0x8f05013,   /* unzip */
3669    0x24002057,  /* vaadd_vv */
3670    0x24006057,  /* vaadd_vx */
3671    0x20002057,  /* vaaddu_vv */
3672    0x20006057,  /* vaaddu_vx */
3673    0x40003057,  /* vadc_vim */
3674    0x40000057,  /* vadc_vvm */
3675    0x40004057,  /* vadc_vxm */
3676    0x3057,      /* vadd_vi */
3677    0x57,        /* vadd_vv */
3678    0x4057,      /* vadd_vx */
3679    0xa600a077,  /* vaesdf_vs */
3680    0xa200a077,  /* vaesdf_vv */
3681    0xa6002077,  /* vaesdm_vs */
3682    0xa2002077,  /* vaesdm_vv */
3683    0xa601a077,  /* vaesef_vs */
3684    0xa201a077,  /* vaesef_vv */
3685    0xa6012077,  /* vaesem_vs */
3686    0xa2012077,  /* vaesem_vv */
3687    0x8a002077,  /* vaeskf1_vi */
3688    0xaa002077,  /* vaeskf2_vi */
3689    0xa603a077,  /* vaesz_vs */
3690    0x24003057,  /* vand_vi */
3691    0x24000057,  /* vand_vv */
3692    0x24004057,  /* vand_vx */
3693    0x4000057,   /* vandn_vv */
3694    0x4004057,   /* vandn_vx */
3695    0x2c002057,  /* vasub_vv */
3696    0x2c006057,  /* vasub_vx */
3697    0x28002057,  /* vasubu_vv */
3698    0x28006057,  /* vasubu_vx */
3699    0x48042057,  /* vbrev8_v */
3700    0x48052057,  /* vbrev_v */
3701    0x30002057,  /* vclmul_vv */
3702    0x30006057,  /* vclmul_vx */
3703    0x34002057,  /* vclmulh_vv */
3704    0x34006057,  /* vclmulh_vx */
3705    0x48062057,  /* vclz_v */
3706    0x5e002057,  /* vcompress_vm */
3707    0x40082057,  /* vcpop_m */
3708    0x48072057,  /* vcpop_v */
3709    0x4806a057,  /* vctz_v */
3710    0x84002057,  /* vdiv_vv */
3711    0x84006057,  /* vdiv_vx */
3712    0x80002057,  /* vdivu_vv */
3713    0x80006057,  /* vdivu_vx */
3714    0x5057,      /* vfadd_vf */
3715    0x1057,      /* vfadd_vv */
3716    0x4c081057,  /* vfclass_v */
3717    0x48019057,  /* vfcvt_f_x_v */
3718    0x48011057,  /* vfcvt_f_xu_v */
3719    0x48039057,  /* vfcvt_rtz_x_f_v */
3720    0x48031057,  /* vfcvt_rtz_xu_f_v */
3721    0x48009057,  /* vfcvt_x_f_v */
3722    0x48001057,  /* vfcvt_xu_f_v */
3723    0x80005057,  /* vfdiv_vf */
3724    0x80001057,  /* vfdiv_vv */
3725    0x4008a057,  /* vfirst_m */
3726    0xb0005057,  /* vfmacc_vf */
3727    0xb0001057,  /* vfmacc_vv */
3728    0xa0005057,  /* vfmadd_vf */
3729    0xa0001057,  /* vfmadd_vv */
3730    0x18005057,  /* vfmax_vf */
3731    0x18001057,  /* vfmax_vv */
3732    0x5c005057,  /* vfmerge_vfm */
3733    0x10005057,  /* vfmin_vf */
3734    0x10001057,  /* vfmin_vv */
3735    0xb8005057,  /* vfmsac_vf */
3736    0xb8001057,  /* vfmsac_vv */
3737    0xa8005057,  /* vfmsub_vf */
3738    0xa8001057,  /* vfmsub_vv */
3739    0x90005057,  /* vfmul_vf */
3740    0x90001057,  /* vfmul_vv */
3741    0x42001057,  /* vfmv_f_s */
3742    0x42005057,  /* vfmv_s_f */
3743    0x5e005057,  /* vfmv_v_f */
3744    0x480a1057,  /* vfncvt_f_f_w */
3745    0x48099057,  /* vfncvt_f_x_w */
3746    0x48091057,  /* vfncvt_f_xu_w */
3747    0x480a9057,  /* vfncvt_rod_f_f_w */
3748    0x480b9057,  /* vfncvt_rtz_x_f_w */
3749    0x480b1057,  /* vfncvt_rtz_xu_f_w */
3750    0x48089057,  /* vfncvt_x_f_w */
3751    0x48081057,  /* vfncvt_xu_f_w */
3752    0xb4005057,  /* vfnmacc_vf */
3753    0xb4001057,  /* vfnmacc_vv */
3754    0xa4005057,  /* vfnmadd_vf */
3755    0xa4001057,  /* vfnmadd_vv */
3756    0xbc005057,  /* vfnmsac_vf */
3757    0xbc001057,  /* vfnmsac_vv */
3758    0xac005057,  /* vfnmsub_vf */
3759    0xac001057,  /* vfnmsub_vv */
3760    0x84005057,  /* vfrdiv_vf */
3761    0x4c029057,  /* vfrec7_v */
3762    0x1c001057,  /* vfredmax_vs */
3763    0x14001057,  /* vfredmin_vs */
3764    0xc001057,   /* vfredosum_vs */
3765    0x4001057,   /* vfredsum_vs */
3766    0x4001057,   /* vfredusum_vs */
3767    0x4c021057,  /* vfrsqrt7_v */
3768    0x9c005057,  /* vfrsub_vf */
3769    0x20005057,  /* vfsgnj_vf */
3770    0x20001057,  /* vfsgnj_vv */
3771    0x24005057,  /* vfsgnjn_vf */
3772    0x24001057,  /* vfsgnjn_vv */
3773    0x28005057,  /* vfsgnjx_vf */
3774    0x28001057,  /* vfsgnjx_vv */
3775    0x3c005057,  /* vfslide1down_vf */
3776    0x38005057,  /* vfslide1up_vf */
3777    0x4c001057,  /* vfsqrt_v */
3778    0x8005057,   /* vfsub_vf */
3779    0x8001057,   /* vfsub_vv */
3780    0xc0005057,  /* vfwadd_vf */
3781    0xc0001057,  /* vfwadd_vv */
3782    0xd0005057,  /* vfwadd_wf */
3783    0xd0001057,  /* vfwadd_wv */
3784    0x48061057,  /* vfwcvt_f_f_v */
3785    0x48059057,  /* vfwcvt_f_x_v */
3786    0x48051057,  /* vfwcvt_f_xu_v */
3787    0x48079057,  /* vfwcvt_rtz_x_f_v */
3788    0x48071057,  /* vfwcvt_rtz_xu_f_v */
3789    0x48049057,  /* vfwcvt_x_f_v */
3790    0x48041057,  /* vfwcvt_xu_f_v */
3791    0xf0005057,  /* vfwmacc_vf */
3792    0xf0001057,  /* vfwmacc_vv */
3793    0xf8005057,  /* vfwmsac_vf */
3794    0xf8001057,  /* vfwmsac_vv */
3795    0xe0005057,  /* vfwmul_vf */
3796    0xe0001057,  /* vfwmul_vv */
3797    0xf4005057,  /* vfwnmacc_vf */
3798    0xf4001057,  /* vfwnmacc_vv */
3799    0xfc005057,  /* vfwnmsac_vf */
3800    0xfc001057,  /* vfwnmsac_vv */
3801    0xcc001057,  /* vfwredosum_vs */
3802    0xc4001057,  /* vfwredsum_vs */
3803    0xc4001057,  /* vfwredusum_vs */
3804    0xc8005057,  /* vfwsub_vf */
3805    0xc8001057,  /* vfwsub_vv */
3806    0xd8005057,  /* vfwsub_wf */
3807    0xd8001057,  /* vfwsub_wv */
3808    0xb2002077,  /* vghsh_vv */
3809    0xa208a077,  /* vgmul_vv */
3810    0x5008a057,  /* vid_v */
3811    0x50082057,  /* viota_m */
3812    0x2800007,   /* vl1r_v */
3813    0x2805007,   /* vl1re16_v */
3814    0x2806007,   /* vl1re32_v */
3815    0x2807007,   /* vl1re64_v */
3816    0x2800007,   /* vl1re8_v */
3817    0x22800007,  /* vl2r_v */
3818    0x22805007,  /* vl2re16_v */
3819    0x22806007,  /* vl2re32_v */
3820    0x22807007,  /* vl2re64_v */
3821    0x22800007,  /* vl2re8_v */
3822    0x62800007,  /* vl4r_v */
3823    0x62805007,  /* vl4re16_v */
3824    0x62806007,  /* vl4re32_v */
3825    0x62807007,  /* vl4re64_v */
3826    0x62800007,  /* vl4re8_v */
3827    0xe2800007,  /* vl8r_v */
3828    0xe2805007,  /* vl8re16_v */
3829    0xe2806007,  /* vl8re32_v */
3830    0xe2807007,  /* vl8re64_v */
3831    0xe2800007,  /* vl8re8_v */
3832    0x5007,      /* vle16_v */
3833    0x1005007,   /* vle16ff_v */
3834    0x2b00007,   /* vle1_v */
3835    0x6007,      /* vle32_v */
3836    0x1006007,   /* vle32ff_v */
3837    0x7007,      /* vle64_v */
3838    0x1007007,   /* vle64ff_v */
3839    0x7,         /* vle8_v */
3840    0x1000007,   /* vle8ff_v */
3841    0x2b00007,   /* vlm_v */
3842    0xc005007,   /* vloxei16_v */
3843    0xc006007,   /* vloxei32_v */
3844    0xc007007,   /* vloxei64_v */
3845    0xc000007,   /* vloxei8_v */
3846    0x8005007,   /* vlse16_v */
3847    0x8006007,   /* vlse32_v */
3848    0x8007007,   /* vlse64_v */
3849    0x8000007,   /* vlse8_v */
3850    0x4005007,   /* vluxei16_v */
3851    0x4006007,   /* vluxei32_v */
3852    0x4007007,   /* vluxei64_v */
3853    0x4000007,   /* vluxei8_v */
3854    0xb4002057,  /* vmacc_vv */
3855    0xb4006057,  /* vmacc_vx */
3856    0x46003057,  /* vmadc_vi */
3857    0x44003057,  /* vmadc_vim */
3858    0x46000057,  /* vmadc_vv */
3859    0x44000057,  /* vmadc_vvm */
3860    0x46004057,  /* vmadc_vx */
3861    0x44004057,  /* vmadc_vxm */
3862    0xa4002057,  /* vmadd_vv */
3863    0xa4006057,  /* vmadd_vx */
3864    0x66002057,  /* vmand_mm */
3865    0x62002057,  /* vmandn_mm */
3866    0x60002057,  /* vmandnot_mm */
3867    0x1c000057,  /* vmax_vv */
3868    0x1c004057,  /* vmax_vx */
3869    0x18000057,  /* vmaxu_vv */
3870    0x18004057,  /* vmaxu_vx */
3871    0x5c003057,  /* vmerge_vim */
3872    0x5c000057,  /* vmerge_vvm */
3873    0x5c004057,  /* vmerge_vxm */
3874    0x60005057,  /* vmfeq_vf */
3875    0x60001057,  /* vmfeq_vv */
3876    0x7c005057,  /* vmfge_vf */
3877    0x74005057,  /* vmfgt_vf */
3878    0x64005057,  /* vmfle_vf */
3879    0x64001057,  /* vmfle_vv */
3880    0x6c005057,  /* vmflt_vf */
3881    0x6c001057,  /* vmflt_vv */
3882    0x70005057,  /* vmfne_vf */
3883    0x70001057,  /* vmfne_vv */
3884    0x14000057,  /* vmin_vv */
3885    0x14004057,  /* vmin_vx */
3886    0x10000057,  /* vminu_vv */
3887    0x10004057,  /* vminu_vx */
3888    0x76002057,  /* vmnand_mm */
3889    0x7a002057,  /* vmnor_mm */
3890    0x6a002057,  /* vmor_mm */
3891    0x72002057,  /* vmorn_mm */
3892    0x70002057,  /* vmornot_mm */
3893    0x4e000057,  /* vmsbc_vv */
3894    0x4c000057,  /* vmsbc_vvm */
3895    0x4e004057,  /* vmsbc_vx */
3896    0x4c004057,  /* vmsbc_vxm */
3897    0x5000a057,  /* vmsbf_m */
3898    0x60003057,  /* vmseq_vi */
3899    0x60000057,  /* vmseq_vv */
3900    0x60004057,  /* vmseq_vx */
3901    0x7c003057,  /* vmsgt_vi */
3902    0x7c004057,  /* vmsgt_vx */
3903    0x78003057,  /* vmsgtu_vi */
3904    0x78004057,  /* vmsgtu_vx */
3905    0x5001a057,  /* vmsif_m */
3906    0x74003057,  /* vmsle_vi */
3907    0x74000057,  /* vmsle_vv */
3908    0x74004057,  /* vmsle_vx */
3909    0x70003057,  /* vmsleu_vi */
3910    0x70000057,  /* vmsleu_vv */
3911    0x70004057,  /* vmsleu_vx */
3912    0x6c000057,  /* vmslt_vv */
3913    0x6c004057,  /* vmslt_vx */
3914    0x68000057,  /* vmsltu_vv */
3915    0x68004057,  /* vmsltu_vx */
3916    0x64003057,  /* vmsne_vi */
3917    0x64000057,  /* vmsne_vv */
3918    0x64004057,  /* vmsne_vx */
3919    0x50012057,  /* vmsof_m */
3920    0x94002057,  /* vmul_vv */
3921    0x94006057,  /* vmul_vx */
3922    0x9c002057,  /* vmulh_vv */
3923    0x9c006057,  /* vmulh_vx */
3924    0x98002057,  /* vmulhsu_vv */
3925    0x98006057,  /* vmulhsu_vx */
3926    0x90002057,  /* vmulhu_vv */
3927    0x90006057,  /* vmulhu_vx */
3928    0x9e003057,  /* vmv1r_v */
3929    0x9e00b057,  /* vmv2r_v */
3930    0x9e01b057,  /* vmv4r_v */
3931    0x9e03b057,  /* vmv8r_v */
3932    0x42006057,  /* vmv_s_x */
3933    0x5e003057,  /* vmv_v_i */
3934    0x5e000057,  /* vmv_v_v */
3935    0x5e004057,  /* vmv_v_x */
3936    0x42002057,  /* vmv_x_s */
3937    0x7e002057,  /* vmxnor_mm */
3938    0x6e002057,  /* vmxor_mm */
3939    0xbc003057,  /* vnclip_wi */
3940    0xbc000057,  /* vnclip_wv */
3941    0xbc004057,  /* vnclip_wx */
3942    0xb8003057,  /* vnclipu_wi */
3943    0xb8000057,  /* vnclipu_wv */
3944    0xb8004057,  /* vnclipu_wx */
3945    0xbc002057,  /* vnmsac_vv */
3946    0xbc006057,  /* vnmsac_vx */
3947    0xac002057,  /* vnmsub_vv */
3948    0xac006057,  /* vnmsub_vx */
3949    0xb4003057,  /* vnsra_wi */
3950    0xb4000057,  /* vnsra_wv */
3951    0xb4004057,  /* vnsra_wx */
3952    0xb0003057,  /* vnsrl_wi */
3953    0xb0000057,  /* vnsrl_wv */
3954    0xb0004057,  /* vnsrl_wx */
3955    0x28003057,  /* vor_vi */
3956    0x28000057,  /* vor_vv */
3957    0x28004057,  /* vor_vx */
3958    0x40082057,  /* vpopc_m */
3959    0x4002057,   /* vredand_vs */
3960    0x1c002057,  /* vredmax_vs */
3961    0x18002057,  /* vredmaxu_vs */
3962    0x14002057,  /* vredmin_vs */
3963    0x10002057,  /* vredminu_vs */
3964    0x8002057,   /* vredor_vs */
3965    0x2057,      /* vredsum_vs */
3966    0xc002057,   /* vredxor_vs */
3967    0x8c002057,  /* vrem_vv */
3968    0x8c006057,  /* vrem_vx */
3969    0x88002057,  /* vremu_vv */
3970    0x88006057,  /* vremu_vx */
3971    0x4804a057,  /* vrev8_v */
3972    0x30003057,  /* vrgather_vi */
3973    0x30000057,  /* vrgather_vv */
3974    0x30004057,  /* vrgather_vx */
3975    0x38000057,  /* vrgatherei16_vv */
3976    0x54000057,  /* vrol_vv */
3977    0x54004057,  /* vrol_vx */
3978    0x50003057,  /* vror_vi */
3979    0x50000057,  /* vror_vv */
3980    0x50004057,  /* vror_vx */
3981    0xc003057,   /* vrsub_vi */
3982    0xc004057,   /* vrsub_vx */
3983    0x2800027,   /* vs1r_v */
3984    0x22800027,  /* vs2r_v */
3985    0x62800027,  /* vs4r_v */
3986    0xe2800027,  /* vs8r_v */
3987    0x84003057,  /* vsadd_vi */
3988    0x84000057,  /* vsadd_vv */
3989    0x84004057,  /* vsadd_vx */
3990    0x80003057,  /* vsaddu_vi */
3991    0x80000057,  /* vsaddu_vv */
3992    0x80004057,  /* vsaddu_vx */
3993    0x48000057,  /* vsbc_vvm */
3994    0x48004057,  /* vsbc_vxm */
3995    0x5027,      /* vse16_v */
3996    0x2b00027,   /* vse1_v */
3997    0x6027,      /* vse32_v */
3998    0x7027,      /* vse64_v */
3999    0x27,        /* vse8_v */
4000    0xc0007057,  /* vsetivli */
4001    0x80007057,  /* vsetvl */
4002    0x7057,      /* vsetvli */
4003    0x4803a057,  /* vsext_vf2 */
4004    0x4802a057,  /* vsext_vf4 */
4005    0x4801a057,  /* vsext_vf8 */
4006    0xba002077,  /* vsha2ch_vv */
4007    0xbe002077,  /* vsha2cl_vv */
4008    0xb6002077,  /* vsha2ms_vv */
4009    0x3c006057,  /* vslide1down_vx */
4010    0x38006057,  /* vslide1up_vx */
4011    0x3c003057,  /* vslidedown_vi */
4012    0x3c004057,  /* vslidedown_vx */
4013    0x38003057,  /* vslideup_vi */
4014    0x38004057,  /* vslideup_vx */
4015    0x94003057,  /* vsll_vi */
4016    0x94000057,  /* vsll_vv */
4017    0x94004057,  /* vsll_vx */
4018    0xae002077,  /* vsm3c_vi */
4019    0x82002077,  /* vsm3me_vv */
4020    0x86002077,  /* vsm4k_vi */
4021    0xa6082077,  /* vsm4r_vs */
4022    0xa2082077,  /* vsm4r_vv */
4023    0x2b00027,   /* vsm_v */
4024    0x9c000057,  /* vsmul_vv */
4025    0x9c004057,  /* vsmul_vx */
4026    0xc005027,   /* vsoxei16_v */
4027    0xc006027,   /* vsoxei32_v */
4028    0xc007027,   /* vsoxei64_v */
4029    0xc000027,   /* vsoxei8_v */
4030    0xa4003057,  /* vsra_vi */
4031    0xa4000057,  /* vsra_vv */
4032    0xa4004057,  /* vsra_vx */
4033    0xa0003057,  /* vsrl_vi */
4034    0xa0000057,  /* vsrl_vv */
4035    0xa0004057,  /* vsrl_vx */
4036    0x8005027,   /* vsse16_v */
4037    0x8006027,   /* vsse32_v */
4038    0x8007027,   /* vsse64_v */
4039    0x8000027,   /* vsse8_v */
4040    0xac003057,  /* vssra_vi */
4041    0xac000057,  /* vssra_vv */
4042    0xac004057,  /* vssra_vx */
4043    0xa8003057,  /* vssrl_vi */
4044    0xa8000057,  /* vssrl_vv */
4045    0xa8004057,  /* vssrl_vx */
4046    0x8c000057,  /* vssub_vv */
4047    0x8c004057,  /* vssub_vx */
4048    0x88000057,  /* vssubu_vv */
4049    0x88004057,  /* vssubu_vx */
4050    0x8000057,   /* vsub_vv */
4051    0x8004057,   /* vsub_vx */
4052    0x4005027,   /* vsuxei16_v */
4053    0x4006027,   /* vsuxei32_v */
4054    0x4007027,   /* vsuxei64_v */
4055    0x4000027,   /* vsuxei8_v */
4056    0xc4002057,  /* vwadd_vv */
4057    0xc4006057,  /* vwadd_vx */
4058    0xd4002057,  /* vwadd_wv */
4059    0xd4006057,  /* vwadd_wx */
4060    0xc0002057,  /* vwaddu_vv */
4061    0xc0006057,  /* vwaddu_vx */
4062    0xd0002057,  /* vwaddu_wv */
4063    0xd0006057,  /* vwaddu_wx */
4064    0xf4002057,  /* vwmacc_vv */
4065    0xf4006057,  /* vwmacc_vx */
4066    0xfc002057,  /* vwmaccsu_vv */
4067    0xfc006057,  /* vwmaccsu_vx */
4068    0xf0002057,  /* vwmaccu_vv */
4069    0xf0006057,  /* vwmaccu_vx */
4070    0xf8006057,  /* vwmaccus_vx */
4071    0xec002057,  /* vwmul_vv */
4072    0xec006057,  /* vwmul_vx */
4073    0xe8002057,  /* vwmulsu_vv */
4074    0xe8006057,  /* vwmulsu_vx */
4075    0xe0002057,  /* vwmulu_vv */
4076    0xe0006057,  /* vwmulu_vx */
4077    0xc4000057,  /* vwredsum_vs */
4078    0xc0000057,  /* vwredsumu_vs */
4079    0xd4003057,  /* vwsll_vi */
4080    0xd4000057,  /* vwsll_vv */
4081    0xd4004057,  /* vwsll_vx */
4082    0xcc002057,  /* vwsub_vv */
4083    0xcc006057,  /* vwsub_vx */
4084    0xdc002057,  /* vwsub_wv */
4085    0xdc006057,  /* vwsub_wx */
4086    0xc8002057,  /* vwsubu_vv */
4087    0xc8006057,  /* vwsubu_vx */
4088    0xd8002057,  /* vwsubu_wv */
4089    0xd8006057,  /* vwsubu_wx */
4090    0x2c003057,  /* vxor_vi */
4091    0x2c000057,  /* vxor_vv */
4092    0x2c004057,  /* vxor_vx */
4093    0x48032057,  /* vzext_vf2 */
4094    0x48022057,  /* vzext_vf4 */
4095    0x48012057,  /* vzext_vf8 */
4096    0x10500073,  /* wfi */
4097    0xd00073,    /* wrs_nto */
4098    0x1d00073,   /* wrs_sto */
4099    0x40004033,  /* xnor */
4100    0x4033,      /* xor */
4101    0x4013,      /* xori */
4102    0x28002033,  /* xperm4 */
4103    0x28004033,  /* xperm8 */
4104    0x7013,      /* zext_b */
4105    0xffff_ffff, /* zext_h */
4106    0x8004033,   /* zext_h_rv32 */
4107    0xffff_ffff, /* zext_w */
4108    0x8f01013,   /* zip */
4109];
4110pub static OPCODE32_MASK: [u32; 1021] = [
4111    0xfe00707f,  /* add */
4112    0xffff_ffff, /* add_uw */
4113    0x707f,      /* addi */
4114    0xffff_ffff, /* addiw */
4115    0xffff_ffff, /* addw */
4116    0x3e00707f,  /* aes32dsi */
4117    0x3e00707f,  /* aes32dsmi */
4118    0x3e00707f,  /* aes32esi */
4119    0x3e00707f,  /* aes32esmi */
4120    0xffff_ffff, /* aes64ds */
4121    0xffff_ffff, /* aes64dsm */
4122    0xffff_ffff, /* aes64es */
4123    0xffff_ffff, /* aes64esm */
4124    0xffff_ffff, /* aes64im */
4125    0xffff_ffff, /* aes64ks1i */
4126    0xffff_ffff, /* aes64ks2 */
4127    0xf800707f,  /* amoadd_b */
4128    0xffff_ffff, /* amoadd_d */
4129    0xf800707f,  /* amoadd_h */
4130    0xf800707f,  /* amoadd_w */
4131    0xf800707f,  /* amoand_b */
4132    0xffff_ffff, /* amoand_d */
4133    0xf800707f,  /* amoand_h */
4134    0xf800707f,  /* amoand_w */
4135    0xf800707f,  /* amocas_b */
4136    0xf800707f,  /* amocas_d */
4137    0xf800707f,  /* amocas_h */
4138    0xffff_ffff, /* amocas_q */
4139    0xf800707f,  /* amocas_w */
4140    0xf800707f,  /* amomax_b */
4141    0xffff_ffff, /* amomax_d */
4142    0xf800707f,  /* amomax_h */
4143    0xf800707f,  /* amomax_w */
4144    0xf800707f,  /* amomaxu_b */
4145    0xffff_ffff, /* amomaxu_d */
4146    0xf800707f,  /* amomaxu_h */
4147    0xf800707f,  /* amomaxu_w */
4148    0xf800707f,  /* amomin_b */
4149    0xffff_ffff, /* amomin_d */
4150    0xf800707f,  /* amomin_h */
4151    0xf800707f,  /* amomin_w */
4152    0xf800707f,  /* amominu_b */
4153    0xffff_ffff, /* amominu_d */
4154    0xf800707f,  /* amominu_h */
4155    0xf800707f,  /* amominu_w */
4156    0xf800707f,  /* amoor_b */
4157    0xffff_ffff, /* amoor_d */
4158    0xf800707f,  /* amoor_h */
4159    0xf800707f,  /* amoor_w */
4160    0xf800707f,  /* amoswap_b */
4161    0xffff_ffff, /* amoswap_d */
4162    0xf800707f,  /* amoswap_h */
4163    0xf800707f,  /* amoswap_w */
4164    0xf800707f,  /* amoxor_b */
4165    0xffff_ffff, /* amoxor_d */
4166    0xf800707f,  /* amoxor_h */
4167    0xf800707f,  /* amoxor_w */
4168    0xfe00707f,  /* and */
4169    0x707f,      /* andi */
4170    0xfe00707f,  /* andn */
4171    0x7f,        /* auipc */
4172    0xfe00707f,  /* bclr */
4173    0xffff_ffff, /* bclri */
4174    0xfe00707f,  /* bclri_rv32 */
4175    0x707f,      /* beq */
4176    0x1f0707f,   /* beqz */
4177    0xfe00707f,  /* bext */
4178    0xffff_ffff, /* bexti */
4179    0xfe00707f,  /* bexti_rv32 */
4180    0x707f,      /* bge */
4181    0x707f,      /* bgeu */
4182    0x1f0707f,   /* bgez */
4183    0x707f,      /* bgt */
4184    0x707f,      /* bgtu */
4185    0xff07f,     /* bgtz */
4186    0xfe00707f,  /* binv */
4187    0xffff_ffff, /* binvi */
4188    0xfe00707f,  /* binvi_rv32 */
4189    0x707f,      /* ble */
4190    0x707f,      /* bleu */
4191    0xff07f,     /* blez */
4192    0x707f,      /* blt */
4193    0x707f,      /* bltu */
4194    0x1f0707f,   /* bltz */
4195    0x707f,      /* bne */
4196    0x1f0707f,   /* bnez */
4197    0xfff0707f,  /* brev8 */
4198    0xfe00707f,  /* bset */
4199    0xffff_ffff, /* bseti */
4200    0xfe00707f,  /* bseti_rv32 */
4201    0xf003,      /* c_add */
4202    0xe003,      /* c_addi */
4203    0xef83,      /* c_addi16sp */
4204    0xe003,      /* c_addi4spn */
4205    0xffff_ffff, /* c_addiw */
4206    0xffff_ffff, /* c_addw */
4207    0xfc63,      /* c_and */
4208    0xec03,      /* c_andi */
4209    0xe003,      /* c_beqz */
4210    0xe003,      /* c_bnez */
4211    0xffff,      /* c_ebreak */
4212    0xe003,      /* c_fld */
4213    0xe003,      /* c_fldsp */
4214    0xe003,      /* c_flw */
4215    0xe003,      /* c_flwsp */
4216    0xe003,      /* c_fsd */
4217    0xe003,      /* c_fsdsp */
4218    0xe003,      /* c_fsw */
4219    0xe003,      /* c_fswsp */
4220    0xe003,      /* c_j */
4221    0xe003,      /* c_jal */
4222    0xf07f,      /* c_jalr */
4223    0xf07f,      /* c_jr */
4224    0xfc03,      /* c_lbu */
4225    0xffff_ffff, /* c_ld */
4226    0xffff_ffff, /* c_ldsp */
4227    0xfc43,      /* c_lh */
4228    0xfc43,      /* c_lhu */
4229    0xe003,      /* c_li */
4230    0xe003,      /* c_lui */
4231    0xe003,      /* c_lw */
4232    0xe003,      /* c_lwsp */
4233    0xffff,      /* c_mop_1 */
4234    0xffff,      /* c_mop_11 */
4235    0xffff,      /* c_mop_13 */
4236    0xffff,      /* c_mop_15 */
4237    0xffff,      /* c_mop_3 */
4238    0xffff,      /* c_mop_5 */
4239    0xffff,      /* c_mop_7 */
4240    0xffff,      /* c_mop_9 */
4241    0xf8ff,      /* c_mop_N */
4242    0xfc63,      /* c_mul */
4243    0xf003,      /* c_mv */
4244    0xef83,      /* c_nop */
4245    0xfc7f,      /* c_not */
4246    0xffff,      /* c_ntl_all */
4247    0xffff,      /* c_ntl_p1 */
4248    0xffff,      /* c_ntl_pall */
4249    0xffff,      /* c_ntl_s1 */
4250    0xfc63,      /* c_or */
4251    0xfc03,      /* c_sb */
4252    0xffff_ffff, /* c_sd */
4253    0xffff_ffff, /* c_sdsp */
4254    0xfc7f,      /* c_sext_b */
4255    0xfc7f,      /* c_sext_h */
4256    0xffff_ffff, /* c_sext_w */
4257    0xfc43,      /* c_sh */
4258    0xe003,      /* c_slli */
4259    0xf003,      /* c_slli_rv32 */
4260    0xec03,      /* c_srai */
4261    0xfc03,      /* c_srai_rv32 */
4262    0xec03,      /* c_srli */
4263    0xfc03,      /* c_srli_rv32 */
4264    0xfc63,      /* c_sub */
4265    0xffff_ffff, /* c_subw */
4266    0xe003,      /* c_sw */
4267    0xe003,      /* c_swsp */
4268    0xfc63,      /* c_xor */
4269    0xfc7f,      /* c_zext_b */
4270    0xfc7f,      /* c_zext_h */
4271    0xffff_ffff, /* c_zext_w */
4272    0xfff07fff,  /* cbo_clean */
4273    0xfff07fff,  /* cbo_flush */
4274    0xfff07fff,  /* cbo_inval */
4275    0xfff07fff,  /* cbo_zero */
4276    0xfe00707f,  /* clmul */
4277    0xfe00707f,  /* clmulh */
4278    0xfe00707f,  /* clmulr */
4279    0xfff0707f,  /* clz */
4280    0xffff_ffff, /* clzw */
4281    0xfc03,      /* cm_jalt */
4282    0xfc63,      /* cm_mva01s */
4283    0xfc63,      /* cm_mvsa01 */
4284    0xff03,      /* cm_pop */
4285    0xff03,      /* cm_popret */
4286    0xff03,      /* cm_popretz */
4287    0xff03,      /* cm_push */
4288    0xfff0707f,  /* cpop */
4289    0xffff_ffff, /* cpopw */
4290    0x7fff,      /* csrc */
4291    0x7fff,      /* csrci */
4292    0xff07f,     /* csrr */
4293    0x707f,      /* csrrc */
4294    0x707f,      /* csrrci */
4295    0x707f,      /* csrrs */
4296    0x707f,      /* csrrsi */
4297    0x707f,      /* csrrw */
4298    0x707f,      /* csrrwi */
4299    0x7fff,      /* csrs */
4300    0x7fff,      /* csrsi */
4301    0x7fff,      /* csrw */
4302    0x7fff,      /* csrwi */
4303    0xfff0707f,  /* ctz */
4304    0xffff_ffff, /* ctzw */
4305    0xfe00707f,  /* czero_eqz */
4306    0xfe00707f,  /* czero_nez */
4307    0xfe00707f,  /* div */
4308    0xfe00707f,  /* divu */
4309    0xffff_ffff, /* divuw */
4310    0xffff_ffff, /* divw */
4311    0xffffffff,  /* dret */
4312    0xffffffff,  /* ebreak */
4313    0xffffffff,  /* ecall */
4314    0xfe00707f,  /* fabs_d */
4315    0xfe00707f,  /* fabs_h */
4316    0xfe00707f,  /* fabs_q */
4317    0xfe00707f,  /* fabs_s */
4318    0xfe00007f,  /* fadd_d */
4319    0xfe00007f,  /* fadd_h */
4320    0xfe00007f,  /* fadd_q */
4321    0xfe00007f,  /* fadd_s */
4322    0xfff0707f,  /* fclass_d */
4323    0xfff0707f,  /* fclass_h */
4324    0xfff0707f,  /* fclass_q */
4325    0xfff0707f,  /* fclass_s */
4326    0xfff0007f,  /* fcvt_d_h */
4327    0xffff_ffff, /* fcvt_d_l */
4328    0xffff_ffff, /* fcvt_d_lu */
4329    0xfff0007f,  /* fcvt_d_q */
4330    0xfff0007f,  /* fcvt_d_s */
4331    0xfff0007f,  /* fcvt_d_w */
4332    0xfff0007f,  /* fcvt_d_wu */
4333    0xfff0007f,  /* fcvt_h_d */
4334    0xffff_ffff, /* fcvt_h_l */
4335    0xffff_ffff, /* fcvt_h_lu */
4336    0xfff0007f,  /* fcvt_h_q */
4337    0xfff0007f,  /* fcvt_h_s */
4338    0xfff0007f,  /* fcvt_h_w */
4339    0xfff0007f,  /* fcvt_h_wu */
4340    0xffff_ffff, /* fcvt_l_d */
4341    0xffff_ffff, /* fcvt_l_h */
4342    0xffff_ffff, /* fcvt_l_q */
4343    0xffff_ffff, /* fcvt_l_s */
4344    0xffff_ffff, /* fcvt_lu_d */
4345    0xffff_ffff, /* fcvt_lu_h */
4346    0xffff_ffff, /* fcvt_lu_q */
4347    0xffff_ffff, /* fcvt_lu_s */
4348    0xfff0007f,  /* fcvt_q_d */
4349    0xfff0007f,  /* fcvt_q_h */
4350    0xffff_ffff, /* fcvt_q_l */
4351    0xffff_ffff, /* fcvt_q_lu */
4352    0xfff0007f,  /* fcvt_q_s */
4353    0xfff0007f,  /* fcvt_q_w */
4354    0xfff0007f,  /* fcvt_q_wu */
4355    0xfff0007f,  /* fcvt_s_d */
4356    0xfff0007f,  /* fcvt_s_h */
4357    0xffff_ffff, /* fcvt_s_l */
4358    0xffff_ffff, /* fcvt_s_lu */
4359    0xfff0007f,  /* fcvt_s_q */
4360    0xfff0007f,  /* fcvt_s_w */
4361    0xfff0007f,  /* fcvt_s_wu */
4362    0xfff0007f,  /* fcvt_w_d */
4363    0xfff0007f,  /* fcvt_w_h */
4364    0xfff0007f,  /* fcvt_w_q */
4365    0xfff0007f,  /* fcvt_w_s */
4366    0xfff0007f,  /* fcvt_wu_d */
4367    0xfff0007f,  /* fcvt_wu_h */
4368    0xfff0007f,  /* fcvt_wu_q */
4369    0xfff0007f,  /* fcvt_wu_s */
4370    0xfff0707f,  /* fcvtmod_w_d */
4371    0xfe00007f,  /* fdiv_d */
4372    0xfe00007f,  /* fdiv_h */
4373    0xfe00007f,  /* fdiv_q */
4374    0xfe00007f,  /* fdiv_s */
4375    0x707f,      /* fence */
4376    0x707f,      /* fence_i */
4377    0xfff0707f,  /* fence_tso */
4378    0xfe00707f,  /* feq_d */
4379    0xfe00707f,  /* feq_h */
4380    0xfe00707f,  /* feq_q */
4381    0xfe00707f,  /* feq_s */
4382    0x707f,      /* fld */
4383    0xfe00707f,  /* fle_d */
4384    0xfe00707f,  /* fle_h */
4385    0xfe00707f,  /* fle_q */
4386    0xfe00707f,  /* fle_s */
4387    0xfe00707f,  /* fleq_d */
4388    0xfe00707f,  /* fleq_h */
4389    0xfe00707f,  /* fleq_q */
4390    0xfe00707f,  /* fleq_s */
4391    0x707f,      /* flh */
4392    0xfff0707f,  /* fli_d */
4393    0xfff0707f,  /* fli_h */
4394    0xfff0707f,  /* fli_q */
4395    0xfff0707f,  /* fli_s */
4396    0x707f,      /* flq */
4397    0xfe00707f,  /* flt_d */
4398    0xfe00707f,  /* flt_h */
4399    0xfe00707f,  /* flt_q */
4400    0xfe00707f,  /* flt_s */
4401    0xfe00707f,  /* fltq_d */
4402    0xfe00707f,  /* fltq_h */
4403    0xfe00707f,  /* fltq_q */
4404    0xfe00707f,  /* fltq_s */
4405    0x707f,      /* flw */
4406    0x600007f,   /* fmadd_d */
4407    0x600007f,   /* fmadd_h */
4408    0x600007f,   /* fmadd_q */
4409    0x600007f,   /* fmadd_s */
4410    0xfe00707f,  /* fmax_d */
4411    0xfe00707f,  /* fmax_h */
4412    0xfe00707f,  /* fmax_q */
4413    0xfe00707f,  /* fmax_s */
4414    0xfe00707f,  /* fmaxm_d */
4415    0xfe00707f,  /* fmaxm_h */
4416    0xfe00707f,  /* fmaxm_q */
4417    0xfe00707f,  /* fmaxm_s */
4418    0xfe00707f,  /* fmin_d */
4419    0xfe00707f,  /* fmin_h */
4420    0xfe00707f,  /* fmin_q */
4421    0xfe00707f,  /* fmin_s */
4422    0xfe00707f,  /* fminm_d */
4423    0xfe00707f,  /* fminm_h */
4424    0xfe00707f,  /* fminm_q */
4425    0xfe00707f,  /* fminm_s */
4426    0x600007f,   /* fmsub_d */
4427    0x600007f,   /* fmsub_h */
4428    0x600007f,   /* fmsub_q */
4429    0x600007f,   /* fmsub_s */
4430    0xfe00007f,  /* fmul_d */
4431    0xfe00007f,  /* fmul_h */
4432    0xfe00007f,  /* fmul_q */
4433    0xfe00007f,  /* fmul_s */
4434    0xfe00707f,  /* fmv_d */
4435    0xffff_ffff, /* fmv_d_x */
4436    0xfe00707f,  /* fmv_h */
4437    0xfff0707f,  /* fmv_h_x */
4438    0xfe00707f,  /* fmv_q */
4439    0xfe00707f,  /* fmv_s */
4440    0xfff0707f,  /* fmv_s_x */
4441    0xfff0707f,  /* fmv_w_x */
4442    0xffff_ffff, /* fmv_x_d */
4443    0xfff0707f,  /* fmv_x_h */
4444    0xfff0707f,  /* fmv_x_s */
4445    0xfff0707f,  /* fmv_x_w */
4446    0xfff0707f,  /* fmvh_x_d */
4447    0xffff_ffff, /* fmvh_x_q */
4448    0xfe00707f,  /* fmvp_d_x */
4449    0xffff_ffff, /* fmvp_q_x */
4450    0xfe00707f,  /* fneg_d */
4451    0xfe00707f,  /* fneg_h */
4452    0xfe00707f,  /* fneg_q */
4453    0xfe00707f,  /* fneg_s */
4454    0x600007f,   /* fnmadd_d */
4455    0x600007f,   /* fnmadd_h */
4456    0x600007f,   /* fnmadd_q */
4457    0x600007f,   /* fnmadd_s */
4458    0x600007f,   /* fnmsub_d */
4459    0x600007f,   /* fnmsub_h */
4460    0x600007f,   /* fnmsub_q */
4461    0x600007f,   /* fnmsub_s */
4462    0xfffff07f,  /* frcsr */
4463    0xfffff07f,  /* frflags */
4464    0xfff0007f,  /* fround_d */
4465    0xfff0007f,  /* fround_h */
4466    0xfff0007f,  /* fround_q */
4467    0xfff0007f,  /* fround_s */
4468    0xfff0007f,  /* froundnx_d */
4469    0xfff0007f,  /* froundnx_h */
4470    0xfff0007f,  /* froundnx_q */
4471    0xfff0007f,  /* froundnx_s */
4472    0xfffff07f,  /* frrm */
4473    0xfff0707f,  /* fscsr */
4474    0x707f,      /* fsd */
4475    0xfff0707f,  /* fsflags */
4476    0xfff0707f,  /* fsflagsi */
4477    0xfe00707f,  /* fsgnj_d */
4478    0xfe00707f,  /* fsgnj_h */
4479    0xfe00707f,  /* fsgnj_q */
4480    0xfe00707f,  /* fsgnj_s */
4481    0xfe00707f,  /* fsgnjn_d */
4482    0xfe00707f,  /* fsgnjn_h */
4483    0xfe00707f,  /* fsgnjn_q */
4484    0xfe00707f,  /* fsgnjn_s */
4485    0xfe00707f,  /* fsgnjx_d */
4486    0xfe00707f,  /* fsgnjx_h */
4487    0xfe00707f,  /* fsgnjx_q */
4488    0xfe00707f,  /* fsgnjx_s */
4489    0x707f,      /* fsh */
4490    0x707f,      /* fsq */
4491    0xfff0007f,  /* fsqrt_d */
4492    0xfff0007f,  /* fsqrt_h */
4493    0xfff0007f,  /* fsqrt_q */
4494    0xfff0007f,  /* fsqrt_s */
4495    0xfff0707f,  /* fsrm */
4496    0xfff0707f,  /* fsrmi */
4497    0xfe00007f,  /* fsub_d */
4498    0xfe00007f,  /* fsub_h */
4499    0xfe00007f,  /* fsub_q */
4500    0xfe00007f,  /* fsub_s */
4501    0x707f,      /* fsw */
4502    0xfe007fff,  /* hfence_gvma */
4503    0xfe007fff,  /* hfence_vvma */
4504    0xfe007fff,  /* hinval_gvma */
4505    0xfe007fff,  /* hinval_vvma */
4506    0xfff0707f,  /* hlv_b */
4507    0xfff0707f,  /* hlv_bu */
4508    0xffff_ffff, /* hlv_d */
4509    0xfff0707f,  /* hlv_h */
4510    0xfff0707f,  /* hlv_hu */
4511    0xfff0707f,  /* hlv_w */
4512    0xffff_ffff, /* hlv_wu */
4513    0xfff0707f,  /* hlvx_hu */
4514    0xfff0707f,  /* hlvx_wu */
4515    0xfe007fff,  /* hsv_b */
4516    0xffff_ffff, /* hsv_d */
4517    0xfe007fff,  /* hsv_h */
4518    0xfe007fff,  /* hsv_w */
4519    0xfff,       /* j */
4520    0x7f,        /* jal */
4521    0xfff,       /* jal_pseudo */
4522    0x707f,      /* jalr */
4523    0xfff07fff,  /* jalr_pseudo */
4524    0xfff07fff,  /* jr */
4525    0x707f,      /* lb */
4526    0x707f,      /* lbu */
4527    0xffff_ffff, /* ld */
4528    0x707f,      /* lh */
4529    0x707f,      /* lhu */
4530    0xffff_ffff, /* lr_d */
4531    0xf9f0707f,  /* lr_w */
4532    0x7f,        /* lui */
4533    0x707f,      /* lw */
4534    0xffff_ffff, /* lwu */
4535    0xfe00707f,  /* max */
4536    0xfe00707f,  /* maxu */
4537    0xfe00707f,  /* min */
4538    0xfe00707f,  /* minu */
4539    0xfff0707f,  /* mop_r_0 */
4540    0xfff0707f,  /* mop_r_1 */
4541    0xfff0707f,  /* mop_r_10 */
4542    0xfff0707f,  /* mop_r_11 */
4543    0xfff0707f,  /* mop_r_12 */
4544    0xfff0707f,  /* mop_r_13 */
4545    0xfff0707f,  /* mop_r_14 */
4546    0xfff0707f,  /* mop_r_15 */
4547    0xfff0707f,  /* mop_r_16 */
4548    0xfff0707f,  /* mop_r_17 */
4549    0xfff0707f,  /* mop_r_18 */
4550    0xfff0707f,  /* mop_r_19 */
4551    0xfff0707f,  /* mop_r_2 */
4552    0xfff0707f,  /* mop_r_20 */
4553    0xfff0707f,  /* mop_r_21 */
4554    0xfff0707f,  /* mop_r_22 */
4555    0xfff0707f,  /* mop_r_23 */
4556    0xfff0707f,  /* mop_r_24 */
4557    0xfff0707f,  /* mop_r_25 */
4558    0xfff0707f,  /* mop_r_26 */
4559    0xfff0707f,  /* mop_r_27 */
4560    0xfff0707f,  /* mop_r_28 */
4561    0xfff0707f,  /* mop_r_29 */
4562    0xfff0707f,  /* mop_r_3 */
4563    0xfff0707f,  /* mop_r_30 */
4564    0xfff0707f,  /* mop_r_31 */
4565    0xfff0707f,  /* mop_r_4 */
4566    0xfff0707f,  /* mop_r_5 */
4567    0xfff0707f,  /* mop_r_6 */
4568    0xfff0707f,  /* mop_r_7 */
4569    0xfff0707f,  /* mop_r_8 */
4570    0xfff0707f,  /* mop_r_9 */
4571    0xb3c0707f,  /* mop_r_N */
4572    0xfe00707f,  /* mop_rr_0 */
4573    0xfe00707f,  /* mop_rr_1 */
4574    0xfe00707f,  /* mop_rr_2 */
4575    0xfe00707f,  /* mop_rr_3 */
4576    0xfe00707f,  /* mop_rr_4 */
4577    0xfe00707f,  /* mop_rr_5 */
4578    0xfe00707f,  /* mop_rr_6 */
4579    0xfe00707f,  /* mop_rr_7 */
4580    0xb200707f,  /* mop_rr_N */
4581    0xffffffff,  /* mret */
4582    0xfe00707f,  /* mul */
4583    0xfe00707f,  /* mulh */
4584    0xfe00707f,  /* mulhsu */
4585    0xfe00707f,  /* mulhu */
4586    0xffff_ffff, /* mulw */
4587    0xfff0707f,  /* mv */
4588    0xfff0707f,  /* neg */
4589    0xffffffff,  /* nop */
4590    0xffffffff,  /* ntl_all */
4591    0xffffffff,  /* ntl_p1 */
4592    0xffffffff,  /* ntl_pall */
4593    0xffffffff,  /* ntl_s1 */
4594    0xfe00707f,  /* or */
4595    0xfff0707f,  /* orc_b */
4596    0x707f,      /* ori */
4597    0xfe00707f,  /* orn */
4598    0xfe00707f,  /* pack */
4599    0xfe00707f,  /* packh */
4600    0xffff_ffff, /* packw */
4601    0xffffffff,  /* pause */
4602    0x1f07fff,   /* prefetch_i */
4603    0x1f07fff,   /* prefetch_r */
4604    0x1f07fff,   /* prefetch_w */
4605    0xfffff07f,  /* rdcycle */
4606    0xfffff07f,  /* rdcycleh */
4607    0xfffff07f,  /* rdinstret */
4608    0xfffff07f,  /* rdinstreth */
4609    0xfffff07f,  /* rdtime */
4610    0xfffff07f,  /* rdtimeh */
4611    0xfe00707f,  /* rem */
4612    0xfe00707f,  /* remu */
4613    0xffff_ffff, /* remuw */
4614    0xffff_ffff, /* remw */
4615    0xffffffff,  /* ret */
4616    0xffff_ffff, /* rev8 */
4617    0xfff0707f,  /* rev8_rv32 */
4618    0xfe00707f,  /* rol */
4619    0xffff_ffff, /* rolw */
4620    0xfe00707f,  /* ror */
4621    0xffff_ffff, /* rori */
4622    0xfe00707f,  /* rori_rv32 */
4623    0xffff_ffff, /* roriw */
4624    0xffff_ffff, /* rorw */
4625    0x707f,      /* sb */
4626    0xffffffff,  /* sbreak */
4627    0xffff_ffff, /* sc_d */
4628    0xf800707f,  /* sc_w */
4629    0xffffffff,  /* scall */
4630    0xffff_ffff, /* sd */
4631    0xfff0707f,  /* seqz */
4632    0xfff0707f,  /* sext_b */
4633    0xfff0707f,  /* sext_h */
4634    0xffff_ffff, /* sext_w */
4635    0xffffffff,  /* sfence_inval_ir */
4636    0xfe007fff,  /* sfence_vma */
4637    0xffffffff,  /* sfence_w_inval */
4638    0xfe0ff07f,  /* sgtz */
4639    0x707f,      /* sh */
4640    0xfe00707f,  /* sh1add */
4641    0xffff_ffff, /* sh1add_uw */
4642    0xfe00707f,  /* sh2add */
4643    0xffff_ffff, /* sh2add_uw */
4644    0xfe00707f,  /* sh3add */
4645    0xffff_ffff, /* sh3add_uw */
4646    0xfff0707f,  /* sha256sig0 */
4647    0xfff0707f,  /* sha256sig1 */
4648    0xfff0707f,  /* sha256sum0 */
4649    0xfff0707f,  /* sha256sum1 */
4650    0xffff_ffff, /* sha512sig0 */
4651    0xfe00707f,  /* sha512sig0h */
4652    0xfe00707f,  /* sha512sig0l */
4653    0xffff_ffff, /* sha512sig1 */
4654    0xfe00707f,  /* sha512sig1h */
4655    0xfe00707f,  /* sha512sig1l */
4656    0xffff_ffff, /* sha512sum0 */
4657    0xfe00707f,  /* sha512sum0r */
4658    0xffff_ffff, /* sha512sum1 */
4659    0xfe00707f,  /* sha512sum1r */
4660    0xfe007fff,  /* sinval_vma */
4661    0xfe00707f,  /* sll */
4662    0xfc00707f,  /* slli */
4663    0xfe00707f,  /* slli_rv32 */
4664    0xffff_ffff, /* slli_uw */
4665    0xffff_ffff, /* slliw */
4666    0xffff_ffff, /* sllw */
4667    0xfe00707f,  /* slt */
4668    0x707f,      /* slti */
4669    0x707f,      /* sltiu */
4670    0xfe00707f,  /* sltu */
4671    0xfff0707f,  /* sltz */
4672    0xfff0707f,  /* sm3p0 */
4673    0xfff0707f,  /* sm3p1 */
4674    0x3e00707f,  /* sm4ed */
4675    0x3e00707f,  /* sm4ks */
4676    0xfe0ff07f,  /* snez */
4677    0xfe00707f,  /* sra */
4678    0xfc00707f,  /* srai */
4679    0xfe00707f,  /* srai_rv32 */
4680    0xffff_ffff, /* sraiw */
4681    0xffff_ffff, /* sraw */
4682    0xffffffff,  /* sret */
4683    0xfe00707f,  /* srl */
4684    0xfc00707f,  /* srli */
4685    0xfe00707f,  /* srli_rv32 */
4686    0xffff_ffff, /* srliw */
4687    0xffff_ffff, /* srlw */
4688    0xfe00707f,  /* sub */
4689    0xffff_ffff, /* subw */
4690    0x707f,      /* sw */
4691    0xfff0707f,  /* unzip */
4692    0xfc00707f,  /* vaadd_vv */
4693    0xfc00707f,  /* vaadd_vx */
4694    0xfc00707f,  /* vaaddu_vv */
4695    0xfc00707f,  /* vaaddu_vx */
4696    0xfe00707f,  /* vadc_vim */
4697    0xfe00707f,  /* vadc_vvm */
4698    0xfe00707f,  /* vadc_vxm */
4699    0xfc00707f,  /* vadd_vi */
4700    0xfc00707f,  /* vadd_vv */
4701    0xfc00707f,  /* vadd_vx */
4702    0xfe0ff07f,  /* vaesdf_vs */
4703    0xfe0ff07f,  /* vaesdf_vv */
4704    0xfe0ff07f,  /* vaesdm_vs */
4705    0xfe0ff07f,  /* vaesdm_vv */
4706    0xfe0ff07f,  /* vaesef_vs */
4707    0xfe0ff07f,  /* vaesef_vv */
4708    0xfe0ff07f,  /* vaesem_vs */
4709    0xfe0ff07f,  /* vaesem_vv */
4710    0xfe00707f,  /* vaeskf1_vi */
4711    0xfe00707f,  /* vaeskf2_vi */
4712    0xfe0ff07f,  /* vaesz_vs */
4713    0xfc00707f,  /* vand_vi */
4714    0xfc00707f,  /* vand_vv */
4715    0xfc00707f,  /* vand_vx */
4716    0xfc00707f,  /* vandn_vv */
4717    0xfc00707f,  /* vandn_vx */
4718    0xfc00707f,  /* vasub_vv */
4719    0xfc00707f,  /* vasub_vx */
4720    0xfc00707f,  /* vasubu_vv */
4721    0xfc00707f,  /* vasubu_vx */
4722    0xfc0ff07f,  /* vbrev8_v */
4723    0xfc0ff07f,  /* vbrev_v */
4724    0xfc00707f,  /* vclmul_vv */
4725    0xfc00707f,  /* vclmul_vx */
4726    0xfc00707f,  /* vclmulh_vv */
4727    0xfc00707f,  /* vclmulh_vx */
4728    0xfc0ff07f,  /* vclz_v */
4729    0xfe00707f,  /* vcompress_vm */
4730    0xfc0ff07f,  /* vcpop_m */
4731    0xfc0ff07f,  /* vcpop_v */
4732    0xfc0ff07f,  /* vctz_v */
4733    0xfc00707f,  /* vdiv_vv */
4734    0xfc00707f,  /* vdiv_vx */
4735    0xfc00707f,  /* vdivu_vv */
4736    0xfc00707f,  /* vdivu_vx */
4737    0xfc00707f,  /* vfadd_vf */
4738    0xfc00707f,  /* vfadd_vv */
4739    0xfc0ff07f,  /* vfclass_v */
4740    0xfc0ff07f,  /* vfcvt_f_x_v */
4741    0xfc0ff07f,  /* vfcvt_f_xu_v */
4742    0xfc0ff07f,  /* vfcvt_rtz_x_f_v */
4743    0xfc0ff07f,  /* vfcvt_rtz_xu_f_v */
4744    0xfc0ff07f,  /* vfcvt_x_f_v */
4745    0xfc0ff07f,  /* vfcvt_xu_f_v */
4746    0xfc00707f,  /* vfdiv_vf */
4747    0xfc00707f,  /* vfdiv_vv */
4748    0xfc0ff07f,  /* vfirst_m */
4749    0xfc00707f,  /* vfmacc_vf */
4750    0xfc00707f,  /* vfmacc_vv */
4751    0xfc00707f,  /* vfmadd_vf */
4752    0xfc00707f,  /* vfmadd_vv */
4753    0xfc00707f,  /* vfmax_vf */
4754    0xfc00707f,  /* vfmax_vv */
4755    0xfe00707f,  /* vfmerge_vfm */
4756    0xfc00707f,  /* vfmin_vf */
4757    0xfc00707f,  /* vfmin_vv */
4758    0xfc00707f,  /* vfmsac_vf */
4759    0xfc00707f,  /* vfmsac_vv */
4760    0xfc00707f,  /* vfmsub_vf */
4761    0xfc00707f,  /* vfmsub_vv */
4762    0xfc00707f,  /* vfmul_vf */
4763    0xfc00707f,  /* vfmul_vv */
4764    0xfe0ff07f,  /* vfmv_f_s */
4765    0xfff0707f,  /* vfmv_s_f */
4766    0xfff0707f,  /* vfmv_v_f */
4767    0xfc0ff07f,  /* vfncvt_f_f_w */
4768    0xfc0ff07f,  /* vfncvt_f_x_w */
4769    0xfc0ff07f,  /* vfncvt_f_xu_w */
4770    0xfc0ff07f,  /* vfncvt_rod_f_f_w */
4771    0xfc0ff07f,  /* vfncvt_rtz_x_f_w */
4772    0xfc0ff07f,  /* vfncvt_rtz_xu_f_w */
4773    0xfc0ff07f,  /* vfncvt_x_f_w */
4774    0xfc0ff07f,  /* vfncvt_xu_f_w */
4775    0xfc00707f,  /* vfnmacc_vf */
4776    0xfc00707f,  /* vfnmacc_vv */
4777    0xfc00707f,  /* vfnmadd_vf */
4778    0xfc00707f,  /* vfnmadd_vv */
4779    0xfc00707f,  /* vfnmsac_vf */
4780    0xfc00707f,  /* vfnmsac_vv */
4781    0xfc00707f,  /* vfnmsub_vf */
4782    0xfc00707f,  /* vfnmsub_vv */
4783    0xfc00707f,  /* vfrdiv_vf */
4784    0xfc0ff07f,  /* vfrec7_v */
4785    0xfc00707f,  /* vfredmax_vs */
4786    0xfc00707f,  /* vfredmin_vs */
4787    0xfc00707f,  /* vfredosum_vs */
4788    0xfc00707f,  /* vfredsum_vs */
4789    0xfc00707f,  /* vfredusum_vs */
4790    0xfc0ff07f,  /* vfrsqrt7_v */
4791    0xfc00707f,  /* vfrsub_vf */
4792    0xfc00707f,  /* vfsgnj_vf */
4793    0xfc00707f,  /* vfsgnj_vv */
4794    0xfc00707f,  /* vfsgnjn_vf */
4795    0xfc00707f,  /* vfsgnjn_vv */
4796    0xfc00707f,  /* vfsgnjx_vf */
4797    0xfc00707f,  /* vfsgnjx_vv */
4798    0xfc00707f,  /* vfslide1down_vf */
4799    0xfc00707f,  /* vfslide1up_vf */
4800    0xfc0ff07f,  /* vfsqrt_v */
4801    0xfc00707f,  /* vfsub_vf */
4802    0xfc00707f,  /* vfsub_vv */
4803    0xfc00707f,  /* vfwadd_vf */
4804    0xfc00707f,  /* vfwadd_vv */
4805    0xfc00707f,  /* vfwadd_wf */
4806    0xfc00707f,  /* vfwadd_wv */
4807    0xfc0ff07f,  /* vfwcvt_f_f_v */
4808    0xfc0ff07f,  /* vfwcvt_f_x_v */
4809    0xfc0ff07f,  /* vfwcvt_f_xu_v */
4810    0xfc0ff07f,  /* vfwcvt_rtz_x_f_v */
4811    0xfc0ff07f,  /* vfwcvt_rtz_xu_f_v */
4812    0xfc0ff07f,  /* vfwcvt_x_f_v */
4813    0xfc0ff07f,  /* vfwcvt_xu_f_v */
4814    0xfc00707f,  /* vfwmacc_vf */
4815    0xfc00707f,  /* vfwmacc_vv */
4816    0xfc00707f,  /* vfwmsac_vf */
4817    0xfc00707f,  /* vfwmsac_vv */
4818    0xfc00707f,  /* vfwmul_vf */
4819    0xfc00707f,  /* vfwmul_vv */
4820    0xfc00707f,  /* vfwnmacc_vf */
4821    0xfc00707f,  /* vfwnmacc_vv */
4822    0xfc00707f,  /* vfwnmsac_vf */
4823    0xfc00707f,  /* vfwnmsac_vv */
4824    0xfc00707f,  /* vfwredosum_vs */
4825    0xfc00707f,  /* vfwredsum_vs */
4826    0xfc00707f,  /* vfwredusum_vs */
4827    0xfc00707f,  /* vfwsub_vf */
4828    0xfc00707f,  /* vfwsub_vv */
4829    0xfc00707f,  /* vfwsub_wf */
4830    0xfc00707f,  /* vfwsub_wv */
4831    0xfe00707f,  /* vghsh_vv */
4832    0xfe0ff07f,  /* vgmul_vv */
4833    0xfdfff07f,  /* vid_v */
4834    0xfc0ff07f,  /* viota_m */
4835    0xfff0707f,  /* vl1r_v */
4836    0xfff0707f,  /* vl1re16_v */
4837    0xfff0707f,  /* vl1re32_v */
4838    0xfff0707f,  /* vl1re64_v */
4839    0xfff0707f,  /* vl1re8_v */
4840    0xfff0707f,  /* vl2r_v */
4841    0xfff0707f,  /* vl2re16_v */
4842    0xfff0707f,  /* vl2re32_v */
4843    0xfff0707f,  /* vl2re64_v */
4844    0xfff0707f,  /* vl2re8_v */
4845    0xfff0707f,  /* vl4r_v */
4846    0xfff0707f,  /* vl4re16_v */
4847    0xfff0707f,  /* vl4re32_v */
4848    0xfff0707f,  /* vl4re64_v */
4849    0xfff0707f,  /* vl4re8_v */
4850    0xfff0707f,  /* vl8r_v */
4851    0xfff0707f,  /* vl8re16_v */
4852    0xfff0707f,  /* vl8re32_v */
4853    0xfff0707f,  /* vl8re64_v */
4854    0xfff0707f,  /* vl8re8_v */
4855    0x1df0707f,  /* vle16_v */
4856    0x1df0707f,  /* vle16ff_v */
4857    0xfff0707f,  /* vle1_v */
4858    0x1df0707f,  /* vle32_v */
4859    0x1df0707f,  /* vle32ff_v */
4860    0x1df0707f,  /* vle64_v */
4861    0x1df0707f,  /* vle64ff_v */
4862    0x1df0707f,  /* vle8_v */
4863    0x1df0707f,  /* vle8ff_v */
4864    0xfff0707f,  /* vlm_v */
4865    0x1c00707f,  /* vloxei16_v */
4866    0x1c00707f,  /* vloxei32_v */
4867    0x1c00707f,  /* vloxei64_v */
4868    0x1c00707f,  /* vloxei8_v */
4869    0x1c00707f,  /* vlse16_v */
4870    0x1c00707f,  /* vlse32_v */
4871    0x1c00707f,  /* vlse64_v */
4872    0x1c00707f,  /* vlse8_v */
4873    0x1c00707f,  /* vluxei16_v */
4874    0x1c00707f,  /* vluxei32_v */
4875    0x1c00707f,  /* vluxei64_v */
4876    0x1c00707f,  /* vluxei8_v */
4877    0xfc00707f,  /* vmacc_vv */
4878    0xfc00707f,  /* vmacc_vx */
4879    0xfe00707f,  /* vmadc_vi */
4880    0xfe00707f,  /* vmadc_vim */
4881    0xfe00707f,  /* vmadc_vv */
4882    0xfe00707f,  /* vmadc_vvm */
4883    0xfe00707f,  /* vmadc_vx */
4884    0xfe00707f,  /* vmadc_vxm */
4885    0xfc00707f,  /* vmadd_vv */
4886    0xfc00707f,  /* vmadd_vx */
4887    0xfe00707f,  /* vmand_mm */
4888    0xfe00707f,  /* vmandn_mm */
4889    0xfc00707f,  /* vmandnot_mm */
4890    0xfc00707f,  /* vmax_vv */
4891    0xfc00707f,  /* vmax_vx */
4892    0xfc00707f,  /* vmaxu_vv */
4893    0xfc00707f,  /* vmaxu_vx */
4894    0xfe00707f,  /* vmerge_vim */
4895    0xfe00707f,  /* vmerge_vvm */
4896    0xfe00707f,  /* vmerge_vxm */
4897    0xfc00707f,  /* vmfeq_vf */
4898    0xfc00707f,  /* vmfeq_vv */
4899    0xfc00707f,  /* vmfge_vf */
4900    0xfc00707f,  /* vmfgt_vf */
4901    0xfc00707f,  /* vmfle_vf */
4902    0xfc00707f,  /* vmfle_vv */
4903    0xfc00707f,  /* vmflt_vf */
4904    0xfc00707f,  /* vmflt_vv */
4905    0xfc00707f,  /* vmfne_vf */
4906    0xfc00707f,  /* vmfne_vv */
4907    0xfc00707f,  /* vmin_vv */
4908    0xfc00707f,  /* vmin_vx */
4909    0xfc00707f,  /* vminu_vv */
4910    0xfc00707f,  /* vminu_vx */
4911    0xfe00707f,  /* vmnand_mm */
4912    0xfe00707f,  /* vmnor_mm */
4913    0xfe00707f,  /* vmor_mm */
4914    0xfe00707f,  /* vmorn_mm */
4915    0xfc00707f,  /* vmornot_mm */
4916    0xfe00707f,  /* vmsbc_vv */
4917    0xfe00707f,  /* vmsbc_vvm */
4918    0xfe00707f,  /* vmsbc_vx */
4919    0xfe00707f,  /* vmsbc_vxm */
4920    0xfc0ff07f,  /* vmsbf_m */
4921    0xfc00707f,  /* vmseq_vi */
4922    0xfc00707f,  /* vmseq_vv */
4923    0xfc00707f,  /* vmseq_vx */
4924    0xfc00707f,  /* vmsgt_vi */
4925    0xfc00707f,  /* vmsgt_vx */
4926    0xfc00707f,  /* vmsgtu_vi */
4927    0xfc00707f,  /* vmsgtu_vx */
4928    0xfc0ff07f,  /* vmsif_m */
4929    0xfc00707f,  /* vmsle_vi */
4930    0xfc00707f,  /* vmsle_vv */
4931    0xfc00707f,  /* vmsle_vx */
4932    0xfc00707f,  /* vmsleu_vi */
4933    0xfc00707f,  /* vmsleu_vv */
4934    0xfc00707f,  /* vmsleu_vx */
4935    0xfc00707f,  /* vmslt_vv */
4936    0xfc00707f,  /* vmslt_vx */
4937    0xfc00707f,  /* vmsltu_vv */
4938    0xfc00707f,  /* vmsltu_vx */
4939    0xfc00707f,  /* vmsne_vi */
4940    0xfc00707f,  /* vmsne_vv */
4941    0xfc00707f,  /* vmsne_vx */
4942    0xfc0ff07f,  /* vmsof_m */
4943    0xfc00707f,  /* vmul_vv */
4944    0xfc00707f,  /* vmul_vx */
4945    0xfc00707f,  /* vmulh_vv */
4946    0xfc00707f,  /* vmulh_vx */
4947    0xfc00707f,  /* vmulhsu_vv */
4948    0xfc00707f,  /* vmulhsu_vx */
4949    0xfc00707f,  /* vmulhu_vv */
4950    0xfc00707f,  /* vmulhu_vx */
4951    0xfe0ff07f,  /* vmv1r_v */
4952    0xfe0ff07f,  /* vmv2r_v */
4953    0xfe0ff07f,  /* vmv4r_v */
4954    0xfe0ff07f,  /* vmv8r_v */
4955    0xfff0707f,  /* vmv_s_x */
4956    0xfff0707f,  /* vmv_v_i */
4957    0xfff0707f,  /* vmv_v_v */
4958    0xfff0707f,  /* vmv_v_x */
4959    0xfe0ff07f,  /* vmv_x_s */
4960    0xfe00707f,  /* vmxnor_mm */
4961    0xfe00707f,  /* vmxor_mm */
4962    0xfc00707f,  /* vnclip_wi */
4963    0xfc00707f,  /* vnclip_wv */
4964    0xfc00707f,  /* vnclip_wx */
4965    0xfc00707f,  /* vnclipu_wi */
4966    0xfc00707f,  /* vnclipu_wv */
4967    0xfc00707f,  /* vnclipu_wx */
4968    0xfc00707f,  /* vnmsac_vv */
4969    0xfc00707f,  /* vnmsac_vx */
4970    0xfc00707f,  /* vnmsub_vv */
4971    0xfc00707f,  /* vnmsub_vx */
4972    0xfc00707f,  /* vnsra_wi */
4973    0xfc00707f,  /* vnsra_wv */
4974    0xfc00707f,  /* vnsra_wx */
4975    0xfc00707f,  /* vnsrl_wi */
4976    0xfc00707f,  /* vnsrl_wv */
4977    0xfc00707f,  /* vnsrl_wx */
4978    0xfc00707f,  /* vor_vi */
4979    0xfc00707f,  /* vor_vv */
4980    0xfc00707f,  /* vor_vx */
4981    0xfc0ff07f,  /* vpopc_m */
4982    0xfc00707f,  /* vredand_vs */
4983    0xfc00707f,  /* vredmax_vs */
4984    0xfc00707f,  /* vredmaxu_vs */
4985    0xfc00707f,  /* vredmin_vs */
4986    0xfc00707f,  /* vredminu_vs */
4987    0xfc00707f,  /* vredor_vs */
4988    0xfc00707f,  /* vredsum_vs */
4989    0xfc00707f,  /* vredxor_vs */
4990    0xfc00707f,  /* vrem_vv */
4991    0xfc00707f,  /* vrem_vx */
4992    0xfc00707f,  /* vremu_vv */
4993    0xfc00707f,  /* vremu_vx */
4994    0xfc0ff07f,  /* vrev8_v */
4995    0xfc00707f,  /* vrgather_vi */
4996    0xfc00707f,  /* vrgather_vv */
4997    0xfc00707f,  /* vrgather_vx */
4998    0xfc00707f,  /* vrgatherei16_vv */
4999    0xfc00707f,  /* vrol_vv */
5000    0xfc00707f,  /* vrol_vx */
5001    0xf800707f,  /* vror_vi */
5002    0xfc00707f,  /* vror_vv */
5003    0xfc00707f,  /* vror_vx */
5004    0xfc00707f,  /* vrsub_vi */
5005    0xfc00707f,  /* vrsub_vx */
5006    0xfff0707f,  /* vs1r_v */
5007    0xfff0707f,  /* vs2r_v */
5008    0xfff0707f,  /* vs4r_v */
5009    0xfff0707f,  /* vs8r_v */
5010    0xfc00707f,  /* vsadd_vi */
5011    0xfc00707f,  /* vsadd_vv */
5012    0xfc00707f,  /* vsadd_vx */
5013    0xfc00707f,  /* vsaddu_vi */
5014    0xfc00707f,  /* vsaddu_vv */
5015    0xfc00707f,  /* vsaddu_vx */
5016    0xfe00707f,  /* vsbc_vvm */
5017    0xfe00707f,  /* vsbc_vxm */
5018    0x1df0707f,  /* vse16_v */
5019    0xfff0707f,  /* vse1_v */
5020    0x1df0707f,  /* vse32_v */
5021    0x1df0707f,  /* vse64_v */
5022    0x1df0707f,  /* vse8_v */
5023    0xc000707f,  /* vsetivli */
5024    0xfe00707f,  /* vsetvl */
5025    0x8000707f,  /* vsetvli */
5026    0xfc0ff07f,  /* vsext_vf2 */
5027    0xfc0ff07f,  /* vsext_vf4 */
5028    0xfc0ff07f,  /* vsext_vf8 */
5029    0xfe00707f,  /* vsha2ch_vv */
5030    0xfe00707f,  /* vsha2cl_vv */
5031    0xfe00707f,  /* vsha2ms_vv */
5032    0xfc00707f,  /* vslide1down_vx */
5033    0xfc00707f,  /* vslide1up_vx */
5034    0xfc00707f,  /* vslidedown_vi */
5035    0xfc00707f,  /* vslidedown_vx */
5036    0xfc00707f,  /* vslideup_vi */
5037    0xfc00707f,  /* vslideup_vx */
5038    0xfc00707f,  /* vsll_vi */
5039    0xfc00707f,  /* vsll_vv */
5040    0xfc00707f,  /* vsll_vx */
5041    0xfe00707f,  /* vsm3c_vi */
5042    0xfe00707f,  /* vsm3me_vv */
5043    0xfe00707f,  /* vsm4k_vi */
5044    0xfe0ff07f,  /* vsm4r_vs */
5045    0xfe0ff07f,  /* vsm4r_vv */
5046    0xfff0707f,  /* vsm_v */
5047    0xfc00707f,  /* vsmul_vv */
5048    0xfc00707f,  /* vsmul_vx */
5049    0x1c00707f,  /* vsoxei16_v */
5050    0x1c00707f,  /* vsoxei32_v */
5051    0x1c00707f,  /* vsoxei64_v */
5052    0x1c00707f,  /* vsoxei8_v */
5053    0xfc00707f,  /* vsra_vi */
5054    0xfc00707f,  /* vsra_vv */
5055    0xfc00707f,  /* vsra_vx */
5056    0xfc00707f,  /* vsrl_vi */
5057    0xfc00707f,  /* vsrl_vv */
5058    0xfc00707f,  /* vsrl_vx */
5059    0x1c00707f,  /* vsse16_v */
5060    0x1c00707f,  /* vsse32_v */
5061    0x1c00707f,  /* vsse64_v */
5062    0x1c00707f,  /* vsse8_v */
5063    0xfc00707f,  /* vssra_vi */
5064    0xfc00707f,  /* vssra_vv */
5065    0xfc00707f,  /* vssra_vx */
5066    0xfc00707f,  /* vssrl_vi */
5067    0xfc00707f,  /* vssrl_vv */
5068    0xfc00707f,  /* vssrl_vx */
5069    0xfc00707f,  /* vssub_vv */
5070    0xfc00707f,  /* vssub_vx */
5071    0xfc00707f,  /* vssubu_vv */
5072    0xfc00707f,  /* vssubu_vx */
5073    0xfc00707f,  /* vsub_vv */
5074    0xfc00707f,  /* vsub_vx */
5075    0x1c00707f,  /* vsuxei16_v */
5076    0x1c00707f,  /* vsuxei32_v */
5077    0x1c00707f,  /* vsuxei64_v */
5078    0x1c00707f,  /* vsuxei8_v */
5079    0xfc00707f,  /* vwadd_vv */
5080    0xfc00707f,  /* vwadd_vx */
5081    0xfc00707f,  /* vwadd_wv */
5082    0xfc00707f,  /* vwadd_wx */
5083    0xfc00707f,  /* vwaddu_vv */
5084    0xfc00707f,  /* vwaddu_vx */
5085    0xfc00707f,  /* vwaddu_wv */
5086    0xfc00707f,  /* vwaddu_wx */
5087    0xfc00707f,  /* vwmacc_vv */
5088    0xfc00707f,  /* vwmacc_vx */
5089    0xfc00707f,  /* vwmaccsu_vv */
5090    0xfc00707f,  /* vwmaccsu_vx */
5091    0xfc00707f,  /* vwmaccu_vv */
5092    0xfc00707f,  /* vwmaccu_vx */
5093    0xfc00707f,  /* vwmaccus_vx */
5094    0xfc00707f,  /* vwmul_vv */
5095    0xfc00707f,  /* vwmul_vx */
5096    0xfc00707f,  /* vwmulsu_vv */
5097    0xfc00707f,  /* vwmulsu_vx */
5098    0xfc00707f,  /* vwmulu_vv */
5099    0xfc00707f,  /* vwmulu_vx */
5100    0xfc00707f,  /* vwredsum_vs */
5101    0xfc00707f,  /* vwredsumu_vs */
5102    0xfc00707f,  /* vwsll_vi */
5103    0xfc00707f,  /* vwsll_vv */
5104    0xfc00707f,  /* vwsll_vx */
5105    0xfc00707f,  /* vwsub_vv */
5106    0xfc00707f,  /* vwsub_vx */
5107    0xfc00707f,  /* vwsub_wv */
5108    0xfc00707f,  /* vwsub_wx */
5109    0xfc00707f,  /* vwsubu_vv */
5110    0xfc00707f,  /* vwsubu_vx */
5111    0xfc00707f,  /* vwsubu_wv */
5112    0xfc00707f,  /* vwsubu_wx */
5113    0xfc00707f,  /* vxor_vi */
5114    0xfc00707f,  /* vxor_vv */
5115    0xfc00707f,  /* vxor_vx */
5116    0xfc0ff07f,  /* vzext_vf2 */
5117    0xfc0ff07f,  /* vzext_vf4 */
5118    0xfc0ff07f,  /* vzext_vf8 */
5119    0xffffffff,  /* wfi */
5120    0xffffffff,  /* wrs_nto */
5121    0xffffffff,  /* wrs_sto */
5122    0xfe00707f,  /* xnor */
5123    0xfe00707f,  /* xor */
5124    0x707f,      /* xori */
5125    0xfe00707f,  /* xperm4 */
5126    0xfe00707f,  /* xperm8 */
5127    0xfff0707f,  /* zext_b */
5128    0xffff_ffff, /* zext_h */
5129    0xfff0707f,  /* zext_h_rv32 */
5130    0xffff_ffff, /* zext_w */
5131    0xfff0707f,  /* zip */
5132];
5133pub static OPCODE64_MATCH: [u32; 1021] = [
5134    0x33,        /* add */
5135    0x800003b,   /* add_uw */
5136    0x13,        /* addi */
5137    0x1b,        /* addiw */
5138    0x3b,        /* addw */
5139    0xffff_ffff, /* aes32dsi */
5140    0xffff_ffff, /* aes32dsmi */
5141    0xffff_ffff, /* aes32esi */
5142    0xffff_ffff, /* aes32esmi */
5143    0x3a000033,  /* aes64ds */
5144    0x3e000033,  /* aes64dsm */
5145    0x32000033,  /* aes64es */
5146    0x36000033,  /* aes64esm */
5147    0x30001013,  /* aes64im */
5148    0x31001013,  /* aes64ks1i */
5149    0x7e000033,  /* aes64ks2 */
5150    0x2f,        /* amoadd_b */
5151    0x302f,      /* amoadd_d */
5152    0x102f,      /* amoadd_h */
5153    0x202f,      /* amoadd_w */
5154    0x6000002f,  /* amoand_b */
5155    0x6000302f,  /* amoand_d */
5156    0x6000102f,  /* amoand_h */
5157    0x6000202f,  /* amoand_w */
5158    0x2800002f,  /* amocas_b */
5159    0x2800302f,  /* amocas_d */
5160    0x2800102f,  /* amocas_h */
5161    0x2800402f,  /* amocas_q */
5162    0x2800202f,  /* amocas_w */
5163    0xa000002f,  /* amomax_b */
5164    0xa000302f,  /* amomax_d */
5165    0xa000102f,  /* amomax_h */
5166    0xa000202f,  /* amomax_w */
5167    0xe000002f,  /* amomaxu_b */
5168    0xe000302f,  /* amomaxu_d */
5169    0xe000102f,  /* amomaxu_h */
5170    0xe000202f,  /* amomaxu_w */
5171    0x8000002f,  /* amomin_b */
5172    0x8000302f,  /* amomin_d */
5173    0x8000102f,  /* amomin_h */
5174    0x8000202f,  /* amomin_w */
5175    0xc000002f,  /* amominu_b */
5176    0xc000302f,  /* amominu_d */
5177    0xc000102f,  /* amominu_h */
5178    0xc000202f,  /* amominu_w */
5179    0x4000002f,  /* amoor_b */
5180    0x4000302f,  /* amoor_d */
5181    0x4000102f,  /* amoor_h */
5182    0x4000202f,  /* amoor_w */
5183    0x800002f,   /* amoswap_b */
5184    0x800302f,   /* amoswap_d */
5185    0x800102f,   /* amoswap_h */
5186    0x800202f,   /* amoswap_w */
5187    0x2000002f,  /* amoxor_b */
5188    0x2000302f,  /* amoxor_d */
5189    0x2000102f,  /* amoxor_h */
5190    0x2000202f,  /* amoxor_w */
5191    0x7033,      /* and */
5192    0x7013,      /* andi */
5193    0x40007033,  /* andn */
5194    0x17,        /* auipc */
5195    0x48001033,  /* bclr */
5196    0x48001013,  /* bclri */
5197    0xffff_ffff, /* bclri_rv32 */
5198    0x63,        /* beq */
5199    0x63,        /* beqz */
5200    0x48005033,  /* bext */
5201    0x48005013,  /* bexti */
5202    0xffff_ffff, /* bexti_rv32 */
5203    0x5063,      /* bge */
5204    0x7063,      /* bgeu */
5205    0x5063,      /* bgez */
5206    0x4063,      /* bgt */
5207    0x6063,      /* bgtu */
5208    0x4063,      /* bgtz */
5209    0x68001033,  /* binv */
5210    0x68001013,  /* binvi */
5211    0xffff_ffff, /* binvi_rv32 */
5212    0x5063,      /* ble */
5213    0x7063,      /* bleu */
5214    0x5063,      /* blez */
5215    0x4063,      /* blt */
5216    0x6063,      /* bltu */
5217    0x4063,      /* bltz */
5218    0x1063,      /* bne */
5219    0x1063,      /* bnez */
5220    0x68705013,  /* brev8 */
5221    0x28001033,  /* bset */
5222    0x28001013,  /* bseti */
5223    0xffff_ffff, /* bseti_rv32 */
5224    0x9002,      /* c_add */
5225    0x1,         /* c_addi */
5226    0x6101,      /* c_addi16sp */
5227    0x0,         /* c_addi4spn */
5228    0x2001,      /* c_addiw */
5229    0x9c21,      /* c_addw */
5230    0x8c61,      /* c_and */
5231    0x8801,      /* c_andi */
5232    0xc001,      /* c_beqz */
5233    0xe001,      /* c_bnez */
5234    0x9002,      /* c_ebreak */
5235    0x2000,      /* c_fld */
5236    0x2002,      /* c_fldsp */
5237    0xffff_ffff, /* c_flw */
5238    0xffff_ffff, /* c_flwsp */
5239    0xa000,      /* c_fsd */
5240    0xa002,      /* c_fsdsp */
5241    0xffff_ffff, /* c_fsw */
5242    0xffff_ffff, /* c_fswsp */
5243    0xa001,      /* c_j */
5244    0xffff_ffff, /* c_jal */
5245    0x9002,      /* c_jalr */
5246    0x8002,      /* c_jr */
5247    0x8000,      /* c_lbu */
5248    0x6000,      /* c_ld */
5249    0x6002,      /* c_ldsp */
5250    0x8440,      /* c_lh */
5251    0x8400,      /* c_lhu */
5252    0x4001,      /* c_li */
5253    0x6001,      /* c_lui */
5254    0x4000,      /* c_lw */
5255    0x4002,      /* c_lwsp */
5256    0x6081,      /* c_mop_1 */
5257    0x6581,      /* c_mop_11 */
5258    0x6681,      /* c_mop_13 */
5259    0x6781,      /* c_mop_15 */
5260    0x6181,      /* c_mop_3 */
5261    0x6281,      /* c_mop_5 */
5262    0x6381,      /* c_mop_7 */
5263    0x6481,      /* c_mop_9 */
5264    0x6081,      /* c_mop_N */
5265    0x9c41,      /* c_mul */
5266    0x8002,      /* c_mv */
5267    0x1,         /* c_nop */
5268    0x9c75,      /* c_not */
5269    0x9016,      /* c_ntl_all */
5270    0x900a,      /* c_ntl_p1 */
5271    0x900e,      /* c_ntl_pall */
5272    0x9012,      /* c_ntl_s1 */
5273    0x8c41,      /* c_or */
5274    0x8800,      /* c_sb */
5275    0xe000,      /* c_sd */
5276    0xe002,      /* c_sdsp */
5277    0x9c65,      /* c_sext_b */
5278    0x9c6d,      /* c_sext_h */
5279    0x2001,      /* c_sext_w */
5280    0x8c00,      /* c_sh */
5281    0x2,         /* c_slli */
5282    0xffff_ffff, /* c_slli_rv32 */
5283    0x8401,      /* c_srai */
5284    0xffff_ffff, /* c_srai_rv32 */
5285    0x8001,      /* c_srli */
5286    0xffff_ffff, /* c_srli_rv32 */
5287    0x8c01,      /* c_sub */
5288    0x9c01,      /* c_subw */
5289    0xc000,      /* c_sw */
5290    0xc002,      /* c_swsp */
5291    0x8c21,      /* c_xor */
5292    0x9c61,      /* c_zext_b */
5293    0x9c69,      /* c_zext_h */
5294    0x9c71,      /* c_zext_w */
5295    0x10200f,    /* cbo_clean */
5296    0x20200f,    /* cbo_flush */
5297    0x200f,      /* cbo_inval */
5298    0x40200f,    /* cbo_zero */
5299    0xa001033,   /* clmul */
5300    0xa003033,   /* clmulh */
5301    0xa002033,   /* clmulr */
5302    0x60001013,  /* clz */
5303    0x6000101b,  /* clzw */
5304    0xa002,      /* cm_jalt */
5305    0xac62,      /* cm_mva01s */
5306    0xac22,      /* cm_mvsa01 */
5307    0xba02,      /* cm_pop */
5308    0xbe02,      /* cm_popret */
5309    0xbc02,      /* cm_popretz */
5310    0xb802,      /* cm_push */
5311    0x60201013,  /* cpop */
5312    0x6020101b,  /* cpopw */
5313    0x3073,      /* csrc */
5314    0x7073,      /* csrci */
5315    0x2073,      /* csrr */
5316    0x3073,      /* csrrc */
5317    0x7073,      /* csrrci */
5318    0x2073,      /* csrrs */
5319    0x6073,      /* csrrsi */
5320    0x1073,      /* csrrw */
5321    0x5073,      /* csrrwi */
5322    0x2073,      /* csrs */
5323    0x6073,      /* csrsi */
5324    0x1073,      /* csrw */
5325    0x5073,      /* csrwi */
5326    0x60101013,  /* ctz */
5327    0x6010101b,  /* ctzw */
5328    0xe005033,   /* czero_eqz */
5329    0xe007033,   /* czero_nez */
5330    0x2004033,   /* div */
5331    0x2005033,   /* divu */
5332    0x200503b,   /* divuw */
5333    0x200403b,   /* divw */
5334    0x7b200073,  /* dret */
5335    0x100073,    /* ebreak */
5336    0x73,        /* ecall */
5337    0x22002053,  /* fabs_d */
5338    0x24002053,  /* fabs_h */
5339    0x26002053,  /* fabs_q */
5340    0x20002053,  /* fabs_s */
5341    0x2000053,   /* fadd_d */
5342    0x4000053,   /* fadd_h */
5343    0x6000053,   /* fadd_q */
5344    0x53,        /* fadd_s */
5345    0xe2001053,  /* fclass_d */
5346    0xe4001053,  /* fclass_h */
5347    0xe6001053,  /* fclass_q */
5348    0xe0001053,  /* fclass_s */
5349    0x42200053,  /* fcvt_d_h */
5350    0xd2200053,  /* fcvt_d_l */
5351    0xd2300053,  /* fcvt_d_lu */
5352    0x42300053,  /* fcvt_d_q */
5353    0x42000053,  /* fcvt_d_s */
5354    0xd2000053,  /* fcvt_d_w */
5355    0xd2100053,  /* fcvt_d_wu */
5356    0x44100053,  /* fcvt_h_d */
5357    0xd4200053,  /* fcvt_h_l */
5358    0xd4300053,  /* fcvt_h_lu */
5359    0x44300053,  /* fcvt_h_q */
5360    0x44000053,  /* fcvt_h_s */
5361    0xd4000053,  /* fcvt_h_w */
5362    0xd4100053,  /* fcvt_h_wu */
5363    0xc2200053,  /* fcvt_l_d */
5364    0xc4200053,  /* fcvt_l_h */
5365    0xc6200053,  /* fcvt_l_q */
5366    0xc0200053,  /* fcvt_l_s */
5367    0xc2300053,  /* fcvt_lu_d */
5368    0xc4300053,  /* fcvt_lu_h */
5369    0xc6300053,  /* fcvt_lu_q */
5370    0xc0300053,  /* fcvt_lu_s */
5371    0x46100053,  /* fcvt_q_d */
5372    0x46200053,  /* fcvt_q_h */
5373    0xd6200053,  /* fcvt_q_l */
5374    0xd6300053,  /* fcvt_q_lu */
5375    0x46000053,  /* fcvt_q_s */
5376    0xd6000053,  /* fcvt_q_w */
5377    0xd6100053,  /* fcvt_q_wu */
5378    0x40100053,  /* fcvt_s_d */
5379    0x40200053,  /* fcvt_s_h */
5380    0xd0200053,  /* fcvt_s_l */
5381    0xd0300053,  /* fcvt_s_lu */
5382    0x40300053,  /* fcvt_s_q */
5383    0xd0000053,  /* fcvt_s_w */
5384    0xd0100053,  /* fcvt_s_wu */
5385    0xc2000053,  /* fcvt_w_d */
5386    0xc4000053,  /* fcvt_w_h */
5387    0xc6000053,  /* fcvt_w_q */
5388    0xc0000053,  /* fcvt_w_s */
5389    0xc2100053,  /* fcvt_wu_d */
5390    0xc4100053,  /* fcvt_wu_h */
5391    0xc6100053,  /* fcvt_wu_q */
5392    0xc0100053,  /* fcvt_wu_s */
5393    0xc2801053,  /* fcvtmod_w_d */
5394    0x1a000053,  /* fdiv_d */
5395    0x1c000053,  /* fdiv_h */
5396    0x1e000053,  /* fdiv_q */
5397    0x18000053,  /* fdiv_s */
5398    0xf,         /* fence */
5399    0x100f,      /* fence_i */
5400    0x8330000f,  /* fence_tso */
5401    0xa2002053,  /* feq_d */
5402    0xa4002053,  /* feq_h */
5403    0xa6002053,  /* feq_q */
5404    0xa0002053,  /* feq_s */
5405    0x3007,      /* fld */
5406    0xa2000053,  /* fle_d */
5407    0xa4000053,  /* fle_h */
5408    0xa6000053,  /* fle_q */
5409    0xa0000053,  /* fle_s */
5410    0xa2004053,  /* fleq_d */
5411    0xa4004053,  /* fleq_h */
5412    0xa6004053,  /* fleq_q */
5413    0xa0004053,  /* fleq_s */
5414    0x1007,      /* flh */
5415    0xf2100053,  /* fli_d */
5416    0xf4100053,  /* fli_h */
5417    0xf6100053,  /* fli_q */
5418    0xf0100053,  /* fli_s */
5419    0x4007,      /* flq */
5420    0xa2001053,  /* flt_d */
5421    0xa4001053,  /* flt_h */
5422    0xa6001053,  /* flt_q */
5423    0xa0001053,  /* flt_s */
5424    0xa2005053,  /* fltq_d */
5425    0xa4005053,  /* fltq_h */
5426    0xa6005053,  /* fltq_q */
5427    0xa0005053,  /* fltq_s */
5428    0x2007,      /* flw */
5429    0x2000043,   /* fmadd_d */
5430    0x4000043,   /* fmadd_h */
5431    0x6000043,   /* fmadd_q */
5432    0x43,        /* fmadd_s */
5433    0x2a001053,  /* fmax_d */
5434    0x2c001053,  /* fmax_h */
5435    0x2e001053,  /* fmax_q */
5436    0x28001053,  /* fmax_s */
5437    0x2a003053,  /* fmaxm_d */
5438    0x2c003053,  /* fmaxm_h */
5439    0x2e003053,  /* fmaxm_q */
5440    0x28003053,  /* fmaxm_s */
5441    0x2a000053,  /* fmin_d */
5442    0x2c000053,  /* fmin_h */
5443    0x2e000053,  /* fmin_q */
5444    0x28000053,  /* fmin_s */
5445    0x2a002053,  /* fminm_d */
5446    0x2c002053,  /* fminm_h */
5447    0x2e002053,  /* fminm_q */
5448    0x28002053,  /* fminm_s */
5449    0x2000047,   /* fmsub_d */
5450    0x4000047,   /* fmsub_h */
5451    0x6000047,   /* fmsub_q */
5452    0x47,        /* fmsub_s */
5453    0x12000053,  /* fmul_d */
5454    0x14000053,  /* fmul_h */
5455    0x16000053,  /* fmul_q */
5456    0x10000053,  /* fmul_s */
5457    0x22000053,  /* fmv_d */
5458    0xf2000053,  /* fmv_d_x */
5459    0x24000053,  /* fmv_h */
5460    0xf4000053,  /* fmv_h_x */
5461    0x26000053,  /* fmv_q */
5462    0x20000053,  /* fmv_s */
5463    0xf0000053,  /* fmv_s_x */
5464    0xf0000053,  /* fmv_w_x */
5465    0xe2000053,  /* fmv_x_d */
5466    0xe4000053,  /* fmv_x_h */
5467    0xe0000053,  /* fmv_x_s */
5468    0xe0000053,  /* fmv_x_w */
5469    0xffff_ffff, /* fmvh_x_d */
5470    0xe6100053,  /* fmvh_x_q */
5471    0xffff_ffff, /* fmvp_d_x */
5472    0xb6000053,  /* fmvp_q_x */
5473    0x22001053,  /* fneg_d */
5474    0x24001053,  /* fneg_h */
5475    0x26001053,  /* fneg_q */
5476    0x20001053,  /* fneg_s */
5477    0x200004f,   /* fnmadd_d */
5478    0x400004f,   /* fnmadd_h */
5479    0x600004f,   /* fnmadd_q */
5480    0x4f,        /* fnmadd_s */
5481    0x200004b,   /* fnmsub_d */
5482    0x400004b,   /* fnmsub_h */
5483    0x600004b,   /* fnmsub_q */
5484    0x4b,        /* fnmsub_s */
5485    0x302073,    /* frcsr */
5486    0x102073,    /* frflags */
5487    0x42400053,  /* fround_d */
5488    0x44400053,  /* fround_h */
5489    0x46400053,  /* fround_q */
5490    0x40400053,  /* fround_s */
5491    0x42500053,  /* froundnx_d */
5492    0x44500053,  /* froundnx_h */
5493    0x46500053,  /* froundnx_q */
5494    0x40500053,  /* froundnx_s */
5495    0x202073,    /* frrm */
5496    0x301073,    /* fscsr */
5497    0x3027,      /* fsd */
5498    0x101073,    /* fsflags */
5499    0x105073,    /* fsflagsi */
5500    0x22000053,  /* fsgnj_d */
5501    0x24000053,  /* fsgnj_h */
5502    0x26000053,  /* fsgnj_q */
5503    0x20000053,  /* fsgnj_s */
5504    0x22001053,  /* fsgnjn_d */
5505    0x24001053,  /* fsgnjn_h */
5506    0x26001053,  /* fsgnjn_q */
5507    0x20001053,  /* fsgnjn_s */
5508    0x22002053,  /* fsgnjx_d */
5509    0x24002053,  /* fsgnjx_h */
5510    0x26002053,  /* fsgnjx_q */
5511    0x20002053,  /* fsgnjx_s */
5512    0x1027,      /* fsh */
5513    0x4027,      /* fsq */
5514    0x5a000053,  /* fsqrt_d */
5515    0x5c000053,  /* fsqrt_h */
5516    0x5e000053,  /* fsqrt_q */
5517    0x58000053,  /* fsqrt_s */
5518    0x201073,    /* fsrm */
5519    0x205073,    /* fsrmi */
5520    0xa000053,   /* fsub_d */
5521    0xc000053,   /* fsub_h */
5522    0xe000053,   /* fsub_q */
5523    0x8000053,   /* fsub_s */
5524    0x2027,      /* fsw */
5525    0x62000073,  /* hfence_gvma */
5526    0x22000073,  /* hfence_vvma */
5527    0x66000073,  /* hinval_gvma */
5528    0x26000073,  /* hinval_vvma */
5529    0x60004073,  /* hlv_b */
5530    0x60104073,  /* hlv_bu */
5531    0x6c004073,  /* hlv_d */
5532    0x64004073,  /* hlv_h */
5533    0x64104073,  /* hlv_hu */
5534    0x68004073,  /* hlv_w */
5535    0x68104073,  /* hlv_wu */
5536    0x64304073,  /* hlvx_hu */
5537    0x68304073,  /* hlvx_wu */
5538    0x62004073,  /* hsv_b */
5539    0x6e004073,  /* hsv_d */
5540    0x66004073,  /* hsv_h */
5541    0x6a004073,  /* hsv_w */
5542    0x6f,        /* j */
5543    0x6f,        /* jal */
5544    0xef,        /* jal_pseudo */
5545    0x67,        /* jalr */
5546    0xe7,        /* jalr_pseudo */
5547    0x67,        /* jr */
5548    0x3,         /* lb */
5549    0x4003,      /* lbu */
5550    0x3003,      /* ld */
5551    0x1003,      /* lh */
5552    0x5003,      /* lhu */
5553    0x1000302f,  /* lr_d */
5554    0x1000202f,  /* lr_w */
5555    0x37,        /* lui */
5556    0x2003,      /* lw */
5557    0x6003,      /* lwu */
5558    0xa006033,   /* max */
5559    0xa007033,   /* maxu */
5560    0xa004033,   /* min */
5561    0xa005033,   /* minu */
5562    0x81c04073,  /* mop_r_0 */
5563    0x81d04073,  /* mop_r_1 */
5564    0x89e04073,  /* mop_r_10 */
5565    0x89f04073,  /* mop_r_11 */
5566    0x8dc04073,  /* mop_r_12 */
5567    0x8dd04073,  /* mop_r_13 */
5568    0x8de04073,  /* mop_r_14 */
5569    0x8df04073,  /* mop_r_15 */
5570    0xc1c04073,  /* mop_r_16 */
5571    0xc1d04073,  /* mop_r_17 */
5572    0xc1e04073,  /* mop_r_18 */
5573    0xc1f04073,  /* mop_r_19 */
5574    0x81e04073,  /* mop_r_2 */
5575    0xc5c04073,  /* mop_r_20 */
5576    0xc5d04073,  /* mop_r_21 */
5577    0xc5e04073,  /* mop_r_22 */
5578    0xc5f04073,  /* mop_r_23 */
5579    0xc9c04073,  /* mop_r_24 */
5580    0xc9d04073,  /* mop_r_25 */
5581    0xc9e04073,  /* mop_r_26 */
5582    0xc9f04073,  /* mop_r_27 */
5583    0xcdc04073,  /* mop_r_28 */
5584    0xcdd04073,  /* mop_r_29 */
5585    0x81f04073,  /* mop_r_3 */
5586    0xcde04073,  /* mop_r_30 */
5587    0xcdf04073,  /* mop_r_31 */
5588    0x85c04073,  /* mop_r_4 */
5589    0x85d04073,  /* mop_r_5 */
5590    0x85e04073,  /* mop_r_6 */
5591    0x85f04073,  /* mop_r_7 */
5592    0x89c04073,  /* mop_r_8 */
5593    0x89d04073,  /* mop_r_9 */
5594    0x81c04073,  /* mop_r_N */
5595    0x82004073,  /* mop_rr_0 */
5596    0x86004073,  /* mop_rr_1 */
5597    0x8a004073,  /* mop_rr_2 */
5598    0x8e004073,  /* mop_rr_3 */
5599    0xc2004073,  /* mop_rr_4 */
5600    0xc6004073,  /* mop_rr_5 */
5601    0xca004073,  /* mop_rr_6 */
5602    0xce004073,  /* mop_rr_7 */
5603    0x82004073,  /* mop_rr_N */
5604    0x30200073,  /* mret */
5605    0x2000033,   /* mul */
5606    0x2001033,   /* mulh */
5607    0x2002033,   /* mulhsu */
5608    0x2003033,   /* mulhu */
5609    0x200003b,   /* mulw */
5610    0x13,        /* mv */
5611    0x40000033,  /* neg */
5612    0x13,        /* nop */
5613    0x500033,    /* ntl_all */
5614    0x200033,    /* ntl_p1 */
5615    0x300033,    /* ntl_pall */
5616    0x400033,    /* ntl_s1 */
5617    0x6033,      /* or */
5618    0x28705013,  /* orc_b */
5619    0x6013,      /* ori */
5620    0x40006033,  /* orn */
5621    0x8004033,   /* pack */
5622    0x8007033,   /* packh */
5623    0x800403b,   /* packw */
5624    0x100000f,   /* pause */
5625    0x6013,      /* prefetch_i */
5626    0x106013,    /* prefetch_r */
5627    0x306013,    /* prefetch_w */
5628    0xc0002073,  /* rdcycle */
5629    0xffff_ffff, /* rdcycleh */
5630    0xc0202073,  /* rdinstret */
5631    0xffff_ffff, /* rdinstreth */
5632    0xc0102073,  /* rdtime */
5633    0xffff_ffff, /* rdtimeh */
5634    0x2006033,   /* rem */
5635    0x2007033,   /* remu */
5636    0x200703b,   /* remuw */
5637    0x200603b,   /* remw */
5638    0x8067,      /* ret */
5639    0x6b805013,  /* rev8 */
5640    0xffff_ffff, /* rev8_rv32 */
5641    0x60001033,  /* rol */
5642    0x6000103b,  /* rolw */
5643    0x60005033,  /* ror */
5644    0x60005013,  /* rori */
5645    0xffff_ffff, /* rori_rv32 */
5646    0x6000501b,  /* roriw */
5647    0x6000503b,  /* rorw */
5648    0x23,        /* sb */
5649    0x100073,    /* sbreak */
5650    0x1800302f,  /* sc_d */
5651    0x1800202f,  /* sc_w */
5652    0x73,        /* scall */
5653    0x3023,      /* sd */
5654    0x103013,    /* seqz */
5655    0x60401013,  /* sext_b */
5656    0x60501013,  /* sext_h */
5657    0x1b,        /* sext_w */
5658    0x18100073,  /* sfence_inval_ir */
5659    0x12000073,  /* sfence_vma */
5660    0x18000073,  /* sfence_w_inval */
5661    0x2033,      /* sgtz */
5662    0x1023,      /* sh */
5663    0x20002033,  /* sh1add */
5664    0x2000203b,  /* sh1add_uw */
5665    0x20004033,  /* sh2add */
5666    0x2000403b,  /* sh2add_uw */
5667    0x20006033,  /* sh3add */
5668    0x2000603b,  /* sh3add_uw */
5669    0x10201013,  /* sha256sig0 */
5670    0x10301013,  /* sha256sig1 */
5671    0x10001013,  /* sha256sum0 */
5672    0x10101013,  /* sha256sum1 */
5673    0x10601013,  /* sha512sig0 */
5674    0xffff_ffff, /* sha512sig0h */
5675    0xffff_ffff, /* sha512sig0l */
5676    0x10701013,  /* sha512sig1 */
5677    0xffff_ffff, /* sha512sig1h */
5678    0xffff_ffff, /* sha512sig1l */
5679    0x10401013,  /* sha512sum0 */
5680    0xffff_ffff, /* sha512sum0r */
5681    0x10501013,  /* sha512sum1 */
5682    0xffff_ffff, /* sha512sum1r */
5683    0x16000073,  /* sinval_vma */
5684    0x1033,      /* sll */
5685    0x1013,      /* slli */
5686    0xffff_ffff, /* slli_rv32 */
5687    0x800101b,   /* slli_uw */
5688    0x101b,      /* slliw */
5689    0x103b,      /* sllw */
5690    0x2033,      /* slt */
5691    0x2013,      /* slti */
5692    0x3013,      /* sltiu */
5693    0x3033,      /* sltu */
5694    0x2033,      /* sltz */
5695    0x10801013,  /* sm3p0 */
5696    0x10901013,  /* sm3p1 */
5697    0x30000033,  /* sm4ed */
5698    0x34000033,  /* sm4ks */
5699    0x3033,      /* snez */
5700    0x40005033,  /* sra */
5701    0x40005013,  /* srai */
5702    0xffff_ffff, /* srai_rv32 */
5703    0x4000501b,  /* sraiw */
5704    0x4000503b,  /* sraw */
5705    0x10200073,  /* sret */
5706    0x5033,      /* srl */
5707    0x5013,      /* srli */
5708    0xffff_ffff, /* srli_rv32 */
5709    0x501b,      /* srliw */
5710    0x503b,      /* srlw */
5711    0x40000033,  /* sub */
5712    0x4000003b,  /* subw */
5713    0x2023,      /* sw */
5714    0xffff_ffff, /* unzip */
5715    0x24002057,  /* vaadd_vv */
5716    0x24006057,  /* vaadd_vx */
5717    0x20002057,  /* vaaddu_vv */
5718    0x20006057,  /* vaaddu_vx */
5719    0x40003057,  /* vadc_vim */
5720    0x40000057,  /* vadc_vvm */
5721    0x40004057,  /* vadc_vxm */
5722    0x3057,      /* vadd_vi */
5723    0x57,        /* vadd_vv */
5724    0x4057,      /* vadd_vx */
5725    0xa600a077,  /* vaesdf_vs */
5726    0xa200a077,  /* vaesdf_vv */
5727    0xa6002077,  /* vaesdm_vs */
5728    0xa2002077,  /* vaesdm_vv */
5729    0xa601a077,  /* vaesef_vs */
5730    0xa201a077,  /* vaesef_vv */
5731    0xa6012077,  /* vaesem_vs */
5732    0xa2012077,  /* vaesem_vv */
5733    0x8a002077,  /* vaeskf1_vi */
5734    0xaa002077,  /* vaeskf2_vi */
5735    0xa603a077,  /* vaesz_vs */
5736    0x24003057,  /* vand_vi */
5737    0x24000057,  /* vand_vv */
5738    0x24004057,  /* vand_vx */
5739    0x4000057,   /* vandn_vv */
5740    0x4004057,   /* vandn_vx */
5741    0x2c002057,  /* vasub_vv */
5742    0x2c006057,  /* vasub_vx */
5743    0x28002057,  /* vasubu_vv */
5744    0x28006057,  /* vasubu_vx */
5745    0x48042057,  /* vbrev8_v */
5746    0x48052057,  /* vbrev_v */
5747    0x30002057,  /* vclmul_vv */
5748    0x30006057,  /* vclmul_vx */
5749    0x34002057,  /* vclmulh_vv */
5750    0x34006057,  /* vclmulh_vx */
5751    0x48062057,  /* vclz_v */
5752    0x5e002057,  /* vcompress_vm */
5753    0x40082057,  /* vcpop_m */
5754    0x48072057,  /* vcpop_v */
5755    0x4806a057,  /* vctz_v */
5756    0x84002057,  /* vdiv_vv */
5757    0x84006057,  /* vdiv_vx */
5758    0x80002057,  /* vdivu_vv */
5759    0x80006057,  /* vdivu_vx */
5760    0x5057,      /* vfadd_vf */
5761    0x1057,      /* vfadd_vv */
5762    0x4c081057,  /* vfclass_v */
5763    0x48019057,  /* vfcvt_f_x_v */
5764    0x48011057,  /* vfcvt_f_xu_v */
5765    0x48039057,  /* vfcvt_rtz_x_f_v */
5766    0x48031057,  /* vfcvt_rtz_xu_f_v */
5767    0x48009057,  /* vfcvt_x_f_v */
5768    0x48001057,  /* vfcvt_xu_f_v */
5769    0x80005057,  /* vfdiv_vf */
5770    0x80001057,  /* vfdiv_vv */
5771    0x4008a057,  /* vfirst_m */
5772    0xb0005057,  /* vfmacc_vf */
5773    0xb0001057,  /* vfmacc_vv */
5774    0xa0005057,  /* vfmadd_vf */
5775    0xa0001057,  /* vfmadd_vv */
5776    0x18005057,  /* vfmax_vf */
5777    0x18001057,  /* vfmax_vv */
5778    0x5c005057,  /* vfmerge_vfm */
5779    0x10005057,  /* vfmin_vf */
5780    0x10001057,  /* vfmin_vv */
5781    0xb8005057,  /* vfmsac_vf */
5782    0xb8001057,  /* vfmsac_vv */
5783    0xa8005057,  /* vfmsub_vf */
5784    0xa8001057,  /* vfmsub_vv */
5785    0x90005057,  /* vfmul_vf */
5786    0x90001057,  /* vfmul_vv */
5787    0x42001057,  /* vfmv_f_s */
5788    0x42005057,  /* vfmv_s_f */
5789    0x5e005057,  /* vfmv_v_f */
5790    0x480a1057,  /* vfncvt_f_f_w */
5791    0x48099057,  /* vfncvt_f_x_w */
5792    0x48091057,  /* vfncvt_f_xu_w */
5793    0x480a9057,  /* vfncvt_rod_f_f_w */
5794    0x480b9057,  /* vfncvt_rtz_x_f_w */
5795    0x480b1057,  /* vfncvt_rtz_xu_f_w */
5796    0x48089057,  /* vfncvt_x_f_w */
5797    0x48081057,  /* vfncvt_xu_f_w */
5798    0xb4005057,  /* vfnmacc_vf */
5799    0xb4001057,  /* vfnmacc_vv */
5800    0xa4005057,  /* vfnmadd_vf */
5801    0xa4001057,  /* vfnmadd_vv */
5802    0xbc005057,  /* vfnmsac_vf */
5803    0xbc001057,  /* vfnmsac_vv */
5804    0xac005057,  /* vfnmsub_vf */
5805    0xac001057,  /* vfnmsub_vv */
5806    0x84005057,  /* vfrdiv_vf */
5807    0x4c029057,  /* vfrec7_v */
5808    0x1c001057,  /* vfredmax_vs */
5809    0x14001057,  /* vfredmin_vs */
5810    0xc001057,   /* vfredosum_vs */
5811    0x4001057,   /* vfredsum_vs */
5812    0x4001057,   /* vfredusum_vs */
5813    0x4c021057,  /* vfrsqrt7_v */
5814    0x9c005057,  /* vfrsub_vf */
5815    0x20005057,  /* vfsgnj_vf */
5816    0x20001057,  /* vfsgnj_vv */
5817    0x24005057,  /* vfsgnjn_vf */
5818    0x24001057,  /* vfsgnjn_vv */
5819    0x28005057,  /* vfsgnjx_vf */
5820    0x28001057,  /* vfsgnjx_vv */
5821    0x3c005057,  /* vfslide1down_vf */
5822    0x38005057,  /* vfslide1up_vf */
5823    0x4c001057,  /* vfsqrt_v */
5824    0x8005057,   /* vfsub_vf */
5825    0x8001057,   /* vfsub_vv */
5826    0xc0005057,  /* vfwadd_vf */
5827    0xc0001057,  /* vfwadd_vv */
5828    0xd0005057,  /* vfwadd_wf */
5829    0xd0001057,  /* vfwadd_wv */
5830    0x48061057,  /* vfwcvt_f_f_v */
5831    0x48059057,  /* vfwcvt_f_x_v */
5832    0x48051057,  /* vfwcvt_f_xu_v */
5833    0x48079057,  /* vfwcvt_rtz_x_f_v */
5834    0x48071057,  /* vfwcvt_rtz_xu_f_v */
5835    0x48049057,  /* vfwcvt_x_f_v */
5836    0x48041057,  /* vfwcvt_xu_f_v */
5837    0xf0005057,  /* vfwmacc_vf */
5838    0xf0001057,  /* vfwmacc_vv */
5839    0xf8005057,  /* vfwmsac_vf */
5840    0xf8001057,  /* vfwmsac_vv */
5841    0xe0005057,  /* vfwmul_vf */
5842    0xe0001057,  /* vfwmul_vv */
5843    0xf4005057,  /* vfwnmacc_vf */
5844    0xf4001057,  /* vfwnmacc_vv */
5845    0xfc005057,  /* vfwnmsac_vf */
5846    0xfc001057,  /* vfwnmsac_vv */
5847    0xcc001057,  /* vfwredosum_vs */
5848    0xc4001057,  /* vfwredsum_vs */
5849    0xc4001057,  /* vfwredusum_vs */
5850    0xc8005057,  /* vfwsub_vf */
5851    0xc8001057,  /* vfwsub_vv */
5852    0xd8005057,  /* vfwsub_wf */
5853    0xd8001057,  /* vfwsub_wv */
5854    0xb2002077,  /* vghsh_vv */
5855    0xa208a077,  /* vgmul_vv */
5856    0x5008a057,  /* vid_v */
5857    0x50082057,  /* viota_m */
5858    0x2800007,   /* vl1r_v */
5859    0x2805007,   /* vl1re16_v */
5860    0x2806007,   /* vl1re32_v */
5861    0x2807007,   /* vl1re64_v */
5862    0x2800007,   /* vl1re8_v */
5863    0x22800007,  /* vl2r_v */
5864    0x22805007,  /* vl2re16_v */
5865    0x22806007,  /* vl2re32_v */
5866    0x22807007,  /* vl2re64_v */
5867    0x22800007,  /* vl2re8_v */
5868    0x62800007,  /* vl4r_v */
5869    0x62805007,  /* vl4re16_v */
5870    0x62806007,  /* vl4re32_v */
5871    0x62807007,  /* vl4re64_v */
5872    0x62800007,  /* vl4re8_v */
5873    0xe2800007,  /* vl8r_v */
5874    0xe2805007,  /* vl8re16_v */
5875    0xe2806007,  /* vl8re32_v */
5876    0xe2807007,  /* vl8re64_v */
5877    0xe2800007,  /* vl8re8_v */
5878    0x5007,      /* vle16_v */
5879    0x1005007,   /* vle16ff_v */
5880    0x2b00007,   /* vle1_v */
5881    0x6007,      /* vle32_v */
5882    0x1006007,   /* vle32ff_v */
5883    0x7007,      /* vle64_v */
5884    0x1007007,   /* vle64ff_v */
5885    0x7,         /* vle8_v */
5886    0x1000007,   /* vle8ff_v */
5887    0x2b00007,   /* vlm_v */
5888    0xc005007,   /* vloxei16_v */
5889    0xc006007,   /* vloxei32_v */
5890    0xc007007,   /* vloxei64_v */
5891    0xc000007,   /* vloxei8_v */
5892    0x8005007,   /* vlse16_v */
5893    0x8006007,   /* vlse32_v */
5894    0x8007007,   /* vlse64_v */
5895    0x8000007,   /* vlse8_v */
5896    0x4005007,   /* vluxei16_v */
5897    0x4006007,   /* vluxei32_v */
5898    0x4007007,   /* vluxei64_v */
5899    0x4000007,   /* vluxei8_v */
5900    0xb4002057,  /* vmacc_vv */
5901    0xb4006057,  /* vmacc_vx */
5902    0x46003057,  /* vmadc_vi */
5903    0x44003057,  /* vmadc_vim */
5904    0x46000057,  /* vmadc_vv */
5905    0x44000057,  /* vmadc_vvm */
5906    0x46004057,  /* vmadc_vx */
5907    0x44004057,  /* vmadc_vxm */
5908    0xa4002057,  /* vmadd_vv */
5909    0xa4006057,  /* vmadd_vx */
5910    0x66002057,  /* vmand_mm */
5911    0x62002057,  /* vmandn_mm */
5912    0x60002057,  /* vmandnot_mm */
5913    0x1c000057,  /* vmax_vv */
5914    0x1c004057,  /* vmax_vx */
5915    0x18000057,  /* vmaxu_vv */
5916    0x18004057,  /* vmaxu_vx */
5917    0x5c003057,  /* vmerge_vim */
5918    0x5c000057,  /* vmerge_vvm */
5919    0x5c004057,  /* vmerge_vxm */
5920    0x60005057,  /* vmfeq_vf */
5921    0x60001057,  /* vmfeq_vv */
5922    0x7c005057,  /* vmfge_vf */
5923    0x74005057,  /* vmfgt_vf */
5924    0x64005057,  /* vmfle_vf */
5925    0x64001057,  /* vmfle_vv */
5926    0x6c005057,  /* vmflt_vf */
5927    0x6c001057,  /* vmflt_vv */
5928    0x70005057,  /* vmfne_vf */
5929    0x70001057,  /* vmfne_vv */
5930    0x14000057,  /* vmin_vv */
5931    0x14004057,  /* vmin_vx */
5932    0x10000057,  /* vminu_vv */
5933    0x10004057,  /* vminu_vx */
5934    0x76002057,  /* vmnand_mm */
5935    0x7a002057,  /* vmnor_mm */
5936    0x6a002057,  /* vmor_mm */
5937    0x72002057,  /* vmorn_mm */
5938    0x70002057,  /* vmornot_mm */
5939    0x4e000057,  /* vmsbc_vv */
5940    0x4c000057,  /* vmsbc_vvm */
5941    0x4e004057,  /* vmsbc_vx */
5942    0x4c004057,  /* vmsbc_vxm */
5943    0x5000a057,  /* vmsbf_m */
5944    0x60003057,  /* vmseq_vi */
5945    0x60000057,  /* vmseq_vv */
5946    0x60004057,  /* vmseq_vx */
5947    0x7c003057,  /* vmsgt_vi */
5948    0x7c004057,  /* vmsgt_vx */
5949    0x78003057,  /* vmsgtu_vi */
5950    0x78004057,  /* vmsgtu_vx */
5951    0x5001a057,  /* vmsif_m */
5952    0x74003057,  /* vmsle_vi */
5953    0x74000057,  /* vmsle_vv */
5954    0x74004057,  /* vmsle_vx */
5955    0x70003057,  /* vmsleu_vi */
5956    0x70000057,  /* vmsleu_vv */
5957    0x70004057,  /* vmsleu_vx */
5958    0x6c000057,  /* vmslt_vv */
5959    0x6c004057,  /* vmslt_vx */
5960    0x68000057,  /* vmsltu_vv */
5961    0x68004057,  /* vmsltu_vx */
5962    0x64003057,  /* vmsne_vi */
5963    0x64000057,  /* vmsne_vv */
5964    0x64004057,  /* vmsne_vx */
5965    0x50012057,  /* vmsof_m */
5966    0x94002057,  /* vmul_vv */
5967    0x94006057,  /* vmul_vx */
5968    0x9c002057,  /* vmulh_vv */
5969    0x9c006057,  /* vmulh_vx */
5970    0x98002057,  /* vmulhsu_vv */
5971    0x98006057,  /* vmulhsu_vx */
5972    0x90002057,  /* vmulhu_vv */
5973    0x90006057,  /* vmulhu_vx */
5974    0x9e003057,  /* vmv1r_v */
5975    0x9e00b057,  /* vmv2r_v */
5976    0x9e01b057,  /* vmv4r_v */
5977    0x9e03b057,  /* vmv8r_v */
5978    0x42006057,  /* vmv_s_x */
5979    0x5e003057,  /* vmv_v_i */
5980    0x5e000057,  /* vmv_v_v */
5981    0x5e004057,  /* vmv_v_x */
5982    0x42002057,  /* vmv_x_s */
5983    0x7e002057,  /* vmxnor_mm */
5984    0x6e002057,  /* vmxor_mm */
5985    0xbc003057,  /* vnclip_wi */
5986    0xbc000057,  /* vnclip_wv */
5987    0xbc004057,  /* vnclip_wx */
5988    0xb8003057,  /* vnclipu_wi */
5989    0xb8000057,  /* vnclipu_wv */
5990    0xb8004057,  /* vnclipu_wx */
5991    0xbc002057,  /* vnmsac_vv */
5992    0xbc006057,  /* vnmsac_vx */
5993    0xac002057,  /* vnmsub_vv */
5994    0xac006057,  /* vnmsub_vx */
5995    0xb4003057,  /* vnsra_wi */
5996    0xb4000057,  /* vnsra_wv */
5997    0xb4004057,  /* vnsra_wx */
5998    0xb0003057,  /* vnsrl_wi */
5999    0xb0000057,  /* vnsrl_wv */
6000    0xb0004057,  /* vnsrl_wx */
6001    0x28003057,  /* vor_vi */
6002    0x28000057,  /* vor_vv */
6003    0x28004057,  /* vor_vx */
6004    0x40082057,  /* vpopc_m */
6005    0x4002057,   /* vredand_vs */
6006    0x1c002057,  /* vredmax_vs */
6007    0x18002057,  /* vredmaxu_vs */
6008    0x14002057,  /* vredmin_vs */
6009    0x10002057,  /* vredminu_vs */
6010    0x8002057,   /* vredor_vs */
6011    0x2057,      /* vredsum_vs */
6012    0xc002057,   /* vredxor_vs */
6013    0x8c002057,  /* vrem_vv */
6014    0x8c006057,  /* vrem_vx */
6015    0x88002057,  /* vremu_vv */
6016    0x88006057,  /* vremu_vx */
6017    0x4804a057,  /* vrev8_v */
6018    0x30003057,  /* vrgather_vi */
6019    0x30000057,  /* vrgather_vv */
6020    0x30004057,  /* vrgather_vx */
6021    0x38000057,  /* vrgatherei16_vv */
6022    0x54000057,  /* vrol_vv */
6023    0x54004057,  /* vrol_vx */
6024    0x50003057,  /* vror_vi */
6025    0x50000057,  /* vror_vv */
6026    0x50004057,  /* vror_vx */
6027    0xc003057,   /* vrsub_vi */
6028    0xc004057,   /* vrsub_vx */
6029    0x2800027,   /* vs1r_v */
6030    0x22800027,  /* vs2r_v */
6031    0x62800027,  /* vs4r_v */
6032    0xe2800027,  /* vs8r_v */
6033    0x84003057,  /* vsadd_vi */
6034    0x84000057,  /* vsadd_vv */
6035    0x84004057,  /* vsadd_vx */
6036    0x80003057,  /* vsaddu_vi */
6037    0x80000057,  /* vsaddu_vv */
6038    0x80004057,  /* vsaddu_vx */
6039    0x48000057,  /* vsbc_vvm */
6040    0x48004057,  /* vsbc_vxm */
6041    0x5027,      /* vse16_v */
6042    0x2b00027,   /* vse1_v */
6043    0x6027,      /* vse32_v */
6044    0x7027,      /* vse64_v */
6045    0x27,        /* vse8_v */
6046    0xc0007057,  /* vsetivli */
6047    0x80007057,  /* vsetvl */
6048    0x7057,      /* vsetvli */
6049    0x4803a057,  /* vsext_vf2 */
6050    0x4802a057,  /* vsext_vf4 */
6051    0x4801a057,  /* vsext_vf8 */
6052    0xba002077,  /* vsha2ch_vv */
6053    0xbe002077,  /* vsha2cl_vv */
6054    0xb6002077,  /* vsha2ms_vv */
6055    0x3c006057,  /* vslide1down_vx */
6056    0x38006057,  /* vslide1up_vx */
6057    0x3c003057,  /* vslidedown_vi */
6058    0x3c004057,  /* vslidedown_vx */
6059    0x38003057,  /* vslideup_vi */
6060    0x38004057,  /* vslideup_vx */
6061    0x94003057,  /* vsll_vi */
6062    0x94000057,  /* vsll_vv */
6063    0x94004057,  /* vsll_vx */
6064    0xae002077,  /* vsm3c_vi */
6065    0x82002077,  /* vsm3me_vv */
6066    0x86002077,  /* vsm4k_vi */
6067    0xa6082077,  /* vsm4r_vs */
6068    0xa2082077,  /* vsm4r_vv */
6069    0x2b00027,   /* vsm_v */
6070    0x9c000057,  /* vsmul_vv */
6071    0x9c004057,  /* vsmul_vx */
6072    0xc005027,   /* vsoxei16_v */
6073    0xc006027,   /* vsoxei32_v */
6074    0xc007027,   /* vsoxei64_v */
6075    0xc000027,   /* vsoxei8_v */
6076    0xa4003057,  /* vsra_vi */
6077    0xa4000057,  /* vsra_vv */
6078    0xa4004057,  /* vsra_vx */
6079    0xa0003057,  /* vsrl_vi */
6080    0xa0000057,  /* vsrl_vv */
6081    0xa0004057,  /* vsrl_vx */
6082    0x8005027,   /* vsse16_v */
6083    0x8006027,   /* vsse32_v */
6084    0x8007027,   /* vsse64_v */
6085    0x8000027,   /* vsse8_v */
6086    0xac003057,  /* vssra_vi */
6087    0xac000057,  /* vssra_vv */
6088    0xac004057,  /* vssra_vx */
6089    0xa8003057,  /* vssrl_vi */
6090    0xa8000057,  /* vssrl_vv */
6091    0xa8004057,  /* vssrl_vx */
6092    0x8c000057,  /* vssub_vv */
6093    0x8c004057,  /* vssub_vx */
6094    0x88000057,  /* vssubu_vv */
6095    0x88004057,  /* vssubu_vx */
6096    0x8000057,   /* vsub_vv */
6097    0x8004057,   /* vsub_vx */
6098    0x4005027,   /* vsuxei16_v */
6099    0x4006027,   /* vsuxei32_v */
6100    0x4007027,   /* vsuxei64_v */
6101    0x4000027,   /* vsuxei8_v */
6102    0xc4002057,  /* vwadd_vv */
6103    0xc4006057,  /* vwadd_vx */
6104    0xd4002057,  /* vwadd_wv */
6105    0xd4006057,  /* vwadd_wx */
6106    0xc0002057,  /* vwaddu_vv */
6107    0xc0006057,  /* vwaddu_vx */
6108    0xd0002057,  /* vwaddu_wv */
6109    0xd0006057,  /* vwaddu_wx */
6110    0xf4002057,  /* vwmacc_vv */
6111    0xf4006057,  /* vwmacc_vx */
6112    0xfc002057,  /* vwmaccsu_vv */
6113    0xfc006057,  /* vwmaccsu_vx */
6114    0xf0002057,  /* vwmaccu_vv */
6115    0xf0006057,  /* vwmaccu_vx */
6116    0xf8006057,  /* vwmaccus_vx */
6117    0xec002057,  /* vwmul_vv */
6118    0xec006057,  /* vwmul_vx */
6119    0xe8002057,  /* vwmulsu_vv */
6120    0xe8006057,  /* vwmulsu_vx */
6121    0xe0002057,  /* vwmulu_vv */
6122    0xe0006057,  /* vwmulu_vx */
6123    0xc4000057,  /* vwredsum_vs */
6124    0xc0000057,  /* vwredsumu_vs */
6125    0xd4003057,  /* vwsll_vi */
6126    0xd4000057,  /* vwsll_vv */
6127    0xd4004057,  /* vwsll_vx */
6128    0xcc002057,  /* vwsub_vv */
6129    0xcc006057,  /* vwsub_vx */
6130    0xdc002057,  /* vwsub_wv */
6131    0xdc006057,  /* vwsub_wx */
6132    0xc8002057,  /* vwsubu_vv */
6133    0xc8006057,  /* vwsubu_vx */
6134    0xd8002057,  /* vwsubu_wv */
6135    0xd8006057,  /* vwsubu_wx */
6136    0x2c003057,  /* vxor_vi */
6137    0x2c000057,  /* vxor_vv */
6138    0x2c004057,  /* vxor_vx */
6139    0x48032057,  /* vzext_vf2 */
6140    0x48022057,  /* vzext_vf4 */
6141    0x48012057,  /* vzext_vf8 */
6142    0x10500073,  /* wfi */
6143    0xd00073,    /* wrs_nto */
6144    0x1d00073,   /* wrs_sto */
6145    0x40004033,  /* xnor */
6146    0x4033,      /* xor */
6147    0x4013,      /* xori */
6148    0x28002033,  /* xperm4 */
6149    0x28004033,  /* xperm8 */
6150    0x7013,      /* zext_b */
6151    0x800403b,   /* zext_h */
6152    0xffff_ffff, /* zext_h_rv32 */
6153    0x800003b,   /* zext_w */
6154    0xffff_ffff, /* zip */
6155];
6156pub static OPCODE64_MASK: [u32; 1021] = [
6157    0xfe00707f,  /* add */
6158    0xfe00707f,  /* add_uw */
6159    0x707f,      /* addi */
6160    0x707f,      /* addiw */
6161    0xfe00707f,  /* addw */
6162    0xffff_ffff, /* aes32dsi */
6163    0xffff_ffff, /* aes32dsmi */
6164    0xffff_ffff, /* aes32esi */
6165    0xffff_ffff, /* aes32esmi */
6166    0xfe00707f,  /* aes64ds */
6167    0xfe00707f,  /* aes64dsm */
6168    0xfe00707f,  /* aes64es */
6169    0xfe00707f,  /* aes64esm */
6170    0xfff0707f,  /* aes64im */
6171    0xff00707f,  /* aes64ks1i */
6172    0xfe00707f,  /* aes64ks2 */
6173    0xf800707f,  /* amoadd_b */
6174    0xf800707f,  /* amoadd_d */
6175    0xf800707f,  /* amoadd_h */
6176    0xf800707f,  /* amoadd_w */
6177    0xf800707f,  /* amoand_b */
6178    0xf800707f,  /* amoand_d */
6179    0xf800707f,  /* amoand_h */
6180    0xf800707f,  /* amoand_w */
6181    0xf800707f,  /* amocas_b */
6182    0xf800707f,  /* amocas_d */
6183    0xf800707f,  /* amocas_h */
6184    0xf800707f,  /* amocas_q */
6185    0xf800707f,  /* amocas_w */
6186    0xf800707f,  /* amomax_b */
6187    0xf800707f,  /* amomax_d */
6188    0xf800707f,  /* amomax_h */
6189    0xf800707f,  /* amomax_w */
6190    0xf800707f,  /* amomaxu_b */
6191    0xf800707f,  /* amomaxu_d */
6192    0xf800707f,  /* amomaxu_h */
6193    0xf800707f,  /* amomaxu_w */
6194    0xf800707f,  /* amomin_b */
6195    0xf800707f,  /* amomin_d */
6196    0xf800707f,  /* amomin_h */
6197    0xf800707f,  /* amomin_w */
6198    0xf800707f,  /* amominu_b */
6199    0xf800707f,  /* amominu_d */
6200    0xf800707f,  /* amominu_h */
6201    0xf800707f,  /* amominu_w */
6202    0xf800707f,  /* amoor_b */
6203    0xf800707f,  /* amoor_d */
6204    0xf800707f,  /* amoor_h */
6205    0xf800707f,  /* amoor_w */
6206    0xf800707f,  /* amoswap_b */
6207    0xf800707f,  /* amoswap_d */
6208    0xf800707f,  /* amoswap_h */
6209    0xf800707f,  /* amoswap_w */
6210    0xf800707f,  /* amoxor_b */
6211    0xf800707f,  /* amoxor_d */
6212    0xf800707f,  /* amoxor_h */
6213    0xf800707f,  /* amoxor_w */
6214    0xfe00707f,  /* and */
6215    0x707f,      /* andi */
6216    0xfe00707f,  /* andn */
6217    0x7f,        /* auipc */
6218    0xfe00707f,  /* bclr */
6219    0xfc00707f,  /* bclri */
6220    0xffff_ffff, /* bclri_rv32 */
6221    0x707f,      /* beq */
6222    0x1f0707f,   /* beqz */
6223    0xfe00707f,  /* bext */
6224    0xfc00707f,  /* bexti */
6225    0xffff_ffff, /* bexti_rv32 */
6226    0x707f,      /* bge */
6227    0x707f,      /* bgeu */
6228    0x1f0707f,   /* bgez */
6229    0x707f,      /* bgt */
6230    0x707f,      /* bgtu */
6231    0xff07f,     /* bgtz */
6232    0xfe00707f,  /* binv */
6233    0xfc00707f,  /* binvi */
6234    0xffff_ffff, /* binvi_rv32 */
6235    0x707f,      /* ble */
6236    0x707f,      /* bleu */
6237    0xff07f,     /* blez */
6238    0x707f,      /* blt */
6239    0x707f,      /* bltu */
6240    0x1f0707f,   /* bltz */
6241    0x707f,      /* bne */
6242    0x1f0707f,   /* bnez */
6243    0xfff0707f,  /* brev8 */
6244    0xfe00707f,  /* bset */
6245    0xfc00707f,  /* bseti */
6246    0xffff_ffff, /* bseti_rv32 */
6247    0xf003,      /* c_add */
6248    0xe003,      /* c_addi */
6249    0xef83,      /* c_addi16sp */
6250    0xe003,      /* c_addi4spn */
6251    0xe003,      /* c_addiw */
6252    0xfc63,      /* c_addw */
6253    0xfc63,      /* c_and */
6254    0xec03,      /* c_andi */
6255    0xe003,      /* c_beqz */
6256    0xe003,      /* c_bnez */
6257    0xffff,      /* c_ebreak */
6258    0xe003,      /* c_fld */
6259    0xe003,      /* c_fldsp */
6260    0xffff_ffff, /* c_flw */
6261    0xffff_ffff, /* c_flwsp */
6262    0xe003,      /* c_fsd */
6263    0xe003,      /* c_fsdsp */
6264    0xffff_ffff, /* c_fsw */
6265    0xffff_ffff, /* c_fswsp */
6266    0xe003,      /* c_j */
6267    0xffff_ffff, /* c_jal */
6268    0xf07f,      /* c_jalr */
6269    0xf07f,      /* c_jr */
6270    0xfc03,      /* c_lbu */
6271    0xe003,      /* c_ld */
6272    0xe003,      /* c_ldsp */
6273    0xfc43,      /* c_lh */
6274    0xfc43,      /* c_lhu */
6275    0xe003,      /* c_li */
6276    0xe003,      /* c_lui */
6277    0xe003,      /* c_lw */
6278    0xe003,      /* c_lwsp */
6279    0xffff,      /* c_mop_1 */
6280    0xffff,      /* c_mop_11 */
6281    0xffff,      /* c_mop_13 */
6282    0xffff,      /* c_mop_15 */
6283    0xffff,      /* c_mop_3 */
6284    0xffff,      /* c_mop_5 */
6285    0xffff,      /* c_mop_7 */
6286    0xffff,      /* c_mop_9 */
6287    0xf8ff,      /* c_mop_N */
6288    0xfc63,      /* c_mul */
6289    0xf003,      /* c_mv */
6290    0xef83,      /* c_nop */
6291    0xfc7f,      /* c_not */
6292    0xffff,      /* c_ntl_all */
6293    0xffff,      /* c_ntl_p1 */
6294    0xffff,      /* c_ntl_pall */
6295    0xffff,      /* c_ntl_s1 */
6296    0xfc63,      /* c_or */
6297    0xfc03,      /* c_sb */
6298    0xe003,      /* c_sd */
6299    0xe003,      /* c_sdsp */
6300    0xfc7f,      /* c_sext_b */
6301    0xfc7f,      /* c_sext_h */
6302    0xf07f,      /* c_sext_w */
6303    0xfc43,      /* c_sh */
6304    0xe003,      /* c_slli */
6305    0xffff_ffff, /* c_slli_rv32 */
6306    0xec03,      /* c_srai */
6307    0xffff_ffff, /* c_srai_rv32 */
6308    0xec03,      /* c_srli */
6309    0xffff_ffff, /* c_srli_rv32 */
6310    0xfc63,      /* c_sub */
6311    0xfc63,      /* c_subw */
6312    0xe003,      /* c_sw */
6313    0xe003,      /* c_swsp */
6314    0xfc63,      /* c_xor */
6315    0xfc7f,      /* c_zext_b */
6316    0xfc7f,      /* c_zext_h */
6317    0xfc7f,      /* c_zext_w */
6318    0xfff07fff,  /* cbo_clean */
6319    0xfff07fff,  /* cbo_flush */
6320    0xfff07fff,  /* cbo_inval */
6321    0xfff07fff,  /* cbo_zero */
6322    0xfe00707f,  /* clmul */
6323    0xfe00707f,  /* clmulh */
6324    0xfe00707f,  /* clmulr */
6325    0xfff0707f,  /* clz */
6326    0xfff0707f,  /* clzw */
6327    0xfc03,      /* cm_jalt */
6328    0xfc63,      /* cm_mva01s */
6329    0xfc63,      /* cm_mvsa01 */
6330    0xff03,      /* cm_pop */
6331    0xff03,      /* cm_popret */
6332    0xff03,      /* cm_popretz */
6333    0xff03,      /* cm_push */
6334    0xfff0707f,  /* cpop */
6335    0xfff0707f,  /* cpopw */
6336    0x7fff,      /* csrc */
6337    0x7fff,      /* csrci */
6338    0xff07f,     /* csrr */
6339    0x707f,      /* csrrc */
6340    0x707f,      /* csrrci */
6341    0x707f,      /* csrrs */
6342    0x707f,      /* csrrsi */
6343    0x707f,      /* csrrw */
6344    0x707f,      /* csrrwi */
6345    0x7fff,      /* csrs */
6346    0x7fff,      /* csrsi */
6347    0x7fff,      /* csrw */
6348    0x7fff,      /* csrwi */
6349    0xfff0707f,  /* ctz */
6350    0xfff0707f,  /* ctzw */
6351    0xfe00707f,  /* czero_eqz */
6352    0xfe00707f,  /* czero_nez */
6353    0xfe00707f,  /* div */
6354    0xfe00707f,  /* divu */
6355    0xfe00707f,  /* divuw */
6356    0xfe00707f,  /* divw */
6357    0xffffffff,  /* dret */
6358    0xffffffff,  /* ebreak */
6359    0xffffffff,  /* ecall */
6360    0xfe00707f,  /* fabs_d */
6361    0xfe00707f,  /* fabs_h */
6362    0xfe00707f,  /* fabs_q */
6363    0xfe00707f,  /* fabs_s */
6364    0xfe00007f,  /* fadd_d */
6365    0xfe00007f,  /* fadd_h */
6366    0xfe00007f,  /* fadd_q */
6367    0xfe00007f,  /* fadd_s */
6368    0xfff0707f,  /* fclass_d */
6369    0xfff0707f,  /* fclass_h */
6370    0xfff0707f,  /* fclass_q */
6371    0xfff0707f,  /* fclass_s */
6372    0xfff0007f,  /* fcvt_d_h */
6373    0xfff0007f,  /* fcvt_d_l */
6374    0xfff0007f,  /* fcvt_d_lu */
6375    0xfff0007f,  /* fcvt_d_q */
6376    0xfff0007f,  /* fcvt_d_s */
6377    0xfff0007f,  /* fcvt_d_w */
6378    0xfff0007f,  /* fcvt_d_wu */
6379    0xfff0007f,  /* fcvt_h_d */
6380    0xfff0007f,  /* fcvt_h_l */
6381    0xfff0007f,  /* fcvt_h_lu */
6382    0xfff0007f,  /* fcvt_h_q */
6383    0xfff0007f,  /* fcvt_h_s */
6384    0xfff0007f,  /* fcvt_h_w */
6385    0xfff0007f,  /* fcvt_h_wu */
6386    0xfff0007f,  /* fcvt_l_d */
6387    0xfff0007f,  /* fcvt_l_h */
6388    0xfff0007f,  /* fcvt_l_q */
6389    0xfff0007f,  /* fcvt_l_s */
6390    0xfff0007f,  /* fcvt_lu_d */
6391    0xfff0007f,  /* fcvt_lu_h */
6392    0xfff0007f,  /* fcvt_lu_q */
6393    0xfff0007f,  /* fcvt_lu_s */
6394    0xfff0007f,  /* fcvt_q_d */
6395    0xfff0007f,  /* fcvt_q_h */
6396    0xfff0007f,  /* fcvt_q_l */
6397    0xfff0007f,  /* fcvt_q_lu */
6398    0xfff0007f,  /* fcvt_q_s */
6399    0xfff0007f,  /* fcvt_q_w */
6400    0xfff0007f,  /* fcvt_q_wu */
6401    0xfff0007f,  /* fcvt_s_d */
6402    0xfff0007f,  /* fcvt_s_h */
6403    0xfff0007f,  /* fcvt_s_l */
6404    0xfff0007f,  /* fcvt_s_lu */
6405    0xfff0007f,  /* fcvt_s_q */
6406    0xfff0007f,  /* fcvt_s_w */
6407    0xfff0007f,  /* fcvt_s_wu */
6408    0xfff0007f,  /* fcvt_w_d */
6409    0xfff0007f,  /* fcvt_w_h */
6410    0xfff0007f,  /* fcvt_w_q */
6411    0xfff0007f,  /* fcvt_w_s */
6412    0xfff0007f,  /* fcvt_wu_d */
6413    0xfff0007f,  /* fcvt_wu_h */
6414    0xfff0007f,  /* fcvt_wu_q */
6415    0xfff0007f,  /* fcvt_wu_s */
6416    0xfff0707f,  /* fcvtmod_w_d */
6417    0xfe00007f,  /* fdiv_d */
6418    0xfe00007f,  /* fdiv_h */
6419    0xfe00007f,  /* fdiv_q */
6420    0xfe00007f,  /* fdiv_s */
6421    0x707f,      /* fence */
6422    0x707f,      /* fence_i */
6423    0xfff0707f,  /* fence_tso */
6424    0xfe00707f,  /* feq_d */
6425    0xfe00707f,  /* feq_h */
6426    0xfe00707f,  /* feq_q */
6427    0xfe00707f,  /* feq_s */
6428    0x707f,      /* fld */
6429    0xfe00707f,  /* fle_d */
6430    0xfe00707f,  /* fle_h */
6431    0xfe00707f,  /* fle_q */
6432    0xfe00707f,  /* fle_s */
6433    0xfe00707f,  /* fleq_d */
6434    0xfe00707f,  /* fleq_h */
6435    0xfe00707f,  /* fleq_q */
6436    0xfe00707f,  /* fleq_s */
6437    0x707f,      /* flh */
6438    0xfff0707f,  /* fli_d */
6439    0xfff0707f,  /* fli_h */
6440    0xfff0707f,  /* fli_q */
6441    0xfff0707f,  /* fli_s */
6442    0x707f,      /* flq */
6443    0xfe00707f,  /* flt_d */
6444    0xfe00707f,  /* flt_h */
6445    0xfe00707f,  /* flt_q */
6446    0xfe00707f,  /* flt_s */
6447    0xfe00707f,  /* fltq_d */
6448    0xfe00707f,  /* fltq_h */
6449    0xfe00707f,  /* fltq_q */
6450    0xfe00707f,  /* fltq_s */
6451    0x707f,      /* flw */
6452    0x600007f,   /* fmadd_d */
6453    0x600007f,   /* fmadd_h */
6454    0x600007f,   /* fmadd_q */
6455    0x600007f,   /* fmadd_s */
6456    0xfe00707f,  /* fmax_d */
6457    0xfe00707f,  /* fmax_h */
6458    0xfe00707f,  /* fmax_q */
6459    0xfe00707f,  /* fmax_s */
6460    0xfe00707f,  /* fmaxm_d */
6461    0xfe00707f,  /* fmaxm_h */
6462    0xfe00707f,  /* fmaxm_q */
6463    0xfe00707f,  /* fmaxm_s */
6464    0xfe00707f,  /* fmin_d */
6465    0xfe00707f,  /* fmin_h */
6466    0xfe00707f,  /* fmin_q */
6467    0xfe00707f,  /* fmin_s */
6468    0xfe00707f,  /* fminm_d */
6469    0xfe00707f,  /* fminm_h */
6470    0xfe00707f,  /* fminm_q */
6471    0xfe00707f,  /* fminm_s */
6472    0x600007f,   /* fmsub_d */
6473    0x600007f,   /* fmsub_h */
6474    0x600007f,   /* fmsub_q */
6475    0x600007f,   /* fmsub_s */
6476    0xfe00007f,  /* fmul_d */
6477    0xfe00007f,  /* fmul_h */
6478    0xfe00007f,  /* fmul_q */
6479    0xfe00007f,  /* fmul_s */
6480    0xfe00707f,  /* fmv_d */
6481    0xfff0707f,  /* fmv_d_x */
6482    0xfe00707f,  /* fmv_h */
6483    0xfff0707f,  /* fmv_h_x */
6484    0xfe00707f,  /* fmv_q */
6485    0xfe00707f,  /* fmv_s */
6486    0xfff0707f,  /* fmv_s_x */
6487    0xfff0707f,  /* fmv_w_x */
6488    0xfff0707f,  /* fmv_x_d */
6489    0xfff0707f,  /* fmv_x_h */
6490    0xfff0707f,  /* fmv_x_s */
6491    0xfff0707f,  /* fmv_x_w */
6492    0xffff_ffff, /* fmvh_x_d */
6493    0xfff0707f,  /* fmvh_x_q */
6494    0xffff_ffff, /* fmvp_d_x */
6495    0xfe00707f,  /* fmvp_q_x */
6496    0xfe00707f,  /* fneg_d */
6497    0xfe00707f,  /* fneg_h */
6498    0xfe00707f,  /* fneg_q */
6499    0xfe00707f,  /* fneg_s */
6500    0x600007f,   /* fnmadd_d */
6501    0x600007f,   /* fnmadd_h */
6502    0x600007f,   /* fnmadd_q */
6503    0x600007f,   /* fnmadd_s */
6504    0x600007f,   /* fnmsub_d */
6505    0x600007f,   /* fnmsub_h */
6506    0x600007f,   /* fnmsub_q */
6507    0x600007f,   /* fnmsub_s */
6508    0xfffff07f,  /* frcsr */
6509    0xfffff07f,  /* frflags */
6510    0xfff0007f,  /* fround_d */
6511    0xfff0007f,  /* fround_h */
6512    0xfff0007f,  /* fround_q */
6513    0xfff0007f,  /* fround_s */
6514    0xfff0007f,  /* froundnx_d */
6515    0xfff0007f,  /* froundnx_h */
6516    0xfff0007f,  /* froundnx_q */
6517    0xfff0007f,  /* froundnx_s */
6518    0xfffff07f,  /* frrm */
6519    0xfff0707f,  /* fscsr */
6520    0x707f,      /* fsd */
6521    0xfff0707f,  /* fsflags */
6522    0xfff0707f,  /* fsflagsi */
6523    0xfe00707f,  /* fsgnj_d */
6524    0xfe00707f,  /* fsgnj_h */
6525    0xfe00707f,  /* fsgnj_q */
6526    0xfe00707f,  /* fsgnj_s */
6527    0xfe00707f,  /* fsgnjn_d */
6528    0xfe00707f,  /* fsgnjn_h */
6529    0xfe00707f,  /* fsgnjn_q */
6530    0xfe00707f,  /* fsgnjn_s */
6531    0xfe00707f,  /* fsgnjx_d */
6532    0xfe00707f,  /* fsgnjx_h */
6533    0xfe00707f,  /* fsgnjx_q */
6534    0xfe00707f,  /* fsgnjx_s */
6535    0x707f,      /* fsh */
6536    0x707f,      /* fsq */
6537    0xfff0007f,  /* fsqrt_d */
6538    0xfff0007f,  /* fsqrt_h */
6539    0xfff0007f,  /* fsqrt_q */
6540    0xfff0007f,  /* fsqrt_s */
6541    0xfff0707f,  /* fsrm */
6542    0xfff0707f,  /* fsrmi */
6543    0xfe00007f,  /* fsub_d */
6544    0xfe00007f,  /* fsub_h */
6545    0xfe00007f,  /* fsub_q */
6546    0xfe00007f,  /* fsub_s */
6547    0x707f,      /* fsw */
6548    0xfe007fff,  /* hfence_gvma */
6549    0xfe007fff,  /* hfence_vvma */
6550    0xfe007fff,  /* hinval_gvma */
6551    0xfe007fff,  /* hinval_vvma */
6552    0xfff0707f,  /* hlv_b */
6553    0xfff0707f,  /* hlv_bu */
6554    0xfff0707f,  /* hlv_d */
6555    0xfff0707f,  /* hlv_h */
6556    0xfff0707f,  /* hlv_hu */
6557    0xfff0707f,  /* hlv_w */
6558    0xfff0707f,  /* hlv_wu */
6559    0xfff0707f,  /* hlvx_hu */
6560    0xfff0707f,  /* hlvx_wu */
6561    0xfe007fff,  /* hsv_b */
6562    0xfe007fff,  /* hsv_d */
6563    0xfe007fff,  /* hsv_h */
6564    0xfe007fff,  /* hsv_w */
6565    0xfff,       /* j */
6566    0x7f,        /* jal */
6567    0xfff,       /* jal_pseudo */
6568    0x707f,      /* jalr */
6569    0xfff07fff,  /* jalr_pseudo */
6570    0xfff07fff,  /* jr */
6571    0x707f,      /* lb */
6572    0x707f,      /* lbu */
6573    0x707f,      /* ld */
6574    0x707f,      /* lh */
6575    0x707f,      /* lhu */
6576    0xf9f0707f,  /* lr_d */
6577    0xf9f0707f,  /* lr_w */
6578    0x7f,        /* lui */
6579    0x707f,      /* lw */
6580    0x707f,      /* lwu */
6581    0xfe00707f,  /* max */
6582    0xfe00707f,  /* maxu */
6583    0xfe00707f,  /* min */
6584    0xfe00707f,  /* minu */
6585    0xfff0707f,  /* mop_r_0 */
6586    0xfff0707f,  /* mop_r_1 */
6587    0xfff0707f,  /* mop_r_10 */
6588    0xfff0707f,  /* mop_r_11 */
6589    0xfff0707f,  /* mop_r_12 */
6590    0xfff0707f,  /* mop_r_13 */
6591    0xfff0707f,  /* mop_r_14 */
6592    0xfff0707f,  /* mop_r_15 */
6593    0xfff0707f,  /* mop_r_16 */
6594    0xfff0707f,  /* mop_r_17 */
6595    0xfff0707f,  /* mop_r_18 */
6596    0xfff0707f,  /* mop_r_19 */
6597    0xfff0707f,  /* mop_r_2 */
6598    0xfff0707f,  /* mop_r_20 */
6599    0xfff0707f,  /* mop_r_21 */
6600    0xfff0707f,  /* mop_r_22 */
6601    0xfff0707f,  /* mop_r_23 */
6602    0xfff0707f,  /* mop_r_24 */
6603    0xfff0707f,  /* mop_r_25 */
6604    0xfff0707f,  /* mop_r_26 */
6605    0xfff0707f,  /* mop_r_27 */
6606    0xfff0707f,  /* mop_r_28 */
6607    0xfff0707f,  /* mop_r_29 */
6608    0xfff0707f,  /* mop_r_3 */
6609    0xfff0707f,  /* mop_r_30 */
6610    0xfff0707f,  /* mop_r_31 */
6611    0xfff0707f,  /* mop_r_4 */
6612    0xfff0707f,  /* mop_r_5 */
6613    0xfff0707f,  /* mop_r_6 */
6614    0xfff0707f,  /* mop_r_7 */
6615    0xfff0707f,  /* mop_r_8 */
6616    0xfff0707f,  /* mop_r_9 */
6617    0xb3c0707f,  /* mop_r_N */
6618    0xfe00707f,  /* mop_rr_0 */
6619    0xfe00707f,  /* mop_rr_1 */
6620    0xfe00707f,  /* mop_rr_2 */
6621    0xfe00707f,  /* mop_rr_3 */
6622    0xfe00707f,  /* mop_rr_4 */
6623    0xfe00707f,  /* mop_rr_5 */
6624    0xfe00707f,  /* mop_rr_6 */
6625    0xfe00707f,  /* mop_rr_7 */
6626    0xb200707f,  /* mop_rr_N */
6627    0xffffffff,  /* mret */
6628    0xfe00707f,  /* mul */
6629    0xfe00707f,  /* mulh */
6630    0xfe00707f,  /* mulhsu */
6631    0xfe00707f,  /* mulhu */
6632    0xfe00707f,  /* mulw */
6633    0xfff0707f,  /* mv */
6634    0xfff0707f,  /* neg */
6635    0xffffffff,  /* nop */
6636    0xffffffff,  /* ntl_all */
6637    0xffffffff,  /* ntl_p1 */
6638    0xffffffff,  /* ntl_pall */
6639    0xffffffff,  /* ntl_s1 */
6640    0xfe00707f,  /* or */
6641    0xfff0707f,  /* orc_b */
6642    0x707f,      /* ori */
6643    0xfe00707f,  /* orn */
6644    0xfe00707f,  /* pack */
6645    0xfe00707f,  /* packh */
6646    0xfe00707f,  /* packw */
6647    0xffffffff,  /* pause */
6648    0x1f07fff,   /* prefetch_i */
6649    0x1f07fff,   /* prefetch_r */
6650    0x1f07fff,   /* prefetch_w */
6651    0xfffff07f,  /* rdcycle */
6652    0xffff_ffff, /* rdcycleh */
6653    0xfffff07f,  /* rdinstret */
6654    0xffff_ffff, /* rdinstreth */
6655    0xfffff07f,  /* rdtime */
6656    0xffff_ffff, /* rdtimeh */
6657    0xfe00707f,  /* rem */
6658    0xfe00707f,  /* remu */
6659    0xfe00707f,  /* remuw */
6660    0xfe00707f,  /* remw */
6661    0xffffffff,  /* ret */
6662    0xfff0707f,  /* rev8 */
6663    0xffff_ffff, /* rev8_rv32 */
6664    0xfe00707f,  /* rol */
6665    0xfe00707f,  /* rolw */
6666    0xfe00707f,  /* ror */
6667    0xfc00707f,  /* rori */
6668    0xffff_ffff, /* rori_rv32 */
6669    0xfe00707f,  /* roriw */
6670    0xfe00707f,  /* rorw */
6671    0x707f,      /* sb */
6672    0xffffffff,  /* sbreak */
6673    0xf800707f,  /* sc_d */
6674    0xf800707f,  /* sc_w */
6675    0xffffffff,  /* scall */
6676    0x707f,      /* sd */
6677    0xfff0707f,  /* seqz */
6678    0xfff0707f,  /* sext_b */
6679    0xfff0707f,  /* sext_h */
6680    0xfff0707f,  /* sext_w */
6681    0xffffffff,  /* sfence_inval_ir */
6682    0xfe007fff,  /* sfence_vma */
6683    0xffffffff,  /* sfence_w_inval */
6684    0xfe0ff07f,  /* sgtz */
6685    0x707f,      /* sh */
6686    0xfe00707f,  /* sh1add */
6687    0xfe00707f,  /* sh1add_uw */
6688    0xfe00707f,  /* sh2add */
6689    0xfe00707f,  /* sh2add_uw */
6690    0xfe00707f,  /* sh3add */
6691    0xfe00707f,  /* sh3add_uw */
6692    0xfff0707f,  /* sha256sig0 */
6693    0xfff0707f,  /* sha256sig1 */
6694    0xfff0707f,  /* sha256sum0 */
6695    0xfff0707f,  /* sha256sum1 */
6696    0xfff0707f,  /* sha512sig0 */
6697    0xffff_ffff, /* sha512sig0h */
6698    0xffff_ffff, /* sha512sig0l */
6699    0xfff0707f,  /* sha512sig1 */
6700    0xffff_ffff, /* sha512sig1h */
6701    0xffff_ffff, /* sha512sig1l */
6702    0xfff0707f,  /* sha512sum0 */
6703    0xffff_ffff, /* sha512sum0r */
6704    0xfff0707f,  /* sha512sum1 */
6705    0xffff_ffff, /* sha512sum1r */
6706    0xfe007fff,  /* sinval_vma */
6707    0xfe00707f,  /* sll */
6708    0xfc00707f,  /* slli */
6709    0xffff_ffff, /* slli_rv32 */
6710    0xfc00707f,  /* slli_uw */
6711    0xfe00707f,  /* slliw */
6712    0xfe00707f,  /* sllw */
6713    0xfe00707f,  /* slt */
6714    0x707f,      /* slti */
6715    0x707f,      /* sltiu */
6716    0xfe00707f,  /* sltu */
6717    0xfff0707f,  /* sltz */
6718    0xfff0707f,  /* sm3p0 */
6719    0xfff0707f,  /* sm3p1 */
6720    0x3e00707f,  /* sm4ed */
6721    0x3e00707f,  /* sm4ks */
6722    0xfe0ff07f,  /* snez */
6723    0xfe00707f,  /* sra */
6724    0xfc00707f,  /* srai */
6725    0xffff_ffff, /* srai_rv32 */
6726    0xfe00707f,  /* sraiw */
6727    0xfe00707f,  /* sraw */
6728    0xffffffff,  /* sret */
6729    0xfe00707f,  /* srl */
6730    0xfc00707f,  /* srli */
6731    0xffff_ffff, /* srli_rv32 */
6732    0xfe00707f,  /* srliw */
6733    0xfe00707f,  /* srlw */
6734    0xfe00707f,  /* sub */
6735    0xfe00707f,  /* subw */
6736    0x707f,      /* sw */
6737    0xffff_ffff, /* unzip */
6738    0xfc00707f,  /* vaadd_vv */
6739    0xfc00707f,  /* vaadd_vx */
6740    0xfc00707f,  /* vaaddu_vv */
6741    0xfc00707f,  /* vaaddu_vx */
6742    0xfe00707f,  /* vadc_vim */
6743    0xfe00707f,  /* vadc_vvm */
6744    0xfe00707f,  /* vadc_vxm */
6745    0xfc00707f,  /* vadd_vi */
6746    0xfc00707f,  /* vadd_vv */
6747    0xfc00707f,  /* vadd_vx */
6748    0xfe0ff07f,  /* vaesdf_vs */
6749    0xfe0ff07f,  /* vaesdf_vv */
6750    0xfe0ff07f,  /* vaesdm_vs */
6751    0xfe0ff07f,  /* vaesdm_vv */
6752    0xfe0ff07f,  /* vaesef_vs */
6753    0xfe0ff07f,  /* vaesef_vv */
6754    0xfe0ff07f,  /* vaesem_vs */
6755    0xfe0ff07f,  /* vaesem_vv */
6756    0xfe00707f,  /* vaeskf1_vi */
6757    0xfe00707f,  /* vaeskf2_vi */
6758    0xfe0ff07f,  /* vaesz_vs */
6759    0xfc00707f,  /* vand_vi */
6760    0xfc00707f,  /* vand_vv */
6761    0xfc00707f,  /* vand_vx */
6762    0xfc00707f,  /* vandn_vv */
6763    0xfc00707f,  /* vandn_vx */
6764    0xfc00707f,  /* vasub_vv */
6765    0xfc00707f,  /* vasub_vx */
6766    0xfc00707f,  /* vasubu_vv */
6767    0xfc00707f,  /* vasubu_vx */
6768    0xfc0ff07f,  /* vbrev8_v */
6769    0xfc0ff07f,  /* vbrev_v */
6770    0xfc00707f,  /* vclmul_vv */
6771    0xfc00707f,  /* vclmul_vx */
6772    0xfc00707f,  /* vclmulh_vv */
6773    0xfc00707f,  /* vclmulh_vx */
6774    0xfc0ff07f,  /* vclz_v */
6775    0xfe00707f,  /* vcompress_vm */
6776    0xfc0ff07f,  /* vcpop_m */
6777    0xfc0ff07f,  /* vcpop_v */
6778    0xfc0ff07f,  /* vctz_v */
6779    0xfc00707f,  /* vdiv_vv */
6780    0xfc00707f,  /* vdiv_vx */
6781    0xfc00707f,  /* vdivu_vv */
6782    0xfc00707f,  /* vdivu_vx */
6783    0xfc00707f,  /* vfadd_vf */
6784    0xfc00707f,  /* vfadd_vv */
6785    0xfc0ff07f,  /* vfclass_v */
6786    0xfc0ff07f,  /* vfcvt_f_x_v */
6787    0xfc0ff07f,  /* vfcvt_f_xu_v */
6788    0xfc0ff07f,  /* vfcvt_rtz_x_f_v */
6789    0xfc0ff07f,  /* vfcvt_rtz_xu_f_v */
6790    0xfc0ff07f,  /* vfcvt_x_f_v */
6791    0xfc0ff07f,  /* vfcvt_xu_f_v */
6792    0xfc00707f,  /* vfdiv_vf */
6793    0xfc00707f,  /* vfdiv_vv */
6794    0xfc0ff07f,  /* vfirst_m */
6795    0xfc00707f,  /* vfmacc_vf */
6796    0xfc00707f,  /* vfmacc_vv */
6797    0xfc00707f,  /* vfmadd_vf */
6798    0xfc00707f,  /* vfmadd_vv */
6799    0xfc00707f,  /* vfmax_vf */
6800    0xfc00707f,  /* vfmax_vv */
6801    0xfe00707f,  /* vfmerge_vfm */
6802    0xfc00707f,  /* vfmin_vf */
6803    0xfc00707f,  /* vfmin_vv */
6804    0xfc00707f,  /* vfmsac_vf */
6805    0xfc00707f,  /* vfmsac_vv */
6806    0xfc00707f,  /* vfmsub_vf */
6807    0xfc00707f,  /* vfmsub_vv */
6808    0xfc00707f,  /* vfmul_vf */
6809    0xfc00707f,  /* vfmul_vv */
6810    0xfe0ff07f,  /* vfmv_f_s */
6811    0xfff0707f,  /* vfmv_s_f */
6812    0xfff0707f,  /* vfmv_v_f */
6813    0xfc0ff07f,  /* vfncvt_f_f_w */
6814    0xfc0ff07f,  /* vfncvt_f_x_w */
6815    0xfc0ff07f,  /* vfncvt_f_xu_w */
6816    0xfc0ff07f,  /* vfncvt_rod_f_f_w */
6817    0xfc0ff07f,  /* vfncvt_rtz_x_f_w */
6818    0xfc0ff07f,  /* vfncvt_rtz_xu_f_w */
6819    0xfc0ff07f,  /* vfncvt_x_f_w */
6820    0xfc0ff07f,  /* vfncvt_xu_f_w */
6821    0xfc00707f,  /* vfnmacc_vf */
6822    0xfc00707f,  /* vfnmacc_vv */
6823    0xfc00707f,  /* vfnmadd_vf */
6824    0xfc00707f,  /* vfnmadd_vv */
6825    0xfc00707f,  /* vfnmsac_vf */
6826    0xfc00707f,  /* vfnmsac_vv */
6827    0xfc00707f,  /* vfnmsub_vf */
6828    0xfc00707f,  /* vfnmsub_vv */
6829    0xfc00707f,  /* vfrdiv_vf */
6830    0xfc0ff07f,  /* vfrec7_v */
6831    0xfc00707f,  /* vfredmax_vs */
6832    0xfc00707f,  /* vfredmin_vs */
6833    0xfc00707f,  /* vfredosum_vs */
6834    0xfc00707f,  /* vfredsum_vs */
6835    0xfc00707f,  /* vfredusum_vs */
6836    0xfc0ff07f,  /* vfrsqrt7_v */
6837    0xfc00707f,  /* vfrsub_vf */
6838    0xfc00707f,  /* vfsgnj_vf */
6839    0xfc00707f,  /* vfsgnj_vv */
6840    0xfc00707f,  /* vfsgnjn_vf */
6841    0xfc00707f,  /* vfsgnjn_vv */
6842    0xfc00707f,  /* vfsgnjx_vf */
6843    0xfc00707f,  /* vfsgnjx_vv */
6844    0xfc00707f,  /* vfslide1down_vf */
6845    0xfc00707f,  /* vfslide1up_vf */
6846    0xfc0ff07f,  /* vfsqrt_v */
6847    0xfc00707f,  /* vfsub_vf */
6848    0xfc00707f,  /* vfsub_vv */
6849    0xfc00707f,  /* vfwadd_vf */
6850    0xfc00707f,  /* vfwadd_vv */
6851    0xfc00707f,  /* vfwadd_wf */
6852    0xfc00707f,  /* vfwadd_wv */
6853    0xfc0ff07f,  /* vfwcvt_f_f_v */
6854    0xfc0ff07f,  /* vfwcvt_f_x_v */
6855    0xfc0ff07f,  /* vfwcvt_f_xu_v */
6856    0xfc0ff07f,  /* vfwcvt_rtz_x_f_v */
6857    0xfc0ff07f,  /* vfwcvt_rtz_xu_f_v */
6858    0xfc0ff07f,  /* vfwcvt_x_f_v */
6859    0xfc0ff07f,  /* vfwcvt_xu_f_v */
6860    0xfc00707f,  /* vfwmacc_vf */
6861    0xfc00707f,  /* vfwmacc_vv */
6862    0xfc00707f,  /* vfwmsac_vf */
6863    0xfc00707f,  /* vfwmsac_vv */
6864    0xfc00707f,  /* vfwmul_vf */
6865    0xfc00707f,  /* vfwmul_vv */
6866    0xfc00707f,  /* vfwnmacc_vf */
6867    0xfc00707f,  /* vfwnmacc_vv */
6868    0xfc00707f,  /* vfwnmsac_vf */
6869    0xfc00707f,  /* vfwnmsac_vv */
6870    0xfc00707f,  /* vfwredosum_vs */
6871    0xfc00707f,  /* vfwredsum_vs */
6872    0xfc00707f,  /* vfwredusum_vs */
6873    0xfc00707f,  /* vfwsub_vf */
6874    0xfc00707f,  /* vfwsub_vv */
6875    0xfc00707f,  /* vfwsub_wf */
6876    0xfc00707f,  /* vfwsub_wv */
6877    0xfe00707f,  /* vghsh_vv */
6878    0xfe0ff07f,  /* vgmul_vv */
6879    0xfdfff07f,  /* vid_v */
6880    0xfc0ff07f,  /* viota_m */
6881    0xfff0707f,  /* vl1r_v */
6882    0xfff0707f,  /* vl1re16_v */
6883    0xfff0707f,  /* vl1re32_v */
6884    0xfff0707f,  /* vl1re64_v */
6885    0xfff0707f,  /* vl1re8_v */
6886    0xfff0707f,  /* vl2r_v */
6887    0xfff0707f,  /* vl2re16_v */
6888    0xfff0707f,  /* vl2re32_v */
6889    0xfff0707f,  /* vl2re64_v */
6890    0xfff0707f,  /* vl2re8_v */
6891    0xfff0707f,  /* vl4r_v */
6892    0xfff0707f,  /* vl4re16_v */
6893    0xfff0707f,  /* vl4re32_v */
6894    0xfff0707f,  /* vl4re64_v */
6895    0xfff0707f,  /* vl4re8_v */
6896    0xfff0707f,  /* vl8r_v */
6897    0xfff0707f,  /* vl8re16_v */
6898    0xfff0707f,  /* vl8re32_v */
6899    0xfff0707f,  /* vl8re64_v */
6900    0xfff0707f,  /* vl8re8_v */
6901    0x1df0707f,  /* vle16_v */
6902    0x1df0707f,  /* vle16ff_v */
6903    0xfff0707f,  /* vle1_v */
6904    0x1df0707f,  /* vle32_v */
6905    0x1df0707f,  /* vle32ff_v */
6906    0x1df0707f,  /* vle64_v */
6907    0x1df0707f,  /* vle64ff_v */
6908    0x1df0707f,  /* vle8_v */
6909    0x1df0707f,  /* vle8ff_v */
6910    0xfff0707f,  /* vlm_v */
6911    0x1c00707f,  /* vloxei16_v */
6912    0x1c00707f,  /* vloxei32_v */
6913    0x1c00707f,  /* vloxei64_v */
6914    0x1c00707f,  /* vloxei8_v */
6915    0x1c00707f,  /* vlse16_v */
6916    0x1c00707f,  /* vlse32_v */
6917    0x1c00707f,  /* vlse64_v */
6918    0x1c00707f,  /* vlse8_v */
6919    0x1c00707f,  /* vluxei16_v */
6920    0x1c00707f,  /* vluxei32_v */
6921    0x1c00707f,  /* vluxei64_v */
6922    0x1c00707f,  /* vluxei8_v */
6923    0xfc00707f,  /* vmacc_vv */
6924    0xfc00707f,  /* vmacc_vx */
6925    0xfe00707f,  /* vmadc_vi */
6926    0xfe00707f,  /* vmadc_vim */
6927    0xfe00707f,  /* vmadc_vv */
6928    0xfe00707f,  /* vmadc_vvm */
6929    0xfe00707f,  /* vmadc_vx */
6930    0xfe00707f,  /* vmadc_vxm */
6931    0xfc00707f,  /* vmadd_vv */
6932    0xfc00707f,  /* vmadd_vx */
6933    0xfe00707f,  /* vmand_mm */
6934    0xfe00707f,  /* vmandn_mm */
6935    0xfc00707f,  /* vmandnot_mm */
6936    0xfc00707f,  /* vmax_vv */
6937    0xfc00707f,  /* vmax_vx */
6938    0xfc00707f,  /* vmaxu_vv */
6939    0xfc00707f,  /* vmaxu_vx */
6940    0xfe00707f,  /* vmerge_vim */
6941    0xfe00707f,  /* vmerge_vvm */
6942    0xfe00707f,  /* vmerge_vxm */
6943    0xfc00707f,  /* vmfeq_vf */
6944    0xfc00707f,  /* vmfeq_vv */
6945    0xfc00707f,  /* vmfge_vf */
6946    0xfc00707f,  /* vmfgt_vf */
6947    0xfc00707f,  /* vmfle_vf */
6948    0xfc00707f,  /* vmfle_vv */
6949    0xfc00707f,  /* vmflt_vf */
6950    0xfc00707f,  /* vmflt_vv */
6951    0xfc00707f,  /* vmfne_vf */
6952    0xfc00707f,  /* vmfne_vv */
6953    0xfc00707f,  /* vmin_vv */
6954    0xfc00707f,  /* vmin_vx */
6955    0xfc00707f,  /* vminu_vv */
6956    0xfc00707f,  /* vminu_vx */
6957    0xfe00707f,  /* vmnand_mm */
6958    0xfe00707f,  /* vmnor_mm */
6959    0xfe00707f,  /* vmor_mm */
6960    0xfe00707f,  /* vmorn_mm */
6961    0xfc00707f,  /* vmornot_mm */
6962    0xfe00707f,  /* vmsbc_vv */
6963    0xfe00707f,  /* vmsbc_vvm */
6964    0xfe00707f,  /* vmsbc_vx */
6965    0xfe00707f,  /* vmsbc_vxm */
6966    0xfc0ff07f,  /* vmsbf_m */
6967    0xfc00707f,  /* vmseq_vi */
6968    0xfc00707f,  /* vmseq_vv */
6969    0xfc00707f,  /* vmseq_vx */
6970    0xfc00707f,  /* vmsgt_vi */
6971    0xfc00707f,  /* vmsgt_vx */
6972    0xfc00707f,  /* vmsgtu_vi */
6973    0xfc00707f,  /* vmsgtu_vx */
6974    0xfc0ff07f,  /* vmsif_m */
6975    0xfc00707f,  /* vmsle_vi */
6976    0xfc00707f,  /* vmsle_vv */
6977    0xfc00707f,  /* vmsle_vx */
6978    0xfc00707f,  /* vmsleu_vi */
6979    0xfc00707f,  /* vmsleu_vv */
6980    0xfc00707f,  /* vmsleu_vx */
6981    0xfc00707f,  /* vmslt_vv */
6982    0xfc00707f,  /* vmslt_vx */
6983    0xfc00707f,  /* vmsltu_vv */
6984    0xfc00707f,  /* vmsltu_vx */
6985    0xfc00707f,  /* vmsne_vi */
6986    0xfc00707f,  /* vmsne_vv */
6987    0xfc00707f,  /* vmsne_vx */
6988    0xfc0ff07f,  /* vmsof_m */
6989    0xfc00707f,  /* vmul_vv */
6990    0xfc00707f,  /* vmul_vx */
6991    0xfc00707f,  /* vmulh_vv */
6992    0xfc00707f,  /* vmulh_vx */
6993    0xfc00707f,  /* vmulhsu_vv */
6994    0xfc00707f,  /* vmulhsu_vx */
6995    0xfc00707f,  /* vmulhu_vv */
6996    0xfc00707f,  /* vmulhu_vx */
6997    0xfe0ff07f,  /* vmv1r_v */
6998    0xfe0ff07f,  /* vmv2r_v */
6999    0xfe0ff07f,  /* vmv4r_v */
7000    0xfe0ff07f,  /* vmv8r_v */
7001    0xfff0707f,  /* vmv_s_x */
7002    0xfff0707f,  /* vmv_v_i */
7003    0xfff0707f,  /* vmv_v_v */
7004    0xfff0707f,  /* vmv_v_x */
7005    0xfe0ff07f,  /* vmv_x_s */
7006    0xfe00707f,  /* vmxnor_mm */
7007    0xfe00707f,  /* vmxor_mm */
7008    0xfc00707f,  /* vnclip_wi */
7009    0xfc00707f,  /* vnclip_wv */
7010    0xfc00707f,  /* vnclip_wx */
7011    0xfc00707f,  /* vnclipu_wi */
7012    0xfc00707f,  /* vnclipu_wv */
7013    0xfc00707f,  /* vnclipu_wx */
7014    0xfc00707f,  /* vnmsac_vv */
7015    0xfc00707f,  /* vnmsac_vx */
7016    0xfc00707f,  /* vnmsub_vv */
7017    0xfc00707f,  /* vnmsub_vx */
7018    0xfc00707f,  /* vnsra_wi */
7019    0xfc00707f,  /* vnsra_wv */
7020    0xfc00707f,  /* vnsra_wx */
7021    0xfc00707f,  /* vnsrl_wi */
7022    0xfc00707f,  /* vnsrl_wv */
7023    0xfc00707f,  /* vnsrl_wx */
7024    0xfc00707f,  /* vor_vi */
7025    0xfc00707f,  /* vor_vv */
7026    0xfc00707f,  /* vor_vx */
7027    0xfc0ff07f,  /* vpopc_m */
7028    0xfc00707f,  /* vredand_vs */
7029    0xfc00707f,  /* vredmax_vs */
7030    0xfc00707f,  /* vredmaxu_vs */
7031    0xfc00707f,  /* vredmin_vs */
7032    0xfc00707f,  /* vredminu_vs */
7033    0xfc00707f,  /* vredor_vs */
7034    0xfc00707f,  /* vredsum_vs */
7035    0xfc00707f,  /* vredxor_vs */
7036    0xfc00707f,  /* vrem_vv */
7037    0xfc00707f,  /* vrem_vx */
7038    0xfc00707f,  /* vremu_vv */
7039    0xfc00707f,  /* vremu_vx */
7040    0xfc0ff07f,  /* vrev8_v */
7041    0xfc00707f,  /* vrgather_vi */
7042    0xfc00707f,  /* vrgather_vv */
7043    0xfc00707f,  /* vrgather_vx */
7044    0xfc00707f,  /* vrgatherei16_vv */
7045    0xfc00707f,  /* vrol_vv */
7046    0xfc00707f,  /* vrol_vx */
7047    0xf800707f,  /* vror_vi */
7048    0xfc00707f,  /* vror_vv */
7049    0xfc00707f,  /* vror_vx */
7050    0xfc00707f,  /* vrsub_vi */
7051    0xfc00707f,  /* vrsub_vx */
7052    0xfff0707f,  /* vs1r_v */
7053    0xfff0707f,  /* vs2r_v */
7054    0xfff0707f,  /* vs4r_v */
7055    0xfff0707f,  /* vs8r_v */
7056    0xfc00707f,  /* vsadd_vi */
7057    0xfc00707f,  /* vsadd_vv */
7058    0xfc00707f,  /* vsadd_vx */
7059    0xfc00707f,  /* vsaddu_vi */
7060    0xfc00707f,  /* vsaddu_vv */
7061    0xfc00707f,  /* vsaddu_vx */
7062    0xfe00707f,  /* vsbc_vvm */
7063    0xfe00707f,  /* vsbc_vxm */
7064    0x1df0707f,  /* vse16_v */
7065    0xfff0707f,  /* vse1_v */
7066    0x1df0707f,  /* vse32_v */
7067    0x1df0707f,  /* vse64_v */
7068    0x1df0707f,  /* vse8_v */
7069    0xc000707f,  /* vsetivli */
7070    0xfe00707f,  /* vsetvl */
7071    0x8000707f,  /* vsetvli */
7072    0xfc0ff07f,  /* vsext_vf2 */
7073    0xfc0ff07f,  /* vsext_vf4 */
7074    0xfc0ff07f,  /* vsext_vf8 */
7075    0xfe00707f,  /* vsha2ch_vv */
7076    0xfe00707f,  /* vsha2cl_vv */
7077    0xfe00707f,  /* vsha2ms_vv */
7078    0xfc00707f,  /* vslide1down_vx */
7079    0xfc00707f,  /* vslide1up_vx */
7080    0xfc00707f,  /* vslidedown_vi */
7081    0xfc00707f,  /* vslidedown_vx */
7082    0xfc00707f,  /* vslideup_vi */
7083    0xfc00707f,  /* vslideup_vx */
7084    0xfc00707f,  /* vsll_vi */
7085    0xfc00707f,  /* vsll_vv */
7086    0xfc00707f,  /* vsll_vx */
7087    0xfe00707f,  /* vsm3c_vi */
7088    0xfe00707f,  /* vsm3me_vv */
7089    0xfe00707f,  /* vsm4k_vi */
7090    0xfe0ff07f,  /* vsm4r_vs */
7091    0xfe0ff07f,  /* vsm4r_vv */
7092    0xfff0707f,  /* vsm_v */
7093    0xfc00707f,  /* vsmul_vv */
7094    0xfc00707f,  /* vsmul_vx */
7095    0x1c00707f,  /* vsoxei16_v */
7096    0x1c00707f,  /* vsoxei32_v */
7097    0x1c00707f,  /* vsoxei64_v */
7098    0x1c00707f,  /* vsoxei8_v */
7099    0xfc00707f,  /* vsra_vi */
7100    0xfc00707f,  /* vsra_vv */
7101    0xfc00707f,  /* vsra_vx */
7102    0xfc00707f,  /* vsrl_vi */
7103    0xfc00707f,  /* vsrl_vv */
7104    0xfc00707f,  /* vsrl_vx */
7105    0x1c00707f,  /* vsse16_v */
7106    0x1c00707f,  /* vsse32_v */
7107    0x1c00707f,  /* vsse64_v */
7108    0x1c00707f,  /* vsse8_v */
7109    0xfc00707f,  /* vssra_vi */
7110    0xfc00707f,  /* vssra_vv */
7111    0xfc00707f,  /* vssra_vx */
7112    0xfc00707f,  /* vssrl_vi */
7113    0xfc00707f,  /* vssrl_vv */
7114    0xfc00707f,  /* vssrl_vx */
7115    0xfc00707f,  /* vssub_vv */
7116    0xfc00707f,  /* vssub_vx */
7117    0xfc00707f,  /* vssubu_vv */
7118    0xfc00707f,  /* vssubu_vx */
7119    0xfc00707f,  /* vsub_vv */
7120    0xfc00707f,  /* vsub_vx */
7121    0x1c00707f,  /* vsuxei16_v */
7122    0x1c00707f,  /* vsuxei32_v */
7123    0x1c00707f,  /* vsuxei64_v */
7124    0x1c00707f,  /* vsuxei8_v */
7125    0xfc00707f,  /* vwadd_vv */
7126    0xfc00707f,  /* vwadd_vx */
7127    0xfc00707f,  /* vwadd_wv */
7128    0xfc00707f,  /* vwadd_wx */
7129    0xfc00707f,  /* vwaddu_vv */
7130    0xfc00707f,  /* vwaddu_vx */
7131    0xfc00707f,  /* vwaddu_wv */
7132    0xfc00707f,  /* vwaddu_wx */
7133    0xfc00707f,  /* vwmacc_vv */
7134    0xfc00707f,  /* vwmacc_vx */
7135    0xfc00707f,  /* vwmaccsu_vv */
7136    0xfc00707f,  /* vwmaccsu_vx */
7137    0xfc00707f,  /* vwmaccu_vv */
7138    0xfc00707f,  /* vwmaccu_vx */
7139    0xfc00707f,  /* vwmaccus_vx */
7140    0xfc00707f,  /* vwmul_vv */
7141    0xfc00707f,  /* vwmul_vx */
7142    0xfc00707f,  /* vwmulsu_vv */
7143    0xfc00707f,  /* vwmulsu_vx */
7144    0xfc00707f,  /* vwmulu_vv */
7145    0xfc00707f,  /* vwmulu_vx */
7146    0xfc00707f,  /* vwredsum_vs */
7147    0xfc00707f,  /* vwredsumu_vs */
7148    0xfc00707f,  /* vwsll_vi */
7149    0xfc00707f,  /* vwsll_vv */
7150    0xfc00707f,  /* vwsll_vx */
7151    0xfc00707f,  /* vwsub_vv */
7152    0xfc00707f,  /* vwsub_vx */
7153    0xfc00707f,  /* vwsub_wv */
7154    0xfc00707f,  /* vwsub_wx */
7155    0xfc00707f,  /* vwsubu_vv */
7156    0xfc00707f,  /* vwsubu_vx */
7157    0xfc00707f,  /* vwsubu_wv */
7158    0xfc00707f,  /* vwsubu_wx */
7159    0xfc00707f,  /* vxor_vi */
7160    0xfc00707f,  /* vxor_vv */
7161    0xfc00707f,  /* vxor_vx */
7162    0xfc0ff07f,  /* vzext_vf2 */
7163    0xfc0ff07f,  /* vzext_vf4 */
7164    0xfc0ff07f,  /* vzext_vf8 */
7165    0xffffffff,  /* wfi */
7166    0xffffffff,  /* wrs_nto */
7167    0xffffffff,  /* wrs_sto */
7168    0xfe00707f,  /* xnor */
7169    0xfe00707f,  /* xor */
7170    0x707f,      /* xori */
7171    0xfe00707f,  /* xperm4 */
7172    0xfe00707f,  /* xperm8 */
7173    0xfff0707f,  /* zext_b */
7174    0xfff0707f,  /* zext_h */
7175    0xffff_ffff, /* zext_h_rv32 */
7176    0xfff0707f,  /* zext_w */
7177    0xffff_ffff, /* zip */
7178];
7179pub static OPCODE_MATCH: [u32; 1021] = [
7180    0x33, 0x800003b, 0x13, 0x1b, 0x3b, 0x2a000033, 0x2e000033, 0x22000033, 0x26000033, 0x3a000033,
7181    0x3e000033, 0x32000033, 0x36000033, 0x30001013, 0x31001013, 0x7e000033, 0x2f, 0x302f, 0x102f,
7182    0x202f, 0x6000002f, 0x6000302f, 0x6000102f, 0x6000202f, 0x2800002f, 0x2800302f, 0x2800102f,
7183    0x2800402f, 0x2800202f, 0xa000002f, 0xa000302f, 0xa000102f, 0xa000202f, 0xe000002f, 0xe000302f,
7184    0xe000102f, 0xe000202f, 0x8000002f, 0x8000302f, 0x8000102f, 0x8000202f, 0xc000002f, 0xc000302f,
7185    0xc000102f, 0xc000202f, 0x4000002f, 0x4000302f, 0x4000102f, 0x4000202f, 0x800002f, 0x800302f,
7186    0x800102f, 0x800202f, 0x2000002f, 0x2000302f, 0x2000102f, 0x2000202f, 0x7033, 0x7013,
7187    0x40007033, 0x17, 0x48001033, 0x48001013, 0x48001013, 0x63, 0x63, 0x48005033, 0x48005013,
7188    0x48005013, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x68001033, 0x68001013, 0x68001013,
7189    0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x1063, 0x1063, 0x68705013, 0x28001033,
7190    0x28001013, 0x28001013, 0x9002, 0x1, 0x6101, 0x0, 0x2001, 0x9c21, 0x8c61, 0x8801, 0xc001,
7191    0xe001, 0x9002, 0x2000, 0x2002, 0x6000, 0x6002, 0xa000, 0xa002, 0xe000, 0xe002, 0xa001, 0x2001,
7192    0x9002, 0x8002, 0x8000, 0x6000, 0x6002, 0x8440, 0x8400, 0x4001, 0x6001, 0x4000, 0x4002, 0x6081,
7193    0x6581, 0x6681, 0x6781, 0x6181, 0x6281, 0x6381, 0x6481, 0x6081, 0x9c41, 0x8002, 0x1, 0x9c75,
7194    0x9016, 0x900a, 0x900e, 0x9012, 0x8c41, 0x8800, 0xe000, 0xe002, 0x9c65, 0x9c6d, 0x2001, 0x8c00,
7195    0x2, 0x2, 0x8401, 0x8401, 0x8001, 0x8001, 0x8c01, 0x9c01, 0xc000, 0xc002, 0x8c21, 0x9c61,
7196    0x9c69, 0x9c71, 0x10200f, 0x20200f, 0x200f, 0x40200f, 0xa001033, 0xa003033, 0xa002033,
7197    0x60001013, 0x6000101b, 0xa002, 0xac62, 0xac22, 0xba02, 0xbe02, 0xbc02, 0xb802, 0x60201013,
7198    0x6020101b, 0x3073, 0x7073, 0x2073, 0x3073, 0x7073, 0x2073, 0x6073, 0x1073, 0x5073, 0x2073,
7199    0x6073, 0x1073, 0x5073, 0x60101013, 0x6010101b, 0xe005033, 0xe007033, 0x2004033, 0x2005033,
7200    0x200503b, 0x200403b, 0x7b200073, 0x100073, 0x73, 0x22002053, 0x24002053, 0x26002053,
7201    0x20002053, 0x2000053, 0x4000053, 0x6000053, 0x53, 0xe2001053, 0xe4001053, 0xe6001053,
7202    0xe0001053, 0x42200053, 0xd2200053, 0xd2300053, 0x42300053, 0x42000053, 0xd2000053, 0xd2100053,
7203    0x44100053, 0xd4200053, 0xd4300053, 0x44300053, 0x44000053, 0xd4000053, 0xd4100053, 0xc2200053,
7204    0xc4200053, 0xc6200053, 0xc0200053, 0xc2300053, 0xc4300053, 0xc6300053, 0xc0300053, 0x46100053,
7205    0x46200053, 0xd6200053, 0xd6300053, 0x46000053, 0xd6000053, 0xd6100053, 0x40100053, 0x40200053,
7206    0xd0200053, 0xd0300053, 0x40300053, 0xd0000053, 0xd0100053, 0xc2000053, 0xc4000053, 0xc6000053,
7207    0xc0000053, 0xc2100053, 0xc4100053, 0xc6100053, 0xc0100053, 0xc2801053, 0x1a000053, 0x1c000053,
7208    0x1e000053, 0x18000053, 0xf, 0x100f, 0x8330000f, 0xa2002053, 0xa4002053, 0xa6002053,
7209    0xa0002053, 0x3007, 0xa2000053, 0xa4000053, 0xa6000053, 0xa0000053, 0xa2004053, 0xa4004053,
7210    0xa6004053, 0xa0004053, 0x1007, 0xf2100053, 0xf4100053, 0xf6100053, 0xf0100053, 0x4007,
7211    0xa2001053, 0xa4001053, 0xa6001053, 0xa0001053, 0xa2005053, 0xa4005053, 0xa6005053, 0xa0005053,
7212    0x2007, 0x2000043, 0x4000043, 0x6000043, 0x43, 0x2a001053, 0x2c001053, 0x2e001053, 0x28001053,
7213    0x2a003053, 0x2c003053, 0x2e003053, 0x28003053, 0x2a000053, 0x2c000053, 0x2e000053, 0x28000053,
7214    0x2a002053, 0x2c002053, 0x2e002053, 0x28002053, 0x2000047, 0x4000047, 0x6000047, 0x47,
7215    0x12000053, 0x14000053, 0x16000053, 0x10000053, 0x22000053, 0xf2000053, 0x24000053, 0xf4000053,
7216    0x26000053, 0x20000053, 0xf0000053, 0xf0000053, 0xe2000053, 0xe4000053, 0xe0000053, 0xe0000053,
7217    0xe2100053, 0xe6100053, 0xb2000053, 0xb6000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053,
7218    0x200004f, 0x400004f, 0x600004f, 0x4f, 0x200004b, 0x400004b, 0x600004b, 0x4b, 0x302073,
7219    0x102073, 0x42400053, 0x44400053, 0x46400053, 0x40400053, 0x42500053, 0x44500053, 0x46500053,
7220    0x40500053, 0x202073, 0x301073, 0x3027, 0x101073, 0x105073, 0x22000053, 0x24000053, 0x26000053,
7221    0x20000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x22002053, 0x24002053, 0x26002053,
7222    0x20002053, 0x1027, 0x4027, 0x5a000053, 0x5c000053, 0x5e000053, 0x58000053, 0x201073, 0x205073,
7223    0xa000053, 0xc000053, 0xe000053, 0x8000053, 0x2027, 0x62000073, 0x22000073, 0x66000073,
7224    0x26000073, 0x60004073, 0x60104073, 0x6c004073, 0x64004073, 0x64104073, 0x68004073, 0x68104073,
7225    0x64304073, 0x68304073, 0x62004073, 0x6e004073, 0x66004073, 0x6a004073, 0x6f, 0x6f, 0xef, 0x67,
7226    0xe7, 0x67, 0x3, 0x4003, 0x3003, 0x1003, 0x5003, 0x1000302f, 0x1000202f, 0x37, 0x2003, 0x6003,
7227    0xa006033, 0xa007033, 0xa004033, 0xa005033, 0x81c04073, 0x81d04073, 0x89e04073, 0x89f04073,
7228    0x8dc04073, 0x8dd04073, 0x8de04073, 0x8df04073, 0xc1c04073, 0xc1d04073, 0xc1e04073, 0xc1f04073,
7229    0x81e04073, 0xc5c04073, 0xc5d04073, 0xc5e04073, 0xc5f04073, 0xc9c04073, 0xc9d04073, 0xc9e04073,
7230    0xc9f04073, 0xcdc04073, 0xcdd04073, 0x81f04073, 0xcde04073, 0xcdf04073, 0x85c04073, 0x85d04073,
7231    0x85e04073, 0x85f04073, 0x89c04073, 0x89d04073, 0x81c04073, 0x82004073, 0x86004073, 0x8a004073,
7232    0x8e004073, 0xc2004073, 0xc6004073, 0xca004073, 0xce004073, 0x82004073, 0x30200073, 0x2000033,
7233    0x2001033, 0x2002033, 0x2003033, 0x200003b, 0x13, 0x40000033, 0x13, 0x500033, 0x200033,
7234    0x300033, 0x400033, 0x6033, 0x28705013, 0x6013, 0x40006033, 0x8004033, 0x8007033, 0x800403b,
7235    0x100000f, 0x6013, 0x106013, 0x306013, 0xc0002073, 0xc8002073, 0xc0202073, 0xc8202073,
7236    0xc0102073, 0xc8102073, 0x2006033, 0x2007033, 0x200703b, 0x200603b, 0x8067, 0x6b805013,
7237    0x69805013, 0x60001033, 0x6000103b, 0x60005033, 0x60005013, 0x60005013, 0x6000501b, 0x6000503b,
7238    0x23, 0x100073, 0x1800302f, 0x1800202f, 0x73, 0x3023, 0x103013, 0x60401013, 0x60501013, 0x1b,
7239    0x18100073, 0x12000073, 0x18000073, 0x2033, 0x1023, 0x20002033, 0x2000203b, 0x20004033,
7240    0x2000403b, 0x20006033, 0x2000603b, 0x10201013, 0x10301013, 0x10001013, 0x10101013, 0x10601013,
7241    0x5c000033, 0x54000033, 0x10701013, 0x5e000033, 0x56000033, 0x10401013, 0x50000033, 0x10501013,
7242    0x52000033, 0x16000073, 0x1033, 0x1013, 0x1013, 0x800101b, 0x101b, 0x103b, 0x2033, 0x2013,
7243    0x3013, 0x3033, 0x2033, 0x10801013, 0x10901013, 0x30000033, 0x34000033, 0x3033, 0x40005033,
7244    0x40005013, 0x40005013, 0x4000501b, 0x4000503b, 0x10200073, 0x5033, 0x5013, 0x5013, 0x501b,
7245    0x503b, 0x40000033, 0x4000003b, 0x2023, 0x8f05013, 0x24002057, 0x24006057, 0x20002057,
7246    0x20006057, 0x40003057, 0x40000057, 0x40004057, 0x3057, 0x57, 0x4057, 0xa600a077, 0xa200a077,
7247    0xa6002077, 0xa2002077, 0xa601a077, 0xa201a077, 0xa6012077, 0xa2012077, 0x8a002077, 0xaa002077,
7248    0xa603a077, 0x24003057, 0x24000057, 0x24004057, 0x4000057, 0x4004057, 0x2c002057, 0x2c006057,
7249    0x28002057, 0x28006057, 0x48042057, 0x48052057, 0x30002057, 0x30006057, 0x34002057, 0x34006057,
7250    0x48062057, 0x5e002057, 0x40082057, 0x48072057, 0x4806a057, 0x84002057, 0x84006057, 0x80002057,
7251    0x80006057, 0x5057, 0x1057, 0x4c081057, 0x48019057, 0x48011057, 0x48039057, 0x48031057,
7252    0x48009057, 0x48001057, 0x80005057, 0x80001057, 0x4008a057, 0xb0005057, 0xb0001057, 0xa0005057,
7253    0xa0001057, 0x18005057, 0x18001057, 0x5c005057, 0x10005057, 0x10001057, 0xb8005057, 0xb8001057,
7254    0xa8005057, 0xa8001057, 0x90005057, 0x90001057, 0x42001057, 0x42005057, 0x5e005057, 0x480a1057,
7255    0x48099057, 0x48091057, 0x480a9057, 0x480b9057, 0x480b1057, 0x48089057, 0x48081057, 0xb4005057,
7256    0xb4001057, 0xa4005057, 0xa4001057, 0xbc005057, 0xbc001057, 0xac005057, 0xac001057, 0x84005057,
7257    0x4c029057, 0x1c001057, 0x14001057, 0xc001057, 0x4001057, 0x4001057, 0x4c021057, 0x9c005057,
7258    0x20005057, 0x20001057, 0x24005057, 0x24001057, 0x28005057, 0x28001057, 0x3c005057, 0x38005057,
7259    0x4c001057, 0x8005057, 0x8001057, 0xc0005057, 0xc0001057, 0xd0005057, 0xd0001057, 0x48061057,
7260    0x48059057, 0x48051057, 0x48079057, 0x48071057, 0x48049057, 0x48041057, 0xf0005057, 0xf0001057,
7261    0xf8005057, 0xf8001057, 0xe0005057, 0xe0001057, 0xf4005057, 0xf4001057, 0xfc005057, 0xfc001057,
7262    0xcc001057, 0xc4001057, 0xc4001057, 0xc8005057, 0xc8001057, 0xd8005057, 0xd8001057, 0xb2002077,
7263    0xa208a077, 0x5008a057, 0x50082057, 0x2800007, 0x2805007, 0x2806007, 0x2807007, 0x2800007,
7264    0x22800007, 0x22805007, 0x22806007, 0x22807007, 0x22800007, 0x62800007, 0x62805007, 0x62806007,
7265    0x62807007, 0x62800007, 0xe2800007, 0xe2805007, 0xe2806007, 0xe2807007, 0xe2800007, 0x5007,
7266    0x1005007, 0x2b00007, 0x6007, 0x1006007, 0x7007, 0x1007007, 0x7, 0x1000007, 0x2b00007,
7267    0xc005007, 0xc006007, 0xc007007, 0xc000007, 0x8005007, 0x8006007, 0x8007007, 0x8000007,
7268    0x4005007, 0x4006007, 0x4007007, 0x4000007, 0xb4002057, 0xb4006057, 0x46003057, 0x44003057,
7269    0x46000057, 0x44000057, 0x46004057, 0x44004057, 0xa4002057, 0xa4006057, 0x66002057, 0x62002057,
7270    0x60002057, 0x1c000057, 0x1c004057, 0x18000057, 0x18004057, 0x5c003057, 0x5c000057, 0x5c004057,
7271    0x60005057, 0x60001057, 0x7c005057, 0x74005057, 0x64005057, 0x64001057, 0x6c005057, 0x6c001057,
7272    0x70005057, 0x70001057, 0x14000057, 0x14004057, 0x10000057, 0x10004057, 0x76002057, 0x7a002057,
7273    0x6a002057, 0x72002057, 0x70002057, 0x4e000057, 0x4c000057, 0x4e004057, 0x4c004057, 0x5000a057,
7274    0x60003057, 0x60000057, 0x60004057, 0x7c003057, 0x7c004057, 0x78003057, 0x78004057, 0x5001a057,
7275    0x74003057, 0x74000057, 0x74004057, 0x70003057, 0x70000057, 0x70004057, 0x6c000057, 0x6c004057,
7276    0x68000057, 0x68004057, 0x64003057, 0x64000057, 0x64004057, 0x50012057, 0x94002057, 0x94006057,
7277    0x9c002057, 0x9c006057, 0x98002057, 0x98006057, 0x90002057, 0x90006057, 0x9e003057, 0x9e00b057,
7278    0x9e01b057, 0x9e03b057, 0x42006057, 0x5e003057, 0x5e000057, 0x5e004057, 0x42002057, 0x7e002057,
7279    0x6e002057, 0xbc003057, 0xbc000057, 0xbc004057, 0xb8003057, 0xb8000057, 0xb8004057, 0xbc002057,
7280    0xbc006057, 0xac002057, 0xac006057, 0xb4003057, 0xb4000057, 0xb4004057, 0xb0003057, 0xb0000057,
7281    0xb0004057, 0x28003057, 0x28000057, 0x28004057, 0x40082057, 0x4002057, 0x1c002057, 0x18002057,
7282    0x14002057, 0x10002057, 0x8002057, 0x2057, 0xc002057, 0x8c002057, 0x8c006057, 0x88002057,
7283    0x88006057, 0x4804a057, 0x30003057, 0x30000057, 0x30004057, 0x38000057, 0x54000057, 0x54004057,
7284    0x50003057, 0x50000057, 0x50004057, 0xc003057, 0xc004057, 0x2800027, 0x22800027, 0x62800027,
7285    0xe2800027, 0x84003057, 0x84000057, 0x84004057, 0x80003057, 0x80000057, 0x80004057, 0x48000057,
7286    0x48004057, 0x5027, 0x2b00027, 0x6027, 0x7027, 0x27, 0xc0007057, 0x80007057, 0x7057,
7287    0x4803a057, 0x4802a057, 0x4801a057, 0xba002077, 0xbe002077, 0xb6002077, 0x3c006057, 0x38006057,
7288    0x3c003057, 0x3c004057, 0x38003057, 0x38004057, 0x94003057, 0x94000057, 0x94004057, 0xae002077,
7289    0x82002077, 0x86002077, 0xa6082077, 0xa2082077, 0x2b00027, 0x9c000057, 0x9c004057, 0xc005027,
7290    0xc006027, 0xc007027, 0xc000027, 0xa4003057, 0xa4000057, 0xa4004057, 0xa0003057, 0xa0000057,
7291    0xa0004057, 0x8005027, 0x8006027, 0x8007027, 0x8000027, 0xac003057, 0xac000057, 0xac004057,
7292    0xa8003057, 0xa8000057, 0xa8004057, 0x8c000057, 0x8c004057, 0x88000057, 0x88004057, 0x8000057,
7293    0x8004057, 0x4005027, 0x4006027, 0x4007027, 0x4000027, 0xc4002057, 0xc4006057, 0xd4002057,
7294    0xd4006057, 0xc0002057, 0xc0006057, 0xd0002057, 0xd0006057, 0xf4002057, 0xf4006057, 0xfc002057,
7295    0xfc006057, 0xf0002057, 0xf0006057, 0xf8006057, 0xec002057, 0xec006057, 0xe8002057, 0xe8006057,
7296    0xe0002057, 0xe0006057, 0xc4000057, 0xc0000057, 0xd4003057, 0xd4000057, 0xd4004057, 0xcc002057,
7297    0xcc006057, 0xdc002057, 0xdc006057, 0xc8002057, 0xc8006057, 0xd8002057, 0xd8006057, 0x2c003057,
7298    0x2c000057, 0x2c004057, 0x48032057, 0x48022057, 0x48012057, 0x10500073, 0xd00073, 0x1d00073,
7299    0x40004033, 0x4033, 0x4013, 0x28002033, 0x28004033, 0x7013, 0x800403b, 0x8004033, 0x800003b,
7300    0x8f01013,
7301];
7302pub static OPCODE_MASK: [u32; 1021] = [
7303    0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0x3e00707f, 0x3e00707f, 0x3e00707f,
7304    0x3e00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xff00707f, 0xfe00707f,
7305    0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7306    0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7307    0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7308    0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7309    0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7310    0xf800707f, 0xfe00707f, 0x707f, 0xfe00707f, 0x7f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f,
7311    0x1f0707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x707f,
7312    0xff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f, 0x707f, 0xff07f, 0x707f, 0x707f,
7313    0x1f0707f, 0x707f, 0x1f0707f, 0xfff0707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xf003, 0xe003,
7314    0xef83, 0xe003, 0xe003, 0xfc63, 0xfc63, 0xec03, 0xe003, 0xe003, 0xffff, 0xe003, 0xe003, 0xe003,
7315    0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xf07f, 0xf07f, 0xfc03, 0xe003, 0xe003,
7316    0xfc43, 0xfc43, 0xe003, 0xe003, 0xe003, 0xe003, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
7317    0xffff, 0xffff, 0xf8ff, 0xfc63, 0xf003, 0xef83, 0xfc7f, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc63,
7318    0xfc03, 0xe003, 0xe003, 0xfc7f, 0xfc7f, 0xf07f, 0xfc43, 0xe003, 0xf003, 0xec03, 0xfc03, 0xec03,
7319    0xfc03, 0xfc63, 0xfc63, 0xe003, 0xe003, 0xfc63, 0xfc7f, 0xfc7f, 0xfc7f, 0xfff07fff, 0xfff07fff,
7320    0xfff07fff, 0xfff07fff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfc03,
7321    0xfc63, 0xfc63, 0xff03, 0xff03, 0xff03, 0xff03, 0xfff0707f, 0xfff0707f, 0x7fff, 0x7fff,
7322    0xff07f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x7fff, 0x7fff, 0x7fff, 0x7fff,
7323    0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7324    0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00007f,
7325    0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0007f,
7326    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7327    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7328    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7329    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7330    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7331    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f,
7332    0x707f, 0x707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f,
7333    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f,
7334    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7335    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x600007f, 0x600007f,
7336    0x600007f, 0x600007f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7337    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7338    0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00007f, 0xfe00007f,
7339    0xfe00007f, 0xfe00007f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f,
7340    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7341    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f,
7342    0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfffff07f, 0xfffff07f,
7343    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7344    0xfffff07f, 0xfff0707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7345    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7346    0xfe00707f, 0x707f, 0x707f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f,
7347    0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0xfe007fff, 0xfe007fff,
7348    0xfe007fff, 0xfe007fff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7349    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfff,
7350    0x7f, 0xfff, 0x707f, 0xfff07fff, 0xfff07fff, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f,
7351    0xf9f0707f, 0xf9f0707f, 0x7f, 0x707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7352    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7353    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7354    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7355    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7356    0xb3c0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7357    0xfe00707f, 0xb200707f, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7358    0xfff0707f, 0xfff0707f, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f,
7359    0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0x1f07fff,
7360    0x1f07fff, 0x1f07fff, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f,
7361    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0xfff0707f, 0xfff0707f, 0xfe00707f,
7362    0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xffffffff,
7363    0xf800707f, 0xf800707f, 0xffffffff, 0x707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7364    0xffffffff, 0xfe007fff, 0xffffffff, 0xfe0ff07f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7365    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7366    0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f,
7367    0xfe00707f, 0xfe007fff, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f,
7368    0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x3e00707f,
7369    0x3e00707f, 0xfe0ff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff,
7370    0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f,
7371    0xfff0707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7372    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f,
7373    0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfc00707f, 0xfc00707f,
7374    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f,
7375    0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfe00707f, 0xfc0ff07f,
7376    0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7377    0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f,
7378    0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7379    0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7380    0xfc00707f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f,
7381    0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7382    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7383    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7384    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7385    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f,
7386    0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7387    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7388    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe0ff07f, 0xfdfff07f, 0xfc0ff07f,
7389    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7390    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7391    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1df0707f,
7392    0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1c00707f, 0x1c00707f,
7393    0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f,
7394    0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7395    0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f,
7396    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f,
7397    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7398    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7399    0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7400    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7401    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7402    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7403    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f,
7404    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfc00707f,
7405    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7406    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7407    0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7408    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f,
7409    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xf800707f, 0xfc00707f,
7410    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfc00707f,
7411    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0x1df0707f,
7412    0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xc000707f, 0xfe00707f, 0x8000707f, 0xfc0ff07f,
7413    0xfc0ff07f, 0xfc0ff07f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7414    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f,
7415    0xfe00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f,
7416    0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7417    0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7418    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7419    0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7420    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7421    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7422    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7423    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7424    0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f,
7425    0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7426    0xfff0707f,
7427];
7428pub static OPCODE_MASK_COMPRESSED: [u16; 1021] = [
7429    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7430    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7431    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61443, 57347,
7432    61315, 57347, 57347, 64611, 64611, 60419, 57347, 57347, 65535, 57347, 57347, 57347, 57347,
7433    57347, 57347, 57347, 57347, 57347, 57347, 61567, 61567, 64515, 57347, 57347, 64579, 64579,
7434    57347, 57347, 57347, 57347, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 63743,
7435    64611, 61443, 61315, 64639, 65535, 65535, 65535, 65535, 64611, 64515, 57347, 57347, 64639,
7436    64639, 61567, 64579, 57347, 61443, 60419, 64515, 60419, 64515, 64611, 64611, 57347, 57347,
7437    64611, 64639, 64639, 64639, 32767, 32767, 32767, 32767, 28799, 28799, 28799, 28799, 28799,
7438    64515, 64611, 64611, 65283, 65283, 65283, 65283, 28799, 28799, 32767, 32767, 61567, 28799,
7439    28799, 28799, 28799, 28799, 28799, 32767, 32767, 32767, 32767, 28799, 28799, 28799, 28799, 0,
7440    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7441    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7442    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7443    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7444    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7445    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7446    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7447    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7448    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7449    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7450    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7451    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7452    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7453    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7454    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7455    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7456    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7457    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7458    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7459    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7460    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7461    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7462    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7463    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7464    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7465    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7466];
7467
7468pub static OPCODE_MATCH_COMPRESSED: [u16; 1021] = [
7469    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7470    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7471    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36866, 1, 24833,
7472    0, 8193, 39969, 35937, 34817, 49153, 57345, 36866, 8192, 8194, 24576, 24578, 40960, 40962,
7473    57344, 57346, 40961, 8193, 36866, 32770, 32768, 24576, 24578, 33856, 33792, 16385, 24577,
7474    16384, 16386, 24705, 25985, 26241, 26497, 24961, 25217, 25473, 25729, 24705, 40001, 32770, 1,
7475    40053, 36886, 36874, 36878, 36882, 35905, 34816, 57344, 57346, 40037, 40045, 8193, 35840, 2, 2,
7476    33793, 33793, 32769, 32769, 35841, 39937, 49152, 49154, 35873, 40033, 40041, 40049, 8207, 8207,
7477    8207, 8207, 4147, 12339, 8243, 4115, 4123, 40962, 44130, 44066, 47618, 48642, 48130, 47106,
7478    4115, 4123, 12403, 28787, 8307, 12403, 28787, 8307, 24691, 4211, 20595, 8307, 24691, 4211,
7479    20595, 4115, 4123, 20531, 28723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7480    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7481    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7482    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7483    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7484    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7485    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7486    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7487    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7488    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7489    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7490    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7491    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7492    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7493    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7494    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7495    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7496    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7497    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7498    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7499    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7500    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7501    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7502    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7503    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7504    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7505    0, 0, 0, 0,
7506];
7507
7508pub static ALL_OPCODES: [Opcode; 1021] = [
7509    Opcode::ADD,
7510    Opcode::ADDUW,
7511    Opcode::ADDI,
7512    Opcode::ADDIW,
7513    Opcode::ADDW,
7514    Opcode::AES32DSI,
7515    Opcode::AES32DSMI,
7516    Opcode::AES32ESI,
7517    Opcode::AES32ESMI,
7518    Opcode::AES64DS,
7519    Opcode::AES64DSM,
7520    Opcode::AES64ES,
7521    Opcode::AES64ESM,
7522    Opcode::AES64IM,
7523    Opcode::AES64KS1I,
7524    Opcode::AES64KS2,
7525    Opcode::AMOADDB,
7526    Opcode::AMOADDD,
7527    Opcode::AMOADDH,
7528    Opcode::AMOADDW,
7529    Opcode::AMOANDB,
7530    Opcode::AMOANDD,
7531    Opcode::AMOANDH,
7532    Opcode::AMOANDW,
7533    Opcode::AMOCASB,
7534    Opcode::AMOCASD,
7535    Opcode::AMOCASH,
7536    Opcode::AMOCASQ,
7537    Opcode::AMOCASW,
7538    Opcode::AMOMAXB,
7539    Opcode::AMOMAXD,
7540    Opcode::AMOMAXH,
7541    Opcode::AMOMAXW,
7542    Opcode::AMOMAXUB,
7543    Opcode::AMOMAXUD,
7544    Opcode::AMOMAXUH,
7545    Opcode::AMOMAXUW,
7546    Opcode::AMOMINB,
7547    Opcode::AMOMIND,
7548    Opcode::AMOMINH,
7549    Opcode::AMOMINW,
7550    Opcode::AMOMINUB,
7551    Opcode::AMOMINUD,
7552    Opcode::AMOMINUH,
7553    Opcode::AMOMINUW,
7554    Opcode::AMOORB,
7555    Opcode::AMOORD,
7556    Opcode::AMOORH,
7557    Opcode::AMOORW,
7558    Opcode::AMOSWAPB,
7559    Opcode::AMOSWAPD,
7560    Opcode::AMOSWAPH,
7561    Opcode::AMOSWAPW,
7562    Opcode::AMOXORB,
7563    Opcode::AMOXORD,
7564    Opcode::AMOXORH,
7565    Opcode::AMOXORW,
7566    Opcode::AND,
7567    Opcode::ANDI,
7568    Opcode::ANDN,
7569    Opcode::AUIPC,
7570    Opcode::BCLR,
7571    Opcode::BCLRI,
7572    Opcode::BCLRIRV32,
7573    Opcode::BEQ,
7574    Opcode::BEQZ,
7575    Opcode::BEXT,
7576    Opcode::BEXTI,
7577    Opcode::BEXTIRV32,
7578    Opcode::BGE,
7579    Opcode::BGEU,
7580    Opcode::BGEZ,
7581    Opcode::BGT,
7582    Opcode::BGTU,
7583    Opcode::BGTZ,
7584    Opcode::BINV,
7585    Opcode::BINVI,
7586    Opcode::BINVIRV32,
7587    Opcode::BLE,
7588    Opcode::BLEU,
7589    Opcode::BLEZ,
7590    Opcode::BLT,
7591    Opcode::BLTU,
7592    Opcode::BLTZ,
7593    Opcode::BNE,
7594    Opcode::BNEZ,
7595    Opcode::BREV8,
7596    Opcode::BSET,
7597    Opcode::BSETI,
7598    Opcode::BSETIRV32,
7599    Opcode::CADD,
7600    Opcode::CADDI,
7601    Opcode::CADDI16SP,
7602    Opcode::CADDI4SPN,
7603    Opcode::CADDIW,
7604    Opcode::CADDW,
7605    Opcode::CAND,
7606    Opcode::CANDI,
7607    Opcode::CBEQZ,
7608    Opcode::CBNEZ,
7609    Opcode::CEBREAK,
7610    Opcode::CFLD,
7611    Opcode::CFLDSP,
7612    Opcode::CFLW,
7613    Opcode::CFLWSP,
7614    Opcode::CFSD,
7615    Opcode::CFSDSP,
7616    Opcode::CFSW,
7617    Opcode::CFSWSP,
7618    Opcode::CJ,
7619    Opcode::CJAL,
7620    Opcode::CJALR,
7621    Opcode::CJR,
7622    Opcode::CLBU,
7623    Opcode::CLD,
7624    Opcode::CLDSP,
7625    Opcode::CLH,
7626    Opcode::CLHU,
7627    Opcode::CLI,
7628    Opcode::CLUI,
7629    Opcode::CLW,
7630    Opcode::CLWSP,
7631    Opcode::CMOP1,
7632    Opcode::CMOP11,
7633    Opcode::CMOP13,
7634    Opcode::CMOP15,
7635    Opcode::CMOP3,
7636    Opcode::CMOP5,
7637    Opcode::CMOP7,
7638    Opcode::CMOP9,
7639    Opcode::CMOPN,
7640    Opcode::CMUL,
7641    Opcode::CMV,
7642    Opcode::CNOP,
7643    Opcode::CNOT,
7644    Opcode::CNTLALL,
7645    Opcode::CNTLP1,
7646    Opcode::CNTLPALL,
7647    Opcode::CNTLS1,
7648    Opcode::COR,
7649    Opcode::CSB,
7650    Opcode::CSD,
7651    Opcode::CSDSP,
7652    Opcode::CSEXTB,
7653    Opcode::CSEXTH,
7654    Opcode::CSEXTW,
7655    Opcode::CSH,
7656    Opcode::CSLLI,
7657    Opcode::CSLLIRV32,
7658    Opcode::CSRAI,
7659    Opcode::CSRAIRV32,
7660    Opcode::CSRLI,
7661    Opcode::CSRLIRV32,
7662    Opcode::CSUB,
7663    Opcode::CSUBW,
7664    Opcode::CSW,
7665    Opcode::CSWSP,
7666    Opcode::CXOR,
7667    Opcode::CZEXTB,
7668    Opcode::CZEXTH,
7669    Opcode::CZEXTW,
7670    Opcode::CBOCLEAN,
7671    Opcode::CBOFLUSH,
7672    Opcode::CBOINVAL,
7673    Opcode::CBOZERO,
7674    Opcode::CLMUL,
7675    Opcode::CLMULH,
7676    Opcode::CLMULR,
7677    Opcode::CLZ,
7678    Opcode::CLZW,
7679    Opcode::CMJALT,
7680    Opcode::CMMVA01S,
7681    Opcode::CMMVSA01,
7682    Opcode::CMPOP,
7683    Opcode::CMPOPRET,
7684    Opcode::CMPOPRETZ,
7685    Opcode::CMPUSH,
7686    Opcode::CPOP,
7687    Opcode::CPOPW,
7688    Opcode::CSRC,
7689    Opcode::CSRCI,
7690    Opcode::CSRR,
7691    Opcode::CSRRC,
7692    Opcode::CSRRCI,
7693    Opcode::CSRRS,
7694    Opcode::CSRRSI,
7695    Opcode::CSRRW,
7696    Opcode::CSRRWI,
7697    Opcode::CSRS,
7698    Opcode::CSRSI,
7699    Opcode::CSRW,
7700    Opcode::CSRWI,
7701    Opcode::CTZ,
7702    Opcode::CTZW,
7703    Opcode::CZEROEQZ,
7704    Opcode::CZERONEZ,
7705    Opcode::DIV,
7706    Opcode::DIVU,
7707    Opcode::DIVUW,
7708    Opcode::DIVW,
7709    Opcode::DRET,
7710    Opcode::EBREAK,
7711    Opcode::ECALL,
7712    Opcode::FABSD,
7713    Opcode::FABSH,
7714    Opcode::FABSQ,
7715    Opcode::FABSS,
7716    Opcode::FADDD,
7717    Opcode::FADDH,
7718    Opcode::FADDQ,
7719    Opcode::FADDS,
7720    Opcode::FCLASSD,
7721    Opcode::FCLASSH,
7722    Opcode::FCLASSQ,
7723    Opcode::FCLASSS,
7724    Opcode::FCVTDH,
7725    Opcode::FCVTDL,
7726    Opcode::FCVTDLU,
7727    Opcode::FCVTDQ,
7728    Opcode::FCVTDS,
7729    Opcode::FCVTDW,
7730    Opcode::FCVTDWU,
7731    Opcode::FCVTHD,
7732    Opcode::FCVTHL,
7733    Opcode::FCVTHLU,
7734    Opcode::FCVTHQ,
7735    Opcode::FCVTHS,
7736    Opcode::FCVTHW,
7737    Opcode::FCVTHWU,
7738    Opcode::FCVTLD,
7739    Opcode::FCVTLH,
7740    Opcode::FCVTLQ,
7741    Opcode::FCVTLS,
7742    Opcode::FCVTLUD,
7743    Opcode::FCVTLUH,
7744    Opcode::FCVTLUQ,
7745    Opcode::FCVTLUS,
7746    Opcode::FCVTQD,
7747    Opcode::FCVTQH,
7748    Opcode::FCVTQL,
7749    Opcode::FCVTQLU,
7750    Opcode::FCVTQS,
7751    Opcode::FCVTQW,
7752    Opcode::FCVTQWU,
7753    Opcode::FCVTSD,
7754    Opcode::FCVTSH,
7755    Opcode::FCVTSL,
7756    Opcode::FCVTSLU,
7757    Opcode::FCVTSQ,
7758    Opcode::FCVTSW,
7759    Opcode::FCVTSWU,
7760    Opcode::FCVTWD,
7761    Opcode::FCVTWH,
7762    Opcode::FCVTWQ,
7763    Opcode::FCVTWS,
7764    Opcode::FCVTWUD,
7765    Opcode::FCVTWUH,
7766    Opcode::FCVTWUQ,
7767    Opcode::FCVTWUS,
7768    Opcode::FCVTMODWD,
7769    Opcode::FDIVD,
7770    Opcode::FDIVH,
7771    Opcode::FDIVQ,
7772    Opcode::FDIVS,
7773    Opcode::FENCE,
7774    Opcode::FENCEI,
7775    Opcode::FENCETSO,
7776    Opcode::FEQD,
7777    Opcode::FEQH,
7778    Opcode::FEQQ,
7779    Opcode::FEQS,
7780    Opcode::FLD,
7781    Opcode::FLED,
7782    Opcode::FLEH,
7783    Opcode::FLEQ,
7784    Opcode::FLES,
7785    Opcode::FLEQD,
7786    Opcode::FLEQH,
7787    Opcode::FLEQQ,
7788    Opcode::FLEQS,
7789    Opcode::FLH,
7790    Opcode::FLID,
7791    Opcode::FLIH,
7792    Opcode::FLIQ,
7793    Opcode::FLIS,
7794    Opcode::FLQ,
7795    Opcode::FLTD,
7796    Opcode::FLTH,
7797    Opcode::FLTQ,
7798    Opcode::FLTS,
7799    Opcode::FLTQD,
7800    Opcode::FLTQH,
7801    Opcode::FLTQQ,
7802    Opcode::FLTQS,
7803    Opcode::FLW,
7804    Opcode::FMADDD,
7805    Opcode::FMADDH,
7806    Opcode::FMADDQ,
7807    Opcode::FMADDS,
7808    Opcode::FMAXD,
7809    Opcode::FMAXH,
7810    Opcode::FMAXQ,
7811    Opcode::FMAXS,
7812    Opcode::FMAXMD,
7813    Opcode::FMAXMH,
7814    Opcode::FMAXMQ,
7815    Opcode::FMAXMS,
7816    Opcode::FMIND,
7817    Opcode::FMINH,
7818    Opcode::FMINQ,
7819    Opcode::FMINS,
7820    Opcode::FMINMD,
7821    Opcode::FMINMH,
7822    Opcode::FMINMQ,
7823    Opcode::FMINMS,
7824    Opcode::FMSUBD,
7825    Opcode::FMSUBH,
7826    Opcode::FMSUBQ,
7827    Opcode::FMSUBS,
7828    Opcode::FMULD,
7829    Opcode::FMULH,
7830    Opcode::FMULQ,
7831    Opcode::FMULS,
7832    Opcode::FMVD,
7833    Opcode::FMVDX,
7834    Opcode::FMVH,
7835    Opcode::FMVHX,
7836    Opcode::FMVQ,
7837    Opcode::FMVS,
7838    Opcode::FMVSX,
7839    Opcode::FMVWX,
7840    Opcode::FMVXD,
7841    Opcode::FMVXH,
7842    Opcode::FMVXS,
7843    Opcode::FMVXW,
7844    Opcode::FMVHXD,
7845    Opcode::FMVHXQ,
7846    Opcode::FMVPDX,
7847    Opcode::FMVPQX,
7848    Opcode::FNEGD,
7849    Opcode::FNEGH,
7850    Opcode::FNEGQ,
7851    Opcode::FNEGS,
7852    Opcode::FNMADDD,
7853    Opcode::FNMADDH,
7854    Opcode::FNMADDQ,
7855    Opcode::FNMADDS,
7856    Opcode::FNMSUBD,
7857    Opcode::FNMSUBH,
7858    Opcode::FNMSUBQ,
7859    Opcode::FNMSUBS,
7860    Opcode::FRCSR,
7861    Opcode::FRFLAGS,
7862    Opcode::FROUNDD,
7863    Opcode::FROUNDH,
7864    Opcode::FROUNDQ,
7865    Opcode::FROUNDS,
7866    Opcode::FROUNDNXD,
7867    Opcode::FROUNDNXH,
7868    Opcode::FROUNDNXQ,
7869    Opcode::FROUNDNXS,
7870    Opcode::FRRM,
7871    Opcode::FSCSR,
7872    Opcode::FSD,
7873    Opcode::FSFLAGS,
7874    Opcode::FSFLAGSI,
7875    Opcode::FSGNJD,
7876    Opcode::FSGNJH,
7877    Opcode::FSGNJQ,
7878    Opcode::FSGNJS,
7879    Opcode::FSGNJND,
7880    Opcode::FSGNJNH,
7881    Opcode::FSGNJNQ,
7882    Opcode::FSGNJNS,
7883    Opcode::FSGNJXD,
7884    Opcode::FSGNJXH,
7885    Opcode::FSGNJXQ,
7886    Opcode::FSGNJXS,
7887    Opcode::FSH,
7888    Opcode::FSQ,
7889    Opcode::FSQRTD,
7890    Opcode::FSQRTH,
7891    Opcode::FSQRTQ,
7892    Opcode::FSQRTS,
7893    Opcode::FSRM,
7894    Opcode::FSRMI,
7895    Opcode::FSUBD,
7896    Opcode::FSUBH,
7897    Opcode::FSUBQ,
7898    Opcode::FSUBS,
7899    Opcode::FSW,
7900    Opcode::HFENCEGVMA,
7901    Opcode::HFENCEVVMA,
7902    Opcode::HINVALGVMA,
7903    Opcode::HINVALVVMA,
7904    Opcode::HLVB,
7905    Opcode::HLVBU,
7906    Opcode::HLVD,
7907    Opcode::HLVH,
7908    Opcode::HLVHU,
7909    Opcode::HLVW,
7910    Opcode::HLVWU,
7911    Opcode::HLVXHU,
7912    Opcode::HLVXWU,
7913    Opcode::HSVB,
7914    Opcode::HSVD,
7915    Opcode::HSVH,
7916    Opcode::HSVW,
7917    Opcode::J,
7918    Opcode::JAL,
7919    Opcode::JALPSEUDO,
7920    Opcode::JALR,
7921    Opcode::JALRPSEUDO,
7922    Opcode::JR,
7923    Opcode::LB,
7924    Opcode::LBU,
7925    Opcode::LD,
7926    Opcode::LH,
7927    Opcode::LHU,
7928    Opcode::LRD,
7929    Opcode::LRW,
7930    Opcode::LUI,
7931    Opcode::LW,
7932    Opcode::LWU,
7933    Opcode::MAX,
7934    Opcode::MAXU,
7935    Opcode::MIN,
7936    Opcode::MINU,
7937    Opcode::MOPR0,
7938    Opcode::MOPR1,
7939    Opcode::MOPR10,
7940    Opcode::MOPR11,
7941    Opcode::MOPR12,
7942    Opcode::MOPR13,
7943    Opcode::MOPR14,
7944    Opcode::MOPR15,
7945    Opcode::MOPR16,
7946    Opcode::MOPR17,
7947    Opcode::MOPR18,
7948    Opcode::MOPR19,
7949    Opcode::MOPR2,
7950    Opcode::MOPR20,
7951    Opcode::MOPR21,
7952    Opcode::MOPR22,
7953    Opcode::MOPR23,
7954    Opcode::MOPR24,
7955    Opcode::MOPR25,
7956    Opcode::MOPR26,
7957    Opcode::MOPR27,
7958    Opcode::MOPR28,
7959    Opcode::MOPR29,
7960    Opcode::MOPR3,
7961    Opcode::MOPR30,
7962    Opcode::MOPR31,
7963    Opcode::MOPR4,
7964    Opcode::MOPR5,
7965    Opcode::MOPR6,
7966    Opcode::MOPR7,
7967    Opcode::MOPR8,
7968    Opcode::MOPR9,
7969    Opcode::MOPRN,
7970    Opcode::MOPRR0,
7971    Opcode::MOPRR1,
7972    Opcode::MOPRR2,
7973    Opcode::MOPRR3,
7974    Opcode::MOPRR4,
7975    Opcode::MOPRR5,
7976    Opcode::MOPRR6,
7977    Opcode::MOPRR7,
7978    Opcode::MOPRRN,
7979    Opcode::MRET,
7980    Opcode::MUL,
7981    Opcode::MULH,
7982    Opcode::MULHSU,
7983    Opcode::MULHU,
7984    Opcode::MULW,
7985    Opcode::MV,
7986    Opcode::NEG,
7987    Opcode::NOP,
7988    Opcode::NTLALL,
7989    Opcode::NTLP1,
7990    Opcode::NTLPALL,
7991    Opcode::NTLS1,
7992    Opcode::OR,
7993    Opcode::ORCB,
7994    Opcode::ORI,
7995    Opcode::ORN,
7996    Opcode::PACK,
7997    Opcode::PACKH,
7998    Opcode::PACKW,
7999    Opcode::PAUSE,
8000    Opcode::PREFETCHI,
8001    Opcode::PREFETCHR,
8002    Opcode::PREFETCHW,
8003    Opcode::RDCYCLE,
8004    Opcode::RDCYCLEH,
8005    Opcode::RDINSTRET,
8006    Opcode::RDINSTRETH,
8007    Opcode::RDTIME,
8008    Opcode::RDTIMEH,
8009    Opcode::REM,
8010    Opcode::REMU,
8011    Opcode::REMUW,
8012    Opcode::REMW,
8013    Opcode::RET,
8014    Opcode::REV8,
8015    Opcode::REV8RV32,
8016    Opcode::ROL,
8017    Opcode::ROLW,
8018    Opcode::ROR,
8019    Opcode::RORI,
8020    Opcode::RORIRV32,
8021    Opcode::RORIW,
8022    Opcode::RORW,
8023    Opcode::SB,
8024    Opcode::SBREAK,
8025    Opcode::SCD,
8026    Opcode::SCW,
8027    Opcode::SCALL,
8028    Opcode::SD,
8029    Opcode::SEQZ,
8030    Opcode::SEXTB,
8031    Opcode::SEXTH,
8032    Opcode::SEXTW,
8033    Opcode::SFENCEINVALIR,
8034    Opcode::SFENCEVMA,
8035    Opcode::SFENCEWINVAL,
8036    Opcode::SGTZ,
8037    Opcode::SH,
8038    Opcode::SH1ADD,
8039    Opcode::SH1ADDUW,
8040    Opcode::SH2ADD,
8041    Opcode::SH2ADDUW,
8042    Opcode::SH3ADD,
8043    Opcode::SH3ADDUW,
8044    Opcode::SHA256SIG0,
8045    Opcode::SHA256SIG1,
8046    Opcode::SHA256SUM0,
8047    Opcode::SHA256SUM1,
8048    Opcode::SHA512SIG0,
8049    Opcode::SHA512SIG0H,
8050    Opcode::SHA512SIG0L,
8051    Opcode::SHA512SIG1,
8052    Opcode::SHA512SIG1H,
8053    Opcode::SHA512SIG1L,
8054    Opcode::SHA512SUM0,
8055    Opcode::SHA512SUM0R,
8056    Opcode::SHA512SUM1,
8057    Opcode::SHA512SUM1R,
8058    Opcode::SINVALVMA,
8059    Opcode::SLL,
8060    Opcode::SLLI,
8061    Opcode::SLLIRV32,
8062    Opcode::SLLIUW,
8063    Opcode::SLLIW,
8064    Opcode::SLLW,
8065    Opcode::SLT,
8066    Opcode::SLTI,
8067    Opcode::SLTIU,
8068    Opcode::SLTU,
8069    Opcode::SLTZ,
8070    Opcode::SM3P0,
8071    Opcode::SM3P1,
8072    Opcode::SM4ED,
8073    Opcode::SM4KS,
8074    Opcode::SNEZ,
8075    Opcode::SRA,
8076    Opcode::SRAI,
8077    Opcode::SRAIRV32,
8078    Opcode::SRAIW,
8079    Opcode::SRAW,
8080    Opcode::SRET,
8081    Opcode::SRL,
8082    Opcode::SRLI,
8083    Opcode::SRLIRV32,
8084    Opcode::SRLIW,
8085    Opcode::SRLW,
8086    Opcode::SUB,
8087    Opcode::SUBW,
8088    Opcode::SW,
8089    Opcode::UNZIP,
8090    Opcode::VAADDVV,
8091    Opcode::VAADDVX,
8092    Opcode::VAADDUVV,
8093    Opcode::VAADDUVX,
8094    Opcode::VADCVIM,
8095    Opcode::VADCVVM,
8096    Opcode::VADCVXM,
8097    Opcode::VADDVI,
8098    Opcode::VADDVV,
8099    Opcode::VADDVX,
8100    Opcode::VAESDFVS,
8101    Opcode::VAESDFVV,
8102    Opcode::VAESDMVS,
8103    Opcode::VAESDMVV,
8104    Opcode::VAESEFVS,
8105    Opcode::VAESEFVV,
8106    Opcode::VAESEMVS,
8107    Opcode::VAESEMVV,
8108    Opcode::VAESKF1VI,
8109    Opcode::VAESKF2VI,
8110    Opcode::VAESZVS,
8111    Opcode::VANDVI,
8112    Opcode::VANDVV,
8113    Opcode::VANDVX,
8114    Opcode::VANDNVV,
8115    Opcode::VANDNVX,
8116    Opcode::VASUBVV,
8117    Opcode::VASUBVX,
8118    Opcode::VASUBUVV,
8119    Opcode::VASUBUVX,
8120    Opcode::VBREV8V,
8121    Opcode::VBREVV,
8122    Opcode::VCLMULVV,
8123    Opcode::VCLMULVX,
8124    Opcode::VCLMULHVV,
8125    Opcode::VCLMULHVX,
8126    Opcode::VCLZV,
8127    Opcode::VCOMPRESSVM,
8128    Opcode::VCPOPM,
8129    Opcode::VCPOPV,
8130    Opcode::VCTZV,
8131    Opcode::VDIVVV,
8132    Opcode::VDIVVX,
8133    Opcode::VDIVUVV,
8134    Opcode::VDIVUVX,
8135    Opcode::VFADDVF,
8136    Opcode::VFADDVV,
8137    Opcode::VFCLASSV,
8138    Opcode::VFCVTFXV,
8139    Opcode::VFCVTFXUV,
8140    Opcode::VFCVTRTZXFV,
8141    Opcode::VFCVTRTZXUFV,
8142    Opcode::VFCVTXFV,
8143    Opcode::VFCVTXUFV,
8144    Opcode::VFDIVVF,
8145    Opcode::VFDIVVV,
8146    Opcode::VFIRSTM,
8147    Opcode::VFMACCVF,
8148    Opcode::VFMACCVV,
8149    Opcode::VFMADDVF,
8150    Opcode::VFMADDVV,
8151    Opcode::VFMAXVF,
8152    Opcode::VFMAXVV,
8153    Opcode::VFMERGEVFM,
8154    Opcode::VFMINVF,
8155    Opcode::VFMINVV,
8156    Opcode::VFMSACVF,
8157    Opcode::VFMSACVV,
8158    Opcode::VFMSUBVF,
8159    Opcode::VFMSUBVV,
8160    Opcode::VFMULVF,
8161    Opcode::VFMULVV,
8162    Opcode::VFMVFS,
8163    Opcode::VFMVSF,
8164    Opcode::VFMVVF,
8165    Opcode::VFNCVTFFW,
8166    Opcode::VFNCVTFXW,
8167    Opcode::VFNCVTFXUW,
8168    Opcode::VFNCVTRODFFW,
8169    Opcode::VFNCVTRTZXFW,
8170    Opcode::VFNCVTRTZXUFW,
8171    Opcode::VFNCVTXFW,
8172    Opcode::VFNCVTXUFW,
8173    Opcode::VFNMACCVF,
8174    Opcode::VFNMACCVV,
8175    Opcode::VFNMADDVF,
8176    Opcode::VFNMADDVV,
8177    Opcode::VFNMSACVF,
8178    Opcode::VFNMSACVV,
8179    Opcode::VFNMSUBVF,
8180    Opcode::VFNMSUBVV,
8181    Opcode::VFRDIVVF,
8182    Opcode::VFREC7V,
8183    Opcode::VFREDMAXVS,
8184    Opcode::VFREDMINVS,
8185    Opcode::VFREDOSUMVS,
8186    Opcode::VFREDSUMVS,
8187    Opcode::VFREDUSUMVS,
8188    Opcode::VFRSQRT7V,
8189    Opcode::VFRSUBVF,
8190    Opcode::VFSGNJVF,
8191    Opcode::VFSGNJVV,
8192    Opcode::VFSGNJNVF,
8193    Opcode::VFSGNJNVV,
8194    Opcode::VFSGNJXVF,
8195    Opcode::VFSGNJXVV,
8196    Opcode::VFSLIDE1DOWNVF,
8197    Opcode::VFSLIDE1UPVF,
8198    Opcode::VFSQRTV,
8199    Opcode::VFSUBVF,
8200    Opcode::VFSUBVV,
8201    Opcode::VFWADDVF,
8202    Opcode::VFWADDVV,
8203    Opcode::VFWADDWF,
8204    Opcode::VFWADDWV,
8205    Opcode::VFWCVTFFV,
8206    Opcode::VFWCVTFXV,
8207    Opcode::VFWCVTFXUV,
8208    Opcode::VFWCVTRTZXFV,
8209    Opcode::VFWCVTRTZXUFV,
8210    Opcode::VFWCVTXFV,
8211    Opcode::VFWCVTXUFV,
8212    Opcode::VFWMACCVF,
8213    Opcode::VFWMACCVV,
8214    Opcode::VFWMSACVF,
8215    Opcode::VFWMSACVV,
8216    Opcode::VFWMULVF,
8217    Opcode::VFWMULVV,
8218    Opcode::VFWNMACCVF,
8219    Opcode::VFWNMACCVV,
8220    Opcode::VFWNMSACVF,
8221    Opcode::VFWNMSACVV,
8222    Opcode::VFWREDOSUMVS,
8223    Opcode::VFWREDSUMVS,
8224    Opcode::VFWREDUSUMVS,
8225    Opcode::VFWSUBVF,
8226    Opcode::VFWSUBVV,
8227    Opcode::VFWSUBWF,
8228    Opcode::VFWSUBWV,
8229    Opcode::VGHSHVV,
8230    Opcode::VGMULVV,
8231    Opcode::VIDV,
8232    Opcode::VIOTAM,
8233    Opcode::VL1RV,
8234    Opcode::VL1RE16V,
8235    Opcode::VL1RE32V,
8236    Opcode::VL1RE64V,
8237    Opcode::VL1RE8V,
8238    Opcode::VL2RV,
8239    Opcode::VL2RE16V,
8240    Opcode::VL2RE32V,
8241    Opcode::VL2RE64V,
8242    Opcode::VL2RE8V,
8243    Opcode::VL4RV,
8244    Opcode::VL4RE16V,
8245    Opcode::VL4RE32V,
8246    Opcode::VL4RE64V,
8247    Opcode::VL4RE8V,
8248    Opcode::VL8RV,
8249    Opcode::VL8RE16V,
8250    Opcode::VL8RE32V,
8251    Opcode::VL8RE64V,
8252    Opcode::VL8RE8V,
8253    Opcode::VLE16V,
8254    Opcode::VLE16FFV,
8255    Opcode::VLE1V,
8256    Opcode::VLE32V,
8257    Opcode::VLE32FFV,
8258    Opcode::VLE64V,
8259    Opcode::VLE64FFV,
8260    Opcode::VLE8V,
8261    Opcode::VLE8FFV,
8262    Opcode::VLMV,
8263    Opcode::VLOXEI16V,
8264    Opcode::VLOXEI32V,
8265    Opcode::VLOXEI64V,
8266    Opcode::VLOXEI8V,
8267    Opcode::VLSE16V,
8268    Opcode::VLSE32V,
8269    Opcode::VLSE64V,
8270    Opcode::VLSE8V,
8271    Opcode::VLUXEI16V,
8272    Opcode::VLUXEI32V,
8273    Opcode::VLUXEI64V,
8274    Opcode::VLUXEI8V,
8275    Opcode::VMACCVV,
8276    Opcode::VMACCVX,
8277    Opcode::VMADCVI,
8278    Opcode::VMADCVIM,
8279    Opcode::VMADCVV,
8280    Opcode::VMADCVVM,
8281    Opcode::VMADCVX,
8282    Opcode::VMADCVXM,
8283    Opcode::VMADDVV,
8284    Opcode::VMADDVX,
8285    Opcode::VMANDMM,
8286    Opcode::VMANDNMM,
8287    Opcode::VMANDNOTMM,
8288    Opcode::VMAXVV,
8289    Opcode::VMAXVX,
8290    Opcode::VMAXUVV,
8291    Opcode::VMAXUVX,
8292    Opcode::VMERGEVIM,
8293    Opcode::VMERGEVVM,
8294    Opcode::VMERGEVXM,
8295    Opcode::VMFEQVF,
8296    Opcode::VMFEQVV,
8297    Opcode::VMFGEVF,
8298    Opcode::VMFGTVF,
8299    Opcode::VMFLEVF,
8300    Opcode::VMFLEVV,
8301    Opcode::VMFLTVF,
8302    Opcode::VMFLTVV,
8303    Opcode::VMFNEVF,
8304    Opcode::VMFNEVV,
8305    Opcode::VMINVV,
8306    Opcode::VMINVX,
8307    Opcode::VMINUVV,
8308    Opcode::VMINUVX,
8309    Opcode::VMNANDMM,
8310    Opcode::VMNORMM,
8311    Opcode::VMORMM,
8312    Opcode::VMORNMM,
8313    Opcode::VMORNOTMM,
8314    Opcode::VMSBCVV,
8315    Opcode::VMSBCVVM,
8316    Opcode::VMSBCVX,
8317    Opcode::VMSBCVXM,
8318    Opcode::VMSBFM,
8319    Opcode::VMSEQVI,
8320    Opcode::VMSEQVV,
8321    Opcode::VMSEQVX,
8322    Opcode::VMSGTVI,
8323    Opcode::VMSGTVX,
8324    Opcode::VMSGTUVI,
8325    Opcode::VMSGTUVX,
8326    Opcode::VMSIFM,
8327    Opcode::VMSLEVI,
8328    Opcode::VMSLEVV,
8329    Opcode::VMSLEVX,
8330    Opcode::VMSLEUVI,
8331    Opcode::VMSLEUVV,
8332    Opcode::VMSLEUVX,
8333    Opcode::VMSLTVV,
8334    Opcode::VMSLTVX,
8335    Opcode::VMSLTUVV,
8336    Opcode::VMSLTUVX,
8337    Opcode::VMSNEVI,
8338    Opcode::VMSNEVV,
8339    Opcode::VMSNEVX,
8340    Opcode::VMSOFM,
8341    Opcode::VMULVV,
8342    Opcode::VMULVX,
8343    Opcode::VMULHVV,
8344    Opcode::VMULHVX,
8345    Opcode::VMULHSUVV,
8346    Opcode::VMULHSUVX,
8347    Opcode::VMULHUVV,
8348    Opcode::VMULHUVX,
8349    Opcode::VMV1RV,
8350    Opcode::VMV2RV,
8351    Opcode::VMV4RV,
8352    Opcode::VMV8RV,
8353    Opcode::VMVSX,
8354    Opcode::VMVVI,
8355    Opcode::VMVVV,
8356    Opcode::VMVVX,
8357    Opcode::VMVXS,
8358    Opcode::VMXNORMM,
8359    Opcode::VMXORMM,
8360    Opcode::VNCLIPWI,
8361    Opcode::VNCLIPWV,
8362    Opcode::VNCLIPWX,
8363    Opcode::VNCLIPUWI,
8364    Opcode::VNCLIPUWV,
8365    Opcode::VNCLIPUWX,
8366    Opcode::VNMSACVV,
8367    Opcode::VNMSACVX,
8368    Opcode::VNMSUBVV,
8369    Opcode::VNMSUBVX,
8370    Opcode::VNSRAWI,
8371    Opcode::VNSRAWV,
8372    Opcode::VNSRAWX,
8373    Opcode::VNSRLWI,
8374    Opcode::VNSRLWV,
8375    Opcode::VNSRLWX,
8376    Opcode::VORVI,
8377    Opcode::VORVV,
8378    Opcode::VORVX,
8379    Opcode::VPOPCM,
8380    Opcode::VREDANDVS,
8381    Opcode::VREDMAXVS,
8382    Opcode::VREDMAXUVS,
8383    Opcode::VREDMINVS,
8384    Opcode::VREDMINUVS,
8385    Opcode::VREDORVS,
8386    Opcode::VREDSUMVS,
8387    Opcode::VREDXORVS,
8388    Opcode::VREMVV,
8389    Opcode::VREMVX,
8390    Opcode::VREMUVV,
8391    Opcode::VREMUVX,
8392    Opcode::VREV8V,
8393    Opcode::VRGATHERVI,
8394    Opcode::VRGATHERVV,
8395    Opcode::VRGATHERVX,
8396    Opcode::VRGATHEREI16VV,
8397    Opcode::VROLVV,
8398    Opcode::VROLVX,
8399    Opcode::VRORVI,
8400    Opcode::VRORVV,
8401    Opcode::VRORVX,
8402    Opcode::VRSUBVI,
8403    Opcode::VRSUBVX,
8404    Opcode::VS1RV,
8405    Opcode::VS2RV,
8406    Opcode::VS4RV,
8407    Opcode::VS8RV,
8408    Opcode::VSADDVI,
8409    Opcode::VSADDVV,
8410    Opcode::VSADDVX,
8411    Opcode::VSADDUVI,
8412    Opcode::VSADDUVV,
8413    Opcode::VSADDUVX,
8414    Opcode::VSBCVVM,
8415    Opcode::VSBCVXM,
8416    Opcode::VSE16V,
8417    Opcode::VSE1V,
8418    Opcode::VSE32V,
8419    Opcode::VSE64V,
8420    Opcode::VSE8V,
8421    Opcode::VSETIVLI,
8422    Opcode::VSETVL,
8423    Opcode::VSETVLI,
8424    Opcode::VSEXTVF2,
8425    Opcode::VSEXTVF4,
8426    Opcode::VSEXTVF8,
8427    Opcode::VSHA2CHVV,
8428    Opcode::VSHA2CLVV,
8429    Opcode::VSHA2MSVV,
8430    Opcode::VSLIDE1DOWNVX,
8431    Opcode::VSLIDE1UPVX,
8432    Opcode::VSLIDEDOWNVI,
8433    Opcode::VSLIDEDOWNVX,
8434    Opcode::VSLIDEUPVI,
8435    Opcode::VSLIDEUPVX,
8436    Opcode::VSLLVI,
8437    Opcode::VSLLVV,
8438    Opcode::VSLLVX,
8439    Opcode::VSM3CVI,
8440    Opcode::VSM3MEVV,
8441    Opcode::VSM4KVI,
8442    Opcode::VSM4RVS,
8443    Opcode::VSM4RVV,
8444    Opcode::VSMV,
8445    Opcode::VSMULVV,
8446    Opcode::VSMULVX,
8447    Opcode::VSOXEI16V,
8448    Opcode::VSOXEI32V,
8449    Opcode::VSOXEI64V,
8450    Opcode::VSOXEI8V,
8451    Opcode::VSRAVI,
8452    Opcode::VSRAVV,
8453    Opcode::VSRAVX,
8454    Opcode::VSRLVI,
8455    Opcode::VSRLVV,
8456    Opcode::VSRLVX,
8457    Opcode::VSSE16V,
8458    Opcode::VSSE32V,
8459    Opcode::VSSE64V,
8460    Opcode::VSSE8V,
8461    Opcode::VSSRAVI,
8462    Opcode::VSSRAVV,
8463    Opcode::VSSRAVX,
8464    Opcode::VSSRLVI,
8465    Opcode::VSSRLVV,
8466    Opcode::VSSRLVX,
8467    Opcode::VSSUBVV,
8468    Opcode::VSSUBVX,
8469    Opcode::VSSUBUVV,
8470    Opcode::VSSUBUVX,
8471    Opcode::VSUBVV,
8472    Opcode::VSUBVX,
8473    Opcode::VSUXEI16V,
8474    Opcode::VSUXEI32V,
8475    Opcode::VSUXEI64V,
8476    Opcode::VSUXEI8V,
8477    Opcode::VWADDVV,
8478    Opcode::VWADDVX,
8479    Opcode::VWADDWV,
8480    Opcode::VWADDWX,
8481    Opcode::VWADDUVV,
8482    Opcode::VWADDUVX,
8483    Opcode::VWADDUWV,
8484    Opcode::VWADDUWX,
8485    Opcode::VWMACCVV,
8486    Opcode::VWMACCVX,
8487    Opcode::VWMACCSUVV,
8488    Opcode::VWMACCSUVX,
8489    Opcode::VWMACCUVV,
8490    Opcode::VWMACCUVX,
8491    Opcode::VWMACCUSVX,
8492    Opcode::VWMULVV,
8493    Opcode::VWMULVX,
8494    Opcode::VWMULSUVV,
8495    Opcode::VWMULSUVX,
8496    Opcode::VWMULUVV,
8497    Opcode::VWMULUVX,
8498    Opcode::VWREDSUMVS,
8499    Opcode::VWREDSUMUVS,
8500    Opcode::VWSLLVI,
8501    Opcode::VWSLLVV,
8502    Opcode::VWSLLVX,
8503    Opcode::VWSUBVV,
8504    Opcode::VWSUBVX,
8505    Opcode::VWSUBWV,
8506    Opcode::VWSUBWX,
8507    Opcode::VWSUBUVV,
8508    Opcode::VWSUBUVX,
8509    Opcode::VWSUBUWV,
8510    Opcode::VWSUBUWX,
8511    Opcode::VXORVI,
8512    Opcode::VXORVV,
8513    Opcode::VXORVX,
8514    Opcode::VZEXTVF2,
8515    Opcode::VZEXTVF4,
8516    Opcode::VZEXTVF8,
8517    Opcode::WFI,
8518    Opcode::WRSNTO,
8519    Opcode::WRSSTO,
8520    Opcode::XNOR,
8521    Opcode::XOR,
8522    Opcode::XORI,
8523    Opcode::XPERM4,
8524    Opcode::XPERM8,
8525    Opcode::ZEXTB,
8526    Opcode::ZEXTH,
8527    Opcode::ZEXTHRV32,
8528    Opcode::ZEXTW,
8529    Opcode::ZIP,
8530];
8531pub static SHORT_OPCODE: [bool; 1021] = [
8532    false, false, false, false, false, false, false, false, false, false, false, false, false,
8533    false, false, false, false, false, false, false, false, false, false, false, false, false,
8534    false, false, false, false, false, false, false, false, false, false, false, false, false,
8535    false, false, false, false, false, false, false, false, false, false, false, false, false,
8536    false, false, false, false, false, false, false, false, false, false, false, false, false,
8537    false, false, false, false, false, false, false, false, false, false, false, false, false,
8538    false, false, false, false, false, false, false, false, false, false, false, false, true, true,
8539    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8540    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8541    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8542    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8543    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8544    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8545    true, true, true, true, true, true, true, true, false, false, false, false, false, false,
8546    false, false, false, false, false, false, false, false, false, false, false, false, false,
8547    false, false, false, false, false, false, false, false, false, false, false, false, false,
8548    false, false, false, false, false, false, false, false, false, false, false, false, false,
8549    false, false, false, false, false, false, false, false, false, false, false, false, false,
8550    false, false, false, false, false, false, false, false, false, false, false, false, false,
8551    false, false, false, false, false, false, false, false, false, false, false, false, false,
8552    false, false, false, false, false, false, false, false, false, false, false, false, false,
8553    false, false, false, false, false, false, false, false, false, false, false, false, false,
8554    false, false, false, false, false, false, false, false, false, false, false, false, false,
8555    false, false, false, false, false, false, false, false, false, false, false, false, false,
8556    false, false, false, false, false, false, false, false, false, false, false, false, false,
8557    false, false, false, false, false, false, false, false, false, false, false, false, false,
8558    false, false, false, false, false, false, false, false, false, false, false, false, false,
8559    false, false, false, false, false, false, false, false, false, false, false, false, false,
8560    false, false, false, false, false, false, false, false, false, false, false, false, false,
8561    false, false, false, false, false, false, false, false, false, false, false, false, false,
8562    false, false, false, false, false, false, false, false, false, false, false, false, false,
8563    false, false, false, false, false, false, false, false, false, false, false, false, false,
8564    false, false, false, false, false, false, false, false, false, false, false, false, false,
8565    false, false, false, false, false, false, false, false, false, false, false, false, false,
8566    false, false, false, false, false, false, false, false, false, false, false, false, false,
8567    false, false, false, false, false, false, false, false, false, false, false, false, false,
8568    false, false, false, false, false, false, false, false, false, false, false, false, false,
8569    false, false, false, false, false, false, false, false, false, false, false, false, false,
8570    false, false, false, false, false, false, false, false, false, false, false, false, false,
8571    false, false, false, false, false, false, false, false, false, false, false, false, false,
8572    false, false, false, false, false, false, false, false, false, false, false, false, false,
8573    false, false, false, false, false, false, false, false, false, false, false, false, false,
8574    false, false, false, false, false, false, false, false, false, false, false, false, false,
8575    false, false, false, false, false, false, false, false, false, false, false, false, false,
8576    false, false, false, false, false, false, false, false, false, false, false, false, false,
8577    false, false, false, false, false, false, false, false, false, false, false, false, false,
8578    false, false, false, false, false, false, false, false, false, false, false, false, false,
8579    false, false, false, false, false, false, false, false, false, false, false, false, false,
8580    false, false, false, false, false, false, false, false, false, false, false, false, false,
8581    false, false, false, false, false, false, false, false, false, false, false, false, false,
8582    false, false, false, false, false, false, false, false, false, false, false, false, false,
8583    false, false, false, false, false, false, false, false, false, false, false, false, false,
8584    false, false, false, false, false, false, false, false, false, false, false, false, false,
8585    false, false, false, false, false, false, false, false, false, false, false, false, false,
8586    false, false, false, false, false, false, false, false, false, false, false, false, false,
8587    false, false, false, false, false, false, false, false, false, false, false, false, false,
8588    false, false, false, false, false, false, false, false, false, false, false, false, false,
8589    false, false, false, false, false, false, false, false, false, false, false, false, false,
8590    false, false, false, false, false, false, false, false, false, false, false, false, false,
8591    false, false, false, false, false, false, false, false, false, false, false, false, false,
8592    false, false, false, false, false, false, false, false, false, false, false, false, false,
8593    false, false, false, false, false, false, false, false, false, false, false, false, false,
8594    false, false, false, false, false, false, false, false, false, false, false, false, false,
8595    false, false, false, false, false, false, false, false, false, false, false, false, false,
8596    false, false, false, false, false, false, false, false, false, false, false, false, false,
8597    false, false, false, false, false, false, false, false, false, false, false, false, false,
8598    false, false, false, false, false, false, false, false, false, false, false, false, false,
8599    false, false, false, false, false, false, false, false, false, false, false, false, false,
8600    false, false, false, false, false, false, false, false, false, false, false, false, false,
8601    false, false, false, false, false, false, false, false, false, false, false, false, false,
8602    false, false, false, false, false, false, false, false, false, false, false, false, false,
8603    false, false, false, false, false, false, false, false, false, false, false, false, false,
8604    false, false, false, false, false, false, false, false, false, false, false, false, false,
8605    false, false, false, false, false, false, false, false, false, false, false, false, false,
8606    false, false, false, false, false, false, false, false, false, false, false, false, false,
8607    false, false, false, false, false, false, false, false, false, false, false, false, false,
8608    false, false, false, false, false, false, false, false, false, false, false, false, false,
8609];
8610pub const SHORT_OPCODES: [Opcode; 106] = [
8611    Opcode::CADD,
8612    Opcode::CADDI,
8613    Opcode::CADDI16SP,
8614    Opcode::CADDI4SPN,
8615    Opcode::CADDIW,
8616    Opcode::CADDW,
8617    Opcode::CAND,
8618    Opcode::CANDI,
8619    Opcode::CBEQZ,
8620    Opcode::CBNEZ,
8621    Opcode::CEBREAK,
8622    Opcode::CFLD,
8623    Opcode::CFLDSP,
8624    Opcode::CFLW,
8625    Opcode::CFLWSP,
8626    Opcode::CFSD,
8627    Opcode::CFSDSP,
8628    Opcode::CFSW,
8629    Opcode::CFSWSP,
8630    Opcode::CJ,
8631    Opcode::CJAL,
8632    Opcode::CJALR,
8633    Opcode::CJR,
8634    Opcode::CLBU,
8635    Opcode::CLD,
8636    Opcode::CLDSP,
8637    Opcode::CLH,
8638    Opcode::CLHU,
8639    Opcode::CLI,
8640    Opcode::CLUI,
8641    Opcode::CLW,
8642    Opcode::CLWSP,
8643    Opcode::CMOP1,
8644    Opcode::CMOP11,
8645    Opcode::CMOP13,
8646    Opcode::CMOP15,
8647    Opcode::CMOP3,
8648    Opcode::CMOP5,
8649    Opcode::CMOP7,
8650    Opcode::CMOP9,
8651    Opcode::CMOPN,
8652    Opcode::CMUL,
8653    Opcode::CMV,
8654    Opcode::CNOP,
8655    Opcode::CNOT,
8656    Opcode::CNTLALL,
8657    Opcode::CNTLP1,
8658    Opcode::CNTLPALL,
8659    Opcode::CNTLS1,
8660    Opcode::COR,
8661    Opcode::CSB,
8662    Opcode::CSD,
8663    Opcode::CSDSP,
8664    Opcode::CSEXTB,
8665    Opcode::CSEXTH,
8666    Opcode::CSEXTW,
8667    Opcode::CSH,
8668    Opcode::CSLLI,
8669    Opcode::CSLLIRV32,
8670    Opcode::CSRAI,
8671    Opcode::CSRAIRV32,
8672    Opcode::CSRLI,
8673    Opcode::CSRLIRV32,
8674    Opcode::CSUB,
8675    Opcode::CSUBW,
8676    Opcode::CSW,
8677    Opcode::CSWSP,
8678    Opcode::CXOR,
8679    Opcode::CZEXTB,
8680    Opcode::CZEXTH,
8681    Opcode::CZEXTW,
8682    Opcode::CBOCLEAN,
8683    Opcode::CBOFLUSH,
8684    Opcode::CBOINVAL,
8685    Opcode::CBOZERO,
8686    Opcode::CLMUL,
8687    Opcode::CLMULH,
8688    Opcode::CLMULR,
8689    Opcode::CLZ,
8690    Opcode::CLZW,
8691    Opcode::CMJALT,
8692    Opcode::CMMVA01S,
8693    Opcode::CMMVSA01,
8694    Opcode::CMPOP,
8695    Opcode::CMPOPRET,
8696    Opcode::CMPOPRETZ,
8697    Opcode::CMPUSH,
8698    Opcode::CPOP,
8699    Opcode::CPOPW,
8700    Opcode::CSRC,
8701    Opcode::CSRCI,
8702    Opcode::CSRR,
8703    Opcode::CSRRC,
8704    Opcode::CSRRCI,
8705    Opcode::CSRRS,
8706    Opcode::CSRRSI,
8707    Opcode::CSRRW,
8708    Opcode::CSRRWI,
8709    Opcode::CSRS,
8710    Opcode::CSRSI,
8711    Opcode::CSRW,
8712    Opcode::CSRWI,
8713    Opcode::CTZ,
8714    Opcode::CTZW,
8715    Opcode::CZEROEQZ,
8716    Opcode::CZERONEZ,
8717];
8718
8719#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
8720#[repr(u32)]
8721pub enum Opcode {
8722    ADD,
8723    ADDUW,
8724    ADDI,
8725    ADDIW,
8726    ADDW,
8727    AES32DSI,
8728    AES32DSMI,
8729    AES32ESI,
8730    AES32ESMI,
8731    AES64DS,
8732    AES64DSM,
8733    AES64ES,
8734    AES64ESM,
8735    AES64IM,
8736    AES64KS1I,
8737    AES64KS2,
8738    AMOADDB,
8739    AMOADDD,
8740    AMOADDH,
8741    AMOADDW,
8742    AMOANDB,
8743    AMOANDD,
8744    AMOANDH,
8745    AMOANDW,
8746    AMOCASB,
8747    AMOCASD,
8748    AMOCASH,
8749    AMOCASQ,
8750    AMOCASW,
8751    AMOMAXB,
8752    AMOMAXD,
8753    AMOMAXH,
8754    AMOMAXW,
8755    AMOMAXUB,
8756    AMOMAXUD,
8757    AMOMAXUH,
8758    AMOMAXUW,
8759    AMOMINB,
8760    AMOMIND,
8761    AMOMINH,
8762    AMOMINW,
8763    AMOMINUB,
8764    AMOMINUD,
8765    AMOMINUH,
8766    AMOMINUW,
8767    AMOORB,
8768    AMOORD,
8769    AMOORH,
8770    AMOORW,
8771    AMOSWAPB,
8772    AMOSWAPD,
8773    AMOSWAPH,
8774    AMOSWAPW,
8775    AMOXORB,
8776    AMOXORD,
8777    AMOXORH,
8778    AMOXORW,
8779    AND,
8780    ANDI,
8781    ANDN,
8782    AUIPC,
8783    BCLR,
8784    BCLRI,
8785    BCLRIRV32,
8786    BEQ,
8787    BEQZ,
8788    BEXT,
8789    BEXTI,
8790    BEXTIRV32,
8791    BGE,
8792    BGEU,
8793    BGEZ,
8794    BGT,
8795    BGTU,
8796    BGTZ,
8797    BINV,
8798    BINVI,
8799    BINVIRV32,
8800    BLE,
8801    BLEU,
8802    BLEZ,
8803    BLT,
8804    BLTU,
8805    BLTZ,
8806    BNE,
8807    BNEZ,
8808    BREV8,
8809    BSET,
8810    BSETI,
8811    BSETIRV32,
8812    CADD,
8813    CADDI,
8814    CADDI16SP,
8815    CADDI4SPN,
8816    CADDIW,
8817    CADDW,
8818    CAND,
8819    CANDI,
8820    CBEQZ,
8821    CBNEZ,
8822    CEBREAK,
8823    CFLD,
8824    CFLDSP,
8825    CFLW,
8826    CFLWSP,
8827    CFSD,
8828    CFSDSP,
8829    CFSW,
8830    CFSWSP,
8831    CJ,
8832    CJAL,
8833    CJALR,
8834    CJR,
8835    CLBU,
8836    CLD,
8837    CLDSP,
8838    CLH,
8839    CLHU,
8840    CLI,
8841    CLUI,
8842    CLW,
8843    CLWSP,
8844    CMOP1,
8845    CMOP11,
8846    CMOP13,
8847    CMOP15,
8848    CMOP3,
8849    CMOP5,
8850    CMOP7,
8851    CMOP9,
8852    CMOPN,
8853    CMUL,
8854    CMV,
8855    CNOP,
8856    CNOT,
8857    CNTLALL,
8858    CNTLP1,
8859    CNTLPALL,
8860    CNTLS1,
8861    COR,
8862    CSB,
8863    CSD,
8864    CSDSP,
8865    CSEXTB,
8866    CSEXTH,
8867    CSEXTW,
8868    CSH,
8869    CSLLI,
8870    CSLLIRV32,
8871    CSRAI,
8872    CSRAIRV32,
8873    CSRLI,
8874    CSRLIRV32,
8875    CSUB,
8876    CSUBW,
8877    CSW,
8878    CSWSP,
8879    CXOR,
8880    CZEXTB,
8881    CZEXTH,
8882    CZEXTW,
8883    CBOCLEAN,
8884    CBOFLUSH,
8885    CBOINVAL,
8886    CBOZERO,
8887    CLMUL,
8888    CLMULH,
8889    CLMULR,
8890    CLZ,
8891    CLZW,
8892    CMJALT,
8893    CMMVA01S,
8894    CMMVSA01,
8895    CMPOP,
8896    CMPOPRET,
8897    CMPOPRETZ,
8898    CMPUSH,
8899    CPOP,
8900    CPOPW,
8901    CSRC,
8902    CSRCI,
8903    CSRR,
8904    CSRRC,
8905    CSRRCI,
8906    CSRRS,
8907    CSRRSI,
8908    CSRRW,
8909    CSRRWI,
8910    CSRS,
8911    CSRSI,
8912    CSRW,
8913    CSRWI,
8914    CTZ,
8915    CTZW,
8916    CZEROEQZ,
8917    CZERONEZ,
8918    DIV,
8919    DIVU,
8920    DIVUW,
8921    DIVW,
8922    DRET,
8923    EBREAK,
8924    ECALL,
8925    FABSD,
8926    FABSH,
8927    FABSQ,
8928    FABSS,
8929    FADDD,
8930    FADDH,
8931    FADDQ,
8932    FADDS,
8933    FCLASSD,
8934    FCLASSH,
8935    FCLASSQ,
8936    FCLASSS,
8937    FCVTDH,
8938    FCVTDL,
8939    FCVTDLU,
8940    FCVTDQ,
8941    FCVTDS,
8942    FCVTDW,
8943    FCVTDWU,
8944    FCVTHD,
8945    FCVTHL,
8946    FCVTHLU,
8947    FCVTHQ,
8948    FCVTHS,
8949    FCVTHW,
8950    FCVTHWU,
8951    FCVTLD,
8952    FCVTLH,
8953    FCVTLQ,
8954    FCVTLS,
8955    FCVTLUD,
8956    FCVTLUH,
8957    FCVTLUQ,
8958    FCVTLUS,
8959    FCVTQD,
8960    FCVTQH,
8961    FCVTQL,
8962    FCVTQLU,
8963    FCVTQS,
8964    FCVTQW,
8965    FCVTQWU,
8966    FCVTSD,
8967    FCVTSH,
8968    FCVTSL,
8969    FCVTSLU,
8970    FCVTSQ,
8971    FCVTSW,
8972    FCVTSWU,
8973    FCVTWD,
8974    FCVTWH,
8975    FCVTWQ,
8976    FCVTWS,
8977    FCVTWUD,
8978    FCVTWUH,
8979    FCVTWUQ,
8980    FCVTWUS,
8981    FCVTMODWD,
8982    FDIVD,
8983    FDIVH,
8984    FDIVQ,
8985    FDIVS,
8986    FENCE,
8987    FENCEI,
8988    FENCETSO,
8989    FEQD,
8990    FEQH,
8991    FEQQ,
8992    FEQS,
8993    FLD,
8994    FLED,
8995    FLEH,
8996    FLEQ,
8997    FLES,
8998    FLEQD,
8999    FLEQH,
9000    FLEQQ,
9001    FLEQS,
9002    FLH,
9003    FLID,
9004    FLIH,
9005    FLIQ,
9006    FLIS,
9007    FLQ,
9008    FLTD,
9009    FLTH,
9010    FLTQ,
9011    FLTS,
9012    FLTQD,
9013    FLTQH,
9014    FLTQQ,
9015    FLTQS,
9016    FLW,
9017    FMADDD,
9018    FMADDH,
9019    FMADDQ,
9020    FMADDS,
9021    FMAXD,
9022    FMAXH,
9023    FMAXQ,
9024    FMAXS,
9025    FMAXMD,
9026    FMAXMH,
9027    FMAXMQ,
9028    FMAXMS,
9029    FMIND,
9030    FMINH,
9031    FMINQ,
9032    FMINS,
9033    FMINMD,
9034    FMINMH,
9035    FMINMQ,
9036    FMINMS,
9037    FMSUBD,
9038    FMSUBH,
9039    FMSUBQ,
9040    FMSUBS,
9041    FMULD,
9042    FMULH,
9043    FMULQ,
9044    FMULS,
9045    FMVD,
9046    FMVDX,
9047    FMVH,
9048    FMVHX,
9049    FMVQ,
9050    FMVS,
9051    FMVSX,
9052    FMVWX,
9053    FMVXD,
9054    FMVXH,
9055    FMVXS,
9056    FMVXW,
9057    FMVHXD,
9058    FMVHXQ,
9059    FMVPDX,
9060    FMVPQX,
9061    FNEGD,
9062    FNEGH,
9063    FNEGQ,
9064    FNEGS,
9065    FNMADDD,
9066    FNMADDH,
9067    FNMADDQ,
9068    FNMADDS,
9069    FNMSUBD,
9070    FNMSUBH,
9071    FNMSUBQ,
9072    FNMSUBS,
9073    FRCSR,
9074    FRFLAGS,
9075    FROUNDD,
9076    FROUNDH,
9077    FROUNDQ,
9078    FROUNDS,
9079    FROUNDNXD,
9080    FROUNDNXH,
9081    FROUNDNXQ,
9082    FROUNDNXS,
9083    FRRM,
9084    FSCSR,
9085    FSD,
9086    FSFLAGS,
9087    FSFLAGSI,
9088    FSGNJD,
9089    FSGNJH,
9090    FSGNJQ,
9091    FSGNJS,
9092    FSGNJND,
9093    FSGNJNH,
9094    FSGNJNQ,
9095    FSGNJNS,
9096    FSGNJXD,
9097    FSGNJXH,
9098    FSGNJXQ,
9099    FSGNJXS,
9100    FSH,
9101    FSQ,
9102    FSQRTD,
9103    FSQRTH,
9104    FSQRTQ,
9105    FSQRTS,
9106    FSRM,
9107    FSRMI,
9108    FSUBD,
9109    FSUBH,
9110    FSUBQ,
9111    FSUBS,
9112    FSW,
9113    HFENCEGVMA,
9114    HFENCEVVMA,
9115    HINVALGVMA,
9116    HINVALVVMA,
9117    HLVB,
9118    HLVBU,
9119    HLVD,
9120    HLVH,
9121    HLVHU,
9122    HLVW,
9123    HLVWU,
9124    HLVXHU,
9125    HLVXWU,
9126    HSVB,
9127    HSVD,
9128    HSVH,
9129    HSVW,
9130    J,
9131    JAL,
9132    JALPSEUDO,
9133    JALR,
9134    JALRPSEUDO,
9135    JR,
9136    LB,
9137    LBU,
9138    LD,
9139    LH,
9140    LHU,
9141    LRD,
9142    LRW,
9143    LUI,
9144    LW,
9145    LWU,
9146    MAX,
9147    MAXU,
9148    MIN,
9149    MINU,
9150    MOPR0,
9151    MOPR1,
9152    MOPR10,
9153    MOPR11,
9154    MOPR12,
9155    MOPR13,
9156    MOPR14,
9157    MOPR15,
9158    MOPR16,
9159    MOPR17,
9160    MOPR18,
9161    MOPR19,
9162    MOPR2,
9163    MOPR20,
9164    MOPR21,
9165    MOPR22,
9166    MOPR23,
9167    MOPR24,
9168    MOPR25,
9169    MOPR26,
9170    MOPR27,
9171    MOPR28,
9172    MOPR29,
9173    MOPR3,
9174    MOPR30,
9175    MOPR31,
9176    MOPR4,
9177    MOPR5,
9178    MOPR6,
9179    MOPR7,
9180    MOPR8,
9181    MOPR9,
9182    MOPRN,
9183    MOPRR0,
9184    MOPRR1,
9185    MOPRR2,
9186    MOPRR3,
9187    MOPRR4,
9188    MOPRR5,
9189    MOPRR6,
9190    MOPRR7,
9191    MOPRRN,
9192    MRET,
9193    MUL,
9194    MULH,
9195    MULHSU,
9196    MULHU,
9197    MULW,
9198    MV,
9199    NEG,
9200    NOP,
9201    NTLALL,
9202    NTLP1,
9203    NTLPALL,
9204    NTLS1,
9205    OR,
9206    ORCB,
9207    ORI,
9208    ORN,
9209    PACK,
9210    PACKH,
9211    PACKW,
9212    PAUSE,
9213    PREFETCHI,
9214    PREFETCHR,
9215    PREFETCHW,
9216    RDCYCLE,
9217    RDCYCLEH,
9218    RDINSTRET,
9219    RDINSTRETH,
9220    RDTIME,
9221    RDTIMEH,
9222    REM,
9223    REMU,
9224    REMUW,
9225    REMW,
9226    RET,
9227    REV8,
9228    REV8RV32,
9229    ROL,
9230    ROLW,
9231    ROR,
9232    RORI,
9233    RORIRV32,
9234    RORIW,
9235    RORW,
9236    SB,
9237    SBREAK,
9238    SCD,
9239    SCW,
9240    SCALL,
9241    SD,
9242    SEQZ,
9243    SEXTB,
9244    SEXTH,
9245    SEXTW,
9246    SFENCEINVALIR,
9247    SFENCEVMA,
9248    SFENCEWINVAL,
9249    SGTZ,
9250    SH,
9251    SH1ADD,
9252    SH1ADDUW,
9253    SH2ADD,
9254    SH2ADDUW,
9255    SH3ADD,
9256    SH3ADDUW,
9257    SHA256SIG0,
9258    SHA256SIG1,
9259    SHA256SUM0,
9260    SHA256SUM1,
9261    SHA512SIG0,
9262    SHA512SIG0H,
9263    SHA512SIG0L,
9264    SHA512SIG1,
9265    SHA512SIG1H,
9266    SHA512SIG1L,
9267    SHA512SUM0,
9268    SHA512SUM0R,
9269    SHA512SUM1,
9270    SHA512SUM1R,
9271    SINVALVMA,
9272    SLL,
9273    SLLI,
9274    SLLIRV32,
9275    SLLIUW,
9276    SLLIW,
9277    SLLW,
9278    SLT,
9279    SLTI,
9280    SLTIU,
9281    SLTU,
9282    SLTZ,
9283    SM3P0,
9284    SM3P1,
9285    SM4ED,
9286    SM4KS,
9287    SNEZ,
9288    SRA,
9289    SRAI,
9290    SRAIRV32,
9291    SRAIW,
9292    SRAW,
9293    SRET,
9294    SRL,
9295    SRLI,
9296    SRLIRV32,
9297    SRLIW,
9298    SRLW,
9299    SUB,
9300    SUBW,
9301    SW,
9302    UNZIP,
9303    VAADDVV,
9304    VAADDVX,
9305    VAADDUVV,
9306    VAADDUVX,
9307    VADCVIM,
9308    VADCVVM,
9309    VADCVXM,
9310    VADDVI,
9311    VADDVV,
9312    VADDVX,
9313    VAESDFVS,
9314    VAESDFVV,
9315    VAESDMVS,
9316    VAESDMVV,
9317    VAESEFVS,
9318    VAESEFVV,
9319    VAESEMVS,
9320    VAESEMVV,
9321    VAESKF1VI,
9322    VAESKF2VI,
9323    VAESZVS,
9324    VANDVI,
9325    VANDVV,
9326    VANDVX,
9327    VANDNVV,
9328    VANDNVX,
9329    VASUBVV,
9330    VASUBVX,
9331    VASUBUVV,
9332    VASUBUVX,
9333    VBREV8V,
9334    VBREVV,
9335    VCLMULVV,
9336    VCLMULVX,
9337    VCLMULHVV,
9338    VCLMULHVX,
9339    VCLZV,
9340    VCOMPRESSVM,
9341    VCPOPM,
9342    VCPOPV,
9343    VCTZV,
9344    VDIVVV,
9345    VDIVVX,
9346    VDIVUVV,
9347    VDIVUVX,
9348    VFADDVF,
9349    VFADDVV,
9350    VFCLASSV,
9351    VFCVTFXV,
9352    VFCVTFXUV,
9353    VFCVTRTZXFV,
9354    VFCVTRTZXUFV,
9355    VFCVTXFV,
9356    VFCVTXUFV,
9357    VFDIVVF,
9358    VFDIVVV,
9359    VFIRSTM,
9360    VFMACCVF,
9361    VFMACCVV,
9362    VFMADDVF,
9363    VFMADDVV,
9364    VFMAXVF,
9365    VFMAXVV,
9366    VFMERGEVFM,
9367    VFMINVF,
9368    VFMINVV,
9369    VFMSACVF,
9370    VFMSACVV,
9371    VFMSUBVF,
9372    VFMSUBVV,
9373    VFMULVF,
9374    VFMULVV,
9375    VFMVFS,
9376    VFMVSF,
9377    VFMVVF,
9378    VFNCVTFFW,
9379    VFNCVTFXW,
9380    VFNCVTFXUW,
9381    VFNCVTRODFFW,
9382    VFNCVTRTZXFW,
9383    VFNCVTRTZXUFW,
9384    VFNCVTXFW,
9385    VFNCVTXUFW,
9386    VFNMACCVF,
9387    VFNMACCVV,
9388    VFNMADDVF,
9389    VFNMADDVV,
9390    VFNMSACVF,
9391    VFNMSACVV,
9392    VFNMSUBVF,
9393    VFNMSUBVV,
9394    VFRDIVVF,
9395    VFREC7V,
9396    VFREDMAXVS,
9397    VFREDMINVS,
9398    VFREDOSUMVS,
9399    VFREDSUMVS,
9400    VFREDUSUMVS,
9401    VFRSQRT7V,
9402    VFRSUBVF,
9403    VFSGNJVF,
9404    VFSGNJVV,
9405    VFSGNJNVF,
9406    VFSGNJNVV,
9407    VFSGNJXVF,
9408    VFSGNJXVV,
9409    VFSLIDE1DOWNVF,
9410    VFSLIDE1UPVF,
9411    VFSQRTV,
9412    VFSUBVF,
9413    VFSUBVV,
9414    VFWADDVF,
9415    VFWADDVV,
9416    VFWADDWF,
9417    VFWADDWV,
9418    VFWCVTFFV,
9419    VFWCVTFXV,
9420    VFWCVTFXUV,
9421    VFWCVTRTZXFV,
9422    VFWCVTRTZXUFV,
9423    VFWCVTXFV,
9424    VFWCVTXUFV,
9425    VFWMACCVF,
9426    VFWMACCVV,
9427    VFWMSACVF,
9428    VFWMSACVV,
9429    VFWMULVF,
9430    VFWMULVV,
9431    VFWNMACCVF,
9432    VFWNMACCVV,
9433    VFWNMSACVF,
9434    VFWNMSACVV,
9435    VFWREDOSUMVS,
9436    VFWREDSUMVS,
9437    VFWREDUSUMVS,
9438    VFWSUBVF,
9439    VFWSUBVV,
9440    VFWSUBWF,
9441    VFWSUBWV,
9442    VGHSHVV,
9443    VGMULVV,
9444    VIDV,
9445    VIOTAM,
9446    VL1RV,
9447    VL1RE16V,
9448    VL1RE32V,
9449    VL1RE64V,
9450    VL1RE8V,
9451    VL2RV,
9452    VL2RE16V,
9453    VL2RE32V,
9454    VL2RE64V,
9455    VL2RE8V,
9456    VL4RV,
9457    VL4RE16V,
9458    VL4RE32V,
9459    VL4RE64V,
9460    VL4RE8V,
9461    VL8RV,
9462    VL8RE16V,
9463    VL8RE32V,
9464    VL8RE64V,
9465    VL8RE8V,
9466    VLE16V,
9467    VLE16FFV,
9468    VLE1V,
9469    VLE32V,
9470    VLE32FFV,
9471    VLE64V,
9472    VLE64FFV,
9473    VLE8V,
9474    VLE8FFV,
9475    VLMV,
9476    VLOXEI16V,
9477    VLOXEI32V,
9478    VLOXEI64V,
9479    VLOXEI8V,
9480    VLSE16V,
9481    VLSE32V,
9482    VLSE64V,
9483    VLSE8V,
9484    VLUXEI16V,
9485    VLUXEI32V,
9486    VLUXEI64V,
9487    VLUXEI8V,
9488    VMACCVV,
9489    VMACCVX,
9490    VMADCVI,
9491    VMADCVIM,
9492    VMADCVV,
9493    VMADCVVM,
9494    VMADCVX,
9495    VMADCVXM,
9496    VMADDVV,
9497    VMADDVX,
9498    VMANDMM,
9499    VMANDNMM,
9500    VMANDNOTMM,
9501    VMAXVV,
9502    VMAXVX,
9503    VMAXUVV,
9504    VMAXUVX,
9505    VMERGEVIM,
9506    VMERGEVVM,
9507    VMERGEVXM,
9508    VMFEQVF,
9509    VMFEQVV,
9510    VMFGEVF,
9511    VMFGTVF,
9512    VMFLEVF,
9513    VMFLEVV,
9514    VMFLTVF,
9515    VMFLTVV,
9516    VMFNEVF,
9517    VMFNEVV,
9518    VMINVV,
9519    VMINVX,
9520    VMINUVV,
9521    VMINUVX,
9522    VMNANDMM,
9523    VMNORMM,
9524    VMORMM,
9525    VMORNMM,
9526    VMORNOTMM,
9527    VMSBCVV,
9528    VMSBCVVM,
9529    VMSBCVX,
9530    VMSBCVXM,
9531    VMSBFM,
9532    VMSEQVI,
9533    VMSEQVV,
9534    VMSEQVX,
9535    VMSGTVI,
9536    VMSGTVX,
9537    VMSGTUVI,
9538    VMSGTUVX,
9539    VMSIFM,
9540    VMSLEVI,
9541    VMSLEVV,
9542    VMSLEVX,
9543    VMSLEUVI,
9544    VMSLEUVV,
9545    VMSLEUVX,
9546    VMSLTVV,
9547    VMSLTVX,
9548    VMSLTUVV,
9549    VMSLTUVX,
9550    VMSNEVI,
9551    VMSNEVV,
9552    VMSNEVX,
9553    VMSOFM,
9554    VMULVV,
9555    VMULVX,
9556    VMULHVV,
9557    VMULHVX,
9558    VMULHSUVV,
9559    VMULHSUVX,
9560    VMULHUVV,
9561    VMULHUVX,
9562    VMV1RV,
9563    VMV2RV,
9564    VMV4RV,
9565    VMV8RV,
9566    VMVSX,
9567    VMVVI,
9568    VMVVV,
9569    VMVVX,
9570    VMVXS,
9571    VMXNORMM,
9572    VMXORMM,
9573    VNCLIPWI,
9574    VNCLIPWV,
9575    VNCLIPWX,
9576    VNCLIPUWI,
9577    VNCLIPUWV,
9578    VNCLIPUWX,
9579    VNMSACVV,
9580    VNMSACVX,
9581    VNMSUBVV,
9582    VNMSUBVX,
9583    VNSRAWI,
9584    VNSRAWV,
9585    VNSRAWX,
9586    VNSRLWI,
9587    VNSRLWV,
9588    VNSRLWX,
9589    VORVI,
9590    VORVV,
9591    VORVX,
9592    VPOPCM,
9593    VREDANDVS,
9594    VREDMAXVS,
9595    VREDMAXUVS,
9596    VREDMINVS,
9597    VREDMINUVS,
9598    VREDORVS,
9599    VREDSUMVS,
9600    VREDXORVS,
9601    VREMVV,
9602    VREMVX,
9603    VREMUVV,
9604    VREMUVX,
9605    VREV8V,
9606    VRGATHERVI,
9607    VRGATHERVV,
9608    VRGATHERVX,
9609    VRGATHEREI16VV,
9610    VROLVV,
9611    VROLVX,
9612    VRORVI,
9613    VRORVV,
9614    VRORVX,
9615    VRSUBVI,
9616    VRSUBVX,
9617    VS1RV,
9618    VS2RV,
9619    VS4RV,
9620    VS8RV,
9621    VSADDVI,
9622    VSADDVV,
9623    VSADDVX,
9624    VSADDUVI,
9625    VSADDUVV,
9626    VSADDUVX,
9627    VSBCVVM,
9628    VSBCVXM,
9629    VSE16V,
9630    VSE1V,
9631    VSE32V,
9632    VSE64V,
9633    VSE8V,
9634    VSETIVLI,
9635    VSETVL,
9636    VSETVLI,
9637    VSEXTVF2,
9638    VSEXTVF4,
9639    VSEXTVF8,
9640    VSHA2CHVV,
9641    VSHA2CLVV,
9642    VSHA2MSVV,
9643    VSLIDE1DOWNVX,
9644    VSLIDE1UPVX,
9645    VSLIDEDOWNVI,
9646    VSLIDEDOWNVX,
9647    VSLIDEUPVI,
9648    VSLIDEUPVX,
9649    VSLLVI,
9650    VSLLVV,
9651    VSLLVX,
9652    VSM3CVI,
9653    VSM3MEVV,
9654    VSM4KVI,
9655    VSM4RVS,
9656    VSM4RVV,
9657    VSMV,
9658    VSMULVV,
9659    VSMULVX,
9660    VSOXEI16V,
9661    VSOXEI32V,
9662    VSOXEI64V,
9663    VSOXEI8V,
9664    VSRAVI,
9665    VSRAVV,
9666    VSRAVX,
9667    VSRLVI,
9668    VSRLVV,
9669    VSRLVX,
9670    VSSE16V,
9671    VSSE32V,
9672    VSSE64V,
9673    VSSE8V,
9674    VSSRAVI,
9675    VSSRAVV,
9676    VSSRAVX,
9677    VSSRLVI,
9678    VSSRLVV,
9679    VSSRLVX,
9680    VSSUBVV,
9681    VSSUBVX,
9682    VSSUBUVV,
9683    VSSUBUVX,
9684    VSUBVV,
9685    VSUBVX,
9686    VSUXEI16V,
9687    VSUXEI32V,
9688    VSUXEI64V,
9689    VSUXEI8V,
9690    VWADDVV,
9691    VWADDVX,
9692    VWADDWV,
9693    VWADDWX,
9694    VWADDUVV,
9695    VWADDUVX,
9696    VWADDUWV,
9697    VWADDUWX,
9698    VWMACCVV,
9699    VWMACCVX,
9700    VWMACCSUVV,
9701    VWMACCSUVX,
9702    VWMACCUVV,
9703    VWMACCUVX,
9704    VWMACCUSVX,
9705    VWMULVV,
9706    VWMULVX,
9707    VWMULSUVV,
9708    VWMULSUVX,
9709    VWMULUVV,
9710    VWMULUVX,
9711    VWREDSUMVS,
9712    VWREDSUMUVS,
9713    VWSLLVI,
9714    VWSLLVV,
9715    VWSLLVX,
9716    VWSUBVV,
9717    VWSUBVX,
9718    VWSUBWV,
9719    VWSUBWX,
9720    VWSUBUVV,
9721    VWSUBUVX,
9722    VWSUBUWV,
9723    VWSUBUWX,
9724    VXORVI,
9725    VXORVV,
9726    VXORVX,
9727    VZEXTVF2,
9728    VZEXTVF4,
9729    VZEXTVF8,
9730    WFI,
9731    WRSNTO,
9732    WRSSTO,
9733    XNOR,
9734    XOR,
9735    XORI,
9736    XPERM4,
9737    XPERM8,
9738    ZEXTB,
9739    ZEXTH,
9740    ZEXTHRV32,
9741    ZEXTW,
9742    ZIP,
9743    Invalid,
9744}
9745
9746pub const OPCODE_STR: &[&str] = &[
9747    "add",
9748    "add.uw",
9749    "addi",
9750    "addiw",
9751    "addw",
9752    "aes32dsi",
9753    "aes32dsmi",
9754    "aes32esi",
9755    "aes32esmi",
9756    "aes64ds",
9757    "aes64dsm",
9758    "aes64es",
9759    "aes64esm",
9760    "aes64im",
9761    "aes64ks1i",
9762    "aes64ks2",
9763    "amoadd.b",
9764    "amoadd.d",
9765    "amoadd.h",
9766    "amoadd.w",
9767    "amoand.b",
9768    "amoand.d",
9769    "amoand.h",
9770    "amoand.w",
9771    "amocas.b",
9772    "amocas.d",
9773    "amocas.h",
9774    "amocas.q",
9775    "amocas.w",
9776    "amomax.b",
9777    "amomax.d",
9778    "amomax.h",
9779    "amomax.w",
9780    "amomaxu.b",
9781    "amomaxu.d",
9782    "amomaxu.h",
9783    "amomaxu.w",
9784    "amomin.b",
9785    "amomin.d",
9786    "amomin.h",
9787    "amomin.w",
9788    "amominu.b",
9789    "amominu.d",
9790    "amominu.h",
9791    "amominu.w",
9792    "amoor.b",
9793    "amoor.d",
9794    "amoor.h",
9795    "amoor.w",
9796    "amoswap.b",
9797    "amoswap.d",
9798    "amoswap.h",
9799    "amoswap.w",
9800    "amoxor.b",
9801    "amoxor.d",
9802    "amoxor.h",
9803    "amoxor.w",
9804    "and",
9805    "andi",
9806    "andn",
9807    "auipc",
9808    "bclr",
9809    "bclri",
9810    "bclri.rv32",
9811    "beq",
9812    "beqz",
9813    "bext",
9814    "bexti",
9815    "bexti.rv32",
9816    "bge",
9817    "bgeu",
9818    "bgez",
9819    "bgt",
9820    "bgtu",
9821    "bgtz",
9822    "binv",
9823    "binvi",
9824    "binvi.rv32",
9825    "ble",
9826    "bleu",
9827    "blez",
9828    "blt",
9829    "bltu",
9830    "bltz",
9831    "bne",
9832    "bnez",
9833    "brev8",
9834    "bset",
9835    "bseti",
9836    "bseti.rv32",
9837    "c.add",
9838    "c.addi",
9839    "c.addi16sp",
9840    "c.addi4spn",
9841    "c.addiw",
9842    "c.addw",
9843    "c.and",
9844    "c.andi",
9845    "c.beqz",
9846    "c.bnez",
9847    "c.ebreak",
9848    "c.fld",
9849    "c.fldsp",
9850    "c.flw",
9851    "c.flwsp",
9852    "c.fsd",
9853    "c.fsdsp",
9854    "c.fsw",
9855    "c.fswsp",
9856    "c.j",
9857    "c.jal",
9858    "c.jalr",
9859    "c.jr",
9860    "c.lbu",
9861    "c.ld",
9862    "c.ldsp",
9863    "c.lh",
9864    "c.lhu",
9865    "c.li",
9866    "c.lui",
9867    "c.lw",
9868    "c.lwsp",
9869    "c.mop.1",
9870    "c.mop.11",
9871    "c.mop.13",
9872    "c.mop.15",
9873    "c.mop.3",
9874    "c.mop.5",
9875    "c.mop.7",
9876    "c.mop.9",
9877    "c.mop.n",
9878    "c.mul",
9879    "c.mv",
9880    "c.nop",
9881    "c.not",
9882    "c.ntl.all",
9883    "c.ntl.p1",
9884    "c.ntl.pall",
9885    "c.ntl.s1",
9886    "c.or",
9887    "c.sb",
9888    "c.sd",
9889    "c.sdsp",
9890    "c.sext.b",
9891    "c.sext.h",
9892    "c.sext.w",
9893    "c.sh",
9894    "c.slli",
9895    "c.slli.rv32",
9896    "c.srai",
9897    "c.srai.rv32",
9898    "c.srli",
9899    "c.srli.rv32",
9900    "c.sub",
9901    "c.subw",
9902    "c.sw",
9903    "c.swsp",
9904    "c.xor",
9905    "c.zext.b",
9906    "c.zext.h",
9907    "c.zext.w",
9908    "cbo.clean",
9909    "cbo.flush",
9910    "cbo.inval",
9911    "cbo.zero",
9912    "clmul",
9913    "clmulh",
9914    "clmulr",
9915    "clz",
9916    "clzw",
9917    "cm.jalt",
9918    "cm.mva01s",
9919    "cm.mvsa01",
9920    "cm.pop",
9921    "cm.popret",
9922    "cm.popretz",
9923    "cm.push",
9924    "cpop",
9925    "cpopw",
9926    "csrc",
9927    "csrci",
9928    "csrr",
9929    "csrrc",
9930    "csrrci",
9931    "csrrs",
9932    "csrrsi",
9933    "csrrw",
9934    "csrrwi",
9935    "csrs",
9936    "csrsi",
9937    "csrw",
9938    "csrwi",
9939    "ctz",
9940    "ctzw",
9941    "czero.eqz",
9942    "czero.nez",
9943    "div",
9944    "divu",
9945    "divuw",
9946    "divw",
9947    "dret",
9948    "ebreak",
9949    "ecall",
9950    "fabs.d",
9951    "fabs.h",
9952    "fabs.q",
9953    "fabs.s",
9954    "fadd.d",
9955    "fadd.h",
9956    "fadd.q",
9957    "fadd.s",
9958    "fclass.d",
9959    "fclass.h",
9960    "fclass.q",
9961    "fclass.s",
9962    "fcvt.d.h",
9963    "fcvt.d.l",
9964    "fcvt.d.lu",
9965    "fcvt.d.q",
9966    "fcvt.d.s",
9967    "fcvt.d.w",
9968    "fcvt.d.wu",
9969    "fcvt.h.d",
9970    "fcvt.h.l",
9971    "fcvt.h.lu",
9972    "fcvt.h.q",
9973    "fcvt.h.s",
9974    "fcvt.h.w",
9975    "fcvt.h.wu",
9976    "fcvt.l.d",
9977    "fcvt.l.h",
9978    "fcvt.l.q",
9979    "fcvt.l.s",
9980    "fcvt.lu.d",
9981    "fcvt.lu.h",
9982    "fcvt.lu.q",
9983    "fcvt.lu.s",
9984    "fcvt.q.d",
9985    "fcvt.q.h",
9986    "fcvt.q.l",
9987    "fcvt.q.lu",
9988    "fcvt.q.s",
9989    "fcvt.q.w",
9990    "fcvt.q.wu",
9991    "fcvt.s.d",
9992    "fcvt.s.h",
9993    "fcvt.s.l",
9994    "fcvt.s.lu",
9995    "fcvt.s.q",
9996    "fcvt.s.w",
9997    "fcvt.s.wu",
9998    "fcvt.w.d",
9999    "fcvt.w.h",
10000    "fcvt.w.q",
10001    "fcvt.w.s",
10002    "fcvt.wu.d",
10003    "fcvt.wu.h",
10004    "fcvt.wu.q",
10005    "fcvt.wu.s",
10006    "fcvtmod.w.d",
10007    "fdiv.d",
10008    "fdiv.h",
10009    "fdiv.q",
10010    "fdiv.s",
10011    "fence",
10012    "fence.i",
10013    "fence.tso",
10014    "feq.d",
10015    "feq.h",
10016    "feq.q",
10017    "feq.s",
10018    "fld",
10019    "fle.d",
10020    "fle.h",
10021    "fle.q",
10022    "fle.s",
10023    "fleq.d",
10024    "fleq.h",
10025    "fleq.q",
10026    "fleq.s",
10027    "flh",
10028    "fli.d",
10029    "fli.h",
10030    "fli.q",
10031    "fli.s",
10032    "flq",
10033    "flt.d",
10034    "flt.h",
10035    "flt.q",
10036    "flt.s",
10037    "fltq.d",
10038    "fltq.h",
10039    "fltq.q",
10040    "fltq.s",
10041    "flw",
10042    "fmadd.d",
10043    "fmadd.h",
10044    "fmadd.q",
10045    "fmadd.s",
10046    "fmax.d",
10047    "fmax.h",
10048    "fmax.q",
10049    "fmax.s",
10050    "fmaxm.d",
10051    "fmaxm.h",
10052    "fmaxm.q",
10053    "fmaxm.s",
10054    "fmin.d",
10055    "fmin.h",
10056    "fmin.q",
10057    "fmin.s",
10058    "fminm.d",
10059    "fminm.h",
10060    "fminm.q",
10061    "fminm.s",
10062    "fmsub.d",
10063    "fmsub.h",
10064    "fmsub.q",
10065    "fmsub.s",
10066    "fmul.d",
10067    "fmul.h",
10068    "fmul.q",
10069    "fmul.s",
10070    "fmv.d",
10071    "fmv.d.x",
10072    "fmv.h",
10073    "fmv.h.x",
10074    "fmv.q",
10075    "fmv.s",
10076    "fmv.s.x",
10077    "fmv.w.x",
10078    "fmv.x.d",
10079    "fmv.x.h",
10080    "fmv.x.s",
10081    "fmv.x.w",
10082    "fmvh.x.d",
10083    "fmvh.x.q",
10084    "fmvp.d.x",
10085    "fmvp.q.x",
10086    "fneg.d",
10087    "fneg.h",
10088    "fneg.q",
10089    "fneg.s",
10090    "fnmadd.d",
10091    "fnmadd.h",
10092    "fnmadd.q",
10093    "fnmadd.s",
10094    "fnmsub.d",
10095    "fnmsub.h",
10096    "fnmsub.q",
10097    "fnmsub.s",
10098    "frcsr",
10099    "frflags",
10100    "fround.d",
10101    "fround.h",
10102    "fround.q",
10103    "fround.s",
10104    "froundnx.d",
10105    "froundnx.h",
10106    "froundnx.q",
10107    "froundnx.s",
10108    "frrm",
10109    "fscsr",
10110    "fsd",
10111    "fsflags",
10112    "fsflagsi",
10113    "fsgnj.d",
10114    "fsgnj.h",
10115    "fsgnj.q",
10116    "fsgnj.s",
10117    "fsgnjn.d",
10118    "fsgnjn.h",
10119    "fsgnjn.q",
10120    "fsgnjn.s",
10121    "fsgnjx.d",
10122    "fsgnjx.h",
10123    "fsgnjx.q",
10124    "fsgnjx.s",
10125    "fsh",
10126    "fsq",
10127    "fsqrt.d",
10128    "fsqrt.h",
10129    "fsqrt.q",
10130    "fsqrt.s",
10131    "fsrm",
10132    "fsrmi",
10133    "fsub.d",
10134    "fsub.h",
10135    "fsub.q",
10136    "fsub.s",
10137    "fsw",
10138    "hfence.gvma",
10139    "hfence.vvma",
10140    "hinval.gvma",
10141    "hinval.vvma",
10142    "hlv.b",
10143    "hlv.bu",
10144    "hlv.d",
10145    "hlv.h",
10146    "hlv.hu",
10147    "hlv.w",
10148    "hlv.wu",
10149    "hlvx.hu",
10150    "hlvx.wu",
10151    "hsv.b",
10152    "hsv.d",
10153    "hsv.h",
10154    "hsv.w",
10155    "j",
10156    "jal",
10157    "jal.pseudo",
10158    "jalr",
10159    "jalr.pseudo",
10160    "jr",
10161    "lb",
10162    "lbu",
10163    "ld",
10164    "lh",
10165    "lhu",
10166    "lr.d",
10167    "lr.w",
10168    "lui",
10169    "lw",
10170    "lwu",
10171    "max",
10172    "maxu",
10173    "min",
10174    "minu",
10175    "mop.r.0",
10176    "mop.r.1",
10177    "mop.r.10",
10178    "mop.r.11",
10179    "mop.r.12",
10180    "mop.r.13",
10181    "mop.r.14",
10182    "mop.r.15",
10183    "mop.r.16",
10184    "mop.r.17",
10185    "mop.r.18",
10186    "mop.r.19",
10187    "mop.r.2",
10188    "mop.r.20",
10189    "mop.r.21",
10190    "mop.r.22",
10191    "mop.r.23",
10192    "mop.r.24",
10193    "mop.r.25",
10194    "mop.r.26",
10195    "mop.r.27",
10196    "mop.r.28",
10197    "mop.r.29",
10198    "mop.r.3",
10199    "mop.r.30",
10200    "mop.r.31",
10201    "mop.r.4",
10202    "mop.r.5",
10203    "mop.r.6",
10204    "mop.r.7",
10205    "mop.r.8",
10206    "mop.r.9",
10207    "mop.r.n",
10208    "mop.rr.0",
10209    "mop.rr.1",
10210    "mop.rr.2",
10211    "mop.rr.3",
10212    "mop.rr.4",
10213    "mop.rr.5",
10214    "mop.rr.6",
10215    "mop.rr.7",
10216    "mop.rr.n",
10217    "mret",
10218    "mul",
10219    "mulh",
10220    "mulhsu",
10221    "mulhu",
10222    "mulw",
10223    "mv",
10224    "neg",
10225    "nop",
10226    "ntl.all",
10227    "ntl.p1",
10228    "ntl.pall",
10229    "ntl.s1",
10230    "or",
10231    "orc.b",
10232    "ori",
10233    "orn",
10234    "pack",
10235    "packh",
10236    "packw",
10237    "pause",
10238    "prefetch.i",
10239    "prefetch.r",
10240    "prefetch.w",
10241    "rdcycle",
10242    "rdcycleh",
10243    "rdinstret",
10244    "rdinstreth",
10245    "rdtime",
10246    "rdtimeh",
10247    "rem",
10248    "remu",
10249    "remuw",
10250    "remw",
10251    "ret",
10252    "rev8",
10253    "rev8.rv32",
10254    "rol",
10255    "rolw",
10256    "ror",
10257    "rori",
10258    "rori.rv32",
10259    "roriw",
10260    "rorw",
10261    "sb",
10262    "sbreak",
10263    "sc.d",
10264    "sc.w",
10265    "scall",
10266    "sd",
10267    "seqz",
10268    "sext.b",
10269    "sext.h",
10270    "sext.w",
10271    "sfence.inval.ir",
10272    "sfence.vma",
10273    "sfence.w.inval",
10274    "sgtz",
10275    "sh",
10276    "sh1add",
10277    "sh1add.uw",
10278    "sh2add",
10279    "sh2add.uw",
10280    "sh3add",
10281    "sh3add.uw",
10282    "sha256sig0",
10283    "sha256sig1",
10284    "sha256sum0",
10285    "sha256sum1",
10286    "sha512sig0",
10287    "sha512sig0h",
10288    "sha512sig0l",
10289    "sha512sig1",
10290    "sha512sig1h",
10291    "sha512sig1l",
10292    "sha512sum0",
10293    "sha512sum0r",
10294    "sha512sum1",
10295    "sha512sum1r",
10296    "sinval.vma",
10297    "sll",
10298    "slli",
10299    "slli.rv32",
10300    "slli.uw",
10301    "slliw",
10302    "sllw",
10303    "slt",
10304    "slti",
10305    "sltiu",
10306    "sltu",
10307    "sltz",
10308    "sm3p0",
10309    "sm3p1",
10310    "sm4ed",
10311    "sm4ks",
10312    "snez",
10313    "sra",
10314    "srai",
10315    "srai.rv32",
10316    "sraiw",
10317    "sraw",
10318    "sret",
10319    "srl",
10320    "srli",
10321    "srli.rv32",
10322    "srliw",
10323    "srlw",
10324    "sub",
10325    "subw",
10326    "sw",
10327    "unzip",
10328    "vaadd.vv",
10329    "vaadd.vx",
10330    "vaaddu.vv",
10331    "vaaddu.vx",
10332    "vadc.vim",
10333    "vadc.vvm",
10334    "vadc.vxm",
10335    "vadd.vi",
10336    "vadd.vv",
10337    "vadd.vx",
10338    "vaesdf.vs",
10339    "vaesdf.vv",
10340    "vaesdm.vs",
10341    "vaesdm.vv",
10342    "vaesef.vs",
10343    "vaesef.vv",
10344    "vaesem.vs",
10345    "vaesem.vv",
10346    "vaeskf1.vi",
10347    "vaeskf2.vi",
10348    "vaesz.vs",
10349    "vand.vi",
10350    "vand.vv",
10351    "vand.vx",
10352    "vandn.vv",
10353    "vandn.vx",
10354    "vasub.vv",
10355    "vasub.vx",
10356    "vasubu.vv",
10357    "vasubu.vx",
10358    "vbrev8.v",
10359    "vbrev.v",
10360    "vclmul.vv",
10361    "vclmul.vx",
10362    "vclmulh.vv",
10363    "vclmulh.vx",
10364    "vclz.v",
10365    "vcompress.vm",
10366    "vcpop.m",
10367    "vcpop.v",
10368    "vctz.v",
10369    "vdiv.vv",
10370    "vdiv.vx",
10371    "vdivu.vv",
10372    "vdivu.vx",
10373    "vfadd.vf",
10374    "vfadd.vv",
10375    "vfclass.v",
10376    "vfcvt.f.x.v",
10377    "vfcvt.f.xu.v",
10378    "vfcvt.rtz.x.f.v",
10379    "vfcvt.rtz.xu.f.v",
10380    "vfcvt.x.f.v",
10381    "vfcvt.xu.f.v",
10382    "vfdiv.vf",
10383    "vfdiv.vv",
10384    "vfirst.m",
10385    "vfmacc.vf",
10386    "vfmacc.vv",
10387    "vfmadd.vf",
10388    "vfmadd.vv",
10389    "vfmax.vf",
10390    "vfmax.vv",
10391    "vfmerge.vfm",
10392    "vfmin.vf",
10393    "vfmin.vv",
10394    "vfmsac.vf",
10395    "vfmsac.vv",
10396    "vfmsub.vf",
10397    "vfmsub.vv",
10398    "vfmul.vf",
10399    "vfmul.vv",
10400    "vfmv.f.s",
10401    "vfmv.s.f",
10402    "vfmv.v.f",
10403    "vfncvt.f.f.w",
10404    "vfncvt.f.x.w",
10405    "vfncvt.f.xu.w",
10406    "vfncvt.rod.f.f.w",
10407    "vfncvt.rtz.x.f.w",
10408    "vfncvt.rtz.xu.f.w",
10409    "vfncvt.x.f.w",
10410    "vfncvt.xu.f.w",
10411    "vfnmacc.vf",
10412    "vfnmacc.vv",
10413    "vfnmadd.vf",
10414    "vfnmadd.vv",
10415    "vfnmsac.vf",
10416    "vfnmsac.vv",
10417    "vfnmsub.vf",
10418    "vfnmsub.vv",
10419    "vfrdiv.vf",
10420    "vfrec7.v",
10421    "vfredmax.vs",
10422    "vfredmin.vs",
10423    "vfredosum.vs",
10424    "vfredsum.vs",
10425    "vfredusum.vs",
10426    "vfrsqrt7.v",
10427    "vfrsub.vf",
10428    "vfsgnj.vf",
10429    "vfsgnj.vv",
10430    "vfsgnjn.vf",
10431    "vfsgnjn.vv",
10432    "vfsgnjx.vf",
10433    "vfsgnjx.vv",
10434    "vfslide1down.vf",
10435    "vfslide1up.vf",
10436    "vfsqrt.v",
10437    "vfsub.vf",
10438    "vfsub.vv",
10439    "vfwadd.vf",
10440    "vfwadd.vv",
10441    "vfwadd.wf",
10442    "vfwadd.wv",
10443    "vfwcvt.f.f.v",
10444    "vfwcvt.f.x.v",
10445    "vfwcvt.f.xu.v",
10446    "vfwcvt.rtz.x.f.v",
10447    "vfwcvt.rtz.xu.f.v",
10448    "vfwcvt.x.f.v",
10449    "vfwcvt.xu.f.v",
10450    "vfwmacc.vf",
10451    "vfwmacc.vv",
10452    "vfwmsac.vf",
10453    "vfwmsac.vv",
10454    "vfwmul.vf",
10455    "vfwmul.vv",
10456    "vfwnmacc.vf",
10457    "vfwnmacc.vv",
10458    "vfwnmsac.vf",
10459    "vfwnmsac.vv",
10460    "vfwredosum.vs",
10461    "vfwredsum.vs",
10462    "vfwredusum.vs",
10463    "vfwsub.vf",
10464    "vfwsub.vv",
10465    "vfwsub.wf",
10466    "vfwsub.wv",
10467    "vghsh.vv",
10468    "vgmul.vv",
10469    "vid.v",
10470    "viota.m",
10471    "vl1r.v",
10472    "vl1re16.v",
10473    "vl1re32.v",
10474    "vl1re64.v",
10475    "vl1re8.v",
10476    "vl2r.v",
10477    "vl2re16.v",
10478    "vl2re32.v",
10479    "vl2re64.v",
10480    "vl2re8.v",
10481    "vl4r.v",
10482    "vl4re16.v",
10483    "vl4re32.v",
10484    "vl4re64.v",
10485    "vl4re8.v",
10486    "vl8r.v",
10487    "vl8re16.v",
10488    "vl8re32.v",
10489    "vl8re64.v",
10490    "vl8re8.v",
10491    "vle16.v",
10492    "vle16ff.v",
10493    "vle1.v",
10494    "vle32.v",
10495    "vle32ff.v",
10496    "vle64.v",
10497    "vle64ff.v",
10498    "vle8.v",
10499    "vle8ff.v",
10500    "vlm.v",
10501    "vloxei16.v",
10502    "vloxei32.v",
10503    "vloxei64.v",
10504    "vloxei8.v",
10505    "vlse16.v",
10506    "vlse32.v",
10507    "vlse64.v",
10508    "vlse8.v",
10509    "vluxei16.v",
10510    "vluxei32.v",
10511    "vluxei64.v",
10512    "vluxei8.v",
10513    "vmacc.vv",
10514    "vmacc.vx",
10515    "vmadc.vi",
10516    "vmadc.vim",
10517    "vmadc.vv",
10518    "vmadc.vvm",
10519    "vmadc.vx",
10520    "vmadc.vxm",
10521    "vmadd.vv",
10522    "vmadd.vx",
10523    "vmand.mm",
10524    "vmandn.mm",
10525    "vmandnot.mm",
10526    "vmax.vv",
10527    "vmax.vx",
10528    "vmaxu.vv",
10529    "vmaxu.vx",
10530    "vmerge.vim",
10531    "vmerge.vvm",
10532    "vmerge.vxm",
10533    "vmfeq.vf",
10534    "vmfeq.vv",
10535    "vmfge.vf",
10536    "vmfgt.vf",
10537    "vmfle.vf",
10538    "vmfle.vv",
10539    "vmflt.vf",
10540    "vmflt.vv",
10541    "vmfne.vf",
10542    "vmfne.vv",
10543    "vmin.vv",
10544    "vmin.vx",
10545    "vminu.vv",
10546    "vminu.vx",
10547    "vmnand.mm",
10548    "vmnor.mm",
10549    "vmor.mm",
10550    "vmorn.mm",
10551    "vmornot.mm",
10552    "vmsbc.vv",
10553    "vmsbc.vvm",
10554    "vmsbc.vx",
10555    "vmsbc.vxm",
10556    "vmsbf.m",
10557    "vmseq.vi",
10558    "vmseq.vv",
10559    "vmseq.vx",
10560    "vmsgt.vi",
10561    "vmsgt.vx",
10562    "vmsgtu.vi",
10563    "vmsgtu.vx",
10564    "vmsif.m",
10565    "vmsle.vi",
10566    "vmsle.vv",
10567    "vmsle.vx",
10568    "vmsleu.vi",
10569    "vmsleu.vv",
10570    "vmsleu.vx",
10571    "vmslt.vv",
10572    "vmslt.vx",
10573    "vmsltu.vv",
10574    "vmsltu.vx",
10575    "vmsne.vi",
10576    "vmsne.vv",
10577    "vmsne.vx",
10578    "vmsof.m",
10579    "vmul.vv",
10580    "vmul.vx",
10581    "vmulh.vv",
10582    "vmulh.vx",
10583    "vmulhsu.vv",
10584    "vmulhsu.vx",
10585    "vmulhu.vv",
10586    "vmulhu.vx",
10587    "vmv1r.v",
10588    "vmv2r.v",
10589    "vmv4r.v",
10590    "vmv8r.v",
10591    "vmv.s.x",
10592    "vmv.v.i",
10593    "vmv.v.v",
10594    "vmv.v.x",
10595    "vmv.x.s",
10596    "vmxnor.mm",
10597    "vmxor.mm",
10598    "vnclip.wi",
10599    "vnclip.wv",
10600    "vnclip.wx",
10601    "vnclipu.wi",
10602    "vnclipu.wv",
10603    "vnclipu.wx",
10604    "vnmsac.vv",
10605    "vnmsac.vx",
10606    "vnmsub.vv",
10607    "vnmsub.vx",
10608    "vnsra.wi",
10609    "vnsra.wv",
10610    "vnsra.wx",
10611    "vnsrl.wi",
10612    "vnsrl.wv",
10613    "vnsrl.wx",
10614    "vor.vi",
10615    "vor.vv",
10616    "vor.vx",
10617    "vpopc.m",
10618    "vredand.vs",
10619    "vredmax.vs",
10620    "vredmaxu.vs",
10621    "vredmin.vs",
10622    "vredminu.vs",
10623    "vredor.vs",
10624    "vredsum.vs",
10625    "vredxor.vs",
10626    "vrem.vv",
10627    "vrem.vx",
10628    "vremu.vv",
10629    "vremu.vx",
10630    "vrev8.v",
10631    "vrgather.vi",
10632    "vrgather.vv",
10633    "vrgather.vx",
10634    "vrgatherei16.vv",
10635    "vrol.vv",
10636    "vrol.vx",
10637    "vror.vi",
10638    "vror.vv",
10639    "vror.vx",
10640    "vrsub.vi",
10641    "vrsub.vx",
10642    "vs1r.v",
10643    "vs2r.v",
10644    "vs4r.v",
10645    "vs8r.v",
10646    "vsadd.vi",
10647    "vsadd.vv",
10648    "vsadd.vx",
10649    "vsaddu.vi",
10650    "vsaddu.vv",
10651    "vsaddu.vx",
10652    "vsbc.vvm",
10653    "vsbc.vxm",
10654    "vse16.v",
10655    "vse1.v",
10656    "vse32.v",
10657    "vse64.v",
10658    "vse8.v",
10659    "vsetivli",
10660    "vsetvl",
10661    "vsetvli",
10662    "vsext.vf2",
10663    "vsext.vf4",
10664    "vsext.vf8",
10665    "vsha2ch.vv",
10666    "vsha2cl.vv",
10667    "vsha2ms.vv",
10668    "vslide1down.vx",
10669    "vslide1up.vx",
10670    "vslidedown.vi",
10671    "vslidedown.vx",
10672    "vslideup.vi",
10673    "vslideup.vx",
10674    "vsll.vi",
10675    "vsll.vv",
10676    "vsll.vx",
10677    "vsm3c.vi",
10678    "vsm3me.vv",
10679    "vsm4k.vi",
10680    "vsm4r.vs",
10681    "vsm4r.vv",
10682    "vsm.v",
10683    "vsmul.vv",
10684    "vsmul.vx",
10685    "vsoxei16.v",
10686    "vsoxei32.v",
10687    "vsoxei64.v",
10688    "vsoxei8.v",
10689    "vsra.vi",
10690    "vsra.vv",
10691    "vsra.vx",
10692    "vsrl.vi",
10693    "vsrl.vv",
10694    "vsrl.vx",
10695    "vsse16.v",
10696    "vsse32.v",
10697    "vsse64.v",
10698    "vsse8.v",
10699    "vssra.vi",
10700    "vssra.vv",
10701    "vssra.vx",
10702    "vssrl.vi",
10703    "vssrl.vv",
10704    "vssrl.vx",
10705    "vssub.vv",
10706    "vssub.vx",
10707    "vssubu.vv",
10708    "vssubu.vx",
10709    "vsub.vv",
10710    "vsub.vx",
10711    "vsuxei16.v",
10712    "vsuxei32.v",
10713    "vsuxei64.v",
10714    "vsuxei8.v",
10715    "vwadd.vv",
10716    "vwadd.vx",
10717    "vwadd.wv",
10718    "vwadd.wx",
10719    "vwaddu.vv",
10720    "vwaddu.vx",
10721    "vwaddu.wv",
10722    "vwaddu.wx",
10723    "vwmacc.vv",
10724    "vwmacc.vx",
10725    "vwmaccsu.vv",
10726    "vwmaccsu.vx",
10727    "vwmaccu.vv",
10728    "vwmaccu.vx",
10729    "vwmaccus.vx",
10730    "vwmul.vv",
10731    "vwmul.vx",
10732    "vwmulsu.vv",
10733    "vwmulsu.vx",
10734    "vwmulu.vv",
10735    "vwmulu.vx",
10736    "vwredsum.vs",
10737    "vwredsumu.vs",
10738    "vwsll.vi",
10739    "vwsll.vv",
10740    "vwsll.vx",
10741    "vwsub.vv",
10742    "vwsub.vx",
10743    "vwsub.wv",
10744    "vwsub.wx",
10745    "vwsubu.vv",
10746    "vwsubu.vx",
10747    "vwsubu.wv",
10748    "vwsubu.wx",
10749    "vxor.vi",
10750    "vxor.vv",
10751    "vxor.vx",
10752    "vzext.vf2",
10753    "vzext.vf4",
10754    "vzext.vf8",
10755    "wfi",
10756    "wrs.nto",
10757    "wrs.sto",
10758    "xnor",
10759    "xor",
10760    "xori",
10761    "xperm4",
10762    "xperm8",
10763    "zext.b",
10764    "zext.h",
10765    "zext.h.rv32",
10766    "zext.w",
10767    "zip",
10768    "<invalid>",
10769];
10770
10771#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
10772pub struct Inst {
10773    pub opcode: u32,
10774    pub funct3: u32,
10775    pub rs1: u32,
10776    pub rs2: u32,
10777    pub csr: i64,
10778    pub funct7: u32,
10779}
10780
10781impl Inst {
10782    pub const fn encode(&self) -> InstructionValue {
10783        InstructionValue::new(
10784            (self.funct7 << 25)
10785                | (self.rs2 << 20)
10786                | (self.rs1 << 15)
10787                | (self.funct3 << 12)
10788                | self.opcode,
10789        )
10790    }
10791
10792    pub const fn new(op: Opcode) -> Self {
10793        match op {
10794            Opcode::Invalid => unreachable!(),
10795            Opcode::ADD => Inst {
10796                opcode: 0x33,
10797                funct3: 0x0,
10798                rs1: 0x0,
10799                rs2: 0x0,
10800                csr: 0x0,
10801                funct7: 0x0,
10802            },
10803            Opcode::ADDUW => Inst {
10804                opcode: 0x3b,
10805                funct3: 0x0,
10806                rs1: 0x0,
10807                rs2: 0x0,
10808                csr: 0x80,
10809                funct7: 0x4,
10810            },
10811            Opcode::ADDI => Inst {
10812                opcode: 0x13,
10813                funct3: 0x0,
10814                rs1: 0x0,
10815                rs2: 0x0,
10816                csr: 0x0,
10817                funct7: 0x0,
10818            },
10819            Opcode::ADDIW => Inst {
10820                opcode: 0x1b,
10821                funct3: 0x0,
10822                rs1: 0x0,
10823                rs2: 0x0,
10824                csr: 0x0,
10825                funct7: 0x0,
10826            },
10827            Opcode::ADDW => Inst {
10828                opcode: 0x3b,
10829                funct3: 0x0,
10830                rs1: 0x0,
10831                rs2: 0x0,
10832                csr: 0x0,
10833                funct7: 0x0,
10834            },
10835            Opcode::AES32DSI => Inst {
10836                opcode: 0x33,
10837                funct3: 0x0,
10838                rs1: 0x0,
10839                rs2: 0x0,
10840                csr: 0x2a0,
10841                funct7: 0x15,
10842            },
10843            Opcode::AES32DSMI => Inst {
10844                opcode: 0x33,
10845                funct3: 0x0,
10846                rs1: 0x0,
10847                rs2: 0x0,
10848                csr: 0x2e0,
10849                funct7: 0x17,
10850            },
10851            Opcode::AES32ESI => Inst {
10852                opcode: 0x33,
10853                funct3: 0x0,
10854                rs1: 0x0,
10855                rs2: 0x0,
10856                csr: 0x220,
10857                funct7: 0x11,
10858            },
10859            Opcode::AES32ESMI => Inst {
10860                opcode: 0x33,
10861                funct3: 0x0,
10862                rs1: 0x0,
10863                rs2: 0x0,
10864                csr: 0x260,
10865                funct7: 0x13,
10866            },
10867            Opcode::AES64DS => Inst {
10868                opcode: 0x33,
10869                funct3: 0x0,
10870                rs1: 0x0,
10871                rs2: 0x0,
10872                csr: 0x3a0,
10873                funct7: 0x1d,
10874            },
10875            Opcode::AES64DSM => Inst {
10876                opcode: 0x33,
10877                funct3: 0x0,
10878                rs1: 0x0,
10879                rs2: 0x0,
10880                csr: 0x3e0,
10881                funct7: 0x1f,
10882            },
10883            Opcode::AES64ES => Inst {
10884                opcode: 0x33,
10885                funct3: 0x0,
10886                rs1: 0x0,
10887                rs2: 0x0,
10888                csr: 0x320,
10889                funct7: 0x19,
10890            },
10891            Opcode::AES64ESM => Inst {
10892                opcode: 0x33,
10893                funct3: 0x0,
10894                rs1: 0x0,
10895                rs2: 0x0,
10896                csr: 0x360,
10897                funct7: 0x1b,
10898            },
10899            Opcode::AES64IM => Inst {
10900                opcode: 0x13,
10901                funct3: 0x1,
10902                rs1: 0x0,
10903                rs2: 0x0,
10904                csr: 0x300,
10905                funct7: 0x18,
10906            },
10907            Opcode::AES64KS1I => Inst {
10908                opcode: 0x13,
10909                funct3: 0x1,
10910                rs1: 0x0,
10911                rs2: 0x10,
10912                csr: 0x310,
10913                funct7: 0x18,
10914            },
10915            Opcode::AES64KS2 => Inst {
10916                opcode: 0x33,
10917                funct3: 0x0,
10918                rs1: 0x0,
10919                rs2: 0x0,
10920                csr: 0x7e0,
10921                funct7: 0x3f,
10922            },
10923            Opcode::AMOADDB => Inst {
10924                opcode: 0x2f,
10925                funct3: 0x0,
10926                rs1: 0x0,
10927                rs2: 0x0,
10928                csr: 0x0,
10929                funct7: 0x0,
10930            },
10931            Opcode::AMOADDD => Inst {
10932                opcode: 0x2f,
10933                funct3: 0x3,
10934                rs1: 0x0,
10935                rs2: 0x0,
10936                csr: 0x0,
10937                funct7: 0x0,
10938            },
10939            Opcode::AMOADDH => Inst {
10940                opcode: 0x2f,
10941                funct3: 0x1,
10942                rs1: 0x0,
10943                rs2: 0x0,
10944                csr: 0x0,
10945                funct7: 0x0,
10946            },
10947            Opcode::AMOADDW => Inst {
10948                opcode: 0x2f,
10949                funct3: 0x2,
10950                rs1: 0x0,
10951                rs2: 0x0,
10952                csr: 0x0,
10953                funct7: 0x0,
10954            },
10955            Opcode::AMOANDB => Inst {
10956                opcode: 0x2f,
10957                funct3: 0x0,
10958                rs1: 0x0,
10959                rs2: 0x0,
10960                csr: 0x600,
10961                funct7: 0x30,
10962            },
10963            Opcode::AMOANDD => Inst {
10964                opcode: 0x2f,
10965                funct3: 0x3,
10966                rs1: 0x0,
10967                rs2: 0x0,
10968                csr: 0x600,
10969                funct7: 0x30,
10970            },
10971            Opcode::AMOANDH => Inst {
10972                opcode: 0x2f,
10973                funct3: 0x1,
10974                rs1: 0x0,
10975                rs2: 0x0,
10976                csr: 0x600,
10977                funct7: 0x30,
10978            },
10979            Opcode::AMOANDW => Inst {
10980                opcode: 0x2f,
10981                funct3: 0x2,
10982                rs1: 0x0,
10983                rs2: 0x0,
10984                csr: 0x600,
10985                funct7: 0x30,
10986            },
10987            Opcode::AMOCASB => Inst {
10988                opcode: 0x2f,
10989                funct3: 0x0,
10990                rs1: 0x0,
10991                rs2: 0x0,
10992                csr: 0x280,
10993                funct7: 0x14,
10994            },
10995            Opcode::AMOCASD => Inst {
10996                opcode: 0x2f,
10997                funct3: 0x3,
10998                rs1: 0x0,
10999                rs2: 0x0,
11000                csr: 0x280,
11001                funct7: 0x14,
11002            },
11003            Opcode::AMOCASH => Inst {
11004                opcode: 0x2f,
11005                funct3: 0x1,
11006                rs1: 0x0,
11007                rs2: 0x0,
11008                csr: 0x280,
11009                funct7: 0x14,
11010            },
11011            Opcode::AMOCASQ => Inst {
11012                opcode: 0x2f,
11013                funct3: 0x4,
11014                rs1: 0x0,
11015                rs2: 0x0,
11016                csr: 0x280,
11017                funct7: 0x14,
11018            },
11019            Opcode::AMOCASW => Inst {
11020                opcode: 0x2f,
11021                funct3: 0x2,
11022                rs1: 0x0,
11023                rs2: 0x0,
11024                csr: 0x280,
11025                funct7: 0x14,
11026            },
11027            Opcode::AMOMAXB => Inst {
11028                opcode: 0x2f,
11029                funct3: 0x0,
11030                rs1: 0x0,
11031                rs2: 0x0,
11032                csr: 0xa00,
11033                funct7: 0x50,
11034            },
11035            Opcode::AMOMAXD => Inst {
11036                opcode: 0x2f,
11037                funct3: 0x3,
11038                rs1: 0x0,
11039                rs2: 0x0,
11040                csr: 0xa00,
11041                funct7: 0x50,
11042            },
11043            Opcode::AMOMAXH => Inst {
11044                opcode: 0x2f,
11045                funct3: 0x1,
11046                rs1: 0x0,
11047                rs2: 0x0,
11048                csr: 0xa00,
11049                funct7: 0x50,
11050            },
11051            Opcode::AMOMAXW => Inst {
11052                opcode: 0x2f,
11053                funct3: 0x2,
11054                rs1: 0x0,
11055                rs2: 0x0,
11056                csr: 0xa00,
11057                funct7: 0x50,
11058            },
11059            Opcode::AMOMAXUB => Inst {
11060                opcode: 0x2f,
11061                funct3: 0x0,
11062                rs1: 0x0,
11063                rs2: 0x0,
11064                csr: 0xe00,
11065                funct7: 0x70,
11066            },
11067            Opcode::AMOMAXUD => Inst {
11068                opcode: 0x2f,
11069                funct3: 0x3,
11070                rs1: 0x0,
11071                rs2: 0x0,
11072                csr: 0xe00,
11073                funct7: 0x70,
11074            },
11075            Opcode::AMOMAXUH => Inst {
11076                opcode: 0x2f,
11077                funct3: 0x1,
11078                rs1: 0x0,
11079                rs2: 0x0,
11080                csr: 0xe00,
11081                funct7: 0x70,
11082            },
11083            Opcode::AMOMAXUW => Inst {
11084                opcode: 0x2f,
11085                funct3: 0x2,
11086                rs1: 0x0,
11087                rs2: 0x0,
11088                csr: 0xe00,
11089                funct7: 0x70,
11090            },
11091            Opcode::AMOMINB => Inst {
11092                opcode: 0x2f,
11093                funct3: 0x0,
11094                rs1: 0x0,
11095                rs2: 0x0,
11096                csr: 0x800,
11097                funct7: 0x40,
11098            },
11099            Opcode::AMOMIND => Inst {
11100                opcode: 0x2f,
11101                funct3: 0x3,
11102                rs1: 0x0,
11103                rs2: 0x0,
11104                csr: 0x800,
11105                funct7: 0x40,
11106            },
11107            Opcode::AMOMINH => Inst {
11108                opcode: 0x2f,
11109                funct3: 0x1,
11110                rs1: 0x0,
11111                rs2: 0x0,
11112                csr: 0x800,
11113                funct7: 0x40,
11114            },
11115            Opcode::AMOMINW => Inst {
11116                opcode: 0x2f,
11117                funct3: 0x2,
11118                rs1: 0x0,
11119                rs2: 0x0,
11120                csr: 0x800,
11121                funct7: 0x40,
11122            },
11123            Opcode::AMOMINUB => Inst {
11124                opcode: 0x2f,
11125                funct3: 0x0,
11126                rs1: 0x0,
11127                rs2: 0x0,
11128                csr: 0xc00,
11129                funct7: 0x60,
11130            },
11131            Opcode::AMOMINUD => Inst {
11132                opcode: 0x2f,
11133                funct3: 0x3,
11134                rs1: 0x0,
11135                rs2: 0x0,
11136                csr: 0xc00,
11137                funct7: 0x60,
11138            },
11139            Opcode::AMOMINUH => Inst {
11140                opcode: 0x2f,
11141                funct3: 0x1,
11142                rs1: 0x0,
11143                rs2: 0x0,
11144                csr: 0xc00,
11145                funct7: 0x60,
11146            },
11147            Opcode::AMOMINUW => Inst {
11148                opcode: 0x2f,
11149                funct3: 0x2,
11150                rs1: 0x0,
11151                rs2: 0x0,
11152                csr: 0xc00,
11153                funct7: 0x60,
11154            },
11155            Opcode::AMOORB => Inst {
11156                opcode: 0x2f,
11157                funct3: 0x0,
11158                rs1: 0x0,
11159                rs2: 0x0,
11160                csr: 0x400,
11161                funct7: 0x20,
11162            },
11163            Opcode::AMOORD => Inst {
11164                opcode: 0x2f,
11165                funct3: 0x3,
11166                rs1: 0x0,
11167                rs2: 0x0,
11168                csr: 0x400,
11169                funct7: 0x20,
11170            },
11171            Opcode::AMOORH => Inst {
11172                opcode: 0x2f,
11173                funct3: 0x1,
11174                rs1: 0x0,
11175                rs2: 0x0,
11176                csr: 0x400,
11177                funct7: 0x20,
11178            },
11179            Opcode::AMOORW => Inst {
11180                opcode: 0x2f,
11181                funct3: 0x2,
11182                rs1: 0x0,
11183                rs2: 0x0,
11184                csr: 0x400,
11185                funct7: 0x20,
11186            },
11187            Opcode::AMOSWAPB => Inst {
11188                opcode: 0x2f,
11189                funct3: 0x0,
11190                rs1: 0x0,
11191                rs2: 0x0,
11192                csr: 0x80,
11193                funct7: 0x4,
11194            },
11195            Opcode::AMOSWAPD => Inst {
11196                opcode: 0x2f,
11197                funct3: 0x3,
11198                rs1: 0x0,
11199                rs2: 0x0,
11200                csr: 0x80,
11201                funct7: 0x4,
11202            },
11203            Opcode::AMOSWAPH => Inst {
11204                opcode: 0x2f,
11205                funct3: 0x1,
11206                rs1: 0x0,
11207                rs2: 0x0,
11208                csr: 0x80,
11209                funct7: 0x4,
11210            },
11211            Opcode::AMOSWAPW => Inst {
11212                opcode: 0x2f,
11213                funct3: 0x2,
11214                rs1: 0x0,
11215                rs2: 0x0,
11216                csr: 0x80,
11217                funct7: 0x4,
11218            },
11219            Opcode::AMOXORB => Inst {
11220                opcode: 0x2f,
11221                funct3: 0x0,
11222                rs1: 0x0,
11223                rs2: 0x0,
11224                csr: 0x200,
11225                funct7: 0x10,
11226            },
11227            Opcode::AMOXORD => Inst {
11228                opcode: 0x2f,
11229                funct3: 0x3,
11230                rs1: 0x0,
11231                rs2: 0x0,
11232                csr: 0x200,
11233                funct7: 0x10,
11234            },
11235            Opcode::AMOXORH => Inst {
11236                opcode: 0x2f,
11237                funct3: 0x1,
11238                rs1: 0x0,
11239                rs2: 0x0,
11240                csr: 0x200,
11241                funct7: 0x10,
11242            },
11243            Opcode::AMOXORW => Inst {
11244                opcode: 0x2f,
11245                funct3: 0x2,
11246                rs1: 0x0,
11247                rs2: 0x0,
11248                csr: 0x200,
11249                funct7: 0x10,
11250            },
11251            Opcode::AND => Inst {
11252                opcode: 0x33,
11253                funct3: 0x7,
11254                rs1: 0x0,
11255                rs2: 0x0,
11256                csr: 0x0,
11257                funct7: 0x0,
11258            },
11259            Opcode::ANDI => Inst {
11260                opcode: 0x13,
11261                funct3: 0x7,
11262                rs1: 0x0,
11263                rs2: 0x0,
11264                csr: 0x0,
11265                funct7: 0x0,
11266            },
11267            Opcode::ANDN => Inst {
11268                opcode: 0x33,
11269                funct3: 0x7,
11270                rs1: 0x0,
11271                rs2: 0x0,
11272                csr: 0x400,
11273                funct7: 0x20,
11274            },
11275            Opcode::AUIPC => Inst {
11276                opcode: 0x17,
11277                funct3: 0x0,
11278                rs1: 0x0,
11279                rs2: 0x0,
11280                csr: 0x0,
11281                funct7: 0x0,
11282            },
11283            Opcode::BCLR => Inst {
11284                opcode: 0x33,
11285                funct3: 0x1,
11286                rs1: 0x0,
11287                rs2: 0x0,
11288                csr: 0x480,
11289                funct7: 0x24,
11290            },
11291            Opcode::BCLRI => Inst {
11292                opcode: 0x13,
11293                funct3: 0x1,
11294                rs1: 0x0,
11295                rs2: 0x0,
11296                csr: 0x480,
11297                funct7: 0x24,
11298            },
11299            Opcode::BCLRIRV32 => Inst {
11300                opcode: 0x13,
11301                funct3: 0x1,
11302                rs1: 0x0,
11303                rs2: 0x0,
11304                csr: 0x480,
11305                funct7: 0x24,
11306            },
11307            Opcode::BEQ => Inst {
11308                opcode: 0x63,
11309                funct3: 0x0,
11310                rs1: 0x0,
11311                rs2: 0x0,
11312                csr: 0x0,
11313                funct7: 0x0,
11314            },
11315            Opcode::BEQZ => Inst {
11316                opcode: 0x63,
11317                funct3: 0x0,
11318                rs1: 0x0,
11319                rs2: 0x0,
11320                csr: 0x0,
11321                funct7: 0x0,
11322            },
11323            Opcode::BEXT => Inst {
11324                opcode: 0x33,
11325                funct3: 0x5,
11326                rs1: 0x0,
11327                rs2: 0x0,
11328                csr: 0x480,
11329                funct7: 0x24,
11330            },
11331            Opcode::BEXTI => Inst {
11332                opcode: 0x13,
11333                funct3: 0x5,
11334                rs1: 0x0,
11335                rs2: 0x0,
11336                csr: 0x480,
11337                funct7: 0x24,
11338            },
11339            Opcode::BEXTIRV32 => Inst {
11340                opcode: 0x13,
11341                funct3: 0x5,
11342                rs1: 0x0,
11343                rs2: 0x0,
11344                csr: 0x480,
11345                funct7: 0x24,
11346            },
11347            Opcode::BGE => Inst {
11348                opcode: 0x63,
11349                funct3: 0x5,
11350                rs1: 0x0,
11351                rs2: 0x0,
11352                csr: 0x0,
11353                funct7: 0x0,
11354            },
11355            Opcode::BGEU => Inst {
11356                opcode: 0x63,
11357                funct3: 0x7,
11358                rs1: 0x0,
11359                rs2: 0x0,
11360                csr: 0x0,
11361                funct7: 0x0,
11362            },
11363            Opcode::BGEZ => Inst {
11364                opcode: 0x63,
11365                funct3: 0x5,
11366                rs1: 0x0,
11367                rs2: 0x0,
11368                csr: 0x0,
11369                funct7: 0x0,
11370            },
11371            Opcode::BGT => Inst {
11372                opcode: 0x63,
11373                funct3: 0x4,
11374                rs1: 0x0,
11375                rs2: 0x0,
11376                csr: 0x0,
11377                funct7: 0x0,
11378            },
11379            Opcode::BGTU => Inst {
11380                opcode: 0x63,
11381                funct3: 0x6,
11382                rs1: 0x0,
11383                rs2: 0x0,
11384                csr: 0x0,
11385                funct7: 0x0,
11386            },
11387            Opcode::BGTZ => Inst {
11388                opcode: 0x63,
11389                funct3: 0x4,
11390                rs1: 0x0,
11391                rs2: 0x0,
11392                csr: 0x0,
11393                funct7: 0x0,
11394            },
11395            Opcode::BINV => Inst {
11396                opcode: 0x33,
11397                funct3: 0x1,
11398                rs1: 0x0,
11399                rs2: 0x0,
11400                csr: 0x680,
11401                funct7: 0x34,
11402            },
11403            Opcode::BINVI => Inst {
11404                opcode: 0x13,
11405                funct3: 0x1,
11406                rs1: 0x0,
11407                rs2: 0x0,
11408                csr: 0x680,
11409                funct7: 0x34,
11410            },
11411            Opcode::BINVIRV32 => Inst {
11412                opcode: 0x13,
11413                funct3: 0x1,
11414                rs1: 0x0,
11415                rs2: 0x0,
11416                csr: 0x680,
11417                funct7: 0x34,
11418            },
11419            Opcode::BLE => Inst {
11420                opcode: 0x63,
11421                funct3: 0x5,
11422                rs1: 0x0,
11423                rs2: 0x0,
11424                csr: 0x0,
11425                funct7: 0x0,
11426            },
11427            Opcode::BLEU => Inst {
11428                opcode: 0x63,
11429                funct3: 0x7,
11430                rs1: 0x0,
11431                rs2: 0x0,
11432                csr: 0x0,
11433                funct7: 0x0,
11434            },
11435            Opcode::BLEZ => Inst {
11436                opcode: 0x63,
11437                funct3: 0x5,
11438                rs1: 0x0,
11439                rs2: 0x0,
11440                csr: 0x0,
11441                funct7: 0x0,
11442            },
11443            Opcode::BLT => Inst {
11444                opcode: 0x63,
11445                funct3: 0x4,
11446                rs1: 0x0,
11447                rs2: 0x0,
11448                csr: 0x0,
11449                funct7: 0x0,
11450            },
11451            Opcode::BLTU => Inst {
11452                opcode: 0x63,
11453                funct3: 0x6,
11454                rs1: 0x0,
11455                rs2: 0x0,
11456                csr: 0x0,
11457                funct7: 0x0,
11458            },
11459            Opcode::BLTZ => Inst {
11460                opcode: 0x63,
11461                funct3: 0x4,
11462                rs1: 0x0,
11463                rs2: 0x0,
11464                csr: 0x0,
11465                funct7: 0x0,
11466            },
11467            Opcode::BNE => Inst {
11468                opcode: 0x63,
11469                funct3: 0x1,
11470                rs1: 0x0,
11471                rs2: 0x0,
11472                csr: 0x0,
11473                funct7: 0x0,
11474            },
11475            Opcode::BNEZ => Inst {
11476                opcode: 0x63,
11477                funct3: 0x1,
11478                rs1: 0x0,
11479                rs2: 0x0,
11480                csr: 0x0,
11481                funct7: 0x0,
11482            },
11483            Opcode::BREV8 => Inst {
11484                opcode: 0x13,
11485                funct3: 0x5,
11486                rs1: 0x0,
11487                rs2: 0x7,
11488                csr: 0x687,
11489                funct7: 0x34,
11490            },
11491            Opcode::BSET => Inst {
11492                opcode: 0x33,
11493                funct3: 0x1,
11494                rs1: 0x0,
11495                rs2: 0x0,
11496                csr: 0x280,
11497                funct7: 0x14,
11498            },
11499            Opcode::BSETI => Inst {
11500                opcode: 0x13,
11501                funct3: 0x1,
11502                rs1: 0x0,
11503                rs2: 0x0,
11504                csr: 0x280,
11505                funct7: 0x14,
11506            },
11507            Opcode::BSETIRV32 => Inst {
11508                opcode: 0x13,
11509                funct3: 0x1,
11510                rs1: 0x0,
11511                rs2: 0x0,
11512                csr: 0x280,
11513                funct7: 0x14,
11514            },
11515            Opcode::CADD => Inst {
11516                opcode: 0x2,
11517                funct3: 0x1,
11518                rs1: 0x1,
11519                rs2: 0x0,
11520                csr: 0x0,
11521                funct7: 0x0,
11522            },
11523            Opcode::CADDI => Inst {
11524                opcode: 0x1,
11525                funct3: 0x0,
11526                rs1: 0x0,
11527                rs2: 0x0,
11528                csr: 0x0,
11529                funct7: 0x0,
11530            },
11531            Opcode::CADDI16SP => Inst {
11532                opcode: 0x1,
11533                funct3: 0x6,
11534                rs1: 0x0,
11535                rs2: 0x0,
11536                csr: 0x0,
11537                funct7: 0x0,
11538            },
11539            Opcode::CADDI4SPN => Inst {
11540                opcode: 0x0,
11541                funct3: 0x0,
11542                rs1: 0x0,
11543                rs2: 0x0,
11544                csr: 0x0,
11545                funct7: 0x0,
11546            },
11547            Opcode::CADDIW => Inst {
11548                opcode: 0x1,
11549                funct3: 0x2,
11550                rs1: 0x0,
11551                rs2: 0x0,
11552                csr: 0x0,
11553                funct7: 0x0,
11554            },
11555            Opcode::CADDW => Inst {
11556                opcode: 0x21,
11557                funct3: 0x1,
11558                rs1: 0x1,
11559                rs2: 0x0,
11560                csr: 0x0,
11561                funct7: 0x0,
11562            },
11563            Opcode::CAND => Inst {
11564                opcode: 0x61,
11565                funct3: 0x0,
11566                rs1: 0x1,
11567                rs2: 0x0,
11568                csr: 0x0,
11569                funct7: 0x0,
11570            },
11571            Opcode::CANDI => Inst {
11572                opcode: 0x1,
11573                funct3: 0x0,
11574                rs1: 0x1,
11575                rs2: 0x0,
11576                csr: 0x0,
11577                funct7: 0x0,
11578            },
11579            Opcode::CBEQZ => Inst {
11580                opcode: 0x1,
11581                funct3: 0x4,
11582                rs1: 0x1,
11583                rs2: 0x0,
11584                csr: 0x0,
11585                funct7: 0x0,
11586            },
11587            Opcode::CBNEZ => Inst {
11588                opcode: 0x1,
11589                funct3: 0x6,
11590                rs1: 0x1,
11591                rs2: 0x0,
11592                csr: 0x0,
11593                funct7: 0x0,
11594            },
11595            Opcode::CEBREAK => Inst {
11596                opcode: 0x2,
11597                funct3: 0x1,
11598                rs1: 0x1,
11599                rs2: 0x0,
11600                csr: 0x0,
11601                funct7: 0x0,
11602            },
11603            Opcode::CFLD => Inst {
11604                opcode: 0x0,
11605                funct3: 0x2,
11606                rs1: 0x0,
11607                rs2: 0x0,
11608                csr: 0x0,
11609                funct7: 0x0,
11610            },
11611            Opcode::CFLDSP => Inst {
11612                opcode: 0x2,
11613                funct3: 0x2,
11614                rs1: 0x0,
11615                rs2: 0x0,
11616                csr: 0x0,
11617                funct7: 0x0,
11618            },
11619            Opcode::CFLW => Inst {
11620                opcode: 0x0,
11621                funct3: 0x6,
11622                rs1: 0x0,
11623                rs2: 0x0,
11624                csr: 0x0,
11625                funct7: 0x0,
11626            },
11627            Opcode::CFLWSP => Inst {
11628                opcode: 0x2,
11629                funct3: 0x6,
11630                rs1: 0x0,
11631                rs2: 0x0,
11632                csr: 0x0,
11633                funct7: 0x0,
11634            },
11635            Opcode::CFSD => Inst {
11636                opcode: 0x0,
11637                funct3: 0x2,
11638                rs1: 0x1,
11639                rs2: 0x0,
11640                csr: 0x0,
11641                funct7: 0x0,
11642            },
11643            Opcode::CFSDSP => Inst {
11644                opcode: 0x2,
11645                funct3: 0x2,
11646                rs1: 0x1,
11647                rs2: 0x0,
11648                csr: 0x0,
11649                funct7: 0x0,
11650            },
11651            Opcode::CFSW => Inst {
11652                opcode: 0x0,
11653                funct3: 0x6,
11654                rs1: 0x1,
11655                rs2: 0x0,
11656                csr: 0x0,
11657                funct7: 0x0,
11658            },
11659            Opcode::CFSWSP => Inst {
11660                opcode: 0x2,
11661                funct3: 0x6,
11662                rs1: 0x1,
11663                rs2: 0x0,
11664                csr: 0x0,
11665                funct7: 0x0,
11666            },
11667            Opcode::CJ => Inst {
11668                opcode: 0x1,
11669                funct3: 0x2,
11670                rs1: 0x1,
11671                rs2: 0x0,
11672                csr: 0x0,
11673                funct7: 0x0,
11674            },
11675            Opcode::CJAL => Inst {
11676                opcode: 0x1,
11677                funct3: 0x2,
11678                rs1: 0x0,
11679                rs2: 0x0,
11680                csr: 0x0,
11681                funct7: 0x0,
11682            },
11683            Opcode::CJALR => Inst {
11684                opcode: 0x2,
11685                funct3: 0x1,
11686                rs1: 0x1,
11687                rs2: 0x0,
11688                csr: 0x0,
11689                funct7: 0x0,
11690            },
11691            Opcode::CJR => Inst {
11692                opcode: 0x2,
11693                funct3: 0x0,
11694                rs1: 0x1,
11695                rs2: 0x0,
11696                csr: 0x0,
11697                funct7: 0x0,
11698            },
11699            Opcode::CLBU => Inst {
11700                opcode: 0x0,
11701                funct3: 0x0,
11702                rs1: 0x1,
11703                rs2: 0x0,
11704                csr: 0x0,
11705                funct7: 0x0,
11706            },
11707            Opcode::CLD => Inst {
11708                opcode: 0x0,
11709                funct3: 0x6,
11710                rs1: 0x0,
11711                rs2: 0x0,
11712                csr: 0x0,
11713                funct7: 0x0,
11714            },
11715            Opcode::CLDSP => Inst {
11716                opcode: 0x2,
11717                funct3: 0x6,
11718                rs1: 0x0,
11719                rs2: 0x0,
11720                csr: 0x0,
11721                funct7: 0x0,
11722            },
11723            Opcode::CLH => Inst {
11724                opcode: 0x40,
11725                funct3: 0x0,
11726                rs1: 0x1,
11727                rs2: 0x0,
11728                csr: 0x0,
11729                funct7: 0x0,
11730            },
11731            Opcode::CLHU => Inst {
11732                opcode: 0x0,
11733                funct3: 0x0,
11734                rs1: 0x1,
11735                rs2: 0x0,
11736                csr: 0x0,
11737                funct7: 0x0,
11738            },
11739            Opcode::CLI => Inst {
11740                opcode: 0x1,
11741                funct3: 0x4,
11742                rs1: 0x0,
11743                rs2: 0x0,
11744                csr: 0x0,
11745                funct7: 0x0,
11746            },
11747            Opcode::CLUI => Inst {
11748                opcode: 0x1,
11749                funct3: 0x6,
11750                rs1: 0x0,
11751                rs2: 0x0,
11752                csr: 0x0,
11753                funct7: 0x0,
11754            },
11755            Opcode::CLW => Inst {
11756                opcode: 0x0,
11757                funct3: 0x4,
11758                rs1: 0x0,
11759                rs2: 0x0,
11760                csr: 0x0,
11761                funct7: 0x0,
11762            },
11763            Opcode::CLWSP => Inst {
11764                opcode: 0x2,
11765                funct3: 0x4,
11766                rs1: 0x0,
11767                rs2: 0x0,
11768                csr: 0x0,
11769                funct7: 0x0,
11770            },
11771            Opcode::CMOP1 => Inst {
11772                opcode: 0x1,
11773                funct3: 0x6,
11774                rs1: 0x0,
11775                rs2: 0x0,
11776                csr: 0x0,
11777                funct7: 0x0,
11778            },
11779            Opcode::CMOP11 => Inst {
11780                opcode: 0x1,
11781                funct3: 0x6,
11782                rs1: 0x0,
11783                rs2: 0x0,
11784                csr: 0x0,
11785                funct7: 0x0,
11786            },
11787            Opcode::CMOP13 => Inst {
11788                opcode: 0x1,
11789                funct3: 0x6,
11790                rs1: 0x0,
11791                rs2: 0x0,
11792                csr: 0x0,
11793                funct7: 0x0,
11794            },
11795            Opcode::CMOP15 => Inst {
11796                opcode: 0x1,
11797                funct3: 0x6,
11798                rs1: 0x0,
11799                rs2: 0x0,
11800                csr: 0x0,
11801                funct7: 0x0,
11802            },
11803            Opcode::CMOP3 => Inst {
11804                opcode: 0x1,
11805                funct3: 0x6,
11806                rs1: 0x0,
11807                rs2: 0x0,
11808                csr: 0x0,
11809                funct7: 0x0,
11810            },
11811            Opcode::CMOP5 => Inst {
11812                opcode: 0x1,
11813                funct3: 0x6,
11814                rs1: 0x0,
11815                rs2: 0x0,
11816                csr: 0x0,
11817                funct7: 0x0,
11818            },
11819            Opcode::CMOP7 => Inst {
11820                opcode: 0x1,
11821                funct3: 0x6,
11822                rs1: 0x0,
11823                rs2: 0x0,
11824                csr: 0x0,
11825                funct7: 0x0,
11826            },
11827            Opcode::CMOP9 => Inst {
11828                opcode: 0x1,
11829                funct3: 0x6,
11830                rs1: 0x0,
11831                rs2: 0x0,
11832                csr: 0x0,
11833                funct7: 0x0,
11834            },
11835            Opcode::CMOPN => Inst {
11836                opcode: 0x1,
11837                funct3: 0x6,
11838                rs1: 0x0,
11839                rs2: 0x0,
11840                csr: 0x0,
11841                funct7: 0x0,
11842            },
11843            Opcode::CMUL => Inst {
11844                opcode: 0x41,
11845                funct3: 0x1,
11846                rs1: 0x1,
11847                rs2: 0x0,
11848                csr: 0x0,
11849                funct7: 0x0,
11850            },
11851            Opcode::CMV => Inst {
11852                opcode: 0x2,
11853                funct3: 0x0,
11854                rs1: 0x1,
11855                rs2: 0x0,
11856                csr: 0x0,
11857                funct7: 0x0,
11858            },
11859            Opcode::CNOP => Inst {
11860                opcode: 0x1,
11861                funct3: 0x0,
11862                rs1: 0x0,
11863                rs2: 0x0,
11864                csr: 0x0,
11865                funct7: 0x0,
11866            },
11867            Opcode::CNOT => Inst {
11868                opcode: 0x75,
11869                funct3: 0x1,
11870                rs1: 0x1,
11871                rs2: 0x0,
11872                csr: 0x0,
11873                funct7: 0x0,
11874            },
11875            Opcode::CNTLALL => Inst {
11876                opcode: 0x16,
11877                funct3: 0x1,
11878                rs1: 0x1,
11879                rs2: 0x0,
11880                csr: 0x0,
11881                funct7: 0x0,
11882            },
11883            Opcode::CNTLP1 => Inst {
11884                opcode: 0xa,
11885                funct3: 0x1,
11886                rs1: 0x1,
11887                rs2: 0x0,
11888                csr: 0x0,
11889                funct7: 0x0,
11890            },
11891            Opcode::CNTLPALL => Inst {
11892                opcode: 0xe,
11893                funct3: 0x1,
11894                rs1: 0x1,
11895                rs2: 0x0,
11896                csr: 0x0,
11897                funct7: 0x0,
11898            },
11899            Opcode::CNTLS1 => Inst {
11900                opcode: 0x12,
11901                funct3: 0x1,
11902                rs1: 0x1,
11903                rs2: 0x0,
11904                csr: 0x0,
11905                funct7: 0x0,
11906            },
11907            Opcode::COR => Inst {
11908                opcode: 0x41,
11909                funct3: 0x0,
11910                rs1: 0x1,
11911                rs2: 0x0,
11912                csr: 0x0,
11913                funct7: 0x0,
11914            },
11915            Opcode::CSB => Inst {
11916                opcode: 0x0,
11917                funct3: 0x0,
11918                rs1: 0x1,
11919                rs2: 0x0,
11920                csr: 0x0,
11921                funct7: 0x0,
11922            },
11923            Opcode::CSD => Inst {
11924                opcode: 0x0,
11925                funct3: 0x6,
11926                rs1: 0x1,
11927                rs2: 0x0,
11928                csr: 0x0,
11929                funct7: 0x0,
11930            },
11931            Opcode::CSDSP => Inst {
11932                opcode: 0x2,
11933                funct3: 0x6,
11934                rs1: 0x1,
11935                rs2: 0x0,
11936                csr: 0x0,
11937                funct7: 0x0,
11938            },
11939            Opcode::CSEXTB => Inst {
11940                opcode: 0x65,
11941                funct3: 0x1,
11942                rs1: 0x1,
11943                rs2: 0x0,
11944                csr: 0x0,
11945                funct7: 0x0,
11946            },
11947            Opcode::CSEXTH => Inst {
11948                opcode: 0x6d,
11949                funct3: 0x1,
11950                rs1: 0x1,
11951                rs2: 0x0,
11952                csr: 0x0,
11953                funct7: 0x0,
11954            },
11955            Opcode::CSEXTW => Inst {
11956                opcode: 0x1,
11957                funct3: 0x2,
11958                rs1: 0x0,
11959                rs2: 0x0,
11960                csr: 0x0,
11961                funct7: 0x0,
11962            },
11963            Opcode::CSH => Inst {
11964                opcode: 0x0,
11965                funct3: 0x0,
11966                rs1: 0x1,
11967                rs2: 0x0,
11968                csr: 0x0,
11969                funct7: 0x0,
11970            },
11971            Opcode::CSLLI => Inst {
11972                opcode: 0x2,
11973                funct3: 0x0,
11974                rs1: 0x0,
11975                rs2: 0x0,
11976                csr: 0x0,
11977                funct7: 0x0,
11978            },
11979            Opcode::CSLLIRV32 => Inst {
11980                opcode: 0x2,
11981                funct3: 0x0,
11982                rs1: 0x0,
11983                rs2: 0x0,
11984                csr: 0x0,
11985                funct7: 0x0,
11986            },
11987            Opcode::CSRAI => Inst {
11988                opcode: 0x1,
11989                funct3: 0x0,
11990                rs1: 0x1,
11991                rs2: 0x0,
11992                csr: 0x0,
11993                funct7: 0x0,
11994            },
11995            Opcode::CSRAIRV32 => Inst {
11996                opcode: 0x1,
11997                funct3: 0x0,
11998                rs1: 0x1,
11999                rs2: 0x0,
12000                csr: 0x0,
12001                funct7: 0x0,
12002            },
12003            Opcode::CSRLI => Inst {
12004                opcode: 0x1,
12005                funct3: 0x0,
12006                rs1: 0x1,
12007                rs2: 0x0,
12008                csr: 0x0,
12009                funct7: 0x0,
12010            },
12011            Opcode::CSRLIRV32 => Inst {
12012                opcode: 0x1,
12013                funct3: 0x0,
12014                rs1: 0x1,
12015                rs2: 0x0,
12016                csr: 0x0,
12017                funct7: 0x0,
12018            },
12019            Opcode::CSUB => Inst {
12020                opcode: 0x1,
12021                funct3: 0x0,
12022                rs1: 0x1,
12023                rs2: 0x0,
12024                csr: 0x0,
12025                funct7: 0x0,
12026            },
12027            Opcode::CSUBW => Inst {
12028                opcode: 0x1,
12029                funct3: 0x1,
12030                rs1: 0x1,
12031                rs2: 0x0,
12032                csr: 0x0,
12033                funct7: 0x0,
12034            },
12035            Opcode::CSW => Inst {
12036                opcode: 0x0,
12037                funct3: 0x4,
12038                rs1: 0x1,
12039                rs2: 0x0,
12040                csr: 0x0,
12041                funct7: 0x0,
12042            },
12043            Opcode::CSWSP => Inst {
12044                opcode: 0x2,
12045                funct3: 0x4,
12046                rs1: 0x1,
12047                rs2: 0x0,
12048                csr: 0x0,
12049                funct7: 0x0,
12050            },
12051            Opcode::CXOR => Inst {
12052                opcode: 0x21,
12053                funct3: 0x0,
12054                rs1: 0x1,
12055                rs2: 0x0,
12056                csr: 0x0,
12057                funct7: 0x0,
12058            },
12059            Opcode::CZEXTB => Inst {
12060                opcode: 0x61,
12061                funct3: 0x1,
12062                rs1: 0x1,
12063                rs2: 0x0,
12064                csr: 0x0,
12065                funct7: 0x0,
12066            },
12067            Opcode::CZEXTH => Inst {
12068                opcode: 0x69,
12069                funct3: 0x1,
12070                rs1: 0x1,
12071                rs2: 0x0,
12072                csr: 0x0,
12073                funct7: 0x0,
12074            },
12075            Opcode::CZEXTW => Inst {
12076                opcode: 0x71,
12077                funct3: 0x1,
12078                rs1: 0x1,
12079                rs2: 0x0,
12080                csr: 0x0,
12081                funct7: 0x0,
12082            },
12083            Opcode::CBOCLEAN => Inst {
12084                opcode: 0xf,
12085                funct3: 0x2,
12086                rs1: 0x0,
12087                rs2: 0x1,
12088                csr: 0x1,
12089                funct7: 0x0,
12090            },
12091            Opcode::CBOFLUSH => Inst {
12092                opcode: 0xf,
12093                funct3: 0x2,
12094                rs1: 0x0,
12095                rs2: 0x2,
12096                csr: 0x2,
12097                funct7: 0x0,
12098            },
12099            Opcode::CBOINVAL => Inst {
12100                opcode: 0xf,
12101                funct3: 0x2,
12102                rs1: 0x0,
12103                rs2: 0x0,
12104                csr: 0x0,
12105                funct7: 0x0,
12106            },
12107            Opcode::CBOZERO => Inst {
12108                opcode: 0xf,
12109                funct3: 0x2,
12110                rs1: 0x0,
12111                rs2: 0x4,
12112                csr: 0x4,
12113                funct7: 0x0,
12114            },
12115            Opcode::CLMUL => Inst {
12116                opcode: 0x33,
12117                funct3: 0x1,
12118                rs1: 0x0,
12119                rs2: 0x0,
12120                csr: 0xa0,
12121                funct7: 0x5,
12122            },
12123            Opcode::CLMULH => Inst {
12124                opcode: 0x33,
12125                funct3: 0x3,
12126                rs1: 0x0,
12127                rs2: 0x0,
12128                csr: 0xa0,
12129                funct7: 0x5,
12130            },
12131            Opcode::CLMULR => Inst {
12132                opcode: 0x33,
12133                funct3: 0x2,
12134                rs1: 0x0,
12135                rs2: 0x0,
12136                csr: 0xa0,
12137                funct7: 0x5,
12138            },
12139            Opcode::CLZ => Inst {
12140                opcode: 0x13,
12141                funct3: 0x1,
12142                rs1: 0x0,
12143                rs2: 0x0,
12144                csr: 0x600,
12145                funct7: 0x30,
12146            },
12147            Opcode::CLZW => Inst {
12148                opcode: 0x1b,
12149                funct3: 0x1,
12150                rs1: 0x0,
12151                rs2: 0x0,
12152                csr: 0x600,
12153                funct7: 0x30,
12154            },
12155            Opcode::CMJALT => Inst {
12156                opcode: 0x2,
12157                funct3: 0x2,
12158                rs1: 0x1,
12159                rs2: 0x0,
12160                csr: 0x0,
12161                funct7: 0x0,
12162            },
12163            Opcode::CMMVA01S => Inst {
12164                opcode: 0x62,
12165                funct3: 0x2,
12166                rs1: 0x1,
12167                rs2: 0x0,
12168                csr: 0x0,
12169                funct7: 0x0,
12170            },
12171            Opcode::CMMVSA01 => Inst {
12172                opcode: 0x22,
12173                funct3: 0x2,
12174                rs1: 0x1,
12175                rs2: 0x0,
12176                csr: 0x0,
12177                funct7: 0x0,
12178            },
12179            Opcode::CMPOP => Inst {
12180                opcode: 0x2,
12181                funct3: 0x3,
12182                rs1: 0x1,
12183                rs2: 0x0,
12184                csr: 0x0,
12185                funct7: 0x0,
12186            },
12187            Opcode::CMPOPRET => Inst {
12188                opcode: 0x2,
12189                funct3: 0x3,
12190                rs1: 0x1,
12191                rs2: 0x0,
12192                csr: 0x0,
12193                funct7: 0x0,
12194            },
12195            Opcode::CMPOPRETZ => Inst {
12196                opcode: 0x2,
12197                funct3: 0x3,
12198                rs1: 0x1,
12199                rs2: 0x0,
12200                csr: 0x0,
12201                funct7: 0x0,
12202            },
12203            Opcode::CMPUSH => Inst {
12204                opcode: 0x2,
12205                funct3: 0x3,
12206                rs1: 0x1,
12207                rs2: 0x0,
12208                csr: 0x0,
12209                funct7: 0x0,
12210            },
12211            Opcode::CPOP => Inst {
12212                opcode: 0x13,
12213                funct3: 0x1,
12214                rs1: 0x0,
12215                rs2: 0x2,
12216                csr: 0x602,
12217                funct7: 0x30,
12218            },
12219            Opcode::CPOPW => Inst {
12220                opcode: 0x1b,
12221                funct3: 0x1,
12222                rs1: 0x0,
12223                rs2: 0x2,
12224                csr: 0x602,
12225                funct7: 0x30,
12226            },
12227            Opcode::CSRC => Inst {
12228                opcode: 0x73,
12229                funct3: 0x3,
12230                rs1: 0x0,
12231                rs2: 0x0,
12232                csr: 0x0,
12233                funct7: 0x0,
12234            },
12235            Opcode::CSRCI => Inst {
12236                opcode: 0x73,
12237                funct3: 0x7,
12238                rs1: 0x0,
12239                rs2: 0x0,
12240                csr: 0x0,
12241                funct7: 0x0,
12242            },
12243            Opcode::CSRR => Inst {
12244                opcode: 0x73,
12245                funct3: 0x2,
12246                rs1: 0x0,
12247                rs2: 0x0,
12248                csr: 0x0,
12249                funct7: 0x0,
12250            },
12251            Opcode::CSRRC => Inst {
12252                opcode: 0x73,
12253                funct3: 0x3,
12254                rs1: 0x0,
12255                rs2: 0x0,
12256                csr: 0x0,
12257                funct7: 0x0,
12258            },
12259            Opcode::CSRRCI => Inst {
12260                opcode: 0x73,
12261                funct3: 0x7,
12262                rs1: 0x0,
12263                rs2: 0x0,
12264                csr: 0x0,
12265                funct7: 0x0,
12266            },
12267            Opcode::CSRRS => Inst {
12268                opcode: 0x73,
12269                funct3: 0x2,
12270                rs1: 0x0,
12271                rs2: 0x0,
12272                csr: 0x0,
12273                funct7: 0x0,
12274            },
12275            Opcode::CSRRSI => Inst {
12276                opcode: 0x73,
12277                funct3: 0x6,
12278                rs1: 0x0,
12279                rs2: 0x0,
12280                csr: 0x0,
12281                funct7: 0x0,
12282            },
12283            Opcode::CSRRW => Inst {
12284                opcode: 0x73,
12285                funct3: 0x1,
12286                rs1: 0x0,
12287                rs2: 0x0,
12288                csr: 0x0,
12289                funct7: 0x0,
12290            },
12291            Opcode::CSRRWI => Inst {
12292                opcode: 0x73,
12293                funct3: 0x5,
12294                rs1: 0x0,
12295                rs2: 0x0,
12296                csr: 0x0,
12297                funct7: 0x0,
12298            },
12299            Opcode::CSRS => Inst {
12300                opcode: 0x73,
12301                funct3: 0x2,
12302                rs1: 0x0,
12303                rs2: 0x0,
12304                csr: 0x0,
12305                funct7: 0x0,
12306            },
12307            Opcode::CSRSI => Inst {
12308                opcode: 0x73,
12309                funct3: 0x6,
12310                rs1: 0x0,
12311                rs2: 0x0,
12312                csr: 0x0,
12313                funct7: 0x0,
12314            },
12315            Opcode::CSRW => Inst {
12316                opcode: 0x73,
12317                funct3: 0x1,
12318                rs1: 0x0,
12319                rs2: 0x0,
12320                csr: 0x0,
12321                funct7: 0x0,
12322            },
12323            Opcode::CSRWI => Inst {
12324                opcode: 0x73,
12325                funct3: 0x5,
12326                rs1: 0x0,
12327                rs2: 0x0,
12328                csr: 0x0,
12329                funct7: 0x0,
12330            },
12331            Opcode::CTZ => Inst {
12332                opcode: 0x13,
12333                funct3: 0x1,
12334                rs1: 0x0,
12335                rs2: 0x1,
12336                csr: 0x601,
12337                funct7: 0x30,
12338            },
12339            Opcode::CTZW => Inst {
12340                opcode: 0x1b,
12341                funct3: 0x1,
12342                rs1: 0x0,
12343                rs2: 0x1,
12344                csr: 0x601,
12345                funct7: 0x30,
12346            },
12347            Opcode::CZEROEQZ => Inst {
12348                opcode: 0x33,
12349                funct3: 0x5,
12350                rs1: 0x0,
12351                rs2: 0x0,
12352                csr: 0xe0,
12353                funct7: 0x7,
12354            },
12355            Opcode::CZERONEZ => Inst {
12356                opcode: 0x33,
12357                funct3: 0x7,
12358                rs1: 0x0,
12359                rs2: 0x0,
12360                csr: 0xe0,
12361                funct7: 0x7,
12362            },
12363            Opcode::DIV => Inst {
12364                opcode: 0x33,
12365                funct3: 0x4,
12366                rs1: 0x0,
12367                rs2: 0x0,
12368                csr: 0x20,
12369                funct7: 0x1,
12370            },
12371            Opcode::DIVU => Inst {
12372                opcode: 0x33,
12373                funct3: 0x5,
12374                rs1: 0x0,
12375                rs2: 0x0,
12376                csr: 0x20,
12377                funct7: 0x1,
12378            },
12379            Opcode::DIVUW => Inst {
12380                opcode: 0x3b,
12381                funct3: 0x5,
12382                rs1: 0x0,
12383                rs2: 0x0,
12384                csr: 0x20,
12385                funct7: 0x1,
12386            },
12387            Opcode::DIVW => Inst {
12388                opcode: 0x3b,
12389                funct3: 0x4,
12390                rs1: 0x0,
12391                rs2: 0x0,
12392                csr: 0x20,
12393                funct7: 0x1,
12394            },
12395            Opcode::DRET => Inst {
12396                opcode: 0x73,
12397                funct3: 0x0,
12398                rs1: 0x0,
12399                rs2: 0x12,
12400                csr: 0x7b2,
12401                funct7: 0x3d,
12402            },
12403            Opcode::EBREAK => Inst {
12404                opcode: 0x73,
12405                funct3: 0x0,
12406                rs1: 0x0,
12407                rs2: 0x1,
12408                csr: 0x1,
12409                funct7: 0x0,
12410            },
12411            Opcode::ECALL => Inst {
12412                opcode: 0x73,
12413                funct3: 0x0,
12414                rs1: 0x0,
12415                rs2: 0x0,
12416                csr: 0x0,
12417                funct7: 0x0,
12418            },
12419            Opcode::FABSD => Inst {
12420                opcode: 0x53,
12421                funct3: 0x2,
12422                rs1: 0x0,
12423                rs2: 0x0,
12424                csr: 0x220,
12425                funct7: 0x11,
12426            },
12427            Opcode::FABSH => Inst {
12428                opcode: 0x53,
12429                funct3: 0x2,
12430                rs1: 0x0,
12431                rs2: 0x0,
12432                csr: 0x240,
12433                funct7: 0x12,
12434            },
12435            Opcode::FABSQ => Inst {
12436                opcode: 0x53,
12437                funct3: 0x2,
12438                rs1: 0x0,
12439                rs2: 0x0,
12440                csr: 0x260,
12441                funct7: 0x13,
12442            },
12443            Opcode::FABSS => Inst {
12444                opcode: 0x53,
12445                funct3: 0x2,
12446                rs1: 0x0,
12447                rs2: 0x0,
12448                csr: 0x200,
12449                funct7: 0x10,
12450            },
12451            Opcode::FADDD => Inst {
12452                opcode: 0x53,
12453                funct3: 0x0,
12454                rs1: 0x0,
12455                rs2: 0x0,
12456                csr: 0x20,
12457                funct7: 0x1,
12458            },
12459            Opcode::FADDH => Inst {
12460                opcode: 0x53,
12461                funct3: 0x0,
12462                rs1: 0x0,
12463                rs2: 0x0,
12464                csr: 0x40,
12465                funct7: 0x2,
12466            },
12467            Opcode::FADDQ => Inst {
12468                opcode: 0x53,
12469                funct3: 0x0,
12470                rs1: 0x0,
12471                rs2: 0x0,
12472                csr: 0x60,
12473                funct7: 0x3,
12474            },
12475            Opcode::FADDS => Inst {
12476                opcode: 0x53,
12477                funct3: 0x0,
12478                rs1: 0x0,
12479                rs2: 0x0,
12480                csr: 0x0,
12481                funct7: 0x0,
12482            },
12483            Opcode::FCLASSD => Inst {
12484                opcode: 0x53,
12485                funct3: 0x1,
12486                rs1: 0x0,
12487                rs2: 0x0,
12488                csr: 0xe20,
12489                funct7: 0x71,
12490            },
12491            Opcode::FCLASSH => Inst {
12492                opcode: 0x53,
12493                funct3: 0x1,
12494                rs1: 0x0,
12495                rs2: 0x0,
12496                csr: 0xe40,
12497                funct7: 0x72,
12498            },
12499            Opcode::FCLASSQ => Inst {
12500                opcode: 0x53,
12501                funct3: 0x1,
12502                rs1: 0x0,
12503                rs2: 0x0,
12504                csr: 0xe60,
12505                funct7: 0x73,
12506            },
12507            Opcode::FCLASSS => Inst {
12508                opcode: 0x53,
12509                funct3: 0x1,
12510                rs1: 0x0,
12511                rs2: 0x0,
12512                csr: 0xe00,
12513                funct7: 0x70,
12514            },
12515            Opcode::FCVTDH => Inst {
12516                opcode: 0x53,
12517                funct3: 0x0,
12518                rs1: 0x0,
12519                rs2: 0x2,
12520                csr: 0x422,
12521                funct7: 0x21,
12522            },
12523            Opcode::FCVTDL => Inst {
12524                opcode: 0x53,
12525                funct3: 0x0,
12526                rs1: 0x0,
12527                rs2: 0x2,
12528                csr: 0xd22,
12529                funct7: 0x69,
12530            },
12531            Opcode::FCVTDLU => Inst {
12532                opcode: 0x53,
12533                funct3: 0x0,
12534                rs1: 0x0,
12535                rs2: 0x3,
12536                csr: 0xd23,
12537                funct7: 0x69,
12538            },
12539            Opcode::FCVTDQ => Inst {
12540                opcode: 0x53,
12541                funct3: 0x0,
12542                rs1: 0x0,
12543                rs2: 0x3,
12544                csr: 0x423,
12545                funct7: 0x21,
12546            },
12547            Opcode::FCVTDS => Inst {
12548                opcode: 0x53,
12549                funct3: 0x0,
12550                rs1: 0x0,
12551                rs2: 0x0,
12552                csr: 0x420,
12553                funct7: 0x21,
12554            },
12555            Opcode::FCVTDW => Inst {
12556                opcode: 0x53,
12557                funct3: 0x0,
12558                rs1: 0x0,
12559                rs2: 0x0,
12560                csr: 0xd20,
12561                funct7: 0x69,
12562            },
12563            Opcode::FCVTDWU => Inst {
12564                opcode: 0x53,
12565                funct3: 0x0,
12566                rs1: 0x0,
12567                rs2: 0x1,
12568                csr: 0xd21,
12569                funct7: 0x69,
12570            },
12571            Opcode::FCVTHD => Inst {
12572                opcode: 0x53,
12573                funct3: 0x0,
12574                rs1: 0x0,
12575                rs2: 0x1,
12576                csr: 0x441,
12577                funct7: 0x22,
12578            },
12579            Opcode::FCVTHL => Inst {
12580                opcode: 0x53,
12581                funct3: 0x0,
12582                rs1: 0x0,
12583                rs2: 0x2,
12584                csr: 0xd42,
12585                funct7: 0x6a,
12586            },
12587            Opcode::FCVTHLU => Inst {
12588                opcode: 0x53,
12589                funct3: 0x0,
12590                rs1: 0x0,
12591                rs2: 0x3,
12592                csr: 0xd43,
12593                funct7: 0x6a,
12594            },
12595            Opcode::FCVTHQ => Inst {
12596                opcode: 0x53,
12597                funct3: 0x0,
12598                rs1: 0x0,
12599                rs2: 0x3,
12600                csr: 0x443,
12601                funct7: 0x22,
12602            },
12603            Opcode::FCVTHS => Inst {
12604                opcode: 0x53,
12605                funct3: 0x0,
12606                rs1: 0x0,
12607                rs2: 0x0,
12608                csr: 0x440,
12609                funct7: 0x22,
12610            },
12611            Opcode::FCVTHW => Inst {
12612                opcode: 0x53,
12613                funct3: 0x0,
12614                rs1: 0x0,
12615                rs2: 0x0,
12616                csr: 0xd40,
12617                funct7: 0x6a,
12618            },
12619            Opcode::FCVTHWU => Inst {
12620                opcode: 0x53,
12621                funct3: 0x0,
12622                rs1: 0x0,
12623                rs2: 0x1,
12624                csr: 0xd41,
12625                funct7: 0x6a,
12626            },
12627            Opcode::FCVTLD => Inst {
12628                opcode: 0x53,
12629                funct3: 0x0,
12630                rs1: 0x0,
12631                rs2: 0x2,
12632                csr: 0xc22,
12633                funct7: 0x61,
12634            },
12635            Opcode::FCVTLH => Inst {
12636                opcode: 0x53,
12637                funct3: 0x0,
12638                rs1: 0x0,
12639                rs2: 0x2,
12640                csr: 0xc42,
12641                funct7: 0x62,
12642            },
12643            Opcode::FCVTLQ => Inst {
12644                opcode: 0x53,
12645                funct3: 0x0,
12646                rs1: 0x0,
12647                rs2: 0x2,
12648                csr: 0xc62,
12649                funct7: 0x63,
12650            },
12651            Opcode::FCVTLS => Inst {
12652                opcode: 0x53,
12653                funct3: 0x0,
12654                rs1: 0x0,
12655                rs2: 0x2,
12656                csr: 0xc02,
12657                funct7: 0x60,
12658            },
12659            Opcode::FCVTLUD => Inst {
12660                opcode: 0x53,
12661                funct3: 0x0,
12662                rs1: 0x0,
12663                rs2: 0x3,
12664                csr: 0xc23,
12665                funct7: 0x61,
12666            },
12667            Opcode::FCVTLUH => Inst {
12668                opcode: 0x53,
12669                funct3: 0x0,
12670                rs1: 0x0,
12671                rs2: 0x3,
12672                csr: 0xc43,
12673                funct7: 0x62,
12674            },
12675            Opcode::FCVTLUQ => Inst {
12676                opcode: 0x53,
12677                funct3: 0x0,
12678                rs1: 0x0,
12679                rs2: 0x3,
12680                csr: 0xc63,
12681                funct7: 0x63,
12682            },
12683            Opcode::FCVTLUS => Inst {
12684                opcode: 0x53,
12685                funct3: 0x0,
12686                rs1: 0x0,
12687                rs2: 0x3,
12688                csr: 0xc03,
12689                funct7: 0x60,
12690            },
12691            Opcode::FCVTQD => Inst {
12692                opcode: 0x53,
12693                funct3: 0x0,
12694                rs1: 0x0,
12695                rs2: 0x1,
12696                csr: 0x461,
12697                funct7: 0x23,
12698            },
12699            Opcode::FCVTQH => Inst {
12700                opcode: 0x53,
12701                funct3: 0x0,
12702                rs1: 0x0,
12703                rs2: 0x2,
12704                csr: 0x462,
12705                funct7: 0x23,
12706            },
12707            Opcode::FCVTQL => Inst {
12708                opcode: 0x53,
12709                funct3: 0x0,
12710                rs1: 0x0,
12711                rs2: 0x2,
12712                csr: 0xd62,
12713                funct7: 0x6b,
12714            },
12715            Opcode::FCVTQLU => Inst {
12716                opcode: 0x53,
12717                funct3: 0x0,
12718                rs1: 0x0,
12719                rs2: 0x3,
12720                csr: 0xd63,
12721                funct7: 0x6b,
12722            },
12723            Opcode::FCVTQS => Inst {
12724                opcode: 0x53,
12725                funct3: 0x0,
12726                rs1: 0x0,
12727                rs2: 0x0,
12728                csr: 0x460,
12729                funct7: 0x23,
12730            },
12731            Opcode::FCVTQW => Inst {
12732                opcode: 0x53,
12733                funct3: 0x0,
12734                rs1: 0x0,
12735                rs2: 0x0,
12736                csr: 0xd60,
12737                funct7: 0x6b,
12738            },
12739            Opcode::FCVTQWU => Inst {
12740                opcode: 0x53,
12741                funct3: 0x0,
12742                rs1: 0x0,
12743                rs2: 0x1,
12744                csr: 0xd61,
12745                funct7: 0x6b,
12746            },
12747            Opcode::FCVTSD => Inst {
12748                opcode: 0x53,
12749                funct3: 0x0,
12750                rs1: 0x0,
12751                rs2: 0x1,
12752                csr: 0x401,
12753                funct7: 0x20,
12754            },
12755            Opcode::FCVTSH => Inst {
12756                opcode: 0x53,
12757                funct3: 0x0,
12758                rs1: 0x0,
12759                rs2: 0x2,
12760                csr: 0x402,
12761                funct7: 0x20,
12762            },
12763            Opcode::FCVTSL => Inst {
12764                opcode: 0x53,
12765                funct3: 0x0,
12766                rs1: 0x0,
12767                rs2: 0x2,
12768                csr: 0xd02,
12769                funct7: 0x68,
12770            },
12771            Opcode::FCVTSLU => Inst {
12772                opcode: 0x53,
12773                funct3: 0x0,
12774                rs1: 0x0,
12775                rs2: 0x3,
12776                csr: 0xd03,
12777                funct7: 0x68,
12778            },
12779            Opcode::FCVTSQ => Inst {
12780                opcode: 0x53,
12781                funct3: 0x0,
12782                rs1: 0x0,
12783                rs2: 0x3,
12784                csr: 0x403,
12785                funct7: 0x20,
12786            },
12787            Opcode::FCVTSW => Inst {
12788                opcode: 0x53,
12789                funct3: 0x0,
12790                rs1: 0x0,
12791                rs2: 0x0,
12792                csr: 0xd00,
12793                funct7: 0x68,
12794            },
12795            Opcode::FCVTSWU => Inst {
12796                opcode: 0x53,
12797                funct3: 0x0,
12798                rs1: 0x0,
12799                rs2: 0x1,
12800                csr: 0xd01,
12801                funct7: 0x68,
12802            },
12803            Opcode::FCVTWD => Inst {
12804                opcode: 0x53,
12805                funct3: 0x0,
12806                rs1: 0x0,
12807                rs2: 0x0,
12808                csr: 0xc20,
12809                funct7: 0x61,
12810            },
12811            Opcode::FCVTWH => Inst {
12812                opcode: 0x53,
12813                funct3: 0x0,
12814                rs1: 0x0,
12815                rs2: 0x0,
12816                csr: 0xc40,
12817                funct7: 0x62,
12818            },
12819            Opcode::FCVTWQ => Inst {
12820                opcode: 0x53,
12821                funct3: 0x0,
12822                rs1: 0x0,
12823                rs2: 0x0,
12824                csr: 0xc60,
12825                funct7: 0x63,
12826            },
12827            Opcode::FCVTWS => Inst {
12828                opcode: 0x53,
12829                funct3: 0x0,
12830                rs1: 0x0,
12831                rs2: 0x0,
12832                csr: 0xc00,
12833                funct7: 0x60,
12834            },
12835            Opcode::FCVTWUD => Inst {
12836                opcode: 0x53,
12837                funct3: 0x0,
12838                rs1: 0x0,
12839                rs2: 0x1,
12840                csr: 0xc21,
12841                funct7: 0x61,
12842            },
12843            Opcode::FCVTWUH => Inst {
12844                opcode: 0x53,
12845                funct3: 0x0,
12846                rs1: 0x0,
12847                rs2: 0x1,
12848                csr: 0xc41,
12849                funct7: 0x62,
12850            },
12851            Opcode::FCVTWUQ => Inst {
12852                opcode: 0x53,
12853                funct3: 0x0,
12854                rs1: 0x0,
12855                rs2: 0x1,
12856                csr: 0xc61,
12857                funct7: 0x63,
12858            },
12859            Opcode::FCVTWUS => Inst {
12860                opcode: 0x53,
12861                funct3: 0x0,
12862                rs1: 0x0,
12863                rs2: 0x1,
12864                csr: 0xc01,
12865                funct7: 0x60,
12866            },
12867            Opcode::FCVTMODWD => Inst {
12868                opcode: 0x53,
12869                funct3: 0x1,
12870                rs1: 0x0,
12871                rs2: 0x8,
12872                csr: 0xc28,
12873                funct7: 0x61,
12874            },
12875            Opcode::FDIVD => Inst {
12876                opcode: 0x53,
12877                funct3: 0x0,
12878                rs1: 0x0,
12879                rs2: 0x0,
12880                csr: 0x1a0,
12881                funct7: 0xd,
12882            },
12883            Opcode::FDIVH => Inst {
12884                opcode: 0x53,
12885                funct3: 0x0,
12886                rs1: 0x0,
12887                rs2: 0x0,
12888                csr: 0x1c0,
12889                funct7: 0xe,
12890            },
12891            Opcode::FDIVQ => Inst {
12892                opcode: 0x53,
12893                funct3: 0x0,
12894                rs1: 0x0,
12895                rs2: 0x0,
12896                csr: 0x1e0,
12897                funct7: 0xf,
12898            },
12899            Opcode::FDIVS => Inst {
12900                opcode: 0x53,
12901                funct3: 0x0,
12902                rs1: 0x0,
12903                rs2: 0x0,
12904                csr: 0x180,
12905                funct7: 0xc,
12906            },
12907            Opcode::FENCE => Inst {
12908                opcode: 0xf,
12909                funct3: 0x0,
12910                rs1: 0x0,
12911                rs2: 0x0,
12912                csr: 0x0,
12913                funct7: 0x0,
12914            },
12915            Opcode::FENCEI => Inst {
12916                opcode: 0xf,
12917                funct3: 0x1,
12918                rs1: 0x0,
12919                rs2: 0x0,
12920                csr: 0x0,
12921                funct7: 0x0,
12922            },
12923            Opcode::FENCETSO => Inst {
12924                opcode: 0xf,
12925                funct3: 0x0,
12926                rs1: 0x0,
12927                rs2: 0x13,
12928                csr: 0x833,
12929                funct7: 0x41,
12930            },
12931            Opcode::FEQD => Inst {
12932                opcode: 0x53,
12933                funct3: 0x2,
12934                rs1: 0x0,
12935                rs2: 0x0,
12936                csr: 0xa20,
12937                funct7: 0x51,
12938            },
12939            Opcode::FEQH => Inst {
12940                opcode: 0x53,
12941                funct3: 0x2,
12942                rs1: 0x0,
12943                rs2: 0x0,
12944                csr: 0xa40,
12945                funct7: 0x52,
12946            },
12947            Opcode::FEQQ => Inst {
12948                opcode: 0x53,
12949                funct3: 0x2,
12950                rs1: 0x0,
12951                rs2: 0x0,
12952                csr: 0xa60,
12953                funct7: 0x53,
12954            },
12955            Opcode::FEQS => Inst {
12956                opcode: 0x53,
12957                funct3: 0x2,
12958                rs1: 0x0,
12959                rs2: 0x0,
12960                csr: 0xa00,
12961                funct7: 0x50,
12962            },
12963            Opcode::FLD => Inst {
12964                opcode: 0x7,
12965                funct3: 0x3,
12966                rs1: 0x0,
12967                rs2: 0x0,
12968                csr: 0x0,
12969                funct7: 0x0,
12970            },
12971            Opcode::FLED => Inst {
12972                opcode: 0x53,
12973                funct3: 0x0,
12974                rs1: 0x0,
12975                rs2: 0x0,
12976                csr: 0xa20,
12977                funct7: 0x51,
12978            },
12979            Opcode::FLEH => Inst {
12980                opcode: 0x53,
12981                funct3: 0x0,
12982                rs1: 0x0,
12983                rs2: 0x0,
12984                csr: 0xa40,
12985                funct7: 0x52,
12986            },
12987            Opcode::FLEQ => Inst {
12988                opcode: 0x53,
12989                funct3: 0x0,
12990                rs1: 0x0,
12991                rs2: 0x0,
12992                csr: 0xa60,
12993                funct7: 0x53,
12994            },
12995            Opcode::FLES => Inst {
12996                opcode: 0x53,
12997                funct3: 0x0,
12998                rs1: 0x0,
12999                rs2: 0x0,
13000                csr: 0xa00,
13001                funct7: 0x50,
13002            },
13003            Opcode::FLEQD => Inst {
13004                opcode: 0x53,
13005                funct3: 0x4,
13006                rs1: 0x0,
13007                rs2: 0x0,
13008                csr: 0xa20,
13009                funct7: 0x51,
13010            },
13011            Opcode::FLEQH => Inst {
13012                opcode: 0x53,
13013                funct3: 0x4,
13014                rs1: 0x0,
13015                rs2: 0x0,
13016                csr: 0xa40,
13017                funct7: 0x52,
13018            },
13019            Opcode::FLEQQ => Inst {
13020                opcode: 0x53,
13021                funct3: 0x4,
13022                rs1: 0x0,
13023                rs2: 0x0,
13024                csr: 0xa60,
13025                funct7: 0x53,
13026            },
13027            Opcode::FLEQS => Inst {
13028                opcode: 0x53,
13029                funct3: 0x4,
13030                rs1: 0x0,
13031                rs2: 0x0,
13032                csr: 0xa00,
13033                funct7: 0x50,
13034            },
13035            Opcode::FLH => Inst {
13036                opcode: 0x7,
13037                funct3: 0x1,
13038                rs1: 0x0,
13039                rs2: 0x0,
13040                csr: 0x0,
13041                funct7: 0x0,
13042            },
13043            Opcode::FLID => Inst {
13044                opcode: 0x53,
13045                funct3: 0x0,
13046                rs1: 0x0,
13047                rs2: 0x1,
13048                csr: 0xf21,
13049                funct7: 0x79,
13050            },
13051            Opcode::FLIH => Inst {
13052                opcode: 0x53,
13053                funct3: 0x0,
13054                rs1: 0x0,
13055                rs2: 0x1,
13056                csr: 0xf41,
13057                funct7: 0x7a,
13058            },
13059            Opcode::FLIQ => Inst {
13060                opcode: 0x53,
13061                funct3: 0x0,
13062                rs1: 0x0,
13063                rs2: 0x1,
13064                csr: 0xf61,
13065                funct7: 0x7b,
13066            },
13067            Opcode::FLIS => Inst {
13068                opcode: 0x53,
13069                funct3: 0x0,
13070                rs1: 0x0,
13071                rs2: 0x1,
13072                csr: 0xf01,
13073                funct7: 0x78,
13074            },
13075            Opcode::FLQ => Inst {
13076                opcode: 0x7,
13077                funct3: 0x4,
13078                rs1: 0x0,
13079                rs2: 0x0,
13080                csr: 0x0,
13081                funct7: 0x0,
13082            },
13083            Opcode::FLTD => Inst {
13084                opcode: 0x53,
13085                funct3: 0x1,
13086                rs1: 0x0,
13087                rs2: 0x0,
13088                csr: 0xa20,
13089                funct7: 0x51,
13090            },
13091            Opcode::FLTH => Inst {
13092                opcode: 0x53,
13093                funct3: 0x1,
13094                rs1: 0x0,
13095                rs2: 0x0,
13096                csr: 0xa40,
13097                funct7: 0x52,
13098            },
13099            Opcode::FLTQ => Inst {
13100                opcode: 0x53,
13101                funct3: 0x1,
13102                rs1: 0x0,
13103                rs2: 0x0,
13104                csr: 0xa60,
13105                funct7: 0x53,
13106            },
13107            Opcode::FLTS => Inst {
13108                opcode: 0x53,
13109                funct3: 0x1,
13110                rs1: 0x0,
13111                rs2: 0x0,
13112                csr: 0xa00,
13113                funct7: 0x50,
13114            },
13115            Opcode::FLTQD => Inst {
13116                opcode: 0x53,
13117                funct3: 0x5,
13118                rs1: 0x0,
13119                rs2: 0x0,
13120                csr: 0xa20,
13121                funct7: 0x51,
13122            },
13123            Opcode::FLTQH => Inst {
13124                opcode: 0x53,
13125                funct3: 0x5,
13126                rs1: 0x0,
13127                rs2: 0x0,
13128                csr: 0xa40,
13129                funct7: 0x52,
13130            },
13131            Opcode::FLTQQ => Inst {
13132                opcode: 0x53,
13133                funct3: 0x5,
13134                rs1: 0x0,
13135                rs2: 0x0,
13136                csr: 0xa60,
13137                funct7: 0x53,
13138            },
13139            Opcode::FLTQS => Inst {
13140                opcode: 0x53,
13141                funct3: 0x5,
13142                rs1: 0x0,
13143                rs2: 0x0,
13144                csr: 0xa00,
13145                funct7: 0x50,
13146            },
13147            Opcode::FLW => Inst {
13148                opcode: 0x7,
13149                funct3: 0x2,
13150                rs1: 0x0,
13151                rs2: 0x0,
13152                csr: 0x0,
13153                funct7: 0x0,
13154            },
13155            Opcode::FMADDD => Inst {
13156                opcode: 0x43,
13157                funct3: 0x0,
13158                rs1: 0x0,
13159                rs2: 0x0,
13160                csr: 0x20,
13161                funct7: 0x1,
13162            },
13163            Opcode::FMADDH => Inst {
13164                opcode: 0x43,
13165                funct3: 0x0,
13166                rs1: 0x0,
13167                rs2: 0x0,
13168                csr: 0x40,
13169                funct7: 0x2,
13170            },
13171            Opcode::FMADDQ => Inst {
13172                opcode: 0x43,
13173                funct3: 0x0,
13174                rs1: 0x0,
13175                rs2: 0x0,
13176                csr: 0x60,
13177                funct7: 0x3,
13178            },
13179            Opcode::FMADDS => Inst {
13180                opcode: 0x43,
13181                funct3: 0x0,
13182                rs1: 0x0,
13183                rs2: 0x0,
13184                csr: 0x0,
13185                funct7: 0x0,
13186            },
13187            Opcode::FMAXD => Inst {
13188                opcode: 0x53,
13189                funct3: 0x1,
13190                rs1: 0x0,
13191                rs2: 0x0,
13192                csr: 0x2a0,
13193                funct7: 0x15,
13194            },
13195            Opcode::FMAXH => Inst {
13196                opcode: 0x53,
13197                funct3: 0x1,
13198                rs1: 0x0,
13199                rs2: 0x0,
13200                csr: 0x2c0,
13201                funct7: 0x16,
13202            },
13203            Opcode::FMAXQ => Inst {
13204                opcode: 0x53,
13205                funct3: 0x1,
13206                rs1: 0x0,
13207                rs2: 0x0,
13208                csr: 0x2e0,
13209                funct7: 0x17,
13210            },
13211            Opcode::FMAXS => Inst {
13212                opcode: 0x53,
13213                funct3: 0x1,
13214                rs1: 0x0,
13215                rs2: 0x0,
13216                csr: 0x280,
13217                funct7: 0x14,
13218            },
13219            Opcode::FMAXMD => Inst {
13220                opcode: 0x53,
13221                funct3: 0x3,
13222                rs1: 0x0,
13223                rs2: 0x0,
13224                csr: 0x2a0,
13225                funct7: 0x15,
13226            },
13227            Opcode::FMAXMH => Inst {
13228                opcode: 0x53,
13229                funct3: 0x3,
13230                rs1: 0x0,
13231                rs2: 0x0,
13232                csr: 0x2c0,
13233                funct7: 0x16,
13234            },
13235            Opcode::FMAXMQ => Inst {
13236                opcode: 0x53,
13237                funct3: 0x3,
13238                rs1: 0x0,
13239                rs2: 0x0,
13240                csr: 0x2e0,
13241                funct7: 0x17,
13242            },
13243            Opcode::FMAXMS => Inst {
13244                opcode: 0x53,
13245                funct3: 0x3,
13246                rs1: 0x0,
13247                rs2: 0x0,
13248                csr: 0x280,
13249                funct7: 0x14,
13250            },
13251            Opcode::FMIND => Inst {
13252                opcode: 0x53,
13253                funct3: 0x0,
13254                rs1: 0x0,
13255                rs2: 0x0,
13256                csr: 0x2a0,
13257                funct7: 0x15,
13258            },
13259            Opcode::FMINH => Inst {
13260                opcode: 0x53,
13261                funct3: 0x0,
13262                rs1: 0x0,
13263                rs2: 0x0,
13264                csr: 0x2c0,
13265                funct7: 0x16,
13266            },
13267            Opcode::FMINQ => Inst {
13268                opcode: 0x53,
13269                funct3: 0x0,
13270                rs1: 0x0,
13271                rs2: 0x0,
13272                csr: 0x2e0,
13273                funct7: 0x17,
13274            },
13275            Opcode::FMINS => Inst {
13276                opcode: 0x53,
13277                funct3: 0x0,
13278                rs1: 0x0,
13279                rs2: 0x0,
13280                csr: 0x280,
13281                funct7: 0x14,
13282            },
13283            Opcode::FMINMD => Inst {
13284                opcode: 0x53,
13285                funct3: 0x2,
13286                rs1: 0x0,
13287                rs2: 0x0,
13288                csr: 0x2a0,
13289                funct7: 0x15,
13290            },
13291            Opcode::FMINMH => Inst {
13292                opcode: 0x53,
13293                funct3: 0x2,
13294                rs1: 0x0,
13295                rs2: 0x0,
13296                csr: 0x2c0,
13297                funct7: 0x16,
13298            },
13299            Opcode::FMINMQ => Inst {
13300                opcode: 0x53,
13301                funct3: 0x2,
13302                rs1: 0x0,
13303                rs2: 0x0,
13304                csr: 0x2e0,
13305                funct7: 0x17,
13306            },
13307            Opcode::FMINMS => Inst {
13308                opcode: 0x53,
13309                funct3: 0x2,
13310                rs1: 0x0,
13311                rs2: 0x0,
13312                csr: 0x280,
13313                funct7: 0x14,
13314            },
13315            Opcode::FMSUBD => Inst {
13316                opcode: 0x47,
13317                funct3: 0x0,
13318                rs1: 0x0,
13319                rs2: 0x0,
13320                csr: 0x20,
13321                funct7: 0x1,
13322            },
13323            Opcode::FMSUBH => Inst {
13324                opcode: 0x47,
13325                funct3: 0x0,
13326                rs1: 0x0,
13327                rs2: 0x0,
13328                csr: 0x40,
13329                funct7: 0x2,
13330            },
13331            Opcode::FMSUBQ => Inst {
13332                opcode: 0x47,
13333                funct3: 0x0,
13334                rs1: 0x0,
13335                rs2: 0x0,
13336                csr: 0x60,
13337                funct7: 0x3,
13338            },
13339            Opcode::FMSUBS => Inst {
13340                opcode: 0x47,
13341                funct3: 0x0,
13342                rs1: 0x0,
13343                rs2: 0x0,
13344                csr: 0x0,
13345                funct7: 0x0,
13346            },
13347            Opcode::FMULD => Inst {
13348                opcode: 0x53,
13349                funct3: 0x0,
13350                rs1: 0x0,
13351                rs2: 0x0,
13352                csr: 0x120,
13353                funct7: 0x9,
13354            },
13355            Opcode::FMULH => Inst {
13356                opcode: 0x53,
13357                funct3: 0x0,
13358                rs1: 0x0,
13359                rs2: 0x0,
13360                csr: 0x140,
13361                funct7: 0xa,
13362            },
13363            Opcode::FMULQ => Inst {
13364                opcode: 0x53,
13365                funct3: 0x0,
13366                rs1: 0x0,
13367                rs2: 0x0,
13368                csr: 0x160,
13369                funct7: 0xb,
13370            },
13371            Opcode::FMULS => Inst {
13372                opcode: 0x53,
13373                funct3: 0x0,
13374                rs1: 0x0,
13375                rs2: 0x0,
13376                csr: 0x100,
13377                funct7: 0x8,
13378            },
13379            Opcode::FMVD => Inst {
13380                opcode: 0x53,
13381                funct3: 0x0,
13382                rs1: 0x0,
13383                rs2: 0x0,
13384                csr: 0x220,
13385                funct7: 0x11,
13386            },
13387            Opcode::FMVDX => Inst {
13388                opcode: 0x53,
13389                funct3: 0x0,
13390                rs1: 0x0,
13391                rs2: 0x0,
13392                csr: 0xf20,
13393                funct7: 0x79,
13394            },
13395            Opcode::FMVH => Inst {
13396                opcode: 0x53,
13397                funct3: 0x0,
13398                rs1: 0x0,
13399                rs2: 0x0,
13400                csr: 0x240,
13401                funct7: 0x12,
13402            },
13403            Opcode::FMVHX => Inst {
13404                opcode: 0x53,
13405                funct3: 0x0,
13406                rs1: 0x0,
13407                rs2: 0x0,
13408                csr: 0xf40,
13409                funct7: 0x7a,
13410            },
13411            Opcode::FMVQ => Inst {
13412                opcode: 0x53,
13413                funct3: 0x0,
13414                rs1: 0x0,
13415                rs2: 0x0,
13416                csr: 0x260,
13417                funct7: 0x13,
13418            },
13419            Opcode::FMVS => Inst {
13420                opcode: 0x53,
13421                funct3: 0x0,
13422                rs1: 0x0,
13423                rs2: 0x0,
13424                csr: 0x200,
13425                funct7: 0x10,
13426            },
13427            Opcode::FMVSX => Inst {
13428                opcode: 0x53,
13429                funct3: 0x0,
13430                rs1: 0x0,
13431                rs2: 0x0,
13432                csr: 0xf00,
13433                funct7: 0x78,
13434            },
13435            Opcode::FMVWX => Inst {
13436                opcode: 0x53,
13437                funct3: 0x0,
13438                rs1: 0x0,
13439                rs2: 0x0,
13440                csr: 0xf00,
13441                funct7: 0x78,
13442            },
13443            Opcode::FMVXD => Inst {
13444                opcode: 0x53,
13445                funct3: 0x0,
13446                rs1: 0x0,
13447                rs2: 0x0,
13448                csr: 0xe20,
13449                funct7: 0x71,
13450            },
13451            Opcode::FMVXH => Inst {
13452                opcode: 0x53,
13453                funct3: 0x0,
13454                rs1: 0x0,
13455                rs2: 0x0,
13456                csr: 0xe40,
13457                funct7: 0x72,
13458            },
13459            Opcode::FMVXS => Inst {
13460                opcode: 0x53,
13461                funct3: 0x0,
13462                rs1: 0x0,
13463                rs2: 0x0,
13464                csr: 0xe00,
13465                funct7: 0x70,
13466            },
13467            Opcode::FMVXW => Inst {
13468                opcode: 0x53,
13469                funct3: 0x0,
13470                rs1: 0x0,
13471                rs2: 0x0,
13472                csr: 0xe00,
13473                funct7: 0x70,
13474            },
13475            Opcode::FMVHXD => Inst {
13476                opcode: 0x53,
13477                funct3: 0x0,
13478                rs1: 0x0,
13479                rs2: 0x1,
13480                csr: 0xe21,
13481                funct7: 0x71,
13482            },
13483            Opcode::FMVHXQ => Inst {
13484                opcode: 0x53,
13485                funct3: 0x0,
13486                rs1: 0x0,
13487                rs2: 0x1,
13488                csr: 0xe61,
13489                funct7: 0x73,
13490            },
13491            Opcode::FMVPDX => Inst {
13492                opcode: 0x53,
13493                funct3: 0x0,
13494                rs1: 0x0,
13495                rs2: 0x0,
13496                csr: 0xb20,
13497                funct7: 0x59,
13498            },
13499            Opcode::FMVPQX => Inst {
13500                opcode: 0x53,
13501                funct3: 0x0,
13502                rs1: 0x0,
13503                rs2: 0x0,
13504                csr: 0xb60,
13505                funct7: 0x5b,
13506            },
13507            Opcode::FNEGD => Inst {
13508                opcode: 0x53,
13509                funct3: 0x1,
13510                rs1: 0x0,
13511                rs2: 0x0,
13512                csr: 0x220,
13513                funct7: 0x11,
13514            },
13515            Opcode::FNEGH => Inst {
13516                opcode: 0x53,
13517                funct3: 0x1,
13518                rs1: 0x0,
13519                rs2: 0x0,
13520                csr: 0x240,
13521                funct7: 0x12,
13522            },
13523            Opcode::FNEGQ => Inst {
13524                opcode: 0x53,
13525                funct3: 0x1,
13526                rs1: 0x0,
13527                rs2: 0x0,
13528                csr: 0x260,
13529                funct7: 0x13,
13530            },
13531            Opcode::FNEGS => Inst {
13532                opcode: 0x53,
13533                funct3: 0x1,
13534                rs1: 0x0,
13535                rs2: 0x0,
13536                csr: 0x200,
13537                funct7: 0x10,
13538            },
13539            Opcode::FNMADDD => Inst {
13540                opcode: 0x4f,
13541                funct3: 0x0,
13542                rs1: 0x0,
13543                rs2: 0x0,
13544                csr: 0x20,
13545                funct7: 0x1,
13546            },
13547            Opcode::FNMADDH => Inst {
13548                opcode: 0x4f,
13549                funct3: 0x0,
13550                rs1: 0x0,
13551                rs2: 0x0,
13552                csr: 0x40,
13553                funct7: 0x2,
13554            },
13555            Opcode::FNMADDQ => Inst {
13556                opcode: 0x4f,
13557                funct3: 0x0,
13558                rs1: 0x0,
13559                rs2: 0x0,
13560                csr: 0x60,
13561                funct7: 0x3,
13562            },
13563            Opcode::FNMADDS => Inst {
13564                opcode: 0x4f,
13565                funct3: 0x0,
13566                rs1: 0x0,
13567                rs2: 0x0,
13568                csr: 0x0,
13569                funct7: 0x0,
13570            },
13571            Opcode::FNMSUBD => Inst {
13572                opcode: 0x4b,
13573                funct3: 0x0,
13574                rs1: 0x0,
13575                rs2: 0x0,
13576                csr: 0x20,
13577                funct7: 0x1,
13578            },
13579            Opcode::FNMSUBH => Inst {
13580                opcode: 0x4b,
13581                funct3: 0x0,
13582                rs1: 0x0,
13583                rs2: 0x0,
13584                csr: 0x40,
13585                funct7: 0x2,
13586            },
13587            Opcode::FNMSUBQ => Inst {
13588                opcode: 0x4b,
13589                funct3: 0x0,
13590                rs1: 0x0,
13591                rs2: 0x0,
13592                csr: 0x60,
13593                funct7: 0x3,
13594            },
13595            Opcode::FNMSUBS => Inst {
13596                opcode: 0x4b,
13597                funct3: 0x0,
13598                rs1: 0x0,
13599                rs2: 0x0,
13600                csr: 0x0,
13601                funct7: 0x0,
13602            },
13603            Opcode::FRCSR => Inst {
13604                opcode: 0x73,
13605                funct3: 0x2,
13606                rs1: 0x0,
13607                rs2: 0x3,
13608                csr: 0x3,
13609                funct7: 0x0,
13610            },
13611            Opcode::FRFLAGS => Inst {
13612                opcode: 0x73,
13613                funct3: 0x2,
13614                rs1: 0x0,
13615                rs2: 0x1,
13616                csr: 0x1,
13617                funct7: 0x0,
13618            },
13619            Opcode::FROUNDD => Inst {
13620                opcode: 0x53,
13621                funct3: 0x0,
13622                rs1: 0x0,
13623                rs2: 0x4,
13624                csr: 0x424,
13625                funct7: 0x21,
13626            },
13627            Opcode::FROUNDH => Inst {
13628                opcode: 0x53,
13629                funct3: 0x0,
13630                rs1: 0x0,
13631                rs2: 0x4,
13632                csr: 0x444,
13633                funct7: 0x22,
13634            },
13635            Opcode::FROUNDQ => Inst {
13636                opcode: 0x53,
13637                funct3: 0x0,
13638                rs1: 0x0,
13639                rs2: 0x4,
13640                csr: 0x464,
13641                funct7: 0x23,
13642            },
13643            Opcode::FROUNDS => Inst {
13644                opcode: 0x53,
13645                funct3: 0x0,
13646                rs1: 0x0,
13647                rs2: 0x4,
13648                csr: 0x404,
13649                funct7: 0x20,
13650            },
13651            Opcode::FROUNDNXD => Inst {
13652                opcode: 0x53,
13653                funct3: 0x0,
13654                rs1: 0x0,
13655                rs2: 0x5,
13656                csr: 0x425,
13657                funct7: 0x21,
13658            },
13659            Opcode::FROUNDNXH => Inst {
13660                opcode: 0x53,
13661                funct3: 0x0,
13662                rs1: 0x0,
13663                rs2: 0x5,
13664                csr: 0x445,
13665                funct7: 0x22,
13666            },
13667            Opcode::FROUNDNXQ => Inst {
13668                opcode: 0x53,
13669                funct3: 0x0,
13670                rs1: 0x0,
13671                rs2: 0x5,
13672                csr: 0x465,
13673                funct7: 0x23,
13674            },
13675            Opcode::FROUNDNXS => Inst {
13676                opcode: 0x53,
13677                funct3: 0x0,
13678                rs1: 0x0,
13679                rs2: 0x5,
13680                csr: 0x405,
13681                funct7: 0x20,
13682            },
13683            Opcode::FRRM => Inst {
13684                opcode: 0x73,
13685                funct3: 0x2,
13686                rs1: 0x0,
13687                rs2: 0x2,
13688                csr: 0x2,
13689                funct7: 0x0,
13690            },
13691            Opcode::FSCSR => Inst {
13692                opcode: 0x73,
13693                funct3: 0x1,
13694                rs1: 0x0,
13695                rs2: 0x3,
13696                csr: 0x3,
13697                funct7: 0x0,
13698            },
13699            Opcode::FSD => Inst {
13700                opcode: 0x27,
13701                funct3: 0x3,
13702                rs1: 0x0,
13703                rs2: 0x0,
13704                csr: 0x0,
13705                funct7: 0x0,
13706            },
13707            Opcode::FSFLAGS => Inst {
13708                opcode: 0x73,
13709                funct3: 0x1,
13710                rs1: 0x0,
13711                rs2: 0x1,
13712                csr: 0x1,
13713                funct7: 0x0,
13714            },
13715            Opcode::FSFLAGSI => Inst {
13716                opcode: 0x73,
13717                funct3: 0x5,
13718                rs1: 0x0,
13719                rs2: 0x1,
13720                csr: 0x1,
13721                funct7: 0x0,
13722            },
13723            Opcode::FSGNJD => Inst {
13724                opcode: 0x53,
13725                funct3: 0x0,
13726                rs1: 0x0,
13727                rs2: 0x0,
13728                csr: 0x220,
13729                funct7: 0x11,
13730            },
13731            Opcode::FSGNJH => Inst {
13732                opcode: 0x53,
13733                funct3: 0x0,
13734                rs1: 0x0,
13735                rs2: 0x0,
13736                csr: 0x240,
13737                funct7: 0x12,
13738            },
13739            Opcode::FSGNJQ => Inst {
13740                opcode: 0x53,
13741                funct3: 0x0,
13742                rs1: 0x0,
13743                rs2: 0x0,
13744                csr: 0x260,
13745                funct7: 0x13,
13746            },
13747            Opcode::FSGNJS => Inst {
13748                opcode: 0x53,
13749                funct3: 0x0,
13750                rs1: 0x0,
13751                rs2: 0x0,
13752                csr: 0x200,
13753                funct7: 0x10,
13754            },
13755            Opcode::FSGNJND => Inst {
13756                opcode: 0x53,
13757                funct3: 0x1,
13758                rs1: 0x0,
13759                rs2: 0x0,
13760                csr: 0x220,
13761                funct7: 0x11,
13762            },
13763            Opcode::FSGNJNH => Inst {
13764                opcode: 0x53,
13765                funct3: 0x1,
13766                rs1: 0x0,
13767                rs2: 0x0,
13768                csr: 0x240,
13769                funct7: 0x12,
13770            },
13771            Opcode::FSGNJNQ => Inst {
13772                opcode: 0x53,
13773                funct3: 0x1,
13774                rs1: 0x0,
13775                rs2: 0x0,
13776                csr: 0x260,
13777                funct7: 0x13,
13778            },
13779            Opcode::FSGNJNS => Inst {
13780                opcode: 0x53,
13781                funct3: 0x1,
13782                rs1: 0x0,
13783                rs2: 0x0,
13784                csr: 0x200,
13785                funct7: 0x10,
13786            },
13787            Opcode::FSGNJXD => Inst {
13788                opcode: 0x53,
13789                funct3: 0x2,
13790                rs1: 0x0,
13791                rs2: 0x0,
13792                csr: 0x220,
13793                funct7: 0x11,
13794            },
13795            Opcode::FSGNJXH => Inst {
13796                opcode: 0x53,
13797                funct3: 0x2,
13798                rs1: 0x0,
13799                rs2: 0x0,
13800                csr: 0x240,
13801                funct7: 0x12,
13802            },
13803            Opcode::FSGNJXQ => Inst {
13804                opcode: 0x53,
13805                funct3: 0x2,
13806                rs1: 0x0,
13807                rs2: 0x0,
13808                csr: 0x260,
13809                funct7: 0x13,
13810            },
13811            Opcode::FSGNJXS => Inst {
13812                opcode: 0x53,
13813                funct3: 0x2,
13814                rs1: 0x0,
13815                rs2: 0x0,
13816                csr: 0x200,
13817                funct7: 0x10,
13818            },
13819            Opcode::FSH => Inst {
13820                opcode: 0x27,
13821                funct3: 0x1,
13822                rs1: 0x0,
13823                rs2: 0x0,
13824                csr: 0x0,
13825                funct7: 0x0,
13826            },
13827            Opcode::FSQ => Inst {
13828                opcode: 0x27,
13829                funct3: 0x4,
13830                rs1: 0x0,
13831                rs2: 0x0,
13832                csr: 0x0,
13833                funct7: 0x0,
13834            },
13835            Opcode::FSQRTD => Inst {
13836                opcode: 0x53,
13837                funct3: 0x0,
13838                rs1: 0x0,
13839                rs2: 0x0,
13840                csr: 0x5a0,
13841                funct7: 0x2d,
13842            },
13843            Opcode::FSQRTH => Inst {
13844                opcode: 0x53,
13845                funct3: 0x0,
13846                rs1: 0x0,
13847                rs2: 0x0,
13848                csr: 0x5c0,
13849                funct7: 0x2e,
13850            },
13851            Opcode::FSQRTQ => Inst {
13852                opcode: 0x53,
13853                funct3: 0x0,
13854                rs1: 0x0,
13855                rs2: 0x0,
13856                csr: 0x5e0,
13857                funct7: 0x2f,
13858            },
13859            Opcode::FSQRTS => Inst {
13860                opcode: 0x53,
13861                funct3: 0x0,
13862                rs1: 0x0,
13863                rs2: 0x0,
13864                csr: 0x580,
13865                funct7: 0x2c,
13866            },
13867            Opcode::FSRM => Inst {
13868                opcode: 0x73,
13869                funct3: 0x1,
13870                rs1: 0x0,
13871                rs2: 0x2,
13872                csr: 0x2,
13873                funct7: 0x0,
13874            },
13875            Opcode::FSRMI => Inst {
13876                opcode: 0x73,
13877                funct3: 0x5,
13878                rs1: 0x0,
13879                rs2: 0x2,
13880                csr: 0x2,
13881                funct7: 0x0,
13882            },
13883            Opcode::FSUBD => Inst {
13884                opcode: 0x53,
13885                funct3: 0x0,
13886                rs1: 0x0,
13887                rs2: 0x0,
13888                csr: 0xa0,
13889                funct7: 0x5,
13890            },
13891            Opcode::FSUBH => Inst {
13892                opcode: 0x53,
13893                funct3: 0x0,
13894                rs1: 0x0,
13895                rs2: 0x0,
13896                csr: 0xc0,
13897                funct7: 0x6,
13898            },
13899            Opcode::FSUBQ => Inst {
13900                opcode: 0x53,
13901                funct3: 0x0,
13902                rs1: 0x0,
13903                rs2: 0x0,
13904                csr: 0xe0,
13905                funct7: 0x7,
13906            },
13907            Opcode::FSUBS => Inst {
13908                opcode: 0x53,
13909                funct3: 0x0,
13910                rs1: 0x0,
13911                rs2: 0x0,
13912                csr: 0x80,
13913                funct7: 0x4,
13914            },
13915            Opcode::FSW => Inst {
13916                opcode: 0x27,
13917                funct3: 0x2,
13918                rs1: 0x0,
13919                rs2: 0x0,
13920                csr: 0x0,
13921                funct7: 0x0,
13922            },
13923            Opcode::HFENCEGVMA => Inst {
13924                opcode: 0x73,
13925                funct3: 0x0,
13926                rs1: 0x0,
13927                rs2: 0x0,
13928                csr: 0x620,
13929                funct7: 0x31,
13930            },
13931            Opcode::HFENCEVVMA => Inst {
13932                opcode: 0x73,
13933                funct3: 0x0,
13934                rs1: 0x0,
13935                rs2: 0x0,
13936                csr: 0x220,
13937                funct7: 0x11,
13938            },
13939            Opcode::HINVALGVMA => Inst {
13940                opcode: 0x73,
13941                funct3: 0x0,
13942                rs1: 0x0,
13943                rs2: 0x0,
13944                csr: 0x660,
13945                funct7: 0x33,
13946            },
13947            Opcode::HINVALVVMA => Inst {
13948                opcode: 0x73,
13949                funct3: 0x0,
13950                rs1: 0x0,
13951                rs2: 0x0,
13952                csr: 0x260,
13953                funct7: 0x13,
13954            },
13955            Opcode::HLVB => Inst {
13956                opcode: 0x73,
13957                funct3: 0x4,
13958                rs1: 0x0,
13959                rs2: 0x0,
13960                csr: 0x600,
13961                funct7: 0x30,
13962            },
13963            Opcode::HLVBU => Inst {
13964                opcode: 0x73,
13965                funct3: 0x4,
13966                rs1: 0x0,
13967                rs2: 0x1,
13968                csr: 0x601,
13969                funct7: 0x30,
13970            },
13971            Opcode::HLVD => Inst {
13972                opcode: 0x73,
13973                funct3: 0x4,
13974                rs1: 0x0,
13975                rs2: 0x0,
13976                csr: 0x6c0,
13977                funct7: 0x36,
13978            },
13979            Opcode::HLVH => Inst {
13980                opcode: 0x73,
13981                funct3: 0x4,
13982                rs1: 0x0,
13983                rs2: 0x0,
13984                csr: 0x640,
13985                funct7: 0x32,
13986            },
13987            Opcode::HLVHU => Inst {
13988                opcode: 0x73,
13989                funct3: 0x4,
13990                rs1: 0x0,
13991                rs2: 0x1,
13992                csr: 0x641,
13993                funct7: 0x32,
13994            },
13995            Opcode::HLVW => Inst {
13996                opcode: 0x73,
13997                funct3: 0x4,
13998                rs1: 0x0,
13999                rs2: 0x0,
14000                csr: 0x680,
14001                funct7: 0x34,
14002            },
14003            Opcode::HLVWU => Inst {
14004                opcode: 0x73,
14005                funct3: 0x4,
14006                rs1: 0x0,
14007                rs2: 0x1,
14008                csr: 0x681,
14009                funct7: 0x34,
14010            },
14011            Opcode::HLVXHU => Inst {
14012                opcode: 0x73,
14013                funct3: 0x4,
14014                rs1: 0x0,
14015                rs2: 0x3,
14016                csr: 0x643,
14017                funct7: 0x32,
14018            },
14019            Opcode::HLVXWU => Inst {
14020                opcode: 0x73,
14021                funct3: 0x4,
14022                rs1: 0x0,
14023                rs2: 0x3,
14024                csr: 0x683,
14025                funct7: 0x34,
14026            },
14027            Opcode::HSVB => Inst {
14028                opcode: 0x73,
14029                funct3: 0x4,
14030                rs1: 0x0,
14031                rs2: 0x0,
14032                csr: 0x620,
14033                funct7: 0x31,
14034            },
14035            Opcode::HSVD => Inst {
14036                opcode: 0x73,
14037                funct3: 0x4,
14038                rs1: 0x0,
14039                rs2: 0x0,
14040                csr: 0x6e0,
14041                funct7: 0x37,
14042            },
14043            Opcode::HSVH => Inst {
14044                opcode: 0x73,
14045                funct3: 0x4,
14046                rs1: 0x0,
14047                rs2: 0x0,
14048                csr: 0x660,
14049                funct7: 0x33,
14050            },
14051            Opcode::HSVW => Inst {
14052                opcode: 0x73,
14053                funct3: 0x4,
14054                rs1: 0x0,
14055                rs2: 0x0,
14056                csr: 0x6a0,
14057                funct7: 0x35,
14058            },
14059            Opcode::J => Inst {
14060                opcode: 0x6f,
14061                funct3: 0x0,
14062                rs1: 0x0,
14063                rs2: 0x0,
14064                csr: 0x0,
14065                funct7: 0x0,
14066            },
14067            Opcode::JAL => Inst {
14068                opcode: 0x6f,
14069                funct3: 0x0,
14070                rs1: 0x0,
14071                rs2: 0x0,
14072                csr: 0x0,
14073                funct7: 0x0,
14074            },
14075            Opcode::JALPSEUDO => Inst {
14076                opcode: 0x6f,
14077                funct3: 0x0,
14078                rs1: 0x0,
14079                rs2: 0x0,
14080                csr: 0x0,
14081                funct7: 0x0,
14082            },
14083            Opcode::JALR => Inst {
14084                opcode: 0x67,
14085                funct3: 0x0,
14086                rs1: 0x0,
14087                rs2: 0x0,
14088                csr: 0x0,
14089                funct7: 0x0,
14090            },
14091            Opcode::JALRPSEUDO => Inst {
14092                opcode: 0x67,
14093                funct3: 0x0,
14094                rs1: 0x0,
14095                rs2: 0x0,
14096                csr: 0x0,
14097                funct7: 0x0,
14098            },
14099            Opcode::JR => Inst {
14100                opcode: 0x67,
14101                funct3: 0x0,
14102                rs1: 0x0,
14103                rs2: 0x0,
14104                csr: 0x0,
14105                funct7: 0x0,
14106            },
14107            Opcode::LB => Inst {
14108                opcode: 0x3,
14109                funct3: 0x0,
14110                rs1: 0x0,
14111                rs2: 0x0,
14112                csr: 0x0,
14113                funct7: 0x0,
14114            },
14115            Opcode::LBU => Inst {
14116                opcode: 0x3,
14117                funct3: 0x4,
14118                rs1: 0x0,
14119                rs2: 0x0,
14120                csr: 0x0,
14121                funct7: 0x0,
14122            },
14123            Opcode::LD => Inst {
14124                opcode: 0x3,
14125                funct3: 0x3,
14126                rs1: 0x0,
14127                rs2: 0x0,
14128                csr: 0x0,
14129                funct7: 0x0,
14130            },
14131            Opcode::LH => Inst {
14132                opcode: 0x3,
14133                funct3: 0x1,
14134                rs1: 0x0,
14135                rs2: 0x0,
14136                csr: 0x0,
14137                funct7: 0x0,
14138            },
14139            Opcode::LHU => Inst {
14140                opcode: 0x3,
14141                funct3: 0x5,
14142                rs1: 0x0,
14143                rs2: 0x0,
14144                csr: 0x0,
14145                funct7: 0x0,
14146            },
14147            Opcode::LRD => Inst {
14148                opcode: 0x2f,
14149                funct3: 0x3,
14150                rs1: 0x0,
14151                rs2: 0x0,
14152                csr: 0x100,
14153                funct7: 0x8,
14154            },
14155            Opcode::LRW => Inst {
14156                opcode: 0x2f,
14157                funct3: 0x2,
14158                rs1: 0x0,
14159                rs2: 0x0,
14160                csr: 0x100,
14161                funct7: 0x8,
14162            },
14163            Opcode::LUI => Inst {
14164                opcode: 0x37,
14165                funct3: 0x0,
14166                rs1: 0x0,
14167                rs2: 0x0,
14168                csr: 0x0,
14169                funct7: 0x0,
14170            },
14171            Opcode::LW => Inst {
14172                opcode: 0x3,
14173                funct3: 0x2,
14174                rs1: 0x0,
14175                rs2: 0x0,
14176                csr: 0x0,
14177                funct7: 0x0,
14178            },
14179            Opcode::LWU => Inst {
14180                opcode: 0x3,
14181                funct3: 0x6,
14182                rs1: 0x0,
14183                rs2: 0x0,
14184                csr: 0x0,
14185                funct7: 0x0,
14186            },
14187            Opcode::MAX => Inst {
14188                opcode: 0x33,
14189                funct3: 0x6,
14190                rs1: 0x0,
14191                rs2: 0x0,
14192                csr: 0xa0,
14193                funct7: 0x5,
14194            },
14195            Opcode::MAXU => Inst {
14196                opcode: 0x33,
14197                funct3: 0x7,
14198                rs1: 0x0,
14199                rs2: 0x0,
14200                csr: 0xa0,
14201                funct7: 0x5,
14202            },
14203            Opcode::MIN => Inst {
14204                opcode: 0x33,
14205                funct3: 0x4,
14206                rs1: 0x0,
14207                rs2: 0x0,
14208                csr: 0xa0,
14209                funct7: 0x5,
14210            },
14211            Opcode::MINU => Inst {
14212                opcode: 0x33,
14213                funct3: 0x5,
14214                rs1: 0x0,
14215                rs2: 0x0,
14216                csr: 0xa0,
14217                funct7: 0x5,
14218            },
14219            Opcode::MOPR0 => Inst {
14220                opcode: 0x73,
14221                funct3: 0x4,
14222                rs1: 0x0,
14223                rs2: 0x1c,
14224                csr: 0x81c,
14225                funct7: 0x40,
14226            },
14227            Opcode::MOPR1 => Inst {
14228                opcode: 0x73,
14229                funct3: 0x4,
14230                rs1: 0x0,
14231                rs2: 0x1d,
14232                csr: 0x81d,
14233                funct7: 0x40,
14234            },
14235            Opcode::MOPR10 => Inst {
14236                opcode: 0x73,
14237                funct3: 0x4,
14238                rs1: 0x0,
14239                rs2: 0x1e,
14240                csr: 0x89e,
14241                funct7: 0x44,
14242            },
14243            Opcode::MOPR11 => Inst {
14244                opcode: 0x73,
14245                funct3: 0x4,
14246                rs1: 0x0,
14247                rs2: 0x1f,
14248                csr: 0x89f,
14249                funct7: 0x44,
14250            },
14251            Opcode::MOPR12 => Inst {
14252                opcode: 0x73,
14253                funct3: 0x4,
14254                rs1: 0x0,
14255                rs2: 0x1c,
14256                csr: 0x8dc,
14257                funct7: 0x46,
14258            },
14259            Opcode::MOPR13 => Inst {
14260                opcode: 0x73,
14261                funct3: 0x4,
14262                rs1: 0x0,
14263                rs2: 0x1d,
14264                csr: 0x8dd,
14265                funct7: 0x46,
14266            },
14267            Opcode::MOPR14 => Inst {
14268                opcode: 0x73,
14269                funct3: 0x4,
14270                rs1: 0x0,
14271                rs2: 0x1e,
14272                csr: 0x8de,
14273                funct7: 0x46,
14274            },
14275            Opcode::MOPR15 => Inst {
14276                opcode: 0x73,
14277                funct3: 0x4,
14278                rs1: 0x0,
14279                rs2: 0x1f,
14280                csr: 0x8df,
14281                funct7: 0x46,
14282            },
14283            Opcode::MOPR16 => Inst {
14284                opcode: 0x73,
14285                funct3: 0x4,
14286                rs1: 0x0,
14287                rs2: 0x1c,
14288                csr: 0xc1c,
14289                funct7: 0x60,
14290            },
14291            Opcode::MOPR17 => Inst {
14292                opcode: 0x73,
14293                funct3: 0x4,
14294                rs1: 0x0,
14295                rs2: 0x1d,
14296                csr: 0xc1d,
14297                funct7: 0x60,
14298            },
14299            Opcode::MOPR18 => Inst {
14300                opcode: 0x73,
14301                funct3: 0x4,
14302                rs1: 0x0,
14303                rs2: 0x1e,
14304                csr: 0xc1e,
14305                funct7: 0x60,
14306            },
14307            Opcode::MOPR19 => Inst {
14308                opcode: 0x73,
14309                funct3: 0x4,
14310                rs1: 0x0,
14311                rs2: 0x1f,
14312                csr: 0xc1f,
14313                funct7: 0x60,
14314            },
14315            Opcode::MOPR2 => Inst {
14316                opcode: 0x73,
14317                funct3: 0x4,
14318                rs1: 0x0,
14319                rs2: 0x1e,
14320                csr: 0x81e,
14321                funct7: 0x40,
14322            },
14323            Opcode::MOPR20 => Inst {
14324                opcode: 0x73,
14325                funct3: 0x4,
14326                rs1: 0x0,
14327                rs2: 0x1c,
14328                csr: 0xc5c,
14329                funct7: 0x62,
14330            },
14331            Opcode::MOPR21 => Inst {
14332                opcode: 0x73,
14333                funct3: 0x4,
14334                rs1: 0x0,
14335                rs2: 0x1d,
14336                csr: 0xc5d,
14337                funct7: 0x62,
14338            },
14339            Opcode::MOPR22 => Inst {
14340                opcode: 0x73,
14341                funct3: 0x4,
14342                rs1: 0x0,
14343                rs2: 0x1e,
14344                csr: 0xc5e,
14345                funct7: 0x62,
14346            },
14347            Opcode::MOPR23 => Inst {
14348                opcode: 0x73,
14349                funct3: 0x4,
14350                rs1: 0x0,
14351                rs2: 0x1f,
14352                csr: 0xc5f,
14353                funct7: 0x62,
14354            },
14355            Opcode::MOPR24 => Inst {
14356                opcode: 0x73,
14357                funct3: 0x4,
14358                rs1: 0x0,
14359                rs2: 0x1c,
14360                csr: 0xc9c,
14361                funct7: 0x64,
14362            },
14363            Opcode::MOPR25 => Inst {
14364                opcode: 0x73,
14365                funct3: 0x4,
14366                rs1: 0x0,
14367                rs2: 0x1d,
14368                csr: 0xc9d,
14369                funct7: 0x64,
14370            },
14371            Opcode::MOPR26 => Inst {
14372                opcode: 0x73,
14373                funct3: 0x4,
14374                rs1: 0x0,
14375                rs2: 0x1e,
14376                csr: 0xc9e,
14377                funct7: 0x64,
14378            },
14379            Opcode::MOPR27 => Inst {
14380                opcode: 0x73,
14381                funct3: 0x4,
14382                rs1: 0x0,
14383                rs2: 0x1f,
14384                csr: 0xc9f,
14385                funct7: 0x64,
14386            },
14387            Opcode::MOPR28 => Inst {
14388                opcode: 0x73,
14389                funct3: 0x4,
14390                rs1: 0x0,
14391                rs2: 0x1c,
14392                csr: 0xcdc,
14393                funct7: 0x66,
14394            },
14395            Opcode::MOPR29 => Inst {
14396                opcode: 0x73,
14397                funct3: 0x4,
14398                rs1: 0x0,
14399                rs2: 0x1d,
14400                csr: 0xcdd,
14401                funct7: 0x66,
14402            },
14403            Opcode::MOPR3 => Inst {
14404                opcode: 0x73,
14405                funct3: 0x4,
14406                rs1: 0x0,
14407                rs2: 0x1f,
14408                csr: 0x81f,
14409                funct7: 0x40,
14410            },
14411            Opcode::MOPR30 => Inst {
14412                opcode: 0x73,
14413                funct3: 0x4,
14414                rs1: 0x0,
14415                rs2: 0x1e,
14416                csr: 0xcde,
14417                funct7: 0x66,
14418            },
14419            Opcode::MOPR31 => Inst {
14420                opcode: 0x73,
14421                funct3: 0x4,
14422                rs1: 0x0,
14423                rs2: 0x1f,
14424                csr: 0xcdf,
14425                funct7: 0x66,
14426            },
14427            Opcode::MOPR4 => Inst {
14428                opcode: 0x73,
14429                funct3: 0x4,
14430                rs1: 0x0,
14431                rs2: 0x1c,
14432                csr: 0x85c,
14433                funct7: 0x42,
14434            },
14435            Opcode::MOPR5 => Inst {
14436                opcode: 0x73,
14437                funct3: 0x4,
14438                rs1: 0x0,
14439                rs2: 0x1d,
14440                csr: 0x85d,
14441                funct7: 0x42,
14442            },
14443            Opcode::MOPR6 => Inst {
14444                opcode: 0x73,
14445                funct3: 0x4,
14446                rs1: 0x0,
14447                rs2: 0x1e,
14448                csr: 0x85e,
14449                funct7: 0x42,
14450            },
14451            Opcode::MOPR7 => Inst {
14452                opcode: 0x73,
14453                funct3: 0x4,
14454                rs1: 0x0,
14455                rs2: 0x1f,
14456                csr: 0x85f,
14457                funct7: 0x42,
14458            },
14459            Opcode::MOPR8 => Inst {
14460                opcode: 0x73,
14461                funct3: 0x4,
14462                rs1: 0x0,
14463                rs2: 0x1c,
14464                csr: 0x89c,
14465                funct7: 0x44,
14466            },
14467            Opcode::MOPR9 => Inst {
14468                opcode: 0x73,
14469                funct3: 0x4,
14470                rs1: 0x0,
14471                rs2: 0x1d,
14472                csr: 0x89d,
14473                funct7: 0x44,
14474            },
14475            Opcode::MOPRN => Inst {
14476                opcode: 0x73,
14477                funct3: 0x4,
14478                rs1: 0x0,
14479                rs2: 0x1c,
14480                csr: 0x81c,
14481                funct7: 0x40,
14482            },
14483            Opcode::MOPRR0 => Inst {
14484                opcode: 0x73,
14485                funct3: 0x4,
14486                rs1: 0x0,
14487                rs2: 0x0,
14488                csr: 0x820,
14489                funct7: 0x41,
14490            },
14491            Opcode::MOPRR1 => Inst {
14492                opcode: 0x73,
14493                funct3: 0x4,
14494                rs1: 0x0,
14495                rs2: 0x0,
14496                csr: 0x860,
14497                funct7: 0x43,
14498            },
14499            Opcode::MOPRR2 => Inst {
14500                opcode: 0x73,
14501                funct3: 0x4,
14502                rs1: 0x0,
14503                rs2: 0x0,
14504                csr: 0x8a0,
14505                funct7: 0x45,
14506            },
14507            Opcode::MOPRR3 => Inst {
14508                opcode: 0x73,
14509                funct3: 0x4,
14510                rs1: 0x0,
14511                rs2: 0x0,
14512                csr: 0x8e0,
14513                funct7: 0x47,
14514            },
14515            Opcode::MOPRR4 => Inst {
14516                opcode: 0x73,
14517                funct3: 0x4,
14518                rs1: 0x0,
14519                rs2: 0x0,
14520                csr: 0xc20,
14521                funct7: 0x61,
14522            },
14523            Opcode::MOPRR5 => Inst {
14524                opcode: 0x73,
14525                funct3: 0x4,
14526                rs1: 0x0,
14527                rs2: 0x0,
14528                csr: 0xc60,
14529                funct7: 0x63,
14530            },
14531            Opcode::MOPRR6 => Inst {
14532                opcode: 0x73,
14533                funct3: 0x4,
14534                rs1: 0x0,
14535                rs2: 0x0,
14536                csr: 0xca0,
14537                funct7: 0x65,
14538            },
14539            Opcode::MOPRR7 => Inst {
14540                opcode: 0x73,
14541                funct3: 0x4,
14542                rs1: 0x0,
14543                rs2: 0x0,
14544                csr: 0xce0,
14545                funct7: 0x67,
14546            },
14547            Opcode::MOPRRN => Inst {
14548                opcode: 0x73,
14549                funct3: 0x4,
14550                rs1: 0x0,
14551                rs2: 0x0,
14552                csr: 0x820,
14553                funct7: 0x41,
14554            },
14555            Opcode::MRET => Inst {
14556                opcode: 0x73,
14557                funct3: 0x0,
14558                rs1: 0x0,
14559                rs2: 0x2,
14560                csr: 0x302,
14561                funct7: 0x18,
14562            },
14563            Opcode::MUL => Inst {
14564                opcode: 0x33,
14565                funct3: 0x0,
14566                rs1: 0x0,
14567                rs2: 0x0,
14568                csr: 0x20,
14569                funct7: 0x1,
14570            },
14571            Opcode::MULH => Inst {
14572                opcode: 0x33,
14573                funct3: 0x1,
14574                rs1: 0x0,
14575                rs2: 0x0,
14576                csr: 0x20,
14577                funct7: 0x1,
14578            },
14579            Opcode::MULHSU => Inst {
14580                opcode: 0x33,
14581                funct3: 0x2,
14582                rs1: 0x0,
14583                rs2: 0x0,
14584                csr: 0x20,
14585                funct7: 0x1,
14586            },
14587            Opcode::MULHU => Inst {
14588                opcode: 0x33,
14589                funct3: 0x3,
14590                rs1: 0x0,
14591                rs2: 0x0,
14592                csr: 0x20,
14593                funct7: 0x1,
14594            },
14595            Opcode::MULW => Inst {
14596                opcode: 0x3b,
14597                funct3: 0x0,
14598                rs1: 0x0,
14599                rs2: 0x0,
14600                csr: 0x20,
14601                funct7: 0x1,
14602            },
14603            Opcode::MV => Inst {
14604                opcode: 0x13,
14605                funct3: 0x0,
14606                rs1: 0x0,
14607                rs2: 0x0,
14608                csr: 0x0,
14609                funct7: 0x0,
14610            },
14611            Opcode::NEG => Inst {
14612                opcode: 0x33,
14613                funct3: 0x0,
14614                rs1: 0x0,
14615                rs2: 0x0,
14616                csr: 0x400,
14617                funct7: 0x20,
14618            },
14619            Opcode::NOP => Inst {
14620                opcode: 0x13,
14621                funct3: 0x0,
14622                rs1: 0x0,
14623                rs2: 0x0,
14624                csr: 0x0,
14625                funct7: 0x0,
14626            },
14627            Opcode::NTLALL => Inst {
14628                opcode: 0x33,
14629                funct3: 0x0,
14630                rs1: 0x0,
14631                rs2: 0x5,
14632                csr: 0x5,
14633                funct7: 0x0,
14634            },
14635            Opcode::NTLP1 => Inst {
14636                opcode: 0x33,
14637                funct3: 0x0,
14638                rs1: 0x0,
14639                rs2: 0x2,
14640                csr: 0x2,
14641                funct7: 0x0,
14642            },
14643            Opcode::NTLPALL => Inst {
14644                opcode: 0x33,
14645                funct3: 0x0,
14646                rs1: 0x0,
14647                rs2: 0x3,
14648                csr: 0x3,
14649                funct7: 0x0,
14650            },
14651            Opcode::NTLS1 => Inst {
14652                opcode: 0x33,
14653                funct3: 0x0,
14654                rs1: 0x0,
14655                rs2: 0x4,
14656                csr: 0x4,
14657                funct7: 0x0,
14658            },
14659            Opcode::OR => Inst {
14660                opcode: 0x33,
14661                funct3: 0x6,
14662                rs1: 0x0,
14663                rs2: 0x0,
14664                csr: 0x0,
14665                funct7: 0x0,
14666            },
14667            Opcode::ORCB => Inst {
14668                opcode: 0x13,
14669                funct3: 0x5,
14670                rs1: 0x0,
14671                rs2: 0x7,
14672                csr: 0x287,
14673                funct7: 0x14,
14674            },
14675            Opcode::ORI => Inst {
14676                opcode: 0x13,
14677                funct3: 0x6,
14678                rs1: 0x0,
14679                rs2: 0x0,
14680                csr: 0x0,
14681                funct7: 0x0,
14682            },
14683            Opcode::ORN => Inst {
14684                opcode: 0x33,
14685                funct3: 0x6,
14686                rs1: 0x0,
14687                rs2: 0x0,
14688                csr: 0x400,
14689                funct7: 0x20,
14690            },
14691            Opcode::PACK => Inst {
14692                opcode: 0x33,
14693                funct3: 0x4,
14694                rs1: 0x0,
14695                rs2: 0x0,
14696                csr: 0x80,
14697                funct7: 0x4,
14698            },
14699            Opcode::PACKH => Inst {
14700                opcode: 0x33,
14701                funct3: 0x7,
14702                rs1: 0x0,
14703                rs2: 0x0,
14704                csr: 0x80,
14705                funct7: 0x4,
14706            },
14707            Opcode::PACKW => Inst {
14708                opcode: 0x3b,
14709                funct3: 0x4,
14710                rs1: 0x0,
14711                rs2: 0x0,
14712                csr: 0x80,
14713                funct7: 0x4,
14714            },
14715            Opcode::PAUSE => Inst {
14716                opcode: 0xf,
14717                funct3: 0x0,
14718                rs1: 0x0,
14719                rs2: 0x10,
14720                csr: 0x10,
14721                funct7: 0x0,
14722            },
14723            Opcode::PREFETCHI => Inst {
14724                opcode: 0x13,
14725                funct3: 0x6,
14726                rs1: 0x0,
14727                rs2: 0x0,
14728                csr: 0x0,
14729                funct7: 0x0,
14730            },
14731            Opcode::PREFETCHR => Inst {
14732                opcode: 0x13,
14733                funct3: 0x6,
14734                rs1: 0x0,
14735                rs2: 0x1,
14736                csr: 0x1,
14737                funct7: 0x0,
14738            },
14739            Opcode::PREFETCHW => Inst {
14740                opcode: 0x13,
14741                funct3: 0x6,
14742                rs1: 0x0,
14743                rs2: 0x3,
14744                csr: 0x3,
14745                funct7: 0x0,
14746            },
14747            Opcode::RDCYCLE => Inst {
14748                opcode: 0x73,
14749                funct3: 0x2,
14750                rs1: 0x0,
14751                rs2: 0x0,
14752                csr: 0xc00,
14753                funct7: 0x60,
14754            },
14755            Opcode::RDCYCLEH => Inst {
14756                opcode: 0x73,
14757                funct3: 0x2,
14758                rs1: 0x0,
14759                rs2: 0x0,
14760                csr: 0xc80,
14761                funct7: 0x64,
14762            },
14763            Opcode::RDINSTRET => Inst {
14764                opcode: 0x73,
14765                funct3: 0x2,
14766                rs1: 0x0,
14767                rs2: 0x2,
14768                csr: 0xc02,
14769                funct7: 0x60,
14770            },
14771            Opcode::RDINSTRETH => Inst {
14772                opcode: 0x73,
14773                funct3: 0x2,
14774                rs1: 0x0,
14775                rs2: 0x2,
14776                csr: 0xc82,
14777                funct7: 0x64,
14778            },
14779            Opcode::RDTIME => Inst {
14780                opcode: 0x73,
14781                funct3: 0x2,
14782                rs1: 0x0,
14783                rs2: 0x1,
14784                csr: 0xc01,
14785                funct7: 0x60,
14786            },
14787            Opcode::RDTIMEH => Inst {
14788                opcode: 0x73,
14789                funct3: 0x2,
14790                rs1: 0x0,
14791                rs2: 0x1,
14792                csr: 0xc81,
14793                funct7: 0x64,
14794            },
14795            Opcode::REM => Inst {
14796                opcode: 0x33,
14797                funct3: 0x6,
14798                rs1: 0x0,
14799                rs2: 0x0,
14800                csr: 0x20,
14801                funct7: 0x1,
14802            },
14803            Opcode::REMU => Inst {
14804                opcode: 0x33,
14805                funct3: 0x7,
14806                rs1: 0x0,
14807                rs2: 0x0,
14808                csr: 0x20,
14809                funct7: 0x1,
14810            },
14811            Opcode::REMUW => Inst {
14812                opcode: 0x3b,
14813                funct3: 0x7,
14814                rs1: 0x0,
14815                rs2: 0x0,
14816                csr: 0x20,
14817                funct7: 0x1,
14818            },
14819            Opcode::REMW => Inst {
14820                opcode: 0x3b,
14821                funct3: 0x6,
14822                rs1: 0x0,
14823                rs2: 0x0,
14824                csr: 0x20,
14825                funct7: 0x1,
14826            },
14827            Opcode::RET => Inst {
14828                opcode: 0x67,
14829                funct3: 0x0,
14830                rs1: 0x1,
14831                rs2: 0x0,
14832                csr: 0x0,
14833                funct7: 0x0,
14834            },
14835            Opcode::REV8 => Inst {
14836                opcode: 0x13,
14837                funct3: 0x5,
14838                rs1: 0x0,
14839                rs2: 0x18,
14840                csr: 0x6b8,
14841                funct7: 0x35,
14842            },
14843            Opcode::REV8RV32 => Inst {
14844                opcode: 0x13,
14845                funct3: 0x5,
14846                rs1: 0x0,
14847                rs2: 0x18,
14848                csr: 0x698,
14849                funct7: 0x34,
14850            },
14851            Opcode::ROL => Inst {
14852                opcode: 0x33,
14853                funct3: 0x1,
14854                rs1: 0x0,
14855                rs2: 0x0,
14856                csr: 0x600,
14857                funct7: 0x30,
14858            },
14859            Opcode::ROLW => Inst {
14860                opcode: 0x3b,
14861                funct3: 0x1,
14862                rs1: 0x0,
14863                rs2: 0x0,
14864                csr: 0x600,
14865                funct7: 0x30,
14866            },
14867            Opcode::ROR => Inst {
14868                opcode: 0x33,
14869                funct3: 0x5,
14870                rs1: 0x0,
14871                rs2: 0x0,
14872                csr: 0x600,
14873                funct7: 0x30,
14874            },
14875            Opcode::RORI => Inst {
14876                opcode: 0x13,
14877                funct3: 0x5,
14878                rs1: 0x0,
14879                rs2: 0x0,
14880                csr: 0x600,
14881                funct7: 0x30,
14882            },
14883            Opcode::RORIRV32 => Inst {
14884                opcode: 0x13,
14885                funct3: 0x5,
14886                rs1: 0x0,
14887                rs2: 0x0,
14888                csr: 0x600,
14889                funct7: 0x30,
14890            },
14891            Opcode::RORIW => Inst {
14892                opcode: 0x1b,
14893                funct3: 0x5,
14894                rs1: 0x0,
14895                rs2: 0x0,
14896                csr: 0x600,
14897                funct7: 0x30,
14898            },
14899            Opcode::RORW => Inst {
14900                opcode: 0x3b,
14901                funct3: 0x5,
14902                rs1: 0x0,
14903                rs2: 0x0,
14904                csr: 0x600,
14905                funct7: 0x30,
14906            },
14907            Opcode::SB => Inst {
14908                opcode: 0x23,
14909                funct3: 0x0,
14910                rs1: 0x0,
14911                rs2: 0x0,
14912                csr: 0x0,
14913                funct7: 0x0,
14914            },
14915            Opcode::SBREAK => Inst {
14916                opcode: 0x73,
14917                funct3: 0x0,
14918                rs1: 0x0,
14919                rs2: 0x1,
14920                csr: 0x1,
14921                funct7: 0x0,
14922            },
14923            Opcode::SCD => Inst {
14924                opcode: 0x2f,
14925                funct3: 0x3,
14926                rs1: 0x0,
14927                rs2: 0x0,
14928                csr: 0x180,
14929                funct7: 0xc,
14930            },
14931            Opcode::SCW => Inst {
14932                opcode: 0x2f,
14933                funct3: 0x2,
14934                rs1: 0x0,
14935                rs2: 0x0,
14936                csr: 0x180,
14937                funct7: 0xc,
14938            },
14939            Opcode::SCALL => Inst {
14940                opcode: 0x73,
14941                funct3: 0x0,
14942                rs1: 0x0,
14943                rs2: 0x0,
14944                csr: 0x0,
14945                funct7: 0x0,
14946            },
14947            Opcode::SD => Inst {
14948                opcode: 0x23,
14949                funct3: 0x3,
14950                rs1: 0x0,
14951                rs2: 0x0,
14952                csr: 0x0,
14953                funct7: 0x0,
14954            },
14955            Opcode::SEQZ => Inst {
14956                opcode: 0x13,
14957                funct3: 0x3,
14958                rs1: 0x0,
14959                rs2: 0x1,
14960                csr: 0x1,
14961                funct7: 0x0,
14962            },
14963            Opcode::SEXTB => Inst {
14964                opcode: 0x13,
14965                funct3: 0x1,
14966                rs1: 0x0,
14967                rs2: 0x4,
14968                csr: 0x604,
14969                funct7: 0x30,
14970            },
14971            Opcode::SEXTH => Inst {
14972                opcode: 0x13,
14973                funct3: 0x1,
14974                rs1: 0x0,
14975                rs2: 0x5,
14976                csr: 0x605,
14977                funct7: 0x30,
14978            },
14979            Opcode::SEXTW => Inst {
14980                opcode: 0x1b,
14981                funct3: 0x0,
14982                rs1: 0x0,
14983                rs2: 0x0,
14984                csr: 0x0,
14985                funct7: 0x0,
14986            },
14987            Opcode::SFENCEINVALIR => Inst {
14988                opcode: 0x73,
14989                funct3: 0x0,
14990                rs1: 0x0,
14991                rs2: 0x1,
14992                csr: 0x181,
14993                funct7: 0xc,
14994            },
14995            Opcode::SFENCEVMA => Inst {
14996                opcode: 0x73,
14997                funct3: 0x0,
14998                rs1: 0x0,
14999                rs2: 0x0,
15000                csr: 0x120,
15001                funct7: 0x9,
15002            },
15003            Opcode::SFENCEWINVAL => Inst {
15004                opcode: 0x73,
15005                funct3: 0x0,
15006                rs1: 0x0,
15007                rs2: 0x0,
15008                csr: 0x180,
15009                funct7: 0xc,
15010            },
15011            Opcode::SGTZ => Inst {
15012                opcode: 0x33,
15013                funct3: 0x2,
15014                rs1: 0x0,
15015                rs2: 0x0,
15016                csr: 0x0,
15017                funct7: 0x0,
15018            },
15019            Opcode::SH => Inst {
15020                opcode: 0x23,
15021                funct3: 0x1,
15022                rs1: 0x0,
15023                rs2: 0x0,
15024                csr: 0x0,
15025                funct7: 0x0,
15026            },
15027            Opcode::SH1ADD => Inst {
15028                opcode: 0x33,
15029                funct3: 0x2,
15030                rs1: 0x0,
15031                rs2: 0x0,
15032                csr: 0x200,
15033                funct7: 0x10,
15034            },
15035            Opcode::SH1ADDUW => Inst {
15036                opcode: 0x3b,
15037                funct3: 0x2,
15038                rs1: 0x0,
15039                rs2: 0x0,
15040                csr: 0x200,
15041                funct7: 0x10,
15042            },
15043            Opcode::SH2ADD => Inst {
15044                opcode: 0x33,
15045                funct3: 0x4,
15046                rs1: 0x0,
15047                rs2: 0x0,
15048                csr: 0x200,
15049                funct7: 0x10,
15050            },
15051            Opcode::SH2ADDUW => Inst {
15052                opcode: 0x3b,
15053                funct3: 0x4,
15054                rs1: 0x0,
15055                rs2: 0x0,
15056                csr: 0x200,
15057                funct7: 0x10,
15058            },
15059            Opcode::SH3ADD => Inst {
15060                opcode: 0x33,
15061                funct3: 0x6,
15062                rs1: 0x0,
15063                rs2: 0x0,
15064                csr: 0x200,
15065                funct7: 0x10,
15066            },
15067            Opcode::SH3ADDUW => Inst {
15068                opcode: 0x3b,
15069                funct3: 0x6,
15070                rs1: 0x0,
15071                rs2: 0x0,
15072                csr: 0x200,
15073                funct7: 0x10,
15074            },
15075            Opcode::SHA256SIG0 => Inst {
15076                opcode: 0x13,
15077                funct3: 0x1,
15078                rs1: 0x0,
15079                rs2: 0x2,
15080                csr: 0x102,
15081                funct7: 0x8,
15082            },
15083            Opcode::SHA256SIG1 => Inst {
15084                opcode: 0x13,
15085                funct3: 0x1,
15086                rs1: 0x0,
15087                rs2: 0x3,
15088                csr: 0x103,
15089                funct7: 0x8,
15090            },
15091            Opcode::SHA256SUM0 => Inst {
15092                opcode: 0x13,
15093                funct3: 0x1,
15094                rs1: 0x0,
15095                rs2: 0x0,
15096                csr: 0x100,
15097                funct7: 0x8,
15098            },
15099            Opcode::SHA256SUM1 => Inst {
15100                opcode: 0x13,
15101                funct3: 0x1,
15102                rs1: 0x0,
15103                rs2: 0x1,
15104                csr: 0x101,
15105                funct7: 0x8,
15106            },
15107            Opcode::SHA512SIG0 => Inst {
15108                opcode: 0x13,
15109                funct3: 0x1,
15110                rs1: 0x0,
15111                rs2: 0x6,
15112                csr: 0x106,
15113                funct7: 0x8,
15114            },
15115            Opcode::SHA512SIG0H => Inst {
15116                opcode: 0x33,
15117                funct3: 0x0,
15118                rs1: 0x0,
15119                rs2: 0x0,
15120                csr: 0x5c0,
15121                funct7: 0x2e,
15122            },
15123            Opcode::SHA512SIG0L => Inst {
15124                opcode: 0x33,
15125                funct3: 0x0,
15126                rs1: 0x0,
15127                rs2: 0x0,
15128                csr: 0x540,
15129                funct7: 0x2a,
15130            },
15131            Opcode::SHA512SIG1 => Inst {
15132                opcode: 0x13,
15133                funct3: 0x1,
15134                rs1: 0x0,
15135                rs2: 0x7,
15136                csr: 0x107,
15137                funct7: 0x8,
15138            },
15139            Opcode::SHA512SIG1H => Inst {
15140                opcode: 0x33,
15141                funct3: 0x0,
15142                rs1: 0x0,
15143                rs2: 0x0,
15144                csr: 0x5e0,
15145                funct7: 0x2f,
15146            },
15147            Opcode::SHA512SIG1L => Inst {
15148                opcode: 0x33,
15149                funct3: 0x0,
15150                rs1: 0x0,
15151                rs2: 0x0,
15152                csr: 0x560,
15153                funct7: 0x2b,
15154            },
15155            Opcode::SHA512SUM0 => Inst {
15156                opcode: 0x13,
15157                funct3: 0x1,
15158                rs1: 0x0,
15159                rs2: 0x4,
15160                csr: 0x104,
15161                funct7: 0x8,
15162            },
15163            Opcode::SHA512SUM0R => Inst {
15164                opcode: 0x33,
15165                funct3: 0x0,
15166                rs1: 0x0,
15167                rs2: 0x0,
15168                csr: 0x500,
15169                funct7: 0x28,
15170            },
15171            Opcode::SHA512SUM1 => Inst {
15172                opcode: 0x13,
15173                funct3: 0x1,
15174                rs1: 0x0,
15175                rs2: 0x5,
15176                csr: 0x105,
15177                funct7: 0x8,
15178            },
15179            Opcode::SHA512SUM1R => Inst {
15180                opcode: 0x33,
15181                funct3: 0x0,
15182                rs1: 0x0,
15183                rs2: 0x0,
15184                csr: 0x520,
15185                funct7: 0x29,
15186            },
15187            Opcode::SINVALVMA => Inst {
15188                opcode: 0x73,
15189                funct3: 0x0,
15190                rs1: 0x0,
15191                rs2: 0x0,
15192                csr: 0x160,
15193                funct7: 0xb,
15194            },
15195            Opcode::SLL => Inst {
15196                opcode: 0x33,
15197                funct3: 0x1,
15198                rs1: 0x0,
15199                rs2: 0x0,
15200                csr: 0x0,
15201                funct7: 0x0,
15202            },
15203            Opcode::SLLI => Inst {
15204                opcode: 0x13,
15205                funct3: 0x1,
15206                rs1: 0x0,
15207                rs2: 0x0,
15208                csr: 0x0,
15209                funct7: 0x0,
15210            },
15211            Opcode::SLLIRV32 => Inst {
15212                opcode: 0x13,
15213                funct3: 0x1,
15214                rs1: 0x0,
15215                rs2: 0x0,
15216                csr: 0x0,
15217                funct7: 0x0,
15218            },
15219            Opcode::SLLIUW => Inst {
15220                opcode: 0x1b,
15221                funct3: 0x1,
15222                rs1: 0x0,
15223                rs2: 0x0,
15224                csr: 0x80,
15225                funct7: 0x4,
15226            },
15227            Opcode::SLLIW => Inst {
15228                opcode: 0x1b,
15229                funct3: 0x1,
15230                rs1: 0x0,
15231                rs2: 0x0,
15232                csr: 0x0,
15233                funct7: 0x0,
15234            },
15235            Opcode::SLLW => Inst {
15236                opcode: 0x3b,
15237                funct3: 0x1,
15238                rs1: 0x0,
15239                rs2: 0x0,
15240                csr: 0x0,
15241                funct7: 0x0,
15242            },
15243            Opcode::SLT => Inst {
15244                opcode: 0x33,
15245                funct3: 0x2,
15246                rs1: 0x0,
15247                rs2: 0x0,
15248                csr: 0x0,
15249                funct7: 0x0,
15250            },
15251            Opcode::SLTI => Inst {
15252                opcode: 0x13,
15253                funct3: 0x2,
15254                rs1: 0x0,
15255                rs2: 0x0,
15256                csr: 0x0,
15257                funct7: 0x0,
15258            },
15259            Opcode::SLTIU => Inst {
15260                opcode: 0x13,
15261                funct3: 0x3,
15262                rs1: 0x0,
15263                rs2: 0x0,
15264                csr: 0x0,
15265                funct7: 0x0,
15266            },
15267            Opcode::SLTU => Inst {
15268                opcode: 0x33,
15269                funct3: 0x3,
15270                rs1: 0x0,
15271                rs2: 0x0,
15272                csr: 0x0,
15273                funct7: 0x0,
15274            },
15275            Opcode::SLTZ => Inst {
15276                opcode: 0x33,
15277                funct3: 0x2,
15278                rs1: 0x0,
15279                rs2: 0x0,
15280                csr: 0x0,
15281                funct7: 0x0,
15282            },
15283            Opcode::SM3P0 => Inst {
15284                opcode: 0x13,
15285                funct3: 0x1,
15286                rs1: 0x0,
15287                rs2: 0x8,
15288                csr: 0x108,
15289                funct7: 0x8,
15290            },
15291            Opcode::SM3P1 => Inst {
15292                opcode: 0x13,
15293                funct3: 0x1,
15294                rs1: 0x0,
15295                rs2: 0x9,
15296                csr: 0x109,
15297                funct7: 0x8,
15298            },
15299            Opcode::SM4ED => Inst {
15300                opcode: 0x33,
15301                funct3: 0x0,
15302                rs1: 0x0,
15303                rs2: 0x0,
15304                csr: 0x300,
15305                funct7: 0x18,
15306            },
15307            Opcode::SM4KS => Inst {
15308                opcode: 0x33,
15309                funct3: 0x0,
15310                rs1: 0x0,
15311                rs2: 0x0,
15312                csr: 0x340,
15313                funct7: 0x1a,
15314            },
15315            Opcode::SNEZ => Inst {
15316                opcode: 0x33,
15317                funct3: 0x3,
15318                rs1: 0x0,
15319                rs2: 0x0,
15320                csr: 0x0,
15321                funct7: 0x0,
15322            },
15323            Opcode::SRA => Inst {
15324                opcode: 0x33,
15325                funct3: 0x5,
15326                rs1: 0x0,
15327                rs2: 0x0,
15328                csr: 0x400,
15329                funct7: 0x20,
15330            },
15331            Opcode::SRAI => Inst {
15332                opcode: 0x13,
15333                funct3: 0x5,
15334                rs1: 0x0,
15335                rs2: 0x0,
15336                csr: 0x400,
15337                funct7: 0x20,
15338            },
15339            Opcode::SRAIRV32 => Inst {
15340                opcode: 0x13,
15341                funct3: 0x5,
15342                rs1: 0x0,
15343                rs2: 0x0,
15344                csr: 0x400,
15345                funct7: 0x20,
15346            },
15347            Opcode::SRAIW => Inst {
15348                opcode: 0x1b,
15349                funct3: 0x5,
15350                rs1: 0x0,
15351                rs2: 0x0,
15352                csr: 0x400,
15353                funct7: 0x20,
15354            },
15355            Opcode::SRAW => Inst {
15356                opcode: 0x3b,
15357                funct3: 0x5,
15358                rs1: 0x0,
15359                rs2: 0x0,
15360                csr: 0x400,
15361                funct7: 0x20,
15362            },
15363            Opcode::SRET => Inst {
15364                opcode: 0x73,
15365                funct3: 0x0,
15366                rs1: 0x0,
15367                rs2: 0x2,
15368                csr: 0x102,
15369                funct7: 0x8,
15370            },
15371            Opcode::SRL => Inst {
15372                opcode: 0x33,
15373                funct3: 0x5,
15374                rs1: 0x0,
15375                rs2: 0x0,
15376                csr: 0x0,
15377                funct7: 0x0,
15378            },
15379            Opcode::SRLI => Inst {
15380                opcode: 0x13,
15381                funct3: 0x5,
15382                rs1: 0x0,
15383                rs2: 0x0,
15384                csr: 0x0,
15385                funct7: 0x0,
15386            },
15387            Opcode::SRLIRV32 => Inst {
15388                opcode: 0x13,
15389                funct3: 0x5,
15390                rs1: 0x0,
15391                rs2: 0x0,
15392                csr: 0x0,
15393                funct7: 0x0,
15394            },
15395            Opcode::SRLIW => Inst {
15396                opcode: 0x1b,
15397                funct3: 0x5,
15398                rs1: 0x0,
15399                rs2: 0x0,
15400                csr: 0x0,
15401                funct7: 0x0,
15402            },
15403            Opcode::SRLW => Inst {
15404                opcode: 0x3b,
15405                funct3: 0x5,
15406                rs1: 0x0,
15407                rs2: 0x0,
15408                csr: 0x0,
15409                funct7: 0x0,
15410            },
15411            Opcode::SUB => Inst {
15412                opcode: 0x33,
15413                funct3: 0x0,
15414                rs1: 0x0,
15415                rs2: 0x0,
15416                csr: 0x400,
15417                funct7: 0x20,
15418            },
15419            Opcode::SUBW => Inst {
15420                opcode: 0x3b,
15421                funct3: 0x0,
15422                rs1: 0x0,
15423                rs2: 0x0,
15424                csr: 0x400,
15425                funct7: 0x20,
15426            },
15427            Opcode::SW => Inst {
15428                opcode: 0x23,
15429                funct3: 0x2,
15430                rs1: 0x0,
15431                rs2: 0x0,
15432                csr: 0x0,
15433                funct7: 0x0,
15434            },
15435            Opcode::UNZIP => Inst {
15436                opcode: 0x13,
15437                funct3: 0x5,
15438                rs1: 0x0,
15439                rs2: 0xf,
15440                csr: 0x8f,
15441                funct7: 0x4,
15442            },
15443            Opcode::VAADDVV => Inst {
15444                opcode: 0x57,
15445                funct3: 0x2,
15446                rs1: 0x0,
15447                rs2: 0x0,
15448                csr: 0x240,
15449                funct7: 0x12,
15450            },
15451            Opcode::VAADDVX => Inst {
15452                opcode: 0x57,
15453                funct3: 0x6,
15454                rs1: 0x0,
15455                rs2: 0x0,
15456                csr: 0x240,
15457                funct7: 0x12,
15458            },
15459            Opcode::VAADDUVV => Inst {
15460                opcode: 0x57,
15461                funct3: 0x2,
15462                rs1: 0x0,
15463                rs2: 0x0,
15464                csr: 0x200,
15465                funct7: 0x10,
15466            },
15467            Opcode::VAADDUVX => Inst {
15468                opcode: 0x57,
15469                funct3: 0x6,
15470                rs1: 0x0,
15471                rs2: 0x0,
15472                csr: 0x200,
15473                funct7: 0x10,
15474            },
15475            Opcode::VADCVIM => Inst {
15476                opcode: 0x57,
15477                funct3: 0x3,
15478                rs1: 0x0,
15479                rs2: 0x0,
15480                csr: 0x400,
15481                funct7: 0x20,
15482            },
15483            Opcode::VADCVVM => Inst {
15484                opcode: 0x57,
15485                funct3: 0x0,
15486                rs1: 0x0,
15487                rs2: 0x0,
15488                csr: 0x400,
15489                funct7: 0x20,
15490            },
15491            Opcode::VADCVXM => Inst {
15492                opcode: 0x57,
15493                funct3: 0x4,
15494                rs1: 0x0,
15495                rs2: 0x0,
15496                csr: 0x400,
15497                funct7: 0x20,
15498            },
15499            Opcode::VADDVI => Inst {
15500                opcode: 0x57,
15501                funct3: 0x3,
15502                rs1: 0x0,
15503                rs2: 0x0,
15504                csr: 0x0,
15505                funct7: 0x0,
15506            },
15507            Opcode::VADDVV => Inst {
15508                opcode: 0x57,
15509                funct3: 0x0,
15510                rs1: 0x0,
15511                rs2: 0x0,
15512                csr: 0x0,
15513                funct7: 0x0,
15514            },
15515            Opcode::VADDVX => Inst {
15516                opcode: 0x57,
15517                funct3: 0x4,
15518                rs1: 0x0,
15519                rs2: 0x0,
15520                csr: 0x0,
15521                funct7: 0x0,
15522            },
15523            Opcode::VAESDFVS => Inst {
15524                opcode: 0x77,
15525                funct3: 0x2,
15526                rs1: 0x1,
15527                rs2: 0x0,
15528                csr: 0xa60,
15529                funct7: 0x53,
15530            },
15531            Opcode::VAESDFVV => Inst {
15532                opcode: 0x77,
15533                funct3: 0x2,
15534                rs1: 0x1,
15535                rs2: 0x0,
15536                csr: 0xa20,
15537                funct7: 0x51,
15538            },
15539            Opcode::VAESDMVS => Inst {
15540                opcode: 0x77,
15541                funct3: 0x2,
15542                rs1: 0x0,
15543                rs2: 0x0,
15544                csr: 0xa60,
15545                funct7: 0x53,
15546            },
15547            Opcode::VAESDMVV => Inst {
15548                opcode: 0x77,
15549                funct3: 0x2,
15550                rs1: 0x0,
15551                rs2: 0x0,
15552                csr: 0xa20,
15553                funct7: 0x51,
15554            },
15555            Opcode::VAESEFVS => Inst {
15556                opcode: 0x77,
15557                funct3: 0x2,
15558                rs1: 0x3,
15559                rs2: 0x0,
15560                csr: 0xa60,
15561                funct7: 0x53,
15562            },
15563            Opcode::VAESEFVV => Inst {
15564                opcode: 0x77,
15565                funct3: 0x2,
15566                rs1: 0x3,
15567                rs2: 0x0,
15568                csr: 0xa20,
15569                funct7: 0x51,
15570            },
15571            Opcode::VAESEMVS => Inst {
15572                opcode: 0x77,
15573                funct3: 0x2,
15574                rs1: 0x2,
15575                rs2: 0x0,
15576                csr: 0xa60,
15577                funct7: 0x53,
15578            },
15579            Opcode::VAESEMVV => Inst {
15580                opcode: 0x77,
15581                funct3: 0x2,
15582                rs1: 0x2,
15583                rs2: 0x0,
15584                csr: 0xa20,
15585                funct7: 0x51,
15586            },
15587            Opcode::VAESKF1VI => Inst {
15588                opcode: 0x77,
15589                funct3: 0x2,
15590                rs1: 0x0,
15591                rs2: 0x0,
15592                csr: 0x8a0,
15593                funct7: 0x45,
15594            },
15595            Opcode::VAESKF2VI => Inst {
15596                opcode: 0x77,
15597                funct3: 0x2,
15598                rs1: 0x0,
15599                rs2: 0x0,
15600                csr: 0xaa0,
15601                funct7: 0x55,
15602            },
15603            Opcode::VAESZVS => Inst {
15604                opcode: 0x77,
15605                funct3: 0x2,
15606                rs1: 0x7,
15607                rs2: 0x0,
15608                csr: 0xa60,
15609                funct7: 0x53,
15610            },
15611            Opcode::VANDVI => Inst {
15612                opcode: 0x57,
15613                funct3: 0x3,
15614                rs1: 0x0,
15615                rs2: 0x0,
15616                csr: 0x240,
15617                funct7: 0x12,
15618            },
15619            Opcode::VANDVV => Inst {
15620                opcode: 0x57,
15621                funct3: 0x0,
15622                rs1: 0x0,
15623                rs2: 0x0,
15624                csr: 0x240,
15625                funct7: 0x12,
15626            },
15627            Opcode::VANDVX => Inst {
15628                opcode: 0x57,
15629                funct3: 0x4,
15630                rs1: 0x0,
15631                rs2: 0x0,
15632                csr: 0x240,
15633                funct7: 0x12,
15634            },
15635            Opcode::VANDNVV => Inst {
15636                opcode: 0x57,
15637                funct3: 0x0,
15638                rs1: 0x0,
15639                rs2: 0x0,
15640                csr: 0x40,
15641                funct7: 0x2,
15642            },
15643            Opcode::VANDNVX => Inst {
15644                opcode: 0x57,
15645                funct3: 0x4,
15646                rs1: 0x0,
15647                rs2: 0x0,
15648                csr: 0x40,
15649                funct7: 0x2,
15650            },
15651            Opcode::VASUBVV => Inst {
15652                opcode: 0x57,
15653                funct3: 0x2,
15654                rs1: 0x0,
15655                rs2: 0x0,
15656                csr: 0x2c0,
15657                funct7: 0x16,
15658            },
15659            Opcode::VASUBVX => Inst {
15660                opcode: 0x57,
15661                funct3: 0x6,
15662                rs1: 0x0,
15663                rs2: 0x0,
15664                csr: 0x2c0,
15665                funct7: 0x16,
15666            },
15667            Opcode::VASUBUVV => Inst {
15668                opcode: 0x57,
15669                funct3: 0x2,
15670                rs1: 0x0,
15671                rs2: 0x0,
15672                csr: 0x280,
15673                funct7: 0x14,
15674            },
15675            Opcode::VASUBUVX => Inst {
15676                opcode: 0x57,
15677                funct3: 0x6,
15678                rs1: 0x0,
15679                rs2: 0x0,
15680                csr: 0x280,
15681                funct7: 0x14,
15682            },
15683            Opcode::VBREV8V => Inst {
15684                opcode: 0x57,
15685                funct3: 0x2,
15686                rs1: 0x8,
15687                rs2: 0x0,
15688                csr: 0x480,
15689                funct7: 0x24,
15690            },
15691            Opcode::VBREVV => Inst {
15692                opcode: 0x57,
15693                funct3: 0x2,
15694                rs1: 0xa,
15695                rs2: 0x0,
15696                csr: 0x480,
15697                funct7: 0x24,
15698            },
15699            Opcode::VCLMULVV => Inst {
15700                opcode: 0x57,
15701                funct3: 0x2,
15702                rs1: 0x0,
15703                rs2: 0x0,
15704                csr: 0x300,
15705                funct7: 0x18,
15706            },
15707            Opcode::VCLMULVX => Inst {
15708                opcode: 0x57,
15709                funct3: 0x6,
15710                rs1: 0x0,
15711                rs2: 0x0,
15712                csr: 0x300,
15713                funct7: 0x18,
15714            },
15715            Opcode::VCLMULHVV => Inst {
15716                opcode: 0x57,
15717                funct3: 0x2,
15718                rs1: 0x0,
15719                rs2: 0x0,
15720                csr: 0x340,
15721                funct7: 0x1a,
15722            },
15723            Opcode::VCLMULHVX => Inst {
15724                opcode: 0x57,
15725                funct3: 0x6,
15726                rs1: 0x0,
15727                rs2: 0x0,
15728                csr: 0x340,
15729                funct7: 0x1a,
15730            },
15731            Opcode::VCLZV => Inst {
15732                opcode: 0x57,
15733                funct3: 0x2,
15734                rs1: 0xc,
15735                rs2: 0x0,
15736                csr: 0x480,
15737                funct7: 0x24,
15738            },
15739            Opcode::VCOMPRESSVM => Inst {
15740                opcode: 0x57,
15741                funct3: 0x2,
15742                rs1: 0x0,
15743                rs2: 0x0,
15744                csr: 0x5e0,
15745                funct7: 0x2f,
15746            },
15747            Opcode::VCPOPM => Inst {
15748                opcode: 0x57,
15749                funct3: 0x2,
15750                rs1: 0x10,
15751                rs2: 0x0,
15752                csr: 0x400,
15753                funct7: 0x20,
15754            },
15755            Opcode::VCPOPV => Inst {
15756                opcode: 0x57,
15757                funct3: 0x2,
15758                rs1: 0xe,
15759                rs2: 0x0,
15760                csr: 0x480,
15761                funct7: 0x24,
15762            },
15763            Opcode::VCTZV => Inst {
15764                opcode: 0x57,
15765                funct3: 0x2,
15766                rs1: 0xd,
15767                rs2: 0x0,
15768                csr: 0x480,
15769                funct7: 0x24,
15770            },
15771            Opcode::VDIVVV => Inst {
15772                opcode: 0x57,
15773                funct3: 0x2,
15774                rs1: 0x0,
15775                rs2: 0x0,
15776                csr: 0x840,
15777                funct7: 0x42,
15778            },
15779            Opcode::VDIVVX => Inst {
15780                opcode: 0x57,
15781                funct3: 0x6,
15782                rs1: 0x0,
15783                rs2: 0x0,
15784                csr: 0x840,
15785                funct7: 0x42,
15786            },
15787            Opcode::VDIVUVV => Inst {
15788                opcode: 0x57,
15789                funct3: 0x2,
15790                rs1: 0x0,
15791                rs2: 0x0,
15792                csr: 0x800,
15793                funct7: 0x40,
15794            },
15795            Opcode::VDIVUVX => Inst {
15796                opcode: 0x57,
15797                funct3: 0x6,
15798                rs1: 0x0,
15799                rs2: 0x0,
15800                csr: 0x800,
15801                funct7: 0x40,
15802            },
15803            Opcode::VFADDVF => Inst {
15804                opcode: 0x57,
15805                funct3: 0x5,
15806                rs1: 0x0,
15807                rs2: 0x0,
15808                csr: 0x0,
15809                funct7: 0x0,
15810            },
15811            Opcode::VFADDVV => Inst {
15812                opcode: 0x57,
15813                funct3: 0x1,
15814                rs1: 0x0,
15815                rs2: 0x0,
15816                csr: 0x0,
15817                funct7: 0x0,
15818            },
15819            Opcode::VFCLASSV => Inst {
15820                opcode: 0x57,
15821                funct3: 0x1,
15822                rs1: 0x10,
15823                rs2: 0x0,
15824                csr: 0x4c0,
15825                funct7: 0x26,
15826            },
15827            Opcode::VFCVTFXV => Inst {
15828                opcode: 0x57,
15829                funct3: 0x1,
15830                rs1: 0x3,
15831                rs2: 0x0,
15832                csr: 0x480,
15833                funct7: 0x24,
15834            },
15835            Opcode::VFCVTFXUV => Inst {
15836                opcode: 0x57,
15837                funct3: 0x1,
15838                rs1: 0x2,
15839                rs2: 0x0,
15840                csr: 0x480,
15841                funct7: 0x24,
15842            },
15843            Opcode::VFCVTRTZXFV => Inst {
15844                opcode: 0x57,
15845                funct3: 0x1,
15846                rs1: 0x7,
15847                rs2: 0x0,
15848                csr: 0x480,
15849                funct7: 0x24,
15850            },
15851            Opcode::VFCVTRTZXUFV => Inst {
15852                opcode: 0x57,
15853                funct3: 0x1,
15854                rs1: 0x6,
15855                rs2: 0x0,
15856                csr: 0x480,
15857                funct7: 0x24,
15858            },
15859            Opcode::VFCVTXFV => Inst {
15860                opcode: 0x57,
15861                funct3: 0x1,
15862                rs1: 0x1,
15863                rs2: 0x0,
15864                csr: 0x480,
15865                funct7: 0x24,
15866            },
15867            Opcode::VFCVTXUFV => Inst {
15868                opcode: 0x57,
15869                funct3: 0x1,
15870                rs1: 0x0,
15871                rs2: 0x0,
15872                csr: 0x480,
15873                funct7: 0x24,
15874            },
15875            Opcode::VFDIVVF => Inst {
15876                opcode: 0x57,
15877                funct3: 0x5,
15878                rs1: 0x0,
15879                rs2: 0x0,
15880                csr: 0x800,
15881                funct7: 0x40,
15882            },
15883            Opcode::VFDIVVV => Inst {
15884                opcode: 0x57,
15885                funct3: 0x1,
15886                rs1: 0x0,
15887                rs2: 0x0,
15888                csr: 0x800,
15889                funct7: 0x40,
15890            },
15891            Opcode::VFIRSTM => Inst {
15892                opcode: 0x57,
15893                funct3: 0x2,
15894                rs1: 0x11,
15895                rs2: 0x0,
15896                csr: 0x400,
15897                funct7: 0x20,
15898            },
15899            Opcode::VFMACCVF => Inst {
15900                opcode: 0x57,
15901                funct3: 0x5,
15902                rs1: 0x0,
15903                rs2: 0x0,
15904                csr: 0xb00,
15905                funct7: 0x58,
15906            },
15907            Opcode::VFMACCVV => Inst {
15908                opcode: 0x57,
15909                funct3: 0x1,
15910                rs1: 0x0,
15911                rs2: 0x0,
15912                csr: 0xb00,
15913                funct7: 0x58,
15914            },
15915            Opcode::VFMADDVF => Inst {
15916                opcode: 0x57,
15917                funct3: 0x5,
15918                rs1: 0x0,
15919                rs2: 0x0,
15920                csr: 0xa00,
15921                funct7: 0x50,
15922            },
15923            Opcode::VFMADDVV => Inst {
15924                opcode: 0x57,
15925                funct3: 0x1,
15926                rs1: 0x0,
15927                rs2: 0x0,
15928                csr: 0xa00,
15929                funct7: 0x50,
15930            },
15931            Opcode::VFMAXVF => Inst {
15932                opcode: 0x57,
15933                funct3: 0x5,
15934                rs1: 0x0,
15935                rs2: 0x0,
15936                csr: 0x180,
15937                funct7: 0xc,
15938            },
15939            Opcode::VFMAXVV => Inst {
15940                opcode: 0x57,
15941                funct3: 0x1,
15942                rs1: 0x0,
15943                rs2: 0x0,
15944                csr: 0x180,
15945                funct7: 0xc,
15946            },
15947            Opcode::VFMERGEVFM => Inst {
15948                opcode: 0x57,
15949                funct3: 0x5,
15950                rs1: 0x0,
15951                rs2: 0x0,
15952                csr: 0x5c0,
15953                funct7: 0x2e,
15954            },
15955            Opcode::VFMINVF => Inst {
15956                opcode: 0x57,
15957                funct3: 0x5,
15958                rs1: 0x0,
15959                rs2: 0x0,
15960                csr: 0x100,
15961                funct7: 0x8,
15962            },
15963            Opcode::VFMINVV => Inst {
15964                opcode: 0x57,
15965                funct3: 0x1,
15966                rs1: 0x0,
15967                rs2: 0x0,
15968                csr: 0x100,
15969                funct7: 0x8,
15970            },
15971            Opcode::VFMSACVF => Inst {
15972                opcode: 0x57,
15973                funct3: 0x5,
15974                rs1: 0x0,
15975                rs2: 0x0,
15976                csr: 0xb80,
15977                funct7: 0x5c,
15978            },
15979            Opcode::VFMSACVV => Inst {
15980                opcode: 0x57,
15981                funct3: 0x1,
15982                rs1: 0x0,
15983                rs2: 0x0,
15984                csr: 0xb80,
15985                funct7: 0x5c,
15986            },
15987            Opcode::VFMSUBVF => Inst {
15988                opcode: 0x57,
15989                funct3: 0x5,
15990                rs1: 0x0,
15991                rs2: 0x0,
15992                csr: 0xa80,
15993                funct7: 0x54,
15994            },
15995            Opcode::VFMSUBVV => Inst {
15996                opcode: 0x57,
15997                funct3: 0x1,
15998                rs1: 0x0,
15999                rs2: 0x0,
16000                csr: 0xa80,
16001                funct7: 0x54,
16002            },
16003            Opcode::VFMULVF => Inst {
16004                opcode: 0x57,
16005                funct3: 0x5,
16006                rs1: 0x0,
16007                rs2: 0x0,
16008                csr: 0x900,
16009                funct7: 0x48,
16010            },
16011            Opcode::VFMULVV => Inst {
16012                opcode: 0x57,
16013                funct3: 0x1,
16014                rs1: 0x0,
16015                rs2: 0x0,
16016                csr: 0x900,
16017                funct7: 0x48,
16018            },
16019            Opcode::VFMVFS => Inst {
16020                opcode: 0x57,
16021                funct3: 0x1,
16022                rs1: 0x0,
16023                rs2: 0x0,
16024                csr: 0x420,
16025                funct7: 0x21,
16026            },
16027            Opcode::VFMVSF => Inst {
16028                opcode: 0x57,
16029                funct3: 0x5,
16030                rs1: 0x0,
16031                rs2: 0x0,
16032                csr: 0x420,
16033                funct7: 0x21,
16034            },
16035            Opcode::VFMVVF => Inst {
16036                opcode: 0x57,
16037                funct3: 0x5,
16038                rs1: 0x0,
16039                rs2: 0x0,
16040                csr: 0x5e0,
16041                funct7: 0x2f,
16042            },
16043            Opcode::VFNCVTFFW => Inst {
16044                opcode: 0x57,
16045                funct3: 0x1,
16046                rs1: 0x14,
16047                rs2: 0x0,
16048                csr: 0x480,
16049                funct7: 0x24,
16050            },
16051            Opcode::VFNCVTFXW => Inst {
16052                opcode: 0x57,
16053                funct3: 0x1,
16054                rs1: 0x13,
16055                rs2: 0x0,
16056                csr: 0x480,
16057                funct7: 0x24,
16058            },
16059            Opcode::VFNCVTFXUW => Inst {
16060                opcode: 0x57,
16061                funct3: 0x1,
16062                rs1: 0x12,
16063                rs2: 0x0,
16064                csr: 0x480,
16065                funct7: 0x24,
16066            },
16067            Opcode::VFNCVTRODFFW => Inst {
16068                opcode: 0x57,
16069                funct3: 0x1,
16070                rs1: 0x15,
16071                rs2: 0x0,
16072                csr: 0x480,
16073                funct7: 0x24,
16074            },
16075            Opcode::VFNCVTRTZXFW => Inst {
16076                opcode: 0x57,
16077                funct3: 0x1,
16078                rs1: 0x17,
16079                rs2: 0x0,
16080                csr: 0x480,
16081                funct7: 0x24,
16082            },
16083            Opcode::VFNCVTRTZXUFW => Inst {
16084                opcode: 0x57,
16085                funct3: 0x1,
16086                rs1: 0x16,
16087                rs2: 0x0,
16088                csr: 0x480,
16089                funct7: 0x24,
16090            },
16091            Opcode::VFNCVTXFW => Inst {
16092                opcode: 0x57,
16093                funct3: 0x1,
16094                rs1: 0x11,
16095                rs2: 0x0,
16096                csr: 0x480,
16097                funct7: 0x24,
16098            },
16099            Opcode::VFNCVTXUFW => Inst {
16100                opcode: 0x57,
16101                funct3: 0x1,
16102                rs1: 0x10,
16103                rs2: 0x0,
16104                csr: 0x480,
16105                funct7: 0x24,
16106            },
16107            Opcode::VFNMACCVF => Inst {
16108                opcode: 0x57,
16109                funct3: 0x5,
16110                rs1: 0x0,
16111                rs2: 0x0,
16112                csr: 0xb40,
16113                funct7: 0x5a,
16114            },
16115            Opcode::VFNMACCVV => Inst {
16116                opcode: 0x57,
16117                funct3: 0x1,
16118                rs1: 0x0,
16119                rs2: 0x0,
16120                csr: 0xb40,
16121                funct7: 0x5a,
16122            },
16123            Opcode::VFNMADDVF => Inst {
16124                opcode: 0x57,
16125                funct3: 0x5,
16126                rs1: 0x0,
16127                rs2: 0x0,
16128                csr: 0xa40,
16129                funct7: 0x52,
16130            },
16131            Opcode::VFNMADDVV => Inst {
16132                opcode: 0x57,
16133                funct3: 0x1,
16134                rs1: 0x0,
16135                rs2: 0x0,
16136                csr: 0xa40,
16137                funct7: 0x52,
16138            },
16139            Opcode::VFNMSACVF => Inst {
16140                opcode: 0x57,
16141                funct3: 0x5,
16142                rs1: 0x0,
16143                rs2: 0x0,
16144                csr: 0xbc0,
16145                funct7: 0x5e,
16146            },
16147            Opcode::VFNMSACVV => Inst {
16148                opcode: 0x57,
16149                funct3: 0x1,
16150                rs1: 0x0,
16151                rs2: 0x0,
16152                csr: 0xbc0,
16153                funct7: 0x5e,
16154            },
16155            Opcode::VFNMSUBVF => Inst {
16156                opcode: 0x57,
16157                funct3: 0x5,
16158                rs1: 0x0,
16159                rs2: 0x0,
16160                csr: 0xac0,
16161                funct7: 0x56,
16162            },
16163            Opcode::VFNMSUBVV => Inst {
16164                opcode: 0x57,
16165                funct3: 0x1,
16166                rs1: 0x0,
16167                rs2: 0x0,
16168                csr: 0xac0,
16169                funct7: 0x56,
16170            },
16171            Opcode::VFRDIVVF => Inst {
16172                opcode: 0x57,
16173                funct3: 0x5,
16174                rs1: 0x0,
16175                rs2: 0x0,
16176                csr: 0x840,
16177                funct7: 0x42,
16178            },
16179            Opcode::VFREC7V => Inst {
16180                opcode: 0x57,
16181                funct3: 0x1,
16182                rs1: 0x5,
16183                rs2: 0x0,
16184                csr: 0x4c0,
16185                funct7: 0x26,
16186            },
16187            Opcode::VFREDMAXVS => Inst {
16188                opcode: 0x57,
16189                funct3: 0x1,
16190                rs1: 0x0,
16191                rs2: 0x0,
16192                csr: 0x1c0,
16193                funct7: 0xe,
16194            },
16195            Opcode::VFREDMINVS => Inst {
16196                opcode: 0x57,
16197                funct3: 0x1,
16198                rs1: 0x0,
16199                rs2: 0x0,
16200                csr: 0x140,
16201                funct7: 0xa,
16202            },
16203            Opcode::VFREDOSUMVS => Inst {
16204                opcode: 0x57,
16205                funct3: 0x1,
16206                rs1: 0x0,
16207                rs2: 0x0,
16208                csr: 0xc0,
16209                funct7: 0x6,
16210            },
16211            Opcode::VFREDSUMVS => Inst {
16212                opcode: 0x57,
16213                funct3: 0x1,
16214                rs1: 0x0,
16215                rs2: 0x0,
16216                csr: 0x40,
16217                funct7: 0x2,
16218            },
16219            Opcode::VFREDUSUMVS => Inst {
16220                opcode: 0x57,
16221                funct3: 0x1,
16222                rs1: 0x0,
16223                rs2: 0x0,
16224                csr: 0x40,
16225                funct7: 0x2,
16226            },
16227            Opcode::VFRSQRT7V => Inst {
16228                opcode: 0x57,
16229                funct3: 0x1,
16230                rs1: 0x4,
16231                rs2: 0x0,
16232                csr: 0x4c0,
16233                funct7: 0x26,
16234            },
16235            Opcode::VFRSUBVF => Inst {
16236                opcode: 0x57,
16237                funct3: 0x5,
16238                rs1: 0x0,
16239                rs2: 0x0,
16240                csr: 0x9c0,
16241                funct7: 0x4e,
16242            },
16243            Opcode::VFSGNJVF => Inst {
16244                opcode: 0x57,
16245                funct3: 0x5,
16246                rs1: 0x0,
16247                rs2: 0x0,
16248                csr: 0x200,
16249                funct7: 0x10,
16250            },
16251            Opcode::VFSGNJVV => Inst {
16252                opcode: 0x57,
16253                funct3: 0x1,
16254                rs1: 0x0,
16255                rs2: 0x0,
16256                csr: 0x200,
16257                funct7: 0x10,
16258            },
16259            Opcode::VFSGNJNVF => Inst {
16260                opcode: 0x57,
16261                funct3: 0x5,
16262                rs1: 0x0,
16263                rs2: 0x0,
16264                csr: 0x240,
16265                funct7: 0x12,
16266            },
16267            Opcode::VFSGNJNVV => Inst {
16268                opcode: 0x57,
16269                funct3: 0x1,
16270                rs1: 0x0,
16271                rs2: 0x0,
16272                csr: 0x240,
16273                funct7: 0x12,
16274            },
16275            Opcode::VFSGNJXVF => Inst {
16276                opcode: 0x57,
16277                funct3: 0x5,
16278                rs1: 0x0,
16279                rs2: 0x0,
16280                csr: 0x280,
16281                funct7: 0x14,
16282            },
16283            Opcode::VFSGNJXVV => Inst {
16284                opcode: 0x57,
16285                funct3: 0x1,
16286                rs1: 0x0,
16287                rs2: 0x0,
16288                csr: 0x280,
16289                funct7: 0x14,
16290            },
16291            Opcode::VFSLIDE1DOWNVF => Inst {
16292                opcode: 0x57,
16293                funct3: 0x5,
16294                rs1: 0x0,
16295                rs2: 0x0,
16296                csr: 0x3c0,
16297                funct7: 0x1e,
16298            },
16299            Opcode::VFSLIDE1UPVF => Inst {
16300                opcode: 0x57,
16301                funct3: 0x5,
16302                rs1: 0x0,
16303                rs2: 0x0,
16304                csr: 0x380,
16305                funct7: 0x1c,
16306            },
16307            Opcode::VFSQRTV => Inst {
16308                opcode: 0x57,
16309                funct3: 0x1,
16310                rs1: 0x0,
16311                rs2: 0x0,
16312                csr: 0x4c0,
16313                funct7: 0x26,
16314            },
16315            Opcode::VFSUBVF => Inst {
16316                opcode: 0x57,
16317                funct3: 0x5,
16318                rs1: 0x0,
16319                rs2: 0x0,
16320                csr: 0x80,
16321                funct7: 0x4,
16322            },
16323            Opcode::VFSUBVV => Inst {
16324                opcode: 0x57,
16325                funct3: 0x1,
16326                rs1: 0x0,
16327                rs2: 0x0,
16328                csr: 0x80,
16329                funct7: 0x4,
16330            },
16331            Opcode::VFWADDVF => Inst {
16332                opcode: 0x57,
16333                funct3: 0x5,
16334                rs1: 0x0,
16335                rs2: 0x0,
16336                csr: 0xc00,
16337                funct7: 0x60,
16338            },
16339            Opcode::VFWADDVV => Inst {
16340                opcode: 0x57,
16341                funct3: 0x1,
16342                rs1: 0x0,
16343                rs2: 0x0,
16344                csr: 0xc00,
16345                funct7: 0x60,
16346            },
16347            Opcode::VFWADDWF => Inst {
16348                opcode: 0x57,
16349                funct3: 0x5,
16350                rs1: 0x0,
16351                rs2: 0x0,
16352                csr: 0xd00,
16353                funct7: 0x68,
16354            },
16355            Opcode::VFWADDWV => Inst {
16356                opcode: 0x57,
16357                funct3: 0x1,
16358                rs1: 0x0,
16359                rs2: 0x0,
16360                csr: 0xd00,
16361                funct7: 0x68,
16362            },
16363            Opcode::VFWCVTFFV => Inst {
16364                opcode: 0x57,
16365                funct3: 0x1,
16366                rs1: 0xc,
16367                rs2: 0x0,
16368                csr: 0x480,
16369                funct7: 0x24,
16370            },
16371            Opcode::VFWCVTFXV => Inst {
16372                opcode: 0x57,
16373                funct3: 0x1,
16374                rs1: 0xb,
16375                rs2: 0x0,
16376                csr: 0x480,
16377                funct7: 0x24,
16378            },
16379            Opcode::VFWCVTFXUV => Inst {
16380                opcode: 0x57,
16381                funct3: 0x1,
16382                rs1: 0xa,
16383                rs2: 0x0,
16384                csr: 0x480,
16385                funct7: 0x24,
16386            },
16387            Opcode::VFWCVTRTZXFV => Inst {
16388                opcode: 0x57,
16389                funct3: 0x1,
16390                rs1: 0xf,
16391                rs2: 0x0,
16392                csr: 0x480,
16393                funct7: 0x24,
16394            },
16395            Opcode::VFWCVTRTZXUFV => Inst {
16396                opcode: 0x57,
16397                funct3: 0x1,
16398                rs1: 0xe,
16399                rs2: 0x0,
16400                csr: 0x480,
16401                funct7: 0x24,
16402            },
16403            Opcode::VFWCVTXFV => Inst {
16404                opcode: 0x57,
16405                funct3: 0x1,
16406                rs1: 0x9,
16407                rs2: 0x0,
16408                csr: 0x480,
16409                funct7: 0x24,
16410            },
16411            Opcode::VFWCVTXUFV => Inst {
16412                opcode: 0x57,
16413                funct3: 0x1,
16414                rs1: 0x8,
16415                rs2: 0x0,
16416                csr: 0x480,
16417                funct7: 0x24,
16418            },
16419            Opcode::VFWMACCVF => Inst {
16420                opcode: 0x57,
16421                funct3: 0x5,
16422                rs1: 0x0,
16423                rs2: 0x0,
16424                csr: 0xf00,
16425                funct7: 0x78,
16426            },
16427            Opcode::VFWMACCVV => Inst {
16428                opcode: 0x57,
16429                funct3: 0x1,
16430                rs1: 0x0,
16431                rs2: 0x0,
16432                csr: 0xf00,
16433                funct7: 0x78,
16434            },
16435            Opcode::VFWMSACVF => Inst {
16436                opcode: 0x57,
16437                funct3: 0x5,
16438                rs1: 0x0,
16439                rs2: 0x0,
16440                csr: 0xf80,
16441                funct7: 0x7c,
16442            },
16443            Opcode::VFWMSACVV => Inst {
16444                opcode: 0x57,
16445                funct3: 0x1,
16446                rs1: 0x0,
16447                rs2: 0x0,
16448                csr: 0xf80,
16449                funct7: 0x7c,
16450            },
16451            Opcode::VFWMULVF => Inst {
16452                opcode: 0x57,
16453                funct3: 0x5,
16454                rs1: 0x0,
16455                rs2: 0x0,
16456                csr: 0xe00,
16457                funct7: 0x70,
16458            },
16459            Opcode::VFWMULVV => Inst {
16460                opcode: 0x57,
16461                funct3: 0x1,
16462                rs1: 0x0,
16463                rs2: 0x0,
16464                csr: 0xe00,
16465                funct7: 0x70,
16466            },
16467            Opcode::VFWNMACCVF => Inst {
16468                opcode: 0x57,
16469                funct3: 0x5,
16470                rs1: 0x0,
16471                rs2: 0x0,
16472                csr: 0xf40,
16473                funct7: 0x7a,
16474            },
16475            Opcode::VFWNMACCVV => Inst {
16476                opcode: 0x57,
16477                funct3: 0x1,
16478                rs1: 0x0,
16479                rs2: 0x0,
16480                csr: 0xf40,
16481                funct7: 0x7a,
16482            },
16483            Opcode::VFWNMSACVF => Inst {
16484                opcode: 0x57,
16485                funct3: 0x5,
16486                rs1: 0x0,
16487                rs2: 0x0,
16488                csr: 0xfc0,
16489                funct7: 0x7e,
16490            },
16491            Opcode::VFWNMSACVV => Inst {
16492                opcode: 0x57,
16493                funct3: 0x1,
16494                rs1: 0x0,
16495                rs2: 0x0,
16496                csr: 0xfc0,
16497                funct7: 0x7e,
16498            },
16499            Opcode::VFWREDOSUMVS => Inst {
16500                opcode: 0x57,
16501                funct3: 0x1,
16502                rs1: 0x0,
16503                rs2: 0x0,
16504                csr: 0xcc0,
16505                funct7: 0x66,
16506            },
16507            Opcode::VFWREDSUMVS => Inst {
16508                opcode: 0x57,
16509                funct3: 0x1,
16510                rs1: 0x0,
16511                rs2: 0x0,
16512                csr: 0xc40,
16513                funct7: 0x62,
16514            },
16515            Opcode::VFWREDUSUMVS => Inst {
16516                opcode: 0x57,
16517                funct3: 0x1,
16518                rs1: 0x0,
16519                rs2: 0x0,
16520                csr: 0xc40,
16521                funct7: 0x62,
16522            },
16523            Opcode::VFWSUBVF => Inst {
16524                opcode: 0x57,
16525                funct3: 0x5,
16526                rs1: 0x0,
16527                rs2: 0x0,
16528                csr: 0xc80,
16529                funct7: 0x64,
16530            },
16531            Opcode::VFWSUBVV => Inst {
16532                opcode: 0x57,
16533                funct3: 0x1,
16534                rs1: 0x0,
16535                rs2: 0x0,
16536                csr: 0xc80,
16537                funct7: 0x64,
16538            },
16539            Opcode::VFWSUBWF => Inst {
16540                opcode: 0x57,
16541                funct3: 0x5,
16542                rs1: 0x0,
16543                rs2: 0x0,
16544                csr: 0xd80,
16545                funct7: 0x6c,
16546            },
16547            Opcode::VFWSUBWV => Inst {
16548                opcode: 0x57,
16549                funct3: 0x1,
16550                rs1: 0x0,
16551                rs2: 0x0,
16552                csr: 0xd80,
16553                funct7: 0x6c,
16554            },
16555            Opcode::VGHSHVV => Inst {
16556                opcode: 0x77,
16557                funct3: 0x2,
16558                rs1: 0x0,
16559                rs2: 0x0,
16560                csr: 0xb20,
16561                funct7: 0x59,
16562            },
16563            Opcode::VGMULVV => Inst {
16564                opcode: 0x77,
16565                funct3: 0x2,
16566                rs1: 0x11,
16567                rs2: 0x0,
16568                csr: 0xa20,
16569                funct7: 0x51,
16570            },
16571            Opcode::VIDV => Inst {
16572                opcode: 0x57,
16573                funct3: 0x2,
16574                rs1: 0x11,
16575                rs2: 0x0,
16576                csr: 0x500,
16577                funct7: 0x28,
16578            },
16579            Opcode::VIOTAM => Inst {
16580                opcode: 0x57,
16581                funct3: 0x2,
16582                rs1: 0x10,
16583                rs2: 0x0,
16584                csr: 0x500,
16585                funct7: 0x28,
16586            },
16587            Opcode::VL1RV => Inst {
16588                opcode: 0x7,
16589                funct3: 0x0,
16590                rs1: 0x0,
16591                rs2: 0x8,
16592                csr: 0x28,
16593                funct7: 0x1,
16594            },
16595            Opcode::VL1RE16V => Inst {
16596                opcode: 0x7,
16597                funct3: 0x5,
16598                rs1: 0x0,
16599                rs2: 0x8,
16600                csr: 0x28,
16601                funct7: 0x1,
16602            },
16603            Opcode::VL1RE32V => Inst {
16604                opcode: 0x7,
16605                funct3: 0x6,
16606                rs1: 0x0,
16607                rs2: 0x8,
16608                csr: 0x28,
16609                funct7: 0x1,
16610            },
16611            Opcode::VL1RE64V => Inst {
16612                opcode: 0x7,
16613                funct3: 0x7,
16614                rs1: 0x0,
16615                rs2: 0x8,
16616                csr: 0x28,
16617                funct7: 0x1,
16618            },
16619            Opcode::VL1RE8V => Inst {
16620                opcode: 0x7,
16621                funct3: 0x0,
16622                rs1: 0x0,
16623                rs2: 0x8,
16624                csr: 0x28,
16625                funct7: 0x1,
16626            },
16627            Opcode::VL2RV => Inst {
16628                opcode: 0x7,
16629                funct3: 0x0,
16630                rs1: 0x0,
16631                rs2: 0x8,
16632                csr: 0x228,
16633                funct7: 0x11,
16634            },
16635            Opcode::VL2RE16V => Inst {
16636                opcode: 0x7,
16637                funct3: 0x5,
16638                rs1: 0x0,
16639                rs2: 0x8,
16640                csr: 0x228,
16641                funct7: 0x11,
16642            },
16643            Opcode::VL2RE32V => Inst {
16644                opcode: 0x7,
16645                funct3: 0x6,
16646                rs1: 0x0,
16647                rs2: 0x8,
16648                csr: 0x228,
16649                funct7: 0x11,
16650            },
16651            Opcode::VL2RE64V => Inst {
16652                opcode: 0x7,
16653                funct3: 0x7,
16654                rs1: 0x0,
16655                rs2: 0x8,
16656                csr: 0x228,
16657                funct7: 0x11,
16658            },
16659            Opcode::VL2RE8V => Inst {
16660                opcode: 0x7,
16661                funct3: 0x0,
16662                rs1: 0x0,
16663                rs2: 0x8,
16664                csr: 0x228,
16665                funct7: 0x11,
16666            },
16667            Opcode::VL4RV => Inst {
16668                opcode: 0x7,
16669                funct3: 0x0,
16670                rs1: 0x0,
16671                rs2: 0x8,
16672                csr: 0x628,
16673                funct7: 0x31,
16674            },
16675            Opcode::VL4RE16V => Inst {
16676                opcode: 0x7,
16677                funct3: 0x5,
16678                rs1: 0x0,
16679                rs2: 0x8,
16680                csr: 0x628,
16681                funct7: 0x31,
16682            },
16683            Opcode::VL4RE32V => Inst {
16684                opcode: 0x7,
16685                funct3: 0x6,
16686                rs1: 0x0,
16687                rs2: 0x8,
16688                csr: 0x628,
16689                funct7: 0x31,
16690            },
16691            Opcode::VL4RE64V => Inst {
16692                opcode: 0x7,
16693                funct3: 0x7,
16694                rs1: 0x0,
16695                rs2: 0x8,
16696                csr: 0x628,
16697                funct7: 0x31,
16698            },
16699            Opcode::VL4RE8V => Inst {
16700                opcode: 0x7,
16701                funct3: 0x0,
16702                rs1: 0x0,
16703                rs2: 0x8,
16704                csr: 0x628,
16705                funct7: 0x31,
16706            },
16707            Opcode::VL8RV => Inst {
16708                opcode: 0x7,
16709                funct3: 0x0,
16710                rs1: 0x0,
16711                rs2: 0x8,
16712                csr: 0xe28,
16713                funct7: 0x71,
16714            },
16715            Opcode::VL8RE16V => Inst {
16716                opcode: 0x7,
16717                funct3: 0x5,
16718                rs1: 0x0,
16719                rs2: 0x8,
16720                csr: 0xe28,
16721                funct7: 0x71,
16722            },
16723            Opcode::VL8RE32V => Inst {
16724                opcode: 0x7,
16725                funct3: 0x6,
16726                rs1: 0x0,
16727                rs2: 0x8,
16728                csr: 0xe28,
16729                funct7: 0x71,
16730            },
16731            Opcode::VL8RE64V => Inst {
16732                opcode: 0x7,
16733                funct3: 0x7,
16734                rs1: 0x0,
16735                rs2: 0x8,
16736                csr: 0xe28,
16737                funct7: 0x71,
16738            },
16739            Opcode::VL8RE8V => Inst {
16740                opcode: 0x7,
16741                funct3: 0x0,
16742                rs1: 0x0,
16743                rs2: 0x8,
16744                csr: 0xe28,
16745                funct7: 0x71,
16746            },
16747            Opcode::VLE16V => Inst {
16748                opcode: 0x7,
16749                funct3: 0x5,
16750                rs1: 0x0,
16751                rs2: 0x0,
16752                csr: 0x0,
16753                funct7: 0x0,
16754            },
16755            Opcode::VLE16FFV => Inst {
16756                opcode: 0x7,
16757                funct3: 0x5,
16758                rs1: 0x0,
16759                rs2: 0x10,
16760                csr: 0x10,
16761                funct7: 0x0,
16762            },
16763            Opcode::VLE1V => Inst {
16764                opcode: 0x7,
16765                funct3: 0x0,
16766                rs1: 0x0,
16767                rs2: 0xb,
16768                csr: 0x2b,
16769                funct7: 0x1,
16770            },
16771            Opcode::VLE32V => Inst {
16772                opcode: 0x7,
16773                funct3: 0x6,
16774                rs1: 0x0,
16775                rs2: 0x0,
16776                csr: 0x0,
16777                funct7: 0x0,
16778            },
16779            Opcode::VLE32FFV => Inst {
16780                opcode: 0x7,
16781                funct3: 0x6,
16782                rs1: 0x0,
16783                rs2: 0x10,
16784                csr: 0x10,
16785                funct7: 0x0,
16786            },
16787            Opcode::VLE64V => Inst {
16788                opcode: 0x7,
16789                funct3: 0x7,
16790                rs1: 0x0,
16791                rs2: 0x0,
16792                csr: 0x0,
16793                funct7: 0x0,
16794            },
16795            Opcode::VLE64FFV => Inst {
16796                opcode: 0x7,
16797                funct3: 0x7,
16798                rs1: 0x0,
16799                rs2: 0x10,
16800                csr: 0x10,
16801                funct7: 0x0,
16802            },
16803            Opcode::VLE8V => Inst {
16804                opcode: 0x7,
16805                funct3: 0x0,
16806                rs1: 0x0,
16807                rs2: 0x0,
16808                csr: 0x0,
16809                funct7: 0x0,
16810            },
16811            Opcode::VLE8FFV => Inst {
16812                opcode: 0x7,
16813                funct3: 0x0,
16814                rs1: 0x0,
16815                rs2: 0x10,
16816                csr: 0x10,
16817                funct7: 0x0,
16818            },
16819            Opcode::VLMV => Inst {
16820                opcode: 0x7,
16821                funct3: 0x0,
16822                rs1: 0x0,
16823                rs2: 0xb,
16824                csr: 0x2b,
16825                funct7: 0x1,
16826            },
16827            Opcode::VLOXEI16V => Inst {
16828                opcode: 0x7,
16829                funct3: 0x5,
16830                rs1: 0x0,
16831                rs2: 0x0,
16832                csr: 0xc0,
16833                funct7: 0x6,
16834            },
16835            Opcode::VLOXEI32V => Inst {
16836                opcode: 0x7,
16837                funct3: 0x6,
16838                rs1: 0x0,
16839                rs2: 0x0,
16840                csr: 0xc0,
16841                funct7: 0x6,
16842            },
16843            Opcode::VLOXEI64V => Inst {
16844                opcode: 0x7,
16845                funct3: 0x7,
16846                rs1: 0x0,
16847                rs2: 0x0,
16848                csr: 0xc0,
16849                funct7: 0x6,
16850            },
16851            Opcode::VLOXEI8V => Inst {
16852                opcode: 0x7,
16853                funct3: 0x0,
16854                rs1: 0x0,
16855                rs2: 0x0,
16856                csr: 0xc0,
16857                funct7: 0x6,
16858            },
16859            Opcode::VLSE16V => Inst {
16860                opcode: 0x7,
16861                funct3: 0x5,
16862                rs1: 0x0,
16863                rs2: 0x0,
16864                csr: 0x80,
16865                funct7: 0x4,
16866            },
16867            Opcode::VLSE32V => Inst {
16868                opcode: 0x7,
16869                funct3: 0x6,
16870                rs1: 0x0,
16871                rs2: 0x0,
16872                csr: 0x80,
16873                funct7: 0x4,
16874            },
16875            Opcode::VLSE64V => Inst {
16876                opcode: 0x7,
16877                funct3: 0x7,
16878                rs1: 0x0,
16879                rs2: 0x0,
16880                csr: 0x80,
16881                funct7: 0x4,
16882            },
16883            Opcode::VLSE8V => Inst {
16884                opcode: 0x7,
16885                funct3: 0x0,
16886                rs1: 0x0,
16887                rs2: 0x0,
16888                csr: 0x80,
16889                funct7: 0x4,
16890            },
16891            Opcode::VLUXEI16V => Inst {
16892                opcode: 0x7,
16893                funct3: 0x5,
16894                rs1: 0x0,
16895                rs2: 0x0,
16896                csr: 0x40,
16897                funct7: 0x2,
16898            },
16899            Opcode::VLUXEI32V => Inst {
16900                opcode: 0x7,
16901                funct3: 0x6,
16902                rs1: 0x0,
16903                rs2: 0x0,
16904                csr: 0x40,
16905                funct7: 0x2,
16906            },
16907            Opcode::VLUXEI64V => Inst {
16908                opcode: 0x7,
16909                funct3: 0x7,
16910                rs1: 0x0,
16911                rs2: 0x0,
16912                csr: 0x40,
16913                funct7: 0x2,
16914            },
16915            Opcode::VLUXEI8V => Inst {
16916                opcode: 0x7,
16917                funct3: 0x0,
16918                rs1: 0x0,
16919                rs2: 0x0,
16920                csr: 0x40,
16921                funct7: 0x2,
16922            },
16923            Opcode::VMACCVV => Inst {
16924                opcode: 0x57,
16925                funct3: 0x2,
16926                rs1: 0x0,
16927                rs2: 0x0,
16928                csr: 0xb40,
16929                funct7: 0x5a,
16930            },
16931            Opcode::VMACCVX => Inst {
16932                opcode: 0x57,
16933                funct3: 0x6,
16934                rs1: 0x0,
16935                rs2: 0x0,
16936                csr: 0xb40,
16937                funct7: 0x5a,
16938            },
16939            Opcode::VMADCVI => Inst {
16940                opcode: 0x57,
16941                funct3: 0x3,
16942                rs1: 0x0,
16943                rs2: 0x0,
16944                csr: 0x460,
16945                funct7: 0x23,
16946            },
16947            Opcode::VMADCVIM => Inst {
16948                opcode: 0x57,
16949                funct3: 0x3,
16950                rs1: 0x0,
16951                rs2: 0x0,
16952                csr: 0x440,
16953                funct7: 0x22,
16954            },
16955            Opcode::VMADCVV => Inst {
16956                opcode: 0x57,
16957                funct3: 0x0,
16958                rs1: 0x0,
16959                rs2: 0x0,
16960                csr: 0x460,
16961                funct7: 0x23,
16962            },
16963            Opcode::VMADCVVM => Inst {
16964                opcode: 0x57,
16965                funct3: 0x0,
16966                rs1: 0x0,
16967                rs2: 0x0,
16968                csr: 0x440,
16969                funct7: 0x22,
16970            },
16971            Opcode::VMADCVX => Inst {
16972                opcode: 0x57,
16973                funct3: 0x4,
16974                rs1: 0x0,
16975                rs2: 0x0,
16976                csr: 0x460,
16977                funct7: 0x23,
16978            },
16979            Opcode::VMADCVXM => Inst {
16980                opcode: 0x57,
16981                funct3: 0x4,
16982                rs1: 0x0,
16983                rs2: 0x0,
16984                csr: 0x440,
16985                funct7: 0x22,
16986            },
16987            Opcode::VMADDVV => Inst {
16988                opcode: 0x57,
16989                funct3: 0x2,
16990                rs1: 0x0,
16991                rs2: 0x0,
16992                csr: 0xa40,
16993                funct7: 0x52,
16994            },
16995            Opcode::VMADDVX => Inst {
16996                opcode: 0x57,
16997                funct3: 0x6,
16998                rs1: 0x0,
16999                rs2: 0x0,
17000                csr: 0xa40,
17001                funct7: 0x52,
17002            },
17003            Opcode::VMANDMM => Inst {
17004                opcode: 0x57,
17005                funct3: 0x2,
17006                rs1: 0x0,
17007                rs2: 0x0,
17008                csr: 0x660,
17009                funct7: 0x33,
17010            },
17011            Opcode::VMANDNMM => Inst {
17012                opcode: 0x57,
17013                funct3: 0x2,
17014                rs1: 0x0,
17015                rs2: 0x0,
17016                csr: 0x620,
17017                funct7: 0x31,
17018            },
17019            Opcode::VMANDNOTMM => Inst {
17020                opcode: 0x57,
17021                funct3: 0x2,
17022                rs1: 0x0,
17023                rs2: 0x0,
17024                csr: 0x600,
17025                funct7: 0x30,
17026            },
17027            Opcode::VMAXVV => Inst {
17028                opcode: 0x57,
17029                funct3: 0x0,
17030                rs1: 0x0,
17031                rs2: 0x0,
17032                csr: 0x1c0,
17033                funct7: 0xe,
17034            },
17035            Opcode::VMAXVX => Inst {
17036                opcode: 0x57,
17037                funct3: 0x4,
17038                rs1: 0x0,
17039                rs2: 0x0,
17040                csr: 0x1c0,
17041                funct7: 0xe,
17042            },
17043            Opcode::VMAXUVV => Inst {
17044                opcode: 0x57,
17045                funct3: 0x0,
17046                rs1: 0x0,
17047                rs2: 0x0,
17048                csr: 0x180,
17049                funct7: 0xc,
17050            },
17051            Opcode::VMAXUVX => Inst {
17052                opcode: 0x57,
17053                funct3: 0x4,
17054                rs1: 0x0,
17055                rs2: 0x0,
17056                csr: 0x180,
17057                funct7: 0xc,
17058            },
17059            Opcode::VMERGEVIM => Inst {
17060                opcode: 0x57,
17061                funct3: 0x3,
17062                rs1: 0x0,
17063                rs2: 0x0,
17064                csr: 0x5c0,
17065                funct7: 0x2e,
17066            },
17067            Opcode::VMERGEVVM => Inst {
17068                opcode: 0x57,
17069                funct3: 0x0,
17070                rs1: 0x0,
17071                rs2: 0x0,
17072                csr: 0x5c0,
17073                funct7: 0x2e,
17074            },
17075            Opcode::VMERGEVXM => Inst {
17076                opcode: 0x57,
17077                funct3: 0x4,
17078                rs1: 0x0,
17079                rs2: 0x0,
17080                csr: 0x5c0,
17081                funct7: 0x2e,
17082            },
17083            Opcode::VMFEQVF => Inst {
17084                opcode: 0x57,
17085                funct3: 0x5,
17086                rs1: 0x0,
17087                rs2: 0x0,
17088                csr: 0x600,
17089                funct7: 0x30,
17090            },
17091            Opcode::VMFEQVV => Inst {
17092                opcode: 0x57,
17093                funct3: 0x1,
17094                rs1: 0x0,
17095                rs2: 0x0,
17096                csr: 0x600,
17097                funct7: 0x30,
17098            },
17099            Opcode::VMFGEVF => Inst {
17100                opcode: 0x57,
17101                funct3: 0x5,
17102                rs1: 0x0,
17103                rs2: 0x0,
17104                csr: 0x7c0,
17105                funct7: 0x3e,
17106            },
17107            Opcode::VMFGTVF => Inst {
17108                opcode: 0x57,
17109                funct3: 0x5,
17110                rs1: 0x0,
17111                rs2: 0x0,
17112                csr: 0x740,
17113                funct7: 0x3a,
17114            },
17115            Opcode::VMFLEVF => Inst {
17116                opcode: 0x57,
17117                funct3: 0x5,
17118                rs1: 0x0,
17119                rs2: 0x0,
17120                csr: 0x640,
17121                funct7: 0x32,
17122            },
17123            Opcode::VMFLEVV => Inst {
17124                opcode: 0x57,
17125                funct3: 0x1,
17126                rs1: 0x0,
17127                rs2: 0x0,
17128                csr: 0x640,
17129                funct7: 0x32,
17130            },
17131            Opcode::VMFLTVF => Inst {
17132                opcode: 0x57,
17133                funct3: 0x5,
17134                rs1: 0x0,
17135                rs2: 0x0,
17136                csr: 0x6c0,
17137                funct7: 0x36,
17138            },
17139            Opcode::VMFLTVV => Inst {
17140                opcode: 0x57,
17141                funct3: 0x1,
17142                rs1: 0x0,
17143                rs2: 0x0,
17144                csr: 0x6c0,
17145                funct7: 0x36,
17146            },
17147            Opcode::VMFNEVF => Inst {
17148                opcode: 0x57,
17149                funct3: 0x5,
17150                rs1: 0x0,
17151                rs2: 0x0,
17152                csr: 0x700,
17153                funct7: 0x38,
17154            },
17155            Opcode::VMFNEVV => Inst {
17156                opcode: 0x57,
17157                funct3: 0x1,
17158                rs1: 0x0,
17159                rs2: 0x0,
17160                csr: 0x700,
17161                funct7: 0x38,
17162            },
17163            Opcode::VMINVV => Inst {
17164                opcode: 0x57,
17165                funct3: 0x0,
17166                rs1: 0x0,
17167                rs2: 0x0,
17168                csr: 0x140,
17169                funct7: 0xa,
17170            },
17171            Opcode::VMINVX => Inst {
17172                opcode: 0x57,
17173                funct3: 0x4,
17174                rs1: 0x0,
17175                rs2: 0x0,
17176                csr: 0x140,
17177                funct7: 0xa,
17178            },
17179            Opcode::VMINUVV => Inst {
17180                opcode: 0x57,
17181                funct3: 0x0,
17182                rs1: 0x0,
17183                rs2: 0x0,
17184                csr: 0x100,
17185                funct7: 0x8,
17186            },
17187            Opcode::VMINUVX => Inst {
17188                opcode: 0x57,
17189                funct3: 0x4,
17190                rs1: 0x0,
17191                rs2: 0x0,
17192                csr: 0x100,
17193                funct7: 0x8,
17194            },
17195            Opcode::VMNANDMM => Inst {
17196                opcode: 0x57,
17197                funct3: 0x2,
17198                rs1: 0x0,
17199                rs2: 0x0,
17200                csr: 0x760,
17201                funct7: 0x3b,
17202            },
17203            Opcode::VMNORMM => Inst {
17204                opcode: 0x57,
17205                funct3: 0x2,
17206                rs1: 0x0,
17207                rs2: 0x0,
17208                csr: 0x7a0,
17209                funct7: 0x3d,
17210            },
17211            Opcode::VMORMM => Inst {
17212                opcode: 0x57,
17213                funct3: 0x2,
17214                rs1: 0x0,
17215                rs2: 0x0,
17216                csr: 0x6a0,
17217                funct7: 0x35,
17218            },
17219            Opcode::VMORNMM => Inst {
17220                opcode: 0x57,
17221                funct3: 0x2,
17222                rs1: 0x0,
17223                rs2: 0x0,
17224                csr: 0x720,
17225                funct7: 0x39,
17226            },
17227            Opcode::VMORNOTMM => Inst {
17228                opcode: 0x57,
17229                funct3: 0x2,
17230                rs1: 0x0,
17231                rs2: 0x0,
17232                csr: 0x700,
17233                funct7: 0x38,
17234            },
17235            Opcode::VMSBCVV => Inst {
17236                opcode: 0x57,
17237                funct3: 0x0,
17238                rs1: 0x0,
17239                rs2: 0x0,
17240                csr: 0x4e0,
17241                funct7: 0x27,
17242            },
17243            Opcode::VMSBCVVM => Inst {
17244                opcode: 0x57,
17245                funct3: 0x0,
17246                rs1: 0x0,
17247                rs2: 0x0,
17248                csr: 0x4c0,
17249                funct7: 0x26,
17250            },
17251            Opcode::VMSBCVX => Inst {
17252                opcode: 0x57,
17253                funct3: 0x4,
17254                rs1: 0x0,
17255                rs2: 0x0,
17256                csr: 0x4e0,
17257                funct7: 0x27,
17258            },
17259            Opcode::VMSBCVXM => Inst {
17260                opcode: 0x57,
17261                funct3: 0x4,
17262                rs1: 0x0,
17263                rs2: 0x0,
17264                csr: 0x4c0,
17265                funct7: 0x26,
17266            },
17267            Opcode::VMSBFM => Inst {
17268                opcode: 0x57,
17269                funct3: 0x2,
17270                rs1: 0x1,
17271                rs2: 0x0,
17272                csr: 0x500,
17273                funct7: 0x28,
17274            },
17275            Opcode::VMSEQVI => Inst {
17276                opcode: 0x57,
17277                funct3: 0x3,
17278                rs1: 0x0,
17279                rs2: 0x0,
17280                csr: 0x600,
17281                funct7: 0x30,
17282            },
17283            Opcode::VMSEQVV => Inst {
17284                opcode: 0x57,
17285                funct3: 0x0,
17286                rs1: 0x0,
17287                rs2: 0x0,
17288                csr: 0x600,
17289                funct7: 0x30,
17290            },
17291            Opcode::VMSEQVX => Inst {
17292                opcode: 0x57,
17293                funct3: 0x4,
17294                rs1: 0x0,
17295                rs2: 0x0,
17296                csr: 0x600,
17297                funct7: 0x30,
17298            },
17299            Opcode::VMSGTVI => Inst {
17300                opcode: 0x57,
17301                funct3: 0x3,
17302                rs1: 0x0,
17303                rs2: 0x0,
17304                csr: 0x7c0,
17305                funct7: 0x3e,
17306            },
17307            Opcode::VMSGTVX => Inst {
17308                opcode: 0x57,
17309                funct3: 0x4,
17310                rs1: 0x0,
17311                rs2: 0x0,
17312                csr: 0x7c0,
17313                funct7: 0x3e,
17314            },
17315            Opcode::VMSGTUVI => Inst {
17316                opcode: 0x57,
17317                funct3: 0x3,
17318                rs1: 0x0,
17319                rs2: 0x0,
17320                csr: 0x780,
17321                funct7: 0x3c,
17322            },
17323            Opcode::VMSGTUVX => Inst {
17324                opcode: 0x57,
17325                funct3: 0x4,
17326                rs1: 0x0,
17327                rs2: 0x0,
17328                csr: 0x780,
17329                funct7: 0x3c,
17330            },
17331            Opcode::VMSIFM => Inst {
17332                opcode: 0x57,
17333                funct3: 0x2,
17334                rs1: 0x3,
17335                rs2: 0x0,
17336                csr: 0x500,
17337                funct7: 0x28,
17338            },
17339            Opcode::VMSLEVI => Inst {
17340                opcode: 0x57,
17341                funct3: 0x3,
17342                rs1: 0x0,
17343                rs2: 0x0,
17344                csr: 0x740,
17345                funct7: 0x3a,
17346            },
17347            Opcode::VMSLEVV => Inst {
17348                opcode: 0x57,
17349                funct3: 0x0,
17350                rs1: 0x0,
17351                rs2: 0x0,
17352                csr: 0x740,
17353                funct7: 0x3a,
17354            },
17355            Opcode::VMSLEVX => Inst {
17356                opcode: 0x57,
17357                funct3: 0x4,
17358                rs1: 0x0,
17359                rs2: 0x0,
17360                csr: 0x740,
17361                funct7: 0x3a,
17362            },
17363            Opcode::VMSLEUVI => Inst {
17364                opcode: 0x57,
17365                funct3: 0x3,
17366                rs1: 0x0,
17367                rs2: 0x0,
17368                csr: 0x700,
17369                funct7: 0x38,
17370            },
17371            Opcode::VMSLEUVV => Inst {
17372                opcode: 0x57,
17373                funct3: 0x0,
17374                rs1: 0x0,
17375                rs2: 0x0,
17376                csr: 0x700,
17377                funct7: 0x38,
17378            },
17379            Opcode::VMSLEUVX => Inst {
17380                opcode: 0x57,
17381                funct3: 0x4,
17382                rs1: 0x0,
17383                rs2: 0x0,
17384                csr: 0x700,
17385                funct7: 0x38,
17386            },
17387            Opcode::VMSLTVV => Inst {
17388                opcode: 0x57,
17389                funct3: 0x0,
17390                rs1: 0x0,
17391                rs2: 0x0,
17392                csr: 0x6c0,
17393                funct7: 0x36,
17394            },
17395            Opcode::VMSLTVX => Inst {
17396                opcode: 0x57,
17397                funct3: 0x4,
17398                rs1: 0x0,
17399                rs2: 0x0,
17400                csr: 0x6c0,
17401                funct7: 0x36,
17402            },
17403            Opcode::VMSLTUVV => Inst {
17404                opcode: 0x57,
17405                funct3: 0x0,
17406                rs1: 0x0,
17407                rs2: 0x0,
17408                csr: 0x680,
17409                funct7: 0x34,
17410            },
17411            Opcode::VMSLTUVX => Inst {
17412                opcode: 0x57,
17413                funct3: 0x4,
17414                rs1: 0x0,
17415                rs2: 0x0,
17416                csr: 0x680,
17417                funct7: 0x34,
17418            },
17419            Opcode::VMSNEVI => Inst {
17420                opcode: 0x57,
17421                funct3: 0x3,
17422                rs1: 0x0,
17423                rs2: 0x0,
17424                csr: 0x640,
17425                funct7: 0x32,
17426            },
17427            Opcode::VMSNEVV => Inst {
17428                opcode: 0x57,
17429                funct3: 0x0,
17430                rs1: 0x0,
17431                rs2: 0x0,
17432                csr: 0x640,
17433                funct7: 0x32,
17434            },
17435            Opcode::VMSNEVX => Inst {
17436                opcode: 0x57,
17437                funct3: 0x4,
17438                rs1: 0x0,
17439                rs2: 0x0,
17440                csr: 0x640,
17441                funct7: 0x32,
17442            },
17443            Opcode::VMSOFM => Inst {
17444                opcode: 0x57,
17445                funct3: 0x2,
17446                rs1: 0x2,
17447                rs2: 0x0,
17448                csr: 0x500,
17449                funct7: 0x28,
17450            },
17451            Opcode::VMULVV => Inst {
17452                opcode: 0x57,
17453                funct3: 0x2,
17454                rs1: 0x0,
17455                rs2: 0x0,
17456                csr: 0x940,
17457                funct7: 0x4a,
17458            },
17459            Opcode::VMULVX => Inst {
17460                opcode: 0x57,
17461                funct3: 0x6,
17462                rs1: 0x0,
17463                rs2: 0x0,
17464                csr: 0x940,
17465                funct7: 0x4a,
17466            },
17467            Opcode::VMULHVV => Inst {
17468                opcode: 0x57,
17469                funct3: 0x2,
17470                rs1: 0x0,
17471                rs2: 0x0,
17472                csr: 0x9c0,
17473                funct7: 0x4e,
17474            },
17475            Opcode::VMULHVX => Inst {
17476                opcode: 0x57,
17477                funct3: 0x6,
17478                rs1: 0x0,
17479                rs2: 0x0,
17480                csr: 0x9c0,
17481                funct7: 0x4e,
17482            },
17483            Opcode::VMULHSUVV => Inst {
17484                opcode: 0x57,
17485                funct3: 0x2,
17486                rs1: 0x0,
17487                rs2: 0x0,
17488                csr: 0x980,
17489                funct7: 0x4c,
17490            },
17491            Opcode::VMULHSUVX => Inst {
17492                opcode: 0x57,
17493                funct3: 0x6,
17494                rs1: 0x0,
17495                rs2: 0x0,
17496                csr: 0x980,
17497                funct7: 0x4c,
17498            },
17499            Opcode::VMULHUVV => Inst {
17500                opcode: 0x57,
17501                funct3: 0x2,
17502                rs1: 0x0,
17503                rs2: 0x0,
17504                csr: 0x900,
17505                funct7: 0x48,
17506            },
17507            Opcode::VMULHUVX => Inst {
17508                opcode: 0x57,
17509                funct3: 0x6,
17510                rs1: 0x0,
17511                rs2: 0x0,
17512                csr: 0x900,
17513                funct7: 0x48,
17514            },
17515            Opcode::VMV1RV => Inst {
17516                opcode: 0x57,
17517                funct3: 0x3,
17518                rs1: 0x0,
17519                rs2: 0x0,
17520                csr: 0x9e0,
17521                funct7: 0x4f,
17522            },
17523            Opcode::VMV2RV => Inst {
17524                opcode: 0x57,
17525                funct3: 0x3,
17526                rs1: 0x1,
17527                rs2: 0x0,
17528                csr: 0x9e0,
17529                funct7: 0x4f,
17530            },
17531            Opcode::VMV4RV => Inst {
17532                opcode: 0x57,
17533                funct3: 0x3,
17534                rs1: 0x3,
17535                rs2: 0x0,
17536                csr: 0x9e0,
17537                funct7: 0x4f,
17538            },
17539            Opcode::VMV8RV => Inst {
17540                opcode: 0x57,
17541                funct3: 0x3,
17542                rs1: 0x7,
17543                rs2: 0x0,
17544                csr: 0x9e0,
17545                funct7: 0x4f,
17546            },
17547            Opcode::VMVSX => Inst {
17548                opcode: 0x57,
17549                funct3: 0x6,
17550                rs1: 0x0,
17551                rs2: 0x0,
17552                csr: 0x420,
17553                funct7: 0x21,
17554            },
17555            Opcode::VMVVI => Inst {
17556                opcode: 0x57,
17557                funct3: 0x3,
17558                rs1: 0x0,
17559                rs2: 0x0,
17560                csr: 0x5e0,
17561                funct7: 0x2f,
17562            },
17563            Opcode::VMVVV => Inst {
17564                opcode: 0x57,
17565                funct3: 0x0,
17566                rs1: 0x0,
17567                rs2: 0x0,
17568                csr: 0x5e0,
17569                funct7: 0x2f,
17570            },
17571            Opcode::VMVVX => Inst {
17572                opcode: 0x57,
17573                funct3: 0x4,
17574                rs1: 0x0,
17575                rs2: 0x0,
17576                csr: 0x5e0,
17577                funct7: 0x2f,
17578            },
17579            Opcode::VMVXS => Inst {
17580                opcode: 0x57,
17581                funct3: 0x2,
17582                rs1: 0x0,
17583                rs2: 0x0,
17584                csr: 0x420,
17585                funct7: 0x21,
17586            },
17587            Opcode::VMXNORMM => Inst {
17588                opcode: 0x57,
17589                funct3: 0x2,
17590                rs1: 0x0,
17591                rs2: 0x0,
17592                csr: 0x7e0,
17593                funct7: 0x3f,
17594            },
17595            Opcode::VMXORMM => Inst {
17596                opcode: 0x57,
17597                funct3: 0x2,
17598                rs1: 0x0,
17599                rs2: 0x0,
17600                csr: 0x6e0,
17601                funct7: 0x37,
17602            },
17603            Opcode::VNCLIPWI => Inst {
17604                opcode: 0x57,
17605                funct3: 0x3,
17606                rs1: 0x0,
17607                rs2: 0x0,
17608                csr: 0xbc0,
17609                funct7: 0x5e,
17610            },
17611            Opcode::VNCLIPWV => Inst {
17612                opcode: 0x57,
17613                funct3: 0x0,
17614                rs1: 0x0,
17615                rs2: 0x0,
17616                csr: 0xbc0,
17617                funct7: 0x5e,
17618            },
17619            Opcode::VNCLIPWX => Inst {
17620                opcode: 0x57,
17621                funct3: 0x4,
17622                rs1: 0x0,
17623                rs2: 0x0,
17624                csr: 0xbc0,
17625                funct7: 0x5e,
17626            },
17627            Opcode::VNCLIPUWI => Inst {
17628                opcode: 0x57,
17629                funct3: 0x3,
17630                rs1: 0x0,
17631                rs2: 0x0,
17632                csr: 0xb80,
17633                funct7: 0x5c,
17634            },
17635            Opcode::VNCLIPUWV => Inst {
17636                opcode: 0x57,
17637                funct3: 0x0,
17638                rs1: 0x0,
17639                rs2: 0x0,
17640                csr: 0xb80,
17641                funct7: 0x5c,
17642            },
17643            Opcode::VNCLIPUWX => Inst {
17644                opcode: 0x57,
17645                funct3: 0x4,
17646                rs1: 0x0,
17647                rs2: 0x0,
17648                csr: 0xb80,
17649                funct7: 0x5c,
17650            },
17651            Opcode::VNMSACVV => Inst {
17652                opcode: 0x57,
17653                funct3: 0x2,
17654                rs1: 0x0,
17655                rs2: 0x0,
17656                csr: 0xbc0,
17657                funct7: 0x5e,
17658            },
17659            Opcode::VNMSACVX => Inst {
17660                opcode: 0x57,
17661                funct3: 0x6,
17662                rs1: 0x0,
17663                rs2: 0x0,
17664                csr: 0xbc0,
17665                funct7: 0x5e,
17666            },
17667            Opcode::VNMSUBVV => Inst {
17668                opcode: 0x57,
17669                funct3: 0x2,
17670                rs1: 0x0,
17671                rs2: 0x0,
17672                csr: 0xac0,
17673                funct7: 0x56,
17674            },
17675            Opcode::VNMSUBVX => Inst {
17676                opcode: 0x57,
17677                funct3: 0x6,
17678                rs1: 0x0,
17679                rs2: 0x0,
17680                csr: 0xac0,
17681                funct7: 0x56,
17682            },
17683            Opcode::VNSRAWI => Inst {
17684                opcode: 0x57,
17685                funct3: 0x3,
17686                rs1: 0x0,
17687                rs2: 0x0,
17688                csr: 0xb40,
17689                funct7: 0x5a,
17690            },
17691            Opcode::VNSRAWV => Inst {
17692                opcode: 0x57,
17693                funct3: 0x0,
17694                rs1: 0x0,
17695                rs2: 0x0,
17696                csr: 0xb40,
17697                funct7: 0x5a,
17698            },
17699            Opcode::VNSRAWX => Inst {
17700                opcode: 0x57,
17701                funct3: 0x4,
17702                rs1: 0x0,
17703                rs2: 0x0,
17704                csr: 0xb40,
17705                funct7: 0x5a,
17706            },
17707            Opcode::VNSRLWI => Inst {
17708                opcode: 0x57,
17709                funct3: 0x3,
17710                rs1: 0x0,
17711                rs2: 0x0,
17712                csr: 0xb00,
17713                funct7: 0x58,
17714            },
17715            Opcode::VNSRLWV => Inst {
17716                opcode: 0x57,
17717                funct3: 0x0,
17718                rs1: 0x0,
17719                rs2: 0x0,
17720                csr: 0xb00,
17721                funct7: 0x58,
17722            },
17723            Opcode::VNSRLWX => Inst {
17724                opcode: 0x57,
17725                funct3: 0x4,
17726                rs1: 0x0,
17727                rs2: 0x0,
17728                csr: 0xb00,
17729                funct7: 0x58,
17730            },
17731            Opcode::VORVI => Inst {
17732                opcode: 0x57,
17733                funct3: 0x3,
17734                rs1: 0x0,
17735                rs2: 0x0,
17736                csr: 0x280,
17737                funct7: 0x14,
17738            },
17739            Opcode::VORVV => Inst {
17740                opcode: 0x57,
17741                funct3: 0x0,
17742                rs1: 0x0,
17743                rs2: 0x0,
17744                csr: 0x280,
17745                funct7: 0x14,
17746            },
17747            Opcode::VORVX => Inst {
17748                opcode: 0x57,
17749                funct3: 0x4,
17750                rs1: 0x0,
17751                rs2: 0x0,
17752                csr: 0x280,
17753                funct7: 0x14,
17754            },
17755            Opcode::VPOPCM => Inst {
17756                opcode: 0x57,
17757                funct3: 0x2,
17758                rs1: 0x10,
17759                rs2: 0x0,
17760                csr: 0x400,
17761                funct7: 0x20,
17762            },
17763            Opcode::VREDANDVS => Inst {
17764                opcode: 0x57,
17765                funct3: 0x2,
17766                rs1: 0x0,
17767                rs2: 0x0,
17768                csr: 0x40,
17769                funct7: 0x2,
17770            },
17771            Opcode::VREDMAXVS => Inst {
17772                opcode: 0x57,
17773                funct3: 0x2,
17774                rs1: 0x0,
17775                rs2: 0x0,
17776                csr: 0x1c0,
17777                funct7: 0xe,
17778            },
17779            Opcode::VREDMAXUVS => Inst {
17780                opcode: 0x57,
17781                funct3: 0x2,
17782                rs1: 0x0,
17783                rs2: 0x0,
17784                csr: 0x180,
17785                funct7: 0xc,
17786            },
17787            Opcode::VREDMINVS => Inst {
17788                opcode: 0x57,
17789                funct3: 0x2,
17790                rs1: 0x0,
17791                rs2: 0x0,
17792                csr: 0x140,
17793                funct7: 0xa,
17794            },
17795            Opcode::VREDMINUVS => Inst {
17796                opcode: 0x57,
17797                funct3: 0x2,
17798                rs1: 0x0,
17799                rs2: 0x0,
17800                csr: 0x100,
17801                funct7: 0x8,
17802            },
17803            Opcode::VREDORVS => Inst {
17804                opcode: 0x57,
17805                funct3: 0x2,
17806                rs1: 0x0,
17807                rs2: 0x0,
17808                csr: 0x80,
17809                funct7: 0x4,
17810            },
17811            Opcode::VREDSUMVS => Inst {
17812                opcode: 0x57,
17813                funct3: 0x2,
17814                rs1: 0x0,
17815                rs2: 0x0,
17816                csr: 0x0,
17817                funct7: 0x0,
17818            },
17819            Opcode::VREDXORVS => Inst {
17820                opcode: 0x57,
17821                funct3: 0x2,
17822                rs1: 0x0,
17823                rs2: 0x0,
17824                csr: 0xc0,
17825                funct7: 0x6,
17826            },
17827            Opcode::VREMVV => Inst {
17828                opcode: 0x57,
17829                funct3: 0x2,
17830                rs1: 0x0,
17831                rs2: 0x0,
17832                csr: 0x8c0,
17833                funct7: 0x46,
17834            },
17835            Opcode::VREMVX => Inst {
17836                opcode: 0x57,
17837                funct3: 0x6,
17838                rs1: 0x0,
17839                rs2: 0x0,
17840                csr: 0x8c0,
17841                funct7: 0x46,
17842            },
17843            Opcode::VREMUVV => Inst {
17844                opcode: 0x57,
17845                funct3: 0x2,
17846                rs1: 0x0,
17847                rs2: 0x0,
17848                csr: 0x880,
17849                funct7: 0x44,
17850            },
17851            Opcode::VREMUVX => Inst {
17852                opcode: 0x57,
17853                funct3: 0x6,
17854                rs1: 0x0,
17855                rs2: 0x0,
17856                csr: 0x880,
17857                funct7: 0x44,
17858            },
17859            Opcode::VREV8V => Inst {
17860                opcode: 0x57,
17861                funct3: 0x2,
17862                rs1: 0x9,
17863                rs2: 0x0,
17864                csr: 0x480,
17865                funct7: 0x24,
17866            },
17867            Opcode::VRGATHERVI => Inst {
17868                opcode: 0x57,
17869                funct3: 0x3,
17870                rs1: 0x0,
17871                rs2: 0x0,
17872                csr: 0x300,
17873                funct7: 0x18,
17874            },
17875            Opcode::VRGATHERVV => Inst {
17876                opcode: 0x57,
17877                funct3: 0x0,
17878                rs1: 0x0,
17879                rs2: 0x0,
17880                csr: 0x300,
17881                funct7: 0x18,
17882            },
17883            Opcode::VRGATHERVX => Inst {
17884                opcode: 0x57,
17885                funct3: 0x4,
17886                rs1: 0x0,
17887                rs2: 0x0,
17888                csr: 0x300,
17889                funct7: 0x18,
17890            },
17891            Opcode::VRGATHEREI16VV => Inst {
17892                opcode: 0x57,
17893                funct3: 0x0,
17894                rs1: 0x0,
17895                rs2: 0x0,
17896                csr: 0x380,
17897                funct7: 0x1c,
17898            },
17899            Opcode::VROLVV => Inst {
17900                opcode: 0x57,
17901                funct3: 0x0,
17902                rs1: 0x0,
17903                rs2: 0x0,
17904                csr: 0x540,
17905                funct7: 0x2a,
17906            },
17907            Opcode::VROLVX => Inst {
17908                opcode: 0x57,
17909                funct3: 0x4,
17910                rs1: 0x0,
17911                rs2: 0x0,
17912                csr: 0x540,
17913                funct7: 0x2a,
17914            },
17915            Opcode::VRORVI => Inst {
17916                opcode: 0x57,
17917                funct3: 0x3,
17918                rs1: 0x0,
17919                rs2: 0x0,
17920                csr: 0x500,
17921                funct7: 0x28,
17922            },
17923            Opcode::VRORVV => Inst {
17924                opcode: 0x57,
17925                funct3: 0x0,
17926                rs1: 0x0,
17927                rs2: 0x0,
17928                csr: 0x500,
17929                funct7: 0x28,
17930            },
17931            Opcode::VRORVX => Inst {
17932                opcode: 0x57,
17933                funct3: 0x4,
17934                rs1: 0x0,
17935                rs2: 0x0,
17936                csr: 0x500,
17937                funct7: 0x28,
17938            },
17939            Opcode::VRSUBVI => Inst {
17940                opcode: 0x57,
17941                funct3: 0x3,
17942                rs1: 0x0,
17943                rs2: 0x0,
17944                csr: 0xc0,
17945                funct7: 0x6,
17946            },
17947            Opcode::VRSUBVX => Inst {
17948                opcode: 0x57,
17949                funct3: 0x4,
17950                rs1: 0x0,
17951                rs2: 0x0,
17952                csr: 0xc0,
17953                funct7: 0x6,
17954            },
17955            Opcode::VS1RV => Inst {
17956                opcode: 0x27,
17957                funct3: 0x0,
17958                rs1: 0x0,
17959                rs2: 0x8,
17960                csr: 0x28,
17961                funct7: 0x1,
17962            },
17963            Opcode::VS2RV => Inst {
17964                opcode: 0x27,
17965                funct3: 0x0,
17966                rs1: 0x0,
17967                rs2: 0x8,
17968                csr: 0x228,
17969                funct7: 0x11,
17970            },
17971            Opcode::VS4RV => Inst {
17972                opcode: 0x27,
17973                funct3: 0x0,
17974                rs1: 0x0,
17975                rs2: 0x8,
17976                csr: 0x628,
17977                funct7: 0x31,
17978            },
17979            Opcode::VS8RV => Inst {
17980                opcode: 0x27,
17981                funct3: 0x0,
17982                rs1: 0x0,
17983                rs2: 0x8,
17984                csr: 0xe28,
17985                funct7: 0x71,
17986            },
17987            Opcode::VSADDVI => Inst {
17988                opcode: 0x57,
17989                funct3: 0x3,
17990                rs1: 0x0,
17991                rs2: 0x0,
17992                csr: 0x840,
17993                funct7: 0x42,
17994            },
17995            Opcode::VSADDVV => Inst {
17996                opcode: 0x57,
17997                funct3: 0x0,
17998                rs1: 0x0,
17999                rs2: 0x0,
18000                csr: 0x840,
18001                funct7: 0x42,
18002            },
18003            Opcode::VSADDVX => Inst {
18004                opcode: 0x57,
18005                funct3: 0x4,
18006                rs1: 0x0,
18007                rs2: 0x0,
18008                csr: 0x840,
18009                funct7: 0x42,
18010            },
18011            Opcode::VSADDUVI => Inst {
18012                opcode: 0x57,
18013                funct3: 0x3,
18014                rs1: 0x0,
18015                rs2: 0x0,
18016                csr: 0x800,
18017                funct7: 0x40,
18018            },
18019            Opcode::VSADDUVV => Inst {
18020                opcode: 0x57,
18021                funct3: 0x0,
18022                rs1: 0x0,
18023                rs2: 0x0,
18024                csr: 0x800,
18025                funct7: 0x40,
18026            },
18027            Opcode::VSADDUVX => Inst {
18028                opcode: 0x57,
18029                funct3: 0x4,
18030                rs1: 0x0,
18031                rs2: 0x0,
18032                csr: 0x800,
18033                funct7: 0x40,
18034            },
18035            Opcode::VSBCVVM => Inst {
18036                opcode: 0x57,
18037                funct3: 0x0,
18038                rs1: 0x0,
18039                rs2: 0x0,
18040                csr: 0x480,
18041                funct7: 0x24,
18042            },
18043            Opcode::VSBCVXM => Inst {
18044                opcode: 0x57,
18045                funct3: 0x4,
18046                rs1: 0x0,
18047                rs2: 0x0,
18048                csr: 0x480,
18049                funct7: 0x24,
18050            },
18051            Opcode::VSE16V => Inst {
18052                opcode: 0x27,
18053                funct3: 0x5,
18054                rs1: 0x0,
18055                rs2: 0x0,
18056                csr: 0x0,
18057                funct7: 0x0,
18058            },
18059            Opcode::VSE1V => Inst {
18060                opcode: 0x27,
18061                funct3: 0x0,
18062                rs1: 0x0,
18063                rs2: 0xb,
18064                csr: 0x2b,
18065                funct7: 0x1,
18066            },
18067            Opcode::VSE32V => Inst {
18068                opcode: 0x27,
18069                funct3: 0x6,
18070                rs1: 0x0,
18071                rs2: 0x0,
18072                csr: 0x0,
18073                funct7: 0x0,
18074            },
18075            Opcode::VSE64V => Inst {
18076                opcode: 0x27,
18077                funct3: 0x7,
18078                rs1: 0x0,
18079                rs2: 0x0,
18080                csr: 0x0,
18081                funct7: 0x0,
18082            },
18083            Opcode::VSE8V => Inst {
18084                opcode: 0x27,
18085                funct3: 0x0,
18086                rs1: 0x0,
18087                rs2: 0x0,
18088                csr: 0x0,
18089                funct7: 0x0,
18090            },
18091            Opcode::VSETIVLI => Inst {
18092                opcode: 0x57,
18093                funct3: 0x7,
18094                rs1: 0x0,
18095                rs2: 0x0,
18096                csr: 0xc00,
18097                funct7: 0x60,
18098            },
18099            Opcode::VSETVL => Inst {
18100                opcode: 0x57,
18101                funct3: 0x7,
18102                rs1: 0x0,
18103                rs2: 0x0,
18104                csr: 0x800,
18105                funct7: 0x40,
18106            },
18107            Opcode::VSETVLI => Inst {
18108                opcode: 0x57,
18109                funct3: 0x7,
18110                rs1: 0x0,
18111                rs2: 0x0,
18112                csr: 0x0,
18113                funct7: 0x0,
18114            },
18115            Opcode::VSEXTVF2 => Inst {
18116                opcode: 0x57,
18117                funct3: 0x2,
18118                rs1: 0x7,
18119                rs2: 0x0,
18120                csr: 0x480,
18121                funct7: 0x24,
18122            },
18123            Opcode::VSEXTVF4 => Inst {
18124                opcode: 0x57,
18125                funct3: 0x2,
18126                rs1: 0x5,
18127                rs2: 0x0,
18128                csr: 0x480,
18129                funct7: 0x24,
18130            },
18131            Opcode::VSEXTVF8 => Inst {
18132                opcode: 0x57,
18133                funct3: 0x2,
18134                rs1: 0x3,
18135                rs2: 0x0,
18136                csr: 0x480,
18137                funct7: 0x24,
18138            },
18139            Opcode::VSHA2CHVV => Inst {
18140                opcode: 0x77,
18141                funct3: 0x2,
18142                rs1: 0x0,
18143                rs2: 0x0,
18144                csr: 0xba0,
18145                funct7: 0x5d,
18146            },
18147            Opcode::VSHA2CLVV => Inst {
18148                opcode: 0x77,
18149                funct3: 0x2,
18150                rs1: 0x0,
18151                rs2: 0x0,
18152                csr: 0xbe0,
18153                funct7: 0x5f,
18154            },
18155            Opcode::VSHA2MSVV => Inst {
18156                opcode: 0x77,
18157                funct3: 0x2,
18158                rs1: 0x0,
18159                rs2: 0x0,
18160                csr: 0xb60,
18161                funct7: 0x5b,
18162            },
18163            Opcode::VSLIDE1DOWNVX => Inst {
18164                opcode: 0x57,
18165                funct3: 0x6,
18166                rs1: 0x0,
18167                rs2: 0x0,
18168                csr: 0x3c0,
18169                funct7: 0x1e,
18170            },
18171            Opcode::VSLIDE1UPVX => Inst {
18172                opcode: 0x57,
18173                funct3: 0x6,
18174                rs1: 0x0,
18175                rs2: 0x0,
18176                csr: 0x380,
18177                funct7: 0x1c,
18178            },
18179            Opcode::VSLIDEDOWNVI => Inst {
18180                opcode: 0x57,
18181                funct3: 0x3,
18182                rs1: 0x0,
18183                rs2: 0x0,
18184                csr: 0x3c0,
18185                funct7: 0x1e,
18186            },
18187            Opcode::VSLIDEDOWNVX => Inst {
18188                opcode: 0x57,
18189                funct3: 0x4,
18190                rs1: 0x0,
18191                rs2: 0x0,
18192                csr: 0x3c0,
18193                funct7: 0x1e,
18194            },
18195            Opcode::VSLIDEUPVI => Inst {
18196                opcode: 0x57,
18197                funct3: 0x3,
18198                rs1: 0x0,
18199                rs2: 0x0,
18200                csr: 0x380,
18201                funct7: 0x1c,
18202            },
18203            Opcode::VSLIDEUPVX => Inst {
18204                opcode: 0x57,
18205                funct3: 0x4,
18206                rs1: 0x0,
18207                rs2: 0x0,
18208                csr: 0x380,
18209                funct7: 0x1c,
18210            },
18211            Opcode::VSLLVI => Inst {
18212                opcode: 0x57,
18213                funct3: 0x3,
18214                rs1: 0x0,
18215                rs2: 0x0,
18216                csr: 0x940,
18217                funct7: 0x4a,
18218            },
18219            Opcode::VSLLVV => Inst {
18220                opcode: 0x57,
18221                funct3: 0x0,
18222                rs1: 0x0,
18223                rs2: 0x0,
18224                csr: 0x940,
18225                funct7: 0x4a,
18226            },
18227            Opcode::VSLLVX => Inst {
18228                opcode: 0x57,
18229                funct3: 0x4,
18230                rs1: 0x0,
18231                rs2: 0x0,
18232                csr: 0x940,
18233                funct7: 0x4a,
18234            },
18235            Opcode::VSM3CVI => Inst {
18236                opcode: 0x77,
18237                funct3: 0x2,
18238                rs1: 0x0,
18239                rs2: 0x0,
18240                csr: 0xae0,
18241                funct7: 0x57,
18242            },
18243            Opcode::VSM3MEVV => Inst {
18244                opcode: 0x77,
18245                funct3: 0x2,
18246                rs1: 0x0,
18247                rs2: 0x0,
18248                csr: 0x820,
18249                funct7: 0x41,
18250            },
18251            Opcode::VSM4KVI => Inst {
18252                opcode: 0x77,
18253                funct3: 0x2,
18254                rs1: 0x0,
18255                rs2: 0x0,
18256                csr: 0x860,
18257                funct7: 0x43,
18258            },
18259            Opcode::VSM4RVS => Inst {
18260                opcode: 0x77,
18261                funct3: 0x2,
18262                rs1: 0x10,
18263                rs2: 0x0,
18264                csr: 0xa60,
18265                funct7: 0x53,
18266            },
18267            Opcode::VSM4RVV => Inst {
18268                opcode: 0x77,
18269                funct3: 0x2,
18270                rs1: 0x10,
18271                rs2: 0x0,
18272                csr: 0xa20,
18273                funct7: 0x51,
18274            },
18275            Opcode::VSMV => Inst {
18276                opcode: 0x27,
18277                funct3: 0x0,
18278                rs1: 0x0,
18279                rs2: 0xb,
18280                csr: 0x2b,
18281                funct7: 0x1,
18282            },
18283            Opcode::VSMULVV => Inst {
18284                opcode: 0x57,
18285                funct3: 0x0,
18286                rs1: 0x0,
18287                rs2: 0x0,
18288                csr: 0x9c0,
18289                funct7: 0x4e,
18290            },
18291            Opcode::VSMULVX => Inst {
18292                opcode: 0x57,
18293                funct3: 0x4,
18294                rs1: 0x0,
18295                rs2: 0x0,
18296                csr: 0x9c0,
18297                funct7: 0x4e,
18298            },
18299            Opcode::VSOXEI16V => Inst {
18300                opcode: 0x27,
18301                funct3: 0x5,
18302                rs1: 0x0,
18303                rs2: 0x0,
18304                csr: 0xc0,
18305                funct7: 0x6,
18306            },
18307            Opcode::VSOXEI32V => Inst {
18308                opcode: 0x27,
18309                funct3: 0x6,
18310                rs1: 0x0,
18311                rs2: 0x0,
18312                csr: 0xc0,
18313                funct7: 0x6,
18314            },
18315            Opcode::VSOXEI64V => Inst {
18316                opcode: 0x27,
18317                funct3: 0x7,
18318                rs1: 0x0,
18319                rs2: 0x0,
18320                csr: 0xc0,
18321                funct7: 0x6,
18322            },
18323            Opcode::VSOXEI8V => Inst {
18324                opcode: 0x27,
18325                funct3: 0x0,
18326                rs1: 0x0,
18327                rs2: 0x0,
18328                csr: 0xc0,
18329                funct7: 0x6,
18330            },
18331            Opcode::VSRAVI => Inst {
18332                opcode: 0x57,
18333                funct3: 0x3,
18334                rs1: 0x0,
18335                rs2: 0x0,
18336                csr: 0xa40,
18337                funct7: 0x52,
18338            },
18339            Opcode::VSRAVV => Inst {
18340                opcode: 0x57,
18341                funct3: 0x0,
18342                rs1: 0x0,
18343                rs2: 0x0,
18344                csr: 0xa40,
18345                funct7: 0x52,
18346            },
18347            Opcode::VSRAVX => Inst {
18348                opcode: 0x57,
18349                funct3: 0x4,
18350                rs1: 0x0,
18351                rs2: 0x0,
18352                csr: 0xa40,
18353                funct7: 0x52,
18354            },
18355            Opcode::VSRLVI => Inst {
18356                opcode: 0x57,
18357                funct3: 0x3,
18358                rs1: 0x0,
18359                rs2: 0x0,
18360                csr: 0xa00,
18361                funct7: 0x50,
18362            },
18363            Opcode::VSRLVV => Inst {
18364                opcode: 0x57,
18365                funct3: 0x0,
18366                rs1: 0x0,
18367                rs2: 0x0,
18368                csr: 0xa00,
18369                funct7: 0x50,
18370            },
18371            Opcode::VSRLVX => Inst {
18372                opcode: 0x57,
18373                funct3: 0x4,
18374                rs1: 0x0,
18375                rs2: 0x0,
18376                csr: 0xa00,
18377                funct7: 0x50,
18378            },
18379            Opcode::VSSE16V => Inst {
18380                opcode: 0x27,
18381                funct3: 0x5,
18382                rs1: 0x0,
18383                rs2: 0x0,
18384                csr: 0x80,
18385                funct7: 0x4,
18386            },
18387            Opcode::VSSE32V => Inst {
18388                opcode: 0x27,
18389                funct3: 0x6,
18390                rs1: 0x0,
18391                rs2: 0x0,
18392                csr: 0x80,
18393                funct7: 0x4,
18394            },
18395            Opcode::VSSE64V => Inst {
18396                opcode: 0x27,
18397                funct3: 0x7,
18398                rs1: 0x0,
18399                rs2: 0x0,
18400                csr: 0x80,
18401                funct7: 0x4,
18402            },
18403            Opcode::VSSE8V => Inst {
18404                opcode: 0x27,
18405                funct3: 0x0,
18406                rs1: 0x0,
18407                rs2: 0x0,
18408                csr: 0x80,
18409                funct7: 0x4,
18410            },
18411            Opcode::VSSRAVI => Inst {
18412                opcode: 0x57,
18413                funct3: 0x3,
18414                rs1: 0x0,
18415                rs2: 0x0,
18416                csr: 0xac0,
18417                funct7: 0x56,
18418            },
18419            Opcode::VSSRAVV => Inst {
18420                opcode: 0x57,
18421                funct3: 0x0,
18422                rs1: 0x0,
18423                rs2: 0x0,
18424                csr: 0xac0,
18425                funct7: 0x56,
18426            },
18427            Opcode::VSSRAVX => Inst {
18428                opcode: 0x57,
18429                funct3: 0x4,
18430                rs1: 0x0,
18431                rs2: 0x0,
18432                csr: 0xac0,
18433                funct7: 0x56,
18434            },
18435            Opcode::VSSRLVI => Inst {
18436                opcode: 0x57,
18437                funct3: 0x3,
18438                rs1: 0x0,
18439                rs2: 0x0,
18440                csr: 0xa80,
18441                funct7: 0x54,
18442            },
18443            Opcode::VSSRLVV => Inst {
18444                opcode: 0x57,
18445                funct3: 0x0,
18446                rs1: 0x0,
18447                rs2: 0x0,
18448                csr: 0xa80,
18449                funct7: 0x54,
18450            },
18451            Opcode::VSSRLVX => Inst {
18452                opcode: 0x57,
18453                funct3: 0x4,
18454                rs1: 0x0,
18455                rs2: 0x0,
18456                csr: 0xa80,
18457                funct7: 0x54,
18458            },
18459            Opcode::VSSUBVV => Inst {
18460                opcode: 0x57,
18461                funct3: 0x0,
18462                rs1: 0x0,
18463                rs2: 0x0,
18464                csr: 0x8c0,
18465                funct7: 0x46,
18466            },
18467            Opcode::VSSUBVX => Inst {
18468                opcode: 0x57,
18469                funct3: 0x4,
18470                rs1: 0x0,
18471                rs2: 0x0,
18472                csr: 0x8c0,
18473                funct7: 0x46,
18474            },
18475            Opcode::VSSUBUVV => Inst {
18476                opcode: 0x57,
18477                funct3: 0x0,
18478                rs1: 0x0,
18479                rs2: 0x0,
18480                csr: 0x880,
18481                funct7: 0x44,
18482            },
18483            Opcode::VSSUBUVX => Inst {
18484                opcode: 0x57,
18485                funct3: 0x4,
18486                rs1: 0x0,
18487                rs2: 0x0,
18488                csr: 0x880,
18489                funct7: 0x44,
18490            },
18491            Opcode::VSUBVV => Inst {
18492                opcode: 0x57,
18493                funct3: 0x0,
18494                rs1: 0x0,
18495                rs2: 0x0,
18496                csr: 0x80,
18497                funct7: 0x4,
18498            },
18499            Opcode::VSUBVX => Inst {
18500                opcode: 0x57,
18501                funct3: 0x4,
18502                rs1: 0x0,
18503                rs2: 0x0,
18504                csr: 0x80,
18505                funct7: 0x4,
18506            },
18507            Opcode::VSUXEI16V => Inst {
18508                opcode: 0x27,
18509                funct3: 0x5,
18510                rs1: 0x0,
18511                rs2: 0x0,
18512                csr: 0x40,
18513                funct7: 0x2,
18514            },
18515            Opcode::VSUXEI32V => Inst {
18516                opcode: 0x27,
18517                funct3: 0x6,
18518                rs1: 0x0,
18519                rs2: 0x0,
18520                csr: 0x40,
18521                funct7: 0x2,
18522            },
18523            Opcode::VSUXEI64V => Inst {
18524                opcode: 0x27,
18525                funct3: 0x7,
18526                rs1: 0x0,
18527                rs2: 0x0,
18528                csr: 0x40,
18529                funct7: 0x2,
18530            },
18531            Opcode::VSUXEI8V => Inst {
18532                opcode: 0x27,
18533                funct3: 0x0,
18534                rs1: 0x0,
18535                rs2: 0x0,
18536                csr: 0x40,
18537                funct7: 0x2,
18538            },
18539            Opcode::VWADDVV => Inst {
18540                opcode: 0x57,
18541                funct3: 0x2,
18542                rs1: 0x0,
18543                rs2: 0x0,
18544                csr: 0xc40,
18545                funct7: 0x62,
18546            },
18547            Opcode::VWADDVX => Inst {
18548                opcode: 0x57,
18549                funct3: 0x6,
18550                rs1: 0x0,
18551                rs2: 0x0,
18552                csr: 0xc40,
18553                funct7: 0x62,
18554            },
18555            Opcode::VWADDWV => Inst {
18556                opcode: 0x57,
18557                funct3: 0x2,
18558                rs1: 0x0,
18559                rs2: 0x0,
18560                csr: 0xd40,
18561                funct7: 0x6a,
18562            },
18563            Opcode::VWADDWX => Inst {
18564                opcode: 0x57,
18565                funct3: 0x6,
18566                rs1: 0x0,
18567                rs2: 0x0,
18568                csr: 0xd40,
18569                funct7: 0x6a,
18570            },
18571            Opcode::VWADDUVV => Inst {
18572                opcode: 0x57,
18573                funct3: 0x2,
18574                rs1: 0x0,
18575                rs2: 0x0,
18576                csr: 0xc00,
18577                funct7: 0x60,
18578            },
18579            Opcode::VWADDUVX => Inst {
18580                opcode: 0x57,
18581                funct3: 0x6,
18582                rs1: 0x0,
18583                rs2: 0x0,
18584                csr: 0xc00,
18585                funct7: 0x60,
18586            },
18587            Opcode::VWADDUWV => Inst {
18588                opcode: 0x57,
18589                funct3: 0x2,
18590                rs1: 0x0,
18591                rs2: 0x0,
18592                csr: 0xd00,
18593                funct7: 0x68,
18594            },
18595            Opcode::VWADDUWX => Inst {
18596                opcode: 0x57,
18597                funct3: 0x6,
18598                rs1: 0x0,
18599                rs2: 0x0,
18600                csr: 0xd00,
18601                funct7: 0x68,
18602            },
18603            Opcode::VWMACCVV => Inst {
18604                opcode: 0x57,
18605                funct3: 0x2,
18606                rs1: 0x0,
18607                rs2: 0x0,
18608                csr: 0xf40,
18609                funct7: 0x7a,
18610            },
18611            Opcode::VWMACCVX => Inst {
18612                opcode: 0x57,
18613                funct3: 0x6,
18614                rs1: 0x0,
18615                rs2: 0x0,
18616                csr: 0xf40,
18617                funct7: 0x7a,
18618            },
18619            Opcode::VWMACCSUVV => Inst {
18620                opcode: 0x57,
18621                funct3: 0x2,
18622                rs1: 0x0,
18623                rs2: 0x0,
18624                csr: 0xfc0,
18625                funct7: 0x7e,
18626            },
18627            Opcode::VWMACCSUVX => Inst {
18628                opcode: 0x57,
18629                funct3: 0x6,
18630                rs1: 0x0,
18631                rs2: 0x0,
18632                csr: 0xfc0,
18633                funct7: 0x7e,
18634            },
18635            Opcode::VWMACCUVV => Inst {
18636                opcode: 0x57,
18637                funct3: 0x2,
18638                rs1: 0x0,
18639                rs2: 0x0,
18640                csr: 0xf00,
18641                funct7: 0x78,
18642            },
18643            Opcode::VWMACCUVX => Inst {
18644                opcode: 0x57,
18645                funct3: 0x6,
18646                rs1: 0x0,
18647                rs2: 0x0,
18648                csr: 0xf00,
18649                funct7: 0x78,
18650            },
18651            Opcode::VWMACCUSVX => Inst {
18652                opcode: 0x57,
18653                funct3: 0x6,
18654                rs1: 0x0,
18655                rs2: 0x0,
18656                csr: 0xf80,
18657                funct7: 0x7c,
18658            },
18659            Opcode::VWMULVV => Inst {
18660                opcode: 0x57,
18661                funct3: 0x2,
18662                rs1: 0x0,
18663                rs2: 0x0,
18664                csr: 0xec0,
18665                funct7: 0x76,
18666            },
18667            Opcode::VWMULVX => Inst {
18668                opcode: 0x57,
18669                funct3: 0x6,
18670                rs1: 0x0,
18671                rs2: 0x0,
18672                csr: 0xec0,
18673                funct7: 0x76,
18674            },
18675            Opcode::VWMULSUVV => Inst {
18676                opcode: 0x57,
18677                funct3: 0x2,
18678                rs1: 0x0,
18679                rs2: 0x0,
18680                csr: 0xe80,
18681                funct7: 0x74,
18682            },
18683            Opcode::VWMULSUVX => Inst {
18684                opcode: 0x57,
18685                funct3: 0x6,
18686                rs1: 0x0,
18687                rs2: 0x0,
18688                csr: 0xe80,
18689                funct7: 0x74,
18690            },
18691            Opcode::VWMULUVV => Inst {
18692                opcode: 0x57,
18693                funct3: 0x2,
18694                rs1: 0x0,
18695                rs2: 0x0,
18696                csr: 0xe00,
18697                funct7: 0x70,
18698            },
18699            Opcode::VWMULUVX => Inst {
18700                opcode: 0x57,
18701                funct3: 0x6,
18702                rs1: 0x0,
18703                rs2: 0x0,
18704                csr: 0xe00,
18705                funct7: 0x70,
18706            },
18707            Opcode::VWREDSUMVS => Inst {
18708                opcode: 0x57,
18709                funct3: 0x0,
18710                rs1: 0x0,
18711                rs2: 0x0,
18712                csr: 0xc40,
18713                funct7: 0x62,
18714            },
18715            Opcode::VWREDSUMUVS => Inst {
18716                opcode: 0x57,
18717                funct3: 0x0,
18718                rs1: 0x0,
18719                rs2: 0x0,
18720                csr: 0xc00,
18721                funct7: 0x60,
18722            },
18723            Opcode::VWSLLVI => Inst {
18724                opcode: 0x57,
18725                funct3: 0x3,
18726                rs1: 0x0,
18727                rs2: 0x0,
18728                csr: 0xd40,
18729                funct7: 0x6a,
18730            },
18731            Opcode::VWSLLVV => Inst {
18732                opcode: 0x57,
18733                funct3: 0x0,
18734                rs1: 0x0,
18735                rs2: 0x0,
18736                csr: 0xd40,
18737                funct7: 0x6a,
18738            },
18739            Opcode::VWSLLVX => Inst {
18740                opcode: 0x57,
18741                funct3: 0x4,
18742                rs1: 0x0,
18743                rs2: 0x0,
18744                csr: 0xd40,
18745                funct7: 0x6a,
18746            },
18747            Opcode::VWSUBVV => Inst {
18748                opcode: 0x57,
18749                funct3: 0x2,
18750                rs1: 0x0,
18751                rs2: 0x0,
18752                csr: 0xcc0,
18753                funct7: 0x66,
18754            },
18755            Opcode::VWSUBVX => Inst {
18756                opcode: 0x57,
18757                funct3: 0x6,
18758                rs1: 0x0,
18759                rs2: 0x0,
18760                csr: 0xcc0,
18761                funct7: 0x66,
18762            },
18763            Opcode::VWSUBWV => Inst {
18764                opcode: 0x57,
18765                funct3: 0x2,
18766                rs1: 0x0,
18767                rs2: 0x0,
18768                csr: 0xdc0,
18769                funct7: 0x6e,
18770            },
18771            Opcode::VWSUBWX => Inst {
18772                opcode: 0x57,
18773                funct3: 0x6,
18774                rs1: 0x0,
18775                rs2: 0x0,
18776                csr: 0xdc0,
18777                funct7: 0x6e,
18778            },
18779            Opcode::VWSUBUVV => Inst {
18780                opcode: 0x57,
18781                funct3: 0x2,
18782                rs1: 0x0,
18783                rs2: 0x0,
18784                csr: 0xc80,
18785                funct7: 0x64,
18786            },
18787            Opcode::VWSUBUVX => Inst {
18788                opcode: 0x57,
18789                funct3: 0x6,
18790                rs1: 0x0,
18791                rs2: 0x0,
18792                csr: 0xc80,
18793                funct7: 0x64,
18794            },
18795            Opcode::VWSUBUWV => Inst {
18796                opcode: 0x57,
18797                funct3: 0x2,
18798                rs1: 0x0,
18799                rs2: 0x0,
18800                csr: 0xd80,
18801                funct7: 0x6c,
18802            },
18803            Opcode::VWSUBUWX => Inst {
18804                opcode: 0x57,
18805                funct3: 0x6,
18806                rs1: 0x0,
18807                rs2: 0x0,
18808                csr: 0xd80,
18809                funct7: 0x6c,
18810            },
18811            Opcode::VXORVI => Inst {
18812                opcode: 0x57,
18813                funct3: 0x3,
18814                rs1: 0x0,
18815                rs2: 0x0,
18816                csr: 0x2c0,
18817                funct7: 0x16,
18818            },
18819            Opcode::VXORVV => Inst {
18820                opcode: 0x57,
18821                funct3: 0x0,
18822                rs1: 0x0,
18823                rs2: 0x0,
18824                csr: 0x2c0,
18825                funct7: 0x16,
18826            },
18827            Opcode::VXORVX => Inst {
18828                opcode: 0x57,
18829                funct3: 0x4,
18830                rs1: 0x0,
18831                rs2: 0x0,
18832                csr: 0x2c0,
18833                funct7: 0x16,
18834            },
18835            Opcode::VZEXTVF2 => Inst {
18836                opcode: 0x57,
18837                funct3: 0x2,
18838                rs1: 0x6,
18839                rs2: 0x0,
18840                csr: 0x480,
18841                funct7: 0x24,
18842            },
18843            Opcode::VZEXTVF4 => Inst {
18844                opcode: 0x57,
18845                funct3: 0x2,
18846                rs1: 0x4,
18847                rs2: 0x0,
18848                csr: 0x480,
18849                funct7: 0x24,
18850            },
18851            Opcode::VZEXTVF8 => Inst {
18852                opcode: 0x57,
18853                funct3: 0x2,
18854                rs1: 0x2,
18855                rs2: 0x0,
18856                csr: 0x480,
18857                funct7: 0x24,
18858            },
18859            Opcode::WFI => Inst {
18860                opcode: 0x73,
18861                funct3: 0x0,
18862                rs1: 0x0,
18863                rs2: 0x5,
18864                csr: 0x105,
18865                funct7: 0x8,
18866            },
18867            Opcode::WRSNTO => Inst {
18868                opcode: 0x73,
18869                funct3: 0x0,
18870                rs1: 0x0,
18871                rs2: 0xd,
18872                csr: 0xd,
18873                funct7: 0x0,
18874            },
18875            Opcode::WRSSTO => Inst {
18876                opcode: 0x73,
18877                funct3: 0x0,
18878                rs1: 0x0,
18879                rs2: 0x1d,
18880                csr: 0x1d,
18881                funct7: 0x0,
18882            },
18883            Opcode::XNOR => Inst {
18884                opcode: 0x33,
18885                funct3: 0x4,
18886                rs1: 0x0,
18887                rs2: 0x0,
18888                csr: 0x400,
18889                funct7: 0x20,
18890            },
18891            Opcode::XOR => Inst {
18892                opcode: 0x33,
18893                funct3: 0x4,
18894                rs1: 0x0,
18895                rs2: 0x0,
18896                csr: 0x0,
18897                funct7: 0x0,
18898            },
18899            Opcode::XORI => Inst {
18900                opcode: 0x13,
18901                funct3: 0x4,
18902                rs1: 0x0,
18903                rs2: 0x0,
18904                csr: 0x0,
18905                funct7: 0x0,
18906            },
18907            Opcode::XPERM4 => Inst {
18908                opcode: 0x33,
18909                funct3: 0x2,
18910                rs1: 0x0,
18911                rs2: 0x0,
18912                csr: 0x280,
18913                funct7: 0x14,
18914            },
18915            Opcode::XPERM8 => Inst {
18916                opcode: 0x33,
18917                funct3: 0x4,
18918                rs1: 0x0,
18919                rs2: 0x0,
18920                csr: 0x280,
18921                funct7: 0x14,
18922            },
18923            Opcode::ZEXTB => Inst {
18924                opcode: 0x13,
18925                funct3: 0x7,
18926                rs1: 0x0,
18927                rs2: 0x0,
18928                csr: 0x0,
18929                funct7: 0x0,
18930            },
18931            Opcode::ZEXTH => Inst {
18932                opcode: 0x3b,
18933                funct3: 0x4,
18934                rs1: 0x0,
18935                rs2: 0x0,
18936                csr: 0x80,
18937                funct7: 0x4,
18938            },
18939            Opcode::ZEXTHRV32 => Inst {
18940                opcode: 0x33,
18941                funct3: 0x4,
18942                rs1: 0x0,
18943                rs2: 0x0,
18944                csr: 0x80,
18945                funct7: 0x4,
18946            },
18947            Opcode::ZEXTW => Inst {
18948                opcode: 0x3b,
18949                funct3: 0x0,
18950                rs1: 0x0,
18951                rs2: 0x0,
18952                csr: 0x80,
18953                funct7: 0x4,
18954            },
18955            Opcode::ZIP => Inst {
18956                opcode: 0x13,
18957                funct3: 0x1,
18958                rs1: 0x0,
18959                rs2: 0xf,
18960                csr: 0x8f,
18961                funct7: 0x4,
18962            },
18963        }
18964    }
18965}
18966
18967#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
18968pub enum Encoding {
18969    Bimm12HiRs1Bimm12lo,
18970    Bimm12HiRs1Rs2Bimm12lo,
18971    Bimm12HiRs2Bimm12lo,
18972    Bimm12HiRs2Rs1Bimm12lo,
18973    CImm12,
18974    CIndex,
18975    CMopT,
18976    CNzimm10hiCNzimm10lo,
18977    CNzimm6hiCNzimm6lo,
18978    CRlistCSpimm,
18979    CRs1N0,
18980    CRs2CUimm8spS,
18981    CRs2CUimm9spS,
18982    CSreg1CSreg2,
18983    CsrZimm,
18984    Empty,
18985    FmPredSuccRs1Rd,
18986    Imm12HiRs1Rs2Imm12lo,
18987    Imm12Rs1Rd,
18988    Jimm20,
18989    MopRT30MopRT2726MopRT2120RdRs1,
18990    MopRrT30MopRrT2726RdRs1Rs2,
18991    NfVmRs1Vd,
18992    NfVmRs1Vs3,
18993    NfVmRs2Rs1Vd,
18994    NfVmRs2Rs1Vs3,
18995    NfVmVs2Rs1Vd,
18996    NfVmVs2Rs1Vs3,
18997    Rd,
18998    RdCUimm8sphiCUimm8splo,
18999    RdCUimm9sphiCUimm9splo,
19000    RdCsr,
19001    RdCsrZimm,
19002    RdImm20,
19003    RdJimm20,
19004    RdN0CImm6loCImm6hi,
19005    RdN0CRs2N0,
19006    RdN0CUimm8sphiCUimm8splo,
19007    RdN0CUimm9sphiCUimm9splo,
19008    RdN2CNzimm18hiCNzimm18lo,
19009    RdPCNzuimm10,
19010    RdPRs1PCUimm1,
19011    RdPRs1PCUimm2,
19012    RdPRs1PCUimm7loCUimm7hi,
19013    RdPRs1PCUimm8loCUimm8hi,
19014    RdRs1,
19015    RdRs1AqRl,
19016    RdRs1Csr,
19017    RdRs1Imm12,
19018    RdRs1N0,
19019    RdRs1N0CImm6loCImm6hi,
19020    RdRs1N0CNzimm6loCNzimm6hi,
19021    RdRs1N0CNzuimm6hiCNzuimm6lo,
19022    RdRs1N0CNzuimm6lo,
19023    RdRs1N0CRs2N0,
19024    RdRs1P,
19025    RdRs1PCImm6hiCImm6lo,
19026    RdRs1PCNzuimm5,
19027    RdRs1PCNzuimm6loCNzuimm6hi,
19028    RdRs1PRs2P,
19029    RdRs1Rm,
19030    RdRs1Rnum,
19031    RdRs1Rs2,
19032    RdRs1Rs2AqRl,
19033    RdRs1Rs2Bs,
19034    RdRs1Rs2EqRs1,
19035    RdRs1Rs2Rm,
19036    RdRs1Rs2Rs3Rm,
19037    RdRs1Shamtd,
19038    RdRs1Shamtw,
19039    RdRs2,
19040    RdZimm,
19041    Rs1,
19042    Rs1Csr,
19043    Rs1Imm12hi,
19044    Rs1N0,
19045    Rs1PCBimm9loCBimm9hi,
19046    Rs1PRs2PCUimm7loCUimm7hi,
19047    Rs1PRs2PCUimm8hiCUimm8lo,
19048    Rs1PRs2PCUimm8loCUimm8hi,
19049    Rs1Rd,
19050    Rs1Rs2,
19051    Rs1Vd,
19052    Rs1Vs3,
19053    Rs2PRs1PCUimm1,
19054    Rs2PRs1PCUimm2,
19055    Rs2Rs1Rd,
19056    Simm5Vd,
19057    VmVd,
19058    VmVs2Rd,
19059    VmVs2Rs1Vd,
19060    VmVs2Simm5Vd,
19061    VmVs2Vd,
19062    VmVs2Vs1Vd,
19063    VmVs2Zimm5Vd,
19064    Vs1Vd,
19065    Vs2Rd,
19066    Vs2Rs1Vd,
19067    Vs2Simm5Vd,
19068    Vs2Vd,
19069    Vs2Vs1Vd,
19070    Vs2Zimm5Vd,
19071    Zimm10ZimmRd,
19072    Zimm11Rs1Rd,
19073    Zimm6HiVmVs2Zimm6loVd,
19074}
19075
19076impl Opcode {
19077    pub fn encoding(self) -> Encoding {
19078        use Opcode::*;
19079        match self {
19080            Opcode::Invalid => unreachable!(),
19081            BEQZ | BGEZ | BLTZ | BNEZ => Encoding::Bimm12HiRs1Bimm12lo,
19082            BEQ | BGE | BGEU | BLT | BLTU | BNE => Encoding::Bimm12HiRs1Rs2Bimm12lo,
19083            BGTZ | BLEZ => Encoding::Bimm12HiRs2Bimm12lo,
19084            BGT | BGTU | BLE | BLEU => Encoding::Bimm12HiRs2Rs1Bimm12lo,
19085            CJ | CJAL => Encoding::CImm12,
19086            CMJALT => Encoding::CIndex,
19087            CMOPN => Encoding::CMopT,
19088            CADDI16SP => Encoding::CNzimm10hiCNzimm10lo,
19089            CNOP => Encoding::CNzimm6hiCNzimm6lo,
19090            CMPOP | CMPOPRET | CMPOPRETZ | CMPUSH => Encoding::CRlistCSpimm,
19091            CJALR => Encoding::CRs1N0,
19092            CFSWSP | CSWSP => Encoding::CRs2CUimm8spS,
19093            CFSDSP | CSDSP => Encoding::CRs2CUimm9spS,
19094            CMMVA01S | CMMVSA01 => Encoding::CSreg1CSreg2,
19095            CSRCI | CSRSI | CSRWI => Encoding::CsrZimm,
19096            CEBREAK | CMOP1 | CMOP11 | CMOP13 | CMOP15 | CMOP3 | CMOP5 | CMOP7 | CMOP9
19097            | CNTLALL | CNTLP1 | CNTLPALL | CNTLS1 | DRET | EBREAK | ECALL | MRET | NOP
19098            | NTLALL | NTLP1 | NTLPALL | NTLS1 | PAUSE | RET | SBREAK | SCALL | SFENCEINVALIR
19099            | SFENCEWINVAL | SRET | WFI | WRSNTO | WRSSTO => Encoding::Empty,
19100            FENCE => Encoding::FmPredSuccRs1Rd,
19101            FSD | FSH | FSQ | FSW | SB | SD | SH | SW => Encoding::Imm12HiRs1Rs2Imm12lo,
19102            FENCEI => Encoding::Imm12Rs1Rd,
19103            J | JALPSEUDO => Encoding::Jimm20,
19104            MOPRN => Encoding::MopRT30MopRT2726MopRT2120RdRs1,
19105            MOPRRN => Encoding::MopRrT30MopRrT2726RdRs1Rs2,
19106            VLE16V | VLE16FFV | VLE32V | VLE32FFV | VLE64V | VLE64FFV | VLE8V | VLE8FFV => {
19107                Encoding::NfVmRs1Vd
19108            }
19109            VSE16V | VSE32V | VSE64V | VSE8V => Encoding::NfVmRs1Vs3,
19110            VLSE16V | VLSE32V | VLSE64V | VLSE8V => Encoding::NfVmRs2Rs1Vd,
19111            VSSE16V | VSSE32V | VSSE64V | VSSE8V => Encoding::NfVmRs2Rs1Vs3,
19112            VLOXEI16V | VLOXEI32V | VLOXEI64V | VLOXEI8V | VLUXEI16V | VLUXEI32V | VLUXEI64V
19113            | VLUXEI8V => Encoding::NfVmVs2Rs1Vd,
19114            VSOXEI16V | VSOXEI32V | VSOXEI64V | VSOXEI8V | VSUXEI16V | VSUXEI32V | VSUXEI64V
19115            | VSUXEI8V => Encoding::NfVmVs2Rs1Vs3,
19116            FRCSR | FRFLAGS | FRRM | RDCYCLE | RDCYCLEH | RDINSTRET | RDINSTRETH | RDTIME
19117            | RDTIMEH => Encoding::Rd,
19118            CFLWSP => Encoding::RdCUimm8sphiCUimm8splo,
19119            CFLDSP => Encoding::RdCUimm9sphiCUimm9splo,
19120            CSRR => Encoding::RdCsr,
19121            CSRRCI | CSRRSI | CSRRWI => Encoding::RdCsrZimm,
19122            AUIPC | LUI => Encoding::RdImm20,
19123            JAL => Encoding::RdJimm20,
19124            CLI => Encoding::RdN0CImm6loCImm6hi,
19125            CMV => Encoding::RdN0CRs2N0,
19126            CLWSP => Encoding::RdN0CUimm8sphiCUimm8splo,
19127            CLDSP => Encoding::RdN0CUimm9sphiCUimm9splo,
19128            CLUI => Encoding::RdN2CNzimm18hiCNzimm18lo,
19129            CADDI4SPN => Encoding::RdPCNzuimm10,
19130            CLH | CLHU => Encoding::RdPRs1PCUimm1,
19131            CLBU => Encoding::RdPRs1PCUimm2,
19132            CFLW | CLW => Encoding::RdPRs1PCUimm7loCUimm7hi,
19133            CFLD | CLD => Encoding::RdPRs1PCUimm8loCUimm8hi,
19134            AES64IM | BREV8 | CLZ | CLZW | CPOP | CPOPW | CTZ | CTZW | FCLASSD | FCLASSH
19135            | FCLASSQ | FCLASSS | FCVTMODWD | FLID | FLIH | FLIQ | FLIS | FMVDX | FMVHX | FMVSX
19136            | FMVWX | FMVXD | FMVXH | FMVXS | FMVXW | FMVHXD | FMVHXQ | FSCSR | FSFLAGS | FSRM
19137            | HLVB | HLVBU | HLVD | HLVH | HLVHU | HLVW | HLVWU | HLVXHU | HLVXWU | MOPR0
19138            | MOPR1 | MOPR10 | MOPR11 | MOPR12 | MOPR13 | MOPR14 | MOPR15 | MOPR16 | MOPR17
19139            | MOPR18 | MOPR19 | MOPR2 | MOPR20 | MOPR21 | MOPR22 | MOPR23 | MOPR24 | MOPR25
19140            | MOPR26 | MOPR27 | MOPR28 | MOPR29 | MOPR3 | MOPR30 | MOPR31 | MOPR4 | MOPR5
19141            | MOPR6 | MOPR7 | MOPR8 | MOPR9 | MV | NEG | ORCB | REV8 | REV8RV32 | SEQZ | SEXTB
19142            | SEXTH | SEXTW | SHA256SIG0 | SHA256SIG1 | SHA256SUM0 | SHA256SUM1 | SHA512SIG0
19143            | SHA512SIG1 | SHA512SUM0 | SHA512SUM1 | SLTZ | SM3P0 | SM3P1 | UNZIP | ZEXTB
19144            | ZEXTH | ZEXTHRV32 | ZEXTW | ZIP => Encoding::RdRs1,
19145            LRD | LRW => Encoding::RdRs1AqRl,
19146            CSRRC | CSRRS | CSRRW => Encoding::RdRs1Csr,
19147            ADDI | ADDIW | ANDI | FLD | FLH | FLQ | FLW | JALR | LB | LBU | LD | LH | LHU | LW
19148            | LWU | ORI | SLTI | SLTIU | XORI => Encoding::RdRs1Imm12,
19149            CSEXTW => Encoding::RdRs1N0,
19150            CADDIW => Encoding::RdRs1N0CImm6loCImm6hi,
19151            CADDI => Encoding::RdRs1N0CNzimm6loCNzimm6hi,
19152            CSLLI => Encoding::RdRs1N0CNzuimm6hiCNzuimm6lo,
19153            CSLLIRV32 => Encoding::RdRs1N0CNzuimm6lo,
19154            CADD => Encoding::RdRs1N0CRs2N0,
19155            CNOT | CSEXTB | CSEXTH | CZEXTB | CZEXTH | CZEXTW => Encoding::RdRs1P,
19156            CANDI => Encoding::RdRs1PCImm6hiCImm6lo,
19157            CSRAIRV32 | CSRLIRV32 => Encoding::RdRs1PCNzuimm5,
19158            CSRAI | CSRLI => Encoding::RdRs1PCNzuimm6loCNzuimm6hi,
19159            CADDW | CAND | CMUL | COR | CSUB | CSUBW | CXOR => Encoding::RdRs1PRs2P,
19160            FCVTDH | FCVTDL | FCVTDLU | FCVTDQ | FCVTDS | FCVTDW | FCVTDWU | FCVTHD | FCVTHL
19161            | FCVTHLU | FCVTHQ | FCVTHS | FCVTHW | FCVTHWU | FCVTLD | FCVTLH | FCVTLQ | FCVTLS
19162            | FCVTLUD | FCVTLUH | FCVTLUQ | FCVTLUS | FCVTQD | FCVTQH | FCVTQL | FCVTQLU
19163            | FCVTQS | FCVTQW | FCVTQWU | FCVTSD | FCVTSH | FCVTSL | FCVTSLU | FCVTSQ | FCVTSW
19164            | FCVTSWU | FCVTWD | FCVTWH | FCVTWQ | FCVTWS | FCVTWUD | FCVTWUH | FCVTWUQ
19165            | FCVTWUS | FROUNDD | FROUNDH | FROUNDQ | FROUNDS | FROUNDNXD | FROUNDNXH
19166            | FROUNDNXQ | FROUNDNXS | FSQRTD | FSQRTH | FSQRTQ | FSQRTS => Encoding::RdRs1Rm,
19167            AES64KS1I => Encoding::RdRs1Rnum,
19168            ADD | ADDUW | ADDW | AES64DS | AES64DSM | AES64ES | AES64ESM | AES64KS2 | AND
19169            | ANDN | BCLR | BEXT | BINV | BSET | CLMUL | CLMULH | CLMULR | CZEROEQZ | CZERONEZ
19170            | DIV | DIVU | DIVUW | DIVW | FEQD | FEQH | FEQQ | FEQS | FLED | FLEH | FLEQ | FLES
19171            | FLEQD | FLEQH | FLEQQ | FLEQS | FLTD | FLTH | FLTQ | FLTS | FLTQD | FLTQH | FLTQQ
19172            | FLTQS | FMAXD | FMAXH | FMAXQ | FMAXS | FMAXMD | FMAXMH | FMAXMQ | FMAXMS | FMIND
19173            | FMINH | FMINQ | FMINS | FMINMD | FMINMH | FMINMQ | FMINMS | FMVPDX | FMVPQX
19174            | FSGNJD | FSGNJH | FSGNJQ | FSGNJS | FSGNJND | FSGNJNH | FSGNJNQ | FSGNJNS
19175            | FSGNJXD | FSGNJXH | FSGNJXQ | FSGNJXS | MAX | MAXU | MIN | MINU | MOPRR0 | MOPRR1
19176            | MOPRR2 | MOPRR3 | MOPRR4 | MOPRR5 | MOPRR6 | MOPRR7 | MUL | MULH | MULHSU | MULHU
19177            | MULW | OR | ORN | PACK | PACKH | PACKW | REM | REMU | REMUW | REMW | ROL | ROLW
19178            | ROR | RORW | SH1ADD | SH1ADDUW | SH2ADD | SH2ADDUW | SH3ADD | SH3ADDUW
19179            | SHA512SIG0H | SHA512SIG0L | SHA512SIG1H | SHA512SIG1L | SHA512SUM0R | SHA512SUM1R
19180            | SLL | SLLW | SLT | SLTU | SRA | SRAW | SRL | SRLW | SUB | SUBW | XNOR | XOR
19181            | XPERM4 | XPERM8 => Encoding::RdRs1Rs2,
19182            AMOADDB | AMOADDD | AMOADDH | AMOADDW | AMOANDB | AMOANDD | AMOANDH | AMOANDW
19183            | AMOCASB | AMOCASD | AMOCASH | AMOCASQ | AMOCASW | AMOMAXB | AMOMAXD | AMOMAXH
19184            | AMOMAXW | AMOMAXUB | AMOMAXUD | AMOMAXUH | AMOMAXUW | AMOMINB | AMOMIND | AMOMINH
19185            | AMOMINW | AMOMINUB | AMOMINUD | AMOMINUH | AMOMINUW | AMOORB | AMOORD | AMOORH
19186            | AMOORW | AMOSWAPB | AMOSWAPD | AMOSWAPH | AMOSWAPW | AMOXORB | AMOXORD | AMOXORH
19187            | AMOXORW | SCD | SCW => Encoding::RdRs1Rs2AqRl,
19188            AES32DSI | AES32DSMI | AES32ESI | AES32ESMI | SM4ED | SM4KS => Encoding::RdRs1Rs2Bs,
19189            FABSD | FABSH | FABSQ | FABSS | FMVD | FMVH | FMVQ | FMVS | FNEGD | FNEGH | FNEGQ
19190            | FNEGS => Encoding::RdRs1Rs2EqRs1,
19191            FADDD | FADDH | FADDQ | FADDS | FDIVD | FDIVH | FDIVQ | FDIVS | FMULD | FMULH
19192            | FMULQ | FMULS | FSUBD | FSUBH | FSUBQ | FSUBS => Encoding::RdRs1Rs2Rm,
19193            FMADDD | FMADDH | FMADDQ | FMADDS | FMSUBD | FMSUBH | FMSUBQ | FMSUBS | FNMADDD
19194            | FNMADDH | FNMADDQ | FNMADDS | FNMSUBD | FNMSUBH | FNMSUBQ | FNMSUBS => {
19195                Encoding::RdRs1Rs2Rs3Rm
19196            }
19197            BCLRI | BEXTI | BINVI | BSETI | RORI | SLLI | SLLIUW | SRAI | SRLI => {
19198                Encoding::RdRs1Shamtd
19199            }
19200            BCLRIRV32 | BEXTIRV32 | BINVIRV32 | BSETIRV32 | RORIRV32 | RORIW | SLLIRV32 | SLLIW
19201            | SRAIRV32 | SRAIW | SRLIRV32 | SRLIW => Encoding::RdRs1Shamtw,
19202            SGTZ | SNEZ => Encoding::RdRs2,
19203            FSFLAGSI | FSRMI => Encoding::RdZimm,
19204            CBOCLEAN | CBOFLUSH | CBOINVAL | CBOZERO | JALRPSEUDO | JR => Encoding::Rs1,
19205            CSRC | CSRS | CSRW => Encoding::Rs1Csr,
19206            PREFETCHI | PREFETCHR | PREFETCHW => Encoding::Rs1Imm12hi,
19207            CJR => Encoding::Rs1N0,
19208            CBEQZ | CBNEZ => Encoding::Rs1PCBimm9loCBimm9hi,
19209            CFSW | CSW => Encoding::Rs1PRs2PCUimm7loCUimm7hi,
19210            CSD => Encoding::Rs1PRs2PCUimm8hiCUimm8lo,
19211            CFSD => Encoding::Rs1PRs2PCUimm8loCUimm8hi,
19212            FENCETSO => Encoding::Rs1Rd,
19213            HFENCEGVMA | HFENCEVVMA | HINVALGVMA | HINVALVVMA | HSVB | HSVD | HSVH | HSVW
19214            | SFENCEVMA | SINVALVMA => Encoding::Rs1Rs2,
19215            VFMVSF | VFMVVF | VL1RV | VL1RE16V | VL1RE32V | VL1RE64V | VL1RE8V | VL2RV
19216            | VL2RE16V | VL2RE32V | VL2RE64V | VL2RE8V | VL4RV | VL4RE16V | VL4RE32V | VL4RE64V
19217            | VL4RE8V | VL8RV | VL8RE16V | VL8RE32V | VL8RE64V | VL8RE8V | VLE1V | VLMV | VMVSX
19218            | VMVVX => Encoding::Rs1Vd,
19219            VS1RV | VS2RV | VS4RV | VS8RV | VSE1V | VSMV => Encoding::Rs1Vs3,
19220            CSH => Encoding::Rs2PRs1PCUimm1,
19221            CSB => Encoding::Rs2PRs1PCUimm2,
19222            VSETVL => Encoding::Rs2Rs1Rd,
19223            VMVVI => Encoding::Simm5Vd,
19224            VIDV => Encoding::VmVd,
19225            VCPOPM | VFIRSTM | VPOPCM => Encoding::VmVs2Rd,
19226            VAADDVX | VAADDUVX | VADDVX | VANDVX | VANDNVX | VASUBVX | VASUBUVX | VCLMULVX
19227            | VCLMULHVX | VDIVVX | VDIVUVX | VFADDVF | VFDIVVF | VFMACCVF | VFMADDVF | VFMAXVF
19228            | VFMINVF | VFMSACVF | VFMSUBVF | VFMULVF | VFNMACCVF | VFNMADDVF | VFNMSACVF
19229            | VFNMSUBVF | VFRDIVVF | VFRSUBVF | VFSGNJVF | VFSGNJNVF | VFSGNJXVF
19230            | VFSLIDE1DOWNVF | VFSLIDE1UPVF | VFSUBVF | VFWADDVF | VFWADDWF | VFWMACCVF
19231            | VFWMSACVF | VFWMULVF | VFWNMACCVF | VFWNMSACVF | VFWSUBVF | VFWSUBWF | VMACCVX
19232            | VMADDVX | VMAXVX | VMAXUVX | VMFEQVF | VMFGEVF | VMFGTVF | VMFLEVF | VMFLTVF
19233            | VMFNEVF | VMINVX | VMINUVX | VMSEQVX | VMSGTVX | VMSGTUVX | VMSLEVX | VMSLEUVX
19234            | VMSLTVX | VMSLTUVX | VMSNEVX | VMULVX | VMULHVX | VMULHSUVX | VMULHUVX | VNCLIPWX
19235            | VNCLIPUWX | VNMSACVX | VNMSUBVX | VNSRAWX | VNSRLWX | VORVX | VREMVX | VREMUVX
19236            | VRGATHERVX | VROLVX | VRORVX | VRSUBVX | VSADDVX | VSADDUVX | VSLIDE1DOWNVX
19237            | VSLIDE1UPVX | VSLIDEDOWNVX | VSLIDEUPVX | VSLLVX | VSMULVX | VSRAVX | VSRLVX
19238            | VSSRAVX | VSSRLVX | VSSUBVX | VSSUBUVX | VSUBVX | VWADDVX | VWADDWX | VWADDUVX
19239            | VWADDUWX | VWMACCVX | VWMACCSUVX | VWMACCUVX | VWMACCUSVX | VWMULVX | VWMULSUVX
19240            | VWMULUVX | VWSLLVX | VWSUBVX | VWSUBWX | VWSUBUVX | VWSUBUWX | VXORVX => {
19241                Encoding::VmVs2Rs1Vd
19242            }
19243            VADDVI | VANDVI | VMSEQVI | VMSGTVI | VMSGTUVI | VMSLEVI | VMSLEUVI | VMSNEVI
19244            | VNCLIPWI | VNCLIPUWI | VNSRAWI | VNSRLWI | VORVI | VRGATHERVI | VRSUBVI | VSADDVI
19245            | VSADDUVI | VSLIDEDOWNVI | VSLIDEUPVI | VSLLVI | VSRAVI | VSRLVI | VSSRAVI
19246            | VSSRLVI | VXORVI => Encoding::VmVs2Simm5Vd,
19247            VBREV8V | VBREVV | VCLZV | VCPOPV | VCTZV | VFCLASSV | VFCVTFXV | VFCVTFXUV
19248            | VFCVTRTZXFV | VFCVTRTZXUFV | VFCVTXFV | VFCVTXUFV | VFNCVTFFW | VFNCVTFXW
19249            | VFNCVTFXUW | VFNCVTRODFFW | VFNCVTRTZXFW | VFNCVTRTZXUFW | VFNCVTXFW | VFNCVTXUFW
19250            | VFREC7V | VFRSQRT7V | VFSQRTV | VFWCVTFFV | VFWCVTFXV | VFWCVTFXUV | VFWCVTRTZXFV
19251            | VFWCVTRTZXUFV | VFWCVTXFV | VFWCVTXUFV | VIOTAM | VMSBFM | VMSIFM | VMSOFM
19252            | VREV8V | VSEXTVF2 | VSEXTVF4 | VSEXTVF8 | VZEXTVF2 | VZEXTVF4 | VZEXTVF8 => {
19253                Encoding::VmVs2Vd
19254            }
19255            VAADDVV | VAADDUVV | VADDVV | VANDVV | VANDNVV | VASUBVV | VASUBUVV | VCLMULVV
19256            | VCLMULHVV | VDIVVV | VDIVUVV | VFADDVV | VFDIVVV | VFMACCVV | VFMADDVV | VFMAXVV
19257            | VFMINVV | VFMSACVV | VFMSUBVV | VFMULVV | VFNMACCVV | VFNMADDVV | VFNMSACVV
19258            | VFNMSUBVV | VFREDMAXVS | VFREDMINVS | VFREDOSUMVS | VFREDSUMVS | VFREDUSUMVS
19259            | VFSGNJVV | VFSGNJNVV | VFSGNJXVV | VFSUBVV | VFWADDVV | VFWADDWV | VFWMACCVV
19260            | VFWMSACVV | VFWMULVV | VFWNMACCVV | VFWNMSACVV | VFWREDOSUMVS | VFWREDSUMVS
19261            | VFWREDUSUMVS | VFWSUBVV | VFWSUBWV | VMACCVV | VMADDVV | VMANDNOTMM | VMAXVV
19262            | VMAXUVV | VMFEQVV | VMFLEVV | VMFLTVV | VMFNEVV | VMINVV | VMINUVV | VMORNOTMM
19263            | VMSEQVV | VMSLEVV | VMSLEUVV | VMSLTVV | VMSLTUVV | VMSNEVV | VMULVV | VMULHVV
19264            | VMULHSUVV | VMULHUVV | VNCLIPWV | VNCLIPUWV | VNMSACVV | VNMSUBVV | VNSRAWV
19265            | VNSRLWV | VORVV | VREDANDVS | VREDMAXVS | VREDMAXUVS | VREDMINVS | VREDMINUVS
19266            | VREDORVS | VREDSUMVS | VREDXORVS | VREMVV | VREMUVV | VRGATHERVV | VRGATHEREI16VV
19267            | VROLVV | VRORVV | VSADDVV | VSADDUVV | VSLLVV | VSMULVV | VSRAVV | VSRLVV
19268            | VSSRAVV | VSSRLVV | VSSUBVV | VSSUBUVV | VSUBVV | VWADDVV | VWADDWV | VWADDUVV
19269            | VWADDUWV | VWMACCVV | VWMACCSUVV | VWMACCUVV | VWMULVV | VWMULSUVV | VWMULUVV
19270            | VWREDSUMVS | VWREDSUMUVS | VWSLLVV | VWSUBVV | VWSUBWV | VWSUBUVV | VWSUBUWV
19271            | VXORVV => Encoding::VmVs2Vs1Vd,
19272            VWSLLVI => Encoding::VmVs2Zimm5Vd,
19273            VMVVV => Encoding::Vs1Vd,
19274            VFMVFS | VMVXS => Encoding::Vs2Rd,
19275            VADCVXM | VFMERGEVFM | VMADCVX | VMADCVXM | VMERGEVXM | VMSBCVX | VMSBCVXM
19276            | VSBCVXM => Encoding::Vs2Rs1Vd,
19277            VADCVIM | VMADCVI | VMADCVIM | VMERGEVIM => Encoding::Vs2Simm5Vd,
19278            VAESDFVS | VAESDFVV | VAESDMVS | VAESDMVV | VAESEFVS | VAESEFVV | VAESEMVS
19279            | VAESEMVV | VAESZVS | VGMULVV | VMV1RV | VMV2RV | VMV4RV | VMV8RV | VSM4RVS
19280            | VSM4RVV => Encoding::Vs2Vd,
19281            VADCVVM | VCOMPRESSVM | VGHSHVV | VMADCVV | VMADCVVM | VMANDMM | VMANDNMM
19282            | VMERGEVVM | VMNANDMM | VMNORMM | VMORMM | VMORNMM | VMSBCVV | VMSBCVVM | VMXNORMM
19283            | VMXORMM | VSBCVVM | VSHA2CHVV | VSHA2CLVV | VSHA2MSVV | VSM3MEVV => {
19284                Encoding::Vs2Vs1Vd
19285            }
19286            VAESKF1VI | VAESKF2VI | VSM3CVI | VSM4KVI => Encoding::Vs2Zimm5Vd,
19287            VSETIVLI => Encoding::Zimm10ZimmRd,
19288            VSETVLI => Encoding::Zimm11Rs1Rd,
19289            VRORVI => Encoding::Zimm6HiVmVs2Zimm6loVd,
19290        }
19291    }
19292}
19293pub const INSN_FIELD_RD: u32 = 0xf80;
19294pub const INSN_FIELD_RD_START: u32 = 7;
19295pub const INSN_FIELD_RD_SIZE: u32 = 5;
19296pub const INSN_FIELD_RT: u32 = 0xf8000;
19297pub const INSN_FIELD_RT_START: u32 = 15;
19298pub const INSN_FIELD_RT_SIZE: u32 = 5;
19299pub const INSN_FIELD_RS1: u32 = 0xf8000;
19300pub const INSN_FIELD_RS1_START: u32 = 15;
19301pub const INSN_FIELD_RS1_SIZE: u32 = 5;
19302pub const INSN_FIELD_RS2: u32 = 0x1f00000;
19303pub const INSN_FIELD_RS2_START: u32 = 20;
19304pub const INSN_FIELD_RS2_SIZE: u32 = 5;
19305pub const INSN_FIELD_RS3: u32 = 0xf8000000;
19306pub const INSN_FIELD_RS3_START: u32 = 27;
19307pub const INSN_FIELD_RS3_SIZE: u32 = 5;
19308pub const INSN_FIELD_AQRL: u32 = 0x6000000;
19309pub const INSN_FIELD_AQRL_START: u32 = 25;
19310pub const INSN_FIELD_AQRL_SIZE: u32 = 2;
19311pub const INSN_FIELD_AQ: u32 = 0x4000000;
19312pub const INSN_FIELD_AQ_START: u32 = 26;
19313pub const INSN_FIELD_AQ_SIZE: u32 = 1;
19314pub const INSN_FIELD_RL: u32 = 0x2000000;
19315pub const INSN_FIELD_RL_START: u32 = 25;
19316pub const INSN_FIELD_RL_SIZE: u32 = 1;
19317pub const INSN_FIELD_FM: u32 = 0xf0000000;
19318pub const INSN_FIELD_FM_START: u32 = 28;
19319pub const INSN_FIELD_FM_SIZE: u32 = 4;
19320pub const INSN_FIELD_PRED: u32 = 0xf000000;
19321pub const INSN_FIELD_PRED_START: u32 = 24;
19322pub const INSN_FIELD_PRED_SIZE: u32 = 4;
19323pub const INSN_FIELD_SUCC: u32 = 0xf00000;
19324pub const INSN_FIELD_SUCC_START: u32 = 20;
19325pub const INSN_FIELD_SUCC_SIZE: u32 = 4;
19326pub const INSN_FIELD_RM: u32 = 0x7000;
19327pub const INSN_FIELD_RM_START: u32 = 12;
19328pub const INSN_FIELD_RM_SIZE: u32 = 3;
19329pub const INSN_FIELD_FUNCT3: u32 = 0x7000;
19330pub const INSN_FIELD_FUNCT3_START: u32 = 12;
19331pub const INSN_FIELD_FUNCT3_SIZE: u32 = 3;
19332pub const INSN_FIELD_FUNCT2: u32 = 0x6000000;
19333pub const INSN_FIELD_FUNCT2_START: u32 = 25;
19334pub const INSN_FIELD_FUNCT2_SIZE: u32 = 2;
19335pub const INSN_FIELD_IMM20: u32 = 0xfffff000;
19336pub const INSN_FIELD_IMM20_START: u32 = 12;
19337pub const INSN_FIELD_IMM20_SIZE: u32 = 20;
19338pub const INSN_FIELD_JIMM20: u32 = 0xfffff000;
19339pub const INSN_FIELD_JIMM20_START: u32 = 12;
19340pub const INSN_FIELD_JIMM20_SIZE: u32 = 20;
19341pub const INSN_FIELD_IMM12: u32 = 0xfff00000;
19342pub const INSN_FIELD_IMM12_START: u32 = 20;
19343pub const INSN_FIELD_IMM12_SIZE: u32 = 12;
19344pub const INSN_FIELD_CSR: u32 = 0xfff00000;
19345pub const INSN_FIELD_CSR_START: u32 = 20;
19346pub const INSN_FIELD_CSR_SIZE: u32 = 12;
19347pub const INSN_FIELD_IMM12HI: u32 = 0xfe000000;
19348pub const INSN_FIELD_IMM12HI_START: u32 = 25;
19349pub const INSN_FIELD_IMM12HI_SIZE: u32 = 7;
19350pub const INSN_FIELD_BIMM12HI: u32 = 0xfe000000;
19351pub const INSN_FIELD_BIMM12HI_START: u32 = 25;
19352pub const INSN_FIELD_BIMM12HI_SIZE: u32 = 7;
19353pub const INSN_FIELD_IMM12LO: u32 = 0xf80;
19354pub const INSN_FIELD_IMM12LO_START: u32 = 7;
19355pub const INSN_FIELD_IMM12LO_SIZE: u32 = 5;
19356pub const INSN_FIELD_BIMM12LO: u32 = 0xf80;
19357pub const INSN_FIELD_BIMM12LO_START: u32 = 7;
19358pub const INSN_FIELD_BIMM12LO_SIZE: u32 = 5;
19359pub const INSN_FIELD_SHAMTQ: u32 = 0x7f00000;
19360pub const INSN_FIELD_SHAMTQ_START: u32 = 20;
19361pub const INSN_FIELD_SHAMTQ_SIZE: u32 = 7;
19362pub const INSN_FIELD_SHAMTW: u32 = 0x1f00000;
19363pub const INSN_FIELD_SHAMTW_START: u32 = 20;
19364pub const INSN_FIELD_SHAMTW_SIZE: u32 = 5;
19365pub const INSN_FIELD_SHAMTW4: u32 = 0xf00000;
19366pub const INSN_FIELD_SHAMTW4_START: u32 = 20;
19367pub const INSN_FIELD_SHAMTW4_SIZE: u32 = 4;
19368pub const INSN_FIELD_SHAMTD: u32 = 0x3f00000;
19369pub const INSN_FIELD_SHAMTD_START: u32 = 20;
19370pub const INSN_FIELD_SHAMTD_SIZE: u32 = 6;
19371pub const INSN_FIELD_BS: u32 = 0xc0000000;
19372pub const INSN_FIELD_BS_START: u32 = 30;
19373pub const INSN_FIELD_BS_SIZE: u32 = 2;
19374pub const INSN_FIELD_RNUM: u32 = 0xf00000;
19375pub const INSN_FIELD_RNUM_START: u32 = 20;
19376pub const INSN_FIELD_RNUM_SIZE: u32 = 4;
19377pub const INSN_FIELD_RC: u32 = 0x3e000000;
19378pub const INSN_FIELD_RC_START: u32 = 25;
19379pub const INSN_FIELD_RC_SIZE: u32 = 5;
19380pub const INSN_FIELD_IMM2: u32 = 0x300000;
19381pub const INSN_FIELD_IMM2_START: u32 = 20;
19382pub const INSN_FIELD_IMM2_SIZE: u32 = 2;
19383pub const INSN_FIELD_IMM3: u32 = 0x700000;
19384pub const INSN_FIELD_IMM3_START: u32 = 20;
19385pub const INSN_FIELD_IMM3_SIZE: u32 = 3;
19386pub const INSN_FIELD_IMM4: u32 = 0xf00000;
19387pub const INSN_FIELD_IMM4_START: u32 = 20;
19388pub const INSN_FIELD_IMM4_SIZE: u32 = 4;
19389pub const INSN_FIELD_IMM5: u32 = 0x1f00000;
19390pub const INSN_FIELD_IMM5_START: u32 = 20;
19391pub const INSN_FIELD_IMM5_SIZE: u32 = 5;
19392pub const INSN_FIELD_IMM6: u32 = 0x3f00000;
19393pub const INSN_FIELD_IMM6_START: u32 = 20;
19394pub const INSN_FIELD_IMM6_SIZE: u32 = 6;
19395pub const INSN_FIELD_ZIMM: u32 = 0xf8000;
19396pub const INSN_FIELD_ZIMM_START: u32 = 15;
19397pub const INSN_FIELD_ZIMM_SIZE: u32 = 5;
19398pub const INSN_FIELD_OPCODE: u32 = 0x7f;
19399pub const INSN_FIELD_OPCODE_START: u32 = 0;
19400pub const INSN_FIELD_OPCODE_SIZE: u32 = 7;
19401pub const INSN_FIELD_FUNCT7: u32 = 0xfe000000;
19402pub const INSN_FIELD_FUNCT7_START: u32 = 25;
19403pub const INSN_FIELD_FUNCT7_SIZE: u32 = 7;
19404pub const INSN_FIELD_VD: u32 = 0xf80;
19405pub const INSN_FIELD_VD_START: u32 = 7;
19406pub const INSN_FIELD_VD_SIZE: u32 = 5;
19407pub const INSN_FIELD_VS3: u32 = 0xf80;
19408pub const INSN_FIELD_VS3_START: u32 = 7;
19409pub const INSN_FIELD_VS3_SIZE: u32 = 5;
19410pub const INSN_FIELD_VS1: u32 = 0xf8000;
19411pub const INSN_FIELD_VS1_START: u32 = 15;
19412pub const INSN_FIELD_VS1_SIZE: u32 = 5;
19413pub const INSN_FIELD_VS2: u32 = 0x1f00000;
19414pub const INSN_FIELD_VS2_START: u32 = 20;
19415pub const INSN_FIELD_VS2_SIZE: u32 = 5;
19416pub const INSN_FIELD_VM: u32 = 0x2000000;
19417pub const INSN_FIELD_VM_START: u32 = 25;
19418pub const INSN_FIELD_VM_SIZE: u32 = 1;
19419pub const INSN_FIELD_WD: u32 = 0x4000000;
19420pub const INSN_FIELD_WD_START: u32 = 26;
19421pub const INSN_FIELD_WD_SIZE: u32 = 1;
19422pub const INSN_FIELD_AMOOP: u32 = 0xf8000000;
19423pub const INSN_FIELD_AMOOP_START: u32 = 27;
19424pub const INSN_FIELD_AMOOP_SIZE: u32 = 5;
19425pub const INSN_FIELD_NF: u32 = 0xe0000000;
19426pub const INSN_FIELD_NF_START: u32 = 29;
19427pub const INSN_FIELD_NF_SIZE: u32 = 3;
19428pub const INSN_FIELD_SIMM5: u32 = 0xf8000;
19429pub const INSN_FIELD_SIMM5_START: u32 = 15;
19430pub const INSN_FIELD_SIMM5_SIZE: u32 = 5;
19431pub const INSN_FIELD_ZIMM5: u32 = 0xf8000;
19432pub const INSN_FIELD_ZIMM5_START: u32 = 15;
19433pub const INSN_FIELD_ZIMM5_SIZE: u32 = 5;
19434pub const INSN_FIELD_ZIMM10: u32 = 0x3ff00000;
19435pub const INSN_FIELD_ZIMM10_START: u32 = 20;
19436pub const INSN_FIELD_ZIMM10_SIZE: u32 = 10;
19437pub const INSN_FIELD_ZIMM11: u32 = 0x7ff00000;
19438pub const INSN_FIELD_ZIMM11_START: u32 = 20;
19439pub const INSN_FIELD_ZIMM11_SIZE: u32 = 11;
19440pub const INSN_FIELD_ZIMM6HI: u32 = 0x4000000;
19441pub const INSN_FIELD_ZIMM6HI_START: u32 = 26;
19442pub const INSN_FIELD_ZIMM6HI_SIZE: u32 = 1;
19443pub const INSN_FIELD_ZIMM6LO: u32 = 0xf8000;
19444pub const INSN_FIELD_ZIMM6LO_START: u32 = 15;
19445pub const INSN_FIELD_ZIMM6LO_SIZE: u32 = 5;
19446pub const INSN_FIELD_C_NZUIMM10: u32 = 0x1fe0;
19447pub const INSN_FIELD_C_NZUIMM10_START: u32 = 5;
19448pub const INSN_FIELD_C_NZUIMM10_SIZE: u32 = 8;
19449pub const INSN_FIELD_C_UIMM7LO: u32 = 0x60;
19450pub const INSN_FIELD_C_UIMM7LO_START: u32 = 5;
19451pub const INSN_FIELD_C_UIMM7LO_SIZE: u32 = 2;
19452pub const INSN_FIELD_C_UIMM7HI: u32 = 0x1c00;
19453pub const INSN_FIELD_C_UIMM7HI_START: u32 = 10;
19454pub const INSN_FIELD_C_UIMM7HI_SIZE: u32 = 3;
19455pub const INSN_FIELD_C_UIMM8LO: u32 = 0x60;
19456pub const INSN_FIELD_C_UIMM8LO_START: u32 = 5;
19457pub const INSN_FIELD_C_UIMM8LO_SIZE: u32 = 2;
19458pub const INSN_FIELD_C_UIMM8HI: u32 = 0x1c00;
19459pub const INSN_FIELD_C_UIMM8HI_START: u32 = 10;
19460pub const INSN_FIELD_C_UIMM8HI_SIZE: u32 = 3;
19461pub const INSN_FIELD_C_UIMM9LO: u32 = 0x60;
19462pub const INSN_FIELD_C_UIMM9LO_START: u32 = 5;
19463pub const INSN_FIELD_C_UIMM9LO_SIZE: u32 = 2;
19464pub const INSN_FIELD_C_UIMM9HI: u32 = 0x1c00;
19465pub const INSN_FIELD_C_UIMM9HI_START: u32 = 10;
19466pub const INSN_FIELD_C_UIMM9HI_SIZE: u32 = 3;
19467pub const INSN_FIELD_C_NZIMM6LO: u32 = 0x7c;
19468pub const INSN_FIELD_C_NZIMM6LO_START: u32 = 2;
19469pub const INSN_FIELD_C_NZIMM6LO_SIZE: u32 = 5;
19470pub const INSN_FIELD_C_NZIMM6HI: u32 = 0x1000;
19471pub const INSN_FIELD_C_NZIMM6HI_START: u32 = 12;
19472pub const INSN_FIELD_C_NZIMM6HI_SIZE: u32 = 1;
19473pub const INSN_FIELD_C_IMM6LO: u32 = 0x7c;
19474pub const INSN_FIELD_C_IMM6LO_START: u32 = 2;
19475pub const INSN_FIELD_C_IMM6LO_SIZE: u32 = 5;
19476pub const INSN_FIELD_C_IMM6HI: u32 = 0x1000;
19477pub const INSN_FIELD_C_IMM6HI_START: u32 = 12;
19478pub const INSN_FIELD_C_IMM6HI_SIZE: u32 = 1;
19479pub const INSN_FIELD_C_NZIMM10HI: u32 = 0x1000;
19480pub const INSN_FIELD_C_NZIMM10HI_START: u32 = 12;
19481pub const INSN_FIELD_C_NZIMM10HI_SIZE: u32 = 1;
19482pub const INSN_FIELD_C_NZIMM10LO: u32 = 0x7c;
19483pub const INSN_FIELD_C_NZIMM10LO_START: u32 = 2;
19484pub const INSN_FIELD_C_NZIMM10LO_SIZE: u32 = 5;
19485pub const INSN_FIELD_C_NZIMM18HI: u32 = 0x1000;
19486pub const INSN_FIELD_C_NZIMM18HI_START: u32 = 12;
19487pub const INSN_FIELD_C_NZIMM18HI_SIZE: u32 = 1;
19488pub const INSN_FIELD_C_NZIMM18LO: u32 = 0x7c;
19489pub const INSN_FIELD_C_NZIMM18LO_START: u32 = 2;
19490pub const INSN_FIELD_C_NZIMM18LO_SIZE: u32 = 5;
19491pub const INSN_FIELD_C_IMM12: u32 = 0x1ffc;
19492pub const INSN_FIELD_C_IMM12_START: u32 = 2;
19493pub const INSN_FIELD_C_IMM12_SIZE: u32 = 11;
19494pub const INSN_FIELD_C_BIMM9LO: u32 = 0x7c;
19495pub const INSN_FIELD_C_BIMM9LO_START: u32 = 2;
19496pub const INSN_FIELD_C_BIMM9LO_SIZE: u32 = 5;
19497pub const INSN_FIELD_C_BIMM9HI: u32 = 0x1c00;
19498pub const INSN_FIELD_C_BIMM9HI_START: u32 = 10;
19499pub const INSN_FIELD_C_BIMM9HI_SIZE: u32 = 3;
19500pub const INSN_FIELD_C_NZUIMM5: u32 = 0x7c;
19501pub const INSN_FIELD_C_NZUIMM5_START: u32 = 2;
19502pub const INSN_FIELD_C_NZUIMM5_SIZE: u32 = 5;
19503pub const INSN_FIELD_C_NZUIMM6LO: u32 = 0x7c;
19504pub const INSN_FIELD_C_NZUIMM6LO_START: u32 = 2;
19505pub const INSN_FIELD_C_NZUIMM6LO_SIZE: u32 = 5;
19506pub const INSN_FIELD_C_NZUIMM6HI: u32 = 0x1000;
19507pub const INSN_FIELD_C_NZUIMM6HI_START: u32 = 12;
19508pub const INSN_FIELD_C_NZUIMM6HI_SIZE: u32 = 1;
19509pub const INSN_FIELD_C_UIMM8SPLO: u32 = 0x7c;
19510pub const INSN_FIELD_C_UIMM8SPLO_START: u32 = 2;
19511pub const INSN_FIELD_C_UIMM8SPLO_SIZE: u32 = 5;
19512pub const INSN_FIELD_C_UIMM8SPHI: u32 = 0x1000;
19513pub const INSN_FIELD_C_UIMM8SPHI_START: u32 = 12;
19514pub const INSN_FIELD_C_UIMM8SPHI_SIZE: u32 = 1;
19515pub const INSN_FIELD_C_UIMM8SP_S: u32 = 0x1f80;
19516pub const INSN_FIELD_C_UIMM8SP_S_START: u32 = 7;
19517pub const INSN_FIELD_C_UIMM8SP_S_SIZE: u32 = 6;
19518pub const INSN_FIELD_C_UIMM10SPLO: u32 = 0x7c;
19519pub const INSN_FIELD_C_UIMM10SPLO_START: u32 = 2;
19520pub const INSN_FIELD_C_UIMM10SPLO_SIZE: u32 = 5;
19521pub const INSN_FIELD_C_UIMM10SPHI: u32 = 0x1000;
19522pub const INSN_FIELD_C_UIMM10SPHI_START: u32 = 12;
19523pub const INSN_FIELD_C_UIMM10SPHI_SIZE: u32 = 1;
19524pub const INSN_FIELD_C_UIMM9SPLO: u32 = 0x7c;
19525pub const INSN_FIELD_C_UIMM9SPLO_START: u32 = 2;
19526pub const INSN_FIELD_C_UIMM9SPLO_SIZE: u32 = 5;
19527pub const INSN_FIELD_C_UIMM9SPHI: u32 = 0x1000;
19528pub const INSN_FIELD_C_UIMM9SPHI_START: u32 = 12;
19529pub const INSN_FIELD_C_UIMM9SPHI_SIZE: u32 = 1;
19530pub const INSN_FIELD_C_UIMM10SP_S: u32 = 0x1f80;
19531pub const INSN_FIELD_C_UIMM10SP_S_START: u32 = 7;
19532pub const INSN_FIELD_C_UIMM10SP_S_SIZE: u32 = 6;
19533pub const INSN_FIELD_C_UIMM9SP_S: u32 = 0x1f80;
19534pub const INSN_FIELD_C_UIMM9SP_S_START: u32 = 7;
19535pub const INSN_FIELD_C_UIMM9SP_S_SIZE: u32 = 6;
19536pub const INSN_FIELD_C_UIMM2: u32 = 0x60;
19537pub const INSN_FIELD_C_UIMM2_START: u32 = 5;
19538pub const INSN_FIELD_C_UIMM2_SIZE: u32 = 2;
19539pub const INSN_FIELD_C_UIMM1: u32 = 0x20;
19540pub const INSN_FIELD_C_UIMM1_START: u32 = 5;
19541pub const INSN_FIELD_C_UIMM1_SIZE: u32 = 1;
19542pub const INSN_FIELD_C_RLIST: u32 = 0xf0;
19543pub const INSN_FIELD_C_RLIST_START: u32 = 4;
19544pub const INSN_FIELD_C_RLIST_SIZE: u32 = 4;
19545pub const INSN_FIELD_C_SPIMM: u32 = 0xc;
19546pub const INSN_FIELD_C_SPIMM_START: u32 = 2;
19547pub const INSN_FIELD_C_SPIMM_SIZE: u32 = 2;
19548pub const INSN_FIELD_C_INDEX: u32 = 0x3fc;
19549pub const INSN_FIELD_C_INDEX_START: u32 = 2;
19550pub const INSN_FIELD_C_INDEX_SIZE: u32 = 8;
19551pub const INSN_FIELD_RS1_P: u32 = 0x380;
19552pub const INSN_FIELD_RS1_P_START: u32 = 7;
19553pub const INSN_FIELD_RS1_P_SIZE: u32 = 3;
19554pub const INSN_FIELD_RS2_P: u32 = 0x1c;
19555pub const INSN_FIELD_RS2_P_START: u32 = 2;
19556pub const INSN_FIELD_RS2_P_SIZE: u32 = 3;
19557pub const INSN_FIELD_RD_P: u32 = 0x1c;
19558pub const INSN_FIELD_RD_P_START: u32 = 2;
19559pub const INSN_FIELD_RD_P_SIZE: u32 = 3;
19560pub const INSN_FIELD_RD_RS1_N0: u32 = 0xf80;
19561pub const INSN_FIELD_RD_RS1_N0_START: u32 = 7;
19562pub const INSN_FIELD_RD_RS1_N0_SIZE: u32 = 5;
19563pub const INSN_FIELD_RD_RS1_P: u32 = 0x380;
19564pub const INSN_FIELD_RD_RS1_P_START: u32 = 7;
19565pub const INSN_FIELD_RD_RS1_P_SIZE: u32 = 3;
19566pub const INSN_FIELD_RD_RS1: u32 = 0xf80;
19567pub const INSN_FIELD_RD_RS1_START: u32 = 7;
19568pub const INSN_FIELD_RD_RS1_SIZE: u32 = 5;
19569pub const INSN_FIELD_RD_N2: u32 = 0xf80;
19570pub const INSN_FIELD_RD_N2_START: u32 = 7;
19571pub const INSN_FIELD_RD_N2_SIZE: u32 = 5;
19572pub const INSN_FIELD_RD_N0: u32 = 0xf80;
19573pub const INSN_FIELD_RD_N0_START: u32 = 7;
19574pub const INSN_FIELD_RD_N0_SIZE: u32 = 5;
19575pub const INSN_FIELD_RS1_N0: u32 = 0xf80;
19576pub const INSN_FIELD_RS1_N0_START: u32 = 7;
19577pub const INSN_FIELD_RS1_N0_SIZE: u32 = 5;
19578pub const INSN_FIELD_C_RS2_N0: u32 = 0x7c;
19579pub const INSN_FIELD_C_RS2_N0_START: u32 = 2;
19580pub const INSN_FIELD_C_RS2_N0_SIZE: u32 = 5;
19581pub const INSN_FIELD_C_RS1_N0: u32 = 0xf80;
19582pub const INSN_FIELD_C_RS1_N0_START: u32 = 7;
19583pub const INSN_FIELD_C_RS1_N0_SIZE: u32 = 5;
19584pub const INSN_FIELD_C_RS2: u32 = 0x7c;
19585pub const INSN_FIELD_C_RS2_START: u32 = 2;
19586pub const INSN_FIELD_C_RS2_SIZE: u32 = 5;
19587pub const INSN_FIELD_C_SREG1: u32 = 0x380;
19588pub const INSN_FIELD_C_SREG1_START: u32 = 7;
19589pub const INSN_FIELD_C_SREG1_SIZE: u32 = 3;
19590pub const INSN_FIELD_C_SREG2: u32 = 0x1c;
19591pub const INSN_FIELD_C_SREG2_START: u32 = 2;
19592pub const INSN_FIELD_C_SREG2_SIZE: u32 = 3;
19593pub const INSN_FIELD_MOP_R_T_30: u32 = 0x40000000;
19594pub const INSN_FIELD_MOP_R_T_30_START: u32 = 30;
19595pub const INSN_FIELD_MOP_R_T_30_SIZE: u32 = 1;
19596pub const INSN_FIELD_MOP_R_T_27_26: u32 = 0xc000000;
19597pub const INSN_FIELD_MOP_R_T_27_26_START: u32 = 26;
19598pub const INSN_FIELD_MOP_R_T_27_26_SIZE: u32 = 2;
19599pub const INSN_FIELD_MOP_R_T_21_20: u32 = 0x300000;
19600pub const INSN_FIELD_MOP_R_T_21_20_START: u32 = 20;
19601pub const INSN_FIELD_MOP_R_T_21_20_SIZE: u32 = 2;
19602pub const INSN_FIELD_MOP_RR_T_30: u32 = 0x40000000;
19603pub const INSN_FIELD_MOP_RR_T_30_START: u32 = 30;
19604pub const INSN_FIELD_MOP_RR_T_30_SIZE: u32 = 1;
19605pub const INSN_FIELD_MOP_RR_T_27_26: u32 = 0xc000000;
19606pub const INSN_FIELD_MOP_RR_T_27_26_START: u32 = 26;
19607pub const INSN_FIELD_MOP_RR_T_27_26_SIZE: u32 = 2;
19608pub const INSN_FIELD_C_MOP_T: u32 = 0x700;
19609pub const INSN_FIELD_C_MOP_T_START: u32 = 8;
19610pub const INSN_FIELD_C_MOP_T_SIZE: u32 = 3;
19611pub const INSN_FIELD_RS2_EQ_RS1: u32 = 0x1f00000;
19612pub const INSN_FIELD_RS2_EQ_RS1_START: u32 = 20;
19613pub const INSN_FIELD_RS2_EQ_RS1_SIZE: u32 = 5;
19614
19615/// InstructionValue contains the 32-bit instruction value and also provides access into the desired field.
19616#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
19617#[repr(transparent)]
19618pub struct InstructionValue {
19619    pub value: u32,
19620}
19621
19622impl InstructionValue {
19623    pub const fn new(value: u32) -> Self {
19624        Self { value }
19625    }
19626
19627    pub const fn field<const FIELD_START: usize, const FIELD_SIZE: usize>(self) -> u32 {
19628        (self.value >> FIELD_START) & ((1 << FIELD_SIZE) - 1)
19629    }
19630
19631    pub const fn rd(self) -> u32 {
19632        (self.value >> INSN_FIELD_RD_START) & ((1 << INSN_FIELD_RD_SIZE) - 1)
19633    }
19634
19635    pub const fn set_rd(mut self, value: u32) -> Self {
19636        let mask = INSN_FIELD_RD;
19637
19638        self.value &= !mask;
19639        self.value |= (value & ((1 << INSN_FIELD_RD_SIZE) - 1)) << INSN_FIELD_RD_START;
19640        self
19641    }
19642    pub const fn rt(self) -> u32 {
19643        (self.value >> INSN_FIELD_RT_START) & ((1 << INSN_FIELD_RT_SIZE) - 1)
19644    }
19645
19646    pub const fn set_rt(mut self, value: u32) -> Self {
19647        let mask = INSN_FIELD_RT;
19648
19649        self.value &= !mask;
19650        self.value |= (value & ((1 << INSN_FIELD_RT_SIZE) - 1)) << INSN_FIELD_RT_START;
19651        self
19652    }
19653    pub const fn rs1(self) -> u32 {
19654        (self.value >> INSN_FIELD_RS1_START) & ((1 << INSN_FIELD_RS1_SIZE) - 1)
19655    }
19656
19657    pub const fn set_rs1(mut self, value: u32) -> Self {
19658        let mask = INSN_FIELD_RS1;
19659
19660        self.value &= !mask;
19661        self.value |= (value & ((1 << INSN_FIELD_RS1_SIZE) - 1)) << INSN_FIELD_RS1_START;
19662        self
19663    }
19664    pub const fn rs2(self) -> u32 {
19665        (self.value >> INSN_FIELD_RS2_START) & ((1 << INSN_FIELD_RS2_SIZE) - 1)
19666    }
19667
19668    pub const fn set_rs2(mut self, value: u32) -> Self {
19669        let mask = INSN_FIELD_RS2;
19670
19671        self.value &= !mask;
19672        self.value |= (value & ((1 << INSN_FIELD_RS2_SIZE) - 1)) << INSN_FIELD_RS2_START;
19673        self
19674    }
19675    pub const fn rs3(self) -> u32 {
19676        (self.value >> INSN_FIELD_RS3_START) & ((1 << INSN_FIELD_RS3_SIZE) - 1)
19677    }
19678
19679    pub const fn set_rs3(mut self, value: u32) -> Self {
19680        let mask = INSN_FIELD_RS3;
19681
19682        self.value &= !mask;
19683        self.value |= (value & ((1 << INSN_FIELD_RS3_SIZE) - 1)) << INSN_FIELD_RS3_START;
19684        self
19685    }
19686    pub const fn aqrl(self) -> u32 {
19687        (self.value >> INSN_FIELD_AQRL_START) & ((1 << INSN_FIELD_AQRL_SIZE) - 1)
19688    }
19689
19690    pub const fn set_aqrl(mut self, value: u32) -> Self {
19691        let mask = INSN_FIELD_AQRL;
19692
19693        self.value &= !mask;
19694        self.value |= (value & ((1 << INSN_FIELD_AQRL_SIZE) - 1)) << INSN_FIELD_AQRL_START;
19695        self
19696    }
19697    pub const fn aq(self) -> u32 {
19698        (self.value >> INSN_FIELD_AQ_START) & ((1 << INSN_FIELD_AQ_SIZE) - 1)
19699    }
19700
19701    pub const fn set_aq(mut self, value: u32) -> Self {
19702        let mask = INSN_FIELD_AQ;
19703
19704        self.value &= !mask;
19705        self.value |= (value & ((1 << INSN_FIELD_AQ_SIZE) - 1)) << INSN_FIELD_AQ_START;
19706        self
19707    }
19708    pub const fn rl(self) -> u32 {
19709        (self.value >> INSN_FIELD_RL_START) & ((1 << INSN_FIELD_RL_SIZE) - 1)
19710    }
19711
19712    pub const fn set_rl(mut self, value: u32) -> Self {
19713        let mask = INSN_FIELD_RL;
19714
19715        self.value &= !mask;
19716        self.value |= (value & ((1 << INSN_FIELD_RL_SIZE) - 1)) << INSN_FIELD_RL_START;
19717        self
19718    }
19719    pub const fn fm(self) -> u32 {
19720        (self.value >> INSN_FIELD_FM_START) & ((1 << INSN_FIELD_FM_SIZE) - 1)
19721    }
19722
19723    pub const fn set_fm(mut self, value: u32) -> Self {
19724        let mask = INSN_FIELD_FM;
19725
19726        self.value &= !mask;
19727        self.value |= (value & ((1 << INSN_FIELD_FM_SIZE) - 1)) << INSN_FIELD_FM_START;
19728        self
19729    }
19730    pub const fn pred(self) -> u32 {
19731        (self.value >> INSN_FIELD_PRED_START) & ((1 << INSN_FIELD_PRED_SIZE) - 1)
19732    }
19733
19734    pub const fn set_pred(mut self, value: u32) -> Self {
19735        let mask = INSN_FIELD_PRED;
19736
19737        self.value &= !mask;
19738        self.value |= (value & ((1 << INSN_FIELD_PRED_SIZE) - 1)) << INSN_FIELD_PRED_START;
19739        self
19740    }
19741    pub const fn succ(self) -> u32 {
19742        (self.value >> INSN_FIELD_SUCC_START) & ((1 << INSN_FIELD_SUCC_SIZE) - 1)
19743    }
19744
19745    pub const fn set_succ(mut self, value: u32) -> Self {
19746        let mask = INSN_FIELD_SUCC;
19747
19748        self.value &= !mask;
19749        self.value |= (value & ((1 << INSN_FIELD_SUCC_SIZE) - 1)) << INSN_FIELD_SUCC_START;
19750        self
19751    }
19752    pub const fn rm(self) -> u32 {
19753        (self.value >> INSN_FIELD_RM_START) & ((1 << INSN_FIELD_RM_SIZE) - 1)
19754    }
19755
19756    pub const fn set_rm(mut self, value: u32) -> Self {
19757        let mask = INSN_FIELD_RM;
19758
19759        self.value &= !mask;
19760        self.value |= (value & ((1 << INSN_FIELD_RM_SIZE) - 1)) << INSN_FIELD_RM_START;
19761        self
19762    }
19763    pub const fn funct3(self) -> u32 {
19764        (self.value >> INSN_FIELD_FUNCT3_START) & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)
19765    }
19766
19767    pub const fn set_funct3(mut self, value: u32) -> Self {
19768        let mask = INSN_FIELD_FUNCT3;
19769
19770        self.value &= !mask;
19771        self.value |= (value & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)) << INSN_FIELD_FUNCT3_START;
19772        self
19773    }
19774    pub const fn funct2(self) -> u32 {
19775        (self.value >> INSN_FIELD_FUNCT2_START) & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)
19776    }
19777
19778    pub const fn set_funct2(mut self, value: u32) -> Self {
19779        let mask = INSN_FIELD_FUNCT2;
19780
19781        self.value &= !mask;
19782        self.value |= (value & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)) << INSN_FIELD_FUNCT2_START;
19783        self
19784    }
19785    pub const fn imm20_raw(self) -> u32 {
19786        (self.value >> INSN_FIELD_IMM20_START) & ((1 << INSN_FIELD_IMM20_SIZE) - 1)
19787    }
19788
19789    pub const fn set_imm20_raw(mut self, value: u32) -> Self {
19790        let mask = INSN_FIELD_IMM20;
19791
19792        self.value &= !mask;
19793        self.value |= (value & ((1 << INSN_FIELD_IMM20_SIZE) - 1)) << INSN_FIELD_IMM20_START;
19794        self
19795    }
19796    pub const fn jimm20_raw(self) -> u32 {
19797        (self.value >> INSN_FIELD_JIMM20_START) & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)
19798    }
19799
19800    pub const fn set_jimm20_raw(mut self, value: u32) -> Self {
19801        let mask = INSN_FIELD_JIMM20;
19802
19803        self.value &= !mask;
19804        self.value |= (value & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)) << INSN_FIELD_JIMM20_START;
19805        self
19806    }
19807    pub const fn imm12_raw(self) -> u32 {
19808        (self.value >> INSN_FIELD_IMM12_START) & ((1 << INSN_FIELD_IMM12_SIZE) - 1)
19809    }
19810
19811    pub const fn set_imm12_raw(mut self, value: u32) -> Self {
19812        let mask = INSN_FIELD_IMM12;
19813
19814        self.value &= !mask;
19815        self.value |= (value & ((1 << INSN_FIELD_IMM12_SIZE) - 1)) << INSN_FIELD_IMM12_START;
19816        self
19817    }
19818    pub const fn csr(self) -> u32 {
19819        (self.value >> INSN_FIELD_CSR_START) & ((1 << INSN_FIELD_CSR_SIZE) - 1)
19820    }
19821
19822    pub const fn set_csr(mut self, value: u32) -> Self {
19823        let mask = INSN_FIELD_CSR;
19824
19825        self.value &= !mask;
19826        self.value |= (value & ((1 << INSN_FIELD_CSR_SIZE) - 1)) << INSN_FIELD_CSR_START;
19827        self
19828    }
19829    pub const fn imm12hi_raw(self) -> u32 {
19830        (self.value >> INSN_FIELD_IMM12HI_START) & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)
19831    }
19832
19833    pub const fn set_imm12hi_raw(mut self, value: u32) -> Self {
19834        let mask = INSN_FIELD_IMM12HI;
19835
19836        self.value &= !mask;
19837        self.value |= (value & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)) << INSN_FIELD_IMM12HI_START;
19838        self
19839    }
19840    pub const fn bimm12hi_raw(self) -> u32 {
19841        (self.value >> INSN_FIELD_BIMM12HI_START) & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)
19842    }
19843
19844    pub const fn set_bimm12hi_raw(mut self, value: u32) -> Self {
19845        let mask = INSN_FIELD_BIMM12HI;
19846
19847        self.value &= !mask;
19848        self.value |= (value & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)) << INSN_FIELD_BIMM12HI_START;
19849        self
19850    }
19851    pub const fn imm12lo_raw(self) -> u32 {
19852        (self.value >> INSN_FIELD_IMM12LO_START) & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)
19853    }
19854
19855    pub const fn set_imm12lo_raw(mut self, value: u32) -> Self {
19856        let mask = INSN_FIELD_IMM12LO;
19857
19858        self.value &= !mask;
19859        self.value |= (value & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)) << INSN_FIELD_IMM12LO_START;
19860        self
19861    }
19862    pub const fn bimm12lo_raw(self) -> u32 {
19863        (self.value >> INSN_FIELD_BIMM12LO_START) & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)
19864    }
19865
19866    pub const fn set_bimm12lo_raw(mut self, value: u32) -> Self {
19867        let mask = INSN_FIELD_BIMM12LO;
19868
19869        self.value &= !mask;
19870        self.value |= (value & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)) << INSN_FIELD_BIMM12LO_START;
19871        self
19872    }
19873    pub const fn shamtq(self) -> u32 {
19874        (self.value >> INSN_FIELD_SHAMTQ_START) & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)
19875    }
19876
19877    pub const fn set_shamtq(mut self, value: u32) -> Self {
19878        let mask = INSN_FIELD_SHAMTQ;
19879
19880        self.value &= !mask;
19881        self.value |= (value & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)) << INSN_FIELD_SHAMTQ_START;
19882        self
19883    }
19884    pub const fn shamtw(self) -> u32 {
19885        (self.value >> INSN_FIELD_SHAMTW_START) & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)
19886    }
19887
19888    pub const fn set_shamtw(mut self, value: u32) -> Self {
19889        let mask = INSN_FIELD_SHAMTW;
19890
19891        self.value &= !mask;
19892        self.value |= (value & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)) << INSN_FIELD_SHAMTW_START;
19893        self
19894    }
19895    pub const fn shamtw4(self) -> u32 {
19896        (self.value >> INSN_FIELD_SHAMTW4_START) & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)
19897    }
19898
19899    pub const fn set_shamtw4(mut self, value: u32) -> Self {
19900        let mask = INSN_FIELD_SHAMTW4;
19901
19902        self.value &= !mask;
19903        self.value |= (value & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)) << INSN_FIELD_SHAMTW4_START;
19904        self
19905    }
19906    pub const fn shamtd(self) -> u32 {
19907        (self.value >> INSN_FIELD_SHAMTD_START) & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)
19908    }
19909
19910    pub const fn set_shamtd(mut self, value: u32) -> Self {
19911        let mask = INSN_FIELD_SHAMTD;
19912
19913        self.value &= !mask;
19914        self.value |= (value & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)) << INSN_FIELD_SHAMTD_START;
19915        self
19916    }
19917    pub const fn bs(self) -> u32 {
19918        (self.value >> INSN_FIELD_BS_START) & ((1 << INSN_FIELD_BS_SIZE) - 1)
19919    }
19920
19921    pub const fn set_bs(mut self, value: u32) -> Self {
19922        let mask = INSN_FIELD_BS;
19923
19924        self.value &= !mask;
19925        self.value |= (value & ((1 << INSN_FIELD_BS_SIZE) - 1)) << INSN_FIELD_BS_START;
19926        self
19927    }
19928    pub const fn rnum(self) -> u32 {
19929        (self.value >> INSN_FIELD_RNUM_START) & ((1 << INSN_FIELD_RNUM_SIZE) - 1)
19930    }
19931
19932    pub const fn set_rnum(mut self, value: u32) -> Self {
19933        let mask = INSN_FIELD_RNUM;
19934
19935        self.value &= !mask;
19936        self.value |= (value & ((1 << INSN_FIELD_RNUM_SIZE) - 1)) << INSN_FIELD_RNUM_START;
19937        self
19938    }
19939    pub const fn rc(self) -> u32 {
19940        (self.value >> INSN_FIELD_RC_START) & ((1 << INSN_FIELD_RC_SIZE) - 1)
19941    }
19942
19943    pub const fn set_rc(mut self, value: u32) -> Self {
19944        let mask = INSN_FIELD_RC;
19945
19946        self.value &= !mask;
19947        self.value |= (value & ((1 << INSN_FIELD_RC_SIZE) - 1)) << INSN_FIELD_RC_START;
19948        self
19949    }
19950    pub const fn imm2_raw(self) -> u32 {
19951        (self.value >> INSN_FIELD_IMM2_START) & ((1 << INSN_FIELD_IMM2_SIZE) - 1)
19952    }
19953
19954    pub const fn set_imm2_raw(mut self, value: u32) -> Self {
19955        let mask = INSN_FIELD_IMM2;
19956
19957        self.value &= !mask;
19958        self.value |= (value & ((1 << INSN_FIELD_IMM2_SIZE) - 1)) << INSN_FIELD_IMM2_START;
19959        self
19960    }
19961    pub const fn imm3_raw(self) -> u32 {
19962        (self.value >> INSN_FIELD_IMM3_START) & ((1 << INSN_FIELD_IMM3_SIZE) - 1)
19963    }
19964
19965    pub const fn set_imm3_raw(mut self, value: u32) -> Self {
19966        let mask = INSN_FIELD_IMM3;
19967
19968        self.value &= !mask;
19969        self.value |= (value & ((1 << INSN_FIELD_IMM3_SIZE) - 1)) << INSN_FIELD_IMM3_START;
19970        self
19971    }
19972    pub const fn imm4_raw(self) -> u32 {
19973        (self.value >> INSN_FIELD_IMM4_START) & ((1 << INSN_FIELD_IMM4_SIZE) - 1)
19974    }
19975
19976    pub const fn set_imm4_raw(mut self, value: u32) -> Self {
19977        let mask = INSN_FIELD_IMM4;
19978
19979        self.value &= !mask;
19980        self.value |= (value & ((1 << INSN_FIELD_IMM4_SIZE) - 1)) << INSN_FIELD_IMM4_START;
19981        self
19982    }
19983    pub const fn imm5_raw(self) -> u32 {
19984        (self.value >> INSN_FIELD_IMM5_START) & ((1 << INSN_FIELD_IMM5_SIZE) - 1)
19985    }
19986
19987    pub const fn set_imm5_raw(mut self, value: u32) -> Self {
19988        let mask = INSN_FIELD_IMM5;
19989
19990        self.value &= !mask;
19991        self.value |= (value & ((1 << INSN_FIELD_IMM5_SIZE) - 1)) << INSN_FIELD_IMM5_START;
19992        self
19993    }
19994    pub const fn imm6_raw(self) -> u32 {
19995        (self.value >> INSN_FIELD_IMM6_START) & ((1 << INSN_FIELD_IMM6_SIZE) - 1)
19996    }
19997
19998    pub const fn set_imm6_raw(mut self, value: u32) -> Self {
19999        let mask = INSN_FIELD_IMM6;
20000
20001        self.value &= !mask;
20002        self.value |= (value & ((1 << INSN_FIELD_IMM6_SIZE) - 1)) << INSN_FIELD_IMM6_START;
20003        self
20004    }
20005    pub const fn zimm_raw(self) -> u32 {
20006        (self.value >> INSN_FIELD_ZIMM_START) & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)
20007    }
20008
20009    pub const fn set_zimm_raw(mut self, value: u32) -> Self {
20010        let mask = INSN_FIELD_ZIMM;
20011
20012        self.value &= !mask;
20013        self.value |= (value & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)) << INSN_FIELD_ZIMM_START;
20014        self
20015    }
20016    pub const fn opcode(self) -> u32 {
20017        (self.value >> INSN_FIELD_OPCODE_START) & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)
20018    }
20019
20020    pub const fn set_opcode(mut self, value: u32) -> Self {
20021        let mask = INSN_FIELD_OPCODE;
20022
20023        self.value &= !mask;
20024        self.value |= (value & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)) << INSN_FIELD_OPCODE_START;
20025        self
20026    }
20027    pub const fn funct7(self) -> u32 {
20028        (self.value >> INSN_FIELD_FUNCT7_START) & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)
20029    }
20030
20031    pub const fn set_funct7(mut self, value: u32) -> Self {
20032        let mask = INSN_FIELD_FUNCT7;
20033
20034        self.value &= !mask;
20035        self.value |= (value & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)) << INSN_FIELD_FUNCT7_START;
20036        self
20037    }
20038    pub const fn vd(self) -> u32 {
20039        (self.value >> INSN_FIELD_VD_START) & ((1 << INSN_FIELD_VD_SIZE) - 1)
20040    }
20041
20042    pub const fn set_vd(mut self, value: u32) -> Self {
20043        let mask = INSN_FIELD_VD;
20044
20045        self.value &= !mask;
20046        self.value |= (value & ((1 << INSN_FIELD_VD_SIZE) - 1)) << INSN_FIELD_VD_START;
20047        self
20048    }
20049    pub const fn vs3(self) -> u32 {
20050        (self.value >> INSN_FIELD_VS3_START) & ((1 << INSN_FIELD_VS3_SIZE) - 1)
20051    }
20052
20053    pub const fn set_vs3(mut self, value: u32) -> Self {
20054        let mask = INSN_FIELD_VS3;
20055
20056        self.value &= !mask;
20057        self.value |= (value & ((1 << INSN_FIELD_VS3_SIZE) - 1)) << INSN_FIELD_VS3_START;
20058        self
20059    }
20060    pub const fn vs1(self) -> u32 {
20061        (self.value >> INSN_FIELD_VS1_START) & ((1 << INSN_FIELD_VS1_SIZE) - 1)
20062    }
20063
20064    pub const fn set_vs1(mut self, value: u32) -> Self {
20065        let mask = INSN_FIELD_VS1;
20066
20067        self.value &= !mask;
20068        self.value |= (value & ((1 << INSN_FIELD_VS1_SIZE) - 1)) << INSN_FIELD_VS1_START;
20069        self
20070    }
20071    pub const fn vs2(self) -> u32 {
20072        (self.value >> INSN_FIELD_VS2_START) & ((1 << INSN_FIELD_VS2_SIZE) - 1)
20073    }
20074
20075    pub const fn set_vs2(mut self, value: u32) -> Self {
20076        let mask = INSN_FIELD_VS2;
20077
20078        self.value &= !mask;
20079        self.value |= (value & ((1 << INSN_FIELD_VS2_SIZE) - 1)) << INSN_FIELD_VS2_START;
20080        self
20081    }
20082    pub const fn vm(self) -> u32 {
20083        (self.value >> INSN_FIELD_VM_START) & ((1 << INSN_FIELD_VM_SIZE) - 1)
20084    }
20085
20086    pub const fn set_vm(mut self, value: u32) -> Self {
20087        let mask = INSN_FIELD_VM;
20088
20089        self.value &= !mask;
20090        self.value |= (value & ((1 << INSN_FIELD_VM_SIZE) - 1)) << INSN_FIELD_VM_START;
20091        self
20092    }
20093    pub const fn wd(self) -> u32 {
20094        (self.value >> INSN_FIELD_WD_START) & ((1 << INSN_FIELD_WD_SIZE) - 1)
20095    }
20096
20097    pub const fn set_wd(mut self, value: u32) -> Self {
20098        let mask = INSN_FIELD_WD;
20099
20100        self.value &= !mask;
20101        self.value |= (value & ((1 << INSN_FIELD_WD_SIZE) - 1)) << INSN_FIELD_WD_START;
20102        self
20103    }
20104    pub const fn amoop(self) -> u32 {
20105        (self.value >> INSN_FIELD_AMOOP_START) & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)
20106    }
20107
20108    pub const fn set_amoop(mut self, value: u32) -> Self {
20109        let mask = INSN_FIELD_AMOOP;
20110
20111        self.value &= !mask;
20112        self.value |= (value & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)) << INSN_FIELD_AMOOP_START;
20113        self
20114    }
20115    pub const fn nf(self) -> u32 {
20116        (self.value >> INSN_FIELD_NF_START) & ((1 << INSN_FIELD_NF_SIZE) - 1)
20117    }
20118
20119    pub const fn set_nf(mut self, value: u32) -> Self {
20120        let mask = INSN_FIELD_NF;
20121
20122        self.value &= !mask;
20123        self.value |= (value & ((1 << INSN_FIELD_NF_SIZE) - 1)) << INSN_FIELD_NF_START;
20124        self
20125    }
20126    pub const fn simm5_raw(self) -> u32 {
20127        (self.value >> INSN_FIELD_SIMM5_START) & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)
20128    }
20129
20130    pub const fn set_simm5_raw(mut self, value: u32) -> Self {
20131        let mask = INSN_FIELD_SIMM5;
20132
20133        self.value &= !mask;
20134        self.value |= (value & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)) << INSN_FIELD_SIMM5_START;
20135        self
20136    }
20137    pub const fn zimm5_raw(self) -> u32 {
20138        (self.value >> INSN_FIELD_ZIMM5_START) & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)
20139    }
20140
20141    pub const fn set_zimm5_raw(mut self, value: u32) -> Self {
20142        let mask = INSN_FIELD_ZIMM5;
20143
20144        self.value &= !mask;
20145        self.value |= (value & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)) << INSN_FIELD_ZIMM5_START;
20146        self
20147    }
20148    pub const fn zimm10_raw(self) -> u32 {
20149        (self.value >> INSN_FIELD_ZIMM10_START) & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)
20150    }
20151
20152    pub const fn set_zimm10_raw(mut self, value: u32) -> Self {
20153        let mask = INSN_FIELD_ZIMM10;
20154
20155        self.value &= !mask;
20156        self.value |= (value & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)) << INSN_FIELD_ZIMM10_START;
20157        self
20158    }
20159    pub const fn zimm11_raw(self) -> u32 {
20160        (self.value >> INSN_FIELD_ZIMM11_START) & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)
20161    }
20162
20163    pub const fn set_zimm11_raw(mut self, value: u32) -> Self {
20164        let mask = INSN_FIELD_ZIMM11;
20165
20166        self.value &= !mask;
20167        self.value |= (value & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)) << INSN_FIELD_ZIMM11_START;
20168        self
20169    }
20170    pub const fn zimm6hi_raw(self) -> u32 {
20171        (self.value >> INSN_FIELD_ZIMM6HI_START) & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)
20172    }
20173
20174    pub const fn set_zimm6hi_raw(mut self, value: u32) -> Self {
20175        let mask = INSN_FIELD_ZIMM6HI;
20176
20177        self.value &= !mask;
20178        self.value |= (value & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)) << INSN_FIELD_ZIMM6HI_START;
20179        self
20180    }
20181    pub const fn zimm6lo_raw(self) -> u32 {
20182        (self.value >> INSN_FIELD_ZIMM6LO_START) & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)
20183    }
20184
20185    pub const fn set_zimm6lo_raw(mut self, value: u32) -> Self {
20186        let mask = INSN_FIELD_ZIMM6LO;
20187
20188        self.value &= !mask;
20189        self.value |= (value & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)) << INSN_FIELD_ZIMM6LO_START;
20190        self
20191    }
20192    pub const fn c_nzuimm10_raw(self) -> u32 {
20193        (self.value >> INSN_FIELD_C_NZUIMM10_START) & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)
20194    }
20195
20196    pub const fn set_c_nzuimm10_raw(mut self, value: u32) -> Self {
20197        let mask = INSN_FIELD_C_NZUIMM10;
20198
20199        self.value &= !mask;
20200        self.value |=
20201            (value & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)) << INSN_FIELD_C_NZUIMM10_START;
20202        self
20203    }
20204    pub const fn c_uimm7lo_raw(self) -> u32 {
20205        (self.value >> INSN_FIELD_C_UIMM7LO_START) & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)
20206    }
20207
20208    pub const fn set_c_uimm7lo_raw(mut self, value: u32) -> Self {
20209        let mask = INSN_FIELD_C_UIMM7LO;
20210
20211        self.value &= !mask;
20212        self.value |=
20213            (value & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)) << INSN_FIELD_C_UIMM7LO_START;
20214        self
20215    }
20216    pub const fn c_uimm7hi_raw(self) -> u32 {
20217        (self.value >> INSN_FIELD_C_UIMM7HI_START) & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)
20218    }
20219
20220    pub const fn set_c_uimm7hi_raw(mut self, value: u32) -> Self {
20221        let mask = INSN_FIELD_C_UIMM7HI;
20222
20223        self.value &= !mask;
20224        self.value |=
20225            (value & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)) << INSN_FIELD_C_UIMM7HI_START;
20226        self
20227    }
20228    pub const fn c_uimm8lo_raw(self) -> u32 {
20229        (self.value >> INSN_FIELD_C_UIMM8LO_START) & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)
20230    }
20231
20232    pub const fn set_c_uimm8lo_raw(mut self, value: u32) -> Self {
20233        let mask = INSN_FIELD_C_UIMM8LO;
20234
20235        self.value &= !mask;
20236        self.value |=
20237            (value & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)) << INSN_FIELD_C_UIMM8LO_START;
20238        self
20239    }
20240    pub const fn c_uimm8hi_raw(self) -> u32 {
20241        (self.value >> INSN_FIELD_C_UIMM8HI_START) & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)
20242    }
20243
20244    pub const fn set_c_uimm8hi_raw(mut self, value: u32) -> Self {
20245        let mask = INSN_FIELD_C_UIMM8HI;
20246
20247        self.value &= !mask;
20248        self.value |=
20249            (value & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)) << INSN_FIELD_C_UIMM8HI_START;
20250        self
20251    }
20252    pub const fn c_uimm9lo_raw(self) -> u32 {
20253        (self.value >> INSN_FIELD_C_UIMM9LO_START) & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)
20254    }
20255
20256    pub const fn set_c_uimm9lo_raw(mut self, value: u32) -> Self {
20257        let mask = INSN_FIELD_C_UIMM9LO;
20258
20259        self.value &= !mask;
20260        self.value |=
20261            (value & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)) << INSN_FIELD_C_UIMM9LO_START;
20262        self
20263    }
20264    pub const fn c_uimm9hi_raw(self) -> u32 {
20265        (self.value >> INSN_FIELD_C_UIMM9HI_START) & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)
20266    }
20267
20268    pub const fn set_c_uimm9hi_raw(mut self, value: u32) -> Self {
20269        let mask = INSN_FIELD_C_UIMM9HI;
20270
20271        self.value &= !mask;
20272        self.value |=
20273            (value & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)) << INSN_FIELD_C_UIMM9HI_START;
20274        self
20275    }
20276    pub const fn c_nzimm6lo_raw(self) -> u32 {
20277        (self.value >> INSN_FIELD_C_NZIMM6LO_START) & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)
20278    }
20279
20280    pub const fn set_c_nzimm6lo_raw(mut self, value: u32) -> Self {
20281        let mask = INSN_FIELD_C_NZIMM6LO;
20282
20283        self.value &= !mask;
20284        self.value |=
20285            (value & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM6LO_START;
20286        self
20287    }
20288    pub const fn c_nzimm6hi_raw(self) -> u32 {
20289        (self.value >> INSN_FIELD_C_NZIMM6HI_START) & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)
20290    }
20291
20292    pub const fn set_c_nzimm6hi_raw(mut self, value: u32) -> Self {
20293        let mask = INSN_FIELD_C_NZIMM6HI;
20294
20295        self.value &= !mask;
20296        self.value |=
20297            (value & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM6HI_START;
20298        self
20299    }
20300    pub const fn c_imm6lo_raw(self) -> u32 {
20301        (self.value >> INSN_FIELD_C_IMM6LO_START) & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)
20302    }
20303
20304    pub const fn set_c_imm6lo_raw(mut self, value: u32) -> Self {
20305        let mask = INSN_FIELD_C_IMM6LO;
20306
20307        self.value &= !mask;
20308        self.value |= (value & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)) << INSN_FIELD_C_IMM6LO_START;
20309        self
20310    }
20311    pub const fn c_imm6hi_raw(self) -> u32 {
20312        (self.value >> INSN_FIELD_C_IMM6HI_START) & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)
20313    }
20314
20315    pub const fn set_c_imm6hi_raw(mut self, value: u32) -> Self {
20316        let mask = INSN_FIELD_C_IMM6HI;
20317
20318        self.value &= !mask;
20319        self.value |= (value & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)) << INSN_FIELD_C_IMM6HI_START;
20320        self
20321    }
20322    pub const fn c_nzimm10hi_raw(self) -> u32 {
20323        (self.value >> INSN_FIELD_C_NZIMM10HI_START) & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)
20324    }
20325
20326    pub const fn set_c_nzimm10hi_raw(mut self, value: u32) -> Self {
20327        let mask = INSN_FIELD_C_NZIMM10HI;
20328
20329        self.value &= !mask;
20330        self.value |=
20331            (value & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM10HI_START;
20332        self
20333    }
20334    pub const fn c_nzimm10lo_raw(self) -> u32 {
20335        (self.value >> INSN_FIELD_C_NZIMM10LO_START) & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)
20336    }
20337
20338    pub const fn set_c_nzimm10lo_raw(mut self, value: u32) -> Self {
20339        let mask = INSN_FIELD_C_NZIMM10LO;
20340
20341        self.value &= !mask;
20342        self.value |=
20343            (value & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM10LO_START;
20344        self
20345    }
20346    pub const fn c_nzimm18hi_raw(self) -> u32 {
20347        (self.value >> INSN_FIELD_C_NZIMM18HI_START) & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)
20348    }
20349
20350    pub const fn set_c_nzimm18hi_raw(mut self, value: u32) -> Self {
20351        let mask = INSN_FIELD_C_NZIMM18HI;
20352
20353        self.value &= !mask;
20354        self.value |=
20355            (value & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM18HI_START;
20356        self
20357    }
20358    pub const fn c_nzimm18lo_raw(self) -> u32 {
20359        (self.value >> INSN_FIELD_C_NZIMM18LO_START) & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)
20360    }
20361
20362    pub const fn set_c_nzimm18lo_raw(mut self, value: u32) -> Self {
20363        let mask = INSN_FIELD_C_NZIMM18LO;
20364
20365        self.value &= !mask;
20366        self.value |=
20367            (value & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM18LO_START;
20368        self
20369    }
20370    pub const fn c_imm12_raw(self) -> u32 {
20371        (self.value >> INSN_FIELD_C_IMM12_START) & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)
20372    }
20373
20374    pub const fn set_c_imm12_raw(mut self, value: u32) -> Self {
20375        let mask = INSN_FIELD_C_IMM12;
20376
20377        self.value &= !mask;
20378        self.value |= (value & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)) << INSN_FIELD_C_IMM12_START;
20379        self
20380    }
20381    pub const fn c_bimm9lo_raw(self) -> u32 {
20382        (self.value >> INSN_FIELD_C_BIMM9LO_START) & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)
20383    }
20384
20385    pub const fn set_c_bimm9lo_raw(mut self, value: u32) -> Self {
20386        let mask = INSN_FIELD_C_BIMM9LO;
20387
20388        self.value &= !mask;
20389        self.value |=
20390            (value & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)) << INSN_FIELD_C_BIMM9LO_START;
20391        self
20392    }
20393    pub const fn c_bimm9hi_raw(self) -> u32 {
20394        (self.value >> INSN_FIELD_C_BIMM9HI_START) & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)
20395    }
20396
20397    pub const fn set_c_bimm9hi_raw(mut self, value: u32) -> Self {
20398        let mask = INSN_FIELD_C_BIMM9HI;
20399
20400        self.value &= !mask;
20401        self.value |=
20402            (value & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)) << INSN_FIELD_C_BIMM9HI_START;
20403        self
20404    }
20405    pub const fn c_nzuimm5_raw(self) -> u32 {
20406        (self.value >> INSN_FIELD_C_NZUIMM5_START) & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)
20407    }
20408
20409    pub const fn set_c_nzuimm5_raw(mut self, value: u32) -> Self {
20410        let mask = INSN_FIELD_C_NZUIMM5;
20411
20412        self.value &= !mask;
20413        self.value |=
20414            (value & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)) << INSN_FIELD_C_NZUIMM5_START;
20415        self
20416    }
20417    pub const fn c_nzuimm6lo_raw(self) -> u32 {
20418        (self.value >> INSN_FIELD_C_NZUIMM6LO_START) & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)
20419    }
20420
20421    pub const fn set_c_nzuimm6lo_raw(mut self, value: u32) -> Self {
20422        let mask = INSN_FIELD_C_NZUIMM6LO;
20423
20424        self.value &= !mask;
20425        self.value |=
20426            (value & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6LO_START;
20427        self
20428    }
20429    pub const fn c_nzuimm6hi_raw(self) -> u32 {
20430        (self.value >> INSN_FIELD_C_NZUIMM6HI_START) & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)
20431    }
20432
20433    pub const fn set_c_nzuimm6hi_raw(mut self, value: u32) -> Self {
20434        let mask = INSN_FIELD_C_NZUIMM6HI;
20435
20436        self.value &= !mask;
20437        self.value |=
20438            (value & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6HI_START;
20439        self
20440    }
20441    pub const fn c_uimm8splo_raw(self) -> u32 {
20442        (self.value >> INSN_FIELD_C_UIMM8SPLO_START) & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)
20443    }
20444
20445    pub const fn set_c_uimm8splo_raw(mut self, value: u32) -> Self {
20446        let mask = INSN_FIELD_C_UIMM8SPLO;
20447
20448        self.value &= !mask;
20449        self.value |=
20450            (value & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPLO_START;
20451        self
20452    }
20453    pub const fn c_uimm8sphi_raw(self) -> u32 {
20454        (self.value >> INSN_FIELD_C_UIMM8SPHI_START) & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)
20455    }
20456
20457    pub const fn set_c_uimm8sphi_raw(mut self, value: u32) -> Self {
20458        let mask = INSN_FIELD_C_UIMM8SPHI;
20459
20460        self.value &= !mask;
20461        self.value |=
20462            (value & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPHI_START;
20463        self
20464    }
20465    pub const fn c_uimm8sp_s_raw(self) -> u32 {
20466        (self.value >> INSN_FIELD_C_UIMM8SP_S_START) & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)
20467    }
20468
20469    pub const fn set_c_uimm8sp_s_raw(mut self, value: u32) -> Self {
20470        let mask = INSN_FIELD_C_UIMM8SP_S;
20471
20472        self.value &= !mask;
20473        self.value |=
20474            (value & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM8SP_S_START;
20475        self
20476    }
20477    pub const fn c_uimm10splo_raw(self) -> u32 {
20478        (self.value >> INSN_FIELD_C_UIMM10SPLO_START) & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)
20479    }
20480
20481    pub const fn set_c_uimm10splo_raw(mut self, value: u32) -> Self {
20482        let mask = INSN_FIELD_C_UIMM10SPLO;
20483
20484        self.value &= !mask;
20485        self.value |=
20486            (value & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPLO_START;
20487        self
20488    }
20489    pub const fn c_uimm10sphi_raw(self) -> u32 {
20490        (self.value >> INSN_FIELD_C_UIMM10SPHI_START) & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)
20491    }
20492
20493    pub const fn set_c_uimm10sphi_raw(mut self, value: u32) -> Self {
20494        let mask = INSN_FIELD_C_UIMM10SPHI;
20495
20496        self.value &= !mask;
20497        self.value |=
20498            (value & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPHI_START;
20499        self
20500    }
20501    pub const fn c_uimm9splo_raw(self) -> u32 {
20502        (self.value >> INSN_FIELD_C_UIMM9SPLO_START) & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)
20503    }
20504
20505    pub const fn set_c_uimm9splo_raw(mut self, value: u32) -> Self {
20506        let mask = INSN_FIELD_C_UIMM9SPLO;
20507
20508        self.value &= !mask;
20509        self.value |=
20510            (value & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPLO_START;
20511        self
20512    }
20513    pub const fn c_uimm9sphi_raw(self) -> u32 {
20514        (self.value >> INSN_FIELD_C_UIMM9SPHI_START) & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)
20515    }
20516
20517    pub const fn set_c_uimm9sphi_raw(mut self, value: u32) -> Self {
20518        let mask = INSN_FIELD_C_UIMM9SPHI;
20519
20520        self.value &= !mask;
20521        self.value |=
20522            (value & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPHI_START;
20523        self
20524    }
20525    pub const fn c_uimm10sp_s_raw(self) -> u32 {
20526        (self.value >> INSN_FIELD_C_UIMM10SP_S_START) & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)
20527    }
20528
20529    pub const fn set_c_uimm10sp_s_raw(mut self, value: u32) -> Self {
20530        let mask = INSN_FIELD_C_UIMM10SP_S;
20531
20532        self.value &= !mask;
20533        self.value |=
20534            (value & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM10SP_S_START;
20535        self
20536    }
20537    pub const fn c_uimm9sp_s_raw(self) -> u32 {
20538        (self.value >> INSN_FIELD_C_UIMM9SP_S_START) & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)
20539    }
20540
20541    pub const fn set_c_uimm9sp_s_raw(mut self, value: u32) -> Self {
20542        let mask = INSN_FIELD_C_UIMM9SP_S;
20543
20544        self.value &= !mask;
20545        self.value |=
20546            (value & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM9SP_S_START;
20547        self
20548    }
20549    pub const fn c_uimm2_raw(self) -> u32 {
20550        (self.value >> INSN_FIELD_C_UIMM2_START) & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)
20551    }
20552
20553    pub const fn set_c_uimm2_raw(mut self, value: u32) -> Self {
20554        let mask = INSN_FIELD_C_UIMM2;
20555
20556        self.value &= !mask;
20557        self.value |= (value & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)) << INSN_FIELD_C_UIMM2_START;
20558        self
20559    }
20560    pub const fn c_uimm1_raw(self) -> u32 {
20561        (self.value >> INSN_FIELD_C_UIMM1_START) & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)
20562    }
20563
20564    pub const fn set_c_uimm1_raw(mut self, value: u32) -> Self {
20565        let mask = INSN_FIELD_C_UIMM1;
20566
20567        self.value &= !mask;
20568        self.value |= (value & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)) << INSN_FIELD_C_UIMM1_START;
20569        self
20570    }
20571    pub const fn c_rlist(self) -> u32 {
20572        (self.value >> INSN_FIELD_C_RLIST_START) & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)
20573    }
20574
20575    pub const fn set_c_rlist(mut self, value: u32) -> Self {
20576        let mask = INSN_FIELD_C_RLIST;
20577
20578        self.value &= !mask;
20579        self.value |= (value & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)) << INSN_FIELD_C_RLIST_START;
20580        self
20581    }
20582    pub const fn c_spimm_raw(self) -> u32 {
20583        (self.value >> INSN_FIELD_C_SPIMM_START) & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)
20584    }
20585
20586    pub const fn set_c_spimm_raw(mut self, value: u32) -> Self {
20587        let mask = INSN_FIELD_C_SPIMM;
20588
20589        self.value &= !mask;
20590        self.value |= (value & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)) << INSN_FIELD_C_SPIMM_START;
20591        self
20592    }
20593    pub const fn c_index(self) -> u32 {
20594        (self.value >> INSN_FIELD_C_INDEX_START) & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)
20595    }
20596
20597    pub const fn set_c_index(mut self, value: u32) -> Self {
20598        let mask = INSN_FIELD_C_INDEX;
20599
20600        self.value &= !mask;
20601        self.value |= (value & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)) << INSN_FIELD_C_INDEX_START;
20602        self
20603    }
20604    pub const fn rs1_p(self) -> u32 {
20605        (self.value >> INSN_FIELD_RS1_P_START) & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)
20606    }
20607
20608    pub const fn set_rs1_p(mut self, value: u32) -> Self {
20609        let mask = INSN_FIELD_RS1_P;
20610
20611        self.value &= !mask;
20612        self.value |= (value & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)) << INSN_FIELD_RS1_P_START;
20613        self
20614    }
20615    pub const fn rs2_p(self) -> u32 {
20616        (self.value >> INSN_FIELD_RS2_P_START) & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)
20617    }
20618
20619    pub const fn set_rs2_p(mut self, value: u32) -> Self {
20620        let mask = INSN_FIELD_RS2_P;
20621
20622        self.value &= !mask;
20623        self.value |= (value & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)) << INSN_FIELD_RS2_P_START;
20624        self
20625    }
20626    pub const fn rd_p(self) -> u32 {
20627        (self.value >> INSN_FIELD_RD_P_START) & ((1 << INSN_FIELD_RD_P_SIZE) - 1)
20628    }
20629
20630    pub const fn set_rd_p(mut self, value: u32) -> Self {
20631        let mask = INSN_FIELD_RD_P;
20632
20633        self.value &= !mask;
20634        self.value |= (value & ((1 << INSN_FIELD_RD_P_SIZE) - 1)) << INSN_FIELD_RD_P_START;
20635        self
20636    }
20637    pub const fn rd_rs1_n0(self) -> u32 {
20638        (self.value >> INSN_FIELD_RD_RS1_N0_START) & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)
20639    }
20640
20641    pub const fn set_rd_rs1_n0(mut self, value: u32) -> Self {
20642        let mask = INSN_FIELD_RD_RS1_N0;
20643
20644        self.value &= !mask;
20645        self.value |=
20646            (value & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RD_RS1_N0_START;
20647        self
20648    }
20649    pub const fn rd_rs1_p(self) -> u32 {
20650        (self.value >> INSN_FIELD_RD_RS1_P_START) & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)
20651    }
20652
20653    pub const fn set_rd_rs1_p(mut self, value: u32) -> Self {
20654        let mask = INSN_FIELD_RD_RS1_P;
20655
20656        self.value &= !mask;
20657        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)) << INSN_FIELD_RD_RS1_P_START;
20658        self
20659    }
20660    pub const fn rd_rs1(self) -> u32 {
20661        (self.value >> INSN_FIELD_RD_RS1_START) & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)
20662    }
20663
20664    pub const fn set_rd_rs1(mut self, value: u32) -> Self {
20665        let mask = INSN_FIELD_RD_RS1;
20666
20667        self.value &= !mask;
20668        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)) << INSN_FIELD_RD_RS1_START;
20669        self
20670    }
20671    pub const fn rd_n2(self) -> u32 {
20672        (self.value >> INSN_FIELD_RD_N2_START) & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)
20673    }
20674
20675    pub const fn set_rd_n2(mut self, value: u32) -> Self {
20676        let mask = INSN_FIELD_RD_N2;
20677
20678        self.value &= !mask;
20679        self.value |= (value & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)) << INSN_FIELD_RD_N2_START;
20680        self
20681    }
20682    pub const fn rd_n0(self) -> u32 {
20683        (self.value >> INSN_FIELD_RD_N0_START) & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)
20684    }
20685
20686    pub const fn set_rd_n0(mut self, value: u32) -> Self {
20687        let mask = INSN_FIELD_RD_N0;
20688
20689        self.value &= !mask;
20690        self.value |= (value & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)) << INSN_FIELD_RD_N0_START;
20691        self
20692    }
20693    pub const fn rs1_n0(self) -> u32 {
20694        (self.value >> INSN_FIELD_RS1_N0_START) & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)
20695    }
20696
20697    pub const fn set_rs1_n0(mut self, value: u32) -> Self {
20698        let mask = INSN_FIELD_RS1_N0;
20699
20700        self.value &= !mask;
20701        self.value |= (value & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RS1_N0_START;
20702        self
20703    }
20704    pub const fn c_rs2_n0(self) -> u32 {
20705        (self.value >> INSN_FIELD_C_RS2_N0_START) & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)
20706    }
20707
20708    pub const fn set_c_rs2_n0(mut self, value: u32) -> Self {
20709        let mask = INSN_FIELD_C_RS2_N0;
20710
20711        self.value &= !mask;
20712        self.value |= (value & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)) << INSN_FIELD_C_RS2_N0_START;
20713        self
20714    }
20715    pub const fn c_rs1_n0(self) -> u32 {
20716        (self.value >> INSN_FIELD_C_RS1_N0_START) & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)
20717    }
20718
20719    pub const fn set_c_rs1_n0(mut self, value: u32) -> Self {
20720        let mask = INSN_FIELD_C_RS1_N0;
20721
20722        self.value &= !mask;
20723        self.value |= (value & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)) << INSN_FIELD_C_RS1_N0_START;
20724        self
20725    }
20726    pub const fn c_rs2(self) -> u32 {
20727        (self.value >> INSN_FIELD_C_RS2_START) & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)
20728    }
20729
20730    pub const fn set_c_rs2(mut self, value: u32) -> Self {
20731        let mask = INSN_FIELD_C_RS2;
20732
20733        self.value &= !mask;
20734        self.value |= (value & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)) << INSN_FIELD_C_RS2_START;
20735        self
20736    }
20737    pub const fn c_sreg1(self) -> u32 {
20738        (self.value >> INSN_FIELD_C_SREG1_START) & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)
20739    }
20740
20741    pub const fn set_c_sreg1(mut self, value: u32) -> Self {
20742        let mask = INSN_FIELD_C_SREG1;
20743
20744        self.value &= !mask;
20745        self.value |= (value & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)) << INSN_FIELD_C_SREG1_START;
20746        self
20747    }
20748    pub const fn c_sreg2(self) -> u32 {
20749        (self.value >> INSN_FIELD_C_SREG2_START) & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)
20750    }
20751
20752    pub const fn set_c_sreg2(mut self, value: u32) -> Self {
20753        let mask = INSN_FIELD_C_SREG2;
20754
20755        self.value &= !mask;
20756        self.value |= (value & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)) << INSN_FIELD_C_SREG2_START;
20757        self
20758    }
20759    pub const fn mop_r_t_30(self) -> u32 {
20760        (self.value >> INSN_FIELD_MOP_R_T_30_START) & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)
20761    }
20762
20763    pub const fn set_mop_r_t_30(mut self, value: u32) -> Self {
20764        let mask = INSN_FIELD_MOP_R_T_30;
20765
20766        self.value &= !mask;
20767        self.value |=
20768            (value & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)) << INSN_FIELD_MOP_R_T_30_START;
20769        self
20770    }
20771    pub const fn mop_r_t_27_26(self) -> u32 {
20772        (self.value >> INSN_FIELD_MOP_R_T_27_26_START) & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)
20773    }
20774
20775    pub const fn set_mop_r_t_27_26(mut self, value: u32) -> Self {
20776        let mask = INSN_FIELD_MOP_R_T_27_26;
20777
20778        self.value &= !mask;
20779        self.value |=
20780            (value & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)) << INSN_FIELD_MOP_R_T_27_26_START;
20781        self
20782    }
20783    pub const fn mop_r_t_21_20(self) -> u32 {
20784        (self.value >> INSN_FIELD_MOP_R_T_21_20_START) & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)
20785    }
20786
20787    pub const fn set_mop_r_t_21_20(mut self, value: u32) -> Self {
20788        let mask = INSN_FIELD_MOP_R_T_21_20;
20789
20790        self.value &= !mask;
20791        self.value |=
20792            (value & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)) << INSN_FIELD_MOP_R_T_21_20_START;
20793        self
20794    }
20795    pub const fn mop_rr_t_30(self) -> u32 {
20796        (self.value >> INSN_FIELD_MOP_RR_T_30_START) & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)
20797    }
20798
20799    pub const fn set_mop_rr_t_30(mut self, value: u32) -> Self {
20800        let mask = INSN_FIELD_MOP_RR_T_30;
20801
20802        self.value &= !mask;
20803        self.value |=
20804            (value & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)) << INSN_FIELD_MOP_RR_T_30_START;
20805        self
20806    }
20807    pub const fn mop_rr_t_27_26(self) -> u32 {
20808        (self.value >> INSN_FIELD_MOP_RR_T_27_26_START)
20809            & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1)
20810    }
20811
20812    pub const fn set_mop_rr_t_27_26(mut self, value: u32) -> Self {
20813        let mask = INSN_FIELD_MOP_RR_T_27_26;
20814
20815        self.value &= !mask;
20816        self.value |= (value & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1))
20817            << INSN_FIELD_MOP_RR_T_27_26_START;
20818        self
20819    }
20820    pub const fn c_mop_t(self) -> u32 {
20821        (self.value >> INSN_FIELD_C_MOP_T_START) & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)
20822    }
20823
20824    pub const fn set_c_mop_t(mut self, value: u32) -> Self {
20825        let mask = INSN_FIELD_C_MOP_T;
20826
20827        self.value &= !mask;
20828        self.value |= (value & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)) << INSN_FIELD_C_MOP_T_START;
20829        self
20830    }
20831    pub const fn rs2_eq_rs1(self) -> u32 {
20832        (self.value >> INSN_FIELD_RS2_EQ_RS1_START) & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)
20833    }
20834
20835    pub const fn set_rs2_eq_rs1(mut self, value: u32) -> Self {
20836        let mask = INSN_FIELD_RS2_EQ_RS1;
20837
20838        self.value &= !mask;
20839        self.value |=
20840            (value & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)) << INSN_FIELD_RS2_EQ_RS1_START;
20841        self
20842    }
20843
20844    /// imm20
20845    pub const fn imm20(self) -> i32 {
20846        decode_immediate(IMM20, self.value as _) as _
20847    }
20848
20849    pub const fn set_imm20(mut self, imm20: i32) -> Self {
20850        self.value |= encode_immediate(IMM20, imm20 as _);
20851        self
20852    }
20853
20854    /// jimm20
20855    pub const fn jimm20(self) -> i32 {
20856        decode_immediate(JIMM20, self.value as _) as _
20857    }
20858
20859    pub const fn set_jimm20(mut self, jimm20: i32) -> Self {
20860        self.value |= encode_immediate(JIMM20, jimm20 as _);
20861        self
20862    }
20863
20864    /// imm12
20865    pub const fn imm12(self) -> i32 {
20866        decode_immediate(IMM12, self.value as _) as _
20867    }
20868
20869    pub const fn set_imm12(mut self, imm12: i32) -> Self {
20870        self.value |= encode_immediate(IMM12, imm12 as _);
20871        self
20872    }
20873
20874    /// imm12lohi
20875    pub const fn imm12lohi(self) -> i32 {
20876        decode_immediate(IMM12LOHI, self.value as _) as _
20877    }
20878
20879    pub const fn set_imm12lohi(mut self, imm12lohi: i32) -> Self {
20880        self.value |= encode_immediate(IMM12LOHI, imm12lohi as _);
20881        self
20882    }
20883
20884    /// bimm12lohi
20885    pub const fn bimm12lohi(self) -> i32 {
20886        decode_immediate(BIMM12LOHI, self.value as _) as _
20887    }
20888
20889    pub const fn set_bimm12lohi(mut self, bimm12lohi: i32) -> Self {
20890        self.value |= encode_immediate(BIMM12LOHI, bimm12lohi as _);
20891        self
20892    }
20893
20894    /// imm2
20895    pub const fn imm2(self) -> i32 {
20896        decode_immediate(IMM2, self.value as _) as _
20897    }
20898
20899    pub const fn set_imm2(mut self, imm2: i32) -> Self {
20900        self.value |= encode_immediate(IMM2, imm2 as _);
20901        self
20902    }
20903
20904    /// imm3
20905    pub const fn imm3(self) -> i32 {
20906        decode_immediate(IMM3, self.value as _) as _
20907    }
20908
20909    pub const fn set_imm3(mut self, imm3: i32) -> Self {
20910        self.value |= encode_immediate(IMM3, imm3 as _);
20911        self
20912    }
20913
20914    /// imm4
20915    pub const fn imm4(self) -> i32 {
20916        decode_immediate(IMM4, self.value as _) as _
20917    }
20918
20919    pub const fn set_imm4(mut self, imm4: i32) -> Self {
20920        self.value |= encode_immediate(IMM4, imm4 as _);
20921        self
20922    }
20923
20924    /// imm5
20925    pub const fn imm5(self) -> i32 {
20926        decode_immediate(IMM5, self.value as _) as _
20927    }
20928
20929    pub const fn set_imm5(mut self, imm5: i32) -> Self {
20930        self.value |= encode_immediate(IMM5, imm5 as _);
20931        self
20932    }
20933
20934    /// imm6
20935    pub const fn imm6(self) -> i32 {
20936        decode_immediate(IMM6, self.value as _) as _
20937    }
20938
20939    pub const fn set_imm6(mut self, imm6: i32) -> Self {
20940        self.value |= encode_immediate(IMM6, imm6 as _);
20941        self
20942    }
20943
20944    /// zimm
20945    pub const fn zimm(self) -> i32 {
20946        decode_immediate(ZIMM, self.value as _) as _
20947    }
20948
20949    pub const fn set_zimm(mut self, zimm: i32) -> Self {
20950        self.value |= encode_immediate(ZIMM, zimm as _);
20951        self
20952    }
20953
20954    /// simm5
20955    pub const fn simm5(self) -> i32 {
20956        decode_immediate(SIMM5, self.value as _) as _
20957    }
20958
20959    pub const fn set_simm5(mut self, simm5: i32) -> Self {
20960        self.value |= encode_immediate(SIMM5, simm5 as _);
20961        self
20962    }
20963
20964    /// zimm5
20965    pub const fn zimm5(self) -> i32 {
20966        decode_immediate(ZIMM5, self.value as _) as _
20967    }
20968
20969    pub const fn set_zimm5(mut self, zimm5: i32) -> Self {
20970        self.value |= encode_immediate(ZIMM5, zimm5 as _);
20971        self
20972    }
20973
20974    /// zimm10
20975    pub const fn zimm10(self) -> i32 {
20976        decode_immediate(ZIMM10, self.value as _) as _
20977    }
20978
20979    pub const fn set_zimm10(mut self, zimm10: i32) -> Self {
20980        self.value |= encode_immediate(ZIMM10, zimm10 as _);
20981        self
20982    }
20983
20984    /// zimm11
20985    pub const fn zimm11(self) -> i32 {
20986        decode_immediate(ZIMM11, self.value as _) as _
20987    }
20988
20989    pub const fn set_zimm11(mut self, zimm11: i32) -> Self {
20990        self.value |= encode_immediate(ZIMM11, zimm11 as _);
20991        self
20992    }
20993
20994    /// zimm6lohi
20995    pub const fn zimm6lohi(self) -> i32 {
20996        decode_immediate(ZIMM6LOHI, self.value as _) as _
20997    }
20998
20999    pub const fn set_zimm6lohi(mut self, zimm6lohi: i32) -> Self {
21000        self.value |= encode_immediate(ZIMM6LOHI, zimm6lohi as _);
21001        self
21002    }
21003
21004    /// c_nzuimm10
21005    pub const fn c_nzuimm10(self) -> u32 {
21006        decode_immediate(C_NZUIMM10, self.value as _) as _
21007    }
21008
21009    pub const fn set_c_nzuimm10(mut self, c_nzuimm10: u32) -> Self {
21010        self.value |= encode_immediate(C_NZUIMM10, c_nzuimm10 as _);
21011        self
21012    }
21013
21014    /// c_uimm7lohi
21015    pub const fn c_uimm7lohi(self) -> u32 {
21016        decode_immediate(C_UIMM7LOHI, self.value as _) as _
21017    }
21018
21019    pub const fn set_c_uimm7lohi(mut self, c_uimm7lohi: u32) -> Self {
21020        self.value |= encode_immediate(C_UIMM7LOHI, c_uimm7lohi as _);
21021        self
21022    }
21023
21024    /// c_uimm8lohi
21025    pub const fn c_uimm8lohi(self) -> u32 {
21026        decode_immediate(C_UIMM8LOHI, self.value as _) as _
21027    }
21028
21029    pub const fn set_c_uimm8lohi(mut self, c_uimm8lohi: u32) -> Self {
21030        self.value |= encode_immediate(C_UIMM8LOHI, c_uimm8lohi as _);
21031        self
21032    }
21033
21034    /// c_uimm9lohi
21035    pub const fn c_uimm9lohi(self) -> u32 {
21036        decode_immediate(C_UIMM9LOHI, self.value as _) as _
21037    }
21038
21039    pub const fn set_c_uimm9lohi(mut self, c_uimm9lohi: u32) -> Self {
21040        self.value |= encode_immediate(C_UIMM9LOHI, c_uimm9lohi as _);
21041        self
21042    }
21043
21044    /// c_nzimm6lohi
21045    pub const fn c_nzimm6lohi(self) -> i32 {
21046        decode_immediate(C_NZIMM6LOHI, self.value as _) as _
21047    }
21048
21049    pub const fn set_c_nzimm6lohi(mut self, c_nzimm6lohi: i32) -> Self {
21050        self.value |= encode_immediate(C_NZIMM6LOHI, c_nzimm6lohi as _);
21051        self
21052    }
21053
21054    /// c_imm6lohi
21055    pub const fn c_imm6lohi(self) -> i32 {
21056        decode_immediate(C_IMM6LOHI, self.value as _) as _
21057    }
21058
21059    pub const fn set_c_imm6lohi(mut self, c_imm6lohi: i32) -> Self {
21060        self.value |= encode_immediate(C_IMM6LOHI, c_imm6lohi as _);
21061        self
21062    }
21063
21064    /// c_nzimm10lohi
21065    pub const fn c_nzimm10lohi(self) -> i32 {
21066        decode_immediate(C_NZIMM10LOHI, self.value as _) as _
21067    }
21068
21069    pub const fn set_c_nzimm10lohi(mut self, c_nzimm10lohi: i32) -> Self {
21070        self.value |= encode_immediate(C_NZIMM10LOHI, c_nzimm10lohi as _);
21071        self
21072    }
21073
21074    /// c_nzimm18lohi
21075    pub const fn c_nzimm18lohi(self) -> i32 {
21076        decode_immediate(C_NZIMM18LOHI, self.value as _) as _
21077    }
21078
21079    pub const fn set_c_nzimm18lohi(mut self, c_nzimm18lohi: i32) -> Self {
21080        self.value |= encode_immediate(C_NZIMM18LOHI, c_nzimm18lohi as _);
21081        self
21082    }
21083
21084    /// c_imm12
21085    pub const fn c_imm12(self) -> i32 {
21086        decode_immediate(C_IMM12, self.value as _) as _
21087    }
21088
21089    pub const fn set_c_imm12(mut self, c_imm12: i32) -> Self {
21090        self.value |= encode_immediate(C_IMM12, c_imm12 as _);
21091        self
21092    }
21093
21094    /// c_bimm9lohi
21095    pub const fn c_bimm9lohi(self) -> i32 {
21096        decode_immediate(C_BIMM9LOHI, self.value as _) as _
21097    }
21098
21099    pub const fn set_c_bimm9lohi(mut self, c_bimm9lohi: i32) -> Self {
21100        self.value |= encode_immediate(C_BIMM9LOHI, c_bimm9lohi as _);
21101        self
21102    }
21103
21104    /// c_nzuimm5
21105    pub const fn c_nzuimm5(self) -> u32 {
21106        decode_immediate(C_NZUIMM5, self.value as _) as _
21107    }
21108
21109    pub const fn set_c_nzuimm5(mut self, c_nzuimm5: u32) -> Self {
21110        self.value |= encode_immediate(C_NZUIMM5, c_nzuimm5 as _);
21111        self
21112    }
21113
21114    /// c_nzuimm6lohi
21115    pub const fn c_nzuimm6lohi(self) -> u32 {
21116        decode_immediate(C_NZUIMM6LOHI, self.value as _) as _
21117    }
21118
21119    pub const fn set_c_nzuimm6lohi(mut self, c_nzuimm6lohi: u32) -> Self {
21120        self.value |= encode_immediate(C_NZUIMM6LOHI, c_nzuimm6lohi as _);
21121        self
21122    }
21123
21124    /// c_uimm8splohi
21125    pub const fn c_uimm8splohi(self) -> u32 {
21126        decode_immediate(C_UIMM8SPLOHI, self.value as _) as _
21127    }
21128
21129    pub const fn set_c_uimm8splohi(mut self, c_uimm8splohi: u32) -> Self {
21130        self.value |= encode_immediate(C_UIMM8SPLOHI, c_uimm8splohi as _);
21131        self
21132    }
21133
21134    /// c_uimm8sp_s
21135    pub const fn c_uimm8sp_s(self) -> u32 {
21136        decode_immediate(C_UIMM8SP_S, self.value as _) as _
21137    }
21138
21139    pub const fn set_c_uimm8sp_s(mut self, c_uimm8sp_s: u32) -> Self {
21140        self.value |= encode_immediate(C_UIMM8SP_S, c_uimm8sp_s as _);
21141        self
21142    }
21143
21144    /// c_uimm10splohi
21145    pub const fn c_uimm10splohi(self) -> u32 {
21146        decode_immediate(C_UIMM10SPLOHI, self.value as _) as _
21147    }
21148
21149    pub const fn set_c_uimm10splohi(mut self, c_uimm10splohi: u32) -> Self {
21150        self.value |= encode_immediate(C_UIMM10SPLOHI, c_uimm10splohi as _);
21151        self
21152    }
21153
21154    /// c_uimm9splohi
21155    pub const fn c_uimm9splohi(self) -> u32 {
21156        decode_immediate(C_UIMM9SPLOHI, self.value as _) as _
21157    }
21158
21159    pub const fn set_c_uimm9splohi(mut self, c_uimm9splohi: u32) -> Self {
21160        self.value |= encode_immediate(C_UIMM9SPLOHI, c_uimm9splohi as _);
21161        self
21162    }
21163
21164    /// c_uimm10sp_s
21165    pub const fn c_uimm10sp_s(self) -> u32 {
21166        decode_immediate(C_UIMM10SP_S, self.value as _) as _
21167    }
21168
21169    pub const fn set_c_uimm10sp_s(mut self, c_uimm10sp_s: u32) -> Self {
21170        self.value |= encode_immediate(C_UIMM10SP_S, c_uimm10sp_s as _);
21171        self
21172    }
21173
21174    /// c_uimm9sp_s
21175    pub const fn c_uimm9sp_s(self) -> u32 {
21176        decode_immediate(C_UIMM9SP_S, self.value as _) as _
21177    }
21178
21179    pub const fn set_c_uimm9sp_s(mut self, c_uimm9sp_s: u32) -> Self {
21180        self.value |= encode_immediate(C_UIMM9SP_S, c_uimm9sp_s as _);
21181        self
21182    }
21183
21184    /// c_uimm2
21185    pub const fn c_uimm2(self) -> u32 {
21186        decode_immediate(C_UIMM2, self.value as _) as _
21187    }
21188
21189    pub const fn set_c_uimm2(mut self, c_uimm2: u32) -> Self {
21190        self.value |= encode_immediate(C_UIMM2, c_uimm2 as _);
21191        self
21192    }
21193
21194    /// c_uimm1
21195    pub const fn c_uimm1(self) -> u32 {
21196        decode_immediate(C_UIMM1, self.value as _) as _
21197    }
21198
21199    pub const fn set_c_uimm1(mut self, c_uimm1: u32) -> Self {
21200        self.value |= encode_immediate(C_UIMM1, c_uimm1 as _);
21201        self
21202    }
21203
21204    /// c_spimm
21205    pub const fn c_spimm(self) -> i32 {
21206        decode_immediate(C_SPIMM, self.value as _) as _
21207    }
21208
21209    pub const fn set_c_spimm(mut self, c_spimm: i32) -> Self {
21210        self.value |= encode_immediate(C_SPIMM, c_spimm as _);
21211        self
21212    }
21213}