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) as u32 & mask) << self.position_in_opcode.1) as u32
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 as u32 >> self.position_in_opcode.1) as u32 & mask) << self.position_in_immediate.1)
558            as _
559    }
560
561    pub const fn is_valid(&self, imm: i32) -> bool {
562        self.decode(self.encode(imm)) as i32 == imm
563    }
564}
565
566/* Automatically generated by parse_opcodes */
567
568pub const MATCH_ADD: u32 = 0x33;
569pub const MASK_ADD: u32 = 0xfe00707f;
570pub const MATCH_ADD_UW: u32 = 0x800003b;
571pub const MASK_ADD_UW: u32 = 0xfe00707f;
572pub const MATCH_ADDI: u32 = 0x13;
573pub const MASK_ADDI: u32 = 0x707f;
574pub const MATCH_ADDIW: u32 = 0x1b;
575pub const MASK_ADDIW: u32 = 0x707f;
576pub const MATCH_ADDW: u32 = 0x3b;
577pub const MASK_ADDW: u32 = 0xfe00707f;
578pub const MATCH_AES32DSI: u32 = 0x2a000033;
579pub const MASK_AES32DSI: u32 = 0x3e00707f;
580pub const MATCH_AES32DSMI: u32 = 0x2e000033;
581pub const MASK_AES32DSMI: u32 = 0x3e00707f;
582pub const MATCH_AES32ESI: u32 = 0x22000033;
583pub const MASK_AES32ESI: u32 = 0x3e00707f;
584pub const MATCH_AES32ESMI: u32 = 0x26000033;
585pub const MASK_AES32ESMI: u32 = 0x3e00707f;
586pub const MATCH_AES64DS: u32 = 0x3a000033;
587pub const MASK_AES64DS: u32 = 0xfe00707f;
588pub const MATCH_AES64DSM: u32 = 0x3e000033;
589pub const MASK_AES64DSM: u32 = 0xfe00707f;
590pub const MATCH_AES64ES: u32 = 0x32000033;
591pub const MASK_AES64ES: u32 = 0xfe00707f;
592pub const MATCH_AES64ESM: u32 = 0x36000033;
593pub const MASK_AES64ESM: u32 = 0xfe00707f;
594pub const MATCH_AES64IM: u32 = 0x30001013;
595pub const MASK_AES64IM: u32 = 0xfff0707f;
596pub const MATCH_AES64KS1I: u32 = 0x31001013;
597pub const MASK_AES64KS1I: u32 = 0xff00707f;
598pub const MATCH_AES64KS2: u32 = 0x7e000033;
599pub const MASK_AES64KS2: u32 = 0xfe00707f;
600pub const MATCH_AMOADD_B: u32 = 0x2f;
601pub const MASK_AMOADD_B: u32 = 0xf800707f;
602pub const MATCH_AMOADD_D: u32 = 0x302f;
603pub const MASK_AMOADD_D: u32 = 0xf800707f;
604pub const MATCH_AMOADD_H: u32 = 0x102f;
605pub const MASK_AMOADD_H: u32 = 0xf800707f;
606pub const MATCH_AMOADD_W: u32 = 0x202f;
607pub const MASK_AMOADD_W: u32 = 0xf800707f;
608pub const MATCH_AMOAND_B: u32 = 0x6000002f;
609pub const MASK_AMOAND_B: u32 = 0xf800707f;
610pub const MATCH_AMOAND_D: u32 = 0x6000302f;
611pub const MASK_AMOAND_D: u32 = 0xf800707f;
612pub const MATCH_AMOAND_H: u32 = 0x6000102f;
613pub const MASK_AMOAND_H: u32 = 0xf800707f;
614pub const MATCH_AMOAND_W: u32 = 0x6000202f;
615pub const MASK_AMOAND_W: u32 = 0xf800707f;
616pub const MATCH_AMOCAS_B: u32 = 0x2800002f;
617pub const MASK_AMOCAS_B: u32 = 0xf800707f;
618pub const MATCH_AMOCAS_D: u32 = 0x2800302f;
619pub const MASK_AMOCAS_D: u32 = 0xf800707f;
620pub const MATCH_AMOCAS_H: u32 = 0x2800102f;
621pub const MASK_AMOCAS_H: u32 = 0xf800707f;
622pub const MATCH_AMOCAS_Q: u32 = 0x2800402f;
623pub const MASK_AMOCAS_Q: u32 = 0xf800707f;
624pub const MATCH_AMOCAS_W: u32 = 0x2800202f;
625pub const MASK_AMOCAS_W: u32 = 0xf800707f;
626pub const MATCH_AMOMAX_B: u32 = 0xa000002f;
627pub const MASK_AMOMAX_B: u32 = 0xf800707f;
628pub const MATCH_AMOMAX_D: u32 = 0xa000302f;
629pub const MASK_AMOMAX_D: u32 = 0xf800707f;
630pub const MATCH_AMOMAX_H: u32 = 0xa000102f;
631pub const MASK_AMOMAX_H: u32 = 0xf800707f;
632pub const MATCH_AMOMAX_W: u32 = 0xa000202f;
633pub const MASK_AMOMAX_W: u32 = 0xf800707f;
634pub const MATCH_AMOMAXU_B: u32 = 0xe000002f;
635pub const MASK_AMOMAXU_B: u32 = 0xf800707f;
636pub const MATCH_AMOMAXU_D: u32 = 0xe000302f;
637pub const MASK_AMOMAXU_D: u32 = 0xf800707f;
638pub const MATCH_AMOMAXU_H: u32 = 0xe000102f;
639pub const MASK_AMOMAXU_H: u32 = 0xf800707f;
640pub const MATCH_AMOMAXU_W: u32 = 0xe000202f;
641pub const MASK_AMOMAXU_W: u32 = 0xf800707f;
642pub const MATCH_AMOMIN_B: u32 = 0x8000002f;
643pub const MASK_AMOMIN_B: u32 = 0xf800707f;
644pub const MATCH_AMOMIN_D: u32 = 0x8000302f;
645pub const MASK_AMOMIN_D: u32 = 0xf800707f;
646pub const MATCH_AMOMIN_H: u32 = 0x8000102f;
647pub const MASK_AMOMIN_H: u32 = 0xf800707f;
648pub const MATCH_AMOMIN_W: u32 = 0x8000202f;
649pub const MASK_AMOMIN_W: u32 = 0xf800707f;
650pub const MATCH_AMOMINU_B: u32 = 0xc000002f;
651pub const MASK_AMOMINU_B: u32 = 0xf800707f;
652pub const MATCH_AMOMINU_D: u32 = 0xc000302f;
653pub const MASK_AMOMINU_D: u32 = 0xf800707f;
654pub const MATCH_AMOMINU_H: u32 = 0xc000102f;
655pub const MASK_AMOMINU_H: u32 = 0xf800707f;
656pub const MATCH_AMOMINU_W: u32 = 0xc000202f;
657pub const MASK_AMOMINU_W: u32 = 0xf800707f;
658pub const MATCH_AMOOR_B: u32 = 0x4000002f;
659pub const MASK_AMOOR_B: u32 = 0xf800707f;
660pub const MATCH_AMOOR_D: u32 = 0x4000302f;
661pub const MASK_AMOOR_D: u32 = 0xf800707f;
662pub const MATCH_AMOOR_H: u32 = 0x4000102f;
663pub const MASK_AMOOR_H: u32 = 0xf800707f;
664pub const MATCH_AMOOR_W: u32 = 0x4000202f;
665pub const MASK_AMOOR_W: u32 = 0xf800707f;
666pub const MATCH_AMOSWAP_B: u32 = 0x800002f;
667pub const MASK_AMOSWAP_B: u32 = 0xf800707f;
668pub const MATCH_AMOSWAP_D: u32 = 0x800302f;
669pub const MASK_AMOSWAP_D: u32 = 0xf800707f;
670pub const MATCH_AMOSWAP_H: u32 = 0x800102f;
671pub const MASK_AMOSWAP_H: u32 = 0xf800707f;
672pub const MATCH_AMOSWAP_W: u32 = 0x800202f;
673pub const MASK_AMOSWAP_W: u32 = 0xf800707f;
674pub const MATCH_AMOXOR_B: u32 = 0x2000002f;
675pub const MASK_AMOXOR_B: u32 = 0xf800707f;
676pub const MATCH_AMOXOR_D: u32 = 0x2000302f;
677pub const MASK_AMOXOR_D: u32 = 0xf800707f;
678pub const MATCH_AMOXOR_H: u32 = 0x2000102f;
679pub const MASK_AMOXOR_H: u32 = 0xf800707f;
680pub const MATCH_AMOXOR_W: u32 = 0x2000202f;
681pub const MASK_AMOXOR_W: u32 = 0xf800707f;
682pub const MATCH_AND: u32 = 0x7033;
683pub const MASK_AND: u32 = 0xfe00707f;
684pub const MATCH_ANDI: u32 = 0x7013;
685pub const MASK_ANDI: u32 = 0x707f;
686pub const MATCH_ANDN: u32 = 0x40007033;
687pub const MASK_ANDN: u32 = 0xfe00707f;
688pub const MATCH_AUIPC: u32 = 0x17;
689pub const MASK_AUIPC: u32 = 0x7f;
690pub const MATCH_BCLR: u32 = 0x48001033;
691pub const MASK_BCLR: u32 = 0xfe00707f;
692pub const MATCH_BCLRI: u32 = 0x48001013;
693pub const MASK_BCLRI: u32 = 0xfc00707f;
694pub const MATCH_BCLRI_RV32: u32 = 0x48001013;
695pub const MASK_BCLRI_RV32: u32 = 0xfe00707f;
696pub const MATCH_BEQ: u32 = 0x63;
697pub const MASK_BEQ: u32 = 0x707f;
698pub const MATCH_BEQZ: u32 = 0x63;
699pub const MASK_BEQZ: u32 = 0x1f0707f;
700pub const MATCH_BEXT: u32 = 0x48005033;
701pub const MASK_BEXT: u32 = 0xfe00707f;
702pub const MATCH_BEXTI: u32 = 0x48005013;
703pub const MASK_BEXTI: u32 = 0xfc00707f;
704pub const MATCH_BEXTI_RV32: u32 = 0x48005013;
705pub const MASK_BEXTI_RV32: u32 = 0xfe00707f;
706pub const MATCH_BGE: u32 = 0x5063;
707pub const MASK_BGE: u32 = 0x707f;
708pub const MATCH_BGEU: u32 = 0x7063;
709pub const MASK_BGEU: u32 = 0x707f;
710pub const MATCH_BGEZ: u32 = 0x5063;
711pub const MASK_BGEZ: u32 = 0x1f0707f;
712pub const MATCH_BGT: u32 = 0x4063;
713pub const MASK_BGT: u32 = 0x707f;
714pub const MATCH_BGTU: u32 = 0x6063;
715pub const MASK_BGTU: u32 = 0x707f;
716pub const MATCH_BGTZ: u32 = 0x4063;
717pub const MASK_BGTZ: u32 = 0xff07f;
718pub const MATCH_BINV: u32 = 0x68001033;
719pub const MASK_BINV: u32 = 0xfe00707f;
720pub const MATCH_BINVI: u32 = 0x68001013;
721pub const MASK_BINVI: u32 = 0xfc00707f;
722pub const MATCH_BINVI_RV32: u32 = 0x68001013;
723pub const MASK_BINVI_RV32: u32 = 0xfe00707f;
724pub const MATCH_BLE: u32 = 0x5063;
725pub const MASK_BLE: u32 = 0x707f;
726pub const MATCH_BLEU: u32 = 0x7063;
727pub const MASK_BLEU: u32 = 0x707f;
728pub const MATCH_BLEZ: u32 = 0x5063;
729pub const MASK_BLEZ: u32 = 0xff07f;
730pub const MATCH_BLT: u32 = 0x4063;
731pub const MASK_BLT: u32 = 0x707f;
732pub const MATCH_BLTU: u32 = 0x6063;
733pub const MASK_BLTU: u32 = 0x707f;
734pub const MATCH_BLTZ: u32 = 0x4063;
735pub const MASK_BLTZ: u32 = 0x1f0707f;
736pub const MATCH_BNE: u32 = 0x1063;
737pub const MASK_BNE: u32 = 0x707f;
738pub const MATCH_BNEZ: u32 = 0x1063;
739pub const MASK_BNEZ: u32 = 0x1f0707f;
740pub const MATCH_BREV8: u32 = 0x68705013;
741pub const MASK_BREV8: u32 = 0xfff0707f;
742pub const MATCH_BSET: u32 = 0x28001033;
743pub const MASK_BSET: u32 = 0xfe00707f;
744pub const MATCH_BSETI: u32 = 0x28001013;
745pub const MASK_BSETI: u32 = 0xfc00707f;
746pub const MATCH_BSETI_RV32: u32 = 0x28001013;
747pub const MASK_BSETI_RV32: u32 = 0xfe00707f;
748pub const MATCH_C_ADD: u32 = 0x9002;
749pub const MASK_C_ADD: u32 = 0xf003;
750pub const MATCH_C_ADDI: u32 = 0x1;
751pub const MASK_C_ADDI: u32 = 0xe003;
752pub const MATCH_C_ADDI16SP: u32 = 0x6101;
753pub const MASK_C_ADDI16SP: u32 = 0xef83;
754pub const MATCH_C_ADDI4SPN: u32 = 0x0;
755pub const MASK_C_ADDI4SPN: u32 = 0xe003;
756pub const MATCH_C_ADDIW: u32 = 0x2001;
757pub const MASK_C_ADDIW: u32 = 0xe003;
758pub const MATCH_C_ADDW: u32 = 0x9c21;
759pub const MASK_C_ADDW: u32 = 0xfc63;
760pub const MATCH_C_AND: u32 = 0x8c61;
761pub const MASK_C_AND: u32 = 0xfc63;
762pub const MATCH_C_ANDI: u32 = 0x8801;
763pub const MASK_C_ANDI: u32 = 0xec03;
764pub const MATCH_C_BEQZ: u32 = 0xc001;
765pub const MASK_C_BEQZ: u32 = 0xe003;
766pub const MATCH_C_BNEZ: u32 = 0xe001;
767pub const MASK_C_BNEZ: u32 = 0xe003;
768pub const MATCH_C_EBREAK: u32 = 0x9002;
769pub const MASK_C_EBREAK: u32 = 0xffff;
770pub const MATCH_C_FLD: u32 = 0x2000;
771pub const MASK_C_FLD: u32 = 0xe003;
772pub const MATCH_C_FLDSP: u32 = 0x2002;
773pub const MASK_C_FLDSP: u32 = 0xe003;
774pub const MATCH_C_FLW: u32 = 0x6000;
775pub const MASK_C_FLW: u32 = 0xe003;
776pub const MATCH_C_FLWSP: u32 = 0x6002;
777pub const MASK_C_FLWSP: u32 = 0xe003;
778pub const MATCH_C_FSD: u32 = 0xa000;
779pub const MASK_C_FSD: u32 = 0xe003;
780pub const MATCH_C_FSDSP: u32 = 0xa002;
781pub const MASK_C_FSDSP: u32 = 0xe003;
782pub const MATCH_C_FSW: u32 = 0xe000;
783pub const MASK_C_FSW: u32 = 0xe003;
784pub const MATCH_C_FSWSP: u32 = 0xe002;
785pub const MASK_C_FSWSP: u32 = 0xe003;
786pub const MATCH_C_J: u32 = 0xa001;
787pub const MASK_C_J: u32 = 0xe003;
788pub const MATCH_C_JAL: u32 = 0x2001;
789pub const MASK_C_JAL: u32 = 0xe003;
790pub const MATCH_C_JALR: u32 = 0x9002;
791pub const MASK_C_JALR: u32 = 0xf07f;
792pub const MATCH_C_JR: u32 = 0x8002;
793pub const MASK_C_JR: u32 = 0xf07f;
794pub const MATCH_C_LBU: u32 = 0x8000;
795pub const MASK_C_LBU: u32 = 0xfc03;
796pub const MATCH_C_LD: u32 = 0x6000;
797pub const MASK_C_LD: u32 = 0xe003;
798pub const MATCH_C_LDSP: u32 = 0x6002;
799pub const MASK_C_LDSP: u32 = 0xe003;
800pub const MATCH_C_LH: u32 = 0x8440;
801pub const MASK_C_LH: u32 = 0xfc43;
802pub const MATCH_C_LHU: u32 = 0x8400;
803pub const MASK_C_LHU: u32 = 0xfc43;
804pub const MATCH_C_LI: u32 = 0x4001;
805pub const MASK_C_LI: u32 = 0xe003;
806pub const MATCH_C_LUI: u32 = 0x6001;
807pub const MASK_C_LUI: u32 = 0xe003;
808pub const MATCH_C_LW: u32 = 0x4000;
809pub const MASK_C_LW: u32 = 0xe003;
810pub const MATCH_C_LWSP: u32 = 0x4002;
811pub const MASK_C_LWSP: u32 = 0xe003;
812pub const MATCH_C_MOP_1: u32 = 0x6081;
813pub const MASK_C_MOP_1: u32 = 0xffff;
814pub const MATCH_C_MOP_11: u32 = 0x6581;
815pub const MASK_C_MOP_11: u32 = 0xffff;
816pub const MATCH_C_MOP_13: u32 = 0x6681;
817pub const MASK_C_MOP_13: u32 = 0xffff;
818pub const MATCH_C_MOP_15: u32 = 0x6781;
819pub const MASK_C_MOP_15: u32 = 0xffff;
820pub const MATCH_C_MOP_3: u32 = 0x6181;
821pub const MASK_C_MOP_3: u32 = 0xffff;
822pub const MATCH_C_MOP_5: u32 = 0x6281;
823pub const MASK_C_MOP_5: u32 = 0xffff;
824pub const MATCH_C_MOP_7: u32 = 0x6381;
825pub const MASK_C_MOP_7: u32 = 0xffff;
826pub const MATCH_C_MOP_9: u32 = 0x6481;
827pub const MASK_C_MOP_9: u32 = 0xffff;
828pub const MATCH_C_MOP_N: u32 = 0x6081;
829pub const MASK_C_MOP_N: u32 = 0xf8ff;
830pub const MATCH_C_MUL: u32 = 0x9c41;
831pub const MASK_C_MUL: u32 = 0xfc63;
832pub const MATCH_C_MV: u32 = 0x8002;
833pub const MASK_C_MV: u32 = 0xf003;
834pub const MATCH_C_NOP: u32 = 0x1;
835pub const MASK_C_NOP: u32 = 0xef83;
836pub const MATCH_C_NOT: u32 = 0x9c75;
837pub const MASK_C_NOT: u32 = 0xfc7f;
838pub const MATCH_C_NTL_ALL: u32 = 0x9016;
839pub const MASK_C_NTL_ALL: u32 = 0xffff;
840pub const MATCH_C_NTL_P1: u32 = 0x900a;
841pub const MASK_C_NTL_P1: u32 = 0xffff;
842pub const MATCH_C_NTL_PALL: u32 = 0x900e;
843pub const MASK_C_NTL_PALL: u32 = 0xffff;
844pub const MATCH_C_NTL_S1: u32 = 0x9012;
845pub const MASK_C_NTL_S1: u32 = 0xffff;
846pub const MATCH_C_OR: u32 = 0x8c41;
847pub const MASK_C_OR: u32 = 0xfc63;
848pub const MATCH_C_SB: u32 = 0x8800;
849pub const MASK_C_SB: u32 = 0xfc03;
850pub const MATCH_C_SD: u32 = 0xe000;
851pub const MASK_C_SD: u32 = 0xe003;
852pub const MATCH_C_SDSP: u32 = 0xe002;
853pub const MASK_C_SDSP: u32 = 0xe003;
854pub const MATCH_C_SEXT_B: u32 = 0x9c65;
855pub const MASK_C_SEXT_B: u32 = 0xfc7f;
856pub const MATCH_C_SEXT_H: u32 = 0x9c6d;
857pub const MASK_C_SEXT_H: u32 = 0xfc7f;
858pub const MATCH_C_SEXT_W: u32 = 0x2001;
859pub const MASK_C_SEXT_W: u32 = 0xf07f;
860pub const MATCH_C_SH: u32 = 0x8c00;
861pub const MASK_C_SH: u32 = 0xfc43;
862pub const MATCH_C_SLLI: u32 = 0x2;
863pub const MASK_C_SLLI: u32 = 0xe003;
864pub const MATCH_C_SLLI_RV32: u32 = 0x2;
865pub const MASK_C_SLLI_RV32: u32 = 0xf003;
866pub const MATCH_C_SRAI: u32 = 0x8401;
867pub const MASK_C_SRAI: u32 = 0xec03;
868pub const MATCH_C_SRAI_RV32: u32 = 0x8401;
869pub const MASK_C_SRAI_RV32: u32 = 0xfc03;
870pub const MATCH_C_SRLI: u32 = 0x8001;
871pub const MASK_C_SRLI: u32 = 0xec03;
872pub const MATCH_C_SRLI_RV32: u32 = 0x8001;
873pub const MASK_C_SRLI_RV32: u32 = 0xfc03;
874pub const MATCH_C_SUB: u32 = 0x8c01;
875pub const MASK_C_SUB: u32 = 0xfc63;
876pub const MATCH_C_SUBW: u32 = 0x9c01;
877pub const MASK_C_SUBW: u32 = 0xfc63;
878pub const MATCH_C_SW: u32 = 0xc000;
879pub const MASK_C_SW: u32 = 0xe003;
880pub const MATCH_C_SWSP: u32 = 0xc002;
881pub const MASK_C_SWSP: u32 = 0xe003;
882pub const MATCH_C_XOR: u32 = 0x8c21;
883pub const MASK_C_XOR: u32 = 0xfc63;
884pub const MATCH_C_ZEXT_B: u32 = 0x9c61;
885pub const MASK_C_ZEXT_B: u32 = 0xfc7f;
886pub const MATCH_C_ZEXT_H: u32 = 0x9c69;
887pub const MASK_C_ZEXT_H: u32 = 0xfc7f;
888pub const MATCH_C_ZEXT_W: u32 = 0x9c71;
889pub const MASK_C_ZEXT_W: u32 = 0xfc7f;
890pub const MATCH_CBO_CLEAN: u32 = 0x10200f;
891pub const MASK_CBO_CLEAN: u32 = 0xfff07fff;
892pub const MATCH_CBO_FLUSH: u32 = 0x20200f;
893pub const MASK_CBO_FLUSH: u32 = 0xfff07fff;
894pub const MATCH_CBO_INVAL: u32 = 0x200f;
895pub const MASK_CBO_INVAL: u32 = 0xfff07fff;
896pub const MATCH_CBO_ZERO: u32 = 0x40200f;
897pub const MASK_CBO_ZERO: u32 = 0xfff07fff;
898pub const MATCH_CLMUL: u32 = 0xa001033;
899pub const MASK_CLMUL: u32 = 0xfe00707f;
900pub const MATCH_CLMULH: u32 = 0xa003033;
901pub const MASK_CLMULH: u32 = 0xfe00707f;
902pub const MATCH_CLMULR: u32 = 0xa002033;
903pub const MASK_CLMULR: u32 = 0xfe00707f;
904pub const MATCH_CLZ: u32 = 0x60001013;
905pub const MASK_CLZ: u32 = 0xfff0707f;
906pub const MATCH_CLZW: u32 = 0x6000101b;
907pub const MASK_CLZW: u32 = 0xfff0707f;
908pub const MATCH_CM_JALT: u32 = 0xa002;
909pub const MASK_CM_JALT: u32 = 0xfc03;
910pub const MATCH_CM_MVA01S: u32 = 0xac62;
911pub const MASK_CM_MVA01S: u32 = 0xfc63;
912pub const MATCH_CM_MVSA01: u32 = 0xac22;
913pub const MASK_CM_MVSA01: u32 = 0xfc63;
914pub const MATCH_CM_POP: u32 = 0xba02;
915pub const MASK_CM_POP: u32 = 0xff03;
916pub const MATCH_CM_POPRET: u32 = 0xbe02;
917pub const MASK_CM_POPRET: u32 = 0xff03;
918pub const MATCH_CM_POPRETZ: u32 = 0xbc02;
919pub const MASK_CM_POPRETZ: u32 = 0xff03;
920pub const MATCH_CM_PUSH: u32 = 0xb802;
921pub const MASK_CM_PUSH: u32 = 0xff03;
922pub const MATCH_CPOP: u32 = 0x60201013;
923pub const MASK_CPOP: u32 = 0xfff0707f;
924pub const MATCH_CPOPW: u32 = 0x6020101b;
925pub const MASK_CPOPW: u32 = 0xfff0707f;
926pub const MATCH_CSRC: u32 = 0x3073;
927pub const MASK_CSRC: u32 = 0x7fff;
928pub const MATCH_CSRCI: u32 = 0x7073;
929pub const MASK_CSRCI: u32 = 0x7fff;
930pub const MATCH_CSRR: u32 = 0x2073;
931pub const MASK_CSRR: u32 = 0xff07f;
932pub const MATCH_CSRRC: u32 = 0x3073;
933pub const MASK_CSRRC: u32 = 0x707f;
934pub const MATCH_CSRRCI: u32 = 0x7073;
935pub const MASK_CSRRCI: u32 = 0x707f;
936pub const MATCH_CSRRS: u32 = 0x2073;
937pub const MASK_CSRRS: u32 = 0x707f;
938pub const MATCH_CSRRSI: u32 = 0x6073;
939pub const MASK_CSRRSI: u32 = 0x707f;
940pub const MATCH_CSRRW: u32 = 0x1073;
941pub const MASK_CSRRW: u32 = 0x707f;
942pub const MATCH_CSRRWI: u32 = 0x5073;
943pub const MASK_CSRRWI: u32 = 0x707f;
944pub const MATCH_CSRS: u32 = 0x2073;
945pub const MASK_CSRS: u32 = 0x7fff;
946pub const MATCH_CSRSI: u32 = 0x6073;
947pub const MASK_CSRSI: u32 = 0x7fff;
948pub const MATCH_CSRW: u32 = 0x1073;
949pub const MASK_CSRW: u32 = 0x7fff;
950pub const MATCH_CSRWI: u32 = 0x5073;
951pub const MASK_CSRWI: u32 = 0x7fff;
952pub const MATCH_CTZ: u32 = 0x60101013;
953pub const MASK_CTZ: u32 = 0xfff0707f;
954pub const MATCH_CTZW: u32 = 0x6010101b;
955pub const MASK_CTZW: u32 = 0xfff0707f;
956pub const MATCH_CZERO_EQZ: u32 = 0xe005033;
957pub const MASK_CZERO_EQZ: u32 = 0xfe00707f;
958pub const MATCH_CZERO_NEZ: u32 = 0xe007033;
959pub const MASK_CZERO_NEZ: u32 = 0xfe00707f;
960pub const MATCH_DIV: u32 = 0x2004033;
961pub const MASK_DIV: u32 = 0xfe00707f;
962pub const MATCH_DIVU: u32 = 0x2005033;
963pub const MASK_DIVU: u32 = 0xfe00707f;
964pub const MATCH_DIVUW: u32 = 0x200503b;
965pub const MASK_DIVUW: u32 = 0xfe00707f;
966pub const MATCH_DIVW: u32 = 0x200403b;
967pub const MASK_DIVW: u32 = 0xfe00707f;
968pub const MATCH_DRET: u32 = 0x7b200073;
969pub const MASK_DRET: u32 = 0xffffffff;
970pub const MATCH_EBREAK: u32 = 0x100073;
971pub const MASK_EBREAK: u32 = 0xffffffff;
972pub const MATCH_ECALL: u32 = 0x73;
973pub const MASK_ECALL: u32 = 0xffffffff;
974pub const MATCH_FABS_D: u32 = 0x22002053;
975pub const MASK_FABS_D: u32 = 0xfe00707f;
976pub const MATCH_FABS_H: u32 = 0x24002053;
977pub const MASK_FABS_H: u32 = 0xfe00707f;
978pub const MATCH_FABS_Q: u32 = 0x26002053;
979pub const MASK_FABS_Q: u32 = 0xfe00707f;
980pub const MATCH_FABS_S: u32 = 0x20002053;
981pub const MASK_FABS_S: u32 = 0xfe00707f;
982pub const MATCH_FADD_D: u32 = 0x2000053;
983pub const MASK_FADD_D: u32 = 0xfe00007f;
984pub const MATCH_FADD_H: u32 = 0x4000053;
985pub const MASK_FADD_H: u32 = 0xfe00007f;
986pub const MATCH_FADD_Q: u32 = 0x6000053;
987pub const MASK_FADD_Q: u32 = 0xfe00007f;
988pub const MATCH_FADD_S: u32 = 0x53;
989pub const MASK_FADD_S: u32 = 0xfe00007f;
990pub const MATCH_FCLASS_D: u32 = 0xe2001053;
991pub const MASK_FCLASS_D: u32 = 0xfff0707f;
992pub const MATCH_FCLASS_H: u32 = 0xe4001053;
993pub const MASK_FCLASS_H: u32 = 0xfff0707f;
994pub const MATCH_FCLASS_Q: u32 = 0xe6001053;
995pub const MASK_FCLASS_Q: u32 = 0xfff0707f;
996pub const MATCH_FCLASS_S: u32 = 0xe0001053;
997pub const MASK_FCLASS_S: u32 = 0xfff0707f;
998pub const MATCH_FCVT_D_H: u32 = 0x42200053;
999pub const MASK_FCVT_D_H: u32 = 0xfff0007f;
1000pub const MATCH_FCVT_D_L: u32 = 0xd2200053;
1001pub const MASK_FCVT_D_L: u32 = 0xfff0007f;
1002pub const MATCH_FCVT_D_LU: u32 = 0xd2300053;
1003pub const MASK_FCVT_D_LU: u32 = 0xfff0007f;
1004pub const MATCH_FCVT_D_Q: u32 = 0x42300053;
1005pub const MASK_FCVT_D_Q: u32 = 0xfff0007f;
1006pub const MATCH_FCVT_D_S: u32 = 0x42000053;
1007pub const MASK_FCVT_D_S: u32 = 0xfff0007f;
1008pub const MATCH_FCVT_D_W: u32 = 0xd2000053;
1009pub const MASK_FCVT_D_W: u32 = 0xfff0007f;
1010pub const MATCH_FCVT_D_WU: u32 = 0xd2100053;
1011pub const MASK_FCVT_D_WU: u32 = 0xfff0007f;
1012pub const MATCH_FCVT_H_D: u32 = 0x44100053;
1013pub const MASK_FCVT_H_D: u32 = 0xfff0007f;
1014pub const MATCH_FCVT_H_L: u32 = 0xd4200053;
1015pub const MASK_FCVT_H_L: u32 = 0xfff0007f;
1016pub const MATCH_FCVT_H_LU: u32 = 0xd4300053;
1017pub const MASK_FCVT_H_LU: u32 = 0xfff0007f;
1018pub const MATCH_FCVT_H_Q: u32 = 0x44300053;
1019pub const MASK_FCVT_H_Q: u32 = 0xfff0007f;
1020pub const MATCH_FCVT_H_S: u32 = 0x44000053;
1021pub const MASK_FCVT_H_S: u32 = 0xfff0007f;
1022pub const MATCH_FCVT_H_W: u32 = 0xd4000053;
1023pub const MASK_FCVT_H_W: u32 = 0xfff0007f;
1024pub const MATCH_FCVT_H_WU: u32 = 0xd4100053;
1025pub const MASK_FCVT_H_WU: u32 = 0xfff0007f;
1026pub const MATCH_FCVT_L_D: u32 = 0xc2200053;
1027pub const MASK_FCVT_L_D: u32 = 0xfff0007f;
1028pub const MATCH_FCVT_L_H: u32 = 0xc4200053;
1029pub const MASK_FCVT_L_H: u32 = 0xfff0007f;
1030pub const MATCH_FCVT_L_Q: u32 = 0xc6200053;
1031pub const MASK_FCVT_L_Q: u32 = 0xfff0007f;
1032pub const MATCH_FCVT_L_S: u32 = 0xc0200053;
1033pub const MASK_FCVT_L_S: u32 = 0xfff0007f;
1034pub const MATCH_FCVT_LU_D: u32 = 0xc2300053;
1035pub const MASK_FCVT_LU_D: u32 = 0xfff0007f;
1036pub const MATCH_FCVT_LU_H: u32 = 0xc4300053;
1037pub const MASK_FCVT_LU_H: u32 = 0xfff0007f;
1038pub const MATCH_FCVT_LU_Q: u32 = 0xc6300053;
1039pub const MASK_FCVT_LU_Q: u32 = 0xfff0007f;
1040pub const MATCH_FCVT_LU_S: u32 = 0xc0300053;
1041pub const MASK_FCVT_LU_S: u32 = 0xfff0007f;
1042pub const MATCH_FCVT_Q_D: u32 = 0x46100053;
1043pub const MASK_FCVT_Q_D: u32 = 0xfff0007f;
1044pub const MATCH_FCVT_Q_H: u32 = 0x46200053;
1045pub const MASK_FCVT_Q_H: u32 = 0xfff0007f;
1046pub const MATCH_FCVT_Q_L: u32 = 0xd6200053;
1047pub const MASK_FCVT_Q_L: u32 = 0xfff0007f;
1048pub const MATCH_FCVT_Q_LU: u32 = 0xd6300053;
1049pub const MASK_FCVT_Q_LU: u32 = 0xfff0007f;
1050pub const MATCH_FCVT_Q_S: u32 = 0x46000053;
1051pub const MASK_FCVT_Q_S: u32 = 0xfff0007f;
1052pub const MATCH_FCVT_Q_W: u32 = 0xd6000053;
1053pub const MASK_FCVT_Q_W: u32 = 0xfff0007f;
1054pub const MATCH_FCVT_Q_WU: u32 = 0xd6100053;
1055pub const MASK_FCVT_Q_WU: u32 = 0xfff0007f;
1056pub const MATCH_FCVT_S_D: u32 = 0x40100053;
1057pub const MASK_FCVT_S_D: u32 = 0xfff0007f;
1058pub const MATCH_FCVT_S_H: u32 = 0x40200053;
1059pub const MASK_FCVT_S_H: u32 = 0xfff0007f;
1060pub const MATCH_FCVT_S_L: u32 = 0xd0200053;
1061pub const MASK_FCVT_S_L: u32 = 0xfff0007f;
1062pub const MATCH_FCVT_S_LU: u32 = 0xd0300053;
1063pub const MASK_FCVT_S_LU: u32 = 0xfff0007f;
1064pub const MATCH_FCVT_S_Q: u32 = 0x40300053;
1065pub const MASK_FCVT_S_Q: u32 = 0xfff0007f;
1066pub const MATCH_FCVT_S_W: u32 = 0xd0000053;
1067pub const MASK_FCVT_S_W: u32 = 0xfff0007f;
1068pub const MATCH_FCVT_S_WU: u32 = 0xd0100053;
1069pub const MASK_FCVT_S_WU: u32 = 0xfff0007f;
1070pub const MATCH_FCVT_W_D: u32 = 0xc2000053;
1071pub const MASK_FCVT_W_D: u32 = 0xfff0007f;
1072pub const MATCH_FCVT_W_H: u32 = 0xc4000053;
1073pub const MASK_FCVT_W_H: u32 = 0xfff0007f;
1074pub const MATCH_FCVT_W_Q: u32 = 0xc6000053;
1075pub const MASK_FCVT_W_Q: u32 = 0xfff0007f;
1076pub const MATCH_FCVT_W_S: u32 = 0xc0000053;
1077pub const MASK_FCVT_W_S: u32 = 0xfff0007f;
1078pub const MATCH_FCVT_WU_D: u32 = 0xc2100053;
1079pub const MASK_FCVT_WU_D: u32 = 0xfff0007f;
1080pub const MATCH_FCVT_WU_H: u32 = 0xc4100053;
1081pub const MASK_FCVT_WU_H: u32 = 0xfff0007f;
1082pub const MATCH_FCVT_WU_Q: u32 = 0xc6100053;
1083pub const MASK_FCVT_WU_Q: u32 = 0xfff0007f;
1084pub const MATCH_FCVT_WU_S: u32 = 0xc0100053;
1085pub const MASK_FCVT_WU_S: u32 = 0xfff0007f;
1086pub const MATCH_FCVTMOD_W_D: u32 = 0xc2801053;
1087pub const MASK_FCVTMOD_W_D: u32 = 0xfff0707f;
1088pub const MATCH_FDIV_D: u32 = 0x1a000053;
1089pub const MASK_FDIV_D: u32 = 0xfe00007f;
1090pub const MATCH_FDIV_H: u32 = 0x1c000053;
1091pub const MASK_FDIV_H: u32 = 0xfe00007f;
1092pub const MATCH_FDIV_Q: u32 = 0x1e000053;
1093pub const MASK_FDIV_Q: u32 = 0xfe00007f;
1094pub const MATCH_FDIV_S: u32 = 0x18000053;
1095pub const MASK_FDIV_S: u32 = 0xfe00007f;
1096pub const MATCH_FENCE: u32 = 0xf;
1097pub const MASK_FENCE: u32 = 0x707f;
1098pub const MATCH_FENCE_I: u32 = 0x100f;
1099pub const MASK_FENCE_I: u32 = 0x707f;
1100pub const MATCH_FENCE_TSO: u32 = 0x8330000f;
1101pub const MASK_FENCE_TSO: u32 = 0xfff0707f;
1102pub const MATCH_FEQ_D: u32 = 0xa2002053;
1103pub const MASK_FEQ_D: u32 = 0xfe00707f;
1104pub const MATCH_FEQ_H: u32 = 0xa4002053;
1105pub const MASK_FEQ_H: u32 = 0xfe00707f;
1106pub const MATCH_FEQ_Q: u32 = 0xa6002053;
1107pub const MASK_FEQ_Q: u32 = 0xfe00707f;
1108pub const MATCH_FEQ_S: u32 = 0xa0002053;
1109pub const MASK_FEQ_S: u32 = 0xfe00707f;
1110pub const MATCH_FLD: u32 = 0x3007;
1111pub const MASK_FLD: u32 = 0x707f;
1112pub const MATCH_FLE_D: u32 = 0xa2000053;
1113pub const MASK_FLE_D: u32 = 0xfe00707f;
1114pub const MATCH_FLE_H: u32 = 0xa4000053;
1115pub const MASK_FLE_H: u32 = 0xfe00707f;
1116pub const MATCH_FLE_Q: u32 = 0xa6000053;
1117pub const MASK_FLE_Q: u32 = 0xfe00707f;
1118pub const MATCH_FLE_S: u32 = 0xa0000053;
1119pub const MASK_FLE_S: u32 = 0xfe00707f;
1120pub const MATCH_FLEQ_D: u32 = 0xa2004053;
1121pub const MASK_FLEQ_D: u32 = 0xfe00707f;
1122pub const MATCH_FLEQ_H: u32 = 0xa4004053;
1123pub const MASK_FLEQ_H: u32 = 0xfe00707f;
1124pub const MATCH_FLEQ_Q: u32 = 0xa6004053;
1125pub const MASK_FLEQ_Q: u32 = 0xfe00707f;
1126pub const MATCH_FLEQ_S: u32 = 0xa0004053;
1127pub const MASK_FLEQ_S: u32 = 0xfe00707f;
1128pub const MATCH_FLH: u32 = 0x1007;
1129pub const MASK_FLH: u32 = 0x707f;
1130pub const MATCH_FLI_D: u32 = 0xf2100053;
1131pub const MASK_FLI_D: u32 = 0xfff0707f;
1132pub const MATCH_FLI_H: u32 = 0xf4100053;
1133pub const MASK_FLI_H: u32 = 0xfff0707f;
1134pub const MATCH_FLI_Q: u32 = 0xf6100053;
1135pub const MASK_FLI_Q: u32 = 0xfff0707f;
1136pub const MATCH_FLI_S: u32 = 0xf0100053;
1137pub const MASK_FLI_S: u32 = 0xfff0707f;
1138pub const MATCH_FLQ: u32 = 0x4007;
1139pub const MASK_FLQ: u32 = 0x707f;
1140pub const MATCH_FLT_D: u32 = 0xa2001053;
1141pub const MASK_FLT_D: u32 = 0xfe00707f;
1142pub const MATCH_FLT_H: u32 = 0xa4001053;
1143pub const MASK_FLT_H: u32 = 0xfe00707f;
1144pub const MATCH_FLT_Q: u32 = 0xa6001053;
1145pub const MASK_FLT_Q: u32 = 0xfe00707f;
1146pub const MATCH_FLT_S: u32 = 0xa0001053;
1147pub const MASK_FLT_S: u32 = 0xfe00707f;
1148pub const MATCH_FLTQ_D: u32 = 0xa2005053;
1149pub const MASK_FLTQ_D: u32 = 0xfe00707f;
1150pub const MATCH_FLTQ_H: u32 = 0xa4005053;
1151pub const MASK_FLTQ_H: u32 = 0xfe00707f;
1152pub const MATCH_FLTQ_Q: u32 = 0xa6005053;
1153pub const MASK_FLTQ_Q: u32 = 0xfe00707f;
1154pub const MATCH_FLTQ_S: u32 = 0xa0005053;
1155pub const MASK_FLTQ_S: u32 = 0xfe00707f;
1156pub const MATCH_FLW: u32 = 0x2007;
1157pub const MASK_FLW: u32 = 0x707f;
1158pub const MATCH_FMADD_D: u32 = 0x2000043;
1159pub const MASK_FMADD_D: u32 = 0x600007f;
1160pub const MATCH_FMADD_H: u32 = 0x4000043;
1161pub const MASK_FMADD_H: u32 = 0x600007f;
1162pub const MATCH_FMADD_Q: u32 = 0x6000043;
1163pub const MASK_FMADD_Q: u32 = 0x600007f;
1164pub const MATCH_FMADD_S: u32 = 0x43;
1165pub const MASK_FMADD_S: u32 = 0x600007f;
1166pub const MATCH_FMAX_D: u32 = 0x2a001053;
1167pub const MASK_FMAX_D: u32 = 0xfe00707f;
1168pub const MATCH_FMAX_H: u32 = 0x2c001053;
1169pub const MASK_FMAX_H: u32 = 0xfe00707f;
1170pub const MATCH_FMAX_Q: u32 = 0x2e001053;
1171pub const MASK_FMAX_Q: u32 = 0xfe00707f;
1172pub const MATCH_FMAX_S: u32 = 0x28001053;
1173pub const MASK_FMAX_S: u32 = 0xfe00707f;
1174pub const MATCH_FMAXM_D: u32 = 0x2a003053;
1175pub const MASK_FMAXM_D: u32 = 0xfe00707f;
1176pub const MATCH_FMAXM_H: u32 = 0x2c003053;
1177pub const MASK_FMAXM_H: u32 = 0xfe00707f;
1178pub const MATCH_FMAXM_Q: u32 = 0x2e003053;
1179pub const MASK_FMAXM_Q: u32 = 0xfe00707f;
1180pub const MATCH_FMAXM_S: u32 = 0x28003053;
1181pub const MASK_FMAXM_S: u32 = 0xfe00707f;
1182pub const MATCH_FMIN_D: u32 = 0x2a000053;
1183pub const MASK_FMIN_D: u32 = 0xfe00707f;
1184pub const MATCH_FMIN_H: u32 = 0x2c000053;
1185pub const MASK_FMIN_H: u32 = 0xfe00707f;
1186pub const MATCH_FMIN_Q: u32 = 0x2e000053;
1187pub const MASK_FMIN_Q: u32 = 0xfe00707f;
1188pub const MATCH_FMIN_S: u32 = 0x28000053;
1189pub const MASK_FMIN_S: u32 = 0xfe00707f;
1190pub const MATCH_FMINM_D: u32 = 0x2a002053;
1191pub const MASK_FMINM_D: u32 = 0xfe00707f;
1192pub const MATCH_FMINM_H: u32 = 0x2c002053;
1193pub const MASK_FMINM_H: u32 = 0xfe00707f;
1194pub const MATCH_FMINM_Q: u32 = 0x2e002053;
1195pub const MASK_FMINM_Q: u32 = 0xfe00707f;
1196pub const MATCH_FMINM_S: u32 = 0x28002053;
1197pub const MASK_FMINM_S: u32 = 0xfe00707f;
1198pub const MATCH_FMSUB_D: u32 = 0x2000047;
1199pub const MASK_FMSUB_D: u32 = 0x600007f;
1200pub const MATCH_FMSUB_H: u32 = 0x4000047;
1201pub const MASK_FMSUB_H: u32 = 0x600007f;
1202pub const MATCH_FMSUB_Q: u32 = 0x6000047;
1203pub const MASK_FMSUB_Q: u32 = 0x600007f;
1204pub const MATCH_FMSUB_S: u32 = 0x47;
1205pub const MASK_FMSUB_S: u32 = 0x600007f;
1206pub const MATCH_FMUL_D: u32 = 0x12000053;
1207pub const MASK_FMUL_D: u32 = 0xfe00007f;
1208pub const MATCH_FMUL_H: u32 = 0x14000053;
1209pub const MASK_FMUL_H: u32 = 0xfe00007f;
1210pub const MATCH_FMUL_Q: u32 = 0x16000053;
1211pub const MASK_FMUL_Q: u32 = 0xfe00007f;
1212pub const MATCH_FMUL_S: u32 = 0x10000053;
1213pub const MASK_FMUL_S: u32 = 0xfe00007f;
1214pub const MATCH_FMV_D: u32 = 0x22000053;
1215pub const MASK_FMV_D: u32 = 0xfe00707f;
1216pub const MATCH_FMV_D_X: u32 = 0xf2000053;
1217pub const MASK_FMV_D_X: u32 = 0xfff0707f;
1218pub const MATCH_FMV_H: u32 = 0x24000053;
1219pub const MASK_FMV_H: u32 = 0xfe00707f;
1220pub const MATCH_FMV_H_X: u32 = 0xf4000053;
1221pub const MASK_FMV_H_X: u32 = 0xfff0707f;
1222pub const MATCH_FMV_Q: u32 = 0x26000053;
1223pub const MASK_FMV_Q: u32 = 0xfe00707f;
1224pub const MATCH_FMV_S: u32 = 0x20000053;
1225pub const MASK_FMV_S: u32 = 0xfe00707f;
1226pub const MATCH_FMV_S_X: u32 = 0xf0000053;
1227pub const MASK_FMV_S_X: u32 = 0xfff0707f;
1228pub const MATCH_FMV_W_X: u32 = 0xf0000053;
1229pub const MASK_FMV_W_X: u32 = 0xfff0707f;
1230pub const MATCH_FMV_X_D: u32 = 0xe2000053;
1231pub const MASK_FMV_X_D: u32 = 0xfff0707f;
1232pub const MATCH_FMV_X_H: u32 = 0xe4000053;
1233pub const MASK_FMV_X_H: u32 = 0xfff0707f;
1234pub const MATCH_FMV_X_S: u32 = 0xe0000053;
1235pub const MASK_FMV_X_S: u32 = 0xfff0707f;
1236pub const MATCH_FMV_X_W: u32 = 0xe0000053;
1237pub const MASK_FMV_X_W: u32 = 0xfff0707f;
1238pub const MATCH_FMVH_X_D: u32 = 0xe2100053;
1239pub const MASK_FMVH_X_D: u32 = 0xfff0707f;
1240pub const MATCH_FMVH_X_Q: u32 = 0xe6100053;
1241pub const MASK_FMVH_X_Q: u32 = 0xfff0707f;
1242pub const MATCH_FMVP_D_X: u32 = 0xb2000053;
1243pub const MASK_FMVP_D_X: u32 = 0xfe00707f;
1244pub const MATCH_FMVP_Q_X: u32 = 0xb6000053;
1245pub const MASK_FMVP_Q_X: u32 = 0xfe00707f;
1246pub const MATCH_FNEG_D: u32 = 0x22001053;
1247pub const MASK_FNEG_D: u32 = 0xfe00707f;
1248pub const MATCH_FNEG_H: u32 = 0x24001053;
1249pub const MASK_FNEG_H: u32 = 0xfe00707f;
1250pub const MATCH_FNEG_Q: u32 = 0x26001053;
1251pub const MASK_FNEG_Q: u32 = 0xfe00707f;
1252pub const MATCH_FNEG_S: u32 = 0x20001053;
1253pub const MASK_FNEG_S: u32 = 0xfe00707f;
1254pub const MATCH_FNMADD_D: u32 = 0x200004f;
1255pub const MASK_FNMADD_D: u32 = 0x600007f;
1256pub const MATCH_FNMADD_H: u32 = 0x400004f;
1257pub const MASK_FNMADD_H: u32 = 0x600007f;
1258pub const MATCH_FNMADD_Q: u32 = 0x600004f;
1259pub const MASK_FNMADD_Q: u32 = 0x600007f;
1260pub const MATCH_FNMADD_S: u32 = 0x4f;
1261pub const MASK_FNMADD_S: u32 = 0x600007f;
1262pub const MATCH_FNMSUB_D: u32 = 0x200004b;
1263pub const MASK_FNMSUB_D: u32 = 0x600007f;
1264pub const MATCH_FNMSUB_H: u32 = 0x400004b;
1265pub const MASK_FNMSUB_H: u32 = 0x600007f;
1266pub const MATCH_FNMSUB_Q: u32 = 0x600004b;
1267pub const MASK_FNMSUB_Q: u32 = 0x600007f;
1268pub const MATCH_FNMSUB_S: u32 = 0x4b;
1269pub const MASK_FNMSUB_S: u32 = 0x600007f;
1270pub const MATCH_FRCSR: u32 = 0x302073;
1271pub const MASK_FRCSR: u32 = 0xfffff07f;
1272pub const MATCH_FRFLAGS: u32 = 0x102073;
1273pub const MASK_FRFLAGS: u32 = 0xfffff07f;
1274pub const MATCH_FROUND_D: u32 = 0x42400053;
1275pub const MASK_FROUND_D: u32 = 0xfff0007f;
1276pub const MATCH_FROUND_H: u32 = 0x44400053;
1277pub const MASK_FROUND_H: u32 = 0xfff0007f;
1278pub const MATCH_FROUND_Q: u32 = 0x46400053;
1279pub const MASK_FROUND_Q: u32 = 0xfff0007f;
1280pub const MATCH_FROUND_S: u32 = 0x40400053;
1281pub const MASK_FROUND_S: u32 = 0xfff0007f;
1282pub const MATCH_FROUNDNX_D: u32 = 0x42500053;
1283pub const MASK_FROUNDNX_D: u32 = 0xfff0007f;
1284pub const MATCH_FROUNDNX_H: u32 = 0x44500053;
1285pub const MASK_FROUNDNX_H: u32 = 0xfff0007f;
1286pub const MATCH_FROUNDNX_Q: u32 = 0x46500053;
1287pub const MASK_FROUNDNX_Q: u32 = 0xfff0007f;
1288pub const MATCH_FROUNDNX_S: u32 = 0x40500053;
1289pub const MASK_FROUNDNX_S: u32 = 0xfff0007f;
1290pub const MATCH_FRRM: u32 = 0x202073;
1291pub const MASK_FRRM: u32 = 0xfffff07f;
1292pub const MATCH_FSCSR: u32 = 0x301073;
1293pub const MASK_FSCSR: u32 = 0xfff0707f;
1294pub const MATCH_FSD: u32 = 0x3027;
1295pub const MASK_FSD: u32 = 0x707f;
1296pub const MATCH_FSFLAGS: u32 = 0x101073;
1297pub const MASK_FSFLAGS: u32 = 0xfff0707f;
1298pub const MATCH_FSFLAGSI: u32 = 0x105073;
1299pub const MASK_FSFLAGSI: u32 = 0xfff0707f;
1300pub const MATCH_FSGNJ_D: u32 = 0x22000053;
1301pub const MASK_FSGNJ_D: u32 = 0xfe00707f;
1302pub const MATCH_FSGNJ_H: u32 = 0x24000053;
1303pub const MASK_FSGNJ_H: u32 = 0xfe00707f;
1304pub const MATCH_FSGNJ_Q: u32 = 0x26000053;
1305pub const MASK_FSGNJ_Q: u32 = 0xfe00707f;
1306pub const MATCH_FSGNJ_S: u32 = 0x20000053;
1307pub const MASK_FSGNJ_S: u32 = 0xfe00707f;
1308pub const MATCH_FSGNJN_D: u32 = 0x22001053;
1309pub const MASK_FSGNJN_D: u32 = 0xfe00707f;
1310pub const MATCH_FSGNJN_H: u32 = 0x24001053;
1311pub const MASK_FSGNJN_H: u32 = 0xfe00707f;
1312pub const MATCH_FSGNJN_Q: u32 = 0x26001053;
1313pub const MASK_FSGNJN_Q: u32 = 0xfe00707f;
1314pub const MATCH_FSGNJN_S: u32 = 0x20001053;
1315pub const MASK_FSGNJN_S: u32 = 0xfe00707f;
1316pub const MATCH_FSGNJX_D: u32 = 0x22002053;
1317pub const MASK_FSGNJX_D: u32 = 0xfe00707f;
1318pub const MATCH_FSGNJX_H: u32 = 0x24002053;
1319pub const MASK_FSGNJX_H: u32 = 0xfe00707f;
1320pub const MATCH_FSGNJX_Q: u32 = 0x26002053;
1321pub const MASK_FSGNJX_Q: u32 = 0xfe00707f;
1322pub const MATCH_FSGNJX_S: u32 = 0x20002053;
1323pub const MASK_FSGNJX_S: u32 = 0xfe00707f;
1324pub const MATCH_FSH: u32 = 0x1027;
1325pub const MASK_FSH: u32 = 0x707f;
1326pub const MATCH_FSQ: u32 = 0x4027;
1327pub const MASK_FSQ: u32 = 0x707f;
1328pub const MATCH_FSQRT_D: u32 = 0x5a000053;
1329pub const MASK_FSQRT_D: u32 = 0xfff0007f;
1330pub const MATCH_FSQRT_H: u32 = 0x5c000053;
1331pub const MASK_FSQRT_H: u32 = 0xfff0007f;
1332pub const MATCH_FSQRT_Q: u32 = 0x5e000053;
1333pub const MASK_FSQRT_Q: u32 = 0xfff0007f;
1334pub const MATCH_FSQRT_S: u32 = 0x58000053;
1335pub const MASK_FSQRT_S: u32 = 0xfff0007f;
1336pub const MATCH_FSRM: u32 = 0x201073;
1337pub const MASK_FSRM: u32 = 0xfff0707f;
1338pub const MATCH_FSRMI: u32 = 0x205073;
1339pub const MASK_FSRMI: u32 = 0xfff0707f;
1340pub const MATCH_FSUB_D: u32 = 0xa000053;
1341pub const MASK_FSUB_D: u32 = 0xfe00007f;
1342pub const MATCH_FSUB_H: u32 = 0xc000053;
1343pub const MASK_FSUB_H: u32 = 0xfe00007f;
1344pub const MATCH_FSUB_Q: u32 = 0xe000053;
1345pub const MASK_FSUB_Q: u32 = 0xfe00007f;
1346pub const MATCH_FSUB_S: u32 = 0x8000053;
1347pub const MASK_FSUB_S: u32 = 0xfe00007f;
1348pub const MATCH_FSW: u32 = 0x2027;
1349pub const MASK_FSW: u32 = 0x707f;
1350pub const MATCH_HFENCE_GVMA: u32 = 0x62000073;
1351pub const MASK_HFENCE_GVMA: u32 = 0xfe007fff;
1352pub const MATCH_HFENCE_VVMA: u32 = 0x22000073;
1353pub const MASK_HFENCE_VVMA: u32 = 0xfe007fff;
1354pub const MATCH_HINVAL_GVMA: u32 = 0x66000073;
1355pub const MASK_HINVAL_GVMA: u32 = 0xfe007fff;
1356pub const MATCH_HINVAL_VVMA: u32 = 0x26000073;
1357pub const MASK_HINVAL_VVMA: u32 = 0xfe007fff;
1358pub const MATCH_HLV_B: u32 = 0x60004073;
1359pub const MASK_HLV_B: u32 = 0xfff0707f;
1360pub const MATCH_HLV_BU: u32 = 0x60104073;
1361pub const MASK_HLV_BU: u32 = 0xfff0707f;
1362pub const MATCH_HLV_D: u32 = 0x6c004073;
1363pub const MASK_HLV_D: u32 = 0xfff0707f;
1364pub const MATCH_HLV_H: u32 = 0x64004073;
1365pub const MASK_HLV_H: u32 = 0xfff0707f;
1366pub const MATCH_HLV_HU: u32 = 0x64104073;
1367pub const MASK_HLV_HU: u32 = 0xfff0707f;
1368pub const MATCH_HLV_W: u32 = 0x68004073;
1369pub const MASK_HLV_W: u32 = 0xfff0707f;
1370pub const MATCH_HLV_WU: u32 = 0x68104073;
1371pub const MASK_HLV_WU: u32 = 0xfff0707f;
1372pub const MATCH_HLVX_HU: u32 = 0x64304073;
1373pub const MASK_HLVX_HU: u32 = 0xfff0707f;
1374pub const MATCH_HLVX_WU: u32 = 0x68304073;
1375pub const MASK_HLVX_WU: u32 = 0xfff0707f;
1376pub const MATCH_HSV_B: u32 = 0x62004073;
1377pub const MASK_HSV_B: u32 = 0xfe007fff;
1378pub const MATCH_HSV_D: u32 = 0x6e004073;
1379pub const MASK_HSV_D: u32 = 0xfe007fff;
1380pub const MATCH_HSV_H: u32 = 0x66004073;
1381pub const MASK_HSV_H: u32 = 0xfe007fff;
1382pub const MATCH_HSV_W: u32 = 0x6a004073;
1383pub const MASK_HSV_W: u32 = 0xfe007fff;
1384pub const MATCH_J: u32 = 0x6f;
1385pub const MASK_J: u32 = 0xfff;
1386pub const MATCH_JAL: u32 = 0x6f;
1387pub const MASK_JAL: u32 = 0x7f;
1388pub const MATCH_JAL_PSEUDO: u32 = 0xef;
1389pub const MASK_JAL_PSEUDO: u32 = 0xfff;
1390pub const MATCH_JALR: u32 = 0x67;
1391pub const MASK_JALR: u32 = 0x707f;
1392pub const MATCH_JALR_PSEUDO: u32 = 0xe7;
1393pub const MASK_JALR_PSEUDO: u32 = 0xfff07fff;
1394pub const MATCH_JR: u32 = 0x67;
1395pub const MASK_JR: u32 = 0xfff07fff;
1396pub const MATCH_LB: u32 = 0x3;
1397pub const MASK_LB: u32 = 0x707f;
1398pub const MATCH_LBU: u32 = 0x4003;
1399pub const MASK_LBU: u32 = 0x707f;
1400pub const MATCH_LD: u32 = 0x3003;
1401pub const MASK_LD: u32 = 0x707f;
1402pub const MATCH_LH: u32 = 0x1003;
1403pub const MASK_LH: u32 = 0x707f;
1404pub const MATCH_LHU: u32 = 0x5003;
1405pub const MASK_LHU: u32 = 0x707f;
1406pub const MATCH_LR_D: u32 = 0x1000302f;
1407pub const MASK_LR_D: u32 = 0xf9f0707f;
1408pub const MATCH_LR_W: u32 = 0x1000202f;
1409pub const MASK_LR_W: u32 = 0xf9f0707f;
1410pub const MATCH_LUI: u32 = 0x37;
1411pub const MASK_LUI: u32 = 0x7f;
1412pub const MATCH_LW: u32 = 0x2003;
1413pub const MASK_LW: u32 = 0x707f;
1414pub const MATCH_LWU: u32 = 0x6003;
1415pub const MASK_LWU: u32 = 0x707f;
1416pub const MATCH_MAX: u32 = 0xa006033;
1417pub const MASK_MAX: u32 = 0xfe00707f;
1418pub const MATCH_MAXU: u32 = 0xa007033;
1419pub const MASK_MAXU: u32 = 0xfe00707f;
1420pub const MATCH_MIN: u32 = 0xa004033;
1421pub const MASK_MIN: u32 = 0xfe00707f;
1422pub const MATCH_MINU: u32 = 0xa005033;
1423pub const MASK_MINU: u32 = 0xfe00707f;
1424pub const MATCH_MOP_R_0: u32 = 0x81c04073;
1425pub const MASK_MOP_R_0: u32 = 0xfff0707f;
1426pub const MATCH_MOP_R_1: u32 = 0x81d04073;
1427pub const MASK_MOP_R_1: u32 = 0xfff0707f;
1428pub const MATCH_MOP_R_10: u32 = 0x89e04073;
1429pub const MASK_MOP_R_10: u32 = 0xfff0707f;
1430pub const MATCH_MOP_R_11: u32 = 0x89f04073;
1431pub const MASK_MOP_R_11: u32 = 0xfff0707f;
1432pub const MATCH_MOP_R_12: u32 = 0x8dc04073;
1433pub const MASK_MOP_R_12: u32 = 0xfff0707f;
1434pub const MATCH_MOP_R_13: u32 = 0x8dd04073;
1435pub const MASK_MOP_R_13: u32 = 0xfff0707f;
1436pub const MATCH_MOP_R_14: u32 = 0x8de04073;
1437pub const MASK_MOP_R_14: u32 = 0xfff0707f;
1438pub const MATCH_MOP_R_15: u32 = 0x8df04073;
1439pub const MASK_MOP_R_15: u32 = 0xfff0707f;
1440pub const MATCH_MOP_R_16: u32 = 0xc1c04073;
1441pub const MASK_MOP_R_16: u32 = 0xfff0707f;
1442pub const MATCH_MOP_R_17: u32 = 0xc1d04073;
1443pub const MASK_MOP_R_17: u32 = 0xfff0707f;
1444pub const MATCH_MOP_R_18: u32 = 0xc1e04073;
1445pub const MASK_MOP_R_18: u32 = 0xfff0707f;
1446pub const MATCH_MOP_R_19: u32 = 0xc1f04073;
1447pub const MASK_MOP_R_19: u32 = 0xfff0707f;
1448pub const MATCH_MOP_R_2: u32 = 0x81e04073;
1449pub const MASK_MOP_R_2: u32 = 0xfff0707f;
1450pub const MATCH_MOP_R_20: u32 = 0xc5c04073;
1451pub const MASK_MOP_R_20: u32 = 0xfff0707f;
1452pub const MATCH_MOP_R_21: u32 = 0xc5d04073;
1453pub const MASK_MOP_R_21: u32 = 0xfff0707f;
1454pub const MATCH_MOP_R_22: u32 = 0xc5e04073;
1455pub const MASK_MOP_R_22: u32 = 0xfff0707f;
1456pub const MATCH_MOP_R_23: u32 = 0xc5f04073;
1457pub const MASK_MOP_R_23: u32 = 0xfff0707f;
1458pub const MATCH_MOP_R_24: u32 = 0xc9c04073;
1459pub const MASK_MOP_R_24: u32 = 0xfff0707f;
1460pub const MATCH_MOP_R_25: u32 = 0xc9d04073;
1461pub const MASK_MOP_R_25: u32 = 0xfff0707f;
1462pub const MATCH_MOP_R_26: u32 = 0xc9e04073;
1463pub const MASK_MOP_R_26: u32 = 0xfff0707f;
1464pub const MATCH_MOP_R_27: u32 = 0xc9f04073;
1465pub const MASK_MOP_R_27: u32 = 0xfff0707f;
1466pub const MATCH_MOP_R_28: u32 = 0xcdc04073;
1467pub const MASK_MOP_R_28: u32 = 0xfff0707f;
1468pub const MATCH_MOP_R_29: u32 = 0xcdd04073;
1469pub const MASK_MOP_R_29: u32 = 0xfff0707f;
1470pub const MATCH_MOP_R_3: u32 = 0x81f04073;
1471pub const MASK_MOP_R_3: u32 = 0xfff0707f;
1472pub const MATCH_MOP_R_30: u32 = 0xcde04073;
1473pub const MASK_MOP_R_30: u32 = 0xfff0707f;
1474pub const MATCH_MOP_R_31: u32 = 0xcdf04073;
1475pub const MASK_MOP_R_31: u32 = 0xfff0707f;
1476pub const MATCH_MOP_R_4: u32 = 0x85c04073;
1477pub const MASK_MOP_R_4: u32 = 0xfff0707f;
1478pub const MATCH_MOP_R_5: u32 = 0x85d04073;
1479pub const MASK_MOP_R_5: u32 = 0xfff0707f;
1480pub const MATCH_MOP_R_6: u32 = 0x85e04073;
1481pub const MASK_MOP_R_6: u32 = 0xfff0707f;
1482pub const MATCH_MOP_R_7: u32 = 0x85f04073;
1483pub const MASK_MOP_R_7: u32 = 0xfff0707f;
1484pub const MATCH_MOP_R_8: u32 = 0x89c04073;
1485pub const MASK_MOP_R_8: u32 = 0xfff0707f;
1486pub const MATCH_MOP_R_9: u32 = 0x89d04073;
1487pub const MASK_MOP_R_9: u32 = 0xfff0707f;
1488pub const MATCH_MOP_R_N: u32 = 0x81c04073;
1489pub const MASK_MOP_R_N: u32 = 0xb3c0707f;
1490pub const MATCH_MOP_RR_0: u32 = 0x82004073;
1491pub const MASK_MOP_RR_0: u32 = 0xfe00707f;
1492pub const MATCH_MOP_RR_1: u32 = 0x86004073;
1493pub const MASK_MOP_RR_1: u32 = 0xfe00707f;
1494pub const MATCH_MOP_RR_2: u32 = 0x8a004073;
1495pub const MASK_MOP_RR_2: u32 = 0xfe00707f;
1496pub const MATCH_MOP_RR_3: u32 = 0x8e004073;
1497pub const MASK_MOP_RR_3: u32 = 0xfe00707f;
1498pub const MATCH_MOP_RR_4: u32 = 0xc2004073;
1499pub const MASK_MOP_RR_4: u32 = 0xfe00707f;
1500pub const MATCH_MOP_RR_5: u32 = 0xc6004073;
1501pub const MASK_MOP_RR_5: u32 = 0xfe00707f;
1502pub const MATCH_MOP_RR_6: u32 = 0xca004073;
1503pub const MASK_MOP_RR_6: u32 = 0xfe00707f;
1504pub const MATCH_MOP_RR_7: u32 = 0xce004073;
1505pub const MASK_MOP_RR_7: u32 = 0xfe00707f;
1506pub const MATCH_MOP_RR_N: u32 = 0x82004073;
1507pub const MASK_MOP_RR_N: u32 = 0xb200707f;
1508pub const MATCH_MRET: u32 = 0x30200073;
1509pub const MASK_MRET: u32 = 0xffffffff;
1510pub const MATCH_MUL: u32 = 0x2000033;
1511pub const MASK_MUL: u32 = 0xfe00707f;
1512pub const MATCH_MULH: u32 = 0x2001033;
1513pub const MASK_MULH: u32 = 0xfe00707f;
1514pub const MATCH_MULHSU: u32 = 0x2002033;
1515pub const MASK_MULHSU: u32 = 0xfe00707f;
1516pub const MATCH_MULHU: u32 = 0x2003033;
1517pub const MASK_MULHU: u32 = 0xfe00707f;
1518pub const MATCH_MULW: u32 = 0x200003b;
1519pub const MASK_MULW: u32 = 0xfe00707f;
1520pub const MATCH_MV: u32 = 0x13;
1521pub const MASK_MV: u32 = 0xfff0707f;
1522pub const MATCH_NEG: u32 = 0x40000033;
1523pub const MASK_NEG: u32 = 0xfff0707f;
1524pub const MATCH_NOP: u32 = 0x13;
1525pub const MASK_NOP: u32 = 0xffffffff;
1526pub const MATCH_NTL_ALL: u32 = 0x500033;
1527pub const MASK_NTL_ALL: u32 = 0xffffffff;
1528pub const MATCH_NTL_P1: u32 = 0x200033;
1529pub const MASK_NTL_P1: u32 = 0xffffffff;
1530pub const MATCH_NTL_PALL: u32 = 0x300033;
1531pub const MASK_NTL_PALL: u32 = 0xffffffff;
1532pub const MATCH_NTL_S1: u32 = 0x400033;
1533pub const MASK_NTL_S1: u32 = 0xffffffff;
1534pub const MATCH_OR: u32 = 0x6033;
1535pub const MASK_OR: u32 = 0xfe00707f;
1536pub const MATCH_ORC_B: u32 = 0x28705013;
1537pub const MASK_ORC_B: u32 = 0xfff0707f;
1538pub const MATCH_ORI: u32 = 0x6013;
1539pub const MASK_ORI: u32 = 0x707f;
1540pub const MATCH_ORN: u32 = 0x40006033;
1541pub const MASK_ORN: u32 = 0xfe00707f;
1542pub const MATCH_PACK: u32 = 0x8004033;
1543pub const MASK_PACK: u32 = 0xfe00707f;
1544pub const MATCH_PACKH: u32 = 0x8007033;
1545pub const MASK_PACKH: u32 = 0xfe00707f;
1546pub const MATCH_PACKW: u32 = 0x800403b;
1547pub const MASK_PACKW: u32 = 0xfe00707f;
1548pub const MATCH_PAUSE: u32 = 0x100000f;
1549pub const MASK_PAUSE: u32 = 0xffffffff;
1550pub const MATCH_PREFETCH_I: u32 = 0x6013;
1551pub const MASK_PREFETCH_I: u32 = 0x1f07fff;
1552pub const MATCH_PREFETCH_R: u32 = 0x106013;
1553pub const MASK_PREFETCH_R: u32 = 0x1f07fff;
1554pub const MATCH_PREFETCH_W: u32 = 0x306013;
1555pub const MASK_PREFETCH_W: u32 = 0x1f07fff;
1556pub const MATCH_RDCYCLE: u32 = 0xc0002073;
1557pub const MASK_RDCYCLE: u32 = 0xfffff07f;
1558pub const MATCH_RDCYCLEH: u32 = 0xc8002073;
1559pub const MASK_RDCYCLEH: u32 = 0xfffff07f;
1560pub const MATCH_RDINSTRET: u32 = 0xc0202073;
1561pub const MASK_RDINSTRET: u32 = 0xfffff07f;
1562pub const MATCH_RDINSTRETH: u32 = 0xc8202073;
1563pub const MASK_RDINSTRETH: u32 = 0xfffff07f;
1564pub const MATCH_RDTIME: u32 = 0xc0102073;
1565pub const MASK_RDTIME: u32 = 0xfffff07f;
1566pub const MATCH_RDTIMEH: u32 = 0xc8102073;
1567pub const MASK_RDTIMEH: u32 = 0xfffff07f;
1568pub const MATCH_REM: u32 = 0x2006033;
1569pub const MASK_REM: u32 = 0xfe00707f;
1570pub const MATCH_REMU: u32 = 0x2007033;
1571pub const MASK_REMU: u32 = 0xfe00707f;
1572pub const MATCH_REMUW: u32 = 0x200703b;
1573pub const MASK_REMUW: u32 = 0xfe00707f;
1574pub const MATCH_REMW: u32 = 0x200603b;
1575pub const MASK_REMW: u32 = 0xfe00707f;
1576pub const MATCH_RET: u32 = 0x8067;
1577pub const MASK_RET: u32 = 0xffffffff;
1578pub const MATCH_REV8: u32 = 0x6b805013;
1579pub const MASK_REV8: u32 = 0xfff0707f;
1580pub const MATCH_REV8_RV32: u32 = 0x69805013;
1581pub const MASK_REV8_RV32: u32 = 0xfff0707f;
1582pub const MATCH_ROL: u32 = 0x60001033;
1583pub const MASK_ROL: u32 = 0xfe00707f;
1584pub const MATCH_ROLW: u32 = 0x6000103b;
1585pub const MASK_ROLW: u32 = 0xfe00707f;
1586pub const MATCH_ROR: u32 = 0x60005033;
1587pub const MASK_ROR: u32 = 0xfe00707f;
1588pub const MATCH_RORI: u32 = 0x60005013;
1589pub const MASK_RORI: u32 = 0xfc00707f;
1590pub const MATCH_RORI_RV32: u32 = 0x60005013;
1591pub const MASK_RORI_RV32: u32 = 0xfe00707f;
1592pub const MATCH_RORIW: u32 = 0x6000501b;
1593pub const MASK_RORIW: u32 = 0xfe00707f;
1594pub const MATCH_RORW: u32 = 0x6000503b;
1595pub const MASK_RORW: u32 = 0xfe00707f;
1596pub const MATCH_SB: u32 = 0x23;
1597pub const MASK_SB: u32 = 0x707f;
1598pub const MATCH_SBREAK: u32 = 0x100073;
1599pub const MASK_SBREAK: u32 = 0xffffffff;
1600pub const MATCH_SC_D: u32 = 0x1800302f;
1601pub const MASK_SC_D: u32 = 0xf800707f;
1602pub const MATCH_SC_W: u32 = 0x1800202f;
1603pub const MASK_SC_W: u32 = 0xf800707f;
1604pub const MATCH_SCALL: u32 = 0x73;
1605pub const MASK_SCALL: u32 = 0xffffffff;
1606pub const MATCH_SD: u32 = 0x3023;
1607pub const MASK_SD: u32 = 0x707f;
1608pub const MATCH_SEQZ: u32 = 0x103013;
1609pub const MASK_SEQZ: u32 = 0xfff0707f;
1610pub const MATCH_SEXT_B: u32 = 0x60401013;
1611pub const MASK_SEXT_B: u32 = 0xfff0707f;
1612pub const MATCH_SEXT_H: u32 = 0x60501013;
1613pub const MASK_SEXT_H: u32 = 0xfff0707f;
1614pub const MATCH_SEXT_W: u32 = 0x1b;
1615pub const MASK_SEXT_W: u32 = 0xfff0707f;
1616pub const MATCH_SFENCE_INVAL_IR: u32 = 0x18100073;
1617pub const MASK_SFENCE_INVAL_IR: u32 = 0xffffffff;
1618pub const MATCH_SFENCE_VMA: u32 = 0x12000073;
1619pub const MASK_SFENCE_VMA: u32 = 0xfe007fff;
1620pub const MATCH_SFENCE_W_INVAL: u32 = 0x18000073;
1621pub const MASK_SFENCE_W_INVAL: u32 = 0xffffffff;
1622pub const MATCH_SGTZ: u32 = 0x2033;
1623pub const MASK_SGTZ: u32 = 0xfe0ff07f;
1624pub const MATCH_SH: u32 = 0x1023;
1625pub const MASK_SH: u32 = 0x707f;
1626pub const MATCH_SH1ADD: u32 = 0x20002033;
1627pub const MASK_SH1ADD: u32 = 0xfe00707f;
1628pub const MATCH_SH1ADD_UW: u32 = 0x2000203b;
1629pub const MASK_SH1ADD_UW: u32 = 0xfe00707f;
1630pub const MATCH_SH2ADD: u32 = 0x20004033;
1631pub const MASK_SH2ADD: u32 = 0xfe00707f;
1632pub const MATCH_SH2ADD_UW: u32 = 0x2000403b;
1633pub const MASK_SH2ADD_UW: u32 = 0xfe00707f;
1634pub const MATCH_SH3ADD: u32 = 0x20006033;
1635pub const MASK_SH3ADD: u32 = 0xfe00707f;
1636pub const MATCH_SH3ADD_UW: u32 = 0x2000603b;
1637pub const MASK_SH3ADD_UW: u32 = 0xfe00707f;
1638pub const MATCH_SHA256SIG0: u32 = 0x10201013;
1639pub const MASK_SHA256SIG0: u32 = 0xfff0707f;
1640pub const MATCH_SHA256SIG1: u32 = 0x10301013;
1641pub const MASK_SHA256SIG1: u32 = 0xfff0707f;
1642pub const MATCH_SHA256SUM0: u32 = 0x10001013;
1643pub const MASK_SHA256SUM0: u32 = 0xfff0707f;
1644pub const MATCH_SHA256SUM1: u32 = 0x10101013;
1645pub const MASK_SHA256SUM1: u32 = 0xfff0707f;
1646pub const MATCH_SHA512SIG0: u32 = 0x10601013;
1647pub const MASK_SHA512SIG0: u32 = 0xfff0707f;
1648pub const MATCH_SHA512SIG0H: u32 = 0x5c000033;
1649pub const MASK_SHA512SIG0H: u32 = 0xfe00707f;
1650pub const MATCH_SHA512SIG0L: u32 = 0x54000033;
1651pub const MASK_SHA512SIG0L: u32 = 0xfe00707f;
1652pub const MATCH_SHA512SIG1: u32 = 0x10701013;
1653pub const MASK_SHA512SIG1: u32 = 0xfff0707f;
1654pub const MATCH_SHA512SIG1H: u32 = 0x5e000033;
1655pub const MASK_SHA512SIG1H: u32 = 0xfe00707f;
1656pub const MATCH_SHA512SIG1L: u32 = 0x56000033;
1657pub const MASK_SHA512SIG1L: u32 = 0xfe00707f;
1658pub const MATCH_SHA512SUM0: u32 = 0x10401013;
1659pub const MASK_SHA512SUM0: u32 = 0xfff0707f;
1660pub const MATCH_SHA512SUM0R: u32 = 0x50000033;
1661pub const MASK_SHA512SUM0R: u32 = 0xfe00707f;
1662pub const MATCH_SHA512SUM1: u32 = 0x10501013;
1663pub const MASK_SHA512SUM1: u32 = 0xfff0707f;
1664pub const MATCH_SHA512SUM1R: u32 = 0x52000033;
1665pub const MASK_SHA512SUM1R: u32 = 0xfe00707f;
1666pub const MATCH_SINVAL_VMA: u32 = 0x16000073;
1667pub const MASK_SINVAL_VMA: u32 = 0xfe007fff;
1668pub const MATCH_SLL: u32 = 0x1033;
1669pub const MASK_SLL: u32 = 0xfe00707f;
1670pub const MATCH_SLLI: u32 = 0x1013;
1671pub const MASK_SLLI: u32 = 0xfc00707f;
1672pub const MATCH_SLLI_RV32: u32 = 0x1013;
1673pub const MASK_SLLI_RV32: u32 = 0xfe00707f;
1674pub const MATCH_SLLI_UW: u32 = 0x800101b;
1675pub const MASK_SLLI_UW: u32 = 0xfc00707f;
1676pub const MATCH_SLLIW: u32 = 0x101b;
1677pub const MASK_SLLIW: u32 = 0xfe00707f;
1678pub const MATCH_SLLW: u32 = 0x103b;
1679pub const MASK_SLLW: u32 = 0xfe00707f;
1680pub const MATCH_SLT: u32 = 0x2033;
1681pub const MASK_SLT: u32 = 0xfe00707f;
1682pub const MATCH_SLTI: u32 = 0x2013;
1683pub const MASK_SLTI: u32 = 0x707f;
1684pub const MATCH_SLTIU: u32 = 0x3013;
1685pub const MASK_SLTIU: u32 = 0x707f;
1686pub const MATCH_SLTU: u32 = 0x3033;
1687pub const MASK_SLTU: u32 = 0xfe00707f;
1688pub const MATCH_SLTZ: u32 = 0x2033;
1689pub const MASK_SLTZ: u32 = 0xfff0707f;
1690pub const MATCH_SM3P0: u32 = 0x10801013;
1691pub const MASK_SM3P0: u32 = 0xfff0707f;
1692pub const MATCH_SM3P1: u32 = 0x10901013;
1693pub const MASK_SM3P1: u32 = 0xfff0707f;
1694pub const MATCH_SM4ED: u32 = 0x30000033;
1695pub const MASK_SM4ED: u32 = 0x3e00707f;
1696pub const MATCH_SM4KS: u32 = 0x34000033;
1697pub const MASK_SM4KS: u32 = 0x3e00707f;
1698pub const MATCH_SNEZ: u32 = 0x3033;
1699pub const MASK_SNEZ: u32 = 0xfe0ff07f;
1700pub const MATCH_SRA: u32 = 0x40005033;
1701pub const MASK_SRA: u32 = 0xfe00707f;
1702pub const MATCH_SRAI: u32 = 0x40005013;
1703pub const MASK_SRAI: u32 = 0xfc00707f;
1704pub const MATCH_SRAI_RV32: u32 = 0x40005013;
1705pub const MASK_SRAI_RV32: u32 = 0xfe00707f;
1706pub const MATCH_SRAIW: u32 = 0x4000501b;
1707pub const MASK_SRAIW: u32 = 0xfe00707f;
1708pub const MATCH_SRAW: u32 = 0x4000503b;
1709pub const MASK_SRAW: u32 = 0xfe00707f;
1710pub const MATCH_SRET: u32 = 0x10200073;
1711pub const MASK_SRET: u32 = 0xffffffff;
1712pub const MATCH_SRL: u32 = 0x5033;
1713pub const MASK_SRL: u32 = 0xfe00707f;
1714pub const MATCH_SRLI: u32 = 0x5013;
1715pub const MASK_SRLI: u32 = 0xfc00707f;
1716pub const MATCH_SRLI_RV32: u32 = 0x5013;
1717pub const MASK_SRLI_RV32: u32 = 0xfe00707f;
1718pub const MATCH_SRLIW: u32 = 0x501b;
1719pub const MASK_SRLIW: u32 = 0xfe00707f;
1720pub const MATCH_SRLW: u32 = 0x503b;
1721pub const MASK_SRLW: u32 = 0xfe00707f;
1722pub const MATCH_SUB: u32 = 0x40000033;
1723pub const MASK_SUB: u32 = 0xfe00707f;
1724pub const MATCH_SUBW: u32 = 0x4000003b;
1725pub const MASK_SUBW: u32 = 0xfe00707f;
1726pub const MATCH_SW: u32 = 0x2023;
1727pub const MASK_SW: u32 = 0x707f;
1728pub const MATCH_UNZIP: u32 = 0x8f05013;
1729pub const MASK_UNZIP: u32 = 0xfff0707f;
1730pub const MATCH_VAADD_VV: u32 = 0x24002057;
1731pub const MASK_VAADD_VV: u32 = 0xfc00707f;
1732pub const MATCH_VAADD_VX: u32 = 0x24006057;
1733pub const MASK_VAADD_VX: u32 = 0xfc00707f;
1734pub const MATCH_VAADDU_VV: u32 = 0x20002057;
1735pub const MASK_VAADDU_VV: u32 = 0xfc00707f;
1736pub const MATCH_VAADDU_VX: u32 = 0x20006057;
1737pub const MASK_VAADDU_VX: u32 = 0xfc00707f;
1738pub const MATCH_VADC_VIM: u32 = 0x40003057;
1739pub const MASK_VADC_VIM: u32 = 0xfe00707f;
1740pub const MATCH_VADC_VVM: u32 = 0x40000057;
1741pub const MASK_VADC_VVM: u32 = 0xfe00707f;
1742pub const MATCH_VADC_VXM: u32 = 0x40004057;
1743pub const MASK_VADC_VXM: u32 = 0xfe00707f;
1744pub const MATCH_VADD_VI: u32 = 0x3057;
1745pub const MASK_VADD_VI: u32 = 0xfc00707f;
1746pub const MATCH_VADD_VV: u32 = 0x57;
1747pub const MASK_VADD_VV: u32 = 0xfc00707f;
1748pub const MATCH_VADD_VX: u32 = 0x4057;
1749pub const MASK_VADD_VX: u32 = 0xfc00707f;
1750pub const MATCH_VAESDF_VS: u32 = 0xa600a077;
1751pub const MASK_VAESDF_VS: u32 = 0xfe0ff07f;
1752pub const MATCH_VAESDF_VV: u32 = 0xa200a077;
1753pub const MASK_VAESDF_VV: u32 = 0xfe0ff07f;
1754pub const MATCH_VAESDM_VS: u32 = 0xa6002077;
1755pub const MASK_VAESDM_VS: u32 = 0xfe0ff07f;
1756pub const MATCH_VAESDM_VV: u32 = 0xa2002077;
1757pub const MASK_VAESDM_VV: u32 = 0xfe0ff07f;
1758pub const MATCH_VAESEF_VS: u32 = 0xa601a077;
1759pub const MASK_VAESEF_VS: u32 = 0xfe0ff07f;
1760pub const MATCH_VAESEF_VV: u32 = 0xa201a077;
1761pub const MASK_VAESEF_VV: u32 = 0xfe0ff07f;
1762pub const MATCH_VAESEM_VS: u32 = 0xa6012077;
1763pub const MASK_VAESEM_VS: u32 = 0xfe0ff07f;
1764pub const MATCH_VAESEM_VV: u32 = 0xa2012077;
1765pub const MASK_VAESEM_VV: u32 = 0xfe0ff07f;
1766pub const MATCH_VAESKF1_VI: u32 = 0x8a002077;
1767pub const MASK_VAESKF1_VI: u32 = 0xfe00707f;
1768pub const MATCH_VAESKF2_VI: u32 = 0xaa002077;
1769pub const MASK_VAESKF2_VI: u32 = 0xfe00707f;
1770pub const MATCH_VAESZ_VS: u32 = 0xa603a077;
1771pub const MASK_VAESZ_VS: u32 = 0xfe0ff07f;
1772pub const MATCH_VAND_VI: u32 = 0x24003057;
1773pub const MASK_VAND_VI: u32 = 0xfc00707f;
1774pub const MATCH_VAND_VV: u32 = 0x24000057;
1775pub const MASK_VAND_VV: u32 = 0xfc00707f;
1776pub const MATCH_VAND_VX: u32 = 0x24004057;
1777pub const MASK_VAND_VX: u32 = 0xfc00707f;
1778pub const MATCH_VANDN_VV: u32 = 0x4000057;
1779pub const MASK_VANDN_VV: u32 = 0xfc00707f;
1780pub const MATCH_VANDN_VX: u32 = 0x4004057;
1781pub const MASK_VANDN_VX: u32 = 0xfc00707f;
1782pub const MATCH_VASUB_VV: u32 = 0x2c002057;
1783pub const MASK_VASUB_VV: u32 = 0xfc00707f;
1784pub const MATCH_VASUB_VX: u32 = 0x2c006057;
1785pub const MASK_VASUB_VX: u32 = 0xfc00707f;
1786pub const MATCH_VASUBU_VV: u32 = 0x28002057;
1787pub const MASK_VASUBU_VV: u32 = 0xfc00707f;
1788pub const MATCH_VASUBU_VX: u32 = 0x28006057;
1789pub const MASK_VASUBU_VX: u32 = 0xfc00707f;
1790pub const MATCH_VBREV8_V: u32 = 0x48042057;
1791pub const MASK_VBREV8_V: u32 = 0xfc0ff07f;
1792pub const MATCH_VBREV_V: u32 = 0x48052057;
1793pub const MASK_VBREV_V: u32 = 0xfc0ff07f;
1794pub const MATCH_VCLMUL_VV: u32 = 0x30002057;
1795pub const MASK_VCLMUL_VV: u32 = 0xfc00707f;
1796pub const MATCH_VCLMUL_VX: u32 = 0x30006057;
1797pub const MASK_VCLMUL_VX: u32 = 0xfc00707f;
1798pub const MATCH_VCLMULH_VV: u32 = 0x34002057;
1799pub const MASK_VCLMULH_VV: u32 = 0xfc00707f;
1800pub const MATCH_VCLMULH_VX: u32 = 0x34006057;
1801pub const MASK_VCLMULH_VX: u32 = 0xfc00707f;
1802pub const MATCH_VCLZ_V: u32 = 0x48062057;
1803pub const MASK_VCLZ_V: u32 = 0xfc0ff07f;
1804pub const MATCH_VCOMPRESS_VM: u32 = 0x5e002057;
1805pub const MASK_VCOMPRESS_VM: u32 = 0xfe00707f;
1806pub const MATCH_VCPOP_M: u32 = 0x40082057;
1807pub const MASK_VCPOP_M: u32 = 0xfc0ff07f;
1808pub const MATCH_VCPOP_V: u32 = 0x48072057;
1809pub const MASK_VCPOP_V: u32 = 0xfc0ff07f;
1810pub const MATCH_VCTZ_V: u32 = 0x4806a057;
1811pub const MASK_VCTZ_V: u32 = 0xfc0ff07f;
1812pub const MATCH_VDIV_VV: u32 = 0x84002057;
1813pub const MASK_VDIV_VV: u32 = 0xfc00707f;
1814pub const MATCH_VDIV_VX: u32 = 0x84006057;
1815pub const MASK_VDIV_VX: u32 = 0xfc00707f;
1816pub const MATCH_VDIVU_VV: u32 = 0x80002057;
1817pub const MASK_VDIVU_VV: u32 = 0xfc00707f;
1818pub const MATCH_VDIVU_VX: u32 = 0x80006057;
1819pub const MASK_VDIVU_VX: u32 = 0xfc00707f;
1820pub const MATCH_VFADD_VF: u32 = 0x5057;
1821pub const MASK_VFADD_VF: u32 = 0xfc00707f;
1822pub const MATCH_VFADD_VV: u32 = 0x1057;
1823pub const MASK_VFADD_VV: u32 = 0xfc00707f;
1824pub const MATCH_VFCLASS_V: u32 = 0x4c081057;
1825pub const MASK_VFCLASS_V: u32 = 0xfc0ff07f;
1826pub const MATCH_VFCVT_F_X_V: u32 = 0x48019057;
1827pub const MASK_VFCVT_F_X_V: u32 = 0xfc0ff07f;
1828pub const MATCH_VFCVT_F_XU_V: u32 = 0x48011057;
1829pub const MASK_VFCVT_F_XU_V: u32 = 0xfc0ff07f;
1830pub const MATCH_VFCVT_RTZ_X_F_V: u32 = 0x48039057;
1831pub const MASK_VFCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1832pub const MATCH_VFCVT_RTZ_XU_F_V: u32 = 0x48031057;
1833pub const MASK_VFCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1834pub const MATCH_VFCVT_X_F_V: u32 = 0x48009057;
1835pub const MASK_VFCVT_X_F_V: u32 = 0xfc0ff07f;
1836pub const MATCH_VFCVT_XU_F_V: u32 = 0x48001057;
1837pub const MASK_VFCVT_XU_F_V: u32 = 0xfc0ff07f;
1838pub const MATCH_VFDIV_VF: u32 = 0x80005057;
1839pub const MASK_VFDIV_VF: u32 = 0xfc00707f;
1840pub const MATCH_VFDIV_VV: u32 = 0x80001057;
1841pub const MASK_VFDIV_VV: u32 = 0xfc00707f;
1842pub const MATCH_VFIRST_M: u32 = 0x4008a057;
1843pub const MASK_VFIRST_M: u32 = 0xfc0ff07f;
1844pub const MATCH_VFMACC_VF: u32 = 0xb0005057;
1845pub const MASK_VFMACC_VF: u32 = 0xfc00707f;
1846pub const MATCH_VFMACC_VV: u32 = 0xb0001057;
1847pub const MASK_VFMACC_VV: u32 = 0xfc00707f;
1848pub const MATCH_VFMADD_VF: u32 = 0xa0005057;
1849pub const MASK_VFMADD_VF: u32 = 0xfc00707f;
1850pub const MATCH_VFMADD_VV: u32 = 0xa0001057;
1851pub const MASK_VFMADD_VV: u32 = 0xfc00707f;
1852pub const MATCH_VFMAX_VF: u32 = 0x18005057;
1853pub const MASK_VFMAX_VF: u32 = 0xfc00707f;
1854pub const MATCH_VFMAX_VV: u32 = 0x18001057;
1855pub const MASK_VFMAX_VV: u32 = 0xfc00707f;
1856pub const MATCH_VFMERGE_VFM: u32 = 0x5c005057;
1857pub const MASK_VFMERGE_VFM: u32 = 0xfe00707f;
1858pub const MATCH_VFMIN_VF: u32 = 0x10005057;
1859pub const MASK_VFMIN_VF: u32 = 0xfc00707f;
1860pub const MATCH_VFMIN_VV: u32 = 0x10001057;
1861pub const MASK_VFMIN_VV: u32 = 0xfc00707f;
1862pub const MATCH_VFMSAC_VF: u32 = 0xb8005057;
1863pub const MASK_VFMSAC_VF: u32 = 0xfc00707f;
1864pub const MATCH_VFMSAC_VV: u32 = 0xb8001057;
1865pub const MASK_VFMSAC_VV: u32 = 0xfc00707f;
1866pub const MATCH_VFMSUB_VF: u32 = 0xa8005057;
1867pub const MASK_VFMSUB_VF: u32 = 0xfc00707f;
1868pub const MATCH_VFMSUB_VV: u32 = 0xa8001057;
1869pub const MASK_VFMSUB_VV: u32 = 0xfc00707f;
1870pub const MATCH_VFMUL_VF: u32 = 0x90005057;
1871pub const MASK_VFMUL_VF: u32 = 0xfc00707f;
1872pub const MATCH_VFMUL_VV: u32 = 0x90001057;
1873pub const MASK_VFMUL_VV: u32 = 0xfc00707f;
1874pub const MATCH_VFMV_F_S: u32 = 0x42001057;
1875pub const MASK_VFMV_F_S: u32 = 0xfe0ff07f;
1876pub const MATCH_VFMV_S_F: u32 = 0x42005057;
1877pub const MASK_VFMV_S_F: u32 = 0xfff0707f;
1878pub const MATCH_VFMV_V_F: u32 = 0x5e005057;
1879pub const MASK_VFMV_V_F: u32 = 0xfff0707f;
1880pub const MATCH_VFNCVT_F_F_W: u32 = 0x480a1057;
1881pub const MASK_VFNCVT_F_F_W: u32 = 0xfc0ff07f;
1882pub const MATCH_VFNCVT_F_X_W: u32 = 0x48099057;
1883pub const MASK_VFNCVT_F_X_W: u32 = 0xfc0ff07f;
1884pub const MATCH_VFNCVT_F_XU_W: u32 = 0x48091057;
1885pub const MASK_VFNCVT_F_XU_W: u32 = 0xfc0ff07f;
1886pub const MATCH_VFNCVT_ROD_F_F_W: u32 = 0x480a9057;
1887pub const MASK_VFNCVT_ROD_F_F_W: u32 = 0xfc0ff07f;
1888pub const MATCH_VFNCVT_RTZ_X_F_W: u32 = 0x480b9057;
1889pub const MASK_VFNCVT_RTZ_X_F_W: u32 = 0xfc0ff07f;
1890pub const MATCH_VFNCVT_RTZ_XU_F_W: u32 = 0x480b1057;
1891pub const MASK_VFNCVT_RTZ_XU_F_W: u32 = 0xfc0ff07f;
1892pub const MATCH_VFNCVT_X_F_W: u32 = 0x48089057;
1893pub const MASK_VFNCVT_X_F_W: u32 = 0xfc0ff07f;
1894pub const MATCH_VFNCVT_XU_F_W: u32 = 0x48081057;
1895pub const MASK_VFNCVT_XU_F_W: u32 = 0xfc0ff07f;
1896pub const MATCH_VFNMACC_VF: u32 = 0xb4005057;
1897pub const MASK_VFNMACC_VF: u32 = 0xfc00707f;
1898pub const MATCH_VFNMACC_VV: u32 = 0xb4001057;
1899pub const MASK_VFNMACC_VV: u32 = 0xfc00707f;
1900pub const MATCH_VFNMADD_VF: u32 = 0xa4005057;
1901pub const MASK_VFNMADD_VF: u32 = 0xfc00707f;
1902pub const MATCH_VFNMADD_VV: u32 = 0xa4001057;
1903pub const MASK_VFNMADD_VV: u32 = 0xfc00707f;
1904pub const MATCH_VFNMSAC_VF: u32 = 0xbc005057;
1905pub const MASK_VFNMSAC_VF: u32 = 0xfc00707f;
1906pub const MATCH_VFNMSAC_VV: u32 = 0xbc001057;
1907pub const MASK_VFNMSAC_VV: u32 = 0xfc00707f;
1908pub const MATCH_VFNMSUB_VF: u32 = 0xac005057;
1909pub const MASK_VFNMSUB_VF: u32 = 0xfc00707f;
1910pub const MATCH_VFNMSUB_VV: u32 = 0xac001057;
1911pub const MASK_VFNMSUB_VV: u32 = 0xfc00707f;
1912pub const MATCH_VFRDIV_VF: u32 = 0x84005057;
1913pub const MASK_VFRDIV_VF: u32 = 0xfc00707f;
1914pub const MATCH_VFREC7_V: u32 = 0x4c029057;
1915pub const MASK_VFREC7_V: u32 = 0xfc0ff07f;
1916pub const MATCH_VFREDMAX_VS: u32 = 0x1c001057;
1917pub const MASK_VFREDMAX_VS: u32 = 0xfc00707f;
1918pub const MATCH_VFREDMIN_VS: u32 = 0x14001057;
1919pub const MASK_VFREDMIN_VS: u32 = 0xfc00707f;
1920pub const MATCH_VFREDOSUM_VS: u32 = 0xc001057;
1921pub const MASK_VFREDOSUM_VS: u32 = 0xfc00707f;
1922pub const MATCH_VFREDSUM_VS: u32 = 0x4001057;
1923pub const MASK_VFREDSUM_VS: u32 = 0xfc00707f;
1924pub const MATCH_VFREDUSUM_VS: u32 = 0x4001057;
1925pub const MASK_VFREDUSUM_VS: u32 = 0xfc00707f;
1926pub const MATCH_VFRSQRT7_V: u32 = 0x4c021057;
1927pub const MASK_VFRSQRT7_V: u32 = 0xfc0ff07f;
1928pub const MATCH_VFRSUB_VF: u32 = 0x9c005057;
1929pub const MASK_VFRSUB_VF: u32 = 0xfc00707f;
1930pub const MATCH_VFSGNJ_VF: u32 = 0x20005057;
1931pub const MASK_VFSGNJ_VF: u32 = 0xfc00707f;
1932pub const MATCH_VFSGNJ_VV: u32 = 0x20001057;
1933pub const MASK_VFSGNJ_VV: u32 = 0xfc00707f;
1934pub const MATCH_VFSGNJN_VF: u32 = 0x24005057;
1935pub const MASK_VFSGNJN_VF: u32 = 0xfc00707f;
1936pub const MATCH_VFSGNJN_VV: u32 = 0x24001057;
1937pub const MASK_VFSGNJN_VV: u32 = 0xfc00707f;
1938pub const MATCH_VFSGNJX_VF: u32 = 0x28005057;
1939pub const MASK_VFSGNJX_VF: u32 = 0xfc00707f;
1940pub const MATCH_VFSGNJX_VV: u32 = 0x28001057;
1941pub const MASK_VFSGNJX_VV: u32 = 0xfc00707f;
1942pub const MATCH_VFSLIDE1DOWN_VF: u32 = 0x3c005057;
1943pub const MASK_VFSLIDE1DOWN_VF: u32 = 0xfc00707f;
1944pub const MATCH_VFSLIDE1UP_VF: u32 = 0x38005057;
1945pub const MASK_VFSLIDE1UP_VF: u32 = 0xfc00707f;
1946pub const MATCH_VFSQRT_V: u32 = 0x4c001057;
1947pub const MASK_VFSQRT_V: u32 = 0xfc0ff07f;
1948pub const MATCH_VFSUB_VF: u32 = 0x8005057;
1949pub const MASK_VFSUB_VF: u32 = 0xfc00707f;
1950pub const MATCH_VFSUB_VV: u32 = 0x8001057;
1951pub const MASK_VFSUB_VV: u32 = 0xfc00707f;
1952pub const MATCH_VFWADD_VF: u32 = 0xc0005057;
1953pub const MASK_VFWADD_VF: u32 = 0xfc00707f;
1954pub const MATCH_VFWADD_VV: u32 = 0xc0001057;
1955pub const MASK_VFWADD_VV: u32 = 0xfc00707f;
1956pub const MATCH_VFWADD_WF: u32 = 0xd0005057;
1957pub const MASK_VFWADD_WF: u32 = 0xfc00707f;
1958pub const MATCH_VFWADD_WV: u32 = 0xd0001057;
1959pub const MASK_VFWADD_WV: u32 = 0xfc00707f;
1960pub const MATCH_VFWCVT_F_F_V: u32 = 0x48061057;
1961pub const MASK_VFWCVT_F_F_V: u32 = 0xfc0ff07f;
1962pub const MATCH_VFWCVT_F_X_V: u32 = 0x48059057;
1963pub const MASK_VFWCVT_F_X_V: u32 = 0xfc0ff07f;
1964pub const MATCH_VFWCVT_F_XU_V: u32 = 0x48051057;
1965pub const MASK_VFWCVT_F_XU_V: u32 = 0xfc0ff07f;
1966pub const MATCH_VFWCVT_RTZ_X_F_V: u32 = 0x48079057;
1967pub const MASK_VFWCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1968pub const MATCH_VFWCVT_RTZ_XU_F_V: u32 = 0x48071057;
1969pub const MASK_VFWCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1970pub const MATCH_VFWCVT_X_F_V: u32 = 0x48049057;
1971pub const MASK_VFWCVT_X_F_V: u32 = 0xfc0ff07f;
1972pub const MATCH_VFWCVT_XU_F_V: u32 = 0x48041057;
1973pub const MASK_VFWCVT_XU_F_V: u32 = 0xfc0ff07f;
1974pub const MATCH_VFWMACC_VF: u32 = 0xf0005057;
1975pub const MASK_VFWMACC_VF: u32 = 0xfc00707f;
1976pub const MATCH_VFWMACC_VV: u32 = 0xf0001057;
1977pub const MASK_VFWMACC_VV: u32 = 0xfc00707f;
1978pub const MATCH_VFWMSAC_VF: u32 = 0xf8005057;
1979pub const MASK_VFWMSAC_VF: u32 = 0xfc00707f;
1980pub const MATCH_VFWMSAC_VV: u32 = 0xf8001057;
1981pub const MASK_VFWMSAC_VV: u32 = 0xfc00707f;
1982pub const MATCH_VFWMUL_VF: u32 = 0xe0005057;
1983pub const MASK_VFWMUL_VF: u32 = 0xfc00707f;
1984pub const MATCH_VFWMUL_VV: u32 = 0xe0001057;
1985pub const MASK_VFWMUL_VV: u32 = 0xfc00707f;
1986pub const MATCH_VFWNMACC_VF: u32 = 0xf4005057;
1987pub const MASK_VFWNMACC_VF: u32 = 0xfc00707f;
1988pub const MATCH_VFWNMACC_VV: u32 = 0xf4001057;
1989pub const MASK_VFWNMACC_VV: u32 = 0xfc00707f;
1990pub const MATCH_VFWNMSAC_VF: u32 = 0xfc005057;
1991pub const MASK_VFWNMSAC_VF: u32 = 0xfc00707f;
1992pub const MATCH_VFWNMSAC_VV: u32 = 0xfc001057;
1993pub const MASK_VFWNMSAC_VV: u32 = 0xfc00707f;
1994pub const MATCH_VFWREDOSUM_VS: u32 = 0xcc001057;
1995pub const MASK_VFWREDOSUM_VS: u32 = 0xfc00707f;
1996pub const MATCH_VFWREDSUM_VS: u32 = 0xc4001057;
1997pub const MASK_VFWREDSUM_VS: u32 = 0xfc00707f;
1998pub const MATCH_VFWREDUSUM_VS: u32 = 0xc4001057;
1999pub const MASK_VFWREDUSUM_VS: u32 = 0xfc00707f;
2000pub const MATCH_VFWSUB_VF: u32 = 0xc8005057;
2001pub const MASK_VFWSUB_VF: u32 = 0xfc00707f;
2002pub const MATCH_VFWSUB_VV: u32 = 0xc8001057;
2003pub const MASK_VFWSUB_VV: u32 = 0xfc00707f;
2004pub const MATCH_VFWSUB_WF: u32 = 0xd8005057;
2005pub const MASK_VFWSUB_WF: u32 = 0xfc00707f;
2006pub const MATCH_VFWSUB_WV: u32 = 0xd8001057;
2007pub const MASK_VFWSUB_WV: u32 = 0xfc00707f;
2008pub const MATCH_VGHSH_VV: u32 = 0xb2002077;
2009pub const MASK_VGHSH_VV: u32 = 0xfe00707f;
2010pub const MATCH_VGMUL_VV: u32 = 0xa208a077;
2011pub const MASK_VGMUL_VV: u32 = 0xfe0ff07f;
2012pub const MATCH_VID_V: u32 = 0x5008a057;
2013pub const MASK_VID_V: u32 = 0xfdfff07f;
2014pub const MATCH_VIOTA_M: u32 = 0x50082057;
2015pub const MASK_VIOTA_M: u32 = 0xfc0ff07f;
2016pub const MATCH_VL1R_V: u32 = 0x2800007;
2017pub const MASK_VL1R_V: u32 = 0xfff0707f;
2018pub const MATCH_VL1RE16_V: u32 = 0x2805007;
2019pub const MASK_VL1RE16_V: u32 = 0xfff0707f;
2020pub const MATCH_VL1RE32_V: u32 = 0x2806007;
2021pub const MASK_VL1RE32_V: u32 = 0xfff0707f;
2022pub const MATCH_VL1RE64_V: u32 = 0x2807007;
2023pub const MASK_VL1RE64_V: u32 = 0xfff0707f;
2024pub const MATCH_VL1RE8_V: u32 = 0x2800007;
2025pub const MASK_VL1RE8_V: u32 = 0xfff0707f;
2026pub const MATCH_VL2R_V: u32 = 0x22800007;
2027pub const MASK_VL2R_V: u32 = 0xfff0707f;
2028pub const MATCH_VL2RE16_V: u32 = 0x22805007;
2029pub const MASK_VL2RE16_V: u32 = 0xfff0707f;
2030pub const MATCH_VL2RE32_V: u32 = 0x22806007;
2031pub const MASK_VL2RE32_V: u32 = 0xfff0707f;
2032pub const MATCH_VL2RE64_V: u32 = 0x22807007;
2033pub const MASK_VL2RE64_V: u32 = 0xfff0707f;
2034pub const MATCH_VL2RE8_V: u32 = 0x22800007;
2035pub const MASK_VL2RE8_V: u32 = 0xfff0707f;
2036pub const MATCH_VL4R_V: u32 = 0x62800007;
2037pub const MASK_VL4R_V: u32 = 0xfff0707f;
2038pub const MATCH_VL4RE16_V: u32 = 0x62805007;
2039pub const MASK_VL4RE16_V: u32 = 0xfff0707f;
2040pub const MATCH_VL4RE32_V: u32 = 0x62806007;
2041pub const MASK_VL4RE32_V: u32 = 0xfff0707f;
2042pub const MATCH_VL4RE64_V: u32 = 0x62807007;
2043pub const MASK_VL4RE64_V: u32 = 0xfff0707f;
2044pub const MATCH_VL4RE8_V: u32 = 0x62800007;
2045pub const MASK_VL4RE8_V: u32 = 0xfff0707f;
2046pub const MATCH_VL8R_V: u32 = 0xe2800007;
2047pub const MASK_VL8R_V: u32 = 0xfff0707f;
2048pub const MATCH_VL8RE16_V: u32 = 0xe2805007;
2049pub const MASK_VL8RE16_V: u32 = 0xfff0707f;
2050pub const MATCH_VL8RE32_V: u32 = 0xe2806007;
2051pub const MASK_VL8RE32_V: u32 = 0xfff0707f;
2052pub const MATCH_VL8RE64_V: u32 = 0xe2807007;
2053pub const MASK_VL8RE64_V: u32 = 0xfff0707f;
2054pub const MATCH_VL8RE8_V: u32 = 0xe2800007;
2055pub const MASK_VL8RE8_V: u32 = 0xfff0707f;
2056pub const MATCH_VLE16_V: u32 = 0x5007;
2057pub const MASK_VLE16_V: u32 = 0x1df0707f;
2058pub const MATCH_VLE16FF_V: u32 = 0x1005007;
2059pub const MASK_VLE16FF_V: u32 = 0x1df0707f;
2060pub const MATCH_VLE1_V: u32 = 0x2b00007;
2061pub const MASK_VLE1_V: u32 = 0xfff0707f;
2062pub const MATCH_VLE32_V: u32 = 0x6007;
2063pub const MASK_VLE32_V: u32 = 0x1df0707f;
2064pub const MATCH_VLE32FF_V: u32 = 0x1006007;
2065pub const MASK_VLE32FF_V: u32 = 0x1df0707f;
2066pub const MATCH_VLE64_V: u32 = 0x7007;
2067pub const MASK_VLE64_V: u32 = 0x1df0707f;
2068pub const MATCH_VLE64FF_V: u32 = 0x1007007;
2069pub const MASK_VLE64FF_V: u32 = 0x1df0707f;
2070pub const MATCH_VLE8_V: u32 = 0x7;
2071pub const MASK_VLE8_V: u32 = 0x1df0707f;
2072pub const MATCH_VLE8FF_V: u32 = 0x1000007;
2073pub const MASK_VLE8FF_V: u32 = 0x1df0707f;
2074pub const MATCH_VLM_V: u32 = 0x2b00007;
2075pub const MASK_VLM_V: u32 = 0xfff0707f;
2076pub const MATCH_VLOXEI16_V: u32 = 0xc005007;
2077pub const MASK_VLOXEI16_V: u32 = 0x1c00707f;
2078pub const MATCH_VLOXEI32_V: u32 = 0xc006007;
2079pub const MASK_VLOXEI32_V: u32 = 0x1c00707f;
2080pub const MATCH_VLOXEI64_V: u32 = 0xc007007;
2081pub const MASK_VLOXEI64_V: u32 = 0x1c00707f;
2082pub const MATCH_VLOXEI8_V: u32 = 0xc000007;
2083pub const MASK_VLOXEI8_V: u32 = 0x1c00707f;
2084pub const MATCH_VLSE16_V: u32 = 0x8005007;
2085pub const MASK_VLSE16_V: u32 = 0x1c00707f;
2086pub const MATCH_VLSE32_V: u32 = 0x8006007;
2087pub const MASK_VLSE32_V: u32 = 0x1c00707f;
2088pub const MATCH_VLSE64_V: u32 = 0x8007007;
2089pub const MASK_VLSE64_V: u32 = 0x1c00707f;
2090pub const MATCH_VLSE8_V: u32 = 0x8000007;
2091pub const MASK_VLSE8_V: u32 = 0x1c00707f;
2092pub const MATCH_VLUXEI16_V: u32 = 0x4005007;
2093pub const MASK_VLUXEI16_V: u32 = 0x1c00707f;
2094pub const MATCH_VLUXEI32_V: u32 = 0x4006007;
2095pub const MASK_VLUXEI32_V: u32 = 0x1c00707f;
2096pub const MATCH_VLUXEI64_V: u32 = 0x4007007;
2097pub const MASK_VLUXEI64_V: u32 = 0x1c00707f;
2098pub const MATCH_VLUXEI8_V: u32 = 0x4000007;
2099pub const MASK_VLUXEI8_V: u32 = 0x1c00707f;
2100pub const MATCH_VMACC_VV: u32 = 0xb4002057;
2101pub const MASK_VMACC_VV: u32 = 0xfc00707f;
2102pub const MATCH_VMACC_VX: u32 = 0xb4006057;
2103pub const MASK_VMACC_VX: u32 = 0xfc00707f;
2104pub const MATCH_VMADC_VI: u32 = 0x46003057;
2105pub const MASK_VMADC_VI: u32 = 0xfe00707f;
2106pub const MATCH_VMADC_VIM: u32 = 0x44003057;
2107pub const MASK_VMADC_VIM: u32 = 0xfe00707f;
2108pub const MATCH_VMADC_VV: u32 = 0x46000057;
2109pub const MASK_VMADC_VV: u32 = 0xfe00707f;
2110pub const MATCH_VMADC_VVM: u32 = 0x44000057;
2111pub const MASK_VMADC_VVM: u32 = 0xfe00707f;
2112pub const MATCH_VMADC_VX: u32 = 0x46004057;
2113pub const MASK_VMADC_VX: u32 = 0xfe00707f;
2114pub const MATCH_VMADC_VXM: u32 = 0x44004057;
2115pub const MASK_VMADC_VXM: u32 = 0xfe00707f;
2116pub const MATCH_VMADD_VV: u32 = 0xa4002057;
2117pub const MASK_VMADD_VV: u32 = 0xfc00707f;
2118pub const MATCH_VMADD_VX: u32 = 0xa4006057;
2119pub const MASK_VMADD_VX: u32 = 0xfc00707f;
2120pub const MATCH_VMAND_MM: u32 = 0x66002057;
2121pub const MASK_VMAND_MM: u32 = 0xfe00707f;
2122pub const MATCH_VMANDN_MM: u32 = 0x62002057;
2123pub const MASK_VMANDN_MM: u32 = 0xfe00707f;
2124pub const MATCH_VMANDNOT_MM: u32 = 0x60002057;
2125pub const MASK_VMANDNOT_MM: u32 = 0xfc00707f;
2126pub const MATCH_VMAX_VV: u32 = 0x1c000057;
2127pub const MASK_VMAX_VV: u32 = 0xfc00707f;
2128pub const MATCH_VMAX_VX: u32 = 0x1c004057;
2129pub const MASK_VMAX_VX: u32 = 0xfc00707f;
2130pub const MATCH_VMAXU_VV: u32 = 0x18000057;
2131pub const MASK_VMAXU_VV: u32 = 0xfc00707f;
2132pub const MATCH_VMAXU_VX: u32 = 0x18004057;
2133pub const MASK_VMAXU_VX: u32 = 0xfc00707f;
2134pub const MATCH_VMERGE_VIM: u32 = 0x5c003057;
2135pub const MASK_VMERGE_VIM: u32 = 0xfe00707f;
2136pub const MATCH_VMERGE_VVM: u32 = 0x5c000057;
2137pub const MASK_VMERGE_VVM: u32 = 0xfe00707f;
2138pub const MATCH_VMERGE_VXM: u32 = 0x5c004057;
2139pub const MASK_VMERGE_VXM: u32 = 0xfe00707f;
2140pub const MATCH_VMFEQ_VF: u32 = 0x60005057;
2141pub const MASK_VMFEQ_VF: u32 = 0xfc00707f;
2142pub const MATCH_VMFEQ_VV: u32 = 0x60001057;
2143pub const MASK_VMFEQ_VV: u32 = 0xfc00707f;
2144pub const MATCH_VMFGE_VF: u32 = 0x7c005057;
2145pub const MASK_VMFGE_VF: u32 = 0xfc00707f;
2146pub const MATCH_VMFGT_VF: u32 = 0x74005057;
2147pub const MASK_VMFGT_VF: u32 = 0xfc00707f;
2148pub const MATCH_VMFLE_VF: u32 = 0x64005057;
2149pub const MASK_VMFLE_VF: u32 = 0xfc00707f;
2150pub const MATCH_VMFLE_VV: u32 = 0x64001057;
2151pub const MASK_VMFLE_VV: u32 = 0xfc00707f;
2152pub const MATCH_VMFLT_VF: u32 = 0x6c005057;
2153pub const MASK_VMFLT_VF: u32 = 0xfc00707f;
2154pub const MATCH_VMFLT_VV: u32 = 0x6c001057;
2155pub const MASK_VMFLT_VV: u32 = 0xfc00707f;
2156pub const MATCH_VMFNE_VF: u32 = 0x70005057;
2157pub const MASK_VMFNE_VF: u32 = 0xfc00707f;
2158pub const MATCH_VMFNE_VV: u32 = 0x70001057;
2159pub const MASK_VMFNE_VV: u32 = 0xfc00707f;
2160pub const MATCH_VMIN_VV: u32 = 0x14000057;
2161pub const MASK_VMIN_VV: u32 = 0xfc00707f;
2162pub const MATCH_VMIN_VX: u32 = 0x14004057;
2163pub const MASK_VMIN_VX: u32 = 0xfc00707f;
2164pub const MATCH_VMINU_VV: u32 = 0x10000057;
2165pub const MASK_VMINU_VV: u32 = 0xfc00707f;
2166pub const MATCH_VMINU_VX: u32 = 0x10004057;
2167pub const MASK_VMINU_VX: u32 = 0xfc00707f;
2168pub const MATCH_VMNAND_MM: u32 = 0x76002057;
2169pub const MASK_VMNAND_MM: u32 = 0xfe00707f;
2170pub const MATCH_VMNOR_MM: u32 = 0x7a002057;
2171pub const MASK_VMNOR_MM: u32 = 0xfe00707f;
2172pub const MATCH_VMOR_MM: u32 = 0x6a002057;
2173pub const MASK_VMOR_MM: u32 = 0xfe00707f;
2174pub const MATCH_VMORN_MM: u32 = 0x72002057;
2175pub const MASK_VMORN_MM: u32 = 0xfe00707f;
2176pub const MATCH_VMORNOT_MM: u32 = 0x70002057;
2177pub const MASK_VMORNOT_MM: u32 = 0xfc00707f;
2178pub const MATCH_VMSBC_VV: u32 = 0x4e000057;
2179pub const MASK_VMSBC_VV: u32 = 0xfe00707f;
2180pub const MATCH_VMSBC_VVM: u32 = 0x4c000057;
2181pub const MASK_VMSBC_VVM: u32 = 0xfe00707f;
2182pub const MATCH_VMSBC_VX: u32 = 0x4e004057;
2183pub const MASK_VMSBC_VX: u32 = 0xfe00707f;
2184pub const MATCH_VMSBC_VXM: u32 = 0x4c004057;
2185pub const MASK_VMSBC_VXM: u32 = 0xfe00707f;
2186pub const MATCH_VMSBF_M: u32 = 0x5000a057;
2187pub const MASK_VMSBF_M: u32 = 0xfc0ff07f;
2188pub const MATCH_VMSEQ_VI: u32 = 0x60003057;
2189pub const MASK_VMSEQ_VI: u32 = 0xfc00707f;
2190pub const MATCH_VMSEQ_VV: u32 = 0x60000057;
2191pub const MASK_VMSEQ_VV: u32 = 0xfc00707f;
2192pub const MATCH_VMSEQ_VX: u32 = 0x60004057;
2193pub const MASK_VMSEQ_VX: u32 = 0xfc00707f;
2194pub const MATCH_VMSGT_VI: u32 = 0x7c003057;
2195pub const MASK_VMSGT_VI: u32 = 0xfc00707f;
2196pub const MATCH_VMSGT_VX: u32 = 0x7c004057;
2197pub const MASK_VMSGT_VX: u32 = 0xfc00707f;
2198pub const MATCH_VMSGTU_VI: u32 = 0x78003057;
2199pub const MASK_VMSGTU_VI: u32 = 0xfc00707f;
2200pub const MATCH_VMSGTU_VX: u32 = 0x78004057;
2201pub const MASK_VMSGTU_VX: u32 = 0xfc00707f;
2202pub const MATCH_VMSIF_M: u32 = 0x5001a057;
2203pub const MASK_VMSIF_M: u32 = 0xfc0ff07f;
2204pub const MATCH_VMSLE_VI: u32 = 0x74003057;
2205pub const MASK_VMSLE_VI: u32 = 0xfc00707f;
2206pub const MATCH_VMSLE_VV: u32 = 0x74000057;
2207pub const MASK_VMSLE_VV: u32 = 0xfc00707f;
2208pub const MATCH_VMSLE_VX: u32 = 0x74004057;
2209pub const MASK_VMSLE_VX: u32 = 0xfc00707f;
2210pub const MATCH_VMSLEU_VI: u32 = 0x70003057;
2211pub const MASK_VMSLEU_VI: u32 = 0xfc00707f;
2212pub const MATCH_VMSLEU_VV: u32 = 0x70000057;
2213pub const MASK_VMSLEU_VV: u32 = 0xfc00707f;
2214pub const MATCH_VMSLEU_VX: u32 = 0x70004057;
2215pub const MASK_VMSLEU_VX: u32 = 0xfc00707f;
2216pub const MATCH_VMSLT_VV: u32 = 0x6c000057;
2217pub const MASK_VMSLT_VV: u32 = 0xfc00707f;
2218pub const MATCH_VMSLT_VX: u32 = 0x6c004057;
2219pub const MASK_VMSLT_VX: u32 = 0xfc00707f;
2220pub const MATCH_VMSLTU_VV: u32 = 0x68000057;
2221pub const MASK_VMSLTU_VV: u32 = 0xfc00707f;
2222pub const MATCH_VMSLTU_VX: u32 = 0x68004057;
2223pub const MASK_VMSLTU_VX: u32 = 0xfc00707f;
2224pub const MATCH_VMSNE_VI: u32 = 0x64003057;
2225pub const MASK_VMSNE_VI: u32 = 0xfc00707f;
2226pub const MATCH_VMSNE_VV: u32 = 0x64000057;
2227pub const MASK_VMSNE_VV: u32 = 0xfc00707f;
2228pub const MATCH_VMSNE_VX: u32 = 0x64004057;
2229pub const MASK_VMSNE_VX: u32 = 0xfc00707f;
2230pub const MATCH_VMSOF_M: u32 = 0x50012057;
2231pub const MASK_VMSOF_M: u32 = 0xfc0ff07f;
2232pub const MATCH_VMUL_VV: u32 = 0x94002057;
2233pub const MASK_VMUL_VV: u32 = 0xfc00707f;
2234pub const MATCH_VMUL_VX: u32 = 0x94006057;
2235pub const MASK_VMUL_VX: u32 = 0xfc00707f;
2236pub const MATCH_VMULH_VV: u32 = 0x9c002057;
2237pub const MASK_VMULH_VV: u32 = 0xfc00707f;
2238pub const MATCH_VMULH_VX: u32 = 0x9c006057;
2239pub const MASK_VMULH_VX: u32 = 0xfc00707f;
2240pub const MATCH_VMULHSU_VV: u32 = 0x98002057;
2241pub const MASK_VMULHSU_VV: u32 = 0xfc00707f;
2242pub const MATCH_VMULHSU_VX: u32 = 0x98006057;
2243pub const MASK_VMULHSU_VX: u32 = 0xfc00707f;
2244pub const MATCH_VMULHU_VV: u32 = 0x90002057;
2245pub const MASK_VMULHU_VV: u32 = 0xfc00707f;
2246pub const MATCH_VMULHU_VX: u32 = 0x90006057;
2247pub const MASK_VMULHU_VX: u32 = 0xfc00707f;
2248pub const MATCH_VMV1R_V: u32 = 0x9e003057;
2249pub const MASK_VMV1R_V: u32 = 0xfe0ff07f;
2250pub const MATCH_VMV2R_V: u32 = 0x9e00b057;
2251pub const MASK_VMV2R_V: u32 = 0xfe0ff07f;
2252pub const MATCH_VMV4R_V: u32 = 0x9e01b057;
2253pub const MASK_VMV4R_V: u32 = 0xfe0ff07f;
2254pub const MATCH_VMV8R_V: u32 = 0x9e03b057;
2255pub const MASK_VMV8R_V: u32 = 0xfe0ff07f;
2256pub const MATCH_VMV_S_X: u32 = 0x42006057;
2257pub const MASK_VMV_S_X: u32 = 0xfff0707f;
2258pub const MATCH_VMV_V_I: u32 = 0x5e003057;
2259pub const MASK_VMV_V_I: u32 = 0xfff0707f;
2260pub const MATCH_VMV_V_V: u32 = 0x5e000057;
2261pub const MASK_VMV_V_V: u32 = 0xfff0707f;
2262pub const MATCH_VMV_V_X: u32 = 0x5e004057;
2263pub const MASK_VMV_V_X: u32 = 0xfff0707f;
2264pub const MATCH_VMV_X_S: u32 = 0x42002057;
2265pub const MASK_VMV_X_S: u32 = 0xfe0ff07f;
2266pub const MATCH_VMXNOR_MM: u32 = 0x7e002057;
2267pub const MASK_VMXNOR_MM: u32 = 0xfe00707f;
2268pub const MATCH_VMXOR_MM: u32 = 0x6e002057;
2269pub const MASK_VMXOR_MM: u32 = 0xfe00707f;
2270pub const MATCH_VNCLIP_WI: u32 = 0xbc003057;
2271pub const MASK_VNCLIP_WI: u32 = 0xfc00707f;
2272pub const MATCH_VNCLIP_WV: u32 = 0xbc000057;
2273pub const MASK_VNCLIP_WV: u32 = 0xfc00707f;
2274pub const MATCH_VNCLIP_WX: u32 = 0xbc004057;
2275pub const MASK_VNCLIP_WX: u32 = 0xfc00707f;
2276pub const MATCH_VNCLIPU_WI: u32 = 0xb8003057;
2277pub const MASK_VNCLIPU_WI: u32 = 0xfc00707f;
2278pub const MATCH_VNCLIPU_WV: u32 = 0xb8000057;
2279pub const MASK_VNCLIPU_WV: u32 = 0xfc00707f;
2280pub const MATCH_VNCLIPU_WX: u32 = 0xb8004057;
2281pub const MASK_VNCLIPU_WX: u32 = 0xfc00707f;
2282pub const MATCH_VNMSAC_VV: u32 = 0xbc002057;
2283pub const MASK_VNMSAC_VV: u32 = 0xfc00707f;
2284pub const MATCH_VNMSAC_VX: u32 = 0xbc006057;
2285pub const MASK_VNMSAC_VX: u32 = 0xfc00707f;
2286pub const MATCH_VNMSUB_VV: u32 = 0xac002057;
2287pub const MASK_VNMSUB_VV: u32 = 0xfc00707f;
2288pub const MATCH_VNMSUB_VX: u32 = 0xac006057;
2289pub const MASK_VNMSUB_VX: u32 = 0xfc00707f;
2290pub const MATCH_VNSRA_WI: u32 = 0xb4003057;
2291pub const MASK_VNSRA_WI: u32 = 0xfc00707f;
2292pub const MATCH_VNSRA_WV: u32 = 0xb4000057;
2293pub const MASK_VNSRA_WV: u32 = 0xfc00707f;
2294pub const MATCH_VNSRA_WX: u32 = 0xb4004057;
2295pub const MASK_VNSRA_WX: u32 = 0xfc00707f;
2296pub const MATCH_VNSRL_WI: u32 = 0xb0003057;
2297pub const MASK_VNSRL_WI: u32 = 0xfc00707f;
2298pub const MATCH_VNSRL_WV: u32 = 0xb0000057;
2299pub const MASK_VNSRL_WV: u32 = 0xfc00707f;
2300pub const MATCH_VNSRL_WX: u32 = 0xb0004057;
2301pub const MASK_VNSRL_WX: u32 = 0xfc00707f;
2302pub const MATCH_VOR_VI: u32 = 0x28003057;
2303pub const MASK_VOR_VI: u32 = 0xfc00707f;
2304pub const MATCH_VOR_VV: u32 = 0x28000057;
2305pub const MASK_VOR_VV: u32 = 0xfc00707f;
2306pub const MATCH_VOR_VX: u32 = 0x28004057;
2307pub const MASK_VOR_VX: u32 = 0xfc00707f;
2308pub const MATCH_VPOPC_M: u32 = 0x40082057;
2309pub const MASK_VPOPC_M: u32 = 0xfc0ff07f;
2310pub const MATCH_VREDAND_VS: u32 = 0x4002057;
2311pub const MASK_VREDAND_VS: u32 = 0xfc00707f;
2312pub const MATCH_VREDMAX_VS: u32 = 0x1c002057;
2313pub const MASK_VREDMAX_VS: u32 = 0xfc00707f;
2314pub const MATCH_VREDMAXU_VS: u32 = 0x18002057;
2315pub const MASK_VREDMAXU_VS: u32 = 0xfc00707f;
2316pub const MATCH_VREDMIN_VS: u32 = 0x14002057;
2317pub const MASK_VREDMIN_VS: u32 = 0xfc00707f;
2318pub const MATCH_VREDMINU_VS: u32 = 0x10002057;
2319pub const MASK_VREDMINU_VS: u32 = 0xfc00707f;
2320pub const MATCH_VREDOR_VS: u32 = 0x8002057;
2321pub const MASK_VREDOR_VS: u32 = 0xfc00707f;
2322pub const MATCH_VREDSUM_VS: u32 = 0x2057;
2323pub const MASK_VREDSUM_VS: u32 = 0xfc00707f;
2324pub const MATCH_VREDXOR_VS: u32 = 0xc002057;
2325pub const MASK_VREDXOR_VS: u32 = 0xfc00707f;
2326pub const MATCH_VREM_VV: u32 = 0x8c002057;
2327pub const MASK_VREM_VV: u32 = 0xfc00707f;
2328pub const MATCH_VREM_VX: u32 = 0x8c006057;
2329pub const MASK_VREM_VX: u32 = 0xfc00707f;
2330pub const MATCH_VREMU_VV: u32 = 0x88002057;
2331pub const MASK_VREMU_VV: u32 = 0xfc00707f;
2332pub const MATCH_VREMU_VX: u32 = 0x88006057;
2333pub const MASK_VREMU_VX: u32 = 0xfc00707f;
2334pub const MATCH_VREV8_V: u32 = 0x4804a057;
2335pub const MASK_VREV8_V: u32 = 0xfc0ff07f;
2336pub const MATCH_VRGATHER_VI: u32 = 0x30003057;
2337pub const MASK_VRGATHER_VI: u32 = 0xfc00707f;
2338pub const MATCH_VRGATHER_VV: u32 = 0x30000057;
2339pub const MASK_VRGATHER_VV: u32 = 0xfc00707f;
2340pub const MATCH_VRGATHER_VX: u32 = 0x30004057;
2341pub const MASK_VRGATHER_VX: u32 = 0xfc00707f;
2342pub const MATCH_VRGATHEREI16_VV: u32 = 0x38000057;
2343pub const MASK_VRGATHEREI16_VV: u32 = 0xfc00707f;
2344pub const MATCH_VROL_VV: u32 = 0x54000057;
2345pub const MASK_VROL_VV: u32 = 0xfc00707f;
2346pub const MATCH_VROL_VX: u32 = 0x54004057;
2347pub const MASK_VROL_VX: u32 = 0xfc00707f;
2348pub const MATCH_VROR_VI: u32 = 0x50003057;
2349pub const MASK_VROR_VI: u32 = 0xf800707f;
2350pub const MATCH_VROR_VV: u32 = 0x50000057;
2351pub const MASK_VROR_VV: u32 = 0xfc00707f;
2352pub const MATCH_VROR_VX: u32 = 0x50004057;
2353pub const MASK_VROR_VX: u32 = 0xfc00707f;
2354pub const MATCH_VRSUB_VI: u32 = 0xc003057;
2355pub const MASK_VRSUB_VI: u32 = 0xfc00707f;
2356pub const MATCH_VRSUB_VX: u32 = 0xc004057;
2357pub const MASK_VRSUB_VX: u32 = 0xfc00707f;
2358pub const MATCH_VS1R_V: u32 = 0x2800027;
2359pub const MASK_VS1R_V: u32 = 0xfff0707f;
2360pub const MATCH_VS2R_V: u32 = 0x22800027;
2361pub const MASK_VS2R_V: u32 = 0xfff0707f;
2362pub const MATCH_VS4R_V: u32 = 0x62800027;
2363pub const MASK_VS4R_V: u32 = 0xfff0707f;
2364pub const MATCH_VS8R_V: u32 = 0xe2800027;
2365pub const MASK_VS8R_V: u32 = 0xfff0707f;
2366pub const MATCH_VSADD_VI: u32 = 0x84003057;
2367pub const MASK_VSADD_VI: u32 = 0xfc00707f;
2368pub const MATCH_VSADD_VV: u32 = 0x84000057;
2369pub const MASK_VSADD_VV: u32 = 0xfc00707f;
2370pub const MATCH_VSADD_VX: u32 = 0x84004057;
2371pub const MASK_VSADD_VX: u32 = 0xfc00707f;
2372pub const MATCH_VSADDU_VI: u32 = 0x80003057;
2373pub const MASK_VSADDU_VI: u32 = 0xfc00707f;
2374pub const MATCH_VSADDU_VV: u32 = 0x80000057;
2375pub const MASK_VSADDU_VV: u32 = 0xfc00707f;
2376pub const MATCH_VSADDU_VX: u32 = 0x80004057;
2377pub const MASK_VSADDU_VX: u32 = 0xfc00707f;
2378pub const MATCH_VSBC_VVM: u32 = 0x48000057;
2379pub const MASK_VSBC_VVM: u32 = 0xfe00707f;
2380pub const MATCH_VSBC_VXM: u32 = 0x48004057;
2381pub const MASK_VSBC_VXM: u32 = 0xfe00707f;
2382pub const MATCH_VSE16_V: u32 = 0x5027;
2383pub const MASK_VSE16_V: u32 = 0x1df0707f;
2384pub const MATCH_VSE1_V: u32 = 0x2b00027;
2385pub const MASK_VSE1_V: u32 = 0xfff0707f;
2386pub const MATCH_VSE32_V: u32 = 0x6027;
2387pub const MASK_VSE32_V: u32 = 0x1df0707f;
2388pub const MATCH_VSE64_V: u32 = 0x7027;
2389pub const MASK_VSE64_V: u32 = 0x1df0707f;
2390pub const MATCH_VSE8_V: u32 = 0x27;
2391pub const MASK_VSE8_V: u32 = 0x1df0707f;
2392pub const MATCH_VSETIVLI: u32 = 0xc0007057;
2393pub const MASK_VSETIVLI: u32 = 0xc000707f;
2394pub const MATCH_VSETVL: u32 = 0x80007057;
2395pub const MASK_VSETVL: u32 = 0xfe00707f;
2396pub const MATCH_VSETVLI: u32 = 0x7057;
2397pub const MASK_VSETVLI: u32 = 0x8000707f;
2398pub const MATCH_VSEXT_VF2: u32 = 0x4803a057;
2399pub const MASK_VSEXT_VF2: u32 = 0xfc0ff07f;
2400pub const MATCH_VSEXT_VF4: u32 = 0x4802a057;
2401pub const MASK_VSEXT_VF4: u32 = 0xfc0ff07f;
2402pub const MATCH_VSEXT_VF8: u32 = 0x4801a057;
2403pub const MASK_VSEXT_VF8: u32 = 0xfc0ff07f;
2404pub const MATCH_VSHA2CH_VV: u32 = 0xba002077;
2405pub const MASK_VSHA2CH_VV: u32 = 0xfe00707f;
2406pub const MATCH_VSHA2CL_VV: u32 = 0xbe002077;
2407pub const MASK_VSHA2CL_VV: u32 = 0xfe00707f;
2408pub const MATCH_VSHA2MS_VV: u32 = 0xb6002077;
2409pub const MASK_VSHA2MS_VV: u32 = 0xfe00707f;
2410pub const MATCH_VSLIDE1DOWN_VX: u32 = 0x3c006057;
2411pub const MASK_VSLIDE1DOWN_VX: u32 = 0xfc00707f;
2412pub const MATCH_VSLIDE1UP_VX: u32 = 0x38006057;
2413pub const MASK_VSLIDE1UP_VX: u32 = 0xfc00707f;
2414pub const MATCH_VSLIDEDOWN_VI: u32 = 0x3c003057;
2415pub const MASK_VSLIDEDOWN_VI: u32 = 0xfc00707f;
2416pub const MATCH_VSLIDEDOWN_VX: u32 = 0x3c004057;
2417pub const MASK_VSLIDEDOWN_VX: u32 = 0xfc00707f;
2418pub const MATCH_VSLIDEUP_VI: u32 = 0x38003057;
2419pub const MASK_VSLIDEUP_VI: u32 = 0xfc00707f;
2420pub const MATCH_VSLIDEUP_VX: u32 = 0x38004057;
2421pub const MASK_VSLIDEUP_VX: u32 = 0xfc00707f;
2422pub const MATCH_VSLL_VI: u32 = 0x94003057;
2423pub const MASK_VSLL_VI: u32 = 0xfc00707f;
2424pub const MATCH_VSLL_VV: u32 = 0x94000057;
2425pub const MASK_VSLL_VV: u32 = 0xfc00707f;
2426pub const MATCH_VSLL_VX: u32 = 0x94004057;
2427pub const MASK_VSLL_VX: u32 = 0xfc00707f;
2428pub const MATCH_VSM3C_VI: u32 = 0xae002077;
2429pub const MASK_VSM3C_VI: u32 = 0xfe00707f;
2430pub const MATCH_VSM3ME_VV: u32 = 0x82002077;
2431pub const MASK_VSM3ME_VV: u32 = 0xfe00707f;
2432pub const MATCH_VSM4K_VI: u32 = 0x86002077;
2433pub const MASK_VSM4K_VI: u32 = 0xfe00707f;
2434pub const MATCH_VSM4R_VS: u32 = 0xa6082077;
2435pub const MASK_VSM4R_VS: u32 = 0xfe0ff07f;
2436pub const MATCH_VSM4R_VV: u32 = 0xa2082077;
2437pub const MASK_VSM4R_VV: u32 = 0xfe0ff07f;
2438pub const MATCH_VSM_V: u32 = 0x2b00027;
2439pub const MASK_VSM_V: u32 = 0xfff0707f;
2440pub const MATCH_VSMUL_VV: u32 = 0x9c000057;
2441pub const MASK_VSMUL_VV: u32 = 0xfc00707f;
2442pub const MATCH_VSMUL_VX: u32 = 0x9c004057;
2443pub const MASK_VSMUL_VX: u32 = 0xfc00707f;
2444pub const MATCH_VSOXEI16_V: u32 = 0xc005027;
2445pub const MASK_VSOXEI16_V: u32 = 0x1c00707f;
2446pub const MATCH_VSOXEI32_V: u32 = 0xc006027;
2447pub const MASK_VSOXEI32_V: u32 = 0x1c00707f;
2448pub const MATCH_VSOXEI64_V: u32 = 0xc007027;
2449pub const MASK_VSOXEI64_V: u32 = 0x1c00707f;
2450pub const MATCH_VSOXEI8_V: u32 = 0xc000027;
2451pub const MASK_VSOXEI8_V: u32 = 0x1c00707f;
2452pub const MATCH_VSRA_VI: u32 = 0xa4003057;
2453pub const MASK_VSRA_VI: u32 = 0xfc00707f;
2454pub const MATCH_VSRA_VV: u32 = 0xa4000057;
2455pub const MASK_VSRA_VV: u32 = 0xfc00707f;
2456pub const MATCH_VSRA_VX: u32 = 0xa4004057;
2457pub const MASK_VSRA_VX: u32 = 0xfc00707f;
2458pub const MATCH_VSRL_VI: u32 = 0xa0003057;
2459pub const MASK_VSRL_VI: u32 = 0xfc00707f;
2460pub const MATCH_VSRL_VV: u32 = 0xa0000057;
2461pub const MASK_VSRL_VV: u32 = 0xfc00707f;
2462pub const MATCH_VSRL_VX: u32 = 0xa0004057;
2463pub const MASK_VSRL_VX: u32 = 0xfc00707f;
2464pub const MATCH_VSSE16_V: u32 = 0x8005027;
2465pub const MASK_VSSE16_V: u32 = 0x1c00707f;
2466pub const MATCH_VSSE32_V: u32 = 0x8006027;
2467pub const MASK_VSSE32_V: u32 = 0x1c00707f;
2468pub const MATCH_VSSE64_V: u32 = 0x8007027;
2469pub const MASK_VSSE64_V: u32 = 0x1c00707f;
2470pub const MATCH_VSSE8_V: u32 = 0x8000027;
2471pub const MASK_VSSE8_V: u32 = 0x1c00707f;
2472pub const MATCH_VSSRA_VI: u32 = 0xac003057;
2473pub const MASK_VSSRA_VI: u32 = 0xfc00707f;
2474pub const MATCH_VSSRA_VV: u32 = 0xac000057;
2475pub const MASK_VSSRA_VV: u32 = 0xfc00707f;
2476pub const MATCH_VSSRA_VX: u32 = 0xac004057;
2477pub const MASK_VSSRA_VX: u32 = 0xfc00707f;
2478pub const MATCH_VSSRL_VI: u32 = 0xa8003057;
2479pub const MASK_VSSRL_VI: u32 = 0xfc00707f;
2480pub const MATCH_VSSRL_VV: u32 = 0xa8000057;
2481pub const MASK_VSSRL_VV: u32 = 0xfc00707f;
2482pub const MATCH_VSSRL_VX: u32 = 0xa8004057;
2483pub const MASK_VSSRL_VX: u32 = 0xfc00707f;
2484pub const MATCH_VSSUB_VV: u32 = 0x8c000057;
2485pub const MASK_VSSUB_VV: u32 = 0xfc00707f;
2486pub const MATCH_VSSUB_VX: u32 = 0x8c004057;
2487pub const MASK_VSSUB_VX: u32 = 0xfc00707f;
2488pub const MATCH_VSSUBU_VV: u32 = 0x88000057;
2489pub const MASK_VSSUBU_VV: u32 = 0xfc00707f;
2490pub const MATCH_VSSUBU_VX: u32 = 0x88004057;
2491pub const MASK_VSSUBU_VX: u32 = 0xfc00707f;
2492pub const MATCH_VSUB_VV: u32 = 0x8000057;
2493pub const MASK_VSUB_VV: u32 = 0xfc00707f;
2494pub const MATCH_VSUB_VX: u32 = 0x8004057;
2495pub const MASK_VSUB_VX: u32 = 0xfc00707f;
2496pub const MATCH_VSUXEI16_V: u32 = 0x4005027;
2497pub const MASK_VSUXEI16_V: u32 = 0x1c00707f;
2498pub const MATCH_VSUXEI32_V: u32 = 0x4006027;
2499pub const MASK_VSUXEI32_V: u32 = 0x1c00707f;
2500pub const MATCH_VSUXEI64_V: u32 = 0x4007027;
2501pub const MASK_VSUXEI64_V: u32 = 0x1c00707f;
2502pub const MATCH_VSUXEI8_V: u32 = 0x4000027;
2503pub const MASK_VSUXEI8_V: u32 = 0x1c00707f;
2504pub const MATCH_VWADD_VV: u32 = 0xc4002057;
2505pub const MASK_VWADD_VV: u32 = 0xfc00707f;
2506pub const MATCH_VWADD_VX: u32 = 0xc4006057;
2507pub const MASK_VWADD_VX: u32 = 0xfc00707f;
2508pub const MATCH_VWADD_WV: u32 = 0xd4002057;
2509pub const MASK_VWADD_WV: u32 = 0xfc00707f;
2510pub const MATCH_VWADD_WX: u32 = 0xd4006057;
2511pub const MASK_VWADD_WX: u32 = 0xfc00707f;
2512pub const MATCH_VWADDU_VV: u32 = 0xc0002057;
2513pub const MASK_VWADDU_VV: u32 = 0xfc00707f;
2514pub const MATCH_VWADDU_VX: u32 = 0xc0006057;
2515pub const MASK_VWADDU_VX: u32 = 0xfc00707f;
2516pub const MATCH_VWADDU_WV: u32 = 0xd0002057;
2517pub const MASK_VWADDU_WV: u32 = 0xfc00707f;
2518pub const MATCH_VWADDU_WX: u32 = 0xd0006057;
2519pub const MASK_VWADDU_WX: u32 = 0xfc00707f;
2520pub const MATCH_VWMACC_VV: u32 = 0xf4002057;
2521pub const MASK_VWMACC_VV: u32 = 0xfc00707f;
2522pub const MATCH_VWMACC_VX: u32 = 0xf4006057;
2523pub const MASK_VWMACC_VX: u32 = 0xfc00707f;
2524pub const MATCH_VWMACCSU_VV: u32 = 0xfc002057;
2525pub const MASK_VWMACCSU_VV: u32 = 0xfc00707f;
2526pub const MATCH_VWMACCSU_VX: u32 = 0xfc006057;
2527pub const MASK_VWMACCSU_VX: u32 = 0xfc00707f;
2528pub const MATCH_VWMACCU_VV: u32 = 0xf0002057;
2529pub const MASK_VWMACCU_VV: u32 = 0xfc00707f;
2530pub const MATCH_VWMACCU_VX: u32 = 0xf0006057;
2531pub const MASK_VWMACCU_VX: u32 = 0xfc00707f;
2532pub const MATCH_VWMACCUS_VX: u32 = 0xf8006057;
2533pub const MASK_VWMACCUS_VX: u32 = 0xfc00707f;
2534pub const MATCH_VWMUL_VV: u32 = 0xec002057;
2535pub const MASK_VWMUL_VV: u32 = 0xfc00707f;
2536pub const MATCH_VWMUL_VX: u32 = 0xec006057;
2537pub const MASK_VWMUL_VX: u32 = 0xfc00707f;
2538pub const MATCH_VWMULSU_VV: u32 = 0xe8002057;
2539pub const MASK_VWMULSU_VV: u32 = 0xfc00707f;
2540pub const MATCH_VWMULSU_VX: u32 = 0xe8006057;
2541pub const MASK_VWMULSU_VX: u32 = 0xfc00707f;
2542pub const MATCH_VWMULU_VV: u32 = 0xe0002057;
2543pub const MASK_VWMULU_VV: u32 = 0xfc00707f;
2544pub const MATCH_VWMULU_VX: u32 = 0xe0006057;
2545pub const MASK_VWMULU_VX: u32 = 0xfc00707f;
2546pub const MATCH_VWREDSUM_VS: u32 = 0xc4000057;
2547pub const MASK_VWREDSUM_VS: u32 = 0xfc00707f;
2548pub const MATCH_VWREDSUMU_VS: u32 = 0xc0000057;
2549pub const MASK_VWREDSUMU_VS: u32 = 0xfc00707f;
2550pub const MATCH_VWSLL_VI: u32 = 0xd4003057;
2551pub const MASK_VWSLL_VI: u32 = 0xfc00707f;
2552pub const MATCH_VWSLL_VV: u32 = 0xd4000057;
2553pub const MASK_VWSLL_VV: u32 = 0xfc00707f;
2554pub const MATCH_VWSLL_VX: u32 = 0xd4004057;
2555pub const MASK_VWSLL_VX: u32 = 0xfc00707f;
2556pub const MATCH_VWSUB_VV: u32 = 0xcc002057;
2557pub const MASK_VWSUB_VV: u32 = 0xfc00707f;
2558pub const MATCH_VWSUB_VX: u32 = 0xcc006057;
2559pub const MASK_VWSUB_VX: u32 = 0xfc00707f;
2560pub const MATCH_VWSUB_WV: u32 = 0xdc002057;
2561pub const MASK_VWSUB_WV: u32 = 0xfc00707f;
2562pub const MATCH_VWSUB_WX: u32 = 0xdc006057;
2563pub const MASK_VWSUB_WX: u32 = 0xfc00707f;
2564pub const MATCH_VWSUBU_VV: u32 = 0xc8002057;
2565pub const MASK_VWSUBU_VV: u32 = 0xfc00707f;
2566pub const MATCH_VWSUBU_VX: u32 = 0xc8006057;
2567pub const MASK_VWSUBU_VX: u32 = 0xfc00707f;
2568pub const MATCH_VWSUBU_WV: u32 = 0xd8002057;
2569pub const MASK_VWSUBU_WV: u32 = 0xfc00707f;
2570pub const MATCH_VWSUBU_WX: u32 = 0xd8006057;
2571pub const MASK_VWSUBU_WX: u32 = 0xfc00707f;
2572pub const MATCH_VXOR_VI: u32 = 0x2c003057;
2573pub const MASK_VXOR_VI: u32 = 0xfc00707f;
2574pub const MATCH_VXOR_VV: u32 = 0x2c000057;
2575pub const MASK_VXOR_VV: u32 = 0xfc00707f;
2576pub const MATCH_VXOR_VX: u32 = 0x2c004057;
2577pub const MASK_VXOR_VX: u32 = 0xfc00707f;
2578pub const MATCH_VZEXT_VF2: u32 = 0x48032057;
2579pub const MASK_VZEXT_VF2: u32 = 0xfc0ff07f;
2580pub const MATCH_VZEXT_VF4: u32 = 0x48022057;
2581pub const MASK_VZEXT_VF4: u32 = 0xfc0ff07f;
2582pub const MATCH_VZEXT_VF8: u32 = 0x48012057;
2583pub const MASK_VZEXT_VF8: u32 = 0xfc0ff07f;
2584pub const MATCH_WFI: u32 = 0x10500073;
2585pub const MASK_WFI: u32 = 0xffffffff;
2586pub const MATCH_WRS_NTO: u32 = 0xd00073;
2587pub const MASK_WRS_NTO: u32 = 0xffffffff;
2588pub const MATCH_WRS_STO: u32 = 0x1d00073;
2589pub const MASK_WRS_STO: u32 = 0xffffffff;
2590pub const MATCH_XNOR: u32 = 0x40004033;
2591pub const MASK_XNOR: u32 = 0xfe00707f;
2592pub const MATCH_XOR: u32 = 0x4033;
2593pub const MASK_XOR: u32 = 0xfe00707f;
2594pub const MATCH_XORI: u32 = 0x4013;
2595pub const MASK_XORI: u32 = 0x707f;
2596pub const MATCH_XPERM4: u32 = 0x28002033;
2597pub const MASK_XPERM4: u32 = 0xfe00707f;
2598pub const MATCH_XPERM8: u32 = 0x28004033;
2599pub const MASK_XPERM8: u32 = 0xfe00707f;
2600pub const MATCH_ZEXT_B: u32 = 0x7013;
2601pub const MASK_ZEXT_B: u32 = 0xfff0707f;
2602pub const MATCH_ZEXT_H: u32 = 0x800403b;
2603pub const MASK_ZEXT_H: u32 = 0xfff0707f;
2604pub const MATCH_ZEXT_H_RV32: u32 = 0x8004033;
2605pub const MASK_ZEXT_H_RV32: u32 = 0xfff0707f;
2606pub const MATCH_ZEXT_W: u32 = 0x800003b;
2607pub const MASK_ZEXT_W: u32 = 0xfff0707f;
2608pub const MATCH_ZIP: u32 = 0x8f01013;
2609pub const MASK_ZIP: u32 = 0xfff0707f;
2610pub const CSR_FFLAGS: u16 = 0x1;
2611pub const CSR_FRM: u16 = 0x2;
2612pub const CSR_FCSR: u16 = 0x3;
2613pub const CSR_VSTART: u16 = 0x8;
2614pub const CSR_VXSAT: u16 = 0x9;
2615pub const CSR_VXRM: u16 = 0xa;
2616pub const CSR_VCSR: u16 = 0xf;
2617pub const CSR_SSP: u16 = 0x11;
2618pub const CSR_SEED: u16 = 0x15;
2619pub const CSR_JVT: u16 = 0x17;
2620pub const CSR_CYCLE: u16 = 0xc00;
2621pub const CSR_TIME: u16 = 0xc01;
2622pub const CSR_INSTRET: u16 = 0xc02;
2623pub const CSR_HPMCOUNTER3: u16 = 0xc03;
2624pub const CSR_HPMCOUNTER4: u16 = 0xc04;
2625pub const CSR_HPMCOUNTER5: u16 = 0xc05;
2626pub const CSR_HPMCOUNTER6: u16 = 0xc06;
2627pub const CSR_HPMCOUNTER7: u16 = 0xc07;
2628pub const CSR_HPMCOUNTER8: u16 = 0xc08;
2629pub const CSR_HPMCOUNTER9: u16 = 0xc09;
2630pub const CSR_HPMCOUNTER10: u16 = 0xc0a;
2631pub const CSR_HPMCOUNTER11: u16 = 0xc0b;
2632pub const CSR_HPMCOUNTER12: u16 = 0xc0c;
2633pub const CSR_HPMCOUNTER13: u16 = 0xc0d;
2634pub const CSR_HPMCOUNTER14: u16 = 0xc0e;
2635pub const CSR_HPMCOUNTER15: u16 = 0xc0f;
2636pub const CSR_HPMCOUNTER16: u16 = 0xc10;
2637pub const CSR_HPMCOUNTER17: u16 = 0xc11;
2638pub const CSR_HPMCOUNTER18: u16 = 0xc12;
2639pub const CSR_HPMCOUNTER19: u16 = 0xc13;
2640pub const CSR_HPMCOUNTER20: u16 = 0xc14;
2641pub const CSR_HPMCOUNTER21: u16 = 0xc15;
2642pub const CSR_HPMCOUNTER22: u16 = 0xc16;
2643pub const CSR_HPMCOUNTER23: u16 = 0xc17;
2644pub const CSR_HPMCOUNTER24: u16 = 0xc18;
2645pub const CSR_HPMCOUNTER25: u16 = 0xc19;
2646pub const CSR_HPMCOUNTER26: u16 = 0xc1a;
2647pub const CSR_HPMCOUNTER27: u16 = 0xc1b;
2648pub const CSR_HPMCOUNTER28: u16 = 0xc1c;
2649pub const CSR_HPMCOUNTER29: u16 = 0xc1d;
2650pub const CSR_HPMCOUNTER30: u16 = 0xc1e;
2651pub const CSR_HPMCOUNTER31: u16 = 0xc1f;
2652pub const CSR_VL: u16 = 0xc20;
2653pub const CSR_VTYPE: u16 = 0xc21;
2654pub const CSR_VLENB: u16 = 0xc22;
2655pub const CSR_SSTATUS: u16 = 0x100;
2656pub const CSR_SEDELEG: u16 = 0x102;
2657pub const CSR_SIDELEG: u16 = 0x103;
2658pub const CSR_SIE: u16 = 0x104;
2659pub const CSR_STVEC: u16 = 0x105;
2660pub const CSR_SCOUNTEREN: u16 = 0x106;
2661pub const CSR_SENVCFG: u16 = 0x10a;
2662pub const CSR_SSTATEEN0: u16 = 0x10c;
2663pub const CSR_SSTATEEN1: u16 = 0x10d;
2664pub const CSR_SSTATEEN2: u16 = 0x10e;
2665pub const CSR_SSTATEEN3: u16 = 0x10f;
2666pub const CSR_SCOUNTINHIBIT: u16 = 0x120;
2667pub const CSR_SSCRATCH: u16 = 0x140;
2668pub const CSR_SEPC: u16 = 0x141;
2669pub const CSR_SCAUSE: u16 = 0x142;
2670pub const CSR_STVAL: u16 = 0x143;
2671pub const CSR_SIP: u16 = 0x144;
2672pub const CSR_STIMECMP: u16 = 0x14d;
2673pub const CSR_SCTRCTL: u16 = 0x14e;
2674pub const CSR_SCTRSTATUS: u16 = 0x14f;
2675pub const CSR_SISELECT: u16 = 0x150;
2676pub const CSR_SIREG: u16 = 0x151;
2677pub const CSR_SIREG2: u16 = 0x152;
2678pub const CSR_SIREG3: u16 = 0x153;
2679pub const CSR_SIREG4: u16 = 0x155;
2680pub const CSR_SIREG5: u16 = 0x156;
2681pub const CSR_SIREG6: u16 = 0x157;
2682pub const CSR_STOPEI: u16 = 0x15c;
2683pub const CSR_SCTRDEPTH: u16 = 0x15f;
2684pub const CSR_SATP: u16 = 0x180;
2685pub const CSR_SRMCFG: u16 = 0x181;
2686pub const CSR_SCONTEXT: u16 = 0x5a8;
2687pub const CSR_VSSTATUS: u16 = 0x200;
2688pub const CSR_VSIE: u16 = 0x204;
2689pub const CSR_VSTVEC: u16 = 0x205;
2690pub const CSR_VSSCRATCH: u16 = 0x240;
2691pub const CSR_VSEPC: u16 = 0x241;
2692pub const CSR_VSCAUSE: u16 = 0x242;
2693pub const CSR_VSTVAL: u16 = 0x243;
2694pub const CSR_VSIP: u16 = 0x244;
2695pub const CSR_VSTIMECMP: u16 = 0x24d;
2696pub const CSR_VSCTRCTL: u16 = 0x24e;
2697pub const CSR_VSISELECT: u16 = 0x250;
2698pub const CSR_VSIREG: u16 = 0x251;
2699pub const CSR_VSIREG2: u16 = 0x252;
2700pub const CSR_VSIREG3: u16 = 0x253;
2701pub const CSR_VSIREG4: u16 = 0x255;
2702pub const CSR_VSIREG5: u16 = 0x256;
2703pub const CSR_VSIREG6: u16 = 0x257;
2704pub const CSR_VSTOPEI: u16 = 0x25c;
2705pub const CSR_VSATP: u16 = 0x280;
2706pub const CSR_HSTATUS: u16 = 0x600;
2707pub const CSR_HEDELEG: u16 = 0x602;
2708pub const CSR_HIDELEG: u16 = 0x603;
2709pub const CSR_HIE: u16 = 0x604;
2710pub const CSR_HTIMEDELTA: u16 = 0x605;
2711pub const CSR_HCOUNTEREN: u16 = 0x606;
2712pub const CSR_HGEIE: u16 = 0x607;
2713pub const CSR_HVIEN: u16 = 0x608;
2714pub const CSR_HVICTL: u16 = 0x609;
2715pub const CSR_HENVCFG: u16 = 0x60a;
2716pub const CSR_HSTATEEN0: u16 = 0x60c;
2717pub const CSR_HSTATEEN1: u16 = 0x60d;
2718pub const CSR_HSTATEEN2: u16 = 0x60e;
2719pub const CSR_HSTATEEN3: u16 = 0x60f;
2720pub const CSR_HTVAL: u16 = 0x643;
2721pub const CSR_HIP: u16 = 0x644;
2722pub const CSR_HVIP: u16 = 0x645;
2723pub const CSR_HVIPRIO1: u16 = 0x646;
2724pub const CSR_HVIPRIO2: u16 = 0x647;
2725pub const CSR_HTINST: u16 = 0x64a;
2726pub const CSR_HGATP: u16 = 0x680;
2727pub const CSR_HCONTEXT: u16 = 0x6a8;
2728pub const CSR_HGEIP: u16 = 0xe12;
2729pub const CSR_VSTOPI: u16 = 0xeb0;
2730pub const CSR_SCOUNTOVF: u16 = 0xda0;
2731pub const CSR_STOPI: u16 = 0xdb0;
2732pub const CSR_UTVT: u16 = 0x7;
2733pub const CSR_UNXTI: u16 = 0x45;
2734pub const CSR_UINTSTATUS: u16 = 0x46;
2735pub const CSR_USCRATCHCSW: u16 = 0x48;
2736pub const CSR_USCRATCHCSWL: u16 = 0x49;
2737pub const CSR_STVT: u16 = 0x107;
2738pub const CSR_SNXTI: u16 = 0x145;
2739pub const CSR_SINTSTATUS: u16 = 0x146;
2740pub const CSR_SSCRATCHCSW: u16 = 0x148;
2741pub const CSR_SSCRATCHCSWL: u16 = 0x149;
2742pub const CSR_MTVT: u16 = 0x307;
2743pub const CSR_MNXTI: u16 = 0x345;
2744pub const CSR_MINTSTATUS: u16 = 0x346;
2745pub const CSR_MSCRATCHCSW: u16 = 0x348;
2746pub const CSR_MSCRATCHCSWL: u16 = 0x349;
2747pub const CSR_MSTATUS: u16 = 0x300;
2748pub const CSR_MISA: u16 = 0x301;
2749pub const CSR_MEDELEG: u16 = 0x302;
2750pub const CSR_MIDELEG: u16 = 0x303;
2751pub const CSR_MIE: u16 = 0x304;
2752pub const CSR_MTVEC: u16 = 0x305;
2753pub const CSR_MCOUNTEREN: u16 = 0x306;
2754pub const CSR_MVIEN: u16 = 0x308;
2755pub const CSR_MVIP: u16 = 0x309;
2756pub const CSR_MENVCFG: u16 = 0x30a;
2757pub const CSR_MSTATEEN0: u16 = 0x30c;
2758pub const CSR_MSTATEEN1: u16 = 0x30d;
2759pub const CSR_MSTATEEN2: u16 = 0x30e;
2760pub const CSR_MSTATEEN3: u16 = 0x30f;
2761pub const CSR_MCOUNTINHIBIT: u16 = 0x320;
2762pub const CSR_MSCRATCH: u16 = 0x340;
2763pub const CSR_MEPC: u16 = 0x341;
2764pub const CSR_MCAUSE: u16 = 0x342;
2765pub const CSR_MTVAL: u16 = 0x343;
2766pub const CSR_MIP: u16 = 0x344;
2767pub const CSR_MTINST: u16 = 0x34a;
2768pub const CSR_MTVAL2: u16 = 0x34b;
2769pub const CSR_MCTRCTL: u16 = 0x34e;
2770pub const CSR_MISELECT: u16 = 0x350;
2771pub const CSR_MIREG: u16 = 0x351;
2772pub const CSR_MIREG2: u16 = 0x352;
2773pub const CSR_MIREG3: u16 = 0x353;
2774pub const CSR_MIREG4: u16 = 0x355;
2775pub const CSR_MIREG5: u16 = 0x356;
2776pub const CSR_MIREG6: u16 = 0x357;
2777pub const CSR_MTOPEI: u16 = 0x35c;
2778pub const CSR_PMPCFG0: u16 = 0x3a0;
2779pub const CSR_PMPCFG1: u16 = 0x3a1;
2780pub const CSR_PMPCFG2: u16 = 0x3a2;
2781pub const CSR_PMPCFG3: u16 = 0x3a3;
2782pub const CSR_PMPCFG4: u16 = 0x3a4;
2783pub const CSR_PMPCFG5: u16 = 0x3a5;
2784pub const CSR_PMPCFG6: u16 = 0x3a6;
2785pub const CSR_PMPCFG7: u16 = 0x3a7;
2786pub const CSR_PMPCFG8: u16 = 0x3a8;
2787pub const CSR_PMPCFG9: u16 = 0x3a9;
2788pub const CSR_PMPCFG10: u16 = 0x3aa;
2789pub const CSR_PMPCFG11: u16 = 0x3ab;
2790pub const CSR_PMPCFG12: u16 = 0x3ac;
2791pub const CSR_PMPCFG13: u16 = 0x3ad;
2792pub const CSR_PMPCFG14: u16 = 0x3ae;
2793pub const CSR_PMPCFG15: u16 = 0x3af;
2794pub const CSR_PMPADDR0: u16 = 0x3b0;
2795pub const CSR_PMPADDR1: u16 = 0x3b1;
2796pub const CSR_PMPADDR2: u16 = 0x3b2;
2797pub const CSR_PMPADDR3: u16 = 0x3b3;
2798pub const CSR_PMPADDR4: u16 = 0x3b4;
2799pub const CSR_PMPADDR5: u16 = 0x3b5;
2800pub const CSR_PMPADDR6: u16 = 0x3b6;
2801pub const CSR_PMPADDR7: u16 = 0x3b7;
2802pub const CSR_PMPADDR8: u16 = 0x3b8;
2803pub const CSR_PMPADDR9: u16 = 0x3b9;
2804pub const CSR_PMPADDR10: u16 = 0x3ba;
2805pub const CSR_PMPADDR11: u16 = 0x3bb;
2806pub const CSR_PMPADDR12: u16 = 0x3bc;
2807pub const CSR_PMPADDR13: u16 = 0x3bd;
2808pub const CSR_PMPADDR14: u16 = 0x3be;
2809pub const CSR_PMPADDR15: u16 = 0x3bf;
2810pub const CSR_PMPADDR16: u16 = 0x3c0;
2811pub const CSR_PMPADDR17: u16 = 0x3c1;
2812pub const CSR_PMPADDR18: u16 = 0x3c2;
2813pub const CSR_PMPADDR19: u16 = 0x3c3;
2814pub const CSR_PMPADDR20: u16 = 0x3c4;
2815pub const CSR_PMPADDR21: u16 = 0x3c5;
2816pub const CSR_PMPADDR22: u16 = 0x3c6;
2817pub const CSR_PMPADDR23: u16 = 0x3c7;
2818pub const CSR_PMPADDR24: u16 = 0x3c8;
2819pub const CSR_PMPADDR25: u16 = 0x3c9;
2820pub const CSR_PMPADDR26: u16 = 0x3ca;
2821pub const CSR_PMPADDR27: u16 = 0x3cb;
2822pub const CSR_PMPADDR28: u16 = 0x3cc;
2823pub const CSR_PMPADDR29: u16 = 0x3cd;
2824pub const CSR_PMPADDR30: u16 = 0x3ce;
2825pub const CSR_PMPADDR31: u16 = 0x3cf;
2826pub const CSR_PMPADDR32: u16 = 0x3d0;
2827pub const CSR_PMPADDR33: u16 = 0x3d1;
2828pub const CSR_PMPADDR34: u16 = 0x3d2;
2829pub const CSR_PMPADDR35: u16 = 0x3d3;
2830pub const CSR_PMPADDR36: u16 = 0x3d4;
2831pub const CSR_PMPADDR37: u16 = 0x3d5;
2832pub const CSR_PMPADDR38: u16 = 0x3d6;
2833pub const CSR_PMPADDR39: u16 = 0x3d7;
2834pub const CSR_PMPADDR40: u16 = 0x3d8;
2835pub const CSR_PMPADDR41: u16 = 0x3d9;
2836pub const CSR_PMPADDR42: u16 = 0x3da;
2837pub const CSR_PMPADDR43: u16 = 0x3db;
2838pub const CSR_PMPADDR44: u16 = 0x3dc;
2839pub const CSR_PMPADDR45: u16 = 0x3dd;
2840pub const CSR_PMPADDR46: u16 = 0x3de;
2841pub const CSR_PMPADDR47: u16 = 0x3df;
2842pub const CSR_PMPADDR48: u16 = 0x3e0;
2843pub const CSR_PMPADDR49: u16 = 0x3e1;
2844pub const CSR_PMPADDR50: u16 = 0x3e2;
2845pub const CSR_PMPADDR51: u16 = 0x3e3;
2846pub const CSR_PMPADDR52: u16 = 0x3e4;
2847pub const CSR_PMPADDR53: u16 = 0x3e5;
2848pub const CSR_PMPADDR54: u16 = 0x3e6;
2849pub const CSR_PMPADDR55: u16 = 0x3e7;
2850pub const CSR_PMPADDR56: u16 = 0x3e8;
2851pub const CSR_PMPADDR57: u16 = 0x3e9;
2852pub const CSR_PMPADDR58: u16 = 0x3ea;
2853pub const CSR_PMPADDR59: u16 = 0x3eb;
2854pub const CSR_PMPADDR60: u16 = 0x3ec;
2855pub const CSR_PMPADDR61: u16 = 0x3ed;
2856pub const CSR_PMPADDR62: u16 = 0x3ee;
2857pub const CSR_PMPADDR63: u16 = 0x3ef;
2858pub const CSR_MSECCFG: u16 = 0x747;
2859pub const CSR_TSELECT: u16 = 0x7a0;
2860pub const CSR_TDATA1: u16 = 0x7a1;
2861pub const CSR_TDATA2: u16 = 0x7a2;
2862pub const CSR_TDATA3: u16 = 0x7a3;
2863pub const CSR_TINFO: u16 = 0x7a4;
2864pub const CSR_TCONTROL: u16 = 0x7a5;
2865pub const CSR_MCONTEXT: u16 = 0x7a8;
2866pub const CSR_MSCONTEXT: u16 = 0x7aa;
2867pub const CSR_DCSR: u16 = 0x7b0;
2868pub const CSR_DPC: u16 = 0x7b1;
2869pub const CSR_DSCRATCH0: u16 = 0x7b2;
2870pub const CSR_DSCRATCH1: u16 = 0x7b3;
2871pub const CSR_MCYCLE: u16 = 0xb00;
2872pub const CSR_MINSTRET: u16 = 0xb02;
2873pub const CSR_MHPMCOUNTER3: u16 = 0xb03;
2874pub const CSR_MHPMCOUNTER4: u16 = 0xb04;
2875pub const CSR_MHPMCOUNTER5: u16 = 0xb05;
2876pub const CSR_MHPMCOUNTER6: u16 = 0xb06;
2877pub const CSR_MHPMCOUNTER7: u16 = 0xb07;
2878pub const CSR_MHPMCOUNTER8: u16 = 0xb08;
2879pub const CSR_MHPMCOUNTER9: u16 = 0xb09;
2880pub const CSR_MHPMCOUNTER10: u16 = 0xb0a;
2881pub const CSR_MHPMCOUNTER11: u16 = 0xb0b;
2882pub const CSR_MHPMCOUNTER12: u16 = 0xb0c;
2883pub const CSR_MHPMCOUNTER13: u16 = 0xb0d;
2884pub const CSR_MHPMCOUNTER14: u16 = 0xb0e;
2885pub const CSR_MHPMCOUNTER15: u16 = 0xb0f;
2886pub const CSR_MHPMCOUNTER16: u16 = 0xb10;
2887pub const CSR_MHPMCOUNTER17: u16 = 0xb11;
2888pub const CSR_MHPMCOUNTER18: u16 = 0xb12;
2889pub const CSR_MHPMCOUNTER19: u16 = 0xb13;
2890pub const CSR_MHPMCOUNTER20: u16 = 0xb14;
2891pub const CSR_MHPMCOUNTER21: u16 = 0xb15;
2892pub const CSR_MHPMCOUNTER22: u16 = 0xb16;
2893pub const CSR_MHPMCOUNTER23: u16 = 0xb17;
2894pub const CSR_MHPMCOUNTER24: u16 = 0xb18;
2895pub const CSR_MHPMCOUNTER25: u16 = 0xb19;
2896pub const CSR_MHPMCOUNTER26: u16 = 0xb1a;
2897pub const CSR_MHPMCOUNTER27: u16 = 0xb1b;
2898pub const CSR_MHPMCOUNTER28: u16 = 0xb1c;
2899pub const CSR_MHPMCOUNTER29: u16 = 0xb1d;
2900pub const CSR_MHPMCOUNTER30: u16 = 0xb1e;
2901pub const CSR_MHPMCOUNTER31: u16 = 0xb1f;
2902pub const CSR_MCYCLECFG: u16 = 0x321;
2903pub const CSR_MINSTRETCFG: u16 = 0x322;
2904pub const CSR_MHPMEVENT3: u16 = 0x323;
2905pub const CSR_MHPMEVENT4: u16 = 0x324;
2906pub const CSR_MHPMEVENT5: u16 = 0x325;
2907pub const CSR_MHPMEVENT6: u16 = 0x326;
2908pub const CSR_MHPMEVENT7: u16 = 0x327;
2909pub const CSR_MHPMEVENT8: u16 = 0x328;
2910pub const CSR_MHPMEVENT9: u16 = 0x329;
2911pub const CSR_MHPMEVENT10: u16 = 0x32a;
2912pub const CSR_MHPMEVENT11: u16 = 0x32b;
2913pub const CSR_MHPMEVENT12: u16 = 0x32c;
2914pub const CSR_MHPMEVENT13: u16 = 0x32d;
2915pub const CSR_MHPMEVENT14: u16 = 0x32e;
2916pub const CSR_MHPMEVENT15: u16 = 0x32f;
2917pub const CSR_MHPMEVENT16: u16 = 0x330;
2918pub const CSR_MHPMEVENT17: u16 = 0x331;
2919pub const CSR_MHPMEVENT18: u16 = 0x332;
2920pub const CSR_MHPMEVENT19: u16 = 0x333;
2921pub const CSR_MHPMEVENT20: u16 = 0x334;
2922pub const CSR_MHPMEVENT21: u16 = 0x335;
2923pub const CSR_MHPMEVENT22: u16 = 0x336;
2924pub const CSR_MHPMEVENT23: u16 = 0x337;
2925pub const CSR_MHPMEVENT24: u16 = 0x338;
2926pub const CSR_MHPMEVENT25: u16 = 0x339;
2927pub const CSR_MHPMEVENT26: u16 = 0x33a;
2928pub const CSR_MHPMEVENT27: u16 = 0x33b;
2929pub const CSR_MHPMEVENT28: u16 = 0x33c;
2930pub const CSR_MHPMEVENT29: u16 = 0x33d;
2931pub const CSR_MHPMEVENT30: u16 = 0x33e;
2932pub const CSR_MHPMEVENT31: u16 = 0x33f;
2933pub const CSR_MVENDORID: u16 = 0xf11;
2934pub const CSR_MARCHID: u16 = 0xf12;
2935pub const CSR_MIMPID: u16 = 0xf13;
2936pub const CSR_MHARTID: u16 = 0xf14;
2937pub const CSR_MCONFIGPTR: u16 = 0xf15;
2938pub const CSR_MTOPI: u16 = 0xfb0;
2939pub const CSR_SIEH: u16 = 0x114;
2940pub const CSR_SIPH: u16 = 0x154;
2941pub const CSR_STIMECMPH: u16 = 0x15d;
2942pub const CSR_VSIEH: u16 = 0x214;
2943pub const CSR_VSIPH: u16 = 0x254;
2944pub const CSR_VSTIMECMPH: u16 = 0x25d;
2945pub const CSR_HTIMEDELTAH: u16 = 0x615;
2946pub const CSR_HIDELEGH: u16 = 0x613;
2947pub const CSR_HVIENH: u16 = 0x618;
2948pub const CSR_HENVCFGH: u16 = 0x61a;
2949pub const CSR_HVIPH: u16 = 0x655;
2950pub const CSR_HVIPRIO1H: u16 = 0x656;
2951pub const CSR_HVIPRIO2H: u16 = 0x657;
2952pub const CSR_HSTATEEN0H: u16 = 0x61c;
2953pub const CSR_HSTATEEN1H: u16 = 0x61d;
2954pub const CSR_HSTATEEN2H: u16 = 0x61e;
2955pub const CSR_HSTATEEN3H: u16 = 0x61f;
2956pub const CSR_CYCLEH: u16 = 0xc80;
2957pub const CSR_TIMEH: u16 = 0xc81;
2958pub const CSR_INSTRETH: u16 = 0xc82;
2959pub const CSR_HPMCOUNTER3H: u16 = 0xc83;
2960pub const CSR_HPMCOUNTER4H: u16 = 0xc84;
2961pub const CSR_HPMCOUNTER5H: u16 = 0xc85;
2962pub const CSR_HPMCOUNTER6H: u16 = 0xc86;
2963pub const CSR_HPMCOUNTER7H: u16 = 0xc87;
2964pub const CSR_HPMCOUNTER8H: u16 = 0xc88;
2965pub const CSR_HPMCOUNTER9H: u16 = 0xc89;
2966pub const CSR_HPMCOUNTER10H: u16 = 0xc8a;
2967pub const CSR_HPMCOUNTER11H: u16 = 0xc8b;
2968pub const CSR_HPMCOUNTER12H: u16 = 0xc8c;
2969pub const CSR_HPMCOUNTER13H: u16 = 0xc8d;
2970pub const CSR_HPMCOUNTER14H: u16 = 0xc8e;
2971pub const CSR_HPMCOUNTER15H: u16 = 0xc8f;
2972pub const CSR_HPMCOUNTER16H: u16 = 0xc90;
2973pub const CSR_HPMCOUNTER17H: u16 = 0xc91;
2974pub const CSR_HPMCOUNTER18H: u16 = 0xc92;
2975pub const CSR_HPMCOUNTER19H: u16 = 0xc93;
2976pub const CSR_HPMCOUNTER20H: u16 = 0xc94;
2977pub const CSR_HPMCOUNTER21H: u16 = 0xc95;
2978pub const CSR_HPMCOUNTER22H: u16 = 0xc96;
2979pub const CSR_HPMCOUNTER23H: u16 = 0xc97;
2980pub const CSR_HPMCOUNTER24H: u16 = 0xc98;
2981pub const CSR_HPMCOUNTER25H: u16 = 0xc99;
2982pub const CSR_HPMCOUNTER26H: u16 = 0xc9a;
2983pub const CSR_HPMCOUNTER27H: u16 = 0xc9b;
2984pub const CSR_HPMCOUNTER28H: u16 = 0xc9c;
2985pub const CSR_HPMCOUNTER29H: u16 = 0xc9d;
2986pub const CSR_HPMCOUNTER30H: u16 = 0xc9e;
2987pub const CSR_HPMCOUNTER31H: u16 = 0xc9f;
2988pub const CSR_MSTATUSH: u16 = 0x310;
2989pub const CSR_MIDELEGH: u16 = 0x313;
2990pub const CSR_MIEH: u16 = 0x314;
2991pub const CSR_MVIENH: u16 = 0x318;
2992pub const CSR_MVIPH: u16 = 0x319;
2993pub const CSR_MENVCFGH: u16 = 0x31a;
2994pub const CSR_MSTATEEN0H: u16 = 0x31c;
2995pub const CSR_MSTATEEN1H: u16 = 0x31d;
2996pub const CSR_MSTATEEN2H: u16 = 0x31e;
2997pub const CSR_MSTATEEN3H: u16 = 0x31f;
2998pub const CSR_MIPH: u16 = 0x354;
2999pub const CSR_MCYCLECFGH: u16 = 0x721;
3000pub const CSR_MINSTRETCFGH: u16 = 0x722;
3001pub const CSR_MHPMEVENT3H: u16 = 0x723;
3002pub const CSR_MHPMEVENT4H: u16 = 0x724;
3003pub const CSR_MHPMEVENT5H: u16 = 0x725;
3004pub const CSR_MHPMEVENT6H: u16 = 0x726;
3005pub const CSR_MHPMEVENT7H: u16 = 0x727;
3006pub const CSR_MHPMEVENT8H: u16 = 0x728;
3007pub const CSR_MHPMEVENT9H: u16 = 0x729;
3008pub const CSR_MHPMEVENT10H: u16 = 0x72a;
3009pub const CSR_MHPMEVENT11H: u16 = 0x72b;
3010pub const CSR_MHPMEVENT12H: u16 = 0x72c;
3011pub const CSR_MHPMEVENT13H: u16 = 0x72d;
3012pub const CSR_MHPMEVENT14H: u16 = 0x72e;
3013pub const CSR_MHPMEVENT15H: u16 = 0x72f;
3014pub const CSR_MHPMEVENT16H: u16 = 0x730;
3015pub const CSR_MHPMEVENT17H: u16 = 0x731;
3016pub const CSR_MHPMEVENT18H: u16 = 0x732;
3017pub const CSR_MHPMEVENT19H: u16 = 0x733;
3018pub const CSR_MHPMEVENT20H: u16 = 0x734;
3019pub const CSR_MHPMEVENT21H: u16 = 0x735;
3020pub const CSR_MHPMEVENT22H: u16 = 0x736;
3021pub const CSR_MHPMEVENT23H: u16 = 0x737;
3022pub const CSR_MHPMEVENT24H: u16 = 0x738;
3023pub const CSR_MHPMEVENT25H: u16 = 0x739;
3024pub const CSR_MHPMEVENT26H: u16 = 0x73a;
3025pub const CSR_MHPMEVENT27H: u16 = 0x73b;
3026pub const CSR_MHPMEVENT28H: u16 = 0x73c;
3027pub const CSR_MHPMEVENT29H: u16 = 0x73d;
3028pub const CSR_MHPMEVENT30H: u16 = 0x73e;
3029pub const CSR_MHPMEVENT31H: u16 = 0x73f;
3030pub const CSR_MNSCRATCH: u16 = 0x740;
3031pub const CSR_MNEPC: u16 = 0x741;
3032pub const CSR_MNCAUSE: u16 = 0x742;
3033pub const CSR_MNSTATUS: u16 = 0x744;
3034pub const CSR_MSECCFGH: u16 = 0x757;
3035pub const CSR_MCYCLEH: u16 = 0xb80;
3036pub const CSR_MINSTRETH: u16 = 0xb82;
3037pub const CSR_MHPMCOUNTER3H: u16 = 0xb83;
3038pub const CSR_MHPMCOUNTER4H: u16 = 0xb84;
3039pub const CSR_MHPMCOUNTER5H: u16 = 0xb85;
3040pub const CSR_MHPMCOUNTER6H: u16 = 0xb86;
3041pub const CSR_MHPMCOUNTER7H: u16 = 0xb87;
3042pub const CSR_MHPMCOUNTER8H: u16 = 0xb88;
3043pub const CSR_MHPMCOUNTER9H: u16 = 0xb89;
3044pub const CSR_MHPMCOUNTER10H: u16 = 0xb8a;
3045pub const CSR_MHPMCOUNTER11H: u16 = 0xb8b;
3046pub const CSR_MHPMCOUNTER12H: u16 = 0xb8c;
3047pub const CSR_MHPMCOUNTER13H: u16 = 0xb8d;
3048pub const CSR_MHPMCOUNTER14H: u16 = 0xb8e;
3049pub const CSR_MHPMCOUNTER15H: u16 = 0xb8f;
3050pub const CSR_MHPMCOUNTER16H: u16 = 0xb90;
3051pub const CSR_MHPMCOUNTER17H: u16 = 0xb91;
3052pub const CSR_MHPMCOUNTER18H: u16 = 0xb92;
3053pub const CSR_MHPMCOUNTER19H: u16 = 0xb93;
3054pub const CSR_MHPMCOUNTER20H: u16 = 0xb94;
3055pub const CSR_MHPMCOUNTER21H: u16 = 0xb95;
3056pub const CSR_MHPMCOUNTER22H: u16 = 0xb96;
3057pub const CSR_MHPMCOUNTER23H: u16 = 0xb97;
3058pub const CSR_MHPMCOUNTER24H: u16 = 0xb98;
3059pub const CSR_MHPMCOUNTER25H: u16 = 0xb99;
3060pub const CSR_MHPMCOUNTER26H: u16 = 0xb9a;
3061pub const CSR_MHPMCOUNTER27H: u16 = 0xb9b;
3062pub const CSR_MHPMCOUNTER28H: u16 = 0xb9c;
3063pub const CSR_MHPMCOUNTER29H: u16 = 0xb9d;
3064pub const CSR_MHPMCOUNTER30H: u16 = 0xb9e;
3065pub const CSR_MHPMCOUNTER31H: u16 = 0xb9f;
3066pub const CAUSE_MISALIGNED_FETCH: u8 = 0x0;
3067pub const CAUSE_FETCH_ACCESS: u8 = 0x1;
3068pub const CAUSE_ILLEGAL_INSTRUCTION: u8 = 0x2;
3069pub const CAUSE_BREAKPOINT: u8 = 0x3;
3070pub const CAUSE_MISALIGNED_LOAD: u8 = 0x4;
3071pub const CAUSE_LOAD_ACCESS: u8 = 0x5;
3072pub const CAUSE_MISALIGNED_STORE: u8 = 0x6;
3073pub const CAUSE_STORE_ACCESS: u8 = 0x7;
3074pub const CAUSE_USER_ECALL: u8 = 0x8;
3075pub const CAUSE_SUPERVISOR_ECALL: u8 = 0x9;
3076pub const CAUSE_VIRTUAL_SUPERVISOR_ECALL: u8 = 0xa;
3077pub const CAUSE_MACHINE_ECALL: u8 = 0xb;
3078pub const CAUSE_FETCH_PAGE_FAULT: u8 = 0xc;
3079pub const CAUSE_LOAD_PAGE_FAULT: u8 = 0xd;
3080pub const CAUSE_STORE_PAGE_FAULT: u8 = 0xf;
3081pub const CAUSE_DOUBLE_TRAP: u8 = 0x10;
3082pub const CAUSE_SOFTWARE_CHECK_FAULT: u8 = 0x12;
3083pub const CAUSE_HARDWARE_ERROR_FAULT: u8 = 0x13;
3084pub const CAUSE_FETCH_GUEST_PAGE_FAULT: u8 = 0x14;
3085pub const CAUSE_LOAD_GUEST_PAGE_FAULT: u8 = 0x15;
3086pub const CAUSE_VIRTUAL_INSTRUCTION: u8 = 0x16;
3087pub const CAUSE_STORE_GUEST_PAGE_FAULT: u8 = 0x17;
3088pub static OPCODE32_MATCH: [u32; 1021] = [
3089    0x33,        /* add */
3090    0xffff_ffff, /* add_uw */
3091    0x13,        /* addi */
3092    0xffff_ffff, /* addiw */
3093    0xffff_ffff, /* addw */
3094    0x2a000033,  /* aes32dsi */
3095    0x2e000033,  /* aes32dsmi */
3096    0x22000033,  /* aes32esi */
3097    0x26000033,  /* aes32esmi */
3098    0xffff_ffff, /* aes64ds */
3099    0xffff_ffff, /* aes64dsm */
3100    0xffff_ffff, /* aes64es */
3101    0xffff_ffff, /* aes64esm */
3102    0xffff_ffff, /* aes64im */
3103    0xffff_ffff, /* aes64ks1i */
3104    0xffff_ffff, /* aes64ks2 */
3105    0x2f,        /* amoadd_b */
3106    0xffff_ffff, /* amoadd_d */
3107    0x102f,      /* amoadd_h */
3108    0x202f,      /* amoadd_w */
3109    0x6000002f,  /* amoand_b */
3110    0xffff_ffff, /* amoand_d */
3111    0x6000102f,  /* amoand_h */
3112    0x6000202f,  /* amoand_w */
3113    0x2800002f,  /* amocas_b */
3114    0x2800302f,  /* amocas_d */
3115    0x2800102f,  /* amocas_h */
3116    0xffff_ffff, /* amocas_q */
3117    0x2800202f,  /* amocas_w */
3118    0xa000002f,  /* amomax_b */
3119    0xffff_ffff, /* amomax_d */
3120    0xa000102f,  /* amomax_h */
3121    0xa000202f,  /* amomax_w */
3122    0xe000002f,  /* amomaxu_b */
3123    0xffff_ffff, /* amomaxu_d */
3124    0xe000102f,  /* amomaxu_h */
3125    0xe000202f,  /* amomaxu_w */
3126    0x8000002f,  /* amomin_b */
3127    0xffff_ffff, /* amomin_d */
3128    0x8000102f,  /* amomin_h */
3129    0x8000202f,  /* amomin_w */
3130    0xc000002f,  /* amominu_b */
3131    0xffff_ffff, /* amominu_d */
3132    0xc000102f,  /* amominu_h */
3133    0xc000202f,  /* amominu_w */
3134    0x4000002f,  /* amoor_b */
3135    0xffff_ffff, /* amoor_d */
3136    0x4000102f,  /* amoor_h */
3137    0x4000202f,  /* amoor_w */
3138    0x800002f,   /* amoswap_b */
3139    0xffff_ffff, /* amoswap_d */
3140    0x800102f,   /* amoswap_h */
3141    0x800202f,   /* amoswap_w */
3142    0x2000002f,  /* amoxor_b */
3143    0xffff_ffff, /* amoxor_d */
3144    0x2000102f,  /* amoxor_h */
3145    0x2000202f,  /* amoxor_w */
3146    0x7033,      /* and */
3147    0x7013,      /* andi */
3148    0x40007033,  /* andn */
3149    0x17,        /* auipc */
3150    0x48001033,  /* bclr */
3151    0xffff_ffff, /* bclri */
3152    0x48001013,  /* bclri_rv32 */
3153    0x63,        /* beq */
3154    0x63,        /* beqz */
3155    0x48005033,  /* bext */
3156    0xffff_ffff, /* bexti */
3157    0x48005013,  /* bexti_rv32 */
3158    0x5063,      /* bge */
3159    0x7063,      /* bgeu */
3160    0x5063,      /* bgez */
3161    0x4063,      /* bgt */
3162    0x6063,      /* bgtu */
3163    0x4063,      /* bgtz */
3164    0x68001033,  /* binv */
3165    0xffff_ffff, /* binvi */
3166    0x68001013,  /* binvi_rv32 */
3167    0x5063,      /* ble */
3168    0x7063,      /* bleu */
3169    0x5063,      /* blez */
3170    0x4063,      /* blt */
3171    0x6063,      /* bltu */
3172    0x4063,      /* bltz */
3173    0x1063,      /* bne */
3174    0x1063,      /* bnez */
3175    0x68705013,  /* brev8 */
3176    0x28001033,  /* bset */
3177    0xffff_ffff, /* bseti */
3178    0x28001013,  /* bseti_rv32 */
3179    0x9002,      /* c_add */
3180    0x1,         /* c_addi */
3181    0x6101,      /* c_addi16sp */
3182    0x0,         /* c_addi4spn */
3183    0xffff_ffff, /* c_addiw */
3184    0xffff_ffff, /* c_addw */
3185    0x8c61,      /* c_and */
3186    0x8801,      /* c_andi */
3187    0xc001,      /* c_beqz */
3188    0xe001,      /* c_bnez */
3189    0x9002,      /* c_ebreak */
3190    0x2000,      /* c_fld */
3191    0x2002,      /* c_fldsp */
3192    0x6000,      /* c_flw */
3193    0x6002,      /* c_flwsp */
3194    0xa000,      /* c_fsd */
3195    0xa002,      /* c_fsdsp */
3196    0xe000,      /* c_fsw */
3197    0xe002,      /* c_fswsp */
3198    0xa001,      /* c_j */
3199    0x2001,      /* c_jal */
3200    0x9002,      /* c_jalr */
3201    0x8002,      /* c_jr */
3202    0x8000,      /* c_lbu */
3203    0xffff_ffff, /* c_ld */
3204    0xffff_ffff, /* c_ldsp */
3205    0x8440,      /* c_lh */
3206    0x8400,      /* c_lhu */
3207    0x4001,      /* c_li */
3208    0x6001,      /* c_lui */
3209    0x4000,      /* c_lw */
3210    0x4002,      /* c_lwsp */
3211    0x6081,      /* c_mop_1 */
3212    0x6581,      /* c_mop_11 */
3213    0x6681,      /* c_mop_13 */
3214    0x6781,      /* c_mop_15 */
3215    0x6181,      /* c_mop_3 */
3216    0x6281,      /* c_mop_5 */
3217    0x6381,      /* c_mop_7 */
3218    0x6481,      /* c_mop_9 */
3219    0x6081,      /* c_mop_N */
3220    0x9c41,      /* c_mul */
3221    0x8002,      /* c_mv */
3222    0x1,         /* c_nop */
3223    0x9c75,      /* c_not */
3224    0x9016,      /* c_ntl_all */
3225    0x900a,      /* c_ntl_p1 */
3226    0x900e,      /* c_ntl_pall */
3227    0x9012,      /* c_ntl_s1 */
3228    0x8c41,      /* c_or */
3229    0x8800,      /* c_sb */
3230    0xffff_ffff, /* c_sd */
3231    0xffff_ffff, /* c_sdsp */
3232    0x9c65,      /* c_sext_b */
3233    0x9c6d,      /* c_sext_h */
3234    0xffff_ffff, /* c_sext_w */
3235    0x8c00,      /* c_sh */
3236    0x2,         /* c_slli */
3237    0x2,         /* c_slli_rv32 */
3238    0x8401,      /* c_srai */
3239    0x8401,      /* c_srai_rv32 */
3240    0x8001,      /* c_srli */
3241    0x8001,      /* c_srli_rv32 */
3242    0x8c01,      /* c_sub */
3243    0xffff_ffff, /* c_subw */
3244    0xc000,      /* c_sw */
3245    0xc002,      /* c_swsp */
3246    0x8c21,      /* c_xor */
3247    0x9c61,      /* c_zext_b */
3248    0x9c69,      /* c_zext_h */
3249    0xffff_ffff, /* c_zext_w */
3250    0x10200f,    /* cbo_clean */
3251    0x20200f,    /* cbo_flush */
3252    0x200f,      /* cbo_inval */
3253    0x40200f,    /* cbo_zero */
3254    0xa001033,   /* clmul */
3255    0xa003033,   /* clmulh */
3256    0xa002033,   /* clmulr */
3257    0x60001013,  /* clz */
3258    0xffff_ffff, /* clzw */
3259    0xa002,      /* cm_jalt */
3260    0xac62,      /* cm_mva01s */
3261    0xac22,      /* cm_mvsa01 */
3262    0xba02,      /* cm_pop */
3263    0xbe02,      /* cm_popret */
3264    0xbc02,      /* cm_popretz */
3265    0xb802,      /* cm_push */
3266    0x60201013,  /* cpop */
3267    0xffff_ffff, /* cpopw */
3268    0x3073,      /* csrc */
3269    0x7073,      /* csrci */
3270    0x2073,      /* csrr */
3271    0x3073,      /* csrrc */
3272    0x7073,      /* csrrci */
3273    0x2073,      /* csrrs */
3274    0x6073,      /* csrrsi */
3275    0x1073,      /* csrrw */
3276    0x5073,      /* csrrwi */
3277    0x2073,      /* csrs */
3278    0x6073,      /* csrsi */
3279    0x1073,      /* csrw */
3280    0x5073,      /* csrwi */
3281    0x60101013,  /* ctz */
3282    0xffff_ffff, /* ctzw */
3283    0xe005033,   /* czero_eqz */
3284    0xe007033,   /* czero_nez */
3285    0x2004033,   /* div */
3286    0x2005033,   /* divu */
3287    0xffff_ffff, /* divuw */
3288    0xffff_ffff, /* divw */
3289    0x7b200073,  /* dret */
3290    0x100073,    /* ebreak */
3291    0x73,        /* ecall */
3292    0x22002053,  /* fabs_d */
3293    0x24002053,  /* fabs_h */
3294    0x26002053,  /* fabs_q */
3295    0x20002053,  /* fabs_s */
3296    0x2000053,   /* fadd_d */
3297    0x4000053,   /* fadd_h */
3298    0x6000053,   /* fadd_q */
3299    0x53,        /* fadd_s */
3300    0xe2001053,  /* fclass_d */
3301    0xe4001053,  /* fclass_h */
3302    0xe6001053,  /* fclass_q */
3303    0xe0001053,  /* fclass_s */
3304    0x42200053,  /* fcvt_d_h */
3305    0xffff_ffff, /* fcvt_d_l */
3306    0xffff_ffff, /* fcvt_d_lu */
3307    0x42300053,  /* fcvt_d_q */
3308    0x42000053,  /* fcvt_d_s */
3309    0xd2000053,  /* fcvt_d_w */
3310    0xd2100053,  /* fcvt_d_wu */
3311    0x44100053,  /* fcvt_h_d */
3312    0xffff_ffff, /* fcvt_h_l */
3313    0xffff_ffff, /* fcvt_h_lu */
3314    0x44300053,  /* fcvt_h_q */
3315    0x44000053,  /* fcvt_h_s */
3316    0xd4000053,  /* fcvt_h_w */
3317    0xd4100053,  /* fcvt_h_wu */
3318    0xffff_ffff, /* fcvt_l_d */
3319    0xffff_ffff, /* fcvt_l_h */
3320    0xffff_ffff, /* fcvt_l_q */
3321    0xffff_ffff, /* fcvt_l_s */
3322    0xffff_ffff, /* fcvt_lu_d */
3323    0xffff_ffff, /* fcvt_lu_h */
3324    0xffff_ffff, /* fcvt_lu_q */
3325    0xffff_ffff, /* fcvt_lu_s */
3326    0x46100053,  /* fcvt_q_d */
3327    0x46200053,  /* fcvt_q_h */
3328    0xffff_ffff, /* fcvt_q_l */
3329    0xffff_ffff, /* fcvt_q_lu */
3330    0x46000053,  /* fcvt_q_s */
3331    0xd6000053,  /* fcvt_q_w */
3332    0xd6100053,  /* fcvt_q_wu */
3333    0x40100053,  /* fcvt_s_d */
3334    0x40200053,  /* fcvt_s_h */
3335    0xffff_ffff, /* fcvt_s_l */
3336    0xffff_ffff, /* fcvt_s_lu */
3337    0x40300053,  /* fcvt_s_q */
3338    0xd0000053,  /* fcvt_s_w */
3339    0xd0100053,  /* fcvt_s_wu */
3340    0xc2000053,  /* fcvt_w_d */
3341    0xc4000053,  /* fcvt_w_h */
3342    0xc6000053,  /* fcvt_w_q */
3343    0xc0000053,  /* fcvt_w_s */
3344    0xc2100053,  /* fcvt_wu_d */
3345    0xc4100053,  /* fcvt_wu_h */
3346    0xc6100053,  /* fcvt_wu_q */
3347    0xc0100053,  /* fcvt_wu_s */
3348    0xc2801053,  /* fcvtmod_w_d */
3349    0x1a000053,  /* fdiv_d */
3350    0x1c000053,  /* fdiv_h */
3351    0x1e000053,  /* fdiv_q */
3352    0x18000053,  /* fdiv_s */
3353    0xf,         /* fence */
3354    0x100f,      /* fence_i */
3355    0x8330000f,  /* fence_tso */
3356    0xa2002053,  /* feq_d */
3357    0xa4002053,  /* feq_h */
3358    0xa6002053,  /* feq_q */
3359    0xa0002053,  /* feq_s */
3360    0x3007,      /* fld */
3361    0xa2000053,  /* fle_d */
3362    0xa4000053,  /* fle_h */
3363    0xa6000053,  /* fle_q */
3364    0xa0000053,  /* fle_s */
3365    0xa2004053,  /* fleq_d */
3366    0xa4004053,  /* fleq_h */
3367    0xa6004053,  /* fleq_q */
3368    0xa0004053,  /* fleq_s */
3369    0x1007,      /* flh */
3370    0xf2100053,  /* fli_d */
3371    0xf4100053,  /* fli_h */
3372    0xf6100053,  /* fli_q */
3373    0xf0100053,  /* fli_s */
3374    0x4007,      /* flq */
3375    0xa2001053,  /* flt_d */
3376    0xa4001053,  /* flt_h */
3377    0xa6001053,  /* flt_q */
3378    0xa0001053,  /* flt_s */
3379    0xa2005053,  /* fltq_d */
3380    0xa4005053,  /* fltq_h */
3381    0xa6005053,  /* fltq_q */
3382    0xa0005053,  /* fltq_s */
3383    0x2007,      /* flw */
3384    0x2000043,   /* fmadd_d */
3385    0x4000043,   /* fmadd_h */
3386    0x6000043,   /* fmadd_q */
3387    0x43,        /* fmadd_s */
3388    0x2a001053,  /* fmax_d */
3389    0x2c001053,  /* fmax_h */
3390    0x2e001053,  /* fmax_q */
3391    0x28001053,  /* fmax_s */
3392    0x2a003053,  /* fmaxm_d */
3393    0x2c003053,  /* fmaxm_h */
3394    0x2e003053,  /* fmaxm_q */
3395    0x28003053,  /* fmaxm_s */
3396    0x2a000053,  /* fmin_d */
3397    0x2c000053,  /* fmin_h */
3398    0x2e000053,  /* fmin_q */
3399    0x28000053,  /* fmin_s */
3400    0x2a002053,  /* fminm_d */
3401    0x2c002053,  /* fminm_h */
3402    0x2e002053,  /* fminm_q */
3403    0x28002053,  /* fminm_s */
3404    0x2000047,   /* fmsub_d */
3405    0x4000047,   /* fmsub_h */
3406    0x6000047,   /* fmsub_q */
3407    0x47,        /* fmsub_s */
3408    0x12000053,  /* fmul_d */
3409    0x14000053,  /* fmul_h */
3410    0x16000053,  /* fmul_q */
3411    0x10000053,  /* fmul_s */
3412    0x22000053,  /* fmv_d */
3413    0xffff_ffff, /* fmv_d_x */
3414    0x24000053,  /* fmv_h */
3415    0xf4000053,  /* fmv_h_x */
3416    0x26000053,  /* fmv_q */
3417    0x20000053,  /* fmv_s */
3418    0xf0000053,  /* fmv_s_x */
3419    0xf0000053,  /* fmv_w_x */
3420    0xffff_ffff, /* fmv_x_d */
3421    0xe4000053,  /* fmv_x_h */
3422    0xe0000053,  /* fmv_x_s */
3423    0xe0000053,  /* fmv_x_w */
3424    0xe2100053,  /* fmvh_x_d */
3425    0xffff_ffff, /* fmvh_x_q */
3426    0xb2000053,  /* fmvp_d_x */
3427    0xffff_ffff, /* fmvp_q_x */
3428    0x22001053,  /* fneg_d */
3429    0x24001053,  /* fneg_h */
3430    0x26001053,  /* fneg_q */
3431    0x20001053,  /* fneg_s */
3432    0x200004f,   /* fnmadd_d */
3433    0x400004f,   /* fnmadd_h */
3434    0x600004f,   /* fnmadd_q */
3435    0x4f,        /* fnmadd_s */
3436    0x200004b,   /* fnmsub_d */
3437    0x400004b,   /* fnmsub_h */
3438    0x600004b,   /* fnmsub_q */
3439    0x4b,        /* fnmsub_s */
3440    0x302073,    /* frcsr */
3441    0x102073,    /* frflags */
3442    0x42400053,  /* fround_d */
3443    0x44400053,  /* fround_h */
3444    0x46400053,  /* fround_q */
3445    0x40400053,  /* fround_s */
3446    0x42500053,  /* froundnx_d */
3447    0x44500053,  /* froundnx_h */
3448    0x46500053,  /* froundnx_q */
3449    0x40500053,  /* froundnx_s */
3450    0x202073,    /* frrm */
3451    0x301073,    /* fscsr */
3452    0x3027,      /* fsd */
3453    0x101073,    /* fsflags */
3454    0x105073,    /* fsflagsi */
3455    0x22000053,  /* fsgnj_d */
3456    0x24000053,  /* fsgnj_h */
3457    0x26000053,  /* fsgnj_q */
3458    0x20000053,  /* fsgnj_s */
3459    0x22001053,  /* fsgnjn_d */
3460    0x24001053,  /* fsgnjn_h */
3461    0x26001053,  /* fsgnjn_q */
3462    0x20001053,  /* fsgnjn_s */
3463    0x22002053,  /* fsgnjx_d */
3464    0x24002053,  /* fsgnjx_h */
3465    0x26002053,  /* fsgnjx_q */
3466    0x20002053,  /* fsgnjx_s */
3467    0x1027,      /* fsh */
3468    0x4027,      /* fsq */
3469    0x5a000053,  /* fsqrt_d */
3470    0x5c000053,  /* fsqrt_h */
3471    0x5e000053,  /* fsqrt_q */
3472    0x58000053,  /* fsqrt_s */
3473    0x201073,    /* fsrm */
3474    0x205073,    /* fsrmi */
3475    0xa000053,   /* fsub_d */
3476    0xc000053,   /* fsub_h */
3477    0xe000053,   /* fsub_q */
3478    0x8000053,   /* fsub_s */
3479    0x2027,      /* fsw */
3480    0x62000073,  /* hfence_gvma */
3481    0x22000073,  /* hfence_vvma */
3482    0x66000073,  /* hinval_gvma */
3483    0x26000073,  /* hinval_vvma */
3484    0x60004073,  /* hlv_b */
3485    0x60104073,  /* hlv_bu */
3486    0xffff_ffff, /* hlv_d */
3487    0x64004073,  /* hlv_h */
3488    0x64104073,  /* hlv_hu */
3489    0x68004073,  /* hlv_w */
3490    0xffff_ffff, /* hlv_wu */
3491    0x64304073,  /* hlvx_hu */
3492    0x68304073,  /* hlvx_wu */
3493    0x62004073,  /* hsv_b */
3494    0xffff_ffff, /* hsv_d */
3495    0x66004073,  /* hsv_h */
3496    0x6a004073,  /* hsv_w */
3497    0x6f,        /* j */
3498    0x6f,        /* jal */
3499    0xef,        /* jal_pseudo */
3500    0x67,        /* jalr */
3501    0xe7,        /* jalr_pseudo */
3502    0x67,        /* jr */
3503    0x3,         /* lb */
3504    0x4003,      /* lbu */
3505    0xffff_ffff, /* ld */
3506    0x1003,      /* lh */
3507    0x5003,      /* lhu */
3508    0xffff_ffff, /* lr_d */
3509    0x1000202f,  /* lr_w */
3510    0x37,        /* lui */
3511    0x2003,      /* lw */
3512    0xffff_ffff, /* lwu */
3513    0xa006033,   /* max */
3514    0xa007033,   /* maxu */
3515    0xa004033,   /* min */
3516    0xa005033,   /* minu */
3517    0x81c04073,  /* mop_r_0 */
3518    0x81d04073,  /* mop_r_1 */
3519    0x89e04073,  /* mop_r_10 */
3520    0x89f04073,  /* mop_r_11 */
3521    0x8dc04073,  /* mop_r_12 */
3522    0x8dd04073,  /* mop_r_13 */
3523    0x8de04073,  /* mop_r_14 */
3524    0x8df04073,  /* mop_r_15 */
3525    0xc1c04073,  /* mop_r_16 */
3526    0xc1d04073,  /* mop_r_17 */
3527    0xc1e04073,  /* mop_r_18 */
3528    0xc1f04073,  /* mop_r_19 */
3529    0x81e04073,  /* mop_r_2 */
3530    0xc5c04073,  /* mop_r_20 */
3531    0xc5d04073,  /* mop_r_21 */
3532    0xc5e04073,  /* mop_r_22 */
3533    0xc5f04073,  /* mop_r_23 */
3534    0xc9c04073,  /* mop_r_24 */
3535    0xc9d04073,  /* mop_r_25 */
3536    0xc9e04073,  /* mop_r_26 */
3537    0xc9f04073,  /* mop_r_27 */
3538    0xcdc04073,  /* mop_r_28 */
3539    0xcdd04073,  /* mop_r_29 */
3540    0x81f04073,  /* mop_r_3 */
3541    0xcde04073,  /* mop_r_30 */
3542    0xcdf04073,  /* mop_r_31 */
3543    0x85c04073,  /* mop_r_4 */
3544    0x85d04073,  /* mop_r_5 */
3545    0x85e04073,  /* mop_r_6 */
3546    0x85f04073,  /* mop_r_7 */
3547    0x89c04073,  /* mop_r_8 */
3548    0x89d04073,  /* mop_r_9 */
3549    0x81c04073,  /* mop_r_N */
3550    0x82004073,  /* mop_rr_0 */
3551    0x86004073,  /* mop_rr_1 */
3552    0x8a004073,  /* mop_rr_2 */
3553    0x8e004073,  /* mop_rr_3 */
3554    0xc2004073,  /* mop_rr_4 */
3555    0xc6004073,  /* mop_rr_5 */
3556    0xca004073,  /* mop_rr_6 */
3557    0xce004073,  /* mop_rr_7 */
3558    0x82004073,  /* mop_rr_N */
3559    0x30200073,  /* mret */
3560    0x2000033,   /* mul */
3561    0x2001033,   /* mulh */
3562    0x2002033,   /* mulhsu */
3563    0x2003033,   /* mulhu */
3564    0xffff_ffff, /* mulw */
3565    0x13,        /* mv */
3566    0x40000033,  /* neg */
3567    0x13,        /* nop */
3568    0x500033,    /* ntl_all */
3569    0x200033,    /* ntl_p1 */
3570    0x300033,    /* ntl_pall */
3571    0x400033,    /* ntl_s1 */
3572    0x6033,      /* or */
3573    0x28705013,  /* orc_b */
3574    0x6013,      /* ori */
3575    0x40006033,  /* orn */
3576    0x8004033,   /* pack */
3577    0x8007033,   /* packh */
3578    0xffff_ffff, /* packw */
3579    0x100000f,   /* pause */
3580    0x6013,      /* prefetch_i */
3581    0x106013,    /* prefetch_r */
3582    0x306013,    /* prefetch_w */
3583    0xc0002073,  /* rdcycle */
3584    0xc8002073,  /* rdcycleh */
3585    0xc0202073,  /* rdinstret */
3586    0xc8202073,  /* rdinstreth */
3587    0xc0102073,  /* rdtime */
3588    0xc8102073,  /* rdtimeh */
3589    0x2006033,   /* rem */
3590    0x2007033,   /* remu */
3591    0xffff_ffff, /* remuw */
3592    0xffff_ffff, /* remw */
3593    0x8067,      /* ret */
3594    0xffff_ffff, /* rev8 */
3595    0x69805013,  /* rev8_rv32 */
3596    0x60001033,  /* rol */
3597    0xffff_ffff, /* rolw */
3598    0x60005033,  /* ror */
3599    0xffff_ffff, /* rori */
3600    0x60005013,  /* rori_rv32 */
3601    0xffff_ffff, /* roriw */
3602    0xffff_ffff, /* rorw */
3603    0x23,        /* sb */
3604    0x100073,    /* sbreak */
3605    0xffff_ffff, /* sc_d */
3606    0x1800202f,  /* sc_w */
3607    0x73,        /* scall */
3608    0xffff_ffff, /* sd */
3609    0x103013,    /* seqz */
3610    0x60401013,  /* sext_b */
3611    0x60501013,  /* sext_h */
3612    0xffff_ffff, /* sext_w */
3613    0x18100073,  /* sfence_inval_ir */
3614    0x12000073,  /* sfence_vma */
3615    0x18000073,  /* sfence_w_inval */
3616    0x2033,      /* sgtz */
3617    0x1023,      /* sh */
3618    0x20002033,  /* sh1add */
3619    0xffff_ffff, /* sh1add_uw */
3620    0x20004033,  /* sh2add */
3621    0xffff_ffff, /* sh2add_uw */
3622    0x20006033,  /* sh3add */
3623    0xffff_ffff, /* sh3add_uw */
3624    0x10201013,  /* sha256sig0 */
3625    0x10301013,  /* sha256sig1 */
3626    0x10001013,  /* sha256sum0 */
3627    0x10101013,  /* sha256sum1 */
3628    0xffff_ffff, /* sha512sig0 */
3629    0x5c000033,  /* sha512sig0h */
3630    0x54000033,  /* sha512sig0l */
3631    0xffff_ffff, /* sha512sig1 */
3632    0x5e000033,  /* sha512sig1h */
3633    0x56000033,  /* sha512sig1l */
3634    0xffff_ffff, /* sha512sum0 */
3635    0x50000033,  /* sha512sum0r */
3636    0xffff_ffff, /* sha512sum1 */
3637    0x52000033,  /* sha512sum1r */
3638    0x16000073,  /* sinval_vma */
3639    0x1033,      /* sll */
3640    0x1013,      /* slli */
3641    0x1013,      /* slli_rv32 */
3642    0xffff_ffff, /* slli_uw */
3643    0xffff_ffff, /* slliw */
3644    0xffff_ffff, /* sllw */
3645    0x2033,      /* slt */
3646    0x2013,      /* slti */
3647    0x3013,      /* sltiu */
3648    0x3033,      /* sltu */
3649    0x2033,      /* sltz */
3650    0x10801013,  /* sm3p0 */
3651    0x10901013,  /* sm3p1 */
3652    0x30000033,  /* sm4ed */
3653    0x34000033,  /* sm4ks */
3654    0x3033,      /* snez */
3655    0x40005033,  /* sra */
3656    0x40005013,  /* srai */
3657    0x40005013,  /* srai_rv32 */
3658    0xffff_ffff, /* sraiw */
3659    0xffff_ffff, /* sraw */
3660    0x10200073,  /* sret */
3661    0x5033,      /* srl */
3662    0x5013,      /* srli */
3663    0x5013,      /* srli_rv32 */
3664    0xffff_ffff, /* srliw */
3665    0xffff_ffff, /* srlw */
3666    0x40000033,  /* sub */
3667    0xffff_ffff, /* subw */
3668    0x2023,      /* sw */
3669    0x8f05013,   /* unzip */
3670    0x24002057,  /* vaadd_vv */
3671    0x24006057,  /* vaadd_vx */
3672    0x20002057,  /* vaaddu_vv */
3673    0x20006057,  /* vaaddu_vx */
3674    0x40003057,  /* vadc_vim */
3675    0x40000057,  /* vadc_vvm */
3676    0x40004057,  /* vadc_vxm */
3677    0x3057,      /* vadd_vi */
3678    0x57,        /* vadd_vv */
3679    0x4057,      /* vadd_vx */
3680    0xa600a077,  /* vaesdf_vs */
3681    0xa200a077,  /* vaesdf_vv */
3682    0xa6002077,  /* vaesdm_vs */
3683    0xa2002077,  /* vaesdm_vv */
3684    0xa601a077,  /* vaesef_vs */
3685    0xa201a077,  /* vaesef_vv */
3686    0xa6012077,  /* vaesem_vs */
3687    0xa2012077,  /* vaesem_vv */
3688    0x8a002077,  /* vaeskf1_vi */
3689    0xaa002077,  /* vaeskf2_vi */
3690    0xa603a077,  /* vaesz_vs */
3691    0x24003057,  /* vand_vi */
3692    0x24000057,  /* vand_vv */
3693    0x24004057,  /* vand_vx */
3694    0x4000057,   /* vandn_vv */
3695    0x4004057,   /* vandn_vx */
3696    0x2c002057,  /* vasub_vv */
3697    0x2c006057,  /* vasub_vx */
3698    0x28002057,  /* vasubu_vv */
3699    0x28006057,  /* vasubu_vx */
3700    0x48042057,  /* vbrev8_v */
3701    0x48052057,  /* vbrev_v */
3702    0x30002057,  /* vclmul_vv */
3703    0x30006057,  /* vclmul_vx */
3704    0x34002057,  /* vclmulh_vv */
3705    0x34006057,  /* vclmulh_vx */
3706    0x48062057,  /* vclz_v */
3707    0x5e002057,  /* vcompress_vm */
3708    0x40082057,  /* vcpop_m */
3709    0x48072057,  /* vcpop_v */
3710    0x4806a057,  /* vctz_v */
3711    0x84002057,  /* vdiv_vv */
3712    0x84006057,  /* vdiv_vx */
3713    0x80002057,  /* vdivu_vv */
3714    0x80006057,  /* vdivu_vx */
3715    0x5057,      /* vfadd_vf */
3716    0x1057,      /* vfadd_vv */
3717    0x4c081057,  /* vfclass_v */
3718    0x48019057,  /* vfcvt_f_x_v */
3719    0x48011057,  /* vfcvt_f_xu_v */
3720    0x48039057,  /* vfcvt_rtz_x_f_v */
3721    0x48031057,  /* vfcvt_rtz_xu_f_v */
3722    0x48009057,  /* vfcvt_x_f_v */
3723    0x48001057,  /* vfcvt_xu_f_v */
3724    0x80005057,  /* vfdiv_vf */
3725    0x80001057,  /* vfdiv_vv */
3726    0x4008a057,  /* vfirst_m */
3727    0xb0005057,  /* vfmacc_vf */
3728    0xb0001057,  /* vfmacc_vv */
3729    0xa0005057,  /* vfmadd_vf */
3730    0xa0001057,  /* vfmadd_vv */
3731    0x18005057,  /* vfmax_vf */
3732    0x18001057,  /* vfmax_vv */
3733    0x5c005057,  /* vfmerge_vfm */
3734    0x10005057,  /* vfmin_vf */
3735    0x10001057,  /* vfmin_vv */
3736    0xb8005057,  /* vfmsac_vf */
3737    0xb8001057,  /* vfmsac_vv */
3738    0xa8005057,  /* vfmsub_vf */
3739    0xa8001057,  /* vfmsub_vv */
3740    0x90005057,  /* vfmul_vf */
3741    0x90001057,  /* vfmul_vv */
3742    0x42001057,  /* vfmv_f_s */
3743    0x42005057,  /* vfmv_s_f */
3744    0x5e005057,  /* vfmv_v_f */
3745    0x480a1057,  /* vfncvt_f_f_w */
3746    0x48099057,  /* vfncvt_f_x_w */
3747    0x48091057,  /* vfncvt_f_xu_w */
3748    0x480a9057,  /* vfncvt_rod_f_f_w */
3749    0x480b9057,  /* vfncvt_rtz_x_f_w */
3750    0x480b1057,  /* vfncvt_rtz_xu_f_w */
3751    0x48089057,  /* vfncvt_x_f_w */
3752    0x48081057,  /* vfncvt_xu_f_w */
3753    0xb4005057,  /* vfnmacc_vf */
3754    0xb4001057,  /* vfnmacc_vv */
3755    0xa4005057,  /* vfnmadd_vf */
3756    0xa4001057,  /* vfnmadd_vv */
3757    0xbc005057,  /* vfnmsac_vf */
3758    0xbc001057,  /* vfnmsac_vv */
3759    0xac005057,  /* vfnmsub_vf */
3760    0xac001057,  /* vfnmsub_vv */
3761    0x84005057,  /* vfrdiv_vf */
3762    0x4c029057,  /* vfrec7_v */
3763    0x1c001057,  /* vfredmax_vs */
3764    0x14001057,  /* vfredmin_vs */
3765    0xc001057,   /* vfredosum_vs */
3766    0x4001057,   /* vfredsum_vs */
3767    0x4001057,   /* vfredusum_vs */
3768    0x4c021057,  /* vfrsqrt7_v */
3769    0x9c005057,  /* vfrsub_vf */
3770    0x20005057,  /* vfsgnj_vf */
3771    0x20001057,  /* vfsgnj_vv */
3772    0x24005057,  /* vfsgnjn_vf */
3773    0x24001057,  /* vfsgnjn_vv */
3774    0x28005057,  /* vfsgnjx_vf */
3775    0x28001057,  /* vfsgnjx_vv */
3776    0x3c005057,  /* vfslide1down_vf */
3777    0x38005057,  /* vfslide1up_vf */
3778    0x4c001057,  /* vfsqrt_v */
3779    0x8005057,   /* vfsub_vf */
3780    0x8001057,   /* vfsub_vv */
3781    0xc0005057,  /* vfwadd_vf */
3782    0xc0001057,  /* vfwadd_vv */
3783    0xd0005057,  /* vfwadd_wf */
3784    0xd0001057,  /* vfwadd_wv */
3785    0x48061057,  /* vfwcvt_f_f_v */
3786    0x48059057,  /* vfwcvt_f_x_v */
3787    0x48051057,  /* vfwcvt_f_xu_v */
3788    0x48079057,  /* vfwcvt_rtz_x_f_v */
3789    0x48071057,  /* vfwcvt_rtz_xu_f_v */
3790    0x48049057,  /* vfwcvt_x_f_v */
3791    0x48041057,  /* vfwcvt_xu_f_v */
3792    0xf0005057,  /* vfwmacc_vf */
3793    0xf0001057,  /* vfwmacc_vv */
3794    0xf8005057,  /* vfwmsac_vf */
3795    0xf8001057,  /* vfwmsac_vv */
3796    0xe0005057,  /* vfwmul_vf */
3797    0xe0001057,  /* vfwmul_vv */
3798    0xf4005057,  /* vfwnmacc_vf */
3799    0xf4001057,  /* vfwnmacc_vv */
3800    0xfc005057,  /* vfwnmsac_vf */
3801    0xfc001057,  /* vfwnmsac_vv */
3802    0xcc001057,  /* vfwredosum_vs */
3803    0xc4001057,  /* vfwredsum_vs */
3804    0xc4001057,  /* vfwredusum_vs */
3805    0xc8005057,  /* vfwsub_vf */
3806    0xc8001057,  /* vfwsub_vv */
3807    0xd8005057,  /* vfwsub_wf */
3808    0xd8001057,  /* vfwsub_wv */
3809    0xb2002077,  /* vghsh_vv */
3810    0xa208a077,  /* vgmul_vv */
3811    0x5008a057,  /* vid_v */
3812    0x50082057,  /* viota_m */
3813    0x2800007,   /* vl1r_v */
3814    0x2805007,   /* vl1re16_v */
3815    0x2806007,   /* vl1re32_v */
3816    0x2807007,   /* vl1re64_v */
3817    0x2800007,   /* vl1re8_v */
3818    0x22800007,  /* vl2r_v */
3819    0x22805007,  /* vl2re16_v */
3820    0x22806007,  /* vl2re32_v */
3821    0x22807007,  /* vl2re64_v */
3822    0x22800007,  /* vl2re8_v */
3823    0x62800007,  /* vl4r_v */
3824    0x62805007,  /* vl4re16_v */
3825    0x62806007,  /* vl4re32_v */
3826    0x62807007,  /* vl4re64_v */
3827    0x62800007,  /* vl4re8_v */
3828    0xe2800007,  /* vl8r_v */
3829    0xe2805007,  /* vl8re16_v */
3830    0xe2806007,  /* vl8re32_v */
3831    0xe2807007,  /* vl8re64_v */
3832    0xe2800007,  /* vl8re8_v */
3833    0x5007,      /* vle16_v */
3834    0x1005007,   /* vle16ff_v */
3835    0x2b00007,   /* vle1_v */
3836    0x6007,      /* vle32_v */
3837    0x1006007,   /* vle32ff_v */
3838    0x7007,      /* vle64_v */
3839    0x1007007,   /* vle64ff_v */
3840    0x7,         /* vle8_v */
3841    0x1000007,   /* vle8ff_v */
3842    0x2b00007,   /* vlm_v */
3843    0xc005007,   /* vloxei16_v */
3844    0xc006007,   /* vloxei32_v */
3845    0xc007007,   /* vloxei64_v */
3846    0xc000007,   /* vloxei8_v */
3847    0x8005007,   /* vlse16_v */
3848    0x8006007,   /* vlse32_v */
3849    0x8007007,   /* vlse64_v */
3850    0x8000007,   /* vlse8_v */
3851    0x4005007,   /* vluxei16_v */
3852    0x4006007,   /* vluxei32_v */
3853    0x4007007,   /* vluxei64_v */
3854    0x4000007,   /* vluxei8_v */
3855    0xb4002057,  /* vmacc_vv */
3856    0xb4006057,  /* vmacc_vx */
3857    0x46003057,  /* vmadc_vi */
3858    0x44003057,  /* vmadc_vim */
3859    0x46000057,  /* vmadc_vv */
3860    0x44000057,  /* vmadc_vvm */
3861    0x46004057,  /* vmadc_vx */
3862    0x44004057,  /* vmadc_vxm */
3863    0xa4002057,  /* vmadd_vv */
3864    0xa4006057,  /* vmadd_vx */
3865    0x66002057,  /* vmand_mm */
3866    0x62002057,  /* vmandn_mm */
3867    0x60002057,  /* vmandnot_mm */
3868    0x1c000057,  /* vmax_vv */
3869    0x1c004057,  /* vmax_vx */
3870    0x18000057,  /* vmaxu_vv */
3871    0x18004057,  /* vmaxu_vx */
3872    0x5c003057,  /* vmerge_vim */
3873    0x5c000057,  /* vmerge_vvm */
3874    0x5c004057,  /* vmerge_vxm */
3875    0x60005057,  /* vmfeq_vf */
3876    0x60001057,  /* vmfeq_vv */
3877    0x7c005057,  /* vmfge_vf */
3878    0x74005057,  /* vmfgt_vf */
3879    0x64005057,  /* vmfle_vf */
3880    0x64001057,  /* vmfle_vv */
3881    0x6c005057,  /* vmflt_vf */
3882    0x6c001057,  /* vmflt_vv */
3883    0x70005057,  /* vmfne_vf */
3884    0x70001057,  /* vmfne_vv */
3885    0x14000057,  /* vmin_vv */
3886    0x14004057,  /* vmin_vx */
3887    0x10000057,  /* vminu_vv */
3888    0x10004057,  /* vminu_vx */
3889    0x76002057,  /* vmnand_mm */
3890    0x7a002057,  /* vmnor_mm */
3891    0x6a002057,  /* vmor_mm */
3892    0x72002057,  /* vmorn_mm */
3893    0x70002057,  /* vmornot_mm */
3894    0x4e000057,  /* vmsbc_vv */
3895    0x4c000057,  /* vmsbc_vvm */
3896    0x4e004057,  /* vmsbc_vx */
3897    0x4c004057,  /* vmsbc_vxm */
3898    0x5000a057,  /* vmsbf_m */
3899    0x60003057,  /* vmseq_vi */
3900    0x60000057,  /* vmseq_vv */
3901    0x60004057,  /* vmseq_vx */
3902    0x7c003057,  /* vmsgt_vi */
3903    0x7c004057,  /* vmsgt_vx */
3904    0x78003057,  /* vmsgtu_vi */
3905    0x78004057,  /* vmsgtu_vx */
3906    0x5001a057,  /* vmsif_m */
3907    0x74003057,  /* vmsle_vi */
3908    0x74000057,  /* vmsle_vv */
3909    0x74004057,  /* vmsle_vx */
3910    0x70003057,  /* vmsleu_vi */
3911    0x70000057,  /* vmsleu_vv */
3912    0x70004057,  /* vmsleu_vx */
3913    0x6c000057,  /* vmslt_vv */
3914    0x6c004057,  /* vmslt_vx */
3915    0x68000057,  /* vmsltu_vv */
3916    0x68004057,  /* vmsltu_vx */
3917    0x64003057,  /* vmsne_vi */
3918    0x64000057,  /* vmsne_vv */
3919    0x64004057,  /* vmsne_vx */
3920    0x50012057,  /* vmsof_m */
3921    0x94002057,  /* vmul_vv */
3922    0x94006057,  /* vmul_vx */
3923    0x9c002057,  /* vmulh_vv */
3924    0x9c006057,  /* vmulh_vx */
3925    0x98002057,  /* vmulhsu_vv */
3926    0x98006057,  /* vmulhsu_vx */
3927    0x90002057,  /* vmulhu_vv */
3928    0x90006057,  /* vmulhu_vx */
3929    0x9e003057,  /* vmv1r_v */
3930    0x9e00b057,  /* vmv2r_v */
3931    0x9e01b057,  /* vmv4r_v */
3932    0x9e03b057,  /* vmv8r_v */
3933    0x42006057,  /* vmv_s_x */
3934    0x5e003057,  /* vmv_v_i */
3935    0x5e000057,  /* vmv_v_v */
3936    0x5e004057,  /* vmv_v_x */
3937    0x42002057,  /* vmv_x_s */
3938    0x7e002057,  /* vmxnor_mm */
3939    0x6e002057,  /* vmxor_mm */
3940    0xbc003057,  /* vnclip_wi */
3941    0xbc000057,  /* vnclip_wv */
3942    0xbc004057,  /* vnclip_wx */
3943    0xb8003057,  /* vnclipu_wi */
3944    0xb8000057,  /* vnclipu_wv */
3945    0xb8004057,  /* vnclipu_wx */
3946    0xbc002057,  /* vnmsac_vv */
3947    0xbc006057,  /* vnmsac_vx */
3948    0xac002057,  /* vnmsub_vv */
3949    0xac006057,  /* vnmsub_vx */
3950    0xb4003057,  /* vnsra_wi */
3951    0xb4000057,  /* vnsra_wv */
3952    0xb4004057,  /* vnsra_wx */
3953    0xb0003057,  /* vnsrl_wi */
3954    0xb0000057,  /* vnsrl_wv */
3955    0xb0004057,  /* vnsrl_wx */
3956    0x28003057,  /* vor_vi */
3957    0x28000057,  /* vor_vv */
3958    0x28004057,  /* vor_vx */
3959    0x40082057,  /* vpopc_m */
3960    0x4002057,   /* vredand_vs */
3961    0x1c002057,  /* vredmax_vs */
3962    0x18002057,  /* vredmaxu_vs */
3963    0x14002057,  /* vredmin_vs */
3964    0x10002057,  /* vredminu_vs */
3965    0x8002057,   /* vredor_vs */
3966    0x2057,      /* vredsum_vs */
3967    0xc002057,   /* vredxor_vs */
3968    0x8c002057,  /* vrem_vv */
3969    0x8c006057,  /* vrem_vx */
3970    0x88002057,  /* vremu_vv */
3971    0x88006057,  /* vremu_vx */
3972    0x4804a057,  /* vrev8_v */
3973    0x30003057,  /* vrgather_vi */
3974    0x30000057,  /* vrgather_vv */
3975    0x30004057,  /* vrgather_vx */
3976    0x38000057,  /* vrgatherei16_vv */
3977    0x54000057,  /* vrol_vv */
3978    0x54004057,  /* vrol_vx */
3979    0x50003057,  /* vror_vi */
3980    0x50000057,  /* vror_vv */
3981    0x50004057,  /* vror_vx */
3982    0xc003057,   /* vrsub_vi */
3983    0xc004057,   /* vrsub_vx */
3984    0x2800027,   /* vs1r_v */
3985    0x22800027,  /* vs2r_v */
3986    0x62800027,  /* vs4r_v */
3987    0xe2800027,  /* vs8r_v */
3988    0x84003057,  /* vsadd_vi */
3989    0x84000057,  /* vsadd_vv */
3990    0x84004057,  /* vsadd_vx */
3991    0x80003057,  /* vsaddu_vi */
3992    0x80000057,  /* vsaddu_vv */
3993    0x80004057,  /* vsaddu_vx */
3994    0x48000057,  /* vsbc_vvm */
3995    0x48004057,  /* vsbc_vxm */
3996    0x5027,      /* vse16_v */
3997    0x2b00027,   /* vse1_v */
3998    0x6027,      /* vse32_v */
3999    0x7027,      /* vse64_v */
4000    0x27,        /* vse8_v */
4001    0xc0007057,  /* vsetivli */
4002    0x80007057,  /* vsetvl */
4003    0x7057,      /* vsetvli */
4004    0x4803a057,  /* vsext_vf2 */
4005    0x4802a057,  /* vsext_vf4 */
4006    0x4801a057,  /* vsext_vf8 */
4007    0xba002077,  /* vsha2ch_vv */
4008    0xbe002077,  /* vsha2cl_vv */
4009    0xb6002077,  /* vsha2ms_vv */
4010    0x3c006057,  /* vslide1down_vx */
4011    0x38006057,  /* vslide1up_vx */
4012    0x3c003057,  /* vslidedown_vi */
4013    0x3c004057,  /* vslidedown_vx */
4014    0x38003057,  /* vslideup_vi */
4015    0x38004057,  /* vslideup_vx */
4016    0x94003057,  /* vsll_vi */
4017    0x94000057,  /* vsll_vv */
4018    0x94004057,  /* vsll_vx */
4019    0xae002077,  /* vsm3c_vi */
4020    0x82002077,  /* vsm3me_vv */
4021    0x86002077,  /* vsm4k_vi */
4022    0xa6082077,  /* vsm4r_vs */
4023    0xa2082077,  /* vsm4r_vv */
4024    0x2b00027,   /* vsm_v */
4025    0x9c000057,  /* vsmul_vv */
4026    0x9c004057,  /* vsmul_vx */
4027    0xc005027,   /* vsoxei16_v */
4028    0xc006027,   /* vsoxei32_v */
4029    0xc007027,   /* vsoxei64_v */
4030    0xc000027,   /* vsoxei8_v */
4031    0xa4003057,  /* vsra_vi */
4032    0xa4000057,  /* vsra_vv */
4033    0xa4004057,  /* vsra_vx */
4034    0xa0003057,  /* vsrl_vi */
4035    0xa0000057,  /* vsrl_vv */
4036    0xa0004057,  /* vsrl_vx */
4037    0x8005027,   /* vsse16_v */
4038    0x8006027,   /* vsse32_v */
4039    0x8007027,   /* vsse64_v */
4040    0x8000027,   /* vsse8_v */
4041    0xac003057,  /* vssra_vi */
4042    0xac000057,  /* vssra_vv */
4043    0xac004057,  /* vssra_vx */
4044    0xa8003057,  /* vssrl_vi */
4045    0xa8000057,  /* vssrl_vv */
4046    0xa8004057,  /* vssrl_vx */
4047    0x8c000057,  /* vssub_vv */
4048    0x8c004057,  /* vssub_vx */
4049    0x88000057,  /* vssubu_vv */
4050    0x88004057,  /* vssubu_vx */
4051    0x8000057,   /* vsub_vv */
4052    0x8004057,   /* vsub_vx */
4053    0x4005027,   /* vsuxei16_v */
4054    0x4006027,   /* vsuxei32_v */
4055    0x4007027,   /* vsuxei64_v */
4056    0x4000027,   /* vsuxei8_v */
4057    0xc4002057,  /* vwadd_vv */
4058    0xc4006057,  /* vwadd_vx */
4059    0xd4002057,  /* vwadd_wv */
4060    0xd4006057,  /* vwadd_wx */
4061    0xc0002057,  /* vwaddu_vv */
4062    0xc0006057,  /* vwaddu_vx */
4063    0xd0002057,  /* vwaddu_wv */
4064    0xd0006057,  /* vwaddu_wx */
4065    0xf4002057,  /* vwmacc_vv */
4066    0xf4006057,  /* vwmacc_vx */
4067    0xfc002057,  /* vwmaccsu_vv */
4068    0xfc006057,  /* vwmaccsu_vx */
4069    0xf0002057,  /* vwmaccu_vv */
4070    0xf0006057,  /* vwmaccu_vx */
4071    0xf8006057,  /* vwmaccus_vx */
4072    0xec002057,  /* vwmul_vv */
4073    0xec006057,  /* vwmul_vx */
4074    0xe8002057,  /* vwmulsu_vv */
4075    0xe8006057,  /* vwmulsu_vx */
4076    0xe0002057,  /* vwmulu_vv */
4077    0xe0006057,  /* vwmulu_vx */
4078    0xc4000057,  /* vwredsum_vs */
4079    0xc0000057,  /* vwredsumu_vs */
4080    0xd4003057,  /* vwsll_vi */
4081    0xd4000057,  /* vwsll_vv */
4082    0xd4004057,  /* vwsll_vx */
4083    0xcc002057,  /* vwsub_vv */
4084    0xcc006057,  /* vwsub_vx */
4085    0xdc002057,  /* vwsub_wv */
4086    0xdc006057,  /* vwsub_wx */
4087    0xc8002057,  /* vwsubu_vv */
4088    0xc8006057,  /* vwsubu_vx */
4089    0xd8002057,  /* vwsubu_wv */
4090    0xd8006057,  /* vwsubu_wx */
4091    0x2c003057,  /* vxor_vi */
4092    0x2c000057,  /* vxor_vv */
4093    0x2c004057,  /* vxor_vx */
4094    0x48032057,  /* vzext_vf2 */
4095    0x48022057,  /* vzext_vf4 */
4096    0x48012057,  /* vzext_vf8 */
4097    0x10500073,  /* wfi */
4098    0xd00073,    /* wrs_nto */
4099    0x1d00073,   /* wrs_sto */
4100    0x40004033,  /* xnor */
4101    0x4033,      /* xor */
4102    0x4013,      /* xori */
4103    0x28002033,  /* xperm4 */
4104    0x28004033,  /* xperm8 */
4105    0x7013,      /* zext_b */
4106    0xffff_ffff, /* zext_h */
4107    0x8004033,   /* zext_h_rv32 */
4108    0xffff_ffff, /* zext_w */
4109    0x8f01013,   /* zip */
4110];
4111pub static OPCODE32_MASK: [u32; 1021] = [
4112    0xfe00707f,  /* add */
4113    0xffff_ffff, /* add_uw */
4114    0x707f,      /* addi */
4115    0xffff_ffff, /* addiw */
4116    0xffff_ffff, /* addw */
4117    0x3e00707f,  /* aes32dsi */
4118    0x3e00707f,  /* aes32dsmi */
4119    0x3e00707f,  /* aes32esi */
4120    0x3e00707f,  /* aes32esmi */
4121    0xffff_ffff, /* aes64ds */
4122    0xffff_ffff, /* aes64dsm */
4123    0xffff_ffff, /* aes64es */
4124    0xffff_ffff, /* aes64esm */
4125    0xffff_ffff, /* aes64im */
4126    0xffff_ffff, /* aes64ks1i */
4127    0xffff_ffff, /* aes64ks2 */
4128    0xf800707f,  /* amoadd_b */
4129    0xffff_ffff, /* amoadd_d */
4130    0xf800707f,  /* amoadd_h */
4131    0xf800707f,  /* amoadd_w */
4132    0xf800707f,  /* amoand_b */
4133    0xffff_ffff, /* amoand_d */
4134    0xf800707f,  /* amoand_h */
4135    0xf800707f,  /* amoand_w */
4136    0xf800707f,  /* amocas_b */
4137    0xf800707f,  /* amocas_d */
4138    0xf800707f,  /* amocas_h */
4139    0xffff_ffff, /* amocas_q */
4140    0xf800707f,  /* amocas_w */
4141    0xf800707f,  /* amomax_b */
4142    0xffff_ffff, /* amomax_d */
4143    0xf800707f,  /* amomax_h */
4144    0xf800707f,  /* amomax_w */
4145    0xf800707f,  /* amomaxu_b */
4146    0xffff_ffff, /* amomaxu_d */
4147    0xf800707f,  /* amomaxu_h */
4148    0xf800707f,  /* amomaxu_w */
4149    0xf800707f,  /* amomin_b */
4150    0xffff_ffff, /* amomin_d */
4151    0xf800707f,  /* amomin_h */
4152    0xf800707f,  /* amomin_w */
4153    0xf800707f,  /* amominu_b */
4154    0xffff_ffff, /* amominu_d */
4155    0xf800707f,  /* amominu_h */
4156    0xf800707f,  /* amominu_w */
4157    0xf800707f,  /* amoor_b */
4158    0xffff_ffff, /* amoor_d */
4159    0xf800707f,  /* amoor_h */
4160    0xf800707f,  /* amoor_w */
4161    0xf800707f,  /* amoswap_b */
4162    0xffff_ffff, /* amoswap_d */
4163    0xf800707f,  /* amoswap_h */
4164    0xf800707f,  /* amoswap_w */
4165    0xf800707f,  /* amoxor_b */
4166    0xffff_ffff, /* amoxor_d */
4167    0xf800707f,  /* amoxor_h */
4168    0xf800707f,  /* amoxor_w */
4169    0xfe00707f,  /* and */
4170    0x707f,      /* andi */
4171    0xfe00707f,  /* andn */
4172    0x7f,        /* auipc */
4173    0xfe00707f,  /* bclr */
4174    0xffff_ffff, /* bclri */
4175    0xfe00707f,  /* bclri_rv32 */
4176    0x707f,      /* beq */
4177    0x1f0707f,   /* beqz */
4178    0xfe00707f,  /* bext */
4179    0xffff_ffff, /* bexti */
4180    0xfe00707f,  /* bexti_rv32 */
4181    0x707f,      /* bge */
4182    0x707f,      /* bgeu */
4183    0x1f0707f,   /* bgez */
4184    0x707f,      /* bgt */
4185    0x707f,      /* bgtu */
4186    0xff07f,     /* bgtz */
4187    0xfe00707f,  /* binv */
4188    0xffff_ffff, /* binvi */
4189    0xfe00707f,  /* binvi_rv32 */
4190    0x707f,      /* ble */
4191    0x707f,      /* bleu */
4192    0xff07f,     /* blez */
4193    0x707f,      /* blt */
4194    0x707f,      /* bltu */
4195    0x1f0707f,   /* bltz */
4196    0x707f,      /* bne */
4197    0x1f0707f,   /* bnez */
4198    0xfff0707f,  /* brev8 */
4199    0xfe00707f,  /* bset */
4200    0xffff_ffff, /* bseti */
4201    0xfe00707f,  /* bseti_rv32 */
4202    0xf003,      /* c_add */
4203    0xe003,      /* c_addi */
4204    0xef83,      /* c_addi16sp */
4205    0xe003,      /* c_addi4spn */
4206    0xffff_ffff, /* c_addiw */
4207    0xffff_ffff, /* c_addw */
4208    0xfc63,      /* c_and */
4209    0xec03,      /* c_andi */
4210    0xe003,      /* c_beqz */
4211    0xe003,      /* c_bnez */
4212    0xffff,      /* c_ebreak */
4213    0xe003,      /* c_fld */
4214    0xe003,      /* c_fldsp */
4215    0xe003,      /* c_flw */
4216    0xe003,      /* c_flwsp */
4217    0xe003,      /* c_fsd */
4218    0xe003,      /* c_fsdsp */
4219    0xe003,      /* c_fsw */
4220    0xe003,      /* c_fswsp */
4221    0xe003,      /* c_j */
4222    0xe003,      /* c_jal */
4223    0xf07f,      /* c_jalr */
4224    0xf07f,      /* c_jr */
4225    0xfc03,      /* c_lbu */
4226    0xffff_ffff, /* c_ld */
4227    0xffff_ffff, /* c_ldsp */
4228    0xfc43,      /* c_lh */
4229    0xfc43,      /* c_lhu */
4230    0xe003,      /* c_li */
4231    0xe003,      /* c_lui */
4232    0xe003,      /* c_lw */
4233    0xe003,      /* c_lwsp */
4234    0xffff,      /* c_mop_1 */
4235    0xffff,      /* c_mop_11 */
4236    0xffff,      /* c_mop_13 */
4237    0xffff,      /* c_mop_15 */
4238    0xffff,      /* c_mop_3 */
4239    0xffff,      /* c_mop_5 */
4240    0xffff,      /* c_mop_7 */
4241    0xffff,      /* c_mop_9 */
4242    0xf8ff,      /* c_mop_N */
4243    0xfc63,      /* c_mul */
4244    0xf003,      /* c_mv */
4245    0xef83,      /* c_nop */
4246    0xfc7f,      /* c_not */
4247    0xffff,      /* c_ntl_all */
4248    0xffff,      /* c_ntl_p1 */
4249    0xffff,      /* c_ntl_pall */
4250    0xffff,      /* c_ntl_s1 */
4251    0xfc63,      /* c_or */
4252    0xfc03,      /* c_sb */
4253    0xffff_ffff, /* c_sd */
4254    0xffff_ffff, /* c_sdsp */
4255    0xfc7f,      /* c_sext_b */
4256    0xfc7f,      /* c_sext_h */
4257    0xffff_ffff, /* c_sext_w */
4258    0xfc43,      /* c_sh */
4259    0xe003,      /* c_slli */
4260    0xf003,      /* c_slli_rv32 */
4261    0xec03,      /* c_srai */
4262    0xfc03,      /* c_srai_rv32 */
4263    0xec03,      /* c_srli */
4264    0xfc03,      /* c_srli_rv32 */
4265    0xfc63,      /* c_sub */
4266    0xffff_ffff, /* c_subw */
4267    0xe003,      /* c_sw */
4268    0xe003,      /* c_swsp */
4269    0xfc63,      /* c_xor */
4270    0xfc7f,      /* c_zext_b */
4271    0xfc7f,      /* c_zext_h */
4272    0xffff_ffff, /* c_zext_w */
4273    0xfff07fff,  /* cbo_clean */
4274    0xfff07fff,  /* cbo_flush */
4275    0xfff07fff,  /* cbo_inval */
4276    0xfff07fff,  /* cbo_zero */
4277    0xfe00707f,  /* clmul */
4278    0xfe00707f,  /* clmulh */
4279    0xfe00707f,  /* clmulr */
4280    0xfff0707f,  /* clz */
4281    0xffff_ffff, /* clzw */
4282    0xfc03,      /* cm_jalt */
4283    0xfc63,      /* cm_mva01s */
4284    0xfc63,      /* cm_mvsa01 */
4285    0xff03,      /* cm_pop */
4286    0xff03,      /* cm_popret */
4287    0xff03,      /* cm_popretz */
4288    0xff03,      /* cm_push */
4289    0xfff0707f,  /* cpop */
4290    0xffff_ffff, /* cpopw */
4291    0x7fff,      /* csrc */
4292    0x7fff,      /* csrci */
4293    0xff07f,     /* csrr */
4294    0x707f,      /* csrrc */
4295    0x707f,      /* csrrci */
4296    0x707f,      /* csrrs */
4297    0x707f,      /* csrrsi */
4298    0x707f,      /* csrrw */
4299    0x707f,      /* csrrwi */
4300    0x7fff,      /* csrs */
4301    0x7fff,      /* csrsi */
4302    0x7fff,      /* csrw */
4303    0x7fff,      /* csrwi */
4304    0xfff0707f,  /* ctz */
4305    0xffff_ffff, /* ctzw */
4306    0xfe00707f,  /* czero_eqz */
4307    0xfe00707f,  /* czero_nez */
4308    0xfe00707f,  /* div */
4309    0xfe00707f,  /* divu */
4310    0xffff_ffff, /* divuw */
4311    0xffff_ffff, /* divw */
4312    0xffffffff,  /* dret */
4313    0xffffffff,  /* ebreak */
4314    0xffffffff,  /* ecall */
4315    0xfe00707f,  /* fabs_d */
4316    0xfe00707f,  /* fabs_h */
4317    0xfe00707f,  /* fabs_q */
4318    0xfe00707f,  /* fabs_s */
4319    0xfe00007f,  /* fadd_d */
4320    0xfe00007f,  /* fadd_h */
4321    0xfe00007f,  /* fadd_q */
4322    0xfe00007f,  /* fadd_s */
4323    0xfff0707f,  /* fclass_d */
4324    0xfff0707f,  /* fclass_h */
4325    0xfff0707f,  /* fclass_q */
4326    0xfff0707f,  /* fclass_s */
4327    0xfff0007f,  /* fcvt_d_h */
4328    0xffff_ffff, /* fcvt_d_l */
4329    0xffff_ffff, /* fcvt_d_lu */
4330    0xfff0007f,  /* fcvt_d_q */
4331    0xfff0007f,  /* fcvt_d_s */
4332    0xfff0007f,  /* fcvt_d_w */
4333    0xfff0007f,  /* fcvt_d_wu */
4334    0xfff0007f,  /* fcvt_h_d */
4335    0xffff_ffff, /* fcvt_h_l */
4336    0xffff_ffff, /* fcvt_h_lu */
4337    0xfff0007f,  /* fcvt_h_q */
4338    0xfff0007f,  /* fcvt_h_s */
4339    0xfff0007f,  /* fcvt_h_w */
4340    0xfff0007f,  /* fcvt_h_wu */
4341    0xffff_ffff, /* fcvt_l_d */
4342    0xffff_ffff, /* fcvt_l_h */
4343    0xffff_ffff, /* fcvt_l_q */
4344    0xffff_ffff, /* fcvt_l_s */
4345    0xffff_ffff, /* fcvt_lu_d */
4346    0xffff_ffff, /* fcvt_lu_h */
4347    0xffff_ffff, /* fcvt_lu_q */
4348    0xffff_ffff, /* fcvt_lu_s */
4349    0xfff0007f,  /* fcvt_q_d */
4350    0xfff0007f,  /* fcvt_q_h */
4351    0xffff_ffff, /* fcvt_q_l */
4352    0xffff_ffff, /* fcvt_q_lu */
4353    0xfff0007f,  /* fcvt_q_s */
4354    0xfff0007f,  /* fcvt_q_w */
4355    0xfff0007f,  /* fcvt_q_wu */
4356    0xfff0007f,  /* fcvt_s_d */
4357    0xfff0007f,  /* fcvt_s_h */
4358    0xffff_ffff, /* fcvt_s_l */
4359    0xffff_ffff, /* fcvt_s_lu */
4360    0xfff0007f,  /* fcvt_s_q */
4361    0xfff0007f,  /* fcvt_s_w */
4362    0xfff0007f,  /* fcvt_s_wu */
4363    0xfff0007f,  /* fcvt_w_d */
4364    0xfff0007f,  /* fcvt_w_h */
4365    0xfff0007f,  /* fcvt_w_q */
4366    0xfff0007f,  /* fcvt_w_s */
4367    0xfff0007f,  /* fcvt_wu_d */
4368    0xfff0007f,  /* fcvt_wu_h */
4369    0xfff0007f,  /* fcvt_wu_q */
4370    0xfff0007f,  /* fcvt_wu_s */
4371    0xfff0707f,  /* fcvtmod_w_d */
4372    0xfe00007f,  /* fdiv_d */
4373    0xfe00007f,  /* fdiv_h */
4374    0xfe00007f,  /* fdiv_q */
4375    0xfe00007f,  /* fdiv_s */
4376    0x707f,      /* fence */
4377    0x707f,      /* fence_i */
4378    0xfff0707f,  /* fence_tso */
4379    0xfe00707f,  /* feq_d */
4380    0xfe00707f,  /* feq_h */
4381    0xfe00707f,  /* feq_q */
4382    0xfe00707f,  /* feq_s */
4383    0x707f,      /* fld */
4384    0xfe00707f,  /* fle_d */
4385    0xfe00707f,  /* fle_h */
4386    0xfe00707f,  /* fle_q */
4387    0xfe00707f,  /* fle_s */
4388    0xfe00707f,  /* fleq_d */
4389    0xfe00707f,  /* fleq_h */
4390    0xfe00707f,  /* fleq_q */
4391    0xfe00707f,  /* fleq_s */
4392    0x707f,      /* flh */
4393    0xfff0707f,  /* fli_d */
4394    0xfff0707f,  /* fli_h */
4395    0xfff0707f,  /* fli_q */
4396    0xfff0707f,  /* fli_s */
4397    0x707f,      /* flq */
4398    0xfe00707f,  /* flt_d */
4399    0xfe00707f,  /* flt_h */
4400    0xfe00707f,  /* flt_q */
4401    0xfe00707f,  /* flt_s */
4402    0xfe00707f,  /* fltq_d */
4403    0xfe00707f,  /* fltq_h */
4404    0xfe00707f,  /* fltq_q */
4405    0xfe00707f,  /* fltq_s */
4406    0x707f,      /* flw */
4407    0x600007f,   /* fmadd_d */
4408    0x600007f,   /* fmadd_h */
4409    0x600007f,   /* fmadd_q */
4410    0x600007f,   /* fmadd_s */
4411    0xfe00707f,  /* fmax_d */
4412    0xfe00707f,  /* fmax_h */
4413    0xfe00707f,  /* fmax_q */
4414    0xfe00707f,  /* fmax_s */
4415    0xfe00707f,  /* fmaxm_d */
4416    0xfe00707f,  /* fmaxm_h */
4417    0xfe00707f,  /* fmaxm_q */
4418    0xfe00707f,  /* fmaxm_s */
4419    0xfe00707f,  /* fmin_d */
4420    0xfe00707f,  /* fmin_h */
4421    0xfe00707f,  /* fmin_q */
4422    0xfe00707f,  /* fmin_s */
4423    0xfe00707f,  /* fminm_d */
4424    0xfe00707f,  /* fminm_h */
4425    0xfe00707f,  /* fminm_q */
4426    0xfe00707f,  /* fminm_s */
4427    0x600007f,   /* fmsub_d */
4428    0x600007f,   /* fmsub_h */
4429    0x600007f,   /* fmsub_q */
4430    0x600007f,   /* fmsub_s */
4431    0xfe00007f,  /* fmul_d */
4432    0xfe00007f,  /* fmul_h */
4433    0xfe00007f,  /* fmul_q */
4434    0xfe00007f,  /* fmul_s */
4435    0xfe00707f,  /* fmv_d */
4436    0xffff_ffff, /* fmv_d_x */
4437    0xfe00707f,  /* fmv_h */
4438    0xfff0707f,  /* fmv_h_x */
4439    0xfe00707f,  /* fmv_q */
4440    0xfe00707f,  /* fmv_s */
4441    0xfff0707f,  /* fmv_s_x */
4442    0xfff0707f,  /* fmv_w_x */
4443    0xffff_ffff, /* fmv_x_d */
4444    0xfff0707f,  /* fmv_x_h */
4445    0xfff0707f,  /* fmv_x_s */
4446    0xfff0707f,  /* fmv_x_w */
4447    0xfff0707f,  /* fmvh_x_d */
4448    0xffff_ffff, /* fmvh_x_q */
4449    0xfe00707f,  /* fmvp_d_x */
4450    0xffff_ffff, /* fmvp_q_x */
4451    0xfe00707f,  /* fneg_d */
4452    0xfe00707f,  /* fneg_h */
4453    0xfe00707f,  /* fneg_q */
4454    0xfe00707f,  /* fneg_s */
4455    0x600007f,   /* fnmadd_d */
4456    0x600007f,   /* fnmadd_h */
4457    0x600007f,   /* fnmadd_q */
4458    0x600007f,   /* fnmadd_s */
4459    0x600007f,   /* fnmsub_d */
4460    0x600007f,   /* fnmsub_h */
4461    0x600007f,   /* fnmsub_q */
4462    0x600007f,   /* fnmsub_s */
4463    0xfffff07f,  /* frcsr */
4464    0xfffff07f,  /* frflags */
4465    0xfff0007f,  /* fround_d */
4466    0xfff0007f,  /* fround_h */
4467    0xfff0007f,  /* fround_q */
4468    0xfff0007f,  /* fround_s */
4469    0xfff0007f,  /* froundnx_d */
4470    0xfff0007f,  /* froundnx_h */
4471    0xfff0007f,  /* froundnx_q */
4472    0xfff0007f,  /* froundnx_s */
4473    0xfffff07f,  /* frrm */
4474    0xfff0707f,  /* fscsr */
4475    0x707f,      /* fsd */
4476    0xfff0707f,  /* fsflags */
4477    0xfff0707f,  /* fsflagsi */
4478    0xfe00707f,  /* fsgnj_d */
4479    0xfe00707f,  /* fsgnj_h */
4480    0xfe00707f,  /* fsgnj_q */
4481    0xfe00707f,  /* fsgnj_s */
4482    0xfe00707f,  /* fsgnjn_d */
4483    0xfe00707f,  /* fsgnjn_h */
4484    0xfe00707f,  /* fsgnjn_q */
4485    0xfe00707f,  /* fsgnjn_s */
4486    0xfe00707f,  /* fsgnjx_d */
4487    0xfe00707f,  /* fsgnjx_h */
4488    0xfe00707f,  /* fsgnjx_q */
4489    0xfe00707f,  /* fsgnjx_s */
4490    0x707f,      /* fsh */
4491    0x707f,      /* fsq */
4492    0xfff0007f,  /* fsqrt_d */
4493    0xfff0007f,  /* fsqrt_h */
4494    0xfff0007f,  /* fsqrt_q */
4495    0xfff0007f,  /* fsqrt_s */
4496    0xfff0707f,  /* fsrm */
4497    0xfff0707f,  /* fsrmi */
4498    0xfe00007f,  /* fsub_d */
4499    0xfe00007f,  /* fsub_h */
4500    0xfe00007f,  /* fsub_q */
4501    0xfe00007f,  /* fsub_s */
4502    0x707f,      /* fsw */
4503    0xfe007fff,  /* hfence_gvma */
4504    0xfe007fff,  /* hfence_vvma */
4505    0xfe007fff,  /* hinval_gvma */
4506    0xfe007fff,  /* hinval_vvma */
4507    0xfff0707f,  /* hlv_b */
4508    0xfff0707f,  /* hlv_bu */
4509    0xffff_ffff, /* hlv_d */
4510    0xfff0707f,  /* hlv_h */
4511    0xfff0707f,  /* hlv_hu */
4512    0xfff0707f,  /* hlv_w */
4513    0xffff_ffff, /* hlv_wu */
4514    0xfff0707f,  /* hlvx_hu */
4515    0xfff0707f,  /* hlvx_wu */
4516    0xfe007fff,  /* hsv_b */
4517    0xffff_ffff, /* hsv_d */
4518    0xfe007fff,  /* hsv_h */
4519    0xfe007fff,  /* hsv_w */
4520    0xfff,       /* j */
4521    0x7f,        /* jal */
4522    0xfff,       /* jal_pseudo */
4523    0x707f,      /* jalr */
4524    0xfff07fff,  /* jalr_pseudo */
4525    0xfff07fff,  /* jr */
4526    0x707f,      /* lb */
4527    0x707f,      /* lbu */
4528    0xffff_ffff, /* ld */
4529    0x707f,      /* lh */
4530    0x707f,      /* lhu */
4531    0xffff_ffff, /* lr_d */
4532    0xf9f0707f,  /* lr_w */
4533    0x7f,        /* lui */
4534    0x707f,      /* lw */
4535    0xffff_ffff, /* lwu */
4536    0xfe00707f,  /* max */
4537    0xfe00707f,  /* maxu */
4538    0xfe00707f,  /* min */
4539    0xfe00707f,  /* minu */
4540    0xfff0707f,  /* mop_r_0 */
4541    0xfff0707f,  /* mop_r_1 */
4542    0xfff0707f,  /* mop_r_10 */
4543    0xfff0707f,  /* mop_r_11 */
4544    0xfff0707f,  /* mop_r_12 */
4545    0xfff0707f,  /* mop_r_13 */
4546    0xfff0707f,  /* mop_r_14 */
4547    0xfff0707f,  /* mop_r_15 */
4548    0xfff0707f,  /* mop_r_16 */
4549    0xfff0707f,  /* mop_r_17 */
4550    0xfff0707f,  /* mop_r_18 */
4551    0xfff0707f,  /* mop_r_19 */
4552    0xfff0707f,  /* mop_r_2 */
4553    0xfff0707f,  /* mop_r_20 */
4554    0xfff0707f,  /* mop_r_21 */
4555    0xfff0707f,  /* mop_r_22 */
4556    0xfff0707f,  /* mop_r_23 */
4557    0xfff0707f,  /* mop_r_24 */
4558    0xfff0707f,  /* mop_r_25 */
4559    0xfff0707f,  /* mop_r_26 */
4560    0xfff0707f,  /* mop_r_27 */
4561    0xfff0707f,  /* mop_r_28 */
4562    0xfff0707f,  /* mop_r_29 */
4563    0xfff0707f,  /* mop_r_3 */
4564    0xfff0707f,  /* mop_r_30 */
4565    0xfff0707f,  /* mop_r_31 */
4566    0xfff0707f,  /* mop_r_4 */
4567    0xfff0707f,  /* mop_r_5 */
4568    0xfff0707f,  /* mop_r_6 */
4569    0xfff0707f,  /* mop_r_7 */
4570    0xfff0707f,  /* mop_r_8 */
4571    0xfff0707f,  /* mop_r_9 */
4572    0xb3c0707f,  /* mop_r_N */
4573    0xfe00707f,  /* mop_rr_0 */
4574    0xfe00707f,  /* mop_rr_1 */
4575    0xfe00707f,  /* mop_rr_2 */
4576    0xfe00707f,  /* mop_rr_3 */
4577    0xfe00707f,  /* mop_rr_4 */
4578    0xfe00707f,  /* mop_rr_5 */
4579    0xfe00707f,  /* mop_rr_6 */
4580    0xfe00707f,  /* mop_rr_7 */
4581    0xb200707f,  /* mop_rr_N */
4582    0xffffffff,  /* mret */
4583    0xfe00707f,  /* mul */
4584    0xfe00707f,  /* mulh */
4585    0xfe00707f,  /* mulhsu */
4586    0xfe00707f,  /* mulhu */
4587    0xffff_ffff, /* mulw */
4588    0xfff0707f,  /* mv */
4589    0xfff0707f,  /* neg */
4590    0xffffffff,  /* nop */
4591    0xffffffff,  /* ntl_all */
4592    0xffffffff,  /* ntl_p1 */
4593    0xffffffff,  /* ntl_pall */
4594    0xffffffff,  /* ntl_s1 */
4595    0xfe00707f,  /* or */
4596    0xfff0707f,  /* orc_b */
4597    0x707f,      /* ori */
4598    0xfe00707f,  /* orn */
4599    0xfe00707f,  /* pack */
4600    0xfe00707f,  /* packh */
4601    0xffff_ffff, /* packw */
4602    0xffffffff,  /* pause */
4603    0x1f07fff,   /* prefetch_i */
4604    0x1f07fff,   /* prefetch_r */
4605    0x1f07fff,   /* prefetch_w */
4606    0xfffff07f,  /* rdcycle */
4607    0xfffff07f,  /* rdcycleh */
4608    0xfffff07f,  /* rdinstret */
4609    0xfffff07f,  /* rdinstreth */
4610    0xfffff07f,  /* rdtime */
4611    0xfffff07f,  /* rdtimeh */
4612    0xfe00707f,  /* rem */
4613    0xfe00707f,  /* remu */
4614    0xffff_ffff, /* remuw */
4615    0xffff_ffff, /* remw */
4616    0xffffffff,  /* ret */
4617    0xffff_ffff, /* rev8 */
4618    0xfff0707f,  /* rev8_rv32 */
4619    0xfe00707f,  /* rol */
4620    0xffff_ffff, /* rolw */
4621    0xfe00707f,  /* ror */
4622    0xffff_ffff, /* rori */
4623    0xfe00707f,  /* rori_rv32 */
4624    0xffff_ffff, /* roriw */
4625    0xffff_ffff, /* rorw */
4626    0x707f,      /* sb */
4627    0xffffffff,  /* sbreak */
4628    0xffff_ffff, /* sc_d */
4629    0xf800707f,  /* sc_w */
4630    0xffffffff,  /* scall */
4631    0xffff_ffff, /* sd */
4632    0xfff0707f,  /* seqz */
4633    0xfff0707f,  /* sext_b */
4634    0xfff0707f,  /* sext_h */
4635    0xffff_ffff, /* sext_w */
4636    0xffffffff,  /* sfence_inval_ir */
4637    0xfe007fff,  /* sfence_vma */
4638    0xffffffff,  /* sfence_w_inval */
4639    0xfe0ff07f,  /* sgtz */
4640    0x707f,      /* sh */
4641    0xfe00707f,  /* sh1add */
4642    0xffff_ffff, /* sh1add_uw */
4643    0xfe00707f,  /* sh2add */
4644    0xffff_ffff, /* sh2add_uw */
4645    0xfe00707f,  /* sh3add */
4646    0xffff_ffff, /* sh3add_uw */
4647    0xfff0707f,  /* sha256sig0 */
4648    0xfff0707f,  /* sha256sig1 */
4649    0xfff0707f,  /* sha256sum0 */
4650    0xfff0707f,  /* sha256sum1 */
4651    0xffff_ffff, /* sha512sig0 */
4652    0xfe00707f,  /* sha512sig0h */
4653    0xfe00707f,  /* sha512sig0l */
4654    0xffff_ffff, /* sha512sig1 */
4655    0xfe00707f,  /* sha512sig1h */
4656    0xfe00707f,  /* sha512sig1l */
4657    0xffff_ffff, /* sha512sum0 */
4658    0xfe00707f,  /* sha512sum0r */
4659    0xffff_ffff, /* sha512sum1 */
4660    0xfe00707f,  /* sha512sum1r */
4661    0xfe007fff,  /* sinval_vma */
4662    0xfe00707f,  /* sll */
4663    0xfc00707f,  /* slli */
4664    0xfe00707f,  /* slli_rv32 */
4665    0xffff_ffff, /* slli_uw */
4666    0xffff_ffff, /* slliw */
4667    0xffff_ffff, /* sllw */
4668    0xfe00707f,  /* slt */
4669    0x707f,      /* slti */
4670    0x707f,      /* sltiu */
4671    0xfe00707f,  /* sltu */
4672    0xfff0707f,  /* sltz */
4673    0xfff0707f,  /* sm3p0 */
4674    0xfff0707f,  /* sm3p1 */
4675    0x3e00707f,  /* sm4ed */
4676    0x3e00707f,  /* sm4ks */
4677    0xfe0ff07f,  /* snez */
4678    0xfe00707f,  /* sra */
4679    0xfc00707f,  /* srai */
4680    0xfe00707f,  /* srai_rv32 */
4681    0xffff_ffff, /* sraiw */
4682    0xffff_ffff, /* sraw */
4683    0xffffffff,  /* sret */
4684    0xfe00707f,  /* srl */
4685    0xfc00707f,  /* srli */
4686    0xfe00707f,  /* srli_rv32 */
4687    0xffff_ffff, /* srliw */
4688    0xffff_ffff, /* srlw */
4689    0xfe00707f,  /* sub */
4690    0xffff_ffff, /* subw */
4691    0x707f,      /* sw */
4692    0xfff0707f,  /* unzip */
4693    0xfc00707f,  /* vaadd_vv */
4694    0xfc00707f,  /* vaadd_vx */
4695    0xfc00707f,  /* vaaddu_vv */
4696    0xfc00707f,  /* vaaddu_vx */
4697    0xfe00707f,  /* vadc_vim */
4698    0xfe00707f,  /* vadc_vvm */
4699    0xfe00707f,  /* vadc_vxm */
4700    0xfc00707f,  /* vadd_vi */
4701    0xfc00707f,  /* vadd_vv */
4702    0xfc00707f,  /* vadd_vx */
4703    0xfe0ff07f,  /* vaesdf_vs */
4704    0xfe0ff07f,  /* vaesdf_vv */
4705    0xfe0ff07f,  /* vaesdm_vs */
4706    0xfe0ff07f,  /* vaesdm_vv */
4707    0xfe0ff07f,  /* vaesef_vs */
4708    0xfe0ff07f,  /* vaesef_vv */
4709    0xfe0ff07f,  /* vaesem_vs */
4710    0xfe0ff07f,  /* vaesem_vv */
4711    0xfe00707f,  /* vaeskf1_vi */
4712    0xfe00707f,  /* vaeskf2_vi */
4713    0xfe0ff07f,  /* vaesz_vs */
4714    0xfc00707f,  /* vand_vi */
4715    0xfc00707f,  /* vand_vv */
4716    0xfc00707f,  /* vand_vx */
4717    0xfc00707f,  /* vandn_vv */
4718    0xfc00707f,  /* vandn_vx */
4719    0xfc00707f,  /* vasub_vv */
4720    0xfc00707f,  /* vasub_vx */
4721    0xfc00707f,  /* vasubu_vv */
4722    0xfc00707f,  /* vasubu_vx */
4723    0xfc0ff07f,  /* vbrev8_v */
4724    0xfc0ff07f,  /* vbrev_v */
4725    0xfc00707f,  /* vclmul_vv */
4726    0xfc00707f,  /* vclmul_vx */
4727    0xfc00707f,  /* vclmulh_vv */
4728    0xfc00707f,  /* vclmulh_vx */
4729    0xfc0ff07f,  /* vclz_v */
4730    0xfe00707f,  /* vcompress_vm */
4731    0xfc0ff07f,  /* vcpop_m */
4732    0xfc0ff07f,  /* vcpop_v */
4733    0xfc0ff07f,  /* vctz_v */
4734    0xfc00707f,  /* vdiv_vv */
4735    0xfc00707f,  /* vdiv_vx */
4736    0xfc00707f,  /* vdivu_vv */
4737    0xfc00707f,  /* vdivu_vx */
4738    0xfc00707f,  /* vfadd_vf */
4739    0xfc00707f,  /* vfadd_vv */
4740    0xfc0ff07f,  /* vfclass_v */
4741    0xfc0ff07f,  /* vfcvt_f_x_v */
4742    0xfc0ff07f,  /* vfcvt_f_xu_v */
4743    0xfc0ff07f,  /* vfcvt_rtz_x_f_v */
4744    0xfc0ff07f,  /* vfcvt_rtz_xu_f_v */
4745    0xfc0ff07f,  /* vfcvt_x_f_v */
4746    0xfc0ff07f,  /* vfcvt_xu_f_v */
4747    0xfc00707f,  /* vfdiv_vf */
4748    0xfc00707f,  /* vfdiv_vv */
4749    0xfc0ff07f,  /* vfirst_m */
4750    0xfc00707f,  /* vfmacc_vf */
4751    0xfc00707f,  /* vfmacc_vv */
4752    0xfc00707f,  /* vfmadd_vf */
4753    0xfc00707f,  /* vfmadd_vv */
4754    0xfc00707f,  /* vfmax_vf */
4755    0xfc00707f,  /* vfmax_vv */
4756    0xfe00707f,  /* vfmerge_vfm */
4757    0xfc00707f,  /* vfmin_vf */
4758    0xfc00707f,  /* vfmin_vv */
4759    0xfc00707f,  /* vfmsac_vf */
4760    0xfc00707f,  /* vfmsac_vv */
4761    0xfc00707f,  /* vfmsub_vf */
4762    0xfc00707f,  /* vfmsub_vv */
4763    0xfc00707f,  /* vfmul_vf */
4764    0xfc00707f,  /* vfmul_vv */
4765    0xfe0ff07f,  /* vfmv_f_s */
4766    0xfff0707f,  /* vfmv_s_f */
4767    0xfff0707f,  /* vfmv_v_f */
4768    0xfc0ff07f,  /* vfncvt_f_f_w */
4769    0xfc0ff07f,  /* vfncvt_f_x_w */
4770    0xfc0ff07f,  /* vfncvt_f_xu_w */
4771    0xfc0ff07f,  /* vfncvt_rod_f_f_w */
4772    0xfc0ff07f,  /* vfncvt_rtz_x_f_w */
4773    0xfc0ff07f,  /* vfncvt_rtz_xu_f_w */
4774    0xfc0ff07f,  /* vfncvt_x_f_w */
4775    0xfc0ff07f,  /* vfncvt_xu_f_w */
4776    0xfc00707f,  /* vfnmacc_vf */
4777    0xfc00707f,  /* vfnmacc_vv */
4778    0xfc00707f,  /* vfnmadd_vf */
4779    0xfc00707f,  /* vfnmadd_vv */
4780    0xfc00707f,  /* vfnmsac_vf */
4781    0xfc00707f,  /* vfnmsac_vv */
4782    0xfc00707f,  /* vfnmsub_vf */
4783    0xfc00707f,  /* vfnmsub_vv */
4784    0xfc00707f,  /* vfrdiv_vf */
4785    0xfc0ff07f,  /* vfrec7_v */
4786    0xfc00707f,  /* vfredmax_vs */
4787    0xfc00707f,  /* vfredmin_vs */
4788    0xfc00707f,  /* vfredosum_vs */
4789    0xfc00707f,  /* vfredsum_vs */
4790    0xfc00707f,  /* vfredusum_vs */
4791    0xfc0ff07f,  /* vfrsqrt7_v */
4792    0xfc00707f,  /* vfrsub_vf */
4793    0xfc00707f,  /* vfsgnj_vf */
4794    0xfc00707f,  /* vfsgnj_vv */
4795    0xfc00707f,  /* vfsgnjn_vf */
4796    0xfc00707f,  /* vfsgnjn_vv */
4797    0xfc00707f,  /* vfsgnjx_vf */
4798    0xfc00707f,  /* vfsgnjx_vv */
4799    0xfc00707f,  /* vfslide1down_vf */
4800    0xfc00707f,  /* vfslide1up_vf */
4801    0xfc0ff07f,  /* vfsqrt_v */
4802    0xfc00707f,  /* vfsub_vf */
4803    0xfc00707f,  /* vfsub_vv */
4804    0xfc00707f,  /* vfwadd_vf */
4805    0xfc00707f,  /* vfwadd_vv */
4806    0xfc00707f,  /* vfwadd_wf */
4807    0xfc00707f,  /* vfwadd_wv */
4808    0xfc0ff07f,  /* vfwcvt_f_f_v */
4809    0xfc0ff07f,  /* vfwcvt_f_x_v */
4810    0xfc0ff07f,  /* vfwcvt_f_xu_v */
4811    0xfc0ff07f,  /* vfwcvt_rtz_x_f_v */
4812    0xfc0ff07f,  /* vfwcvt_rtz_xu_f_v */
4813    0xfc0ff07f,  /* vfwcvt_x_f_v */
4814    0xfc0ff07f,  /* vfwcvt_xu_f_v */
4815    0xfc00707f,  /* vfwmacc_vf */
4816    0xfc00707f,  /* vfwmacc_vv */
4817    0xfc00707f,  /* vfwmsac_vf */
4818    0xfc00707f,  /* vfwmsac_vv */
4819    0xfc00707f,  /* vfwmul_vf */
4820    0xfc00707f,  /* vfwmul_vv */
4821    0xfc00707f,  /* vfwnmacc_vf */
4822    0xfc00707f,  /* vfwnmacc_vv */
4823    0xfc00707f,  /* vfwnmsac_vf */
4824    0xfc00707f,  /* vfwnmsac_vv */
4825    0xfc00707f,  /* vfwredosum_vs */
4826    0xfc00707f,  /* vfwredsum_vs */
4827    0xfc00707f,  /* vfwredusum_vs */
4828    0xfc00707f,  /* vfwsub_vf */
4829    0xfc00707f,  /* vfwsub_vv */
4830    0xfc00707f,  /* vfwsub_wf */
4831    0xfc00707f,  /* vfwsub_wv */
4832    0xfe00707f,  /* vghsh_vv */
4833    0xfe0ff07f,  /* vgmul_vv */
4834    0xfdfff07f,  /* vid_v */
4835    0xfc0ff07f,  /* viota_m */
4836    0xfff0707f,  /* vl1r_v */
4837    0xfff0707f,  /* vl1re16_v */
4838    0xfff0707f,  /* vl1re32_v */
4839    0xfff0707f,  /* vl1re64_v */
4840    0xfff0707f,  /* vl1re8_v */
4841    0xfff0707f,  /* vl2r_v */
4842    0xfff0707f,  /* vl2re16_v */
4843    0xfff0707f,  /* vl2re32_v */
4844    0xfff0707f,  /* vl2re64_v */
4845    0xfff0707f,  /* vl2re8_v */
4846    0xfff0707f,  /* vl4r_v */
4847    0xfff0707f,  /* vl4re16_v */
4848    0xfff0707f,  /* vl4re32_v */
4849    0xfff0707f,  /* vl4re64_v */
4850    0xfff0707f,  /* vl4re8_v */
4851    0xfff0707f,  /* vl8r_v */
4852    0xfff0707f,  /* vl8re16_v */
4853    0xfff0707f,  /* vl8re32_v */
4854    0xfff0707f,  /* vl8re64_v */
4855    0xfff0707f,  /* vl8re8_v */
4856    0x1df0707f,  /* vle16_v */
4857    0x1df0707f,  /* vle16ff_v */
4858    0xfff0707f,  /* vle1_v */
4859    0x1df0707f,  /* vle32_v */
4860    0x1df0707f,  /* vle32ff_v */
4861    0x1df0707f,  /* vle64_v */
4862    0x1df0707f,  /* vle64ff_v */
4863    0x1df0707f,  /* vle8_v */
4864    0x1df0707f,  /* vle8ff_v */
4865    0xfff0707f,  /* vlm_v */
4866    0x1c00707f,  /* vloxei16_v */
4867    0x1c00707f,  /* vloxei32_v */
4868    0x1c00707f,  /* vloxei64_v */
4869    0x1c00707f,  /* vloxei8_v */
4870    0x1c00707f,  /* vlse16_v */
4871    0x1c00707f,  /* vlse32_v */
4872    0x1c00707f,  /* vlse64_v */
4873    0x1c00707f,  /* vlse8_v */
4874    0x1c00707f,  /* vluxei16_v */
4875    0x1c00707f,  /* vluxei32_v */
4876    0x1c00707f,  /* vluxei64_v */
4877    0x1c00707f,  /* vluxei8_v */
4878    0xfc00707f,  /* vmacc_vv */
4879    0xfc00707f,  /* vmacc_vx */
4880    0xfe00707f,  /* vmadc_vi */
4881    0xfe00707f,  /* vmadc_vim */
4882    0xfe00707f,  /* vmadc_vv */
4883    0xfe00707f,  /* vmadc_vvm */
4884    0xfe00707f,  /* vmadc_vx */
4885    0xfe00707f,  /* vmadc_vxm */
4886    0xfc00707f,  /* vmadd_vv */
4887    0xfc00707f,  /* vmadd_vx */
4888    0xfe00707f,  /* vmand_mm */
4889    0xfe00707f,  /* vmandn_mm */
4890    0xfc00707f,  /* vmandnot_mm */
4891    0xfc00707f,  /* vmax_vv */
4892    0xfc00707f,  /* vmax_vx */
4893    0xfc00707f,  /* vmaxu_vv */
4894    0xfc00707f,  /* vmaxu_vx */
4895    0xfe00707f,  /* vmerge_vim */
4896    0xfe00707f,  /* vmerge_vvm */
4897    0xfe00707f,  /* vmerge_vxm */
4898    0xfc00707f,  /* vmfeq_vf */
4899    0xfc00707f,  /* vmfeq_vv */
4900    0xfc00707f,  /* vmfge_vf */
4901    0xfc00707f,  /* vmfgt_vf */
4902    0xfc00707f,  /* vmfle_vf */
4903    0xfc00707f,  /* vmfle_vv */
4904    0xfc00707f,  /* vmflt_vf */
4905    0xfc00707f,  /* vmflt_vv */
4906    0xfc00707f,  /* vmfne_vf */
4907    0xfc00707f,  /* vmfne_vv */
4908    0xfc00707f,  /* vmin_vv */
4909    0xfc00707f,  /* vmin_vx */
4910    0xfc00707f,  /* vminu_vv */
4911    0xfc00707f,  /* vminu_vx */
4912    0xfe00707f,  /* vmnand_mm */
4913    0xfe00707f,  /* vmnor_mm */
4914    0xfe00707f,  /* vmor_mm */
4915    0xfe00707f,  /* vmorn_mm */
4916    0xfc00707f,  /* vmornot_mm */
4917    0xfe00707f,  /* vmsbc_vv */
4918    0xfe00707f,  /* vmsbc_vvm */
4919    0xfe00707f,  /* vmsbc_vx */
4920    0xfe00707f,  /* vmsbc_vxm */
4921    0xfc0ff07f,  /* vmsbf_m */
4922    0xfc00707f,  /* vmseq_vi */
4923    0xfc00707f,  /* vmseq_vv */
4924    0xfc00707f,  /* vmseq_vx */
4925    0xfc00707f,  /* vmsgt_vi */
4926    0xfc00707f,  /* vmsgt_vx */
4927    0xfc00707f,  /* vmsgtu_vi */
4928    0xfc00707f,  /* vmsgtu_vx */
4929    0xfc0ff07f,  /* vmsif_m */
4930    0xfc00707f,  /* vmsle_vi */
4931    0xfc00707f,  /* vmsle_vv */
4932    0xfc00707f,  /* vmsle_vx */
4933    0xfc00707f,  /* vmsleu_vi */
4934    0xfc00707f,  /* vmsleu_vv */
4935    0xfc00707f,  /* vmsleu_vx */
4936    0xfc00707f,  /* vmslt_vv */
4937    0xfc00707f,  /* vmslt_vx */
4938    0xfc00707f,  /* vmsltu_vv */
4939    0xfc00707f,  /* vmsltu_vx */
4940    0xfc00707f,  /* vmsne_vi */
4941    0xfc00707f,  /* vmsne_vv */
4942    0xfc00707f,  /* vmsne_vx */
4943    0xfc0ff07f,  /* vmsof_m */
4944    0xfc00707f,  /* vmul_vv */
4945    0xfc00707f,  /* vmul_vx */
4946    0xfc00707f,  /* vmulh_vv */
4947    0xfc00707f,  /* vmulh_vx */
4948    0xfc00707f,  /* vmulhsu_vv */
4949    0xfc00707f,  /* vmulhsu_vx */
4950    0xfc00707f,  /* vmulhu_vv */
4951    0xfc00707f,  /* vmulhu_vx */
4952    0xfe0ff07f,  /* vmv1r_v */
4953    0xfe0ff07f,  /* vmv2r_v */
4954    0xfe0ff07f,  /* vmv4r_v */
4955    0xfe0ff07f,  /* vmv8r_v */
4956    0xfff0707f,  /* vmv_s_x */
4957    0xfff0707f,  /* vmv_v_i */
4958    0xfff0707f,  /* vmv_v_v */
4959    0xfff0707f,  /* vmv_v_x */
4960    0xfe0ff07f,  /* vmv_x_s */
4961    0xfe00707f,  /* vmxnor_mm */
4962    0xfe00707f,  /* vmxor_mm */
4963    0xfc00707f,  /* vnclip_wi */
4964    0xfc00707f,  /* vnclip_wv */
4965    0xfc00707f,  /* vnclip_wx */
4966    0xfc00707f,  /* vnclipu_wi */
4967    0xfc00707f,  /* vnclipu_wv */
4968    0xfc00707f,  /* vnclipu_wx */
4969    0xfc00707f,  /* vnmsac_vv */
4970    0xfc00707f,  /* vnmsac_vx */
4971    0xfc00707f,  /* vnmsub_vv */
4972    0xfc00707f,  /* vnmsub_vx */
4973    0xfc00707f,  /* vnsra_wi */
4974    0xfc00707f,  /* vnsra_wv */
4975    0xfc00707f,  /* vnsra_wx */
4976    0xfc00707f,  /* vnsrl_wi */
4977    0xfc00707f,  /* vnsrl_wv */
4978    0xfc00707f,  /* vnsrl_wx */
4979    0xfc00707f,  /* vor_vi */
4980    0xfc00707f,  /* vor_vv */
4981    0xfc00707f,  /* vor_vx */
4982    0xfc0ff07f,  /* vpopc_m */
4983    0xfc00707f,  /* vredand_vs */
4984    0xfc00707f,  /* vredmax_vs */
4985    0xfc00707f,  /* vredmaxu_vs */
4986    0xfc00707f,  /* vredmin_vs */
4987    0xfc00707f,  /* vredminu_vs */
4988    0xfc00707f,  /* vredor_vs */
4989    0xfc00707f,  /* vredsum_vs */
4990    0xfc00707f,  /* vredxor_vs */
4991    0xfc00707f,  /* vrem_vv */
4992    0xfc00707f,  /* vrem_vx */
4993    0xfc00707f,  /* vremu_vv */
4994    0xfc00707f,  /* vremu_vx */
4995    0xfc0ff07f,  /* vrev8_v */
4996    0xfc00707f,  /* vrgather_vi */
4997    0xfc00707f,  /* vrgather_vv */
4998    0xfc00707f,  /* vrgather_vx */
4999    0xfc00707f,  /* vrgatherei16_vv */
5000    0xfc00707f,  /* vrol_vv */
5001    0xfc00707f,  /* vrol_vx */
5002    0xf800707f,  /* vror_vi */
5003    0xfc00707f,  /* vror_vv */
5004    0xfc00707f,  /* vror_vx */
5005    0xfc00707f,  /* vrsub_vi */
5006    0xfc00707f,  /* vrsub_vx */
5007    0xfff0707f,  /* vs1r_v */
5008    0xfff0707f,  /* vs2r_v */
5009    0xfff0707f,  /* vs4r_v */
5010    0xfff0707f,  /* vs8r_v */
5011    0xfc00707f,  /* vsadd_vi */
5012    0xfc00707f,  /* vsadd_vv */
5013    0xfc00707f,  /* vsadd_vx */
5014    0xfc00707f,  /* vsaddu_vi */
5015    0xfc00707f,  /* vsaddu_vv */
5016    0xfc00707f,  /* vsaddu_vx */
5017    0xfe00707f,  /* vsbc_vvm */
5018    0xfe00707f,  /* vsbc_vxm */
5019    0x1df0707f,  /* vse16_v */
5020    0xfff0707f,  /* vse1_v */
5021    0x1df0707f,  /* vse32_v */
5022    0x1df0707f,  /* vse64_v */
5023    0x1df0707f,  /* vse8_v */
5024    0xc000707f,  /* vsetivli */
5025    0xfe00707f,  /* vsetvl */
5026    0x8000707f,  /* vsetvli */
5027    0xfc0ff07f,  /* vsext_vf2 */
5028    0xfc0ff07f,  /* vsext_vf4 */
5029    0xfc0ff07f,  /* vsext_vf8 */
5030    0xfe00707f,  /* vsha2ch_vv */
5031    0xfe00707f,  /* vsha2cl_vv */
5032    0xfe00707f,  /* vsha2ms_vv */
5033    0xfc00707f,  /* vslide1down_vx */
5034    0xfc00707f,  /* vslide1up_vx */
5035    0xfc00707f,  /* vslidedown_vi */
5036    0xfc00707f,  /* vslidedown_vx */
5037    0xfc00707f,  /* vslideup_vi */
5038    0xfc00707f,  /* vslideup_vx */
5039    0xfc00707f,  /* vsll_vi */
5040    0xfc00707f,  /* vsll_vv */
5041    0xfc00707f,  /* vsll_vx */
5042    0xfe00707f,  /* vsm3c_vi */
5043    0xfe00707f,  /* vsm3me_vv */
5044    0xfe00707f,  /* vsm4k_vi */
5045    0xfe0ff07f,  /* vsm4r_vs */
5046    0xfe0ff07f,  /* vsm4r_vv */
5047    0xfff0707f,  /* vsm_v */
5048    0xfc00707f,  /* vsmul_vv */
5049    0xfc00707f,  /* vsmul_vx */
5050    0x1c00707f,  /* vsoxei16_v */
5051    0x1c00707f,  /* vsoxei32_v */
5052    0x1c00707f,  /* vsoxei64_v */
5053    0x1c00707f,  /* vsoxei8_v */
5054    0xfc00707f,  /* vsra_vi */
5055    0xfc00707f,  /* vsra_vv */
5056    0xfc00707f,  /* vsra_vx */
5057    0xfc00707f,  /* vsrl_vi */
5058    0xfc00707f,  /* vsrl_vv */
5059    0xfc00707f,  /* vsrl_vx */
5060    0x1c00707f,  /* vsse16_v */
5061    0x1c00707f,  /* vsse32_v */
5062    0x1c00707f,  /* vsse64_v */
5063    0x1c00707f,  /* vsse8_v */
5064    0xfc00707f,  /* vssra_vi */
5065    0xfc00707f,  /* vssra_vv */
5066    0xfc00707f,  /* vssra_vx */
5067    0xfc00707f,  /* vssrl_vi */
5068    0xfc00707f,  /* vssrl_vv */
5069    0xfc00707f,  /* vssrl_vx */
5070    0xfc00707f,  /* vssub_vv */
5071    0xfc00707f,  /* vssub_vx */
5072    0xfc00707f,  /* vssubu_vv */
5073    0xfc00707f,  /* vssubu_vx */
5074    0xfc00707f,  /* vsub_vv */
5075    0xfc00707f,  /* vsub_vx */
5076    0x1c00707f,  /* vsuxei16_v */
5077    0x1c00707f,  /* vsuxei32_v */
5078    0x1c00707f,  /* vsuxei64_v */
5079    0x1c00707f,  /* vsuxei8_v */
5080    0xfc00707f,  /* vwadd_vv */
5081    0xfc00707f,  /* vwadd_vx */
5082    0xfc00707f,  /* vwadd_wv */
5083    0xfc00707f,  /* vwadd_wx */
5084    0xfc00707f,  /* vwaddu_vv */
5085    0xfc00707f,  /* vwaddu_vx */
5086    0xfc00707f,  /* vwaddu_wv */
5087    0xfc00707f,  /* vwaddu_wx */
5088    0xfc00707f,  /* vwmacc_vv */
5089    0xfc00707f,  /* vwmacc_vx */
5090    0xfc00707f,  /* vwmaccsu_vv */
5091    0xfc00707f,  /* vwmaccsu_vx */
5092    0xfc00707f,  /* vwmaccu_vv */
5093    0xfc00707f,  /* vwmaccu_vx */
5094    0xfc00707f,  /* vwmaccus_vx */
5095    0xfc00707f,  /* vwmul_vv */
5096    0xfc00707f,  /* vwmul_vx */
5097    0xfc00707f,  /* vwmulsu_vv */
5098    0xfc00707f,  /* vwmulsu_vx */
5099    0xfc00707f,  /* vwmulu_vv */
5100    0xfc00707f,  /* vwmulu_vx */
5101    0xfc00707f,  /* vwredsum_vs */
5102    0xfc00707f,  /* vwredsumu_vs */
5103    0xfc00707f,  /* vwsll_vi */
5104    0xfc00707f,  /* vwsll_vv */
5105    0xfc00707f,  /* vwsll_vx */
5106    0xfc00707f,  /* vwsub_vv */
5107    0xfc00707f,  /* vwsub_vx */
5108    0xfc00707f,  /* vwsub_wv */
5109    0xfc00707f,  /* vwsub_wx */
5110    0xfc00707f,  /* vwsubu_vv */
5111    0xfc00707f,  /* vwsubu_vx */
5112    0xfc00707f,  /* vwsubu_wv */
5113    0xfc00707f,  /* vwsubu_wx */
5114    0xfc00707f,  /* vxor_vi */
5115    0xfc00707f,  /* vxor_vv */
5116    0xfc00707f,  /* vxor_vx */
5117    0xfc0ff07f,  /* vzext_vf2 */
5118    0xfc0ff07f,  /* vzext_vf4 */
5119    0xfc0ff07f,  /* vzext_vf8 */
5120    0xffffffff,  /* wfi */
5121    0xffffffff,  /* wrs_nto */
5122    0xffffffff,  /* wrs_sto */
5123    0xfe00707f,  /* xnor */
5124    0xfe00707f,  /* xor */
5125    0x707f,      /* xori */
5126    0xfe00707f,  /* xperm4 */
5127    0xfe00707f,  /* xperm8 */
5128    0xfff0707f,  /* zext_b */
5129    0xffff_ffff, /* zext_h */
5130    0xfff0707f,  /* zext_h_rv32 */
5131    0xffff_ffff, /* zext_w */
5132    0xfff0707f,  /* zip */
5133];
5134pub static OPCODE64_MATCH: [u32; 1021] = [
5135    0x33,        /* add */
5136    0x800003b,   /* add_uw */
5137    0x13,        /* addi */
5138    0x1b,        /* addiw */
5139    0x3b,        /* addw */
5140    0xffff_ffff, /* aes32dsi */
5141    0xffff_ffff, /* aes32dsmi */
5142    0xffff_ffff, /* aes32esi */
5143    0xffff_ffff, /* aes32esmi */
5144    0x3a000033,  /* aes64ds */
5145    0x3e000033,  /* aes64dsm */
5146    0x32000033,  /* aes64es */
5147    0x36000033,  /* aes64esm */
5148    0x30001013,  /* aes64im */
5149    0x31001013,  /* aes64ks1i */
5150    0x7e000033,  /* aes64ks2 */
5151    0x2f,        /* amoadd_b */
5152    0x302f,      /* amoadd_d */
5153    0x102f,      /* amoadd_h */
5154    0x202f,      /* amoadd_w */
5155    0x6000002f,  /* amoand_b */
5156    0x6000302f,  /* amoand_d */
5157    0x6000102f,  /* amoand_h */
5158    0x6000202f,  /* amoand_w */
5159    0x2800002f,  /* amocas_b */
5160    0x2800302f,  /* amocas_d */
5161    0x2800102f,  /* amocas_h */
5162    0x2800402f,  /* amocas_q */
5163    0x2800202f,  /* amocas_w */
5164    0xa000002f,  /* amomax_b */
5165    0xa000302f,  /* amomax_d */
5166    0xa000102f,  /* amomax_h */
5167    0xa000202f,  /* amomax_w */
5168    0xe000002f,  /* amomaxu_b */
5169    0xe000302f,  /* amomaxu_d */
5170    0xe000102f,  /* amomaxu_h */
5171    0xe000202f,  /* amomaxu_w */
5172    0x8000002f,  /* amomin_b */
5173    0x8000302f,  /* amomin_d */
5174    0x8000102f,  /* amomin_h */
5175    0x8000202f,  /* amomin_w */
5176    0xc000002f,  /* amominu_b */
5177    0xc000302f,  /* amominu_d */
5178    0xc000102f,  /* amominu_h */
5179    0xc000202f,  /* amominu_w */
5180    0x4000002f,  /* amoor_b */
5181    0x4000302f,  /* amoor_d */
5182    0x4000102f,  /* amoor_h */
5183    0x4000202f,  /* amoor_w */
5184    0x800002f,   /* amoswap_b */
5185    0x800302f,   /* amoswap_d */
5186    0x800102f,   /* amoswap_h */
5187    0x800202f,   /* amoswap_w */
5188    0x2000002f,  /* amoxor_b */
5189    0x2000302f,  /* amoxor_d */
5190    0x2000102f,  /* amoxor_h */
5191    0x2000202f,  /* amoxor_w */
5192    0x7033,      /* and */
5193    0x7013,      /* andi */
5194    0x40007033,  /* andn */
5195    0x17,        /* auipc */
5196    0x48001033,  /* bclr */
5197    0x48001013,  /* bclri */
5198    0xffff_ffff, /* bclri_rv32 */
5199    0x63,        /* beq */
5200    0x63,        /* beqz */
5201    0x48005033,  /* bext */
5202    0x48005013,  /* bexti */
5203    0xffff_ffff, /* bexti_rv32 */
5204    0x5063,      /* bge */
5205    0x7063,      /* bgeu */
5206    0x5063,      /* bgez */
5207    0x4063,      /* bgt */
5208    0x6063,      /* bgtu */
5209    0x4063,      /* bgtz */
5210    0x68001033,  /* binv */
5211    0x68001013,  /* binvi */
5212    0xffff_ffff, /* binvi_rv32 */
5213    0x5063,      /* ble */
5214    0x7063,      /* bleu */
5215    0x5063,      /* blez */
5216    0x4063,      /* blt */
5217    0x6063,      /* bltu */
5218    0x4063,      /* bltz */
5219    0x1063,      /* bne */
5220    0x1063,      /* bnez */
5221    0x68705013,  /* brev8 */
5222    0x28001033,  /* bset */
5223    0x28001013,  /* bseti */
5224    0xffff_ffff, /* bseti_rv32 */
5225    0x9002,      /* c_add */
5226    0x1,         /* c_addi */
5227    0x6101,      /* c_addi16sp */
5228    0x0,         /* c_addi4spn */
5229    0x2001,      /* c_addiw */
5230    0x9c21,      /* c_addw */
5231    0x8c61,      /* c_and */
5232    0x8801,      /* c_andi */
5233    0xc001,      /* c_beqz */
5234    0xe001,      /* c_bnez */
5235    0x9002,      /* c_ebreak */
5236    0x2000,      /* c_fld */
5237    0x2002,      /* c_fldsp */
5238    0xffff_ffff, /* c_flw */
5239    0xffff_ffff, /* c_flwsp */
5240    0xa000,      /* c_fsd */
5241    0xa002,      /* c_fsdsp */
5242    0xffff_ffff, /* c_fsw */
5243    0xffff_ffff, /* c_fswsp */
5244    0xa001,      /* c_j */
5245    0xffff_ffff, /* c_jal */
5246    0x9002,      /* c_jalr */
5247    0x8002,      /* c_jr */
5248    0x8000,      /* c_lbu */
5249    0x6000,      /* c_ld */
5250    0x6002,      /* c_ldsp */
5251    0x8440,      /* c_lh */
5252    0x8400,      /* c_lhu */
5253    0x4001,      /* c_li */
5254    0x6001,      /* c_lui */
5255    0x4000,      /* c_lw */
5256    0x4002,      /* c_lwsp */
5257    0x6081,      /* c_mop_1 */
5258    0x6581,      /* c_mop_11 */
5259    0x6681,      /* c_mop_13 */
5260    0x6781,      /* c_mop_15 */
5261    0x6181,      /* c_mop_3 */
5262    0x6281,      /* c_mop_5 */
5263    0x6381,      /* c_mop_7 */
5264    0x6481,      /* c_mop_9 */
5265    0x6081,      /* c_mop_N */
5266    0x9c41,      /* c_mul */
5267    0x8002,      /* c_mv */
5268    0x1,         /* c_nop */
5269    0x9c75,      /* c_not */
5270    0x9016,      /* c_ntl_all */
5271    0x900a,      /* c_ntl_p1 */
5272    0x900e,      /* c_ntl_pall */
5273    0x9012,      /* c_ntl_s1 */
5274    0x8c41,      /* c_or */
5275    0x8800,      /* c_sb */
5276    0xe000,      /* c_sd */
5277    0xe002,      /* c_sdsp */
5278    0x9c65,      /* c_sext_b */
5279    0x9c6d,      /* c_sext_h */
5280    0x2001,      /* c_sext_w */
5281    0x8c00,      /* c_sh */
5282    0x2,         /* c_slli */
5283    0xffff_ffff, /* c_slli_rv32 */
5284    0x8401,      /* c_srai */
5285    0xffff_ffff, /* c_srai_rv32 */
5286    0x8001,      /* c_srli */
5287    0xffff_ffff, /* c_srli_rv32 */
5288    0x8c01,      /* c_sub */
5289    0x9c01,      /* c_subw */
5290    0xc000,      /* c_sw */
5291    0xc002,      /* c_swsp */
5292    0x8c21,      /* c_xor */
5293    0x9c61,      /* c_zext_b */
5294    0x9c69,      /* c_zext_h */
5295    0x9c71,      /* c_zext_w */
5296    0x10200f,    /* cbo_clean */
5297    0x20200f,    /* cbo_flush */
5298    0x200f,      /* cbo_inval */
5299    0x40200f,    /* cbo_zero */
5300    0xa001033,   /* clmul */
5301    0xa003033,   /* clmulh */
5302    0xa002033,   /* clmulr */
5303    0x60001013,  /* clz */
5304    0x6000101b,  /* clzw */
5305    0xa002,      /* cm_jalt */
5306    0xac62,      /* cm_mva01s */
5307    0xac22,      /* cm_mvsa01 */
5308    0xba02,      /* cm_pop */
5309    0xbe02,      /* cm_popret */
5310    0xbc02,      /* cm_popretz */
5311    0xb802,      /* cm_push */
5312    0x60201013,  /* cpop */
5313    0x6020101b,  /* cpopw */
5314    0x3073,      /* csrc */
5315    0x7073,      /* csrci */
5316    0x2073,      /* csrr */
5317    0x3073,      /* csrrc */
5318    0x7073,      /* csrrci */
5319    0x2073,      /* csrrs */
5320    0x6073,      /* csrrsi */
5321    0x1073,      /* csrrw */
5322    0x5073,      /* csrrwi */
5323    0x2073,      /* csrs */
5324    0x6073,      /* csrsi */
5325    0x1073,      /* csrw */
5326    0x5073,      /* csrwi */
5327    0x60101013,  /* ctz */
5328    0x6010101b,  /* ctzw */
5329    0xe005033,   /* czero_eqz */
5330    0xe007033,   /* czero_nez */
5331    0x2004033,   /* div */
5332    0x2005033,   /* divu */
5333    0x200503b,   /* divuw */
5334    0x200403b,   /* divw */
5335    0x7b200073,  /* dret */
5336    0x100073,    /* ebreak */
5337    0x73,        /* ecall */
5338    0x22002053,  /* fabs_d */
5339    0x24002053,  /* fabs_h */
5340    0x26002053,  /* fabs_q */
5341    0x20002053,  /* fabs_s */
5342    0x2000053,   /* fadd_d */
5343    0x4000053,   /* fadd_h */
5344    0x6000053,   /* fadd_q */
5345    0x53,        /* fadd_s */
5346    0xe2001053,  /* fclass_d */
5347    0xe4001053,  /* fclass_h */
5348    0xe6001053,  /* fclass_q */
5349    0xe0001053,  /* fclass_s */
5350    0x42200053,  /* fcvt_d_h */
5351    0xd2200053,  /* fcvt_d_l */
5352    0xd2300053,  /* fcvt_d_lu */
5353    0x42300053,  /* fcvt_d_q */
5354    0x42000053,  /* fcvt_d_s */
5355    0xd2000053,  /* fcvt_d_w */
5356    0xd2100053,  /* fcvt_d_wu */
5357    0x44100053,  /* fcvt_h_d */
5358    0xd4200053,  /* fcvt_h_l */
5359    0xd4300053,  /* fcvt_h_lu */
5360    0x44300053,  /* fcvt_h_q */
5361    0x44000053,  /* fcvt_h_s */
5362    0xd4000053,  /* fcvt_h_w */
5363    0xd4100053,  /* fcvt_h_wu */
5364    0xc2200053,  /* fcvt_l_d */
5365    0xc4200053,  /* fcvt_l_h */
5366    0xc6200053,  /* fcvt_l_q */
5367    0xc0200053,  /* fcvt_l_s */
5368    0xc2300053,  /* fcvt_lu_d */
5369    0xc4300053,  /* fcvt_lu_h */
5370    0xc6300053,  /* fcvt_lu_q */
5371    0xc0300053,  /* fcvt_lu_s */
5372    0x46100053,  /* fcvt_q_d */
5373    0x46200053,  /* fcvt_q_h */
5374    0xd6200053,  /* fcvt_q_l */
5375    0xd6300053,  /* fcvt_q_lu */
5376    0x46000053,  /* fcvt_q_s */
5377    0xd6000053,  /* fcvt_q_w */
5378    0xd6100053,  /* fcvt_q_wu */
5379    0x40100053,  /* fcvt_s_d */
5380    0x40200053,  /* fcvt_s_h */
5381    0xd0200053,  /* fcvt_s_l */
5382    0xd0300053,  /* fcvt_s_lu */
5383    0x40300053,  /* fcvt_s_q */
5384    0xd0000053,  /* fcvt_s_w */
5385    0xd0100053,  /* fcvt_s_wu */
5386    0xc2000053,  /* fcvt_w_d */
5387    0xc4000053,  /* fcvt_w_h */
5388    0xc6000053,  /* fcvt_w_q */
5389    0xc0000053,  /* fcvt_w_s */
5390    0xc2100053,  /* fcvt_wu_d */
5391    0xc4100053,  /* fcvt_wu_h */
5392    0xc6100053,  /* fcvt_wu_q */
5393    0xc0100053,  /* fcvt_wu_s */
5394    0xc2801053,  /* fcvtmod_w_d */
5395    0x1a000053,  /* fdiv_d */
5396    0x1c000053,  /* fdiv_h */
5397    0x1e000053,  /* fdiv_q */
5398    0x18000053,  /* fdiv_s */
5399    0xf,         /* fence */
5400    0x100f,      /* fence_i */
5401    0x8330000f,  /* fence_tso */
5402    0xa2002053,  /* feq_d */
5403    0xa4002053,  /* feq_h */
5404    0xa6002053,  /* feq_q */
5405    0xa0002053,  /* feq_s */
5406    0x3007,      /* fld */
5407    0xa2000053,  /* fle_d */
5408    0xa4000053,  /* fle_h */
5409    0xa6000053,  /* fle_q */
5410    0xa0000053,  /* fle_s */
5411    0xa2004053,  /* fleq_d */
5412    0xa4004053,  /* fleq_h */
5413    0xa6004053,  /* fleq_q */
5414    0xa0004053,  /* fleq_s */
5415    0x1007,      /* flh */
5416    0xf2100053,  /* fli_d */
5417    0xf4100053,  /* fli_h */
5418    0xf6100053,  /* fli_q */
5419    0xf0100053,  /* fli_s */
5420    0x4007,      /* flq */
5421    0xa2001053,  /* flt_d */
5422    0xa4001053,  /* flt_h */
5423    0xa6001053,  /* flt_q */
5424    0xa0001053,  /* flt_s */
5425    0xa2005053,  /* fltq_d */
5426    0xa4005053,  /* fltq_h */
5427    0xa6005053,  /* fltq_q */
5428    0xa0005053,  /* fltq_s */
5429    0x2007,      /* flw */
5430    0x2000043,   /* fmadd_d */
5431    0x4000043,   /* fmadd_h */
5432    0x6000043,   /* fmadd_q */
5433    0x43,        /* fmadd_s */
5434    0x2a001053,  /* fmax_d */
5435    0x2c001053,  /* fmax_h */
5436    0x2e001053,  /* fmax_q */
5437    0x28001053,  /* fmax_s */
5438    0x2a003053,  /* fmaxm_d */
5439    0x2c003053,  /* fmaxm_h */
5440    0x2e003053,  /* fmaxm_q */
5441    0x28003053,  /* fmaxm_s */
5442    0x2a000053,  /* fmin_d */
5443    0x2c000053,  /* fmin_h */
5444    0x2e000053,  /* fmin_q */
5445    0x28000053,  /* fmin_s */
5446    0x2a002053,  /* fminm_d */
5447    0x2c002053,  /* fminm_h */
5448    0x2e002053,  /* fminm_q */
5449    0x28002053,  /* fminm_s */
5450    0x2000047,   /* fmsub_d */
5451    0x4000047,   /* fmsub_h */
5452    0x6000047,   /* fmsub_q */
5453    0x47,        /* fmsub_s */
5454    0x12000053,  /* fmul_d */
5455    0x14000053,  /* fmul_h */
5456    0x16000053,  /* fmul_q */
5457    0x10000053,  /* fmul_s */
5458    0x22000053,  /* fmv_d */
5459    0xf2000053,  /* fmv_d_x */
5460    0x24000053,  /* fmv_h */
5461    0xf4000053,  /* fmv_h_x */
5462    0x26000053,  /* fmv_q */
5463    0x20000053,  /* fmv_s */
5464    0xf0000053,  /* fmv_s_x */
5465    0xf0000053,  /* fmv_w_x */
5466    0xe2000053,  /* fmv_x_d */
5467    0xe4000053,  /* fmv_x_h */
5468    0xe0000053,  /* fmv_x_s */
5469    0xe0000053,  /* fmv_x_w */
5470    0xffff_ffff, /* fmvh_x_d */
5471    0xe6100053,  /* fmvh_x_q */
5472    0xffff_ffff, /* fmvp_d_x */
5473    0xb6000053,  /* fmvp_q_x */
5474    0x22001053,  /* fneg_d */
5475    0x24001053,  /* fneg_h */
5476    0x26001053,  /* fneg_q */
5477    0x20001053,  /* fneg_s */
5478    0x200004f,   /* fnmadd_d */
5479    0x400004f,   /* fnmadd_h */
5480    0x600004f,   /* fnmadd_q */
5481    0x4f,        /* fnmadd_s */
5482    0x200004b,   /* fnmsub_d */
5483    0x400004b,   /* fnmsub_h */
5484    0x600004b,   /* fnmsub_q */
5485    0x4b,        /* fnmsub_s */
5486    0x302073,    /* frcsr */
5487    0x102073,    /* frflags */
5488    0x42400053,  /* fround_d */
5489    0x44400053,  /* fround_h */
5490    0x46400053,  /* fround_q */
5491    0x40400053,  /* fround_s */
5492    0x42500053,  /* froundnx_d */
5493    0x44500053,  /* froundnx_h */
5494    0x46500053,  /* froundnx_q */
5495    0x40500053,  /* froundnx_s */
5496    0x202073,    /* frrm */
5497    0x301073,    /* fscsr */
5498    0x3027,      /* fsd */
5499    0x101073,    /* fsflags */
5500    0x105073,    /* fsflagsi */
5501    0x22000053,  /* fsgnj_d */
5502    0x24000053,  /* fsgnj_h */
5503    0x26000053,  /* fsgnj_q */
5504    0x20000053,  /* fsgnj_s */
5505    0x22001053,  /* fsgnjn_d */
5506    0x24001053,  /* fsgnjn_h */
5507    0x26001053,  /* fsgnjn_q */
5508    0x20001053,  /* fsgnjn_s */
5509    0x22002053,  /* fsgnjx_d */
5510    0x24002053,  /* fsgnjx_h */
5511    0x26002053,  /* fsgnjx_q */
5512    0x20002053,  /* fsgnjx_s */
5513    0x1027,      /* fsh */
5514    0x4027,      /* fsq */
5515    0x5a000053,  /* fsqrt_d */
5516    0x5c000053,  /* fsqrt_h */
5517    0x5e000053,  /* fsqrt_q */
5518    0x58000053,  /* fsqrt_s */
5519    0x201073,    /* fsrm */
5520    0x205073,    /* fsrmi */
5521    0xa000053,   /* fsub_d */
5522    0xc000053,   /* fsub_h */
5523    0xe000053,   /* fsub_q */
5524    0x8000053,   /* fsub_s */
5525    0x2027,      /* fsw */
5526    0x62000073,  /* hfence_gvma */
5527    0x22000073,  /* hfence_vvma */
5528    0x66000073,  /* hinval_gvma */
5529    0x26000073,  /* hinval_vvma */
5530    0x60004073,  /* hlv_b */
5531    0x60104073,  /* hlv_bu */
5532    0x6c004073,  /* hlv_d */
5533    0x64004073,  /* hlv_h */
5534    0x64104073,  /* hlv_hu */
5535    0x68004073,  /* hlv_w */
5536    0x68104073,  /* hlv_wu */
5537    0x64304073,  /* hlvx_hu */
5538    0x68304073,  /* hlvx_wu */
5539    0x62004073,  /* hsv_b */
5540    0x6e004073,  /* hsv_d */
5541    0x66004073,  /* hsv_h */
5542    0x6a004073,  /* hsv_w */
5543    0x6f,        /* j */
5544    0x6f,        /* jal */
5545    0xef,        /* jal_pseudo */
5546    0x67,        /* jalr */
5547    0xe7,        /* jalr_pseudo */
5548    0x67,        /* jr */
5549    0x3,         /* lb */
5550    0x4003,      /* lbu */
5551    0x3003,      /* ld */
5552    0x1003,      /* lh */
5553    0x5003,      /* lhu */
5554    0x1000302f,  /* lr_d */
5555    0x1000202f,  /* lr_w */
5556    0x37,        /* lui */
5557    0x2003,      /* lw */
5558    0x6003,      /* lwu */
5559    0xa006033,   /* max */
5560    0xa007033,   /* maxu */
5561    0xa004033,   /* min */
5562    0xa005033,   /* minu */
5563    0x81c04073,  /* mop_r_0 */
5564    0x81d04073,  /* mop_r_1 */
5565    0x89e04073,  /* mop_r_10 */
5566    0x89f04073,  /* mop_r_11 */
5567    0x8dc04073,  /* mop_r_12 */
5568    0x8dd04073,  /* mop_r_13 */
5569    0x8de04073,  /* mop_r_14 */
5570    0x8df04073,  /* mop_r_15 */
5571    0xc1c04073,  /* mop_r_16 */
5572    0xc1d04073,  /* mop_r_17 */
5573    0xc1e04073,  /* mop_r_18 */
5574    0xc1f04073,  /* mop_r_19 */
5575    0x81e04073,  /* mop_r_2 */
5576    0xc5c04073,  /* mop_r_20 */
5577    0xc5d04073,  /* mop_r_21 */
5578    0xc5e04073,  /* mop_r_22 */
5579    0xc5f04073,  /* mop_r_23 */
5580    0xc9c04073,  /* mop_r_24 */
5581    0xc9d04073,  /* mop_r_25 */
5582    0xc9e04073,  /* mop_r_26 */
5583    0xc9f04073,  /* mop_r_27 */
5584    0xcdc04073,  /* mop_r_28 */
5585    0xcdd04073,  /* mop_r_29 */
5586    0x81f04073,  /* mop_r_3 */
5587    0xcde04073,  /* mop_r_30 */
5588    0xcdf04073,  /* mop_r_31 */
5589    0x85c04073,  /* mop_r_4 */
5590    0x85d04073,  /* mop_r_5 */
5591    0x85e04073,  /* mop_r_6 */
5592    0x85f04073,  /* mop_r_7 */
5593    0x89c04073,  /* mop_r_8 */
5594    0x89d04073,  /* mop_r_9 */
5595    0x81c04073,  /* mop_r_N */
5596    0x82004073,  /* mop_rr_0 */
5597    0x86004073,  /* mop_rr_1 */
5598    0x8a004073,  /* mop_rr_2 */
5599    0x8e004073,  /* mop_rr_3 */
5600    0xc2004073,  /* mop_rr_4 */
5601    0xc6004073,  /* mop_rr_5 */
5602    0xca004073,  /* mop_rr_6 */
5603    0xce004073,  /* mop_rr_7 */
5604    0x82004073,  /* mop_rr_N */
5605    0x30200073,  /* mret */
5606    0x2000033,   /* mul */
5607    0x2001033,   /* mulh */
5608    0x2002033,   /* mulhsu */
5609    0x2003033,   /* mulhu */
5610    0x200003b,   /* mulw */
5611    0x13,        /* mv */
5612    0x40000033,  /* neg */
5613    0x13,        /* nop */
5614    0x500033,    /* ntl_all */
5615    0x200033,    /* ntl_p1 */
5616    0x300033,    /* ntl_pall */
5617    0x400033,    /* ntl_s1 */
5618    0x6033,      /* or */
5619    0x28705013,  /* orc_b */
5620    0x6013,      /* ori */
5621    0x40006033,  /* orn */
5622    0x8004033,   /* pack */
5623    0x8007033,   /* packh */
5624    0x800403b,   /* packw */
5625    0x100000f,   /* pause */
5626    0x6013,      /* prefetch_i */
5627    0x106013,    /* prefetch_r */
5628    0x306013,    /* prefetch_w */
5629    0xc0002073,  /* rdcycle */
5630    0xffff_ffff, /* rdcycleh */
5631    0xc0202073,  /* rdinstret */
5632    0xffff_ffff, /* rdinstreth */
5633    0xc0102073,  /* rdtime */
5634    0xffff_ffff, /* rdtimeh */
5635    0x2006033,   /* rem */
5636    0x2007033,   /* remu */
5637    0x200703b,   /* remuw */
5638    0x200603b,   /* remw */
5639    0x8067,      /* ret */
5640    0x6b805013,  /* rev8 */
5641    0xffff_ffff, /* rev8_rv32 */
5642    0x60001033,  /* rol */
5643    0x6000103b,  /* rolw */
5644    0x60005033,  /* ror */
5645    0x60005013,  /* rori */
5646    0xffff_ffff, /* rori_rv32 */
5647    0x6000501b,  /* roriw */
5648    0x6000503b,  /* rorw */
5649    0x23,        /* sb */
5650    0x100073,    /* sbreak */
5651    0x1800302f,  /* sc_d */
5652    0x1800202f,  /* sc_w */
5653    0x73,        /* scall */
5654    0x3023,      /* sd */
5655    0x103013,    /* seqz */
5656    0x60401013,  /* sext_b */
5657    0x60501013,  /* sext_h */
5658    0x1b,        /* sext_w */
5659    0x18100073,  /* sfence_inval_ir */
5660    0x12000073,  /* sfence_vma */
5661    0x18000073,  /* sfence_w_inval */
5662    0x2033,      /* sgtz */
5663    0x1023,      /* sh */
5664    0x20002033,  /* sh1add */
5665    0x2000203b,  /* sh1add_uw */
5666    0x20004033,  /* sh2add */
5667    0x2000403b,  /* sh2add_uw */
5668    0x20006033,  /* sh3add */
5669    0x2000603b,  /* sh3add_uw */
5670    0x10201013,  /* sha256sig0 */
5671    0x10301013,  /* sha256sig1 */
5672    0x10001013,  /* sha256sum0 */
5673    0x10101013,  /* sha256sum1 */
5674    0x10601013,  /* sha512sig0 */
5675    0xffff_ffff, /* sha512sig0h */
5676    0xffff_ffff, /* sha512sig0l */
5677    0x10701013,  /* sha512sig1 */
5678    0xffff_ffff, /* sha512sig1h */
5679    0xffff_ffff, /* sha512sig1l */
5680    0x10401013,  /* sha512sum0 */
5681    0xffff_ffff, /* sha512sum0r */
5682    0x10501013,  /* sha512sum1 */
5683    0xffff_ffff, /* sha512sum1r */
5684    0x16000073,  /* sinval_vma */
5685    0x1033,      /* sll */
5686    0x1013,      /* slli */
5687    0xffff_ffff, /* slli_rv32 */
5688    0x800101b,   /* slli_uw */
5689    0x101b,      /* slliw */
5690    0x103b,      /* sllw */
5691    0x2033,      /* slt */
5692    0x2013,      /* slti */
5693    0x3013,      /* sltiu */
5694    0x3033,      /* sltu */
5695    0x2033,      /* sltz */
5696    0x10801013,  /* sm3p0 */
5697    0x10901013,  /* sm3p1 */
5698    0x30000033,  /* sm4ed */
5699    0x34000033,  /* sm4ks */
5700    0x3033,      /* snez */
5701    0x40005033,  /* sra */
5702    0x40005013,  /* srai */
5703    0xffff_ffff, /* srai_rv32 */
5704    0x4000501b,  /* sraiw */
5705    0x4000503b,  /* sraw */
5706    0x10200073,  /* sret */
5707    0x5033,      /* srl */
5708    0x5013,      /* srli */
5709    0xffff_ffff, /* srli_rv32 */
5710    0x501b,      /* srliw */
5711    0x503b,      /* srlw */
5712    0x40000033,  /* sub */
5713    0x4000003b,  /* subw */
5714    0x2023,      /* sw */
5715    0xffff_ffff, /* unzip */
5716    0x24002057,  /* vaadd_vv */
5717    0x24006057,  /* vaadd_vx */
5718    0x20002057,  /* vaaddu_vv */
5719    0x20006057,  /* vaaddu_vx */
5720    0x40003057,  /* vadc_vim */
5721    0x40000057,  /* vadc_vvm */
5722    0x40004057,  /* vadc_vxm */
5723    0x3057,      /* vadd_vi */
5724    0x57,        /* vadd_vv */
5725    0x4057,      /* vadd_vx */
5726    0xa600a077,  /* vaesdf_vs */
5727    0xa200a077,  /* vaesdf_vv */
5728    0xa6002077,  /* vaesdm_vs */
5729    0xa2002077,  /* vaesdm_vv */
5730    0xa601a077,  /* vaesef_vs */
5731    0xa201a077,  /* vaesef_vv */
5732    0xa6012077,  /* vaesem_vs */
5733    0xa2012077,  /* vaesem_vv */
5734    0x8a002077,  /* vaeskf1_vi */
5735    0xaa002077,  /* vaeskf2_vi */
5736    0xa603a077,  /* vaesz_vs */
5737    0x24003057,  /* vand_vi */
5738    0x24000057,  /* vand_vv */
5739    0x24004057,  /* vand_vx */
5740    0x4000057,   /* vandn_vv */
5741    0x4004057,   /* vandn_vx */
5742    0x2c002057,  /* vasub_vv */
5743    0x2c006057,  /* vasub_vx */
5744    0x28002057,  /* vasubu_vv */
5745    0x28006057,  /* vasubu_vx */
5746    0x48042057,  /* vbrev8_v */
5747    0x48052057,  /* vbrev_v */
5748    0x30002057,  /* vclmul_vv */
5749    0x30006057,  /* vclmul_vx */
5750    0x34002057,  /* vclmulh_vv */
5751    0x34006057,  /* vclmulh_vx */
5752    0x48062057,  /* vclz_v */
5753    0x5e002057,  /* vcompress_vm */
5754    0x40082057,  /* vcpop_m */
5755    0x48072057,  /* vcpop_v */
5756    0x4806a057,  /* vctz_v */
5757    0x84002057,  /* vdiv_vv */
5758    0x84006057,  /* vdiv_vx */
5759    0x80002057,  /* vdivu_vv */
5760    0x80006057,  /* vdivu_vx */
5761    0x5057,      /* vfadd_vf */
5762    0x1057,      /* vfadd_vv */
5763    0x4c081057,  /* vfclass_v */
5764    0x48019057,  /* vfcvt_f_x_v */
5765    0x48011057,  /* vfcvt_f_xu_v */
5766    0x48039057,  /* vfcvt_rtz_x_f_v */
5767    0x48031057,  /* vfcvt_rtz_xu_f_v */
5768    0x48009057,  /* vfcvt_x_f_v */
5769    0x48001057,  /* vfcvt_xu_f_v */
5770    0x80005057,  /* vfdiv_vf */
5771    0x80001057,  /* vfdiv_vv */
5772    0x4008a057,  /* vfirst_m */
5773    0xb0005057,  /* vfmacc_vf */
5774    0xb0001057,  /* vfmacc_vv */
5775    0xa0005057,  /* vfmadd_vf */
5776    0xa0001057,  /* vfmadd_vv */
5777    0x18005057,  /* vfmax_vf */
5778    0x18001057,  /* vfmax_vv */
5779    0x5c005057,  /* vfmerge_vfm */
5780    0x10005057,  /* vfmin_vf */
5781    0x10001057,  /* vfmin_vv */
5782    0xb8005057,  /* vfmsac_vf */
5783    0xb8001057,  /* vfmsac_vv */
5784    0xa8005057,  /* vfmsub_vf */
5785    0xa8001057,  /* vfmsub_vv */
5786    0x90005057,  /* vfmul_vf */
5787    0x90001057,  /* vfmul_vv */
5788    0x42001057,  /* vfmv_f_s */
5789    0x42005057,  /* vfmv_s_f */
5790    0x5e005057,  /* vfmv_v_f */
5791    0x480a1057,  /* vfncvt_f_f_w */
5792    0x48099057,  /* vfncvt_f_x_w */
5793    0x48091057,  /* vfncvt_f_xu_w */
5794    0x480a9057,  /* vfncvt_rod_f_f_w */
5795    0x480b9057,  /* vfncvt_rtz_x_f_w */
5796    0x480b1057,  /* vfncvt_rtz_xu_f_w */
5797    0x48089057,  /* vfncvt_x_f_w */
5798    0x48081057,  /* vfncvt_xu_f_w */
5799    0xb4005057,  /* vfnmacc_vf */
5800    0xb4001057,  /* vfnmacc_vv */
5801    0xa4005057,  /* vfnmadd_vf */
5802    0xa4001057,  /* vfnmadd_vv */
5803    0xbc005057,  /* vfnmsac_vf */
5804    0xbc001057,  /* vfnmsac_vv */
5805    0xac005057,  /* vfnmsub_vf */
5806    0xac001057,  /* vfnmsub_vv */
5807    0x84005057,  /* vfrdiv_vf */
5808    0x4c029057,  /* vfrec7_v */
5809    0x1c001057,  /* vfredmax_vs */
5810    0x14001057,  /* vfredmin_vs */
5811    0xc001057,   /* vfredosum_vs */
5812    0x4001057,   /* vfredsum_vs */
5813    0x4001057,   /* vfredusum_vs */
5814    0x4c021057,  /* vfrsqrt7_v */
5815    0x9c005057,  /* vfrsub_vf */
5816    0x20005057,  /* vfsgnj_vf */
5817    0x20001057,  /* vfsgnj_vv */
5818    0x24005057,  /* vfsgnjn_vf */
5819    0x24001057,  /* vfsgnjn_vv */
5820    0x28005057,  /* vfsgnjx_vf */
5821    0x28001057,  /* vfsgnjx_vv */
5822    0x3c005057,  /* vfslide1down_vf */
5823    0x38005057,  /* vfslide1up_vf */
5824    0x4c001057,  /* vfsqrt_v */
5825    0x8005057,   /* vfsub_vf */
5826    0x8001057,   /* vfsub_vv */
5827    0xc0005057,  /* vfwadd_vf */
5828    0xc0001057,  /* vfwadd_vv */
5829    0xd0005057,  /* vfwadd_wf */
5830    0xd0001057,  /* vfwadd_wv */
5831    0x48061057,  /* vfwcvt_f_f_v */
5832    0x48059057,  /* vfwcvt_f_x_v */
5833    0x48051057,  /* vfwcvt_f_xu_v */
5834    0x48079057,  /* vfwcvt_rtz_x_f_v */
5835    0x48071057,  /* vfwcvt_rtz_xu_f_v */
5836    0x48049057,  /* vfwcvt_x_f_v */
5837    0x48041057,  /* vfwcvt_xu_f_v */
5838    0xf0005057,  /* vfwmacc_vf */
5839    0xf0001057,  /* vfwmacc_vv */
5840    0xf8005057,  /* vfwmsac_vf */
5841    0xf8001057,  /* vfwmsac_vv */
5842    0xe0005057,  /* vfwmul_vf */
5843    0xe0001057,  /* vfwmul_vv */
5844    0xf4005057,  /* vfwnmacc_vf */
5845    0xf4001057,  /* vfwnmacc_vv */
5846    0xfc005057,  /* vfwnmsac_vf */
5847    0xfc001057,  /* vfwnmsac_vv */
5848    0xcc001057,  /* vfwredosum_vs */
5849    0xc4001057,  /* vfwredsum_vs */
5850    0xc4001057,  /* vfwredusum_vs */
5851    0xc8005057,  /* vfwsub_vf */
5852    0xc8001057,  /* vfwsub_vv */
5853    0xd8005057,  /* vfwsub_wf */
5854    0xd8001057,  /* vfwsub_wv */
5855    0xb2002077,  /* vghsh_vv */
5856    0xa208a077,  /* vgmul_vv */
5857    0x5008a057,  /* vid_v */
5858    0x50082057,  /* viota_m */
5859    0x2800007,   /* vl1r_v */
5860    0x2805007,   /* vl1re16_v */
5861    0x2806007,   /* vl1re32_v */
5862    0x2807007,   /* vl1re64_v */
5863    0x2800007,   /* vl1re8_v */
5864    0x22800007,  /* vl2r_v */
5865    0x22805007,  /* vl2re16_v */
5866    0x22806007,  /* vl2re32_v */
5867    0x22807007,  /* vl2re64_v */
5868    0x22800007,  /* vl2re8_v */
5869    0x62800007,  /* vl4r_v */
5870    0x62805007,  /* vl4re16_v */
5871    0x62806007,  /* vl4re32_v */
5872    0x62807007,  /* vl4re64_v */
5873    0x62800007,  /* vl4re8_v */
5874    0xe2800007,  /* vl8r_v */
5875    0xe2805007,  /* vl8re16_v */
5876    0xe2806007,  /* vl8re32_v */
5877    0xe2807007,  /* vl8re64_v */
5878    0xe2800007,  /* vl8re8_v */
5879    0x5007,      /* vle16_v */
5880    0x1005007,   /* vle16ff_v */
5881    0x2b00007,   /* vle1_v */
5882    0x6007,      /* vle32_v */
5883    0x1006007,   /* vle32ff_v */
5884    0x7007,      /* vle64_v */
5885    0x1007007,   /* vle64ff_v */
5886    0x7,         /* vle8_v */
5887    0x1000007,   /* vle8ff_v */
5888    0x2b00007,   /* vlm_v */
5889    0xc005007,   /* vloxei16_v */
5890    0xc006007,   /* vloxei32_v */
5891    0xc007007,   /* vloxei64_v */
5892    0xc000007,   /* vloxei8_v */
5893    0x8005007,   /* vlse16_v */
5894    0x8006007,   /* vlse32_v */
5895    0x8007007,   /* vlse64_v */
5896    0x8000007,   /* vlse8_v */
5897    0x4005007,   /* vluxei16_v */
5898    0x4006007,   /* vluxei32_v */
5899    0x4007007,   /* vluxei64_v */
5900    0x4000007,   /* vluxei8_v */
5901    0xb4002057,  /* vmacc_vv */
5902    0xb4006057,  /* vmacc_vx */
5903    0x46003057,  /* vmadc_vi */
5904    0x44003057,  /* vmadc_vim */
5905    0x46000057,  /* vmadc_vv */
5906    0x44000057,  /* vmadc_vvm */
5907    0x46004057,  /* vmadc_vx */
5908    0x44004057,  /* vmadc_vxm */
5909    0xa4002057,  /* vmadd_vv */
5910    0xa4006057,  /* vmadd_vx */
5911    0x66002057,  /* vmand_mm */
5912    0x62002057,  /* vmandn_mm */
5913    0x60002057,  /* vmandnot_mm */
5914    0x1c000057,  /* vmax_vv */
5915    0x1c004057,  /* vmax_vx */
5916    0x18000057,  /* vmaxu_vv */
5917    0x18004057,  /* vmaxu_vx */
5918    0x5c003057,  /* vmerge_vim */
5919    0x5c000057,  /* vmerge_vvm */
5920    0x5c004057,  /* vmerge_vxm */
5921    0x60005057,  /* vmfeq_vf */
5922    0x60001057,  /* vmfeq_vv */
5923    0x7c005057,  /* vmfge_vf */
5924    0x74005057,  /* vmfgt_vf */
5925    0x64005057,  /* vmfle_vf */
5926    0x64001057,  /* vmfle_vv */
5927    0x6c005057,  /* vmflt_vf */
5928    0x6c001057,  /* vmflt_vv */
5929    0x70005057,  /* vmfne_vf */
5930    0x70001057,  /* vmfne_vv */
5931    0x14000057,  /* vmin_vv */
5932    0x14004057,  /* vmin_vx */
5933    0x10000057,  /* vminu_vv */
5934    0x10004057,  /* vminu_vx */
5935    0x76002057,  /* vmnand_mm */
5936    0x7a002057,  /* vmnor_mm */
5937    0x6a002057,  /* vmor_mm */
5938    0x72002057,  /* vmorn_mm */
5939    0x70002057,  /* vmornot_mm */
5940    0x4e000057,  /* vmsbc_vv */
5941    0x4c000057,  /* vmsbc_vvm */
5942    0x4e004057,  /* vmsbc_vx */
5943    0x4c004057,  /* vmsbc_vxm */
5944    0x5000a057,  /* vmsbf_m */
5945    0x60003057,  /* vmseq_vi */
5946    0x60000057,  /* vmseq_vv */
5947    0x60004057,  /* vmseq_vx */
5948    0x7c003057,  /* vmsgt_vi */
5949    0x7c004057,  /* vmsgt_vx */
5950    0x78003057,  /* vmsgtu_vi */
5951    0x78004057,  /* vmsgtu_vx */
5952    0x5001a057,  /* vmsif_m */
5953    0x74003057,  /* vmsle_vi */
5954    0x74000057,  /* vmsle_vv */
5955    0x74004057,  /* vmsle_vx */
5956    0x70003057,  /* vmsleu_vi */
5957    0x70000057,  /* vmsleu_vv */
5958    0x70004057,  /* vmsleu_vx */
5959    0x6c000057,  /* vmslt_vv */
5960    0x6c004057,  /* vmslt_vx */
5961    0x68000057,  /* vmsltu_vv */
5962    0x68004057,  /* vmsltu_vx */
5963    0x64003057,  /* vmsne_vi */
5964    0x64000057,  /* vmsne_vv */
5965    0x64004057,  /* vmsne_vx */
5966    0x50012057,  /* vmsof_m */
5967    0x94002057,  /* vmul_vv */
5968    0x94006057,  /* vmul_vx */
5969    0x9c002057,  /* vmulh_vv */
5970    0x9c006057,  /* vmulh_vx */
5971    0x98002057,  /* vmulhsu_vv */
5972    0x98006057,  /* vmulhsu_vx */
5973    0x90002057,  /* vmulhu_vv */
5974    0x90006057,  /* vmulhu_vx */
5975    0x9e003057,  /* vmv1r_v */
5976    0x9e00b057,  /* vmv2r_v */
5977    0x9e01b057,  /* vmv4r_v */
5978    0x9e03b057,  /* vmv8r_v */
5979    0x42006057,  /* vmv_s_x */
5980    0x5e003057,  /* vmv_v_i */
5981    0x5e000057,  /* vmv_v_v */
5982    0x5e004057,  /* vmv_v_x */
5983    0x42002057,  /* vmv_x_s */
5984    0x7e002057,  /* vmxnor_mm */
5985    0x6e002057,  /* vmxor_mm */
5986    0xbc003057,  /* vnclip_wi */
5987    0xbc000057,  /* vnclip_wv */
5988    0xbc004057,  /* vnclip_wx */
5989    0xb8003057,  /* vnclipu_wi */
5990    0xb8000057,  /* vnclipu_wv */
5991    0xb8004057,  /* vnclipu_wx */
5992    0xbc002057,  /* vnmsac_vv */
5993    0xbc006057,  /* vnmsac_vx */
5994    0xac002057,  /* vnmsub_vv */
5995    0xac006057,  /* vnmsub_vx */
5996    0xb4003057,  /* vnsra_wi */
5997    0xb4000057,  /* vnsra_wv */
5998    0xb4004057,  /* vnsra_wx */
5999    0xb0003057,  /* vnsrl_wi */
6000    0xb0000057,  /* vnsrl_wv */
6001    0xb0004057,  /* vnsrl_wx */
6002    0x28003057,  /* vor_vi */
6003    0x28000057,  /* vor_vv */
6004    0x28004057,  /* vor_vx */
6005    0x40082057,  /* vpopc_m */
6006    0x4002057,   /* vredand_vs */
6007    0x1c002057,  /* vredmax_vs */
6008    0x18002057,  /* vredmaxu_vs */
6009    0x14002057,  /* vredmin_vs */
6010    0x10002057,  /* vredminu_vs */
6011    0x8002057,   /* vredor_vs */
6012    0x2057,      /* vredsum_vs */
6013    0xc002057,   /* vredxor_vs */
6014    0x8c002057,  /* vrem_vv */
6015    0x8c006057,  /* vrem_vx */
6016    0x88002057,  /* vremu_vv */
6017    0x88006057,  /* vremu_vx */
6018    0x4804a057,  /* vrev8_v */
6019    0x30003057,  /* vrgather_vi */
6020    0x30000057,  /* vrgather_vv */
6021    0x30004057,  /* vrgather_vx */
6022    0x38000057,  /* vrgatherei16_vv */
6023    0x54000057,  /* vrol_vv */
6024    0x54004057,  /* vrol_vx */
6025    0x50003057,  /* vror_vi */
6026    0x50000057,  /* vror_vv */
6027    0x50004057,  /* vror_vx */
6028    0xc003057,   /* vrsub_vi */
6029    0xc004057,   /* vrsub_vx */
6030    0x2800027,   /* vs1r_v */
6031    0x22800027,  /* vs2r_v */
6032    0x62800027,  /* vs4r_v */
6033    0xe2800027,  /* vs8r_v */
6034    0x84003057,  /* vsadd_vi */
6035    0x84000057,  /* vsadd_vv */
6036    0x84004057,  /* vsadd_vx */
6037    0x80003057,  /* vsaddu_vi */
6038    0x80000057,  /* vsaddu_vv */
6039    0x80004057,  /* vsaddu_vx */
6040    0x48000057,  /* vsbc_vvm */
6041    0x48004057,  /* vsbc_vxm */
6042    0x5027,      /* vse16_v */
6043    0x2b00027,   /* vse1_v */
6044    0x6027,      /* vse32_v */
6045    0x7027,      /* vse64_v */
6046    0x27,        /* vse8_v */
6047    0xc0007057,  /* vsetivli */
6048    0x80007057,  /* vsetvl */
6049    0x7057,      /* vsetvli */
6050    0x4803a057,  /* vsext_vf2 */
6051    0x4802a057,  /* vsext_vf4 */
6052    0x4801a057,  /* vsext_vf8 */
6053    0xba002077,  /* vsha2ch_vv */
6054    0xbe002077,  /* vsha2cl_vv */
6055    0xb6002077,  /* vsha2ms_vv */
6056    0x3c006057,  /* vslide1down_vx */
6057    0x38006057,  /* vslide1up_vx */
6058    0x3c003057,  /* vslidedown_vi */
6059    0x3c004057,  /* vslidedown_vx */
6060    0x38003057,  /* vslideup_vi */
6061    0x38004057,  /* vslideup_vx */
6062    0x94003057,  /* vsll_vi */
6063    0x94000057,  /* vsll_vv */
6064    0x94004057,  /* vsll_vx */
6065    0xae002077,  /* vsm3c_vi */
6066    0x82002077,  /* vsm3me_vv */
6067    0x86002077,  /* vsm4k_vi */
6068    0xa6082077,  /* vsm4r_vs */
6069    0xa2082077,  /* vsm4r_vv */
6070    0x2b00027,   /* vsm_v */
6071    0x9c000057,  /* vsmul_vv */
6072    0x9c004057,  /* vsmul_vx */
6073    0xc005027,   /* vsoxei16_v */
6074    0xc006027,   /* vsoxei32_v */
6075    0xc007027,   /* vsoxei64_v */
6076    0xc000027,   /* vsoxei8_v */
6077    0xa4003057,  /* vsra_vi */
6078    0xa4000057,  /* vsra_vv */
6079    0xa4004057,  /* vsra_vx */
6080    0xa0003057,  /* vsrl_vi */
6081    0xa0000057,  /* vsrl_vv */
6082    0xa0004057,  /* vsrl_vx */
6083    0x8005027,   /* vsse16_v */
6084    0x8006027,   /* vsse32_v */
6085    0x8007027,   /* vsse64_v */
6086    0x8000027,   /* vsse8_v */
6087    0xac003057,  /* vssra_vi */
6088    0xac000057,  /* vssra_vv */
6089    0xac004057,  /* vssra_vx */
6090    0xa8003057,  /* vssrl_vi */
6091    0xa8000057,  /* vssrl_vv */
6092    0xa8004057,  /* vssrl_vx */
6093    0x8c000057,  /* vssub_vv */
6094    0x8c004057,  /* vssub_vx */
6095    0x88000057,  /* vssubu_vv */
6096    0x88004057,  /* vssubu_vx */
6097    0x8000057,   /* vsub_vv */
6098    0x8004057,   /* vsub_vx */
6099    0x4005027,   /* vsuxei16_v */
6100    0x4006027,   /* vsuxei32_v */
6101    0x4007027,   /* vsuxei64_v */
6102    0x4000027,   /* vsuxei8_v */
6103    0xc4002057,  /* vwadd_vv */
6104    0xc4006057,  /* vwadd_vx */
6105    0xd4002057,  /* vwadd_wv */
6106    0xd4006057,  /* vwadd_wx */
6107    0xc0002057,  /* vwaddu_vv */
6108    0xc0006057,  /* vwaddu_vx */
6109    0xd0002057,  /* vwaddu_wv */
6110    0xd0006057,  /* vwaddu_wx */
6111    0xf4002057,  /* vwmacc_vv */
6112    0xf4006057,  /* vwmacc_vx */
6113    0xfc002057,  /* vwmaccsu_vv */
6114    0xfc006057,  /* vwmaccsu_vx */
6115    0xf0002057,  /* vwmaccu_vv */
6116    0xf0006057,  /* vwmaccu_vx */
6117    0xf8006057,  /* vwmaccus_vx */
6118    0xec002057,  /* vwmul_vv */
6119    0xec006057,  /* vwmul_vx */
6120    0xe8002057,  /* vwmulsu_vv */
6121    0xe8006057,  /* vwmulsu_vx */
6122    0xe0002057,  /* vwmulu_vv */
6123    0xe0006057,  /* vwmulu_vx */
6124    0xc4000057,  /* vwredsum_vs */
6125    0xc0000057,  /* vwredsumu_vs */
6126    0xd4003057,  /* vwsll_vi */
6127    0xd4000057,  /* vwsll_vv */
6128    0xd4004057,  /* vwsll_vx */
6129    0xcc002057,  /* vwsub_vv */
6130    0xcc006057,  /* vwsub_vx */
6131    0xdc002057,  /* vwsub_wv */
6132    0xdc006057,  /* vwsub_wx */
6133    0xc8002057,  /* vwsubu_vv */
6134    0xc8006057,  /* vwsubu_vx */
6135    0xd8002057,  /* vwsubu_wv */
6136    0xd8006057,  /* vwsubu_wx */
6137    0x2c003057,  /* vxor_vi */
6138    0x2c000057,  /* vxor_vv */
6139    0x2c004057,  /* vxor_vx */
6140    0x48032057,  /* vzext_vf2 */
6141    0x48022057,  /* vzext_vf4 */
6142    0x48012057,  /* vzext_vf8 */
6143    0x10500073,  /* wfi */
6144    0xd00073,    /* wrs_nto */
6145    0x1d00073,   /* wrs_sto */
6146    0x40004033,  /* xnor */
6147    0x4033,      /* xor */
6148    0x4013,      /* xori */
6149    0x28002033,  /* xperm4 */
6150    0x28004033,  /* xperm8 */
6151    0x7013,      /* zext_b */
6152    0x800403b,   /* zext_h */
6153    0xffff_ffff, /* zext_h_rv32 */
6154    0x800003b,   /* zext_w */
6155    0xffff_ffff, /* zip */
6156];
6157pub static OPCODE64_MASK: [u32; 1021] = [
6158    0xfe00707f,  /* add */
6159    0xfe00707f,  /* add_uw */
6160    0x707f,      /* addi */
6161    0x707f,      /* addiw */
6162    0xfe00707f,  /* addw */
6163    0xffff_ffff, /* aes32dsi */
6164    0xffff_ffff, /* aes32dsmi */
6165    0xffff_ffff, /* aes32esi */
6166    0xffff_ffff, /* aes32esmi */
6167    0xfe00707f,  /* aes64ds */
6168    0xfe00707f,  /* aes64dsm */
6169    0xfe00707f,  /* aes64es */
6170    0xfe00707f,  /* aes64esm */
6171    0xfff0707f,  /* aes64im */
6172    0xff00707f,  /* aes64ks1i */
6173    0xfe00707f,  /* aes64ks2 */
6174    0xf800707f,  /* amoadd_b */
6175    0xf800707f,  /* amoadd_d */
6176    0xf800707f,  /* amoadd_h */
6177    0xf800707f,  /* amoadd_w */
6178    0xf800707f,  /* amoand_b */
6179    0xf800707f,  /* amoand_d */
6180    0xf800707f,  /* amoand_h */
6181    0xf800707f,  /* amoand_w */
6182    0xf800707f,  /* amocas_b */
6183    0xf800707f,  /* amocas_d */
6184    0xf800707f,  /* amocas_h */
6185    0xf800707f,  /* amocas_q */
6186    0xf800707f,  /* amocas_w */
6187    0xf800707f,  /* amomax_b */
6188    0xf800707f,  /* amomax_d */
6189    0xf800707f,  /* amomax_h */
6190    0xf800707f,  /* amomax_w */
6191    0xf800707f,  /* amomaxu_b */
6192    0xf800707f,  /* amomaxu_d */
6193    0xf800707f,  /* amomaxu_h */
6194    0xf800707f,  /* amomaxu_w */
6195    0xf800707f,  /* amomin_b */
6196    0xf800707f,  /* amomin_d */
6197    0xf800707f,  /* amomin_h */
6198    0xf800707f,  /* amomin_w */
6199    0xf800707f,  /* amominu_b */
6200    0xf800707f,  /* amominu_d */
6201    0xf800707f,  /* amominu_h */
6202    0xf800707f,  /* amominu_w */
6203    0xf800707f,  /* amoor_b */
6204    0xf800707f,  /* amoor_d */
6205    0xf800707f,  /* amoor_h */
6206    0xf800707f,  /* amoor_w */
6207    0xf800707f,  /* amoswap_b */
6208    0xf800707f,  /* amoswap_d */
6209    0xf800707f,  /* amoswap_h */
6210    0xf800707f,  /* amoswap_w */
6211    0xf800707f,  /* amoxor_b */
6212    0xf800707f,  /* amoxor_d */
6213    0xf800707f,  /* amoxor_h */
6214    0xf800707f,  /* amoxor_w */
6215    0xfe00707f,  /* and */
6216    0x707f,      /* andi */
6217    0xfe00707f,  /* andn */
6218    0x7f,        /* auipc */
6219    0xfe00707f,  /* bclr */
6220    0xfc00707f,  /* bclri */
6221    0xffff_ffff, /* bclri_rv32 */
6222    0x707f,      /* beq */
6223    0x1f0707f,   /* beqz */
6224    0xfe00707f,  /* bext */
6225    0xfc00707f,  /* bexti */
6226    0xffff_ffff, /* bexti_rv32 */
6227    0x707f,      /* bge */
6228    0x707f,      /* bgeu */
6229    0x1f0707f,   /* bgez */
6230    0x707f,      /* bgt */
6231    0x707f,      /* bgtu */
6232    0xff07f,     /* bgtz */
6233    0xfe00707f,  /* binv */
6234    0xfc00707f,  /* binvi */
6235    0xffff_ffff, /* binvi_rv32 */
6236    0x707f,      /* ble */
6237    0x707f,      /* bleu */
6238    0xff07f,     /* blez */
6239    0x707f,      /* blt */
6240    0x707f,      /* bltu */
6241    0x1f0707f,   /* bltz */
6242    0x707f,      /* bne */
6243    0x1f0707f,   /* bnez */
6244    0xfff0707f,  /* brev8 */
6245    0xfe00707f,  /* bset */
6246    0xfc00707f,  /* bseti */
6247    0xffff_ffff, /* bseti_rv32 */
6248    0xf003,      /* c_add */
6249    0xe003,      /* c_addi */
6250    0xef83,      /* c_addi16sp */
6251    0xe003,      /* c_addi4spn */
6252    0xe003,      /* c_addiw */
6253    0xfc63,      /* c_addw */
6254    0xfc63,      /* c_and */
6255    0xec03,      /* c_andi */
6256    0xe003,      /* c_beqz */
6257    0xe003,      /* c_bnez */
6258    0xffff,      /* c_ebreak */
6259    0xe003,      /* c_fld */
6260    0xe003,      /* c_fldsp */
6261    0xffff_ffff, /* c_flw */
6262    0xffff_ffff, /* c_flwsp */
6263    0xe003,      /* c_fsd */
6264    0xe003,      /* c_fsdsp */
6265    0xffff_ffff, /* c_fsw */
6266    0xffff_ffff, /* c_fswsp */
6267    0xe003,      /* c_j */
6268    0xffff_ffff, /* c_jal */
6269    0xf07f,      /* c_jalr */
6270    0xf07f,      /* c_jr */
6271    0xfc03,      /* c_lbu */
6272    0xe003,      /* c_ld */
6273    0xe003,      /* c_ldsp */
6274    0xfc43,      /* c_lh */
6275    0xfc43,      /* c_lhu */
6276    0xe003,      /* c_li */
6277    0xe003,      /* c_lui */
6278    0xe003,      /* c_lw */
6279    0xe003,      /* c_lwsp */
6280    0xffff,      /* c_mop_1 */
6281    0xffff,      /* c_mop_11 */
6282    0xffff,      /* c_mop_13 */
6283    0xffff,      /* c_mop_15 */
6284    0xffff,      /* c_mop_3 */
6285    0xffff,      /* c_mop_5 */
6286    0xffff,      /* c_mop_7 */
6287    0xffff,      /* c_mop_9 */
6288    0xf8ff,      /* c_mop_N */
6289    0xfc63,      /* c_mul */
6290    0xf003,      /* c_mv */
6291    0xef83,      /* c_nop */
6292    0xfc7f,      /* c_not */
6293    0xffff,      /* c_ntl_all */
6294    0xffff,      /* c_ntl_p1 */
6295    0xffff,      /* c_ntl_pall */
6296    0xffff,      /* c_ntl_s1 */
6297    0xfc63,      /* c_or */
6298    0xfc03,      /* c_sb */
6299    0xe003,      /* c_sd */
6300    0xe003,      /* c_sdsp */
6301    0xfc7f,      /* c_sext_b */
6302    0xfc7f,      /* c_sext_h */
6303    0xf07f,      /* c_sext_w */
6304    0xfc43,      /* c_sh */
6305    0xe003,      /* c_slli */
6306    0xffff_ffff, /* c_slli_rv32 */
6307    0xec03,      /* c_srai */
6308    0xffff_ffff, /* c_srai_rv32 */
6309    0xec03,      /* c_srli */
6310    0xffff_ffff, /* c_srli_rv32 */
6311    0xfc63,      /* c_sub */
6312    0xfc63,      /* c_subw */
6313    0xe003,      /* c_sw */
6314    0xe003,      /* c_swsp */
6315    0xfc63,      /* c_xor */
6316    0xfc7f,      /* c_zext_b */
6317    0xfc7f,      /* c_zext_h */
6318    0xfc7f,      /* c_zext_w */
6319    0xfff07fff,  /* cbo_clean */
6320    0xfff07fff,  /* cbo_flush */
6321    0xfff07fff,  /* cbo_inval */
6322    0xfff07fff,  /* cbo_zero */
6323    0xfe00707f,  /* clmul */
6324    0xfe00707f,  /* clmulh */
6325    0xfe00707f,  /* clmulr */
6326    0xfff0707f,  /* clz */
6327    0xfff0707f,  /* clzw */
6328    0xfc03,      /* cm_jalt */
6329    0xfc63,      /* cm_mva01s */
6330    0xfc63,      /* cm_mvsa01 */
6331    0xff03,      /* cm_pop */
6332    0xff03,      /* cm_popret */
6333    0xff03,      /* cm_popretz */
6334    0xff03,      /* cm_push */
6335    0xfff0707f,  /* cpop */
6336    0xfff0707f,  /* cpopw */
6337    0x7fff,      /* csrc */
6338    0x7fff,      /* csrci */
6339    0xff07f,     /* csrr */
6340    0x707f,      /* csrrc */
6341    0x707f,      /* csrrci */
6342    0x707f,      /* csrrs */
6343    0x707f,      /* csrrsi */
6344    0x707f,      /* csrrw */
6345    0x707f,      /* csrrwi */
6346    0x7fff,      /* csrs */
6347    0x7fff,      /* csrsi */
6348    0x7fff,      /* csrw */
6349    0x7fff,      /* csrwi */
6350    0xfff0707f,  /* ctz */
6351    0xfff0707f,  /* ctzw */
6352    0xfe00707f,  /* czero_eqz */
6353    0xfe00707f,  /* czero_nez */
6354    0xfe00707f,  /* div */
6355    0xfe00707f,  /* divu */
6356    0xfe00707f,  /* divuw */
6357    0xfe00707f,  /* divw */
6358    0xffffffff,  /* dret */
6359    0xffffffff,  /* ebreak */
6360    0xffffffff,  /* ecall */
6361    0xfe00707f,  /* fabs_d */
6362    0xfe00707f,  /* fabs_h */
6363    0xfe00707f,  /* fabs_q */
6364    0xfe00707f,  /* fabs_s */
6365    0xfe00007f,  /* fadd_d */
6366    0xfe00007f,  /* fadd_h */
6367    0xfe00007f,  /* fadd_q */
6368    0xfe00007f,  /* fadd_s */
6369    0xfff0707f,  /* fclass_d */
6370    0xfff0707f,  /* fclass_h */
6371    0xfff0707f,  /* fclass_q */
6372    0xfff0707f,  /* fclass_s */
6373    0xfff0007f,  /* fcvt_d_h */
6374    0xfff0007f,  /* fcvt_d_l */
6375    0xfff0007f,  /* fcvt_d_lu */
6376    0xfff0007f,  /* fcvt_d_q */
6377    0xfff0007f,  /* fcvt_d_s */
6378    0xfff0007f,  /* fcvt_d_w */
6379    0xfff0007f,  /* fcvt_d_wu */
6380    0xfff0007f,  /* fcvt_h_d */
6381    0xfff0007f,  /* fcvt_h_l */
6382    0xfff0007f,  /* fcvt_h_lu */
6383    0xfff0007f,  /* fcvt_h_q */
6384    0xfff0007f,  /* fcvt_h_s */
6385    0xfff0007f,  /* fcvt_h_w */
6386    0xfff0007f,  /* fcvt_h_wu */
6387    0xfff0007f,  /* fcvt_l_d */
6388    0xfff0007f,  /* fcvt_l_h */
6389    0xfff0007f,  /* fcvt_l_q */
6390    0xfff0007f,  /* fcvt_l_s */
6391    0xfff0007f,  /* fcvt_lu_d */
6392    0xfff0007f,  /* fcvt_lu_h */
6393    0xfff0007f,  /* fcvt_lu_q */
6394    0xfff0007f,  /* fcvt_lu_s */
6395    0xfff0007f,  /* fcvt_q_d */
6396    0xfff0007f,  /* fcvt_q_h */
6397    0xfff0007f,  /* fcvt_q_l */
6398    0xfff0007f,  /* fcvt_q_lu */
6399    0xfff0007f,  /* fcvt_q_s */
6400    0xfff0007f,  /* fcvt_q_w */
6401    0xfff0007f,  /* fcvt_q_wu */
6402    0xfff0007f,  /* fcvt_s_d */
6403    0xfff0007f,  /* fcvt_s_h */
6404    0xfff0007f,  /* fcvt_s_l */
6405    0xfff0007f,  /* fcvt_s_lu */
6406    0xfff0007f,  /* fcvt_s_q */
6407    0xfff0007f,  /* fcvt_s_w */
6408    0xfff0007f,  /* fcvt_s_wu */
6409    0xfff0007f,  /* fcvt_w_d */
6410    0xfff0007f,  /* fcvt_w_h */
6411    0xfff0007f,  /* fcvt_w_q */
6412    0xfff0007f,  /* fcvt_w_s */
6413    0xfff0007f,  /* fcvt_wu_d */
6414    0xfff0007f,  /* fcvt_wu_h */
6415    0xfff0007f,  /* fcvt_wu_q */
6416    0xfff0007f,  /* fcvt_wu_s */
6417    0xfff0707f,  /* fcvtmod_w_d */
6418    0xfe00007f,  /* fdiv_d */
6419    0xfe00007f,  /* fdiv_h */
6420    0xfe00007f,  /* fdiv_q */
6421    0xfe00007f,  /* fdiv_s */
6422    0x707f,      /* fence */
6423    0x707f,      /* fence_i */
6424    0xfff0707f,  /* fence_tso */
6425    0xfe00707f,  /* feq_d */
6426    0xfe00707f,  /* feq_h */
6427    0xfe00707f,  /* feq_q */
6428    0xfe00707f,  /* feq_s */
6429    0x707f,      /* fld */
6430    0xfe00707f,  /* fle_d */
6431    0xfe00707f,  /* fle_h */
6432    0xfe00707f,  /* fle_q */
6433    0xfe00707f,  /* fle_s */
6434    0xfe00707f,  /* fleq_d */
6435    0xfe00707f,  /* fleq_h */
6436    0xfe00707f,  /* fleq_q */
6437    0xfe00707f,  /* fleq_s */
6438    0x707f,      /* flh */
6439    0xfff0707f,  /* fli_d */
6440    0xfff0707f,  /* fli_h */
6441    0xfff0707f,  /* fli_q */
6442    0xfff0707f,  /* fli_s */
6443    0x707f,      /* flq */
6444    0xfe00707f,  /* flt_d */
6445    0xfe00707f,  /* flt_h */
6446    0xfe00707f,  /* flt_q */
6447    0xfe00707f,  /* flt_s */
6448    0xfe00707f,  /* fltq_d */
6449    0xfe00707f,  /* fltq_h */
6450    0xfe00707f,  /* fltq_q */
6451    0xfe00707f,  /* fltq_s */
6452    0x707f,      /* flw */
6453    0x600007f,   /* fmadd_d */
6454    0x600007f,   /* fmadd_h */
6455    0x600007f,   /* fmadd_q */
6456    0x600007f,   /* fmadd_s */
6457    0xfe00707f,  /* fmax_d */
6458    0xfe00707f,  /* fmax_h */
6459    0xfe00707f,  /* fmax_q */
6460    0xfe00707f,  /* fmax_s */
6461    0xfe00707f,  /* fmaxm_d */
6462    0xfe00707f,  /* fmaxm_h */
6463    0xfe00707f,  /* fmaxm_q */
6464    0xfe00707f,  /* fmaxm_s */
6465    0xfe00707f,  /* fmin_d */
6466    0xfe00707f,  /* fmin_h */
6467    0xfe00707f,  /* fmin_q */
6468    0xfe00707f,  /* fmin_s */
6469    0xfe00707f,  /* fminm_d */
6470    0xfe00707f,  /* fminm_h */
6471    0xfe00707f,  /* fminm_q */
6472    0xfe00707f,  /* fminm_s */
6473    0x600007f,   /* fmsub_d */
6474    0x600007f,   /* fmsub_h */
6475    0x600007f,   /* fmsub_q */
6476    0x600007f,   /* fmsub_s */
6477    0xfe00007f,  /* fmul_d */
6478    0xfe00007f,  /* fmul_h */
6479    0xfe00007f,  /* fmul_q */
6480    0xfe00007f,  /* fmul_s */
6481    0xfe00707f,  /* fmv_d */
6482    0xfff0707f,  /* fmv_d_x */
6483    0xfe00707f,  /* fmv_h */
6484    0xfff0707f,  /* fmv_h_x */
6485    0xfe00707f,  /* fmv_q */
6486    0xfe00707f,  /* fmv_s */
6487    0xfff0707f,  /* fmv_s_x */
6488    0xfff0707f,  /* fmv_w_x */
6489    0xfff0707f,  /* fmv_x_d */
6490    0xfff0707f,  /* fmv_x_h */
6491    0xfff0707f,  /* fmv_x_s */
6492    0xfff0707f,  /* fmv_x_w */
6493    0xffff_ffff, /* fmvh_x_d */
6494    0xfff0707f,  /* fmvh_x_q */
6495    0xffff_ffff, /* fmvp_d_x */
6496    0xfe00707f,  /* fmvp_q_x */
6497    0xfe00707f,  /* fneg_d */
6498    0xfe00707f,  /* fneg_h */
6499    0xfe00707f,  /* fneg_q */
6500    0xfe00707f,  /* fneg_s */
6501    0x600007f,   /* fnmadd_d */
6502    0x600007f,   /* fnmadd_h */
6503    0x600007f,   /* fnmadd_q */
6504    0x600007f,   /* fnmadd_s */
6505    0x600007f,   /* fnmsub_d */
6506    0x600007f,   /* fnmsub_h */
6507    0x600007f,   /* fnmsub_q */
6508    0x600007f,   /* fnmsub_s */
6509    0xfffff07f,  /* frcsr */
6510    0xfffff07f,  /* frflags */
6511    0xfff0007f,  /* fround_d */
6512    0xfff0007f,  /* fround_h */
6513    0xfff0007f,  /* fround_q */
6514    0xfff0007f,  /* fround_s */
6515    0xfff0007f,  /* froundnx_d */
6516    0xfff0007f,  /* froundnx_h */
6517    0xfff0007f,  /* froundnx_q */
6518    0xfff0007f,  /* froundnx_s */
6519    0xfffff07f,  /* frrm */
6520    0xfff0707f,  /* fscsr */
6521    0x707f,      /* fsd */
6522    0xfff0707f,  /* fsflags */
6523    0xfff0707f,  /* fsflagsi */
6524    0xfe00707f,  /* fsgnj_d */
6525    0xfe00707f,  /* fsgnj_h */
6526    0xfe00707f,  /* fsgnj_q */
6527    0xfe00707f,  /* fsgnj_s */
6528    0xfe00707f,  /* fsgnjn_d */
6529    0xfe00707f,  /* fsgnjn_h */
6530    0xfe00707f,  /* fsgnjn_q */
6531    0xfe00707f,  /* fsgnjn_s */
6532    0xfe00707f,  /* fsgnjx_d */
6533    0xfe00707f,  /* fsgnjx_h */
6534    0xfe00707f,  /* fsgnjx_q */
6535    0xfe00707f,  /* fsgnjx_s */
6536    0x707f,      /* fsh */
6537    0x707f,      /* fsq */
6538    0xfff0007f,  /* fsqrt_d */
6539    0xfff0007f,  /* fsqrt_h */
6540    0xfff0007f,  /* fsqrt_q */
6541    0xfff0007f,  /* fsqrt_s */
6542    0xfff0707f,  /* fsrm */
6543    0xfff0707f,  /* fsrmi */
6544    0xfe00007f,  /* fsub_d */
6545    0xfe00007f,  /* fsub_h */
6546    0xfe00007f,  /* fsub_q */
6547    0xfe00007f,  /* fsub_s */
6548    0x707f,      /* fsw */
6549    0xfe007fff,  /* hfence_gvma */
6550    0xfe007fff,  /* hfence_vvma */
6551    0xfe007fff,  /* hinval_gvma */
6552    0xfe007fff,  /* hinval_vvma */
6553    0xfff0707f,  /* hlv_b */
6554    0xfff0707f,  /* hlv_bu */
6555    0xfff0707f,  /* hlv_d */
6556    0xfff0707f,  /* hlv_h */
6557    0xfff0707f,  /* hlv_hu */
6558    0xfff0707f,  /* hlv_w */
6559    0xfff0707f,  /* hlv_wu */
6560    0xfff0707f,  /* hlvx_hu */
6561    0xfff0707f,  /* hlvx_wu */
6562    0xfe007fff,  /* hsv_b */
6563    0xfe007fff,  /* hsv_d */
6564    0xfe007fff,  /* hsv_h */
6565    0xfe007fff,  /* hsv_w */
6566    0xfff,       /* j */
6567    0x7f,        /* jal */
6568    0xfff,       /* jal_pseudo */
6569    0x707f,      /* jalr */
6570    0xfff07fff,  /* jalr_pseudo */
6571    0xfff07fff,  /* jr */
6572    0x707f,      /* lb */
6573    0x707f,      /* lbu */
6574    0x707f,      /* ld */
6575    0x707f,      /* lh */
6576    0x707f,      /* lhu */
6577    0xf9f0707f,  /* lr_d */
6578    0xf9f0707f,  /* lr_w */
6579    0x7f,        /* lui */
6580    0x707f,      /* lw */
6581    0x707f,      /* lwu */
6582    0xfe00707f,  /* max */
6583    0xfe00707f,  /* maxu */
6584    0xfe00707f,  /* min */
6585    0xfe00707f,  /* minu */
6586    0xfff0707f,  /* mop_r_0 */
6587    0xfff0707f,  /* mop_r_1 */
6588    0xfff0707f,  /* mop_r_10 */
6589    0xfff0707f,  /* mop_r_11 */
6590    0xfff0707f,  /* mop_r_12 */
6591    0xfff0707f,  /* mop_r_13 */
6592    0xfff0707f,  /* mop_r_14 */
6593    0xfff0707f,  /* mop_r_15 */
6594    0xfff0707f,  /* mop_r_16 */
6595    0xfff0707f,  /* mop_r_17 */
6596    0xfff0707f,  /* mop_r_18 */
6597    0xfff0707f,  /* mop_r_19 */
6598    0xfff0707f,  /* mop_r_2 */
6599    0xfff0707f,  /* mop_r_20 */
6600    0xfff0707f,  /* mop_r_21 */
6601    0xfff0707f,  /* mop_r_22 */
6602    0xfff0707f,  /* mop_r_23 */
6603    0xfff0707f,  /* mop_r_24 */
6604    0xfff0707f,  /* mop_r_25 */
6605    0xfff0707f,  /* mop_r_26 */
6606    0xfff0707f,  /* mop_r_27 */
6607    0xfff0707f,  /* mop_r_28 */
6608    0xfff0707f,  /* mop_r_29 */
6609    0xfff0707f,  /* mop_r_3 */
6610    0xfff0707f,  /* mop_r_30 */
6611    0xfff0707f,  /* mop_r_31 */
6612    0xfff0707f,  /* mop_r_4 */
6613    0xfff0707f,  /* mop_r_5 */
6614    0xfff0707f,  /* mop_r_6 */
6615    0xfff0707f,  /* mop_r_7 */
6616    0xfff0707f,  /* mop_r_8 */
6617    0xfff0707f,  /* mop_r_9 */
6618    0xb3c0707f,  /* mop_r_N */
6619    0xfe00707f,  /* mop_rr_0 */
6620    0xfe00707f,  /* mop_rr_1 */
6621    0xfe00707f,  /* mop_rr_2 */
6622    0xfe00707f,  /* mop_rr_3 */
6623    0xfe00707f,  /* mop_rr_4 */
6624    0xfe00707f,  /* mop_rr_5 */
6625    0xfe00707f,  /* mop_rr_6 */
6626    0xfe00707f,  /* mop_rr_7 */
6627    0xb200707f,  /* mop_rr_N */
6628    0xffffffff,  /* mret */
6629    0xfe00707f,  /* mul */
6630    0xfe00707f,  /* mulh */
6631    0xfe00707f,  /* mulhsu */
6632    0xfe00707f,  /* mulhu */
6633    0xfe00707f,  /* mulw */
6634    0xfff0707f,  /* mv */
6635    0xfff0707f,  /* neg */
6636    0xffffffff,  /* nop */
6637    0xffffffff,  /* ntl_all */
6638    0xffffffff,  /* ntl_p1 */
6639    0xffffffff,  /* ntl_pall */
6640    0xffffffff,  /* ntl_s1 */
6641    0xfe00707f,  /* or */
6642    0xfff0707f,  /* orc_b */
6643    0x707f,      /* ori */
6644    0xfe00707f,  /* orn */
6645    0xfe00707f,  /* pack */
6646    0xfe00707f,  /* packh */
6647    0xfe00707f,  /* packw */
6648    0xffffffff,  /* pause */
6649    0x1f07fff,   /* prefetch_i */
6650    0x1f07fff,   /* prefetch_r */
6651    0x1f07fff,   /* prefetch_w */
6652    0xfffff07f,  /* rdcycle */
6653    0xffff_ffff, /* rdcycleh */
6654    0xfffff07f,  /* rdinstret */
6655    0xffff_ffff, /* rdinstreth */
6656    0xfffff07f,  /* rdtime */
6657    0xffff_ffff, /* rdtimeh */
6658    0xfe00707f,  /* rem */
6659    0xfe00707f,  /* remu */
6660    0xfe00707f,  /* remuw */
6661    0xfe00707f,  /* remw */
6662    0xffffffff,  /* ret */
6663    0xfff0707f,  /* rev8 */
6664    0xffff_ffff, /* rev8_rv32 */
6665    0xfe00707f,  /* rol */
6666    0xfe00707f,  /* rolw */
6667    0xfe00707f,  /* ror */
6668    0xfc00707f,  /* rori */
6669    0xffff_ffff, /* rori_rv32 */
6670    0xfe00707f,  /* roriw */
6671    0xfe00707f,  /* rorw */
6672    0x707f,      /* sb */
6673    0xffffffff,  /* sbreak */
6674    0xf800707f,  /* sc_d */
6675    0xf800707f,  /* sc_w */
6676    0xffffffff,  /* scall */
6677    0x707f,      /* sd */
6678    0xfff0707f,  /* seqz */
6679    0xfff0707f,  /* sext_b */
6680    0xfff0707f,  /* sext_h */
6681    0xfff0707f,  /* sext_w */
6682    0xffffffff,  /* sfence_inval_ir */
6683    0xfe007fff,  /* sfence_vma */
6684    0xffffffff,  /* sfence_w_inval */
6685    0xfe0ff07f,  /* sgtz */
6686    0x707f,      /* sh */
6687    0xfe00707f,  /* sh1add */
6688    0xfe00707f,  /* sh1add_uw */
6689    0xfe00707f,  /* sh2add */
6690    0xfe00707f,  /* sh2add_uw */
6691    0xfe00707f,  /* sh3add */
6692    0xfe00707f,  /* sh3add_uw */
6693    0xfff0707f,  /* sha256sig0 */
6694    0xfff0707f,  /* sha256sig1 */
6695    0xfff0707f,  /* sha256sum0 */
6696    0xfff0707f,  /* sha256sum1 */
6697    0xfff0707f,  /* sha512sig0 */
6698    0xffff_ffff, /* sha512sig0h */
6699    0xffff_ffff, /* sha512sig0l */
6700    0xfff0707f,  /* sha512sig1 */
6701    0xffff_ffff, /* sha512sig1h */
6702    0xffff_ffff, /* sha512sig1l */
6703    0xfff0707f,  /* sha512sum0 */
6704    0xffff_ffff, /* sha512sum0r */
6705    0xfff0707f,  /* sha512sum1 */
6706    0xffff_ffff, /* sha512sum1r */
6707    0xfe007fff,  /* sinval_vma */
6708    0xfe00707f,  /* sll */
6709    0xfc00707f,  /* slli */
6710    0xffff_ffff, /* slli_rv32 */
6711    0xfc00707f,  /* slli_uw */
6712    0xfe00707f,  /* slliw */
6713    0xfe00707f,  /* sllw */
6714    0xfe00707f,  /* slt */
6715    0x707f,      /* slti */
6716    0x707f,      /* sltiu */
6717    0xfe00707f,  /* sltu */
6718    0xfff0707f,  /* sltz */
6719    0xfff0707f,  /* sm3p0 */
6720    0xfff0707f,  /* sm3p1 */
6721    0x3e00707f,  /* sm4ed */
6722    0x3e00707f,  /* sm4ks */
6723    0xfe0ff07f,  /* snez */
6724    0xfe00707f,  /* sra */
6725    0xfc00707f,  /* srai */
6726    0xffff_ffff, /* srai_rv32 */
6727    0xfe00707f,  /* sraiw */
6728    0xfe00707f,  /* sraw */
6729    0xffffffff,  /* sret */
6730    0xfe00707f,  /* srl */
6731    0xfc00707f,  /* srli */
6732    0xffff_ffff, /* srli_rv32 */
6733    0xfe00707f,  /* srliw */
6734    0xfe00707f,  /* srlw */
6735    0xfe00707f,  /* sub */
6736    0xfe00707f,  /* subw */
6737    0x707f,      /* sw */
6738    0xffff_ffff, /* unzip */
6739    0xfc00707f,  /* vaadd_vv */
6740    0xfc00707f,  /* vaadd_vx */
6741    0xfc00707f,  /* vaaddu_vv */
6742    0xfc00707f,  /* vaaddu_vx */
6743    0xfe00707f,  /* vadc_vim */
6744    0xfe00707f,  /* vadc_vvm */
6745    0xfe00707f,  /* vadc_vxm */
6746    0xfc00707f,  /* vadd_vi */
6747    0xfc00707f,  /* vadd_vv */
6748    0xfc00707f,  /* vadd_vx */
6749    0xfe0ff07f,  /* vaesdf_vs */
6750    0xfe0ff07f,  /* vaesdf_vv */
6751    0xfe0ff07f,  /* vaesdm_vs */
6752    0xfe0ff07f,  /* vaesdm_vv */
6753    0xfe0ff07f,  /* vaesef_vs */
6754    0xfe0ff07f,  /* vaesef_vv */
6755    0xfe0ff07f,  /* vaesem_vs */
6756    0xfe0ff07f,  /* vaesem_vv */
6757    0xfe00707f,  /* vaeskf1_vi */
6758    0xfe00707f,  /* vaeskf2_vi */
6759    0xfe0ff07f,  /* vaesz_vs */
6760    0xfc00707f,  /* vand_vi */
6761    0xfc00707f,  /* vand_vv */
6762    0xfc00707f,  /* vand_vx */
6763    0xfc00707f,  /* vandn_vv */
6764    0xfc00707f,  /* vandn_vx */
6765    0xfc00707f,  /* vasub_vv */
6766    0xfc00707f,  /* vasub_vx */
6767    0xfc00707f,  /* vasubu_vv */
6768    0xfc00707f,  /* vasubu_vx */
6769    0xfc0ff07f,  /* vbrev8_v */
6770    0xfc0ff07f,  /* vbrev_v */
6771    0xfc00707f,  /* vclmul_vv */
6772    0xfc00707f,  /* vclmul_vx */
6773    0xfc00707f,  /* vclmulh_vv */
6774    0xfc00707f,  /* vclmulh_vx */
6775    0xfc0ff07f,  /* vclz_v */
6776    0xfe00707f,  /* vcompress_vm */
6777    0xfc0ff07f,  /* vcpop_m */
6778    0xfc0ff07f,  /* vcpop_v */
6779    0xfc0ff07f,  /* vctz_v */
6780    0xfc00707f,  /* vdiv_vv */
6781    0xfc00707f,  /* vdiv_vx */
6782    0xfc00707f,  /* vdivu_vv */
6783    0xfc00707f,  /* vdivu_vx */
6784    0xfc00707f,  /* vfadd_vf */
6785    0xfc00707f,  /* vfadd_vv */
6786    0xfc0ff07f,  /* vfclass_v */
6787    0xfc0ff07f,  /* vfcvt_f_x_v */
6788    0xfc0ff07f,  /* vfcvt_f_xu_v */
6789    0xfc0ff07f,  /* vfcvt_rtz_x_f_v */
6790    0xfc0ff07f,  /* vfcvt_rtz_xu_f_v */
6791    0xfc0ff07f,  /* vfcvt_x_f_v */
6792    0xfc0ff07f,  /* vfcvt_xu_f_v */
6793    0xfc00707f,  /* vfdiv_vf */
6794    0xfc00707f,  /* vfdiv_vv */
6795    0xfc0ff07f,  /* vfirst_m */
6796    0xfc00707f,  /* vfmacc_vf */
6797    0xfc00707f,  /* vfmacc_vv */
6798    0xfc00707f,  /* vfmadd_vf */
6799    0xfc00707f,  /* vfmadd_vv */
6800    0xfc00707f,  /* vfmax_vf */
6801    0xfc00707f,  /* vfmax_vv */
6802    0xfe00707f,  /* vfmerge_vfm */
6803    0xfc00707f,  /* vfmin_vf */
6804    0xfc00707f,  /* vfmin_vv */
6805    0xfc00707f,  /* vfmsac_vf */
6806    0xfc00707f,  /* vfmsac_vv */
6807    0xfc00707f,  /* vfmsub_vf */
6808    0xfc00707f,  /* vfmsub_vv */
6809    0xfc00707f,  /* vfmul_vf */
6810    0xfc00707f,  /* vfmul_vv */
6811    0xfe0ff07f,  /* vfmv_f_s */
6812    0xfff0707f,  /* vfmv_s_f */
6813    0xfff0707f,  /* vfmv_v_f */
6814    0xfc0ff07f,  /* vfncvt_f_f_w */
6815    0xfc0ff07f,  /* vfncvt_f_x_w */
6816    0xfc0ff07f,  /* vfncvt_f_xu_w */
6817    0xfc0ff07f,  /* vfncvt_rod_f_f_w */
6818    0xfc0ff07f,  /* vfncvt_rtz_x_f_w */
6819    0xfc0ff07f,  /* vfncvt_rtz_xu_f_w */
6820    0xfc0ff07f,  /* vfncvt_x_f_w */
6821    0xfc0ff07f,  /* vfncvt_xu_f_w */
6822    0xfc00707f,  /* vfnmacc_vf */
6823    0xfc00707f,  /* vfnmacc_vv */
6824    0xfc00707f,  /* vfnmadd_vf */
6825    0xfc00707f,  /* vfnmadd_vv */
6826    0xfc00707f,  /* vfnmsac_vf */
6827    0xfc00707f,  /* vfnmsac_vv */
6828    0xfc00707f,  /* vfnmsub_vf */
6829    0xfc00707f,  /* vfnmsub_vv */
6830    0xfc00707f,  /* vfrdiv_vf */
6831    0xfc0ff07f,  /* vfrec7_v */
6832    0xfc00707f,  /* vfredmax_vs */
6833    0xfc00707f,  /* vfredmin_vs */
6834    0xfc00707f,  /* vfredosum_vs */
6835    0xfc00707f,  /* vfredsum_vs */
6836    0xfc00707f,  /* vfredusum_vs */
6837    0xfc0ff07f,  /* vfrsqrt7_v */
6838    0xfc00707f,  /* vfrsub_vf */
6839    0xfc00707f,  /* vfsgnj_vf */
6840    0xfc00707f,  /* vfsgnj_vv */
6841    0xfc00707f,  /* vfsgnjn_vf */
6842    0xfc00707f,  /* vfsgnjn_vv */
6843    0xfc00707f,  /* vfsgnjx_vf */
6844    0xfc00707f,  /* vfsgnjx_vv */
6845    0xfc00707f,  /* vfslide1down_vf */
6846    0xfc00707f,  /* vfslide1up_vf */
6847    0xfc0ff07f,  /* vfsqrt_v */
6848    0xfc00707f,  /* vfsub_vf */
6849    0xfc00707f,  /* vfsub_vv */
6850    0xfc00707f,  /* vfwadd_vf */
6851    0xfc00707f,  /* vfwadd_vv */
6852    0xfc00707f,  /* vfwadd_wf */
6853    0xfc00707f,  /* vfwadd_wv */
6854    0xfc0ff07f,  /* vfwcvt_f_f_v */
6855    0xfc0ff07f,  /* vfwcvt_f_x_v */
6856    0xfc0ff07f,  /* vfwcvt_f_xu_v */
6857    0xfc0ff07f,  /* vfwcvt_rtz_x_f_v */
6858    0xfc0ff07f,  /* vfwcvt_rtz_xu_f_v */
6859    0xfc0ff07f,  /* vfwcvt_x_f_v */
6860    0xfc0ff07f,  /* vfwcvt_xu_f_v */
6861    0xfc00707f,  /* vfwmacc_vf */
6862    0xfc00707f,  /* vfwmacc_vv */
6863    0xfc00707f,  /* vfwmsac_vf */
6864    0xfc00707f,  /* vfwmsac_vv */
6865    0xfc00707f,  /* vfwmul_vf */
6866    0xfc00707f,  /* vfwmul_vv */
6867    0xfc00707f,  /* vfwnmacc_vf */
6868    0xfc00707f,  /* vfwnmacc_vv */
6869    0xfc00707f,  /* vfwnmsac_vf */
6870    0xfc00707f,  /* vfwnmsac_vv */
6871    0xfc00707f,  /* vfwredosum_vs */
6872    0xfc00707f,  /* vfwredsum_vs */
6873    0xfc00707f,  /* vfwredusum_vs */
6874    0xfc00707f,  /* vfwsub_vf */
6875    0xfc00707f,  /* vfwsub_vv */
6876    0xfc00707f,  /* vfwsub_wf */
6877    0xfc00707f,  /* vfwsub_wv */
6878    0xfe00707f,  /* vghsh_vv */
6879    0xfe0ff07f,  /* vgmul_vv */
6880    0xfdfff07f,  /* vid_v */
6881    0xfc0ff07f,  /* viota_m */
6882    0xfff0707f,  /* vl1r_v */
6883    0xfff0707f,  /* vl1re16_v */
6884    0xfff0707f,  /* vl1re32_v */
6885    0xfff0707f,  /* vl1re64_v */
6886    0xfff0707f,  /* vl1re8_v */
6887    0xfff0707f,  /* vl2r_v */
6888    0xfff0707f,  /* vl2re16_v */
6889    0xfff0707f,  /* vl2re32_v */
6890    0xfff0707f,  /* vl2re64_v */
6891    0xfff0707f,  /* vl2re8_v */
6892    0xfff0707f,  /* vl4r_v */
6893    0xfff0707f,  /* vl4re16_v */
6894    0xfff0707f,  /* vl4re32_v */
6895    0xfff0707f,  /* vl4re64_v */
6896    0xfff0707f,  /* vl4re8_v */
6897    0xfff0707f,  /* vl8r_v */
6898    0xfff0707f,  /* vl8re16_v */
6899    0xfff0707f,  /* vl8re32_v */
6900    0xfff0707f,  /* vl8re64_v */
6901    0xfff0707f,  /* vl8re8_v */
6902    0x1df0707f,  /* vle16_v */
6903    0x1df0707f,  /* vle16ff_v */
6904    0xfff0707f,  /* vle1_v */
6905    0x1df0707f,  /* vle32_v */
6906    0x1df0707f,  /* vle32ff_v */
6907    0x1df0707f,  /* vle64_v */
6908    0x1df0707f,  /* vle64ff_v */
6909    0x1df0707f,  /* vle8_v */
6910    0x1df0707f,  /* vle8ff_v */
6911    0xfff0707f,  /* vlm_v */
6912    0x1c00707f,  /* vloxei16_v */
6913    0x1c00707f,  /* vloxei32_v */
6914    0x1c00707f,  /* vloxei64_v */
6915    0x1c00707f,  /* vloxei8_v */
6916    0x1c00707f,  /* vlse16_v */
6917    0x1c00707f,  /* vlse32_v */
6918    0x1c00707f,  /* vlse64_v */
6919    0x1c00707f,  /* vlse8_v */
6920    0x1c00707f,  /* vluxei16_v */
6921    0x1c00707f,  /* vluxei32_v */
6922    0x1c00707f,  /* vluxei64_v */
6923    0x1c00707f,  /* vluxei8_v */
6924    0xfc00707f,  /* vmacc_vv */
6925    0xfc00707f,  /* vmacc_vx */
6926    0xfe00707f,  /* vmadc_vi */
6927    0xfe00707f,  /* vmadc_vim */
6928    0xfe00707f,  /* vmadc_vv */
6929    0xfe00707f,  /* vmadc_vvm */
6930    0xfe00707f,  /* vmadc_vx */
6931    0xfe00707f,  /* vmadc_vxm */
6932    0xfc00707f,  /* vmadd_vv */
6933    0xfc00707f,  /* vmadd_vx */
6934    0xfe00707f,  /* vmand_mm */
6935    0xfe00707f,  /* vmandn_mm */
6936    0xfc00707f,  /* vmandnot_mm */
6937    0xfc00707f,  /* vmax_vv */
6938    0xfc00707f,  /* vmax_vx */
6939    0xfc00707f,  /* vmaxu_vv */
6940    0xfc00707f,  /* vmaxu_vx */
6941    0xfe00707f,  /* vmerge_vim */
6942    0xfe00707f,  /* vmerge_vvm */
6943    0xfe00707f,  /* vmerge_vxm */
6944    0xfc00707f,  /* vmfeq_vf */
6945    0xfc00707f,  /* vmfeq_vv */
6946    0xfc00707f,  /* vmfge_vf */
6947    0xfc00707f,  /* vmfgt_vf */
6948    0xfc00707f,  /* vmfle_vf */
6949    0xfc00707f,  /* vmfle_vv */
6950    0xfc00707f,  /* vmflt_vf */
6951    0xfc00707f,  /* vmflt_vv */
6952    0xfc00707f,  /* vmfne_vf */
6953    0xfc00707f,  /* vmfne_vv */
6954    0xfc00707f,  /* vmin_vv */
6955    0xfc00707f,  /* vmin_vx */
6956    0xfc00707f,  /* vminu_vv */
6957    0xfc00707f,  /* vminu_vx */
6958    0xfe00707f,  /* vmnand_mm */
6959    0xfe00707f,  /* vmnor_mm */
6960    0xfe00707f,  /* vmor_mm */
6961    0xfe00707f,  /* vmorn_mm */
6962    0xfc00707f,  /* vmornot_mm */
6963    0xfe00707f,  /* vmsbc_vv */
6964    0xfe00707f,  /* vmsbc_vvm */
6965    0xfe00707f,  /* vmsbc_vx */
6966    0xfe00707f,  /* vmsbc_vxm */
6967    0xfc0ff07f,  /* vmsbf_m */
6968    0xfc00707f,  /* vmseq_vi */
6969    0xfc00707f,  /* vmseq_vv */
6970    0xfc00707f,  /* vmseq_vx */
6971    0xfc00707f,  /* vmsgt_vi */
6972    0xfc00707f,  /* vmsgt_vx */
6973    0xfc00707f,  /* vmsgtu_vi */
6974    0xfc00707f,  /* vmsgtu_vx */
6975    0xfc0ff07f,  /* vmsif_m */
6976    0xfc00707f,  /* vmsle_vi */
6977    0xfc00707f,  /* vmsle_vv */
6978    0xfc00707f,  /* vmsle_vx */
6979    0xfc00707f,  /* vmsleu_vi */
6980    0xfc00707f,  /* vmsleu_vv */
6981    0xfc00707f,  /* vmsleu_vx */
6982    0xfc00707f,  /* vmslt_vv */
6983    0xfc00707f,  /* vmslt_vx */
6984    0xfc00707f,  /* vmsltu_vv */
6985    0xfc00707f,  /* vmsltu_vx */
6986    0xfc00707f,  /* vmsne_vi */
6987    0xfc00707f,  /* vmsne_vv */
6988    0xfc00707f,  /* vmsne_vx */
6989    0xfc0ff07f,  /* vmsof_m */
6990    0xfc00707f,  /* vmul_vv */
6991    0xfc00707f,  /* vmul_vx */
6992    0xfc00707f,  /* vmulh_vv */
6993    0xfc00707f,  /* vmulh_vx */
6994    0xfc00707f,  /* vmulhsu_vv */
6995    0xfc00707f,  /* vmulhsu_vx */
6996    0xfc00707f,  /* vmulhu_vv */
6997    0xfc00707f,  /* vmulhu_vx */
6998    0xfe0ff07f,  /* vmv1r_v */
6999    0xfe0ff07f,  /* vmv2r_v */
7000    0xfe0ff07f,  /* vmv4r_v */
7001    0xfe0ff07f,  /* vmv8r_v */
7002    0xfff0707f,  /* vmv_s_x */
7003    0xfff0707f,  /* vmv_v_i */
7004    0xfff0707f,  /* vmv_v_v */
7005    0xfff0707f,  /* vmv_v_x */
7006    0xfe0ff07f,  /* vmv_x_s */
7007    0xfe00707f,  /* vmxnor_mm */
7008    0xfe00707f,  /* vmxor_mm */
7009    0xfc00707f,  /* vnclip_wi */
7010    0xfc00707f,  /* vnclip_wv */
7011    0xfc00707f,  /* vnclip_wx */
7012    0xfc00707f,  /* vnclipu_wi */
7013    0xfc00707f,  /* vnclipu_wv */
7014    0xfc00707f,  /* vnclipu_wx */
7015    0xfc00707f,  /* vnmsac_vv */
7016    0xfc00707f,  /* vnmsac_vx */
7017    0xfc00707f,  /* vnmsub_vv */
7018    0xfc00707f,  /* vnmsub_vx */
7019    0xfc00707f,  /* vnsra_wi */
7020    0xfc00707f,  /* vnsra_wv */
7021    0xfc00707f,  /* vnsra_wx */
7022    0xfc00707f,  /* vnsrl_wi */
7023    0xfc00707f,  /* vnsrl_wv */
7024    0xfc00707f,  /* vnsrl_wx */
7025    0xfc00707f,  /* vor_vi */
7026    0xfc00707f,  /* vor_vv */
7027    0xfc00707f,  /* vor_vx */
7028    0xfc0ff07f,  /* vpopc_m */
7029    0xfc00707f,  /* vredand_vs */
7030    0xfc00707f,  /* vredmax_vs */
7031    0xfc00707f,  /* vredmaxu_vs */
7032    0xfc00707f,  /* vredmin_vs */
7033    0xfc00707f,  /* vredminu_vs */
7034    0xfc00707f,  /* vredor_vs */
7035    0xfc00707f,  /* vredsum_vs */
7036    0xfc00707f,  /* vredxor_vs */
7037    0xfc00707f,  /* vrem_vv */
7038    0xfc00707f,  /* vrem_vx */
7039    0xfc00707f,  /* vremu_vv */
7040    0xfc00707f,  /* vremu_vx */
7041    0xfc0ff07f,  /* vrev8_v */
7042    0xfc00707f,  /* vrgather_vi */
7043    0xfc00707f,  /* vrgather_vv */
7044    0xfc00707f,  /* vrgather_vx */
7045    0xfc00707f,  /* vrgatherei16_vv */
7046    0xfc00707f,  /* vrol_vv */
7047    0xfc00707f,  /* vrol_vx */
7048    0xf800707f,  /* vror_vi */
7049    0xfc00707f,  /* vror_vv */
7050    0xfc00707f,  /* vror_vx */
7051    0xfc00707f,  /* vrsub_vi */
7052    0xfc00707f,  /* vrsub_vx */
7053    0xfff0707f,  /* vs1r_v */
7054    0xfff0707f,  /* vs2r_v */
7055    0xfff0707f,  /* vs4r_v */
7056    0xfff0707f,  /* vs8r_v */
7057    0xfc00707f,  /* vsadd_vi */
7058    0xfc00707f,  /* vsadd_vv */
7059    0xfc00707f,  /* vsadd_vx */
7060    0xfc00707f,  /* vsaddu_vi */
7061    0xfc00707f,  /* vsaddu_vv */
7062    0xfc00707f,  /* vsaddu_vx */
7063    0xfe00707f,  /* vsbc_vvm */
7064    0xfe00707f,  /* vsbc_vxm */
7065    0x1df0707f,  /* vse16_v */
7066    0xfff0707f,  /* vse1_v */
7067    0x1df0707f,  /* vse32_v */
7068    0x1df0707f,  /* vse64_v */
7069    0x1df0707f,  /* vse8_v */
7070    0xc000707f,  /* vsetivli */
7071    0xfe00707f,  /* vsetvl */
7072    0x8000707f,  /* vsetvli */
7073    0xfc0ff07f,  /* vsext_vf2 */
7074    0xfc0ff07f,  /* vsext_vf4 */
7075    0xfc0ff07f,  /* vsext_vf8 */
7076    0xfe00707f,  /* vsha2ch_vv */
7077    0xfe00707f,  /* vsha2cl_vv */
7078    0xfe00707f,  /* vsha2ms_vv */
7079    0xfc00707f,  /* vslide1down_vx */
7080    0xfc00707f,  /* vslide1up_vx */
7081    0xfc00707f,  /* vslidedown_vi */
7082    0xfc00707f,  /* vslidedown_vx */
7083    0xfc00707f,  /* vslideup_vi */
7084    0xfc00707f,  /* vslideup_vx */
7085    0xfc00707f,  /* vsll_vi */
7086    0xfc00707f,  /* vsll_vv */
7087    0xfc00707f,  /* vsll_vx */
7088    0xfe00707f,  /* vsm3c_vi */
7089    0xfe00707f,  /* vsm3me_vv */
7090    0xfe00707f,  /* vsm4k_vi */
7091    0xfe0ff07f,  /* vsm4r_vs */
7092    0xfe0ff07f,  /* vsm4r_vv */
7093    0xfff0707f,  /* vsm_v */
7094    0xfc00707f,  /* vsmul_vv */
7095    0xfc00707f,  /* vsmul_vx */
7096    0x1c00707f,  /* vsoxei16_v */
7097    0x1c00707f,  /* vsoxei32_v */
7098    0x1c00707f,  /* vsoxei64_v */
7099    0x1c00707f,  /* vsoxei8_v */
7100    0xfc00707f,  /* vsra_vi */
7101    0xfc00707f,  /* vsra_vv */
7102    0xfc00707f,  /* vsra_vx */
7103    0xfc00707f,  /* vsrl_vi */
7104    0xfc00707f,  /* vsrl_vv */
7105    0xfc00707f,  /* vsrl_vx */
7106    0x1c00707f,  /* vsse16_v */
7107    0x1c00707f,  /* vsse32_v */
7108    0x1c00707f,  /* vsse64_v */
7109    0x1c00707f,  /* vsse8_v */
7110    0xfc00707f,  /* vssra_vi */
7111    0xfc00707f,  /* vssra_vv */
7112    0xfc00707f,  /* vssra_vx */
7113    0xfc00707f,  /* vssrl_vi */
7114    0xfc00707f,  /* vssrl_vv */
7115    0xfc00707f,  /* vssrl_vx */
7116    0xfc00707f,  /* vssub_vv */
7117    0xfc00707f,  /* vssub_vx */
7118    0xfc00707f,  /* vssubu_vv */
7119    0xfc00707f,  /* vssubu_vx */
7120    0xfc00707f,  /* vsub_vv */
7121    0xfc00707f,  /* vsub_vx */
7122    0x1c00707f,  /* vsuxei16_v */
7123    0x1c00707f,  /* vsuxei32_v */
7124    0x1c00707f,  /* vsuxei64_v */
7125    0x1c00707f,  /* vsuxei8_v */
7126    0xfc00707f,  /* vwadd_vv */
7127    0xfc00707f,  /* vwadd_vx */
7128    0xfc00707f,  /* vwadd_wv */
7129    0xfc00707f,  /* vwadd_wx */
7130    0xfc00707f,  /* vwaddu_vv */
7131    0xfc00707f,  /* vwaddu_vx */
7132    0xfc00707f,  /* vwaddu_wv */
7133    0xfc00707f,  /* vwaddu_wx */
7134    0xfc00707f,  /* vwmacc_vv */
7135    0xfc00707f,  /* vwmacc_vx */
7136    0xfc00707f,  /* vwmaccsu_vv */
7137    0xfc00707f,  /* vwmaccsu_vx */
7138    0xfc00707f,  /* vwmaccu_vv */
7139    0xfc00707f,  /* vwmaccu_vx */
7140    0xfc00707f,  /* vwmaccus_vx */
7141    0xfc00707f,  /* vwmul_vv */
7142    0xfc00707f,  /* vwmul_vx */
7143    0xfc00707f,  /* vwmulsu_vv */
7144    0xfc00707f,  /* vwmulsu_vx */
7145    0xfc00707f,  /* vwmulu_vv */
7146    0xfc00707f,  /* vwmulu_vx */
7147    0xfc00707f,  /* vwredsum_vs */
7148    0xfc00707f,  /* vwredsumu_vs */
7149    0xfc00707f,  /* vwsll_vi */
7150    0xfc00707f,  /* vwsll_vv */
7151    0xfc00707f,  /* vwsll_vx */
7152    0xfc00707f,  /* vwsub_vv */
7153    0xfc00707f,  /* vwsub_vx */
7154    0xfc00707f,  /* vwsub_wv */
7155    0xfc00707f,  /* vwsub_wx */
7156    0xfc00707f,  /* vwsubu_vv */
7157    0xfc00707f,  /* vwsubu_vx */
7158    0xfc00707f,  /* vwsubu_wv */
7159    0xfc00707f,  /* vwsubu_wx */
7160    0xfc00707f,  /* vxor_vi */
7161    0xfc00707f,  /* vxor_vv */
7162    0xfc00707f,  /* vxor_vx */
7163    0xfc0ff07f,  /* vzext_vf2 */
7164    0xfc0ff07f,  /* vzext_vf4 */
7165    0xfc0ff07f,  /* vzext_vf8 */
7166    0xffffffff,  /* wfi */
7167    0xffffffff,  /* wrs_nto */
7168    0xffffffff,  /* wrs_sto */
7169    0xfe00707f,  /* xnor */
7170    0xfe00707f,  /* xor */
7171    0x707f,      /* xori */
7172    0xfe00707f,  /* xperm4 */
7173    0xfe00707f,  /* xperm8 */
7174    0xfff0707f,  /* zext_b */
7175    0xfff0707f,  /* zext_h */
7176    0xffff_ffff, /* zext_h_rv32 */
7177    0xfff0707f,  /* zext_w */
7178    0xffff_ffff, /* zip */
7179];
7180pub static OPCODE_MATCH: [u32; 1021] = [
7181    0x33, 0x800003b, 0x13, 0x1b, 0x3b, 0x2a000033, 0x2e000033, 0x22000033, 0x26000033, 0x3a000033,
7182    0x3e000033, 0x32000033, 0x36000033, 0x30001013, 0x31001013, 0x7e000033, 0x2f, 0x302f, 0x102f,
7183    0x202f, 0x6000002f, 0x6000302f, 0x6000102f, 0x6000202f, 0x2800002f, 0x2800302f, 0x2800102f,
7184    0x2800402f, 0x2800202f, 0xa000002f, 0xa000302f, 0xa000102f, 0xa000202f, 0xe000002f, 0xe000302f,
7185    0xe000102f, 0xe000202f, 0x8000002f, 0x8000302f, 0x8000102f, 0x8000202f, 0xc000002f, 0xc000302f,
7186    0xc000102f, 0xc000202f, 0x4000002f, 0x4000302f, 0x4000102f, 0x4000202f, 0x800002f, 0x800302f,
7187    0x800102f, 0x800202f, 0x2000002f, 0x2000302f, 0x2000102f, 0x2000202f, 0x7033, 0x7013,
7188    0x40007033, 0x17, 0x48001033, 0x48001013, 0x48001013, 0x63, 0x63, 0x48005033, 0x48005013,
7189    0x48005013, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x68001033, 0x68001013, 0x68001013,
7190    0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x1063, 0x1063, 0x68705013, 0x28001033,
7191    0x28001013, 0x28001013, 0x9002, 0x1, 0x6101, 0x0, 0x2001, 0x9c21, 0x8c61, 0x8801, 0xc001,
7192    0xe001, 0x9002, 0x2000, 0x2002, 0x6000, 0x6002, 0xa000, 0xa002, 0xe000, 0xe002, 0xa001, 0x2001,
7193    0x9002, 0x8002, 0x8000, 0x6000, 0x6002, 0x8440, 0x8400, 0x4001, 0x6001, 0x4000, 0x4002, 0x6081,
7194    0x6581, 0x6681, 0x6781, 0x6181, 0x6281, 0x6381, 0x6481, 0x6081, 0x9c41, 0x8002, 0x1, 0x9c75,
7195    0x9016, 0x900a, 0x900e, 0x9012, 0x8c41, 0x8800, 0xe000, 0xe002, 0x9c65, 0x9c6d, 0x2001, 0x8c00,
7196    0x2, 0x2, 0x8401, 0x8401, 0x8001, 0x8001, 0x8c01, 0x9c01, 0xc000, 0xc002, 0x8c21, 0x9c61,
7197    0x9c69, 0x9c71, 0x10200f, 0x20200f, 0x200f, 0x40200f, 0xa001033, 0xa003033, 0xa002033,
7198    0x60001013, 0x6000101b, 0xa002, 0xac62, 0xac22, 0xba02, 0xbe02, 0xbc02, 0xb802, 0x60201013,
7199    0x6020101b, 0x3073, 0x7073, 0x2073, 0x3073, 0x7073, 0x2073, 0x6073, 0x1073, 0x5073, 0x2073,
7200    0x6073, 0x1073, 0x5073, 0x60101013, 0x6010101b, 0xe005033, 0xe007033, 0x2004033, 0x2005033,
7201    0x200503b, 0x200403b, 0x7b200073, 0x100073, 0x73, 0x22002053, 0x24002053, 0x26002053,
7202    0x20002053, 0x2000053, 0x4000053, 0x6000053, 0x53, 0xe2001053, 0xe4001053, 0xe6001053,
7203    0xe0001053, 0x42200053, 0xd2200053, 0xd2300053, 0x42300053, 0x42000053, 0xd2000053, 0xd2100053,
7204    0x44100053, 0xd4200053, 0xd4300053, 0x44300053, 0x44000053, 0xd4000053, 0xd4100053, 0xc2200053,
7205    0xc4200053, 0xc6200053, 0xc0200053, 0xc2300053, 0xc4300053, 0xc6300053, 0xc0300053, 0x46100053,
7206    0x46200053, 0xd6200053, 0xd6300053, 0x46000053, 0xd6000053, 0xd6100053, 0x40100053, 0x40200053,
7207    0xd0200053, 0xd0300053, 0x40300053, 0xd0000053, 0xd0100053, 0xc2000053, 0xc4000053, 0xc6000053,
7208    0xc0000053, 0xc2100053, 0xc4100053, 0xc6100053, 0xc0100053, 0xc2801053, 0x1a000053, 0x1c000053,
7209    0x1e000053, 0x18000053, 0xf, 0x100f, 0x8330000f, 0xa2002053, 0xa4002053, 0xa6002053,
7210    0xa0002053, 0x3007, 0xa2000053, 0xa4000053, 0xa6000053, 0xa0000053, 0xa2004053, 0xa4004053,
7211    0xa6004053, 0xa0004053, 0x1007, 0xf2100053, 0xf4100053, 0xf6100053, 0xf0100053, 0x4007,
7212    0xa2001053, 0xa4001053, 0xa6001053, 0xa0001053, 0xa2005053, 0xa4005053, 0xa6005053, 0xa0005053,
7213    0x2007, 0x2000043, 0x4000043, 0x6000043, 0x43, 0x2a001053, 0x2c001053, 0x2e001053, 0x28001053,
7214    0x2a003053, 0x2c003053, 0x2e003053, 0x28003053, 0x2a000053, 0x2c000053, 0x2e000053, 0x28000053,
7215    0x2a002053, 0x2c002053, 0x2e002053, 0x28002053, 0x2000047, 0x4000047, 0x6000047, 0x47,
7216    0x12000053, 0x14000053, 0x16000053, 0x10000053, 0x22000053, 0xf2000053, 0x24000053, 0xf4000053,
7217    0x26000053, 0x20000053, 0xf0000053, 0xf0000053, 0xe2000053, 0xe4000053, 0xe0000053, 0xe0000053,
7218    0xe2100053, 0xe6100053, 0xb2000053, 0xb6000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053,
7219    0x200004f, 0x400004f, 0x600004f, 0x4f, 0x200004b, 0x400004b, 0x600004b, 0x4b, 0x302073,
7220    0x102073, 0x42400053, 0x44400053, 0x46400053, 0x40400053, 0x42500053, 0x44500053, 0x46500053,
7221    0x40500053, 0x202073, 0x301073, 0x3027, 0x101073, 0x105073, 0x22000053, 0x24000053, 0x26000053,
7222    0x20000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x22002053, 0x24002053, 0x26002053,
7223    0x20002053, 0x1027, 0x4027, 0x5a000053, 0x5c000053, 0x5e000053, 0x58000053, 0x201073, 0x205073,
7224    0xa000053, 0xc000053, 0xe000053, 0x8000053, 0x2027, 0x62000073, 0x22000073, 0x66000073,
7225    0x26000073, 0x60004073, 0x60104073, 0x6c004073, 0x64004073, 0x64104073, 0x68004073, 0x68104073,
7226    0x64304073, 0x68304073, 0x62004073, 0x6e004073, 0x66004073, 0x6a004073, 0x6f, 0x6f, 0xef, 0x67,
7227    0xe7, 0x67, 0x3, 0x4003, 0x3003, 0x1003, 0x5003, 0x1000302f, 0x1000202f, 0x37, 0x2003, 0x6003,
7228    0xa006033, 0xa007033, 0xa004033, 0xa005033, 0x81c04073, 0x81d04073, 0x89e04073, 0x89f04073,
7229    0x8dc04073, 0x8dd04073, 0x8de04073, 0x8df04073, 0xc1c04073, 0xc1d04073, 0xc1e04073, 0xc1f04073,
7230    0x81e04073, 0xc5c04073, 0xc5d04073, 0xc5e04073, 0xc5f04073, 0xc9c04073, 0xc9d04073, 0xc9e04073,
7231    0xc9f04073, 0xcdc04073, 0xcdd04073, 0x81f04073, 0xcde04073, 0xcdf04073, 0x85c04073, 0x85d04073,
7232    0x85e04073, 0x85f04073, 0x89c04073, 0x89d04073, 0x81c04073, 0x82004073, 0x86004073, 0x8a004073,
7233    0x8e004073, 0xc2004073, 0xc6004073, 0xca004073, 0xce004073, 0x82004073, 0x30200073, 0x2000033,
7234    0x2001033, 0x2002033, 0x2003033, 0x200003b, 0x13, 0x40000033, 0x13, 0x500033, 0x200033,
7235    0x300033, 0x400033, 0x6033, 0x28705013, 0x6013, 0x40006033, 0x8004033, 0x8007033, 0x800403b,
7236    0x100000f, 0x6013, 0x106013, 0x306013, 0xc0002073, 0xc8002073, 0xc0202073, 0xc8202073,
7237    0xc0102073, 0xc8102073, 0x2006033, 0x2007033, 0x200703b, 0x200603b, 0x8067, 0x6b805013,
7238    0x69805013, 0x60001033, 0x6000103b, 0x60005033, 0x60005013, 0x60005013, 0x6000501b, 0x6000503b,
7239    0x23, 0x100073, 0x1800302f, 0x1800202f, 0x73, 0x3023, 0x103013, 0x60401013, 0x60501013, 0x1b,
7240    0x18100073, 0x12000073, 0x18000073, 0x2033, 0x1023, 0x20002033, 0x2000203b, 0x20004033,
7241    0x2000403b, 0x20006033, 0x2000603b, 0x10201013, 0x10301013, 0x10001013, 0x10101013, 0x10601013,
7242    0x5c000033, 0x54000033, 0x10701013, 0x5e000033, 0x56000033, 0x10401013, 0x50000033, 0x10501013,
7243    0x52000033, 0x16000073, 0x1033, 0x1013, 0x1013, 0x800101b, 0x101b, 0x103b, 0x2033, 0x2013,
7244    0x3013, 0x3033, 0x2033, 0x10801013, 0x10901013, 0x30000033, 0x34000033, 0x3033, 0x40005033,
7245    0x40005013, 0x40005013, 0x4000501b, 0x4000503b, 0x10200073, 0x5033, 0x5013, 0x5013, 0x501b,
7246    0x503b, 0x40000033, 0x4000003b, 0x2023, 0x8f05013, 0x24002057, 0x24006057, 0x20002057,
7247    0x20006057, 0x40003057, 0x40000057, 0x40004057, 0x3057, 0x57, 0x4057, 0xa600a077, 0xa200a077,
7248    0xa6002077, 0xa2002077, 0xa601a077, 0xa201a077, 0xa6012077, 0xa2012077, 0x8a002077, 0xaa002077,
7249    0xa603a077, 0x24003057, 0x24000057, 0x24004057, 0x4000057, 0x4004057, 0x2c002057, 0x2c006057,
7250    0x28002057, 0x28006057, 0x48042057, 0x48052057, 0x30002057, 0x30006057, 0x34002057, 0x34006057,
7251    0x48062057, 0x5e002057, 0x40082057, 0x48072057, 0x4806a057, 0x84002057, 0x84006057, 0x80002057,
7252    0x80006057, 0x5057, 0x1057, 0x4c081057, 0x48019057, 0x48011057, 0x48039057, 0x48031057,
7253    0x48009057, 0x48001057, 0x80005057, 0x80001057, 0x4008a057, 0xb0005057, 0xb0001057, 0xa0005057,
7254    0xa0001057, 0x18005057, 0x18001057, 0x5c005057, 0x10005057, 0x10001057, 0xb8005057, 0xb8001057,
7255    0xa8005057, 0xa8001057, 0x90005057, 0x90001057, 0x42001057, 0x42005057, 0x5e005057, 0x480a1057,
7256    0x48099057, 0x48091057, 0x480a9057, 0x480b9057, 0x480b1057, 0x48089057, 0x48081057, 0xb4005057,
7257    0xb4001057, 0xa4005057, 0xa4001057, 0xbc005057, 0xbc001057, 0xac005057, 0xac001057, 0x84005057,
7258    0x4c029057, 0x1c001057, 0x14001057, 0xc001057, 0x4001057, 0x4001057, 0x4c021057, 0x9c005057,
7259    0x20005057, 0x20001057, 0x24005057, 0x24001057, 0x28005057, 0x28001057, 0x3c005057, 0x38005057,
7260    0x4c001057, 0x8005057, 0x8001057, 0xc0005057, 0xc0001057, 0xd0005057, 0xd0001057, 0x48061057,
7261    0x48059057, 0x48051057, 0x48079057, 0x48071057, 0x48049057, 0x48041057, 0xf0005057, 0xf0001057,
7262    0xf8005057, 0xf8001057, 0xe0005057, 0xe0001057, 0xf4005057, 0xf4001057, 0xfc005057, 0xfc001057,
7263    0xcc001057, 0xc4001057, 0xc4001057, 0xc8005057, 0xc8001057, 0xd8005057, 0xd8001057, 0xb2002077,
7264    0xa208a077, 0x5008a057, 0x50082057, 0x2800007, 0x2805007, 0x2806007, 0x2807007, 0x2800007,
7265    0x22800007, 0x22805007, 0x22806007, 0x22807007, 0x22800007, 0x62800007, 0x62805007, 0x62806007,
7266    0x62807007, 0x62800007, 0xe2800007, 0xe2805007, 0xe2806007, 0xe2807007, 0xe2800007, 0x5007,
7267    0x1005007, 0x2b00007, 0x6007, 0x1006007, 0x7007, 0x1007007, 0x7, 0x1000007, 0x2b00007,
7268    0xc005007, 0xc006007, 0xc007007, 0xc000007, 0x8005007, 0x8006007, 0x8007007, 0x8000007,
7269    0x4005007, 0x4006007, 0x4007007, 0x4000007, 0xb4002057, 0xb4006057, 0x46003057, 0x44003057,
7270    0x46000057, 0x44000057, 0x46004057, 0x44004057, 0xa4002057, 0xa4006057, 0x66002057, 0x62002057,
7271    0x60002057, 0x1c000057, 0x1c004057, 0x18000057, 0x18004057, 0x5c003057, 0x5c000057, 0x5c004057,
7272    0x60005057, 0x60001057, 0x7c005057, 0x74005057, 0x64005057, 0x64001057, 0x6c005057, 0x6c001057,
7273    0x70005057, 0x70001057, 0x14000057, 0x14004057, 0x10000057, 0x10004057, 0x76002057, 0x7a002057,
7274    0x6a002057, 0x72002057, 0x70002057, 0x4e000057, 0x4c000057, 0x4e004057, 0x4c004057, 0x5000a057,
7275    0x60003057, 0x60000057, 0x60004057, 0x7c003057, 0x7c004057, 0x78003057, 0x78004057, 0x5001a057,
7276    0x74003057, 0x74000057, 0x74004057, 0x70003057, 0x70000057, 0x70004057, 0x6c000057, 0x6c004057,
7277    0x68000057, 0x68004057, 0x64003057, 0x64000057, 0x64004057, 0x50012057, 0x94002057, 0x94006057,
7278    0x9c002057, 0x9c006057, 0x98002057, 0x98006057, 0x90002057, 0x90006057, 0x9e003057, 0x9e00b057,
7279    0x9e01b057, 0x9e03b057, 0x42006057, 0x5e003057, 0x5e000057, 0x5e004057, 0x42002057, 0x7e002057,
7280    0x6e002057, 0xbc003057, 0xbc000057, 0xbc004057, 0xb8003057, 0xb8000057, 0xb8004057, 0xbc002057,
7281    0xbc006057, 0xac002057, 0xac006057, 0xb4003057, 0xb4000057, 0xb4004057, 0xb0003057, 0xb0000057,
7282    0xb0004057, 0x28003057, 0x28000057, 0x28004057, 0x40082057, 0x4002057, 0x1c002057, 0x18002057,
7283    0x14002057, 0x10002057, 0x8002057, 0x2057, 0xc002057, 0x8c002057, 0x8c006057, 0x88002057,
7284    0x88006057, 0x4804a057, 0x30003057, 0x30000057, 0x30004057, 0x38000057, 0x54000057, 0x54004057,
7285    0x50003057, 0x50000057, 0x50004057, 0xc003057, 0xc004057, 0x2800027, 0x22800027, 0x62800027,
7286    0xe2800027, 0x84003057, 0x84000057, 0x84004057, 0x80003057, 0x80000057, 0x80004057, 0x48000057,
7287    0x48004057, 0x5027, 0x2b00027, 0x6027, 0x7027, 0x27, 0xc0007057, 0x80007057, 0x7057,
7288    0x4803a057, 0x4802a057, 0x4801a057, 0xba002077, 0xbe002077, 0xb6002077, 0x3c006057, 0x38006057,
7289    0x3c003057, 0x3c004057, 0x38003057, 0x38004057, 0x94003057, 0x94000057, 0x94004057, 0xae002077,
7290    0x82002077, 0x86002077, 0xa6082077, 0xa2082077, 0x2b00027, 0x9c000057, 0x9c004057, 0xc005027,
7291    0xc006027, 0xc007027, 0xc000027, 0xa4003057, 0xa4000057, 0xa4004057, 0xa0003057, 0xa0000057,
7292    0xa0004057, 0x8005027, 0x8006027, 0x8007027, 0x8000027, 0xac003057, 0xac000057, 0xac004057,
7293    0xa8003057, 0xa8000057, 0xa8004057, 0x8c000057, 0x8c004057, 0x88000057, 0x88004057, 0x8000057,
7294    0x8004057, 0x4005027, 0x4006027, 0x4007027, 0x4000027, 0xc4002057, 0xc4006057, 0xd4002057,
7295    0xd4006057, 0xc0002057, 0xc0006057, 0xd0002057, 0xd0006057, 0xf4002057, 0xf4006057, 0xfc002057,
7296    0xfc006057, 0xf0002057, 0xf0006057, 0xf8006057, 0xec002057, 0xec006057, 0xe8002057, 0xe8006057,
7297    0xe0002057, 0xe0006057, 0xc4000057, 0xc0000057, 0xd4003057, 0xd4000057, 0xd4004057, 0xcc002057,
7298    0xcc006057, 0xdc002057, 0xdc006057, 0xc8002057, 0xc8006057, 0xd8002057, 0xd8006057, 0x2c003057,
7299    0x2c000057, 0x2c004057, 0x48032057, 0x48022057, 0x48012057, 0x10500073, 0xd00073, 0x1d00073,
7300    0x40004033, 0x4033, 0x4013, 0x28002033, 0x28004033, 0x7013, 0x800403b, 0x8004033, 0x800003b,
7301    0x8f01013,
7302];
7303pub static OPCODE_MASK: [u32; 1021] = [
7304    0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0x3e00707f, 0x3e00707f, 0x3e00707f,
7305    0x3e00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xff00707f, 0xfe00707f,
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, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7311    0xf800707f, 0xfe00707f, 0x707f, 0xfe00707f, 0x7f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f,
7312    0x1f0707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x707f,
7313    0xff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f, 0x707f, 0xff07f, 0x707f, 0x707f,
7314    0x1f0707f, 0x707f, 0x1f0707f, 0xfff0707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xf003, 0xe003,
7315    0xef83, 0xe003, 0xe003, 0xfc63, 0xfc63, 0xec03, 0xe003, 0xe003, 0xffff, 0xe003, 0xe003, 0xe003,
7316    0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xf07f, 0xf07f, 0xfc03, 0xe003, 0xe003,
7317    0xfc43, 0xfc43, 0xe003, 0xe003, 0xe003, 0xe003, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
7318    0xffff, 0xffff, 0xf8ff, 0xfc63, 0xf003, 0xef83, 0xfc7f, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc63,
7319    0xfc03, 0xe003, 0xe003, 0xfc7f, 0xfc7f, 0xf07f, 0xfc43, 0xe003, 0xf003, 0xec03, 0xfc03, 0xec03,
7320    0xfc03, 0xfc63, 0xfc63, 0xe003, 0xe003, 0xfc63, 0xfc7f, 0xfc7f, 0xfc7f, 0xfff07fff, 0xfff07fff,
7321    0xfff07fff, 0xfff07fff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfc03,
7322    0xfc63, 0xfc63, 0xff03, 0xff03, 0xff03, 0xff03, 0xfff0707f, 0xfff0707f, 0x7fff, 0x7fff,
7323    0xff07f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x7fff, 0x7fff, 0x7fff, 0x7fff,
7324    0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7325    0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00007f,
7326    0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 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, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7332    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f,
7333    0x707f, 0x707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f,
7334    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f,
7335    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7336    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x600007f, 0x600007f,
7337    0x600007f, 0x600007f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7338    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7339    0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00007f, 0xfe00007f,
7340    0xfe00007f, 0xfe00007f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f,
7341    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7342    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f,
7343    0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfffff07f, 0xfffff07f,
7344    0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7345    0xfffff07f, 0xfff0707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7346    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7347    0xfe00707f, 0x707f, 0x707f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f,
7348    0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0xfe007fff, 0xfe007fff,
7349    0xfe007fff, 0xfe007fff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7350    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfff,
7351    0x7f, 0xfff, 0x707f, 0xfff07fff, 0xfff07fff, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f,
7352    0xf9f0707f, 0xf9f0707f, 0x7f, 0x707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
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    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7357    0xb3c0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7358    0xfe00707f, 0xb200707f, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7359    0xfff0707f, 0xfff0707f, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f,
7360    0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0x1f07fff,
7361    0x1f07fff, 0x1f07fff, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f,
7362    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0xfff0707f, 0xfff0707f, 0xfe00707f,
7363    0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xffffffff,
7364    0xf800707f, 0xf800707f, 0xffffffff, 0x707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7365    0xffffffff, 0xfe007fff, 0xffffffff, 0xfe0ff07f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7366    0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7367    0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f,
7368    0xfe00707f, 0xfe007fff, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f,
7369    0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x3e00707f,
7370    0x3e00707f, 0xfe0ff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff,
7371    0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f,
7372    0xfff0707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7373    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f,
7374    0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfc00707f, 0xfc00707f,
7375    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f,
7376    0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfe00707f, 0xfc0ff07f,
7377    0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7378    0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f,
7379    0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7380    0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7381    0xfc00707f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f,
7382    0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7383    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7384    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7385    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7386    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f,
7387    0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7388    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7389    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe0ff07f, 0xfdfff07f, 0xfc0ff07f,
7390    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7391    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7392    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1df0707f,
7393    0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1c00707f, 0x1c00707f,
7394    0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f,
7395    0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7396    0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f,
7397    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f,
7398    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7399    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7400    0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7401    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7402    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7403    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7404    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f,
7405    0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfc00707f,
7406    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7407    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7408    0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7409    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f,
7410    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xf800707f, 0xfc00707f,
7411    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfc00707f,
7412    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0x1df0707f,
7413    0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xc000707f, 0xfe00707f, 0x8000707f, 0xfc0ff07f,
7414    0xfc0ff07f, 0xfc0ff07f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7415    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f,
7416    0xfe00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f,
7417    0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7418    0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7419    0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7420    0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 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, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7425    0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f,
7426    0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7427    0xfff0707f,
7428];
7429pub static OPCODE_MASK_COMPRESSED: [u16; 1021] = [
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, 0, 0, 0, 0, 0, 0,
7432    0, 0, 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,
7433    61315, 57347, 57347, 64611, 64611, 60419, 57347, 57347, 65535, 57347, 57347, 57347, 57347,
7434    57347, 57347, 57347, 57347, 57347, 57347, 61567, 61567, 64515, 57347, 57347, 64579, 64579,
7435    57347, 57347, 57347, 57347, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 63743,
7436    64611, 61443, 61315, 64639, 65535, 65535, 65535, 65535, 64611, 64515, 57347, 57347, 64639,
7437    64639, 61567, 64579, 57347, 61443, 60419, 64515, 60419, 64515, 64611, 64611, 57347, 57347,
7438    64611, 64639, 64639, 64639, 32767, 32767, 32767, 32767, 28799, 28799, 28799, 28799, 28799,
7439    64515, 64611, 64611, 65283, 65283, 65283, 65283, 28799, 28799, 32767, 32767, 61567, 28799,
7440    28799, 28799, 28799, 28799, 28799, 32767, 32767, 32767, 32767, 28799, 28799, 28799, 28799, 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, 0, 0, 0, 0, 0, 0, 0, 0,
7466    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7467];
7468
7469pub static OPCODE_MATCH_COMPRESSED: [u16; 1021] = [
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, 0, 0, 0, 0, 0, 0,
7472    0, 0, 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,
7473    0, 8193, 39969, 35937, 34817, 49153, 57345, 36866, 8192, 8194, 24576, 24578, 40960, 40962,
7474    57344, 57346, 40961, 8193, 36866, 32770, 32768, 24576, 24578, 33856, 33792, 16385, 24577,
7475    16384, 16386, 24705, 25985, 26241, 26497, 24961, 25217, 25473, 25729, 24705, 40001, 32770, 1,
7476    40053, 36886, 36874, 36878, 36882, 35905, 34816, 57344, 57346, 40037, 40045, 8193, 35840, 2, 2,
7477    33793, 33793, 32769, 32769, 35841, 39937, 49152, 49154, 35873, 40033, 40041, 40049, 8207, 8207,
7478    8207, 8207, 4147, 12339, 8243, 4115, 4123, 40962, 44130, 44066, 47618, 48642, 48130, 47106,
7479    4115, 4123, 12403, 28787, 8307, 12403, 28787, 8307, 24691, 4211, 20595, 8307, 24691, 4211,
7480    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,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7506    0, 0, 0, 0,
7507];
7508
7509pub static ALL_OPCODES: [Opcode; 1021] = [
7510    Opcode::ADD,
7511    Opcode::ADDUW,
7512    Opcode::ADDI,
7513    Opcode::ADDIW,
7514    Opcode::ADDW,
7515    Opcode::AES32DSI,
7516    Opcode::AES32DSMI,
7517    Opcode::AES32ESI,
7518    Opcode::AES32ESMI,
7519    Opcode::AES64DS,
7520    Opcode::AES64DSM,
7521    Opcode::AES64ES,
7522    Opcode::AES64ESM,
7523    Opcode::AES64IM,
7524    Opcode::AES64KS1I,
7525    Opcode::AES64KS2,
7526    Opcode::AMOADDB,
7527    Opcode::AMOADDD,
7528    Opcode::AMOADDH,
7529    Opcode::AMOADDW,
7530    Opcode::AMOANDB,
7531    Opcode::AMOANDD,
7532    Opcode::AMOANDH,
7533    Opcode::AMOANDW,
7534    Opcode::AMOCASB,
7535    Opcode::AMOCASD,
7536    Opcode::AMOCASH,
7537    Opcode::AMOCASQ,
7538    Opcode::AMOCASW,
7539    Opcode::AMOMAXB,
7540    Opcode::AMOMAXD,
7541    Opcode::AMOMAXH,
7542    Opcode::AMOMAXW,
7543    Opcode::AMOMAXUB,
7544    Opcode::AMOMAXUD,
7545    Opcode::AMOMAXUH,
7546    Opcode::AMOMAXUW,
7547    Opcode::AMOMINB,
7548    Opcode::AMOMIND,
7549    Opcode::AMOMINH,
7550    Opcode::AMOMINW,
7551    Opcode::AMOMINUB,
7552    Opcode::AMOMINUD,
7553    Opcode::AMOMINUH,
7554    Opcode::AMOMINUW,
7555    Opcode::AMOORB,
7556    Opcode::AMOORD,
7557    Opcode::AMOORH,
7558    Opcode::AMOORW,
7559    Opcode::AMOSWAPB,
7560    Opcode::AMOSWAPD,
7561    Opcode::AMOSWAPH,
7562    Opcode::AMOSWAPW,
7563    Opcode::AMOXORB,
7564    Opcode::AMOXORD,
7565    Opcode::AMOXORH,
7566    Opcode::AMOXORW,
7567    Opcode::AND,
7568    Opcode::ANDI,
7569    Opcode::ANDN,
7570    Opcode::AUIPC,
7571    Opcode::BCLR,
7572    Opcode::BCLRI,
7573    Opcode::BCLRIRV32,
7574    Opcode::BEQ,
7575    Opcode::BEQZ,
7576    Opcode::BEXT,
7577    Opcode::BEXTI,
7578    Opcode::BEXTIRV32,
7579    Opcode::BGE,
7580    Opcode::BGEU,
7581    Opcode::BGEZ,
7582    Opcode::BGT,
7583    Opcode::BGTU,
7584    Opcode::BGTZ,
7585    Opcode::BINV,
7586    Opcode::BINVI,
7587    Opcode::BINVIRV32,
7588    Opcode::BLE,
7589    Opcode::BLEU,
7590    Opcode::BLEZ,
7591    Opcode::BLT,
7592    Opcode::BLTU,
7593    Opcode::BLTZ,
7594    Opcode::BNE,
7595    Opcode::BNEZ,
7596    Opcode::BREV8,
7597    Opcode::BSET,
7598    Opcode::BSETI,
7599    Opcode::BSETIRV32,
7600    Opcode::CADD,
7601    Opcode::CADDI,
7602    Opcode::CADDI16SP,
7603    Opcode::CADDI4SPN,
7604    Opcode::CADDIW,
7605    Opcode::CADDW,
7606    Opcode::CAND,
7607    Opcode::CANDI,
7608    Opcode::CBEQZ,
7609    Opcode::CBNEZ,
7610    Opcode::CEBREAK,
7611    Opcode::CFLD,
7612    Opcode::CFLDSP,
7613    Opcode::CFLW,
7614    Opcode::CFLWSP,
7615    Opcode::CFSD,
7616    Opcode::CFSDSP,
7617    Opcode::CFSW,
7618    Opcode::CFSWSP,
7619    Opcode::CJ,
7620    Opcode::CJAL,
7621    Opcode::CJALR,
7622    Opcode::CJR,
7623    Opcode::CLBU,
7624    Opcode::CLD,
7625    Opcode::CLDSP,
7626    Opcode::CLH,
7627    Opcode::CLHU,
7628    Opcode::CLI,
7629    Opcode::CLUI,
7630    Opcode::CLW,
7631    Opcode::CLWSP,
7632    Opcode::CMOP1,
7633    Opcode::CMOP11,
7634    Opcode::CMOP13,
7635    Opcode::CMOP15,
7636    Opcode::CMOP3,
7637    Opcode::CMOP5,
7638    Opcode::CMOP7,
7639    Opcode::CMOP9,
7640    Opcode::CMOPN,
7641    Opcode::CMUL,
7642    Opcode::CMV,
7643    Opcode::CNOP,
7644    Opcode::CNOT,
7645    Opcode::CNTLALL,
7646    Opcode::CNTLP1,
7647    Opcode::CNTLPALL,
7648    Opcode::CNTLS1,
7649    Opcode::COR,
7650    Opcode::CSB,
7651    Opcode::CSD,
7652    Opcode::CSDSP,
7653    Opcode::CSEXTB,
7654    Opcode::CSEXTH,
7655    Opcode::CSEXTW,
7656    Opcode::CSH,
7657    Opcode::CSLLI,
7658    Opcode::CSLLIRV32,
7659    Opcode::CSRAI,
7660    Opcode::CSRAIRV32,
7661    Opcode::CSRLI,
7662    Opcode::CSRLIRV32,
7663    Opcode::CSUB,
7664    Opcode::CSUBW,
7665    Opcode::CSW,
7666    Opcode::CSWSP,
7667    Opcode::CXOR,
7668    Opcode::CZEXTB,
7669    Opcode::CZEXTH,
7670    Opcode::CZEXTW,
7671    Opcode::CBOCLEAN,
7672    Opcode::CBOFLUSH,
7673    Opcode::CBOINVAL,
7674    Opcode::CBOZERO,
7675    Opcode::CLMUL,
7676    Opcode::CLMULH,
7677    Opcode::CLMULR,
7678    Opcode::CLZ,
7679    Opcode::CLZW,
7680    Opcode::CMJALT,
7681    Opcode::CMMVA01S,
7682    Opcode::CMMVSA01,
7683    Opcode::CMPOP,
7684    Opcode::CMPOPRET,
7685    Opcode::CMPOPRETZ,
7686    Opcode::CMPUSH,
7687    Opcode::CPOP,
7688    Opcode::CPOPW,
7689    Opcode::CSRC,
7690    Opcode::CSRCI,
7691    Opcode::CSRR,
7692    Opcode::CSRRC,
7693    Opcode::CSRRCI,
7694    Opcode::CSRRS,
7695    Opcode::CSRRSI,
7696    Opcode::CSRRW,
7697    Opcode::CSRRWI,
7698    Opcode::CSRS,
7699    Opcode::CSRSI,
7700    Opcode::CSRW,
7701    Opcode::CSRWI,
7702    Opcode::CTZ,
7703    Opcode::CTZW,
7704    Opcode::CZEROEQZ,
7705    Opcode::CZERONEZ,
7706    Opcode::DIV,
7707    Opcode::DIVU,
7708    Opcode::DIVUW,
7709    Opcode::DIVW,
7710    Opcode::DRET,
7711    Opcode::EBREAK,
7712    Opcode::ECALL,
7713    Opcode::FABSD,
7714    Opcode::FABSH,
7715    Opcode::FABSQ,
7716    Opcode::FABSS,
7717    Opcode::FADDD,
7718    Opcode::FADDH,
7719    Opcode::FADDQ,
7720    Opcode::FADDS,
7721    Opcode::FCLASSD,
7722    Opcode::FCLASSH,
7723    Opcode::FCLASSQ,
7724    Opcode::FCLASSS,
7725    Opcode::FCVTDH,
7726    Opcode::FCVTDL,
7727    Opcode::FCVTDLU,
7728    Opcode::FCVTDQ,
7729    Opcode::FCVTDS,
7730    Opcode::FCVTDW,
7731    Opcode::FCVTDWU,
7732    Opcode::FCVTHD,
7733    Opcode::FCVTHL,
7734    Opcode::FCVTHLU,
7735    Opcode::FCVTHQ,
7736    Opcode::FCVTHS,
7737    Opcode::FCVTHW,
7738    Opcode::FCVTHWU,
7739    Opcode::FCVTLD,
7740    Opcode::FCVTLH,
7741    Opcode::FCVTLQ,
7742    Opcode::FCVTLS,
7743    Opcode::FCVTLUD,
7744    Opcode::FCVTLUH,
7745    Opcode::FCVTLUQ,
7746    Opcode::FCVTLUS,
7747    Opcode::FCVTQD,
7748    Opcode::FCVTQH,
7749    Opcode::FCVTQL,
7750    Opcode::FCVTQLU,
7751    Opcode::FCVTQS,
7752    Opcode::FCVTQW,
7753    Opcode::FCVTQWU,
7754    Opcode::FCVTSD,
7755    Opcode::FCVTSH,
7756    Opcode::FCVTSL,
7757    Opcode::FCVTSLU,
7758    Opcode::FCVTSQ,
7759    Opcode::FCVTSW,
7760    Opcode::FCVTSWU,
7761    Opcode::FCVTWD,
7762    Opcode::FCVTWH,
7763    Opcode::FCVTWQ,
7764    Opcode::FCVTWS,
7765    Opcode::FCVTWUD,
7766    Opcode::FCVTWUH,
7767    Opcode::FCVTWUQ,
7768    Opcode::FCVTWUS,
7769    Opcode::FCVTMODWD,
7770    Opcode::FDIVD,
7771    Opcode::FDIVH,
7772    Opcode::FDIVQ,
7773    Opcode::FDIVS,
7774    Opcode::FENCE,
7775    Opcode::FENCEI,
7776    Opcode::FENCETSO,
7777    Opcode::FEQD,
7778    Opcode::FEQH,
7779    Opcode::FEQQ,
7780    Opcode::FEQS,
7781    Opcode::FLD,
7782    Opcode::FLED,
7783    Opcode::FLEH,
7784    Opcode::FLEQ,
7785    Opcode::FLES,
7786    Opcode::FLEQD,
7787    Opcode::FLEQH,
7788    Opcode::FLEQQ,
7789    Opcode::FLEQS,
7790    Opcode::FLH,
7791    Opcode::FLID,
7792    Opcode::FLIH,
7793    Opcode::FLIQ,
7794    Opcode::FLIS,
7795    Opcode::FLQ,
7796    Opcode::FLTD,
7797    Opcode::FLTH,
7798    Opcode::FLTQ,
7799    Opcode::FLTS,
7800    Opcode::FLTQD,
7801    Opcode::FLTQH,
7802    Opcode::FLTQQ,
7803    Opcode::FLTQS,
7804    Opcode::FLW,
7805    Opcode::FMADDD,
7806    Opcode::FMADDH,
7807    Opcode::FMADDQ,
7808    Opcode::FMADDS,
7809    Opcode::FMAXD,
7810    Opcode::FMAXH,
7811    Opcode::FMAXQ,
7812    Opcode::FMAXS,
7813    Opcode::FMAXMD,
7814    Opcode::FMAXMH,
7815    Opcode::FMAXMQ,
7816    Opcode::FMAXMS,
7817    Opcode::FMIND,
7818    Opcode::FMINH,
7819    Opcode::FMINQ,
7820    Opcode::FMINS,
7821    Opcode::FMINMD,
7822    Opcode::FMINMH,
7823    Opcode::FMINMQ,
7824    Opcode::FMINMS,
7825    Opcode::FMSUBD,
7826    Opcode::FMSUBH,
7827    Opcode::FMSUBQ,
7828    Opcode::FMSUBS,
7829    Opcode::FMULD,
7830    Opcode::FMULH,
7831    Opcode::FMULQ,
7832    Opcode::FMULS,
7833    Opcode::FMVD,
7834    Opcode::FMVDX,
7835    Opcode::FMVH,
7836    Opcode::FMVHX,
7837    Opcode::FMVQ,
7838    Opcode::FMVS,
7839    Opcode::FMVSX,
7840    Opcode::FMVWX,
7841    Opcode::FMVXD,
7842    Opcode::FMVXH,
7843    Opcode::FMVXS,
7844    Opcode::FMVXW,
7845    Opcode::FMVHXD,
7846    Opcode::FMVHXQ,
7847    Opcode::FMVPDX,
7848    Opcode::FMVPQX,
7849    Opcode::FNEGD,
7850    Opcode::FNEGH,
7851    Opcode::FNEGQ,
7852    Opcode::FNEGS,
7853    Opcode::FNMADDD,
7854    Opcode::FNMADDH,
7855    Opcode::FNMADDQ,
7856    Opcode::FNMADDS,
7857    Opcode::FNMSUBD,
7858    Opcode::FNMSUBH,
7859    Opcode::FNMSUBQ,
7860    Opcode::FNMSUBS,
7861    Opcode::FRCSR,
7862    Opcode::FRFLAGS,
7863    Opcode::FROUNDD,
7864    Opcode::FROUNDH,
7865    Opcode::FROUNDQ,
7866    Opcode::FROUNDS,
7867    Opcode::FROUNDNXD,
7868    Opcode::FROUNDNXH,
7869    Opcode::FROUNDNXQ,
7870    Opcode::FROUNDNXS,
7871    Opcode::FRRM,
7872    Opcode::FSCSR,
7873    Opcode::FSD,
7874    Opcode::FSFLAGS,
7875    Opcode::FSFLAGSI,
7876    Opcode::FSGNJD,
7877    Opcode::FSGNJH,
7878    Opcode::FSGNJQ,
7879    Opcode::FSGNJS,
7880    Opcode::FSGNJND,
7881    Opcode::FSGNJNH,
7882    Opcode::FSGNJNQ,
7883    Opcode::FSGNJNS,
7884    Opcode::FSGNJXD,
7885    Opcode::FSGNJXH,
7886    Opcode::FSGNJXQ,
7887    Opcode::FSGNJXS,
7888    Opcode::FSH,
7889    Opcode::FSQ,
7890    Opcode::FSQRTD,
7891    Opcode::FSQRTH,
7892    Opcode::FSQRTQ,
7893    Opcode::FSQRTS,
7894    Opcode::FSRM,
7895    Opcode::FSRMI,
7896    Opcode::FSUBD,
7897    Opcode::FSUBH,
7898    Opcode::FSUBQ,
7899    Opcode::FSUBS,
7900    Opcode::FSW,
7901    Opcode::HFENCEGVMA,
7902    Opcode::HFENCEVVMA,
7903    Opcode::HINVALGVMA,
7904    Opcode::HINVALVVMA,
7905    Opcode::HLVB,
7906    Opcode::HLVBU,
7907    Opcode::HLVD,
7908    Opcode::HLVH,
7909    Opcode::HLVHU,
7910    Opcode::HLVW,
7911    Opcode::HLVWU,
7912    Opcode::HLVXHU,
7913    Opcode::HLVXWU,
7914    Opcode::HSVB,
7915    Opcode::HSVD,
7916    Opcode::HSVH,
7917    Opcode::HSVW,
7918    Opcode::J,
7919    Opcode::JAL,
7920    Opcode::JALPSEUDO,
7921    Opcode::JALR,
7922    Opcode::JALRPSEUDO,
7923    Opcode::JR,
7924    Opcode::LB,
7925    Opcode::LBU,
7926    Opcode::LD,
7927    Opcode::LH,
7928    Opcode::LHU,
7929    Opcode::LRD,
7930    Opcode::LRW,
7931    Opcode::LUI,
7932    Opcode::LW,
7933    Opcode::LWU,
7934    Opcode::MAX,
7935    Opcode::MAXU,
7936    Opcode::MIN,
7937    Opcode::MINU,
7938    Opcode::MOPR0,
7939    Opcode::MOPR1,
7940    Opcode::MOPR10,
7941    Opcode::MOPR11,
7942    Opcode::MOPR12,
7943    Opcode::MOPR13,
7944    Opcode::MOPR14,
7945    Opcode::MOPR15,
7946    Opcode::MOPR16,
7947    Opcode::MOPR17,
7948    Opcode::MOPR18,
7949    Opcode::MOPR19,
7950    Opcode::MOPR2,
7951    Opcode::MOPR20,
7952    Opcode::MOPR21,
7953    Opcode::MOPR22,
7954    Opcode::MOPR23,
7955    Opcode::MOPR24,
7956    Opcode::MOPR25,
7957    Opcode::MOPR26,
7958    Opcode::MOPR27,
7959    Opcode::MOPR28,
7960    Opcode::MOPR29,
7961    Opcode::MOPR3,
7962    Opcode::MOPR30,
7963    Opcode::MOPR31,
7964    Opcode::MOPR4,
7965    Opcode::MOPR5,
7966    Opcode::MOPR6,
7967    Opcode::MOPR7,
7968    Opcode::MOPR8,
7969    Opcode::MOPR9,
7970    Opcode::MOPRN,
7971    Opcode::MOPRR0,
7972    Opcode::MOPRR1,
7973    Opcode::MOPRR2,
7974    Opcode::MOPRR3,
7975    Opcode::MOPRR4,
7976    Opcode::MOPRR5,
7977    Opcode::MOPRR6,
7978    Opcode::MOPRR7,
7979    Opcode::MOPRRN,
7980    Opcode::MRET,
7981    Opcode::MUL,
7982    Opcode::MULH,
7983    Opcode::MULHSU,
7984    Opcode::MULHU,
7985    Opcode::MULW,
7986    Opcode::MV,
7987    Opcode::NEG,
7988    Opcode::NOP,
7989    Opcode::NTLALL,
7990    Opcode::NTLP1,
7991    Opcode::NTLPALL,
7992    Opcode::NTLS1,
7993    Opcode::OR,
7994    Opcode::ORCB,
7995    Opcode::ORI,
7996    Opcode::ORN,
7997    Opcode::PACK,
7998    Opcode::PACKH,
7999    Opcode::PACKW,
8000    Opcode::PAUSE,
8001    Opcode::PREFETCHI,
8002    Opcode::PREFETCHR,
8003    Opcode::PREFETCHW,
8004    Opcode::RDCYCLE,
8005    Opcode::RDCYCLEH,
8006    Opcode::RDINSTRET,
8007    Opcode::RDINSTRETH,
8008    Opcode::RDTIME,
8009    Opcode::RDTIMEH,
8010    Opcode::REM,
8011    Opcode::REMU,
8012    Opcode::REMUW,
8013    Opcode::REMW,
8014    Opcode::RET,
8015    Opcode::REV8,
8016    Opcode::REV8RV32,
8017    Opcode::ROL,
8018    Opcode::ROLW,
8019    Opcode::ROR,
8020    Opcode::RORI,
8021    Opcode::RORIRV32,
8022    Opcode::RORIW,
8023    Opcode::RORW,
8024    Opcode::SB,
8025    Opcode::SBREAK,
8026    Opcode::SCD,
8027    Opcode::SCW,
8028    Opcode::SCALL,
8029    Opcode::SD,
8030    Opcode::SEQZ,
8031    Opcode::SEXTB,
8032    Opcode::SEXTH,
8033    Opcode::SEXTW,
8034    Opcode::SFENCEINVALIR,
8035    Opcode::SFENCEVMA,
8036    Opcode::SFENCEWINVAL,
8037    Opcode::SGTZ,
8038    Opcode::SH,
8039    Opcode::SH1ADD,
8040    Opcode::SH1ADDUW,
8041    Opcode::SH2ADD,
8042    Opcode::SH2ADDUW,
8043    Opcode::SH3ADD,
8044    Opcode::SH3ADDUW,
8045    Opcode::SHA256SIG0,
8046    Opcode::SHA256SIG1,
8047    Opcode::SHA256SUM0,
8048    Opcode::SHA256SUM1,
8049    Opcode::SHA512SIG0,
8050    Opcode::SHA512SIG0H,
8051    Opcode::SHA512SIG0L,
8052    Opcode::SHA512SIG1,
8053    Opcode::SHA512SIG1H,
8054    Opcode::SHA512SIG1L,
8055    Opcode::SHA512SUM0,
8056    Opcode::SHA512SUM0R,
8057    Opcode::SHA512SUM1,
8058    Opcode::SHA512SUM1R,
8059    Opcode::SINVALVMA,
8060    Opcode::SLL,
8061    Opcode::SLLI,
8062    Opcode::SLLIRV32,
8063    Opcode::SLLIUW,
8064    Opcode::SLLIW,
8065    Opcode::SLLW,
8066    Opcode::SLT,
8067    Opcode::SLTI,
8068    Opcode::SLTIU,
8069    Opcode::SLTU,
8070    Opcode::SLTZ,
8071    Opcode::SM3P0,
8072    Opcode::SM3P1,
8073    Opcode::SM4ED,
8074    Opcode::SM4KS,
8075    Opcode::SNEZ,
8076    Opcode::SRA,
8077    Opcode::SRAI,
8078    Opcode::SRAIRV32,
8079    Opcode::SRAIW,
8080    Opcode::SRAW,
8081    Opcode::SRET,
8082    Opcode::SRL,
8083    Opcode::SRLI,
8084    Opcode::SRLIRV32,
8085    Opcode::SRLIW,
8086    Opcode::SRLW,
8087    Opcode::SUB,
8088    Opcode::SUBW,
8089    Opcode::SW,
8090    Opcode::UNZIP,
8091    Opcode::VAADDVV,
8092    Opcode::VAADDVX,
8093    Opcode::VAADDUVV,
8094    Opcode::VAADDUVX,
8095    Opcode::VADCVIM,
8096    Opcode::VADCVVM,
8097    Opcode::VADCVXM,
8098    Opcode::VADDVI,
8099    Opcode::VADDVV,
8100    Opcode::VADDVX,
8101    Opcode::VAESDFVS,
8102    Opcode::VAESDFVV,
8103    Opcode::VAESDMVS,
8104    Opcode::VAESDMVV,
8105    Opcode::VAESEFVS,
8106    Opcode::VAESEFVV,
8107    Opcode::VAESEMVS,
8108    Opcode::VAESEMVV,
8109    Opcode::VAESKF1VI,
8110    Opcode::VAESKF2VI,
8111    Opcode::VAESZVS,
8112    Opcode::VANDVI,
8113    Opcode::VANDVV,
8114    Opcode::VANDVX,
8115    Opcode::VANDNVV,
8116    Opcode::VANDNVX,
8117    Opcode::VASUBVV,
8118    Opcode::VASUBVX,
8119    Opcode::VASUBUVV,
8120    Opcode::VASUBUVX,
8121    Opcode::VBREV8V,
8122    Opcode::VBREVV,
8123    Opcode::VCLMULVV,
8124    Opcode::VCLMULVX,
8125    Opcode::VCLMULHVV,
8126    Opcode::VCLMULHVX,
8127    Opcode::VCLZV,
8128    Opcode::VCOMPRESSVM,
8129    Opcode::VCPOPM,
8130    Opcode::VCPOPV,
8131    Opcode::VCTZV,
8132    Opcode::VDIVVV,
8133    Opcode::VDIVVX,
8134    Opcode::VDIVUVV,
8135    Opcode::VDIVUVX,
8136    Opcode::VFADDVF,
8137    Opcode::VFADDVV,
8138    Opcode::VFCLASSV,
8139    Opcode::VFCVTFXV,
8140    Opcode::VFCVTFXUV,
8141    Opcode::VFCVTRTZXFV,
8142    Opcode::VFCVTRTZXUFV,
8143    Opcode::VFCVTXFV,
8144    Opcode::VFCVTXUFV,
8145    Opcode::VFDIVVF,
8146    Opcode::VFDIVVV,
8147    Opcode::VFIRSTM,
8148    Opcode::VFMACCVF,
8149    Opcode::VFMACCVV,
8150    Opcode::VFMADDVF,
8151    Opcode::VFMADDVV,
8152    Opcode::VFMAXVF,
8153    Opcode::VFMAXVV,
8154    Opcode::VFMERGEVFM,
8155    Opcode::VFMINVF,
8156    Opcode::VFMINVV,
8157    Opcode::VFMSACVF,
8158    Opcode::VFMSACVV,
8159    Opcode::VFMSUBVF,
8160    Opcode::VFMSUBVV,
8161    Opcode::VFMULVF,
8162    Opcode::VFMULVV,
8163    Opcode::VFMVFS,
8164    Opcode::VFMVSF,
8165    Opcode::VFMVVF,
8166    Opcode::VFNCVTFFW,
8167    Opcode::VFNCVTFXW,
8168    Opcode::VFNCVTFXUW,
8169    Opcode::VFNCVTRODFFW,
8170    Opcode::VFNCVTRTZXFW,
8171    Opcode::VFNCVTRTZXUFW,
8172    Opcode::VFNCVTXFW,
8173    Opcode::VFNCVTXUFW,
8174    Opcode::VFNMACCVF,
8175    Opcode::VFNMACCVV,
8176    Opcode::VFNMADDVF,
8177    Opcode::VFNMADDVV,
8178    Opcode::VFNMSACVF,
8179    Opcode::VFNMSACVV,
8180    Opcode::VFNMSUBVF,
8181    Opcode::VFNMSUBVV,
8182    Opcode::VFRDIVVF,
8183    Opcode::VFREC7V,
8184    Opcode::VFREDMAXVS,
8185    Opcode::VFREDMINVS,
8186    Opcode::VFREDOSUMVS,
8187    Opcode::VFREDSUMVS,
8188    Opcode::VFREDUSUMVS,
8189    Opcode::VFRSQRT7V,
8190    Opcode::VFRSUBVF,
8191    Opcode::VFSGNJVF,
8192    Opcode::VFSGNJVV,
8193    Opcode::VFSGNJNVF,
8194    Opcode::VFSGNJNVV,
8195    Opcode::VFSGNJXVF,
8196    Opcode::VFSGNJXVV,
8197    Opcode::VFSLIDE1DOWNVF,
8198    Opcode::VFSLIDE1UPVF,
8199    Opcode::VFSQRTV,
8200    Opcode::VFSUBVF,
8201    Opcode::VFSUBVV,
8202    Opcode::VFWADDVF,
8203    Opcode::VFWADDVV,
8204    Opcode::VFWADDWF,
8205    Opcode::VFWADDWV,
8206    Opcode::VFWCVTFFV,
8207    Opcode::VFWCVTFXV,
8208    Opcode::VFWCVTFXUV,
8209    Opcode::VFWCVTRTZXFV,
8210    Opcode::VFWCVTRTZXUFV,
8211    Opcode::VFWCVTXFV,
8212    Opcode::VFWCVTXUFV,
8213    Opcode::VFWMACCVF,
8214    Opcode::VFWMACCVV,
8215    Opcode::VFWMSACVF,
8216    Opcode::VFWMSACVV,
8217    Opcode::VFWMULVF,
8218    Opcode::VFWMULVV,
8219    Opcode::VFWNMACCVF,
8220    Opcode::VFWNMACCVV,
8221    Opcode::VFWNMSACVF,
8222    Opcode::VFWNMSACVV,
8223    Opcode::VFWREDOSUMVS,
8224    Opcode::VFWREDSUMVS,
8225    Opcode::VFWREDUSUMVS,
8226    Opcode::VFWSUBVF,
8227    Opcode::VFWSUBVV,
8228    Opcode::VFWSUBWF,
8229    Opcode::VFWSUBWV,
8230    Opcode::VGHSHVV,
8231    Opcode::VGMULVV,
8232    Opcode::VIDV,
8233    Opcode::VIOTAM,
8234    Opcode::VL1RV,
8235    Opcode::VL1RE16V,
8236    Opcode::VL1RE32V,
8237    Opcode::VL1RE64V,
8238    Opcode::VL1RE8V,
8239    Opcode::VL2RV,
8240    Opcode::VL2RE16V,
8241    Opcode::VL2RE32V,
8242    Opcode::VL2RE64V,
8243    Opcode::VL2RE8V,
8244    Opcode::VL4RV,
8245    Opcode::VL4RE16V,
8246    Opcode::VL4RE32V,
8247    Opcode::VL4RE64V,
8248    Opcode::VL4RE8V,
8249    Opcode::VL8RV,
8250    Opcode::VL8RE16V,
8251    Opcode::VL8RE32V,
8252    Opcode::VL8RE64V,
8253    Opcode::VL8RE8V,
8254    Opcode::VLE16V,
8255    Opcode::VLE16FFV,
8256    Opcode::VLE1V,
8257    Opcode::VLE32V,
8258    Opcode::VLE32FFV,
8259    Opcode::VLE64V,
8260    Opcode::VLE64FFV,
8261    Opcode::VLE8V,
8262    Opcode::VLE8FFV,
8263    Opcode::VLMV,
8264    Opcode::VLOXEI16V,
8265    Opcode::VLOXEI32V,
8266    Opcode::VLOXEI64V,
8267    Opcode::VLOXEI8V,
8268    Opcode::VLSE16V,
8269    Opcode::VLSE32V,
8270    Opcode::VLSE64V,
8271    Opcode::VLSE8V,
8272    Opcode::VLUXEI16V,
8273    Opcode::VLUXEI32V,
8274    Opcode::VLUXEI64V,
8275    Opcode::VLUXEI8V,
8276    Opcode::VMACCVV,
8277    Opcode::VMACCVX,
8278    Opcode::VMADCVI,
8279    Opcode::VMADCVIM,
8280    Opcode::VMADCVV,
8281    Opcode::VMADCVVM,
8282    Opcode::VMADCVX,
8283    Opcode::VMADCVXM,
8284    Opcode::VMADDVV,
8285    Opcode::VMADDVX,
8286    Opcode::VMANDMM,
8287    Opcode::VMANDNMM,
8288    Opcode::VMANDNOTMM,
8289    Opcode::VMAXVV,
8290    Opcode::VMAXVX,
8291    Opcode::VMAXUVV,
8292    Opcode::VMAXUVX,
8293    Opcode::VMERGEVIM,
8294    Opcode::VMERGEVVM,
8295    Opcode::VMERGEVXM,
8296    Opcode::VMFEQVF,
8297    Opcode::VMFEQVV,
8298    Opcode::VMFGEVF,
8299    Opcode::VMFGTVF,
8300    Opcode::VMFLEVF,
8301    Opcode::VMFLEVV,
8302    Opcode::VMFLTVF,
8303    Opcode::VMFLTVV,
8304    Opcode::VMFNEVF,
8305    Opcode::VMFNEVV,
8306    Opcode::VMINVV,
8307    Opcode::VMINVX,
8308    Opcode::VMINUVV,
8309    Opcode::VMINUVX,
8310    Opcode::VMNANDMM,
8311    Opcode::VMNORMM,
8312    Opcode::VMORMM,
8313    Opcode::VMORNMM,
8314    Opcode::VMORNOTMM,
8315    Opcode::VMSBCVV,
8316    Opcode::VMSBCVVM,
8317    Opcode::VMSBCVX,
8318    Opcode::VMSBCVXM,
8319    Opcode::VMSBFM,
8320    Opcode::VMSEQVI,
8321    Opcode::VMSEQVV,
8322    Opcode::VMSEQVX,
8323    Opcode::VMSGTVI,
8324    Opcode::VMSGTVX,
8325    Opcode::VMSGTUVI,
8326    Opcode::VMSGTUVX,
8327    Opcode::VMSIFM,
8328    Opcode::VMSLEVI,
8329    Opcode::VMSLEVV,
8330    Opcode::VMSLEVX,
8331    Opcode::VMSLEUVI,
8332    Opcode::VMSLEUVV,
8333    Opcode::VMSLEUVX,
8334    Opcode::VMSLTVV,
8335    Opcode::VMSLTVX,
8336    Opcode::VMSLTUVV,
8337    Opcode::VMSLTUVX,
8338    Opcode::VMSNEVI,
8339    Opcode::VMSNEVV,
8340    Opcode::VMSNEVX,
8341    Opcode::VMSOFM,
8342    Opcode::VMULVV,
8343    Opcode::VMULVX,
8344    Opcode::VMULHVV,
8345    Opcode::VMULHVX,
8346    Opcode::VMULHSUVV,
8347    Opcode::VMULHSUVX,
8348    Opcode::VMULHUVV,
8349    Opcode::VMULHUVX,
8350    Opcode::VMV1RV,
8351    Opcode::VMV2RV,
8352    Opcode::VMV4RV,
8353    Opcode::VMV8RV,
8354    Opcode::VMVSX,
8355    Opcode::VMVVI,
8356    Opcode::VMVVV,
8357    Opcode::VMVVX,
8358    Opcode::VMVXS,
8359    Opcode::VMXNORMM,
8360    Opcode::VMXORMM,
8361    Opcode::VNCLIPWI,
8362    Opcode::VNCLIPWV,
8363    Opcode::VNCLIPWX,
8364    Opcode::VNCLIPUWI,
8365    Opcode::VNCLIPUWV,
8366    Opcode::VNCLIPUWX,
8367    Opcode::VNMSACVV,
8368    Opcode::VNMSACVX,
8369    Opcode::VNMSUBVV,
8370    Opcode::VNMSUBVX,
8371    Opcode::VNSRAWI,
8372    Opcode::VNSRAWV,
8373    Opcode::VNSRAWX,
8374    Opcode::VNSRLWI,
8375    Opcode::VNSRLWV,
8376    Opcode::VNSRLWX,
8377    Opcode::VORVI,
8378    Opcode::VORVV,
8379    Opcode::VORVX,
8380    Opcode::VPOPCM,
8381    Opcode::VREDANDVS,
8382    Opcode::VREDMAXVS,
8383    Opcode::VREDMAXUVS,
8384    Opcode::VREDMINVS,
8385    Opcode::VREDMINUVS,
8386    Opcode::VREDORVS,
8387    Opcode::VREDSUMVS,
8388    Opcode::VREDXORVS,
8389    Opcode::VREMVV,
8390    Opcode::VREMVX,
8391    Opcode::VREMUVV,
8392    Opcode::VREMUVX,
8393    Opcode::VREV8V,
8394    Opcode::VRGATHERVI,
8395    Opcode::VRGATHERVV,
8396    Opcode::VRGATHERVX,
8397    Opcode::VRGATHEREI16VV,
8398    Opcode::VROLVV,
8399    Opcode::VROLVX,
8400    Opcode::VRORVI,
8401    Opcode::VRORVV,
8402    Opcode::VRORVX,
8403    Opcode::VRSUBVI,
8404    Opcode::VRSUBVX,
8405    Opcode::VS1RV,
8406    Opcode::VS2RV,
8407    Opcode::VS4RV,
8408    Opcode::VS8RV,
8409    Opcode::VSADDVI,
8410    Opcode::VSADDVV,
8411    Opcode::VSADDVX,
8412    Opcode::VSADDUVI,
8413    Opcode::VSADDUVV,
8414    Opcode::VSADDUVX,
8415    Opcode::VSBCVVM,
8416    Opcode::VSBCVXM,
8417    Opcode::VSE16V,
8418    Opcode::VSE1V,
8419    Opcode::VSE32V,
8420    Opcode::VSE64V,
8421    Opcode::VSE8V,
8422    Opcode::VSETIVLI,
8423    Opcode::VSETVL,
8424    Opcode::VSETVLI,
8425    Opcode::VSEXTVF2,
8426    Opcode::VSEXTVF4,
8427    Opcode::VSEXTVF8,
8428    Opcode::VSHA2CHVV,
8429    Opcode::VSHA2CLVV,
8430    Opcode::VSHA2MSVV,
8431    Opcode::VSLIDE1DOWNVX,
8432    Opcode::VSLIDE1UPVX,
8433    Opcode::VSLIDEDOWNVI,
8434    Opcode::VSLIDEDOWNVX,
8435    Opcode::VSLIDEUPVI,
8436    Opcode::VSLIDEUPVX,
8437    Opcode::VSLLVI,
8438    Opcode::VSLLVV,
8439    Opcode::VSLLVX,
8440    Opcode::VSM3CVI,
8441    Opcode::VSM3MEVV,
8442    Opcode::VSM4KVI,
8443    Opcode::VSM4RVS,
8444    Opcode::VSM4RVV,
8445    Opcode::VSMV,
8446    Opcode::VSMULVV,
8447    Opcode::VSMULVX,
8448    Opcode::VSOXEI16V,
8449    Opcode::VSOXEI32V,
8450    Opcode::VSOXEI64V,
8451    Opcode::VSOXEI8V,
8452    Opcode::VSRAVI,
8453    Opcode::VSRAVV,
8454    Opcode::VSRAVX,
8455    Opcode::VSRLVI,
8456    Opcode::VSRLVV,
8457    Opcode::VSRLVX,
8458    Opcode::VSSE16V,
8459    Opcode::VSSE32V,
8460    Opcode::VSSE64V,
8461    Opcode::VSSE8V,
8462    Opcode::VSSRAVI,
8463    Opcode::VSSRAVV,
8464    Opcode::VSSRAVX,
8465    Opcode::VSSRLVI,
8466    Opcode::VSSRLVV,
8467    Opcode::VSSRLVX,
8468    Opcode::VSSUBVV,
8469    Opcode::VSSUBVX,
8470    Opcode::VSSUBUVV,
8471    Opcode::VSSUBUVX,
8472    Opcode::VSUBVV,
8473    Opcode::VSUBVX,
8474    Opcode::VSUXEI16V,
8475    Opcode::VSUXEI32V,
8476    Opcode::VSUXEI64V,
8477    Opcode::VSUXEI8V,
8478    Opcode::VWADDVV,
8479    Opcode::VWADDVX,
8480    Opcode::VWADDWV,
8481    Opcode::VWADDWX,
8482    Opcode::VWADDUVV,
8483    Opcode::VWADDUVX,
8484    Opcode::VWADDUWV,
8485    Opcode::VWADDUWX,
8486    Opcode::VWMACCVV,
8487    Opcode::VWMACCVX,
8488    Opcode::VWMACCSUVV,
8489    Opcode::VWMACCSUVX,
8490    Opcode::VWMACCUVV,
8491    Opcode::VWMACCUVX,
8492    Opcode::VWMACCUSVX,
8493    Opcode::VWMULVV,
8494    Opcode::VWMULVX,
8495    Opcode::VWMULSUVV,
8496    Opcode::VWMULSUVX,
8497    Opcode::VWMULUVV,
8498    Opcode::VWMULUVX,
8499    Opcode::VWREDSUMVS,
8500    Opcode::VWREDSUMUVS,
8501    Opcode::VWSLLVI,
8502    Opcode::VWSLLVV,
8503    Opcode::VWSLLVX,
8504    Opcode::VWSUBVV,
8505    Opcode::VWSUBVX,
8506    Opcode::VWSUBWV,
8507    Opcode::VWSUBWX,
8508    Opcode::VWSUBUVV,
8509    Opcode::VWSUBUVX,
8510    Opcode::VWSUBUWV,
8511    Opcode::VWSUBUWX,
8512    Opcode::VXORVI,
8513    Opcode::VXORVV,
8514    Opcode::VXORVX,
8515    Opcode::VZEXTVF2,
8516    Opcode::VZEXTVF4,
8517    Opcode::VZEXTVF8,
8518    Opcode::WFI,
8519    Opcode::WRSNTO,
8520    Opcode::WRSSTO,
8521    Opcode::XNOR,
8522    Opcode::XOR,
8523    Opcode::XORI,
8524    Opcode::XPERM4,
8525    Opcode::XPERM8,
8526    Opcode::ZEXTB,
8527    Opcode::ZEXTH,
8528    Opcode::ZEXTHRV32,
8529    Opcode::ZEXTW,
8530    Opcode::ZIP,
8531];
8532pub static SHORT_OPCODE: [bool; 1021] = [
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, false,
8539    false, false, false, false, false, false, false, false, false, false, false, false, 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, true, true, true, true, true, true, true, true,
8546    true, true, true, true, true, true, true, true, 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    false, false, false, false, false, false, false, false, false, false, false, false, false,
8610];
8611pub const SHORT_OPCODES: [Opcode; 106] = [
8612    Opcode::CADD,
8613    Opcode::CADDI,
8614    Opcode::CADDI16SP,
8615    Opcode::CADDI4SPN,
8616    Opcode::CADDIW,
8617    Opcode::CADDW,
8618    Opcode::CAND,
8619    Opcode::CANDI,
8620    Opcode::CBEQZ,
8621    Opcode::CBNEZ,
8622    Opcode::CEBREAK,
8623    Opcode::CFLD,
8624    Opcode::CFLDSP,
8625    Opcode::CFLW,
8626    Opcode::CFLWSP,
8627    Opcode::CFSD,
8628    Opcode::CFSDSP,
8629    Opcode::CFSW,
8630    Opcode::CFSWSP,
8631    Opcode::CJ,
8632    Opcode::CJAL,
8633    Opcode::CJALR,
8634    Opcode::CJR,
8635    Opcode::CLBU,
8636    Opcode::CLD,
8637    Opcode::CLDSP,
8638    Opcode::CLH,
8639    Opcode::CLHU,
8640    Opcode::CLI,
8641    Opcode::CLUI,
8642    Opcode::CLW,
8643    Opcode::CLWSP,
8644    Opcode::CMOP1,
8645    Opcode::CMOP11,
8646    Opcode::CMOP13,
8647    Opcode::CMOP15,
8648    Opcode::CMOP3,
8649    Opcode::CMOP5,
8650    Opcode::CMOP7,
8651    Opcode::CMOP9,
8652    Opcode::CMOPN,
8653    Opcode::CMUL,
8654    Opcode::CMV,
8655    Opcode::CNOP,
8656    Opcode::CNOT,
8657    Opcode::CNTLALL,
8658    Opcode::CNTLP1,
8659    Opcode::CNTLPALL,
8660    Opcode::CNTLS1,
8661    Opcode::COR,
8662    Opcode::CSB,
8663    Opcode::CSD,
8664    Opcode::CSDSP,
8665    Opcode::CSEXTB,
8666    Opcode::CSEXTH,
8667    Opcode::CSEXTW,
8668    Opcode::CSH,
8669    Opcode::CSLLI,
8670    Opcode::CSLLIRV32,
8671    Opcode::CSRAI,
8672    Opcode::CSRAIRV32,
8673    Opcode::CSRLI,
8674    Opcode::CSRLIRV32,
8675    Opcode::CSUB,
8676    Opcode::CSUBW,
8677    Opcode::CSW,
8678    Opcode::CSWSP,
8679    Opcode::CXOR,
8680    Opcode::CZEXTB,
8681    Opcode::CZEXTH,
8682    Opcode::CZEXTW,
8683    Opcode::CBOCLEAN,
8684    Opcode::CBOFLUSH,
8685    Opcode::CBOINVAL,
8686    Opcode::CBOZERO,
8687    Opcode::CLMUL,
8688    Opcode::CLMULH,
8689    Opcode::CLMULR,
8690    Opcode::CLZ,
8691    Opcode::CLZW,
8692    Opcode::CMJALT,
8693    Opcode::CMMVA01S,
8694    Opcode::CMMVSA01,
8695    Opcode::CMPOP,
8696    Opcode::CMPOPRET,
8697    Opcode::CMPOPRETZ,
8698    Opcode::CMPUSH,
8699    Opcode::CPOP,
8700    Opcode::CPOPW,
8701    Opcode::CSRC,
8702    Opcode::CSRCI,
8703    Opcode::CSRR,
8704    Opcode::CSRRC,
8705    Opcode::CSRRCI,
8706    Opcode::CSRRS,
8707    Opcode::CSRRSI,
8708    Opcode::CSRRW,
8709    Opcode::CSRRWI,
8710    Opcode::CSRS,
8711    Opcode::CSRSI,
8712    Opcode::CSRW,
8713    Opcode::CSRWI,
8714    Opcode::CTZ,
8715    Opcode::CTZW,
8716    Opcode::CZEROEQZ,
8717    Opcode::CZERONEZ,
8718];
8719
8720#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
8721#[repr(u32)]
8722pub enum Opcode {
8723    ADD,
8724    ADDUW,
8725    ADDI,
8726    ADDIW,
8727    ADDW,
8728    AES32DSI,
8729    AES32DSMI,
8730    AES32ESI,
8731    AES32ESMI,
8732    AES64DS,
8733    AES64DSM,
8734    AES64ES,
8735    AES64ESM,
8736    AES64IM,
8737    AES64KS1I,
8738    AES64KS2,
8739    AMOADDB,
8740    AMOADDD,
8741    AMOADDH,
8742    AMOADDW,
8743    AMOANDB,
8744    AMOANDD,
8745    AMOANDH,
8746    AMOANDW,
8747    AMOCASB,
8748    AMOCASD,
8749    AMOCASH,
8750    AMOCASQ,
8751    AMOCASW,
8752    AMOMAXB,
8753    AMOMAXD,
8754    AMOMAXH,
8755    AMOMAXW,
8756    AMOMAXUB,
8757    AMOMAXUD,
8758    AMOMAXUH,
8759    AMOMAXUW,
8760    AMOMINB,
8761    AMOMIND,
8762    AMOMINH,
8763    AMOMINW,
8764    AMOMINUB,
8765    AMOMINUD,
8766    AMOMINUH,
8767    AMOMINUW,
8768    AMOORB,
8769    AMOORD,
8770    AMOORH,
8771    AMOORW,
8772    AMOSWAPB,
8773    AMOSWAPD,
8774    AMOSWAPH,
8775    AMOSWAPW,
8776    AMOXORB,
8777    AMOXORD,
8778    AMOXORH,
8779    AMOXORW,
8780    AND,
8781    ANDI,
8782    ANDN,
8783    AUIPC,
8784    BCLR,
8785    BCLRI,
8786    BCLRIRV32,
8787    BEQ,
8788    BEQZ,
8789    BEXT,
8790    BEXTI,
8791    BEXTIRV32,
8792    BGE,
8793    BGEU,
8794    BGEZ,
8795    BGT,
8796    BGTU,
8797    BGTZ,
8798    BINV,
8799    BINVI,
8800    BINVIRV32,
8801    BLE,
8802    BLEU,
8803    BLEZ,
8804    BLT,
8805    BLTU,
8806    BLTZ,
8807    BNE,
8808    BNEZ,
8809    BREV8,
8810    BSET,
8811    BSETI,
8812    BSETIRV32,
8813    CADD,
8814    CADDI,
8815    CADDI16SP,
8816    CADDI4SPN,
8817    CADDIW,
8818    CADDW,
8819    CAND,
8820    CANDI,
8821    CBEQZ,
8822    CBNEZ,
8823    CEBREAK,
8824    CFLD,
8825    CFLDSP,
8826    CFLW,
8827    CFLWSP,
8828    CFSD,
8829    CFSDSP,
8830    CFSW,
8831    CFSWSP,
8832    CJ,
8833    CJAL,
8834    CJALR,
8835    CJR,
8836    CLBU,
8837    CLD,
8838    CLDSP,
8839    CLH,
8840    CLHU,
8841    CLI,
8842    CLUI,
8843    CLW,
8844    CLWSP,
8845    CMOP1,
8846    CMOP11,
8847    CMOP13,
8848    CMOP15,
8849    CMOP3,
8850    CMOP5,
8851    CMOP7,
8852    CMOP9,
8853    CMOPN,
8854    CMUL,
8855    CMV,
8856    CNOP,
8857    CNOT,
8858    CNTLALL,
8859    CNTLP1,
8860    CNTLPALL,
8861    CNTLS1,
8862    COR,
8863    CSB,
8864    CSD,
8865    CSDSP,
8866    CSEXTB,
8867    CSEXTH,
8868    CSEXTW,
8869    CSH,
8870    CSLLI,
8871    CSLLIRV32,
8872    CSRAI,
8873    CSRAIRV32,
8874    CSRLI,
8875    CSRLIRV32,
8876    CSUB,
8877    CSUBW,
8878    CSW,
8879    CSWSP,
8880    CXOR,
8881    CZEXTB,
8882    CZEXTH,
8883    CZEXTW,
8884    CBOCLEAN,
8885    CBOFLUSH,
8886    CBOINVAL,
8887    CBOZERO,
8888    CLMUL,
8889    CLMULH,
8890    CLMULR,
8891    CLZ,
8892    CLZW,
8893    CMJALT,
8894    CMMVA01S,
8895    CMMVSA01,
8896    CMPOP,
8897    CMPOPRET,
8898    CMPOPRETZ,
8899    CMPUSH,
8900    CPOP,
8901    CPOPW,
8902    CSRC,
8903    CSRCI,
8904    CSRR,
8905    CSRRC,
8906    CSRRCI,
8907    CSRRS,
8908    CSRRSI,
8909    CSRRW,
8910    CSRRWI,
8911    CSRS,
8912    CSRSI,
8913    CSRW,
8914    CSRWI,
8915    CTZ,
8916    CTZW,
8917    CZEROEQZ,
8918    CZERONEZ,
8919    DIV,
8920    DIVU,
8921    DIVUW,
8922    DIVW,
8923    DRET,
8924    EBREAK,
8925    ECALL,
8926    FABSD,
8927    FABSH,
8928    FABSQ,
8929    FABSS,
8930    FADDD,
8931    FADDH,
8932    FADDQ,
8933    FADDS,
8934    FCLASSD,
8935    FCLASSH,
8936    FCLASSQ,
8937    FCLASSS,
8938    FCVTDH,
8939    FCVTDL,
8940    FCVTDLU,
8941    FCVTDQ,
8942    FCVTDS,
8943    FCVTDW,
8944    FCVTDWU,
8945    FCVTHD,
8946    FCVTHL,
8947    FCVTHLU,
8948    FCVTHQ,
8949    FCVTHS,
8950    FCVTHW,
8951    FCVTHWU,
8952    FCVTLD,
8953    FCVTLH,
8954    FCVTLQ,
8955    FCVTLS,
8956    FCVTLUD,
8957    FCVTLUH,
8958    FCVTLUQ,
8959    FCVTLUS,
8960    FCVTQD,
8961    FCVTQH,
8962    FCVTQL,
8963    FCVTQLU,
8964    FCVTQS,
8965    FCVTQW,
8966    FCVTQWU,
8967    FCVTSD,
8968    FCVTSH,
8969    FCVTSL,
8970    FCVTSLU,
8971    FCVTSQ,
8972    FCVTSW,
8973    FCVTSWU,
8974    FCVTWD,
8975    FCVTWH,
8976    FCVTWQ,
8977    FCVTWS,
8978    FCVTWUD,
8979    FCVTWUH,
8980    FCVTWUQ,
8981    FCVTWUS,
8982    FCVTMODWD,
8983    FDIVD,
8984    FDIVH,
8985    FDIVQ,
8986    FDIVS,
8987    FENCE,
8988    FENCEI,
8989    FENCETSO,
8990    FEQD,
8991    FEQH,
8992    FEQQ,
8993    FEQS,
8994    FLD,
8995    FLED,
8996    FLEH,
8997    FLEQ,
8998    FLES,
8999    FLEQD,
9000    FLEQH,
9001    FLEQQ,
9002    FLEQS,
9003    FLH,
9004    FLID,
9005    FLIH,
9006    FLIQ,
9007    FLIS,
9008    FLQ,
9009    FLTD,
9010    FLTH,
9011    FLTQ,
9012    FLTS,
9013    FLTQD,
9014    FLTQH,
9015    FLTQQ,
9016    FLTQS,
9017    FLW,
9018    FMADDD,
9019    FMADDH,
9020    FMADDQ,
9021    FMADDS,
9022    FMAXD,
9023    FMAXH,
9024    FMAXQ,
9025    FMAXS,
9026    FMAXMD,
9027    FMAXMH,
9028    FMAXMQ,
9029    FMAXMS,
9030    FMIND,
9031    FMINH,
9032    FMINQ,
9033    FMINS,
9034    FMINMD,
9035    FMINMH,
9036    FMINMQ,
9037    FMINMS,
9038    FMSUBD,
9039    FMSUBH,
9040    FMSUBQ,
9041    FMSUBS,
9042    FMULD,
9043    FMULH,
9044    FMULQ,
9045    FMULS,
9046    FMVD,
9047    FMVDX,
9048    FMVH,
9049    FMVHX,
9050    FMVQ,
9051    FMVS,
9052    FMVSX,
9053    FMVWX,
9054    FMVXD,
9055    FMVXH,
9056    FMVXS,
9057    FMVXW,
9058    FMVHXD,
9059    FMVHXQ,
9060    FMVPDX,
9061    FMVPQX,
9062    FNEGD,
9063    FNEGH,
9064    FNEGQ,
9065    FNEGS,
9066    FNMADDD,
9067    FNMADDH,
9068    FNMADDQ,
9069    FNMADDS,
9070    FNMSUBD,
9071    FNMSUBH,
9072    FNMSUBQ,
9073    FNMSUBS,
9074    FRCSR,
9075    FRFLAGS,
9076    FROUNDD,
9077    FROUNDH,
9078    FROUNDQ,
9079    FROUNDS,
9080    FROUNDNXD,
9081    FROUNDNXH,
9082    FROUNDNXQ,
9083    FROUNDNXS,
9084    FRRM,
9085    FSCSR,
9086    FSD,
9087    FSFLAGS,
9088    FSFLAGSI,
9089    FSGNJD,
9090    FSGNJH,
9091    FSGNJQ,
9092    FSGNJS,
9093    FSGNJND,
9094    FSGNJNH,
9095    FSGNJNQ,
9096    FSGNJNS,
9097    FSGNJXD,
9098    FSGNJXH,
9099    FSGNJXQ,
9100    FSGNJXS,
9101    FSH,
9102    FSQ,
9103    FSQRTD,
9104    FSQRTH,
9105    FSQRTQ,
9106    FSQRTS,
9107    FSRM,
9108    FSRMI,
9109    FSUBD,
9110    FSUBH,
9111    FSUBQ,
9112    FSUBS,
9113    FSW,
9114    HFENCEGVMA,
9115    HFENCEVVMA,
9116    HINVALGVMA,
9117    HINVALVVMA,
9118    HLVB,
9119    HLVBU,
9120    HLVD,
9121    HLVH,
9122    HLVHU,
9123    HLVW,
9124    HLVWU,
9125    HLVXHU,
9126    HLVXWU,
9127    HSVB,
9128    HSVD,
9129    HSVH,
9130    HSVW,
9131    J,
9132    JAL,
9133    JALPSEUDO,
9134    JALR,
9135    JALRPSEUDO,
9136    JR,
9137    LB,
9138    LBU,
9139    LD,
9140    LH,
9141    LHU,
9142    LRD,
9143    LRW,
9144    LUI,
9145    LW,
9146    LWU,
9147    MAX,
9148    MAXU,
9149    MIN,
9150    MINU,
9151    MOPR0,
9152    MOPR1,
9153    MOPR10,
9154    MOPR11,
9155    MOPR12,
9156    MOPR13,
9157    MOPR14,
9158    MOPR15,
9159    MOPR16,
9160    MOPR17,
9161    MOPR18,
9162    MOPR19,
9163    MOPR2,
9164    MOPR20,
9165    MOPR21,
9166    MOPR22,
9167    MOPR23,
9168    MOPR24,
9169    MOPR25,
9170    MOPR26,
9171    MOPR27,
9172    MOPR28,
9173    MOPR29,
9174    MOPR3,
9175    MOPR30,
9176    MOPR31,
9177    MOPR4,
9178    MOPR5,
9179    MOPR6,
9180    MOPR7,
9181    MOPR8,
9182    MOPR9,
9183    MOPRN,
9184    MOPRR0,
9185    MOPRR1,
9186    MOPRR2,
9187    MOPRR3,
9188    MOPRR4,
9189    MOPRR5,
9190    MOPRR6,
9191    MOPRR7,
9192    MOPRRN,
9193    MRET,
9194    MUL,
9195    MULH,
9196    MULHSU,
9197    MULHU,
9198    MULW,
9199    MV,
9200    NEG,
9201    NOP,
9202    NTLALL,
9203    NTLP1,
9204    NTLPALL,
9205    NTLS1,
9206    OR,
9207    ORCB,
9208    ORI,
9209    ORN,
9210    PACK,
9211    PACKH,
9212    PACKW,
9213    PAUSE,
9214    PREFETCHI,
9215    PREFETCHR,
9216    PREFETCHW,
9217    RDCYCLE,
9218    RDCYCLEH,
9219    RDINSTRET,
9220    RDINSTRETH,
9221    RDTIME,
9222    RDTIMEH,
9223    REM,
9224    REMU,
9225    REMUW,
9226    REMW,
9227    RET,
9228    REV8,
9229    REV8RV32,
9230    ROL,
9231    ROLW,
9232    ROR,
9233    RORI,
9234    RORIRV32,
9235    RORIW,
9236    RORW,
9237    SB,
9238    SBREAK,
9239    SCD,
9240    SCW,
9241    SCALL,
9242    SD,
9243    SEQZ,
9244    SEXTB,
9245    SEXTH,
9246    SEXTW,
9247    SFENCEINVALIR,
9248    SFENCEVMA,
9249    SFENCEWINVAL,
9250    SGTZ,
9251    SH,
9252    SH1ADD,
9253    SH1ADDUW,
9254    SH2ADD,
9255    SH2ADDUW,
9256    SH3ADD,
9257    SH3ADDUW,
9258    SHA256SIG0,
9259    SHA256SIG1,
9260    SHA256SUM0,
9261    SHA256SUM1,
9262    SHA512SIG0,
9263    SHA512SIG0H,
9264    SHA512SIG0L,
9265    SHA512SIG1,
9266    SHA512SIG1H,
9267    SHA512SIG1L,
9268    SHA512SUM0,
9269    SHA512SUM0R,
9270    SHA512SUM1,
9271    SHA512SUM1R,
9272    SINVALVMA,
9273    SLL,
9274    SLLI,
9275    SLLIRV32,
9276    SLLIUW,
9277    SLLIW,
9278    SLLW,
9279    SLT,
9280    SLTI,
9281    SLTIU,
9282    SLTU,
9283    SLTZ,
9284    SM3P0,
9285    SM3P1,
9286    SM4ED,
9287    SM4KS,
9288    SNEZ,
9289    SRA,
9290    SRAI,
9291    SRAIRV32,
9292    SRAIW,
9293    SRAW,
9294    SRET,
9295    SRL,
9296    SRLI,
9297    SRLIRV32,
9298    SRLIW,
9299    SRLW,
9300    SUB,
9301    SUBW,
9302    SW,
9303    UNZIP,
9304    VAADDVV,
9305    VAADDVX,
9306    VAADDUVV,
9307    VAADDUVX,
9308    VADCVIM,
9309    VADCVVM,
9310    VADCVXM,
9311    VADDVI,
9312    VADDVV,
9313    VADDVX,
9314    VAESDFVS,
9315    VAESDFVV,
9316    VAESDMVS,
9317    VAESDMVV,
9318    VAESEFVS,
9319    VAESEFVV,
9320    VAESEMVS,
9321    VAESEMVV,
9322    VAESKF1VI,
9323    VAESKF2VI,
9324    VAESZVS,
9325    VANDVI,
9326    VANDVV,
9327    VANDVX,
9328    VANDNVV,
9329    VANDNVX,
9330    VASUBVV,
9331    VASUBVX,
9332    VASUBUVV,
9333    VASUBUVX,
9334    VBREV8V,
9335    VBREVV,
9336    VCLMULVV,
9337    VCLMULVX,
9338    VCLMULHVV,
9339    VCLMULHVX,
9340    VCLZV,
9341    VCOMPRESSVM,
9342    VCPOPM,
9343    VCPOPV,
9344    VCTZV,
9345    VDIVVV,
9346    VDIVVX,
9347    VDIVUVV,
9348    VDIVUVX,
9349    VFADDVF,
9350    VFADDVV,
9351    VFCLASSV,
9352    VFCVTFXV,
9353    VFCVTFXUV,
9354    VFCVTRTZXFV,
9355    VFCVTRTZXUFV,
9356    VFCVTXFV,
9357    VFCVTXUFV,
9358    VFDIVVF,
9359    VFDIVVV,
9360    VFIRSTM,
9361    VFMACCVF,
9362    VFMACCVV,
9363    VFMADDVF,
9364    VFMADDVV,
9365    VFMAXVF,
9366    VFMAXVV,
9367    VFMERGEVFM,
9368    VFMINVF,
9369    VFMINVV,
9370    VFMSACVF,
9371    VFMSACVV,
9372    VFMSUBVF,
9373    VFMSUBVV,
9374    VFMULVF,
9375    VFMULVV,
9376    VFMVFS,
9377    VFMVSF,
9378    VFMVVF,
9379    VFNCVTFFW,
9380    VFNCVTFXW,
9381    VFNCVTFXUW,
9382    VFNCVTRODFFW,
9383    VFNCVTRTZXFW,
9384    VFNCVTRTZXUFW,
9385    VFNCVTXFW,
9386    VFNCVTXUFW,
9387    VFNMACCVF,
9388    VFNMACCVV,
9389    VFNMADDVF,
9390    VFNMADDVV,
9391    VFNMSACVF,
9392    VFNMSACVV,
9393    VFNMSUBVF,
9394    VFNMSUBVV,
9395    VFRDIVVF,
9396    VFREC7V,
9397    VFREDMAXVS,
9398    VFREDMINVS,
9399    VFREDOSUMVS,
9400    VFREDSUMVS,
9401    VFREDUSUMVS,
9402    VFRSQRT7V,
9403    VFRSUBVF,
9404    VFSGNJVF,
9405    VFSGNJVV,
9406    VFSGNJNVF,
9407    VFSGNJNVV,
9408    VFSGNJXVF,
9409    VFSGNJXVV,
9410    VFSLIDE1DOWNVF,
9411    VFSLIDE1UPVF,
9412    VFSQRTV,
9413    VFSUBVF,
9414    VFSUBVV,
9415    VFWADDVF,
9416    VFWADDVV,
9417    VFWADDWF,
9418    VFWADDWV,
9419    VFWCVTFFV,
9420    VFWCVTFXV,
9421    VFWCVTFXUV,
9422    VFWCVTRTZXFV,
9423    VFWCVTRTZXUFV,
9424    VFWCVTXFV,
9425    VFWCVTXUFV,
9426    VFWMACCVF,
9427    VFWMACCVV,
9428    VFWMSACVF,
9429    VFWMSACVV,
9430    VFWMULVF,
9431    VFWMULVV,
9432    VFWNMACCVF,
9433    VFWNMACCVV,
9434    VFWNMSACVF,
9435    VFWNMSACVV,
9436    VFWREDOSUMVS,
9437    VFWREDSUMVS,
9438    VFWREDUSUMVS,
9439    VFWSUBVF,
9440    VFWSUBVV,
9441    VFWSUBWF,
9442    VFWSUBWV,
9443    VGHSHVV,
9444    VGMULVV,
9445    VIDV,
9446    VIOTAM,
9447    VL1RV,
9448    VL1RE16V,
9449    VL1RE32V,
9450    VL1RE64V,
9451    VL1RE8V,
9452    VL2RV,
9453    VL2RE16V,
9454    VL2RE32V,
9455    VL2RE64V,
9456    VL2RE8V,
9457    VL4RV,
9458    VL4RE16V,
9459    VL4RE32V,
9460    VL4RE64V,
9461    VL4RE8V,
9462    VL8RV,
9463    VL8RE16V,
9464    VL8RE32V,
9465    VL8RE64V,
9466    VL8RE8V,
9467    VLE16V,
9468    VLE16FFV,
9469    VLE1V,
9470    VLE32V,
9471    VLE32FFV,
9472    VLE64V,
9473    VLE64FFV,
9474    VLE8V,
9475    VLE8FFV,
9476    VLMV,
9477    VLOXEI16V,
9478    VLOXEI32V,
9479    VLOXEI64V,
9480    VLOXEI8V,
9481    VLSE16V,
9482    VLSE32V,
9483    VLSE64V,
9484    VLSE8V,
9485    VLUXEI16V,
9486    VLUXEI32V,
9487    VLUXEI64V,
9488    VLUXEI8V,
9489    VMACCVV,
9490    VMACCVX,
9491    VMADCVI,
9492    VMADCVIM,
9493    VMADCVV,
9494    VMADCVVM,
9495    VMADCVX,
9496    VMADCVXM,
9497    VMADDVV,
9498    VMADDVX,
9499    VMANDMM,
9500    VMANDNMM,
9501    VMANDNOTMM,
9502    VMAXVV,
9503    VMAXVX,
9504    VMAXUVV,
9505    VMAXUVX,
9506    VMERGEVIM,
9507    VMERGEVVM,
9508    VMERGEVXM,
9509    VMFEQVF,
9510    VMFEQVV,
9511    VMFGEVF,
9512    VMFGTVF,
9513    VMFLEVF,
9514    VMFLEVV,
9515    VMFLTVF,
9516    VMFLTVV,
9517    VMFNEVF,
9518    VMFNEVV,
9519    VMINVV,
9520    VMINVX,
9521    VMINUVV,
9522    VMINUVX,
9523    VMNANDMM,
9524    VMNORMM,
9525    VMORMM,
9526    VMORNMM,
9527    VMORNOTMM,
9528    VMSBCVV,
9529    VMSBCVVM,
9530    VMSBCVX,
9531    VMSBCVXM,
9532    VMSBFM,
9533    VMSEQVI,
9534    VMSEQVV,
9535    VMSEQVX,
9536    VMSGTVI,
9537    VMSGTVX,
9538    VMSGTUVI,
9539    VMSGTUVX,
9540    VMSIFM,
9541    VMSLEVI,
9542    VMSLEVV,
9543    VMSLEVX,
9544    VMSLEUVI,
9545    VMSLEUVV,
9546    VMSLEUVX,
9547    VMSLTVV,
9548    VMSLTVX,
9549    VMSLTUVV,
9550    VMSLTUVX,
9551    VMSNEVI,
9552    VMSNEVV,
9553    VMSNEVX,
9554    VMSOFM,
9555    VMULVV,
9556    VMULVX,
9557    VMULHVV,
9558    VMULHVX,
9559    VMULHSUVV,
9560    VMULHSUVX,
9561    VMULHUVV,
9562    VMULHUVX,
9563    VMV1RV,
9564    VMV2RV,
9565    VMV4RV,
9566    VMV8RV,
9567    VMVSX,
9568    VMVVI,
9569    VMVVV,
9570    VMVVX,
9571    VMVXS,
9572    VMXNORMM,
9573    VMXORMM,
9574    VNCLIPWI,
9575    VNCLIPWV,
9576    VNCLIPWX,
9577    VNCLIPUWI,
9578    VNCLIPUWV,
9579    VNCLIPUWX,
9580    VNMSACVV,
9581    VNMSACVX,
9582    VNMSUBVV,
9583    VNMSUBVX,
9584    VNSRAWI,
9585    VNSRAWV,
9586    VNSRAWX,
9587    VNSRLWI,
9588    VNSRLWV,
9589    VNSRLWX,
9590    VORVI,
9591    VORVV,
9592    VORVX,
9593    VPOPCM,
9594    VREDANDVS,
9595    VREDMAXVS,
9596    VREDMAXUVS,
9597    VREDMINVS,
9598    VREDMINUVS,
9599    VREDORVS,
9600    VREDSUMVS,
9601    VREDXORVS,
9602    VREMVV,
9603    VREMVX,
9604    VREMUVV,
9605    VREMUVX,
9606    VREV8V,
9607    VRGATHERVI,
9608    VRGATHERVV,
9609    VRGATHERVX,
9610    VRGATHEREI16VV,
9611    VROLVV,
9612    VROLVX,
9613    VRORVI,
9614    VRORVV,
9615    VRORVX,
9616    VRSUBVI,
9617    VRSUBVX,
9618    VS1RV,
9619    VS2RV,
9620    VS4RV,
9621    VS8RV,
9622    VSADDVI,
9623    VSADDVV,
9624    VSADDVX,
9625    VSADDUVI,
9626    VSADDUVV,
9627    VSADDUVX,
9628    VSBCVVM,
9629    VSBCVXM,
9630    VSE16V,
9631    VSE1V,
9632    VSE32V,
9633    VSE64V,
9634    VSE8V,
9635    VSETIVLI,
9636    VSETVL,
9637    VSETVLI,
9638    VSEXTVF2,
9639    VSEXTVF4,
9640    VSEXTVF8,
9641    VSHA2CHVV,
9642    VSHA2CLVV,
9643    VSHA2MSVV,
9644    VSLIDE1DOWNVX,
9645    VSLIDE1UPVX,
9646    VSLIDEDOWNVI,
9647    VSLIDEDOWNVX,
9648    VSLIDEUPVI,
9649    VSLIDEUPVX,
9650    VSLLVI,
9651    VSLLVV,
9652    VSLLVX,
9653    VSM3CVI,
9654    VSM3MEVV,
9655    VSM4KVI,
9656    VSM4RVS,
9657    VSM4RVV,
9658    VSMV,
9659    VSMULVV,
9660    VSMULVX,
9661    VSOXEI16V,
9662    VSOXEI32V,
9663    VSOXEI64V,
9664    VSOXEI8V,
9665    VSRAVI,
9666    VSRAVV,
9667    VSRAVX,
9668    VSRLVI,
9669    VSRLVV,
9670    VSRLVX,
9671    VSSE16V,
9672    VSSE32V,
9673    VSSE64V,
9674    VSSE8V,
9675    VSSRAVI,
9676    VSSRAVV,
9677    VSSRAVX,
9678    VSSRLVI,
9679    VSSRLVV,
9680    VSSRLVX,
9681    VSSUBVV,
9682    VSSUBVX,
9683    VSSUBUVV,
9684    VSSUBUVX,
9685    VSUBVV,
9686    VSUBVX,
9687    VSUXEI16V,
9688    VSUXEI32V,
9689    VSUXEI64V,
9690    VSUXEI8V,
9691    VWADDVV,
9692    VWADDVX,
9693    VWADDWV,
9694    VWADDWX,
9695    VWADDUVV,
9696    VWADDUVX,
9697    VWADDUWV,
9698    VWADDUWX,
9699    VWMACCVV,
9700    VWMACCVX,
9701    VWMACCSUVV,
9702    VWMACCSUVX,
9703    VWMACCUVV,
9704    VWMACCUVX,
9705    VWMACCUSVX,
9706    VWMULVV,
9707    VWMULVX,
9708    VWMULSUVV,
9709    VWMULSUVX,
9710    VWMULUVV,
9711    VWMULUVX,
9712    VWREDSUMVS,
9713    VWREDSUMUVS,
9714    VWSLLVI,
9715    VWSLLVV,
9716    VWSLLVX,
9717    VWSUBVV,
9718    VWSUBVX,
9719    VWSUBWV,
9720    VWSUBWX,
9721    VWSUBUVV,
9722    VWSUBUVX,
9723    VWSUBUWV,
9724    VWSUBUWX,
9725    VXORVI,
9726    VXORVV,
9727    VXORVX,
9728    VZEXTVF2,
9729    VZEXTVF4,
9730    VZEXTVF8,
9731    WFI,
9732    WRSNTO,
9733    WRSSTO,
9734    XNOR,
9735    XOR,
9736    XORI,
9737    XPERM4,
9738    XPERM8,
9739    ZEXTB,
9740    ZEXTH,
9741    ZEXTHRV32,
9742    ZEXTW,
9743    ZIP,
9744    Invalid,
9745}
9746
9747pub const OPCODE_STR: &[&str] = &[
9748    "add",
9749    "add.uw",
9750    "addi",
9751    "addiw",
9752    "addw",
9753    "aes32dsi",
9754    "aes32dsmi",
9755    "aes32esi",
9756    "aes32esmi",
9757    "aes64ds",
9758    "aes64dsm",
9759    "aes64es",
9760    "aes64esm",
9761    "aes64im",
9762    "aes64ks1i",
9763    "aes64ks2",
9764    "amoadd.b",
9765    "amoadd.d",
9766    "amoadd.h",
9767    "amoadd.w",
9768    "amoand.b",
9769    "amoand.d",
9770    "amoand.h",
9771    "amoand.w",
9772    "amocas.b",
9773    "amocas.d",
9774    "amocas.h",
9775    "amocas.q",
9776    "amocas.w",
9777    "amomax.b",
9778    "amomax.d",
9779    "amomax.h",
9780    "amomax.w",
9781    "amomaxu.b",
9782    "amomaxu.d",
9783    "amomaxu.h",
9784    "amomaxu.w",
9785    "amomin.b",
9786    "amomin.d",
9787    "amomin.h",
9788    "amomin.w",
9789    "amominu.b",
9790    "amominu.d",
9791    "amominu.h",
9792    "amominu.w",
9793    "amoor.b",
9794    "amoor.d",
9795    "amoor.h",
9796    "amoor.w",
9797    "amoswap.b",
9798    "amoswap.d",
9799    "amoswap.h",
9800    "amoswap.w",
9801    "amoxor.b",
9802    "amoxor.d",
9803    "amoxor.h",
9804    "amoxor.w",
9805    "and",
9806    "andi",
9807    "andn",
9808    "auipc",
9809    "bclr",
9810    "bclri",
9811    "bclri.rv32",
9812    "beq",
9813    "beqz",
9814    "bext",
9815    "bexti",
9816    "bexti.rv32",
9817    "bge",
9818    "bgeu",
9819    "bgez",
9820    "bgt",
9821    "bgtu",
9822    "bgtz",
9823    "binv",
9824    "binvi",
9825    "binvi.rv32",
9826    "ble",
9827    "bleu",
9828    "blez",
9829    "blt",
9830    "bltu",
9831    "bltz",
9832    "bne",
9833    "bnez",
9834    "brev8",
9835    "bset",
9836    "bseti",
9837    "bseti.rv32",
9838    "c.add",
9839    "c.addi",
9840    "c.addi16sp",
9841    "c.addi4spn",
9842    "c.addiw",
9843    "c.addw",
9844    "c.and",
9845    "c.andi",
9846    "c.beqz",
9847    "c.bnez",
9848    "c.ebreak",
9849    "c.fld",
9850    "c.fldsp",
9851    "c.flw",
9852    "c.flwsp",
9853    "c.fsd",
9854    "c.fsdsp",
9855    "c.fsw",
9856    "c.fswsp",
9857    "c.j",
9858    "c.jal",
9859    "c.jalr",
9860    "c.jr",
9861    "c.lbu",
9862    "c.ld",
9863    "c.ldsp",
9864    "c.lh",
9865    "c.lhu",
9866    "c.li",
9867    "c.lui",
9868    "c.lw",
9869    "c.lwsp",
9870    "c.mop.1",
9871    "c.mop.11",
9872    "c.mop.13",
9873    "c.mop.15",
9874    "c.mop.3",
9875    "c.mop.5",
9876    "c.mop.7",
9877    "c.mop.9",
9878    "c.mop.n",
9879    "c.mul",
9880    "c.mv",
9881    "c.nop",
9882    "c.not",
9883    "c.ntl.all",
9884    "c.ntl.p1",
9885    "c.ntl.pall",
9886    "c.ntl.s1",
9887    "c.or",
9888    "c.sb",
9889    "c.sd",
9890    "c.sdsp",
9891    "c.sext.b",
9892    "c.sext.h",
9893    "c.sext.w",
9894    "c.sh",
9895    "c.slli",
9896    "c.slli.rv32",
9897    "c.srai",
9898    "c.srai.rv32",
9899    "c.srli",
9900    "c.srli.rv32",
9901    "c.sub",
9902    "c.subw",
9903    "c.sw",
9904    "c.swsp",
9905    "c.xor",
9906    "c.zext.b",
9907    "c.zext.h",
9908    "c.zext.w",
9909    "cbo.clean",
9910    "cbo.flush",
9911    "cbo.inval",
9912    "cbo.zero",
9913    "clmul",
9914    "clmulh",
9915    "clmulr",
9916    "clz",
9917    "clzw",
9918    "cm.jalt",
9919    "cm.mva01s",
9920    "cm.mvsa01",
9921    "cm.pop",
9922    "cm.popret",
9923    "cm.popretz",
9924    "cm.push",
9925    "cpop",
9926    "cpopw",
9927    "csrc",
9928    "csrci",
9929    "csrr",
9930    "csrrc",
9931    "csrrci",
9932    "csrrs",
9933    "csrrsi",
9934    "csrrw",
9935    "csrrwi",
9936    "csrs",
9937    "csrsi",
9938    "csrw",
9939    "csrwi",
9940    "ctz",
9941    "ctzw",
9942    "czero.eqz",
9943    "czero.nez",
9944    "div",
9945    "divu",
9946    "divuw",
9947    "divw",
9948    "dret",
9949    "ebreak",
9950    "ecall",
9951    "fabs.d",
9952    "fabs.h",
9953    "fabs.q",
9954    "fabs.s",
9955    "fadd.d",
9956    "fadd.h",
9957    "fadd.q",
9958    "fadd.s",
9959    "fclass.d",
9960    "fclass.h",
9961    "fclass.q",
9962    "fclass.s",
9963    "fcvt.d.h",
9964    "fcvt.d.l",
9965    "fcvt.d.lu",
9966    "fcvt.d.q",
9967    "fcvt.d.s",
9968    "fcvt.d.w",
9969    "fcvt.d.wu",
9970    "fcvt.h.d",
9971    "fcvt.h.l",
9972    "fcvt.h.lu",
9973    "fcvt.h.q",
9974    "fcvt.h.s",
9975    "fcvt.h.w",
9976    "fcvt.h.wu",
9977    "fcvt.l.d",
9978    "fcvt.l.h",
9979    "fcvt.l.q",
9980    "fcvt.l.s",
9981    "fcvt.lu.d",
9982    "fcvt.lu.h",
9983    "fcvt.lu.q",
9984    "fcvt.lu.s",
9985    "fcvt.q.d",
9986    "fcvt.q.h",
9987    "fcvt.q.l",
9988    "fcvt.q.lu",
9989    "fcvt.q.s",
9990    "fcvt.q.w",
9991    "fcvt.q.wu",
9992    "fcvt.s.d",
9993    "fcvt.s.h",
9994    "fcvt.s.l",
9995    "fcvt.s.lu",
9996    "fcvt.s.q",
9997    "fcvt.s.w",
9998    "fcvt.s.wu",
9999    "fcvt.w.d",
10000    "fcvt.w.h",
10001    "fcvt.w.q",
10002    "fcvt.w.s",
10003    "fcvt.wu.d",
10004    "fcvt.wu.h",
10005    "fcvt.wu.q",
10006    "fcvt.wu.s",
10007    "fcvtmod.w.d",
10008    "fdiv.d",
10009    "fdiv.h",
10010    "fdiv.q",
10011    "fdiv.s",
10012    "fence",
10013    "fence.i",
10014    "fence.tso",
10015    "feq.d",
10016    "feq.h",
10017    "feq.q",
10018    "feq.s",
10019    "fld",
10020    "fle.d",
10021    "fle.h",
10022    "fle.q",
10023    "fle.s",
10024    "fleq.d",
10025    "fleq.h",
10026    "fleq.q",
10027    "fleq.s",
10028    "flh",
10029    "fli.d",
10030    "fli.h",
10031    "fli.q",
10032    "fli.s",
10033    "flq",
10034    "flt.d",
10035    "flt.h",
10036    "flt.q",
10037    "flt.s",
10038    "fltq.d",
10039    "fltq.h",
10040    "fltq.q",
10041    "fltq.s",
10042    "flw",
10043    "fmadd.d",
10044    "fmadd.h",
10045    "fmadd.q",
10046    "fmadd.s",
10047    "fmax.d",
10048    "fmax.h",
10049    "fmax.q",
10050    "fmax.s",
10051    "fmaxm.d",
10052    "fmaxm.h",
10053    "fmaxm.q",
10054    "fmaxm.s",
10055    "fmin.d",
10056    "fmin.h",
10057    "fmin.q",
10058    "fmin.s",
10059    "fminm.d",
10060    "fminm.h",
10061    "fminm.q",
10062    "fminm.s",
10063    "fmsub.d",
10064    "fmsub.h",
10065    "fmsub.q",
10066    "fmsub.s",
10067    "fmul.d",
10068    "fmul.h",
10069    "fmul.q",
10070    "fmul.s",
10071    "fmv.d",
10072    "fmv.d.x",
10073    "fmv.h",
10074    "fmv.h.x",
10075    "fmv.q",
10076    "fmv.s",
10077    "fmv.s.x",
10078    "fmv.w.x",
10079    "fmv.x.d",
10080    "fmv.x.h",
10081    "fmv.x.s",
10082    "fmv.x.w",
10083    "fmvh.x.d",
10084    "fmvh.x.q",
10085    "fmvp.d.x",
10086    "fmvp.q.x",
10087    "fneg.d",
10088    "fneg.h",
10089    "fneg.q",
10090    "fneg.s",
10091    "fnmadd.d",
10092    "fnmadd.h",
10093    "fnmadd.q",
10094    "fnmadd.s",
10095    "fnmsub.d",
10096    "fnmsub.h",
10097    "fnmsub.q",
10098    "fnmsub.s",
10099    "frcsr",
10100    "frflags",
10101    "fround.d",
10102    "fround.h",
10103    "fround.q",
10104    "fround.s",
10105    "froundnx.d",
10106    "froundnx.h",
10107    "froundnx.q",
10108    "froundnx.s",
10109    "frrm",
10110    "fscsr",
10111    "fsd",
10112    "fsflags",
10113    "fsflagsi",
10114    "fsgnj.d",
10115    "fsgnj.h",
10116    "fsgnj.q",
10117    "fsgnj.s",
10118    "fsgnjn.d",
10119    "fsgnjn.h",
10120    "fsgnjn.q",
10121    "fsgnjn.s",
10122    "fsgnjx.d",
10123    "fsgnjx.h",
10124    "fsgnjx.q",
10125    "fsgnjx.s",
10126    "fsh",
10127    "fsq",
10128    "fsqrt.d",
10129    "fsqrt.h",
10130    "fsqrt.q",
10131    "fsqrt.s",
10132    "fsrm",
10133    "fsrmi",
10134    "fsub.d",
10135    "fsub.h",
10136    "fsub.q",
10137    "fsub.s",
10138    "fsw",
10139    "hfence.gvma",
10140    "hfence.vvma",
10141    "hinval.gvma",
10142    "hinval.vvma",
10143    "hlv.b",
10144    "hlv.bu",
10145    "hlv.d",
10146    "hlv.h",
10147    "hlv.hu",
10148    "hlv.w",
10149    "hlv.wu",
10150    "hlvx.hu",
10151    "hlvx.wu",
10152    "hsv.b",
10153    "hsv.d",
10154    "hsv.h",
10155    "hsv.w",
10156    "j",
10157    "jal",
10158    "jal.pseudo",
10159    "jalr",
10160    "jalr.pseudo",
10161    "jr",
10162    "lb",
10163    "lbu",
10164    "ld",
10165    "lh",
10166    "lhu",
10167    "lr.d",
10168    "lr.w",
10169    "lui",
10170    "lw",
10171    "lwu",
10172    "max",
10173    "maxu",
10174    "min",
10175    "minu",
10176    "mop.r.0",
10177    "mop.r.1",
10178    "mop.r.10",
10179    "mop.r.11",
10180    "mop.r.12",
10181    "mop.r.13",
10182    "mop.r.14",
10183    "mop.r.15",
10184    "mop.r.16",
10185    "mop.r.17",
10186    "mop.r.18",
10187    "mop.r.19",
10188    "mop.r.2",
10189    "mop.r.20",
10190    "mop.r.21",
10191    "mop.r.22",
10192    "mop.r.23",
10193    "mop.r.24",
10194    "mop.r.25",
10195    "mop.r.26",
10196    "mop.r.27",
10197    "mop.r.28",
10198    "mop.r.29",
10199    "mop.r.3",
10200    "mop.r.30",
10201    "mop.r.31",
10202    "mop.r.4",
10203    "mop.r.5",
10204    "mop.r.6",
10205    "mop.r.7",
10206    "mop.r.8",
10207    "mop.r.9",
10208    "mop.r.n",
10209    "mop.rr.0",
10210    "mop.rr.1",
10211    "mop.rr.2",
10212    "mop.rr.3",
10213    "mop.rr.4",
10214    "mop.rr.5",
10215    "mop.rr.6",
10216    "mop.rr.7",
10217    "mop.rr.n",
10218    "mret",
10219    "mul",
10220    "mulh",
10221    "mulhsu",
10222    "mulhu",
10223    "mulw",
10224    "mv",
10225    "neg",
10226    "nop",
10227    "ntl.all",
10228    "ntl.p1",
10229    "ntl.pall",
10230    "ntl.s1",
10231    "or",
10232    "orc.b",
10233    "ori",
10234    "orn",
10235    "pack",
10236    "packh",
10237    "packw",
10238    "pause",
10239    "prefetch.i",
10240    "prefetch.r",
10241    "prefetch.w",
10242    "rdcycle",
10243    "rdcycleh",
10244    "rdinstret",
10245    "rdinstreth",
10246    "rdtime",
10247    "rdtimeh",
10248    "rem",
10249    "remu",
10250    "remuw",
10251    "remw",
10252    "ret",
10253    "rev8",
10254    "rev8.rv32",
10255    "rol",
10256    "rolw",
10257    "ror",
10258    "rori",
10259    "rori.rv32",
10260    "roriw",
10261    "rorw",
10262    "sb",
10263    "sbreak",
10264    "sc.d",
10265    "sc.w",
10266    "scall",
10267    "sd",
10268    "seqz",
10269    "sext.b",
10270    "sext.h",
10271    "sext.w",
10272    "sfence.inval.ir",
10273    "sfence.vma",
10274    "sfence.w.inval",
10275    "sgtz",
10276    "sh",
10277    "sh1add",
10278    "sh1add.uw",
10279    "sh2add",
10280    "sh2add.uw",
10281    "sh3add",
10282    "sh3add.uw",
10283    "sha256sig0",
10284    "sha256sig1",
10285    "sha256sum0",
10286    "sha256sum1",
10287    "sha512sig0",
10288    "sha512sig0h",
10289    "sha512sig0l",
10290    "sha512sig1",
10291    "sha512sig1h",
10292    "sha512sig1l",
10293    "sha512sum0",
10294    "sha512sum0r",
10295    "sha512sum1",
10296    "sha512sum1r",
10297    "sinval.vma",
10298    "sll",
10299    "slli",
10300    "slli.rv32",
10301    "slli.uw",
10302    "slliw",
10303    "sllw",
10304    "slt",
10305    "slti",
10306    "sltiu",
10307    "sltu",
10308    "sltz",
10309    "sm3p0",
10310    "sm3p1",
10311    "sm4ed",
10312    "sm4ks",
10313    "snez",
10314    "sra",
10315    "srai",
10316    "srai.rv32",
10317    "sraiw",
10318    "sraw",
10319    "sret",
10320    "srl",
10321    "srli",
10322    "srli.rv32",
10323    "srliw",
10324    "srlw",
10325    "sub",
10326    "subw",
10327    "sw",
10328    "unzip",
10329    "vaadd.vv",
10330    "vaadd.vx",
10331    "vaaddu.vv",
10332    "vaaddu.vx",
10333    "vadc.vim",
10334    "vadc.vvm",
10335    "vadc.vxm",
10336    "vadd.vi",
10337    "vadd.vv",
10338    "vadd.vx",
10339    "vaesdf.vs",
10340    "vaesdf.vv",
10341    "vaesdm.vs",
10342    "vaesdm.vv",
10343    "vaesef.vs",
10344    "vaesef.vv",
10345    "vaesem.vs",
10346    "vaesem.vv",
10347    "vaeskf1.vi",
10348    "vaeskf2.vi",
10349    "vaesz.vs",
10350    "vand.vi",
10351    "vand.vv",
10352    "vand.vx",
10353    "vandn.vv",
10354    "vandn.vx",
10355    "vasub.vv",
10356    "vasub.vx",
10357    "vasubu.vv",
10358    "vasubu.vx",
10359    "vbrev8.v",
10360    "vbrev.v",
10361    "vclmul.vv",
10362    "vclmul.vx",
10363    "vclmulh.vv",
10364    "vclmulh.vx",
10365    "vclz.v",
10366    "vcompress.vm",
10367    "vcpop.m",
10368    "vcpop.v",
10369    "vctz.v",
10370    "vdiv.vv",
10371    "vdiv.vx",
10372    "vdivu.vv",
10373    "vdivu.vx",
10374    "vfadd.vf",
10375    "vfadd.vv",
10376    "vfclass.v",
10377    "vfcvt.f.x.v",
10378    "vfcvt.f.xu.v",
10379    "vfcvt.rtz.x.f.v",
10380    "vfcvt.rtz.xu.f.v",
10381    "vfcvt.x.f.v",
10382    "vfcvt.xu.f.v",
10383    "vfdiv.vf",
10384    "vfdiv.vv",
10385    "vfirst.m",
10386    "vfmacc.vf",
10387    "vfmacc.vv",
10388    "vfmadd.vf",
10389    "vfmadd.vv",
10390    "vfmax.vf",
10391    "vfmax.vv",
10392    "vfmerge.vfm",
10393    "vfmin.vf",
10394    "vfmin.vv",
10395    "vfmsac.vf",
10396    "vfmsac.vv",
10397    "vfmsub.vf",
10398    "vfmsub.vv",
10399    "vfmul.vf",
10400    "vfmul.vv",
10401    "vfmv.f.s",
10402    "vfmv.s.f",
10403    "vfmv.v.f",
10404    "vfncvt.f.f.w",
10405    "vfncvt.f.x.w",
10406    "vfncvt.f.xu.w",
10407    "vfncvt.rod.f.f.w",
10408    "vfncvt.rtz.x.f.w",
10409    "vfncvt.rtz.xu.f.w",
10410    "vfncvt.x.f.w",
10411    "vfncvt.xu.f.w",
10412    "vfnmacc.vf",
10413    "vfnmacc.vv",
10414    "vfnmadd.vf",
10415    "vfnmadd.vv",
10416    "vfnmsac.vf",
10417    "vfnmsac.vv",
10418    "vfnmsub.vf",
10419    "vfnmsub.vv",
10420    "vfrdiv.vf",
10421    "vfrec7.v",
10422    "vfredmax.vs",
10423    "vfredmin.vs",
10424    "vfredosum.vs",
10425    "vfredsum.vs",
10426    "vfredusum.vs",
10427    "vfrsqrt7.v",
10428    "vfrsub.vf",
10429    "vfsgnj.vf",
10430    "vfsgnj.vv",
10431    "vfsgnjn.vf",
10432    "vfsgnjn.vv",
10433    "vfsgnjx.vf",
10434    "vfsgnjx.vv",
10435    "vfslide1down.vf",
10436    "vfslide1up.vf",
10437    "vfsqrt.v",
10438    "vfsub.vf",
10439    "vfsub.vv",
10440    "vfwadd.vf",
10441    "vfwadd.vv",
10442    "vfwadd.wf",
10443    "vfwadd.wv",
10444    "vfwcvt.f.f.v",
10445    "vfwcvt.f.x.v",
10446    "vfwcvt.f.xu.v",
10447    "vfwcvt.rtz.x.f.v",
10448    "vfwcvt.rtz.xu.f.v",
10449    "vfwcvt.x.f.v",
10450    "vfwcvt.xu.f.v",
10451    "vfwmacc.vf",
10452    "vfwmacc.vv",
10453    "vfwmsac.vf",
10454    "vfwmsac.vv",
10455    "vfwmul.vf",
10456    "vfwmul.vv",
10457    "vfwnmacc.vf",
10458    "vfwnmacc.vv",
10459    "vfwnmsac.vf",
10460    "vfwnmsac.vv",
10461    "vfwredosum.vs",
10462    "vfwredsum.vs",
10463    "vfwredusum.vs",
10464    "vfwsub.vf",
10465    "vfwsub.vv",
10466    "vfwsub.wf",
10467    "vfwsub.wv",
10468    "vghsh.vv",
10469    "vgmul.vv",
10470    "vid.v",
10471    "viota.m",
10472    "vl1r.v",
10473    "vl1re16.v",
10474    "vl1re32.v",
10475    "vl1re64.v",
10476    "vl1re8.v",
10477    "vl2r.v",
10478    "vl2re16.v",
10479    "vl2re32.v",
10480    "vl2re64.v",
10481    "vl2re8.v",
10482    "vl4r.v",
10483    "vl4re16.v",
10484    "vl4re32.v",
10485    "vl4re64.v",
10486    "vl4re8.v",
10487    "vl8r.v",
10488    "vl8re16.v",
10489    "vl8re32.v",
10490    "vl8re64.v",
10491    "vl8re8.v",
10492    "vle16.v",
10493    "vle16ff.v",
10494    "vle1.v",
10495    "vle32.v",
10496    "vle32ff.v",
10497    "vle64.v",
10498    "vle64ff.v",
10499    "vle8.v",
10500    "vle8ff.v",
10501    "vlm.v",
10502    "vloxei16.v",
10503    "vloxei32.v",
10504    "vloxei64.v",
10505    "vloxei8.v",
10506    "vlse16.v",
10507    "vlse32.v",
10508    "vlse64.v",
10509    "vlse8.v",
10510    "vluxei16.v",
10511    "vluxei32.v",
10512    "vluxei64.v",
10513    "vluxei8.v",
10514    "vmacc.vv",
10515    "vmacc.vx",
10516    "vmadc.vi",
10517    "vmadc.vim",
10518    "vmadc.vv",
10519    "vmadc.vvm",
10520    "vmadc.vx",
10521    "vmadc.vxm",
10522    "vmadd.vv",
10523    "vmadd.vx",
10524    "vmand.mm",
10525    "vmandn.mm",
10526    "vmandnot.mm",
10527    "vmax.vv",
10528    "vmax.vx",
10529    "vmaxu.vv",
10530    "vmaxu.vx",
10531    "vmerge.vim",
10532    "vmerge.vvm",
10533    "vmerge.vxm",
10534    "vmfeq.vf",
10535    "vmfeq.vv",
10536    "vmfge.vf",
10537    "vmfgt.vf",
10538    "vmfle.vf",
10539    "vmfle.vv",
10540    "vmflt.vf",
10541    "vmflt.vv",
10542    "vmfne.vf",
10543    "vmfne.vv",
10544    "vmin.vv",
10545    "vmin.vx",
10546    "vminu.vv",
10547    "vminu.vx",
10548    "vmnand.mm",
10549    "vmnor.mm",
10550    "vmor.mm",
10551    "vmorn.mm",
10552    "vmornot.mm",
10553    "vmsbc.vv",
10554    "vmsbc.vvm",
10555    "vmsbc.vx",
10556    "vmsbc.vxm",
10557    "vmsbf.m",
10558    "vmseq.vi",
10559    "vmseq.vv",
10560    "vmseq.vx",
10561    "vmsgt.vi",
10562    "vmsgt.vx",
10563    "vmsgtu.vi",
10564    "vmsgtu.vx",
10565    "vmsif.m",
10566    "vmsle.vi",
10567    "vmsle.vv",
10568    "vmsle.vx",
10569    "vmsleu.vi",
10570    "vmsleu.vv",
10571    "vmsleu.vx",
10572    "vmslt.vv",
10573    "vmslt.vx",
10574    "vmsltu.vv",
10575    "vmsltu.vx",
10576    "vmsne.vi",
10577    "vmsne.vv",
10578    "vmsne.vx",
10579    "vmsof.m",
10580    "vmul.vv",
10581    "vmul.vx",
10582    "vmulh.vv",
10583    "vmulh.vx",
10584    "vmulhsu.vv",
10585    "vmulhsu.vx",
10586    "vmulhu.vv",
10587    "vmulhu.vx",
10588    "vmv1r.v",
10589    "vmv2r.v",
10590    "vmv4r.v",
10591    "vmv8r.v",
10592    "vmv.s.x",
10593    "vmv.v.i",
10594    "vmv.v.v",
10595    "vmv.v.x",
10596    "vmv.x.s",
10597    "vmxnor.mm",
10598    "vmxor.mm",
10599    "vnclip.wi",
10600    "vnclip.wv",
10601    "vnclip.wx",
10602    "vnclipu.wi",
10603    "vnclipu.wv",
10604    "vnclipu.wx",
10605    "vnmsac.vv",
10606    "vnmsac.vx",
10607    "vnmsub.vv",
10608    "vnmsub.vx",
10609    "vnsra.wi",
10610    "vnsra.wv",
10611    "vnsra.wx",
10612    "vnsrl.wi",
10613    "vnsrl.wv",
10614    "vnsrl.wx",
10615    "vor.vi",
10616    "vor.vv",
10617    "vor.vx",
10618    "vpopc.m",
10619    "vredand.vs",
10620    "vredmax.vs",
10621    "vredmaxu.vs",
10622    "vredmin.vs",
10623    "vredminu.vs",
10624    "vredor.vs",
10625    "vredsum.vs",
10626    "vredxor.vs",
10627    "vrem.vv",
10628    "vrem.vx",
10629    "vremu.vv",
10630    "vremu.vx",
10631    "vrev8.v",
10632    "vrgather.vi",
10633    "vrgather.vv",
10634    "vrgather.vx",
10635    "vrgatherei16.vv",
10636    "vrol.vv",
10637    "vrol.vx",
10638    "vror.vi",
10639    "vror.vv",
10640    "vror.vx",
10641    "vrsub.vi",
10642    "vrsub.vx",
10643    "vs1r.v",
10644    "vs2r.v",
10645    "vs4r.v",
10646    "vs8r.v",
10647    "vsadd.vi",
10648    "vsadd.vv",
10649    "vsadd.vx",
10650    "vsaddu.vi",
10651    "vsaddu.vv",
10652    "vsaddu.vx",
10653    "vsbc.vvm",
10654    "vsbc.vxm",
10655    "vse16.v",
10656    "vse1.v",
10657    "vse32.v",
10658    "vse64.v",
10659    "vse8.v",
10660    "vsetivli",
10661    "vsetvl",
10662    "vsetvli",
10663    "vsext.vf2",
10664    "vsext.vf4",
10665    "vsext.vf8",
10666    "vsha2ch.vv",
10667    "vsha2cl.vv",
10668    "vsha2ms.vv",
10669    "vslide1down.vx",
10670    "vslide1up.vx",
10671    "vslidedown.vi",
10672    "vslidedown.vx",
10673    "vslideup.vi",
10674    "vslideup.vx",
10675    "vsll.vi",
10676    "vsll.vv",
10677    "vsll.vx",
10678    "vsm3c.vi",
10679    "vsm3me.vv",
10680    "vsm4k.vi",
10681    "vsm4r.vs",
10682    "vsm4r.vv",
10683    "vsm.v",
10684    "vsmul.vv",
10685    "vsmul.vx",
10686    "vsoxei16.v",
10687    "vsoxei32.v",
10688    "vsoxei64.v",
10689    "vsoxei8.v",
10690    "vsra.vi",
10691    "vsra.vv",
10692    "vsra.vx",
10693    "vsrl.vi",
10694    "vsrl.vv",
10695    "vsrl.vx",
10696    "vsse16.v",
10697    "vsse32.v",
10698    "vsse64.v",
10699    "vsse8.v",
10700    "vssra.vi",
10701    "vssra.vv",
10702    "vssra.vx",
10703    "vssrl.vi",
10704    "vssrl.vv",
10705    "vssrl.vx",
10706    "vssub.vv",
10707    "vssub.vx",
10708    "vssubu.vv",
10709    "vssubu.vx",
10710    "vsub.vv",
10711    "vsub.vx",
10712    "vsuxei16.v",
10713    "vsuxei32.v",
10714    "vsuxei64.v",
10715    "vsuxei8.v",
10716    "vwadd.vv",
10717    "vwadd.vx",
10718    "vwadd.wv",
10719    "vwadd.wx",
10720    "vwaddu.vv",
10721    "vwaddu.vx",
10722    "vwaddu.wv",
10723    "vwaddu.wx",
10724    "vwmacc.vv",
10725    "vwmacc.vx",
10726    "vwmaccsu.vv",
10727    "vwmaccsu.vx",
10728    "vwmaccu.vv",
10729    "vwmaccu.vx",
10730    "vwmaccus.vx",
10731    "vwmul.vv",
10732    "vwmul.vx",
10733    "vwmulsu.vv",
10734    "vwmulsu.vx",
10735    "vwmulu.vv",
10736    "vwmulu.vx",
10737    "vwredsum.vs",
10738    "vwredsumu.vs",
10739    "vwsll.vi",
10740    "vwsll.vv",
10741    "vwsll.vx",
10742    "vwsub.vv",
10743    "vwsub.vx",
10744    "vwsub.wv",
10745    "vwsub.wx",
10746    "vwsubu.vv",
10747    "vwsubu.vx",
10748    "vwsubu.wv",
10749    "vwsubu.wx",
10750    "vxor.vi",
10751    "vxor.vv",
10752    "vxor.vx",
10753    "vzext.vf2",
10754    "vzext.vf4",
10755    "vzext.vf8",
10756    "wfi",
10757    "wrs.nto",
10758    "wrs.sto",
10759    "xnor",
10760    "xor",
10761    "xori",
10762    "xperm4",
10763    "xperm8",
10764    "zext.b",
10765    "zext.h",
10766    "zext.h.rv32",
10767    "zext.w",
10768    "zip",
10769    "<invalid>",
10770];
10771
10772#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
10773pub struct Inst {
10774    pub opcode: u32,
10775    pub funct3: u32,
10776    pub rs1: u32,
10777    pub rs2: u32,
10778    pub csr: i64,
10779    pub funct7: u32,
10780}
10781
10782impl Inst {
10783    pub const fn encode(&self) -> InstructionValue {
10784        InstructionValue::new(
10785            0 | (self.funct7 << 25)
10786                | (self.rs2 << 20)
10787                | (self.rs1 << 15)
10788                | (self.funct3 << 12)
10789                | self.opcode,
10790        )
10791    }
10792
10793    pub const fn new(op: Opcode) -> Self {
10794        match op {
10795            Opcode::Invalid => unreachable!(),
10796            Opcode::ADD => Inst {
10797                opcode: 0x33,
10798                funct3: 0x0,
10799                rs1: 0x0,
10800                rs2: 0x0,
10801                csr: 0x0,
10802                funct7: 0x0,
10803            },
10804            Opcode::ADDUW => Inst {
10805                opcode: 0x3b,
10806                funct3: 0x0,
10807                rs1: 0x0,
10808                rs2: 0x0,
10809                csr: 0x80,
10810                funct7: 0x4,
10811            },
10812            Opcode::ADDI => Inst {
10813                opcode: 0x13,
10814                funct3: 0x0,
10815                rs1: 0x0,
10816                rs2: 0x0,
10817                csr: 0x0,
10818                funct7: 0x0,
10819            },
10820            Opcode::ADDIW => Inst {
10821                opcode: 0x1b,
10822                funct3: 0x0,
10823                rs1: 0x0,
10824                rs2: 0x0,
10825                csr: 0x0,
10826                funct7: 0x0,
10827            },
10828            Opcode::ADDW => Inst {
10829                opcode: 0x3b,
10830                funct3: 0x0,
10831                rs1: 0x0,
10832                rs2: 0x0,
10833                csr: 0x0,
10834                funct7: 0x0,
10835            },
10836            Opcode::AES32DSI => Inst {
10837                opcode: 0x33,
10838                funct3: 0x0,
10839                rs1: 0x0,
10840                rs2: 0x0,
10841                csr: 0x2a0,
10842                funct7: 0x15,
10843            },
10844            Opcode::AES32DSMI => Inst {
10845                opcode: 0x33,
10846                funct3: 0x0,
10847                rs1: 0x0,
10848                rs2: 0x0,
10849                csr: 0x2e0,
10850                funct7: 0x17,
10851            },
10852            Opcode::AES32ESI => Inst {
10853                opcode: 0x33,
10854                funct3: 0x0,
10855                rs1: 0x0,
10856                rs2: 0x0,
10857                csr: 0x220,
10858                funct7: 0x11,
10859            },
10860            Opcode::AES32ESMI => Inst {
10861                opcode: 0x33,
10862                funct3: 0x0,
10863                rs1: 0x0,
10864                rs2: 0x0,
10865                csr: 0x260,
10866                funct7: 0x13,
10867            },
10868            Opcode::AES64DS => Inst {
10869                opcode: 0x33,
10870                funct3: 0x0,
10871                rs1: 0x0,
10872                rs2: 0x0,
10873                csr: 0x3a0,
10874                funct7: 0x1d,
10875            },
10876            Opcode::AES64DSM => Inst {
10877                opcode: 0x33,
10878                funct3: 0x0,
10879                rs1: 0x0,
10880                rs2: 0x0,
10881                csr: 0x3e0,
10882                funct7: 0x1f,
10883            },
10884            Opcode::AES64ES => Inst {
10885                opcode: 0x33,
10886                funct3: 0x0,
10887                rs1: 0x0,
10888                rs2: 0x0,
10889                csr: 0x320,
10890                funct7: 0x19,
10891            },
10892            Opcode::AES64ESM => Inst {
10893                opcode: 0x33,
10894                funct3: 0x0,
10895                rs1: 0x0,
10896                rs2: 0x0,
10897                csr: 0x360,
10898                funct7: 0x1b,
10899            },
10900            Opcode::AES64IM => Inst {
10901                opcode: 0x13,
10902                funct3: 0x1,
10903                rs1: 0x0,
10904                rs2: 0x0,
10905                csr: 0x300,
10906                funct7: 0x18,
10907            },
10908            Opcode::AES64KS1I => Inst {
10909                opcode: 0x13,
10910                funct3: 0x1,
10911                rs1: 0x0,
10912                rs2: 0x10,
10913                csr: 0x310,
10914                funct7: 0x18,
10915            },
10916            Opcode::AES64KS2 => Inst {
10917                opcode: 0x33,
10918                funct3: 0x0,
10919                rs1: 0x0,
10920                rs2: 0x0,
10921                csr: 0x7e0,
10922                funct7: 0x3f,
10923            },
10924            Opcode::AMOADDB => Inst {
10925                opcode: 0x2f,
10926                funct3: 0x0,
10927                rs1: 0x0,
10928                rs2: 0x0,
10929                csr: 0x0,
10930                funct7: 0x0,
10931            },
10932            Opcode::AMOADDD => Inst {
10933                opcode: 0x2f,
10934                funct3: 0x3,
10935                rs1: 0x0,
10936                rs2: 0x0,
10937                csr: 0x0,
10938                funct7: 0x0,
10939            },
10940            Opcode::AMOADDH => Inst {
10941                opcode: 0x2f,
10942                funct3: 0x1,
10943                rs1: 0x0,
10944                rs2: 0x0,
10945                csr: 0x0,
10946                funct7: 0x0,
10947            },
10948            Opcode::AMOADDW => Inst {
10949                opcode: 0x2f,
10950                funct3: 0x2,
10951                rs1: 0x0,
10952                rs2: 0x0,
10953                csr: 0x0,
10954                funct7: 0x0,
10955            },
10956            Opcode::AMOANDB => Inst {
10957                opcode: 0x2f,
10958                funct3: 0x0,
10959                rs1: 0x0,
10960                rs2: 0x0,
10961                csr: 0x600,
10962                funct7: 0x30,
10963            },
10964            Opcode::AMOANDD => Inst {
10965                opcode: 0x2f,
10966                funct3: 0x3,
10967                rs1: 0x0,
10968                rs2: 0x0,
10969                csr: 0x600,
10970                funct7: 0x30,
10971            },
10972            Opcode::AMOANDH => Inst {
10973                opcode: 0x2f,
10974                funct3: 0x1,
10975                rs1: 0x0,
10976                rs2: 0x0,
10977                csr: 0x600,
10978                funct7: 0x30,
10979            },
10980            Opcode::AMOANDW => Inst {
10981                opcode: 0x2f,
10982                funct3: 0x2,
10983                rs1: 0x0,
10984                rs2: 0x0,
10985                csr: 0x600,
10986                funct7: 0x30,
10987            },
10988            Opcode::AMOCASB => Inst {
10989                opcode: 0x2f,
10990                funct3: 0x0,
10991                rs1: 0x0,
10992                rs2: 0x0,
10993                csr: 0x280,
10994                funct7: 0x14,
10995            },
10996            Opcode::AMOCASD => Inst {
10997                opcode: 0x2f,
10998                funct3: 0x3,
10999                rs1: 0x0,
11000                rs2: 0x0,
11001                csr: 0x280,
11002                funct7: 0x14,
11003            },
11004            Opcode::AMOCASH => Inst {
11005                opcode: 0x2f,
11006                funct3: 0x1,
11007                rs1: 0x0,
11008                rs2: 0x0,
11009                csr: 0x280,
11010                funct7: 0x14,
11011            },
11012            Opcode::AMOCASQ => Inst {
11013                opcode: 0x2f,
11014                funct3: 0x4,
11015                rs1: 0x0,
11016                rs2: 0x0,
11017                csr: 0x280,
11018                funct7: 0x14,
11019            },
11020            Opcode::AMOCASW => Inst {
11021                opcode: 0x2f,
11022                funct3: 0x2,
11023                rs1: 0x0,
11024                rs2: 0x0,
11025                csr: 0x280,
11026                funct7: 0x14,
11027            },
11028            Opcode::AMOMAXB => Inst {
11029                opcode: 0x2f,
11030                funct3: 0x0,
11031                rs1: 0x0,
11032                rs2: 0x0,
11033                csr: 0xa00,
11034                funct7: 0x50,
11035            },
11036            Opcode::AMOMAXD => Inst {
11037                opcode: 0x2f,
11038                funct3: 0x3,
11039                rs1: 0x0,
11040                rs2: 0x0,
11041                csr: 0xa00,
11042                funct7: 0x50,
11043            },
11044            Opcode::AMOMAXH => Inst {
11045                opcode: 0x2f,
11046                funct3: 0x1,
11047                rs1: 0x0,
11048                rs2: 0x0,
11049                csr: 0xa00,
11050                funct7: 0x50,
11051            },
11052            Opcode::AMOMAXW => Inst {
11053                opcode: 0x2f,
11054                funct3: 0x2,
11055                rs1: 0x0,
11056                rs2: 0x0,
11057                csr: 0xa00,
11058                funct7: 0x50,
11059            },
11060            Opcode::AMOMAXUB => Inst {
11061                opcode: 0x2f,
11062                funct3: 0x0,
11063                rs1: 0x0,
11064                rs2: 0x0,
11065                csr: 0xe00,
11066                funct7: 0x70,
11067            },
11068            Opcode::AMOMAXUD => Inst {
11069                opcode: 0x2f,
11070                funct3: 0x3,
11071                rs1: 0x0,
11072                rs2: 0x0,
11073                csr: 0xe00,
11074                funct7: 0x70,
11075            },
11076            Opcode::AMOMAXUH => Inst {
11077                opcode: 0x2f,
11078                funct3: 0x1,
11079                rs1: 0x0,
11080                rs2: 0x0,
11081                csr: 0xe00,
11082                funct7: 0x70,
11083            },
11084            Opcode::AMOMAXUW => Inst {
11085                opcode: 0x2f,
11086                funct3: 0x2,
11087                rs1: 0x0,
11088                rs2: 0x0,
11089                csr: 0xe00,
11090                funct7: 0x70,
11091            },
11092            Opcode::AMOMINB => Inst {
11093                opcode: 0x2f,
11094                funct3: 0x0,
11095                rs1: 0x0,
11096                rs2: 0x0,
11097                csr: 0x800,
11098                funct7: 0x40,
11099            },
11100            Opcode::AMOMIND => Inst {
11101                opcode: 0x2f,
11102                funct3: 0x3,
11103                rs1: 0x0,
11104                rs2: 0x0,
11105                csr: 0x800,
11106                funct7: 0x40,
11107            },
11108            Opcode::AMOMINH => Inst {
11109                opcode: 0x2f,
11110                funct3: 0x1,
11111                rs1: 0x0,
11112                rs2: 0x0,
11113                csr: 0x800,
11114                funct7: 0x40,
11115            },
11116            Opcode::AMOMINW => Inst {
11117                opcode: 0x2f,
11118                funct3: 0x2,
11119                rs1: 0x0,
11120                rs2: 0x0,
11121                csr: 0x800,
11122                funct7: 0x40,
11123            },
11124            Opcode::AMOMINUB => Inst {
11125                opcode: 0x2f,
11126                funct3: 0x0,
11127                rs1: 0x0,
11128                rs2: 0x0,
11129                csr: 0xc00,
11130                funct7: 0x60,
11131            },
11132            Opcode::AMOMINUD => Inst {
11133                opcode: 0x2f,
11134                funct3: 0x3,
11135                rs1: 0x0,
11136                rs2: 0x0,
11137                csr: 0xc00,
11138                funct7: 0x60,
11139            },
11140            Opcode::AMOMINUH => Inst {
11141                opcode: 0x2f,
11142                funct3: 0x1,
11143                rs1: 0x0,
11144                rs2: 0x0,
11145                csr: 0xc00,
11146                funct7: 0x60,
11147            },
11148            Opcode::AMOMINUW => Inst {
11149                opcode: 0x2f,
11150                funct3: 0x2,
11151                rs1: 0x0,
11152                rs2: 0x0,
11153                csr: 0xc00,
11154                funct7: 0x60,
11155            },
11156            Opcode::AMOORB => Inst {
11157                opcode: 0x2f,
11158                funct3: 0x0,
11159                rs1: 0x0,
11160                rs2: 0x0,
11161                csr: 0x400,
11162                funct7: 0x20,
11163            },
11164            Opcode::AMOORD => Inst {
11165                opcode: 0x2f,
11166                funct3: 0x3,
11167                rs1: 0x0,
11168                rs2: 0x0,
11169                csr: 0x400,
11170                funct7: 0x20,
11171            },
11172            Opcode::AMOORH => Inst {
11173                opcode: 0x2f,
11174                funct3: 0x1,
11175                rs1: 0x0,
11176                rs2: 0x0,
11177                csr: 0x400,
11178                funct7: 0x20,
11179            },
11180            Opcode::AMOORW => Inst {
11181                opcode: 0x2f,
11182                funct3: 0x2,
11183                rs1: 0x0,
11184                rs2: 0x0,
11185                csr: 0x400,
11186                funct7: 0x20,
11187            },
11188            Opcode::AMOSWAPB => Inst {
11189                opcode: 0x2f,
11190                funct3: 0x0,
11191                rs1: 0x0,
11192                rs2: 0x0,
11193                csr: 0x80,
11194                funct7: 0x4,
11195            },
11196            Opcode::AMOSWAPD => Inst {
11197                opcode: 0x2f,
11198                funct3: 0x3,
11199                rs1: 0x0,
11200                rs2: 0x0,
11201                csr: 0x80,
11202                funct7: 0x4,
11203            },
11204            Opcode::AMOSWAPH => Inst {
11205                opcode: 0x2f,
11206                funct3: 0x1,
11207                rs1: 0x0,
11208                rs2: 0x0,
11209                csr: 0x80,
11210                funct7: 0x4,
11211            },
11212            Opcode::AMOSWAPW => Inst {
11213                opcode: 0x2f,
11214                funct3: 0x2,
11215                rs1: 0x0,
11216                rs2: 0x0,
11217                csr: 0x80,
11218                funct7: 0x4,
11219            },
11220            Opcode::AMOXORB => Inst {
11221                opcode: 0x2f,
11222                funct3: 0x0,
11223                rs1: 0x0,
11224                rs2: 0x0,
11225                csr: 0x200,
11226                funct7: 0x10,
11227            },
11228            Opcode::AMOXORD => Inst {
11229                opcode: 0x2f,
11230                funct3: 0x3,
11231                rs1: 0x0,
11232                rs2: 0x0,
11233                csr: 0x200,
11234                funct7: 0x10,
11235            },
11236            Opcode::AMOXORH => Inst {
11237                opcode: 0x2f,
11238                funct3: 0x1,
11239                rs1: 0x0,
11240                rs2: 0x0,
11241                csr: 0x200,
11242                funct7: 0x10,
11243            },
11244            Opcode::AMOXORW => Inst {
11245                opcode: 0x2f,
11246                funct3: 0x2,
11247                rs1: 0x0,
11248                rs2: 0x0,
11249                csr: 0x200,
11250                funct7: 0x10,
11251            },
11252            Opcode::AND => Inst {
11253                opcode: 0x33,
11254                funct3: 0x7,
11255                rs1: 0x0,
11256                rs2: 0x0,
11257                csr: 0x0,
11258                funct7: 0x0,
11259            },
11260            Opcode::ANDI => Inst {
11261                opcode: 0x13,
11262                funct3: 0x7,
11263                rs1: 0x0,
11264                rs2: 0x0,
11265                csr: 0x0,
11266                funct7: 0x0,
11267            },
11268            Opcode::ANDN => Inst {
11269                opcode: 0x33,
11270                funct3: 0x7,
11271                rs1: 0x0,
11272                rs2: 0x0,
11273                csr: 0x400,
11274                funct7: 0x20,
11275            },
11276            Opcode::AUIPC => Inst {
11277                opcode: 0x17,
11278                funct3: 0x0,
11279                rs1: 0x0,
11280                rs2: 0x0,
11281                csr: 0x0,
11282                funct7: 0x0,
11283            },
11284            Opcode::BCLR => Inst {
11285                opcode: 0x33,
11286                funct3: 0x1,
11287                rs1: 0x0,
11288                rs2: 0x0,
11289                csr: 0x480,
11290                funct7: 0x24,
11291            },
11292            Opcode::BCLRI => Inst {
11293                opcode: 0x13,
11294                funct3: 0x1,
11295                rs1: 0x0,
11296                rs2: 0x0,
11297                csr: 0x480,
11298                funct7: 0x24,
11299            },
11300            Opcode::BCLRIRV32 => Inst {
11301                opcode: 0x13,
11302                funct3: 0x1,
11303                rs1: 0x0,
11304                rs2: 0x0,
11305                csr: 0x480,
11306                funct7: 0x24,
11307            },
11308            Opcode::BEQ => Inst {
11309                opcode: 0x63,
11310                funct3: 0x0,
11311                rs1: 0x0,
11312                rs2: 0x0,
11313                csr: 0x0,
11314                funct7: 0x0,
11315            },
11316            Opcode::BEQZ => Inst {
11317                opcode: 0x63,
11318                funct3: 0x0,
11319                rs1: 0x0,
11320                rs2: 0x0,
11321                csr: 0x0,
11322                funct7: 0x0,
11323            },
11324            Opcode::BEXT => Inst {
11325                opcode: 0x33,
11326                funct3: 0x5,
11327                rs1: 0x0,
11328                rs2: 0x0,
11329                csr: 0x480,
11330                funct7: 0x24,
11331            },
11332            Opcode::BEXTI => Inst {
11333                opcode: 0x13,
11334                funct3: 0x5,
11335                rs1: 0x0,
11336                rs2: 0x0,
11337                csr: 0x480,
11338                funct7: 0x24,
11339            },
11340            Opcode::BEXTIRV32 => Inst {
11341                opcode: 0x13,
11342                funct3: 0x5,
11343                rs1: 0x0,
11344                rs2: 0x0,
11345                csr: 0x480,
11346                funct7: 0x24,
11347            },
11348            Opcode::BGE => Inst {
11349                opcode: 0x63,
11350                funct3: 0x5,
11351                rs1: 0x0,
11352                rs2: 0x0,
11353                csr: 0x0,
11354                funct7: 0x0,
11355            },
11356            Opcode::BGEU => Inst {
11357                opcode: 0x63,
11358                funct3: 0x7,
11359                rs1: 0x0,
11360                rs2: 0x0,
11361                csr: 0x0,
11362                funct7: 0x0,
11363            },
11364            Opcode::BGEZ => Inst {
11365                opcode: 0x63,
11366                funct3: 0x5,
11367                rs1: 0x0,
11368                rs2: 0x0,
11369                csr: 0x0,
11370                funct7: 0x0,
11371            },
11372            Opcode::BGT => Inst {
11373                opcode: 0x63,
11374                funct3: 0x4,
11375                rs1: 0x0,
11376                rs2: 0x0,
11377                csr: 0x0,
11378                funct7: 0x0,
11379            },
11380            Opcode::BGTU => Inst {
11381                opcode: 0x63,
11382                funct3: 0x6,
11383                rs1: 0x0,
11384                rs2: 0x0,
11385                csr: 0x0,
11386                funct7: 0x0,
11387            },
11388            Opcode::BGTZ => Inst {
11389                opcode: 0x63,
11390                funct3: 0x4,
11391                rs1: 0x0,
11392                rs2: 0x0,
11393                csr: 0x0,
11394                funct7: 0x0,
11395            },
11396            Opcode::BINV => Inst {
11397                opcode: 0x33,
11398                funct3: 0x1,
11399                rs1: 0x0,
11400                rs2: 0x0,
11401                csr: 0x680,
11402                funct7: 0x34,
11403            },
11404            Opcode::BINVI => Inst {
11405                opcode: 0x13,
11406                funct3: 0x1,
11407                rs1: 0x0,
11408                rs2: 0x0,
11409                csr: 0x680,
11410                funct7: 0x34,
11411            },
11412            Opcode::BINVIRV32 => Inst {
11413                opcode: 0x13,
11414                funct3: 0x1,
11415                rs1: 0x0,
11416                rs2: 0x0,
11417                csr: 0x680,
11418                funct7: 0x34,
11419            },
11420            Opcode::BLE => Inst {
11421                opcode: 0x63,
11422                funct3: 0x5,
11423                rs1: 0x0,
11424                rs2: 0x0,
11425                csr: 0x0,
11426                funct7: 0x0,
11427            },
11428            Opcode::BLEU => Inst {
11429                opcode: 0x63,
11430                funct3: 0x7,
11431                rs1: 0x0,
11432                rs2: 0x0,
11433                csr: 0x0,
11434                funct7: 0x0,
11435            },
11436            Opcode::BLEZ => Inst {
11437                opcode: 0x63,
11438                funct3: 0x5,
11439                rs1: 0x0,
11440                rs2: 0x0,
11441                csr: 0x0,
11442                funct7: 0x0,
11443            },
11444            Opcode::BLT => Inst {
11445                opcode: 0x63,
11446                funct3: 0x4,
11447                rs1: 0x0,
11448                rs2: 0x0,
11449                csr: 0x0,
11450                funct7: 0x0,
11451            },
11452            Opcode::BLTU => Inst {
11453                opcode: 0x63,
11454                funct3: 0x6,
11455                rs1: 0x0,
11456                rs2: 0x0,
11457                csr: 0x0,
11458                funct7: 0x0,
11459            },
11460            Opcode::BLTZ => Inst {
11461                opcode: 0x63,
11462                funct3: 0x4,
11463                rs1: 0x0,
11464                rs2: 0x0,
11465                csr: 0x0,
11466                funct7: 0x0,
11467            },
11468            Opcode::BNE => Inst {
11469                opcode: 0x63,
11470                funct3: 0x1,
11471                rs1: 0x0,
11472                rs2: 0x0,
11473                csr: 0x0,
11474                funct7: 0x0,
11475            },
11476            Opcode::BNEZ => Inst {
11477                opcode: 0x63,
11478                funct3: 0x1,
11479                rs1: 0x0,
11480                rs2: 0x0,
11481                csr: 0x0,
11482                funct7: 0x0,
11483            },
11484            Opcode::BREV8 => Inst {
11485                opcode: 0x13,
11486                funct3: 0x5,
11487                rs1: 0x0,
11488                rs2: 0x7,
11489                csr: 0x687,
11490                funct7: 0x34,
11491            },
11492            Opcode::BSET => Inst {
11493                opcode: 0x33,
11494                funct3: 0x1,
11495                rs1: 0x0,
11496                rs2: 0x0,
11497                csr: 0x280,
11498                funct7: 0x14,
11499            },
11500            Opcode::BSETI => Inst {
11501                opcode: 0x13,
11502                funct3: 0x1,
11503                rs1: 0x0,
11504                rs2: 0x0,
11505                csr: 0x280,
11506                funct7: 0x14,
11507            },
11508            Opcode::BSETIRV32 => Inst {
11509                opcode: 0x13,
11510                funct3: 0x1,
11511                rs1: 0x0,
11512                rs2: 0x0,
11513                csr: 0x280,
11514                funct7: 0x14,
11515            },
11516            Opcode::CADD => Inst {
11517                opcode: 0x2,
11518                funct3: 0x1,
11519                rs1: 0x1,
11520                rs2: 0x0,
11521                csr: 0x0,
11522                funct7: 0x0,
11523            },
11524            Opcode::CADDI => Inst {
11525                opcode: 0x1,
11526                funct3: 0x0,
11527                rs1: 0x0,
11528                rs2: 0x0,
11529                csr: 0x0,
11530                funct7: 0x0,
11531            },
11532            Opcode::CADDI16SP => Inst {
11533                opcode: 0x1,
11534                funct3: 0x6,
11535                rs1: 0x0,
11536                rs2: 0x0,
11537                csr: 0x0,
11538                funct7: 0x0,
11539            },
11540            Opcode::CADDI4SPN => Inst {
11541                opcode: 0x0,
11542                funct3: 0x0,
11543                rs1: 0x0,
11544                rs2: 0x0,
11545                csr: 0x0,
11546                funct7: 0x0,
11547            },
11548            Opcode::CADDIW => Inst {
11549                opcode: 0x1,
11550                funct3: 0x2,
11551                rs1: 0x0,
11552                rs2: 0x0,
11553                csr: 0x0,
11554                funct7: 0x0,
11555            },
11556            Opcode::CADDW => Inst {
11557                opcode: 0x21,
11558                funct3: 0x1,
11559                rs1: 0x1,
11560                rs2: 0x0,
11561                csr: 0x0,
11562                funct7: 0x0,
11563            },
11564            Opcode::CAND => Inst {
11565                opcode: 0x61,
11566                funct3: 0x0,
11567                rs1: 0x1,
11568                rs2: 0x0,
11569                csr: 0x0,
11570                funct7: 0x0,
11571            },
11572            Opcode::CANDI => Inst {
11573                opcode: 0x1,
11574                funct3: 0x0,
11575                rs1: 0x1,
11576                rs2: 0x0,
11577                csr: 0x0,
11578                funct7: 0x0,
11579            },
11580            Opcode::CBEQZ => Inst {
11581                opcode: 0x1,
11582                funct3: 0x4,
11583                rs1: 0x1,
11584                rs2: 0x0,
11585                csr: 0x0,
11586                funct7: 0x0,
11587            },
11588            Opcode::CBNEZ => Inst {
11589                opcode: 0x1,
11590                funct3: 0x6,
11591                rs1: 0x1,
11592                rs2: 0x0,
11593                csr: 0x0,
11594                funct7: 0x0,
11595            },
11596            Opcode::CEBREAK => Inst {
11597                opcode: 0x2,
11598                funct3: 0x1,
11599                rs1: 0x1,
11600                rs2: 0x0,
11601                csr: 0x0,
11602                funct7: 0x0,
11603            },
11604            Opcode::CFLD => Inst {
11605                opcode: 0x0,
11606                funct3: 0x2,
11607                rs1: 0x0,
11608                rs2: 0x0,
11609                csr: 0x0,
11610                funct7: 0x0,
11611            },
11612            Opcode::CFLDSP => Inst {
11613                opcode: 0x2,
11614                funct3: 0x2,
11615                rs1: 0x0,
11616                rs2: 0x0,
11617                csr: 0x0,
11618                funct7: 0x0,
11619            },
11620            Opcode::CFLW => Inst {
11621                opcode: 0x0,
11622                funct3: 0x6,
11623                rs1: 0x0,
11624                rs2: 0x0,
11625                csr: 0x0,
11626                funct7: 0x0,
11627            },
11628            Opcode::CFLWSP => Inst {
11629                opcode: 0x2,
11630                funct3: 0x6,
11631                rs1: 0x0,
11632                rs2: 0x0,
11633                csr: 0x0,
11634                funct7: 0x0,
11635            },
11636            Opcode::CFSD => Inst {
11637                opcode: 0x0,
11638                funct3: 0x2,
11639                rs1: 0x1,
11640                rs2: 0x0,
11641                csr: 0x0,
11642                funct7: 0x0,
11643            },
11644            Opcode::CFSDSP => Inst {
11645                opcode: 0x2,
11646                funct3: 0x2,
11647                rs1: 0x1,
11648                rs2: 0x0,
11649                csr: 0x0,
11650                funct7: 0x0,
11651            },
11652            Opcode::CFSW => Inst {
11653                opcode: 0x0,
11654                funct3: 0x6,
11655                rs1: 0x1,
11656                rs2: 0x0,
11657                csr: 0x0,
11658                funct7: 0x0,
11659            },
11660            Opcode::CFSWSP => Inst {
11661                opcode: 0x2,
11662                funct3: 0x6,
11663                rs1: 0x1,
11664                rs2: 0x0,
11665                csr: 0x0,
11666                funct7: 0x0,
11667            },
11668            Opcode::CJ => Inst {
11669                opcode: 0x1,
11670                funct3: 0x2,
11671                rs1: 0x1,
11672                rs2: 0x0,
11673                csr: 0x0,
11674                funct7: 0x0,
11675            },
11676            Opcode::CJAL => Inst {
11677                opcode: 0x1,
11678                funct3: 0x2,
11679                rs1: 0x0,
11680                rs2: 0x0,
11681                csr: 0x0,
11682                funct7: 0x0,
11683            },
11684            Opcode::CJALR => Inst {
11685                opcode: 0x2,
11686                funct3: 0x1,
11687                rs1: 0x1,
11688                rs2: 0x0,
11689                csr: 0x0,
11690                funct7: 0x0,
11691            },
11692            Opcode::CJR => Inst {
11693                opcode: 0x2,
11694                funct3: 0x0,
11695                rs1: 0x1,
11696                rs2: 0x0,
11697                csr: 0x0,
11698                funct7: 0x0,
11699            },
11700            Opcode::CLBU => Inst {
11701                opcode: 0x0,
11702                funct3: 0x0,
11703                rs1: 0x1,
11704                rs2: 0x0,
11705                csr: 0x0,
11706                funct7: 0x0,
11707            },
11708            Opcode::CLD => Inst {
11709                opcode: 0x0,
11710                funct3: 0x6,
11711                rs1: 0x0,
11712                rs2: 0x0,
11713                csr: 0x0,
11714                funct7: 0x0,
11715            },
11716            Opcode::CLDSP => Inst {
11717                opcode: 0x2,
11718                funct3: 0x6,
11719                rs1: 0x0,
11720                rs2: 0x0,
11721                csr: 0x0,
11722                funct7: 0x0,
11723            },
11724            Opcode::CLH => Inst {
11725                opcode: 0x40,
11726                funct3: 0x0,
11727                rs1: 0x1,
11728                rs2: 0x0,
11729                csr: 0x0,
11730                funct7: 0x0,
11731            },
11732            Opcode::CLHU => Inst {
11733                opcode: 0x0,
11734                funct3: 0x0,
11735                rs1: 0x1,
11736                rs2: 0x0,
11737                csr: 0x0,
11738                funct7: 0x0,
11739            },
11740            Opcode::CLI => Inst {
11741                opcode: 0x1,
11742                funct3: 0x4,
11743                rs1: 0x0,
11744                rs2: 0x0,
11745                csr: 0x0,
11746                funct7: 0x0,
11747            },
11748            Opcode::CLUI => Inst {
11749                opcode: 0x1,
11750                funct3: 0x6,
11751                rs1: 0x0,
11752                rs2: 0x0,
11753                csr: 0x0,
11754                funct7: 0x0,
11755            },
11756            Opcode::CLW => Inst {
11757                opcode: 0x0,
11758                funct3: 0x4,
11759                rs1: 0x0,
11760                rs2: 0x0,
11761                csr: 0x0,
11762                funct7: 0x0,
11763            },
11764            Opcode::CLWSP => Inst {
11765                opcode: 0x2,
11766                funct3: 0x4,
11767                rs1: 0x0,
11768                rs2: 0x0,
11769                csr: 0x0,
11770                funct7: 0x0,
11771            },
11772            Opcode::CMOP1 => Inst {
11773                opcode: 0x1,
11774                funct3: 0x6,
11775                rs1: 0x0,
11776                rs2: 0x0,
11777                csr: 0x0,
11778                funct7: 0x0,
11779            },
11780            Opcode::CMOP11 => Inst {
11781                opcode: 0x1,
11782                funct3: 0x6,
11783                rs1: 0x0,
11784                rs2: 0x0,
11785                csr: 0x0,
11786                funct7: 0x0,
11787            },
11788            Opcode::CMOP13 => Inst {
11789                opcode: 0x1,
11790                funct3: 0x6,
11791                rs1: 0x0,
11792                rs2: 0x0,
11793                csr: 0x0,
11794                funct7: 0x0,
11795            },
11796            Opcode::CMOP15 => Inst {
11797                opcode: 0x1,
11798                funct3: 0x6,
11799                rs1: 0x0,
11800                rs2: 0x0,
11801                csr: 0x0,
11802                funct7: 0x0,
11803            },
11804            Opcode::CMOP3 => Inst {
11805                opcode: 0x1,
11806                funct3: 0x6,
11807                rs1: 0x0,
11808                rs2: 0x0,
11809                csr: 0x0,
11810                funct7: 0x0,
11811            },
11812            Opcode::CMOP5 => Inst {
11813                opcode: 0x1,
11814                funct3: 0x6,
11815                rs1: 0x0,
11816                rs2: 0x0,
11817                csr: 0x0,
11818                funct7: 0x0,
11819            },
11820            Opcode::CMOP7 => Inst {
11821                opcode: 0x1,
11822                funct3: 0x6,
11823                rs1: 0x0,
11824                rs2: 0x0,
11825                csr: 0x0,
11826                funct7: 0x0,
11827            },
11828            Opcode::CMOP9 => Inst {
11829                opcode: 0x1,
11830                funct3: 0x6,
11831                rs1: 0x0,
11832                rs2: 0x0,
11833                csr: 0x0,
11834                funct7: 0x0,
11835            },
11836            Opcode::CMOPN => Inst {
11837                opcode: 0x1,
11838                funct3: 0x6,
11839                rs1: 0x0,
11840                rs2: 0x0,
11841                csr: 0x0,
11842                funct7: 0x0,
11843            },
11844            Opcode::CMUL => Inst {
11845                opcode: 0x41,
11846                funct3: 0x1,
11847                rs1: 0x1,
11848                rs2: 0x0,
11849                csr: 0x0,
11850                funct7: 0x0,
11851            },
11852            Opcode::CMV => Inst {
11853                opcode: 0x2,
11854                funct3: 0x0,
11855                rs1: 0x1,
11856                rs2: 0x0,
11857                csr: 0x0,
11858                funct7: 0x0,
11859            },
11860            Opcode::CNOP => Inst {
11861                opcode: 0x1,
11862                funct3: 0x0,
11863                rs1: 0x0,
11864                rs2: 0x0,
11865                csr: 0x0,
11866                funct7: 0x0,
11867            },
11868            Opcode::CNOT => Inst {
11869                opcode: 0x75,
11870                funct3: 0x1,
11871                rs1: 0x1,
11872                rs2: 0x0,
11873                csr: 0x0,
11874                funct7: 0x0,
11875            },
11876            Opcode::CNTLALL => Inst {
11877                opcode: 0x16,
11878                funct3: 0x1,
11879                rs1: 0x1,
11880                rs2: 0x0,
11881                csr: 0x0,
11882                funct7: 0x0,
11883            },
11884            Opcode::CNTLP1 => Inst {
11885                opcode: 0xa,
11886                funct3: 0x1,
11887                rs1: 0x1,
11888                rs2: 0x0,
11889                csr: 0x0,
11890                funct7: 0x0,
11891            },
11892            Opcode::CNTLPALL => Inst {
11893                opcode: 0xe,
11894                funct3: 0x1,
11895                rs1: 0x1,
11896                rs2: 0x0,
11897                csr: 0x0,
11898                funct7: 0x0,
11899            },
11900            Opcode::CNTLS1 => Inst {
11901                opcode: 0x12,
11902                funct3: 0x1,
11903                rs1: 0x1,
11904                rs2: 0x0,
11905                csr: 0x0,
11906                funct7: 0x0,
11907            },
11908            Opcode::COR => Inst {
11909                opcode: 0x41,
11910                funct3: 0x0,
11911                rs1: 0x1,
11912                rs2: 0x0,
11913                csr: 0x0,
11914                funct7: 0x0,
11915            },
11916            Opcode::CSB => Inst {
11917                opcode: 0x0,
11918                funct3: 0x0,
11919                rs1: 0x1,
11920                rs2: 0x0,
11921                csr: 0x0,
11922                funct7: 0x0,
11923            },
11924            Opcode::CSD => Inst {
11925                opcode: 0x0,
11926                funct3: 0x6,
11927                rs1: 0x1,
11928                rs2: 0x0,
11929                csr: 0x0,
11930                funct7: 0x0,
11931            },
11932            Opcode::CSDSP => Inst {
11933                opcode: 0x2,
11934                funct3: 0x6,
11935                rs1: 0x1,
11936                rs2: 0x0,
11937                csr: 0x0,
11938                funct7: 0x0,
11939            },
11940            Opcode::CSEXTB => Inst {
11941                opcode: 0x65,
11942                funct3: 0x1,
11943                rs1: 0x1,
11944                rs2: 0x0,
11945                csr: 0x0,
11946                funct7: 0x0,
11947            },
11948            Opcode::CSEXTH => Inst {
11949                opcode: 0x6d,
11950                funct3: 0x1,
11951                rs1: 0x1,
11952                rs2: 0x0,
11953                csr: 0x0,
11954                funct7: 0x0,
11955            },
11956            Opcode::CSEXTW => Inst {
11957                opcode: 0x1,
11958                funct3: 0x2,
11959                rs1: 0x0,
11960                rs2: 0x0,
11961                csr: 0x0,
11962                funct7: 0x0,
11963            },
11964            Opcode::CSH => Inst {
11965                opcode: 0x0,
11966                funct3: 0x0,
11967                rs1: 0x1,
11968                rs2: 0x0,
11969                csr: 0x0,
11970                funct7: 0x0,
11971            },
11972            Opcode::CSLLI => Inst {
11973                opcode: 0x2,
11974                funct3: 0x0,
11975                rs1: 0x0,
11976                rs2: 0x0,
11977                csr: 0x0,
11978                funct7: 0x0,
11979            },
11980            Opcode::CSLLIRV32 => Inst {
11981                opcode: 0x2,
11982                funct3: 0x0,
11983                rs1: 0x0,
11984                rs2: 0x0,
11985                csr: 0x0,
11986                funct7: 0x0,
11987            },
11988            Opcode::CSRAI => Inst {
11989                opcode: 0x1,
11990                funct3: 0x0,
11991                rs1: 0x1,
11992                rs2: 0x0,
11993                csr: 0x0,
11994                funct7: 0x0,
11995            },
11996            Opcode::CSRAIRV32 => Inst {
11997                opcode: 0x1,
11998                funct3: 0x0,
11999                rs1: 0x1,
12000                rs2: 0x0,
12001                csr: 0x0,
12002                funct7: 0x0,
12003            },
12004            Opcode::CSRLI => Inst {
12005                opcode: 0x1,
12006                funct3: 0x0,
12007                rs1: 0x1,
12008                rs2: 0x0,
12009                csr: 0x0,
12010                funct7: 0x0,
12011            },
12012            Opcode::CSRLIRV32 => Inst {
12013                opcode: 0x1,
12014                funct3: 0x0,
12015                rs1: 0x1,
12016                rs2: 0x0,
12017                csr: 0x0,
12018                funct7: 0x0,
12019            },
12020            Opcode::CSUB => Inst {
12021                opcode: 0x1,
12022                funct3: 0x0,
12023                rs1: 0x1,
12024                rs2: 0x0,
12025                csr: 0x0,
12026                funct7: 0x0,
12027            },
12028            Opcode::CSUBW => Inst {
12029                opcode: 0x1,
12030                funct3: 0x1,
12031                rs1: 0x1,
12032                rs2: 0x0,
12033                csr: 0x0,
12034                funct7: 0x0,
12035            },
12036            Opcode::CSW => Inst {
12037                opcode: 0x0,
12038                funct3: 0x4,
12039                rs1: 0x1,
12040                rs2: 0x0,
12041                csr: 0x0,
12042                funct7: 0x0,
12043            },
12044            Opcode::CSWSP => Inst {
12045                opcode: 0x2,
12046                funct3: 0x4,
12047                rs1: 0x1,
12048                rs2: 0x0,
12049                csr: 0x0,
12050                funct7: 0x0,
12051            },
12052            Opcode::CXOR => Inst {
12053                opcode: 0x21,
12054                funct3: 0x0,
12055                rs1: 0x1,
12056                rs2: 0x0,
12057                csr: 0x0,
12058                funct7: 0x0,
12059            },
12060            Opcode::CZEXTB => Inst {
12061                opcode: 0x61,
12062                funct3: 0x1,
12063                rs1: 0x1,
12064                rs2: 0x0,
12065                csr: 0x0,
12066                funct7: 0x0,
12067            },
12068            Opcode::CZEXTH => Inst {
12069                opcode: 0x69,
12070                funct3: 0x1,
12071                rs1: 0x1,
12072                rs2: 0x0,
12073                csr: 0x0,
12074                funct7: 0x0,
12075            },
12076            Opcode::CZEXTW => Inst {
12077                opcode: 0x71,
12078                funct3: 0x1,
12079                rs1: 0x1,
12080                rs2: 0x0,
12081                csr: 0x0,
12082                funct7: 0x0,
12083            },
12084            Opcode::CBOCLEAN => Inst {
12085                opcode: 0xf,
12086                funct3: 0x2,
12087                rs1: 0x0,
12088                rs2: 0x1,
12089                csr: 0x1,
12090                funct7: 0x0,
12091            },
12092            Opcode::CBOFLUSH => Inst {
12093                opcode: 0xf,
12094                funct3: 0x2,
12095                rs1: 0x0,
12096                rs2: 0x2,
12097                csr: 0x2,
12098                funct7: 0x0,
12099            },
12100            Opcode::CBOINVAL => Inst {
12101                opcode: 0xf,
12102                funct3: 0x2,
12103                rs1: 0x0,
12104                rs2: 0x0,
12105                csr: 0x0,
12106                funct7: 0x0,
12107            },
12108            Opcode::CBOZERO => Inst {
12109                opcode: 0xf,
12110                funct3: 0x2,
12111                rs1: 0x0,
12112                rs2: 0x4,
12113                csr: 0x4,
12114                funct7: 0x0,
12115            },
12116            Opcode::CLMUL => Inst {
12117                opcode: 0x33,
12118                funct3: 0x1,
12119                rs1: 0x0,
12120                rs2: 0x0,
12121                csr: 0xa0,
12122                funct7: 0x5,
12123            },
12124            Opcode::CLMULH => Inst {
12125                opcode: 0x33,
12126                funct3: 0x3,
12127                rs1: 0x0,
12128                rs2: 0x0,
12129                csr: 0xa0,
12130                funct7: 0x5,
12131            },
12132            Opcode::CLMULR => Inst {
12133                opcode: 0x33,
12134                funct3: 0x2,
12135                rs1: 0x0,
12136                rs2: 0x0,
12137                csr: 0xa0,
12138                funct7: 0x5,
12139            },
12140            Opcode::CLZ => Inst {
12141                opcode: 0x13,
12142                funct3: 0x1,
12143                rs1: 0x0,
12144                rs2: 0x0,
12145                csr: 0x600,
12146                funct7: 0x30,
12147            },
12148            Opcode::CLZW => Inst {
12149                opcode: 0x1b,
12150                funct3: 0x1,
12151                rs1: 0x0,
12152                rs2: 0x0,
12153                csr: 0x600,
12154                funct7: 0x30,
12155            },
12156            Opcode::CMJALT => Inst {
12157                opcode: 0x2,
12158                funct3: 0x2,
12159                rs1: 0x1,
12160                rs2: 0x0,
12161                csr: 0x0,
12162                funct7: 0x0,
12163            },
12164            Opcode::CMMVA01S => Inst {
12165                opcode: 0x62,
12166                funct3: 0x2,
12167                rs1: 0x1,
12168                rs2: 0x0,
12169                csr: 0x0,
12170                funct7: 0x0,
12171            },
12172            Opcode::CMMVSA01 => Inst {
12173                opcode: 0x22,
12174                funct3: 0x2,
12175                rs1: 0x1,
12176                rs2: 0x0,
12177                csr: 0x0,
12178                funct7: 0x0,
12179            },
12180            Opcode::CMPOP => Inst {
12181                opcode: 0x2,
12182                funct3: 0x3,
12183                rs1: 0x1,
12184                rs2: 0x0,
12185                csr: 0x0,
12186                funct7: 0x0,
12187            },
12188            Opcode::CMPOPRET => Inst {
12189                opcode: 0x2,
12190                funct3: 0x3,
12191                rs1: 0x1,
12192                rs2: 0x0,
12193                csr: 0x0,
12194                funct7: 0x0,
12195            },
12196            Opcode::CMPOPRETZ => Inst {
12197                opcode: 0x2,
12198                funct3: 0x3,
12199                rs1: 0x1,
12200                rs2: 0x0,
12201                csr: 0x0,
12202                funct7: 0x0,
12203            },
12204            Opcode::CMPUSH => Inst {
12205                opcode: 0x2,
12206                funct3: 0x3,
12207                rs1: 0x1,
12208                rs2: 0x0,
12209                csr: 0x0,
12210                funct7: 0x0,
12211            },
12212            Opcode::CPOP => Inst {
12213                opcode: 0x13,
12214                funct3: 0x1,
12215                rs1: 0x0,
12216                rs2: 0x2,
12217                csr: 0x602,
12218                funct7: 0x30,
12219            },
12220            Opcode::CPOPW => Inst {
12221                opcode: 0x1b,
12222                funct3: 0x1,
12223                rs1: 0x0,
12224                rs2: 0x2,
12225                csr: 0x602,
12226                funct7: 0x30,
12227            },
12228            Opcode::CSRC => Inst {
12229                opcode: 0x73,
12230                funct3: 0x3,
12231                rs1: 0x0,
12232                rs2: 0x0,
12233                csr: 0x0,
12234                funct7: 0x0,
12235            },
12236            Opcode::CSRCI => Inst {
12237                opcode: 0x73,
12238                funct3: 0x7,
12239                rs1: 0x0,
12240                rs2: 0x0,
12241                csr: 0x0,
12242                funct7: 0x0,
12243            },
12244            Opcode::CSRR => Inst {
12245                opcode: 0x73,
12246                funct3: 0x2,
12247                rs1: 0x0,
12248                rs2: 0x0,
12249                csr: 0x0,
12250                funct7: 0x0,
12251            },
12252            Opcode::CSRRC => Inst {
12253                opcode: 0x73,
12254                funct3: 0x3,
12255                rs1: 0x0,
12256                rs2: 0x0,
12257                csr: 0x0,
12258                funct7: 0x0,
12259            },
12260            Opcode::CSRRCI => Inst {
12261                opcode: 0x73,
12262                funct3: 0x7,
12263                rs1: 0x0,
12264                rs2: 0x0,
12265                csr: 0x0,
12266                funct7: 0x0,
12267            },
12268            Opcode::CSRRS => Inst {
12269                opcode: 0x73,
12270                funct3: 0x2,
12271                rs1: 0x0,
12272                rs2: 0x0,
12273                csr: 0x0,
12274                funct7: 0x0,
12275            },
12276            Opcode::CSRRSI => Inst {
12277                opcode: 0x73,
12278                funct3: 0x6,
12279                rs1: 0x0,
12280                rs2: 0x0,
12281                csr: 0x0,
12282                funct7: 0x0,
12283            },
12284            Opcode::CSRRW => Inst {
12285                opcode: 0x73,
12286                funct3: 0x1,
12287                rs1: 0x0,
12288                rs2: 0x0,
12289                csr: 0x0,
12290                funct7: 0x0,
12291            },
12292            Opcode::CSRRWI => Inst {
12293                opcode: 0x73,
12294                funct3: 0x5,
12295                rs1: 0x0,
12296                rs2: 0x0,
12297                csr: 0x0,
12298                funct7: 0x0,
12299            },
12300            Opcode::CSRS => Inst {
12301                opcode: 0x73,
12302                funct3: 0x2,
12303                rs1: 0x0,
12304                rs2: 0x0,
12305                csr: 0x0,
12306                funct7: 0x0,
12307            },
12308            Opcode::CSRSI => Inst {
12309                opcode: 0x73,
12310                funct3: 0x6,
12311                rs1: 0x0,
12312                rs2: 0x0,
12313                csr: 0x0,
12314                funct7: 0x0,
12315            },
12316            Opcode::CSRW => Inst {
12317                opcode: 0x73,
12318                funct3: 0x1,
12319                rs1: 0x0,
12320                rs2: 0x0,
12321                csr: 0x0,
12322                funct7: 0x0,
12323            },
12324            Opcode::CSRWI => Inst {
12325                opcode: 0x73,
12326                funct3: 0x5,
12327                rs1: 0x0,
12328                rs2: 0x0,
12329                csr: 0x0,
12330                funct7: 0x0,
12331            },
12332            Opcode::CTZ => Inst {
12333                opcode: 0x13,
12334                funct3: 0x1,
12335                rs1: 0x0,
12336                rs2: 0x1,
12337                csr: 0x601,
12338                funct7: 0x30,
12339            },
12340            Opcode::CTZW => Inst {
12341                opcode: 0x1b,
12342                funct3: 0x1,
12343                rs1: 0x0,
12344                rs2: 0x1,
12345                csr: 0x601,
12346                funct7: 0x30,
12347            },
12348            Opcode::CZEROEQZ => Inst {
12349                opcode: 0x33,
12350                funct3: 0x5,
12351                rs1: 0x0,
12352                rs2: 0x0,
12353                csr: 0xe0,
12354                funct7: 0x7,
12355            },
12356            Opcode::CZERONEZ => Inst {
12357                opcode: 0x33,
12358                funct3: 0x7,
12359                rs1: 0x0,
12360                rs2: 0x0,
12361                csr: 0xe0,
12362                funct7: 0x7,
12363            },
12364            Opcode::DIV => Inst {
12365                opcode: 0x33,
12366                funct3: 0x4,
12367                rs1: 0x0,
12368                rs2: 0x0,
12369                csr: 0x20,
12370                funct7: 0x1,
12371            },
12372            Opcode::DIVU => Inst {
12373                opcode: 0x33,
12374                funct3: 0x5,
12375                rs1: 0x0,
12376                rs2: 0x0,
12377                csr: 0x20,
12378                funct7: 0x1,
12379            },
12380            Opcode::DIVUW => Inst {
12381                opcode: 0x3b,
12382                funct3: 0x5,
12383                rs1: 0x0,
12384                rs2: 0x0,
12385                csr: 0x20,
12386                funct7: 0x1,
12387            },
12388            Opcode::DIVW => Inst {
12389                opcode: 0x3b,
12390                funct3: 0x4,
12391                rs1: 0x0,
12392                rs2: 0x0,
12393                csr: 0x20,
12394                funct7: 0x1,
12395            },
12396            Opcode::DRET => Inst {
12397                opcode: 0x73,
12398                funct3: 0x0,
12399                rs1: 0x0,
12400                rs2: 0x12,
12401                csr: 0x7b2,
12402                funct7: 0x3d,
12403            },
12404            Opcode::EBREAK => Inst {
12405                opcode: 0x73,
12406                funct3: 0x0,
12407                rs1: 0x0,
12408                rs2: 0x1,
12409                csr: 0x1,
12410                funct7: 0x0,
12411            },
12412            Opcode::ECALL => Inst {
12413                opcode: 0x73,
12414                funct3: 0x0,
12415                rs1: 0x0,
12416                rs2: 0x0,
12417                csr: 0x0,
12418                funct7: 0x0,
12419            },
12420            Opcode::FABSD => Inst {
12421                opcode: 0x53,
12422                funct3: 0x2,
12423                rs1: 0x0,
12424                rs2: 0x0,
12425                csr: 0x220,
12426                funct7: 0x11,
12427            },
12428            Opcode::FABSH => Inst {
12429                opcode: 0x53,
12430                funct3: 0x2,
12431                rs1: 0x0,
12432                rs2: 0x0,
12433                csr: 0x240,
12434                funct7: 0x12,
12435            },
12436            Opcode::FABSQ => Inst {
12437                opcode: 0x53,
12438                funct3: 0x2,
12439                rs1: 0x0,
12440                rs2: 0x0,
12441                csr: 0x260,
12442                funct7: 0x13,
12443            },
12444            Opcode::FABSS => Inst {
12445                opcode: 0x53,
12446                funct3: 0x2,
12447                rs1: 0x0,
12448                rs2: 0x0,
12449                csr: 0x200,
12450                funct7: 0x10,
12451            },
12452            Opcode::FADDD => Inst {
12453                opcode: 0x53,
12454                funct3: 0x0,
12455                rs1: 0x0,
12456                rs2: 0x0,
12457                csr: 0x20,
12458                funct7: 0x1,
12459            },
12460            Opcode::FADDH => Inst {
12461                opcode: 0x53,
12462                funct3: 0x0,
12463                rs1: 0x0,
12464                rs2: 0x0,
12465                csr: 0x40,
12466                funct7: 0x2,
12467            },
12468            Opcode::FADDQ => Inst {
12469                opcode: 0x53,
12470                funct3: 0x0,
12471                rs1: 0x0,
12472                rs2: 0x0,
12473                csr: 0x60,
12474                funct7: 0x3,
12475            },
12476            Opcode::FADDS => Inst {
12477                opcode: 0x53,
12478                funct3: 0x0,
12479                rs1: 0x0,
12480                rs2: 0x0,
12481                csr: 0x0,
12482                funct7: 0x0,
12483            },
12484            Opcode::FCLASSD => Inst {
12485                opcode: 0x53,
12486                funct3: 0x1,
12487                rs1: 0x0,
12488                rs2: 0x0,
12489                csr: 0xe20,
12490                funct7: 0x71,
12491            },
12492            Opcode::FCLASSH => Inst {
12493                opcode: 0x53,
12494                funct3: 0x1,
12495                rs1: 0x0,
12496                rs2: 0x0,
12497                csr: 0xe40,
12498                funct7: 0x72,
12499            },
12500            Opcode::FCLASSQ => Inst {
12501                opcode: 0x53,
12502                funct3: 0x1,
12503                rs1: 0x0,
12504                rs2: 0x0,
12505                csr: 0xe60,
12506                funct7: 0x73,
12507            },
12508            Opcode::FCLASSS => Inst {
12509                opcode: 0x53,
12510                funct3: 0x1,
12511                rs1: 0x0,
12512                rs2: 0x0,
12513                csr: 0xe00,
12514                funct7: 0x70,
12515            },
12516            Opcode::FCVTDH => Inst {
12517                opcode: 0x53,
12518                funct3: 0x0,
12519                rs1: 0x0,
12520                rs2: 0x2,
12521                csr: 0x422,
12522                funct7: 0x21,
12523            },
12524            Opcode::FCVTDL => Inst {
12525                opcode: 0x53,
12526                funct3: 0x0,
12527                rs1: 0x0,
12528                rs2: 0x2,
12529                csr: 0xd22,
12530                funct7: 0x69,
12531            },
12532            Opcode::FCVTDLU => Inst {
12533                opcode: 0x53,
12534                funct3: 0x0,
12535                rs1: 0x0,
12536                rs2: 0x3,
12537                csr: 0xd23,
12538                funct7: 0x69,
12539            },
12540            Opcode::FCVTDQ => Inst {
12541                opcode: 0x53,
12542                funct3: 0x0,
12543                rs1: 0x0,
12544                rs2: 0x3,
12545                csr: 0x423,
12546                funct7: 0x21,
12547            },
12548            Opcode::FCVTDS => Inst {
12549                opcode: 0x53,
12550                funct3: 0x0,
12551                rs1: 0x0,
12552                rs2: 0x0,
12553                csr: 0x420,
12554                funct7: 0x21,
12555            },
12556            Opcode::FCVTDW => Inst {
12557                opcode: 0x53,
12558                funct3: 0x0,
12559                rs1: 0x0,
12560                rs2: 0x0,
12561                csr: 0xd20,
12562                funct7: 0x69,
12563            },
12564            Opcode::FCVTDWU => Inst {
12565                opcode: 0x53,
12566                funct3: 0x0,
12567                rs1: 0x0,
12568                rs2: 0x1,
12569                csr: 0xd21,
12570                funct7: 0x69,
12571            },
12572            Opcode::FCVTHD => Inst {
12573                opcode: 0x53,
12574                funct3: 0x0,
12575                rs1: 0x0,
12576                rs2: 0x1,
12577                csr: 0x441,
12578                funct7: 0x22,
12579            },
12580            Opcode::FCVTHL => Inst {
12581                opcode: 0x53,
12582                funct3: 0x0,
12583                rs1: 0x0,
12584                rs2: 0x2,
12585                csr: 0xd42,
12586                funct7: 0x6a,
12587            },
12588            Opcode::FCVTHLU => Inst {
12589                opcode: 0x53,
12590                funct3: 0x0,
12591                rs1: 0x0,
12592                rs2: 0x3,
12593                csr: 0xd43,
12594                funct7: 0x6a,
12595            },
12596            Opcode::FCVTHQ => Inst {
12597                opcode: 0x53,
12598                funct3: 0x0,
12599                rs1: 0x0,
12600                rs2: 0x3,
12601                csr: 0x443,
12602                funct7: 0x22,
12603            },
12604            Opcode::FCVTHS => Inst {
12605                opcode: 0x53,
12606                funct3: 0x0,
12607                rs1: 0x0,
12608                rs2: 0x0,
12609                csr: 0x440,
12610                funct7: 0x22,
12611            },
12612            Opcode::FCVTHW => Inst {
12613                opcode: 0x53,
12614                funct3: 0x0,
12615                rs1: 0x0,
12616                rs2: 0x0,
12617                csr: 0xd40,
12618                funct7: 0x6a,
12619            },
12620            Opcode::FCVTHWU => Inst {
12621                opcode: 0x53,
12622                funct3: 0x0,
12623                rs1: 0x0,
12624                rs2: 0x1,
12625                csr: 0xd41,
12626                funct7: 0x6a,
12627            },
12628            Opcode::FCVTLD => Inst {
12629                opcode: 0x53,
12630                funct3: 0x0,
12631                rs1: 0x0,
12632                rs2: 0x2,
12633                csr: 0xc22,
12634                funct7: 0x61,
12635            },
12636            Opcode::FCVTLH => Inst {
12637                opcode: 0x53,
12638                funct3: 0x0,
12639                rs1: 0x0,
12640                rs2: 0x2,
12641                csr: 0xc42,
12642                funct7: 0x62,
12643            },
12644            Opcode::FCVTLQ => Inst {
12645                opcode: 0x53,
12646                funct3: 0x0,
12647                rs1: 0x0,
12648                rs2: 0x2,
12649                csr: 0xc62,
12650                funct7: 0x63,
12651            },
12652            Opcode::FCVTLS => Inst {
12653                opcode: 0x53,
12654                funct3: 0x0,
12655                rs1: 0x0,
12656                rs2: 0x2,
12657                csr: 0xc02,
12658                funct7: 0x60,
12659            },
12660            Opcode::FCVTLUD => Inst {
12661                opcode: 0x53,
12662                funct3: 0x0,
12663                rs1: 0x0,
12664                rs2: 0x3,
12665                csr: 0xc23,
12666                funct7: 0x61,
12667            },
12668            Opcode::FCVTLUH => Inst {
12669                opcode: 0x53,
12670                funct3: 0x0,
12671                rs1: 0x0,
12672                rs2: 0x3,
12673                csr: 0xc43,
12674                funct7: 0x62,
12675            },
12676            Opcode::FCVTLUQ => Inst {
12677                opcode: 0x53,
12678                funct3: 0x0,
12679                rs1: 0x0,
12680                rs2: 0x3,
12681                csr: 0xc63,
12682                funct7: 0x63,
12683            },
12684            Opcode::FCVTLUS => Inst {
12685                opcode: 0x53,
12686                funct3: 0x0,
12687                rs1: 0x0,
12688                rs2: 0x3,
12689                csr: 0xc03,
12690                funct7: 0x60,
12691            },
12692            Opcode::FCVTQD => Inst {
12693                opcode: 0x53,
12694                funct3: 0x0,
12695                rs1: 0x0,
12696                rs2: 0x1,
12697                csr: 0x461,
12698                funct7: 0x23,
12699            },
12700            Opcode::FCVTQH => Inst {
12701                opcode: 0x53,
12702                funct3: 0x0,
12703                rs1: 0x0,
12704                rs2: 0x2,
12705                csr: 0x462,
12706                funct7: 0x23,
12707            },
12708            Opcode::FCVTQL => Inst {
12709                opcode: 0x53,
12710                funct3: 0x0,
12711                rs1: 0x0,
12712                rs2: 0x2,
12713                csr: 0xd62,
12714                funct7: 0x6b,
12715            },
12716            Opcode::FCVTQLU => Inst {
12717                opcode: 0x53,
12718                funct3: 0x0,
12719                rs1: 0x0,
12720                rs2: 0x3,
12721                csr: 0xd63,
12722                funct7: 0x6b,
12723            },
12724            Opcode::FCVTQS => Inst {
12725                opcode: 0x53,
12726                funct3: 0x0,
12727                rs1: 0x0,
12728                rs2: 0x0,
12729                csr: 0x460,
12730                funct7: 0x23,
12731            },
12732            Opcode::FCVTQW => Inst {
12733                opcode: 0x53,
12734                funct3: 0x0,
12735                rs1: 0x0,
12736                rs2: 0x0,
12737                csr: 0xd60,
12738                funct7: 0x6b,
12739            },
12740            Opcode::FCVTQWU => Inst {
12741                opcode: 0x53,
12742                funct3: 0x0,
12743                rs1: 0x0,
12744                rs2: 0x1,
12745                csr: 0xd61,
12746                funct7: 0x6b,
12747            },
12748            Opcode::FCVTSD => Inst {
12749                opcode: 0x53,
12750                funct3: 0x0,
12751                rs1: 0x0,
12752                rs2: 0x1,
12753                csr: 0x401,
12754                funct7: 0x20,
12755            },
12756            Opcode::FCVTSH => Inst {
12757                opcode: 0x53,
12758                funct3: 0x0,
12759                rs1: 0x0,
12760                rs2: 0x2,
12761                csr: 0x402,
12762                funct7: 0x20,
12763            },
12764            Opcode::FCVTSL => Inst {
12765                opcode: 0x53,
12766                funct3: 0x0,
12767                rs1: 0x0,
12768                rs2: 0x2,
12769                csr: 0xd02,
12770                funct7: 0x68,
12771            },
12772            Opcode::FCVTSLU => Inst {
12773                opcode: 0x53,
12774                funct3: 0x0,
12775                rs1: 0x0,
12776                rs2: 0x3,
12777                csr: 0xd03,
12778                funct7: 0x68,
12779            },
12780            Opcode::FCVTSQ => Inst {
12781                opcode: 0x53,
12782                funct3: 0x0,
12783                rs1: 0x0,
12784                rs2: 0x3,
12785                csr: 0x403,
12786                funct7: 0x20,
12787            },
12788            Opcode::FCVTSW => Inst {
12789                opcode: 0x53,
12790                funct3: 0x0,
12791                rs1: 0x0,
12792                rs2: 0x0,
12793                csr: 0xd00,
12794                funct7: 0x68,
12795            },
12796            Opcode::FCVTSWU => Inst {
12797                opcode: 0x53,
12798                funct3: 0x0,
12799                rs1: 0x0,
12800                rs2: 0x1,
12801                csr: 0xd01,
12802                funct7: 0x68,
12803            },
12804            Opcode::FCVTWD => Inst {
12805                opcode: 0x53,
12806                funct3: 0x0,
12807                rs1: 0x0,
12808                rs2: 0x0,
12809                csr: 0xc20,
12810                funct7: 0x61,
12811            },
12812            Opcode::FCVTWH => Inst {
12813                opcode: 0x53,
12814                funct3: 0x0,
12815                rs1: 0x0,
12816                rs2: 0x0,
12817                csr: 0xc40,
12818                funct7: 0x62,
12819            },
12820            Opcode::FCVTWQ => Inst {
12821                opcode: 0x53,
12822                funct3: 0x0,
12823                rs1: 0x0,
12824                rs2: 0x0,
12825                csr: 0xc60,
12826                funct7: 0x63,
12827            },
12828            Opcode::FCVTWS => Inst {
12829                opcode: 0x53,
12830                funct3: 0x0,
12831                rs1: 0x0,
12832                rs2: 0x0,
12833                csr: 0xc00,
12834                funct7: 0x60,
12835            },
12836            Opcode::FCVTWUD => Inst {
12837                opcode: 0x53,
12838                funct3: 0x0,
12839                rs1: 0x0,
12840                rs2: 0x1,
12841                csr: 0xc21,
12842                funct7: 0x61,
12843            },
12844            Opcode::FCVTWUH => Inst {
12845                opcode: 0x53,
12846                funct3: 0x0,
12847                rs1: 0x0,
12848                rs2: 0x1,
12849                csr: 0xc41,
12850                funct7: 0x62,
12851            },
12852            Opcode::FCVTWUQ => Inst {
12853                opcode: 0x53,
12854                funct3: 0x0,
12855                rs1: 0x0,
12856                rs2: 0x1,
12857                csr: 0xc61,
12858                funct7: 0x63,
12859            },
12860            Opcode::FCVTWUS => Inst {
12861                opcode: 0x53,
12862                funct3: 0x0,
12863                rs1: 0x0,
12864                rs2: 0x1,
12865                csr: 0xc01,
12866                funct7: 0x60,
12867            },
12868            Opcode::FCVTMODWD => Inst {
12869                opcode: 0x53,
12870                funct3: 0x1,
12871                rs1: 0x0,
12872                rs2: 0x8,
12873                csr: 0xc28,
12874                funct7: 0x61,
12875            },
12876            Opcode::FDIVD => Inst {
12877                opcode: 0x53,
12878                funct3: 0x0,
12879                rs1: 0x0,
12880                rs2: 0x0,
12881                csr: 0x1a0,
12882                funct7: 0xd,
12883            },
12884            Opcode::FDIVH => Inst {
12885                opcode: 0x53,
12886                funct3: 0x0,
12887                rs1: 0x0,
12888                rs2: 0x0,
12889                csr: 0x1c0,
12890                funct7: 0xe,
12891            },
12892            Opcode::FDIVQ => Inst {
12893                opcode: 0x53,
12894                funct3: 0x0,
12895                rs1: 0x0,
12896                rs2: 0x0,
12897                csr: 0x1e0,
12898                funct7: 0xf,
12899            },
12900            Opcode::FDIVS => Inst {
12901                opcode: 0x53,
12902                funct3: 0x0,
12903                rs1: 0x0,
12904                rs2: 0x0,
12905                csr: 0x180,
12906                funct7: 0xc,
12907            },
12908            Opcode::FENCE => Inst {
12909                opcode: 0xf,
12910                funct3: 0x0,
12911                rs1: 0x0,
12912                rs2: 0x0,
12913                csr: 0x0,
12914                funct7: 0x0,
12915            },
12916            Opcode::FENCEI => Inst {
12917                opcode: 0xf,
12918                funct3: 0x1,
12919                rs1: 0x0,
12920                rs2: 0x0,
12921                csr: 0x0,
12922                funct7: 0x0,
12923            },
12924            Opcode::FENCETSO => Inst {
12925                opcode: 0xf,
12926                funct3: 0x0,
12927                rs1: 0x0,
12928                rs2: 0x13,
12929                csr: 0x833,
12930                funct7: 0x41,
12931            },
12932            Opcode::FEQD => Inst {
12933                opcode: 0x53,
12934                funct3: 0x2,
12935                rs1: 0x0,
12936                rs2: 0x0,
12937                csr: 0xa20,
12938                funct7: 0x51,
12939            },
12940            Opcode::FEQH => Inst {
12941                opcode: 0x53,
12942                funct3: 0x2,
12943                rs1: 0x0,
12944                rs2: 0x0,
12945                csr: 0xa40,
12946                funct7: 0x52,
12947            },
12948            Opcode::FEQQ => Inst {
12949                opcode: 0x53,
12950                funct3: 0x2,
12951                rs1: 0x0,
12952                rs2: 0x0,
12953                csr: 0xa60,
12954                funct7: 0x53,
12955            },
12956            Opcode::FEQS => Inst {
12957                opcode: 0x53,
12958                funct3: 0x2,
12959                rs1: 0x0,
12960                rs2: 0x0,
12961                csr: 0xa00,
12962                funct7: 0x50,
12963            },
12964            Opcode::FLD => Inst {
12965                opcode: 0x7,
12966                funct3: 0x3,
12967                rs1: 0x0,
12968                rs2: 0x0,
12969                csr: 0x0,
12970                funct7: 0x0,
12971            },
12972            Opcode::FLED => Inst {
12973                opcode: 0x53,
12974                funct3: 0x0,
12975                rs1: 0x0,
12976                rs2: 0x0,
12977                csr: 0xa20,
12978                funct7: 0x51,
12979            },
12980            Opcode::FLEH => Inst {
12981                opcode: 0x53,
12982                funct3: 0x0,
12983                rs1: 0x0,
12984                rs2: 0x0,
12985                csr: 0xa40,
12986                funct7: 0x52,
12987            },
12988            Opcode::FLEQ => Inst {
12989                opcode: 0x53,
12990                funct3: 0x0,
12991                rs1: 0x0,
12992                rs2: 0x0,
12993                csr: 0xa60,
12994                funct7: 0x53,
12995            },
12996            Opcode::FLES => Inst {
12997                opcode: 0x53,
12998                funct3: 0x0,
12999                rs1: 0x0,
13000                rs2: 0x0,
13001                csr: 0xa00,
13002                funct7: 0x50,
13003            },
13004            Opcode::FLEQD => Inst {
13005                opcode: 0x53,
13006                funct3: 0x4,
13007                rs1: 0x0,
13008                rs2: 0x0,
13009                csr: 0xa20,
13010                funct7: 0x51,
13011            },
13012            Opcode::FLEQH => Inst {
13013                opcode: 0x53,
13014                funct3: 0x4,
13015                rs1: 0x0,
13016                rs2: 0x0,
13017                csr: 0xa40,
13018                funct7: 0x52,
13019            },
13020            Opcode::FLEQQ => Inst {
13021                opcode: 0x53,
13022                funct3: 0x4,
13023                rs1: 0x0,
13024                rs2: 0x0,
13025                csr: 0xa60,
13026                funct7: 0x53,
13027            },
13028            Opcode::FLEQS => Inst {
13029                opcode: 0x53,
13030                funct3: 0x4,
13031                rs1: 0x0,
13032                rs2: 0x0,
13033                csr: 0xa00,
13034                funct7: 0x50,
13035            },
13036            Opcode::FLH => Inst {
13037                opcode: 0x7,
13038                funct3: 0x1,
13039                rs1: 0x0,
13040                rs2: 0x0,
13041                csr: 0x0,
13042                funct7: 0x0,
13043            },
13044            Opcode::FLID => Inst {
13045                opcode: 0x53,
13046                funct3: 0x0,
13047                rs1: 0x0,
13048                rs2: 0x1,
13049                csr: 0xf21,
13050                funct7: 0x79,
13051            },
13052            Opcode::FLIH => Inst {
13053                opcode: 0x53,
13054                funct3: 0x0,
13055                rs1: 0x0,
13056                rs2: 0x1,
13057                csr: 0xf41,
13058                funct7: 0x7a,
13059            },
13060            Opcode::FLIQ => Inst {
13061                opcode: 0x53,
13062                funct3: 0x0,
13063                rs1: 0x0,
13064                rs2: 0x1,
13065                csr: 0xf61,
13066                funct7: 0x7b,
13067            },
13068            Opcode::FLIS => Inst {
13069                opcode: 0x53,
13070                funct3: 0x0,
13071                rs1: 0x0,
13072                rs2: 0x1,
13073                csr: 0xf01,
13074                funct7: 0x78,
13075            },
13076            Opcode::FLQ => Inst {
13077                opcode: 0x7,
13078                funct3: 0x4,
13079                rs1: 0x0,
13080                rs2: 0x0,
13081                csr: 0x0,
13082                funct7: 0x0,
13083            },
13084            Opcode::FLTD => Inst {
13085                opcode: 0x53,
13086                funct3: 0x1,
13087                rs1: 0x0,
13088                rs2: 0x0,
13089                csr: 0xa20,
13090                funct7: 0x51,
13091            },
13092            Opcode::FLTH => Inst {
13093                opcode: 0x53,
13094                funct3: 0x1,
13095                rs1: 0x0,
13096                rs2: 0x0,
13097                csr: 0xa40,
13098                funct7: 0x52,
13099            },
13100            Opcode::FLTQ => Inst {
13101                opcode: 0x53,
13102                funct3: 0x1,
13103                rs1: 0x0,
13104                rs2: 0x0,
13105                csr: 0xa60,
13106                funct7: 0x53,
13107            },
13108            Opcode::FLTS => Inst {
13109                opcode: 0x53,
13110                funct3: 0x1,
13111                rs1: 0x0,
13112                rs2: 0x0,
13113                csr: 0xa00,
13114                funct7: 0x50,
13115            },
13116            Opcode::FLTQD => Inst {
13117                opcode: 0x53,
13118                funct3: 0x5,
13119                rs1: 0x0,
13120                rs2: 0x0,
13121                csr: 0xa20,
13122                funct7: 0x51,
13123            },
13124            Opcode::FLTQH => Inst {
13125                opcode: 0x53,
13126                funct3: 0x5,
13127                rs1: 0x0,
13128                rs2: 0x0,
13129                csr: 0xa40,
13130                funct7: 0x52,
13131            },
13132            Opcode::FLTQQ => Inst {
13133                opcode: 0x53,
13134                funct3: 0x5,
13135                rs1: 0x0,
13136                rs2: 0x0,
13137                csr: 0xa60,
13138                funct7: 0x53,
13139            },
13140            Opcode::FLTQS => Inst {
13141                opcode: 0x53,
13142                funct3: 0x5,
13143                rs1: 0x0,
13144                rs2: 0x0,
13145                csr: 0xa00,
13146                funct7: 0x50,
13147            },
13148            Opcode::FLW => Inst {
13149                opcode: 0x7,
13150                funct3: 0x2,
13151                rs1: 0x0,
13152                rs2: 0x0,
13153                csr: 0x0,
13154                funct7: 0x0,
13155            },
13156            Opcode::FMADDD => Inst {
13157                opcode: 0x43,
13158                funct3: 0x0,
13159                rs1: 0x0,
13160                rs2: 0x0,
13161                csr: 0x20,
13162                funct7: 0x1,
13163            },
13164            Opcode::FMADDH => Inst {
13165                opcode: 0x43,
13166                funct3: 0x0,
13167                rs1: 0x0,
13168                rs2: 0x0,
13169                csr: 0x40,
13170                funct7: 0x2,
13171            },
13172            Opcode::FMADDQ => Inst {
13173                opcode: 0x43,
13174                funct3: 0x0,
13175                rs1: 0x0,
13176                rs2: 0x0,
13177                csr: 0x60,
13178                funct7: 0x3,
13179            },
13180            Opcode::FMADDS => Inst {
13181                opcode: 0x43,
13182                funct3: 0x0,
13183                rs1: 0x0,
13184                rs2: 0x0,
13185                csr: 0x0,
13186                funct7: 0x0,
13187            },
13188            Opcode::FMAXD => Inst {
13189                opcode: 0x53,
13190                funct3: 0x1,
13191                rs1: 0x0,
13192                rs2: 0x0,
13193                csr: 0x2a0,
13194                funct7: 0x15,
13195            },
13196            Opcode::FMAXH => Inst {
13197                opcode: 0x53,
13198                funct3: 0x1,
13199                rs1: 0x0,
13200                rs2: 0x0,
13201                csr: 0x2c0,
13202                funct7: 0x16,
13203            },
13204            Opcode::FMAXQ => Inst {
13205                opcode: 0x53,
13206                funct3: 0x1,
13207                rs1: 0x0,
13208                rs2: 0x0,
13209                csr: 0x2e0,
13210                funct7: 0x17,
13211            },
13212            Opcode::FMAXS => Inst {
13213                opcode: 0x53,
13214                funct3: 0x1,
13215                rs1: 0x0,
13216                rs2: 0x0,
13217                csr: 0x280,
13218                funct7: 0x14,
13219            },
13220            Opcode::FMAXMD => Inst {
13221                opcode: 0x53,
13222                funct3: 0x3,
13223                rs1: 0x0,
13224                rs2: 0x0,
13225                csr: 0x2a0,
13226                funct7: 0x15,
13227            },
13228            Opcode::FMAXMH => Inst {
13229                opcode: 0x53,
13230                funct3: 0x3,
13231                rs1: 0x0,
13232                rs2: 0x0,
13233                csr: 0x2c0,
13234                funct7: 0x16,
13235            },
13236            Opcode::FMAXMQ => Inst {
13237                opcode: 0x53,
13238                funct3: 0x3,
13239                rs1: 0x0,
13240                rs2: 0x0,
13241                csr: 0x2e0,
13242                funct7: 0x17,
13243            },
13244            Opcode::FMAXMS => Inst {
13245                opcode: 0x53,
13246                funct3: 0x3,
13247                rs1: 0x0,
13248                rs2: 0x0,
13249                csr: 0x280,
13250                funct7: 0x14,
13251            },
13252            Opcode::FMIND => Inst {
13253                opcode: 0x53,
13254                funct3: 0x0,
13255                rs1: 0x0,
13256                rs2: 0x0,
13257                csr: 0x2a0,
13258                funct7: 0x15,
13259            },
13260            Opcode::FMINH => Inst {
13261                opcode: 0x53,
13262                funct3: 0x0,
13263                rs1: 0x0,
13264                rs2: 0x0,
13265                csr: 0x2c0,
13266                funct7: 0x16,
13267            },
13268            Opcode::FMINQ => Inst {
13269                opcode: 0x53,
13270                funct3: 0x0,
13271                rs1: 0x0,
13272                rs2: 0x0,
13273                csr: 0x2e0,
13274                funct7: 0x17,
13275            },
13276            Opcode::FMINS => Inst {
13277                opcode: 0x53,
13278                funct3: 0x0,
13279                rs1: 0x0,
13280                rs2: 0x0,
13281                csr: 0x280,
13282                funct7: 0x14,
13283            },
13284            Opcode::FMINMD => Inst {
13285                opcode: 0x53,
13286                funct3: 0x2,
13287                rs1: 0x0,
13288                rs2: 0x0,
13289                csr: 0x2a0,
13290                funct7: 0x15,
13291            },
13292            Opcode::FMINMH => Inst {
13293                opcode: 0x53,
13294                funct3: 0x2,
13295                rs1: 0x0,
13296                rs2: 0x0,
13297                csr: 0x2c0,
13298                funct7: 0x16,
13299            },
13300            Opcode::FMINMQ => Inst {
13301                opcode: 0x53,
13302                funct3: 0x2,
13303                rs1: 0x0,
13304                rs2: 0x0,
13305                csr: 0x2e0,
13306                funct7: 0x17,
13307            },
13308            Opcode::FMINMS => Inst {
13309                opcode: 0x53,
13310                funct3: 0x2,
13311                rs1: 0x0,
13312                rs2: 0x0,
13313                csr: 0x280,
13314                funct7: 0x14,
13315            },
13316            Opcode::FMSUBD => Inst {
13317                opcode: 0x47,
13318                funct3: 0x0,
13319                rs1: 0x0,
13320                rs2: 0x0,
13321                csr: 0x20,
13322                funct7: 0x1,
13323            },
13324            Opcode::FMSUBH => Inst {
13325                opcode: 0x47,
13326                funct3: 0x0,
13327                rs1: 0x0,
13328                rs2: 0x0,
13329                csr: 0x40,
13330                funct7: 0x2,
13331            },
13332            Opcode::FMSUBQ => Inst {
13333                opcode: 0x47,
13334                funct3: 0x0,
13335                rs1: 0x0,
13336                rs2: 0x0,
13337                csr: 0x60,
13338                funct7: 0x3,
13339            },
13340            Opcode::FMSUBS => Inst {
13341                opcode: 0x47,
13342                funct3: 0x0,
13343                rs1: 0x0,
13344                rs2: 0x0,
13345                csr: 0x0,
13346                funct7: 0x0,
13347            },
13348            Opcode::FMULD => Inst {
13349                opcode: 0x53,
13350                funct3: 0x0,
13351                rs1: 0x0,
13352                rs2: 0x0,
13353                csr: 0x120,
13354                funct7: 0x9,
13355            },
13356            Opcode::FMULH => Inst {
13357                opcode: 0x53,
13358                funct3: 0x0,
13359                rs1: 0x0,
13360                rs2: 0x0,
13361                csr: 0x140,
13362                funct7: 0xa,
13363            },
13364            Opcode::FMULQ => Inst {
13365                opcode: 0x53,
13366                funct3: 0x0,
13367                rs1: 0x0,
13368                rs2: 0x0,
13369                csr: 0x160,
13370                funct7: 0xb,
13371            },
13372            Opcode::FMULS => Inst {
13373                opcode: 0x53,
13374                funct3: 0x0,
13375                rs1: 0x0,
13376                rs2: 0x0,
13377                csr: 0x100,
13378                funct7: 0x8,
13379            },
13380            Opcode::FMVD => Inst {
13381                opcode: 0x53,
13382                funct3: 0x0,
13383                rs1: 0x0,
13384                rs2: 0x0,
13385                csr: 0x220,
13386                funct7: 0x11,
13387            },
13388            Opcode::FMVDX => Inst {
13389                opcode: 0x53,
13390                funct3: 0x0,
13391                rs1: 0x0,
13392                rs2: 0x0,
13393                csr: 0xf20,
13394                funct7: 0x79,
13395            },
13396            Opcode::FMVH => Inst {
13397                opcode: 0x53,
13398                funct3: 0x0,
13399                rs1: 0x0,
13400                rs2: 0x0,
13401                csr: 0x240,
13402                funct7: 0x12,
13403            },
13404            Opcode::FMVHX => Inst {
13405                opcode: 0x53,
13406                funct3: 0x0,
13407                rs1: 0x0,
13408                rs2: 0x0,
13409                csr: 0xf40,
13410                funct7: 0x7a,
13411            },
13412            Opcode::FMVQ => Inst {
13413                opcode: 0x53,
13414                funct3: 0x0,
13415                rs1: 0x0,
13416                rs2: 0x0,
13417                csr: 0x260,
13418                funct7: 0x13,
13419            },
13420            Opcode::FMVS => Inst {
13421                opcode: 0x53,
13422                funct3: 0x0,
13423                rs1: 0x0,
13424                rs2: 0x0,
13425                csr: 0x200,
13426                funct7: 0x10,
13427            },
13428            Opcode::FMVSX => Inst {
13429                opcode: 0x53,
13430                funct3: 0x0,
13431                rs1: 0x0,
13432                rs2: 0x0,
13433                csr: 0xf00,
13434                funct7: 0x78,
13435            },
13436            Opcode::FMVWX => Inst {
13437                opcode: 0x53,
13438                funct3: 0x0,
13439                rs1: 0x0,
13440                rs2: 0x0,
13441                csr: 0xf00,
13442                funct7: 0x78,
13443            },
13444            Opcode::FMVXD => Inst {
13445                opcode: 0x53,
13446                funct3: 0x0,
13447                rs1: 0x0,
13448                rs2: 0x0,
13449                csr: 0xe20,
13450                funct7: 0x71,
13451            },
13452            Opcode::FMVXH => Inst {
13453                opcode: 0x53,
13454                funct3: 0x0,
13455                rs1: 0x0,
13456                rs2: 0x0,
13457                csr: 0xe40,
13458                funct7: 0x72,
13459            },
13460            Opcode::FMVXS => Inst {
13461                opcode: 0x53,
13462                funct3: 0x0,
13463                rs1: 0x0,
13464                rs2: 0x0,
13465                csr: 0xe00,
13466                funct7: 0x70,
13467            },
13468            Opcode::FMVXW => Inst {
13469                opcode: 0x53,
13470                funct3: 0x0,
13471                rs1: 0x0,
13472                rs2: 0x0,
13473                csr: 0xe00,
13474                funct7: 0x70,
13475            },
13476            Opcode::FMVHXD => Inst {
13477                opcode: 0x53,
13478                funct3: 0x0,
13479                rs1: 0x0,
13480                rs2: 0x1,
13481                csr: 0xe21,
13482                funct7: 0x71,
13483            },
13484            Opcode::FMVHXQ => Inst {
13485                opcode: 0x53,
13486                funct3: 0x0,
13487                rs1: 0x0,
13488                rs2: 0x1,
13489                csr: 0xe61,
13490                funct7: 0x73,
13491            },
13492            Opcode::FMVPDX => Inst {
13493                opcode: 0x53,
13494                funct3: 0x0,
13495                rs1: 0x0,
13496                rs2: 0x0,
13497                csr: 0xb20,
13498                funct7: 0x59,
13499            },
13500            Opcode::FMVPQX => Inst {
13501                opcode: 0x53,
13502                funct3: 0x0,
13503                rs1: 0x0,
13504                rs2: 0x0,
13505                csr: 0xb60,
13506                funct7: 0x5b,
13507            },
13508            Opcode::FNEGD => Inst {
13509                opcode: 0x53,
13510                funct3: 0x1,
13511                rs1: 0x0,
13512                rs2: 0x0,
13513                csr: 0x220,
13514                funct7: 0x11,
13515            },
13516            Opcode::FNEGH => Inst {
13517                opcode: 0x53,
13518                funct3: 0x1,
13519                rs1: 0x0,
13520                rs2: 0x0,
13521                csr: 0x240,
13522                funct7: 0x12,
13523            },
13524            Opcode::FNEGQ => Inst {
13525                opcode: 0x53,
13526                funct3: 0x1,
13527                rs1: 0x0,
13528                rs2: 0x0,
13529                csr: 0x260,
13530                funct7: 0x13,
13531            },
13532            Opcode::FNEGS => Inst {
13533                opcode: 0x53,
13534                funct3: 0x1,
13535                rs1: 0x0,
13536                rs2: 0x0,
13537                csr: 0x200,
13538                funct7: 0x10,
13539            },
13540            Opcode::FNMADDD => Inst {
13541                opcode: 0x4f,
13542                funct3: 0x0,
13543                rs1: 0x0,
13544                rs2: 0x0,
13545                csr: 0x20,
13546                funct7: 0x1,
13547            },
13548            Opcode::FNMADDH => Inst {
13549                opcode: 0x4f,
13550                funct3: 0x0,
13551                rs1: 0x0,
13552                rs2: 0x0,
13553                csr: 0x40,
13554                funct7: 0x2,
13555            },
13556            Opcode::FNMADDQ => Inst {
13557                opcode: 0x4f,
13558                funct3: 0x0,
13559                rs1: 0x0,
13560                rs2: 0x0,
13561                csr: 0x60,
13562                funct7: 0x3,
13563            },
13564            Opcode::FNMADDS => Inst {
13565                opcode: 0x4f,
13566                funct3: 0x0,
13567                rs1: 0x0,
13568                rs2: 0x0,
13569                csr: 0x0,
13570                funct7: 0x0,
13571            },
13572            Opcode::FNMSUBD => Inst {
13573                opcode: 0x4b,
13574                funct3: 0x0,
13575                rs1: 0x0,
13576                rs2: 0x0,
13577                csr: 0x20,
13578                funct7: 0x1,
13579            },
13580            Opcode::FNMSUBH => Inst {
13581                opcode: 0x4b,
13582                funct3: 0x0,
13583                rs1: 0x0,
13584                rs2: 0x0,
13585                csr: 0x40,
13586                funct7: 0x2,
13587            },
13588            Opcode::FNMSUBQ => Inst {
13589                opcode: 0x4b,
13590                funct3: 0x0,
13591                rs1: 0x0,
13592                rs2: 0x0,
13593                csr: 0x60,
13594                funct7: 0x3,
13595            },
13596            Opcode::FNMSUBS => Inst {
13597                opcode: 0x4b,
13598                funct3: 0x0,
13599                rs1: 0x0,
13600                rs2: 0x0,
13601                csr: 0x0,
13602                funct7: 0x0,
13603            },
13604            Opcode::FRCSR => Inst {
13605                opcode: 0x73,
13606                funct3: 0x2,
13607                rs1: 0x0,
13608                rs2: 0x3,
13609                csr: 0x3,
13610                funct7: 0x0,
13611            },
13612            Opcode::FRFLAGS => Inst {
13613                opcode: 0x73,
13614                funct3: 0x2,
13615                rs1: 0x0,
13616                rs2: 0x1,
13617                csr: 0x1,
13618                funct7: 0x0,
13619            },
13620            Opcode::FROUNDD => Inst {
13621                opcode: 0x53,
13622                funct3: 0x0,
13623                rs1: 0x0,
13624                rs2: 0x4,
13625                csr: 0x424,
13626                funct7: 0x21,
13627            },
13628            Opcode::FROUNDH => Inst {
13629                opcode: 0x53,
13630                funct3: 0x0,
13631                rs1: 0x0,
13632                rs2: 0x4,
13633                csr: 0x444,
13634                funct7: 0x22,
13635            },
13636            Opcode::FROUNDQ => Inst {
13637                opcode: 0x53,
13638                funct3: 0x0,
13639                rs1: 0x0,
13640                rs2: 0x4,
13641                csr: 0x464,
13642                funct7: 0x23,
13643            },
13644            Opcode::FROUNDS => Inst {
13645                opcode: 0x53,
13646                funct3: 0x0,
13647                rs1: 0x0,
13648                rs2: 0x4,
13649                csr: 0x404,
13650                funct7: 0x20,
13651            },
13652            Opcode::FROUNDNXD => Inst {
13653                opcode: 0x53,
13654                funct3: 0x0,
13655                rs1: 0x0,
13656                rs2: 0x5,
13657                csr: 0x425,
13658                funct7: 0x21,
13659            },
13660            Opcode::FROUNDNXH => Inst {
13661                opcode: 0x53,
13662                funct3: 0x0,
13663                rs1: 0x0,
13664                rs2: 0x5,
13665                csr: 0x445,
13666                funct7: 0x22,
13667            },
13668            Opcode::FROUNDNXQ => Inst {
13669                opcode: 0x53,
13670                funct3: 0x0,
13671                rs1: 0x0,
13672                rs2: 0x5,
13673                csr: 0x465,
13674                funct7: 0x23,
13675            },
13676            Opcode::FROUNDNXS => Inst {
13677                opcode: 0x53,
13678                funct3: 0x0,
13679                rs1: 0x0,
13680                rs2: 0x5,
13681                csr: 0x405,
13682                funct7: 0x20,
13683            },
13684            Opcode::FRRM => Inst {
13685                opcode: 0x73,
13686                funct3: 0x2,
13687                rs1: 0x0,
13688                rs2: 0x2,
13689                csr: 0x2,
13690                funct7: 0x0,
13691            },
13692            Opcode::FSCSR => Inst {
13693                opcode: 0x73,
13694                funct3: 0x1,
13695                rs1: 0x0,
13696                rs2: 0x3,
13697                csr: 0x3,
13698                funct7: 0x0,
13699            },
13700            Opcode::FSD => Inst {
13701                opcode: 0x27,
13702                funct3: 0x3,
13703                rs1: 0x0,
13704                rs2: 0x0,
13705                csr: 0x0,
13706                funct7: 0x0,
13707            },
13708            Opcode::FSFLAGS => Inst {
13709                opcode: 0x73,
13710                funct3: 0x1,
13711                rs1: 0x0,
13712                rs2: 0x1,
13713                csr: 0x1,
13714                funct7: 0x0,
13715            },
13716            Opcode::FSFLAGSI => Inst {
13717                opcode: 0x73,
13718                funct3: 0x5,
13719                rs1: 0x0,
13720                rs2: 0x1,
13721                csr: 0x1,
13722                funct7: 0x0,
13723            },
13724            Opcode::FSGNJD => Inst {
13725                opcode: 0x53,
13726                funct3: 0x0,
13727                rs1: 0x0,
13728                rs2: 0x0,
13729                csr: 0x220,
13730                funct7: 0x11,
13731            },
13732            Opcode::FSGNJH => Inst {
13733                opcode: 0x53,
13734                funct3: 0x0,
13735                rs1: 0x0,
13736                rs2: 0x0,
13737                csr: 0x240,
13738                funct7: 0x12,
13739            },
13740            Opcode::FSGNJQ => Inst {
13741                opcode: 0x53,
13742                funct3: 0x0,
13743                rs1: 0x0,
13744                rs2: 0x0,
13745                csr: 0x260,
13746                funct7: 0x13,
13747            },
13748            Opcode::FSGNJS => Inst {
13749                opcode: 0x53,
13750                funct3: 0x0,
13751                rs1: 0x0,
13752                rs2: 0x0,
13753                csr: 0x200,
13754                funct7: 0x10,
13755            },
13756            Opcode::FSGNJND => Inst {
13757                opcode: 0x53,
13758                funct3: 0x1,
13759                rs1: 0x0,
13760                rs2: 0x0,
13761                csr: 0x220,
13762                funct7: 0x11,
13763            },
13764            Opcode::FSGNJNH => Inst {
13765                opcode: 0x53,
13766                funct3: 0x1,
13767                rs1: 0x0,
13768                rs2: 0x0,
13769                csr: 0x240,
13770                funct7: 0x12,
13771            },
13772            Opcode::FSGNJNQ => Inst {
13773                opcode: 0x53,
13774                funct3: 0x1,
13775                rs1: 0x0,
13776                rs2: 0x0,
13777                csr: 0x260,
13778                funct7: 0x13,
13779            },
13780            Opcode::FSGNJNS => Inst {
13781                opcode: 0x53,
13782                funct3: 0x1,
13783                rs1: 0x0,
13784                rs2: 0x0,
13785                csr: 0x200,
13786                funct7: 0x10,
13787            },
13788            Opcode::FSGNJXD => Inst {
13789                opcode: 0x53,
13790                funct3: 0x2,
13791                rs1: 0x0,
13792                rs2: 0x0,
13793                csr: 0x220,
13794                funct7: 0x11,
13795            },
13796            Opcode::FSGNJXH => Inst {
13797                opcode: 0x53,
13798                funct3: 0x2,
13799                rs1: 0x0,
13800                rs2: 0x0,
13801                csr: 0x240,
13802                funct7: 0x12,
13803            },
13804            Opcode::FSGNJXQ => Inst {
13805                opcode: 0x53,
13806                funct3: 0x2,
13807                rs1: 0x0,
13808                rs2: 0x0,
13809                csr: 0x260,
13810                funct7: 0x13,
13811            },
13812            Opcode::FSGNJXS => Inst {
13813                opcode: 0x53,
13814                funct3: 0x2,
13815                rs1: 0x0,
13816                rs2: 0x0,
13817                csr: 0x200,
13818                funct7: 0x10,
13819            },
13820            Opcode::FSH => Inst {
13821                opcode: 0x27,
13822                funct3: 0x1,
13823                rs1: 0x0,
13824                rs2: 0x0,
13825                csr: 0x0,
13826                funct7: 0x0,
13827            },
13828            Opcode::FSQ => Inst {
13829                opcode: 0x27,
13830                funct3: 0x4,
13831                rs1: 0x0,
13832                rs2: 0x0,
13833                csr: 0x0,
13834                funct7: 0x0,
13835            },
13836            Opcode::FSQRTD => Inst {
13837                opcode: 0x53,
13838                funct3: 0x0,
13839                rs1: 0x0,
13840                rs2: 0x0,
13841                csr: 0x5a0,
13842                funct7: 0x2d,
13843            },
13844            Opcode::FSQRTH => Inst {
13845                opcode: 0x53,
13846                funct3: 0x0,
13847                rs1: 0x0,
13848                rs2: 0x0,
13849                csr: 0x5c0,
13850                funct7: 0x2e,
13851            },
13852            Opcode::FSQRTQ => Inst {
13853                opcode: 0x53,
13854                funct3: 0x0,
13855                rs1: 0x0,
13856                rs2: 0x0,
13857                csr: 0x5e0,
13858                funct7: 0x2f,
13859            },
13860            Opcode::FSQRTS => Inst {
13861                opcode: 0x53,
13862                funct3: 0x0,
13863                rs1: 0x0,
13864                rs2: 0x0,
13865                csr: 0x580,
13866                funct7: 0x2c,
13867            },
13868            Opcode::FSRM => Inst {
13869                opcode: 0x73,
13870                funct3: 0x1,
13871                rs1: 0x0,
13872                rs2: 0x2,
13873                csr: 0x2,
13874                funct7: 0x0,
13875            },
13876            Opcode::FSRMI => Inst {
13877                opcode: 0x73,
13878                funct3: 0x5,
13879                rs1: 0x0,
13880                rs2: 0x2,
13881                csr: 0x2,
13882                funct7: 0x0,
13883            },
13884            Opcode::FSUBD => Inst {
13885                opcode: 0x53,
13886                funct3: 0x0,
13887                rs1: 0x0,
13888                rs2: 0x0,
13889                csr: 0xa0,
13890                funct7: 0x5,
13891            },
13892            Opcode::FSUBH => Inst {
13893                opcode: 0x53,
13894                funct3: 0x0,
13895                rs1: 0x0,
13896                rs2: 0x0,
13897                csr: 0xc0,
13898                funct7: 0x6,
13899            },
13900            Opcode::FSUBQ => Inst {
13901                opcode: 0x53,
13902                funct3: 0x0,
13903                rs1: 0x0,
13904                rs2: 0x0,
13905                csr: 0xe0,
13906                funct7: 0x7,
13907            },
13908            Opcode::FSUBS => Inst {
13909                opcode: 0x53,
13910                funct3: 0x0,
13911                rs1: 0x0,
13912                rs2: 0x0,
13913                csr: 0x80,
13914                funct7: 0x4,
13915            },
13916            Opcode::FSW => Inst {
13917                opcode: 0x27,
13918                funct3: 0x2,
13919                rs1: 0x0,
13920                rs2: 0x0,
13921                csr: 0x0,
13922                funct7: 0x0,
13923            },
13924            Opcode::HFENCEGVMA => Inst {
13925                opcode: 0x73,
13926                funct3: 0x0,
13927                rs1: 0x0,
13928                rs2: 0x0,
13929                csr: 0x620,
13930                funct7: 0x31,
13931            },
13932            Opcode::HFENCEVVMA => Inst {
13933                opcode: 0x73,
13934                funct3: 0x0,
13935                rs1: 0x0,
13936                rs2: 0x0,
13937                csr: 0x220,
13938                funct7: 0x11,
13939            },
13940            Opcode::HINVALGVMA => Inst {
13941                opcode: 0x73,
13942                funct3: 0x0,
13943                rs1: 0x0,
13944                rs2: 0x0,
13945                csr: 0x660,
13946                funct7: 0x33,
13947            },
13948            Opcode::HINVALVVMA => Inst {
13949                opcode: 0x73,
13950                funct3: 0x0,
13951                rs1: 0x0,
13952                rs2: 0x0,
13953                csr: 0x260,
13954                funct7: 0x13,
13955            },
13956            Opcode::HLVB => Inst {
13957                opcode: 0x73,
13958                funct3: 0x4,
13959                rs1: 0x0,
13960                rs2: 0x0,
13961                csr: 0x600,
13962                funct7: 0x30,
13963            },
13964            Opcode::HLVBU => Inst {
13965                opcode: 0x73,
13966                funct3: 0x4,
13967                rs1: 0x0,
13968                rs2: 0x1,
13969                csr: 0x601,
13970                funct7: 0x30,
13971            },
13972            Opcode::HLVD => Inst {
13973                opcode: 0x73,
13974                funct3: 0x4,
13975                rs1: 0x0,
13976                rs2: 0x0,
13977                csr: 0x6c0,
13978                funct7: 0x36,
13979            },
13980            Opcode::HLVH => Inst {
13981                opcode: 0x73,
13982                funct3: 0x4,
13983                rs1: 0x0,
13984                rs2: 0x0,
13985                csr: 0x640,
13986                funct7: 0x32,
13987            },
13988            Opcode::HLVHU => Inst {
13989                opcode: 0x73,
13990                funct3: 0x4,
13991                rs1: 0x0,
13992                rs2: 0x1,
13993                csr: 0x641,
13994                funct7: 0x32,
13995            },
13996            Opcode::HLVW => Inst {
13997                opcode: 0x73,
13998                funct3: 0x4,
13999                rs1: 0x0,
14000                rs2: 0x0,
14001                csr: 0x680,
14002                funct7: 0x34,
14003            },
14004            Opcode::HLVWU => Inst {
14005                opcode: 0x73,
14006                funct3: 0x4,
14007                rs1: 0x0,
14008                rs2: 0x1,
14009                csr: 0x681,
14010                funct7: 0x34,
14011            },
14012            Opcode::HLVXHU => Inst {
14013                opcode: 0x73,
14014                funct3: 0x4,
14015                rs1: 0x0,
14016                rs2: 0x3,
14017                csr: 0x643,
14018                funct7: 0x32,
14019            },
14020            Opcode::HLVXWU => Inst {
14021                opcode: 0x73,
14022                funct3: 0x4,
14023                rs1: 0x0,
14024                rs2: 0x3,
14025                csr: 0x683,
14026                funct7: 0x34,
14027            },
14028            Opcode::HSVB => Inst {
14029                opcode: 0x73,
14030                funct3: 0x4,
14031                rs1: 0x0,
14032                rs2: 0x0,
14033                csr: 0x620,
14034                funct7: 0x31,
14035            },
14036            Opcode::HSVD => Inst {
14037                opcode: 0x73,
14038                funct3: 0x4,
14039                rs1: 0x0,
14040                rs2: 0x0,
14041                csr: 0x6e0,
14042                funct7: 0x37,
14043            },
14044            Opcode::HSVH => Inst {
14045                opcode: 0x73,
14046                funct3: 0x4,
14047                rs1: 0x0,
14048                rs2: 0x0,
14049                csr: 0x660,
14050                funct7: 0x33,
14051            },
14052            Opcode::HSVW => Inst {
14053                opcode: 0x73,
14054                funct3: 0x4,
14055                rs1: 0x0,
14056                rs2: 0x0,
14057                csr: 0x6a0,
14058                funct7: 0x35,
14059            },
14060            Opcode::J => Inst {
14061                opcode: 0x6f,
14062                funct3: 0x0,
14063                rs1: 0x0,
14064                rs2: 0x0,
14065                csr: 0x0,
14066                funct7: 0x0,
14067            },
14068            Opcode::JAL => Inst {
14069                opcode: 0x6f,
14070                funct3: 0x0,
14071                rs1: 0x0,
14072                rs2: 0x0,
14073                csr: 0x0,
14074                funct7: 0x0,
14075            },
14076            Opcode::JALPSEUDO => Inst {
14077                opcode: 0x6f,
14078                funct3: 0x0,
14079                rs1: 0x0,
14080                rs2: 0x0,
14081                csr: 0x0,
14082                funct7: 0x0,
14083            },
14084            Opcode::JALR => Inst {
14085                opcode: 0x67,
14086                funct3: 0x0,
14087                rs1: 0x0,
14088                rs2: 0x0,
14089                csr: 0x0,
14090                funct7: 0x0,
14091            },
14092            Opcode::JALRPSEUDO => Inst {
14093                opcode: 0x67,
14094                funct3: 0x0,
14095                rs1: 0x0,
14096                rs2: 0x0,
14097                csr: 0x0,
14098                funct7: 0x0,
14099            },
14100            Opcode::JR => Inst {
14101                opcode: 0x67,
14102                funct3: 0x0,
14103                rs1: 0x0,
14104                rs2: 0x0,
14105                csr: 0x0,
14106                funct7: 0x0,
14107            },
14108            Opcode::LB => Inst {
14109                opcode: 0x3,
14110                funct3: 0x0,
14111                rs1: 0x0,
14112                rs2: 0x0,
14113                csr: 0x0,
14114                funct7: 0x0,
14115            },
14116            Opcode::LBU => Inst {
14117                opcode: 0x3,
14118                funct3: 0x4,
14119                rs1: 0x0,
14120                rs2: 0x0,
14121                csr: 0x0,
14122                funct7: 0x0,
14123            },
14124            Opcode::LD => Inst {
14125                opcode: 0x3,
14126                funct3: 0x3,
14127                rs1: 0x0,
14128                rs2: 0x0,
14129                csr: 0x0,
14130                funct7: 0x0,
14131            },
14132            Opcode::LH => Inst {
14133                opcode: 0x3,
14134                funct3: 0x1,
14135                rs1: 0x0,
14136                rs2: 0x0,
14137                csr: 0x0,
14138                funct7: 0x0,
14139            },
14140            Opcode::LHU => Inst {
14141                opcode: 0x3,
14142                funct3: 0x5,
14143                rs1: 0x0,
14144                rs2: 0x0,
14145                csr: 0x0,
14146                funct7: 0x0,
14147            },
14148            Opcode::LRD => Inst {
14149                opcode: 0x2f,
14150                funct3: 0x3,
14151                rs1: 0x0,
14152                rs2: 0x0,
14153                csr: 0x100,
14154                funct7: 0x8,
14155            },
14156            Opcode::LRW => Inst {
14157                opcode: 0x2f,
14158                funct3: 0x2,
14159                rs1: 0x0,
14160                rs2: 0x0,
14161                csr: 0x100,
14162                funct7: 0x8,
14163            },
14164            Opcode::LUI => Inst {
14165                opcode: 0x37,
14166                funct3: 0x0,
14167                rs1: 0x0,
14168                rs2: 0x0,
14169                csr: 0x0,
14170                funct7: 0x0,
14171            },
14172            Opcode::LW => Inst {
14173                opcode: 0x3,
14174                funct3: 0x2,
14175                rs1: 0x0,
14176                rs2: 0x0,
14177                csr: 0x0,
14178                funct7: 0x0,
14179            },
14180            Opcode::LWU => Inst {
14181                opcode: 0x3,
14182                funct3: 0x6,
14183                rs1: 0x0,
14184                rs2: 0x0,
14185                csr: 0x0,
14186                funct7: 0x0,
14187            },
14188            Opcode::MAX => Inst {
14189                opcode: 0x33,
14190                funct3: 0x6,
14191                rs1: 0x0,
14192                rs2: 0x0,
14193                csr: 0xa0,
14194                funct7: 0x5,
14195            },
14196            Opcode::MAXU => Inst {
14197                opcode: 0x33,
14198                funct3: 0x7,
14199                rs1: 0x0,
14200                rs2: 0x0,
14201                csr: 0xa0,
14202                funct7: 0x5,
14203            },
14204            Opcode::MIN => Inst {
14205                opcode: 0x33,
14206                funct3: 0x4,
14207                rs1: 0x0,
14208                rs2: 0x0,
14209                csr: 0xa0,
14210                funct7: 0x5,
14211            },
14212            Opcode::MINU => Inst {
14213                opcode: 0x33,
14214                funct3: 0x5,
14215                rs1: 0x0,
14216                rs2: 0x0,
14217                csr: 0xa0,
14218                funct7: 0x5,
14219            },
14220            Opcode::MOPR0 => Inst {
14221                opcode: 0x73,
14222                funct3: 0x4,
14223                rs1: 0x0,
14224                rs2: 0x1c,
14225                csr: 0x81c,
14226                funct7: 0x40,
14227            },
14228            Opcode::MOPR1 => Inst {
14229                opcode: 0x73,
14230                funct3: 0x4,
14231                rs1: 0x0,
14232                rs2: 0x1d,
14233                csr: 0x81d,
14234                funct7: 0x40,
14235            },
14236            Opcode::MOPR10 => Inst {
14237                opcode: 0x73,
14238                funct3: 0x4,
14239                rs1: 0x0,
14240                rs2: 0x1e,
14241                csr: 0x89e,
14242                funct7: 0x44,
14243            },
14244            Opcode::MOPR11 => Inst {
14245                opcode: 0x73,
14246                funct3: 0x4,
14247                rs1: 0x0,
14248                rs2: 0x1f,
14249                csr: 0x89f,
14250                funct7: 0x44,
14251            },
14252            Opcode::MOPR12 => Inst {
14253                opcode: 0x73,
14254                funct3: 0x4,
14255                rs1: 0x0,
14256                rs2: 0x1c,
14257                csr: 0x8dc,
14258                funct7: 0x46,
14259            },
14260            Opcode::MOPR13 => Inst {
14261                opcode: 0x73,
14262                funct3: 0x4,
14263                rs1: 0x0,
14264                rs2: 0x1d,
14265                csr: 0x8dd,
14266                funct7: 0x46,
14267            },
14268            Opcode::MOPR14 => Inst {
14269                opcode: 0x73,
14270                funct3: 0x4,
14271                rs1: 0x0,
14272                rs2: 0x1e,
14273                csr: 0x8de,
14274                funct7: 0x46,
14275            },
14276            Opcode::MOPR15 => Inst {
14277                opcode: 0x73,
14278                funct3: 0x4,
14279                rs1: 0x0,
14280                rs2: 0x1f,
14281                csr: 0x8df,
14282                funct7: 0x46,
14283            },
14284            Opcode::MOPR16 => Inst {
14285                opcode: 0x73,
14286                funct3: 0x4,
14287                rs1: 0x0,
14288                rs2: 0x1c,
14289                csr: 0xc1c,
14290                funct7: 0x60,
14291            },
14292            Opcode::MOPR17 => Inst {
14293                opcode: 0x73,
14294                funct3: 0x4,
14295                rs1: 0x0,
14296                rs2: 0x1d,
14297                csr: 0xc1d,
14298                funct7: 0x60,
14299            },
14300            Opcode::MOPR18 => Inst {
14301                opcode: 0x73,
14302                funct3: 0x4,
14303                rs1: 0x0,
14304                rs2: 0x1e,
14305                csr: 0xc1e,
14306                funct7: 0x60,
14307            },
14308            Opcode::MOPR19 => Inst {
14309                opcode: 0x73,
14310                funct3: 0x4,
14311                rs1: 0x0,
14312                rs2: 0x1f,
14313                csr: 0xc1f,
14314                funct7: 0x60,
14315            },
14316            Opcode::MOPR2 => Inst {
14317                opcode: 0x73,
14318                funct3: 0x4,
14319                rs1: 0x0,
14320                rs2: 0x1e,
14321                csr: 0x81e,
14322                funct7: 0x40,
14323            },
14324            Opcode::MOPR20 => Inst {
14325                opcode: 0x73,
14326                funct3: 0x4,
14327                rs1: 0x0,
14328                rs2: 0x1c,
14329                csr: 0xc5c,
14330                funct7: 0x62,
14331            },
14332            Opcode::MOPR21 => Inst {
14333                opcode: 0x73,
14334                funct3: 0x4,
14335                rs1: 0x0,
14336                rs2: 0x1d,
14337                csr: 0xc5d,
14338                funct7: 0x62,
14339            },
14340            Opcode::MOPR22 => Inst {
14341                opcode: 0x73,
14342                funct3: 0x4,
14343                rs1: 0x0,
14344                rs2: 0x1e,
14345                csr: 0xc5e,
14346                funct7: 0x62,
14347            },
14348            Opcode::MOPR23 => Inst {
14349                opcode: 0x73,
14350                funct3: 0x4,
14351                rs1: 0x0,
14352                rs2: 0x1f,
14353                csr: 0xc5f,
14354                funct7: 0x62,
14355            },
14356            Opcode::MOPR24 => Inst {
14357                opcode: 0x73,
14358                funct3: 0x4,
14359                rs1: 0x0,
14360                rs2: 0x1c,
14361                csr: 0xc9c,
14362                funct7: 0x64,
14363            },
14364            Opcode::MOPR25 => Inst {
14365                opcode: 0x73,
14366                funct3: 0x4,
14367                rs1: 0x0,
14368                rs2: 0x1d,
14369                csr: 0xc9d,
14370                funct7: 0x64,
14371            },
14372            Opcode::MOPR26 => Inst {
14373                opcode: 0x73,
14374                funct3: 0x4,
14375                rs1: 0x0,
14376                rs2: 0x1e,
14377                csr: 0xc9e,
14378                funct7: 0x64,
14379            },
14380            Opcode::MOPR27 => Inst {
14381                opcode: 0x73,
14382                funct3: 0x4,
14383                rs1: 0x0,
14384                rs2: 0x1f,
14385                csr: 0xc9f,
14386                funct7: 0x64,
14387            },
14388            Opcode::MOPR28 => Inst {
14389                opcode: 0x73,
14390                funct3: 0x4,
14391                rs1: 0x0,
14392                rs2: 0x1c,
14393                csr: 0xcdc,
14394                funct7: 0x66,
14395            },
14396            Opcode::MOPR29 => Inst {
14397                opcode: 0x73,
14398                funct3: 0x4,
14399                rs1: 0x0,
14400                rs2: 0x1d,
14401                csr: 0xcdd,
14402                funct7: 0x66,
14403            },
14404            Opcode::MOPR3 => Inst {
14405                opcode: 0x73,
14406                funct3: 0x4,
14407                rs1: 0x0,
14408                rs2: 0x1f,
14409                csr: 0x81f,
14410                funct7: 0x40,
14411            },
14412            Opcode::MOPR30 => Inst {
14413                opcode: 0x73,
14414                funct3: 0x4,
14415                rs1: 0x0,
14416                rs2: 0x1e,
14417                csr: 0xcde,
14418                funct7: 0x66,
14419            },
14420            Opcode::MOPR31 => Inst {
14421                opcode: 0x73,
14422                funct3: 0x4,
14423                rs1: 0x0,
14424                rs2: 0x1f,
14425                csr: 0xcdf,
14426                funct7: 0x66,
14427            },
14428            Opcode::MOPR4 => Inst {
14429                opcode: 0x73,
14430                funct3: 0x4,
14431                rs1: 0x0,
14432                rs2: 0x1c,
14433                csr: 0x85c,
14434                funct7: 0x42,
14435            },
14436            Opcode::MOPR5 => Inst {
14437                opcode: 0x73,
14438                funct3: 0x4,
14439                rs1: 0x0,
14440                rs2: 0x1d,
14441                csr: 0x85d,
14442                funct7: 0x42,
14443            },
14444            Opcode::MOPR6 => Inst {
14445                opcode: 0x73,
14446                funct3: 0x4,
14447                rs1: 0x0,
14448                rs2: 0x1e,
14449                csr: 0x85e,
14450                funct7: 0x42,
14451            },
14452            Opcode::MOPR7 => Inst {
14453                opcode: 0x73,
14454                funct3: 0x4,
14455                rs1: 0x0,
14456                rs2: 0x1f,
14457                csr: 0x85f,
14458                funct7: 0x42,
14459            },
14460            Opcode::MOPR8 => Inst {
14461                opcode: 0x73,
14462                funct3: 0x4,
14463                rs1: 0x0,
14464                rs2: 0x1c,
14465                csr: 0x89c,
14466                funct7: 0x44,
14467            },
14468            Opcode::MOPR9 => Inst {
14469                opcode: 0x73,
14470                funct3: 0x4,
14471                rs1: 0x0,
14472                rs2: 0x1d,
14473                csr: 0x89d,
14474                funct7: 0x44,
14475            },
14476            Opcode::MOPRN => Inst {
14477                opcode: 0x73,
14478                funct3: 0x4,
14479                rs1: 0x0,
14480                rs2: 0x1c,
14481                csr: 0x81c,
14482                funct7: 0x40,
14483            },
14484            Opcode::MOPRR0 => Inst {
14485                opcode: 0x73,
14486                funct3: 0x4,
14487                rs1: 0x0,
14488                rs2: 0x0,
14489                csr: 0x820,
14490                funct7: 0x41,
14491            },
14492            Opcode::MOPRR1 => Inst {
14493                opcode: 0x73,
14494                funct3: 0x4,
14495                rs1: 0x0,
14496                rs2: 0x0,
14497                csr: 0x860,
14498                funct7: 0x43,
14499            },
14500            Opcode::MOPRR2 => Inst {
14501                opcode: 0x73,
14502                funct3: 0x4,
14503                rs1: 0x0,
14504                rs2: 0x0,
14505                csr: 0x8a0,
14506                funct7: 0x45,
14507            },
14508            Opcode::MOPRR3 => Inst {
14509                opcode: 0x73,
14510                funct3: 0x4,
14511                rs1: 0x0,
14512                rs2: 0x0,
14513                csr: 0x8e0,
14514                funct7: 0x47,
14515            },
14516            Opcode::MOPRR4 => Inst {
14517                opcode: 0x73,
14518                funct3: 0x4,
14519                rs1: 0x0,
14520                rs2: 0x0,
14521                csr: 0xc20,
14522                funct7: 0x61,
14523            },
14524            Opcode::MOPRR5 => Inst {
14525                opcode: 0x73,
14526                funct3: 0x4,
14527                rs1: 0x0,
14528                rs2: 0x0,
14529                csr: 0xc60,
14530                funct7: 0x63,
14531            },
14532            Opcode::MOPRR6 => Inst {
14533                opcode: 0x73,
14534                funct3: 0x4,
14535                rs1: 0x0,
14536                rs2: 0x0,
14537                csr: 0xca0,
14538                funct7: 0x65,
14539            },
14540            Opcode::MOPRR7 => Inst {
14541                opcode: 0x73,
14542                funct3: 0x4,
14543                rs1: 0x0,
14544                rs2: 0x0,
14545                csr: 0xce0,
14546                funct7: 0x67,
14547            },
14548            Opcode::MOPRRN => Inst {
14549                opcode: 0x73,
14550                funct3: 0x4,
14551                rs1: 0x0,
14552                rs2: 0x0,
14553                csr: 0x820,
14554                funct7: 0x41,
14555            },
14556            Opcode::MRET => Inst {
14557                opcode: 0x73,
14558                funct3: 0x0,
14559                rs1: 0x0,
14560                rs2: 0x2,
14561                csr: 0x302,
14562                funct7: 0x18,
14563            },
14564            Opcode::MUL => Inst {
14565                opcode: 0x33,
14566                funct3: 0x0,
14567                rs1: 0x0,
14568                rs2: 0x0,
14569                csr: 0x20,
14570                funct7: 0x1,
14571            },
14572            Opcode::MULH => Inst {
14573                opcode: 0x33,
14574                funct3: 0x1,
14575                rs1: 0x0,
14576                rs2: 0x0,
14577                csr: 0x20,
14578                funct7: 0x1,
14579            },
14580            Opcode::MULHSU => Inst {
14581                opcode: 0x33,
14582                funct3: 0x2,
14583                rs1: 0x0,
14584                rs2: 0x0,
14585                csr: 0x20,
14586                funct7: 0x1,
14587            },
14588            Opcode::MULHU => Inst {
14589                opcode: 0x33,
14590                funct3: 0x3,
14591                rs1: 0x0,
14592                rs2: 0x0,
14593                csr: 0x20,
14594                funct7: 0x1,
14595            },
14596            Opcode::MULW => Inst {
14597                opcode: 0x3b,
14598                funct3: 0x0,
14599                rs1: 0x0,
14600                rs2: 0x0,
14601                csr: 0x20,
14602                funct7: 0x1,
14603            },
14604            Opcode::MV => Inst {
14605                opcode: 0x13,
14606                funct3: 0x0,
14607                rs1: 0x0,
14608                rs2: 0x0,
14609                csr: 0x0,
14610                funct7: 0x0,
14611            },
14612            Opcode::NEG => Inst {
14613                opcode: 0x33,
14614                funct3: 0x0,
14615                rs1: 0x0,
14616                rs2: 0x0,
14617                csr: 0x400,
14618                funct7: 0x20,
14619            },
14620            Opcode::NOP => Inst {
14621                opcode: 0x13,
14622                funct3: 0x0,
14623                rs1: 0x0,
14624                rs2: 0x0,
14625                csr: 0x0,
14626                funct7: 0x0,
14627            },
14628            Opcode::NTLALL => Inst {
14629                opcode: 0x33,
14630                funct3: 0x0,
14631                rs1: 0x0,
14632                rs2: 0x5,
14633                csr: 0x5,
14634                funct7: 0x0,
14635            },
14636            Opcode::NTLP1 => Inst {
14637                opcode: 0x33,
14638                funct3: 0x0,
14639                rs1: 0x0,
14640                rs2: 0x2,
14641                csr: 0x2,
14642                funct7: 0x0,
14643            },
14644            Opcode::NTLPALL => Inst {
14645                opcode: 0x33,
14646                funct3: 0x0,
14647                rs1: 0x0,
14648                rs2: 0x3,
14649                csr: 0x3,
14650                funct7: 0x0,
14651            },
14652            Opcode::NTLS1 => Inst {
14653                opcode: 0x33,
14654                funct3: 0x0,
14655                rs1: 0x0,
14656                rs2: 0x4,
14657                csr: 0x4,
14658                funct7: 0x0,
14659            },
14660            Opcode::OR => Inst {
14661                opcode: 0x33,
14662                funct3: 0x6,
14663                rs1: 0x0,
14664                rs2: 0x0,
14665                csr: 0x0,
14666                funct7: 0x0,
14667            },
14668            Opcode::ORCB => Inst {
14669                opcode: 0x13,
14670                funct3: 0x5,
14671                rs1: 0x0,
14672                rs2: 0x7,
14673                csr: 0x287,
14674                funct7: 0x14,
14675            },
14676            Opcode::ORI => Inst {
14677                opcode: 0x13,
14678                funct3: 0x6,
14679                rs1: 0x0,
14680                rs2: 0x0,
14681                csr: 0x0,
14682                funct7: 0x0,
14683            },
14684            Opcode::ORN => Inst {
14685                opcode: 0x33,
14686                funct3: 0x6,
14687                rs1: 0x0,
14688                rs2: 0x0,
14689                csr: 0x400,
14690                funct7: 0x20,
14691            },
14692            Opcode::PACK => Inst {
14693                opcode: 0x33,
14694                funct3: 0x4,
14695                rs1: 0x0,
14696                rs2: 0x0,
14697                csr: 0x80,
14698                funct7: 0x4,
14699            },
14700            Opcode::PACKH => Inst {
14701                opcode: 0x33,
14702                funct3: 0x7,
14703                rs1: 0x0,
14704                rs2: 0x0,
14705                csr: 0x80,
14706                funct7: 0x4,
14707            },
14708            Opcode::PACKW => Inst {
14709                opcode: 0x3b,
14710                funct3: 0x4,
14711                rs1: 0x0,
14712                rs2: 0x0,
14713                csr: 0x80,
14714                funct7: 0x4,
14715            },
14716            Opcode::PAUSE => Inst {
14717                opcode: 0xf,
14718                funct3: 0x0,
14719                rs1: 0x0,
14720                rs2: 0x10,
14721                csr: 0x10,
14722                funct7: 0x0,
14723            },
14724            Opcode::PREFETCHI => Inst {
14725                opcode: 0x13,
14726                funct3: 0x6,
14727                rs1: 0x0,
14728                rs2: 0x0,
14729                csr: 0x0,
14730                funct7: 0x0,
14731            },
14732            Opcode::PREFETCHR => Inst {
14733                opcode: 0x13,
14734                funct3: 0x6,
14735                rs1: 0x0,
14736                rs2: 0x1,
14737                csr: 0x1,
14738                funct7: 0x0,
14739            },
14740            Opcode::PREFETCHW => Inst {
14741                opcode: 0x13,
14742                funct3: 0x6,
14743                rs1: 0x0,
14744                rs2: 0x3,
14745                csr: 0x3,
14746                funct7: 0x0,
14747            },
14748            Opcode::RDCYCLE => Inst {
14749                opcode: 0x73,
14750                funct3: 0x2,
14751                rs1: 0x0,
14752                rs2: 0x0,
14753                csr: 0xc00,
14754                funct7: 0x60,
14755            },
14756            Opcode::RDCYCLEH => Inst {
14757                opcode: 0x73,
14758                funct3: 0x2,
14759                rs1: 0x0,
14760                rs2: 0x0,
14761                csr: 0xc80,
14762                funct7: 0x64,
14763            },
14764            Opcode::RDINSTRET => Inst {
14765                opcode: 0x73,
14766                funct3: 0x2,
14767                rs1: 0x0,
14768                rs2: 0x2,
14769                csr: 0xc02,
14770                funct7: 0x60,
14771            },
14772            Opcode::RDINSTRETH => Inst {
14773                opcode: 0x73,
14774                funct3: 0x2,
14775                rs1: 0x0,
14776                rs2: 0x2,
14777                csr: 0xc82,
14778                funct7: 0x64,
14779            },
14780            Opcode::RDTIME => Inst {
14781                opcode: 0x73,
14782                funct3: 0x2,
14783                rs1: 0x0,
14784                rs2: 0x1,
14785                csr: 0xc01,
14786                funct7: 0x60,
14787            },
14788            Opcode::RDTIMEH => Inst {
14789                opcode: 0x73,
14790                funct3: 0x2,
14791                rs1: 0x0,
14792                rs2: 0x1,
14793                csr: 0xc81,
14794                funct7: 0x64,
14795            },
14796            Opcode::REM => Inst {
14797                opcode: 0x33,
14798                funct3: 0x6,
14799                rs1: 0x0,
14800                rs2: 0x0,
14801                csr: 0x20,
14802                funct7: 0x1,
14803            },
14804            Opcode::REMU => Inst {
14805                opcode: 0x33,
14806                funct3: 0x7,
14807                rs1: 0x0,
14808                rs2: 0x0,
14809                csr: 0x20,
14810                funct7: 0x1,
14811            },
14812            Opcode::REMUW => Inst {
14813                opcode: 0x3b,
14814                funct3: 0x7,
14815                rs1: 0x0,
14816                rs2: 0x0,
14817                csr: 0x20,
14818                funct7: 0x1,
14819            },
14820            Opcode::REMW => Inst {
14821                opcode: 0x3b,
14822                funct3: 0x6,
14823                rs1: 0x0,
14824                rs2: 0x0,
14825                csr: 0x20,
14826                funct7: 0x1,
14827            },
14828            Opcode::RET => Inst {
14829                opcode: 0x67,
14830                funct3: 0x0,
14831                rs1: 0x1,
14832                rs2: 0x0,
14833                csr: 0x0,
14834                funct7: 0x0,
14835            },
14836            Opcode::REV8 => Inst {
14837                opcode: 0x13,
14838                funct3: 0x5,
14839                rs1: 0x0,
14840                rs2: 0x18,
14841                csr: 0x6b8,
14842                funct7: 0x35,
14843            },
14844            Opcode::REV8RV32 => Inst {
14845                opcode: 0x13,
14846                funct3: 0x5,
14847                rs1: 0x0,
14848                rs2: 0x18,
14849                csr: 0x698,
14850                funct7: 0x34,
14851            },
14852            Opcode::ROL => Inst {
14853                opcode: 0x33,
14854                funct3: 0x1,
14855                rs1: 0x0,
14856                rs2: 0x0,
14857                csr: 0x600,
14858                funct7: 0x30,
14859            },
14860            Opcode::ROLW => Inst {
14861                opcode: 0x3b,
14862                funct3: 0x1,
14863                rs1: 0x0,
14864                rs2: 0x0,
14865                csr: 0x600,
14866                funct7: 0x30,
14867            },
14868            Opcode::ROR => Inst {
14869                opcode: 0x33,
14870                funct3: 0x5,
14871                rs1: 0x0,
14872                rs2: 0x0,
14873                csr: 0x600,
14874                funct7: 0x30,
14875            },
14876            Opcode::RORI => Inst {
14877                opcode: 0x13,
14878                funct3: 0x5,
14879                rs1: 0x0,
14880                rs2: 0x0,
14881                csr: 0x600,
14882                funct7: 0x30,
14883            },
14884            Opcode::RORIRV32 => Inst {
14885                opcode: 0x13,
14886                funct3: 0x5,
14887                rs1: 0x0,
14888                rs2: 0x0,
14889                csr: 0x600,
14890                funct7: 0x30,
14891            },
14892            Opcode::RORIW => Inst {
14893                opcode: 0x1b,
14894                funct3: 0x5,
14895                rs1: 0x0,
14896                rs2: 0x0,
14897                csr: 0x600,
14898                funct7: 0x30,
14899            },
14900            Opcode::RORW => Inst {
14901                opcode: 0x3b,
14902                funct3: 0x5,
14903                rs1: 0x0,
14904                rs2: 0x0,
14905                csr: 0x600,
14906                funct7: 0x30,
14907            },
14908            Opcode::SB => Inst {
14909                opcode: 0x23,
14910                funct3: 0x0,
14911                rs1: 0x0,
14912                rs2: 0x0,
14913                csr: 0x0,
14914                funct7: 0x0,
14915            },
14916            Opcode::SBREAK => Inst {
14917                opcode: 0x73,
14918                funct3: 0x0,
14919                rs1: 0x0,
14920                rs2: 0x1,
14921                csr: 0x1,
14922                funct7: 0x0,
14923            },
14924            Opcode::SCD => Inst {
14925                opcode: 0x2f,
14926                funct3: 0x3,
14927                rs1: 0x0,
14928                rs2: 0x0,
14929                csr: 0x180,
14930                funct7: 0xc,
14931            },
14932            Opcode::SCW => Inst {
14933                opcode: 0x2f,
14934                funct3: 0x2,
14935                rs1: 0x0,
14936                rs2: 0x0,
14937                csr: 0x180,
14938                funct7: 0xc,
14939            },
14940            Opcode::SCALL => Inst {
14941                opcode: 0x73,
14942                funct3: 0x0,
14943                rs1: 0x0,
14944                rs2: 0x0,
14945                csr: 0x0,
14946                funct7: 0x0,
14947            },
14948            Opcode::SD => Inst {
14949                opcode: 0x23,
14950                funct3: 0x3,
14951                rs1: 0x0,
14952                rs2: 0x0,
14953                csr: 0x0,
14954                funct7: 0x0,
14955            },
14956            Opcode::SEQZ => Inst {
14957                opcode: 0x13,
14958                funct3: 0x3,
14959                rs1: 0x0,
14960                rs2: 0x1,
14961                csr: 0x1,
14962                funct7: 0x0,
14963            },
14964            Opcode::SEXTB => Inst {
14965                opcode: 0x13,
14966                funct3: 0x1,
14967                rs1: 0x0,
14968                rs2: 0x4,
14969                csr: 0x604,
14970                funct7: 0x30,
14971            },
14972            Opcode::SEXTH => Inst {
14973                opcode: 0x13,
14974                funct3: 0x1,
14975                rs1: 0x0,
14976                rs2: 0x5,
14977                csr: 0x605,
14978                funct7: 0x30,
14979            },
14980            Opcode::SEXTW => Inst {
14981                opcode: 0x1b,
14982                funct3: 0x0,
14983                rs1: 0x0,
14984                rs2: 0x0,
14985                csr: 0x0,
14986                funct7: 0x0,
14987            },
14988            Opcode::SFENCEINVALIR => Inst {
14989                opcode: 0x73,
14990                funct3: 0x0,
14991                rs1: 0x0,
14992                rs2: 0x1,
14993                csr: 0x181,
14994                funct7: 0xc,
14995            },
14996            Opcode::SFENCEVMA => Inst {
14997                opcode: 0x73,
14998                funct3: 0x0,
14999                rs1: 0x0,
15000                rs2: 0x0,
15001                csr: 0x120,
15002                funct7: 0x9,
15003            },
15004            Opcode::SFENCEWINVAL => Inst {
15005                opcode: 0x73,
15006                funct3: 0x0,
15007                rs1: 0x0,
15008                rs2: 0x0,
15009                csr: 0x180,
15010                funct7: 0xc,
15011            },
15012            Opcode::SGTZ => Inst {
15013                opcode: 0x33,
15014                funct3: 0x2,
15015                rs1: 0x0,
15016                rs2: 0x0,
15017                csr: 0x0,
15018                funct7: 0x0,
15019            },
15020            Opcode::SH => Inst {
15021                opcode: 0x23,
15022                funct3: 0x1,
15023                rs1: 0x0,
15024                rs2: 0x0,
15025                csr: 0x0,
15026                funct7: 0x0,
15027            },
15028            Opcode::SH1ADD => Inst {
15029                opcode: 0x33,
15030                funct3: 0x2,
15031                rs1: 0x0,
15032                rs2: 0x0,
15033                csr: 0x200,
15034                funct7: 0x10,
15035            },
15036            Opcode::SH1ADDUW => Inst {
15037                opcode: 0x3b,
15038                funct3: 0x2,
15039                rs1: 0x0,
15040                rs2: 0x0,
15041                csr: 0x200,
15042                funct7: 0x10,
15043            },
15044            Opcode::SH2ADD => Inst {
15045                opcode: 0x33,
15046                funct3: 0x4,
15047                rs1: 0x0,
15048                rs2: 0x0,
15049                csr: 0x200,
15050                funct7: 0x10,
15051            },
15052            Opcode::SH2ADDUW => Inst {
15053                opcode: 0x3b,
15054                funct3: 0x4,
15055                rs1: 0x0,
15056                rs2: 0x0,
15057                csr: 0x200,
15058                funct7: 0x10,
15059            },
15060            Opcode::SH3ADD => Inst {
15061                opcode: 0x33,
15062                funct3: 0x6,
15063                rs1: 0x0,
15064                rs2: 0x0,
15065                csr: 0x200,
15066                funct7: 0x10,
15067            },
15068            Opcode::SH3ADDUW => Inst {
15069                opcode: 0x3b,
15070                funct3: 0x6,
15071                rs1: 0x0,
15072                rs2: 0x0,
15073                csr: 0x200,
15074                funct7: 0x10,
15075            },
15076            Opcode::SHA256SIG0 => Inst {
15077                opcode: 0x13,
15078                funct3: 0x1,
15079                rs1: 0x0,
15080                rs2: 0x2,
15081                csr: 0x102,
15082                funct7: 0x8,
15083            },
15084            Opcode::SHA256SIG1 => Inst {
15085                opcode: 0x13,
15086                funct3: 0x1,
15087                rs1: 0x0,
15088                rs2: 0x3,
15089                csr: 0x103,
15090                funct7: 0x8,
15091            },
15092            Opcode::SHA256SUM0 => Inst {
15093                opcode: 0x13,
15094                funct3: 0x1,
15095                rs1: 0x0,
15096                rs2: 0x0,
15097                csr: 0x100,
15098                funct7: 0x8,
15099            },
15100            Opcode::SHA256SUM1 => Inst {
15101                opcode: 0x13,
15102                funct3: 0x1,
15103                rs1: 0x0,
15104                rs2: 0x1,
15105                csr: 0x101,
15106                funct7: 0x8,
15107            },
15108            Opcode::SHA512SIG0 => Inst {
15109                opcode: 0x13,
15110                funct3: 0x1,
15111                rs1: 0x0,
15112                rs2: 0x6,
15113                csr: 0x106,
15114                funct7: 0x8,
15115            },
15116            Opcode::SHA512SIG0H => Inst {
15117                opcode: 0x33,
15118                funct3: 0x0,
15119                rs1: 0x0,
15120                rs2: 0x0,
15121                csr: 0x5c0,
15122                funct7: 0x2e,
15123            },
15124            Opcode::SHA512SIG0L => Inst {
15125                opcode: 0x33,
15126                funct3: 0x0,
15127                rs1: 0x0,
15128                rs2: 0x0,
15129                csr: 0x540,
15130                funct7: 0x2a,
15131            },
15132            Opcode::SHA512SIG1 => Inst {
15133                opcode: 0x13,
15134                funct3: 0x1,
15135                rs1: 0x0,
15136                rs2: 0x7,
15137                csr: 0x107,
15138                funct7: 0x8,
15139            },
15140            Opcode::SHA512SIG1H => Inst {
15141                opcode: 0x33,
15142                funct3: 0x0,
15143                rs1: 0x0,
15144                rs2: 0x0,
15145                csr: 0x5e0,
15146                funct7: 0x2f,
15147            },
15148            Opcode::SHA512SIG1L => Inst {
15149                opcode: 0x33,
15150                funct3: 0x0,
15151                rs1: 0x0,
15152                rs2: 0x0,
15153                csr: 0x560,
15154                funct7: 0x2b,
15155            },
15156            Opcode::SHA512SUM0 => Inst {
15157                opcode: 0x13,
15158                funct3: 0x1,
15159                rs1: 0x0,
15160                rs2: 0x4,
15161                csr: 0x104,
15162                funct7: 0x8,
15163            },
15164            Opcode::SHA512SUM0R => Inst {
15165                opcode: 0x33,
15166                funct3: 0x0,
15167                rs1: 0x0,
15168                rs2: 0x0,
15169                csr: 0x500,
15170                funct7: 0x28,
15171            },
15172            Opcode::SHA512SUM1 => Inst {
15173                opcode: 0x13,
15174                funct3: 0x1,
15175                rs1: 0x0,
15176                rs2: 0x5,
15177                csr: 0x105,
15178                funct7: 0x8,
15179            },
15180            Opcode::SHA512SUM1R => Inst {
15181                opcode: 0x33,
15182                funct3: 0x0,
15183                rs1: 0x0,
15184                rs2: 0x0,
15185                csr: 0x520,
15186                funct7: 0x29,
15187            },
15188            Opcode::SINVALVMA => Inst {
15189                opcode: 0x73,
15190                funct3: 0x0,
15191                rs1: 0x0,
15192                rs2: 0x0,
15193                csr: 0x160,
15194                funct7: 0xb,
15195            },
15196            Opcode::SLL => Inst {
15197                opcode: 0x33,
15198                funct3: 0x1,
15199                rs1: 0x0,
15200                rs2: 0x0,
15201                csr: 0x0,
15202                funct7: 0x0,
15203            },
15204            Opcode::SLLI => Inst {
15205                opcode: 0x13,
15206                funct3: 0x1,
15207                rs1: 0x0,
15208                rs2: 0x0,
15209                csr: 0x0,
15210                funct7: 0x0,
15211            },
15212            Opcode::SLLIRV32 => Inst {
15213                opcode: 0x13,
15214                funct3: 0x1,
15215                rs1: 0x0,
15216                rs2: 0x0,
15217                csr: 0x0,
15218                funct7: 0x0,
15219            },
15220            Opcode::SLLIUW => Inst {
15221                opcode: 0x1b,
15222                funct3: 0x1,
15223                rs1: 0x0,
15224                rs2: 0x0,
15225                csr: 0x80,
15226                funct7: 0x4,
15227            },
15228            Opcode::SLLIW => Inst {
15229                opcode: 0x1b,
15230                funct3: 0x1,
15231                rs1: 0x0,
15232                rs2: 0x0,
15233                csr: 0x0,
15234                funct7: 0x0,
15235            },
15236            Opcode::SLLW => Inst {
15237                opcode: 0x3b,
15238                funct3: 0x1,
15239                rs1: 0x0,
15240                rs2: 0x0,
15241                csr: 0x0,
15242                funct7: 0x0,
15243            },
15244            Opcode::SLT => Inst {
15245                opcode: 0x33,
15246                funct3: 0x2,
15247                rs1: 0x0,
15248                rs2: 0x0,
15249                csr: 0x0,
15250                funct7: 0x0,
15251            },
15252            Opcode::SLTI => Inst {
15253                opcode: 0x13,
15254                funct3: 0x2,
15255                rs1: 0x0,
15256                rs2: 0x0,
15257                csr: 0x0,
15258                funct7: 0x0,
15259            },
15260            Opcode::SLTIU => Inst {
15261                opcode: 0x13,
15262                funct3: 0x3,
15263                rs1: 0x0,
15264                rs2: 0x0,
15265                csr: 0x0,
15266                funct7: 0x0,
15267            },
15268            Opcode::SLTU => Inst {
15269                opcode: 0x33,
15270                funct3: 0x3,
15271                rs1: 0x0,
15272                rs2: 0x0,
15273                csr: 0x0,
15274                funct7: 0x0,
15275            },
15276            Opcode::SLTZ => Inst {
15277                opcode: 0x33,
15278                funct3: 0x2,
15279                rs1: 0x0,
15280                rs2: 0x0,
15281                csr: 0x0,
15282                funct7: 0x0,
15283            },
15284            Opcode::SM3P0 => Inst {
15285                opcode: 0x13,
15286                funct3: 0x1,
15287                rs1: 0x0,
15288                rs2: 0x8,
15289                csr: 0x108,
15290                funct7: 0x8,
15291            },
15292            Opcode::SM3P1 => Inst {
15293                opcode: 0x13,
15294                funct3: 0x1,
15295                rs1: 0x0,
15296                rs2: 0x9,
15297                csr: 0x109,
15298                funct7: 0x8,
15299            },
15300            Opcode::SM4ED => Inst {
15301                opcode: 0x33,
15302                funct3: 0x0,
15303                rs1: 0x0,
15304                rs2: 0x0,
15305                csr: 0x300,
15306                funct7: 0x18,
15307            },
15308            Opcode::SM4KS => Inst {
15309                opcode: 0x33,
15310                funct3: 0x0,
15311                rs1: 0x0,
15312                rs2: 0x0,
15313                csr: 0x340,
15314                funct7: 0x1a,
15315            },
15316            Opcode::SNEZ => Inst {
15317                opcode: 0x33,
15318                funct3: 0x3,
15319                rs1: 0x0,
15320                rs2: 0x0,
15321                csr: 0x0,
15322                funct7: 0x0,
15323            },
15324            Opcode::SRA => Inst {
15325                opcode: 0x33,
15326                funct3: 0x5,
15327                rs1: 0x0,
15328                rs2: 0x0,
15329                csr: 0x400,
15330                funct7: 0x20,
15331            },
15332            Opcode::SRAI => Inst {
15333                opcode: 0x13,
15334                funct3: 0x5,
15335                rs1: 0x0,
15336                rs2: 0x0,
15337                csr: 0x400,
15338                funct7: 0x20,
15339            },
15340            Opcode::SRAIRV32 => Inst {
15341                opcode: 0x13,
15342                funct3: 0x5,
15343                rs1: 0x0,
15344                rs2: 0x0,
15345                csr: 0x400,
15346                funct7: 0x20,
15347            },
15348            Opcode::SRAIW => Inst {
15349                opcode: 0x1b,
15350                funct3: 0x5,
15351                rs1: 0x0,
15352                rs2: 0x0,
15353                csr: 0x400,
15354                funct7: 0x20,
15355            },
15356            Opcode::SRAW => Inst {
15357                opcode: 0x3b,
15358                funct3: 0x5,
15359                rs1: 0x0,
15360                rs2: 0x0,
15361                csr: 0x400,
15362                funct7: 0x20,
15363            },
15364            Opcode::SRET => Inst {
15365                opcode: 0x73,
15366                funct3: 0x0,
15367                rs1: 0x0,
15368                rs2: 0x2,
15369                csr: 0x102,
15370                funct7: 0x8,
15371            },
15372            Opcode::SRL => Inst {
15373                opcode: 0x33,
15374                funct3: 0x5,
15375                rs1: 0x0,
15376                rs2: 0x0,
15377                csr: 0x0,
15378                funct7: 0x0,
15379            },
15380            Opcode::SRLI => Inst {
15381                opcode: 0x13,
15382                funct3: 0x5,
15383                rs1: 0x0,
15384                rs2: 0x0,
15385                csr: 0x0,
15386                funct7: 0x0,
15387            },
15388            Opcode::SRLIRV32 => Inst {
15389                opcode: 0x13,
15390                funct3: 0x5,
15391                rs1: 0x0,
15392                rs2: 0x0,
15393                csr: 0x0,
15394                funct7: 0x0,
15395            },
15396            Opcode::SRLIW => Inst {
15397                opcode: 0x1b,
15398                funct3: 0x5,
15399                rs1: 0x0,
15400                rs2: 0x0,
15401                csr: 0x0,
15402                funct7: 0x0,
15403            },
15404            Opcode::SRLW => Inst {
15405                opcode: 0x3b,
15406                funct3: 0x5,
15407                rs1: 0x0,
15408                rs2: 0x0,
15409                csr: 0x0,
15410                funct7: 0x0,
15411            },
15412            Opcode::SUB => Inst {
15413                opcode: 0x33,
15414                funct3: 0x0,
15415                rs1: 0x0,
15416                rs2: 0x0,
15417                csr: 0x400,
15418                funct7: 0x20,
15419            },
15420            Opcode::SUBW => Inst {
15421                opcode: 0x3b,
15422                funct3: 0x0,
15423                rs1: 0x0,
15424                rs2: 0x0,
15425                csr: 0x400,
15426                funct7: 0x20,
15427            },
15428            Opcode::SW => Inst {
15429                opcode: 0x23,
15430                funct3: 0x2,
15431                rs1: 0x0,
15432                rs2: 0x0,
15433                csr: 0x0,
15434                funct7: 0x0,
15435            },
15436            Opcode::UNZIP => Inst {
15437                opcode: 0x13,
15438                funct3: 0x5,
15439                rs1: 0x0,
15440                rs2: 0xf,
15441                csr: 0x8f,
15442                funct7: 0x4,
15443            },
15444            Opcode::VAADDVV => Inst {
15445                opcode: 0x57,
15446                funct3: 0x2,
15447                rs1: 0x0,
15448                rs2: 0x0,
15449                csr: 0x240,
15450                funct7: 0x12,
15451            },
15452            Opcode::VAADDVX => Inst {
15453                opcode: 0x57,
15454                funct3: 0x6,
15455                rs1: 0x0,
15456                rs2: 0x0,
15457                csr: 0x240,
15458                funct7: 0x12,
15459            },
15460            Opcode::VAADDUVV => Inst {
15461                opcode: 0x57,
15462                funct3: 0x2,
15463                rs1: 0x0,
15464                rs2: 0x0,
15465                csr: 0x200,
15466                funct7: 0x10,
15467            },
15468            Opcode::VAADDUVX => Inst {
15469                opcode: 0x57,
15470                funct3: 0x6,
15471                rs1: 0x0,
15472                rs2: 0x0,
15473                csr: 0x200,
15474                funct7: 0x10,
15475            },
15476            Opcode::VADCVIM => Inst {
15477                opcode: 0x57,
15478                funct3: 0x3,
15479                rs1: 0x0,
15480                rs2: 0x0,
15481                csr: 0x400,
15482                funct7: 0x20,
15483            },
15484            Opcode::VADCVVM => Inst {
15485                opcode: 0x57,
15486                funct3: 0x0,
15487                rs1: 0x0,
15488                rs2: 0x0,
15489                csr: 0x400,
15490                funct7: 0x20,
15491            },
15492            Opcode::VADCVXM => Inst {
15493                opcode: 0x57,
15494                funct3: 0x4,
15495                rs1: 0x0,
15496                rs2: 0x0,
15497                csr: 0x400,
15498                funct7: 0x20,
15499            },
15500            Opcode::VADDVI => Inst {
15501                opcode: 0x57,
15502                funct3: 0x3,
15503                rs1: 0x0,
15504                rs2: 0x0,
15505                csr: 0x0,
15506                funct7: 0x0,
15507            },
15508            Opcode::VADDVV => Inst {
15509                opcode: 0x57,
15510                funct3: 0x0,
15511                rs1: 0x0,
15512                rs2: 0x0,
15513                csr: 0x0,
15514                funct7: 0x0,
15515            },
15516            Opcode::VADDVX => Inst {
15517                opcode: 0x57,
15518                funct3: 0x4,
15519                rs1: 0x0,
15520                rs2: 0x0,
15521                csr: 0x0,
15522                funct7: 0x0,
15523            },
15524            Opcode::VAESDFVS => Inst {
15525                opcode: 0x77,
15526                funct3: 0x2,
15527                rs1: 0x1,
15528                rs2: 0x0,
15529                csr: 0xa60,
15530                funct7: 0x53,
15531            },
15532            Opcode::VAESDFVV => Inst {
15533                opcode: 0x77,
15534                funct3: 0x2,
15535                rs1: 0x1,
15536                rs2: 0x0,
15537                csr: 0xa20,
15538                funct7: 0x51,
15539            },
15540            Opcode::VAESDMVS => Inst {
15541                opcode: 0x77,
15542                funct3: 0x2,
15543                rs1: 0x0,
15544                rs2: 0x0,
15545                csr: 0xa60,
15546                funct7: 0x53,
15547            },
15548            Opcode::VAESDMVV => Inst {
15549                opcode: 0x77,
15550                funct3: 0x2,
15551                rs1: 0x0,
15552                rs2: 0x0,
15553                csr: 0xa20,
15554                funct7: 0x51,
15555            },
15556            Opcode::VAESEFVS => Inst {
15557                opcode: 0x77,
15558                funct3: 0x2,
15559                rs1: 0x3,
15560                rs2: 0x0,
15561                csr: 0xa60,
15562                funct7: 0x53,
15563            },
15564            Opcode::VAESEFVV => Inst {
15565                opcode: 0x77,
15566                funct3: 0x2,
15567                rs1: 0x3,
15568                rs2: 0x0,
15569                csr: 0xa20,
15570                funct7: 0x51,
15571            },
15572            Opcode::VAESEMVS => Inst {
15573                opcode: 0x77,
15574                funct3: 0x2,
15575                rs1: 0x2,
15576                rs2: 0x0,
15577                csr: 0xa60,
15578                funct7: 0x53,
15579            },
15580            Opcode::VAESEMVV => Inst {
15581                opcode: 0x77,
15582                funct3: 0x2,
15583                rs1: 0x2,
15584                rs2: 0x0,
15585                csr: 0xa20,
15586                funct7: 0x51,
15587            },
15588            Opcode::VAESKF1VI => Inst {
15589                opcode: 0x77,
15590                funct3: 0x2,
15591                rs1: 0x0,
15592                rs2: 0x0,
15593                csr: 0x8a0,
15594                funct7: 0x45,
15595            },
15596            Opcode::VAESKF2VI => Inst {
15597                opcode: 0x77,
15598                funct3: 0x2,
15599                rs1: 0x0,
15600                rs2: 0x0,
15601                csr: 0xaa0,
15602                funct7: 0x55,
15603            },
15604            Opcode::VAESZVS => Inst {
15605                opcode: 0x77,
15606                funct3: 0x2,
15607                rs1: 0x7,
15608                rs2: 0x0,
15609                csr: 0xa60,
15610                funct7: 0x53,
15611            },
15612            Opcode::VANDVI => Inst {
15613                opcode: 0x57,
15614                funct3: 0x3,
15615                rs1: 0x0,
15616                rs2: 0x0,
15617                csr: 0x240,
15618                funct7: 0x12,
15619            },
15620            Opcode::VANDVV => Inst {
15621                opcode: 0x57,
15622                funct3: 0x0,
15623                rs1: 0x0,
15624                rs2: 0x0,
15625                csr: 0x240,
15626                funct7: 0x12,
15627            },
15628            Opcode::VANDVX => Inst {
15629                opcode: 0x57,
15630                funct3: 0x4,
15631                rs1: 0x0,
15632                rs2: 0x0,
15633                csr: 0x240,
15634                funct7: 0x12,
15635            },
15636            Opcode::VANDNVV => Inst {
15637                opcode: 0x57,
15638                funct3: 0x0,
15639                rs1: 0x0,
15640                rs2: 0x0,
15641                csr: 0x40,
15642                funct7: 0x2,
15643            },
15644            Opcode::VANDNVX => Inst {
15645                opcode: 0x57,
15646                funct3: 0x4,
15647                rs1: 0x0,
15648                rs2: 0x0,
15649                csr: 0x40,
15650                funct7: 0x2,
15651            },
15652            Opcode::VASUBVV => Inst {
15653                opcode: 0x57,
15654                funct3: 0x2,
15655                rs1: 0x0,
15656                rs2: 0x0,
15657                csr: 0x2c0,
15658                funct7: 0x16,
15659            },
15660            Opcode::VASUBVX => Inst {
15661                opcode: 0x57,
15662                funct3: 0x6,
15663                rs1: 0x0,
15664                rs2: 0x0,
15665                csr: 0x2c0,
15666                funct7: 0x16,
15667            },
15668            Opcode::VASUBUVV => Inst {
15669                opcode: 0x57,
15670                funct3: 0x2,
15671                rs1: 0x0,
15672                rs2: 0x0,
15673                csr: 0x280,
15674                funct7: 0x14,
15675            },
15676            Opcode::VASUBUVX => Inst {
15677                opcode: 0x57,
15678                funct3: 0x6,
15679                rs1: 0x0,
15680                rs2: 0x0,
15681                csr: 0x280,
15682                funct7: 0x14,
15683            },
15684            Opcode::VBREV8V => Inst {
15685                opcode: 0x57,
15686                funct3: 0x2,
15687                rs1: 0x8,
15688                rs2: 0x0,
15689                csr: 0x480,
15690                funct7: 0x24,
15691            },
15692            Opcode::VBREVV => Inst {
15693                opcode: 0x57,
15694                funct3: 0x2,
15695                rs1: 0xa,
15696                rs2: 0x0,
15697                csr: 0x480,
15698                funct7: 0x24,
15699            },
15700            Opcode::VCLMULVV => Inst {
15701                opcode: 0x57,
15702                funct3: 0x2,
15703                rs1: 0x0,
15704                rs2: 0x0,
15705                csr: 0x300,
15706                funct7: 0x18,
15707            },
15708            Opcode::VCLMULVX => Inst {
15709                opcode: 0x57,
15710                funct3: 0x6,
15711                rs1: 0x0,
15712                rs2: 0x0,
15713                csr: 0x300,
15714                funct7: 0x18,
15715            },
15716            Opcode::VCLMULHVV => Inst {
15717                opcode: 0x57,
15718                funct3: 0x2,
15719                rs1: 0x0,
15720                rs2: 0x0,
15721                csr: 0x340,
15722                funct7: 0x1a,
15723            },
15724            Opcode::VCLMULHVX => Inst {
15725                opcode: 0x57,
15726                funct3: 0x6,
15727                rs1: 0x0,
15728                rs2: 0x0,
15729                csr: 0x340,
15730                funct7: 0x1a,
15731            },
15732            Opcode::VCLZV => Inst {
15733                opcode: 0x57,
15734                funct3: 0x2,
15735                rs1: 0xc,
15736                rs2: 0x0,
15737                csr: 0x480,
15738                funct7: 0x24,
15739            },
15740            Opcode::VCOMPRESSVM => Inst {
15741                opcode: 0x57,
15742                funct3: 0x2,
15743                rs1: 0x0,
15744                rs2: 0x0,
15745                csr: 0x5e0,
15746                funct7: 0x2f,
15747            },
15748            Opcode::VCPOPM => Inst {
15749                opcode: 0x57,
15750                funct3: 0x2,
15751                rs1: 0x10,
15752                rs2: 0x0,
15753                csr: 0x400,
15754                funct7: 0x20,
15755            },
15756            Opcode::VCPOPV => Inst {
15757                opcode: 0x57,
15758                funct3: 0x2,
15759                rs1: 0xe,
15760                rs2: 0x0,
15761                csr: 0x480,
15762                funct7: 0x24,
15763            },
15764            Opcode::VCTZV => Inst {
15765                opcode: 0x57,
15766                funct3: 0x2,
15767                rs1: 0xd,
15768                rs2: 0x0,
15769                csr: 0x480,
15770                funct7: 0x24,
15771            },
15772            Opcode::VDIVVV => Inst {
15773                opcode: 0x57,
15774                funct3: 0x2,
15775                rs1: 0x0,
15776                rs2: 0x0,
15777                csr: 0x840,
15778                funct7: 0x42,
15779            },
15780            Opcode::VDIVVX => Inst {
15781                opcode: 0x57,
15782                funct3: 0x6,
15783                rs1: 0x0,
15784                rs2: 0x0,
15785                csr: 0x840,
15786                funct7: 0x42,
15787            },
15788            Opcode::VDIVUVV => Inst {
15789                opcode: 0x57,
15790                funct3: 0x2,
15791                rs1: 0x0,
15792                rs2: 0x0,
15793                csr: 0x800,
15794                funct7: 0x40,
15795            },
15796            Opcode::VDIVUVX => Inst {
15797                opcode: 0x57,
15798                funct3: 0x6,
15799                rs1: 0x0,
15800                rs2: 0x0,
15801                csr: 0x800,
15802                funct7: 0x40,
15803            },
15804            Opcode::VFADDVF => Inst {
15805                opcode: 0x57,
15806                funct3: 0x5,
15807                rs1: 0x0,
15808                rs2: 0x0,
15809                csr: 0x0,
15810                funct7: 0x0,
15811            },
15812            Opcode::VFADDVV => Inst {
15813                opcode: 0x57,
15814                funct3: 0x1,
15815                rs1: 0x0,
15816                rs2: 0x0,
15817                csr: 0x0,
15818                funct7: 0x0,
15819            },
15820            Opcode::VFCLASSV => Inst {
15821                opcode: 0x57,
15822                funct3: 0x1,
15823                rs1: 0x10,
15824                rs2: 0x0,
15825                csr: 0x4c0,
15826                funct7: 0x26,
15827            },
15828            Opcode::VFCVTFXV => Inst {
15829                opcode: 0x57,
15830                funct3: 0x1,
15831                rs1: 0x3,
15832                rs2: 0x0,
15833                csr: 0x480,
15834                funct7: 0x24,
15835            },
15836            Opcode::VFCVTFXUV => Inst {
15837                opcode: 0x57,
15838                funct3: 0x1,
15839                rs1: 0x2,
15840                rs2: 0x0,
15841                csr: 0x480,
15842                funct7: 0x24,
15843            },
15844            Opcode::VFCVTRTZXFV => Inst {
15845                opcode: 0x57,
15846                funct3: 0x1,
15847                rs1: 0x7,
15848                rs2: 0x0,
15849                csr: 0x480,
15850                funct7: 0x24,
15851            },
15852            Opcode::VFCVTRTZXUFV => Inst {
15853                opcode: 0x57,
15854                funct3: 0x1,
15855                rs1: 0x6,
15856                rs2: 0x0,
15857                csr: 0x480,
15858                funct7: 0x24,
15859            },
15860            Opcode::VFCVTXFV => Inst {
15861                opcode: 0x57,
15862                funct3: 0x1,
15863                rs1: 0x1,
15864                rs2: 0x0,
15865                csr: 0x480,
15866                funct7: 0x24,
15867            },
15868            Opcode::VFCVTXUFV => Inst {
15869                opcode: 0x57,
15870                funct3: 0x1,
15871                rs1: 0x0,
15872                rs2: 0x0,
15873                csr: 0x480,
15874                funct7: 0x24,
15875            },
15876            Opcode::VFDIVVF => Inst {
15877                opcode: 0x57,
15878                funct3: 0x5,
15879                rs1: 0x0,
15880                rs2: 0x0,
15881                csr: 0x800,
15882                funct7: 0x40,
15883            },
15884            Opcode::VFDIVVV => Inst {
15885                opcode: 0x57,
15886                funct3: 0x1,
15887                rs1: 0x0,
15888                rs2: 0x0,
15889                csr: 0x800,
15890                funct7: 0x40,
15891            },
15892            Opcode::VFIRSTM => Inst {
15893                opcode: 0x57,
15894                funct3: 0x2,
15895                rs1: 0x11,
15896                rs2: 0x0,
15897                csr: 0x400,
15898                funct7: 0x20,
15899            },
15900            Opcode::VFMACCVF => Inst {
15901                opcode: 0x57,
15902                funct3: 0x5,
15903                rs1: 0x0,
15904                rs2: 0x0,
15905                csr: 0xb00,
15906                funct7: 0x58,
15907            },
15908            Opcode::VFMACCVV => Inst {
15909                opcode: 0x57,
15910                funct3: 0x1,
15911                rs1: 0x0,
15912                rs2: 0x0,
15913                csr: 0xb00,
15914                funct7: 0x58,
15915            },
15916            Opcode::VFMADDVF => Inst {
15917                opcode: 0x57,
15918                funct3: 0x5,
15919                rs1: 0x0,
15920                rs2: 0x0,
15921                csr: 0xa00,
15922                funct7: 0x50,
15923            },
15924            Opcode::VFMADDVV => Inst {
15925                opcode: 0x57,
15926                funct3: 0x1,
15927                rs1: 0x0,
15928                rs2: 0x0,
15929                csr: 0xa00,
15930                funct7: 0x50,
15931            },
15932            Opcode::VFMAXVF => Inst {
15933                opcode: 0x57,
15934                funct3: 0x5,
15935                rs1: 0x0,
15936                rs2: 0x0,
15937                csr: 0x180,
15938                funct7: 0xc,
15939            },
15940            Opcode::VFMAXVV => Inst {
15941                opcode: 0x57,
15942                funct3: 0x1,
15943                rs1: 0x0,
15944                rs2: 0x0,
15945                csr: 0x180,
15946                funct7: 0xc,
15947            },
15948            Opcode::VFMERGEVFM => Inst {
15949                opcode: 0x57,
15950                funct3: 0x5,
15951                rs1: 0x0,
15952                rs2: 0x0,
15953                csr: 0x5c0,
15954                funct7: 0x2e,
15955            },
15956            Opcode::VFMINVF => Inst {
15957                opcode: 0x57,
15958                funct3: 0x5,
15959                rs1: 0x0,
15960                rs2: 0x0,
15961                csr: 0x100,
15962                funct7: 0x8,
15963            },
15964            Opcode::VFMINVV => Inst {
15965                opcode: 0x57,
15966                funct3: 0x1,
15967                rs1: 0x0,
15968                rs2: 0x0,
15969                csr: 0x100,
15970                funct7: 0x8,
15971            },
15972            Opcode::VFMSACVF => Inst {
15973                opcode: 0x57,
15974                funct3: 0x5,
15975                rs1: 0x0,
15976                rs2: 0x0,
15977                csr: 0xb80,
15978                funct7: 0x5c,
15979            },
15980            Opcode::VFMSACVV => Inst {
15981                opcode: 0x57,
15982                funct3: 0x1,
15983                rs1: 0x0,
15984                rs2: 0x0,
15985                csr: 0xb80,
15986                funct7: 0x5c,
15987            },
15988            Opcode::VFMSUBVF => Inst {
15989                opcode: 0x57,
15990                funct3: 0x5,
15991                rs1: 0x0,
15992                rs2: 0x0,
15993                csr: 0xa80,
15994                funct7: 0x54,
15995            },
15996            Opcode::VFMSUBVV => Inst {
15997                opcode: 0x57,
15998                funct3: 0x1,
15999                rs1: 0x0,
16000                rs2: 0x0,
16001                csr: 0xa80,
16002                funct7: 0x54,
16003            },
16004            Opcode::VFMULVF => Inst {
16005                opcode: 0x57,
16006                funct3: 0x5,
16007                rs1: 0x0,
16008                rs2: 0x0,
16009                csr: 0x900,
16010                funct7: 0x48,
16011            },
16012            Opcode::VFMULVV => Inst {
16013                opcode: 0x57,
16014                funct3: 0x1,
16015                rs1: 0x0,
16016                rs2: 0x0,
16017                csr: 0x900,
16018                funct7: 0x48,
16019            },
16020            Opcode::VFMVFS => Inst {
16021                opcode: 0x57,
16022                funct3: 0x1,
16023                rs1: 0x0,
16024                rs2: 0x0,
16025                csr: 0x420,
16026                funct7: 0x21,
16027            },
16028            Opcode::VFMVSF => Inst {
16029                opcode: 0x57,
16030                funct3: 0x5,
16031                rs1: 0x0,
16032                rs2: 0x0,
16033                csr: 0x420,
16034                funct7: 0x21,
16035            },
16036            Opcode::VFMVVF => Inst {
16037                opcode: 0x57,
16038                funct3: 0x5,
16039                rs1: 0x0,
16040                rs2: 0x0,
16041                csr: 0x5e0,
16042                funct7: 0x2f,
16043            },
16044            Opcode::VFNCVTFFW => Inst {
16045                opcode: 0x57,
16046                funct3: 0x1,
16047                rs1: 0x14,
16048                rs2: 0x0,
16049                csr: 0x480,
16050                funct7: 0x24,
16051            },
16052            Opcode::VFNCVTFXW => Inst {
16053                opcode: 0x57,
16054                funct3: 0x1,
16055                rs1: 0x13,
16056                rs2: 0x0,
16057                csr: 0x480,
16058                funct7: 0x24,
16059            },
16060            Opcode::VFNCVTFXUW => Inst {
16061                opcode: 0x57,
16062                funct3: 0x1,
16063                rs1: 0x12,
16064                rs2: 0x0,
16065                csr: 0x480,
16066                funct7: 0x24,
16067            },
16068            Opcode::VFNCVTRODFFW => Inst {
16069                opcode: 0x57,
16070                funct3: 0x1,
16071                rs1: 0x15,
16072                rs2: 0x0,
16073                csr: 0x480,
16074                funct7: 0x24,
16075            },
16076            Opcode::VFNCVTRTZXFW => Inst {
16077                opcode: 0x57,
16078                funct3: 0x1,
16079                rs1: 0x17,
16080                rs2: 0x0,
16081                csr: 0x480,
16082                funct7: 0x24,
16083            },
16084            Opcode::VFNCVTRTZXUFW => Inst {
16085                opcode: 0x57,
16086                funct3: 0x1,
16087                rs1: 0x16,
16088                rs2: 0x0,
16089                csr: 0x480,
16090                funct7: 0x24,
16091            },
16092            Opcode::VFNCVTXFW => Inst {
16093                opcode: 0x57,
16094                funct3: 0x1,
16095                rs1: 0x11,
16096                rs2: 0x0,
16097                csr: 0x480,
16098                funct7: 0x24,
16099            },
16100            Opcode::VFNCVTXUFW => Inst {
16101                opcode: 0x57,
16102                funct3: 0x1,
16103                rs1: 0x10,
16104                rs2: 0x0,
16105                csr: 0x480,
16106                funct7: 0x24,
16107            },
16108            Opcode::VFNMACCVF => Inst {
16109                opcode: 0x57,
16110                funct3: 0x5,
16111                rs1: 0x0,
16112                rs2: 0x0,
16113                csr: 0xb40,
16114                funct7: 0x5a,
16115            },
16116            Opcode::VFNMACCVV => Inst {
16117                opcode: 0x57,
16118                funct3: 0x1,
16119                rs1: 0x0,
16120                rs2: 0x0,
16121                csr: 0xb40,
16122                funct7: 0x5a,
16123            },
16124            Opcode::VFNMADDVF => Inst {
16125                opcode: 0x57,
16126                funct3: 0x5,
16127                rs1: 0x0,
16128                rs2: 0x0,
16129                csr: 0xa40,
16130                funct7: 0x52,
16131            },
16132            Opcode::VFNMADDVV => Inst {
16133                opcode: 0x57,
16134                funct3: 0x1,
16135                rs1: 0x0,
16136                rs2: 0x0,
16137                csr: 0xa40,
16138                funct7: 0x52,
16139            },
16140            Opcode::VFNMSACVF => Inst {
16141                opcode: 0x57,
16142                funct3: 0x5,
16143                rs1: 0x0,
16144                rs2: 0x0,
16145                csr: 0xbc0,
16146                funct7: 0x5e,
16147            },
16148            Opcode::VFNMSACVV => Inst {
16149                opcode: 0x57,
16150                funct3: 0x1,
16151                rs1: 0x0,
16152                rs2: 0x0,
16153                csr: 0xbc0,
16154                funct7: 0x5e,
16155            },
16156            Opcode::VFNMSUBVF => Inst {
16157                opcode: 0x57,
16158                funct3: 0x5,
16159                rs1: 0x0,
16160                rs2: 0x0,
16161                csr: 0xac0,
16162                funct7: 0x56,
16163            },
16164            Opcode::VFNMSUBVV => Inst {
16165                opcode: 0x57,
16166                funct3: 0x1,
16167                rs1: 0x0,
16168                rs2: 0x0,
16169                csr: 0xac0,
16170                funct7: 0x56,
16171            },
16172            Opcode::VFRDIVVF => Inst {
16173                opcode: 0x57,
16174                funct3: 0x5,
16175                rs1: 0x0,
16176                rs2: 0x0,
16177                csr: 0x840,
16178                funct7: 0x42,
16179            },
16180            Opcode::VFREC7V => Inst {
16181                opcode: 0x57,
16182                funct3: 0x1,
16183                rs1: 0x5,
16184                rs2: 0x0,
16185                csr: 0x4c0,
16186                funct7: 0x26,
16187            },
16188            Opcode::VFREDMAXVS => Inst {
16189                opcode: 0x57,
16190                funct3: 0x1,
16191                rs1: 0x0,
16192                rs2: 0x0,
16193                csr: 0x1c0,
16194                funct7: 0xe,
16195            },
16196            Opcode::VFREDMINVS => Inst {
16197                opcode: 0x57,
16198                funct3: 0x1,
16199                rs1: 0x0,
16200                rs2: 0x0,
16201                csr: 0x140,
16202                funct7: 0xa,
16203            },
16204            Opcode::VFREDOSUMVS => Inst {
16205                opcode: 0x57,
16206                funct3: 0x1,
16207                rs1: 0x0,
16208                rs2: 0x0,
16209                csr: 0xc0,
16210                funct7: 0x6,
16211            },
16212            Opcode::VFREDSUMVS => Inst {
16213                opcode: 0x57,
16214                funct3: 0x1,
16215                rs1: 0x0,
16216                rs2: 0x0,
16217                csr: 0x40,
16218                funct7: 0x2,
16219            },
16220            Opcode::VFREDUSUMVS => Inst {
16221                opcode: 0x57,
16222                funct3: 0x1,
16223                rs1: 0x0,
16224                rs2: 0x0,
16225                csr: 0x40,
16226                funct7: 0x2,
16227            },
16228            Opcode::VFRSQRT7V => Inst {
16229                opcode: 0x57,
16230                funct3: 0x1,
16231                rs1: 0x4,
16232                rs2: 0x0,
16233                csr: 0x4c0,
16234                funct7: 0x26,
16235            },
16236            Opcode::VFRSUBVF => Inst {
16237                opcode: 0x57,
16238                funct3: 0x5,
16239                rs1: 0x0,
16240                rs2: 0x0,
16241                csr: 0x9c0,
16242                funct7: 0x4e,
16243            },
16244            Opcode::VFSGNJVF => Inst {
16245                opcode: 0x57,
16246                funct3: 0x5,
16247                rs1: 0x0,
16248                rs2: 0x0,
16249                csr: 0x200,
16250                funct7: 0x10,
16251            },
16252            Opcode::VFSGNJVV => Inst {
16253                opcode: 0x57,
16254                funct3: 0x1,
16255                rs1: 0x0,
16256                rs2: 0x0,
16257                csr: 0x200,
16258                funct7: 0x10,
16259            },
16260            Opcode::VFSGNJNVF => Inst {
16261                opcode: 0x57,
16262                funct3: 0x5,
16263                rs1: 0x0,
16264                rs2: 0x0,
16265                csr: 0x240,
16266                funct7: 0x12,
16267            },
16268            Opcode::VFSGNJNVV => Inst {
16269                opcode: 0x57,
16270                funct3: 0x1,
16271                rs1: 0x0,
16272                rs2: 0x0,
16273                csr: 0x240,
16274                funct7: 0x12,
16275            },
16276            Opcode::VFSGNJXVF => Inst {
16277                opcode: 0x57,
16278                funct3: 0x5,
16279                rs1: 0x0,
16280                rs2: 0x0,
16281                csr: 0x280,
16282                funct7: 0x14,
16283            },
16284            Opcode::VFSGNJXVV => Inst {
16285                opcode: 0x57,
16286                funct3: 0x1,
16287                rs1: 0x0,
16288                rs2: 0x0,
16289                csr: 0x280,
16290                funct7: 0x14,
16291            },
16292            Opcode::VFSLIDE1DOWNVF => Inst {
16293                opcode: 0x57,
16294                funct3: 0x5,
16295                rs1: 0x0,
16296                rs2: 0x0,
16297                csr: 0x3c0,
16298                funct7: 0x1e,
16299            },
16300            Opcode::VFSLIDE1UPVF => Inst {
16301                opcode: 0x57,
16302                funct3: 0x5,
16303                rs1: 0x0,
16304                rs2: 0x0,
16305                csr: 0x380,
16306                funct7: 0x1c,
16307            },
16308            Opcode::VFSQRTV => Inst {
16309                opcode: 0x57,
16310                funct3: 0x1,
16311                rs1: 0x0,
16312                rs2: 0x0,
16313                csr: 0x4c0,
16314                funct7: 0x26,
16315            },
16316            Opcode::VFSUBVF => Inst {
16317                opcode: 0x57,
16318                funct3: 0x5,
16319                rs1: 0x0,
16320                rs2: 0x0,
16321                csr: 0x80,
16322                funct7: 0x4,
16323            },
16324            Opcode::VFSUBVV => Inst {
16325                opcode: 0x57,
16326                funct3: 0x1,
16327                rs1: 0x0,
16328                rs2: 0x0,
16329                csr: 0x80,
16330                funct7: 0x4,
16331            },
16332            Opcode::VFWADDVF => Inst {
16333                opcode: 0x57,
16334                funct3: 0x5,
16335                rs1: 0x0,
16336                rs2: 0x0,
16337                csr: 0xc00,
16338                funct7: 0x60,
16339            },
16340            Opcode::VFWADDVV => Inst {
16341                opcode: 0x57,
16342                funct3: 0x1,
16343                rs1: 0x0,
16344                rs2: 0x0,
16345                csr: 0xc00,
16346                funct7: 0x60,
16347            },
16348            Opcode::VFWADDWF => Inst {
16349                opcode: 0x57,
16350                funct3: 0x5,
16351                rs1: 0x0,
16352                rs2: 0x0,
16353                csr: 0xd00,
16354                funct7: 0x68,
16355            },
16356            Opcode::VFWADDWV => Inst {
16357                opcode: 0x57,
16358                funct3: 0x1,
16359                rs1: 0x0,
16360                rs2: 0x0,
16361                csr: 0xd00,
16362                funct7: 0x68,
16363            },
16364            Opcode::VFWCVTFFV => Inst {
16365                opcode: 0x57,
16366                funct3: 0x1,
16367                rs1: 0xc,
16368                rs2: 0x0,
16369                csr: 0x480,
16370                funct7: 0x24,
16371            },
16372            Opcode::VFWCVTFXV => Inst {
16373                opcode: 0x57,
16374                funct3: 0x1,
16375                rs1: 0xb,
16376                rs2: 0x0,
16377                csr: 0x480,
16378                funct7: 0x24,
16379            },
16380            Opcode::VFWCVTFXUV => Inst {
16381                opcode: 0x57,
16382                funct3: 0x1,
16383                rs1: 0xa,
16384                rs2: 0x0,
16385                csr: 0x480,
16386                funct7: 0x24,
16387            },
16388            Opcode::VFWCVTRTZXFV => Inst {
16389                opcode: 0x57,
16390                funct3: 0x1,
16391                rs1: 0xf,
16392                rs2: 0x0,
16393                csr: 0x480,
16394                funct7: 0x24,
16395            },
16396            Opcode::VFWCVTRTZXUFV => Inst {
16397                opcode: 0x57,
16398                funct3: 0x1,
16399                rs1: 0xe,
16400                rs2: 0x0,
16401                csr: 0x480,
16402                funct7: 0x24,
16403            },
16404            Opcode::VFWCVTXFV => Inst {
16405                opcode: 0x57,
16406                funct3: 0x1,
16407                rs1: 0x9,
16408                rs2: 0x0,
16409                csr: 0x480,
16410                funct7: 0x24,
16411            },
16412            Opcode::VFWCVTXUFV => Inst {
16413                opcode: 0x57,
16414                funct3: 0x1,
16415                rs1: 0x8,
16416                rs2: 0x0,
16417                csr: 0x480,
16418                funct7: 0x24,
16419            },
16420            Opcode::VFWMACCVF => Inst {
16421                opcode: 0x57,
16422                funct3: 0x5,
16423                rs1: 0x0,
16424                rs2: 0x0,
16425                csr: 0xf00,
16426                funct7: 0x78,
16427            },
16428            Opcode::VFWMACCVV => Inst {
16429                opcode: 0x57,
16430                funct3: 0x1,
16431                rs1: 0x0,
16432                rs2: 0x0,
16433                csr: 0xf00,
16434                funct7: 0x78,
16435            },
16436            Opcode::VFWMSACVF => Inst {
16437                opcode: 0x57,
16438                funct3: 0x5,
16439                rs1: 0x0,
16440                rs2: 0x0,
16441                csr: 0xf80,
16442                funct7: 0x7c,
16443            },
16444            Opcode::VFWMSACVV => Inst {
16445                opcode: 0x57,
16446                funct3: 0x1,
16447                rs1: 0x0,
16448                rs2: 0x0,
16449                csr: 0xf80,
16450                funct7: 0x7c,
16451            },
16452            Opcode::VFWMULVF => Inst {
16453                opcode: 0x57,
16454                funct3: 0x5,
16455                rs1: 0x0,
16456                rs2: 0x0,
16457                csr: 0xe00,
16458                funct7: 0x70,
16459            },
16460            Opcode::VFWMULVV => Inst {
16461                opcode: 0x57,
16462                funct3: 0x1,
16463                rs1: 0x0,
16464                rs2: 0x0,
16465                csr: 0xe00,
16466                funct7: 0x70,
16467            },
16468            Opcode::VFWNMACCVF => Inst {
16469                opcode: 0x57,
16470                funct3: 0x5,
16471                rs1: 0x0,
16472                rs2: 0x0,
16473                csr: 0xf40,
16474                funct7: 0x7a,
16475            },
16476            Opcode::VFWNMACCVV => Inst {
16477                opcode: 0x57,
16478                funct3: 0x1,
16479                rs1: 0x0,
16480                rs2: 0x0,
16481                csr: 0xf40,
16482                funct7: 0x7a,
16483            },
16484            Opcode::VFWNMSACVF => Inst {
16485                opcode: 0x57,
16486                funct3: 0x5,
16487                rs1: 0x0,
16488                rs2: 0x0,
16489                csr: 0xfc0,
16490                funct7: 0x7e,
16491            },
16492            Opcode::VFWNMSACVV => Inst {
16493                opcode: 0x57,
16494                funct3: 0x1,
16495                rs1: 0x0,
16496                rs2: 0x0,
16497                csr: 0xfc0,
16498                funct7: 0x7e,
16499            },
16500            Opcode::VFWREDOSUMVS => Inst {
16501                opcode: 0x57,
16502                funct3: 0x1,
16503                rs1: 0x0,
16504                rs2: 0x0,
16505                csr: 0xcc0,
16506                funct7: 0x66,
16507            },
16508            Opcode::VFWREDSUMVS => Inst {
16509                opcode: 0x57,
16510                funct3: 0x1,
16511                rs1: 0x0,
16512                rs2: 0x0,
16513                csr: 0xc40,
16514                funct7: 0x62,
16515            },
16516            Opcode::VFWREDUSUMVS => Inst {
16517                opcode: 0x57,
16518                funct3: 0x1,
16519                rs1: 0x0,
16520                rs2: 0x0,
16521                csr: 0xc40,
16522                funct7: 0x62,
16523            },
16524            Opcode::VFWSUBVF => Inst {
16525                opcode: 0x57,
16526                funct3: 0x5,
16527                rs1: 0x0,
16528                rs2: 0x0,
16529                csr: 0xc80,
16530                funct7: 0x64,
16531            },
16532            Opcode::VFWSUBVV => Inst {
16533                opcode: 0x57,
16534                funct3: 0x1,
16535                rs1: 0x0,
16536                rs2: 0x0,
16537                csr: 0xc80,
16538                funct7: 0x64,
16539            },
16540            Opcode::VFWSUBWF => Inst {
16541                opcode: 0x57,
16542                funct3: 0x5,
16543                rs1: 0x0,
16544                rs2: 0x0,
16545                csr: 0xd80,
16546                funct7: 0x6c,
16547            },
16548            Opcode::VFWSUBWV => Inst {
16549                opcode: 0x57,
16550                funct3: 0x1,
16551                rs1: 0x0,
16552                rs2: 0x0,
16553                csr: 0xd80,
16554                funct7: 0x6c,
16555            },
16556            Opcode::VGHSHVV => Inst {
16557                opcode: 0x77,
16558                funct3: 0x2,
16559                rs1: 0x0,
16560                rs2: 0x0,
16561                csr: 0xb20,
16562                funct7: 0x59,
16563            },
16564            Opcode::VGMULVV => Inst {
16565                opcode: 0x77,
16566                funct3: 0x2,
16567                rs1: 0x11,
16568                rs2: 0x0,
16569                csr: 0xa20,
16570                funct7: 0x51,
16571            },
16572            Opcode::VIDV => Inst {
16573                opcode: 0x57,
16574                funct3: 0x2,
16575                rs1: 0x11,
16576                rs2: 0x0,
16577                csr: 0x500,
16578                funct7: 0x28,
16579            },
16580            Opcode::VIOTAM => Inst {
16581                opcode: 0x57,
16582                funct3: 0x2,
16583                rs1: 0x10,
16584                rs2: 0x0,
16585                csr: 0x500,
16586                funct7: 0x28,
16587            },
16588            Opcode::VL1RV => Inst {
16589                opcode: 0x7,
16590                funct3: 0x0,
16591                rs1: 0x0,
16592                rs2: 0x8,
16593                csr: 0x28,
16594                funct7: 0x1,
16595            },
16596            Opcode::VL1RE16V => Inst {
16597                opcode: 0x7,
16598                funct3: 0x5,
16599                rs1: 0x0,
16600                rs2: 0x8,
16601                csr: 0x28,
16602                funct7: 0x1,
16603            },
16604            Opcode::VL1RE32V => Inst {
16605                opcode: 0x7,
16606                funct3: 0x6,
16607                rs1: 0x0,
16608                rs2: 0x8,
16609                csr: 0x28,
16610                funct7: 0x1,
16611            },
16612            Opcode::VL1RE64V => Inst {
16613                opcode: 0x7,
16614                funct3: 0x7,
16615                rs1: 0x0,
16616                rs2: 0x8,
16617                csr: 0x28,
16618                funct7: 0x1,
16619            },
16620            Opcode::VL1RE8V => Inst {
16621                opcode: 0x7,
16622                funct3: 0x0,
16623                rs1: 0x0,
16624                rs2: 0x8,
16625                csr: 0x28,
16626                funct7: 0x1,
16627            },
16628            Opcode::VL2RV => Inst {
16629                opcode: 0x7,
16630                funct3: 0x0,
16631                rs1: 0x0,
16632                rs2: 0x8,
16633                csr: 0x228,
16634                funct7: 0x11,
16635            },
16636            Opcode::VL2RE16V => Inst {
16637                opcode: 0x7,
16638                funct3: 0x5,
16639                rs1: 0x0,
16640                rs2: 0x8,
16641                csr: 0x228,
16642                funct7: 0x11,
16643            },
16644            Opcode::VL2RE32V => Inst {
16645                opcode: 0x7,
16646                funct3: 0x6,
16647                rs1: 0x0,
16648                rs2: 0x8,
16649                csr: 0x228,
16650                funct7: 0x11,
16651            },
16652            Opcode::VL2RE64V => Inst {
16653                opcode: 0x7,
16654                funct3: 0x7,
16655                rs1: 0x0,
16656                rs2: 0x8,
16657                csr: 0x228,
16658                funct7: 0x11,
16659            },
16660            Opcode::VL2RE8V => Inst {
16661                opcode: 0x7,
16662                funct3: 0x0,
16663                rs1: 0x0,
16664                rs2: 0x8,
16665                csr: 0x228,
16666                funct7: 0x11,
16667            },
16668            Opcode::VL4RV => Inst {
16669                opcode: 0x7,
16670                funct3: 0x0,
16671                rs1: 0x0,
16672                rs2: 0x8,
16673                csr: 0x628,
16674                funct7: 0x31,
16675            },
16676            Opcode::VL4RE16V => Inst {
16677                opcode: 0x7,
16678                funct3: 0x5,
16679                rs1: 0x0,
16680                rs2: 0x8,
16681                csr: 0x628,
16682                funct7: 0x31,
16683            },
16684            Opcode::VL4RE32V => Inst {
16685                opcode: 0x7,
16686                funct3: 0x6,
16687                rs1: 0x0,
16688                rs2: 0x8,
16689                csr: 0x628,
16690                funct7: 0x31,
16691            },
16692            Opcode::VL4RE64V => Inst {
16693                opcode: 0x7,
16694                funct3: 0x7,
16695                rs1: 0x0,
16696                rs2: 0x8,
16697                csr: 0x628,
16698                funct7: 0x31,
16699            },
16700            Opcode::VL4RE8V => Inst {
16701                opcode: 0x7,
16702                funct3: 0x0,
16703                rs1: 0x0,
16704                rs2: 0x8,
16705                csr: 0x628,
16706                funct7: 0x31,
16707            },
16708            Opcode::VL8RV => Inst {
16709                opcode: 0x7,
16710                funct3: 0x0,
16711                rs1: 0x0,
16712                rs2: 0x8,
16713                csr: 0xe28,
16714                funct7: 0x71,
16715            },
16716            Opcode::VL8RE16V => Inst {
16717                opcode: 0x7,
16718                funct3: 0x5,
16719                rs1: 0x0,
16720                rs2: 0x8,
16721                csr: 0xe28,
16722                funct7: 0x71,
16723            },
16724            Opcode::VL8RE32V => Inst {
16725                opcode: 0x7,
16726                funct3: 0x6,
16727                rs1: 0x0,
16728                rs2: 0x8,
16729                csr: 0xe28,
16730                funct7: 0x71,
16731            },
16732            Opcode::VL8RE64V => Inst {
16733                opcode: 0x7,
16734                funct3: 0x7,
16735                rs1: 0x0,
16736                rs2: 0x8,
16737                csr: 0xe28,
16738                funct7: 0x71,
16739            },
16740            Opcode::VL8RE8V => Inst {
16741                opcode: 0x7,
16742                funct3: 0x0,
16743                rs1: 0x0,
16744                rs2: 0x8,
16745                csr: 0xe28,
16746                funct7: 0x71,
16747            },
16748            Opcode::VLE16V => Inst {
16749                opcode: 0x7,
16750                funct3: 0x5,
16751                rs1: 0x0,
16752                rs2: 0x0,
16753                csr: 0x0,
16754                funct7: 0x0,
16755            },
16756            Opcode::VLE16FFV => Inst {
16757                opcode: 0x7,
16758                funct3: 0x5,
16759                rs1: 0x0,
16760                rs2: 0x10,
16761                csr: 0x10,
16762                funct7: 0x0,
16763            },
16764            Opcode::VLE1V => Inst {
16765                opcode: 0x7,
16766                funct3: 0x0,
16767                rs1: 0x0,
16768                rs2: 0xb,
16769                csr: 0x2b,
16770                funct7: 0x1,
16771            },
16772            Opcode::VLE32V => Inst {
16773                opcode: 0x7,
16774                funct3: 0x6,
16775                rs1: 0x0,
16776                rs2: 0x0,
16777                csr: 0x0,
16778                funct7: 0x0,
16779            },
16780            Opcode::VLE32FFV => Inst {
16781                opcode: 0x7,
16782                funct3: 0x6,
16783                rs1: 0x0,
16784                rs2: 0x10,
16785                csr: 0x10,
16786                funct7: 0x0,
16787            },
16788            Opcode::VLE64V => Inst {
16789                opcode: 0x7,
16790                funct3: 0x7,
16791                rs1: 0x0,
16792                rs2: 0x0,
16793                csr: 0x0,
16794                funct7: 0x0,
16795            },
16796            Opcode::VLE64FFV => Inst {
16797                opcode: 0x7,
16798                funct3: 0x7,
16799                rs1: 0x0,
16800                rs2: 0x10,
16801                csr: 0x10,
16802                funct7: 0x0,
16803            },
16804            Opcode::VLE8V => Inst {
16805                opcode: 0x7,
16806                funct3: 0x0,
16807                rs1: 0x0,
16808                rs2: 0x0,
16809                csr: 0x0,
16810                funct7: 0x0,
16811            },
16812            Opcode::VLE8FFV => Inst {
16813                opcode: 0x7,
16814                funct3: 0x0,
16815                rs1: 0x0,
16816                rs2: 0x10,
16817                csr: 0x10,
16818                funct7: 0x0,
16819            },
16820            Opcode::VLMV => Inst {
16821                opcode: 0x7,
16822                funct3: 0x0,
16823                rs1: 0x0,
16824                rs2: 0xb,
16825                csr: 0x2b,
16826                funct7: 0x1,
16827            },
16828            Opcode::VLOXEI16V => Inst {
16829                opcode: 0x7,
16830                funct3: 0x5,
16831                rs1: 0x0,
16832                rs2: 0x0,
16833                csr: 0xc0,
16834                funct7: 0x6,
16835            },
16836            Opcode::VLOXEI32V => Inst {
16837                opcode: 0x7,
16838                funct3: 0x6,
16839                rs1: 0x0,
16840                rs2: 0x0,
16841                csr: 0xc0,
16842                funct7: 0x6,
16843            },
16844            Opcode::VLOXEI64V => Inst {
16845                opcode: 0x7,
16846                funct3: 0x7,
16847                rs1: 0x0,
16848                rs2: 0x0,
16849                csr: 0xc0,
16850                funct7: 0x6,
16851            },
16852            Opcode::VLOXEI8V => Inst {
16853                opcode: 0x7,
16854                funct3: 0x0,
16855                rs1: 0x0,
16856                rs2: 0x0,
16857                csr: 0xc0,
16858                funct7: 0x6,
16859            },
16860            Opcode::VLSE16V => Inst {
16861                opcode: 0x7,
16862                funct3: 0x5,
16863                rs1: 0x0,
16864                rs2: 0x0,
16865                csr: 0x80,
16866                funct7: 0x4,
16867            },
16868            Opcode::VLSE32V => Inst {
16869                opcode: 0x7,
16870                funct3: 0x6,
16871                rs1: 0x0,
16872                rs2: 0x0,
16873                csr: 0x80,
16874                funct7: 0x4,
16875            },
16876            Opcode::VLSE64V => Inst {
16877                opcode: 0x7,
16878                funct3: 0x7,
16879                rs1: 0x0,
16880                rs2: 0x0,
16881                csr: 0x80,
16882                funct7: 0x4,
16883            },
16884            Opcode::VLSE8V => Inst {
16885                opcode: 0x7,
16886                funct3: 0x0,
16887                rs1: 0x0,
16888                rs2: 0x0,
16889                csr: 0x80,
16890                funct7: 0x4,
16891            },
16892            Opcode::VLUXEI16V => Inst {
16893                opcode: 0x7,
16894                funct3: 0x5,
16895                rs1: 0x0,
16896                rs2: 0x0,
16897                csr: 0x40,
16898                funct7: 0x2,
16899            },
16900            Opcode::VLUXEI32V => Inst {
16901                opcode: 0x7,
16902                funct3: 0x6,
16903                rs1: 0x0,
16904                rs2: 0x0,
16905                csr: 0x40,
16906                funct7: 0x2,
16907            },
16908            Opcode::VLUXEI64V => Inst {
16909                opcode: 0x7,
16910                funct3: 0x7,
16911                rs1: 0x0,
16912                rs2: 0x0,
16913                csr: 0x40,
16914                funct7: 0x2,
16915            },
16916            Opcode::VLUXEI8V => Inst {
16917                opcode: 0x7,
16918                funct3: 0x0,
16919                rs1: 0x0,
16920                rs2: 0x0,
16921                csr: 0x40,
16922                funct7: 0x2,
16923            },
16924            Opcode::VMACCVV => Inst {
16925                opcode: 0x57,
16926                funct3: 0x2,
16927                rs1: 0x0,
16928                rs2: 0x0,
16929                csr: 0xb40,
16930                funct7: 0x5a,
16931            },
16932            Opcode::VMACCVX => Inst {
16933                opcode: 0x57,
16934                funct3: 0x6,
16935                rs1: 0x0,
16936                rs2: 0x0,
16937                csr: 0xb40,
16938                funct7: 0x5a,
16939            },
16940            Opcode::VMADCVI => Inst {
16941                opcode: 0x57,
16942                funct3: 0x3,
16943                rs1: 0x0,
16944                rs2: 0x0,
16945                csr: 0x460,
16946                funct7: 0x23,
16947            },
16948            Opcode::VMADCVIM => Inst {
16949                opcode: 0x57,
16950                funct3: 0x3,
16951                rs1: 0x0,
16952                rs2: 0x0,
16953                csr: 0x440,
16954                funct7: 0x22,
16955            },
16956            Opcode::VMADCVV => Inst {
16957                opcode: 0x57,
16958                funct3: 0x0,
16959                rs1: 0x0,
16960                rs2: 0x0,
16961                csr: 0x460,
16962                funct7: 0x23,
16963            },
16964            Opcode::VMADCVVM => Inst {
16965                opcode: 0x57,
16966                funct3: 0x0,
16967                rs1: 0x0,
16968                rs2: 0x0,
16969                csr: 0x440,
16970                funct7: 0x22,
16971            },
16972            Opcode::VMADCVX => Inst {
16973                opcode: 0x57,
16974                funct3: 0x4,
16975                rs1: 0x0,
16976                rs2: 0x0,
16977                csr: 0x460,
16978                funct7: 0x23,
16979            },
16980            Opcode::VMADCVXM => Inst {
16981                opcode: 0x57,
16982                funct3: 0x4,
16983                rs1: 0x0,
16984                rs2: 0x0,
16985                csr: 0x440,
16986                funct7: 0x22,
16987            },
16988            Opcode::VMADDVV => Inst {
16989                opcode: 0x57,
16990                funct3: 0x2,
16991                rs1: 0x0,
16992                rs2: 0x0,
16993                csr: 0xa40,
16994                funct7: 0x52,
16995            },
16996            Opcode::VMADDVX => Inst {
16997                opcode: 0x57,
16998                funct3: 0x6,
16999                rs1: 0x0,
17000                rs2: 0x0,
17001                csr: 0xa40,
17002                funct7: 0x52,
17003            },
17004            Opcode::VMANDMM => Inst {
17005                opcode: 0x57,
17006                funct3: 0x2,
17007                rs1: 0x0,
17008                rs2: 0x0,
17009                csr: 0x660,
17010                funct7: 0x33,
17011            },
17012            Opcode::VMANDNMM => Inst {
17013                opcode: 0x57,
17014                funct3: 0x2,
17015                rs1: 0x0,
17016                rs2: 0x0,
17017                csr: 0x620,
17018                funct7: 0x31,
17019            },
17020            Opcode::VMANDNOTMM => Inst {
17021                opcode: 0x57,
17022                funct3: 0x2,
17023                rs1: 0x0,
17024                rs2: 0x0,
17025                csr: 0x600,
17026                funct7: 0x30,
17027            },
17028            Opcode::VMAXVV => Inst {
17029                opcode: 0x57,
17030                funct3: 0x0,
17031                rs1: 0x0,
17032                rs2: 0x0,
17033                csr: 0x1c0,
17034                funct7: 0xe,
17035            },
17036            Opcode::VMAXVX => Inst {
17037                opcode: 0x57,
17038                funct3: 0x4,
17039                rs1: 0x0,
17040                rs2: 0x0,
17041                csr: 0x1c0,
17042                funct7: 0xe,
17043            },
17044            Opcode::VMAXUVV => Inst {
17045                opcode: 0x57,
17046                funct3: 0x0,
17047                rs1: 0x0,
17048                rs2: 0x0,
17049                csr: 0x180,
17050                funct7: 0xc,
17051            },
17052            Opcode::VMAXUVX => Inst {
17053                opcode: 0x57,
17054                funct3: 0x4,
17055                rs1: 0x0,
17056                rs2: 0x0,
17057                csr: 0x180,
17058                funct7: 0xc,
17059            },
17060            Opcode::VMERGEVIM => Inst {
17061                opcode: 0x57,
17062                funct3: 0x3,
17063                rs1: 0x0,
17064                rs2: 0x0,
17065                csr: 0x5c0,
17066                funct7: 0x2e,
17067            },
17068            Opcode::VMERGEVVM => Inst {
17069                opcode: 0x57,
17070                funct3: 0x0,
17071                rs1: 0x0,
17072                rs2: 0x0,
17073                csr: 0x5c0,
17074                funct7: 0x2e,
17075            },
17076            Opcode::VMERGEVXM => Inst {
17077                opcode: 0x57,
17078                funct3: 0x4,
17079                rs1: 0x0,
17080                rs2: 0x0,
17081                csr: 0x5c0,
17082                funct7: 0x2e,
17083            },
17084            Opcode::VMFEQVF => Inst {
17085                opcode: 0x57,
17086                funct3: 0x5,
17087                rs1: 0x0,
17088                rs2: 0x0,
17089                csr: 0x600,
17090                funct7: 0x30,
17091            },
17092            Opcode::VMFEQVV => Inst {
17093                opcode: 0x57,
17094                funct3: 0x1,
17095                rs1: 0x0,
17096                rs2: 0x0,
17097                csr: 0x600,
17098                funct7: 0x30,
17099            },
17100            Opcode::VMFGEVF => Inst {
17101                opcode: 0x57,
17102                funct3: 0x5,
17103                rs1: 0x0,
17104                rs2: 0x0,
17105                csr: 0x7c0,
17106                funct7: 0x3e,
17107            },
17108            Opcode::VMFGTVF => Inst {
17109                opcode: 0x57,
17110                funct3: 0x5,
17111                rs1: 0x0,
17112                rs2: 0x0,
17113                csr: 0x740,
17114                funct7: 0x3a,
17115            },
17116            Opcode::VMFLEVF => Inst {
17117                opcode: 0x57,
17118                funct3: 0x5,
17119                rs1: 0x0,
17120                rs2: 0x0,
17121                csr: 0x640,
17122                funct7: 0x32,
17123            },
17124            Opcode::VMFLEVV => Inst {
17125                opcode: 0x57,
17126                funct3: 0x1,
17127                rs1: 0x0,
17128                rs2: 0x0,
17129                csr: 0x640,
17130                funct7: 0x32,
17131            },
17132            Opcode::VMFLTVF => Inst {
17133                opcode: 0x57,
17134                funct3: 0x5,
17135                rs1: 0x0,
17136                rs2: 0x0,
17137                csr: 0x6c0,
17138                funct7: 0x36,
17139            },
17140            Opcode::VMFLTVV => Inst {
17141                opcode: 0x57,
17142                funct3: 0x1,
17143                rs1: 0x0,
17144                rs2: 0x0,
17145                csr: 0x6c0,
17146                funct7: 0x36,
17147            },
17148            Opcode::VMFNEVF => Inst {
17149                opcode: 0x57,
17150                funct3: 0x5,
17151                rs1: 0x0,
17152                rs2: 0x0,
17153                csr: 0x700,
17154                funct7: 0x38,
17155            },
17156            Opcode::VMFNEVV => Inst {
17157                opcode: 0x57,
17158                funct3: 0x1,
17159                rs1: 0x0,
17160                rs2: 0x0,
17161                csr: 0x700,
17162                funct7: 0x38,
17163            },
17164            Opcode::VMINVV => Inst {
17165                opcode: 0x57,
17166                funct3: 0x0,
17167                rs1: 0x0,
17168                rs2: 0x0,
17169                csr: 0x140,
17170                funct7: 0xa,
17171            },
17172            Opcode::VMINVX => Inst {
17173                opcode: 0x57,
17174                funct3: 0x4,
17175                rs1: 0x0,
17176                rs2: 0x0,
17177                csr: 0x140,
17178                funct7: 0xa,
17179            },
17180            Opcode::VMINUVV => Inst {
17181                opcode: 0x57,
17182                funct3: 0x0,
17183                rs1: 0x0,
17184                rs2: 0x0,
17185                csr: 0x100,
17186                funct7: 0x8,
17187            },
17188            Opcode::VMINUVX => Inst {
17189                opcode: 0x57,
17190                funct3: 0x4,
17191                rs1: 0x0,
17192                rs2: 0x0,
17193                csr: 0x100,
17194                funct7: 0x8,
17195            },
17196            Opcode::VMNANDMM => Inst {
17197                opcode: 0x57,
17198                funct3: 0x2,
17199                rs1: 0x0,
17200                rs2: 0x0,
17201                csr: 0x760,
17202                funct7: 0x3b,
17203            },
17204            Opcode::VMNORMM => Inst {
17205                opcode: 0x57,
17206                funct3: 0x2,
17207                rs1: 0x0,
17208                rs2: 0x0,
17209                csr: 0x7a0,
17210                funct7: 0x3d,
17211            },
17212            Opcode::VMORMM => Inst {
17213                opcode: 0x57,
17214                funct3: 0x2,
17215                rs1: 0x0,
17216                rs2: 0x0,
17217                csr: 0x6a0,
17218                funct7: 0x35,
17219            },
17220            Opcode::VMORNMM => Inst {
17221                opcode: 0x57,
17222                funct3: 0x2,
17223                rs1: 0x0,
17224                rs2: 0x0,
17225                csr: 0x720,
17226                funct7: 0x39,
17227            },
17228            Opcode::VMORNOTMM => Inst {
17229                opcode: 0x57,
17230                funct3: 0x2,
17231                rs1: 0x0,
17232                rs2: 0x0,
17233                csr: 0x700,
17234                funct7: 0x38,
17235            },
17236            Opcode::VMSBCVV => Inst {
17237                opcode: 0x57,
17238                funct3: 0x0,
17239                rs1: 0x0,
17240                rs2: 0x0,
17241                csr: 0x4e0,
17242                funct7: 0x27,
17243            },
17244            Opcode::VMSBCVVM => Inst {
17245                opcode: 0x57,
17246                funct3: 0x0,
17247                rs1: 0x0,
17248                rs2: 0x0,
17249                csr: 0x4c0,
17250                funct7: 0x26,
17251            },
17252            Opcode::VMSBCVX => Inst {
17253                opcode: 0x57,
17254                funct3: 0x4,
17255                rs1: 0x0,
17256                rs2: 0x0,
17257                csr: 0x4e0,
17258                funct7: 0x27,
17259            },
17260            Opcode::VMSBCVXM => Inst {
17261                opcode: 0x57,
17262                funct3: 0x4,
17263                rs1: 0x0,
17264                rs2: 0x0,
17265                csr: 0x4c0,
17266                funct7: 0x26,
17267            },
17268            Opcode::VMSBFM => Inst {
17269                opcode: 0x57,
17270                funct3: 0x2,
17271                rs1: 0x1,
17272                rs2: 0x0,
17273                csr: 0x500,
17274                funct7: 0x28,
17275            },
17276            Opcode::VMSEQVI => Inst {
17277                opcode: 0x57,
17278                funct3: 0x3,
17279                rs1: 0x0,
17280                rs2: 0x0,
17281                csr: 0x600,
17282                funct7: 0x30,
17283            },
17284            Opcode::VMSEQVV => Inst {
17285                opcode: 0x57,
17286                funct3: 0x0,
17287                rs1: 0x0,
17288                rs2: 0x0,
17289                csr: 0x600,
17290                funct7: 0x30,
17291            },
17292            Opcode::VMSEQVX => Inst {
17293                opcode: 0x57,
17294                funct3: 0x4,
17295                rs1: 0x0,
17296                rs2: 0x0,
17297                csr: 0x600,
17298                funct7: 0x30,
17299            },
17300            Opcode::VMSGTVI => Inst {
17301                opcode: 0x57,
17302                funct3: 0x3,
17303                rs1: 0x0,
17304                rs2: 0x0,
17305                csr: 0x7c0,
17306                funct7: 0x3e,
17307            },
17308            Opcode::VMSGTVX => Inst {
17309                opcode: 0x57,
17310                funct3: 0x4,
17311                rs1: 0x0,
17312                rs2: 0x0,
17313                csr: 0x7c0,
17314                funct7: 0x3e,
17315            },
17316            Opcode::VMSGTUVI => Inst {
17317                opcode: 0x57,
17318                funct3: 0x3,
17319                rs1: 0x0,
17320                rs2: 0x0,
17321                csr: 0x780,
17322                funct7: 0x3c,
17323            },
17324            Opcode::VMSGTUVX => Inst {
17325                opcode: 0x57,
17326                funct3: 0x4,
17327                rs1: 0x0,
17328                rs2: 0x0,
17329                csr: 0x780,
17330                funct7: 0x3c,
17331            },
17332            Opcode::VMSIFM => Inst {
17333                opcode: 0x57,
17334                funct3: 0x2,
17335                rs1: 0x3,
17336                rs2: 0x0,
17337                csr: 0x500,
17338                funct7: 0x28,
17339            },
17340            Opcode::VMSLEVI => Inst {
17341                opcode: 0x57,
17342                funct3: 0x3,
17343                rs1: 0x0,
17344                rs2: 0x0,
17345                csr: 0x740,
17346                funct7: 0x3a,
17347            },
17348            Opcode::VMSLEVV => Inst {
17349                opcode: 0x57,
17350                funct3: 0x0,
17351                rs1: 0x0,
17352                rs2: 0x0,
17353                csr: 0x740,
17354                funct7: 0x3a,
17355            },
17356            Opcode::VMSLEVX => Inst {
17357                opcode: 0x57,
17358                funct3: 0x4,
17359                rs1: 0x0,
17360                rs2: 0x0,
17361                csr: 0x740,
17362                funct7: 0x3a,
17363            },
17364            Opcode::VMSLEUVI => Inst {
17365                opcode: 0x57,
17366                funct3: 0x3,
17367                rs1: 0x0,
17368                rs2: 0x0,
17369                csr: 0x700,
17370                funct7: 0x38,
17371            },
17372            Opcode::VMSLEUVV => Inst {
17373                opcode: 0x57,
17374                funct3: 0x0,
17375                rs1: 0x0,
17376                rs2: 0x0,
17377                csr: 0x700,
17378                funct7: 0x38,
17379            },
17380            Opcode::VMSLEUVX => Inst {
17381                opcode: 0x57,
17382                funct3: 0x4,
17383                rs1: 0x0,
17384                rs2: 0x0,
17385                csr: 0x700,
17386                funct7: 0x38,
17387            },
17388            Opcode::VMSLTVV => Inst {
17389                opcode: 0x57,
17390                funct3: 0x0,
17391                rs1: 0x0,
17392                rs2: 0x0,
17393                csr: 0x6c0,
17394                funct7: 0x36,
17395            },
17396            Opcode::VMSLTVX => Inst {
17397                opcode: 0x57,
17398                funct3: 0x4,
17399                rs1: 0x0,
17400                rs2: 0x0,
17401                csr: 0x6c0,
17402                funct7: 0x36,
17403            },
17404            Opcode::VMSLTUVV => Inst {
17405                opcode: 0x57,
17406                funct3: 0x0,
17407                rs1: 0x0,
17408                rs2: 0x0,
17409                csr: 0x680,
17410                funct7: 0x34,
17411            },
17412            Opcode::VMSLTUVX => Inst {
17413                opcode: 0x57,
17414                funct3: 0x4,
17415                rs1: 0x0,
17416                rs2: 0x0,
17417                csr: 0x680,
17418                funct7: 0x34,
17419            },
17420            Opcode::VMSNEVI => Inst {
17421                opcode: 0x57,
17422                funct3: 0x3,
17423                rs1: 0x0,
17424                rs2: 0x0,
17425                csr: 0x640,
17426                funct7: 0x32,
17427            },
17428            Opcode::VMSNEVV => Inst {
17429                opcode: 0x57,
17430                funct3: 0x0,
17431                rs1: 0x0,
17432                rs2: 0x0,
17433                csr: 0x640,
17434                funct7: 0x32,
17435            },
17436            Opcode::VMSNEVX => Inst {
17437                opcode: 0x57,
17438                funct3: 0x4,
17439                rs1: 0x0,
17440                rs2: 0x0,
17441                csr: 0x640,
17442                funct7: 0x32,
17443            },
17444            Opcode::VMSOFM => Inst {
17445                opcode: 0x57,
17446                funct3: 0x2,
17447                rs1: 0x2,
17448                rs2: 0x0,
17449                csr: 0x500,
17450                funct7: 0x28,
17451            },
17452            Opcode::VMULVV => Inst {
17453                opcode: 0x57,
17454                funct3: 0x2,
17455                rs1: 0x0,
17456                rs2: 0x0,
17457                csr: 0x940,
17458                funct7: 0x4a,
17459            },
17460            Opcode::VMULVX => Inst {
17461                opcode: 0x57,
17462                funct3: 0x6,
17463                rs1: 0x0,
17464                rs2: 0x0,
17465                csr: 0x940,
17466                funct7: 0x4a,
17467            },
17468            Opcode::VMULHVV => Inst {
17469                opcode: 0x57,
17470                funct3: 0x2,
17471                rs1: 0x0,
17472                rs2: 0x0,
17473                csr: 0x9c0,
17474                funct7: 0x4e,
17475            },
17476            Opcode::VMULHVX => Inst {
17477                opcode: 0x57,
17478                funct3: 0x6,
17479                rs1: 0x0,
17480                rs2: 0x0,
17481                csr: 0x9c0,
17482                funct7: 0x4e,
17483            },
17484            Opcode::VMULHSUVV => Inst {
17485                opcode: 0x57,
17486                funct3: 0x2,
17487                rs1: 0x0,
17488                rs2: 0x0,
17489                csr: 0x980,
17490                funct7: 0x4c,
17491            },
17492            Opcode::VMULHSUVX => Inst {
17493                opcode: 0x57,
17494                funct3: 0x6,
17495                rs1: 0x0,
17496                rs2: 0x0,
17497                csr: 0x980,
17498                funct7: 0x4c,
17499            },
17500            Opcode::VMULHUVV => Inst {
17501                opcode: 0x57,
17502                funct3: 0x2,
17503                rs1: 0x0,
17504                rs2: 0x0,
17505                csr: 0x900,
17506                funct7: 0x48,
17507            },
17508            Opcode::VMULHUVX => Inst {
17509                opcode: 0x57,
17510                funct3: 0x6,
17511                rs1: 0x0,
17512                rs2: 0x0,
17513                csr: 0x900,
17514                funct7: 0x48,
17515            },
17516            Opcode::VMV1RV => Inst {
17517                opcode: 0x57,
17518                funct3: 0x3,
17519                rs1: 0x0,
17520                rs2: 0x0,
17521                csr: 0x9e0,
17522                funct7: 0x4f,
17523            },
17524            Opcode::VMV2RV => Inst {
17525                opcode: 0x57,
17526                funct3: 0x3,
17527                rs1: 0x1,
17528                rs2: 0x0,
17529                csr: 0x9e0,
17530                funct7: 0x4f,
17531            },
17532            Opcode::VMV4RV => Inst {
17533                opcode: 0x57,
17534                funct3: 0x3,
17535                rs1: 0x3,
17536                rs2: 0x0,
17537                csr: 0x9e0,
17538                funct7: 0x4f,
17539            },
17540            Opcode::VMV8RV => Inst {
17541                opcode: 0x57,
17542                funct3: 0x3,
17543                rs1: 0x7,
17544                rs2: 0x0,
17545                csr: 0x9e0,
17546                funct7: 0x4f,
17547            },
17548            Opcode::VMVSX => Inst {
17549                opcode: 0x57,
17550                funct3: 0x6,
17551                rs1: 0x0,
17552                rs2: 0x0,
17553                csr: 0x420,
17554                funct7: 0x21,
17555            },
17556            Opcode::VMVVI => Inst {
17557                opcode: 0x57,
17558                funct3: 0x3,
17559                rs1: 0x0,
17560                rs2: 0x0,
17561                csr: 0x5e0,
17562                funct7: 0x2f,
17563            },
17564            Opcode::VMVVV => Inst {
17565                opcode: 0x57,
17566                funct3: 0x0,
17567                rs1: 0x0,
17568                rs2: 0x0,
17569                csr: 0x5e0,
17570                funct7: 0x2f,
17571            },
17572            Opcode::VMVVX => Inst {
17573                opcode: 0x57,
17574                funct3: 0x4,
17575                rs1: 0x0,
17576                rs2: 0x0,
17577                csr: 0x5e0,
17578                funct7: 0x2f,
17579            },
17580            Opcode::VMVXS => Inst {
17581                opcode: 0x57,
17582                funct3: 0x2,
17583                rs1: 0x0,
17584                rs2: 0x0,
17585                csr: 0x420,
17586                funct7: 0x21,
17587            },
17588            Opcode::VMXNORMM => Inst {
17589                opcode: 0x57,
17590                funct3: 0x2,
17591                rs1: 0x0,
17592                rs2: 0x0,
17593                csr: 0x7e0,
17594                funct7: 0x3f,
17595            },
17596            Opcode::VMXORMM => Inst {
17597                opcode: 0x57,
17598                funct3: 0x2,
17599                rs1: 0x0,
17600                rs2: 0x0,
17601                csr: 0x6e0,
17602                funct7: 0x37,
17603            },
17604            Opcode::VNCLIPWI => Inst {
17605                opcode: 0x57,
17606                funct3: 0x3,
17607                rs1: 0x0,
17608                rs2: 0x0,
17609                csr: 0xbc0,
17610                funct7: 0x5e,
17611            },
17612            Opcode::VNCLIPWV => Inst {
17613                opcode: 0x57,
17614                funct3: 0x0,
17615                rs1: 0x0,
17616                rs2: 0x0,
17617                csr: 0xbc0,
17618                funct7: 0x5e,
17619            },
17620            Opcode::VNCLIPWX => Inst {
17621                opcode: 0x57,
17622                funct3: 0x4,
17623                rs1: 0x0,
17624                rs2: 0x0,
17625                csr: 0xbc0,
17626                funct7: 0x5e,
17627            },
17628            Opcode::VNCLIPUWI => Inst {
17629                opcode: 0x57,
17630                funct3: 0x3,
17631                rs1: 0x0,
17632                rs2: 0x0,
17633                csr: 0xb80,
17634                funct7: 0x5c,
17635            },
17636            Opcode::VNCLIPUWV => Inst {
17637                opcode: 0x57,
17638                funct3: 0x0,
17639                rs1: 0x0,
17640                rs2: 0x0,
17641                csr: 0xb80,
17642                funct7: 0x5c,
17643            },
17644            Opcode::VNCLIPUWX => Inst {
17645                opcode: 0x57,
17646                funct3: 0x4,
17647                rs1: 0x0,
17648                rs2: 0x0,
17649                csr: 0xb80,
17650                funct7: 0x5c,
17651            },
17652            Opcode::VNMSACVV => Inst {
17653                opcode: 0x57,
17654                funct3: 0x2,
17655                rs1: 0x0,
17656                rs2: 0x0,
17657                csr: 0xbc0,
17658                funct7: 0x5e,
17659            },
17660            Opcode::VNMSACVX => Inst {
17661                opcode: 0x57,
17662                funct3: 0x6,
17663                rs1: 0x0,
17664                rs2: 0x0,
17665                csr: 0xbc0,
17666                funct7: 0x5e,
17667            },
17668            Opcode::VNMSUBVV => Inst {
17669                opcode: 0x57,
17670                funct3: 0x2,
17671                rs1: 0x0,
17672                rs2: 0x0,
17673                csr: 0xac0,
17674                funct7: 0x56,
17675            },
17676            Opcode::VNMSUBVX => Inst {
17677                opcode: 0x57,
17678                funct3: 0x6,
17679                rs1: 0x0,
17680                rs2: 0x0,
17681                csr: 0xac0,
17682                funct7: 0x56,
17683            },
17684            Opcode::VNSRAWI => Inst {
17685                opcode: 0x57,
17686                funct3: 0x3,
17687                rs1: 0x0,
17688                rs2: 0x0,
17689                csr: 0xb40,
17690                funct7: 0x5a,
17691            },
17692            Opcode::VNSRAWV => Inst {
17693                opcode: 0x57,
17694                funct3: 0x0,
17695                rs1: 0x0,
17696                rs2: 0x0,
17697                csr: 0xb40,
17698                funct7: 0x5a,
17699            },
17700            Opcode::VNSRAWX => Inst {
17701                opcode: 0x57,
17702                funct3: 0x4,
17703                rs1: 0x0,
17704                rs2: 0x0,
17705                csr: 0xb40,
17706                funct7: 0x5a,
17707            },
17708            Opcode::VNSRLWI => Inst {
17709                opcode: 0x57,
17710                funct3: 0x3,
17711                rs1: 0x0,
17712                rs2: 0x0,
17713                csr: 0xb00,
17714                funct7: 0x58,
17715            },
17716            Opcode::VNSRLWV => Inst {
17717                opcode: 0x57,
17718                funct3: 0x0,
17719                rs1: 0x0,
17720                rs2: 0x0,
17721                csr: 0xb00,
17722                funct7: 0x58,
17723            },
17724            Opcode::VNSRLWX => Inst {
17725                opcode: 0x57,
17726                funct3: 0x4,
17727                rs1: 0x0,
17728                rs2: 0x0,
17729                csr: 0xb00,
17730                funct7: 0x58,
17731            },
17732            Opcode::VORVI => Inst {
17733                opcode: 0x57,
17734                funct3: 0x3,
17735                rs1: 0x0,
17736                rs2: 0x0,
17737                csr: 0x280,
17738                funct7: 0x14,
17739            },
17740            Opcode::VORVV => Inst {
17741                opcode: 0x57,
17742                funct3: 0x0,
17743                rs1: 0x0,
17744                rs2: 0x0,
17745                csr: 0x280,
17746                funct7: 0x14,
17747            },
17748            Opcode::VORVX => Inst {
17749                opcode: 0x57,
17750                funct3: 0x4,
17751                rs1: 0x0,
17752                rs2: 0x0,
17753                csr: 0x280,
17754                funct7: 0x14,
17755            },
17756            Opcode::VPOPCM => Inst {
17757                opcode: 0x57,
17758                funct3: 0x2,
17759                rs1: 0x10,
17760                rs2: 0x0,
17761                csr: 0x400,
17762                funct7: 0x20,
17763            },
17764            Opcode::VREDANDVS => Inst {
17765                opcode: 0x57,
17766                funct3: 0x2,
17767                rs1: 0x0,
17768                rs2: 0x0,
17769                csr: 0x40,
17770                funct7: 0x2,
17771            },
17772            Opcode::VREDMAXVS => Inst {
17773                opcode: 0x57,
17774                funct3: 0x2,
17775                rs1: 0x0,
17776                rs2: 0x0,
17777                csr: 0x1c0,
17778                funct7: 0xe,
17779            },
17780            Opcode::VREDMAXUVS => Inst {
17781                opcode: 0x57,
17782                funct3: 0x2,
17783                rs1: 0x0,
17784                rs2: 0x0,
17785                csr: 0x180,
17786                funct7: 0xc,
17787            },
17788            Opcode::VREDMINVS => Inst {
17789                opcode: 0x57,
17790                funct3: 0x2,
17791                rs1: 0x0,
17792                rs2: 0x0,
17793                csr: 0x140,
17794                funct7: 0xa,
17795            },
17796            Opcode::VREDMINUVS => Inst {
17797                opcode: 0x57,
17798                funct3: 0x2,
17799                rs1: 0x0,
17800                rs2: 0x0,
17801                csr: 0x100,
17802                funct7: 0x8,
17803            },
17804            Opcode::VREDORVS => Inst {
17805                opcode: 0x57,
17806                funct3: 0x2,
17807                rs1: 0x0,
17808                rs2: 0x0,
17809                csr: 0x80,
17810                funct7: 0x4,
17811            },
17812            Opcode::VREDSUMVS => Inst {
17813                opcode: 0x57,
17814                funct3: 0x2,
17815                rs1: 0x0,
17816                rs2: 0x0,
17817                csr: 0x0,
17818                funct7: 0x0,
17819            },
17820            Opcode::VREDXORVS => Inst {
17821                opcode: 0x57,
17822                funct3: 0x2,
17823                rs1: 0x0,
17824                rs2: 0x0,
17825                csr: 0xc0,
17826                funct7: 0x6,
17827            },
17828            Opcode::VREMVV => Inst {
17829                opcode: 0x57,
17830                funct3: 0x2,
17831                rs1: 0x0,
17832                rs2: 0x0,
17833                csr: 0x8c0,
17834                funct7: 0x46,
17835            },
17836            Opcode::VREMVX => Inst {
17837                opcode: 0x57,
17838                funct3: 0x6,
17839                rs1: 0x0,
17840                rs2: 0x0,
17841                csr: 0x8c0,
17842                funct7: 0x46,
17843            },
17844            Opcode::VREMUVV => Inst {
17845                opcode: 0x57,
17846                funct3: 0x2,
17847                rs1: 0x0,
17848                rs2: 0x0,
17849                csr: 0x880,
17850                funct7: 0x44,
17851            },
17852            Opcode::VREMUVX => Inst {
17853                opcode: 0x57,
17854                funct3: 0x6,
17855                rs1: 0x0,
17856                rs2: 0x0,
17857                csr: 0x880,
17858                funct7: 0x44,
17859            },
17860            Opcode::VREV8V => Inst {
17861                opcode: 0x57,
17862                funct3: 0x2,
17863                rs1: 0x9,
17864                rs2: 0x0,
17865                csr: 0x480,
17866                funct7: 0x24,
17867            },
17868            Opcode::VRGATHERVI => Inst {
17869                opcode: 0x57,
17870                funct3: 0x3,
17871                rs1: 0x0,
17872                rs2: 0x0,
17873                csr: 0x300,
17874                funct7: 0x18,
17875            },
17876            Opcode::VRGATHERVV => Inst {
17877                opcode: 0x57,
17878                funct3: 0x0,
17879                rs1: 0x0,
17880                rs2: 0x0,
17881                csr: 0x300,
17882                funct7: 0x18,
17883            },
17884            Opcode::VRGATHERVX => Inst {
17885                opcode: 0x57,
17886                funct3: 0x4,
17887                rs1: 0x0,
17888                rs2: 0x0,
17889                csr: 0x300,
17890                funct7: 0x18,
17891            },
17892            Opcode::VRGATHEREI16VV => Inst {
17893                opcode: 0x57,
17894                funct3: 0x0,
17895                rs1: 0x0,
17896                rs2: 0x0,
17897                csr: 0x380,
17898                funct7: 0x1c,
17899            },
17900            Opcode::VROLVV => Inst {
17901                opcode: 0x57,
17902                funct3: 0x0,
17903                rs1: 0x0,
17904                rs2: 0x0,
17905                csr: 0x540,
17906                funct7: 0x2a,
17907            },
17908            Opcode::VROLVX => Inst {
17909                opcode: 0x57,
17910                funct3: 0x4,
17911                rs1: 0x0,
17912                rs2: 0x0,
17913                csr: 0x540,
17914                funct7: 0x2a,
17915            },
17916            Opcode::VRORVI => Inst {
17917                opcode: 0x57,
17918                funct3: 0x3,
17919                rs1: 0x0,
17920                rs2: 0x0,
17921                csr: 0x500,
17922                funct7: 0x28,
17923            },
17924            Opcode::VRORVV => Inst {
17925                opcode: 0x57,
17926                funct3: 0x0,
17927                rs1: 0x0,
17928                rs2: 0x0,
17929                csr: 0x500,
17930                funct7: 0x28,
17931            },
17932            Opcode::VRORVX => Inst {
17933                opcode: 0x57,
17934                funct3: 0x4,
17935                rs1: 0x0,
17936                rs2: 0x0,
17937                csr: 0x500,
17938                funct7: 0x28,
17939            },
17940            Opcode::VRSUBVI => Inst {
17941                opcode: 0x57,
17942                funct3: 0x3,
17943                rs1: 0x0,
17944                rs2: 0x0,
17945                csr: 0xc0,
17946                funct7: 0x6,
17947            },
17948            Opcode::VRSUBVX => Inst {
17949                opcode: 0x57,
17950                funct3: 0x4,
17951                rs1: 0x0,
17952                rs2: 0x0,
17953                csr: 0xc0,
17954                funct7: 0x6,
17955            },
17956            Opcode::VS1RV => Inst {
17957                opcode: 0x27,
17958                funct3: 0x0,
17959                rs1: 0x0,
17960                rs2: 0x8,
17961                csr: 0x28,
17962                funct7: 0x1,
17963            },
17964            Opcode::VS2RV => Inst {
17965                opcode: 0x27,
17966                funct3: 0x0,
17967                rs1: 0x0,
17968                rs2: 0x8,
17969                csr: 0x228,
17970                funct7: 0x11,
17971            },
17972            Opcode::VS4RV => Inst {
17973                opcode: 0x27,
17974                funct3: 0x0,
17975                rs1: 0x0,
17976                rs2: 0x8,
17977                csr: 0x628,
17978                funct7: 0x31,
17979            },
17980            Opcode::VS8RV => Inst {
17981                opcode: 0x27,
17982                funct3: 0x0,
17983                rs1: 0x0,
17984                rs2: 0x8,
17985                csr: 0xe28,
17986                funct7: 0x71,
17987            },
17988            Opcode::VSADDVI => Inst {
17989                opcode: 0x57,
17990                funct3: 0x3,
17991                rs1: 0x0,
17992                rs2: 0x0,
17993                csr: 0x840,
17994                funct7: 0x42,
17995            },
17996            Opcode::VSADDVV => Inst {
17997                opcode: 0x57,
17998                funct3: 0x0,
17999                rs1: 0x0,
18000                rs2: 0x0,
18001                csr: 0x840,
18002                funct7: 0x42,
18003            },
18004            Opcode::VSADDVX => Inst {
18005                opcode: 0x57,
18006                funct3: 0x4,
18007                rs1: 0x0,
18008                rs2: 0x0,
18009                csr: 0x840,
18010                funct7: 0x42,
18011            },
18012            Opcode::VSADDUVI => Inst {
18013                opcode: 0x57,
18014                funct3: 0x3,
18015                rs1: 0x0,
18016                rs2: 0x0,
18017                csr: 0x800,
18018                funct7: 0x40,
18019            },
18020            Opcode::VSADDUVV => Inst {
18021                opcode: 0x57,
18022                funct3: 0x0,
18023                rs1: 0x0,
18024                rs2: 0x0,
18025                csr: 0x800,
18026                funct7: 0x40,
18027            },
18028            Opcode::VSADDUVX => Inst {
18029                opcode: 0x57,
18030                funct3: 0x4,
18031                rs1: 0x0,
18032                rs2: 0x0,
18033                csr: 0x800,
18034                funct7: 0x40,
18035            },
18036            Opcode::VSBCVVM => Inst {
18037                opcode: 0x57,
18038                funct3: 0x0,
18039                rs1: 0x0,
18040                rs2: 0x0,
18041                csr: 0x480,
18042                funct7: 0x24,
18043            },
18044            Opcode::VSBCVXM => Inst {
18045                opcode: 0x57,
18046                funct3: 0x4,
18047                rs1: 0x0,
18048                rs2: 0x0,
18049                csr: 0x480,
18050                funct7: 0x24,
18051            },
18052            Opcode::VSE16V => Inst {
18053                opcode: 0x27,
18054                funct3: 0x5,
18055                rs1: 0x0,
18056                rs2: 0x0,
18057                csr: 0x0,
18058                funct7: 0x0,
18059            },
18060            Opcode::VSE1V => Inst {
18061                opcode: 0x27,
18062                funct3: 0x0,
18063                rs1: 0x0,
18064                rs2: 0xb,
18065                csr: 0x2b,
18066                funct7: 0x1,
18067            },
18068            Opcode::VSE32V => Inst {
18069                opcode: 0x27,
18070                funct3: 0x6,
18071                rs1: 0x0,
18072                rs2: 0x0,
18073                csr: 0x0,
18074                funct7: 0x0,
18075            },
18076            Opcode::VSE64V => Inst {
18077                opcode: 0x27,
18078                funct3: 0x7,
18079                rs1: 0x0,
18080                rs2: 0x0,
18081                csr: 0x0,
18082                funct7: 0x0,
18083            },
18084            Opcode::VSE8V => Inst {
18085                opcode: 0x27,
18086                funct3: 0x0,
18087                rs1: 0x0,
18088                rs2: 0x0,
18089                csr: 0x0,
18090                funct7: 0x0,
18091            },
18092            Opcode::VSETIVLI => Inst {
18093                opcode: 0x57,
18094                funct3: 0x7,
18095                rs1: 0x0,
18096                rs2: 0x0,
18097                csr: 0xc00,
18098                funct7: 0x60,
18099            },
18100            Opcode::VSETVL => Inst {
18101                opcode: 0x57,
18102                funct3: 0x7,
18103                rs1: 0x0,
18104                rs2: 0x0,
18105                csr: 0x800,
18106                funct7: 0x40,
18107            },
18108            Opcode::VSETVLI => Inst {
18109                opcode: 0x57,
18110                funct3: 0x7,
18111                rs1: 0x0,
18112                rs2: 0x0,
18113                csr: 0x0,
18114                funct7: 0x0,
18115            },
18116            Opcode::VSEXTVF2 => Inst {
18117                opcode: 0x57,
18118                funct3: 0x2,
18119                rs1: 0x7,
18120                rs2: 0x0,
18121                csr: 0x480,
18122                funct7: 0x24,
18123            },
18124            Opcode::VSEXTVF4 => Inst {
18125                opcode: 0x57,
18126                funct3: 0x2,
18127                rs1: 0x5,
18128                rs2: 0x0,
18129                csr: 0x480,
18130                funct7: 0x24,
18131            },
18132            Opcode::VSEXTVF8 => Inst {
18133                opcode: 0x57,
18134                funct3: 0x2,
18135                rs1: 0x3,
18136                rs2: 0x0,
18137                csr: 0x480,
18138                funct7: 0x24,
18139            },
18140            Opcode::VSHA2CHVV => Inst {
18141                opcode: 0x77,
18142                funct3: 0x2,
18143                rs1: 0x0,
18144                rs2: 0x0,
18145                csr: 0xba0,
18146                funct7: 0x5d,
18147            },
18148            Opcode::VSHA2CLVV => Inst {
18149                opcode: 0x77,
18150                funct3: 0x2,
18151                rs1: 0x0,
18152                rs2: 0x0,
18153                csr: 0xbe0,
18154                funct7: 0x5f,
18155            },
18156            Opcode::VSHA2MSVV => Inst {
18157                opcode: 0x77,
18158                funct3: 0x2,
18159                rs1: 0x0,
18160                rs2: 0x0,
18161                csr: 0xb60,
18162                funct7: 0x5b,
18163            },
18164            Opcode::VSLIDE1DOWNVX => Inst {
18165                opcode: 0x57,
18166                funct3: 0x6,
18167                rs1: 0x0,
18168                rs2: 0x0,
18169                csr: 0x3c0,
18170                funct7: 0x1e,
18171            },
18172            Opcode::VSLIDE1UPVX => Inst {
18173                opcode: 0x57,
18174                funct3: 0x6,
18175                rs1: 0x0,
18176                rs2: 0x0,
18177                csr: 0x380,
18178                funct7: 0x1c,
18179            },
18180            Opcode::VSLIDEDOWNVI => Inst {
18181                opcode: 0x57,
18182                funct3: 0x3,
18183                rs1: 0x0,
18184                rs2: 0x0,
18185                csr: 0x3c0,
18186                funct7: 0x1e,
18187            },
18188            Opcode::VSLIDEDOWNVX => Inst {
18189                opcode: 0x57,
18190                funct3: 0x4,
18191                rs1: 0x0,
18192                rs2: 0x0,
18193                csr: 0x3c0,
18194                funct7: 0x1e,
18195            },
18196            Opcode::VSLIDEUPVI => Inst {
18197                opcode: 0x57,
18198                funct3: 0x3,
18199                rs1: 0x0,
18200                rs2: 0x0,
18201                csr: 0x380,
18202                funct7: 0x1c,
18203            },
18204            Opcode::VSLIDEUPVX => Inst {
18205                opcode: 0x57,
18206                funct3: 0x4,
18207                rs1: 0x0,
18208                rs2: 0x0,
18209                csr: 0x380,
18210                funct7: 0x1c,
18211            },
18212            Opcode::VSLLVI => Inst {
18213                opcode: 0x57,
18214                funct3: 0x3,
18215                rs1: 0x0,
18216                rs2: 0x0,
18217                csr: 0x940,
18218                funct7: 0x4a,
18219            },
18220            Opcode::VSLLVV => Inst {
18221                opcode: 0x57,
18222                funct3: 0x0,
18223                rs1: 0x0,
18224                rs2: 0x0,
18225                csr: 0x940,
18226                funct7: 0x4a,
18227            },
18228            Opcode::VSLLVX => Inst {
18229                opcode: 0x57,
18230                funct3: 0x4,
18231                rs1: 0x0,
18232                rs2: 0x0,
18233                csr: 0x940,
18234                funct7: 0x4a,
18235            },
18236            Opcode::VSM3CVI => Inst {
18237                opcode: 0x77,
18238                funct3: 0x2,
18239                rs1: 0x0,
18240                rs2: 0x0,
18241                csr: 0xae0,
18242                funct7: 0x57,
18243            },
18244            Opcode::VSM3MEVV => Inst {
18245                opcode: 0x77,
18246                funct3: 0x2,
18247                rs1: 0x0,
18248                rs2: 0x0,
18249                csr: 0x820,
18250                funct7: 0x41,
18251            },
18252            Opcode::VSM4KVI => Inst {
18253                opcode: 0x77,
18254                funct3: 0x2,
18255                rs1: 0x0,
18256                rs2: 0x0,
18257                csr: 0x860,
18258                funct7: 0x43,
18259            },
18260            Opcode::VSM4RVS => Inst {
18261                opcode: 0x77,
18262                funct3: 0x2,
18263                rs1: 0x10,
18264                rs2: 0x0,
18265                csr: 0xa60,
18266                funct7: 0x53,
18267            },
18268            Opcode::VSM4RVV => Inst {
18269                opcode: 0x77,
18270                funct3: 0x2,
18271                rs1: 0x10,
18272                rs2: 0x0,
18273                csr: 0xa20,
18274                funct7: 0x51,
18275            },
18276            Opcode::VSMV => Inst {
18277                opcode: 0x27,
18278                funct3: 0x0,
18279                rs1: 0x0,
18280                rs2: 0xb,
18281                csr: 0x2b,
18282                funct7: 0x1,
18283            },
18284            Opcode::VSMULVV => Inst {
18285                opcode: 0x57,
18286                funct3: 0x0,
18287                rs1: 0x0,
18288                rs2: 0x0,
18289                csr: 0x9c0,
18290                funct7: 0x4e,
18291            },
18292            Opcode::VSMULVX => Inst {
18293                opcode: 0x57,
18294                funct3: 0x4,
18295                rs1: 0x0,
18296                rs2: 0x0,
18297                csr: 0x9c0,
18298                funct7: 0x4e,
18299            },
18300            Opcode::VSOXEI16V => Inst {
18301                opcode: 0x27,
18302                funct3: 0x5,
18303                rs1: 0x0,
18304                rs2: 0x0,
18305                csr: 0xc0,
18306                funct7: 0x6,
18307            },
18308            Opcode::VSOXEI32V => Inst {
18309                opcode: 0x27,
18310                funct3: 0x6,
18311                rs1: 0x0,
18312                rs2: 0x0,
18313                csr: 0xc0,
18314                funct7: 0x6,
18315            },
18316            Opcode::VSOXEI64V => Inst {
18317                opcode: 0x27,
18318                funct3: 0x7,
18319                rs1: 0x0,
18320                rs2: 0x0,
18321                csr: 0xc0,
18322                funct7: 0x6,
18323            },
18324            Opcode::VSOXEI8V => Inst {
18325                opcode: 0x27,
18326                funct3: 0x0,
18327                rs1: 0x0,
18328                rs2: 0x0,
18329                csr: 0xc0,
18330                funct7: 0x6,
18331            },
18332            Opcode::VSRAVI => Inst {
18333                opcode: 0x57,
18334                funct3: 0x3,
18335                rs1: 0x0,
18336                rs2: 0x0,
18337                csr: 0xa40,
18338                funct7: 0x52,
18339            },
18340            Opcode::VSRAVV => Inst {
18341                opcode: 0x57,
18342                funct3: 0x0,
18343                rs1: 0x0,
18344                rs2: 0x0,
18345                csr: 0xa40,
18346                funct7: 0x52,
18347            },
18348            Opcode::VSRAVX => Inst {
18349                opcode: 0x57,
18350                funct3: 0x4,
18351                rs1: 0x0,
18352                rs2: 0x0,
18353                csr: 0xa40,
18354                funct7: 0x52,
18355            },
18356            Opcode::VSRLVI => Inst {
18357                opcode: 0x57,
18358                funct3: 0x3,
18359                rs1: 0x0,
18360                rs2: 0x0,
18361                csr: 0xa00,
18362                funct7: 0x50,
18363            },
18364            Opcode::VSRLVV => Inst {
18365                opcode: 0x57,
18366                funct3: 0x0,
18367                rs1: 0x0,
18368                rs2: 0x0,
18369                csr: 0xa00,
18370                funct7: 0x50,
18371            },
18372            Opcode::VSRLVX => Inst {
18373                opcode: 0x57,
18374                funct3: 0x4,
18375                rs1: 0x0,
18376                rs2: 0x0,
18377                csr: 0xa00,
18378                funct7: 0x50,
18379            },
18380            Opcode::VSSE16V => Inst {
18381                opcode: 0x27,
18382                funct3: 0x5,
18383                rs1: 0x0,
18384                rs2: 0x0,
18385                csr: 0x80,
18386                funct7: 0x4,
18387            },
18388            Opcode::VSSE32V => Inst {
18389                opcode: 0x27,
18390                funct3: 0x6,
18391                rs1: 0x0,
18392                rs2: 0x0,
18393                csr: 0x80,
18394                funct7: 0x4,
18395            },
18396            Opcode::VSSE64V => Inst {
18397                opcode: 0x27,
18398                funct3: 0x7,
18399                rs1: 0x0,
18400                rs2: 0x0,
18401                csr: 0x80,
18402                funct7: 0x4,
18403            },
18404            Opcode::VSSE8V => Inst {
18405                opcode: 0x27,
18406                funct3: 0x0,
18407                rs1: 0x0,
18408                rs2: 0x0,
18409                csr: 0x80,
18410                funct7: 0x4,
18411            },
18412            Opcode::VSSRAVI => Inst {
18413                opcode: 0x57,
18414                funct3: 0x3,
18415                rs1: 0x0,
18416                rs2: 0x0,
18417                csr: 0xac0,
18418                funct7: 0x56,
18419            },
18420            Opcode::VSSRAVV => Inst {
18421                opcode: 0x57,
18422                funct3: 0x0,
18423                rs1: 0x0,
18424                rs2: 0x0,
18425                csr: 0xac0,
18426                funct7: 0x56,
18427            },
18428            Opcode::VSSRAVX => Inst {
18429                opcode: 0x57,
18430                funct3: 0x4,
18431                rs1: 0x0,
18432                rs2: 0x0,
18433                csr: 0xac0,
18434                funct7: 0x56,
18435            },
18436            Opcode::VSSRLVI => Inst {
18437                opcode: 0x57,
18438                funct3: 0x3,
18439                rs1: 0x0,
18440                rs2: 0x0,
18441                csr: 0xa80,
18442                funct7: 0x54,
18443            },
18444            Opcode::VSSRLVV => Inst {
18445                opcode: 0x57,
18446                funct3: 0x0,
18447                rs1: 0x0,
18448                rs2: 0x0,
18449                csr: 0xa80,
18450                funct7: 0x54,
18451            },
18452            Opcode::VSSRLVX => Inst {
18453                opcode: 0x57,
18454                funct3: 0x4,
18455                rs1: 0x0,
18456                rs2: 0x0,
18457                csr: 0xa80,
18458                funct7: 0x54,
18459            },
18460            Opcode::VSSUBVV => Inst {
18461                opcode: 0x57,
18462                funct3: 0x0,
18463                rs1: 0x0,
18464                rs2: 0x0,
18465                csr: 0x8c0,
18466                funct7: 0x46,
18467            },
18468            Opcode::VSSUBVX => Inst {
18469                opcode: 0x57,
18470                funct3: 0x4,
18471                rs1: 0x0,
18472                rs2: 0x0,
18473                csr: 0x8c0,
18474                funct7: 0x46,
18475            },
18476            Opcode::VSSUBUVV => Inst {
18477                opcode: 0x57,
18478                funct3: 0x0,
18479                rs1: 0x0,
18480                rs2: 0x0,
18481                csr: 0x880,
18482                funct7: 0x44,
18483            },
18484            Opcode::VSSUBUVX => Inst {
18485                opcode: 0x57,
18486                funct3: 0x4,
18487                rs1: 0x0,
18488                rs2: 0x0,
18489                csr: 0x880,
18490                funct7: 0x44,
18491            },
18492            Opcode::VSUBVV => Inst {
18493                opcode: 0x57,
18494                funct3: 0x0,
18495                rs1: 0x0,
18496                rs2: 0x0,
18497                csr: 0x80,
18498                funct7: 0x4,
18499            },
18500            Opcode::VSUBVX => Inst {
18501                opcode: 0x57,
18502                funct3: 0x4,
18503                rs1: 0x0,
18504                rs2: 0x0,
18505                csr: 0x80,
18506                funct7: 0x4,
18507            },
18508            Opcode::VSUXEI16V => Inst {
18509                opcode: 0x27,
18510                funct3: 0x5,
18511                rs1: 0x0,
18512                rs2: 0x0,
18513                csr: 0x40,
18514                funct7: 0x2,
18515            },
18516            Opcode::VSUXEI32V => Inst {
18517                opcode: 0x27,
18518                funct3: 0x6,
18519                rs1: 0x0,
18520                rs2: 0x0,
18521                csr: 0x40,
18522                funct7: 0x2,
18523            },
18524            Opcode::VSUXEI64V => Inst {
18525                opcode: 0x27,
18526                funct3: 0x7,
18527                rs1: 0x0,
18528                rs2: 0x0,
18529                csr: 0x40,
18530                funct7: 0x2,
18531            },
18532            Opcode::VSUXEI8V => Inst {
18533                opcode: 0x27,
18534                funct3: 0x0,
18535                rs1: 0x0,
18536                rs2: 0x0,
18537                csr: 0x40,
18538                funct7: 0x2,
18539            },
18540            Opcode::VWADDVV => Inst {
18541                opcode: 0x57,
18542                funct3: 0x2,
18543                rs1: 0x0,
18544                rs2: 0x0,
18545                csr: 0xc40,
18546                funct7: 0x62,
18547            },
18548            Opcode::VWADDVX => Inst {
18549                opcode: 0x57,
18550                funct3: 0x6,
18551                rs1: 0x0,
18552                rs2: 0x0,
18553                csr: 0xc40,
18554                funct7: 0x62,
18555            },
18556            Opcode::VWADDWV => Inst {
18557                opcode: 0x57,
18558                funct3: 0x2,
18559                rs1: 0x0,
18560                rs2: 0x0,
18561                csr: 0xd40,
18562                funct7: 0x6a,
18563            },
18564            Opcode::VWADDWX => Inst {
18565                opcode: 0x57,
18566                funct3: 0x6,
18567                rs1: 0x0,
18568                rs2: 0x0,
18569                csr: 0xd40,
18570                funct7: 0x6a,
18571            },
18572            Opcode::VWADDUVV => Inst {
18573                opcode: 0x57,
18574                funct3: 0x2,
18575                rs1: 0x0,
18576                rs2: 0x0,
18577                csr: 0xc00,
18578                funct7: 0x60,
18579            },
18580            Opcode::VWADDUVX => Inst {
18581                opcode: 0x57,
18582                funct3: 0x6,
18583                rs1: 0x0,
18584                rs2: 0x0,
18585                csr: 0xc00,
18586                funct7: 0x60,
18587            },
18588            Opcode::VWADDUWV => Inst {
18589                opcode: 0x57,
18590                funct3: 0x2,
18591                rs1: 0x0,
18592                rs2: 0x0,
18593                csr: 0xd00,
18594                funct7: 0x68,
18595            },
18596            Opcode::VWADDUWX => Inst {
18597                opcode: 0x57,
18598                funct3: 0x6,
18599                rs1: 0x0,
18600                rs2: 0x0,
18601                csr: 0xd00,
18602                funct7: 0x68,
18603            },
18604            Opcode::VWMACCVV => Inst {
18605                opcode: 0x57,
18606                funct3: 0x2,
18607                rs1: 0x0,
18608                rs2: 0x0,
18609                csr: 0xf40,
18610                funct7: 0x7a,
18611            },
18612            Opcode::VWMACCVX => Inst {
18613                opcode: 0x57,
18614                funct3: 0x6,
18615                rs1: 0x0,
18616                rs2: 0x0,
18617                csr: 0xf40,
18618                funct7: 0x7a,
18619            },
18620            Opcode::VWMACCSUVV => Inst {
18621                opcode: 0x57,
18622                funct3: 0x2,
18623                rs1: 0x0,
18624                rs2: 0x0,
18625                csr: 0xfc0,
18626                funct7: 0x7e,
18627            },
18628            Opcode::VWMACCSUVX => Inst {
18629                opcode: 0x57,
18630                funct3: 0x6,
18631                rs1: 0x0,
18632                rs2: 0x0,
18633                csr: 0xfc0,
18634                funct7: 0x7e,
18635            },
18636            Opcode::VWMACCUVV => Inst {
18637                opcode: 0x57,
18638                funct3: 0x2,
18639                rs1: 0x0,
18640                rs2: 0x0,
18641                csr: 0xf00,
18642                funct7: 0x78,
18643            },
18644            Opcode::VWMACCUVX => Inst {
18645                opcode: 0x57,
18646                funct3: 0x6,
18647                rs1: 0x0,
18648                rs2: 0x0,
18649                csr: 0xf00,
18650                funct7: 0x78,
18651            },
18652            Opcode::VWMACCUSVX => Inst {
18653                opcode: 0x57,
18654                funct3: 0x6,
18655                rs1: 0x0,
18656                rs2: 0x0,
18657                csr: 0xf80,
18658                funct7: 0x7c,
18659            },
18660            Opcode::VWMULVV => Inst {
18661                opcode: 0x57,
18662                funct3: 0x2,
18663                rs1: 0x0,
18664                rs2: 0x0,
18665                csr: 0xec0,
18666                funct7: 0x76,
18667            },
18668            Opcode::VWMULVX => Inst {
18669                opcode: 0x57,
18670                funct3: 0x6,
18671                rs1: 0x0,
18672                rs2: 0x0,
18673                csr: 0xec0,
18674                funct7: 0x76,
18675            },
18676            Opcode::VWMULSUVV => Inst {
18677                opcode: 0x57,
18678                funct3: 0x2,
18679                rs1: 0x0,
18680                rs2: 0x0,
18681                csr: 0xe80,
18682                funct7: 0x74,
18683            },
18684            Opcode::VWMULSUVX => Inst {
18685                opcode: 0x57,
18686                funct3: 0x6,
18687                rs1: 0x0,
18688                rs2: 0x0,
18689                csr: 0xe80,
18690                funct7: 0x74,
18691            },
18692            Opcode::VWMULUVV => Inst {
18693                opcode: 0x57,
18694                funct3: 0x2,
18695                rs1: 0x0,
18696                rs2: 0x0,
18697                csr: 0xe00,
18698                funct7: 0x70,
18699            },
18700            Opcode::VWMULUVX => Inst {
18701                opcode: 0x57,
18702                funct3: 0x6,
18703                rs1: 0x0,
18704                rs2: 0x0,
18705                csr: 0xe00,
18706                funct7: 0x70,
18707            },
18708            Opcode::VWREDSUMVS => Inst {
18709                opcode: 0x57,
18710                funct3: 0x0,
18711                rs1: 0x0,
18712                rs2: 0x0,
18713                csr: 0xc40,
18714                funct7: 0x62,
18715            },
18716            Opcode::VWREDSUMUVS => Inst {
18717                opcode: 0x57,
18718                funct3: 0x0,
18719                rs1: 0x0,
18720                rs2: 0x0,
18721                csr: 0xc00,
18722                funct7: 0x60,
18723            },
18724            Opcode::VWSLLVI => Inst {
18725                opcode: 0x57,
18726                funct3: 0x3,
18727                rs1: 0x0,
18728                rs2: 0x0,
18729                csr: 0xd40,
18730                funct7: 0x6a,
18731            },
18732            Opcode::VWSLLVV => Inst {
18733                opcode: 0x57,
18734                funct3: 0x0,
18735                rs1: 0x0,
18736                rs2: 0x0,
18737                csr: 0xd40,
18738                funct7: 0x6a,
18739            },
18740            Opcode::VWSLLVX => Inst {
18741                opcode: 0x57,
18742                funct3: 0x4,
18743                rs1: 0x0,
18744                rs2: 0x0,
18745                csr: 0xd40,
18746                funct7: 0x6a,
18747            },
18748            Opcode::VWSUBVV => Inst {
18749                opcode: 0x57,
18750                funct3: 0x2,
18751                rs1: 0x0,
18752                rs2: 0x0,
18753                csr: 0xcc0,
18754                funct7: 0x66,
18755            },
18756            Opcode::VWSUBVX => Inst {
18757                opcode: 0x57,
18758                funct3: 0x6,
18759                rs1: 0x0,
18760                rs2: 0x0,
18761                csr: 0xcc0,
18762                funct7: 0x66,
18763            },
18764            Opcode::VWSUBWV => Inst {
18765                opcode: 0x57,
18766                funct3: 0x2,
18767                rs1: 0x0,
18768                rs2: 0x0,
18769                csr: 0xdc0,
18770                funct7: 0x6e,
18771            },
18772            Opcode::VWSUBWX => Inst {
18773                opcode: 0x57,
18774                funct3: 0x6,
18775                rs1: 0x0,
18776                rs2: 0x0,
18777                csr: 0xdc0,
18778                funct7: 0x6e,
18779            },
18780            Opcode::VWSUBUVV => Inst {
18781                opcode: 0x57,
18782                funct3: 0x2,
18783                rs1: 0x0,
18784                rs2: 0x0,
18785                csr: 0xc80,
18786                funct7: 0x64,
18787            },
18788            Opcode::VWSUBUVX => Inst {
18789                opcode: 0x57,
18790                funct3: 0x6,
18791                rs1: 0x0,
18792                rs2: 0x0,
18793                csr: 0xc80,
18794                funct7: 0x64,
18795            },
18796            Opcode::VWSUBUWV => Inst {
18797                opcode: 0x57,
18798                funct3: 0x2,
18799                rs1: 0x0,
18800                rs2: 0x0,
18801                csr: 0xd80,
18802                funct7: 0x6c,
18803            },
18804            Opcode::VWSUBUWX => Inst {
18805                opcode: 0x57,
18806                funct3: 0x6,
18807                rs1: 0x0,
18808                rs2: 0x0,
18809                csr: 0xd80,
18810                funct7: 0x6c,
18811            },
18812            Opcode::VXORVI => Inst {
18813                opcode: 0x57,
18814                funct3: 0x3,
18815                rs1: 0x0,
18816                rs2: 0x0,
18817                csr: 0x2c0,
18818                funct7: 0x16,
18819            },
18820            Opcode::VXORVV => Inst {
18821                opcode: 0x57,
18822                funct3: 0x0,
18823                rs1: 0x0,
18824                rs2: 0x0,
18825                csr: 0x2c0,
18826                funct7: 0x16,
18827            },
18828            Opcode::VXORVX => Inst {
18829                opcode: 0x57,
18830                funct3: 0x4,
18831                rs1: 0x0,
18832                rs2: 0x0,
18833                csr: 0x2c0,
18834                funct7: 0x16,
18835            },
18836            Opcode::VZEXTVF2 => Inst {
18837                opcode: 0x57,
18838                funct3: 0x2,
18839                rs1: 0x6,
18840                rs2: 0x0,
18841                csr: 0x480,
18842                funct7: 0x24,
18843            },
18844            Opcode::VZEXTVF4 => Inst {
18845                opcode: 0x57,
18846                funct3: 0x2,
18847                rs1: 0x4,
18848                rs2: 0x0,
18849                csr: 0x480,
18850                funct7: 0x24,
18851            },
18852            Opcode::VZEXTVF8 => Inst {
18853                opcode: 0x57,
18854                funct3: 0x2,
18855                rs1: 0x2,
18856                rs2: 0x0,
18857                csr: 0x480,
18858                funct7: 0x24,
18859            },
18860            Opcode::WFI => Inst {
18861                opcode: 0x73,
18862                funct3: 0x0,
18863                rs1: 0x0,
18864                rs2: 0x5,
18865                csr: 0x105,
18866                funct7: 0x8,
18867            },
18868            Opcode::WRSNTO => Inst {
18869                opcode: 0x73,
18870                funct3: 0x0,
18871                rs1: 0x0,
18872                rs2: 0xd,
18873                csr: 0xd,
18874                funct7: 0x0,
18875            },
18876            Opcode::WRSSTO => Inst {
18877                opcode: 0x73,
18878                funct3: 0x0,
18879                rs1: 0x0,
18880                rs2: 0x1d,
18881                csr: 0x1d,
18882                funct7: 0x0,
18883            },
18884            Opcode::XNOR => Inst {
18885                opcode: 0x33,
18886                funct3: 0x4,
18887                rs1: 0x0,
18888                rs2: 0x0,
18889                csr: 0x400,
18890                funct7: 0x20,
18891            },
18892            Opcode::XOR => Inst {
18893                opcode: 0x33,
18894                funct3: 0x4,
18895                rs1: 0x0,
18896                rs2: 0x0,
18897                csr: 0x0,
18898                funct7: 0x0,
18899            },
18900            Opcode::XORI => Inst {
18901                opcode: 0x13,
18902                funct3: 0x4,
18903                rs1: 0x0,
18904                rs2: 0x0,
18905                csr: 0x0,
18906                funct7: 0x0,
18907            },
18908            Opcode::XPERM4 => Inst {
18909                opcode: 0x33,
18910                funct3: 0x2,
18911                rs1: 0x0,
18912                rs2: 0x0,
18913                csr: 0x280,
18914                funct7: 0x14,
18915            },
18916            Opcode::XPERM8 => Inst {
18917                opcode: 0x33,
18918                funct3: 0x4,
18919                rs1: 0x0,
18920                rs2: 0x0,
18921                csr: 0x280,
18922                funct7: 0x14,
18923            },
18924            Opcode::ZEXTB => Inst {
18925                opcode: 0x13,
18926                funct3: 0x7,
18927                rs1: 0x0,
18928                rs2: 0x0,
18929                csr: 0x0,
18930                funct7: 0x0,
18931            },
18932            Opcode::ZEXTH => Inst {
18933                opcode: 0x3b,
18934                funct3: 0x4,
18935                rs1: 0x0,
18936                rs2: 0x0,
18937                csr: 0x80,
18938                funct7: 0x4,
18939            },
18940            Opcode::ZEXTHRV32 => Inst {
18941                opcode: 0x33,
18942                funct3: 0x4,
18943                rs1: 0x0,
18944                rs2: 0x0,
18945                csr: 0x80,
18946                funct7: 0x4,
18947            },
18948            Opcode::ZEXTW => Inst {
18949                opcode: 0x3b,
18950                funct3: 0x0,
18951                rs1: 0x0,
18952                rs2: 0x0,
18953                csr: 0x80,
18954                funct7: 0x4,
18955            },
18956            Opcode::ZIP => Inst {
18957                opcode: 0x13,
18958                funct3: 0x1,
18959                rs1: 0x0,
18960                rs2: 0xf,
18961                csr: 0x8f,
18962                funct7: 0x4,
18963            },
18964        }
18965    }
18966}
18967
18968#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
18969pub enum Encoding {
18970    Bimm12HiRs1Bimm12lo,
18971    Bimm12HiRs1Rs2Bimm12lo,
18972    Bimm12HiRs2Bimm12lo,
18973    Bimm12HiRs2Rs1Bimm12lo,
18974    CImm12,
18975    CIndex,
18976    CMopT,
18977    CNzimm10hiCNzimm10lo,
18978    CNzimm6hiCNzimm6lo,
18979    CRlistCSpimm,
18980    CRs1N0,
18981    CRs2CUimm8spS,
18982    CRs2CUimm9spS,
18983    CSreg1CSreg2,
18984    CsrZimm,
18985    Empty,
18986    FmPredSuccRs1Rd,
18987    Imm12HiRs1Rs2Imm12lo,
18988    Imm12Rs1Rd,
18989    Jimm20,
18990    MopRT30MopRT2726MopRT2120RdRs1,
18991    MopRrT30MopRrT2726RdRs1Rs2,
18992    NfVmRs1Vd,
18993    NfVmRs1Vs3,
18994    NfVmRs2Rs1Vd,
18995    NfVmRs2Rs1Vs3,
18996    NfVmVs2Rs1Vd,
18997    NfVmVs2Rs1Vs3,
18998    Rd,
18999    RdCUimm8sphiCUimm8splo,
19000    RdCUimm9sphiCUimm9splo,
19001    RdCsr,
19002    RdCsrZimm,
19003    RdImm20,
19004    RdJimm20,
19005    RdN0CImm6loCImm6hi,
19006    RdN0CRs2N0,
19007    RdN0CUimm8sphiCUimm8splo,
19008    RdN0CUimm9sphiCUimm9splo,
19009    RdN2CNzimm18hiCNzimm18lo,
19010    RdPCNzuimm10,
19011    RdPRs1PCUimm1,
19012    RdPRs1PCUimm2,
19013    RdPRs1PCUimm7loCUimm7hi,
19014    RdPRs1PCUimm8loCUimm8hi,
19015    RdRs1,
19016    RdRs1AqRl,
19017    RdRs1Csr,
19018    RdRs1Imm12,
19019    RdRs1N0,
19020    RdRs1N0CImm6loCImm6hi,
19021    RdRs1N0CNzimm6loCNzimm6hi,
19022    RdRs1N0CNzuimm6hiCNzuimm6lo,
19023    RdRs1N0CNzuimm6lo,
19024    RdRs1N0CRs2N0,
19025    RdRs1P,
19026    RdRs1PCImm6hiCImm6lo,
19027    RdRs1PCNzuimm5,
19028    RdRs1PCNzuimm6loCNzuimm6hi,
19029    RdRs1PRs2P,
19030    RdRs1Rm,
19031    RdRs1Rnum,
19032    RdRs1Rs2,
19033    RdRs1Rs2AqRl,
19034    RdRs1Rs2Bs,
19035    RdRs1Rs2EqRs1,
19036    RdRs1Rs2Rm,
19037    RdRs1Rs2Rs3Rm,
19038    RdRs1Shamtd,
19039    RdRs1Shamtw,
19040    RdRs2,
19041    RdZimm,
19042    Rs1,
19043    Rs1Csr,
19044    Rs1Imm12hi,
19045    Rs1N0,
19046    Rs1PCBimm9loCBimm9hi,
19047    Rs1PRs2PCUimm7loCUimm7hi,
19048    Rs1PRs2PCUimm8hiCUimm8lo,
19049    Rs1PRs2PCUimm8loCUimm8hi,
19050    Rs1Rd,
19051    Rs1Rs2,
19052    Rs1Vd,
19053    Rs1Vs3,
19054    Rs2PRs1PCUimm1,
19055    Rs2PRs1PCUimm2,
19056    Rs2Rs1Rd,
19057    Simm5Vd,
19058    VmVd,
19059    VmVs2Rd,
19060    VmVs2Rs1Vd,
19061    VmVs2Simm5Vd,
19062    VmVs2Vd,
19063    VmVs2Vs1Vd,
19064    VmVs2Zimm5Vd,
19065    Vs1Vd,
19066    Vs2Rd,
19067    Vs2Rs1Vd,
19068    Vs2Simm5Vd,
19069    Vs2Vd,
19070    Vs2Vs1Vd,
19071    Vs2Zimm5Vd,
19072    Zimm10ZimmRd,
19073    Zimm11Rs1Rd,
19074    Zimm6HiVmVs2Zimm6loVd,
19075}
19076
19077impl Opcode {
19078    pub fn encoding(self) -> Encoding {
19079        use Opcode::*;
19080        match self {
19081            Opcode::Invalid => unreachable!(),
19082            BEQZ | BGEZ | BLTZ | BNEZ => Encoding::Bimm12HiRs1Bimm12lo,
19083            BEQ | BGE | BGEU | BLT | BLTU | BNE => Encoding::Bimm12HiRs1Rs2Bimm12lo,
19084            BGTZ | BLEZ => Encoding::Bimm12HiRs2Bimm12lo,
19085            BGT | BGTU | BLE | BLEU => Encoding::Bimm12HiRs2Rs1Bimm12lo,
19086            CJ | CJAL => Encoding::CImm12,
19087            CMJALT => Encoding::CIndex,
19088            CMOPN => Encoding::CMopT,
19089            CADDI16SP => Encoding::CNzimm10hiCNzimm10lo,
19090            CNOP => Encoding::CNzimm6hiCNzimm6lo,
19091            CMPOP | CMPOPRET | CMPOPRETZ | CMPUSH => Encoding::CRlistCSpimm,
19092            CJALR => Encoding::CRs1N0,
19093            CFSWSP | CSWSP => Encoding::CRs2CUimm8spS,
19094            CFSDSP | CSDSP => Encoding::CRs2CUimm9spS,
19095            CMMVA01S | CMMVSA01 => Encoding::CSreg1CSreg2,
19096            CSRCI | CSRSI | CSRWI => Encoding::CsrZimm,
19097            CEBREAK | CMOP1 | CMOP11 | CMOP13 | CMOP15 | CMOP3 | CMOP5 | CMOP7 | CMOP9
19098            | CNTLALL | CNTLP1 | CNTLPALL | CNTLS1 | DRET | EBREAK | ECALL | MRET | NOP
19099            | NTLALL | NTLP1 | NTLPALL | NTLS1 | PAUSE | RET | SBREAK | SCALL | SFENCEINVALIR
19100            | SFENCEWINVAL | SRET | WFI | WRSNTO | WRSSTO => Encoding::Empty,
19101            FENCE => Encoding::FmPredSuccRs1Rd,
19102            FSD | FSH | FSQ | FSW | SB | SD | SH | SW => Encoding::Imm12HiRs1Rs2Imm12lo,
19103            FENCEI => Encoding::Imm12Rs1Rd,
19104            J | JALPSEUDO => Encoding::Jimm20,
19105            MOPRN => Encoding::MopRT30MopRT2726MopRT2120RdRs1,
19106            MOPRRN => Encoding::MopRrT30MopRrT2726RdRs1Rs2,
19107            VLE16V | VLE16FFV | VLE32V | VLE32FFV | VLE64V | VLE64FFV | VLE8V | VLE8FFV => {
19108                Encoding::NfVmRs1Vd
19109            }
19110            VSE16V | VSE32V | VSE64V | VSE8V => Encoding::NfVmRs1Vs3,
19111            VLSE16V | VLSE32V | VLSE64V | VLSE8V => Encoding::NfVmRs2Rs1Vd,
19112            VSSE16V | VSSE32V | VSSE64V | VSSE8V => Encoding::NfVmRs2Rs1Vs3,
19113            VLOXEI16V | VLOXEI32V | VLOXEI64V | VLOXEI8V | VLUXEI16V | VLUXEI32V | VLUXEI64V
19114            | VLUXEI8V => Encoding::NfVmVs2Rs1Vd,
19115            VSOXEI16V | VSOXEI32V | VSOXEI64V | VSOXEI8V | VSUXEI16V | VSUXEI32V | VSUXEI64V
19116            | VSUXEI8V => Encoding::NfVmVs2Rs1Vs3,
19117            FRCSR | FRFLAGS | FRRM | RDCYCLE | RDCYCLEH | RDINSTRET | RDINSTRETH | RDTIME
19118            | RDTIMEH => Encoding::Rd,
19119            CFLWSP => Encoding::RdCUimm8sphiCUimm8splo,
19120            CFLDSP => Encoding::RdCUimm9sphiCUimm9splo,
19121            CSRR => Encoding::RdCsr,
19122            CSRRCI | CSRRSI | CSRRWI => Encoding::RdCsrZimm,
19123            AUIPC | LUI => Encoding::RdImm20,
19124            JAL => Encoding::RdJimm20,
19125            CLI => Encoding::RdN0CImm6loCImm6hi,
19126            CMV => Encoding::RdN0CRs2N0,
19127            CLWSP => Encoding::RdN0CUimm8sphiCUimm8splo,
19128            CLDSP => Encoding::RdN0CUimm9sphiCUimm9splo,
19129            CLUI => Encoding::RdN2CNzimm18hiCNzimm18lo,
19130            CADDI4SPN => Encoding::RdPCNzuimm10,
19131            CLH | CLHU => Encoding::RdPRs1PCUimm1,
19132            CLBU => Encoding::RdPRs1PCUimm2,
19133            CFLW | CLW => Encoding::RdPRs1PCUimm7loCUimm7hi,
19134            CFLD | CLD => Encoding::RdPRs1PCUimm8loCUimm8hi,
19135            AES64IM | BREV8 | CLZ | CLZW | CPOP | CPOPW | CTZ | CTZW | FCLASSD | FCLASSH
19136            | FCLASSQ | FCLASSS | FCVTMODWD | FLID | FLIH | FLIQ | FLIS | FMVDX | FMVHX | FMVSX
19137            | FMVWX | FMVXD | FMVXH | FMVXS | FMVXW | FMVHXD | FMVHXQ | FSCSR | FSFLAGS | FSRM
19138            | HLVB | HLVBU | HLVD | HLVH | HLVHU | HLVW | HLVWU | HLVXHU | HLVXWU | MOPR0
19139            | MOPR1 | MOPR10 | MOPR11 | MOPR12 | MOPR13 | MOPR14 | MOPR15 | MOPR16 | MOPR17
19140            | MOPR18 | MOPR19 | MOPR2 | MOPR20 | MOPR21 | MOPR22 | MOPR23 | MOPR24 | MOPR25
19141            | MOPR26 | MOPR27 | MOPR28 | MOPR29 | MOPR3 | MOPR30 | MOPR31 | MOPR4 | MOPR5
19142            | MOPR6 | MOPR7 | MOPR8 | MOPR9 | MV | NEG | ORCB | REV8 | REV8RV32 | SEQZ | SEXTB
19143            | SEXTH | SEXTW | SHA256SIG0 | SHA256SIG1 | SHA256SUM0 | SHA256SUM1 | SHA512SIG0
19144            | SHA512SIG1 | SHA512SUM0 | SHA512SUM1 | SLTZ | SM3P0 | SM3P1 | UNZIP | ZEXTB
19145            | ZEXTH | ZEXTHRV32 | ZEXTW | ZIP => Encoding::RdRs1,
19146            LRD | LRW => Encoding::RdRs1AqRl,
19147            CSRRC | CSRRS | CSRRW => Encoding::RdRs1Csr,
19148            ADDI | ADDIW | ANDI | FLD | FLH | FLQ | FLW | JALR | LB | LBU | LD | LH | LHU | LW
19149            | LWU | ORI | SLTI | SLTIU | XORI => Encoding::RdRs1Imm12,
19150            CSEXTW => Encoding::RdRs1N0,
19151            CADDIW => Encoding::RdRs1N0CImm6loCImm6hi,
19152            CADDI => Encoding::RdRs1N0CNzimm6loCNzimm6hi,
19153            CSLLI => Encoding::RdRs1N0CNzuimm6hiCNzuimm6lo,
19154            CSLLIRV32 => Encoding::RdRs1N0CNzuimm6lo,
19155            CADD => Encoding::RdRs1N0CRs2N0,
19156            CNOT | CSEXTB | CSEXTH | CZEXTB | CZEXTH | CZEXTW => Encoding::RdRs1P,
19157            CANDI => Encoding::RdRs1PCImm6hiCImm6lo,
19158            CSRAIRV32 | CSRLIRV32 => Encoding::RdRs1PCNzuimm5,
19159            CSRAI | CSRLI => Encoding::RdRs1PCNzuimm6loCNzuimm6hi,
19160            CADDW | CAND | CMUL | COR | CSUB | CSUBW | CXOR => Encoding::RdRs1PRs2P,
19161            FCVTDH | FCVTDL | FCVTDLU | FCVTDQ | FCVTDS | FCVTDW | FCVTDWU | FCVTHD | FCVTHL
19162            | FCVTHLU | FCVTHQ | FCVTHS | FCVTHW | FCVTHWU | FCVTLD | FCVTLH | FCVTLQ | FCVTLS
19163            | FCVTLUD | FCVTLUH | FCVTLUQ | FCVTLUS | FCVTQD | FCVTQH | FCVTQL | FCVTQLU
19164            | FCVTQS | FCVTQW | FCVTQWU | FCVTSD | FCVTSH | FCVTSL | FCVTSLU | FCVTSQ | FCVTSW
19165            | FCVTSWU | FCVTWD | FCVTWH | FCVTWQ | FCVTWS | FCVTWUD | FCVTWUH | FCVTWUQ
19166            | FCVTWUS | FROUNDD | FROUNDH | FROUNDQ | FROUNDS | FROUNDNXD | FROUNDNXH
19167            | FROUNDNXQ | FROUNDNXS | FSQRTD | FSQRTH | FSQRTQ | FSQRTS => Encoding::RdRs1Rm,
19168            AES64KS1I => Encoding::RdRs1Rnum,
19169            ADD | ADDUW | ADDW | AES64DS | AES64DSM | AES64ES | AES64ESM | AES64KS2 | AND
19170            | ANDN | BCLR | BEXT | BINV | BSET | CLMUL | CLMULH | CLMULR | CZEROEQZ | CZERONEZ
19171            | DIV | DIVU | DIVUW | DIVW | FEQD | FEQH | FEQQ | FEQS | FLED | FLEH | FLEQ | FLES
19172            | FLEQD | FLEQH | FLEQQ | FLEQS | FLTD | FLTH | FLTQ | FLTS | FLTQD | FLTQH | FLTQQ
19173            | FLTQS | FMAXD | FMAXH | FMAXQ | FMAXS | FMAXMD | FMAXMH | FMAXMQ | FMAXMS | FMIND
19174            | FMINH | FMINQ | FMINS | FMINMD | FMINMH | FMINMQ | FMINMS | FMVPDX | FMVPQX
19175            | FSGNJD | FSGNJH | FSGNJQ | FSGNJS | FSGNJND | FSGNJNH | FSGNJNQ | FSGNJNS
19176            | FSGNJXD | FSGNJXH | FSGNJXQ | FSGNJXS | MAX | MAXU | MIN | MINU | MOPRR0 | MOPRR1
19177            | MOPRR2 | MOPRR3 | MOPRR4 | MOPRR5 | MOPRR6 | MOPRR7 | MUL | MULH | MULHSU | MULHU
19178            | MULW | OR | ORN | PACK | PACKH | PACKW | REM | REMU | REMUW | REMW | ROL | ROLW
19179            | ROR | RORW | SH1ADD | SH1ADDUW | SH2ADD | SH2ADDUW | SH3ADD | SH3ADDUW
19180            | SHA512SIG0H | SHA512SIG0L | SHA512SIG1H | SHA512SIG1L | SHA512SUM0R | SHA512SUM1R
19181            | SLL | SLLW | SLT | SLTU | SRA | SRAW | SRL | SRLW | SUB | SUBW | XNOR | XOR
19182            | XPERM4 | XPERM8 => Encoding::RdRs1Rs2,
19183            AMOADDB | AMOADDD | AMOADDH | AMOADDW | AMOANDB | AMOANDD | AMOANDH | AMOANDW
19184            | AMOCASB | AMOCASD | AMOCASH | AMOCASQ | AMOCASW | AMOMAXB | AMOMAXD | AMOMAXH
19185            | AMOMAXW | AMOMAXUB | AMOMAXUD | AMOMAXUH | AMOMAXUW | AMOMINB | AMOMIND | AMOMINH
19186            | AMOMINW | AMOMINUB | AMOMINUD | AMOMINUH | AMOMINUW | AMOORB | AMOORD | AMOORH
19187            | AMOORW | AMOSWAPB | AMOSWAPD | AMOSWAPH | AMOSWAPW | AMOXORB | AMOXORD | AMOXORH
19188            | AMOXORW | SCD | SCW => Encoding::RdRs1Rs2AqRl,
19189            AES32DSI | AES32DSMI | AES32ESI | AES32ESMI | SM4ED | SM4KS => Encoding::RdRs1Rs2Bs,
19190            FABSD | FABSH | FABSQ | FABSS | FMVD | FMVH | FMVQ | FMVS | FNEGD | FNEGH | FNEGQ
19191            | FNEGS => Encoding::RdRs1Rs2EqRs1,
19192            FADDD | FADDH | FADDQ | FADDS | FDIVD | FDIVH | FDIVQ | FDIVS | FMULD | FMULH
19193            | FMULQ | FMULS | FSUBD | FSUBH | FSUBQ | FSUBS => Encoding::RdRs1Rs2Rm,
19194            FMADDD | FMADDH | FMADDQ | FMADDS | FMSUBD | FMSUBH | FMSUBQ | FMSUBS | FNMADDD
19195            | FNMADDH | FNMADDQ | FNMADDS | FNMSUBD | FNMSUBH | FNMSUBQ | FNMSUBS => {
19196                Encoding::RdRs1Rs2Rs3Rm
19197            }
19198            BCLRI | BEXTI | BINVI | BSETI | RORI | SLLI | SLLIUW | SRAI | SRLI => {
19199                Encoding::RdRs1Shamtd
19200            }
19201            BCLRIRV32 | BEXTIRV32 | BINVIRV32 | BSETIRV32 | RORIRV32 | RORIW | SLLIRV32 | SLLIW
19202            | SRAIRV32 | SRAIW | SRLIRV32 | SRLIW => Encoding::RdRs1Shamtw,
19203            SGTZ | SNEZ => Encoding::RdRs2,
19204            FSFLAGSI | FSRMI => Encoding::RdZimm,
19205            CBOCLEAN | CBOFLUSH | CBOINVAL | CBOZERO | JALRPSEUDO | JR => Encoding::Rs1,
19206            CSRC | CSRS | CSRW => Encoding::Rs1Csr,
19207            PREFETCHI | PREFETCHR | PREFETCHW => Encoding::Rs1Imm12hi,
19208            CJR => Encoding::Rs1N0,
19209            CBEQZ | CBNEZ => Encoding::Rs1PCBimm9loCBimm9hi,
19210            CFSW | CSW => Encoding::Rs1PRs2PCUimm7loCUimm7hi,
19211            CSD => Encoding::Rs1PRs2PCUimm8hiCUimm8lo,
19212            CFSD => Encoding::Rs1PRs2PCUimm8loCUimm8hi,
19213            FENCETSO => Encoding::Rs1Rd,
19214            HFENCEGVMA | HFENCEVVMA | HINVALGVMA | HINVALVVMA | HSVB | HSVD | HSVH | HSVW
19215            | SFENCEVMA | SINVALVMA => Encoding::Rs1Rs2,
19216            VFMVSF | VFMVVF | VL1RV | VL1RE16V | VL1RE32V | VL1RE64V | VL1RE8V | VL2RV
19217            | VL2RE16V | VL2RE32V | VL2RE64V | VL2RE8V | VL4RV | VL4RE16V | VL4RE32V | VL4RE64V
19218            | VL4RE8V | VL8RV | VL8RE16V | VL8RE32V | VL8RE64V | VL8RE8V | VLE1V | VLMV | VMVSX
19219            | VMVVX => Encoding::Rs1Vd,
19220            VS1RV | VS2RV | VS4RV | VS8RV | VSE1V | VSMV => Encoding::Rs1Vs3,
19221            CSH => Encoding::Rs2PRs1PCUimm1,
19222            CSB => Encoding::Rs2PRs1PCUimm2,
19223            VSETVL => Encoding::Rs2Rs1Rd,
19224            VMVVI => Encoding::Simm5Vd,
19225            VIDV => Encoding::VmVd,
19226            VCPOPM | VFIRSTM | VPOPCM => Encoding::VmVs2Rd,
19227            VAADDVX | VAADDUVX | VADDVX | VANDVX | VANDNVX | VASUBVX | VASUBUVX | VCLMULVX
19228            | VCLMULHVX | VDIVVX | VDIVUVX | VFADDVF | VFDIVVF | VFMACCVF | VFMADDVF | VFMAXVF
19229            | VFMINVF | VFMSACVF | VFMSUBVF | VFMULVF | VFNMACCVF | VFNMADDVF | VFNMSACVF
19230            | VFNMSUBVF | VFRDIVVF | VFRSUBVF | VFSGNJVF | VFSGNJNVF | VFSGNJXVF
19231            | VFSLIDE1DOWNVF | VFSLIDE1UPVF | VFSUBVF | VFWADDVF | VFWADDWF | VFWMACCVF
19232            | VFWMSACVF | VFWMULVF | VFWNMACCVF | VFWNMSACVF | VFWSUBVF | VFWSUBWF | VMACCVX
19233            | VMADDVX | VMAXVX | VMAXUVX | VMFEQVF | VMFGEVF | VMFGTVF | VMFLEVF | VMFLTVF
19234            | VMFNEVF | VMINVX | VMINUVX | VMSEQVX | VMSGTVX | VMSGTUVX | VMSLEVX | VMSLEUVX
19235            | VMSLTVX | VMSLTUVX | VMSNEVX | VMULVX | VMULHVX | VMULHSUVX | VMULHUVX | VNCLIPWX
19236            | VNCLIPUWX | VNMSACVX | VNMSUBVX | VNSRAWX | VNSRLWX | VORVX | VREMVX | VREMUVX
19237            | VRGATHERVX | VROLVX | VRORVX | VRSUBVX | VSADDVX | VSADDUVX | VSLIDE1DOWNVX
19238            | VSLIDE1UPVX | VSLIDEDOWNVX | VSLIDEUPVX | VSLLVX | VSMULVX | VSRAVX | VSRLVX
19239            | VSSRAVX | VSSRLVX | VSSUBVX | VSSUBUVX | VSUBVX | VWADDVX | VWADDWX | VWADDUVX
19240            | VWADDUWX | VWMACCVX | VWMACCSUVX | VWMACCUVX | VWMACCUSVX | VWMULVX | VWMULSUVX
19241            | VWMULUVX | VWSLLVX | VWSUBVX | VWSUBWX | VWSUBUVX | VWSUBUWX | VXORVX => {
19242                Encoding::VmVs2Rs1Vd
19243            }
19244            VADDVI | VANDVI | VMSEQVI | VMSGTVI | VMSGTUVI | VMSLEVI | VMSLEUVI | VMSNEVI
19245            | VNCLIPWI | VNCLIPUWI | VNSRAWI | VNSRLWI | VORVI | VRGATHERVI | VRSUBVI | VSADDVI
19246            | VSADDUVI | VSLIDEDOWNVI | VSLIDEUPVI | VSLLVI | VSRAVI | VSRLVI | VSSRAVI
19247            | VSSRLVI | VXORVI => Encoding::VmVs2Simm5Vd,
19248            VBREV8V | VBREVV | VCLZV | VCPOPV | VCTZV | VFCLASSV | VFCVTFXV | VFCVTFXUV
19249            | VFCVTRTZXFV | VFCVTRTZXUFV | VFCVTXFV | VFCVTXUFV | VFNCVTFFW | VFNCVTFXW
19250            | VFNCVTFXUW | VFNCVTRODFFW | VFNCVTRTZXFW | VFNCVTRTZXUFW | VFNCVTXFW | VFNCVTXUFW
19251            | VFREC7V | VFRSQRT7V | VFSQRTV | VFWCVTFFV | VFWCVTFXV | VFWCVTFXUV | VFWCVTRTZXFV
19252            | VFWCVTRTZXUFV | VFWCVTXFV | VFWCVTXUFV | VIOTAM | VMSBFM | VMSIFM | VMSOFM
19253            | VREV8V | VSEXTVF2 | VSEXTVF4 | VSEXTVF8 | VZEXTVF2 | VZEXTVF4 | VZEXTVF8 => {
19254                Encoding::VmVs2Vd
19255            }
19256            VAADDVV | VAADDUVV | VADDVV | VANDVV | VANDNVV | VASUBVV | VASUBUVV | VCLMULVV
19257            | VCLMULHVV | VDIVVV | VDIVUVV | VFADDVV | VFDIVVV | VFMACCVV | VFMADDVV | VFMAXVV
19258            | VFMINVV | VFMSACVV | VFMSUBVV | VFMULVV | VFNMACCVV | VFNMADDVV | VFNMSACVV
19259            | VFNMSUBVV | VFREDMAXVS | VFREDMINVS | VFREDOSUMVS | VFREDSUMVS | VFREDUSUMVS
19260            | VFSGNJVV | VFSGNJNVV | VFSGNJXVV | VFSUBVV | VFWADDVV | VFWADDWV | VFWMACCVV
19261            | VFWMSACVV | VFWMULVV | VFWNMACCVV | VFWNMSACVV | VFWREDOSUMVS | VFWREDSUMVS
19262            | VFWREDUSUMVS | VFWSUBVV | VFWSUBWV | VMACCVV | VMADDVV | VMANDNOTMM | VMAXVV
19263            | VMAXUVV | VMFEQVV | VMFLEVV | VMFLTVV | VMFNEVV | VMINVV | VMINUVV | VMORNOTMM
19264            | VMSEQVV | VMSLEVV | VMSLEUVV | VMSLTVV | VMSLTUVV | VMSNEVV | VMULVV | VMULHVV
19265            | VMULHSUVV | VMULHUVV | VNCLIPWV | VNCLIPUWV | VNMSACVV | VNMSUBVV | VNSRAWV
19266            | VNSRLWV | VORVV | VREDANDVS | VREDMAXVS | VREDMAXUVS | VREDMINVS | VREDMINUVS
19267            | VREDORVS | VREDSUMVS | VREDXORVS | VREMVV | VREMUVV | VRGATHERVV | VRGATHEREI16VV
19268            | VROLVV | VRORVV | VSADDVV | VSADDUVV | VSLLVV | VSMULVV | VSRAVV | VSRLVV
19269            | VSSRAVV | VSSRLVV | VSSUBVV | VSSUBUVV | VSUBVV | VWADDVV | VWADDWV | VWADDUVV
19270            | VWADDUWV | VWMACCVV | VWMACCSUVV | VWMACCUVV | VWMULVV | VWMULSUVV | VWMULUVV
19271            | VWREDSUMVS | VWREDSUMUVS | VWSLLVV | VWSUBVV | VWSUBWV | VWSUBUVV | VWSUBUWV
19272            | VXORVV => Encoding::VmVs2Vs1Vd,
19273            VWSLLVI => Encoding::VmVs2Zimm5Vd,
19274            VMVVV => Encoding::Vs1Vd,
19275            VFMVFS | VMVXS => Encoding::Vs2Rd,
19276            VADCVXM | VFMERGEVFM | VMADCVX | VMADCVXM | VMERGEVXM | VMSBCVX | VMSBCVXM
19277            | VSBCVXM => Encoding::Vs2Rs1Vd,
19278            VADCVIM | VMADCVI | VMADCVIM | VMERGEVIM => Encoding::Vs2Simm5Vd,
19279            VAESDFVS | VAESDFVV | VAESDMVS | VAESDMVV | VAESEFVS | VAESEFVV | VAESEMVS
19280            | VAESEMVV | VAESZVS | VGMULVV | VMV1RV | VMV2RV | VMV4RV | VMV8RV | VSM4RVS
19281            | VSM4RVV => Encoding::Vs2Vd,
19282            VADCVVM | VCOMPRESSVM | VGHSHVV | VMADCVV | VMADCVVM | VMANDMM | VMANDNMM
19283            | VMERGEVVM | VMNANDMM | VMNORMM | VMORMM | VMORNMM | VMSBCVV | VMSBCVVM | VMXNORMM
19284            | VMXORMM | VSBCVVM | VSHA2CHVV | VSHA2CLVV | VSHA2MSVV | VSM3MEVV => {
19285                Encoding::Vs2Vs1Vd
19286            }
19287            VAESKF1VI | VAESKF2VI | VSM3CVI | VSM4KVI => Encoding::Vs2Zimm5Vd,
19288            VSETIVLI => Encoding::Zimm10ZimmRd,
19289            VSETVLI => Encoding::Zimm11Rs1Rd,
19290            VRORVI => Encoding::Zimm6HiVmVs2Zimm6loVd,
19291        }
19292    }
19293}
19294pub const INSN_FIELD_RD: u32 = 0xf80;
19295pub const INSN_FIELD_RD_START: u32 = 7;
19296pub const INSN_FIELD_RD_SIZE: u32 = 5;
19297pub const INSN_FIELD_RT: u32 = 0xf8000;
19298pub const INSN_FIELD_RT_START: u32 = 15;
19299pub const INSN_FIELD_RT_SIZE: u32 = 5;
19300pub const INSN_FIELD_RS1: u32 = 0xf8000;
19301pub const INSN_FIELD_RS1_START: u32 = 15;
19302pub const INSN_FIELD_RS1_SIZE: u32 = 5;
19303pub const INSN_FIELD_RS2: u32 = 0x1f00000;
19304pub const INSN_FIELD_RS2_START: u32 = 20;
19305pub const INSN_FIELD_RS2_SIZE: u32 = 5;
19306pub const INSN_FIELD_RS3: u32 = 0xf8000000;
19307pub const INSN_FIELD_RS3_START: u32 = 27;
19308pub const INSN_FIELD_RS3_SIZE: u32 = 5;
19309pub const INSN_FIELD_AQRL: u32 = 0x6000000;
19310pub const INSN_FIELD_AQRL_START: u32 = 25;
19311pub const INSN_FIELD_AQRL_SIZE: u32 = 2;
19312pub const INSN_FIELD_AQ: u32 = 0x4000000;
19313pub const INSN_FIELD_AQ_START: u32 = 26;
19314pub const INSN_FIELD_AQ_SIZE: u32 = 1;
19315pub const INSN_FIELD_RL: u32 = 0x2000000;
19316pub const INSN_FIELD_RL_START: u32 = 25;
19317pub const INSN_FIELD_RL_SIZE: u32 = 1;
19318pub const INSN_FIELD_FM: u32 = 0xf0000000;
19319pub const INSN_FIELD_FM_START: u32 = 28;
19320pub const INSN_FIELD_FM_SIZE: u32 = 4;
19321pub const INSN_FIELD_PRED: u32 = 0xf000000;
19322pub const INSN_FIELD_PRED_START: u32 = 24;
19323pub const INSN_FIELD_PRED_SIZE: u32 = 4;
19324pub const INSN_FIELD_SUCC: u32 = 0xf00000;
19325pub const INSN_FIELD_SUCC_START: u32 = 20;
19326pub const INSN_FIELD_SUCC_SIZE: u32 = 4;
19327pub const INSN_FIELD_RM: u32 = 0x7000;
19328pub const INSN_FIELD_RM_START: u32 = 12;
19329pub const INSN_FIELD_RM_SIZE: u32 = 3;
19330pub const INSN_FIELD_FUNCT3: u32 = 0x7000;
19331pub const INSN_FIELD_FUNCT3_START: u32 = 12;
19332pub const INSN_FIELD_FUNCT3_SIZE: u32 = 3;
19333pub const INSN_FIELD_FUNCT2: u32 = 0x6000000;
19334pub const INSN_FIELD_FUNCT2_START: u32 = 25;
19335pub const INSN_FIELD_FUNCT2_SIZE: u32 = 2;
19336pub const INSN_FIELD_IMM20: u32 = 0xfffff000;
19337pub const INSN_FIELD_IMM20_START: u32 = 12;
19338pub const INSN_FIELD_IMM20_SIZE: u32 = 20;
19339pub const INSN_FIELD_JIMM20: u32 = 0xfffff000;
19340pub const INSN_FIELD_JIMM20_START: u32 = 12;
19341pub const INSN_FIELD_JIMM20_SIZE: u32 = 20;
19342pub const INSN_FIELD_IMM12: u32 = 0xfff00000;
19343pub const INSN_FIELD_IMM12_START: u32 = 20;
19344pub const INSN_FIELD_IMM12_SIZE: u32 = 12;
19345pub const INSN_FIELD_CSR: u32 = 0xfff00000;
19346pub const INSN_FIELD_CSR_START: u32 = 20;
19347pub const INSN_FIELD_CSR_SIZE: u32 = 12;
19348pub const INSN_FIELD_IMM12HI: u32 = 0xfe000000;
19349pub const INSN_FIELD_IMM12HI_START: u32 = 25;
19350pub const INSN_FIELD_IMM12HI_SIZE: u32 = 7;
19351pub const INSN_FIELD_BIMM12HI: u32 = 0xfe000000;
19352pub const INSN_FIELD_BIMM12HI_START: u32 = 25;
19353pub const INSN_FIELD_BIMM12HI_SIZE: u32 = 7;
19354pub const INSN_FIELD_IMM12LO: u32 = 0xf80;
19355pub const INSN_FIELD_IMM12LO_START: u32 = 7;
19356pub const INSN_FIELD_IMM12LO_SIZE: u32 = 5;
19357pub const INSN_FIELD_BIMM12LO: u32 = 0xf80;
19358pub const INSN_FIELD_BIMM12LO_START: u32 = 7;
19359pub const INSN_FIELD_BIMM12LO_SIZE: u32 = 5;
19360pub const INSN_FIELD_SHAMTQ: u32 = 0x7f00000;
19361pub const INSN_FIELD_SHAMTQ_START: u32 = 20;
19362pub const INSN_FIELD_SHAMTQ_SIZE: u32 = 7;
19363pub const INSN_FIELD_SHAMTW: u32 = 0x1f00000;
19364pub const INSN_FIELD_SHAMTW_START: u32 = 20;
19365pub const INSN_FIELD_SHAMTW_SIZE: u32 = 5;
19366pub const INSN_FIELD_SHAMTW4: u32 = 0xf00000;
19367pub const INSN_FIELD_SHAMTW4_START: u32 = 20;
19368pub const INSN_FIELD_SHAMTW4_SIZE: u32 = 4;
19369pub const INSN_FIELD_SHAMTD: u32 = 0x3f00000;
19370pub const INSN_FIELD_SHAMTD_START: u32 = 20;
19371pub const INSN_FIELD_SHAMTD_SIZE: u32 = 6;
19372pub const INSN_FIELD_BS: u32 = 0xc0000000;
19373pub const INSN_FIELD_BS_START: u32 = 30;
19374pub const INSN_FIELD_BS_SIZE: u32 = 2;
19375pub const INSN_FIELD_RNUM: u32 = 0xf00000;
19376pub const INSN_FIELD_RNUM_START: u32 = 20;
19377pub const INSN_FIELD_RNUM_SIZE: u32 = 4;
19378pub const INSN_FIELD_RC: u32 = 0x3e000000;
19379pub const INSN_FIELD_RC_START: u32 = 25;
19380pub const INSN_FIELD_RC_SIZE: u32 = 5;
19381pub const INSN_FIELD_IMM2: u32 = 0x300000;
19382pub const INSN_FIELD_IMM2_START: u32 = 20;
19383pub const INSN_FIELD_IMM2_SIZE: u32 = 2;
19384pub const INSN_FIELD_IMM3: u32 = 0x700000;
19385pub const INSN_FIELD_IMM3_START: u32 = 20;
19386pub const INSN_FIELD_IMM3_SIZE: u32 = 3;
19387pub const INSN_FIELD_IMM4: u32 = 0xf00000;
19388pub const INSN_FIELD_IMM4_START: u32 = 20;
19389pub const INSN_FIELD_IMM4_SIZE: u32 = 4;
19390pub const INSN_FIELD_IMM5: u32 = 0x1f00000;
19391pub const INSN_FIELD_IMM5_START: u32 = 20;
19392pub const INSN_FIELD_IMM5_SIZE: u32 = 5;
19393pub const INSN_FIELD_IMM6: u32 = 0x3f00000;
19394pub const INSN_FIELD_IMM6_START: u32 = 20;
19395pub const INSN_FIELD_IMM6_SIZE: u32 = 6;
19396pub const INSN_FIELD_ZIMM: u32 = 0xf8000;
19397pub const INSN_FIELD_ZIMM_START: u32 = 15;
19398pub const INSN_FIELD_ZIMM_SIZE: u32 = 5;
19399pub const INSN_FIELD_OPCODE: u32 = 0x7f;
19400pub const INSN_FIELD_OPCODE_START: u32 = 0;
19401pub const INSN_FIELD_OPCODE_SIZE: u32 = 7;
19402pub const INSN_FIELD_FUNCT7: u32 = 0xfe000000;
19403pub const INSN_FIELD_FUNCT7_START: u32 = 25;
19404pub const INSN_FIELD_FUNCT7_SIZE: u32 = 7;
19405pub const INSN_FIELD_VD: u32 = 0xf80;
19406pub const INSN_FIELD_VD_START: u32 = 7;
19407pub const INSN_FIELD_VD_SIZE: u32 = 5;
19408pub const INSN_FIELD_VS3: u32 = 0xf80;
19409pub const INSN_FIELD_VS3_START: u32 = 7;
19410pub const INSN_FIELD_VS3_SIZE: u32 = 5;
19411pub const INSN_FIELD_VS1: u32 = 0xf8000;
19412pub const INSN_FIELD_VS1_START: u32 = 15;
19413pub const INSN_FIELD_VS1_SIZE: u32 = 5;
19414pub const INSN_FIELD_VS2: u32 = 0x1f00000;
19415pub const INSN_FIELD_VS2_START: u32 = 20;
19416pub const INSN_FIELD_VS2_SIZE: u32 = 5;
19417pub const INSN_FIELD_VM: u32 = 0x2000000;
19418pub const INSN_FIELD_VM_START: u32 = 25;
19419pub const INSN_FIELD_VM_SIZE: u32 = 1;
19420pub const INSN_FIELD_WD: u32 = 0x4000000;
19421pub const INSN_FIELD_WD_START: u32 = 26;
19422pub const INSN_FIELD_WD_SIZE: u32 = 1;
19423pub const INSN_FIELD_AMOOP: u32 = 0xf8000000;
19424pub const INSN_FIELD_AMOOP_START: u32 = 27;
19425pub const INSN_FIELD_AMOOP_SIZE: u32 = 5;
19426pub const INSN_FIELD_NF: u32 = 0xe0000000;
19427pub const INSN_FIELD_NF_START: u32 = 29;
19428pub const INSN_FIELD_NF_SIZE: u32 = 3;
19429pub const INSN_FIELD_SIMM5: u32 = 0xf8000;
19430pub const INSN_FIELD_SIMM5_START: u32 = 15;
19431pub const INSN_FIELD_SIMM5_SIZE: u32 = 5;
19432pub const INSN_FIELD_ZIMM5: u32 = 0xf8000;
19433pub const INSN_FIELD_ZIMM5_START: u32 = 15;
19434pub const INSN_FIELD_ZIMM5_SIZE: u32 = 5;
19435pub const INSN_FIELD_ZIMM10: u32 = 0x3ff00000;
19436pub const INSN_FIELD_ZIMM10_START: u32 = 20;
19437pub const INSN_FIELD_ZIMM10_SIZE: u32 = 10;
19438pub const INSN_FIELD_ZIMM11: u32 = 0x7ff00000;
19439pub const INSN_FIELD_ZIMM11_START: u32 = 20;
19440pub const INSN_FIELD_ZIMM11_SIZE: u32 = 11;
19441pub const INSN_FIELD_ZIMM6HI: u32 = 0x4000000;
19442pub const INSN_FIELD_ZIMM6HI_START: u32 = 26;
19443pub const INSN_FIELD_ZIMM6HI_SIZE: u32 = 1;
19444pub const INSN_FIELD_ZIMM6LO: u32 = 0xf8000;
19445pub const INSN_FIELD_ZIMM6LO_START: u32 = 15;
19446pub const INSN_FIELD_ZIMM6LO_SIZE: u32 = 5;
19447pub const INSN_FIELD_C_NZUIMM10: u32 = 0x1fe0;
19448pub const INSN_FIELD_C_NZUIMM10_START: u32 = 5;
19449pub const INSN_FIELD_C_NZUIMM10_SIZE: u32 = 8;
19450pub const INSN_FIELD_C_UIMM7LO: u32 = 0x60;
19451pub const INSN_FIELD_C_UIMM7LO_START: u32 = 5;
19452pub const INSN_FIELD_C_UIMM7LO_SIZE: u32 = 2;
19453pub const INSN_FIELD_C_UIMM7HI: u32 = 0x1c00;
19454pub const INSN_FIELD_C_UIMM7HI_START: u32 = 10;
19455pub const INSN_FIELD_C_UIMM7HI_SIZE: u32 = 3;
19456pub const INSN_FIELD_C_UIMM8LO: u32 = 0x60;
19457pub const INSN_FIELD_C_UIMM8LO_START: u32 = 5;
19458pub const INSN_FIELD_C_UIMM8LO_SIZE: u32 = 2;
19459pub const INSN_FIELD_C_UIMM8HI: u32 = 0x1c00;
19460pub const INSN_FIELD_C_UIMM8HI_START: u32 = 10;
19461pub const INSN_FIELD_C_UIMM8HI_SIZE: u32 = 3;
19462pub const INSN_FIELD_C_UIMM9LO: u32 = 0x60;
19463pub const INSN_FIELD_C_UIMM9LO_START: u32 = 5;
19464pub const INSN_FIELD_C_UIMM9LO_SIZE: u32 = 2;
19465pub const INSN_FIELD_C_UIMM9HI: u32 = 0x1c00;
19466pub const INSN_FIELD_C_UIMM9HI_START: u32 = 10;
19467pub const INSN_FIELD_C_UIMM9HI_SIZE: u32 = 3;
19468pub const INSN_FIELD_C_NZIMM6LO: u32 = 0x7c;
19469pub const INSN_FIELD_C_NZIMM6LO_START: u32 = 2;
19470pub const INSN_FIELD_C_NZIMM6LO_SIZE: u32 = 5;
19471pub const INSN_FIELD_C_NZIMM6HI: u32 = 0x1000;
19472pub const INSN_FIELD_C_NZIMM6HI_START: u32 = 12;
19473pub const INSN_FIELD_C_NZIMM6HI_SIZE: u32 = 1;
19474pub const INSN_FIELD_C_IMM6LO: u32 = 0x7c;
19475pub const INSN_FIELD_C_IMM6LO_START: u32 = 2;
19476pub const INSN_FIELD_C_IMM6LO_SIZE: u32 = 5;
19477pub const INSN_FIELD_C_IMM6HI: u32 = 0x1000;
19478pub const INSN_FIELD_C_IMM6HI_START: u32 = 12;
19479pub const INSN_FIELD_C_IMM6HI_SIZE: u32 = 1;
19480pub const INSN_FIELD_C_NZIMM10HI: u32 = 0x1000;
19481pub const INSN_FIELD_C_NZIMM10HI_START: u32 = 12;
19482pub const INSN_FIELD_C_NZIMM10HI_SIZE: u32 = 1;
19483pub const INSN_FIELD_C_NZIMM10LO: u32 = 0x7c;
19484pub const INSN_FIELD_C_NZIMM10LO_START: u32 = 2;
19485pub const INSN_FIELD_C_NZIMM10LO_SIZE: u32 = 5;
19486pub const INSN_FIELD_C_NZIMM18HI: u32 = 0x1000;
19487pub const INSN_FIELD_C_NZIMM18HI_START: u32 = 12;
19488pub const INSN_FIELD_C_NZIMM18HI_SIZE: u32 = 1;
19489pub const INSN_FIELD_C_NZIMM18LO: u32 = 0x7c;
19490pub const INSN_FIELD_C_NZIMM18LO_START: u32 = 2;
19491pub const INSN_FIELD_C_NZIMM18LO_SIZE: u32 = 5;
19492pub const INSN_FIELD_C_IMM12: u32 = 0x1ffc;
19493pub const INSN_FIELD_C_IMM12_START: u32 = 2;
19494pub const INSN_FIELD_C_IMM12_SIZE: u32 = 11;
19495pub const INSN_FIELD_C_BIMM9LO: u32 = 0x7c;
19496pub const INSN_FIELD_C_BIMM9LO_START: u32 = 2;
19497pub const INSN_FIELD_C_BIMM9LO_SIZE: u32 = 5;
19498pub const INSN_FIELD_C_BIMM9HI: u32 = 0x1c00;
19499pub const INSN_FIELD_C_BIMM9HI_START: u32 = 10;
19500pub const INSN_FIELD_C_BIMM9HI_SIZE: u32 = 3;
19501pub const INSN_FIELD_C_NZUIMM5: u32 = 0x7c;
19502pub const INSN_FIELD_C_NZUIMM5_START: u32 = 2;
19503pub const INSN_FIELD_C_NZUIMM5_SIZE: u32 = 5;
19504pub const INSN_FIELD_C_NZUIMM6LO: u32 = 0x7c;
19505pub const INSN_FIELD_C_NZUIMM6LO_START: u32 = 2;
19506pub const INSN_FIELD_C_NZUIMM6LO_SIZE: u32 = 5;
19507pub const INSN_FIELD_C_NZUIMM6HI: u32 = 0x1000;
19508pub const INSN_FIELD_C_NZUIMM6HI_START: u32 = 12;
19509pub const INSN_FIELD_C_NZUIMM6HI_SIZE: u32 = 1;
19510pub const INSN_FIELD_C_UIMM8SPLO: u32 = 0x7c;
19511pub const INSN_FIELD_C_UIMM8SPLO_START: u32 = 2;
19512pub const INSN_FIELD_C_UIMM8SPLO_SIZE: u32 = 5;
19513pub const INSN_FIELD_C_UIMM8SPHI: u32 = 0x1000;
19514pub const INSN_FIELD_C_UIMM8SPHI_START: u32 = 12;
19515pub const INSN_FIELD_C_UIMM8SPHI_SIZE: u32 = 1;
19516pub const INSN_FIELD_C_UIMM8SP_S: u32 = 0x1f80;
19517pub const INSN_FIELD_C_UIMM8SP_S_START: u32 = 7;
19518pub const INSN_FIELD_C_UIMM8SP_S_SIZE: u32 = 6;
19519pub const INSN_FIELD_C_UIMM10SPLO: u32 = 0x7c;
19520pub const INSN_FIELD_C_UIMM10SPLO_START: u32 = 2;
19521pub const INSN_FIELD_C_UIMM10SPLO_SIZE: u32 = 5;
19522pub const INSN_FIELD_C_UIMM10SPHI: u32 = 0x1000;
19523pub const INSN_FIELD_C_UIMM10SPHI_START: u32 = 12;
19524pub const INSN_FIELD_C_UIMM10SPHI_SIZE: u32 = 1;
19525pub const INSN_FIELD_C_UIMM9SPLO: u32 = 0x7c;
19526pub const INSN_FIELD_C_UIMM9SPLO_START: u32 = 2;
19527pub const INSN_FIELD_C_UIMM9SPLO_SIZE: u32 = 5;
19528pub const INSN_FIELD_C_UIMM9SPHI: u32 = 0x1000;
19529pub const INSN_FIELD_C_UIMM9SPHI_START: u32 = 12;
19530pub const INSN_FIELD_C_UIMM9SPHI_SIZE: u32 = 1;
19531pub const INSN_FIELD_C_UIMM10SP_S: u32 = 0x1f80;
19532pub const INSN_FIELD_C_UIMM10SP_S_START: u32 = 7;
19533pub const INSN_FIELD_C_UIMM10SP_S_SIZE: u32 = 6;
19534pub const INSN_FIELD_C_UIMM9SP_S: u32 = 0x1f80;
19535pub const INSN_FIELD_C_UIMM9SP_S_START: u32 = 7;
19536pub const INSN_FIELD_C_UIMM9SP_S_SIZE: u32 = 6;
19537pub const INSN_FIELD_C_UIMM2: u32 = 0x60;
19538pub const INSN_FIELD_C_UIMM2_START: u32 = 5;
19539pub const INSN_FIELD_C_UIMM2_SIZE: u32 = 2;
19540pub const INSN_FIELD_C_UIMM1: u32 = 0x20;
19541pub const INSN_FIELD_C_UIMM1_START: u32 = 5;
19542pub const INSN_FIELD_C_UIMM1_SIZE: u32 = 1;
19543pub const INSN_FIELD_C_RLIST: u32 = 0xf0;
19544pub const INSN_FIELD_C_RLIST_START: u32 = 4;
19545pub const INSN_FIELD_C_RLIST_SIZE: u32 = 4;
19546pub const INSN_FIELD_C_SPIMM: u32 = 0xc;
19547pub const INSN_FIELD_C_SPIMM_START: u32 = 2;
19548pub const INSN_FIELD_C_SPIMM_SIZE: u32 = 2;
19549pub const INSN_FIELD_C_INDEX: u32 = 0x3fc;
19550pub const INSN_FIELD_C_INDEX_START: u32 = 2;
19551pub const INSN_FIELD_C_INDEX_SIZE: u32 = 8;
19552pub const INSN_FIELD_RS1_P: u32 = 0x380;
19553pub const INSN_FIELD_RS1_P_START: u32 = 7;
19554pub const INSN_FIELD_RS1_P_SIZE: u32 = 3;
19555pub const INSN_FIELD_RS2_P: u32 = 0x1c;
19556pub const INSN_FIELD_RS2_P_START: u32 = 2;
19557pub const INSN_FIELD_RS2_P_SIZE: u32 = 3;
19558pub const INSN_FIELD_RD_P: u32 = 0x1c;
19559pub const INSN_FIELD_RD_P_START: u32 = 2;
19560pub const INSN_FIELD_RD_P_SIZE: u32 = 3;
19561pub const INSN_FIELD_RD_RS1_N0: u32 = 0xf80;
19562pub const INSN_FIELD_RD_RS1_N0_START: u32 = 7;
19563pub const INSN_FIELD_RD_RS1_N0_SIZE: u32 = 5;
19564pub const INSN_FIELD_RD_RS1_P: u32 = 0x380;
19565pub const INSN_FIELD_RD_RS1_P_START: u32 = 7;
19566pub const INSN_FIELD_RD_RS1_P_SIZE: u32 = 3;
19567pub const INSN_FIELD_RD_RS1: u32 = 0xf80;
19568pub const INSN_FIELD_RD_RS1_START: u32 = 7;
19569pub const INSN_FIELD_RD_RS1_SIZE: u32 = 5;
19570pub const INSN_FIELD_RD_N2: u32 = 0xf80;
19571pub const INSN_FIELD_RD_N2_START: u32 = 7;
19572pub const INSN_FIELD_RD_N2_SIZE: u32 = 5;
19573pub const INSN_FIELD_RD_N0: u32 = 0xf80;
19574pub const INSN_FIELD_RD_N0_START: u32 = 7;
19575pub const INSN_FIELD_RD_N0_SIZE: u32 = 5;
19576pub const INSN_FIELD_RS1_N0: u32 = 0xf80;
19577pub const INSN_FIELD_RS1_N0_START: u32 = 7;
19578pub const INSN_FIELD_RS1_N0_SIZE: u32 = 5;
19579pub const INSN_FIELD_C_RS2_N0: u32 = 0x7c;
19580pub const INSN_FIELD_C_RS2_N0_START: u32 = 2;
19581pub const INSN_FIELD_C_RS2_N0_SIZE: u32 = 5;
19582pub const INSN_FIELD_C_RS1_N0: u32 = 0xf80;
19583pub const INSN_FIELD_C_RS1_N0_START: u32 = 7;
19584pub const INSN_FIELD_C_RS1_N0_SIZE: u32 = 5;
19585pub const INSN_FIELD_C_RS2: u32 = 0x7c;
19586pub const INSN_FIELD_C_RS2_START: u32 = 2;
19587pub const INSN_FIELD_C_RS2_SIZE: u32 = 5;
19588pub const INSN_FIELD_C_SREG1: u32 = 0x380;
19589pub const INSN_FIELD_C_SREG1_START: u32 = 7;
19590pub const INSN_FIELD_C_SREG1_SIZE: u32 = 3;
19591pub const INSN_FIELD_C_SREG2: u32 = 0x1c;
19592pub const INSN_FIELD_C_SREG2_START: u32 = 2;
19593pub const INSN_FIELD_C_SREG2_SIZE: u32 = 3;
19594pub const INSN_FIELD_MOP_R_T_30: u32 = 0x40000000;
19595pub const INSN_FIELD_MOP_R_T_30_START: u32 = 30;
19596pub const INSN_FIELD_MOP_R_T_30_SIZE: u32 = 1;
19597pub const INSN_FIELD_MOP_R_T_27_26: u32 = 0xc000000;
19598pub const INSN_FIELD_MOP_R_T_27_26_START: u32 = 26;
19599pub const INSN_FIELD_MOP_R_T_27_26_SIZE: u32 = 2;
19600pub const INSN_FIELD_MOP_R_T_21_20: u32 = 0x300000;
19601pub const INSN_FIELD_MOP_R_T_21_20_START: u32 = 20;
19602pub const INSN_FIELD_MOP_R_T_21_20_SIZE: u32 = 2;
19603pub const INSN_FIELD_MOP_RR_T_30: u32 = 0x40000000;
19604pub const INSN_FIELD_MOP_RR_T_30_START: u32 = 30;
19605pub const INSN_FIELD_MOP_RR_T_30_SIZE: u32 = 1;
19606pub const INSN_FIELD_MOP_RR_T_27_26: u32 = 0xc000000;
19607pub const INSN_FIELD_MOP_RR_T_27_26_START: u32 = 26;
19608pub const INSN_FIELD_MOP_RR_T_27_26_SIZE: u32 = 2;
19609pub const INSN_FIELD_C_MOP_T: u32 = 0x700;
19610pub const INSN_FIELD_C_MOP_T_START: u32 = 8;
19611pub const INSN_FIELD_C_MOP_T_SIZE: u32 = 3;
19612pub const INSN_FIELD_RS2_EQ_RS1: u32 = 0x1f00000;
19613pub const INSN_FIELD_RS2_EQ_RS1_START: u32 = 20;
19614pub const INSN_FIELD_RS2_EQ_RS1_SIZE: u32 = 5;
19615
19616/// InstructionValue contains the 32-bit instruction value and also provides access into the desired field.
19617#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
19618#[repr(transparent)]
19619pub struct InstructionValue {
19620    pub value: u32,
19621}
19622
19623impl InstructionValue {
19624    pub const fn new(value: u32) -> Self {
19625        Self { value }
19626    }
19627
19628    pub const fn field<const FIELD_START: usize, const FIELD_SIZE: usize>(self) -> u32 {
19629        (self.value >> FIELD_START) & ((1 << FIELD_SIZE) - 1)
19630    }
19631
19632    pub const fn rd(self) -> u32 {
19633        (self.value >> INSN_FIELD_RD_START) & ((1 << INSN_FIELD_RD_SIZE) - 1)
19634    }
19635
19636    pub const fn set_rd(mut self, value: u32) -> Self {
19637        let mask = INSN_FIELD_RD;
19638
19639        self.value &= !mask;
19640        self.value |= (value & ((1 << INSN_FIELD_RD_SIZE) - 1)) << INSN_FIELD_RD_START;
19641        self
19642    }
19643    pub const fn rt(self) -> u32 {
19644        (self.value >> INSN_FIELD_RT_START) & ((1 << INSN_FIELD_RT_SIZE) - 1)
19645    }
19646
19647    pub const fn set_rt(mut self, value: u32) -> Self {
19648        let mask = INSN_FIELD_RT;
19649
19650        self.value &= !mask;
19651        self.value |= (value & ((1 << INSN_FIELD_RT_SIZE) - 1)) << INSN_FIELD_RT_START;
19652        self
19653    }
19654    pub const fn rs1(self) -> u32 {
19655        (self.value >> INSN_FIELD_RS1_START) & ((1 << INSN_FIELD_RS1_SIZE) - 1)
19656    }
19657
19658    pub const fn set_rs1(mut self, value: u32) -> Self {
19659        let mask = INSN_FIELD_RS1;
19660
19661        self.value &= !mask;
19662        self.value |= (value & ((1 << INSN_FIELD_RS1_SIZE) - 1)) << INSN_FIELD_RS1_START;
19663        self
19664    }
19665    pub const fn rs2(self) -> u32 {
19666        (self.value >> INSN_FIELD_RS2_START) & ((1 << INSN_FIELD_RS2_SIZE) - 1)
19667    }
19668
19669    pub const fn set_rs2(mut self, value: u32) -> Self {
19670        let mask = INSN_FIELD_RS2;
19671
19672        self.value &= !mask;
19673        self.value |= (value & ((1 << INSN_FIELD_RS2_SIZE) - 1)) << INSN_FIELD_RS2_START;
19674        self
19675    }
19676    pub const fn rs3(self) -> u32 {
19677        (self.value >> INSN_FIELD_RS3_START) & ((1 << INSN_FIELD_RS3_SIZE) - 1)
19678    }
19679
19680    pub const fn set_rs3(mut self, value: u32) -> Self {
19681        let mask = INSN_FIELD_RS3;
19682
19683        self.value &= !mask;
19684        self.value |= (value & ((1 << INSN_FIELD_RS3_SIZE) - 1)) << INSN_FIELD_RS3_START;
19685        self
19686    }
19687    pub const fn aqrl(self) -> u32 {
19688        (self.value >> INSN_FIELD_AQRL_START) & ((1 << INSN_FIELD_AQRL_SIZE) - 1)
19689    }
19690
19691    pub const fn set_aqrl(mut self, value: u32) -> Self {
19692        let mask = INSN_FIELD_AQRL;
19693
19694        self.value &= !mask;
19695        self.value |= (value & ((1 << INSN_FIELD_AQRL_SIZE) - 1)) << INSN_FIELD_AQRL_START;
19696        self
19697    }
19698    pub const fn aq(self) -> u32 {
19699        (self.value >> INSN_FIELD_AQ_START) & ((1 << INSN_FIELD_AQ_SIZE) - 1)
19700    }
19701
19702    pub const fn set_aq(mut self, value: u32) -> Self {
19703        let mask = INSN_FIELD_AQ;
19704
19705        self.value &= !mask;
19706        self.value |= (value & ((1 << INSN_FIELD_AQ_SIZE) - 1)) << INSN_FIELD_AQ_START;
19707        self
19708    }
19709    pub const fn rl(self) -> u32 {
19710        (self.value >> INSN_FIELD_RL_START) & ((1 << INSN_FIELD_RL_SIZE) - 1)
19711    }
19712
19713    pub const fn set_rl(mut self, value: u32) -> Self {
19714        let mask = INSN_FIELD_RL;
19715
19716        self.value &= !mask;
19717        self.value |= (value & ((1 << INSN_FIELD_RL_SIZE) - 1)) << INSN_FIELD_RL_START;
19718        self
19719    }
19720    pub const fn fm(self) -> u32 {
19721        (self.value >> INSN_FIELD_FM_START) & ((1 << INSN_FIELD_FM_SIZE) - 1)
19722    }
19723
19724    pub const fn set_fm(mut self, value: u32) -> Self {
19725        let mask = INSN_FIELD_FM;
19726
19727        self.value &= !mask;
19728        self.value |= (value & ((1 << INSN_FIELD_FM_SIZE) - 1)) << INSN_FIELD_FM_START;
19729        self
19730    }
19731    pub const fn pred(self) -> u32 {
19732        (self.value >> INSN_FIELD_PRED_START) & ((1 << INSN_FIELD_PRED_SIZE) - 1)
19733    }
19734
19735    pub const fn set_pred(mut self, value: u32) -> Self {
19736        let mask = INSN_FIELD_PRED;
19737
19738        self.value &= !mask;
19739        self.value |= (value & ((1 << INSN_FIELD_PRED_SIZE) - 1)) << INSN_FIELD_PRED_START;
19740        self
19741    }
19742    pub const fn succ(self) -> u32 {
19743        (self.value >> INSN_FIELD_SUCC_START) & ((1 << INSN_FIELD_SUCC_SIZE) - 1)
19744    }
19745
19746    pub const fn set_succ(mut self, value: u32) -> Self {
19747        let mask = INSN_FIELD_SUCC;
19748
19749        self.value &= !mask;
19750        self.value |= (value & ((1 << INSN_FIELD_SUCC_SIZE) - 1)) << INSN_FIELD_SUCC_START;
19751        self
19752    }
19753    pub const fn rm(self) -> u32 {
19754        (self.value >> INSN_FIELD_RM_START) & ((1 << INSN_FIELD_RM_SIZE) - 1)
19755    }
19756
19757    pub const fn set_rm(mut self, value: u32) -> Self {
19758        let mask = INSN_FIELD_RM;
19759
19760        self.value &= !mask;
19761        self.value |= (value & ((1 << INSN_FIELD_RM_SIZE) - 1)) << INSN_FIELD_RM_START;
19762        self
19763    }
19764    pub const fn funct3(self) -> u32 {
19765        (self.value >> INSN_FIELD_FUNCT3_START) & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)
19766    }
19767
19768    pub const fn set_funct3(mut self, value: u32) -> Self {
19769        let mask = INSN_FIELD_FUNCT3;
19770
19771        self.value &= !mask;
19772        self.value |= (value & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)) << INSN_FIELD_FUNCT3_START;
19773        self
19774    }
19775    pub const fn funct2(self) -> u32 {
19776        (self.value >> INSN_FIELD_FUNCT2_START) & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)
19777    }
19778
19779    pub const fn set_funct2(mut self, value: u32) -> Self {
19780        let mask = INSN_FIELD_FUNCT2;
19781
19782        self.value &= !mask;
19783        self.value |= (value & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)) << INSN_FIELD_FUNCT2_START;
19784        self
19785    }
19786    pub const fn imm20_raw(self) -> u32 {
19787        (self.value >> INSN_FIELD_IMM20_START) & ((1 << INSN_FIELD_IMM20_SIZE) - 1)
19788    }
19789
19790    pub const fn set_imm20_raw(mut self, value: u32) -> Self {
19791        let mask = INSN_FIELD_IMM20;
19792
19793        self.value &= !mask;
19794        self.value |= (value & ((1 << INSN_FIELD_IMM20_SIZE) - 1)) << INSN_FIELD_IMM20_START;
19795        self
19796    }
19797    pub const fn jimm20_raw(self) -> u32 {
19798        (self.value >> INSN_FIELD_JIMM20_START) & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)
19799    }
19800
19801    pub const fn set_jimm20_raw(mut self, value: u32) -> Self {
19802        let mask = INSN_FIELD_JIMM20;
19803
19804        self.value &= !mask;
19805        self.value |= (value & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)) << INSN_FIELD_JIMM20_START;
19806        self
19807    }
19808    pub const fn imm12_raw(self) -> u32 {
19809        (self.value >> INSN_FIELD_IMM12_START) & ((1 << INSN_FIELD_IMM12_SIZE) - 1)
19810    }
19811
19812    pub const fn set_imm12_raw(mut self, value: u32) -> Self {
19813        let mask = INSN_FIELD_IMM12;
19814
19815        self.value &= !mask;
19816        self.value |= (value & ((1 << INSN_FIELD_IMM12_SIZE) - 1)) << INSN_FIELD_IMM12_START;
19817        self
19818    }
19819    pub const fn csr(self) -> u32 {
19820        (self.value >> INSN_FIELD_CSR_START) & ((1 << INSN_FIELD_CSR_SIZE) - 1)
19821    }
19822
19823    pub const fn set_csr(mut self, value: u32) -> Self {
19824        let mask = INSN_FIELD_CSR;
19825
19826        self.value &= !mask;
19827        self.value |= (value & ((1 << INSN_FIELD_CSR_SIZE) - 1)) << INSN_FIELD_CSR_START;
19828        self
19829    }
19830    pub const fn imm12hi_raw(self) -> u32 {
19831        (self.value >> INSN_FIELD_IMM12HI_START) & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)
19832    }
19833
19834    pub const fn set_imm12hi_raw(mut self, value: u32) -> Self {
19835        let mask = INSN_FIELD_IMM12HI;
19836
19837        self.value &= !mask;
19838        self.value |= (value & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)) << INSN_FIELD_IMM12HI_START;
19839        self
19840    }
19841    pub const fn bimm12hi_raw(self) -> u32 {
19842        (self.value >> INSN_FIELD_BIMM12HI_START) & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)
19843    }
19844
19845    pub const fn set_bimm12hi_raw(mut self, value: u32) -> Self {
19846        let mask = INSN_FIELD_BIMM12HI;
19847
19848        self.value &= !mask;
19849        self.value |= (value & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)) << INSN_FIELD_BIMM12HI_START;
19850        self
19851    }
19852    pub const fn imm12lo_raw(self) -> u32 {
19853        (self.value >> INSN_FIELD_IMM12LO_START) & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)
19854    }
19855
19856    pub const fn set_imm12lo_raw(mut self, value: u32) -> Self {
19857        let mask = INSN_FIELD_IMM12LO;
19858
19859        self.value &= !mask;
19860        self.value |= (value & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)) << INSN_FIELD_IMM12LO_START;
19861        self
19862    }
19863    pub const fn bimm12lo_raw(self) -> u32 {
19864        (self.value >> INSN_FIELD_BIMM12LO_START) & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)
19865    }
19866
19867    pub const fn set_bimm12lo_raw(mut self, value: u32) -> Self {
19868        let mask = INSN_FIELD_BIMM12LO;
19869
19870        self.value &= !mask;
19871        self.value |= (value & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)) << INSN_FIELD_BIMM12LO_START;
19872        self
19873    }
19874    pub const fn shamtq(self) -> u32 {
19875        (self.value >> INSN_FIELD_SHAMTQ_START) & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)
19876    }
19877
19878    pub const fn set_shamtq(mut self, value: u32) -> Self {
19879        let mask = INSN_FIELD_SHAMTQ;
19880
19881        self.value &= !mask;
19882        self.value |= (value & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)) << INSN_FIELD_SHAMTQ_START;
19883        self
19884    }
19885    pub const fn shamtw(self) -> u32 {
19886        (self.value >> INSN_FIELD_SHAMTW_START) & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)
19887    }
19888
19889    pub const fn set_shamtw(mut self, value: u32) -> Self {
19890        let mask = INSN_FIELD_SHAMTW;
19891
19892        self.value &= !mask;
19893        self.value |= (value & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)) << INSN_FIELD_SHAMTW_START;
19894        self
19895    }
19896    pub const fn shamtw4(self) -> u32 {
19897        (self.value >> INSN_FIELD_SHAMTW4_START) & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)
19898    }
19899
19900    pub const fn set_shamtw4(mut self, value: u32) -> Self {
19901        let mask = INSN_FIELD_SHAMTW4;
19902
19903        self.value &= !mask;
19904        self.value |= (value & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)) << INSN_FIELD_SHAMTW4_START;
19905        self
19906    }
19907    pub const fn shamtd(self) -> u32 {
19908        (self.value >> INSN_FIELD_SHAMTD_START) & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)
19909    }
19910
19911    pub const fn set_shamtd(mut self, value: u32) -> Self {
19912        let mask = INSN_FIELD_SHAMTD;
19913
19914        self.value &= !mask;
19915        self.value |= (value & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)) << INSN_FIELD_SHAMTD_START;
19916        self
19917    }
19918    pub const fn bs(self) -> u32 {
19919        (self.value >> INSN_FIELD_BS_START) & ((1 << INSN_FIELD_BS_SIZE) - 1)
19920    }
19921
19922    pub const fn set_bs(mut self, value: u32) -> Self {
19923        let mask = INSN_FIELD_BS;
19924
19925        self.value &= !mask;
19926        self.value |= (value & ((1 << INSN_FIELD_BS_SIZE) - 1)) << INSN_FIELD_BS_START;
19927        self
19928    }
19929    pub const fn rnum(self) -> u32 {
19930        (self.value >> INSN_FIELD_RNUM_START) & ((1 << INSN_FIELD_RNUM_SIZE) - 1)
19931    }
19932
19933    pub const fn set_rnum(mut self, value: u32) -> Self {
19934        let mask = INSN_FIELD_RNUM;
19935
19936        self.value &= !mask;
19937        self.value |= (value & ((1 << INSN_FIELD_RNUM_SIZE) - 1)) << INSN_FIELD_RNUM_START;
19938        self
19939    }
19940    pub const fn rc(self) -> u32 {
19941        (self.value >> INSN_FIELD_RC_START) & ((1 << INSN_FIELD_RC_SIZE) - 1)
19942    }
19943
19944    pub const fn set_rc(mut self, value: u32) -> Self {
19945        let mask = INSN_FIELD_RC;
19946
19947        self.value &= !mask;
19948        self.value |= (value & ((1 << INSN_FIELD_RC_SIZE) - 1)) << INSN_FIELD_RC_START;
19949        self
19950    }
19951    pub const fn imm2_raw(self) -> u32 {
19952        (self.value >> INSN_FIELD_IMM2_START) & ((1 << INSN_FIELD_IMM2_SIZE) - 1)
19953    }
19954
19955    pub const fn set_imm2_raw(mut self, value: u32) -> Self {
19956        let mask = INSN_FIELD_IMM2;
19957
19958        self.value &= !mask;
19959        self.value |= (value & ((1 << INSN_FIELD_IMM2_SIZE) - 1)) << INSN_FIELD_IMM2_START;
19960        self
19961    }
19962    pub const fn imm3_raw(self) -> u32 {
19963        (self.value >> INSN_FIELD_IMM3_START) & ((1 << INSN_FIELD_IMM3_SIZE) - 1)
19964    }
19965
19966    pub const fn set_imm3_raw(mut self, value: u32) -> Self {
19967        let mask = INSN_FIELD_IMM3;
19968
19969        self.value &= !mask;
19970        self.value |= (value & ((1 << INSN_FIELD_IMM3_SIZE) - 1)) << INSN_FIELD_IMM3_START;
19971        self
19972    }
19973    pub const fn imm4_raw(self) -> u32 {
19974        (self.value >> INSN_FIELD_IMM4_START) & ((1 << INSN_FIELD_IMM4_SIZE) - 1)
19975    }
19976
19977    pub const fn set_imm4_raw(mut self, value: u32) -> Self {
19978        let mask = INSN_FIELD_IMM4;
19979
19980        self.value &= !mask;
19981        self.value |= (value & ((1 << INSN_FIELD_IMM4_SIZE) - 1)) << INSN_FIELD_IMM4_START;
19982        self
19983    }
19984    pub const fn imm5_raw(self) -> u32 {
19985        (self.value >> INSN_FIELD_IMM5_START) & ((1 << INSN_FIELD_IMM5_SIZE) - 1)
19986    }
19987
19988    pub const fn set_imm5_raw(mut self, value: u32) -> Self {
19989        let mask = INSN_FIELD_IMM5;
19990
19991        self.value &= !mask;
19992        self.value |= (value & ((1 << INSN_FIELD_IMM5_SIZE) - 1)) << INSN_FIELD_IMM5_START;
19993        self
19994    }
19995    pub const fn imm6_raw(self) -> u32 {
19996        (self.value >> INSN_FIELD_IMM6_START) & ((1 << INSN_FIELD_IMM6_SIZE) - 1)
19997    }
19998
19999    pub const fn set_imm6_raw(mut self, value: u32) -> Self {
20000        let mask = INSN_FIELD_IMM6;
20001
20002        self.value &= !mask;
20003        self.value |= (value & ((1 << INSN_FIELD_IMM6_SIZE) - 1)) << INSN_FIELD_IMM6_START;
20004        self
20005    }
20006    pub const fn zimm_raw(self) -> u32 {
20007        (self.value >> INSN_FIELD_ZIMM_START) & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)
20008    }
20009
20010    pub const fn set_zimm_raw(mut self, value: u32) -> Self {
20011        let mask = INSN_FIELD_ZIMM;
20012
20013        self.value &= !mask;
20014        self.value |= (value & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)) << INSN_FIELD_ZIMM_START;
20015        self
20016    }
20017    pub const fn opcode(self) -> u32 {
20018        (self.value >> INSN_FIELD_OPCODE_START) & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)
20019    }
20020
20021    pub const fn set_opcode(mut self, value: u32) -> Self {
20022        let mask = INSN_FIELD_OPCODE;
20023
20024        self.value &= !mask;
20025        self.value |= (value & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)) << INSN_FIELD_OPCODE_START;
20026        self
20027    }
20028    pub const fn funct7(self) -> u32 {
20029        (self.value >> INSN_FIELD_FUNCT7_START) & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)
20030    }
20031
20032    pub const fn set_funct7(mut self, value: u32) -> Self {
20033        let mask = INSN_FIELD_FUNCT7;
20034
20035        self.value &= !mask;
20036        self.value |= (value & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)) << INSN_FIELD_FUNCT7_START;
20037        self
20038    }
20039    pub const fn vd(self) -> u32 {
20040        (self.value >> INSN_FIELD_VD_START) & ((1 << INSN_FIELD_VD_SIZE) - 1)
20041    }
20042
20043    pub const fn set_vd(mut self, value: u32) -> Self {
20044        let mask = INSN_FIELD_VD;
20045
20046        self.value &= !mask;
20047        self.value |= (value & ((1 << INSN_FIELD_VD_SIZE) - 1)) << INSN_FIELD_VD_START;
20048        self
20049    }
20050    pub const fn vs3(self) -> u32 {
20051        (self.value >> INSN_FIELD_VS3_START) & ((1 << INSN_FIELD_VS3_SIZE) - 1)
20052    }
20053
20054    pub const fn set_vs3(mut self, value: u32) -> Self {
20055        let mask = INSN_FIELD_VS3;
20056
20057        self.value &= !mask;
20058        self.value |= (value & ((1 << INSN_FIELD_VS3_SIZE) - 1)) << INSN_FIELD_VS3_START;
20059        self
20060    }
20061    pub const fn vs1(self) -> u32 {
20062        (self.value >> INSN_FIELD_VS1_START) & ((1 << INSN_FIELD_VS1_SIZE) - 1)
20063    }
20064
20065    pub const fn set_vs1(mut self, value: u32) -> Self {
20066        let mask = INSN_FIELD_VS1;
20067
20068        self.value &= !mask;
20069        self.value |= (value & ((1 << INSN_FIELD_VS1_SIZE) - 1)) << INSN_FIELD_VS1_START;
20070        self
20071    }
20072    pub const fn vs2(self) -> u32 {
20073        (self.value >> INSN_FIELD_VS2_START) & ((1 << INSN_FIELD_VS2_SIZE) - 1)
20074    }
20075
20076    pub const fn set_vs2(mut self, value: u32) -> Self {
20077        let mask = INSN_FIELD_VS2;
20078
20079        self.value &= !mask;
20080        self.value |= (value & ((1 << INSN_FIELD_VS2_SIZE) - 1)) << INSN_FIELD_VS2_START;
20081        self
20082    }
20083    pub const fn vm(self) -> u32 {
20084        (self.value >> INSN_FIELD_VM_START) & ((1 << INSN_FIELD_VM_SIZE) - 1)
20085    }
20086
20087    pub const fn set_vm(mut self, value: u32) -> Self {
20088        let mask = INSN_FIELD_VM;
20089
20090        self.value &= !mask;
20091        self.value |= (value & ((1 << INSN_FIELD_VM_SIZE) - 1)) << INSN_FIELD_VM_START;
20092        self
20093    }
20094    pub const fn wd(self) -> u32 {
20095        (self.value >> INSN_FIELD_WD_START) & ((1 << INSN_FIELD_WD_SIZE) - 1)
20096    }
20097
20098    pub const fn set_wd(mut self, value: u32) -> Self {
20099        let mask = INSN_FIELD_WD;
20100
20101        self.value &= !mask;
20102        self.value |= (value & ((1 << INSN_FIELD_WD_SIZE) - 1)) << INSN_FIELD_WD_START;
20103        self
20104    }
20105    pub const fn amoop(self) -> u32 {
20106        (self.value >> INSN_FIELD_AMOOP_START) & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)
20107    }
20108
20109    pub const fn set_amoop(mut self, value: u32) -> Self {
20110        let mask = INSN_FIELD_AMOOP;
20111
20112        self.value &= !mask;
20113        self.value |= (value & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)) << INSN_FIELD_AMOOP_START;
20114        self
20115    }
20116    pub const fn nf(self) -> u32 {
20117        (self.value >> INSN_FIELD_NF_START) & ((1 << INSN_FIELD_NF_SIZE) - 1)
20118    }
20119
20120    pub const fn set_nf(mut self, value: u32) -> Self {
20121        let mask = INSN_FIELD_NF;
20122
20123        self.value &= !mask;
20124        self.value |= (value & ((1 << INSN_FIELD_NF_SIZE) - 1)) << INSN_FIELD_NF_START;
20125        self
20126    }
20127    pub const fn simm5_raw(self) -> u32 {
20128        (self.value >> INSN_FIELD_SIMM5_START) & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)
20129    }
20130
20131    pub const fn set_simm5_raw(mut self, value: u32) -> Self {
20132        let mask = INSN_FIELD_SIMM5;
20133
20134        self.value &= !mask;
20135        self.value |= (value & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)) << INSN_FIELD_SIMM5_START;
20136        self
20137    }
20138    pub const fn zimm5_raw(self) -> u32 {
20139        (self.value >> INSN_FIELD_ZIMM5_START) & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)
20140    }
20141
20142    pub const fn set_zimm5_raw(mut self, value: u32) -> Self {
20143        let mask = INSN_FIELD_ZIMM5;
20144
20145        self.value &= !mask;
20146        self.value |= (value & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)) << INSN_FIELD_ZIMM5_START;
20147        self
20148    }
20149    pub const fn zimm10_raw(self) -> u32 {
20150        (self.value >> INSN_FIELD_ZIMM10_START) & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)
20151    }
20152
20153    pub const fn set_zimm10_raw(mut self, value: u32) -> Self {
20154        let mask = INSN_FIELD_ZIMM10;
20155
20156        self.value &= !mask;
20157        self.value |= (value & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)) << INSN_FIELD_ZIMM10_START;
20158        self
20159    }
20160    pub const fn zimm11_raw(self) -> u32 {
20161        (self.value >> INSN_FIELD_ZIMM11_START) & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)
20162    }
20163
20164    pub const fn set_zimm11_raw(mut self, value: u32) -> Self {
20165        let mask = INSN_FIELD_ZIMM11;
20166
20167        self.value &= !mask;
20168        self.value |= (value & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)) << INSN_FIELD_ZIMM11_START;
20169        self
20170    }
20171    pub const fn zimm6hi_raw(self) -> u32 {
20172        (self.value >> INSN_FIELD_ZIMM6HI_START) & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)
20173    }
20174
20175    pub const fn set_zimm6hi_raw(mut self, value: u32) -> Self {
20176        let mask = INSN_FIELD_ZIMM6HI;
20177
20178        self.value &= !mask;
20179        self.value |= (value & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)) << INSN_FIELD_ZIMM6HI_START;
20180        self
20181    }
20182    pub const fn zimm6lo_raw(self) -> u32 {
20183        (self.value >> INSN_FIELD_ZIMM6LO_START) & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)
20184    }
20185
20186    pub const fn set_zimm6lo_raw(mut self, value: u32) -> Self {
20187        let mask = INSN_FIELD_ZIMM6LO;
20188
20189        self.value &= !mask;
20190        self.value |= (value & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)) << INSN_FIELD_ZIMM6LO_START;
20191        self
20192    }
20193    pub const fn c_nzuimm10_raw(self) -> u32 {
20194        (self.value >> INSN_FIELD_C_NZUIMM10_START) & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)
20195    }
20196
20197    pub const fn set_c_nzuimm10_raw(mut self, value: u32) -> Self {
20198        let mask = INSN_FIELD_C_NZUIMM10;
20199
20200        self.value &= !mask;
20201        self.value |=
20202            (value & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)) << INSN_FIELD_C_NZUIMM10_START;
20203        self
20204    }
20205    pub const fn c_uimm7lo_raw(self) -> u32 {
20206        (self.value >> INSN_FIELD_C_UIMM7LO_START) & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)
20207    }
20208
20209    pub const fn set_c_uimm7lo_raw(mut self, value: u32) -> Self {
20210        let mask = INSN_FIELD_C_UIMM7LO;
20211
20212        self.value &= !mask;
20213        self.value |=
20214            (value & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)) << INSN_FIELD_C_UIMM7LO_START;
20215        self
20216    }
20217    pub const fn c_uimm7hi_raw(self) -> u32 {
20218        (self.value >> INSN_FIELD_C_UIMM7HI_START) & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)
20219    }
20220
20221    pub const fn set_c_uimm7hi_raw(mut self, value: u32) -> Self {
20222        let mask = INSN_FIELD_C_UIMM7HI;
20223
20224        self.value &= !mask;
20225        self.value |=
20226            (value & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)) << INSN_FIELD_C_UIMM7HI_START;
20227        self
20228    }
20229    pub const fn c_uimm8lo_raw(self) -> u32 {
20230        (self.value >> INSN_FIELD_C_UIMM8LO_START) & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)
20231    }
20232
20233    pub const fn set_c_uimm8lo_raw(mut self, value: u32) -> Self {
20234        let mask = INSN_FIELD_C_UIMM8LO;
20235
20236        self.value &= !mask;
20237        self.value |=
20238            (value & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)) << INSN_FIELD_C_UIMM8LO_START;
20239        self
20240    }
20241    pub const fn c_uimm8hi_raw(self) -> u32 {
20242        (self.value >> INSN_FIELD_C_UIMM8HI_START) & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)
20243    }
20244
20245    pub const fn set_c_uimm8hi_raw(mut self, value: u32) -> Self {
20246        let mask = INSN_FIELD_C_UIMM8HI;
20247
20248        self.value &= !mask;
20249        self.value |=
20250            (value & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)) << INSN_FIELD_C_UIMM8HI_START;
20251        self
20252    }
20253    pub const fn c_uimm9lo_raw(self) -> u32 {
20254        (self.value >> INSN_FIELD_C_UIMM9LO_START) & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)
20255    }
20256
20257    pub const fn set_c_uimm9lo_raw(mut self, value: u32) -> Self {
20258        let mask = INSN_FIELD_C_UIMM9LO;
20259
20260        self.value &= !mask;
20261        self.value |=
20262            (value & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)) << INSN_FIELD_C_UIMM9LO_START;
20263        self
20264    }
20265    pub const fn c_uimm9hi_raw(self) -> u32 {
20266        (self.value >> INSN_FIELD_C_UIMM9HI_START) & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)
20267    }
20268
20269    pub const fn set_c_uimm9hi_raw(mut self, value: u32) -> Self {
20270        let mask = INSN_FIELD_C_UIMM9HI;
20271
20272        self.value &= !mask;
20273        self.value |=
20274            (value & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)) << INSN_FIELD_C_UIMM9HI_START;
20275        self
20276    }
20277    pub const fn c_nzimm6lo_raw(self) -> u32 {
20278        (self.value >> INSN_FIELD_C_NZIMM6LO_START) & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)
20279    }
20280
20281    pub const fn set_c_nzimm6lo_raw(mut self, value: u32) -> Self {
20282        let mask = INSN_FIELD_C_NZIMM6LO;
20283
20284        self.value &= !mask;
20285        self.value |=
20286            (value & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM6LO_START;
20287        self
20288    }
20289    pub const fn c_nzimm6hi_raw(self) -> u32 {
20290        (self.value >> INSN_FIELD_C_NZIMM6HI_START) & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)
20291    }
20292
20293    pub const fn set_c_nzimm6hi_raw(mut self, value: u32) -> Self {
20294        let mask = INSN_FIELD_C_NZIMM6HI;
20295
20296        self.value &= !mask;
20297        self.value |=
20298            (value & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM6HI_START;
20299        self
20300    }
20301    pub const fn c_imm6lo_raw(self) -> u32 {
20302        (self.value >> INSN_FIELD_C_IMM6LO_START) & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)
20303    }
20304
20305    pub const fn set_c_imm6lo_raw(mut self, value: u32) -> Self {
20306        let mask = INSN_FIELD_C_IMM6LO;
20307
20308        self.value &= !mask;
20309        self.value |= (value & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)) << INSN_FIELD_C_IMM6LO_START;
20310        self
20311    }
20312    pub const fn c_imm6hi_raw(self) -> u32 {
20313        (self.value >> INSN_FIELD_C_IMM6HI_START) & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)
20314    }
20315
20316    pub const fn set_c_imm6hi_raw(mut self, value: u32) -> Self {
20317        let mask = INSN_FIELD_C_IMM6HI;
20318
20319        self.value &= !mask;
20320        self.value |= (value & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)) << INSN_FIELD_C_IMM6HI_START;
20321        self
20322    }
20323    pub const fn c_nzimm10hi_raw(self) -> u32 {
20324        (self.value >> INSN_FIELD_C_NZIMM10HI_START) & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)
20325    }
20326
20327    pub const fn set_c_nzimm10hi_raw(mut self, value: u32) -> Self {
20328        let mask = INSN_FIELD_C_NZIMM10HI;
20329
20330        self.value &= !mask;
20331        self.value |=
20332            (value & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM10HI_START;
20333        self
20334    }
20335    pub const fn c_nzimm10lo_raw(self) -> u32 {
20336        (self.value >> INSN_FIELD_C_NZIMM10LO_START) & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)
20337    }
20338
20339    pub const fn set_c_nzimm10lo_raw(mut self, value: u32) -> Self {
20340        let mask = INSN_FIELD_C_NZIMM10LO;
20341
20342        self.value &= !mask;
20343        self.value |=
20344            (value & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM10LO_START;
20345        self
20346    }
20347    pub const fn c_nzimm18hi_raw(self) -> u32 {
20348        (self.value >> INSN_FIELD_C_NZIMM18HI_START) & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)
20349    }
20350
20351    pub const fn set_c_nzimm18hi_raw(mut self, value: u32) -> Self {
20352        let mask = INSN_FIELD_C_NZIMM18HI;
20353
20354        self.value &= !mask;
20355        self.value |=
20356            (value & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM18HI_START;
20357        self
20358    }
20359    pub const fn c_nzimm18lo_raw(self) -> u32 {
20360        (self.value >> INSN_FIELD_C_NZIMM18LO_START) & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)
20361    }
20362
20363    pub const fn set_c_nzimm18lo_raw(mut self, value: u32) -> Self {
20364        let mask = INSN_FIELD_C_NZIMM18LO;
20365
20366        self.value &= !mask;
20367        self.value |=
20368            (value & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM18LO_START;
20369        self
20370    }
20371    pub const fn c_imm12_raw(self) -> u32 {
20372        (self.value >> INSN_FIELD_C_IMM12_START) & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)
20373    }
20374
20375    pub const fn set_c_imm12_raw(mut self, value: u32) -> Self {
20376        let mask = INSN_FIELD_C_IMM12;
20377
20378        self.value &= !mask;
20379        self.value |= (value & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)) << INSN_FIELD_C_IMM12_START;
20380        self
20381    }
20382    pub const fn c_bimm9lo_raw(self) -> u32 {
20383        (self.value >> INSN_FIELD_C_BIMM9LO_START) & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)
20384    }
20385
20386    pub const fn set_c_bimm9lo_raw(mut self, value: u32) -> Self {
20387        let mask = INSN_FIELD_C_BIMM9LO;
20388
20389        self.value &= !mask;
20390        self.value |=
20391            (value & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)) << INSN_FIELD_C_BIMM9LO_START;
20392        self
20393    }
20394    pub const fn c_bimm9hi_raw(self) -> u32 {
20395        (self.value >> INSN_FIELD_C_BIMM9HI_START) & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)
20396    }
20397
20398    pub const fn set_c_bimm9hi_raw(mut self, value: u32) -> Self {
20399        let mask = INSN_FIELD_C_BIMM9HI;
20400
20401        self.value &= !mask;
20402        self.value |=
20403            (value & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)) << INSN_FIELD_C_BIMM9HI_START;
20404        self
20405    }
20406    pub const fn c_nzuimm5_raw(self) -> u32 {
20407        (self.value >> INSN_FIELD_C_NZUIMM5_START) & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)
20408    }
20409
20410    pub const fn set_c_nzuimm5_raw(mut self, value: u32) -> Self {
20411        let mask = INSN_FIELD_C_NZUIMM5;
20412
20413        self.value &= !mask;
20414        self.value |=
20415            (value & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)) << INSN_FIELD_C_NZUIMM5_START;
20416        self
20417    }
20418    pub const fn c_nzuimm6lo_raw(self) -> u32 {
20419        (self.value >> INSN_FIELD_C_NZUIMM6LO_START) & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)
20420    }
20421
20422    pub const fn set_c_nzuimm6lo_raw(mut self, value: u32) -> Self {
20423        let mask = INSN_FIELD_C_NZUIMM6LO;
20424
20425        self.value &= !mask;
20426        self.value |=
20427            (value & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6LO_START;
20428        self
20429    }
20430    pub const fn c_nzuimm6hi_raw(self) -> u32 {
20431        (self.value >> INSN_FIELD_C_NZUIMM6HI_START) & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)
20432    }
20433
20434    pub const fn set_c_nzuimm6hi_raw(mut self, value: u32) -> Self {
20435        let mask = INSN_FIELD_C_NZUIMM6HI;
20436
20437        self.value &= !mask;
20438        self.value |=
20439            (value & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6HI_START;
20440        self
20441    }
20442    pub const fn c_uimm8splo_raw(self) -> u32 {
20443        (self.value >> INSN_FIELD_C_UIMM8SPLO_START) & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)
20444    }
20445
20446    pub const fn set_c_uimm8splo_raw(mut self, value: u32) -> Self {
20447        let mask = INSN_FIELD_C_UIMM8SPLO;
20448
20449        self.value &= !mask;
20450        self.value |=
20451            (value & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPLO_START;
20452        self
20453    }
20454    pub const fn c_uimm8sphi_raw(self) -> u32 {
20455        (self.value >> INSN_FIELD_C_UIMM8SPHI_START) & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)
20456    }
20457
20458    pub const fn set_c_uimm8sphi_raw(mut self, value: u32) -> Self {
20459        let mask = INSN_FIELD_C_UIMM8SPHI;
20460
20461        self.value &= !mask;
20462        self.value |=
20463            (value & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPHI_START;
20464        self
20465    }
20466    pub const fn c_uimm8sp_s_raw(self) -> u32 {
20467        (self.value >> INSN_FIELD_C_UIMM8SP_S_START) & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)
20468    }
20469
20470    pub const fn set_c_uimm8sp_s_raw(mut self, value: u32) -> Self {
20471        let mask = INSN_FIELD_C_UIMM8SP_S;
20472
20473        self.value &= !mask;
20474        self.value |=
20475            (value & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM8SP_S_START;
20476        self
20477    }
20478    pub const fn c_uimm10splo_raw(self) -> u32 {
20479        (self.value >> INSN_FIELD_C_UIMM10SPLO_START) & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)
20480    }
20481
20482    pub const fn set_c_uimm10splo_raw(mut self, value: u32) -> Self {
20483        let mask = INSN_FIELD_C_UIMM10SPLO;
20484
20485        self.value &= !mask;
20486        self.value |=
20487            (value & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPLO_START;
20488        self
20489    }
20490    pub const fn c_uimm10sphi_raw(self) -> u32 {
20491        (self.value >> INSN_FIELD_C_UIMM10SPHI_START) & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)
20492    }
20493
20494    pub const fn set_c_uimm10sphi_raw(mut self, value: u32) -> Self {
20495        let mask = INSN_FIELD_C_UIMM10SPHI;
20496
20497        self.value &= !mask;
20498        self.value |=
20499            (value & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPHI_START;
20500        self
20501    }
20502    pub const fn c_uimm9splo_raw(self) -> u32 {
20503        (self.value >> INSN_FIELD_C_UIMM9SPLO_START) & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)
20504    }
20505
20506    pub const fn set_c_uimm9splo_raw(mut self, value: u32) -> Self {
20507        let mask = INSN_FIELD_C_UIMM9SPLO;
20508
20509        self.value &= !mask;
20510        self.value |=
20511            (value & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPLO_START;
20512        self
20513    }
20514    pub const fn c_uimm9sphi_raw(self) -> u32 {
20515        (self.value >> INSN_FIELD_C_UIMM9SPHI_START) & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)
20516    }
20517
20518    pub const fn set_c_uimm9sphi_raw(mut self, value: u32) -> Self {
20519        let mask = INSN_FIELD_C_UIMM9SPHI;
20520
20521        self.value &= !mask;
20522        self.value |=
20523            (value & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPHI_START;
20524        self
20525    }
20526    pub const fn c_uimm10sp_s_raw(self) -> u32 {
20527        (self.value >> INSN_FIELD_C_UIMM10SP_S_START) & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)
20528    }
20529
20530    pub const fn set_c_uimm10sp_s_raw(mut self, value: u32) -> Self {
20531        let mask = INSN_FIELD_C_UIMM10SP_S;
20532
20533        self.value &= !mask;
20534        self.value |=
20535            (value & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM10SP_S_START;
20536        self
20537    }
20538    pub const fn c_uimm9sp_s_raw(self) -> u32 {
20539        (self.value >> INSN_FIELD_C_UIMM9SP_S_START) & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)
20540    }
20541
20542    pub const fn set_c_uimm9sp_s_raw(mut self, value: u32) -> Self {
20543        let mask = INSN_FIELD_C_UIMM9SP_S;
20544
20545        self.value &= !mask;
20546        self.value |=
20547            (value & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM9SP_S_START;
20548        self
20549    }
20550    pub const fn c_uimm2_raw(self) -> u32 {
20551        (self.value >> INSN_FIELD_C_UIMM2_START) & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)
20552    }
20553
20554    pub const fn set_c_uimm2_raw(mut self, value: u32) -> Self {
20555        let mask = INSN_FIELD_C_UIMM2;
20556
20557        self.value &= !mask;
20558        self.value |= (value & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)) << INSN_FIELD_C_UIMM2_START;
20559        self
20560    }
20561    pub const fn c_uimm1_raw(self) -> u32 {
20562        (self.value >> INSN_FIELD_C_UIMM1_START) & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)
20563    }
20564
20565    pub const fn set_c_uimm1_raw(mut self, value: u32) -> Self {
20566        let mask = INSN_FIELD_C_UIMM1;
20567
20568        self.value &= !mask;
20569        self.value |= (value & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)) << INSN_FIELD_C_UIMM1_START;
20570        self
20571    }
20572    pub const fn c_rlist(self) -> u32 {
20573        (self.value >> INSN_FIELD_C_RLIST_START) & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)
20574    }
20575
20576    pub const fn set_c_rlist(mut self, value: u32) -> Self {
20577        let mask = INSN_FIELD_C_RLIST;
20578
20579        self.value &= !mask;
20580        self.value |= (value & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)) << INSN_FIELD_C_RLIST_START;
20581        self
20582    }
20583    pub const fn c_spimm_raw(self) -> u32 {
20584        (self.value >> INSN_FIELD_C_SPIMM_START) & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)
20585    }
20586
20587    pub const fn set_c_spimm_raw(mut self, value: u32) -> Self {
20588        let mask = INSN_FIELD_C_SPIMM;
20589
20590        self.value &= !mask;
20591        self.value |= (value & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)) << INSN_FIELD_C_SPIMM_START;
20592        self
20593    }
20594    pub const fn c_index(self) -> u32 {
20595        (self.value >> INSN_FIELD_C_INDEX_START) & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)
20596    }
20597
20598    pub const fn set_c_index(mut self, value: u32) -> Self {
20599        let mask = INSN_FIELD_C_INDEX;
20600
20601        self.value &= !mask;
20602        self.value |= (value & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)) << INSN_FIELD_C_INDEX_START;
20603        self
20604    }
20605    pub const fn rs1_p(self) -> u32 {
20606        (self.value >> INSN_FIELD_RS1_P_START) & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)
20607    }
20608
20609    pub const fn set_rs1_p(mut self, value: u32) -> Self {
20610        let mask = INSN_FIELD_RS1_P;
20611
20612        self.value &= !mask;
20613        self.value |= (value & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)) << INSN_FIELD_RS1_P_START;
20614        self
20615    }
20616    pub const fn rs2_p(self) -> u32 {
20617        (self.value >> INSN_FIELD_RS2_P_START) & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)
20618    }
20619
20620    pub const fn set_rs2_p(mut self, value: u32) -> Self {
20621        let mask = INSN_FIELD_RS2_P;
20622
20623        self.value &= !mask;
20624        self.value |= (value & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)) << INSN_FIELD_RS2_P_START;
20625        self
20626    }
20627    pub const fn rd_p(self) -> u32 {
20628        (self.value >> INSN_FIELD_RD_P_START) & ((1 << INSN_FIELD_RD_P_SIZE) - 1)
20629    }
20630
20631    pub const fn set_rd_p(mut self, value: u32) -> Self {
20632        let mask = INSN_FIELD_RD_P;
20633
20634        self.value &= !mask;
20635        self.value |= (value & ((1 << INSN_FIELD_RD_P_SIZE) - 1)) << INSN_FIELD_RD_P_START;
20636        self
20637    }
20638    pub const fn rd_rs1_n0(self) -> u32 {
20639        (self.value >> INSN_FIELD_RD_RS1_N0_START) & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)
20640    }
20641
20642    pub const fn set_rd_rs1_n0(mut self, value: u32) -> Self {
20643        let mask = INSN_FIELD_RD_RS1_N0;
20644
20645        self.value &= !mask;
20646        self.value |=
20647            (value & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RD_RS1_N0_START;
20648        self
20649    }
20650    pub const fn rd_rs1_p(self) -> u32 {
20651        (self.value >> INSN_FIELD_RD_RS1_P_START) & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)
20652    }
20653
20654    pub const fn set_rd_rs1_p(mut self, value: u32) -> Self {
20655        let mask = INSN_FIELD_RD_RS1_P;
20656
20657        self.value &= !mask;
20658        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)) << INSN_FIELD_RD_RS1_P_START;
20659        self
20660    }
20661    pub const fn rd_rs1(self) -> u32 {
20662        (self.value >> INSN_FIELD_RD_RS1_START) & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)
20663    }
20664
20665    pub const fn set_rd_rs1(mut self, value: u32) -> Self {
20666        let mask = INSN_FIELD_RD_RS1;
20667
20668        self.value &= !mask;
20669        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)) << INSN_FIELD_RD_RS1_START;
20670        self
20671    }
20672    pub const fn rd_n2(self) -> u32 {
20673        (self.value >> INSN_FIELD_RD_N2_START) & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)
20674    }
20675
20676    pub const fn set_rd_n2(mut self, value: u32) -> Self {
20677        let mask = INSN_FIELD_RD_N2;
20678
20679        self.value &= !mask;
20680        self.value |= (value & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)) << INSN_FIELD_RD_N2_START;
20681        self
20682    }
20683    pub const fn rd_n0(self) -> u32 {
20684        (self.value >> INSN_FIELD_RD_N0_START) & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)
20685    }
20686
20687    pub const fn set_rd_n0(mut self, value: u32) -> Self {
20688        let mask = INSN_FIELD_RD_N0;
20689
20690        self.value &= !mask;
20691        self.value |= (value & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)) << INSN_FIELD_RD_N0_START;
20692        self
20693    }
20694    pub const fn rs1_n0(self) -> u32 {
20695        (self.value >> INSN_FIELD_RS1_N0_START) & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)
20696    }
20697
20698    pub const fn set_rs1_n0(mut self, value: u32) -> Self {
20699        let mask = INSN_FIELD_RS1_N0;
20700
20701        self.value &= !mask;
20702        self.value |= (value & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RS1_N0_START;
20703        self
20704    }
20705    pub const fn c_rs2_n0(self) -> u32 {
20706        (self.value >> INSN_FIELD_C_RS2_N0_START) & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)
20707    }
20708
20709    pub const fn set_c_rs2_n0(mut self, value: u32) -> Self {
20710        let mask = INSN_FIELD_C_RS2_N0;
20711
20712        self.value &= !mask;
20713        self.value |= (value & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)) << INSN_FIELD_C_RS2_N0_START;
20714        self
20715    }
20716    pub const fn c_rs1_n0(self) -> u32 {
20717        (self.value >> INSN_FIELD_C_RS1_N0_START) & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)
20718    }
20719
20720    pub const fn set_c_rs1_n0(mut self, value: u32) -> Self {
20721        let mask = INSN_FIELD_C_RS1_N0;
20722
20723        self.value &= !mask;
20724        self.value |= (value & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)) << INSN_FIELD_C_RS1_N0_START;
20725        self
20726    }
20727    pub const fn c_rs2(self) -> u32 {
20728        (self.value >> INSN_FIELD_C_RS2_START) & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)
20729    }
20730
20731    pub const fn set_c_rs2(mut self, value: u32) -> Self {
20732        let mask = INSN_FIELD_C_RS2;
20733
20734        self.value &= !mask;
20735        self.value |= (value & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)) << INSN_FIELD_C_RS2_START;
20736        self
20737    }
20738    pub const fn c_sreg1(self) -> u32 {
20739        (self.value >> INSN_FIELD_C_SREG1_START) & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)
20740    }
20741
20742    pub const fn set_c_sreg1(mut self, value: u32) -> Self {
20743        let mask = INSN_FIELD_C_SREG1;
20744
20745        self.value &= !mask;
20746        self.value |= (value & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)) << INSN_FIELD_C_SREG1_START;
20747        self
20748    }
20749    pub const fn c_sreg2(self) -> u32 {
20750        (self.value >> INSN_FIELD_C_SREG2_START) & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)
20751    }
20752
20753    pub const fn set_c_sreg2(mut self, value: u32) -> Self {
20754        let mask = INSN_FIELD_C_SREG2;
20755
20756        self.value &= !mask;
20757        self.value |= (value & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)) << INSN_FIELD_C_SREG2_START;
20758        self
20759    }
20760    pub const fn mop_r_t_30(self) -> u32 {
20761        (self.value >> INSN_FIELD_MOP_R_T_30_START) & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)
20762    }
20763
20764    pub const fn set_mop_r_t_30(mut self, value: u32) -> Self {
20765        let mask = INSN_FIELD_MOP_R_T_30;
20766
20767        self.value &= !mask;
20768        self.value |=
20769            (value & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)) << INSN_FIELD_MOP_R_T_30_START;
20770        self
20771    }
20772    pub const fn mop_r_t_27_26(self) -> u32 {
20773        (self.value >> INSN_FIELD_MOP_R_T_27_26_START) & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)
20774    }
20775
20776    pub const fn set_mop_r_t_27_26(mut self, value: u32) -> Self {
20777        let mask = INSN_FIELD_MOP_R_T_27_26;
20778
20779        self.value &= !mask;
20780        self.value |=
20781            (value & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)) << INSN_FIELD_MOP_R_T_27_26_START;
20782        self
20783    }
20784    pub const fn mop_r_t_21_20(self) -> u32 {
20785        (self.value >> INSN_FIELD_MOP_R_T_21_20_START) & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)
20786    }
20787
20788    pub const fn set_mop_r_t_21_20(mut self, value: u32) -> Self {
20789        let mask = INSN_FIELD_MOP_R_T_21_20;
20790
20791        self.value &= !mask;
20792        self.value |=
20793            (value & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)) << INSN_FIELD_MOP_R_T_21_20_START;
20794        self
20795    }
20796    pub const fn mop_rr_t_30(self) -> u32 {
20797        (self.value >> INSN_FIELD_MOP_RR_T_30_START) & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)
20798    }
20799
20800    pub const fn set_mop_rr_t_30(mut self, value: u32) -> Self {
20801        let mask = INSN_FIELD_MOP_RR_T_30;
20802
20803        self.value &= !mask;
20804        self.value |=
20805            (value & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)) << INSN_FIELD_MOP_RR_T_30_START;
20806        self
20807    }
20808    pub const fn mop_rr_t_27_26(self) -> u32 {
20809        (self.value >> INSN_FIELD_MOP_RR_T_27_26_START)
20810            & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1)
20811    }
20812
20813    pub const fn set_mop_rr_t_27_26(mut self, value: u32) -> Self {
20814        let mask = INSN_FIELD_MOP_RR_T_27_26;
20815
20816        self.value &= !mask;
20817        self.value |= (value & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1))
20818            << INSN_FIELD_MOP_RR_T_27_26_START;
20819        self
20820    }
20821    pub const fn c_mop_t(self) -> u32 {
20822        (self.value >> INSN_FIELD_C_MOP_T_START) & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)
20823    }
20824
20825    pub const fn set_c_mop_t(mut self, value: u32) -> Self {
20826        let mask = INSN_FIELD_C_MOP_T;
20827
20828        self.value &= !mask;
20829        self.value |= (value & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)) << INSN_FIELD_C_MOP_T_START;
20830        self
20831    }
20832    pub const fn rs2_eq_rs1(self) -> u32 {
20833        (self.value >> INSN_FIELD_RS2_EQ_RS1_START) & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)
20834    }
20835
20836    pub const fn set_rs2_eq_rs1(mut self, value: u32) -> Self {
20837        let mask = INSN_FIELD_RS2_EQ_RS1;
20838
20839        self.value &= !mask;
20840        self.value |=
20841            (value & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)) << INSN_FIELD_RS2_EQ_RS1_START;
20842        self
20843    }
20844
20845    /// imm20
20846    pub const fn imm20(self) -> i32 {
20847        decode_immediate(&IMM20, self.value as _) as _
20848    }
20849
20850    pub const fn set_imm20(mut self, imm20: i32) -> Self {
20851        self.value |= encode_immediate(&IMM20, imm20 as _);
20852        self
20853    }
20854
20855    /// jimm20
20856    pub const fn jimm20(self) -> i32 {
20857        decode_immediate(&JIMM20, self.value as _) as _
20858    }
20859
20860    pub const fn set_jimm20(mut self, jimm20: i32) -> Self {
20861        self.value |= encode_immediate(&JIMM20, jimm20 as _);
20862        self
20863    }
20864
20865    /// imm12
20866    pub const fn imm12(self) -> i32 {
20867        decode_immediate(&IMM12, self.value as _) as _
20868    }
20869
20870    pub const fn set_imm12(mut self, imm12: i32) -> Self {
20871        self.value |= encode_immediate(&IMM12, imm12 as _);
20872        self
20873    }
20874
20875    /// imm12lohi
20876    pub const fn imm12lohi(self) -> i32 {
20877        decode_immediate(&IMM12LOHI, self.value as _) as _
20878    }
20879
20880    pub const fn set_imm12lohi(mut self, imm12lohi: i32) -> Self {
20881        self.value |= encode_immediate(&IMM12LOHI, imm12lohi as _);
20882        self
20883    }
20884
20885    /// bimm12lohi
20886    pub const fn bimm12lohi(self) -> i32 {
20887        decode_immediate(&BIMM12LOHI, self.value as _) as _
20888    }
20889
20890    pub const fn set_bimm12lohi(mut self, bimm12lohi: i32) -> Self {
20891        self.value |= encode_immediate(&BIMM12LOHI, bimm12lohi as _);
20892        self
20893    }
20894
20895    /// imm2
20896    pub const fn imm2(self) -> i32 {
20897        decode_immediate(&IMM2, self.value as _) as _
20898    }
20899
20900    pub const fn set_imm2(mut self, imm2: i32) -> Self {
20901        self.value |= encode_immediate(&IMM2, imm2 as _);
20902        self
20903    }
20904
20905    /// imm3
20906    pub const fn imm3(self) -> i32 {
20907        decode_immediate(&IMM3, self.value as _) as _
20908    }
20909
20910    pub const fn set_imm3(mut self, imm3: i32) -> Self {
20911        self.value |= encode_immediate(&IMM3, imm3 as _);
20912        self
20913    }
20914
20915    /// imm4
20916    pub const fn imm4(self) -> i32 {
20917        decode_immediate(&IMM4, self.value as _) as _
20918    }
20919
20920    pub const fn set_imm4(mut self, imm4: i32) -> Self {
20921        self.value |= encode_immediate(&IMM4, imm4 as _);
20922        self
20923    }
20924
20925    /// imm5
20926    pub const fn imm5(self) -> i32 {
20927        decode_immediate(&IMM5, self.value as _) as _
20928    }
20929
20930    pub const fn set_imm5(mut self, imm5: i32) -> Self {
20931        self.value |= encode_immediate(&IMM5, imm5 as _);
20932        self
20933    }
20934
20935    /// imm6
20936    pub const fn imm6(self) -> i32 {
20937        decode_immediate(&IMM6, self.value as _) as _
20938    }
20939
20940    pub const fn set_imm6(mut self, imm6: i32) -> Self {
20941        self.value |= encode_immediate(&IMM6, imm6 as _);
20942        self
20943    }
20944
20945    /// zimm
20946    pub const fn zimm(self) -> i32 {
20947        decode_immediate(&ZIMM, self.value as _) as _
20948    }
20949
20950    pub const fn set_zimm(mut self, zimm: i32) -> Self {
20951        self.value |= encode_immediate(&ZIMM, zimm as _);
20952        self
20953    }
20954
20955    /// simm5
20956    pub const fn simm5(self) -> i32 {
20957        decode_immediate(&SIMM5, self.value as _) as _
20958    }
20959
20960    pub const fn set_simm5(mut self, simm5: i32) -> Self {
20961        self.value |= encode_immediate(&SIMM5, simm5 as _);
20962        self
20963    }
20964
20965    /// zimm5
20966    pub const fn zimm5(self) -> i32 {
20967        decode_immediate(&ZIMM5, self.value as _) as _
20968    }
20969
20970    pub const fn set_zimm5(mut self, zimm5: i32) -> Self {
20971        self.value |= encode_immediate(&ZIMM5, zimm5 as _);
20972        self
20973    }
20974
20975    /// zimm10
20976    pub const fn zimm10(self) -> i32 {
20977        decode_immediate(&ZIMM10, self.value as _) as _
20978    }
20979
20980    pub const fn set_zimm10(mut self, zimm10: i32) -> Self {
20981        self.value |= encode_immediate(&ZIMM10, zimm10 as _);
20982        self
20983    }
20984
20985    /// zimm11
20986    pub const fn zimm11(self) -> i32 {
20987        decode_immediate(&ZIMM11, self.value as _) as _
20988    }
20989
20990    pub const fn set_zimm11(mut self, zimm11: i32) -> Self {
20991        self.value |= encode_immediate(&ZIMM11, zimm11 as _);
20992        self
20993    }
20994
20995    /// zimm6lohi
20996    pub const fn zimm6lohi(self) -> i32 {
20997        decode_immediate(&ZIMM6LOHI, self.value as _) as _
20998    }
20999
21000    pub const fn set_zimm6lohi(mut self, zimm6lohi: i32) -> Self {
21001        self.value |= encode_immediate(&ZIMM6LOHI, zimm6lohi as _);
21002        self
21003    }
21004
21005    /// c_nzuimm10
21006    pub const fn c_nzuimm10(self) -> u32 {
21007        decode_immediate(&C_NZUIMM10, self.value as _) as _
21008    }
21009
21010    pub const fn set_c_nzuimm10(mut self, c_nzuimm10: u32) -> Self {
21011        self.value |= encode_immediate(&C_NZUIMM10, c_nzuimm10 as _);
21012        self
21013    }
21014
21015    /// c_uimm7lohi
21016    pub const fn c_uimm7lohi(self) -> u32 {
21017        decode_immediate(&C_UIMM7LOHI, self.value as _) as _
21018    }
21019
21020    pub const fn set_c_uimm7lohi(mut self, c_uimm7lohi: u32) -> Self {
21021        self.value |= encode_immediate(&C_UIMM7LOHI, c_uimm7lohi as _);
21022        self
21023    }
21024
21025    /// c_uimm8lohi
21026    pub const fn c_uimm8lohi(self) -> u32 {
21027        decode_immediate(&C_UIMM8LOHI, self.value as _) as _
21028    }
21029
21030    pub const fn set_c_uimm8lohi(mut self, c_uimm8lohi: u32) -> Self {
21031        self.value |= encode_immediate(&C_UIMM8LOHI, c_uimm8lohi as _);
21032        self
21033    }
21034
21035    /// c_uimm9lohi
21036    pub const fn c_uimm9lohi(self) -> u32 {
21037        decode_immediate(&C_UIMM9LOHI, self.value as _) as _
21038    }
21039
21040    pub const fn set_c_uimm9lohi(mut self, c_uimm9lohi: u32) -> Self {
21041        self.value |= encode_immediate(&C_UIMM9LOHI, c_uimm9lohi as _);
21042        self
21043    }
21044
21045    /// c_nzimm6lohi
21046    pub const fn c_nzimm6lohi(self) -> i32 {
21047        decode_immediate(&C_NZIMM6LOHI, self.value as _) as _
21048    }
21049
21050    pub const fn set_c_nzimm6lohi(mut self, c_nzimm6lohi: i32) -> Self {
21051        self.value |= encode_immediate(&C_NZIMM6LOHI, c_nzimm6lohi as _);
21052        self
21053    }
21054
21055    /// c_imm6lohi
21056    pub const fn c_imm6lohi(self) -> i32 {
21057        decode_immediate(&C_IMM6LOHI, self.value as _) as _
21058    }
21059
21060    pub const fn set_c_imm6lohi(mut self, c_imm6lohi: i32) -> Self {
21061        self.value |= encode_immediate(&C_IMM6LOHI, c_imm6lohi as _);
21062        self
21063    }
21064
21065    /// c_nzimm10lohi
21066    pub const fn c_nzimm10lohi(self) -> i32 {
21067        decode_immediate(&C_NZIMM10LOHI, self.value as _) as _
21068    }
21069
21070    pub const fn set_c_nzimm10lohi(mut self, c_nzimm10lohi: i32) -> Self {
21071        self.value |= encode_immediate(&C_NZIMM10LOHI, c_nzimm10lohi as _);
21072        self
21073    }
21074
21075    /// c_nzimm18lohi
21076    pub const fn c_nzimm18lohi(self) -> i32 {
21077        decode_immediate(&C_NZIMM18LOHI, self.value as _) as _
21078    }
21079
21080    pub const fn set_c_nzimm18lohi(mut self, c_nzimm18lohi: i32) -> Self {
21081        self.value |= encode_immediate(&C_NZIMM18LOHI, c_nzimm18lohi as _);
21082        self
21083    }
21084
21085    /// c_imm12
21086    pub const fn c_imm12(self) -> i32 {
21087        decode_immediate(&C_IMM12, self.value as _) as _
21088    }
21089
21090    pub const fn set_c_imm12(mut self, c_imm12: i32) -> Self {
21091        self.value |= encode_immediate(&C_IMM12, c_imm12 as _);
21092        self
21093    }
21094
21095    /// c_bimm9lohi
21096    pub const fn c_bimm9lohi(self) -> i32 {
21097        decode_immediate(&C_BIMM9LOHI, self.value as _) as _
21098    }
21099
21100    pub const fn set_c_bimm9lohi(mut self, c_bimm9lohi: i32) -> Self {
21101        self.value |= encode_immediate(&C_BIMM9LOHI, c_bimm9lohi as _);
21102        self
21103    }
21104
21105    /// c_nzuimm5
21106    pub const fn c_nzuimm5(self) -> u32 {
21107        decode_immediate(&C_NZUIMM5, self.value as _) as _
21108    }
21109
21110    pub const fn set_c_nzuimm5(mut self, c_nzuimm5: u32) -> Self {
21111        self.value |= encode_immediate(&C_NZUIMM5, c_nzuimm5 as _);
21112        self
21113    }
21114
21115    /// c_nzuimm6lohi
21116    pub const fn c_nzuimm6lohi(self) -> u32 {
21117        decode_immediate(&C_NZUIMM6LOHI, self.value as _) as _
21118    }
21119
21120    pub const fn set_c_nzuimm6lohi(mut self, c_nzuimm6lohi: u32) -> Self {
21121        self.value |= encode_immediate(&C_NZUIMM6LOHI, c_nzuimm6lohi as _);
21122        self
21123    }
21124
21125    /// c_uimm8splohi
21126    pub const fn c_uimm8splohi(self) -> u32 {
21127        decode_immediate(&C_UIMM8SPLOHI, self.value as _) as _
21128    }
21129
21130    pub const fn set_c_uimm8splohi(mut self, c_uimm8splohi: u32) -> Self {
21131        self.value |= encode_immediate(&C_UIMM8SPLOHI, c_uimm8splohi as _);
21132        self
21133    }
21134
21135    /// c_uimm8sp_s
21136    pub const fn c_uimm8sp_s(self) -> u32 {
21137        decode_immediate(&C_UIMM8SP_S, self.value as _) as _
21138    }
21139
21140    pub const fn set_c_uimm8sp_s(mut self, c_uimm8sp_s: u32) -> Self {
21141        self.value |= encode_immediate(&C_UIMM8SP_S, c_uimm8sp_s as _);
21142        self
21143    }
21144
21145    /// c_uimm10splohi
21146    pub const fn c_uimm10splohi(self) -> u32 {
21147        decode_immediate(&C_UIMM10SPLOHI, self.value as _) as _
21148    }
21149
21150    pub const fn set_c_uimm10splohi(mut self, c_uimm10splohi: u32) -> Self {
21151        self.value |= encode_immediate(&C_UIMM10SPLOHI, c_uimm10splohi as _);
21152        self
21153    }
21154
21155    /// c_uimm9splohi
21156    pub const fn c_uimm9splohi(self) -> u32 {
21157        decode_immediate(&C_UIMM9SPLOHI, self.value as _) as _
21158    }
21159
21160    pub const fn set_c_uimm9splohi(mut self, c_uimm9splohi: u32) -> Self {
21161        self.value |= encode_immediate(&C_UIMM9SPLOHI, c_uimm9splohi as _);
21162        self
21163    }
21164
21165    /// c_uimm10sp_s
21166    pub const fn c_uimm10sp_s(self) -> u32 {
21167        decode_immediate(&C_UIMM10SP_S, self.value as _) as _
21168    }
21169
21170    pub const fn set_c_uimm10sp_s(mut self, c_uimm10sp_s: u32) -> Self {
21171        self.value |= encode_immediate(&C_UIMM10SP_S, c_uimm10sp_s as _);
21172        self
21173    }
21174
21175    /// c_uimm9sp_s
21176    pub const fn c_uimm9sp_s(self) -> u32 {
21177        decode_immediate(&C_UIMM9SP_S, self.value as _) as _
21178    }
21179
21180    pub const fn set_c_uimm9sp_s(mut self, c_uimm9sp_s: u32) -> Self {
21181        self.value |= encode_immediate(&C_UIMM9SP_S, c_uimm9sp_s as _);
21182        self
21183    }
21184
21185    /// c_uimm2
21186    pub const fn c_uimm2(self) -> u32 {
21187        decode_immediate(&C_UIMM2, self.value as _) as _
21188    }
21189
21190    pub const fn set_c_uimm2(mut self, c_uimm2: u32) -> Self {
21191        self.value |= encode_immediate(&C_UIMM2, c_uimm2 as _);
21192        self
21193    }
21194
21195    /// c_uimm1
21196    pub const fn c_uimm1(self) -> u32 {
21197        decode_immediate(&C_UIMM1, self.value as _) as _
21198    }
21199
21200    pub const fn set_c_uimm1(mut self, c_uimm1: u32) -> Self {
21201        self.value |= encode_immediate(&C_UIMM1, c_uimm1 as _);
21202        self
21203    }
21204
21205    /// c_spimm
21206    pub const fn c_spimm(self) -> i32 {
21207        decode_immediate(&C_SPIMM, self.value as _) as _
21208    }
21209
21210    pub const fn set_c_spimm(mut self, c_spimm: i32) -> Self {
21211        self.value |= encode_immediate(&C_SPIMM, c_spimm as _);
21212        self
21213    }
21214}