Skip to main content

asmkit/riscv/
opcodes.rs

1#[derive(Clone, Copy)]
2pub struct Immediate {
3    position_in_opcode: (u32, u32),
4    position_in_immediate: (u32, u32),
5}
6
7pub const UIMM_LO: Immediate = Immediate {
8    position_in_opcode: (31, 12),
9    position_in_immediate: (31, 12),
10};
11
12pub const S_TYPE_HI: Immediate = Immediate {
13    position_in_immediate: (11, 5),
14    position_in_opcode: (31, 25),
15};
16
17pub const S_TYPE_LO: Immediate = Immediate {
18    position_in_immediate: (4, 0),
19    position_in_opcode: (11, 7),
20};
21
22// imm[20]: Highest bit of the 21-bit immediate
23pub const UJ_TYPE_IMM_20: Immediate = Immediate {
24    position_in_immediate: (20, 20),
25    position_in_opcode: (31, 31),
26};
27
28// imm[10:1]: Lower 10 bits of the immediate value
29pub const UJ_TYPE_IMM_10_1: Immediate = Immediate {
30    position_in_immediate: (10, 1),
31    position_in_opcode: (30, 21),
32};
33
34// imm[11]: The 11th bit of the immediate
35pub const UJ_TYPE_IMM_11: Immediate = Immediate {
36    position_in_immediate: (11, 11),
37    position_in_opcode: (20, 20),
38};
39
40// imm[19:12]: Upper 8 bits (bits 19 to 12)
41pub const UJ_TYPE_IMM_19_12: Immediate = Immediate {
42    position_in_immediate: (19, 12),
43    position_in_opcode: (19, 12),
44};
45
46pub const I_TYPE_11_0: Immediate = Immediate {
47    position_in_immediate: (11, 0),
48    position_in_opcode: (31, 20),
49};
50
51// imm[12]: Highest bit of the immediate
52pub const B_TYPE_IMM_12: Immediate = Immediate {
53    position_in_immediate: (12, 12),
54    position_in_opcode: (31, 31),
55};
56
57// imm[10:5]: Middle bits of the immediate
58pub const B_TYPE_IMM_10_5: Immediate = Immediate {
59    position_in_immediate: (10, 5),
60    position_in_opcode: (30, 25),
61};
62
63// imm[4:1]: Lower bits of the immediate
64pub const B_TYPE_IMM_4_1: Immediate = Immediate {
65    position_in_immediate: (4, 1),
66    position_in_opcode: (11, 8),
67};
68
69// imm[11]: 11th bit of the immediate
70pub const B_TYPE_IMM_11: Immediate = Immediate {
71    position_in_immediate: (11, 11),
72    position_in_opcode: (7, 7),
73};
74
75// imm[11]: The highest bit of the immediate
76pub const CJ_TYPE_IMM_11: Immediate = Immediate {
77    position_in_immediate: (11, 11),
78    position_in_opcode: (12, 12), // Bit 12 in the compressed instruction
79};
80
81// imm[4]: The 4th bit of the immediate
82pub const CJ_TYPE_IMM_4: Immediate = Immediate {
83    position_in_immediate: (4, 4),
84    position_in_opcode: (11, 11), // Bit 11 in the compressed instruction
85};
86
87// imm[9:8]: Bits 9 and 8 of the immediate
88pub const CJ_TYPE_IMM_9_8: Immediate = Immediate {
89    position_in_immediate: (9, 8),
90    position_in_opcode: (10, 9), // Bits 10 and 9
91};
92
93// imm[10]: The 10th bit of the immediate
94pub const CJ_TYPE_IMM_10: Immediate = Immediate {
95    position_in_immediate: (10, 10),
96    position_in_opcode: (8, 8), // Bit 8
97};
98
99// imm[6]: The 6th bit of the immediate
100pub const CJ_TYPE_IMM_6: Immediate = Immediate {
101    position_in_immediate: (6, 6),
102    position_in_opcode: (7, 7), // Bit 7
103};
104
105// imm[7]: The 7th bit of the immediate
106pub const CJ_TYPE_IMM_7: Immediate = Immediate {
107    position_in_immediate: (7, 7),
108    position_in_opcode: (6, 6), // Bit 6
109};
110
111// imm[3:1]: Bits 3 to 1 of the immediate
112pub const CJ_TYPE_IMM_3_1: Immediate = Immediate {
113    position_in_immediate: (3, 1),
114    position_in_opcode: (5, 3), // Bits 5 to 3
115};
116
117// imm[5]: The 5th bit of the immediate
118pub const CJ_TYPE_IMM_5: Immediate = Immediate {
119    position_in_immediate: (5, 5),
120    position_in_opcode: (2, 2), // Bit 2
121};
122
123pub const BIMM12LOHI: &[Immediate] = &[
124    B_TYPE_IMM_12,
125    B_TYPE_IMM_11,
126    B_TYPE_IMM_10_5,
127    B_TYPE_IMM_4_1,
128];
129pub const S_TYPE: &[Immediate] = &[S_TYPE_HI, S_TYPE_LO];
130pub const IMM20: &[Immediate] = &[UIMM_LO];
131pub const JIMM20: &[Immediate] = &[
132    UJ_TYPE_IMM_20,
133    UJ_TYPE_IMM_19_12,
134    UJ_TYPE_IMM_11,
135    UJ_TYPE_IMM_10_1,
136];
137pub const I_TYPE: &[Immediate] = &[I_TYPE_11_0];
138pub const SIMM5: &[Immediate] = &[Immediate {
139    position_in_immediate: (4, 0),
140    position_in_opcode: (19, 15),
141}];
142
143pub const IMM6: &[Immediate] = &[];
144pub const IMM12LOHI: &[Immediate] = &[
145    Immediate {
146        position_in_immediate: (11, 5),
147        position_in_opcode: (31, 25),
148    },
149    Immediate {
150        position_in_immediate: (4, 0),
151        position_in_opcode: (11, 7),
152    },
153];
154
155pub const IMM12: &[Immediate] = &[Immediate {
156    position_in_immediate: (11, 0),
157    position_in_opcode: (31, 20),
158}];
159
160pub const ZIMM: &[Immediate] = &[Immediate {
161    position_in_immediate: (4, 0),
162    position_in_opcode: (19, 15),
163}];
164
165pub const ZIMM6LOHI: &[Immediate] = &[
166    Immediate {
167        position_in_immediate: (5, 5),
168        position_in_opcode: (26, 26),
169    },
170    Immediate {
171        position_in_immediate: (4, 0),
172        position_in_opcode: (19, 15),
173    },
174];
175pub const ZIMM11: &[Immediate] = &[Immediate {
176    position_in_immediate: (10, 0),
177    position_in_opcode: (30, 20),
178}];
179
180pub const ZIMM10: &[Immediate] = &[Immediate {
181    position_in_immediate: (9, 0),
182    position_in_opcode: (29, 20),
183}];
184
185pub const ZIMM5: &[Immediate] = &[Immediate {
186    position_in_immediate: (4, 0),
187    position_in_opcode: (19, 15),
188}];
189
190pub const C_SPIMM: &[Immediate] = &[Immediate {
191    position_in_immediate: (5, 4),
192    position_in_opcode: (3, 2),
193}];
194
195pub const C_UIMM8SP_S: &[Immediate] = &[
196    Immediate {
197        position_in_immediate: (5, 2),
198        position_in_opcode: (12, 9),
199    },
200    Immediate {
201        position_in_immediate: (7, 6),
202        position_in_opcode: (6, 5),
203    },
204];
205
206pub const C_UIMM1: &[Immediate] = &[Immediate {
207    position_in_immediate: (1, 1),
208    position_in_opcode: (5, 5),
209}];
210
211pub const C_UIMM7LOHI: &[Immediate] = &[
212    Immediate {
213        position_in_immediate: (5, 3),
214        position_in_opcode: (12, 10),
215    },
216    Immediate {
217        position_in_immediate: (2, 2),
218        position_in_opcode: (6, 6),
219    },
220    Immediate {
221        position_in_immediate: (6, 6),
222        position_in_opcode: (5, 5),
223    },
224];
225
226pub const C_UIMM9_SPLOHI: &[Immediate] = &[
227    Immediate {
228        position_in_immediate: (5, 5),
229        position_in_opcode: (12, 12),
230    },
231    Immediate {
232        position_in_immediate: (4, 2),
233        position_in_opcode: (6, 4),
234    },
235    Immediate {
236        position_in_immediate: (7, 6),
237        position_in_opcode: (3, 2),
238    },
239];
240
241pub const C_UIMM9SP_S: &[Immediate] = &[
242    Immediate {
243        position_in_immediate: (5, 3),
244        position_in_opcode: (12, 9),
245    },
246    Immediate {
247        position_in_immediate: (8, 6),
248        position_in_opcode: (8, 6),
249    },
250];
251
252pub const C_UIMM2: &[Immediate] = &[
253    Immediate {
254        position_in_immediate: (0, 0),
255        position_in_opcode: (6, 6),
256    },
257    Immediate {
258        position_in_immediate: (1, 1),
259        position_in_opcode: (5, 5),
260    },
261];
262
263pub const C_NZUIMM10: &[Immediate] = &[
264    Immediate {
265        position_in_immediate: (5, 4),
266        position_in_opcode: (12, 11),
267    },
268    Immediate {
269        position_in_immediate: (9, 6),
270        position_in_opcode: (10, 7),
271    },
272    Immediate {
273        position_in_immediate: (2, 2),
274        position_in_opcode: (6, 6),
275    },
276    Immediate {
277        position_in_immediate: (3, 3),
278        position_in_opcode: (5, 5),
279    },
280];
281
282pub const C_NZIMM10LOHI: &[Immediate] = &[
283    Immediate {
284        position_in_immediate: (5, 5),
285        position_in_opcode: (12, 12),
286    },
287    Immediate {
288        position_in_immediate: (4, 0),
289        position_in_opcode: (6, 2),
290    },
291];
292
293/// UNUSED FOR NOW!!!
294pub const C_UIMM10SP_S: &[Immediate] = &[];
295/// UNUSED FOR NOW!!!
296pub const C_UIMM10SPLOHI: &[Immediate] = &[];
297/// UNUSED FOR NOW!!!
298pub const C_UIMM9LOHI: &[Immediate] = &[];
299/// UNUSED FOR NOW!!!
300pub const IMM5: &[Immediate] = &[];
301/// UNUSED FOR NOW!!!
302pub const IMM4: &[Immediate] = &[];
303/// UNUSED FOR NOW!!!
304pub const IMM3: &[Immediate] = &[];
305/// UNUSED FOR NOW!!!
306pub const IMM2: &[Immediate] = &[];
307
308pub const C_NZUIMM5: &[Immediate] = C_NZUIMM6LOHI;
309
310pub const C_NZIMM18LOHI: &[Immediate] = &[
311    Immediate {
312        position_in_immediate: (5, 5),
313        position_in_opcode: (12, 12),
314    },
315    Immediate {
316        position_in_immediate: (4, 0),
317        position_in_opcode: (6, 2),
318    },
319];
320
321// imm[17] | ... | imm[16:12]
322pub const C_NZUIMM18LOHI: &[Immediate] = &[
323    Immediate {
324        position_in_immediate: (5, 5),
325        position_in_opcode: (12, 12),
326    },
327    Immediate {
328        position_in_immediate: (4, 0),
329        position_in_opcode: (6, 2),
330    },
331];
332
333pub const C_NZUIMM6LOHI: &[Immediate] = &[
334    Immediate {
335        position_in_immediate: (5, 5),
336        position_in_opcode: (13, 13),
337    },
338    Immediate {
339        position_in_immediate: (4, 0),
340        position_in_opcode: (7, 2),
341    },
342];
343
344pub const C_UIMM6LOHI: &[Immediate] = &[
345    Immediate {
346        position_in_immediate: (5, 5),
347        position_in_opcode: (12, 12),
348    },
349    Immediate {
350        position_in_immediate: (4, 0),
351        position_in_opcode: (6, 2),
352    },
353];
354
355pub const C_UIMM8LOHI: &[Immediate] = &[
356    Immediate {
357        position_in_immediate: (5, 3),
358        position_in_opcode: (12, 10),
359    },
360    Immediate {
361        position_in_immediate: (7, 6),
362        position_in_opcode: (7, 6),
363    },
364];
365
366pub const C_UIMM9SPLOHI: &[Immediate] = &[
367    Immediate {
368        position_in_immediate: (5, 5),
369        position_in_opcode: (13, 13),
370    },
371    Immediate {
372        position_in_immediate: (4, 3),
373        position_in_opcode: (7, 5),
374    },
375    Immediate {
376        position_in_immediate: (8, 6),
377        position_in_opcode: (4, 3),
378    },
379];
380
381pub const C_NZIMM6LOHI: &[Immediate] = &[
382    Immediate {
383        position_in_immediate: (5, 5),
384        position_in_opcode: (12, 12),
385    },
386    Immediate {
387        position_in_immediate: (4, 0),
388        position_in_opcode: (6, 2),
389    },
390];
391
392pub const C_BIMM9LOHI: &[Immediate] = &[
393    Immediate {
394        position_in_immediate: (8, 8),
395        position_in_opcode: (12, 12),
396    },
397    Immediate {
398        position_in_immediate: (4, 3),
399        position_in_opcode: (11, 10),
400    },
401    Immediate {
402        position_in_immediate: (7, 6),
403        position_in_opcode: (6, 5),
404    },
405    Immediate {
406        position_in_immediate: (2, 1),
407        position_in_opcode: (4, 3),
408    },
409    Immediate {
410        position_in_immediate: (5, 5),
411        position_in_opcode: (2, 2),
412    },
413];
414
415pub const C_UIMM8SPLOHI: &[Immediate] = &[
416    Immediate {
417        position_in_immediate: (5, 5),
418        position_in_opcode: (12, 12),
419    },
420    Immediate {
421        position_in_immediate: (4, 2),
422        position_in_opcode: (6, 4),
423    },
424    Immediate {
425        position_in_immediate: (7, 6),
426        position_in_opcode: (3, 2),
427    },
428];
429
430pub const C_UIMM8SP_SLOHI: &[Immediate] = &[
431    Immediate {
432        position_in_immediate: (5, 2),
433        position_in_opcode: (12, 9),
434    },
435    Immediate {
436        position_in_immediate: (7, 6),
437        position_in_opcode: (8, 7),
438    },
439];
440
441pub const C_IMM6LOHI: &[Immediate] = &[
442    Immediate {
443        position_in_immediate: (5, 5),
444        position_in_opcode: (12, 12),
445    },
446    Immediate {
447        position_in_immediate: (4, 0),
448        position_in_opcode: (6, 2),
449    },
450];
451pub const C_IMM12: &[Immediate] = &[
452    Immediate {
453        position_in_immediate: (11, 11),
454        position_in_opcode: (12, 12),
455    },
456    Immediate {
457        position_in_immediate: (4, 4),
458        position_in_opcode: (11, 11),
459    },
460    Immediate {
461        position_in_immediate: (9, 8),
462        position_in_opcode: (10, 9),
463    },
464    Immediate {
465        position_in_immediate: (10, 10),
466        position_in_opcode: (8, 8),
467    },
468    Immediate {
469        position_in_immediate: (6, 6),
470        position_in_opcode: (7, 7),
471    },
472    Immediate {
473        position_in_immediate: (7, 7),
474        position_in_opcode: (6, 6),
475    },
476    Immediate {
477        position_in_immediate: (3, 1),
478        position_in_opcode: (5, 3),
479    },
480    Immediate {
481        position_in_immediate: (5, 5),
482        position_in_opcode: (2, 2),
483    },
484];
485
486pub const C_IMM12LOHI: &[Immediate] = &[
487    Immediate {
488        position_in_immediate: (11, 11),
489        position_in_opcode: (12, 12),
490    },
491    Immediate {
492        position_in_immediate: (4, 4),
493        position_in_opcode: (11, 11),
494    },
495    Immediate {
496        position_in_immediate: (9, 8),
497        position_in_opcode: (10, 9),
498    },
499    Immediate {
500        position_in_immediate: (10, 10),
501        position_in_opcode: (8, 8),
502    },
503    Immediate {
504        position_in_immediate: (6, 6),
505        position_in_opcode: (7, 7),
506    },
507    Immediate {
508        position_in_immediate: (7, 7),
509        position_in_opcode: (6, 6),
510    },
511    Immediate {
512        position_in_immediate: (3, 1),
513        position_in_opcode: (5, 3),
514    },
515    Immediate {
516        position_in_immediate: (5, 5),
517        position_in_opcode: (2, 2),
518    },
519];
520
521pub const fn encode_immediate(immediate: &[Immediate], imm: i32) -> u32 {
522    let mut res = 0;
523    let mut i = 0;
524    while i < immediate.len() {
525        res |= immediate[i].encode(imm);
526        i += 1;
527    }
528    res
529}
530
531pub const fn decode_immediate(immediate: &[Immediate], op: u32) -> i32 {
532    let mut res = 0i32;
533    let mut i = 0;
534    while i < immediate.len() {
535        res |= immediate[i].decode(op);
536        i += 1;
537    }
538    res as _
539}
540
541pub fn is_immediate_valid(immediate: &[Immediate], imm: i32) -> bool {
542    immediate.iter().all(|i| i.is_valid(imm))
543}
544
545impl Immediate {
546    pub const fn encode(&self, imm: i32) -> u32 {
547        let imm = imm as u32;
548        let bit_count = self.position_in_immediate.0 - self.position_in_immediate.1 + 1;
549        let mask = (1u32 << bit_count) - 1;
550
551        ((imm >> self.position_in_immediate.1) & mask) << self.position_in_opcode.1
552    }
553
554    pub const fn decode(&self, op: u32) -> i32 {
555        let bit_count = self.position_in_opcode.0 - self.position_in_opcode.1 + 1;
556        let mask = (1u32 << bit_count) - 1;
557        (((op >> self.position_in_opcode.1) & mask) << self.position_in_immediate.1) as _
558    }
559
560    pub const fn is_valid(&self, imm: i32) -> bool {
561        self.decode(self.encode(imm)) == imm
562    }
563}
564
565/* Automatically generated by parse_opcodes */
566/* Automatically generated by parse_opcodes (meta/riscv.py). Do not edit by hand.
567 * Derived from riscv-opcodes (BSD-3-Clause) and riscv-unified-db
568 * (BSD-3-Clause-Clear); see meta/README.md for the input pins. */
569
570pub const MATCH_ADD: u32 = 0x33;
571pub const MASK_ADD: u32 = 0xfe00707f;
572pub const MATCH_ADD_UW: u32 = 0x800003b;
573pub const MASK_ADD_UW: u32 = 0xfe00707f;
574pub const MATCH_ADDI: u32 = 0x13;
575pub const MASK_ADDI: u32 = 0x707f;
576pub const MATCH_ADDIW: u32 = 0x1b;
577pub const MASK_ADDIW: u32 = 0x707f;
578pub const MATCH_ADDW: u32 = 0x3b;
579pub const MASK_ADDW: u32 = 0xfe00707f;
580pub const MATCH_AES32DSI: u32 = 0x2a000033;
581pub const MASK_AES32DSI: u32 = 0x3e00707f;
582pub const MATCH_AES32DSMI: u32 = 0x2e000033;
583pub const MASK_AES32DSMI: u32 = 0x3e00707f;
584pub const MATCH_AES32ESI: u32 = 0x22000033;
585pub const MASK_AES32ESI: u32 = 0x3e00707f;
586pub const MATCH_AES32ESMI: u32 = 0x26000033;
587pub const MASK_AES32ESMI: u32 = 0x3e00707f;
588pub const MATCH_AES64DS: u32 = 0x3a000033;
589pub const MASK_AES64DS: u32 = 0xfe00707f;
590pub const MATCH_AES64DSM: u32 = 0x3e000033;
591pub const MASK_AES64DSM: u32 = 0xfe00707f;
592pub const MATCH_AES64ES: u32 = 0x32000033;
593pub const MASK_AES64ES: u32 = 0xfe00707f;
594pub const MATCH_AES64ESM: u32 = 0x36000033;
595pub const MASK_AES64ESM: u32 = 0xfe00707f;
596pub const MATCH_AES64IM: u32 = 0x30001013;
597pub const MASK_AES64IM: u32 = 0xfff0707f;
598pub const MATCH_AES64KS1I: u32 = 0x31001013;
599pub const MASK_AES64KS1I: u32 = 0xff00707f;
600pub const MATCH_AES64KS2: u32 = 0x7e000033;
601pub const MASK_AES64KS2: u32 = 0xfe00707f;
602pub const MATCH_AMOADD_B: u32 = 0x2f;
603pub const MASK_AMOADD_B: u32 = 0xf800707f;
604pub const MATCH_AMOADD_D: u32 = 0x302f;
605pub const MASK_AMOADD_D: u32 = 0xf800707f;
606pub const MATCH_AMOADD_H: u32 = 0x102f;
607pub const MASK_AMOADD_H: u32 = 0xf800707f;
608pub const MATCH_AMOADD_W: u32 = 0x202f;
609pub const MASK_AMOADD_W: u32 = 0xf800707f;
610pub const MATCH_AMOAND_B: u32 = 0x6000002f;
611pub const MASK_AMOAND_B: u32 = 0xf800707f;
612pub const MATCH_AMOAND_D: u32 = 0x6000302f;
613pub const MASK_AMOAND_D: u32 = 0xf800707f;
614pub const MATCH_AMOAND_H: u32 = 0x6000102f;
615pub const MASK_AMOAND_H: u32 = 0xf800707f;
616pub const MATCH_AMOAND_W: u32 = 0x6000202f;
617pub const MASK_AMOAND_W: u32 = 0xf800707f;
618pub const MATCH_AMOCAS_B: u32 = 0x2800002f;
619pub const MASK_AMOCAS_B: u32 = 0xf800707f;
620pub const MATCH_AMOCAS_D: u32 = 0x2800302f;
621pub const MASK_AMOCAS_D: u32 = 0xf800707f;
622pub const MATCH_AMOCAS_H: u32 = 0x2800102f;
623pub const MASK_AMOCAS_H: u32 = 0xf800707f;
624pub const MATCH_AMOCAS_Q: u32 = 0x2800402f;
625pub const MASK_AMOCAS_Q: u32 = 0xf800707f;
626pub const MATCH_AMOCAS_W: u32 = 0x2800202f;
627pub const MASK_AMOCAS_W: u32 = 0xf800707f;
628pub const MATCH_AMOMAX_B: u32 = 0xa000002f;
629pub const MASK_AMOMAX_B: u32 = 0xf800707f;
630pub const MATCH_AMOMAX_D: u32 = 0xa000302f;
631pub const MASK_AMOMAX_D: u32 = 0xf800707f;
632pub const MATCH_AMOMAX_H: u32 = 0xa000102f;
633pub const MASK_AMOMAX_H: u32 = 0xf800707f;
634pub const MATCH_AMOMAX_W: u32 = 0xa000202f;
635pub const MASK_AMOMAX_W: u32 = 0xf800707f;
636pub const MATCH_AMOMAXU_B: u32 = 0xe000002f;
637pub const MASK_AMOMAXU_B: u32 = 0xf800707f;
638pub const MATCH_AMOMAXU_D: u32 = 0xe000302f;
639pub const MASK_AMOMAXU_D: u32 = 0xf800707f;
640pub const MATCH_AMOMAXU_H: u32 = 0xe000102f;
641pub const MASK_AMOMAXU_H: u32 = 0xf800707f;
642pub const MATCH_AMOMAXU_W: u32 = 0xe000202f;
643pub const MASK_AMOMAXU_W: u32 = 0xf800707f;
644pub const MATCH_AMOMIN_B: u32 = 0x8000002f;
645pub const MASK_AMOMIN_B: u32 = 0xf800707f;
646pub const MATCH_AMOMIN_D: u32 = 0x8000302f;
647pub const MASK_AMOMIN_D: u32 = 0xf800707f;
648pub const MATCH_AMOMIN_H: u32 = 0x8000102f;
649pub const MASK_AMOMIN_H: u32 = 0xf800707f;
650pub const MATCH_AMOMIN_W: u32 = 0x8000202f;
651pub const MASK_AMOMIN_W: u32 = 0xf800707f;
652pub const MATCH_AMOMINU_B: u32 = 0xc000002f;
653pub const MASK_AMOMINU_B: u32 = 0xf800707f;
654pub const MATCH_AMOMINU_D: u32 = 0xc000302f;
655pub const MASK_AMOMINU_D: u32 = 0xf800707f;
656pub const MATCH_AMOMINU_H: u32 = 0xc000102f;
657pub const MASK_AMOMINU_H: u32 = 0xf800707f;
658pub const MATCH_AMOMINU_W: u32 = 0xc000202f;
659pub const MASK_AMOMINU_W: u32 = 0xf800707f;
660pub const MATCH_AMOOR_B: u32 = 0x4000002f;
661pub const MASK_AMOOR_B: u32 = 0xf800707f;
662pub const MATCH_AMOOR_D: u32 = 0x4000302f;
663pub const MASK_AMOOR_D: u32 = 0xf800707f;
664pub const MATCH_AMOOR_H: u32 = 0x4000102f;
665pub const MASK_AMOOR_H: u32 = 0xf800707f;
666pub const MATCH_AMOOR_W: u32 = 0x4000202f;
667pub const MASK_AMOOR_W: u32 = 0xf800707f;
668pub const MATCH_AMOSWAP_B: u32 = 0x800002f;
669pub const MASK_AMOSWAP_B: u32 = 0xf800707f;
670pub const MATCH_AMOSWAP_D: u32 = 0x800302f;
671pub const MASK_AMOSWAP_D: u32 = 0xf800707f;
672pub const MATCH_AMOSWAP_H: u32 = 0x800102f;
673pub const MASK_AMOSWAP_H: u32 = 0xf800707f;
674pub const MATCH_AMOSWAP_W: u32 = 0x800202f;
675pub const MASK_AMOSWAP_W: u32 = 0xf800707f;
676pub const MATCH_AMOXOR_B: u32 = 0x2000002f;
677pub const MASK_AMOXOR_B: u32 = 0xf800707f;
678pub const MATCH_AMOXOR_D: u32 = 0x2000302f;
679pub const MASK_AMOXOR_D: u32 = 0xf800707f;
680pub const MATCH_AMOXOR_H: u32 = 0x2000102f;
681pub const MASK_AMOXOR_H: u32 = 0xf800707f;
682pub const MATCH_AMOXOR_W: u32 = 0x2000202f;
683pub const MASK_AMOXOR_W: u32 = 0xf800707f;
684pub const MATCH_AND: u32 = 0x7033;
685pub const MASK_AND: u32 = 0xfe00707f;
686pub const MATCH_ANDI: u32 = 0x7013;
687pub const MASK_ANDI: u32 = 0x707f;
688pub const MATCH_ANDN: u32 = 0x40007033;
689pub const MASK_ANDN: u32 = 0xfe00707f;
690pub const MATCH_AUIPC: u32 = 0x17;
691pub const MASK_AUIPC: u32 = 0x7f;
692pub const MATCH_BCLR: u32 = 0x48001033;
693pub const MASK_BCLR: u32 = 0xfe00707f;
694pub const MATCH_BCLRI: u32 = 0x48001013;
695pub const MASK_BCLRI: u32 = 0xfc00707f;
696pub const MATCH_BCLRI_RV32: u32 = 0x48001013;
697pub const MASK_BCLRI_RV32: u32 = 0xfe00707f;
698pub const MATCH_BEQ: u32 = 0x63;
699pub const MASK_BEQ: u32 = 0x707f;
700pub const MATCH_BEQZ: u32 = 0x63;
701pub const MASK_BEQZ: u32 = 0x1f0707f;
702pub const MATCH_BEXT: u32 = 0x48005033;
703pub const MASK_BEXT: u32 = 0xfe00707f;
704pub const MATCH_BEXTI: u32 = 0x48005013;
705pub const MASK_BEXTI: u32 = 0xfc00707f;
706pub const MATCH_BEXTI_RV32: u32 = 0x48005013;
707pub const MASK_BEXTI_RV32: u32 = 0xfe00707f;
708pub const MATCH_BGE: u32 = 0x5063;
709pub const MASK_BGE: u32 = 0x707f;
710pub const MATCH_BGEU: u32 = 0x7063;
711pub const MASK_BGEU: u32 = 0x707f;
712pub const MATCH_BGEZ: u32 = 0x5063;
713pub const MASK_BGEZ: u32 = 0x1f0707f;
714pub const MATCH_BGT: u32 = 0x4063;
715pub const MASK_BGT: u32 = 0x707f;
716pub const MATCH_BGTU: u32 = 0x6063;
717pub const MASK_BGTU: u32 = 0x707f;
718pub const MATCH_BGTZ: u32 = 0x4063;
719pub const MASK_BGTZ: u32 = 0xff07f;
720pub const MATCH_BINV: u32 = 0x68001033;
721pub const MASK_BINV: u32 = 0xfe00707f;
722pub const MATCH_BINVI: u32 = 0x68001013;
723pub const MASK_BINVI: u32 = 0xfc00707f;
724pub const MATCH_BINVI_RV32: u32 = 0x68001013;
725pub const MASK_BINVI_RV32: u32 = 0xfe00707f;
726pub const MATCH_BLE: u32 = 0x5063;
727pub const MASK_BLE: u32 = 0x707f;
728pub const MATCH_BLEU: u32 = 0x7063;
729pub const MASK_BLEU: u32 = 0x707f;
730pub const MATCH_BLEZ: u32 = 0x5063;
731pub const MASK_BLEZ: u32 = 0xff07f;
732pub const MATCH_BLT: u32 = 0x4063;
733pub const MASK_BLT: u32 = 0x707f;
734pub const MATCH_BLTU: u32 = 0x6063;
735pub const MASK_BLTU: u32 = 0x707f;
736pub const MATCH_BLTZ: u32 = 0x4063;
737pub const MASK_BLTZ: u32 = 0x1f0707f;
738pub const MATCH_BNE: u32 = 0x1063;
739pub const MASK_BNE: u32 = 0x707f;
740pub const MATCH_BNEZ: u32 = 0x1063;
741pub const MASK_BNEZ: u32 = 0x1f0707f;
742pub const MATCH_BREV8: u32 = 0x68705013;
743pub const MASK_BREV8: u32 = 0xfff0707f;
744pub const MATCH_BSET: u32 = 0x28001033;
745pub const MASK_BSET: u32 = 0xfe00707f;
746pub const MATCH_BSETI: u32 = 0x28001013;
747pub const MASK_BSETI: u32 = 0xfc00707f;
748pub const MATCH_BSETI_RV32: u32 = 0x28001013;
749pub const MASK_BSETI_RV32: u32 = 0xfe00707f;
750pub const MATCH_C_ADD: u32 = 0x9002;
751pub const MASK_C_ADD: u32 = 0xf003;
752pub const MATCH_C_ADDI: u32 = 0x1;
753pub const MASK_C_ADDI: u32 = 0xe003;
754pub const MATCH_C_ADDI16SP: u32 = 0x6101;
755pub const MASK_C_ADDI16SP: u32 = 0xef83;
756pub const MATCH_C_ADDI4SPN: u32 = 0x0;
757pub const MASK_C_ADDI4SPN: u32 = 0xe003;
758pub const MATCH_C_ADDIW: u32 = 0x2001;
759pub const MASK_C_ADDIW: u32 = 0xe003;
760pub const MATCH_C_ADDW: u32 = 0x9c21;
761pub const MASK_C_ADDW: u32 = 0xfc63;
762pub const MATCH_C_AND: u32 = 0x8c61;
763pub const MASK_C_AND: u32 = 0xfc63;
764pub const MATCH_C_ANDI: u32 = 0x8801;
765pub const MASK_C_ANDI: u32 = 0xec03;
766pub const MATCH_C_BEQZ: u32 = 0xc001;
767pub const MASK_C_BEQZ: u32 = 0xe003;
768pub const MATCH_C_BNEZ: u32 = 0xe001;
769pub const MASK_C_BNEZ: u32 = 0xe003;
770pub const MATCH_C_EBREAK: u32 = 0x9002;
771pub const MASK_C_EBREAK: u32 = 0xffff;
772pub const MATCH_C_FLD: u32 = 0x2000;
773pub const MASK_C_FLD: u32 = 0xe003;
774pub const MATCH_C_FLDSP: u32 = 0x2002;
775pub const MASK_C_FLDSP: u32 = 0xe003;
776pub const MATCH_C_FLW: u32 = 0x6000;
777pub const MASK_C_FLW: u32 = 0xe003;
778pub const MATCH_C_FLWSP: u32 = 0x6002;
779pub const MASK_C_FLWSP: u32 = 0xe003;
780pub const MATCH_C_FSD: u32 = 0xa000;
781pub const MASK_C_FSD: u32 = 0xe003;
782pub const MATCH_C_FSDSP: u32 = 0xa002;
783pub const MASK_C_FSDSP: u32 = 0xe003;
784pub const MATCH_C_FSW: u32 = 0xe000;
785pub const MASK_C_FSW: u32 = 0xe003;
786pub const MATCH_C_FSWSP: u32 = 0xe002;
787pub const MASK_C_FSWSP: u32 = 0xe003;
788pub const MATCH_C_J: u32 = 0xa001;
789pub const MASK_C_J: u32 = 0xe003;
790pub const MATCH_C_JAL: u32 = 0x2001;
791pub const MASK_C_JAL: u32 = 0xe003;
792pub const MATCH_C_JALR: u32 = 0x9002;
793pub const MASK_C_JALR: u32 = 0xf07f;
794pub const MATCH_C_JR: u32 = 0x8002;
795pub const MASK_C_JR: u32 = 0xf07f;
796pub const MATCH_C_LBU: u32 = 0x8000;
797pub const MASK_C_LBU: u32 = 0xfc03;
798pub const MATCH_C_LD: u32 = 0x6000;
799pub const MASK_C_LD: u32 = 0xe003;
800pub const MATCH_C_LDSP: u32 = 0x6002;
801pub const MASK_C_LDSP: u32 = 0xe003;
802pub const MATCH_C_LH: u32 = 0x8440;
803pub const MASK_C_LH: u32 = 0xfc43;
804pub const MATCH_C_LHU: u32 = 0x8400;
805pub const MASK_C_LHU: u32 = 0xfc43;
806pub const MATCH_C_LI: u32 = 0x4001;
807pub const MASK_C_LI: u32 = 0xe003;
808pub const MATCH_C_LUI: u32 = 0x6001;
809pub const MASK_C_LUI: u32 = 0xe003;
810pub const MATCH_C_LW: u32 = 0x4000;
811pub const MASK_C_LW: u32 = 0xe003;
812pub const MATCH_C_LWSP: u32 = 0x4002;
813pub const MASK_C_LWSP: u32 = 0xe003;
814pub const MATCH_C_MOP_1: u32 = 0x6081;
815pub const MASK_C_MOP_1: u32 = 0xffff;
816pub const MATCH_C_MOP_11: u32 = 0x6581;
817pub const MASK_C_MOP_11: u32 = 0xffff;
818pub const MATCH_C_MOP_13: u32 = 0x6681;
819pub const MASK_C_MOP_13: u32 = 0xffff;
820pub const MATCH_C_MOP_15: u32 = 0x6781;
821pub const MASK_C_MOP_15: u32 = 0xffff;
822pub const MATCH_C_MOP_3: u32 = 0x6181;
823pub const MASK_C_MOP_3: u32 = 0xffff;
824pub const MATCH_C_MOP_5: u32 = 0x6281;
825pub const MASK_C_MOP_5: u32 = 0xffff;
826pub const MATCH_C_MOP_7: u32 = 0x6381;
827pub const MASK_C_MOP_7: u32 = 0xffff;
828pub const MATCH_C_MOP_9: u32 = 0x6481;
829pub const MASK_C_MOP_9: u32 = 0xffff;
830pub const MATCH_C_MOP_N: u32 = 0x6081;
831pub const MASK_C_MOP_N: u32 = 0xf8ff;
832pub const MATCH_C_MUL: u32 = 0x9c41;
833pub const MASK_C_MUL: u32 = 0xfc63;
834pub const MATCH_C_MV: u32 = 0x8002;
835pub const MASK_C_MV: u32 = 0xf003;
836pub const MATCH_C_NOP: u32 = 0x1;
837pub const MASK_C_NOP: u32 = 0xef83;
838pub const MATCH_C_NOT: u32 = 0x9c75;
839pub const MASK_C_NOT: u32 = 0xfc7f;
840pub const MATCH_C_NTL_ALL: u32 = 0x9016;
841pub const MASK_C_NTL_ALL: u32 = 0xffff;
842pub const MATCH_C_NTL_P1: u32 = 0x900a;
843pub const MASK_C_NTL_P1: u32 = 0xffff;
844pub const MATCH_C_NTL_PALL: u32 = 0x900e;
845pub const MASK_C_NTL_PALL: u32 = 0xffff;
846pub const MATCH_C_NTL_S1: u32 = 0x9012;
847pub const MASK_C_NTL_S1: u32 = 0xffff;
848pub const MATCH_C_OR: u32 = 0x8c41;
849pub const MASK_C_OR: u32 = 0xfc63;
850pub const MATCH_C_SB: u32 = 0x8800;
851pub const MASK_C_SB: u32 = 0xfc03;
852pub const MATCH_C_SD: u32 = 0xe000;
853pub const MASK_C_SD: u32 = 0xe003;
854pub const MATCH_C_SDSP: u32 = 0xe002;
855pub const MASK_C_SDSP: u32 = 0xe003;
856pub const MATCH_C_SEXT_B: u32 = 0x9c65;
857pub const MASK_C_SEXT_B: u32 = 0xfc7f;
858pub const MATCH_C_SEXT_H: u32 = 0x9c6d;
859pub const MASK_C_SEXT_H: u32 = 0xfc7f;
860pub const MATCH_C_SEXT_W: u32 = 0x2001;
861pub const MASK_C_SEXT_W: u32 = 0xf07f;
862pub const MATCH_C_SH: u32 = 0x8c00;
863pub const MASK_C_SH: u32 = 0xfc43;
864pub const MATCH_C_SLLI: u32 = 0x2;
865pub const MASK_C_SLLI: u32 = 0xe003;
866pub const MATCH_C_SLLI_RV32: u32 = 0x2;
867pub const MASK_C_SLLI_RV32: u32 = 0xf003;
868pub const MATCH_C_SRAI: u32 = 0x8401;
869pub const MASK_C_SRAI: u32 = 0xec03;
870pub const MATCH_C_SRAI_RV32: u32 = 0x8401;
871pub const MASK_C_SRAI_RV32: u32 = 0xfc03;
872pub const MATCH_C_SRLI: u32 = 0x8001;
873pub const MASK_C_SRLI: u32 = 0xec03;
874pub const MATCH_C_SRLI_RV32: u32 = 0x8001;
875pub const MASK_C_SRLI_RV32: u32 = 0xfc03;
876pub const MATCH_C_SSPOPCHK_X5: u32 = 0x6281;
877pub const MASK_C_SSPOPCHK_X5: u32 = 0xffff;
878pub const MATCH_C_SSPUSH_X1: u32 = 0x6081;
879pub const MASK_C_SSPUSH_X1: u32 = 0xffff;
880pub const MATCH_C_SUB: u32 = 0x8c01;
881pub const MASK_C_SUB: u32 = 0xfc63;
882pub const MATCH_C_SUBW: u32 = 0x9c01;
883pub const MASK_C_SUBW: u32 = 0xfc63;
884pub const MATCH_C_SW: u32 = 0xc000;
885pub const MASK_C_SW: u32 = 0xe003;
886pub const MATCH_C_SWSP: u32 = 0xc002;
887pub const MASK_C_SWSP: u32 = 0xe003;
888pub const MATCH_C_XOR: u32 = 0x8c21;
889pub const MASK_C_XOR: u32 = 0xfc63;
890pub const MATCH_C_ZEXT_B: u32 = 0x9c61;
891pub const MASK_C_ZEXT_B: u32 = 0xfc7f;
892pub const MATCH_C_ZEXT_H: u32 = 0x9c69;
893pub const MASK_C_ZEXT_H: u32 = 0xfc7f;
894pub const MATCH_C_ZEXT_W: u32 = 0x9c71;
895pub const MASK_C_ZEXT_W: u32 = 0xfc7f;
896pub const MATCH_CBO_CLEAN: u32 = 0x10200f;
897pub const MASK_CBO_CLEAN: u32 = 0xfff07fff;
898pub const MATCH_CBO_FLUSH: u32 = 0x20200f;
899pub const MASK_CBO_FLUSH: u32 = 0xfff07fff;
900pub const MATCH_CBO_INVAL: u32 = 0x200f;
901pub const MASK_CBO_INVAL: u32 = 0xfff07fff;
902pub const MATCH_CBO_ZERO: u32 = 0x40200f;
903pub const MASK_CBO_ZERO: u32 = 0xfff07fff;
904pub const MATCH_CLMUL: u32 = 0xa001033;
905pub const MASK_CLMUL: u32 = 0xfe00707f;
906pub const MATCH_CLMULH: u32 = 0xa003033;
907pub const MASK_CLMULH: u32 = 0xfe00707f;
908pub const MATCH_CLMULR: u32 = 0xa002033;
909pub const MASK_CLMULR: u32 = 0xfe00707f;
910pub const MATCH_CLZ: u32 = 0x60001013;
911pub const MASK_CLZ: u32 = 0xfff0707f;
912pub const MATCH_CLZW: u32 = 0x6000101b;
913pub const MASK_CLZW: u32 = 0xfff0707f;
914pub const MATCH_CM_JALT: u32 = 0xa002;
915pub const MASK_CM_JALT: u32 = 0xfc03;
916pub const MATCH_CM_MVA01S: u32 = 0xac62;
917pub const MASK_CM_MVA01S: u32 = 0xfc63;
918pub const MATCH_CM_MVSA01: u32 = 0xac22;
919pub const MASK_CM_MVSA01: u32 = 0xfc63;
920pub const MATCH_CM_POP: u32 = 0xba02;
921pub const MASK_CM_POP: u32 = 0xff03;
922pub const MATCH_CM_POPRET: u32 = 0xbe02;
923pub const MASK_CM_POPRET: u32 = 0xff03;
924pub const MATCH_CM_POPRETZ: u32 = 0xbc02;
925pub const MASK_CM_POPRETZ: u32 = 0xff03;
926pub const MATCH_CM_PUSH: u32 = 0xb802;
927pub const MASK_CM_PUSH: u32 = 0xff03;
928pub const MATCH_CPOP: u32 = 0x60201013;
929pub const MASK_CPOP: u32 = 0xfff0707f;
930pub const MATCH_CPOPW: u32 = 0x6020101b;
931pub const MASK_CPOPW: u32 = 0xfff0707f;
932pub const MATCH_CSRC: u32 = 0x3073;
933pub const MASK_CSRC: u32 = 0x7fff;
934pub const MATCH_CSRCI: u32 = 0x7073;
935pub const MASK_CSRCI: u32 = 0x7fff;
936pub const MATCH_CSRR: u32 = 0x2073;
937pub const MASK_CSRR: u32 = 0xff07f;
938pub const MATCH_CSRRC: u32 = 0x3073;
939pub const MASK_CSRRC: u32 = 0x707f;
940pub const MATCH_CSRRCI: u32 = 0x7073;
941pub const MASK_CSRRCI: u32 = 0x707f;
942pub const MATCH_CSRRS: u32 = 0x2073;
943pub const MASK_CSRRS: u32 = 0x707f;
944pub const MATCH_CSRRSI: u32 = 0x6073;
945pub const MASK_CSRRSI: u32 = 0x707f;
946pub const MATCH_CSRRW: u32 = 0x1073;
947pub const MASK_CSRRW: u32 = 0x707f;
948pub const MATCH_CSRRWI: u32 = 0x5073;
949pub const MASK_CSRRWI: u32 = 0x707f;
950pub const MATCH_CSRS: u32 = 0x2073;
951pub const MASK_CSRS: u32 = 0x7fff;
952pub const MATCH_CSRSI: u32 = 0x6073;
953pub const MASK_CSRSI: u32 = 0x7fff;
954pub const MATCH_CSRW: u32 = 0x1073;
955pub const MASK_CSRW: u32 = 0x7fff;
956pub const MATCH_CSRWI: u32 = 0x5073;
957pub const MASK_CSRWI: u32 = 0x7fff;
958pub const MATCH_CTZ: u32 = 0x60101013;
959pub const MASK_CTZ: u32 = 0xfff0707f;
960pub const MATCH_CTZW: u32 = 0x6010101b;
961pub const MASK_CTZW: u32 = 0xfff0707f;
962pub const MATCH_CZERO_EQZ: u32 = 0xe005033;
963pub const MASK_CZERO_EQZ: u32 = 0xfe00707f;
964pub const MATCH_CZERO_NEZ: u32 = 0xe007033;
965pub const MASK_CZERO_NEZ: u32 = 0xfe00707f;
966pub const MATCH_DIV: u32 = 0x2004033;
967pub const MASK_DIV: u32 = 0xfe00707f;
968pub const MATCH_DIVU: u32 = 0x2005033;
969pub const MASK_DIVU: u32 = 0xfe00707f;
970pub const MATCH_DIVUW: u32 = 0x200503b;
971pub const MASK_DIVUW: u32 = 0xfe00707f;
972pub const MATCH_DIVW: u32 = 0x200403b;
973pub const MASK_DIVW: u32 = 0xfe00707f;
974pub const MATCH_DRET: u32 = 0x7b200073;
975pub const MASK_DRET: u32 = 0xffffffff;
976pub const MATCH_EBREAK: u32 = 0x100073;
977pub const MASK_EBREAK: u32 = 0xffffffff;
978pub const MATCH_ECALL: u32 = 0x73;
979pub const MASK_ECALL: u32 = 0xffffffff;
980pub const MATCH_FABS_D: u32 = 0x22002053;
981pub const MASK_FABS_D: u32 = 0xfe00707f;
982pub const MATCH_FABS_H: u32 = 0x24002053;
983pub const MASK_FABS_H: u32 = 0xfe00707f;
984pub const MATCH_FABS_Q: u32 = 0x26002053;
985pub const MASK_FABS_Q: u32 = 0xfe00707f;
986pub const MATCH_FABS_S: u32 = 0x20002053;
987pub const MASK_FABS_S: u32 = 0xfe00707f;
988pub const MATCH_FADD_D: u32 = 0x2000053;
989pub const MASK_FADD_D: u32 = 0xfe00007f;
990pub const MATCH_FADD_H: u32 = 0x4000053;
991pub const MASK_FADD_H: u32 = 0xfe00007f;
992pub const MATCH_FADD_Q: u32 = 0x6000053;
993pub const MASK_FADD_Q: u32 = 0xfe00007f;
994pub const MATCH_FADD_S: u32 = 0x53;
995pub const MASK_FADD_S: u32 = 0xfe00007f;
996pub const MATCH_FCLASS_D: u32 = 0xe2001053;
997pub const MASK_FCLASS_D: u32 = 0xfff0707f;
998pub const MATCH_FCLASS_H: u32 = 0xe4001053;
999pub const MASK_FCLASS_H: u32 = 0xfff0707f;
1000pub const MATCH_FCLASS_Q: u32 = 0xe6001053;
1001pub const MASK_FCLASS_Q: u32 = 0xfff0707f;
1002pub const MATCH_FCLASS_S: u32 = 0xe0001053;
1003pub const MASK_FCLASS_S: u32 = 0xfff0707f;
1004pub const MATCH_FCVT_BF16_S: u32 = 0x44800053;
1005pub const MASK_FCVT_BF16_S: u32 = 0xfff0007f;
1006pub const MATCH_FCVT_D_H: u32 = 0x42200053;
1007pub const MASK_FCVT_D_H: u32 = 0xfff0007f;
1008pub const MATCH_FCVT_D_L: u32 = 0xd2200053;
1009pub const MASK_FCVT_D_L: u32 = 0xfff0007f;
1010pub const MATCH_FCVT_D_LU: u32 = 0xd2300053;
1011pub const MASK_FCVT_D_LU: u32 = 0xfff0007f;
1012pub const MATCH_FCVT_D_Q: u32 = 0x42300053;
1013pub const MASK_FCVT_D_Q: u32 = 0xfff0007f;
1014pub const MATCH_FCVT_D_S: u32 = 0x42000053;
1015pub const MASK_FCVT_D_S: u32 = 0xfff0007f;
1016pub const MATCH_FCVT_D_W: u32 = 0xd2000053;
1017pub const MASK_FCVT_D_W: u32 = 0xfff0007f;
1018pub const MATCH_FCVT_D_WU: u32 = 0xd2100053;
1019pub const MASK_FCVT_D_WU: u32 = 0xfff0007f;
1020pub const MATCH_FCVT_H_D: u32 = 0x44100053;
1021pub const MASK_FCVT_H_D: u32 = 0xfff0007f;
1022pub const MATCH_FCVT_H_L: u32 = 0xd4200053;
1023pub const MASK_FCVT_H_L: u32 = 0xfff0007f;
1024pub const MATCH_FCVT_H_LU: u32 = 0xd4300053;
1025pub const MASK_FCVT_H_LU: u32 = 0xfff0007f;
1026pub const MATCH_FCVT_H_Q: u32 = 0x44300053;
1027pub const MASK_FCVT_H_Q: u32 = 0xfff0007f;
1028pub const MATCH_FCVT_H_S: u32 = 0x44000053;
1029pub const MASK_FCVT_H_S: u32 = 0xfff0007f;
1030pub const MATCH_FCVT_H_W: u32 = 0xd4000053;
1031pub const MASK_FCVT_H_W: u32 = 0xfff0007f;
1032pub const MATCH_FCVT_H_WU: u32 = 0xd4100053;
1033pub const MASK_FCVT_H_WU: u32 = 0xfff0007f;
1034pub const MATCH_FCVT_L_D: u32 = 0xc2200053;
1035pub const MASK_FCVT_L_D: u32 = 0xfff0007f;
1036pub const MATCH_FCVT_L_H: u32 = 0xc4200053;
1037pub const MASK_FCVT_L_H: u32 = 0xfff0007f;
1038pub const MATCH_FCVT_L_Q: u32 = 0xc6200053;
1039pub const MASK_FCVT_L_Q: u32 = 0xfff0007f;
1040pub const MATCH_FCVT_L_S: u32 = 0xc0200053;
1041pub const MASK_FCVT_L_S: u32 = 0xfff0007f;
1042pub const MATCH_FCVT_LU_D: u32 = 0xc2300053;
1043pub const MASK_FCVT_LU_D: u32 = 0xfff0007f;
1044pub const MATCH_FCVT_LU_H: u32 = 0xc4300053;
1045pub const MASK_FCVT_LU_H: u32 = 0xfff0007f;
1046pub const MATCH_FCVT_LU_Q: u32 = 0xc6300053;
1047pub const MASK_FCVT_LU_Q: u32 = 0xfff0007f;
1048pub const MATCH_FCVT_LU_S: u32 = 0xc0300053;
1049pub const MASK_FCVT_LU_S: u32 = 0xfff0007f;
1050pub const MATCH_FCVT_Q_D: u32 = 0x46100053;
1051pub const MASK_FCVT_Q_D: u32 = 0xfff0007f;
1052pub const MATCH_FCVT_Q_H: u32 = 0x46200053;
1053pub const MASK_FCVT_Q_H: u32 = 0xfff0007f;
1054pub const MATCH_FCVT_Q_L: u32 = 0xd6200053;
1055pub const MASK_FCVT_Q_L: u32 = 0xfff0007f;
1056pub const MATCH_FCVT_Q_LU: u32 = 0xd6300053;
1057pub const MASK_FCVT_Q_LU: u32 = 0xfff0007f;
1058pub const MATCH_FCVT_Q_S: u32 = 0x46000053;
1059pub const MASK_FCVT_Q_S: u32 = 0xfff0007f;
1060pub const MATCH_FCVT_Q_W: u32 = 0xd6000053;
1061pub const MASK_FCVT_Q_W: u32 = 0xfff0007f;
1062pub const MATCH_FCVT_Q_WU: u32 = 0xd6100053;
1063pub const MASK_FCVT_Q_WU: u32 = 0xfff0007f;
1064pub const MATCH_FCVT_S_BF16: u32 = 0x40600053;
1065pub const MASK_FCVT_S_BF16: u32 = 0xfff0007f;
1066pub const MATCH_FCVT_S_D: u32 = 0x40100053;
1067pub const MASK_FCVT_S_D: u32 = 0xfff0007f;
1068pub const MATCH_FCVT_S_H: u32 = 0x40200053;
1069pub const MASK_FCVT_S_H: u32 = 0xfff0007f;
1070pub const MATCH_FCVT_S_L: u32 = 0xd0200053;
1071pub const MASK_FCVT_S_L: u32 = 0xfff0007f;
1072pub const MATCH_FCVT_S_LU: u32 = 0xd0300053;
1073pub const MASK_FCVT_S_LU: u32 = 0xfff0007f;
1074pub const MATCH_FCVT_S_Q: u32 = 0x40300053;
1075pub const MASK_FCVT_S_Q: u32 = 0xfff0007f;
1076pub const MATCH_FCVT_S_W: u32 = 0xd0000053;
1077pub const MASK_FCVT_S_W: u32 = 0xfff0007f;
1078pub const MATCH_FCVT_S_WU: u32 = 0xd0100053;
1079pub const MASK_FCVT_S_WU: u32 = 0xfff0007f;
1080pub const MATCH_FCVT_W_D: u32 = 0xc2000053;
1081pub const MASK_FCVT_W_D: u32 = 0xfff0007f;
1082pub const MATCH_FCVT_W_H: u32 = 0xc4000053;
1083pub const MASK_FCVT_W_H: u32 = 0xfff0007f;
1084pub const MATCH_FCVT_W_Q: u32 = 0xc6000053;
1085pub const MASK_FCVT_W_Q: u32 = 0xfff0007f;
1086pub const MATCH_FCVT_W_S: u32 = 0xc0000053;
1087pub const MASK_FCVT_W_S: u32 = 0xfff0007f;
1088pub const MATCH_FCVT_WU_D: u32 = 0xc2100053;
1089pub const MASK_FCVT_WU_D: u32 = 0xfff0007f;
1090pub const MATCH_FCVT_WU_H: u32 = 0xc4100053;
1091pub const MASK_FCVT_WU_H: u32 = 0xfff0007f;
1092pub const MATCH_FCVT_WU_Q: u32 = 0xc6100053;
1093pub const MASK_FCVT_WU_Q: u32 = 0xfff0007f;
1094pub const MATCH_FCVT_WU_S: u32 = 0xc0100053;
1095pub const MASK_FCVT_WU_S: u32 = 0xfff0007f;
1096pub const MATCH_FCVTMOD_W_D: u32 = 0xc2801053;
1097pub const MASK_FCVTMOD_W_D: u32 = 0xfff0707f;
1098pub const MATCH_FDIV_D: u32 = 0x1a000053;
1099pub const MASK_FDIV_D: u32 = 0xfe00007f;
1100pub const MATCH_FDIV_H: u32 = 0x1c000053;
1101pub const MASK_FDIV_H: u32 = 0xfe00007f;
1102pub const MATCH_FDIV_Q: u32 = 0x1e000053;
1103pub const MASK_FDIV_Q: u32 = 0xfe00007f;
1104pub const MATCH_FDIV_S: u32 = 0x18000053;
1105pub const MASK_FDIV_S: u32 = 0xfe00007f;
1106pub const MATCH_FENCE: u32 = 0xf;
1107pub const MASK_FENCE: u32 = 0x707f;
1108pub const MATCH_FENCE_I: u32 = 0x100f;
1109pub const MASK_FENCE_I: u32 = 0x707f;
1110pub const MATCH_FENCE_TSO: u32 = 0x8330000f;
1111pub const MASK_FENCE_TSO: u32 = 0xfff0707f;
1112pub const MATCH_FEQ_D: u32 = 0xa2002053;
1113pub const MASK_FEQ_D: u32 = 0xfe00707f;
1114pub const MATCH_FEQ_H: u32 = 0xa4002053;
1115pub const MASK_FEQ_H: u32 = 0xfe00707f;
1116pub const MATCH_FEQ_Q: u32 = 0xa6002053;
1117pub const MASK_FEQ_Q: u32 = 0xfe00707f;
1118pub const MATCH_FEQ_S: u32 = 0xa0002053;
1119pub const MASK_FEQ_S: u32 = 0xfe00707f;
1120pub const MATCH_FLD: u32 = 0x3007;
1121pub const MASK_FLD: u32 = 0x707f;
1122pub const MATCH_FLE_D: u32 = 0xa2000053;
1123pub const MASK_FLE_D: u32 = 0xfe00707f;
1124pub const MATCH_FLE_H: u32 = 0xa4000053;
1125pub const MASK_FLE_H: u32 = 0xfe00707f;
1126pub const MATCH_FLE_Q: u32 = 0xa6000053;
1127pub const MASK_FLE_Q: u32 = 0xfe00707f;
1128pub const MATCH_FLE_S: u32 = 0xa0000053;
1129pub const MASK_FLE_S: u32 = 0xfe00707f;
1130pub const MATCH_FLEQ_D: u32 = 0xa2004053;
1131pub const MASK_FLEQ_D: u32 = 0xfe00707f;
1132pub const MATCH_FLEQ_H: u32 = 0xa4004053;
1133pub const MASK_FLEQ_H: u32 = 0xfe00707f;
1134pub const MATCH_FLEQ_Q: u32 = 0xa6004053;
1135pub const MASK_FLEQ_Q: u32 = 0xfe00707f;
1136pub const MATCH_FLEQ_S: u32 = 0xa0004053;
1137pub const MASK_FLEQ_S: u32 = 0xfe00707f;
1138pub const MATCH_FLH: u32 = 0x1007;
1139pub const MASK_FLH: u32 = 0x707f;
1140pub const MATCH_FLI_D: u32 = 0xf2100053;
1141pub const MASK_FLI_D: u32 = 0xfff0707f;
1142pub const MATCH_FLI_H: u32 = 0xf4100053;
1143pub const MASK_FLI_H: u32 = 0xfff0707f;
1144pub const MATCH_FLI_Q: u32 = 0xf6100053;
1145pub const MASK_FLI_Q: u32 = 0xfff0707f;
1146pub const MATCH_FLI_S: u32 = 0xf0100053;
1147pub const MASK_FLI_S: u32 = 0xfff0707f;
1148pub const MATCH_FLQ: u32 = 0x4007;
1149pub const MASK_FLQ: u32 = 0x707f;
1150pub const MATCH_FLT_D: u32 = 0xa2001053;
1151pub const MASK_FLT_D: u32 = 0xfe00707f;
1152pub const MATCH_FLT_H: u32 = 0xa4001053;
1153pub const MASK_FLT_H: u32 = 0xfe00707f;
1154pub const MATCH_FLT_Q: u32 = 0xa6001053;
1155pub const MASK_FLT_Q: u32 = 0xfe00707f;
1156pub const MATCH_FLT_S: u32 = 0xa0001053;
1157pub const MASK_FLT_S: u32 = 0xfe00707f;
1158pub const MATCH_FLTQ_D: u32 = 0xa2005053;
1159pub const MASK_FLTQ_D: u32 = 0xfe00707f;
1160pub const MATCH_FLTQ_H: u32 = 0xa4005053;
1161pub const MASK_FLTQ_H: u32 = 0xfe00707f;
1162pub const MATCH_FLTQ_Q: u32 = 0xa6005053;
1163pub const MASK_FLTQ_Q: u32 = 0xfe00707f;
1164pub const MATCH_FLTQ_S: u32 = 0xa0005053;
1165pub const MASK_FLTQ_S: u32 = 0xfe00707f;
1166pub const MATCH_FLW: u32 = 0x2007;
1167pub const MASK_FLW: u32 = 0x707f;
1168pub const MATCH_FMADD_D: u32 = 0x2000043;
1169pub const MASK_FMADD_D: u32 = 0x600007f;
1170pub const MATCH_FMADD_H: u32 = 0x4000043;
1171pub const MASK_FMADD_H: u32 = 0x600007f;
1172pub const MATCH_FMADD_Q: u32 = 0x6000043;
1173pub const MASK_FMADD_Q: u32 = 0x600007f;
1174pub const MATCH_FMADD_S: u32 = 0x43;
1175pub const MASK_FMADD_S: u32 = 0x600007f;
1176pub const MATCH_FMAX_D: u32 = 0x2a001053;
1177pub const MASK_FMAX_D: u32 = 0xfe00707f;
1178pub const MATCH_FMAX_H: u32 = 0x2c001053;
1179pub const MASK_FMAX_H: u32 = 0xfe00707f;
1180pub const MATCH_FMAX_Q: u32 = 0x2e001053;
1181pub const MASK_FMAX_Q: u32 = 0xfe00707f;
1182pub const MATCH_FMAX_S: u32 = 0x28001053;
1183pub const MASK_FMAX_S: u32 = 0xfe00707f;
1184pub const MATCH_FMAXM_D: u32 = 0x2a003053;
1185pub const MASK_FMAXM_D: u32 = 0xfe00707f;
1186pub const MATCH_FMAXM_H: u32 = 0x2c003053;
1187pub const MASK_FMAXM_H: u32 = 0xfe00707f;
1188pub const MATCH_FMAXM_Q: u32 = 0x2e003053;
1189pub const MASK_FMAXM_Q: u32 = 0xfe00707f;
1190pub const MATCH_FMAXM_S: u32 = 0x28003053;
1191pub const MASK_FMAXM_S: u32 = 0xfe00707f;
1192pub const MATCH_FMIN_D: u32 = 0x2a000053;
1193pub const MASK_FMIN_D: u32 = 0xfe00707f;
1194pub const MATCH_FMIN_H: u32 = 0x2c000053;
1195pub const MASK_FMIN_H: u32 = 0xfe00707f;
1196pub const MATCH_FMIN_Q: u32 = 0x2e000053;
1197pub const MASK_FMIN_Q: u32 = 0xfe00707f;
1198pub const MATCH_FMIN_S: u32 = 0x28000053;
1199pub const MASK_FMIN_S: u32 = 0xfe00707f;
1200pub const MATCH_FMINM_D: u32 = 0x2a002053;
1201pub const MASK_FMINM_D: u32 = 0xfe00707f;
1202pub const MATCH_FMINM_H: u32 = 0x2c002053;
1203pub const MASK_FMINM_H: u32 = 0xfe00707f;
1204pub const MATCH_FMINM_Q: u32 = 0x2e002053;
1205pub const MASK_FMINM_Q: u32 = 0xfe00707f;
1206pub const MATCH_FMINM_S: u32 = 0x28002053;
1207pub const MASK_FMINM_S: u32 = 0xfe00707f;
1208pub const MATCH_FMSUB_D: u32 = 0x2000047;
1209pub const MASK_FMSUB_D: u32 = 0x600007f;
1210pub const MATCH_FMSUB_H: u32 = 0x4000047;
1211pub const MASK_FMSUB_H: u32 = 0x600007f;
1212pub const MATCH_FMSUB_Q: u32 = 0x6000047;
1213pub const MASK_FMSUB_Q: u32 = 0x600007f;
1214pub const MATCH_FMSUB_S: u32 = 0x47;
1215pub const MASK_FMSUB_S: u32 = 0x600007f;
1216pub const MATCH_FMUL_D: u32 = 0x12000053;
1217pub const MASK_FMUL_D: u32 = 0xfe00007f;
1218pub const MATCH_FMUL_H: u32 = 0x14000053;
1219pub const MASK_FMUL_H: u32 = 0xfe00007f;
1220pub const MATCH_FMUL_Q: u32 = 0x16000053;
1221pub const MASK_FMUL_Q: u32 = 0xfe00007f;
1222pub const MATCH_FMUL_S: u32 = 0x10000053;
1223pub const MASK_FMUL_S: u32 = 0xfe00007f;
1224pub const MATCH_FMV_D: u32 = 0x22000053;
1225pub const MASK_FMV_D: u32 = 0xfe00707f;
1226pub const MATCH_FMV_D_X: u32 = 0xf2000053;
1227pub const MASK_FMV_D_X: u32 = 0xfff0707f;
1228pub const MATCH_FMV_H: u32 = 0x24000053;
1229pub const MASK_FMV_H: u32 = 0xfe00707f;
1230pub const MATCH_FMV_H_X: u32 = 0xf4000053;
1231pub const MASK_FMV_H_X: u32 = 0xfff0707f;
1232pub const MATCH_FMV_Q: u32 = 0x26000053;
1233pub const MASK_FMV_Q: u32 = 0xfe00707f;
1234pub const MATCH_FMV_S: u32 = 0x20000053;
1235pub const MASK_FMV_S: u32 = 0xfe00707f;
1236pub const MATCH_FMV_S_X: u32 = 0xf0000053;
1237pub const MASK_FMV_S_X: u32 = 0xfff0707f;
1238pub const MATCH_FMV_W_X: u32 = 0xf0000053;
1239pub const MASK_FMV_W_X: u32 = 0xfff0707f;
1240pub const MATCH_FMV_X_D: u32 = 0xe2000053;
1241pub const MASK_FMV_X_D: u32 = 0xfff0707f;
1242pub const MATCH_FMV_X_H: u32 = 0xe4000053;
1243pub const MASK_FMV_X_H: u32 = 0xfff0707f;
1244pub const MATCH_FMV_X_S: u32 = 0xe0000053;
1245pub const MASK_FMV_X_S: u32 = 0xfff0707f;
1246pub const MATCH_FMV_X_W: u32 = 0xe0000053;
1247pub const MASK_FMV_X_W: u32 = 0xfff0707f;
1248pub const MATCH_FMVH_X_D: u32 = 0xe2100053;
1249pub const MASK_FMVH_X_D: u32 = 0xfff0707f;
1250pub const MATCH_FMVH_X_Q: u32 = 0xe6100053;
1251pub const MASK_FMVH_X_Q: u32 = 0xfff0707f;
1252pub const MATCH_FMVP_D_X: u32 = 0xb2000053;
1253pub const MASK_FMVP_D_X: u32 = 0xfe00707f;
1254pub const MATCH_FMVP_Q_X: u32 = 0xb6000053;
1255pub const MASK_FMVP_Q_X: u32 = 0xfe00707f;
1256pub const MATCH_FNEG_D: u32 = 0x22001053;
1257pub const MASK_FNEG_D: u32 = 0xfe00707f;
1258pub const MATCH_FNEG_H: u32 = 0x24001053;
1259pub const MASK_FNEG_H: u32 = 0xfe00707f;
1260pub const MATCH_FNEG_Q: u32 = 0x26001053;
1261pub const MASK_FNEG_Q: u32 = 0xfe00707f;
1262pub const MATCH_FNEG_S: u32 = 0x20001053;
1263pub const MASK_FNEG_S: u32 = 0xfe00707f;
1264pub const MATCH_FNMADD_D: u32 = 0x200004f;
1265pub const MASK_FNMADD_D: u32 = 0x600007f;
1266pub const MATCH_FNMADD_H: u32 = 0x400004f;
1267pub const MASK_FNMADD_H: u32 = 0x600007f;
1268pub const MATCH_FNMADD_Q: u32 = 0x600004f;
1269pub const MASK_FNMADD_Q: u32 = 0x600007f;
1270pub const MATCH_FNMADD_S: u32 = 0x4f;
1271pub const MASK_FNMADD_S: u32 = 0x600007f;
1272pub const MATCH_FNMSUB_D: u32 = 0x200004b;
1273pub const MASK_FNMSUB_D: u32 = 0x600007f;
1274pub const MATCH_FNMSUB_H: u32 = 0x400004b;
1275pub const MASK_FNMSUB_H: u32 = 0x600007f;
1276pub const MATCH_FNMSUB_Q: u32 = 0x600004b;
1277pub const MASK_FNMSUB_Q: u32 = 0x600007f;
1278pub const MATCH_FNMSUB_S: u32 = 0x4b;
1279pub const MASK_FNMSUB_S: u32 = 0x600007f;
1280pub const MATCH_FRCSR: u32 = 0x302073;
1281pub const MASK_FRCSR: u32 = 0xfffff07f;
1282pub const MATCH_FRFLAGS: u32 = 0x102073;
1283pub const MASK_FRFLAGS: u32 = 0xfffff07f;
1284pub const MATCH_FROUND_D: u32 = 0x42400053;
1285pub const MASK_FROUND_D: u32 = 0xfff0007f;
1286pub const MATCH_FROUND_H: u32 = 0x44400053;
1287pub const MASK_FROUND_H: u32 = 0xfff0007f;
1288pub const MATCH_FROUND_Q: u32 = 0x46400053;
1289pub const MASK_FROUND_Q: u32 = 0xfff0007f;
1290pub const MATCH_FROUND_S: u32 = 0x40400053;
1291pub const MASK_FROUND_S: u32 = 0xfff0007f;
1292pub const MATCH_FROUNDNX_D: u32 = 0x42500053;
1293pub const MASK_FROUNDNX_D: u32 = 0xfff0007f;
1294pub const MATCH_FROUNDNX_H: u32 = 0x44500053;
1295pub const MASK_FROUNDNX_H: u32 = 0xfff0007f;
1296pub const MATCH_FROUNDNX_Q: u32 = 0x46500053;
1297pub const MASK_FROUNDNX_Q: u32 = 0xfff0007f;
1298pub const MATCH_FROUNDNX_S: u32 = 0x40500053;
1299pub const MASK_FROUNDNX_S: u32 = 0xfff0007f;
1300pub const MATCH_FRRM: u32 = 0x202073;
1301pub const MASK_FRRM: u32 = 0xfffff07f;
1302pub const MATCH_FSCSR: u32 = 0x301073;
1303pub const MASK_FSCSR: u32 = 0xfff0707f;
1304pub const MATCH_FSD: u32 = 0x3027;
1305pub const MASK_FSD: u32 = 0x707f;
1306pub const MATCH_FSFLAGS: u32 = 0x101073;
1307pub const MASK_FSFLAGS: u32 = 0xfff0707f;
1308pub const MATCH_FSFLAGSI: u32 = 0x105073;
1309pub const MASK_FSFLAGSI: u32 = 0xfff0707f;
1310pub const MATCH_FSGNJ_D: u32 = 0x22000053;
1311pub const MASK_FSGNJ_D: u32 = 0xfe00707f;
1312pub const MATCH_FSGNJ_H: u32 = 0x24000053;
1313pub const MASK_FSGNJ_H: u32 = 0xfe00707f;
1314pub const MATCH_FSGNJ_Q: u32 = 0x26000053;
1315pub const MASK_FSGNJ_Q: u32 = 0xfe00707f;
1316pub const MATCH_FSGNJ_S: u32 = 0x20000053;
1317pub const MASK_FSGNJ_S: u32 = 0xfe00707f;
1318pub const MATCH_FSGNJN_D: u32 = 0x22001053;
1319pub const MASK_FSGNJN_D: u32 = 0xfe00707f;
1320pub const MATCH_FSGNJN_H: u32 = 0x24001053;
1321pub const MASK_FSGNJN_H: u32 = 0xfe00707f;
1322pub const MATCH_FSGNJN_Q: u32 = 0x26001053;
1323pub const MASK_FSGNJN_Q: u32 = 0xfe00707f;
1324pub const MATCH_FSGNJN_S: u32 = 0x20001053;
1325pub const MASK_FSGNJN_S: u32 = 0xfe00707f;
1326pub const MATCH_FSGNJX_D: u32 = 0x22002053;
1327pub const MASK_FSGNJX_D: u32 = 0xfe00707f;
1328pub const MATCH_FSGNJX_H: u32 = 0x24002053;
1329pub const MASK_FSGNJX_H: u32 = 0xfe00707f;
1330pub const MATCH_FSGNJX_Q: u32 = 0x26002053;
1331pub const MASK_FSGNJX_Q: u32 = 0xfe00707f;
1332pub const MATCH_FSGNJX_S: u32 = 0x20002053;
1333pub const MASK_FSGNJX_S: u32 = 0xfe00707f;
1334pub const MATCH_FSH: u32 = 0x1027;
1335pub const MASK_FSH: u32 = 0x707f;
1336pub const MATCH_FSQ: u32 = 0x4027;
1337pub const MASK_FSQ: u32 = 0x707f;
1338pub const MATCH_FSQRT_D: u32 = 0x5a000053;
1339pub const MASK_FSQRT_D: u32 = 0xfff0007f;
1340pub const MATCH_FSQRT_H: u32 = 0x5c000053;
1341pub const MASK_FSQRT_H: u32 = 0xfff0007f;
1342pub const MATCH_FSQRT_Q: u32 = 0x5e000053;
1343pub const MASK_FSQRT_Q: u32 = 0xfff0007f;
1344pub const MATCH_FSQRT_S: u32 = 0x58000053;
1345pub const MASK_FSQRT_S: u32 = 0xfff0007f;
1346pub const MATCH_FSRM: u32 = 0x201073;
1347pub const MASK_FSRM: u32 = 0xfff0707f;
1348pub const MATCH_FSRMI: u32 = 0x205073;
1349pub const MASK_FSRMI: u32 = 0xfff0707f;
1350pub const MATCH_FSUB_D: u32 = 0xa000053;
1351pub const MASK_FSUB_D: u32 = 0xfe00007f;
1352pub const MATCH_FSUB_H: u32 = 0xc000053;
1353pub const MASK_FSUB_H: u32 = 0xfe00007f;
1354pub const MATCH_FSUB_Q: u32 = 0xe000053;
1355pub const MASK_FSUB_Q: u32 = 0xfe00007f;
1356pub const MATCH_FSUB_S: u32 = 0x8000053;
1357pub const MASK_FSUB_S: u32 = 0xfe00007f;
1358pub const MATCH_FSW: u32 = 0x2027;
1359pub const MASK_FSW: u32 = 0x707f;
1360pub const MATCH_HFENCE_GVMA: u32 = 0x62000073;
1361pub const MASK_HFENCE_GVMA: u32 = 0xfe007fff;
1362pub const MATCH_HFENCE_VVMA: u32 = 0x22000073;
1363pub const MASK_HFENCE_VVMA: u32 = 0xfe007fff;
1364pub const MATCH_HINVAL_GVMA: u32 = 0x66000073;
1365pub const MASK_HINVAL_GVMA: u32 = 0xfe007fff;
1366pub const MATCH_HINVAL_VVMA: u32 = 0x26000073;
1367pub const MASK_HINVAL_VVMA: u32 = 0xfe007fff;
1368pub const MATCH_HLV_B: u32 = 0x60004073;
1369pub const MASK_HLV_B: u32 = 0xfff0707f;
1370pub const MATCH_HLV_BU: u32 = 0x60104073;
1371pub const MASK_HLV_BU: u32 = 0xfff0707f;
1372pub const MATCH_HLV_D: u32 = 0x6c004073;
1373pub const MASK_HLV_D: u32 = 0xfff0707f;
1374pub const MATCH_HLV_H: u32 = 0x64004073;
1375pub const MASK_HLV_H: u32 = 0xfff0707f;
1376pub const MATCH_HLV_HU: u32 = 0x64104073;
1377pub const MASK_HLV_HU: u32 = 0xfff0707f;
1378pub const MATCH_HLV_W: u32 = 0x68004073;
1379pub const MASK_HLV_W: u32 = 0xfff0707f;
1380pub const MATCH_HLV_WU: u32 = 0x68104073;
1381pub const MASK_HLV_WU: u32 = 0xfff0707f;
1382pub const MATCH_HLVX_HU: u32 = 0x64304073;
1383pub const MASK_HLVX_HU: u32 = 0xfff0707f;
1384pub const MATCH_HLVX_WU: u32 = 0x68304073;
1385pub const MASK_HLVX_WU: u32 = 0xfff0707f;
1386pub const MATCH_HSV_B: u32 = 0x62004073;
1387pub const MASK_HSV_B: u32 = 0xfe007fff;
1388pub const MATCH_HSV_D: u32 = 0x6e004073;
1389pub const MASK_HSV_D: u32 = 0xfe007fff;
1390pub const MATCH_HSV_H: u32 = 0x66004073;
1391pub const MASK_HSV_H: u32 = 0xfe007fff;
1392pub const MATCH_HSV_W: u32 = 0x6a004073;
1393pub const MASK_HSV_W: u32 = 0xfe007fff;
1394pub const MATCH_J: u32 = 0x6f;
1395pub const MASK_J: u32 = 0xfff;
1396pub const MATCH_JAL: u32 = 0x6f;
1397pub const MASK_JAL: u32 = 0x7f;
1398pub const MATCH_JAL_PSEUDO: u32 = 0xef;
1399pub const MASK_JAL_PSEUDO: u32 = 0xfff;
1400pub const MATCH_JALR: u32 = 0x67;
1401pub const MASK_JALR: u32 = 0x707f;
1402pub const MATCH_JALR_PSEUDO: u32 = 0xe7;
1403pub const MASK_JALR_PSEUDO: u32 = 0xfff07fff;
1404pub const MATCH_JR: u32 = 0x67;
1405pub const MASK_JR: u32 = 0xfff07fff;
1406pub const MATCH_LB: u32 = 0x3;
1407pub const MASK_LB: u32 = 0x707f;
1408pub const MATCH_LBU: u32 = 0x4003;
1409pub const MASK_LBU: u32 = 0x707f;
1410pub const MATCH_LD: u32 = 0x3003;
1411pub const MASK_LD: u32 = 0x707f;
1412pub const MATCH_LH: u32 = 0x1003;
1413pub const MASK_LH: u32 = 0x707f;
1414pub const MATCH_LHU: u32 = 0x5003;
1415pub const MASK_LHU: u32 = 0x707f;
1416pub const MATCH_LPAD: u32 = 0x17;
1417pub const MASK_LPAD: u32 = 0xfff;
1418pub const MATCH_LR_D: u32 = 0x1000302f;
1419pub const MASK_LR_D: u32 = 0xf9f0707f;
1420pub const MATCH_LR_W: u32 = 0x1000202f;
1421pub const MASK_LR_W: u32 = 0xf9f0707f;
1422pub const MATCH_LUI: u32 = 0x37;
1423pub const MASK_LUI: u32 = 0x7f;
1424pub const MATCH_LW: u32 = 0x2003;
1425pub const MASK_LW: u32 = 0x707f;
1426pub const MATCH_LWU: u32 = 0x6003;
1427pub const MASK_LWU: u32 = 0x707f;
1428pub const MATCH_MAX: u32 = 0xa006033;
1429pub const MASK_MAX: u32 = 0xfe00707f;
1430pub const MATCH_MAXU: u32 = 0xa007033;
1431pub const MASK_MAXU: u32 = 0xfe00707f;
1432pub const MATCH_MIN: u32 = 0xa004033;
1433pub const MASK_MIN: u32 = 0xfe00707f;
1434pub const MATCH_MINU: u32 = 0xa005033;
1435pub const MASK_MINU: u32 = 0xfe00707f;
1436pub const MATCH_MNRET: u32 = 0x70200073;
1437pub const MASK_MNRET: u32 = 0xffffffff;
1438pub const MATCH_MOP_R_0: u32 = 0x81c04073;
1439pub const MASK_MOP_R_0: u32 = 0xfff0707f;
1440pub const MATCH_MOP_R_1: u32 = 0x81d04073;
1441pub const MASK_MOP_R_1: u32 = 0xfff0707f;
1442pub const MATCH_MOP_R_10: u32 = 0x89e04073;
1443pub const MASK_MOP_R_10: u32 = 0xfff0707f;
1444pub const MATCH_MOP_R_11: u32 = 0x89f04073;
1445pub const MASK_MOP_R_11: u32 = 0xfff0707f;
1446pub const MATCH_MOP_R_12: u32 = 0x8dc04073;
1447pub const MASK_MOP_R_12: u32 = 0xfff0707f;
1448pub const MATCH_MOP_R_13: u32 = 0x8dd04073;
1449pub const MASK_MOP_R_13: u32 = 0xfff0707f;
1450pub const MATCH_MOP_R_14: u32 = 0x8de04073;
1451pub const MASK_MOP_R_14: u32 = 0xfff0707f;
1452pub const MATCH_MOP_R_15: u32 = 0x8df04073;
1453pub const MASK_MOP_R_15: u32 = 0xfff0707f;
1454pub const MATCH_MOP_R_16: u32 = 0xc1c04073;
1455pub const MASK_MOP_R_16: u32 = 0xfff0707f;
1456pub const MATCH_MOP_R_17: u32 = 0xc1d04073;
1457pub const MASK_MOP_R_17: u32 = 0xfff0707f;
1458pub const MATCH_MOP_R_18: u32 = 0xc1e04073;
1459pub const MASK_MOP_R_18: u32 = 0xfff0707f;
1460pub const MATCH_MOP_R_19: u32 = 0xc1f04073;
1461pub const MASK_MOP_R_19: u32 = 0xfff0707f;
1462pub const MATCH_MOP_R_2: u32 = 0x81e04073;
1463pub const MASK_MOP_R_2: u32 = 0xfff0707f;
1464pub const MATCH_MOP_R_20: u32 = 0xc5c04073;
1465pub const MASK_MOP_R_20: u32 = 0xfff0707f;
1466pub const MATCH_MOP_R_21: u32 = 0xc5d04073;
1467pub const MASK_MOP_R_21: u32 = 0xfff0707f;
1468pub const MATCH_MOP_R_22: u32 = 0xc5e04073;
1469pub const MASK_MOP_R_22: u32 = 0xfff0707f;
1470pub const MATCH_MOP_R_23: u32 = 0xc5f04073;
1471pub const MASK_MOP_R_23: u32 = 0xfff0707f;
1472pub const MATCH_MOP_R_24: u32 = 0xc9c04073;
1473pub const MASK_MOP_R_24: u32 = 0xfff0707f;
1474pub const MATCH_MOP_R_25: u32 = 0xc9d04073;
1475pub const MASK_MOP_R_25: u32 = 0xfff0707f;
1476pub const MATCH_MOP_R_26: u32 = 0xc9e04073;
1477pub const MASK_MOP_R_26: u32 = 0xfff0707f;
1478pub const MATCH_MOP_R_27: u32 = 0xc9f04073;
1479pub const MASK_MOP_R_27: u32 = 0xfff0707f;
1480pub const MATCH_MOP_R_28: u32 = 0xcdc04073;
1481pub const MASK_MOP_R_28: u32 = 0xfff0707f;
1482pub const MATCH_MOP_R_29: u32 = 0xcdd04073;
1483pub const MASK_MOP_R_29: u32 = 0xfff0707f;
1484pub const MATCH_MOP_R_3: u32 = 0x81f04073;
1485pub const MASK_MOP_R_3: u32 = 0xfff0707f;
1486pub const MATCH_MOP_R_30: u32 = 0xcde04073;
1487pub const MASK_MOP_R_30: u32 = 0xfff0707f;
1488pub const MATCH_MOP_R_31: u32 = 0xcdf04073;
1489pub const MASK_MOP_R_31: u32 = 0xfff0707f;
1490pub const MATCH_MOP_R_4: u32 = 0x85c04073;
1491pub const MASK_MOP_R_4: u32 = 0xfff0707f;
1492pub const MATCH_MOP_R_5: u32 = 0x85d04073;
1493pub const MASK_MOP_R_5: u32 = 0xfff0707f;
1494pub const MATCH_MOP_R_6: u32 = 0x85e04073;
1495pub const MASK_MOP_R_6: u32 = 0xfff0707f;
1496pub const MATCH_MOP_R_7: u32 = 0x85f04073;
1497pub const MASK_MOP_R_7: u32 = 0xfff0707f;
1498pub const MATCH_MOP_R_8: u32 = 0x89c04073;
1499pub const MASK_MOP_R_8: u32 = 0xfff0707f;
1500pub const MATCH_MOP_R_9: u32 = 0x89d04073;
1501pub const MASK_MOP_R_9: u32 = 0xfff0707f;
1502pub const MATCH_MOP_R_N: u32 = 0x81c04073;
1503pub const MASK_MOP_R_N: u32 = 0xb3c0707f;
1504pub const MATCH_MOP_RR_0: u32 = 0x82004073;
1505pub const MASK_MOP_RR_0: u32 = 0xfe00707f;
1506pub const MATCH_MOP_RR_1: u32 = 0x86004073;
1507pub const MASK_MOP_RR_1: u32 = 0xfe00707f;
1508pub const MATCH_MOP_RR_2: u32 = 0x8a004073;
1509pub const MASK_MOP_RR_2: u32 = 0xfe00707f;
1510pub const MATCH_MOP_RR_3: u32 = 0x8e004073;
1511pub const MASK_MOP_RR_3: u32 = 0xfe00707f;
1512pub const MATCH_MOP_RR_4: u32 = 0xc2004073;
1513pub const MASK_MOP_RR_4: u32 = 0xfe00707f;
1514pub const MATCH_MOP_RR_5: u32 = 0xc6004073;
1515pub const MASK_MOP_RR_5: u32 = 0xfe00707f;
1516pub const MATCH_MOP_RR_6: u32 = 0xca004073;
1517pub const MASK_MOP_RR_6: u32 = 0xfe00707f;
1518pub const MATCH_MOP_RR_7: u32 = 0xce004073;
1519pub const MASK_MOP_RR_7: u32 = 0xfe00707f;
1520pub const MATCH_MOP_RR_N: u32 = 0x82004073;
1521pub const MASK_MOP_RR_N: u32 = 0xb200707f;
1522pub const MATCH_MRET: u32 = 0x30200073;
1523pub const MASK_MRET: u32 = 0xffffffff;
1524pub const MATCH_MUL: u32 = 0x2000033;
1525pub const MASK_MUL: u32 = 0xfe00707f;
1526pub const MATCH_MULH: u32 = 0x2001033;
1527pub const MASK_MULH: u32 = 0xfe00707f;
1528pub const MATCH_MULHSU: u32 = 0x2002033;
1529pub const MASK_MULHSU: u32 = 0xfe00707f;
1530pub const MATCH_MULHU: u32 = 0x2003033;
1531pub const MASK_MULHU: u32 = 0xfe00707f;
1532pub const MATCH_MULW: u32 = 0x200003b;
1533pub const MASK_MULW: u32 = 0xfe00707f;
1534pub const MATCH_MV: u32 = 0x13;
1535pub const MASK_MV: u32 = 0xfff0707f;
1536pub const MATCH_NEG: u32 = 0x40000033;
1537pub const MASK_NEG: u32 = 0xfff0707f;
1538pub const MATCH_NOP: u32 = 0x13;
1539pub const MASK_NOP: u32 = 0xffffffff;
1540pub const MATCH_NTL_ALL: u32 = 0x500033;
1541pub const MASK_NTL_ALL: u32 = 0xffffffff;
1542pub const MATCH_NTL_P1: u32 = 0x200033;
1543pub const MASK_NTL_P1: u32 = 0xffffffff;
1544pub const MATCH_NTL_PALL: u32 = 0x300033;
1545pub const MASK_NTL_PALL: u32 = 0xffffffff;
1546pub const MATCH_NTL_S1: u32 = 0x400033;
1547pub const MASK_NTL_S1: u32 = 0xffffffff;
1548pub const MATCH_OR: u32 = 0x6033;
1549pub const MASK_OR: u32 = 0xfe00707f;
1550pub const MATCH_ORC_B: u32 = 0x28705013;
1551pub const MASK_ORC_B: u32 = 0xfff0707f;
1552pub const MATCH_ORI: u32 = 0x6013;
1553pub const MASK_ORI: u32 = 0x707f;
1554pub const MATCH_ORN: u32 = 0x40006033;
1555pub const MASK_ORN: u32 = 0xfe00707f;
1556pub const MATCH_PACK: u32 = 0x8004033;
1557pub const MASK_PACK: u32 = 0xfe00707f;
1558pub const MATCH_PACKH: u32 = 0x8007033;
1559pub const MASK_PACKH: u32 = 0xfe00707f;
1560pub const MATCH_PACKW: u32 = 0x800403b;
1561pub const MASK_PACKW: u32 = 0xfe00707f;
1562pub const MATCH_PAUSE: u32 = 0x100000f;
1563pub const MASK_PAUSE: u32 = 0xffffffff;
1564pub const MATCH_PREFETCH_I: u32 = 0x6013;
1565pub const MASK_PREFETCH_I: u32 = 0x1f07fff;
1566pub const MATCH_PREFETCH_R: u32 = 0x106013;
1567pub const MASK_PREFETCH_R: u32 = 0x1f07fff;
1568pub const MATCH_PREFETCH_W: u32 = 0x306013;
1569pub const MASK_PREFETCH_W: u32 = 0x1f07fff;
1570pub const MATCH_RDCYCLE: u32 = 0xc0002073;
1571pub const MASK_RDCYCLE: u32 = 0xfffff07f;
1572pub const MATCH_RDCYCLEH: u32 = 0xc8002073;
1573pub const MASK_RDCYCLEH: u32 = 0xfffff07f;
1574pub const MATCH_RDINSTRET: u32 = 0xc0202073;
1575pub const MASK_RDINSTRET: u32 = 0xfffff07f;
1576pub const MATCH_RDINSTRETH: u32 = 0xc8202073;
1577pub const MASK_RDINSTRETH: u32 = 0xfffff07f;
1578pub const MATCH_RDTIME: u32 = 0xc0102073;
1579pub const MASK_RDTIME: u32 = 0xfffff07f;
1580pub const MATCH_RDTIMEH: u32 = 0xc8102073;
1581pub const MASK_RDTIMEH: u32 = 0xfffff07f;
1582pub const MATCH_REM: u32 = 0x2006033;
1583pub const MASK_REM: u32 = 0xfe00707f;
1584pub const MATCH_REMU: u32 = 0x2007033;
1585pub const MASK_REMU: u32 = 0xfe00707f;
1586pub const MATCH_REMUW: u32 = 0x200703b;
1587pub const MASK_REMUW: u32 = 0xfe00707f;
1588pub const MATCH_REMW: u32 = 0x200603b;
1589pub const MASK_REMW: u32 = 0xfe00707f;
1590pub const MATCH_RET: u32 = 0x8067;
1591pub const MASK_RET: u32 = 0xffffffff;
1592pub const MATCH_REV8: u32 = 0x6b805013;
1593pub const MASK_REV8: u32 = 0xfff0707f;
1594pub const MATCH_REV8_RV32: u32 = 0x69805013;
1595pub const MASK_REV8_RV32: u32 = 0xfff0707f;
1596pub const MATCH_ROL: u32 = 0x60001033;
1597pub const MASK_ROL: u32 = 0xfe00707f;
1598pub const MATCH_ROLW: u32 = 0x6000103b;
1599pub const MASK_ROLW: u32 = 0xfe00707f;
1600pub const MATCH_ROR: u32 = 0x60005033;
1601pub const MASK_ROR: u32 = 0xfe00707f;
1602pub const MATCH_RORI: u32 = 0x60005013;
1603pub const MASK_RORI: u32 = 0xfc00707f;
1604pub const MATCH_RORI_RV32: u32 = 0x60005013;
1605pub const MASK_RORI_RV32: u32 = 0xfe00707f;
1606pub const MATCH_RORIW: u32 = 0x6000501b;
1607pub const MASK_RORIW: u32 = 0xfe00707f;
1608pub const MATCH_RORW: u32 = 0x6000503b;
1609pub const MASK_RORW: u32 = 0xfe00707f;
1610pub const MATCH_SB: u32 = 0x23;
1611pub const MASK_SB: u32 = 0x707f;
1612pub const MATCH_SBREAK: u32 = 0x100073;
1613pub const MASK_SBREAK: u32 = 0xffffffff;
1614pub const MATCH_SC_D: u32 = 0x1800302f;
1615pub const MASK_SC_D: u32 = 0xf800707f;
1616pub const MATCH_SC_W: u32 = 0x1800202f;
1617pub const MASK_SC_W: u32 = 0xf800707f;
1618pub const MATCH_SCALL: u32 = 0x73;
1619pub const MASK_SCALL: u32 = 0xffffffff;
1620pub const MATCH_SCTRCLR: u32 = 0x10400073;
1621pub const MASK_SCTRCLR: u32 = 0xffffffff;
1622pub const MATCH_SD: u32 = 0x3023;
1623pub const MASK_SD: u32 = 0x707f;
1624pub const MATCH_SEQZ: u32 = 0x103013;
1625pub const MASK_SEQZ: u32 = 0xfff0707f;
1626pub const MATCH_SEXT_B: u32 = 0x60401013;
1627pub const MASK_SEXT_B: u32 = 0xfff0707f;
1628pub const MATCH_SEXT_H: u32 = 0x60501013;
1629pub const MASK_SEXT_H: u32 = 0xfff0707f;
1630pub const MATCH_SEXT_W: u32 = 0x1b;
1631pub const MASK_SEXT_W: u32 = 0xfff0707f;
1632pub const MATCH_SFENCE_INVAL_IR: u32 = 0x18100073;
1633pub const MASK_SFENCE_INVAL_IR: u32 = 0xffffffff;
1634pub const MATCH_SFENCE_VMA: u32 = 0x12000073;
1635pub const MASK_SFENCE_VMA: u32 = 0xfe007fff;
1636pub const MATCH_SFENCE_W_INVAL: u32 = 0x18000073;
1637pub const MASK_SFENCE_W_INVAL: u32 = 0xffffffff;
1638pub const MATCH_SGTZ: u32 = 0x2033;
1639pub const MASK_SGTZ: u32 = 0xfe0ff07f;
1640pub const MATCH_SH: u32 = 0x1023;
1641pub const MASK_SH: u32 = 0x707f;
1642pub const MATCH_SH1ADD: u32 = 0x20002033;
1643pub const MASK_SH1ADD: u32 = 0xfe00707f;
1644pub const MATCH_SH1ADD_UW: u32 = 0x2000203b;
1645pub const MASK_SH1ADD_UW: u32 = 0xfe00707f;
1646pub const MATCH_SH2ADD: u32 = 0x20004033;
1647pub const MASK_SH2ADD: u32 = 0xfe00707f;
1648pub const MATCH_SH2ADD_UW: u32 = 0x2000403b;
1649pub const MASK_SH2ADD_UW: u32 = 0xfe00707f;
1650pub const MATCH_SH3ADD: u32 = 0x20006033;
1651pub const MASK_SH3ADD: u32 = 0xfe00707f;
1652pub const MATCH_SH3ADD_UW: u32 = 0x2000603b;
1653pub const MASK_SH3ADD_UW: u32 = 0xfe00707f;
1654pub const MATCH_SHA256SIG0: u32 = 0x10201013;
1655pub const MASK_SHA256SIG0: u32 = 0xfff0707f;
1656pub const MATCH_SHA256SIG1: u32 = 0x10301013;
1657pub const MASK_SHA256SIG1: u32 = 0xfff0707f;
1658pub const MATCH_SHA256SUM0: u32 = 0x10001013;
1659pub const MASK_SHA256SUM0: u32 = 0xfff0707f;
1660pub const MATCH_SHA256SUM1: u32 = 0x10101013;
1661pub const MASK_SHA256SUM1: u32 = 0xfff0707f;
1662pub const MATCH_SHA512SIG0: u32 = 0x10601013;
1663pub const MASK_SHA512SIG0: u32 = 0xfff0707f;
1664pub const MATCH_SHA512SIG0H: u32 = 0x5c000033;
1665pub const MASK_SHA512SIG0H: u32 = 0xfe00707f;
1666pub const MATCH_SHA512SIG0L: u32 = 0x54000033;
1667pub const MASK_SHA512SIG0L: u32 = 0xfe00707f;
1668pub const MATCH_SHA512SIG1: u32 = 0x10701013;
1669pub const MASK_SHA512SIG1: u32 = 0xfff0707f;
1670pub const MATCH_SHA512SIG1H: u32 = 0x5e000033;
1671pub const MASK_SHA512SIG1H: u32 = 0xfe00707f;
1672pub const MATCH_SHA512SIG1L: u32 = 0x56000033;
1673pub const MASK_SHA512SIG1L: u32 = 0xfe00707f;
1674pub const MATCH_SHA512SUM0: u32 = 0x10401013;
1675pub const MASK_SHA512SUM0: u32 = 0xfff0707f;
1676pub const MATCH_SHA512SUM0R: u32 = 0x50000033;
1677pub const MASK_SHA512SUM0R: u32 = 0xfe00707f;
1678pub const MATCH_SHA512SUM1: u32 = 0x10501013;
1679pub const MASK_SHA512SUM1: u32 = 0xfff0707f;
1680pub const MATCH_SHA512SUM1R: u32 = 0x52000033;
1681pub const MASK_SHA512SUM1R: u32 = 0xfe00707f;
1682pub const MATCH_SINVAL_VMA: u32 = 0x16000073;
1683pub const MASK_SINVAL_VMA: u32 = 0xfe007fff;
1684pub const MATCH_SLL: u32 = 0x1033;
1685pub const MASK_SLL: u32 = 0xfe00707f;
1686pub const MATCH_SLLI: u32 = 0x1013;
1687pub const MASK_SLLI: u32 = 0xfc00707f;
1688pub const MATCH_SLLI_RV32: u32 = 0x1013;
1689pub const MASK_SLLI_RV32: u32 = 0xfe00707f;
1690pub const MATCH_SLLI_UW: u32 = 0x800101b;
1691pub const MASK_SLLI_UW: u32 = 0xfc00707f;
1692pub const MATCH_SLLIW: u32 = 0x101b;
1693pub const MASK_SLLIW: u32 = 0xfe00707f;
1694pub const MATCH_SLLW: u32 = 0x103b;
1695pub const MASK_SLLW: u32 = 0xfe00707f;
1696pub const MATCH_SLT: u32 = 0x2033;
1697pub const MASK_SLT: u32 = 0xfe00707f;
1698pub const MATCH_SLTI: u32 = 0x2013;
1699pub const MASK_SLTI: u32 = 0x707f;
1700pub const MATCH_SLTIU: u32 = 0x3013;
1701pub const MASK_SLTIU: u32 = 0x707f;
1702pub const MATCH_SLTU: u32 = 0x3033;
1703pub const MASK_SLTU: u32 = 0xfe00707f;
1704pub const MATCH_SLTZ: u32 = 0x2033;
1705pub const MASK_SLTZ: u32 = 0xfff0707f;
1706pub const MATCH_SM3P0: u32 = 0x10801013;
1707pub const MASK_SM3P0: u32 = 0xfff0707f;
1708pub const MATCH_SM3P1: u32 = 0x10901013;
1709pub const MASK_SM3P1: u32 = 0xfff0707f;
1710pub const MATCH_SM4ED: u32 = 0x30000033;
1711pub const MASK_SM4ED: u32 = 0x3e00707f;
1712pub const MATCH_SM4KS: u32 = 0x34000033;
1713pub const MASK_SM4KS: u32 = 0x3e00707f;
1714pub const MATCH_SNEZ: u32 = 0x3033;
1715pub const MASK_SNEZ: u32 = 0xfe0ff07f;
1716pub const MATCH_SRA: u32 = 0x40005033;
1717pub const MASK_SRA: u32 = 0xfe00707f;
1718pub const MATCH_SRAI: u32 = 0x40005013;
1719pub const MASK_SRAI: u32 = 0xfc00707f;
1720pub const MATCH_SRAI_RV32: u32 = 0x40005013;
1721pub const MASK_SRAI_RV32: u32 = 0xfe00707f;
1722pub const MATCH_SRAIW: u32 = 0x4000501b;
1723pub const MASK_SRAIW: u32 = 0xfe00707f;
1724pub const MATCH_SRAW: u32 = 0x4000503b;
1725pub const MASK_SRAW: u32 = 0xfe00707f;
1726pub const MATCH_SRET: u32 = 0x10200073;
1727pub const MASK_SRET: u32 = 0xffffffff;
1728pub const MATCH_SRL: u32 = 0x5033;
1729pub const MASK_SRL: u32 = 0xfe00707f;
1730pub const MATCH_SRLI: u32 = 0x5013;
1731pub const MASK_SRLI: u32 = 0xfc00707f;
1732pub const MATCH_SRLI_RV32: u32 = 0x5013;
1733pub const MASK_SRLI_RV32: u32 = 0xfe00707f;
1734pub const MATCH_SRLIW: u32 = 0x501b;
1735pub const MASK_SRLIW: u32 = 0xfe00707f;
1736pub const MATCH_SRLW: u32 = 0x503b;
1737pub const MASK_SRLW: u32 = 0xfe00707f;
1738pub const MATCH_SSAMOSWAP_D: u32 = 0x4800302f;
1739pub const MASK_SSAMOSWAP_D: u32 = 0xf800707f;
1740pub const MATCH_SSAMOSWAP_W: u32 = 0x4800202f;
1741pub const MASK_SSAMOSWAP_W: u32 = 0xf800707f;
1742pub const MATCH_SSPOPCHK_X1: u32 = 0xcdc0c073;
1743pub const MASK_SSPOPCHK_X1: u32 = 0xffffffff;
1744pub const MATCH_SSPOPCHK_X5: u32 = 0xcdc2c073;
1745pub const MASK_SSPOPCHK_X5: u32 = 0xffffffff;
1746pub const MATCH_SSPUSH_X1: u32 = 0xce104073;
1747pub const MASK_SSPUSH_X1: u32 = 0xffffffff;
1748pub const MATCH_SSPUSH_X5: u32 = 0xce504073;
1749pub const MASK_SSPUSH_X5: u32 = 0xffffffff;
1750pub const MATCH_SSRDP: u32 = 0xcdc04073;
1751pub const MASK_SSRDP: u32 = 0xfffff07f;
1752pub const MATCH_SUB: u32 = 0x40000033;
1753pub const MASK_SUB: u32 = 0xfe00707f;
1754pub const MATCH_SUBW: u32 = 0x4000003b;
1755pub const MASK_SUBW: u32 = 0xfe00707f;
1756pub const MATCH_SW: u32 = 0x2023;
1757pub const MASK_SW: u32 = 0x707f;
1758pub const MATCH_UNZIP: u32 = 0x8f05013;
1759pub const MASK_UNZIP: u32 = 0xfff0707f;
1760pub const MATCH_VAADD_VV: u32 = 0x24002057;
1761pub const MASK_VAADD_VV: u32 = 0xfc00707f;
1762pub const MATCH_VAADD_VX: u32 = 0x24006057;
1763pub const MASK_VAADD_VX: u32 = 0xfc00707f;
1764pub const MATCH_VAADDU_VV: u32 = 0x20002057;
1765pub const MASK_VAADDU_VV: u32 = 0xfc00707f;
1766pub const MATCH_VAADDU_VX: u32 = 0x20006057;
1767pub const MASK_VAADDU_VX: u32 = 0xfc00707f;
1768pub const MATCH_VADC_VIM: u32 = 0x40003057;
1769pub const MASK_VADC_VIM: u32 = 0xfe00707f;
1770pub const MATCH_VADC_VVM: u32 = 0x40000057;
1771pub const MASK_VADC_VVM: u32 = 0xfe00707f;
1772pub const MATCH_VADC_VXM: u32 = 0x40004057;
1773pub const MASK_VADC_VXM: u32 = 0xfe00707f;
1774pub const MATCH_VADD_VI: u32 = 0x3057;
1775pub const MASK_VADD_VI: u32 = 0xfc00707f;
1776pub const MATCH_VADD_VV: u32 = 0x57;
1777pub const MASK_VADD_VV: u32 = 0xfc00707f;
1778pub const MATCH_VADD_VX: u32 = 0x4057;
1779pub const MASK_VADD_VX: u32 = 0xfc00707f;
1780pub const MATCH_VAESDF_VS: u32 = 0xa600a077;
1781pub const MASK_VAESDF_VS: u32 = 0xfe0ff07f;
1782pub const MATCH_VAESDF_VV: u32 = 0xa200a077;
1783pub const MASK_VAESDF_VV: u32 = 0xfe0ff07f;
1784pub const MATCH_VAESDM_VS: u32 = 0xa6002077;
1785pub const MASK_VAESDM_VS: u32 = 0xfe0ff07f;
1786pub const MATCH_VAESDM_VV: u32 = 0xa2002077;
1787pub const MASK_VAESDM_VV: u32 = 0xfe0ff07f;
1788pub const MATCH_VAESEF_VS: u32 = 0xa601a077;
1789pub const MASK_VAESEF_VS: u32 = 0xfe0ff07f;
1790pub const MATCH_VAESEF_VV: u32 = 0xa201a077;
1791pub const MASK_VAESEF_VV: u32 = 0xfe0ff07f;
1792pub const MATCH_VAESEM_VS: u32 = 0xa6012077;
1793pub const MASK_VAESEM_VS: u32 = 0xfe0ff07f;
1794pub const MATCH_VAESEM_VV: u32 = 0xa2012077;
1795pub const MASK_VAESEM_VV: u32 = 0xfe0ff07f;
1796pub const MATCH_VAESKF1_VI: u32 = 0x8a002077;
1797pub const MASK_VAESKF1_VI: u32 = 0xfe00707f;
1798pub const MATCH_VAESKF2_VI: u32 = 0xaa002077;
1799pub const MASK_VAESKF2_VI: u32 = 0xfe00707f;
1800pub const MATCH_VAESZ_VS: u32 = 0xa603a077;
1801pub const MASK_VAESZ_VS: u32 = 0xfe0ff07f;
1802pub const MATCH_VAND_VI: u32 = 0x24003057;
1803pub const MASK_VAND_VI: u32 = 0xfc00707f;
1804pub const MATCH_VAND_VV: u32 = 0x24000057;
1805pub const MASK_VAND_VV: u32 = 0xfc00707f;
1806pub const MATCH_VAND_VX: u32 = 0x24004057;
1807pub const MASK_VAND_VX: u32 = 0xfc00707f;
1808pub const MATCH_VANDN_VV: u32 = 0x4000057;
1809pub const MASK_VANDN_VV: u32 = 0xfc00707f;
1810pub const MATCH_VANDN_VX: u32 = 0x4004057;
1811pub const MASK_VANDN_VX: u32 = 0xfc00707f;
1812pub const MATCH_VASUB_VV: u32 = 0x2c002057;
1813pub const MASK_VASUB_VV: u32 = 0xfc00707f;
1814pub const MATCH_VASUB_VX: u32 = 0x2c006057;
1815pub const MASK_VASUB_VX: u32 = 0xfc00707f;
1816pub const MATCH_VASUBU_VV: u32 = 0x28002057;
1817pub const MASK_VASUBU_VV: u32 = 0xfc00707f;
1818pub const MATCH_VASUBU_VX: u32 = 0x28006057;
1819pub const MASK_VASUBU_VX: u32 = 0xfc00707f;
1820pub const MATCH_VBREV8_V: u32 = 0x48042057;
1821pub const MASK_VBREV8_V: u32 = 0xfc0ff07f;
1822pub const MATCH_VBREV_V: u32 = 0x48052057;
1823pub const MASK_VBREV_V: u32 = 0xfc0ff07f;
1824pub const MATCH_VCLMUL_VV: u32 = 0x30002057;
1825pub const MASK_VCLMUL_VV: u32 = 0xfc00707f;
1826pub const MATCH_VCLMUL_VX: u32 = 0x30006057;
1827pub const MASK_VCLMUL_VX: u32 = 0xfc00707f;
1828pub const MATCH_VCLMULH_VV: u32 = 0x34002057;
1829pub const MASK_VCLMULH_VV: u32 = 0xfc00707f;
1830pub const MATCH_VCLMULH_VX: u32 = 0x34006057;
1831pub const MASK_VCLMULH_VX: u32 = 0xfc00707f;
1832pub const MATCH_VCLZ_V: u32 = 0x48062057;
1833pub const MASK_VCLZ_V: u32 = 0xfc0ff07f;
1834pub const MATCH_VCOMPRESS_VM: u32 = 0x5e002057;
1835pub const MASK_VCOMPRESS_VM: u32 = 0xfe00707f;
1836pub const MATCH_VCPOP_M: u32 = 0x40082057;
1837pub const MASK_VCPOP_M: u32 = 0xfc0ff07f;
1838pub const MATCH_VCPOP_V: u32 = 0x48072057;
1839pub const MASK_VCPOP_V: u32 = 0xfc0ff07f;
1840pub const MATCH_VCTZ_V: u32 = 0x4806a057;
1841pub const MASK_VCTZ_V: u32 = 0xfc0ff07f;
1842pub const MATCH_VDIV_VV: u32 = 0x84002057;
1843pub const MASK_VDIV_VV: u32 = 0xfc00707f;
1844pub const MATCH_VDIV_VX: u32 = 0x84006057;
1845pub const MASK_VDIV_VX: u32 = 0xfc00707f;
1846pub const MATCH_VDIVU_VV: u32 = 0x80002057;
1847pub const MASK_VDIVU_VV: u32 = 0xfc00707f;
1848pub const MATCH_VDIVU_VX: u32 = 0x80006057;
1849pub const MASK_VDIVU_VX: u32 = 0xfc00707f;
1850pub const MATCH_VFADD_VF: u32 = 0x5057;
1851pub const MASK_VFADD_VF: u32 = 0xfc00707f;
1852pub const MATCH_VFADD_VV: u32 = 0x1057;
1853pub const MASK_VFADD_VV: u32 = 0xfc00707f;
1854pub const MATCH_VFCLASS_V: u32 = 0x4c081057;
1855pub const MASK_VFCLASS_V: u32 = 0xfc0ff07f;
1856pub const MATCH_VFCVT_F_X_V: u32 = 0x48019057;
1857pub const MASK_VFCVT_F_X_V: u32 = 0xfc0ff07f;
1858pub const MATCH_VFCVT_F_XU_V: u32 = 0x48011057;
1859pub const MASK_VFCVT_F_XU_V: u32 = 0xfc0ff07f;
1860pub const MATCH_VFCVT_RTZ_X_F_V: u32 = 0x48039057;
1861pub const MASK_VFCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1862pub const MATCH_VFCVT_RTZ_XU_F_V: u32 = 0x48031057;
1863pub const MASK_VFCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1864pub const MATCH_VFCVT_X_F_V: u32 = 0x48009057;
1865pub const MASK_VFCVT_X_F_V: u32 = 0xfc0ff07f;
1866pub const MATCH_VFCVT_XU_F_V: u32 = 0x48001057;
1867pub const MASK_VFCVT_XU_F_V: u32 = 0xfc0ff07f;
1868pub const MATCH_VFDIV_VF: u32 = 0x80005057;
1869pub const MASK_VFDIV_VF: u32 = 0xfc00707f;
1870pub const MATCH_VFDIV_VV: u32 = 0x80001057;
1871pub const MASK_VFDIV_VV: u32 = 0xfc00707f;
1872pub const MATCH_VFIRST_M: u32 = 0x4008a057;
1873pub const MASK_VFIRST_M: u32 = 0xfc0ff07f;
1874pub const MATCH_VFMACC_VF: u32 = 0xb0005057;
1875pub const MASK_VFMACC_VF: u32 = 0xfc00707f;
1876pub const MATCH_VFMACC_VV: u32 = 0xb0001057;
1877pub const MASK_VFMACC_VV: u32 = 0xfc00707f;
1878pub const MATCH_VFMADD_VF: u32 = 0xa0005057;
1879pub const MASK_VFMADD_VF: u32 = 0xfc00707f;
1880pub const MATCH_VFMADD_VV: u32 = 0xa0001057;
1881pub const MASK_VFMADD_VV: u32 = 0xfc00707f;
1882pub const MATCH_VFMAX_VF: u32 = 0x18005057;
1883pub const MASK_VFMAX_VF: u32 = 0xfc00707f;
1884pub const MATCH_VFMAX_VV: u32 = 0x18001057;
1885pub const MASK_VFMAX_VV: u32 = 0xfc00707f;
1886pub const MATCH_VFMERGE_VFM: u32 = 0x5c005057;
1887pub const MASK_VFMERGE_VFM: u32 = 0xfe00707f;
1888pub const MATCH_VFMIN_VF: u32 = 0x10005057;
1889pub const MASK_VFMIN_VF: u32 = 0xfc00707f;
1890pub const MATCH_VFMIN_VV: u32 = 0x10001057;
1891pub const MASK_VFMIN_VV: u32 = 0xfc00707f;
1892pub const MATCH_VFMSAC_VF: u32 = 0xb8005057;
1893pub const MASK_VFMSAC_VF: u32 = 0xfc00707f;
1894pub const MATCH_VFMSAC_VV: u32 = 0xb8001057;
1895pub const MASK_VFMSAC_VV: u32 = 0xfc00707f;
1896pub const MATCH_VFMSUB_VF: u32 = 0xa8005057;
1897pub const MASK_VFMSUB_VF: u32 = 0xfc00707f;
1898pub const MATCH_VFMSUB_VV: u32 = 0xa8001057;
1899pub const MASK_VFMSUB_VV: u32 = 0xfc00707f;
1900pub const MATCH_VFMUL_VF: u32 = 0x90005057;
1901pub const MASK_VFMUL_VF: u32 = 0xfc00707f;
1902pub const MATCH_VFMUL_VV: u32 = 0x90001057;
1903pub const MASK_VFMUL_VV: u32 = 0xfc00707f;
1904pub const MATCH_VFMV_F_S: u32 = 0x42001057;
1905pub const MASK_VFMV_F_S: u32 = 0xfe0ff07f;
1906pub const MATCH_VFMV_S_F: u32 = 0x42005057;
1907pub const MASK_VFMV_S_F: u32 = 0xfff0707f;
1908pub const MATCH_VFMV_V_F: u32 = 0x5e005057;
1909pub const MASK_VFMV_V_F: u32 = 0xfff0707f;
1910pub const MATCH_VFNCVT_F_F_W: u32 = 0x480a1057;
1911pub const MASK_VFNCVT_F_F_W: u32 = 0xfc0ff07f;
1912pub const MATCH_VFNCVT_F_X_W: u32 = 0x48099057;
1913pub const MASK_VFNCVT_F_X_W: u32 = 0xfc0ff07f;
1914pub const MATCH_VFNCVT_F_XU_W: u32 = 0x48091057;
1915pub const MASK_VFNCVT_F_XU_W: u32 = 0xfc0ff07f;
1916pub const MATCH_VFNCVT_ROD_F_F_W: u32 = 0x480a9057;
1917pub const MASK_VFNCVT_ROD_F_F_W: u32 = 0xfc0ff07f;
1918pub const MATCH_VFNCVT_RTZ_X_F_W: u32 = 0x480b9057;
1919pub const MASK_VFNCVT_RTZ_X_F_W: u32 = 0xfc0ff07f;
1920pub const MATCH_VFNCVT_RTZ_XU_F_W: u32 = 0x480b1057;
1921pub const MASK_VFNCVT_RTZ_XU_F_W: u32 = 0xfc0ff07f;
1922pub const MATCH_VFNCVT_X_F_W: u32 = 0x48089057;
1923pub const MASK_VFNCVT_X_F_W: u32 = 0xfc0ff07f;
1924pub const MATCH_VFNCVT_XU_F_W: u32 = 0x48081057;
1925pub const MASK_VFNCVT_XU_F_W: u32 = 0xfc0ff07f;
1926pub const MATCH_VFNCVTBF16_F_F_W: u32 = 0x480e9057;
1927pub const MASK_VFNCVTBF16_F_F_W: u32 = 0xfc0ff07f;
1928pub const MATCH_VFNMACC_VF: u32 = 0xb4005057;
1929pub const MASK_VFNMACC_VF: u32 = 0xfc00707f;
1930pub const MATCH_VFNMACC_VV: u32 = 0xb4001057;
1931pub const MASK_VFNMACC_VV: u32 = 0xfc00707f;
1932pub const MATCH_VFNMADD_VF: u32 = 0xa4005057;
1933pub const MASK_VFNMADD_VF: u32 = 0xfc00707f;
1934pub const MATCH_VFNMADD_VV: u32 = 0xa4001057;
1935pub const MASK_VFNMADD_VV: u32 = 0xfc00707f;
1936pub const MATCH_VFNMSAC_VF: u32 = 0xbc005057;
1937pub const MASK_VFNMSAC_VF: u32 = 0xfc00707f;
1938pub const MATCH_VFNMSAC_VV: u32 = 0xbc001057;
1939pub const MASK_VFNMSAC_VV: u32 = 0xfc00707f;
1940pub const MATCH_VFNMSUB_VF: u32 = 0xac005057;
1941pub const MASK_VFNMSUB_VF: u32 = 0xfc00707f;
1942pub const MATCH_VFNMSUB_VV: u32 = 0xac001057;
1943pub const MASK_VFNMSUB_VV: u32 = 0xfc00707f;
1944pub const MATCH_VFRDIV_VF: u32 = 0x84005057;
1945pub const MASK_VFRDIV_VF: u32 = 0xfc00707f;
1946pub const MATCH_VFREC7_V: u32 = 0x4c029057;
1947pub const MASK_VFREC7_V: u32 = 0xfc0ff07f;
1948pub const MATCH_VFREDMAX_VS: u32 = 0x1c001057;
1949pub const MASK_VFREDMAX_VS: u32 = 0xfc00707f;
1950pub const MATCH_VFREDMIN_VS: u32 = 0x14001057;
1951pub const MASK_VFREDMIN_VS: u32 = 0xfc00707f;
1952pub const MATCH_VFREDOSUM_VS: u32 = 0xc001057;
1953pub const MASK_VFREDOSUM_VS: u32 = 0xfc00707f;
1954pub const MATCH_VFREDSUM_VS: u32 = 0x4001057;
1955pub const MASK_VFREDSUM_VS: u32 = 0xfc00707f;
1956pub const MATCH_VFREDUSUM_VS: u32 = 0x4001057;
1957pub const MASK_VFREDUSUM_VS: u32 = 0xfc00707f;
1958pub const MATCH_VFRSQRT7_V: u32 = 0x4c021057;
1959pub const MASK_VFRSQRT7_V: u32 = 0xfc0ff07f;
1960pub const MATCH_VFRSUB_VF: u32 = 0x9c005057;
1961pub const MASK_VFRSUB_VF: u32 = 0xfc00707f;
1962pub const MATCH_VFSGNJ_VF: u32 = 0x20005057;
1963pub const MASK_VFSGNJ_VF: u32 = 0xfc00707f;
1964pub const MATCH_VFSGNJ_VV: u32 = 0x20001057;
1965pub const MASK_VFSGNJ_VV: u32 = 0xfc00707f;
1966pub const MATCH_VFSGNJN_VF: u32 = 0x24005057;
1967pub const MASK_VFSGNJN_VF: u32 = 0xfc00707f;
1968pub const MATCH_VFSGNJN_VV: u32 = 0x24001057;
1969pub const MASK_VFSGNJN_VV: u32 = 0xfc00707f;
1970pub const MATCH_VFSGNJX_VF: u32 = 0x28005057;
1971pub const MASK_VFSGNJX_VF: u32 = 0xfc00707f;
1972pub const MATCH_VFSGNJX_VV: u32 = 0x28001057;
1973pub const MASK_VFSGNJX_VV: u32 = 0xfc00707f;
1974pub const MATCH_VFSLIDE1DOWN_VF: u32 = 0x3c005057;
1975pub const MASK_VFSLIDE1DOWN_VF: u32 = 0xfc00707f;
1976pub const MATCH_VFSLIDE1UP_VF: u32 = 0x38005057;
1977pub const MASK_VFSLIDE1UP_VF: u32 = 0xfc00707f;
1978pub const MATCH_VFSQRT_V: u32 = 0x4c001057;
1979pub const MASK_VFSQRT_V: u32 = 0xfc0ff07f;
1980pub const MATCH_VFSUB_VF: u32 = 0x8005057;
1981pub const MASK_VFSUB_VF: u32 = 0xfc00707f;
1982pub const MATCH_VFSUB_VV: u32 = 0x8001057;
1983pub const MASK_VFSUB_VV: u32 = 0xfc00707f;
1984pub const MATCH_VFWADD_VF: u32 = 0xc0005057;
1985pub const MASK_VFWADD_VF: u32 = 0xfc00707f;
1986pub const MATCH_VFWADD_VV: u32 = 0xc0001057;
1987pub const MASK_VFWADD_VV: u32 = 0xfc00707f;
1988pub const MATCH_VFWADD_WF: u32 = 0xd0005057;
1989pub const MASK_VFWADD_WF: u32 = 0xfc00707f;
1990pub const MATCH_VFWADD_WV: u32 = 0xd0001057;
1991pub const MASK_VFWADD_WV: u32 = 0xfc00707f;
1992pub const MATCH_VFWCVT_F_F_V: u32 = 0x48061057;
1993pub const MASK_VFWCVT_F_F_V: u32 = 0xfc0ff07f;
1994pub const MATCH_VFWCVT_F_X_V: u32 = 0x48059057;
1995pub const MASK_VFWCVT_F_X_V: u32 = 0xfc0ff07f;
1996pub const MATCH_VFWCVT_F_XU_V: u32 = 0x48051057;
1997pub const MASK_VFWCVT_F_XU_V: u32 = 0xfc0ff07f;
1998pub const MATCH_VFWCVT_RTZ_X_F_V: u32 = 0x48079057;
1999pub const MASK_VFWCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
2000pub const MATCH_VFWCVT_RTZ_XU_F_V: u32 = 0x48071057;
2001pub const MASK_VFWCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
2002pub const MATCH_VFWCVT_X_F_V: u32 = 0x48049057;
2003pub const MASK_VFWCVT_X_F_V: u32 = 0xfc0ff07f;
2004pub const MATCH_VFWCVT_XU_F_V: u32 = 0x48041057;
2005pub const MASK_VFWCVT_XU_F_V: u32 = 0xfc0ff07f;
2006pub const MATCH_VFWCVTBF16_F_F_V: u32 = 0x48069057;
2007pub const MASK_VFWCVTBF16_F_F_V: u32 = 0xfc0ff07f;
2008pub const MATCH_VFWMACC_VF: u32 = 0xf0005057;
2009pub const MASK_VFWMACC_VF: u32 = 0xfc00707f;
2010pub const MATCH_VFWMACC_VV: u32 = 0xf0001057;
2011pub const MASK_VFWMACC_VV: u32 = 0xfc00707f;
2012pub const MATCH_VFWMACCBF16_VF: u32 = 0xec005057;
2013pub const MASK_VFWMACCBF16_VF: u32 = 0xfc00707f;
2014pub const MATCH_VFWMACCBF16_VV: u32 = 0xec001057;
2015pub const MASK_VFWMACCBF16_VV: u32 = 0xfc00707f;
2016pub const MATCH_VFWMSAC_VF: u32 = 0xf8005057;
2017pub const MASK_VFWMSAC_VF: u32 = 0xfc00707f;
2018pub const MATCH_VFWMSAC_VV: u32 = 0xf8001057;
2019pub const MASK_VFWMSAC_VV: u32 = 0xfc00707f;
2020pub const MATCH_VFWMUL_VF: u32 = 0xe0005057;
2021pub const MASK_VFWMUL_VF: u32 = 0xfc00707f;
2022pub const MATCH_VFWMUL_VV: u32 = 0xe0001057;
2023pub const MASK_VFWMUL_VV: u32 = 0xfc00707f;
2024pub const MATCH_VFWNMACC_VF: u32 = 0xf4005057;
2025pub const MASK_VFWNMACC_VF: u32 = 0xfc00707f;
2026pub const MATCH_VFWNMACC_VV: u32 = 0xf4001057;
2027pub const MASK_VFWNMACC_VV: u32 = 0xfc00707f;
2028pub const MATCH_VFWNMSAC_VF: u32 = 0xfc005057;
2029pub const MASK_VFWNMSAC_VF: u32 = 0xfc00707f;
2030pub const MATCH_VFWNMSAC_VV: u32 = 0xfc001057;
2031pub const MASK_VFWNMSAC_VV: u32 = 0xfc00707f;
2032pub const MATCH_VFWREDOSUM_VS: u32 = 0xcc001057;
2033pub const MASK_VFWREDOSUM_VS: u32 = 0xfc00707f;
2034pub const MATCH_VFWREDSUM_VS: u32 = 0xc4001057;
2035pub const MASK_VFWREDSUM_VS: u32 = 0xfc00707f;
2036pub const MATCH_VFWREDUSUM_VS: u32 = 0xc4001057;
2037pub const MASK_VFWREDUSUM_VS: u32 = 0xfc00707f;
2038pub const MATCH_VFWSUB_VF: u32 = 0xc8005057;
2039pub const MASK_VFWSUB_VF: u32 = 0xfc00707f;
2040pub const MATCH_VFWSUB_VV: u32 = 0xc8001057;
2041pub const MASK_VFWSUB_VV: u32 = 0xfc00707f;
2042pub const MATCH_VFWSUB_WF: u32 = 0xd8005057;
2043pub const MASK_VFWSUB_WF: u32 = 0xfc00707f;
2044pub const MATCH_VFWSUB_WV: u32 = 0xd8001057;
2045pub const MASK_VFWSUB_WV: u32 = 0xfc00707f;
2046pub const MATCH_VGHSH_VV: u32 = 0xb2002077;
2047pub const MASK_VGHSH_VV: u32 = 0xfe00707f;
2048pub const MATCH_VGMUL_VV: u32 = 0xa208a077;
2049pub const MASK_VGMUL_VV: u32 = 0xfe0ff07f;
2050pub const MATCH_VID_V: u32 = 0x5008a057;
2051pub const MASK_VID_V: u32 = 0xfdfff07f;
2052pub const MATCH_VIOTA_M: u32 = 0x50082057;
2053pub const MASK_VIOTA_M: u32 = 0xfc0ff07f;
2054pub const MATCH_VL1R_V: u32 = 0x2800007;
2055pub const MASK_VL1R_V: u32 = 0xfff0707f;
2056pub const MATCH_VL1RE16_V: u32 = 0x2805007;
2057pub const MASK_VL1RE16_V: u32 = 0xfff0707f;
2058pub const MATCH_VL1RE32_V: u32 = 0x2806007;
2059pub const MASK_VL1RE32_V: u32 = 0xfff0707f;
2060pub const MATCH_VL1RE64_V: u32 = 0x2807007;
2061pub const MASK_VL1RE64_V: u32 = 0xfff0707f;
2062pub const MATCH_VL1RE8_V: u32 = 0x2800007;
2063pub const MASK_VL1RE8_V: u32 = 0xfff0707f;
2064pub const MATCH_VL2R_V: u32 = 0x22800007;
2065pub const MASK_VL2R_V: u32 = 0xfff0707f;
2066pub const MATCH_VL2RE16_V: u32 = 0x22805007;
2067pub const MASK_VL2RE16_V: u32 = 0xfff0707f;
2068pub const MATCH_VL2RE32_V: u32 = 0x22806007;
2069pub const MASK_VL2RE32_V: u32 = 0xfff0707f;
2070pub const MATCH_VL2RE64_V: u32 = 0x22807007;
2071pub const MASK_VL2RE64_V: u32 = 0xfff0707f;
2072pub const MATCH_VL2RE8_V: u32 = 0x22800007;
2073pub const MASK_VL2RE8_V: u32 = 0xfff0707f;
2074pub const MATCH_VL4R_V: u32 = 0x62800007;
2075pub const MASK_VL4R_V: u32 = 0xfff0707f;
2076pub const MATCH_VL4RE16_V: u32 = 0x62805007;
2077pub const MASK_VL4RE16_V: u32 = 0xfff0707f;
2078pub const MATCH_VL4RE32_V: u32 = 0x62806007;
2079pub const MASK_VL4RE32_V: u32 = 0xfff0707f;
2080pub const MATCH_VL4RE64_V: u32 = 0x62807007;
2081pub const MASK_VL4RE64_V: u32 = 0xfff0707f;
2082pub const MATCH_VL4RE8_V: u32 = 0x62800007;
2083pub const MASK_VL4RE8_V: u32 = 0xfff0707f;
2084pub const MATCH_VL8R_V: u32 = 0xe2800007;
2085pub const MASK_VL8R_V: u32 = 0xfff0707f;
2086pub const MATCH_VL8RE16_V: u32 = 0xe2805007;
2087pub const MASK_VL8RE16_V: u32 = 0xfff0707f;
2088pub const MATCH_VL8RE32_V: u32 = 0xe2806007;
2089pub const MASK_VL8RE32_V: u32 = 0xfff0707f;
2090pub const MATCH_VL8RE64_V: u32 = 0xe2807007;
2091pub const MASK_VL8RE64_V: u32 = 0xfff0707f;
2092pub const MATCH_VL8RE8_V: u32 = 0xe2800007;
2093pub const MASK_VL8RE8_V: u32 = 0xfff0707f;
2094pub const MATCH_VLE16_V: u32 = 0x5007;
2095pub const MASK_VLE16_V: u32 = 0x1df0707f;
2096pub const MATCH_VLE16FF_V: u32 = 0x1005007;
2097pub const MASK_VLE16FF_V: u32 = 0x1df0707f;
2098pub const MATCH_VLE1_V: u32 = 0x2b00007;
2099pub const MASK_VLE1_V: u32 = 0xfff0707f;
2100pub const MATCH_VLE32_V: u32 = 0x6007;
2101pub const MASK_VLE32_V: u32 = 0x1df0707f;
2102pub const MATCH_VLE32FF_V: u32 = 0x1006007;
2103pub const MASK_VLE32FF_V: u32 = 0x1df0707f;
2104pub const MATCH_VLE64_V: u32 = 0x7007;
2105pub const MASK_VLE64_V: u32 = 0x1df0707f;
2106pub const MATCH_VLE64FF_V: u32 = 0x1007007;
2107pub const MASK_VLE64FF_V: u32 = 0x1df0707f;
2108pub const MATCH_VLE8_V: u32 = 0x7;
2109pub const MASK_VLE8_V: u32 = 0x1df0707f;
2110pub const MATCH_VLE8FF_V: u32 = 0x1000007;
2111pub const MASK_VLE8FF_V: u32 = 0x1df0707f;
2112pub const MATCH_VLM_V: u32 = 0x2b00007;
2113pub const MASK_VLM_V: u32 = 0xfff0707f;
2114pub const MATCH_VLOXEI16_V: u32 = 0xc005007;
2115pub const MASK_VLOXEI16_V: u32 = 0x1c00707f;
2116pub const MATCH_VLOXEI32_V: u32 = 0xc006007;
2117pub const MASK_VLOXEI32_V: u32 = 0x1c00707f;
2118pub const MATCH_VLOXEI64_V: u32 = 0xc007007;
2119pub const MASK_VLOXEI64_V: u32 = 0x1c00707f;
2120pub const MATCH_VLOXEI8_V: u32 = 0xc000007;
2121pub const MASK_VLOXEI8_V: u32 = 0x1c00707f;
2122pub const MATCH_VLSE16_V: u32 = 0x8005007;
2123pub const MASK_VLSE16_V: u32 = 0x1c00707f;
2124pub const MATCH_VLSE32_V: u32 = 0x8006007;
2125pub const MASK_VLSE32_V: u32 = 0x1c00707f;
2126pub const MATCH_VLSE64_V: u32 = 0x8007007;
2127pub const MASK_VLSE64_V: u32 = 0x1c00707f;
2128pub const MATCH_VLSE8_V: u32 = 0x8000007;
2129pub const MASK_VLSE8_V: u32 = 0x1c00707f;
2130pub const MATCH_VLUXEI16_V: u32 = 0x4005007;
2131pub const MASK_VLUXEI16_V: u32 = 0x1c00707f;
2132pub const MATCH_VLUXEI32_V: u32 = 0x4006007;
2133pub const MASK_VLUXEI32_V: u32 = 0x1c00707f;
2134pub const MATCH_VLUXEI64_V: u32 = 0x4007007;
2135pub const MASK_VLUXEI64_V: u32 = 0x1c00707f;
2136pub const MATCH_VLUXEI8_V: u32 = 0x4000007;
2137pub const MASK_VLUXEI8_V: u32 = 0x1c00707f;
2138pub const MATCH_VMACC_VV: u32 = 0xb4002057;
2139pub const MASK_VMACC_VV: u32 = 0xfc00707f;
2140pub const MATCH_VMACC_VX: u32 = 0xb4006057;
2141pub const MASK_VMACC_VX: u32 = 0xfc00707f;
2142pub const MATCH_VMADC_VI: u32 = 0x46003057;
2143pub const MASK_VMADC_VI: u32 = 0xfe00707f;
2144pub const MATCH_VMADC_VIM: u32 = 0x44003057;
2145pub const MASK_VMADC_VIM: u32 = 0xfe00707f;
2146pub const MATCH_VMADC_VV: u32 = 0x46000057;
2147pub const MASK_VMADC_VV: u32 = 0xfe00707f;
2148pub const MATCH_VMADC_VVM: u32 = 0x44000057;
2149pub const MASK_VMADC_VVM: u32 = 0xfe00707f;
2150pub const MATCH_VMADC_VX: u32 = 0x46004057;
2151pub const MASK_VMADC_VX: u32 = 0xfe00707f;
2152pub const MATCH_VMADC_VXM: u32 = 0x44004057;
2153pub const MASK_VMADC_VXM: u32 = 0xfe00707f;
2154pub const MATCH_VMADD_VV: u32 = 0xa4002057;
2155pub const MASK_VMADD_VV: u32 = 0xfc00707f;
2156pub const MATCH_VMADD_VX: u32 = 0xa4006057;
2157pub const MASK_VMADD_VX: u32 = 0xfc00707f;
2158pub const MATCH_VMAND_MM: u32 = 0x66002057;
2159pub const MASK_VMAND_MM: u32 = 0xfe00707f;
2160pub const MATCH_VMANDN_MM: u32 = 0x62002057;
2161pub const MASK_VMANDN_MM: u32 = 0xfe00707f;
2162pub const MATCH_VMANDNOT_MM: u32 = 0x60002057;
2163pub const MASK_VMANDNOT_MM: u32 = 0xfc00707f;
2164pub const MATCH_VMAX_VV: u32 = 0x1c000057;
2165pub const MASK_VMAX_VV: u32 = 0xfc00707f;
2166pub const MATCH_VMAX_VX: u32 = 0x1c004057;
2167pub const MASK_VMAX_VX: u32 = 0xfc00707f;
2168pub const MATCH_VMAXU_VV: u32 = 0x18000057;
2169pub const MASK_VMAXU_VV: u32 = 0xfc00707f;
2170pub const MATCH_VMAXU_VX: u32 = 0x18004057;
2171pub const MASK_VMAXU_VX: u32 = 0xfc00707f;
2172pub const MATCH_VMERGE_VIM: u32 = 0x5c003057;
2173pub const MASK_VMERGE_VIM: u32 = 0xfe00707f;
2174pub const MATCH_VMERGE_VVM: u32 = 0x5c000057;
2175pub const MASK_VMERGE_VVM: u32 = 0xfe00707f;
2176pub const MATCH_VMERGE_VXM: u32 = 0x5c004057;
2177pub const MASK_VMERGE_VXM: u32 = 0xfe00707f;
2178pub const MATCH_VMFEQ_VF: u32 = 0x60005057;
2179pub const MASK_VMFEQ_VF: u32 = 0xfc00707f;
2180pub const MATCH_VMFEQ_VV: u32 = 0x60001057;
2181pub const MASK_VMFEQ_VV: u32 = 0xfc00707f;
2182pub const MATCH_VMFGE_VF: u32 = 0x7c005057;
2183pub const MASK_VMFGE_VF: u32 = 0xfc00707f;
2184pub const MATCH_VMFGT_VF: u32 = 0x74005057;
2185pub const MASK_VMFGT_VF: u32 = 0xfc00707f;
2186pub const MATCH_VMFLE_VF: u32 = 0x64005057;
2187pub const MASK_VMFLE_VF: u32 = 0xfc00707f;
2188pub const MATCH_VMFLE_VV: u32 = 0x64001057;
2189pub const MASK_VMFLE_VV: u32 = 0xfc00707f;
2190pub const MATCH_VMFLT_VF: u32 = 0x6c005057;
2191pub const MASK_VMFLT_VF: u32 = 0xfc00707f;
2192pub const MATCH_VMFLT_VV: u32 = 0x6c001057;
2193pub const MASK_VMFLT_VV: u32 = 0xfc00707f;
2194pub const MATCH_VMFNE_VF: u32 = 0x70005057;
2195pub const MASK_VMFNE_VF: u32 = 0xfc00707f;
2196pub const MATCH_VMFNE_VV: u32 = 0x70001057;
2197pub const MASK_VMFNE_VV: u32 = 0xfc00707f;
2198pub const MATCH_VMIN_VV: u32 = 0x14000057;
2199pub const MASK_VMIN_VV: u32 = 0xfc00707f;
2200pub const MATCH_VMIN_VX: u32 = 0x14004057;
2201pub const MASK_VMIN_VX: u32 = 0xfc00707f;
2202pub const MATCH_VMINU_VV: u32 = 0x10000057;
2203pub const MASK_VMINU_VV: u32 = 0xfc00707f;
2204pub const MATCH_VMINU_VX: u32 = 0x10004057;
2205pub const MASK_VMINU_VX: u32 = 0xfc00707f;
2206pub const MATCH_VMNAND_MM: u32 = 0x76002057;
2207pub const MASK_VMNAND_MM: u32 = 0xfe00707f;
2208pub const MATCH_VMNOR_MM: u32 = 0x7a002057;
2209pub const MASK_VMNOR_MM: u32 = 0xfe00707f;
2210pub const MATCH_VMOR_MM: u32 = 0x6a002057;
2211pub const MASK_VMOR_MM: u32 = 0xfe00707f;
2212pub const MATCH_VMORN_MM: u32 = 0x72002057;
2213pub const MASK_VMORN_MM: u32 = 0xfe00707f;
2214pub const MATCH_VMORNOT_MM: u32 = 0x70002057;
2215pub const MASK_VMORNOT_MM: u32 = 0xfc00707f;
2216pub const MATCH_VMSBC_VV: u32 = 0x4e000057;
2217pub const MASK_VMSBC_VV: u32 = 0xfe00707f;
2218pub const MATCH_VMSBC_VVM: u32 = 0x4c000057;
2219pub const MASK_VMSBC_VVM: u32 = 0xfe00707f;
2220pub const MATCH_VMSBC_VX: u32 = 0x4e004057;
2221pub const MASK_VMSBC_VX: u32 = 0xfe00707f;
2222pub const MATCH_VMSBC_VXM: u32 = 0x4c004057;
2223pub const MASK_VMSBC_VXM: u32 = 0xfe00707f;
2224pub const MATCH_VMSBF_M: u32 = 0x5000a057;
2225pub const MASK_VMSBF_M: u32 = 0xfc0ff07f;
2226pub const MATCH_VMSEQ_VI: u32 = 0x60003057;
2227pub const MASK_VMSEQ_VI: u32 = 0xfc00707f;
2228pub const MATCH_VMSEQ_VV: u32 = 0x60000057;
2229pub const MASK_VMSEQ_VV: u32 = 0xfc00707f;
2230pub const MATCH_VMSEQ_VX: u32 = 0x60004057;
2231pub const MASK_VMSEQ_VX: u32 = 0xfc00707f;
2232pub const MATCH_VMSGT_VI: u32 = 0x7c003057;
2233pub const MASK_VMSGT_VI: u32 = 0xfc00707f;
2234pub const MATCH_VMSGT_VX: u32 = 0x7c004057;
2235pub const MASK_VMSGT_VX: u32 = 0xfc00707f;
2236pub const MATCH_VMSGTU_VI: u32 = 0x78003057;
2237pub const MASK_VMSGTU_VI: u32 = 0xfc00707f;
2238pub const MATCH_VMSGTU_VX: u32 = 0x78004057;
2239pub const MASK_VMSGTU_VX: u32 = 0xfc00707f;
2240pub const MATCH_VMSIF_M: u32 = 0x5001a057;
2241pub const MASK_VMSIF_M: u32 = 0xfc0ff07f;
2242pub const MATCH_VMSLE_VI: u32 = 0x74003057;
2243pub const MASK_VMSLE_VI: u32 = 0xfc00707f;
2244pub const MATCH_VMSLE_VV: u32 = 0x74000057;
2245pub const MASK_VMSLE_VV: u32 = 0xfc00707f;
2246pub const MATCH_VMSLE_VX: u32 = 0x74004057;
2247pub const MASK_VMSLE_VX: u32 = 0xfc00707f;
2248pub const MATCH_VMSLEU_VI: u32 = 0x70003057;
2249pub const MASK_VMSLEU_VI: u32 = 0xfc00707f;
2250pub const MATCH_VMSLEU_VV: u32 = 0x70000057;
2251pub const MASK_VMSLEU_VV: u32 = 0xfc00707f;
2252pub const MATCH_VMSLEU_VX: u32 = 0x70004057;
2253pub const MASK_VMSLEU_VX: u32 = 0xfc00707f;
2254pub const MATCH_VMSLT_VV: u32 = 0x6c000057;
2255pub const MASK_VMSLT_VV: u32 = 0xfc00707f;
2256pub const MATCH_VMSLT_VX: u32 = 0x6c004057;
2257pub const MASK_VMSLT_VX: u32 = 0xfc00707f;
2258pub const MATCH_VMSLTU_VV: u32 = 0x68000057;
2259pub const MASK_VMSLTU_VV: u32 = 0xfc00707f;
2260pub const MATCH_VMSLTU_VX: u32 = 0x68004057;
2261pub const MASK_VMSLTU_VX: u32 = 0xfc00707f;
2262pub const MATCH_VMSNE_VI: u32 = 0x64003057;
2263pub const MASK_VMSNE_VI: u32 = 0xfc00707f;
2264pub const MATCH_VMSNE_VV: u32 = 0x64000057;
2265pub const MASK_VMSNE_VV: u32 = 0xfc00707f;
2266pub const MATCH_VMSNE_VX: u32 = 0x64004057;
2267pub const MASK_VMSNE_VX: u32 = 0xfc00707f;
2268pub const MATCH_VMSOF_M: u32 = 0x50012057;
2269pub const MASK_VMSOF_M: u32 = 0xfc0ff07f;
2270pub const MATCH_VMUL_VV: u32 = 0x94002057;
2271pub const MASK_VMUL_VV: u32 = 0xfc00707f;
2272pub const MATCH_VMUL_VX: u32 = 0x94006057;
2273pub const MASK_VMUL_VX: u32 = 0xfc00707f;
2274pub const MATCH_VMULH_VV: u32 = 0x9c002057;
2275pub const MASK_VMULH_VV: u32 = 0xfc00707f;
2276pub const MATCH_VMULH_VX: u32 = 0x9c006057;
2277pub const MASK_VMULH_VX: u32 = 0xfc00707f;
2278pub const MATCH_VMULHSU_VV: u32 = 0x98002057;
2279pub const MASK_VMULHSU_VV: u32 = 0xfc00707f;
2280pub const MATCH_VMULHSU_VX: u32 = 0x98006057;
2281pub const MASK_VMULHSU_VX: u32 = 0xfc00707f;
2282pub const MATCH_VMULHU_VV: u32 = 0x90002057;
2283pub const MASK_VMULHU_VV: u32 = 0xfc00707f;
2284pub const MATCH_VMULHU_VX: u32 = 0x90006057;
2285pub const MASK_VMULHU_VX: u32 = 0xfc00707f;
2286pub const MATCH_VMV1R_V: u32 = 0x9e003057;
2287pub const MASK_VMV1R_V: u32 = 0xfe0ff07f;
2288pub const MATCH_VMV2R_V: u32 = 0x9e00b057;
2289pub const MASK_VMV2R_V: u32 = 0xfe0ff07f;
2290pub const MATCH_VMV4R_V: u32 = 0x9e01b057;
2291pub const MASK_VMV4R_V: u32 = 0xfe0ff07f;
2292pub const MATCH_VMV8R_V: u32 = 0x9e03b057;
2293pub const MASK_VMV8R_V: u32 = 0xfe0ff07f;
2294pub const MATCH_VMV_S_X: u32 = 0x42006057;
2295pub const MASK_VMV_S_X: u32 = 0xfff0707f;
2296pub const MATCH_VMV_V_I: u32 = 0x5e003057;
2297pub const MASK_VMV_V_I: u32 = 0xfff0707f;
2298pub const MATCH_VMV_V_V: u32 = 0x5e000057;
2299pub const MASK_VMV_V_V: u32 = 0xfff0707f;
2300pub const MATCH_VMV_V_X: u32 = 0x5e004057;
2301pub const MASK_VMV_V_X: u32 = 0xfff0707f;
2302pub const MATCH_VMV_X_S: u32 = 0x42002057;
2303pub const MASK_VMV_X_S: u32 = 0xfe0ff07f;
2304pub const MATCH_VMXNOR_MM: u32 = 0x7e002057;
2305pub const MASK_VMXNOR_MM: u32 = 0xfe00707f;
2306pub const MATCH_VMXOR_MM: u32 = 0x6e002057;
2307pub const MASK_VMXOR_MM: u32 = 0xfe00707f;
2308pub const MATCH_VNCLIP_WI: u32 = 0xbc003057;
2309pub const MASK_VNCLIP_WI: u32 = 0xfc00707f;
2310pub const MATCH_VNCLIP_WV: u32 = 0xbc000057;
2311pub const MASK_VNCLIP_WV: u32 = 0xfc00707f;
2312pub const MATCH_VNCLIP_WX: u32 = 0xbc004057;
2313pub const MASK_VNCLIP_WX: u32 = 0xfc00707f;
2314pub const MATCH_VNCLIPU_WI: u32 = 0xb8003057;
2315pub const MASK_VNCLIPU_WI: u32 = 0xfc00707f;
2316pub const MATCH_VNCLIPU_WV: u32 = 0xb8000057;
2317pub const MASK_VNCLIPU_WV: u32 = 0xfc00707f;
2318pub const MATCH_VNCLIPU_WX: u32 = 0xb8004057;
2319pub const MASK_VNCLIPU_WX: u32 = 0xfc00707f;
2320pub const MATCH_VNMSAC_VV: u32 = 0xbc002057;
2321pub const MASK_VNMSAC_VV: u32 = 0xfc00707f;
2322pub const MATCH_VNMSAC_VX: u32 = 0xbc006057;
2323pub const MASK_VNMSAC_VX: u32 = 0xfc00707f;
2324pub const MATCH_VNMSUB_VV: u32 = 0xac002057;
2325pub const MASK_VNMSUB_VV: u32 = 0xfc00707f;
2326pub const MATCH_VNMSUB_VX: u32 = 0xac006057;
2327pub const MASK_VNMSUB_VX: u32 = 0xfc00707f;
2328pub const MATCH_VNSRA_WI: u32 = 0xb4003057;
2329pub const MASK_VNSRA_WI: u32 = 0xfc00707f;
2330pub const MATCH_VNSRA_WV: u32 = 0xb4000057;
2331pub const MASK_VNSRA_WV: u32 = 0xfc00707f;
2332pub const MATCH_VNSRA_WX: u32 = 0xb4004057;
2333pub const MASK_VNSRA_WX: u32 = 0xfc00707f;
2334pub const MATCH_VNSRL_WI: u32 = 0xb0003057;
2335pub const MASK_VNSRL_WI: u32 = 0xfc00707f;
2336pub const MATCH_VNSRL_WV: u32 = 0xb0000057;
2337pub const MASK_VNSRL_WV: u32 = 0xfc00707f;
2338pub const MATCH_VNSRL_WX: u32 = 0xb0004057;
2339pub const MASK_VNSRL_WX: u32 = 0xfc00707f;
2340pub const MATCH_VOR_VI: u32 = 0x28003057;
2341pub const MASK_VOR_VI: u32 = 0xfc00707f;
2342pub const MATCH_VOR_VV: u32 = 0x28000057;
2343pub const MASK_VOR_VV: u32 = 0xfc00707f;
2344pub const MATCH_VOR_VX: u32 = 0x28004057;
2345pub const MASK_VOR_VX: u32 = 0xfc00707f;
2346pub const MATCH_VPOPC_M: u32 = 0x40082057;
2347pub const MASK_VPOPC_M: u32 = 0xfc0ff07f;
2348pub const MATCH_VREDAND_VS: u32 = 0x4002057;
2349pub const MASK_VREDAND_VS: u32 = 0xfc00707f;
2350pub const MATCH_VREDMAX_VS: u32 = 0x1c002057;
2351pub const MASK_VREDMAX_VS: u32 = 0xfc00707f;
2352pub const MATCH_VREDMAXU_VS: u32 = 0x18002057;
2353pub const MASK_VREDMAXU_VS: u32 = 0xfc00707f;
2354pub const MATCH_VREDMIN_VS: u32 = 0x14002057;
2355pub const MASK_VREDMIN_VS: u32 = 0xfc00707f;
2356pub const MATCH_VREDMINU_VS: u32 = 0x10002057;
2357pub const MASK_VREDMINU_VS: u32 = 0xfc00707f;
2358pub const MATCH_VREDOR_VS: u32 = 0x8002057;
2359pub const MASK_VREDOR_VS: u32 = 0xfc00707f;
2360pub const MATCH_VREDSUM_VS: u32 = 0x2057;
2361pub const MASK_VREDSUM_VS: u32 = 0xfc00707f;
2362pub const MATCH_VREDXOR_VS: u32 = 0xc002057;
2363pub const MASK_VREDXOR_VS: u32 = 0xfc00707f;
2364pub const MATCH_VREM_VV: u32 = 0x8c002057;
2365pub const MASK_VREM_VV: u32 = 0xfc00707f;
2366pub const MATCH_VREM_VX: u32 = 0x8c006057;
2367pub const MASK_VREM_VX: u32 = 0xfc00707f;
2368pub const MATCH_VREMU_VV: u32 = 0x88002057;
2369pub const MASK_VREMU_VV: u32 = 0xfc00707f;
2370pub const MATCH_VREMU_VX: u32 = 0x88006057;
2371pub const MASK_VREMU_VX: u32 = 0xfc00707f;
2372pub const MATCH_VREV8_V: u32 = 0x4804a057;
2373pub const MASK_VREV8_V: u32 = 0xfc0ff07f;
2374pub const MATCH_VRGATHER_VI: u32 = 0x30003057;
2375pub const MASK_VRGATHER_VI: u32 = 0xfc00707f;
2376pub const MATCH_VRGATHER_VV: u32 = 0x30000057;
2377pub const MASK_VRGATHER_VV: u32 = 0xfc00707f;
2378pub const MATCH_VRGATHER_VX: u32 = 0x30004057;
2379pub const MASK_VRGATHER_VX: u32 = 0xfc00707f;
2380pub const MATCH_VRGATHEREI16_VV: u32 = 0x38000057;
2381pub const MASK_VRGATHEREI16_VV: u32 = 0xfc00707f;
2382pub const MATCH_VROL_VV: u32 = 0x54000057;
2383pub const MASK_VROL_VV: u32 = 0xfc00707f;
2384pub const MATCH_VROL_VX: u32 = 0x54004057;
2385pub const MASK_VROL_VX: u32 = 0xfc00707f;
2386pub const MATCH_VROR_VI: u32 = 0x50003057;
2387pub const MASK_VROR_VI: u32 = 0xf800707f;
2388pub const MATCH_VROR_VV: u32 = 0x50000057;
2389pub const MASK_VROR_VV: u32 = 0xfc00707f;
2390pub const MATCH_VROR_VX: u32 = 0x50004057;
2391pub const MASK_VROR_VX: u32 = 0xfc00707f;
2392pub const MATCH_VRSUB_VI: u32 = 0xc003057;
2393pub const MASK_VRSUB_VI: u32 = 0xfc00707f;
2394pub const MATCH_VRSUB_VX: u32 = 0xc004057;
2395pub const MASK_VRSUB_VX: u32 = 0xfc00707f;
2396pub const MATCH_VS1R_V: u32 = 0x2800027;
2397pub const MASK_VS1R_V: u32 = 0xfff0707f;
2398pub const MATCH_VS2R_V: u32 = 0x22800027;
2399pub const MASK_VS2R_V: u32 = 0xfff0707f;
2400pub const MATCH_VS4R_V: u32 = 0x62800027;
2401pub const MASK_VS4R_V: u32 = 0xfff0707f;
2402pub const MATCH_VS8R_V: u32 = 0xe2800027;
2403pub const MASK_VS8R_V: u32 = 0xfff0707f;
2404pub const MATCH_VSADD_VI: u32 = 0x84003057;
2405pub const MASK_VSADD_VI: u32 = 0xfc00707f;
2406pub const MATCH_VSADD_VV: u32 = 0x84000057;
2407pub const MASK_VSADD_VV: u32 = 0xfc00707f;
2408pub const MATCH_VSADD_VX: u32 = 0x84004057;
2409pub const MASK_VSADD_VX: u32 = 0xfc00707f;
2410pub const MATCH_VSADDU_VI: u32 = 0x80003057;
2411pub const MASK_VSADDU_VI: u32 = 0xfc00707f;
2412pub const MATCH_VSADDU_VV: u32 = 0x80000057;
2413pub const MASK_VSADDU_VV: u32 = 0xfc00707f;
2414pub const MATCH_VSADDU_VX: u32 = 0x80004057;
2415pub const MASK_VSADDU_VX: u32 = 0xfc00707f;
2416pub const MATCH_VSBC_VVM: u32 = 0x48000057;
2417pub const MASK_VSBC_VVM: u32 = 0xfe00707f;
2418pub const MATCH_VSBC_VXM: u32 = 0x48004057;
2419pub const MASK_VSBC_VXM: u32 = 0xfe00707f;
2420pub const MATCH_VSE16_V: u32 = 0x5027;
2421pub const MASK_VSE16_V: u32 = 0x1df0707f;
2422pub const MATCH_VSE1_V: u32 = 0x2b00027;
2423pub const MASK_VSE1_V: u32 = 0xfff0707f;
2424pub const MATCH_VSE32_V: u32 = 0x6027;
2425pub const MASK_VSE32_V: u32 = 0x1df0707f;
2426pub const MATCH_VSE64_V: u32 = 0x7027;
2427pub const MASK_VSE64_V: u32 = 0x1df0707f;
2428pub const MATCH_VSE8_V: u32 = 0x27;
2429pub const MASK_VSE8_V: u32 = 0x1df0707f;
2430pub const MATCH_VSETIVLI: u32 = 0xc0007057;
2431pub const MASK_VSETIVLI: u32 = 0xc000707f;
2432pub const MATCH_VSETVL: u32 = 0x80007057;
2433pub const MASK_VSETVL: u32 = 0xfe00707f;
2434pub const MATCH_VSETVLI: u32 = 0x7057;
2435pub const MASK_VSETVLI: u32 = 0x8000707f;
2436pub const MATCH_VSEXT_VF2: u32 = 0x4803a057;
2437pub const MASK_VSEXT_VF2: u32 = 0xfc0ff07f;
2438pub const MATCH_VSEXT_VF4: u32 = 0x4802a057;
2439pub const MASK_VSEXT_VF4: u32 = 0xfc0ff07f;
2440pub const MATCH_VSEXT_VF8: u32 = 0x4801a057;
2441pub const MASK_VSEXT_VF8: u32 = 0xfc0ff07f;
2442pub const MATCH_VSHA2CH_VV: u32 = 0xba002077;
2443pub const MASK_VSHA2CH_VV: u32 = 0xfe00707f;
2444pub const MATCH_VSHA2CL_VV: u32 = 0xbe002077;
2445pub const MASK_VSHA2CL_VV: u32 = 0xfe00707f;
2446pub const MATCH_VSHA2MS_VV: u32 = 0xb6002077;
2447pub const MASK_VSHA2MS_VV: u32 = 0xfe00707f;
2448pub const MATCH_VSLIDE1DOWN_VX: u32 = 0x3c006057;
2449pub const MASK_VSLIDE1DOWN_VX: u32 = 0xfc00707f;
2450pub const MATCH_VSLIDE1UP_VX: u32 = 0x38006057;
2451pub const MASK_VSLIDE1UP_VX: u32 = 0xfc00707f;
2452pub const MATCH_VSLIDEDOWN_VI: u32 = 0x3c003057;
2453pub const MASK_VSLIDEDOWN_VI: u32 = 0xfc00707f;
2454pub const MATCH_VSLIDEDOWN_VX: u32 = 0x3c004057;
2455pub const MASK_VSLIDEDOWN_VX: u32 = 0xfc00707f;
2456pub const MATCH_VSLIDEUP_VI: u32 = 0x38003057;
2457pub const MASK_VSLIDEUP_VI: u32 = 0xfc00707f;
2458pub const MATCH_VSLIDEUP_VX: u32 = 0x38004057;
2459pub const MASK_VSLIDEUP_VX: u32 = 0xfc00707f;
2460pub const MATCH_VSLL_VI: u32 = 0x94003057;
2461pub const MASK_VSLL_VI: u32 = 0xfc00707f;
2462pub const MATCH_VSLL_VV: u32 = 0x94000057;
2463pub const MASK_VSLL_VV: u32 = 0xfc00707f;
2464pub const MATCH_VSLL_VX: u32 = 0x94004057;
2465pub const MASK_VSLL_VX: u32 = 0xfc00707f;
2466pub const MATCH_VSM3C_VI: u32 = 0xae002077;
2467pub const MASK_VSM3C_VI: u32 = 0xfe00707f;
2468pub const MATCH_VSM3ME_VV: u32 = 0x82002077;
2469pub const MASK_VSM3ME_VV: u32 = 0xfe00707f;
2470pub const MATCH_VSM4K_VI: u32 = 0x86002077;
2471pub const MASK_VSM4K_VI: u32 = 0xfe00707f;
2472pub const MATCH_VSM4R_VS: u32 = 0xa6082077;
2473pub const MASK_VSM4R_VS: u32 = 0xfe0ff07f;
2474pub const MATCH_VSM4R_VV: u32 = 0xa2082077;
2475pub const MASK_VSM4R_VV: u32 = 0xfe0ff07f;
2476pub const MATCH_VSM_V: u32 = 0x2b00027;
2477pub const MASK_VSM_V: u32 = 0xfff0707f;
2478pub const MATCH_VSMUL_VV: u32 = 0x9c000057;
2479pub const MASK_VSMUL_VV: u32 = 0xfc00707f;
2480pub const MATCH_VSMUL_VX: u32 = 0x9c004057;
2481pub const MASK_VSMUL_VX: u32 = 0xfc00707f;
2482pub const MATCH_VSOXEI16_V: u32 = 0xc005027;
2483pub const MASK_VSOXEI16_V: u32 = 0x1c00707f;
2484pub const MATCH_VSOXEI32_V: u32 = 0xc006027;
2485pub const MASK_VSOXEI32_V: u32 = 0x1c00707f;
2486pub const MATCH_VSOXEI64_V: u32 = 0xc007027;
2487pub const MASK_VSOXEI64_V: u32 = 0x1c00707f;
2488pub const MATCH_VSOXEI8_V: u32 = 0xc000027;
2489pub const MASK_VSOXEI8_V: u32 = 0x1c00707f;
2490pub const MATCH_VSRA_VI: u32 = 0xa4003057;
2491pub const MASK_VSRA_VI: u32 = 0xfc00707f;
2492pub const MATCH_VSRA_VV: u32 = 0xa4000057;
2493pub const MASK_VSRA_VV: u32 = 0xfc00707f;
2494pub const MATCH_VSRA_VX: u32 = 0xa4004057;
2495pub const MASK_VSRA_VX: u32 = 0xfc00707f;
2496pub const MATCH_VSRL_VI: u32 = 0xa0003057;
2497pub const MASK_VSRL_VI: u32 = 0xfc00707f;
2498pub const MATCH_VSRL_VV: u32 = 0xa0000057;
2499pub const MASK_VSRL_VV: u32 = 0xfc00707f;
2500pub const MATCH_VSRL_VX: u32 = 0xa0004057;
2501pub const MASK_VSRL_VX: u32 = 0xfc00707f;
2502pub const MATCH_VSSE16_V: u32 = 0x8005027;
2503pub const MASK_VSSE16_V: u32 = 0x1c00707f;
2504pub const MATCH_VSSE32_V: u32 = 0x8006027;
2505pub const MASK_VSSE32_V: u32 = 0x1c00707f;
2506pub const MATCH_VSSE64_V: u32 = 0x8007027;
2507pub const MASK_VSSE64_V: u32 = 0x1c00707f;
2508pub const MATCH_VSSE8_V: u32 = 0x8000027;
2509pub const MASK_VSSE8_V: u32 = 0x1c00707f;
2510pub const MATCH_VSSRA_VI: u32 = 0xac003057;
2511pub const MASK_VSSRA_VI: u32 = 0xfc00707f;
2512pub const MATCH_VSSRA_VV: u32 = 0xac000057;
2513pub const MASK_VSSRA_VV: u32 = 0xfc00707f;
2514pub const MATCH_VSSRA_VX: u32 = 0xac004057;
2515pub const MASK_VSSRA_VX: u32 = 0xfc00707f;
2516pub const MATCH_VSSRL_VI: u32 = 0xa8003057;
2517pub const MASK_VSSRL_VI: u32 = 0xfc00707f;
2518pub const MATCH_VSSRL_VV: u32 = 0xa8000057;
2519pub const MASK_VSSRL_VV: u32 = 0xfc00707f;
2520pub const MATCH_VSSRL_VX: u32 = 0xa8004057;
2521pub const MASK_VSSRL_VX: u32 = 0xfc00707f;
2522pub const MATCH_VSSUB_VV: u32 = 0x8c000057;
2523pub const MASK_VSSUB_VV: u32 = 0xfc00707f;
2524pub const MATCH_VSSUB_VX: u32 = 0x8c004057;
2525pub const MASK_VSSUB_VX: u32 = 0xfc00707f;
2526pub const MATCH_VSSUBU_VV: u32 = 0x88000057;
2527pub const MASK_VSSUBU_VV: u32 = 0xfc00707f;
2528pub const MATCH_VSSUBU_VX: u32 = 0x88004057;
2529pub const MASK_VSSUBU_VX: u32 = 0xfc00707f;
2530pub const MATCH_VSUB_VV: u32 = 0x8000057;
2531pub const MASK_VSUB_VV: u32 = 0xfc00707f;
2532pub const MATCH_VSUB_VX: u32 = 0x8004057;
2533pub const MASK_VSUB_VX: u32 = 0xfc00707f;
2534pub const MATCH_VSUXEI16_V: u32 = 0x4005027;
2535pub const MASK_VSUXEI16_V: u32 = 0x1c00707f;
2536pub const MATCH_VSUXEI32_V: u32 = 0x4006027;
2537pub const MASK_VSUXEI32_V: u32 = 0x1c00707f;
2538pub const MATCH_VSUXEI64_V: u32 = 0x4007027;
2539pub const MASK_VSUXEI64_V: u32 = 0x1c00707f;
2540pub const MATCH_VSUXEI8_V: u32 = 0x4000027;
2541pub const MASK_VSUXEI8_V: u32 = 0x1c00707f;
2542pub const MATCH_VWADD_VV: u32 = 0xc4002057;
2543pub const MASK_VWADD_VV: u32 = 0xfc00707f;
2544pub const MATCH_VWADD_VX: u32 = 0xc4006057;
2545pub const MASK_VWADD_VX: u32 = 0xfc00707f;
2546pub const MATCH_VWADD_WV: u32 = 0xd4002057;
2547pub const MASK_VWADD_WV: u32 = 0xfc00707f;
2548pub const MATCH_VWADD_WX: u32 = 0xd4006057;
2549pub const MASK_VWADD_WX: u32 = 0xfc00707f;
2550pub const MATCH_VWADDU_VV: u32 = 0xc0002057;
2551pub const MASK_VWADDU_VV: u32 = 0xfc00707f;
2552pub const MATCH_VWADDU_VX: u32 = 0xc0006057;
2553pub const MASK_VWADDU_VX: u32 = 0xfc00707f;
2554pub const MATCH_VWADDU_WV: u32 = 0xd0002057;
2555pub const MASK_VWADDU_WV: u32 = 0xfc00707f;
2556pub const MATCH_VWADDU_WX: u32 = 0xd0006057;
2557pub const MASK_VWADDU_WX: u32 = 0xfc00707f;
2558pub const MATCH_VWMACC_VV: u32 = 0xf4002057;
2559pub const MASK_VWMACC_VV: u32 = 0xfc00707f;
2560pub const MATCH_VWMACC_VX: u32 = 0xf4006057;
2561pub const MASK_VWMACC_VX: u32 = 0xfc00707f;
2562pub const MATCH_VWMACCSU_VV: u32 = 0xfc002057;
2563pub const MASK_VWMACCSU_VV: u32 = 0xfc00707f;
2564pub const MATCH_VWMACCSU_VX: u32 = 0xfc006057;
2565pub const MASK_VWMACCSU_VX: u32 = 0xfc00707f;
2566pub const MATCH_VWMACCU_VV: u32 = 0xf0002057;
2567pub const MASK_VWMACCU_VV: u32 = 0xfc00707f;
2568pub const MATCH_VWMACCU_VX: u32 = 0xf0006057;
2569pub const MASK_VWMACCU_VX: u32 = 0xfc00707f;
2570pub const MATCH_VWMACCUS_VX: u32 = 0xf8006057;
2571pub const MASK_VWMACCUS_VX: u32 = 0xfc00707f;
2572pub const MATCH_VWMUL_VV: u32 = 0xec002057;
2573pub const MASK_VWMUL_VV: u32 = 0xfc00707f;
2574pub const MATCH_VWMUL_VX: u32 = 0xec006057;
2575pub const MASK_VWMUL_VX: u32 = 0xfc00707f;
2576pub const MATCH_VWMULSU_VV: u32 = 0xe8002057;
2577pub const MASK_VWMULSU_VV: u32 = 0xfc00707f;
2578pub const MATCH_VWMULSU_VX: u32 = 0xe8006057;
2579pub const MASK_VWMULSU_VX: u32 = 0xfc00707f;
2580pub const MATCH_VWMULU_VV: u32 = 0xe0002057;
2581pub const MASK_VWMULU_VV: u32 = 0xfc00707f;
2582pub const MATCH_VWMULU_VX: u32 = 0xe0006057;
2583pub const MASK_VWMULU_VX: u32 = 0xfc00707f;
2584pub const MATCH_VWREDSUM_VS: u32 = 0xc4000057;
2585pub const MASK_VWREDSUM_VS: u32 = 0xfc00707f;
2586pub const MATCH_VWREDSUMU_VS: u32 = 0xc0000057;
2587pub const MASK_VWREDSUMU_VS: u32 = 0xfc00707f;
2588pub const MATCH_VWSLL_VI: u32 = 0xd4003057;
2589pub const MASK_VWSLL_VI: u32 = 0xfc00707f;
2590pub const MATCH_VWSLL_VV: u32 = 0xd4000057;
2591pub const MASK_VWSLL_VV: u32 = 0xfc00707f;
2592pub const MATCH_VWSLL_VX: u32 = 0xd4004057;
2593pub const MASK_VWSLL_VX: u32 = 0xfc00707f;
2594pub const MATCH_VWSUB_VV: u32 = 0xcc002057;
2595pub const MASK_VWSUB_VV: u32 = 0xfc00707f;
2596pub const MATCH_VWSUB_VX: u32 = 0xcc006057;
2597pub const MASK_VWSUB_VX: u32 = 0xfc00707f;
2598pub const MATCH_VWSUB_WV: u32 = 0xdc002057;
2599pub const MASK_VWSUB_WV: u32 = 0xfc00707f;
2600pub const MATCH_VWSUB_WX: u32 = 0xdc006057;
2601pub const MASK_VWSUB_WX: u32 = 0xfc00707f;
2602pub const MATCH_VWSUBU_VV: u32 = 0xc8002057;
2603pub const MASK_VWSUBU_VV: u32 = 0xfc00707f;
2604pub const MATCH_VWSUBU_VX: u32 = 0xc8006057;
2605pub const MASK_VWSUBU_VX: u32 = 0xfc00707f;
2606pub const MATCH_VWSUBU_WV: u32 = 0xd8002057;
2607pub const MASK_VWSUBU_WV: u32 = 0xfc00707f;
2608pub const MATCH_VWSUBU_WX: u32 = 0xd8006057;
2609pub const MASK_VWSUBU_WX: u32 = 0xfc00707f;
2610pub const MATCH_VXOR_VI: u32 = 0x2c003057;
2611pub const MASK_VXOR_VI: u32 = 0xfc00707f;
2612pub const MATCH_VXOR_VV: u32 = 0x2c000057;
2613pub const MASK_VXOR_VV: u32 = 0xfc00707f;
2614pub const MATCH_VXOR_VX: u32 = 0x2c004057;
2615pub const MASK_VXOR_VX: u32 = 0xfc00707f;
2616pub const MATCH_VZEXT_VF2: u32 = 0x48032057;
2617pub const MASK_VZEXT_VF2: u32 = 0xfc0ff07f;
2618pub const MATCH_VZEXT_VF4: u32 = 0x48022057;
2619pub const MASK_VZEXT_VF4: u32 = 0xfc0ff07f;
2620pub const MATCH_VZEXT_VF8: u32 = 0x48012057;
2621pub const MASK_VZEXT_VF8: u32 = 0xfc0ff07f;
2622pub const MATCH_WFI: u32 = 0x10500073;
2623pub const MASK_WFI: u32 = 0xffffffff;
2624pub const MATCH_WRS_NTO: u32 = 0xd00073;
2625pub const MASK_WRS_NTO: u32 = 0xffffffff;
2626pub const MATCH_WRS_STO: u32 = 0x1d00073;
2627pub const MASK_WRS_STO: u32 = 0xffffffff;
2628pub const MATCH_XNOR: u32 = 0x40004033;
2629pub const MASK_XNOR: u32 = 0xfe00707f;
2630pub const MATCH_XOR: u32 = 0x4033;
2631pub const MASK_XOR: u32 = 0xfe00707f;
2632pub const MATCH_XORI: u32 = 0x4013;
2633pub const MASK_XORI: u32 = 0x707f;
2634pub const MATCH_XPERM4: u32 = 0x28002033;
2635pub const MASK_XPERM4: u32 = 0xfe00707f;
2636pub const MATCH_XPERM8: u32 = 0x28004033;
2637pub const MASK_XPERM8: u32 = 0xfe00707f;
2638pub const MATCH_ZEXT_B: u32 = 0xff07013;
2639pub const MASK_ZEXT_B: u32 = 0xfff0707f;
2640pub const MATCH_ZEXT_H: u32 = 0x800403b;
2641pub const MASK_ZEXT_H: u32 = 0xfff0707f;
2642pub const MATCH_ZEXT_H_RV32: u32 = 0x8004033;
2643pub const MASK_ZEXT_H_RV32: u32 = 0xfff0707f;
2644pub const MATCH_ZEXT_W: u32 = 0x800003b;
2645pub const MASK_ZEXT_W: u32 = 0xfff0707f;
2646pub const MATCH_ZIP: u32 = 0x8f01013;
2647pub const MASK_ZIP: u32 = 0xfff0707f;
2648pub const CSR_FFLAGS: u16 = 0x1;
2649pub const CSR_FRM: u16 = 0x2;
2650pub const CSR_FCSR: u16 = 0x3;
2651pub const CSR_VSTART: u16 = 0x8;
2652pub const CSR_VXSAT: u16 = 0x9;
2653pub const CSR_VXRM: u16 = 0xa;
2654pub const CSR_VCSR: u16 = 0xf;
2655pub const CSR_SSP: u16 = 0x11;
2656pub const CSR_SEED: u16 = 0x15;
2657pub const CSR_JVT: u16 = 0x17;
2658pub const CSR_CYCLE: u16 = 0xc00;
2659pub const CSR_TIME: u16 = 0xc01;
2660pub const CSR_INSTRET: u16 = 0xc02;
2661pub const CSR_HPMCOUNTER3: u16 = 0xc03;
2662pub const CSR_HPMCOUNTER4: u16 = 0xc04;
2663pub const CSR_HPMCOUNTER5: u16 = 0xc05;
2664pub const CSR_HPMCOUNTER6: u16 = 0xc06;
2665pub const CSR_HPMCOUNTER7: u16 = 0xc07;
2666pub const CSR_HPMCOUNTER8: u16 = 0xc08;
2667pub const CSR_HPMCOUNTER9: u16 = 0xc09;
2668pub const CSR_HPMCOUNTER10: u16 = 0xc0a;
2669pub const CSR_HPMCOUNTER11: u16 = 0xc0b;
2670pub const CSR_HPMCOUNTER12: u16 = 0xc0c;
2671pub const CSR_HPMCOUNTER13: u16 = 0xc0d;
2672pub const CSR_HPMCOUNTER14: u16 = 0xc0e;
2673pub const CSR_HPMCOUNTER15: u16 = 0xc0f;
2674pub const CSR_HPMCOUNTER16: u16 = 0xc10;
2675pub const CSR_HPMCOUNTER17: u16 = 0xc11;
2676pub const CSR_HPMCOUNTER18: u16 = 0xc12;
2677pub const CSR_HPMCOUNTER19: u16 = 0xc13;
2678pub const CSR_HPMCOUNTER20: u16 = 0xc14;
2679pub const CSR_HPMCOUNTER21: u16 = 0xc15;
2680pub const CSR_HPMCOUNTER22: u16 = 0xc16;
2681pub const CSR_HPMCOUNTER23: u16 = 0xc17;
2682pub const CSR_HPMCOUNTER24: u16 = 0xc18;
2683pub const CSR_HPMCOUNTER25: u16 = 0xc19;
2684pub const CSR_HPMCOUNTER26: u16 = 0xc1a;
2685pub const CSR_HPMCOUNTER27: u16 = 0xc1b;
2686pub const CSR_HPMCOUNTER28: u16 = 0xc1c;
2687pub const CSR_HPMCOUNTER29: u16 = 0xc1d;
2688pub const CSR_HPMCOUNTER30: u16 = 0xc1e;
2689pub const CSR_HPMCOUNTER31: u16 = 0xc1f;
2690pub const CSR_VL: u16 = 0xc20;
2691pub const CSR_VTYPE: u16 = 0xc21;
2692pub const CSR_VLENB: u16 = 0xc22;
2693pub const CSR_SSTATUS: u16 = 0x100;
2694pub const CSR_SIE: u16 = 0x104;
2695pub const CSR_STVEC: u16 = 0x105;
2696pub const CSR_SCOUNTEREN: u16 = 0x106;
2697pub const CSR_SENVCFG: u16 = 0x10a;
2698pub const CSR_SSTATEEN0: u16 = 0x10c;
2699pub const CSR_SSTATEEN1: u16 = 0x10d;
2700pub const CSR_SSTATEEN2: u16 = 0x10e;
2701pub const CSR_SSTATEEN3: u16 = 0x10f;
2702pub const CSR_SCOUNTINHIBIT: u16 = 0x120;
2703pub const CSR_SSCRATCH: u16 = 0x140;
2704pub const CSR_SEPC: u16 = 0x141;
2705pub const CSR_SCAUSE: u16 = 0x142;
2706pub const CSR_STVAL: u16 = 0x143;
2707pub const CSR_SIP: u16 = 0x144;
2708pub const CSR_STIMECMP: u16 = 0x14d;
2709pub const CSR_SCTRCTL: u16 = 0x14e;
2710pub const CSR_SCTRSTATUS: u16 = 0x14f;
2711pub const CSR_SISELECT: u16 = 0x150;
2712pub const CSR_SIREG: u16 = 0x151;
2713pub const CSR_SIREG2: u16 = 0x152;
2714pub const CSR_SIREG3: u16 = 0x153;
2715pub const CSR_SIREG4: u16 = 0x155;
2716pub const CSR_SIREG5: u16 = 0x156;
2717pub const CSR_SIREG6: u16 = 0x157;
2718pub const CSR_STOPEI: u16 = 0x15c;
2719pub const CSR_SCTRDEPTH: u16 = 0x15f;
2720pub const CSR_SATP: u16 = 0x180;
2721pub const CSR_SRMCFG: u16 = 0x181;
2722pub const CSR_SPMPEN: u16 = 0x183;
2723pub const CSR_SCONTEXT: u16 = 0x5a8;
2724pub const CSR_VSSTATUS: u16 = 0x200;
2725pub const CSR_VSIE: u16 = 0x204;
2726pub const CSR_VSTVEC: u16 = 0x205;
2727pub const CSR_VSSCRATCH: u16 = 0x240;
2728pub const CSR_VSEPC: u16 = 0x241;
2729pub const CSR_VSCAUSE: u16 = 0x242;
2730pub const CSR_VSTVAL: u16 = 0x243;
2731pub const CSR_VSIP: u16 = 0x244;
2732pub const CSR_VSTIMECMP: u16 = 0x24d;
2733pub const CSR_VSCTRCTL: u16 = 0x24e;
2734pub const CSR_VSISELECT: u16 = 0x250;
2735pub const CSR_VSIREG: u16 = 0x251;
2736pub const CSR_VSIREG2: u16 = 0x252;
2737pub const CSR_VSIREG3: u16 = 0x253;
2738pub const CSR_VSIREG4: u16 = 0x255;
2739pub const CSR_VSIREG5: u16 = 0x256;
2740pub const CSR_VSIREG6: u16 = 0x257;
2741pub const CSR_VSTOPEI: u16 = 0x25c;
2742pub const CSR_VSATP: u16 = 0x280;
2743pub const CSR_HSTATUS: u16 = 0x600;
2744pub const CSR_HEDELEG: u16 = 0x602;
2745pub const CSR_HIDELEG: u16 = 0x603;
2746pub const CSR_HIE: u16 = 0x604;
2747pub const CSR_HTIMEDELTA: u16 = 0x605;
2748pub const CSR_HCOUNTEREN: u16 = 0x606;
2749pub const CSR_HGEIE: u16 = 0x607;
2750pub const CSR_HVIEN: u16 = 0x608;
2751pub const CSR_HVICTL: u16 = 0x609;
2752pub const CSR_HENVCFG: u16 = 0x60a;
2753pub const CSR_HSTATEEN0: u16 = 0x60c;
2754pub const CSR_HSTATEEN1: u16 = 0x60d;
2755pub const CSR_HSTATEEN2: u16 = 0x60e;
2756pub const CSR_HSTATEEN3: u16 = 0x60f;
2757pub const CSR_HTVAL: u16 = 0x643;
2758pub const CSR_HIP: u16 = 0x644;
2759pub const CSR_HVIP: u16 = 0x645;
2760pub const CSR_HVIPRIO1: u16 = 0x646;
2761pub const CSR_HVIPRIO2: u16 = 0x647;
2762pub const CSR_HTINST: u16 = 0x64a;
2763pub const CSR_HGATP: u16 = 0x680;
2764pub const CSR_HCONTEXT: u16 = 0x6a8;
2765pub const CSR_HGEIP: u16 = 0xe12;
2766pub const CSR_VSTOPI: u16 = 0xeb0;
2767pub const CSR_SCOUNTOVF: u16 = 0xda0;
2768pub const CSR_STOPI: u16 = 0xdb0;
2769pub const CSR_UTVT: u16 = 0x7;
2770pub const CSR_UNXTI: u16 = 0x45;
2771pub const CSR_UINTSTATUS: u16 = 0x46;
2772pub const CSR_USCRATCHCSW: u16 = 0x48;
2773pub const CSR_USCRATCHCSWL: u16 = 0x49;
2774pub const CSR_STVT: u16 = 0x107;
2775pub const CSR_SNXTI: u16 = 0x145;
2776pub const CSR_SINTSTATUS: u16 = 0x146;
2777pub const CSR_SSCRATCHCSW: u16 = 0x148;
2778pub const CSR_SSCRATCHCSWL: u16 = 0x149;
2779pub const CSR_MTVT: u16 = 0x307;
2780pub const CSR_MPMPDELEG: u16 = 0x316;
2781pub const CSR_MNXTI: u16 = 0x345;
2782pub const CSR_MINTSTATUS: u16 = 0x346;
2783pub const CSR_MSCRATCHCSW: u16 = 0x348;
2784pub const CSR_MSCRATCHCSWL: u16 = 0x349;
2785pub const CSR_MSTATUS: u16 = 0x300;
2786pub const CSR_MISA: u16 = 0x301;
2787pub const CSR_MEDELEG: u16 = 0x302;
2788pub const CSR_MIDELEG: u16 = 0x303;
2789pub const CSR_MIE: u16 = 0x304;
2790pub const CSR_MTVEC: u16 = 0x305;
2791pub const CSR_MCOUNTEREN: u16 = 0x306;
2792pub const CSR_MVIEN: u16 = 0x308;
2793pub const CSR_MVIP: u16 = 0x309;
2794pub const CSR_MENVCFG: u16 = 0x30a;
2795pub const CSR_MSTATEEN0: u16 = 0x30c;
2796pub const CSR_MSTATEEN1: u16 = 0x30d;
2797pub const CSR_MSTATEEN2: u16 = 0x30e;
2798pub const CSR_MSTATEEN3: u16 = 0x30f;
2799pub const CSR_MCOUNTINHIBIT: u16 = 0x320;
2800pub const CSR_MSCRATCH: u16 = 0x340;
2801pub const CSR_MEPC: u16 = 0x341;
2802pub const CSR_MCAUSE: u16 = 0x342;
2803pub const CSR_MTVAL: u16 = 0x343;
2804pub const CSR_MIP: u16 = 0x344;
2805pub const CSR_MTINST: u16 = 0x34a;
2806pub const CSR_MTVAL2: u16 = 0x34b;
2807pub const CSR_MCTRCTL: u16 = 0x34e;
2808pub const CSR_MISELECT: u16 = 0x350;
2809pub const CSR_MIREG: u16 = 0x351;
2810pub const CSR_MIREG2: u16 = 0x352;
2811pub const CSR_MIREG3: u16 = 0x353;
2812pub const CSR_MIREG4: u16 = 0x355;
2813pub const CSR_MIREG5: u16 = 0x356;
2814pub const CSR_MIREG6: u16 = 0x357;
2815pub const CSR_MTOPEI: u16 = 0x35c;
2816pub const CSR_PMPCFG0: u16 = 0x3a0;
2817pub const CSR_PMPCFG1: u16 = 0x3a1;
2818pub const CSR_PMPCFG2: u16 = 0x3a2;
2819pub const CSR_PMPCFG3: u16 = 0x3a3;
2820pub const CSR_PMPCFG4: u16 = 0x3a4;
2821pub const CSR_PMPCFG5: u16 = 0x3a5;
2822pub const CSR_PMPCFG6: u16 = 0x3a6;
2823pub const CSR_PMPCFG7: u16 = 0x3a7;
2824pub const CSR_PMPCFG8: u16 = 0x3a8;
2825pub const CSR_PMPCFG9: u16 = 0x3a9;
2826pub const CSR_PMPCFG10: u16 = 0x3aa;
2827pub const CSR_PMPCFG11: u16 = 0x3ab;
2828pub const CSR_PMPCFG12: u16 = 0x3ac;
2829pub const CSR_PMPCFG13: u16 = 0x3ad;
2830pub const CSR_PMPCFG14: u16 = 0x3ae;
2831pub const CSR_PMPCFG15: u16 = 0x3af;
2832pub const CSR_PMPADDR0: u16 = 0x3b0;
2833pub const CSR_PMPADDR1: u16 = 0x3b1;
2834pub const CSR_PMPADDR2: u16 = 0x3b2;
2835pub const CSR_PMPADDR3: u16 = 0x3b3;
2836pub const CSR_PMPADDR4: u16 = 0x3b4;
2837pub const CSR_PMPADDR5: u16 = 0x3b5;
2838pub const CSR_PMPADDR6: u16 = 0x3b6;
2839pub const CSR_PMPADDR7: u16 = 0x3b7;
2840pub const CSR_PMPADDR8: u16 = 0x3b8;
2841pub const CSR_PMPADDR9: u16 = 0x3b9;
2842pub const CSR_PMPADDR10: u16 = 0x3ba;
2843pub const CSR_PMPADDR11: u16 = 0x3bb;
2844pub const CSR_PMPADDR12: u16 = 0x3bc;
2845pub const CSR_PMPADDR13: u16 = 0x3bd;
2846pub const CSR_PMPADDR14: u16 = 0x3be;
2847pub const CSR_PMPADDR15: u16 = 0x3bf;
2848pub const CSR_PMPADDR16: u16 = 0x3c0;
2849pub const CSR_PMPADDR17: u16 = 0x3c1;
2850pub const CSR_PMPADDR18: u16 = 0x3c2;
2851pub const CSR_PMPADDR19: u16 = 0x3c3;
2852pub const CSR_PMPADDR20: u16 = 0x3c4;
2853pub const CSR_PMPADDR21: u16 = 0x3c5;
2854pub const CSR_PMPADDR22: u16 = 0x3c6;
2855pub const CSR_PMPADDR23: u16 = 0x3c7;
2856pub const CSR_PMPADDR24: u16 = 0x3c8;
2857pub const CSR_PMPADDR25: u16 = 0x3c9;
2858pub const CSR_PMPADDR26: u16 = 0x3ca;
2859pub const CSR_PMPADDR27: u16 = 0x3cb;
2860pub const CSR_PMPADDR28: u16 = 0x3cc;
2861pub const CSR_PMPADDR29: u16 = 0x3cd;
2862pub const CSR_PMPADDR30: u16 = 0x3ce;
2863pub const CSR_PMPADDR31: u16 = 0x3cf;
2864pub const CSR_PMPADDR32: u16 = 0x3d0;
2865pub const CSR_PMPADDR33: u16 = 0x3d1;
2866pub const CSR_PMPADDR34: u16 = 0x3d2;
2867pub const CSR_PMPADDR35: u16 = 0x3d3;
2868pub const CSR_PMPADDR36: u16 = 0x3d4;
2869pub const CSR_PMPADDR37: u16 = 0x3d5;
2870pub const CSR_PMPADDR38: u16 = 0x3d6;
2871pub const CSR_PMPADDR39: u16 = 0x3d7;
2872pub const CSR_PMPADDR40: u16 = 0x3d8;
2873pub const CSR_PMPADDR41: u16 = 0x3d9;
2874pub const CSR_PMPADDR42: u16 = 0x3da;
2875pub const CSR_PMPADDR43: u16 = 0x3db;
2876pub const CSR_PMPADDR44: u16 = 0x3dc;
2877pub const CSR_PMPADDR45: u16 = 0x3dd;
2878pub const CSR_PMPADDR46: u16 = 0x3de;
2879pub const CSR_PMPADDR47: u16 = 0x3df;
2880pub const CSR_PMPADDR48: u16 = 0x3e0;
2881pub const CSR_PMPADDR49: u16 = 0x3e1;
2882pub const CSR_PMPADDR50: u16 = 0x3e2;
2883pub const CSR_PMPADDR51: u16 = 0x3e3;
2884pub const CSR_PMPADDR52: u16 = 0x3e4;
2885pub const CSR_PMPADDR53: u16 = 0x3e5;
2886pub const CSR_PMPADDR54: u16 = 0x3e6;
2887pub const CSR_PMPADDR55: u16 = 0x3e7;
2888pub const CSR_PMPADDR56: u16 = 0x3e8;
2889pub const CSR_PMPADDR57: u16 = 0x3e9;
2890pub const CSR_PMPADDR58: u16 = 0x3ea;
2891pub const CSR_PMPADDR59: u16 = 0x3eb;
2892pub const CSR_PMPADDR60: u16 = 0x3ec;
2893pub const CSR_PMPADDR61: u16 = 0x3ed;
2894pub const CSR_PMPADDR62: u16 = 0x3ee;
2895pub const CSR_PMPADDR63: u16 = 0x3ef;
2896pub const CSR_MSECCFG: u16 = 0x747;
2897pub const CSR_TSELECT: u16 = 0x7a0;
2898pub const CSR_TDATA1: u16 = 0x7a1;
2899pub const CSR_TDATA2: u16 = 0x7a2;
2900pub const CSR_TDATA3: u16 = 0x7a3;
2901pub const CSR_TINFO: u16 = 0x7a4;
2902pub const CSR_TCONTROL: u16 = 0x7a5;
2903pub const CSR_MCONTEXT: u16 = 0x7a8;
2904pub const CSR_MSCONTEXT: u16 = 0x7aa;
2905pub const CSR_DCSR: u16 = 0x7b0;
2906pub const CSR_DPC: u16 = 0x7b1;
2907pub const CSR_DSCRATCH0: u16 = 0x7b2;
2908pub const CSR_DSCRATCH1: u16 = 0x7b3;
2909pub const CSR_MCYCLE: u16 = 0xb00;
2910pub const CSR_MINSTRET: u16 = 0xb02;
2911pub const CSR_MHPMCOUNTER3: u16 = 0xb03;
2912pub const CSR_MHPMCOUNTER4: u16 = 0xb04;
2913pub const CSR_MHPMCOUNTER5: u16 = 0xb05;
2914pub const CSR_MHPMCOUNTER6: u16 = 0xb06;
2915pub const CSR_MHPMCOUNTER7: u16 = 0xb07;
2916pub const CSR_MHPMCOUNTER8: u16 = 0xb08;
2917pub const CSR_MHPMCOUNTER9: u16 = 0xb09;
2918pub const CSR_MHPMCOUNTER10: u16 = 0xb0a;
2919pub const CSR_MHPMCOUNTER11: u16 = 0xb0b;
2920pub const CSR_MHPMCOUNTER12: u16 = 0xb0c;
2921pub const CSR_MHPMCOUNTER13: u16 = 0xb0d;
2922pub const CSR_MHPMCOUNTER14: u16 = 0xb0e;
2923pub const CSR_MHPMCOUNTER15: u16 = 0xb0f;
2924pub const CSR_MHPMCOUNTER16: u16 = 0xb10;
2925pub const CSR_MHPMCOUNTER17: u16 = 0xb11;
2926pub const CSR_MHPMCOUNTER18: u16 = 0xb12;
2927pub const CSR_MHPMCOUNTER19: u16 = 0xb13;
2928pub const CSR_MHPMCOUNTER20: u16 = 0xb14;
2929pub const CSR_MHPMCOUNTER21: u16 = 0xb15;
2930pub const CSR_MHPMCOUNTER22: u16 = 0xb16;
2931pub const CSR_MHPMCOUNTER23: u16 = 0xb17;
2932pub const CSR_MHPMCOUNTER24: u16 = 0xb18;
2933pub const CSR_MHPMCOUNTER25: u16 = 0xb19;
2934pub const CSR_MHPMCOUNTER26: u16 = 0xb1a;
2935pub const CSR_MHPMCOUNTER27: u16 = 0xb1b;
2936pub const CSR_MHPMCOUNTER28: u16 = 0xb1c;
2937pub const CSR_MHPMCOUNTER29: u16 = 0xb1d;
2938pub const CSR_MHPMCOUNTER30: u16 = 0xb1e;
2939pub const CSR_MHPMCOUNTER31: u16 = 0xb1f;
2940pub const CSR_MCYCLECFG: u16 = 0x321;
2941pub const CSR_MINSTRETCFG: u16 = 0x322;
2942pub const CSR_MHPMEVENT3: u16 = 0x323;
2943pub const CSR_MHPMEVENT4: u16 = 0x324;
2944pub const CSR_MHPMEVENT5: u16 = 0x325;
2945pub const CSR_MHPMEVENT6: u16 = 0x326;
2946pub const CSR_MHPMEVENT7: u16 = 0x327;
2947pub const CSR_MHPMEVENT8: u16 = 0x328;
2948pub const CSR_MHPMEVENT9: u16 = 0x329;
2949pub const CSR_MHPMEVENT10: u16 = 0x32a;
2950pub const CSR_MHPMEVENT11: u16 = 0x32b;
2951pub const CSR_MHPMEVENT12: u16 = 0x32c;
2952pub const CSR_MHPMEVENT13: u16 = 0x32d;
2953pub const CSR_MHPMEVENT14: u16 = 0x32e;
2954pub const CSR_MHPMEVENT15: u16 = 0x32f;
2955pub const CSR_MHPMEVENT16: u16 = 0x330;
2956pub const CSR_MHPMEVENT17: u16 = 0x331;
2957pub const CSR_MHPMEVENT18: u16 = 0x332;
2958pub const CSR_MHPMEVENT19: u16 = 0x333;
2959pub const CSR_MHPMEVENT20: u16 = 0x334;
2960pub const CSR_MHPMEVENT21: u16 = 0x335;
2961pub const CSR_MHPMEVENT22: u16 = 0x336;
2962pub const CSR_MHPMEVENT23: u16 = 0x337;
2963pub const CSR_MHPMEVENT24: u16 = 0x338;
2964pub const CSR_MHPMEVENT25: u16 = 0x339;
2965pub const CSR_MHPMEVENT26: u16 = 0x33a;
2966pub const CSR_MHPMEVENT27: u16 = 0x33b;
2967pub const CSR_MHPMEVENT28: u16 = 0x33c;
2968pub const CSR_MHPMEVENT29: u16 = 0x33d;
2969pub const CSR_MHPMEVENT30: u16 = 0x33e;
2970pub const CSR_MHPMEVENT31: u16 = 0x33f;
2971pub const CSR_MVENDORID: u16 = 0xf11;
2972pub const CSR_MARCHID: u16 = 0xf12;
2973pub const CSR_MIMPID: u16 = 0xf13;
2974pub const CSR_MHARTID: u16 = 0xf14;
2975pub const CSR_MCONFIGPTR: u16 = 0xf15;
2976pub const CSR_MTOPI: u16 = 0xfb0;
2977pub const CSR_SIEH: u16 = 0x114;
2978pub const CSR_SIPH: u16 = 0x154;
2979pub const CSR_STIMECMPH: u16 = 0x15d;
2980pub const CSR_SPMPENH: u16 = 0x193;
2981pub const CSR_VSIEH: u16 = 0x214;
2982pub const CSR_VSIPH: u16 = 0x254;
2983pub const CSR_VSTIMECMPH: u16 = 0x25d;
2984pub const CSR_MEDELEGH: u16 = 0x312;
2985pub const CSR_HEDELEGH: u16 = 0x612;
2986pub const CSR_HTIMEDELTAH: u16 = 0x615;
2987pub const CSR_HIDELEGH: u16 = 0x613;
2988pub const CSR_HVIENH: u16 = 0x618;
2989pub const CSR_HENVCFGH: u16 = 0x61a;
2990pub const CSR_HVIPH: u16 = 0x655;
2991pub const CSR_HVIPRIO1H: u16 = 0x656;
2992pub const CSR_HVIPRIO2H: u16 = 0x657;
2993pub const CSR_HSTATEEN0H: u16 = 0x61c;
2994pub const CSR_HSTATEEN1H: u16 = 0x61d;
2995pub const CSR_HSTATEEN2H: u16 = 0x61e;
2996pub const CSR_HSTATEEN3H: u16 = 0x61f;
2997pub const CSR_CYCLEH: u16 = 0xc80;
2998pub const CSR_TIMEH: u16 = 0xc81;
2999pub const CSR_INSTRETH: u16 = 0xc82;
3000pub const CSR_HPMCOUNTER3H: u16 = 0xc83;
3001pub const CSR_HPMCOUNTER4H: u16 = 0xc84;
3002pub const CSR_HPMCOUNTER5H: u16 = 0xc85;
3003pub const CSR_HPMCOUNTER6H: u16 = 0xc86;
3004pub const CSR_HPMCOUNTER7H: u16 = 0xc87;
3005pub const CSR_HPMCOUNTER8H: u16 = 0xc88;
3006pub const CSR_HPMCOUNTER9H: u16 = 0xc89;
3007pub const CSR_HPMCOUNTER10H: u16 = 0xc8a;
3008pub const CSR_HPMCOUNTER11H: u16 = 0xc8b;
3009pub const CSR_HPMCOUNTER12H: u16 = 0xc8c;
3010pub const CSR_HPMCOUNTER13H: u16 = 0xc8d;
3011pub const CSR_HPMCOUNTER14H: u16 = 0xc8e;
3012pub const CSR_HPMCOUNTER15H: u16 = 0xc8f;
3013pub const CSR_HPMCOUNTER16H: u16 = 0xc90;
3014pub const CSR_HPMCOUNTER17H: u16 = 0xc91;
3015pub const CSR_HPMCOUNTER18H: u16 = 0xc92;
3016pub const CSR_HPMCOUNTER19H: u16 = 0xc93;
3017pub const CSR_HPMCOUNTER20H: u16 = 0xc94;
3018pub const CSR_HPMCOUNTER21H: u16 = 0xc95;
3019pub const CSR_HPMCOUNTER22H: u16 = 0xc96;
3020pub const CSR_HPMCOUNTER23H: u16 = 0xc97;
3021pub const CSR_HPMCOUNTER24H: u16 = 0xc98;
3022pub const CSR_HPMCOUNTER25H: u16 = 0xc99;
3023pub const CSR_HPMCOUNTER26H: u16 = 0xc9a;
3024pub const CSR_HPMCOUNTER27H: u16 = 0xc9b;
3025pub const CSR_HPMCOUNTER28H: u16 = 0xc9c;
3026pub const CSR_HPMCOUNTER29H: u16 = 0xc9d;
3027pub const CSR_HPMCOUNTER30H: u16 = 0xc9e;
3028pub const CSR_HPMCOUNTER31H: u16 = 0xc9f;
3029pub const CSR_MSTATUSH: u16 = 0x310;
3030pub const CSR_MIDELEGH: u16 = 0x313;
3031pub const CSR_MIEH: u16 = 0x314;
3032pub const CSR_MVIENH: u16 = 0x318;
3033pub const CSR_MVIPH: u16 = 0x319;
3034pub const CSR_MENVCFGH: u16 = 0x31a;
3035pub const CSR_MSTATEEN0H: u16 = 0x31c;
3036pub const CSR_MSTATEEN1H: u16 = 0x31d;
3037pub const CSR_MSTATEEN2H: u16 = 0x31e;
3038pub const CSR_MSTATEEN3H: u16 = 0x31f;
3039pub const CSR_MIPH: u16 = 0x354;
3040pub const CSR_MCYCLECFGH: u16 = 0x721;
3041pub const CSR_MINSTRETCFGH: u16 = 0x722;
3042pub const CSR_MHPMEVENT3H: u16 = 0x723;
3043pub const CSR_MHPMEVENT4H: u16 = 0x724;
3044pub const CSR_MHPMEVENT5H: u16 = 0x725;
3045pub const CSR_MHPMEVENT6H: u16 = 0x726;
3046pub const CSR_MHPMEVENT7H: u16 = 0x727;
3047pub const CSR_MHPMEVENT8H: u16 = 0x728;
3048pub const CSR_MHPMEVENT9H: u16 = 0x729;
3049pub const CSR_MHPMEVENT10H: u16 = 0x72a;
3050pub const CSR_MHPMEVENT11H: u16 = 0x72b;
3051pub const CSR_MHPMEVENT12H: u16 = 0x72c;
3052pub const CSR_MHPMEVENT13H: u16 = 0x72d;
3053pub const CSR_MHPMEVENT14H: u16 = 0x72e;
3054pub const CSR_MHPMEVENT15H: u16 = 0x72f;
3055pub const CSR_MHPMEVENT16H: u16 = 0x730;
3056pub const CSR_MHPMEVENT17H: u16 = 0x731;
3057pub const CSR_MHPMEVENT18H: u16 = 0x732;
3058pub const CSR_MHPMEVENT19H: u16 = 0x733;
3059pub const CSR_MHPMEVENT20H: u16 = 0x734;
3060pub const CSR_MHPMEVENT21H: u16 = 0x735;
3061pub const CSR_MHPMEVENT22H: u16 = 0x736;
3062pub const CSR_MHPMEVENT23H: u16 = 0x737;
3063pub const CSR_MHPMEVENT24H: u16 = 0x738;
3064pub const CSR_MHPMEVENT25H: u16 = 0x739;
3065pub const CSR_MHPMEVENT26H: u16 = 0x73a;
3066pub const CSR_MHPMEVENT27H: u16 = 0x73b;
3067pub const CSR_MHPMEVENT28H: u16 = 0x73c;
3068pub const CSR_MHPMEVENT29H: u16 = 0x73d;
3069pub const CSR_MHPMEVENT30H: u16 = 0x73e;
3070pub const CSR_MHPMEVENT31H: u16 = 0x73f;
3071pub const CSR_MNSCRATCH: u16 = 0x740;
3072pub const CSR_MNEPC: u16 = 0x741;
3073pub const CSR_MNCAUSE: u16 = 0x742;
3074pub const CSR_MNSTATUS: u16 = 0x744;
3075pub const CSR_MSECCFGH: u16 = 0x757;
3076pub const CSR_MCYCLEH: u16 = 0xb80;
3077pub const CSR_MINSTRETH: u16 = 0xb82;
3078pub const CSR_MHPMCOUNTER3H: u16 = 0xb83;
3079pub const CSR_MHPMCOUNTER4H: u16 = 0xb84;
3080pub const CSR_MHPMCOUNTER5H: u16 = 0xb85;
3081pub const CSR_MHPMCOUNTER6H: u16 = 0xb86;
3082pub const CSR_MHPMCOUNTER7H: u16 = 0xb87;
3083pub const CSR_MHPMCOUNTER8H: u16 = 0xb88;
3084pub const CSR_MHPMCOUNTER9H: u16 = 0xb89;
3085pub const CSR_MHPMCOUNTER10H: u16 = 0xb8a;
3086pub const CSR_MHPMCOUNTER11H: u16 = 0xb8b;
3087pub const CSR_MHPMCOUNTER12H: u16 = 0xb8c;
3088pub const CSR_MHPMCOUNTER13H: u16 = 0xb8d;
3089pub const CSR_MHPMCOUNTER14H: u16 = 0xb8e;
3090pub const CSR_MHPMCOUNTER15H: u16 = 0xb8f;
3091pub const CSR_MHPMCOUNTER16H: u16 = 0xb90;
3092pub const CSR_MHPMCOUNTER17H: u16 = 0xb91;
3093pub const CSR_MHPMCOUNTER18H: u16 = 0xb92;
3094pub const CSR_MHPMCOUNTER19H: u16 = 0xb93;
3095pub const CSR_MHPMCOUNTER20H: u16 = 0xb94;
3096pub const CSR_MHPMCOUNTER21H: u16 = 0xb95;
3097pub const CSR_MHPMCOUNTER22H: u16 = 0xb96;
3098pub const CSR_MHPMCOUNTER23H: u16 = 0xb97;
3099pub const CSR_MHPMCOUNTER24H: u16 = 0xb98;
3100pub const CSR_MHPMCOUNTER25H: u16 = 0xb99;
3101pub const CSR_MHPMCOUNTER26H: u16 = 0xb9a;
3102pub const CSR_MHPMCOUNTER27H: u16 = 0xb9b;
3103pub const CSR_MHPMCOUNTER28H: u16 = 0xb9c;
3104pub const CSR_MHPMCOUNTER29H: u16 = 0xb9d;
3105pub const CSR_MHPMCOUNTER30H: u16 = 0xb9e;
3106pub const CSR_MHPMCOUNTER31H: u16 = 0xb9f;
3107pub const CAUSE_MISALIGNED_FETCH: u8 = 0x0;
3108pub const CAUSE_FETCH_ACCESS: u8 = 0x1;
3109pub const CAUSE_ILLEGAL_INSTRUCTION: u8 = 0x2;
3110pub const CAUSE_BREAKPOINT: u8 = 0x3;
3111pub const CAUSE_MISALIGNED_LOAD: u8 = 0x4;
3112pub const CAUSE_LOAD_ACCESS: u8 = 0x5;
3113pub const CAUSE_MISALIGNED_STORE: u8 = 0x6;
3114pub const CAUSE_STORE_ACCESS: u8 = 0x7;
3115pub const CAUSE_USER_ECALL: u8 = 0x8;
3116pub const CAUSE_SUPERVISOR_ECALL: u8 = 0x9;
3117pub const CAUSE_VIRTUAL_SUPERVISOR_ECALL: u8 = 0xa;
3118pub const CAUSE_MACHINE_ECALL: u8 = 0xb;
3119pub const CAUSE_FETCH_PAGE_FAULT: u8 = 0xc;
3120pub const CAUSE_LOAD_PAGE_FAULT: u8 = 0xd;
3121pub const CAUSE_STORE_PAGE_FAULT: u8 = 0xf;
3122pub const CAUSE_DOUBLE_TRAP: u8 = 0x10;
3123pub const CAUSE_SOFTWARE_CHECK_FAULT: u8 = 0x12;
3124pub const CAUSE_HARDWARE_ERROR_FAULT: u8 = 0x13;
3125pub const CAUSE_FETCH_GUEST_PAGE_FAULT: u8 = 0x14;
3126pub const CAUSE_LOAD_GUEST_PAGE_FAULT: u8 = 0x15;
3127pub const CAUSE_VIRTUAL_INSTRUCTION: u8 = 0x16;
3128pub const CAUSE_STORE_GUEST_PAGE_FAULT: u8 = 0x17;
3129pub static OPCODE32_MATCH: [u32; 1039] = [
3130    0x33,        /* add */
3131    0xffff_ffff, /* add_uw */
3132    0x13,        /* addi */
3133    0xffff_ffff, /* addiw */
3134    0xffff_ffff, /* addw */
3135    0x2a000033,  /* aes32dsi */
3136    0x2e000033,  /* aes32dsmi */
3137    0x22000033,  /* aes32esi */
3138    0x26000033,  /* aes32esmi */
3139    0xffff_ffff, /* aes64ds */
3140    0xffff_ffff, /* aes64dsm */
3141    0xffff_ffff, /* aes64es */
3142    0xffff_ffff, /* aes64esm */
3143    0xffff_ffff, /* aes64im */
3144    0xffff_ffff, /* aes64ks1i */
3145    0xffff_ffff, /* aes64ks2 */
3146    0x2f,        /* amoadd_b */
3147    0xffff_ffff, /* amoadd_d */
3148    0x102f,      /* amoadd_h */
3149    0x202f,      /* amoadd_w */
3150    0x6000002f,  /* amoand_b */
3151    0xffff_ffff, /* amoand_d */
3152    0x6000102f,  /* amoand_h */
3153    0x6000202f,  /* amoand_w */
3154    0x2800002f,  /* amocas_b */
3155    0x2800302f,  /* amocas_d */
3156    0x2800102f,  /* amocas_h */
3157    0xffff_ffff, /* amocas_q */
3158    0x2800202f,  /* amocas_w */
3159    0xa000002f,  /* amomax_b */
3160    0xffff_ffff, /* amomax_d */
3161    0xa000102f,  /* amomax_h */
3162    0xa000202f,  /* amomax_w */
3163    0xe000002f,  /* amomaxu_b */
3164    0xffff_ffff, /* amomaxu_d */
3165    0xe000102f,  /* amomaxu_h */
3166    0xe000202f,  /* amomaxu_w */
3167    0x8000002f,  /* amomin_b */
3168    0xffff_ffff, /* amomin_d */
3169    0x8000102f,  /* amomin_h */
3170    0x8000202f,  /* amomin_w */
3171    0xc000002f,  /* amominu_b */
3172    0xffff_ffff, /* amominu_d */
3173    0xc000102f,  /* amominu_h */
3174    0xc000202f,  /* amominu_w */
3175    0x4000002f,  /* amoor_b */
3176    0xffff_ffff, /* amoor_d */
3177    0x4000102f,  /* amoor_h */
3178    0x4000202f,  /* amoor_w */
3179    0x800002f,   /* amoswap_b */
3180    0xffff_ffff, /* amoswap_d */
3181    0x800102f,   /* amoswap_h */
3182    0x800202f,   /* amoswap_w */
3183    0x2000002f,  /* amoxor_b */
3184    0xffff_ffff, /* amoxor_d */
3185    0x2000102f,  /* amoxor_h */
3186    0x2000202f,  /* amoxor_w */
3187    0x7033,      /* and */
3188    0x7013,      /* andi */
3189    0x40007033,  /* andn */
3190    0x17,        /* auipc */
3191    0x48001033,  /* bclr */
3192    0xffff_ffff, /* bclri */
3193    0x48001013,  /* bclri_rv32 */
3194    0x63,        /* beq */
3195    0x63,        /* beqz */
3196    0x48005033,  /* bext */
3197    0xffff_ffff, /* bexti */
3198    0x48005013,  /* bexti_rv32 */
3199    0x5063,      /* bge */
3200    0x7063,      /* bgeu */
3201    0x5063,      /* bgez */
3202    0x4063,      /* bgt */
3203    0x6063,      /* bgtu */
3204    0x4063,      /* bgtz */
3205    0x68001033,  /* binv */
3206    0xffff_ffff, /* binvi */
3207    0x68001013,  /* binvi_rv32 */
3208    0x5063,      /* ble */
3209    0x7063,      /* bleu */
3210    0x5063,      /* blez */
3211    0x4063,      /* blt */
3212    0x6063,      /* bltu */
3213    0x4063,      /* bltz */
3214    0x1063,      /* bne */
3215    0x1063,      /* bnez */
3216    0x68705013,  /* brev8 */
3217    0x28001033,  /* bset */
3218    0xffff_ffff, /* bseti */
3219    0x28001013,  /* bseti_rv32 */
3220    0x9002,      /* c_add */
3221    0x1,         /* c_addi */
3222    0x6101,      /* c_addi16sp */
3223    0x0,         /* c_addi4spn */
3224    0xffff_ffff, /* c_addiw */
3225    0xffff_ffff, /* c_addw */
3226    0x8c61,      /* c_and */
3227    0x8801,      /* c_andi */
3228    0xc001,      /* c_beqz */
3229    0xe001,      /* c_bnez */
3230    0x9002,      /* c_ebreak */
3231    0x2000,      /* c_fld */
3232    0x2002,      /* c_fldsp */
3233    0x6000,      /* c_flw */
3234    0x6002,      /* c_flwsp */
3235    0xa000,      /* c_fsd */
3236    0xa002,      /* c_fsdsp */
3237    0xe000,      /* c_fsw */
3238    0xe002,      /* c_fswsp */
3239    0xa001,      /* c_j */
3240    0x2001,      /* c_jal */
3241    0x9002,      /* c_jalr */
3242    0x8002,      /* c_jr */
3243    0x8000,      /* c_lbu */
3244    0x6000,      /* c_ld */
3245    0x6002,      /* c_ldsp */
3246    0x8440,      /* c_lh */
3247    0x8400,      /* c_lhu */
3248    0x4001,      /* c_li */
3249    0x6001,      /* c_lui */
3250    0x4000,      /* c_lw */
3251    0x4002,      /* c_lwsp */
3252    0x6081,      /* c_mop_1 */
3253    0x6581,      /* c_mop_11 */
3254    0x6681,      /* c_mop_13 */
3255    0x6781,      /* c_mop_15 */
3256    0x6181,      /* c_mop_3 */
3257    0x6281,      /* c_mop_5 */
3258    0x6381,      /* c_mop_7 */
3259    0x6481,      /* c_mop_9 */
3260    0x6081,      /* c_mop_N */
3261    0x9c41,      /* c_mul */
3262    0x8002,      /* c_mv */
3263    0x1,         /* c_nop */
3264    0x9c75,      /* c_not */
3265    0x9016,      /* c_ntl_all */
3266    0x900a,      /* c_ntl_p1 */
3267    0x900e,      /* c_ntl_pall */
3268    0x9012,      /* c_ntl_s1 */
3269    0x8c41,      /* c_or */
3270    0x8800,      /* c_sb */
3271    0xe000,      /* c_sd */
3272    0xe002,      /* c_sdsp */
3273    0x9c65,      /* c_sext_b */
3274    0x9c6d,      /* c_sext_h */
3275    0xffff_ffff, /* c_sext_w */
3276    0x8c00,      /* c_sh */
3277    0x2,         /* c_slli */
3278    0x2,         /* c_slli_rv32 */
3279    0x8401,      /* c_srai */
3280    0x8401,      /* c_srai_rv32 */
3281    0x8001,      /* c_srli */
3282    0x8001,      /* c_srli_rv32 */
3283    0x6281,      /* c_sspopchk_x5 */
3284    0x6081,      /* c_sspush_x1 */
3285    0x8c01,      /* c_sub */
3286    0xffff_ffff, /* c_subw */
3287    0xc000,      /* c_sw */
3288    0xc002,      /* c_swsp */
3289    0x8c21,      /* c_xor */
3290    0x9c61,      /* c_zext_b */
3291    0x9c69,      /* c_zext_h */
3292    0xffff_ffff, /* c_zext_w */
3293    0x10200f,    /* cbo_clean */
3294    0x20200f,    /* cbo_flush */
3295    0x200f,      /* cbo_inval */
3296    0x40200f,    /* cbo_zero */
3297    0xa001033,   /* clmul */
3298    0xa003033,   /* clmulh */
3299    0xa002033,   /* clmulr */
3300    0x60001013,  /* clz */
3301    0xffff_ffff, /* clzw */
3302    0xa002,      /* cm_jalt */
3303    0xac62,      /* cm_mva01s */
3304    0xac22,      /* cm_mvsa01 */
3305    0xba02,      /* cm_pop */
3306    0xbe02,      /* cm_popret */
3307    0xbc02,      /* cm_popretz */
3308    0xb802,      /* cm_push */
3309    0x60201013,  /* cpop */
3310    0xffff_ffff, /* cpopw */
3311    0x3073,      /* csrc */
3312    0x7073,      /* csrci */
3313    0x2073,      /* csrr */
3314    0x3073,      /* csrrc */
3315    0x7073,      /* csrrci */
3316    0x2073,      /* csrrs */
3317    0x6073,      /* csrrsi */
3318    0x1073,      /* csrrw */
3319    0x5073,      /* csrrwi */
3320    0x2073,      /* csrs */
3321    0x6073,      /* csrsi */
3322    0x1073,      /* csrw */
3323    0x5073,      /* csrwi */
3324    0x60101013,  /* ctz */
3325    0xffff_ffff, /* ctzw */
3326    0xe005033,   /* czero_eqz */
3327    0xe007033,   /* czero_nez */
3328    0x2004033,   /* div */
3329    0x2005033,   /* divu */
3330    0xffff_ffff, /* divuw */
3331    0xffff_ffff, /* divw */
3332    0x7b200073,  /* dret */
3333    0x100073,    /* ebreak */
3334    0x73,        /* ecall */
3335    0x22002053,  /* fabs_d */
3336    0x24002053,  /* fabs_h */
3337    0x26002053,  /* fabs_q */
3338    0x20002053,  /* fabs_s */
3339    0x2000053,   /* fadd_d */
3340    0x4000053,   /* fadd_h */
3341    0x6000053,   /* fadd_q */
3342    0x53,        /* fadd_s */
3343    0xe2001053,  /* fclass_d */
3344    0xe4001053,  /* fclass_h */
3345    0xe6001053,  /* fclass_q */
3346    0xe0001053,  /* fclass_s */
3347    0x44800053,  /* fcvt_bf16_s */
3348    0x42200053,  /* fcvt_d_h */
3349    0xffff_ffff, /* fcvt_d_l */
3350    0xffff_ffff, /* fcvt_d_lu */
3351    0x42300053,  /* fcvt_d_q */
3352    0x42000053,  /* fcvt_d_s */
3353    0xd2000053,  /* fcvt_d_w */
3354    0xd2100053,  /* fcvt_d_wu */
3355    0x44100053,  /* fcvt_h_d */
3356    0xffff_ffff, /* fcvt_h_l */
3357    0xffff_ffff, /* fcvt_h_lu */
3358    0x44300053,  /* fcvt_h_q */
3359    0x44000053,  /* fcvt_h_s */
3360    0xd4000053,  /* fcvt_h_w */
3361    0xd4100053,  /* fcvt_h_wu */
3362    0xffff_ffff, /* fcvt_l_d */
3363    0xffff_ffff, /* fcvt_l_h */
3364    0xffff_ffff, /* fcvt_l_q */
3365    0xffff_ffff, /* fcvt_l_s */
3366    0xffff_ffff, /* fcvt_lu_d */
3367    0xffff_ffff, /* fcvt_lu_h */
3368    0xffff_ffff, /* fcvt_lu_q */
3369    0xffff_ffff, /* fcvt_lu_s */
3370    0x46100053,  /* fcvt_q_d */
3371    0x46200053,  /* fcvt_q_h */
3372    0xffff_ffff, /* fcvt_q_l */
3373    0xffff_ffff, /* fcvt_q_lu */
3374    0x46000053,  /* fcvt_q_s */
3375    0xd6000053,  /* fcvt_q_w */
3376    0xd6100053,  /* fcvt_q_wu */
3377    0x40600053,  /* fcvt_s_bf16 */
3378    0x40100053,  /* fcvt_s_d */
3379    0x40200053,  /* fcvt_s_h */
3380    0xffff_ffff, /* fcvt_s_l */
3381    0xffff_ffff, /* fcvt_s_lu */
3382    0x40300053,  /* fcvt_s_q */
3383    0xd0000053,  /* fcvt_s_w */
3384    0xd0100053,  /* fcvt_s_wu */
3385    0xc2000053,  /* fcvt_w_d */
3386    0xc4000053,  /* fcvt_w_h */
3387    0xc6000053,  /* fcvt_w_q */
3388    0xc0000053,  /* fcvt_w_s */
3389    0xc2100053,  /* fcvt_wu_d */
3390    0xc4100053,  /* fcvt_wu_h */
3391    0xc6100053,  /* fcvt_wu_q */
3392    0xc0100053,  /* fcvt_wu_s */
3393    0xc2801053,  /* fcvtmod_w_d */
3394    0x1a000053,  /* fdiv_d */
3395    0x1c000053,  /* fdiv_h */
3396    0x1e000053,  /* fdiv_q */
3397    0x18000053,  /* fdiv_s */
3398    0xf,         /* fence */
3399    0x100f,      /* fence_i */
3400    0x8330000f,  /* fence_tso */
3401    0xa2002053,  /* feq_d */
3402    0xa4002053,  /* feq_h */
3403    0xa6002053,  /* feq_q */
3404    0xa0002053,  /* feq_s */
3405    0x3007,      /* fld */
3406    0xa2000053,  /* fle_d */
3407    0xa4000053,  /* fle_h */
3408    0xa6000053,  /* fle_q */
3409    0xa0000053,  /* fle_s */
3410    0xa2004053,  /* fleq_d */
3411    0xa4004053,  /* fleq_h */
3412    0xa6004053,  /* fleq_q */
3413    0xa0004053,  /* fleq_s */
3414    0x1007,      /* flh */
3415    0xf2100053,  /* fli_d */
3416    0xf4100053,  /* fli_h */
3417    0xf6100053,  /* fli_q */
3418    0xf0100053,  /* fli_s */
3419    0x4007,      /* flq */
3420    0xa2001053,  /* flt_d */
3421    0xa4001053,  /* flt_h */
3422    0xa6001053,  /* flt_q */
3423    0xa0001053,  /* flt_s */
3424    0xa2005053,  /* fltq_d */
3425    0xa4005053,  /* fltq_h */
3426    0xa6005053,  /* fltq_q */
3427    0xa0005053,  /* fltq_s */
3428    0x2007,      /* flw */
3429    0x2000043,   /* fmadd_d */
3430    0x4000043,   /* fmadd_h */
3431    0x6000043,   /* fmadd_q */
3432    0x43,        /* fmadd_s */
3433    0x2a001053,  /* fmax_d */
3434    0x2c001053,  /* fmax_h */
3435    0x2e001053,  /* fmax_q */
3436    0x28001053,  /* fmax_s */
3437    0x2a003053,  /* fmaxm_d */
3438    0x2c003053,  /* fmaxm_h */
3439    0x2e003053,  /* fmaxm_q */
3440    0x28003053,  /* fmaxm_s */
3441    0x2a000053,  /* fmin_d */
3442    0x2c000053,  /* fmin_h */
3443    0x2e000053,  /* fmin_q */
3444    0x28000053,  /* fmin_s */
3445    0x2a002053,  /* fminm_d */
3446    0x2c002053,  /* fminm_h */
3447    0x2e002053,  /* fminm_q */
3448    0x28002053,  /* fminm_s */
3449    0x2000047,   /* fmsub_d */
3450    0x4000047,   /* fmsub_h */
3451    0x6000047,   /* fmsub_q */
3452    0x47,        /* fmsub_s */
3453    0x12000053,  /* fmul_d */
3454    0x14000053,  /* fmul_h */
3455    0x16000053,  /* fmul_q */
3456    0x10000053,  /* fmul_s */
3457    0x22000053,  /* fmv_d */
3458    0xffff_ffff, /* fmv_d_x */
3459    0x24000053,  /* fmv_h */
3460    0xf4000053,  /* fmv_h_x */
3461    0x26000053,  /* fmv_q */
3462    0x20000053,  /* fmv_s */
3463    0xf0000053,  /* fmv_s_x */
3464    0xf0000053,  /* fmv_w_x */
3465    0xffff_ffff, /* fmv_x_d */
3466    0xe4000053,  /* fmv_x_h */
3467    0xe0000053,  /* fmv_x_s */
3468    0xe0000053,  /* fmv_x_w */
3469    0xe2100053,  /* fmvh_x_d */
3470    0xffff_ffff, /* fmvh_x_q */
3471    0xb2000053,  /* fmvp_d_x */
3472    0xffff_ffff, /* fmvp_q_x */
3473    0x22001053,  /* fneg_d */
3474    0x24001053,  /* fneg_h */
3475    0x26001053,  /* fneg_q */
3476    0x20001053,  /* fneg_s */
3477    0x200004f,   /* fnmadd_d */
3478    0x400004f,   /* fnmadd_h */
3479    0x600004f,   /* fnmadd_q */
3480    0x4f,        /* fnmadd_s */
3481    0x200004b,   /* fnmsub_d */
3482    0x400004b,   /* fnmsub_h */
3483    0x600004b,   /* fnmsub_q */
3484    0x4b,        /* fnmsub_s */
3485    0x302073,    /* frcsr */
3486    0x102073,    /* frflags */
3487    0x42400053,  /* fround_d */
3488    0x44400053,  /* fround_h */
3489    0x46400053,  /* fround_q */
3490    0x40400053,  /* fround_s */
3491    0x42500053,  /* froundnx_d */
3492    0x44500053,  /* froundnx_h */
3493    0x46500053,  /* froundnx_q */
3494    0x40500053,  /* froundnx_s */
3495    0x202073,    /* frrm */
3496    0x301073,    /* fscsr */
3497    0x3027,      /* fsd */
3498    0x101073,    /* fsflags */
3499    0x105073,    /* fsflagsi */
3500    0x22000053,  /* fsgnj_d */
3501    0x24000053,  /* fsgnj_h */
3502    0x26000053,  /* fsgnj_q */
3503    0x20000053,  /* fsgnj_s */
3504    0x22001053,  /* fsgnjn_d */
3505    0x24001053,  /* fsgnjn_h */
3506    0x26001053,  /* fsgnjn_q */
3507    0x20001053,  /* fsgnjn_s */
3508    0x22002053,  /* fsgnjx_d */
3509    0x24002053,  /* fsgnjx_h */
3510    0x26002053,  /* fsgnjx_q */
3511    0x20002053,  /* fsgnjx_s */
3512    0x1027,      /* fsh */
3513    0x4027,      /* fsq */
3514    0x5a000053,  /* fsqrt_d */
3515    0x5c000053,  /* fsqrt_h */
3516    0x5e000053,  /* fsqrt_q */
3517    0x58000053,  /* fsqrt_s */
3518    0x201073,    /* fsrm */
3519    0x205073,    /* fsrmi */
3520    0xa000053,   /* fsub_d */
3521    0xc000053,   /* fsub_h */
3522    0xe000053,   /* fsub_q */
3523    0x8000053,   /* fsub_s */
3524    0x2027,      /* fsw */
3525    0x62000073,  /* hfence_gvma */
3526    0x22000073,  /* hfence_vvma */
3527    0x66000073,  /* hinval_gvma */
3528    0x26000073,  /* hinval_vvma */
3529    0x60004073,  /* hlv_b */
3530    0x60104073,  /* hlv_bu */
3531    0xffff_ffff, /* hlv_d */
3532    0x64004073,  /* hlv_h */
3533    0x64104073,  /* hlv_hu */
3534    0x68004073,  /* hlv_w */
3535    0xffff_ffff, /* hlv_wu */
3536    0x64304073,  /* hlvx_hu */
3537    0x68304073,  /* hlvx_wu */
3538    0x62004073,  /* hsv_b */
3539    0xffff_ffff, /* hsv_d */
3540    0x66004073,  /* hsv_h */
3541    0x6a004073,  /* hsv_w */
3542    0x6f,        /* j */
3543    0x6f,        /* jal */
3544    0xef,        /* jal_pseudo */
3545    0x67,        /* jalr */
3546    0xe7,        /* jalr_pseudo */
3547    0x67,        /* jr */
3548    0x3,         /* lb */
3549    0x4003,      /* lbu */
3550    0xffff_ffff, /* ld */
3551    0x1003,      /* lh */
3552    0x5003,      /* lhu */
3553    0x17,        /* lpad */
3554    0xffff_ffff, /* lr_d */
3555    0x1000202f,  /* lr_w */
3556    0x37,        /* lui */
3557    0x2003,      /* lw */
3558    0xffff_ffff, /* lwu */
3559    0xa006033,   /* max */
3560    0xa007033,   /* maxu */
3561    0xa004033,   /* min */
3562    0xa005033,   /* minu */
3563    0x70200073,  /* mnret */
3564    0x81c04073,  /* mop_r_0 */
3565    0x81d04073,  /* mop_r_1 */
3566    0x89e04073,  /* mop_r_10 */
3567    0x89f04073,  /* mop_r_11 */
3568    0x8dc04073,  /* mop_r_12 */
3569    0x8dd04073,  /* mop_r_13 */
3570    0x8de04073,  /* mop_r_14 */
3571    0x8df04073,  /* mop_r_15 */
3572    0xc1c04073,  /* mop_r_16 */
3573    0xc1d04073,  /* mop_r_17 */
3574    0xc1e04073,  /* mop_r_18 */
3575    0xc1f04073,  /* mop_r_19 */
3576    0x81e04073,  /* mop_r_2 */
3577    0xc5c04073,  /* mop_r_20 */
3578    0xc5d04073,  /* mop_r_21 */
3579    0xc5e04073,  /* mop_r_22 */
3580    0xc5f04073,  /* mop_r_23 */
3581    0xc9c04073,  /* mop_r_24 */
3582    0xc9d04073,  /* mop_r_25 */
3583    0xc9e04073,  /* mop_r_26 */
3584    0xc9f04073,  /* mop_r_27 */
3585    0xcdc04073,  /* mop_r_28 */
3586    0xcdd04073,  /* mop_r_29 */
3587    0x81f04073,  /* mop_r_3 */
3588    0xcde04073,  /* mop_r_30 */
3589    0xcdf04073,  /* mop_r_31 */
3590    0x85c04073,  /* mop_r_4 */
3591    0x85d04073,  /* mop_r_5 */
3592    0x85e04073,  /* mop_r_6 */
3593    0x85f04073,  /* mop_r_7 */
3594    0x89c04073,  /* mop_r_8 */
3595    0x89d04073,  /* mop_r_9 */
3596    0x81c04073,  /* mop_r_N */
3597    0x82004073,  /* mop_rr_0 */
3598    0x86004073,  /* mop_rr_1 */
3599    0x8a004073,  /* mop_rr_2 */
3600    0x8e004073,  /* mop_rr_3 */
3601    0xc2004073,  /* mop_rr_4 */
3602    0xc6004073,  /* mop_rr_5 */
3603    0xca004073,  /* mop_rr_6 */
3604    0xce004073,  /* mop_rr_7 */
3605    0x82004073,  /* mop_rr_N */
3606    0x30200073,  /* mret */
3607    0x2000033,   /* mul */
3608    0x2001033,   /* mulh */
3609    0x2002033,   /* mulhsu */
3610    0x2003033,   /* mulhu */
3611    0xffff_ffff, /* mulw */
3612    0x13,        /* mv */
3613    0x40000033,  /* neg */
3614    0x13,        /* nop */
3615    0x500033,    /* ntl_all */
3616    0x200033,    /* ntl_p1 */
3617    0x300033,    /* ntl_pall */
3618    0x400033,    /* ntl_s1 */
3619    0x6033,      /* or */
3620    0x28705013,  /* orc_b */
3621    0x6013,      /* ori */
3622    0x40006033,  /* orn */
3623    0x8004033,   /* pack */
3624    0x8007033,   /* packh */
3625    0xffff_ffff, /* packw */
3626    0x100000f,   /* pause */
3627    0x6013,      /* prefetch_i */
3628    0x106013,    /* prefetch_r */
3629    0x306013,    /* prefetch_w */
3630    0xc0002073,  /* rdcycle */
3631    0xc8002073,  /* rdcycleh */
3632    0xc0202073,  /* rdinstret */
3633    0xc8202073,  /* rdinstreth */
3634    0xc0102073,  /* rdtime */
3635    0xc8102073,  /* rdtimeh */
3636    0x2006033,   /* rem */
3637    0x2007033,   /* remu */
3638    0xffff_ffff, /* remuw */
3639    0xffff_ffff, /* remw */
3640    0x8067,      /* ret */
3641    0xffff_ffff, /* rev8 */
3642    0x69805013,  /* rev8_rv32 */
3643    0x60001033,  /* rol */
3644    0xffff_ffff, /* rolw */
3645    0x60005033,  /* ror */
3646    0xffff_ffff, /* rori */
3647    0x60005013,  /* rori_rv32 */
3648    0xffff_ffff, /* roriw */
3649    0xffff_ffff, /* rorw */
3650    0x23,        /* sb */
3651    0x100073,    /* sbreak */
3652    0xffff_ffff, /* sc_d */
3653    0x1800202f,  /* sc_w */
3654    0x73,        /* scall */
3655    0x10400073,  /* sctrclr */
3656    0xffff_ffff, /* sd */
3657    0x103013,    /* seqz */
3658    0x60401013,  /* sext_b */
3659    0x60501013,  /* sext_h */
3660    0xffff_ffff, /* sext_w */
3661    0x18100073,  /* sfence_inval_ir */
3662    0x12000073,  /* sfence_vma */
3663    0x18000073,  /* sfence_w_inval */
3664    0x2033,      /* sgtz */
3665    0x1023,      /* sh */
3666    0x20002033,  /* sh1add */
3667    0xffff_ffff, /* sh1add_uw */
3668    0x20004033,  /* sh2add */
3669    0xffff_ffff, /* sh2add_uw */
3670    0x20006033,  /* sh3add */
3671    0xffff_ffff, /* sh3add_uw */
3672    0x10201013,  /* sha256sig0 */
3673    0x10301013,  /* sha256sig1 */
3674    0x10001013,  /* sha256sum0 */
3675    0x10101013,  /* sha256sum1 */
3676    0xffff_ffff, /* sha512sig0 */
3677    0x5c000033,  /* sha512sig0h */
3678    0x54000033,  /* sha512sig0l */
3679    0xffff_ffff, /* sha512sig1 */
3680    0x5e000033,  /* sha512sig1h */
3681    0x56000033,  /* sha512sig1l */
3682    0xffff_ffff, /* sha512sum0 */
3683    0x50000033,  /* sha512sum0r */
3684    0xffff_ffff, /* sha512sum1 */
3685    0x52000033,  /* sha512sum1r */
3686    0x16000073,  /* sinval_vma */
3687    0x1033,      /* sll */
3688    0x1013,      /* slli */
3689    0x1013,      /* slli_rv32 */
3690    0xffff_ffff, /* slli_uw */
3691    0xffff_ffff, /* slliw */
3692    0xffff_ffff, /* sllw */
3693    0x2033,      /* slt */
3694    0x2013,      /* slti */
3695    0x3013,      /* sltiu */
3696    0x3033,      /* sltu */
3697    0x2033,      /* sltz */
3698    0x10801013,  /* sm3p0 */
3699    0x10901013,  /* sm3p1 */
3700    0x30000033,  /* sm4ed */
3701    0x34000033,  /* sm4ks */
3702    0x3033,      /* snez */
3703    0x40005033,  /* sra */
3704    0x40005013,  /* srai */
3705    0x40005013,  /* srai_rv32 */
3706    0xffff_ffff, /* sraiw */
3707    0xffff_ffff, /* sraw */
3708    0x10200073,  /* sret */
3709    0x5033,      /* srl */
3710    0x5013,      /* srli */
3711    0x5013,      /* srli_rv32 */
3712    0xffff_ffff, /* srliw */
3713    0xffff_ffff, /* srlw */
3714    0xffff_ffff, /* ssamoswap_d */
3715    0x4800202f,  /* ssamoswap_w */
3716    0xcdc0c073,  /* sspopchk_x1 */
3717    0xcdc2c073,  /* sspopchk_x5 */
3718    0xce104073,  /* sspush_x1 */
3719    0xce504073,  /* sspush_x5 */
3720    0xcdc04073,  /* ssrdp */
3721    0x40000033,  /* sub */
3722    0xffff_ffff, /* subw */
3723    0x2023,      /* sw */
3724    0x8f05013,   /* unzip */
3725    0x24002057,  /* vaadd_vv */
3726    0x24006057,  /* vaadd_vx */
3727    0x20002057,  /* vaaddu_vv */
3728    0x20006057,  /* vaaddu_vx */
3729    0x40003057,  /* vadc_vim */
3730    0x40000057,  /* vadc_vvm */
3731    0x40004057,  /* vadc_vxm */
3732    0x3057,      /* vadd_vi */
3733    0x57,        /* vadd_vv */
3734    0x4057,      /* vadd_vx */
3735    0xa600a077,  /* vaesdf_vs */
3736    0xa200a077,  /* vaesdf_vv */
3737    0xa6002077,  /* vaesdm_vs */
3738    0xa2002077,  /* vaesdm_vv */
3739    0xa601a077,  /* vaesef_vs */
3740    0xa201a077,  /* vaesef_vv */
3741    0xa6012077,  /* vaesem_vs */
3742    0xa2012077,  /* vaesem_vv */
3743    0x8a002077,  /* vaeskf1_vi */
3744    0xaa002077,  /* vaeskf2_vi */
3745    0xa603a077,  /* vaesz_vs */
3746    0x24003057,  /* vand_vi */
3747    0x24000057,  /* vand_vv */
3748    0x24004057,  /* vand_vx */
3749    0x4000057,   /* vandn_vv */
3750    0x4004057,   /* vandn_vx */
3751    0x2c002057,  /* vasub_vv */
3752    0x2c006057,  /* vasub_vx */
3753    0x28002057,  /* vasubu_vv */
3754    0x28006057,  /* vasubu_vx */
3755    0x48042057,  /* vbrev8_v */
3756    0x48052057,  /* vbrev_v */
3757    0x30002057,  /* vclmul_vv */
3758    0x30006057,  /* vclmul_vx */
3759    0x34002057,  /* vclmulh_vv */
3760    0x34006057,  /* vclmulh_vx */
3761    0x48062057,  /* vclz_v */
3762    0x5e002057,  /* vcompress_vm */
3763    0x40082057,  /* vcpop_m */
3764    0x48072057,  /* vcpop_v */
3765    0x4806a057,  /* vctz_v */
3766    0x84002057,  /* vdiv_vv */
3767    0x84006057,  /* vdiv_vx */
3768    0x80002057,  /* vdivu_vv */
3769    0x80006057,  /* vdivu_vx */
3770    0x5057,      /* vfadd_vf */
3771    0x1057,      /* vfadd_vv */
3772    0x4c081057,  /* vfclass_v */
3773    0x48019057,  /* vfcvt_f_x_v */
3774    0x48011057,  /* vfcvt_f_xu_v */
3775    0x48039057,  /* vfcvt_rtz_x_f_v */
3776    0x48031057,  /* vfcvt_rtz_xu_f_v */
3777    0x48009057,  /* vfcvt_x_f_v */
3778    0x48001057,  /* vfcvt_xu_f_v */
3779    0x80005057,  /* vfdiv_vf */
3780    0x80001057,  /* vfdiv_vv */
3781    0x4008a057,  /* vfirst_m */
3782    0xb0005057,  /* vfmacc_vf */
3783    0xb0001057,  /* vfmacc_vv */
3784    0xa0005057,  /* vfmadd_vf */
3785    0xa0001057,  /* vfmadd_vv */
3786    0x18005057,  /* vfmax_vf */
3787    0x18001057,  /* vfmax_vv */
3788    0x5c005057,  /* vfmerge_vfm */
3789    0x10005057,  /* vfmin_vf */
3790    0x10001057,  /* vfmin_vv */
3791    0xb8005057,  /* vfmsac_vf */
3792    0xb8001057,  /* vfmsac_vv */
3793    0xa8005057,  /* vfmsub_vf */
3794    0xa8001057,  /* vfmsub_vv */
3795    0x90005057,  /* vfmul_vf */
3796    0x90001057,  /* vfmul_vv */
3797    0x42001057,  /* vfmv_f_s */
3798    0x42005057,  /* vfmv_s_f */
3799    0x5e005057,  /* vfmv_v_f */
3800    0x480a1057,  /* vfncvt_f_f_w */
3801    0x48099057,  /* vfncvt_f_x_w */
3802    0x48091057,  /* vfncvt_f_xu_w */
3803    0x480a9057,  /* vfncvt_rod_f_f_w */
3804    0x480b9057,  /* vfncvt_rtz_x_f_w */
3805    0x480b1057,  /* vfncvt_rtz_xu_f_w */
3806    0x48089057,  /* vfncvt_x_f_w */
3807    0x48081057,  /* vfncvt_xu_f_w */
3808    0x480e9057,  /* vfncvtbf16_f_f_w */
3809    0xb4005057,  /* vfnmacc_vf */
3810    0xb4001057,  /* vfnmacc_vv */
3811    0xa4005057,  /* vfnmadd_vf */
3812    0xa4001057,  /* vfnmadd_vv */
3813    0xbc005057,  /* vfnmsac_vf */
3814    0xbc001057,  /* vfnmsac_vv */
3815    0xac005057,  /* vfnmsub_vf */
3816    0xac001057,  /* vfnmsub_vv */
3817    0x84005057,  /* vfrdiv_vf */
3818    0x4c029057,  /* vfrec7_v */
3819    0x1c001057,  /* vfredmax_vs */
3820    0x14001057,  /* vfredmin_vs */
3821    0xc001057,   /* vfredosum_vs */
3822    0x4001057,   /* vfredsum_vs */
3823    0x4001057,   /* vfredusum_vs */
3824    0x4c021057,  /* vfrsqrt7_v */
3825    0x9c005057,  /* vfrsub_vf */
3826    0x20005057,  /* vfsgnj_vf */
3827    0x20001057,  /* vfsgnj_vv */
3828    0x24005057,  /* vfsgnjn_vf */
3829    0x24001057,  /* vfsgnjn_vv */
3830    0x28005057,  /* vfsgnjx_vf */
3831    0x28001057,  /* vfsgnjx_vv */
3832    0x3c005057,  /* vfslide1down_vf */
3833    0x38005057,  /* vfslide1up_vf */
3834    0x4c001057,  /* vfsqrt_v */
3835    0x8005057,   /* vfsub_vf */
3836    0x8001057,   /* vfsub_vv */
3837    0xc0005057,  /* vfwadd_vf */
3838    0xc0001057,  /* vfwadd_vv */
3839    0xd0005057,  /* vfwadd_wf */
3840    0xd0001057,  /* vfwadd_wv */
3841    0x48061057,  /* vfwcvt_f_f_v */
3842    0x48059057,  /* vfwcvt_f_x_v */
3843    0x48051057,  /* vfwcvt_f_xu_v */
3844    0x48079057,  /* vfwcvt_rtz_x_f_v */
3845    0x48071057,  /* vfwcvt_rtz_xu_f_v */
3846    0x48049057,  /* vfwcvt_x_f_v */
3847    0x48041057,  /* vfwcvt_xu_f_v */
3848    0x48069057,  /* vfwcvtbf16_f_f_v */
3849    0xf0005057,  /* vfwmacc_vf */
3850    0xf0001057,  /* vfwmacc_vv */
3851    0xec005057,  /* vfwmaccbf16_vf */
3852    0xec001057,  /* vfwmaccbf16_vv */
3853    0xf8005057,  /* vfwmsac_vf */
3854    0xf8001057,  /* vfwmsac_vv */
3855    0xe0005057,  /* vfwmul_vf */
3856    0xe0001057,  /* vfwmul_vv */
3857    0xf4005057,  /* vfwnmacc_vf */
3858    0xf4001057,  /* vfwnmacc_vv */
3859    0xfc005057,  /* vfwnmsac_vf */
3860    0xfc001057,  /* vfwnmsac_vv */
3861    0xcc001057,  /* vfwredosum_vs */
3862    0xc4001057,  /* vfwredsum_vs */
3863    0xc4001057,  /* vfwredusum_vs */
3864    0xc8005057,  /* vfwsub_vf */
3865    0xc8001057,  /* vfwsub_vv */
3866    0xd8005057,  /* vfwsub_wf */
3867    0xd8001057,  /* vfwsub_wv */
3868    0xb2002077,  /* vghsh_vv */
3869    0xa208a077,  /* vgmul_vv */
3870    0x5008a057,  /* vid_v */
3871    0x50082057,  /* viota_m */
3872    0x2800007,   /* vl1r_v */
3873    0x2805007,   /* vl1re16_v */
3874    0x2806007,   /* vl1re32_v */
3875    0x2807007,   /* vl1re64_v */
3876    0x2800007,   /* vl1re8_v */
3877    0x22800007,  /* vl2r_v */
3878    0x22805007,  /* vl2re16_v */
3879    0x22806007,  /* vl2re32_v */
3880    0x22807007,  /* vl2re64_v */
3881    0x22800007,  /* vl2re8_v */
3882    0x62800007,  /* vl4r_v */
3883    0x62805007,  /* vl4re16_v */
3884    0x62806007,  /* vl4re32_v */
3885    0x62807007,  /* vl4re64_v */
3886    0x62800007,  /* vl4re8_v */
3887    0xe2800007,  /* vl8r_v */
3888    0xe2805007,  /* vl8re16_v */
3889    0xe2806007,  /* vl8re32_v */
3890    0xe2807007,  /* vl8re64_v */
3891    0xe2800007,  /* vl8re8_v */
3892    0x5007,      /* vle16_v */
3893    0x1005007,   /* vle16ff_v */
3894    0x2b00007,   /* vle1_v */
3895    0x6007,      /* vle32_v */
3896    0x1006007,   /* vle32ff_v */
3897    0x7007,      /* vle64_v */
3898    0x1007007,   /* vle64ff_v */
3899    0x7,         /* vle8_v */
3900    0x1000007,   /* vle8ff_v */
3901    0x2b00007,   /* vlm_v */
3902    0xc005007,   /* vloxei16_v */
3903    0xc006007,   /* vloxei32_v */
3904    0xc007007,   /* vloxei64_v */
3905    0xc000007,   /* vloxei8_v */
3906    0x8005007,   /* vlse16_v */
3907    0x8006007,   /* vlse32_v */
3908    0x8007007,   /* vlse64_v */
3909    0x8000007,   /* vlse8_v */
3910    0x4005007,   /* vluxei16_v */
3911    0x4006007,   /* vluxei32_v */
3912    0x4007007,   /* vluxei64_v */
3913    0x4000007,   /* vluxei8_v */
3914    0xb4002057,  /* vmacc_vv */
3915    0xb4006057,  /* vmacc_vx */
3916    0x46003057,  /* vmadc_vi */
3917    0x44003057,  /* vmadc_vim */
3918    0x46000057,  /* vmadc_vv */
3919    0x44000057,  /* vmadc_vvm */
3920    0x46004057,  /* vmadc_vx */
3921    0x44004057,  /* vmadc_vxm */
3922    0xa4002057,  /* vmadd_vv */
3923    0xa4006057,  /* vmadd_vx */
3924    0x66002057,  /* vmand_mm */
3925    0x62002057,  /* vmandn_mm */
3926    0x60002057,  /* vmandnot_mm */
3927    0x1c000057,  /* vmax_vv */
3928    0x1c004057,  /* vmax_vx */
3929    0x18000057,  /* vmaxu_vv */
3930    0x18004057,  /* vmaxu_vx */
3931    0x5c003057,  /* vmerge_vim */
3932    0x5c000057,  /* vmerge_vvm */
3933    0x5c004057,  /* vmerge_vxm */
3934    0x60005057,  /* vmfeq_vf */
3935    0x60001057,  /* vmfeq_vv */
3936    0x7c005057,  /* vmfge_vf */
3937    0x74005057,  /* vmfgt_vf */
3938    0x64005057,  /* vmfle_vf */
3939    0x64001057,  /* vmfle_vv */
3940    0x6c005057,  /* vmflt_vf */
3941    0x6c001057,  /* vmflt_vv */
3942    0x70005057,  /* vmfne_vf */
3943    0x70001057,  /* vmfne_vv */
3944    0x14000057,  /* vmin_vv */
3945    0x14004057,  /* vmin_vx */
3946    0x10000057,  /* vminu_vv */
3947    0x10004057,  /* vminu_vx */
3948    0x76002057,  /* vmnand_mm */
3949    0x7a002057,  /* vmnor_mm */
3950    0x6a002057,  /* vmor_mm */
3951    0x72002057,  /* vmorn_mm */
3952    0x70002057,  /* vmornot_mm */
3953    0x4e000057,  /* vmsbc_vv */
3954    0x4c000057,  /* vmsbc_vvm */
3955    0x4e004057,  /* vmsbc_vx */
3956    0x4c004057,  /* vmsbc_vxm */
3957    0x5000a057,  /* vmsbf_m */
3958    0x60003057,  /* vmseq_vi */
3959    0x60000057,  /* vmseq_vv */
3960    0x60004057,  /* vmseq_vx */
3961    0x7c003057,  /* vmsgt_vi */
3962    0x7c004057,  /* vmsgt_vx */
3963    0x78003057,  /* vmsgtu_vi */
3964    0x78004057,  /* vmsgtu_vx */
3965    0x5001a057,  /* vmsif_m */
3966    0x74003057,  /* vmsle_vi */
3967    0x74000057,  /* vmsle_vv */
3968    0x74004057,  /* vmsle_vx */
3969    0x70003057,  /* vmsleu_vi */
3970    0x70000057,  /* vmsleu_vv */
3971    0x70004057,  /* vmsleu_vx */
3972    0x6c000057,  /* vmslt_vv */
3973    0x6c004057,  /* vmslt_vx */
3974    0x68000057,  /* vmsltu_vv */
3975    0x68004057,  /* vmsltu_vx */
3976    0x64003057,  /* vmsne_vi */
3977    0x64000057,  /* vmsne_vv */
3978    0x64004057,  /* vmsne_vx */
3979    0x50012057,  /* vmsof_m */
3980    0x94002057,  /* vmul_vv */
3981    0x94006057,  /* vmul_vx */
3982    0x9c002057,  /* vmulh_vv */
3983    0x9c006057,  /* vmulh_vx */
3984    0x98002057,  /* vmulhsu_vv */
3985    0x98006057,  /* vmulhsu_vx */
3986    0x90002057,  /* vmulhu_vv */
3987    0x90006057,  /* vmulhu_vx */
3988    0x9e003057,  /* vmv1r_v */
3989    0x9e00b057,  /* vmv2r_v */
3990    0x9e01b057,  /* vmv4r_v */
3991    0x9e03b057,  /* vmv8r_v */
3992    0x42006057,  /* vmv_s_x */
3993    0x5e003057,  /* vmv_v_i */
3994    0x5e000057,  /* vmv_v_v */
3995    0x5e004057,  /* vmv_v_x */
3996    0x42002057,  /* vmv_x_s */
3997    0x7e002057,  /* vmxnor_mm */
3998    0x6e002057,  /* vmxor_mm */
3999    0xbc003057,  /* vnclip_wi */
4000    0xbc000057,  /* vnclip_wv */
4001    0xbc004057,  /* vnclip_wx */
4002    0xb8003057,  /* vnclipu_wi */
4003    0xb8000057,  /* vnclipu_wv */
4004    0xb8004057,  /* vnclipu_wx */
4005    0xbc002057,  /* vnmsac_vv */
4006    0xbc006057,  /* vnmsac_vx */
4007    0xac002057,  /* vnmsub_vv */
4008    0xac006057,  /* vnmsub_vx */
4009    0xb4003057,  /* vnsra_wi */
4010    0xb4000057,  /* vnsra_wv */
4011    0xb4004057,  /* vnsra_wx */
4012    0xb0003057,  /* vnsrl_wi */
4013    0xb0000057,  /* vnsrl_wv */
4014    0xb0004057,  /* vnsrl_wx */
4015    0x28003057,  /* vor_vi */
4016    0x28000057,  /* vor_vv */
4017    0x28004057,  /* vor_vx */
4018    0x40082057,  /* vpopc_m */
4019    0x4002057,   /* vredand_vs */
4020    0x1c002057,  /* vredmax_vs */
4021    0x18002057,  /* vredmaxu_vs */
4022    0x14002057,  /* vredmin_vs */
4023    0x10002057,  /* vredminu_vs */
4024    0x8002057,   /* vredor_vs */
4025    0x2057,      /* vredsum_vs */
4026    0xc002057,   /* vredxor_vs */
4027    0x8c002057,  /* vrem_vv */
4028    0x8c006057,  /* vrem_vx */
4029    0x88002057,  /* vremu_vv */
4030    0x88006057,  /* vremu_vx */
4031    0x4804a057,  /* vrev8_v */
4032    0x30003057,  /* vrgather_vi */
4033    0x30000057,  /* vrgather_vv */
4034    0x30004057,  /* vrgather_vx */
4035    0x38000057,  /* vrgatherei16_vv */
4036    0x54000057,  /* vrol_vv */
4037    0x54004057,  /* vrol_vx */
4038    0x50003057,  /* vror_vi */
4039    0x50000057,  /* vror_vv */
4040    0x50004057,  /* vror_vx */
4041    0xc003057,   /* vrsub_vi */
4042    0xc004057,   /* vrsub_vx */
4043    0x2800027,   /* vs1r_v */
4044    0x22800027,  /* vs2r_v */
4045    0x62800027,  /* vs4r_v */
4046    0xe2800027,  /* vs8r_v */
4047    0x84003057,  /* vsadd_vi */
4048    0x84000057,  /* vsadd_vv */
4049    0x84004057,  /* vsadd_vx */
4050    0x80003057,  /* vsaddu_vi */
4051    0x80000057,  /* vsaddu_vv */
4052    0x80004057,  /* vsaddu_vx */
4053    0x48000057,  /* vsbc_vvm */
4054    0x48004057,  /* vsbc_vxm */
4055    0x5027,      /* vse16_v */
4056    0x2b00027,   /* vse1_v */
4057    0x6027,      /* vse32_v */
4058    0x7027,      /* vse64_v */
4059    0x27,        /* vse8_v */
4060    0xc0007057,  /* vsetivli */
4061    0x80007057,  /* vsetvl */
4062    0x7057,      /* vsetvli */
4063    0x4803a057,  /* vsext_vf2 */
4064    0x4802a057,  /* vsext_vf4 */
4065    0x4801a057,  /* vsext_vf8 */
4066    0xba002077,  /* vsha2ch_vv */
4067    0xbe002077,  /* vsha2cl_vv */
4068    0xb6002077,  /* vsha2ms_vv */
4069    0x3c006057,  /* vslide1down_vx */
4070    0x38006057,  /* vslide1up_vx */
4071    0x3c003057,  /* vslidedown_vi */
4072    0x3c004057,  /* vslidedown_vx */
4073    0x38003057,  /* vslideup_vi */
4074    0x38004057,  /* vslideup_vx */
4075    0x94003057,  /* vsll_vi */
4076    0x94000057,  /* vsll_vv */
4077    0x94004057,  /* vsll_vx */
4078    0xae002077,  /* vsm3c_vi */
4079    0x82002077,  /* vsm3me_vv */
4080    0x86002077,  /* vsm4k_vi */
4081    0xa6082077,  /* vsm4r_vs */
4082    0xa2082077,  /* vsm4r_vv */
4083    0x2b00027,   /* vsm_v */
4084    0x9c000057,  /* vsmul_vv */
4085    0x9c004057,  /* vsmul_vx */
4086    0xc005027,   /* vsoxei16_v */
4087    0xc006027,   /* vsoxei32_v */
4088    0xc007027,   /* vsoxei64_v */
4089    0xc000027,   /* vsoxei8_v */
4090    0xa4003057,  /* vsra_vi */
4091    0xa4000057,  /* vsra_vv */
4092    0xa4004057,  /* vsra_vx */
4093    0xa0003057,  /* vsrl_vi */
4094    0xa0000057,  /* vsrl_vv */
4095    0xa0004057,  /* vsrl_vx */
4096    0x8005027,   /* vsse16_v */
4097    0x8006027,   /* vsse32_v */
4098    0x8007027,   /* vsse64_v */
4099    0x8000027,   /* vsse8_v */
4100    0xac003057,  /* vssra_vi */
4101    0xac000057,  /* vssra_vv */
4102    0xac004057,  /* vssra_vx */
4103    0xa8003057,  /* vssrl_vi */
4104    0xa8000057,  /* vssrl_vv */
4105    0xa8004057,  /* vssrl_vx */
4106    0x8c000057,  /* vssub_vv */
4107    0x8c004057,  /* vssub_vx */
4108    0x88000057,  /* vssubu_vv */
4109    0x88004057,  /* vssubu_vx */
4110    0x8000057,   /* vsub_vv */
4111    0x8004057,   /* vsub_vx */
4112    0x4005027,   /* vsuxei16_v */
4113    0x4006027,   /* vsuxei32_v */
4114    0x4007027,   /* vsuxei64_v */
4115    0x4000027,   /* vsuxei8_v */
4116    0xc4002057,  /* vwadd_vv */
4117    0xc4006057,  /* vwadd_vx */
4118    0xd4002057,  /* vwadd_wv */
4119    0xd4006057,  /* vwadd_wx */
4120    0xc0002057,  /* vwaddu_vv */
4121    0xc0006057,  /* vwaddu_vx */
4122    0xd0002057,  /* vwaddu_wv */
4123    0xd0006057,  /* vwaddu_wx */
4124    0xf4002057,  /* vwmacc_vv */
4125    0xf4006057,  /* vwmacc_vx */
4126    0xfc002057,  /* vwmaccsu_vv */
4127    0xfc006057,  /* vwmaccsu_vx */
4128    0xf0002057,  /* vwmaccu_vv */
4129    0xf0006057,  /* vwmaccu_vx */
4130    0xf8006057,  /* vwmaccus_vx */
4131    0xec002057,  /* vwmul_vv */
4132    0xec006057,  /* vwmul_vx */
4133    0xe8002057,  /* vwmulsu_vv */
4134    0xe8006057,  /* vwmulsu_vx */
4135    0xe0002057,  /* vwmulu_vv */
4136    0xe0006057,  /* vwmulu_vx */
4137    0xc4000057,  /* vwredsum_vs */
4138    0xc0000057,  /* vwredsumu_vs */
4139    0xd4003057,  /* vwsll_vi */
4140    0xd4000057,  /* vwsll_vv */
4141    0xd4004057,  /* vwsll_vx */
4142    0xcc002057,  /* vwsub_vv */
4143    0xcc006057,  /* vwsub_vx */
4144    0xdc002057,  /* vwsub_wv */
4145    0xdc006057,  /* vwsub_wx */
4146    0xc8002057,  /* vwsubu_vv */
4147    0xc8006057,  /* vwsubu_vx */
4148    0xd8002057,  /* vwsubu_wv */
4149    0xd8006057,  /* vwsubu_wx */
4150    0x2c003057,  /* vxor_vi */
4151    0x2c000057,  /* vxor_vv */
4152    0x2c004057,  /* vxor_vx */
4153    0x48032057,  /* vzext_vf2 */
4154    0x48022057,  /* vzext_vf4 */
4155    0x48012057,  /* vzext_vf8 */
4156    0x10500073,  /* wfi */
4157    0xd00073,    /* wrs_nto */
4158    0x1d00073,   /* wrs_sto */
4159    0x40004033,  /* xnor */
4160    0x4033,      /* xor */
4161    0x4013,      /* xori */
4162    0x28002033,  /* xperm4 */
4163    0x28004033,  /* xperm8 */
4164    0xff07013,   /* zext_b */
4165    0xffff_ffff, /* zext_h */
4166    0x8004033,   /* zext_h_rv32 */
4167    0xffff_ffff, /* zext_w */
4168    0x8f01013,   /* zip */
4169];
4170pub static OPCODE32_MASK: [u32; 1039] = [
4171    0xfe00707f,  /* add */
4172    0xffff_ffff, /* add_uw */
4173    0x707f,      /* addi */
4174    0xffff_ffff, /* addiw */
4175    0xffff_ffff, /* addw */
4176    0x3e00707f,  /* aes32dsi */
4177    0x3e00707f,  /* aes32dsmi */
4178    0x3e00707f,  /* aes32esi */
4179    0x3e00707f,  /* aes32esmi */
4180    0xffff_ffff, /* aes64ds */
4181    0xffff_ffff, /* aes64dsm */
4182    0xffff_ffff, /* aes64es */
4183    0xffff_ffff, /* aes64esm */
4184    0xffff_ffff, /* aes64im */
4185    0xffff_ffff, /* aes64ks1i */
4186    0xffff_ffff, /* aes64ks2 */
4187    0xf800707f,  /* amoadd_b */
4188    0xffff_ffff, /* amoadd_d */
4189    0xf800707f,  /* amoadd_h */
4190    0xf800707f,  /* amoadd_w */
4191    0xf800707f,  /* amoand_b */
4192    0xffff_ffff, /* amoand_d */
4193    0xf800707f,  /* amoand_h */
4194    0xf800707f,  /* amoand_w */
4195    0xf800707f,  /* amocas_b */
4196    0xf800707f,  /* amocas_d */
4197    0xf800707f,  /* amocas_h */
4198    0xffff_ffff, /* amocas_q */
4199    0xf800707f,  /* amocas_w */
4200    0xf800707f,  /* amomax_b */
4201    0xffff_ffff, /* amomax_d */
4202    0xf800707f,  /* amomax_h */
4203    0xf800707f,  /* amomax_w */
4204    0xf800707f,  /* amomaxu_b */
4205    0xffff_ffff, /* amomaxu_d */
4206    0xf800707f,  /* amomaxu_h */
4207    0xf800707f,  /* amomaxu_w */
4208    0xf800707f,  /* amomin_b */
4209    0xffff_ffff, /* amomin_d */
4210    0xf800707f,  /* amomin_h */
4211    0xf800707f,  /* amomin_w */
4212    0xf800707f,  /* amominu_b */
4213    0xffff_ffff, /* amominu_d */
4214    0xf800707f,  /* amominu_h */
4215    0xf800707f,  /* amominu_w */
4216    0xf800707f,  /* amoor_b */
4217    0xffff_ffff, /* amoor_d */
4218    0xf800707f,  /* amoor_h */
4219    0xf800707f,  /* amoor_w */
4220    0xf800707f,  /* amoswap_b */
4221    0xffff_ffff, /* amoswap_d */
4222    0xf800707f,  /* amoswap_h */
4223    0xf800707f,  /* amoswap_w */
4224    0xf800707f,  /* amoxor_b */
4225    0xffff_ffff, /* amoxor_d */
4226    0xf800707f,  /* amoxor_h */
4227    0xf800707f,  /* amoxor_w */
4228    0xfe00707f,  /* and */
4229    0x707f,      /* andi */
4230    0xfe00707f,  /* andn */
4231    0x7f,        /* auipc */
4232    0xfe00707f,  /* bclr */
4233    0xffff_ffff, /* bclri */
4234    0xfe00707f,  /* bclri_rv32 */
4235    0x707f,      /* beq */
4236    0x1f0707f,   /* beqz */
4237    0xfe00707f,  /* bext */
4238    0xffff_ffff, /* bexti */
4239    0xfe00707f,  /* bexti_rv32 */
4240    0x707f,      /* bge */
4241    0x707f,      /* bgeu */
4242    0x1f0707f,   /* bgez */
4243    0x707f,      /* bgt */
4244    0x707f,      /* bgtu */
4245    0xff07f,     /* bgtz */
4246    0xfe00707f,  /* binv */
4247    0xffff_ffff, /* binvi */
4248    0xfe00707f,  /* binvi_rv32 */
4249    0x707f,      /* ble */
4250    0x707f,      /* bleu */
4251    0xff07f,     /* blez */
4252    0x707f,      /* blt */
4253    0x707f,      /* bltu */
4254    0x1f0707f,   /* bltz */
4255    0x707f,      /* bne */
4256    0x1f0707f,   /* bnez */
4257    0xfff0707f,  /* brev8 */
4258    0xfe00707f,  /* bset */
4259    0xffff_ffff, /* bseti */
4260    0xfe00707f,  /* bseti_rv32 */
4261    0xf003,      /* c_add */
4262    0xe003,      /* c_addi */
4263    0xef83,      /* c_addi16sp */
4264    0xe003,      /* c_addi4spn */
4265    0xffff_ffff, /* c_addiw */
4266    0xffff_ffff, /* c_addw */
4267    0xfc63,      /* c_and */
4268    0xec03,      /* c_andi */
4269    0xe003,      /* c_beqz */
4270    0xe003,      /* c_bnez */
4271    0xffff,      /* c_ebreak */
4272    0xe003,      /* c_fld */
4273    0xe003,      /* c_fldsp */
4274    0xe003,      /* c_flw */
4275    0xe003,      /* c_flwsp */
4276    0xe003,      /* c_fsd */
4277    0xe003,      /* c_fsdsp */
4278    0xe003,      /* c_fsw */
4279    0xe003,      /* c_fswsp */
4280    0xe003,      /* c_j */
4281    0xe003,      /* c_jal */
4282    0xf07f,      /* c_jalr */
4283    0xf07f,      /* c_jr */
4284    0xfc03,      /* c_lbu */
4285    0xe003,      /* c_ld */
4286    0xe003,      /* c_ldsp */
4287    0xfc43,      /* c_lh */
4288    0xfc43,      /* c_lhu */
4289    0xe003,      /* c_li */
4290    0xe003,      /* c_lui */
4291    0xe003,      /* c_lw */
4292    0xe003,      /* c_lwsp */
4293    0xffff,      /* c_mop_1 */
4294    0xffff,      /* c_mop_11 */
4295    0xffff,      /* c_mop_13 */
4296    0xffff,      /* c_mop_15 */
4297    0xffff,      /* c_mop_3 */
4298    0xffff,      /* c_mop_5 */
4299    0xffff,      /* c_mop_7 */
4300    0xffff,      /* c_mop_9 */
4301    0xf8ff,      /* c_mop_N */
4302    0xfc63,      /* c_mul */
4303    0xf003,      /* c_mv */
4304    0xef83,      /* c_nop */
4305    0xfc7f,      /* c_not */
4306    0xffff,      /* c_ntl_all */
4307    0xffff,      /* c_ntl_p1 */
4308    0xffff,      /* c_ntl_pall */
4309    0xffff,      /* c_ntl_s1 */
4310    0xfc63,      /* c_or */
4311    0xfc03,      /* c_sb */
4312    0xe003,      /* c_sd */
4313    0xe003,      /* c_sdsp */
4314    0xfc7f,      /* c_sext_b */
4315    0xfc7f,      /* c_sext_h */
4316    0xffff_ffff, /* c_sext_w */
4317    0xfc43,      /* c_sh */
4318    0xe003,      /* c_slli */
4319    0xf003,      /* c_slli_rv32 */
4320    0xec03,      /* c_srai */
4321    0xfc03,      /* c_srai_rv32 */
4322    0xec03,      /* c_srli */
4323    0xfc03,      /* c_srli_rv32 */
4324    0xffff,      /* c_sspopchk_x5 */
4325    0xffff,      /* c_sspush_x1 */
4326    0xfc63,      /* c_sub */
4327    0xffff_ffff, /* c_subw */
4328    0xe003,      /* c_sw */
4329    0xe003,      /* c_swsp */
4330    0xfc63,      /* c_xor */
4331    0xfc7f,      /* c_zext_b */
4332    0xfc7f,      /* c_zext_h */
4333    0xffff_ffff, /* c_zext_w */
4334    0xfff07fff,  /* cbo_clean */
4335    0xfff07fff,  /* cbo_flush */
4336    0xfff07fff,  /* cbo_inval */
4337    0xfff07fff,  /* cbo_zero */
4338    0xfe00707f,  /* clmul */
4339    0xfe00707f,  /* clmulh */
4340    0xfe00707f,  /* clmulr */
4341    0xfff0707f,  /* clz */
4342    0xffff_ffff, /* clzw */
4343    0xfc03,      /* cm_jalt */
4344    0xfc63,      /* cm_mva01s */
4345    0xfc63,      /* cm_mvsa01 */
4346    0xff03,      /* cm_pop */
4347    0xff03,      /* cm_popret */
4348    0xff03,      /* cm_popretz */
4349    0xff03,      /* cm_push */
4350    0xfff0707f,  /* cpop */
4351    0xffff_ffff, /* cpopw */
4352    0x7fff,      /* csrc */
4353    0x7fff,      /* csrci */
4354    0xff07f,     /* csrr */
4355    0x707f,      /* csrrc */
4356    0x707f,      /* csrrci */
4357    0x707f,      /* csrrs */
4358    0x707f,      /* csrrsi */
4359    0x707f,      /* csrrw */
4360    0x707f,      /* csrrwi */
4361    0x7fff,      /* csrs */
4362    0x7fff,      /* csrsi */
4363    0x7fff,      /* csrw */
4364    0x7fff,      /* csrwi */
4365    0xfff0707f,  /* ctz */
4366    0xffff_ffff, /* ctzw */
4367    0xfe00707f,  /* czero_eqz */
4368    0xfe00707f,  /* czero_nez */
4369    0xfe00707f,  /* div */
4370    0xfe00707f,  /* divu */
4371    0xffff_ffff, /* divuw */
4372    0xffff_ffff, /* divw */
4373    0xffffffff,  /* dret */
4374    0xffffffff,  /* ebreak */
4375    0xffffffff,  /* ecall */
4376    0xfe00707f,  /* fabs_d */
4377    0xfe00707f,  /* fabs_h */
4378    0xfe00707f,  /* fabs_q */
4379    0xfe00707f,  /* fabs_s */
4380    0xfe00007f,  /* fadd_d */
4381    0xfe00007f,  /* fadd_h */
4382    0xfe00007f,  /* fadd_q */
4383    0xfe00007f,  /* fadd_s */
4384    0xfff0707f,  /* fclass_d */
4385    0xfff0707f,  /* fclass_h */
4386    0xfff0707f,  /* fclass_q */
4387    0xfff0707f,  /* fclass_s */
4388    0xfff0007f,  /* fcvt_bf16_s */
4389    0xfff0007f,  /* fcvt_d_h */
4390    0xffff_ffff, /* fcvt_d_l */
4391    0xffff_ffff, /* fcvt_d_lu */
4392    0xfff0007f,  /* fcvt_d_q */
4393    0xfff0007f,  /* fcvt_d_s */
4394    0xfff0007f,  /* fcvt_d_w */
4395    0xfff0007f,  /* fcvt_d_wu */
4396    0xfff0007f,  /* fcvt_h_d */
4397    0xffff_ffff, /* fcvt_h_l */
4398    0xffff_ffff, /* fcvt_h_lu */
4399    0xfff0007f,  /* fcvt_h_q */
4400    0xfff0007f,  /* fcvt_h_s */
4401    0xfff0007f,  /* fcvt_h_w */
4402    0xfff0007f,  /* fcvt_h_wu */
4403    0xffff_ffff, /* fcvt_l_d */
4404    0xffff_ffff, /* fcvt_l_h */
4405    0xffff_ffff, /* fcvt_l_q */
4406    0xffff_ffff, /* fcvt_l_s */
4407    0xffff_ffff, /* fcvt_lu_d */
4408    0xffff_ffff, /* fcvt_lu_h */
4409    0xffff_ffff, /* fcvt_lu_q */
4410    0xffff_ffff, /* fcvt_lu_s */
4411    0xfff0007f,  /* fcvt_q_d */
4412    0xfff0007f,  /* fcvt_q_h */
4413    0xffff_ffff, /* fcvt_q_l */
4414    0xffff_ffff, /* fcvt_q_lu */
4415    0xfff0007f,  /* fcvt_q_s */
4416    0xfff0007f,  /* fcvt_q_w */
4417    0xfff0007f,  /* fcvt_q_wu */
4418    0xfff0007f,  /* fcvt_s_bf16 */
4419    0xfff0007f,  /* fcvt_s_d */
4420    0xfff0007f,  /* fcvt_s_h */
4421    0xffff_ffff, /* fcvt_s_l */
4422    0xffff_ffff, /* fcvt_s_lu */
4423    0xfff0007f,  /* fcvt_s_q */
4424    0xfff0007f,  /* fcvt_s_w */
4425    0xfff0007f,  /* fcvt_s_wu */
4426    0xfff0007f,  /* fcvt_w_d */
4427    0xfff0007f,  /* fcvt_w_h */
4428    0xfff0007f,  /* fcvt_w_q */
4429    0xfff0007f,  /* fcvt_w_s */
4430    0xfff0007f,  /* fcvt_wu_d */
4431    0xfff0007f,  /* fcvt_wu_h */
4432    0xfff0007f,  /* fcvt_wu_q */
4433    0xfff0007f,  /* fcvt_wu_s */
4434    0xfff0707f,  /* fcvtmod_w_d */
4435    0xfe00007f,  /* fdiv_d */
4436    0xfe00007f,  /* fdiv_h */
4437    0xfe00007f,  /* fdiv_q */
4438    0xfe00007f,  /* fdiv_s */
4439    0x707f,      /* fence */
4440    0x707f,      /* fence_i */
4441    0xfff0707f,  /* fence_tso */
4442    0xfe00707f,  /* feq_d */
4443    0xfe00707f,  /* feq_h */
4444    0xfe00707f,  /* feq_q */
4445    0xfe00707f,  /* feq_s */
4446    0x707f,      /* fld */
4447    0xfe00707f,  /* fle_d */
4448    0xfe00707f,  /* fle_h */
4449    0xfe00707f,  /* fle_q */
4450    0xfe00707f,  /* fle_s */
4451    0xfe00707f,  /* fleq_d */
4452    0xfe00707f,  /* fleq_h */
4453    0xfe00707f,  /* fleq_q */
4454    0xfe00707f,  /* fleq_s */
4455    0x707f,      /* flh */
4456    0xfff0707f,  /* fli_d */
4457    0xfff0707f,  /* fli_h */
4458    0xfff0707f,  /* fli_q */
4459    0xfff0707f,  /* fli_s */
4460    0x707f,      /* flq */
4461    0xfe00707f,  /* flt_d */
4462    0xfe00707f,  /* flt_h */
4463    0xfe00707f,  /* flt_q */
4464    0xfe00707f,  /* flt_s */
4465    0xfe00707f,  /* fltq_d */
4466    0xfe00707f,  /* fltq_h */
4467    0xfe00707f,  /* fltq_q */
4468    0xfe00707f,  /* fltq_s */
4469    0x707f,      /* flw */
4470    0x600007f,   /* fmadd_d */
4471    0x600007f,   /* fmadd_h */
4472    0x600007f,   /* fmadd_q */
4473    0x600007f,   /* fmadd_s */
4474    0xfe00707f,  /* fmax_d */
4475    0xfe00707f,  /* fmax_h */
4476    0xfe00707f,  /* fmax_q */
4477    0xfe00707f,  /* fmax_s */
4478    0xfe00707f,  /* fmaxm_d */
4479    0xfe00707f,  /* fmaxm_h */
4480    0xfe00707f,  /* fmaxm_q */
4481    0xfe00707f,  /* fmaxm_s */
4482    0xfe00707f,  /* fmin_d */
4483    0xfe00707f,  /* fmin_h */
4484    0xfe00707f,  /* fmin_q */
4485    0xfe00707f,  /* fmin_s */
4486    0xfe00707f,  /* fminm_d */
4487    0xfe00707f,  /* fminm_h */
4488    0xfe00707f,  /* fminm_q */
4489    0xfe00707f,  /* fminm_s */
4490    0x600007f,   /* fmsub_d */
4491    0x600007f,   /* fmsub_h */
4492    0x600007f,   /* fmsub_q */
4493    0x600007f,   /* fmsub_s */
4494    0xfe00007f,  /* fmul_d */
4495    0xfe00007f,  /* fmul_h */
4496    0xfe00007f,  /* fmul_q */
4497    0xfe00007f,  /* fmul_s */
4498    0xfe00707f,  /* fmv_d */
4499    0xffff_ffff, /* fmv_d_x */
4500    0xfe00707f,  /* fmv_h */
4501    0xfff0707f,  /* fmv_h_x */
4502    0xfe00707f,  /* fmv_q */
4503    0xfe00707f,  /* fmv_s */
4504    0xfff0707f,  /* fmv_s_x */
4505    0xfff0707f,  /* fmv_w_x */
4506    0xffff_ffff, /* fmv_x_d */
4507    0xfff0707f,  /* fmv_x_h */
4508    0xfff0707f,  /* fmv_x_s */
4509    0xfff0707f,  /* fmv_x_w */
4510    0xfff0707f,  /* fmvh_x_d */
4511    0xffff_ffff, /* fmvh_x_q */
4512    0xfe00707f,  /* fmvp_d_x */
4513    0xffff_ffff, /* fmvp_q_x */
4514    0xfe00707f,  /* fneg_d */
4515    0xfe00707f,  /* fneg_h */
4516    0xfe00707f,  /* fneg_q */
4517    0xfe00707f,  /* fneg_s */
4518    0x600007f,   /* fnmadd_d */
4519    0x600007f,   /* fnmadd_h */
4520    0x600007f,   /* fnmadd_q */
4521    0x600007f,   /* fnmadd_s */
4522    0x600007f,   /* fnmsub_d */
4523    0x600007f,   /* fnmsub_h */
4524    0x600007f,   /* fnmsub_q */
4525    0x600007f,   /* fnmsub_s */
4526    0xfffff07f,  /* frcsr */
4527    0xfffff07f,  /* frflags */
4528    0xfff0007f,  /* fround_d */
4529    0xfff0007f,  /* fround_h */
4530    0xfff0007f,  /* fround_q */
4531    0xfff0007f,  /* fround_s */
4532    0xfff0007f,  /* froundnx_d */
4533    0xfff0007f,  /* froundnx_h */
4534    0xfff0007f,  /* froundnx_q */
4535    0xfff0007f,  /* froundnx_s */
4536    0xfffff07f,  /* frrm */
4537    0xfff0707f,  /* fscsr */
4538    0x707f,      /* fsd */
4539    0xfff0707f,  /* fsflags */
4540    0xfff0707f,  /* fsflagsi */
4541    0xfe00707f,  /* fsgnj_d */
4542    0xfe00707f,  /* fsgnj_h */
4543    0xfe00707f,  /* fsgnj_q */
4544    0xfe00707f,  /* fsgnj_s */
4545    0xfe00707f,  /* fsgnjn_d */
4546    0xfe00707f,  /* fsgnjn_h */
4547    0xfe00707f,  /* fsgnjn_q */
4548    0xfe00707f,  /* fsgnjn_s */
4549    0xfe00707f,  /* fsgnjx_d */
4550    0xfe00707f,  /* fsgnjx_h */
4551    0xfe00707f,  /* fsgnjx_q */
4552    0xfe00707f,  /* fsgnjx_s */
4553    0x707f,      /* fsh */
4554    0x707f,      /* fsq */
4555    0xfff0007f,  /* fsqrt_d */
4556    0xfff0007f,  /* fsqrt_h */
4557    0xfff0007f,  /* fsqrt_q */
4558    0xfff0007f,  /* fsqrt_s */
4559    0xfff0707f,  /* fsrm */
4560    0xfff0707f,  /* fsrmi */
4561    0xfe00007f,  /* fsub_d */
4562    0xfe00007f,  /* fsub_h */
4563    0xfe00007f,  /* fsub_q */
4564    0xfe00007f,  /* fsub_s */
4565    0x707f,      /* fsw */
4566    0xfe007fff,  /* hfence_gvma */
4567    0xfe007fff,  /* hfence_vvma */
4568    0xfe007fff,  /* hinval_gvma */
4569    0xfe007fff,  /* hinval_vvma */
4570    0xfff0707f,  /* hlv_b */
4571    0xfff0707f,  /* hlv_bu */
4572    0xffff_ffff, /* hlv_d */
4573    0xfff0707f,  /* hlv_h */
4574    0xfff0707f,  /* hlv_hu */
4575    0xfff0707f,  /* hlv_w */
4576    0xffff_ffff, /* hlv_wu */
4577    0xfff0707f,  /* hlvx_hu */
4578    0xfff0707f,  /* hlvx_wu */
4579    0xfe007fff,  /* hsv_b */
4580    0xffff_ffff, /* hsv_d */
4581    0xfe007fff,  /* hsv_h */
4582    0xfe007fff,  /* hsv_w */
4583    0xfff,       /* j */
4584    0x7f,        /* jal */
4585    0xfff,       /* jal_pseudo */
4586    0x707f,      /* jalr */
4587    0xfff07fff,  /* jalr_pseudo */
4588    0xfff07fff,  /* jr */
4589    0x707f,      /* lb */
4590    0x707f,      /* lbu */
4591    0xffff_ffff, /* ld */
4592    0x707f,      /* lh */
4593    0x707f,      /* lhu */
4594    0xfff,       /* lpad */
4595    0xffff_ffff, /* lr_d */
4596    0xf9f0707f,  /* lr_w */
4597    0x7f,        /* lui */
4598    0x707f,      /* lw */
4599    0xffff_ffff, /* lwu */
4600    0xfe00707f,  /* max */
4601    0xfe00707f,  /* maxu */
4602    0xfe00707f,  /* min */
4603    0xfe00707f,  /* minu */
4604    0xffffffff,  /* mnret */
4605    0xfff0707f,  /* mop_r_0 */
4606    0xfff0707f,  /* mop_r_1 */
4607    0xfff0707f,  /* mop_r_10 */
4608    0xfff0707f,  /* mop_r_11 */
4609    0xfff0707f,  /* mop_r_12 */
4610    0xfff0707f,  /* mop_r_13 */
4611    0xfff0707f,  /* mop_r_14 */
4612    0xfff0707f,  /* mop_r_15 */
4613    0xfff0707f,  /* mop_r_16 */
4614    0xfff0707f,  /* mop_r_17 */
4615    0xfff0707f,  /* mop_r_18 */
4616    0xfff0707f,  /* mop_r_19 */
4617    0xfff0707f,  /* mop_r_2 */
4618    0xfff0707f,  /* mop_r_20 */
4619    0xfff0707f,  /* mop_r_21 */
4620    0xfff0707f,  /* mop_r_22 */
4621    0xfff0707f,  /* mop_r_23 */
4622    0xfff0707f,  /* mop_r_24 */
4623    0xfff0707f,  /* mop_r_25 */
4624    0xfff0707f,  /* mop_r_26 */
4625    0xfff0707f,  /* mop_r_27 */
4626    0xfff0707f,  /* mop_r_28 */
4627    0xfff0707f,  /* mop_r_29 */
4628    0xfff0707f,  /* mop_r_3 */
4629    0xfff0707f,  /* mop_r_30 */
4630    0xfff0707f,  /* mop_r_31 */
4631    0xfff0707f,  /* mop_r_4 */
4632    0xfff0707f,  /* mop_r_5 */
4633    0xfff0707f,  /* mop_r_6 */
4634    0xfff0707f,  /* mop_r_7 */
4635    0xfff0707f,  /* mop_r_8 */
4636    0xfff0707f,  /* mop_r_9 */
4637    0xb3c0707f,  /* mop_r_N */
4638    0xfe00707f,  /* mop_rr_0 */
4639    0xfe00707f,  /* mop_rr_1 */
4640    0xfe00707f,  /* mop_rr_2 */
4641    0xfe00707f,  /* mop_rr_3 */
4642    0xfe00707f,  /* mop_rr_4 */
4643    0xfe00707f,  /* mop_rr_5 */
4644    0xfe00707f,  /* mop_rr_6 */
4645    0xfe00707f,  /* mop_rr_7 */
4646    0xb200707f,  /* mop_rr_N */
4647    0xffffffff,  /* mret */
4648    0xfe00707f,  /* mul */
4649    0xfe00707f,  /* mulh */
4650    0xfe00707f,  /* mulhsu */
4651    0xfe00707f,  /* mulhu */
4652    0xffff_ffff, /* mulw */
4653    0xfff0707f,  /* mv */
4654    0xfff0707f,  /* neg */
4655    0xffffffff,  /* nop */
4656    0xffffffff,  /* ntl_all */
4657    0xffffffff,  /* ntl_p1 */
4658    0xffffffff,  /* ntl_pall */
4659    0xffffffff,  /* ntl_s1 */
4660    0xfe00707f,  /* or */
4661    0xfff0707f,  /* orc_b */
4662    0x707f,      /* ori */
4663    0xfe00707f,  /* orn */
4664    0xfe00707f,  /* pack */
4665    0xfe00707f,  /* packh */
4666    0xffff_ffff, /* packw */
4667    0xffffffff,  /* pause */
4668    0x1f07fff,   /* prefetch_i */
4669    0x1f07fff,   /* prefetch_r */
4670    0x1f07fff,   /* prefetch_w */
4671    0xfffff07f,  /* rdcycle */
4672    0xfffff07f,  /* rdcycleh */
4673    0xfffff07f,  /* rdinstret */
4674    0xfffff07f,  /* rdinstreth */
4675    0xfffff07f,  /* rdtime */
4676    0xfffff07f,  /* rdtimeh */
4677    0xfe00707f,  /* rem */
4678    0xfe00707f,  /* remu */
4679    0xffff_ffff, /* remuw */
4680    0xffff_ffff, /* remw */
4681    0xffffffff,  /* ret */
4682    0xffff_ffff, /* rev8 */
4683    0xfff0707f,  /* rev8_rv32 */
4684    0xfe00707f,  /* rol */
4685    0xffff_ffff, /* rolw */
4686    0xfe00707f,  /* ror */
4687    0xffff_ffff, /* rori */
4688    0xfe00707f,  /* rori_rv32 */
4689    0xffff_ffff, /* roriw */
4690    0xffff_ffff, /* rorw */
4691    0x707f,      /* sb */
4692    0xffffffff,  /* sbreak */
4693    0xffff_ffff, /* sc_d */
4694    0xf800707f,  /* sc_w */
4695    0xffffffff,  /* scall */
4696    0xffffffff,  /* sctrclr */
4697    0xffff_ffff, /* sd */
4698    0xfff0707f,  /* seqz */
4699    0xfff0707f,  /* sext_b */
4700    0xfff0707f,  /* sext_h */
4701    0xffff_ffff, /* sext_w */
4702    0xffffffff,  /* sfence_inval_ir */
4703    0xfe007fff,  /* sfence_vma */
4704    0xffffffff,  /* sfence_w_inval */
4705    0xfe0ff07f,  /* sgtz */
4706    0x707f,      /* sh */
4707    0xfe00707f,  /* sh1add */
4708    0xffff_ffff, /* sh1add_uw */
4709    0xfe00707f,  /* sh2add */
4710    0xffff_ffff, /* sh2add_uw */
4711    0xfe00707f,  /* sh3add */
4712    0xffff_ffff, /* sh3add_uw */
4713    0xfff0707f,  /* sha256sig0 */
4714    0xfff0707f,  /* sha256sig1 */
4715    0xfff0707f,  /* sha256sum0 */
4716    0xfff0707f,  /* sha256sum1 */
4717    0xffff_ffff, /* sha512sig0 */
4718    0xfe00707f,  /* sha512sig0h */
4719    0xfe00707f,  /* sha512sig0l */
4720    0xffff_ffff, /* sha512sig1 */
4721    0xfe00707f,  /* sha512sig1h */
4722    0xfe00707f,  /* sha512sig1l */
4723    0xffff_ffff, /* sha512sum0 */
4724    0xfe00707f,  /* sha512sum0r */
4725    0xffff_ffff, /* sha512sum1 */
4726    0xfe00707f,  /* sha512sum1r */
4727    0xfe007fff,  /* sinval_vma */
4728    0xfe00707f,  /* sll */
4729    0xfc00707f,  /* slli */
4730    0xfe00707f,  /* slli_rv32 */
4731    0xffff_ffff, /* slli_uw */
4732    0xffff_ffff, /* slliw */
4733    0xffff_ffff, /* sllw */
4734    0xfe00707f,  /* slt */
4735    0x707f,      /* slti */
4736    0x707f,      /* sltiu */
4737    0xfe00707f,  /* sltu */
4738    0xfff0707f,  /* sltz */
4739    0xfff0707f,  /* sm3p0 */
4740    0xfff0707f,  /* sm3p1 */
4741    0x3e00707f,  /* sm4ed */
4742    0x3e00707f,  /* sm4ks */
4743    0xfe0ff07f,  /* snez */
4744    0xfe00707f,  /* sra */
4745    0xfc00707f,  /* srai */
4746    0xfe00707f,  /* srai_rv32 */
4747    0xffff_ffff, /* sraiw */
4748    0xffff_ffff, /* sraw */
4749    0xffffffff,  /* sret */
4750    0xfe00707f,  /* srl */
4751    0xfc00707f,  /* srli */
4752    0xfe00707f,  /* srli_rv32 */
4753    0xffff_ffff, /* srliw */
4754    0xffff_ffff, /* srlw */
4755    0xffff_ffff, /* ssamoswap_d */
4756    0xf800707f,  /* ssamoswap_w */
4757    0xffffffff,  /* sspopchk_x1 */
4758    0xffffffff,  /* sspopchk_x5 */
4759    0xffffffff,  /* sspush_x1 */
4760    0xffffffff,  /* sspush_x5 */
4761    0xfffff07f,  /* ssrdp */
4762    0xfe00707f,  /* sub */
4763    0xffff_ffff, /* subw */
4764    0x707f,      /* sw */
4765    0xfff0707f,  /* unzip */
4766    0xfc00707f,  /* vaadd_vv */
4767    0xfc00707f,  /* vaadd_vx */
4768    0xfc00707f,  /* vaaddu_vv */
4769    0xfc00707f,  /* vaaddu_vx */
4770    0xfe00707f,  /* vadc_vim */
4771    0xfe00707f,  /* vadc_vvm */
4772    0xfe00707f,  /* vadc_vxm */
4773    0xfc00707f,  /* vadd_vi */
4774    0xfc00707f,  /* vadd_vv */
4775    0xfc00707f,  /* vadd_vx */
4776    0xfe0ff07f,  /* vaesdf_vs */
4777    0xfe0ff07f,  /* vaesdf_vv */
4778    0xfe0ff07f,  /* vaesdm_vs */
4779    0xfe0ff07f,  /* vaesdm_vv */
4780    0xfe0ff07f,  /* vaesef_vs */
4781    0xfe0ff07f,  /* vaesef_vv */
4782    0xfe0ff07f,  /* vaesem_vs */
4783    0xfe0ff07f,  /* vaesem_vv */
4784    0xfe00707f,  /* vaeskf1_vi */
4785    0xfe00707f,  /* vaeskf2_vi */
4786    0xfe0ff07f,  /* vaesz_vs */
4787    0xfc00707f,  /* vand_vi */
4788    0xfc00707f,  /* vand_vv */
4789    0xfc00707f,  /* vand_vx */
4790    0xfc00707f,  /* vandn_vv */
4791    0xfc00707f,  /* vandn_vx */
4792    0xfc00707f,  /* vasub_vv */
4793    0xfc00707f,  /* vasub_vx */
4794    0xfc00707f,  /* vasubu_vv */
4795    0xfc00707f,  /* vasubu_vx */
4796    0xfc0ff07f,  /* vbrev8_v */
4797    0xfc0ff07f,  /* vbrev_v */
4798    0xfc00707f,  /* vclmul_vv */
4799    0xfc00707f,  /* vclmul_vx */
4800    0xfc00707f,  /* vclmulh_vv */
4801    0xfc00707f,  /* vclmulh_vx */
4802    0xfc0ff07f,  /* vclz_v */
4803    0xfe00707f,  /* vcompress_vm */
4804    0xfc0ff07f,  /* vcpop_m */
4805    0xfc0ff07f,  /* vcpop_v */
4806    0xfc0ff07f,  /* vctz_v */
4807    0xfc00707f,  /* vdiv_vv */
4808    0xfc00707f,  /* vdiv_vx */
4809    0xfc00707f,  /* vdivu_vv */
4810    0xfc00707f,  /* vdivu_vx */
4811    0xfc00707f,  /* vfadd_vf */
4812    0xfc00707f,  /* vfadd_vv */
4813    0xfc0ff07f,  /* vfclass_v */
4814    0xfc0ff07f,  /* vfcvt_f_x_v */
4815    0xfc0ff07f,  /* vfcvt_f_xu_v */
4816    0xfc0ff07f,  /* vfcvt_rtz_x_f_v */
4817    0xfc0ff07f,  /* vfcvt_rtz_xu_f_v */
4818    0xfc0ff07f,  /* vfcvt_x_f_v */
4819    0xfc0ff07f,  /* vfcvt_xu_f_v */
4820    0xfc00707f,  /* vfdiv_vf */
4821    0xfc00707f,  /* vfdiv_vv */
4822    0xfc0ff07f,  /* vfirst_m */
4823    0xfc00707f,  /* vfmacc_vf */
4824    0xfc00707f,  /* vfmacc_vv */
4825    0xfc00707f,  /* vfmadd_vf */
4826    0xfc00707f,  /* vfmadd_vv */
4827    0xfc00707f,  /* vfmax_vf */
4828    0xfc00707f,  /* vfmax_vv */
4829    0xfe00707f,  /* vfmerge_vfm */
4830    0xfc00707f,  /* vfmin_vf */
4831    0xfc00707f,  /* vfmin_vv */
4832    0xfc00707f,  /* vfmsac_vf */
4833    0xfc00707f,  /* vfmsac_vv */
4834    0xfc00707f,  /* vfmsub_vf */
4835    0xfc00707f,  /* vfmsub_vv */
4836    0xfc00707f,  /* vfmul_vf */
4837    0xfc00707f,  /* vfmul_vv */
4838    0xfe0ff07f,  /* vfmv_f_s */
4839    0xfff0707f,  /* vfmv_s_f */
4840    0xfff0707f,  /* vfmv_v_f */
4841    0xfc0ff07f,  /* vfncvt_f_f_w */
4842    0xfc0ff07f,  /* vfncvt_f_x_w */
4843    0xfc0ff07f,  /* vfncvt_f_xu_w */
4844    0xfc0ff07f,  /* vfncvt_rod_f_f_w */
4845    0xfc0ff07f,  /* vfncvt_rtz_x_f_w */
4846    0xfc0ff07f,  /* vfncvt_rtz_xu_f_w */
4847    0xfc0ff07f,  /* vfncvt_x_f_w */
4848    0xfc0ff07f,  /* vfncvt_xu_f_w */
4849    0xfc0ff07f,  /* vfncvtbf16_f_f_w */
4850    0xfc00707f,  /* vfnmacc_vf */
4851    0xfc00707f,  /* vfnmacc_vv */
4852    0xfc00707f,  /* vfnmadd_vf */
4853    0xfc00707f,  /* vfnmadd_vv */
4854    0xfc00707f,  /* vfnmsac_vf */
4855    0xfc00707f,  /* vfnmsac_vv */
4856    0xfc00707f,  /* vfnmsub_vf */
4857    0xfc00707f,  /* vfnmsub_vv */
4858    0xfc00707f,  /* vfrdiv_vf */
4859    0xfc0ff07f,  /* vfrec7_v */
4860    0xfc00707f,  /* vfredmax_vs */
4861    0xfc00707f,  /* vfredmin_vs */
4862    0xfc00707f,  /* vfredosum_vs */
4863    0xfc00707f,  /* vfredsum_vs */
4864    0xfc00707f,  /* vfredusum_vs */
4865    0xfc0ff07f,  /* vfrsqrt7_v */
4866    0xfc00707f,  /* vfrsub_vf */
4867    0xfc00707f,  /* vfsgnj_vf */
4868    0xfc00707f,  /* vfsgnj_vv */
4869    0xfc00707f,  /* vfsgnjn_vf */
4870    0xfc00707f,  /* vfsgnjn_vv */
4871    0xfc00707f,  /* vfsgnjx_vf */
4872    0xfc00707f,  /* vfsgnjx_vv */
4873    0xfc00707f,  /* vfslide1down_vf */
4874    0xfc00707f,  /* vfslide1up_vf */
4875    0xfc0ff07f,  /* vfsqrt_v */
4876    0xfc00707f,  /* vfsub_vf */
4877    0xfc00707f,  /* vfsub_vv */
4878    0xfc00707f,  /* vfwadd_vf */
4879    0xfc00707f,  /* vfwadd_vv */
4880    0xfc00707f,  /* vfwadd_wf */
4881    0xfc00707f,  /* vfwadd_wv */
4882    0xfc0ff07f,  /* vfwcvt_f_f_v */
4883    0xfc0ff07f,  /* vfwcvt_f_x_v */
4884    0xfc0ff07f,  /* vfwcvt_f_xu_v */
4885    0xfc0ff07f,  /* vfwcvt_rtz_x_f_v */
4886    0xfc0ff07f,  /* vfwcvt_rtz_xu_f_v */
4887    0xfc0ff07f,  /* vfwcvt_x_f_v */
4888    0xfc0ff07f,  /* vfwcvt_xu_f_v */
4889    0xfc0ff07f,  /* vfwcvtbf16_f_f_v */
4890    0xfc00707f,  /* vfwmacc_vf */
4891    0xfc00707f,  /* vfwmacc_vv */
4892    0xfc00707f,  /* vfwmaccbf16_vf */
4893    0xfc00707f,  /* vfwmaccbf16_vv */
4894    0xfc00707f,  /* vfwmsac_vf */
4895    0xfc00707f,  /* vfwmsac_vv */
4896    0xfc00707f,  /* vfwmul_vf */
4897    0xfc00707f,  /* vfwmul_vv */
4898    0xfc00707f,  /* vfwnmacc_vf */
4899    0xfc00707f,  /* vfwnmacc_vv */
4900    0xfc00707f,  /* vfwnmsac_vf */
4901    0xfc00707f,  /* vfwnmsac_vv */
4902    0xfc00707f,  /* vfwredosum_vs */
4903    0xfc00707f,  /* vfwredsum_vs */
4904    0xfc00707f,  /* vfwredusum_vs */
4905    0xfc00707f,  /* vfwsub_vf */
4906    0xfc00707f,  /* vfwsub_vv */
4907    0xfc00707f,  /* vfwsub_wf */
4908    0xfc00707f,  /* vfwsub_wv */
4909    0xfe00707f,  /* vghsh_vv */
4910    0xfe0ff07f,  /* vgmul_vv */
4911    0xfdfff07f,  /* vid_v */
4912    0xfc0ff07f,  /* viota_m */
4913    0xfff0707f,  /* vl1r_v */
4914    0xfff0707f,  /* vl1re16_v */
4915    0xfff0707f,  /* vl1re32_v */
4916    0xfff0707f,  /* vl1re64_v */
4917    0xfff0707f,  /* vl1re8_v */
4918    0xfff0707f,  /* vl2r_v */
4919    0xfff0707f,  /* vl2re16_v */
4920    0xfff0707f,  /* vl2re32_v */
4921    0xfff0707f,  /* vl2re64_v */
4922    0xfff0707f,  /* vl2re8_v */
4923    0xfff0707f,  /* vl4r_v */
4924    0xfff0707f,  /* vl4re16_v */
4925    0xfff0707f,  /* vl4re32_v */
4926    0xfff0707f,  /* vl4re64_v */
4927    0xfff0707f,  /* vl4re8_v */
4928    0xfff0707f,  /* vl8r_v */
4929    0xfff0707f,  /* vl8re16_v */
4930    0xfff0707f,  /* vl8re32_v */
4931    0xfff0707f,  /* vl8re64_v */
4932    0xfff0707f,  /* vl8re8_v */
4933    0x1df0707f,  /* vle16_v */
4934    0x1df0707f,  /* vle16ff_v */
4935    0xfff0707f,  /* vle1_v */
4936    0x1df0707f,  /* vle32_v */
4937    0x1df0707f,  /* vle32ff_v */
4938    0x1df0707f,  /* vle64_v */
4939    0x1df0707f,  /* vle64ff_v */
4940    0x1df0707f,  /* vle8_v */
4941    0x1df0707f,  /* vle8ff_v */
4942    0xfff0707f,  /* vlm_v */
4943    0x1c00707f,  /* vloxei16_v */
4944    0x1c00707f,  /* vloxei32_v */
4945    0x1c00707f,  /* vloxei64_v */
4946    0x1c00707f,  /* vloxei8_v */
4947    0x1c00707f,  /* vlse16_v */
4948    0x1c00707f,  /* vlse32_v */
4949    0x1c00707f,  /* vlse64_v */
4950    0x1c00707f,  /* vlse8_v */
4951    0x1c00707f,  /* vluxei16_v */
4952    0x1c00707f,  /* vluxei32_v */
4953    0x1c00707f,  /* vluxei64_v */
4954    0x1c00707f,  /* vluxei8_v */
4955    0xfc00707f,  /* vmacc_vv */
4956    0xfc00707f,  /* vmacc_vx */
4957    0xfe00707f,  /* vmadc_vi */
4958    0xfe00707f,  /* vmadc_vim */
4959    0xfe00707f,  /* vmadc_vv */
4960    0xfe00707f,  /* vmadc_vvm */
4961    0xfe00707f,  /* vmadc_vx */
4962    0xfe00707f,  /* vmadc_vxm */
4963    0xfc00707f,  /* vmadd_vv */
4964    0xfc00707f,  /* vmadd_vx */
4965    0xfe00707f,  /* vmand_mm */
4966    0xfe00707f,  /* vmandn_mm */
4967    0xfc00707f,  /* vmandnot_mm */
4968    0xfc00707f,  /* vmax_vv */
4969    0xfc00707f,  /* vmax_vx */
4970    0xfc00707f,  /* vmaxu_vv */
4971    0xfc00707f,  /* vmaxu_vx */
4972    0xfe00707f,  /* vmerge_vim */
4973    0xfe00707f,  /* vmerge_vvm */
4974    0xfe00707f,  /* vmerge_vxm */
4975    0xfc00707f,  /* vmfeq_vf */
4976    0xfc00707f,  /* vmfeq_vv */
4977    0xfc00707f,  /* vmfge_vf */
4978    0xfc00707f,  /* vmfgt_vf */
4979    0xfc00707f,  /* vmfle_vf */
4980    0xfc00707f,  /* vmfle_vv */
4981    0xfc00707f,  /* vmflt_vf */
4982    0xfc00707f,  /* vmflt_vv */
4983    0xfc00707f,  /* vmfne_vf */
4984    0xfc00707f,  /* vmfne_vv */
4985    0xfc00707f,  /* vmin_vv */
4986    0xfc00707f,  /* vmin_vx */
4987    0xfc00707f,  /* vminu_vv */
4988    0xfc00707f,  /* vminu_vx */
4989    0xfe00707f,  /* vmnand_mm */
4990    0xfe00707f,  /* vmnor_mm */
4991    0xfe00707f,  /* vmor_mm */
4992    0xfe00707f,  /* vmorn_mm */
4993    0xfc00707f,  /* vmornot_mm */
4994    0xfe00707f,  /* vmsbc_vv */
4995    0xfe00707f,  /* vmsbc_vvm */
4996    0xfe00707f,  /* vmsbc_vx */
4997    0xfe00707f,  /* vmsbc_vxm */
4998    0xfc0ff07f,  /* vmsbf_m */
4999    0xfc00707f,  /* vmseq_vi */
5000    0xfc00707f,  /* vmseq_vv */
5001    0xfc00707f,  /* vmseq_vx */
5002    0xfc00707f,  /* vmsgt_vi */
5003    0xfc00707f,  /* vmsgt_vx */
5004    0xfc00707f,  /* vmsgtu_vi */
5005    0xfc00707f,  /* vmsgtu_vx */
5006    0xfc0ff07f,  /* vmsif_m */
5007    0xfc00707f,  /* vmsle_vi */
5008    0xfc00707f,  /* vmsle_vv */
5009    0xfc00707f,  /* vmsle_vx */
5010    0xfc00707f,  /* vmsleu_vi */
5011    0xfc00707f,  /* vmsleu_vv */
5012    0xfc00707f,  /* vmsleu_vx */
5013    0xfc00707f,  /* vmslt_vv */
5014    0xfc00707f,  /* vmslt_vx */
5015    0xfc00707f,  /* vmsltu_vv */
5016    0xfc00707f,  /* vmsltu_vx */
5017    0xfc00707f,  /* vmsne_vi */
5018    0xfc00707f,  /* vmsne_vv */
5019    0xfc00707f,  /* vmsne_vx */
5020    0xfc0ff07f,  /* vmsof_m */
5021    0xfc00707f,  /* vmul_vv */
5022    0xfc00707f,  /* vmul_vx */
5023    0xfc00707f,  /* vmulh_vv */
5024    0xfc00707f,  /* vmulh_vx */
5025    0xfc00707f,  /* vmulhsu_vv */
5026    0xfc00707f,  /* vmulhsu_vx */
5027    0xfc00707f,  /* vmulhu_vv */
5028    0xfc00707f,  /* vmulhu_vx */
5029    0xfe0ff07f,  /* vmv1r_v */
5030    0xfe0ff07f,  /* vmv2r_v */
5031    0xfe0ff07f,  /* vmv4r_v */
5032    0xfe0ff07f,  /* vmv8r_v */
5033    0xfff0707f,  /* vmv_s_x */
5034    0xfff0707f,  /* vmv_v_i */
5035    0xfff0707f,  /* vmv_v_v */
5036    0xfff0707f,  /* vmv_v_x */
5037    0xfe0ff07f,  /* vmv_x_s */
5038    0xfe00707f,  /* vmxnor_mm */
5039    0xfe00707f,  /* vmxor_mm */
5040    0xfc00707f,  /* vnclip_wi */
5041    0xfc00707f,  /* vnclip_wv */
5042    0xfc00707f,  /* vnclip_wx */
5043    0xfc00707f,  /* vnclipu_wi */
5044    0xfc00707f,  /* vnclipu_wv */
5045    0xfc00707f,  /* vnclipu_wx */
5046    0xfc00707f,  /* vnmsac_vv */
5047    0xfc00707f,  /* vnmsac_vx */
5048    0xfc00707f,  /* vnmsub_vv */
5049    0xfc00707f,  /* vnmsub_vx */
5050    0xfc00707f,  /* vnsra_wi */
5051    0xfc00707f,  /* vnsra_wv */
5052    0xfc00707f,  /* vnsra_wx */
5053    0xfc00707f,  /* vnsrl_wi */
5054    0xfc00707f,  /* vnsrl_wv */
5055    0xfc00707f,  /* vnsrl_wx */
5056    0xfc00707f,  /* vor_vi */
5057    0xfc00707f,  /* vor_vv */
5058    0xfc00707f,  /* vor_vx */
5059    0xfc0ff07f,  /* vpopc_m */
5060    0xfc00707f,  /* vredand_vs */
5061    0xfc00707f,  /* vredmax_vs */
5062    0xfc00707f,  /* vredmaxu_vs */
5063    0xfc00707f,  /* vredmin_vs */
5064    0xfc00707f,  /* vredminu_vs */
5065    0xfc00707f,  /* vredor_vs */
5066    0xfc00707f,  /* vredsum_vs */
5067    0xfc00707f,  /* vredxor_vs */
5068    0xfc00707f,  /* vrem_vv */
5069    0xfc00707f,  /* vrem_vx */
5070    0xfc00707f,  /* vremu_vv */
5071    0xfc00707f,  /* vremu_vx */
5072    0xfc0ff07f,  /* vrev8_v */
5073    0xfc00707f,  /* vrgather_vi */
5074    0xfc00707f,  /* vrgather_vv */
5075    0xfc00707f,  /* vrgather_vx */
5076    0xfc00707f,  /* vrgatherei16_vv */
5077    0xfc00707f,  /* vrol_vv */
5078    0xfc00707f,  /* vrol_vx */
5079    0xf800707f,  /* vror_vi */
5080    0xfc00707f,  /* vror_vv */
5081    0xfc00707f,  /* vror_vx */
5082    0xfc00707f,  /* vrsub_vi */
5083    0xfc00707f,  /* vrsub_vx */
5084    0xfff0707f,  /* vs1r_v */
5085    0xfff0707f,  /* vs2r_v */
5086    0xfff0707f,  /* vs4r_v */
5087    0xfff0707f,  /* vs8r_v */
5088    0xfc00707f,  /* vsadd_vi */
5089    0xfc00707f,  /* vsadd_vv */
5090    0xfc00707f,  /* vsadd_vx */
5091    0xfc00707f,  /* vsaddu_vi */
5092    0xfc00707f,  /* vsaddu_vv */
5093    0xfc00707f,  /* vsaddu_vx */
5094    0xfe00707f,  /* vsbc_vvm */
5095    0xfe00707f,  /* vsbc_vxm */
5096    0x1df0707f,  /* vse16_v */
5097    0xfff0707f,  /* vse1_v */
5098    0x1df0707f,  /* vse32_v */
5099    0x1df0707f,  /* vse64_v */
5100    0x1df0707f,  /* vse8_v */
5101    0xc000707f,  /* vsetivli */
5102    0xfe00707f,  /* vsetvl */
5103    0x8000707f,  /* vsetvli */
5104    0xfc0ff07f,  /* vsext_vf2 */
5105    0xfc0ff07f,  /* vsext_vf4 */
5106    0xfc0ff07f,  /* vsext_vf8 */
5107    0xfe00707f,  /* vsha2ch_vv */
5108    0xfe00707f,  /* vsha2cl_vv */
5109    0xfe00707f,  /* vsha2ms_vv */
5110    0xfc00707f,  /* vslide1down_vx */
5111    0xfc00707f,  /* vslide1up_vx */
5112    0xfc00707f,  /* vslidedown_vi */
5113    0xfc00707f,  /* vslidedown_vx */
5114    0xfc00707f,  /* vslideup_vi */
5115    0xfc00707f,  /* vslideup_vx */
5116    0xfc00707f,  /* vsll_vi */
5117    0xfc00707f,  /* vsll_vv */
5118    0xfc00707f,  /* vsll_vx */
5119    0xfe00707f,  /* vsm3c_vi */
5120    0xfe00707f,  /* vsm3me_vv */
5121    0xfe00707f,  /* vsm4k_vi */
5122    0xfe0ff07f,  /* vsm4r_vs */
5123    0xfe0ff07f,  /* vsm4r_vv */
5124    0xfff0707f,  /* vsm_v */
5125    0xfc00707f,  /* vsmul_vv */
5126    0xfc00707f,  /* vsmul_vx */
5127    0x1c00707f,  /* vsoxei16_v */
5128    0x1c00707f,  /* vsoxei32_v */
5129    0x1c00707f,  /* vsoxei64_v */
5130    0x1c00707f,  /* vsoxei8_v */
5131    0xfc00707f,  /* vsra_vi */
5132    0xfc00707f,  /* vsra_vv */
5133    0xfc00707f,  /* vsra_vx */
5134    0xfc00707f,  /* vsrl_vi */
5135    0xfc00707f,  /* vsrl_vv */
5136    0xfc00707f,  /* vsrl_vx */
5137    0x1c00707f,  /* vsse16_v */
5138    0x1c00707f,  /* vsse32_v */
5139    0x1c00707f,  /* vsse64_v */
5140    0x1c00707f,  /* vsse8_v */
5141    0xfc00707f,  /* vssra_vi */
5142    0xfc00707f,  /* vssra_vv */
5143    0xfc00707f,  /* vssra_vx */
5144    0xfc00707f,  /* vssrl_vi */
5145    0xfc00707f,  /* vssrl_vv */
5146    0xfc00707f,  /* vssrl_vx */
5147    0xfc00707f,  /* vssub_vv */
5148    0xfc00707f,  /* vssub_vx */
5149    0xfc00707f,  /* vssubu_vv */
5150    0xfc00707f,  /* vssubu_vx */
5151    0xfc00707f,  /* vsub_vv */
5152    0xfc00707f,  /* vsub_vx */
5153    0x1c00707f,  /* vsuxei16_v */
5154    0x1c00707f,  /* vsuxei32_v */
5155    0x1c00707f,  /* vsuxei64_v */
5156    0x1c00707f,  /* vsuxei8_v */
5157    0xfc00707f,  /* vwadd_vv */
5158    0xfc00707f,  /* vwadd_vx */
5159    0xfc00707f,  /* vwadd_wv */
5160    0xfc00707f,  /* vwadd_wx */
5161    0xfc00707f,  /* vwaddu_vv */
5162    0xfc00707f,  /* vwaddu_vx */
5163    0xfc00707f,  /* vwaddu_wv */
5164    0xfc00707f,  /* vwaddu_wx */
5165    0xfc00707f,  /* vwmacc_vv */
5166    0xfc00707f,  /* vwmacc_vx */
5167    0xfc00707f,  /* vwmaccsu_vv */
5168    0xfc00707f,  /* vwmaccsu_vx */
5169    0xfc00707f,  /* vwmaccu_vv */
5170    0xfc00707f,  /* vwmaccu_vx */
5171    0xfc00707f,  /* vwmaccus_vx */
5172    0xfc00707f,  /* vwmul_vv */
5173    0xfc00707f,  /* vwmul_vx */
5174    0xfc00707f,  /* vwmulsu_vv */
5175    0xfc00707f,  /* vwmulsu_vx */
5176    0xfc00707f,  /* vwmulu_vv */
5177    0xfc00707f,  /* vwmulu_vx */
5178    0xfc00707f,  /* vwredsum_vs */
5179    0xfc00707f,  /* vwredsumu_vs */
5180    0xfc00707f,  /* vwsll_vi */
5181    0xfc00707f,  /* vwsll_vv */
5182    0xfc00707f,  /* vwsll_vx */
5183    0xfc00707f,  /* vwsub_vv */
5184    0xfc00707f,  /* vwsub_vx */
5185    0xfc00707f,  /* vwsub_wv */
5186    0xfc00707f,  /* vwsub_wx */
5187    0xfc00707f,  /* vwsubu_vv */
5188    0xfc00707f,  /* vwsubu_vx */
5189    0xfc00707f,  /* vwsubu_wv */
5190    0xfc00707f,  /* vwsubu_wx */
5191    0xfc00707f,  /* vxor_vi */
5192    0xfc00707f,  /* vxor_vv */
5193    0xfc00707f,  /* vxor_vx */
5194    0xfc0ff07f,  /* vzext_vf2 */
5195    0xfc0ff07f,  /* vzext_vf4 */
5196    0xfc0ff07f,  /* vzext_vf8 */
5197    0xffffffff,  /* wfi */
5198    0xffffffff,  /* wrs_nto */
5199    0xffffffff,  /* wrs_sto */
5200    0xfe00707f,  /* xnor */
5201    0xfe00707f,  /* xor */
5202    0x707f,      /* xori */
5203    0xfe00707f,  /* xperm4 */
5204    0xfe00707f,  /* xperm8 */
5205    0xfff0707f,  /* zext_b */
5206    0xffff_ffff, /* zext_h */
5207    0xfff0707f,  /* zext_h_rv32 */
5208    0xffff_ffff, /* zext_w */
5209    0xfff0707f,  /* zip */
5210];
5211pub static OPCODE64_MATCH: [u32; 1039] = [
5212    0x33,        /* add */
5213    0x800003b,   /* add_uw */
5214    0x13,        /* addi */
5215    0x1b,        /* addiw */
5216    0x3b,        /* addw */
5217    0xffff_ffff, /* aes32dsi */
5218    0xffff_ffff, /* aes32dsmi */
5219    0xffff_ffff, /* aes32esi */
5220    0xffff_ffff, /* aes32esmi */
5221    0x3a000033,  /* aes64ds */
5222    0x3e000033,  /* aes64dsm */
5223    0x32000033,  /* aes64es */
5224    0x36000033,  /* aes64esm */
5225    0x30001013,  /* aes64im */
5226    0x31001013,  /* aes64ks1i */
5227    0x7e000033,  /* aes64ks2 */
5228    0x2f,        /* amoadd_b */
5229    0x302f,      /* amoadd_d */
5230    0x102f,      /* amoadd_h */
5231    0x202f,      /* amoadd_w */
5232    0x6000002f,  /* amoand_b */
5233    0x6000302f,  /* amoand_d */
5234    0x6000102f,  /* amoand_h */
5235    0x6000202f,  /* amoand_w */
5236    0x2800002f,  /* amocas_b */
5237    0x2800302f,  /* amocas_d */
5238    0x2800102f,  /* amocas_h */
5239    0x2800402f,  /* amocas_q */
5240    0x2800202f,  /* amocas_w */
5241    0xa000002f,  /* amomax_b */
5242    0xa000302f,  /* amomax_d */
5243    0xa000102f,  /* amomax_h */
5244    0xa000202f,  /* amomax_w */
5245    0xe000002f,  /* amomaxu_b */
5246    0xe000302f,  /* amomaxu_d */
5247    0xe000102f,  /* amomaxu_h */
5248    0xe000202f,  /* amomaxu_w */
5249    0x8000002f,  /* amomin_b */
5250    0x8000302f,  /* amomin_d */
5251    0x8000102f,  /* amomin_h */
5252    0x8000202f,  /* amomin_w */
5253    0xc000002f,  /* amominu_b */
5254    0xc000302f,  /* amominu_d */
5255    0xc000102f,  /* amominu_h */
5256    0xc000202f,  /* amominu_w */
5257    0x4000002f,  /* amoor_b */
5258    0x4000302f,  /* amoor_d */
5259    0x4000102f,  /* amoor_h */
5260    0x4000202f,  /* amoor_w */
5261    0x800002f,   /* amoswap_b */
5262    0x800302f,   /* amoswap_d */
5263    0x800102f,   /* amoswap_h */
5264    0x800202f,   /* amoswap_w */
5265    0x2000002f,  /* amoxor_b */
5266    0x2000302f,  /* amoxor_d */
5267    0x2000102f,  /* amoxor_h */
5268    0x2000202f,  /* amoxor_w */
5269    0x7033,      /* and */
5270    0x7013,      /* andi */
5271    0x40007033,  /* andn */
5272    0x17,        /* auipc */
5273    0x48001033,  /* bclr */
5274    0x48001013,  /* bclri */
5275    0xffff_ffff, /* bclri_rv32 */
5276    0x63,        /* beq */
5277    0x63,        /* beqz */
5278    0x48005033,  /* bext */
5279    0x48005013,  /* bexti */
5280    0xffff_ffff, /* bexti_rv32 */
5281    0x5063,      /* bge */
5282    0x7063,      /* bgeu */
5283    0x5063,      /* bgez */
5284    0x4063,      /* bgt */
5285    0x6063,      /* bgtu */
5286    0x4063,      /* bgtz */
5287    0x68001033,  /* binv */
5288    0x68001013,  /* binvi */
5289    0xffff_ffff, /* binvi_rv32 */
5290    0x5063,      /* ble */
5291    0x7063,      /* bleu */
5292    0x5063,      /* blez */
5293    0x4063,      /* blt */
5294    0x6063,      /* bltu */
5295    0x4063,      /* bltz */
5296    0x1063,      /* bne */
5297    0x1063,      /* bnez */
5298    0x68705013,  /* brev8 */
5299    0x28001033,  /* bset */
5300    0x28001013,  /* bseti */
5301    0xffff_ffff, /* bseti_rv32 */
5302    0x9002,      /* c_add */
5303    0x1,         /* c_addi */
5304    0x6101,      /* c_addi16sp */
5305    0x0,         /* c_addi4spn */
5306    0x2001,      /* c_addiw */
5307    0x9c21,      /* c_addw */
5308    0x8c61,      /* c_and */
5309    0x8801,      /* c_andi */
5310    0xc001,      /* c_beqz */
5311    0xe001,      /* c_bnez */
5312    0x9002,      /* c_ebreak */
5313    0x2000,      /* c_fld */
5314    0x2002,      /* c_fldsp */
5315    0xffff_ffff, /* c_flw */
5316    0xffff_ffff, /* c_flwsp */
5317    0xa000,      /* c_fsd */
5318    0xa002,      /* c_fsdsp */
5319    0xffff_ffff, /* c_fsw */
5320    0xffff_ffff, /* c_fswsp */
5321    0xa001,      /* c_j */
5322    0xffff_ffff, /* c_jal */
5323    0x9002,      /* c_jalr */
5324    0x8002,      /* c_jr */
5325    0x8000,      /* c_lbu */
5326    0x6000,      /* c_ld */
5327    0x6002,      /* c_ldsp */
5328    0x8440,      /* c_lh */
5329    0x8400,      /* c_lhu */
5330    0x4001,      /* c_li */
5331    0x6001,      /* c_lui */
5332    0x4000,      /* c_lw */
5333    0x4002,      /* c_lwsp */
5334    0x6081,      /* c_mop_1 */
5335    0x6581,      /* c_mop_11 */
5336    0x6681,      /* c_mop_13 */
5337    0x6781,      /* c_mop_15 */
5338    0x6181,      /* c_mop_3 */
5339    0x6281,      /* c_mop_5 */
5340    0x6381,      /* c_mop_7 */
5341    0x6481,      /* c_mop_9 */
5342    0x6081,      /* c_mop_N */
5343    0x9c41,      /* c_mul */
5344    0x8002,      /* c_mv */
5345    0x1,         /* c_nop */
5346    0x9c75,      /* c_not */
5347    0x9016,      /* c_ntl_all */
5348    0x900a,      /* c_ntl_p1 */
5349    0x900e,      /* c_ntl_pall */
5350    0x9012,      /* c_ntl_s1 */
5351    0x8c41,      /* c_or */
5352    0x8800,      /* c_sb */
5353    0xe000,      /* c_sd */
5354    0xe002,      /* c_sdsp */
5355    0x9c65,      /* c_sext_b */
5356    0x9c6d,      /* c_sext_h */
5357    0x2001,      /* c_sext_w */
5358    0x8c00,      /* c_sh */
5359    0x2,         /* c_slli */
5360    0xffff_ffff, /* c_slli_rv32 */
5361    0x8401,      /* c_srai */
5362    0xffff_ffff, /* c_srai_rv32 */
5363    0x8001,      /* c_srli */
5364    0xffff_ffff, /* c_srli_rv32 */
5365    0x6281,      /* c_sspopchk_x5 */
5366    0x6081,      /* c_sspush_x1 */
5367    0x8c01,      /* c_sub */
5368    0x9c01,      /* c_subw */
5369    0xc000,      /* c_sw */
5370    0xc002,      /* c_swsp */
5371    0x8c21,      /* c_xor */
5372    0x9c61,      /* c_zext_b */
5373    0x9c69,      /* c_zext_h */
5374    0x9c71,      /* c_zext_w */
5375    0x10200f,    /* cbo_clean */
5376    0x20200f,    /* cbo_flush */
5377    0x200f,      /* cbo_inval */
5378    0x40200f,    /* cbo_zero */
5379    0xa001033,   /* clmul */
5380    0xa003033,   /* clmulh */
5381    0xa002033,   /* clmulr */
5382    0x60001013,  /* clz */
5383    0x6000101b,  /* clzw */
5384    0xa002,      /* cm_jalt */
5385    0xac62,      /* cm_mva01s */
5386    0xac22,      /* cm_mvsa01 */
5387    0xba02,      /* cm_pop */
5388    0xbe02,      /* cm_popret */
5389    0xbc02,      /* cm_popretz */
5390    0xb802,      /* cm_push */
5391    0x60201013,  /* cpop */
5392    0x6020101b,  /* cpopw */
5393    0x3073,      /* csrc */
5394    0x7073,      /* csrci */
5395    0x2073,      /* csrr */
5396    0x3073,      /* csrrc */
5397    0x7073,      /* csrrci */
5398    0x2073,      /* csrrs */
5399    0x6073,      /* csrrsi */
5400    0x1073,      /* csrrw */
5401    0x5073,      /* csrrwi */
5402    0x2073,      /* csrs */
5403    0x6073,      /* csrsi */
5404    0x1073,      /* csrw */
5405    0x5073,      /* csrwi */
5406    0x60101013,  /* ctz */
5407    0x6010101b,  /* ctzw */
5408    0xe005033,   /* czero_eqz */
5409    0xe007033,   /* czero_nez */
5410    0x2004033,   /* div */
5411    0x2005033,   /* divu */
5412    0x200503b,   /* divuw */
5413    0x200403b,   /* divw */
5414    0x7b200073,  /* dret */
5415    0x100073,    /* ebreak */
5416    0x73,        /* ecall */
5417    0x22002053,  /* fabs_d */
5418    0x24002053,  /* fabs_h */
5419    0x26002053,  /* fabs_q */
5420    0x20002053,  /* fabs_s */
5421    0x2000053,   /* fadd_d */
5422    0x4000053,   /* fadd_h */
5423    0x6000053,   /* fadd_q */
5424    0x53,        /* fadd_s */
5425    0xe2001053,  /* fclass_d */
5426    0xe4001053,  /* fclass_h */
5427    0xe6001053,  /* fclass_q */
5428    0xe0001053,  /* fclass_s */
5429    0x44800053,  /* fcvt_bf16_s */
5430    0x42200053,  /* fcvt_d_h */
5431    0xd2200053,  /* fcvt_d_l */
5432    0xd2300053,  /* fcvt_d_lu */
5433    0x42300053,  /* fcvt_d_q */
5434    0x42000053,  /* fcvt_d_s */
5435    0xd2000053,  /* fcvt_d_w */
5436    0xd2100053,  /* fcvt_d_wu */
5437    0x44100053,  /* fcvt_h_d */
5438    0xd4200053,  /* fcvt_h_l */
5439    0xd4300053,  /* fcvt_h_lu */
5440    0x44300053,  /* fcvt_h_q */
5441    0x44000053,  /* fcvt_h_s */
5442    0xd4000053,  /* fcvt_h_w */
5443    0xd4100053,  /* fcvt_h_wu */
5444    0xc2200053,  /* fcvt_l_d */
5445    0xc4200053,  /* fcvt_l_h */
5446    0xc6200053,  /* fcvt_l_q */
5447    0xc0200053,  /* fcvt_l_s */
5448    0xc2300053,  /* fcvt_lu_d */
5449    0xc4300053,  /* fcvt_lu_h */
5450    0xc6300053,  /* fcvt_lu_q */
5451    0xc0300053,  /* fcvt_lu_s */
5452    0x46100053,  /* fcvt_q_d */
5453    0x46200053,  /* fcvt_q_h */
5454    0xd6200053,  /* fcvt_q_l */
5455    0xd6300053,  /* fcvt_q_lu */
5456    0x46000053,  /* fcvt_q_s */
5457    0xd6000053,  /* fcvt_q_w */
5458    0xd6100053,  /* fcvt_q_wu */
5459    0x40600053,  /* fcvt_s_bf16 */
5460    0x40100053,  /* fcvt_s_d */
5461    0x40200053,  /* fcvt_s_h */
5462    0xd0200053,  /* fcvt_s_l */
5463    0xd0300053,  /* fcvt_s_lu */
5464    0x40300053,  /* fcvt_s_q */
5465    0xd0000053,  /* fcvt_s_w */
5466    0xd0100053,  /* fcvt_s_wu */
5467    0xc2000053,  /* fcvt_w_d */
5468    0xc4000053,  /* fcvt_w_h */
5469    0xc6000053,  /* fcvt_w_q */
5470    0xc0000053,  /* fcvt_w_s */
5471    0xc2100053,  /* fcvt_wu_d */
5472    0xc4100053,  /* fcvt_wu_h */
5473    0xc6100053,  /* fcvt_wu_q */
5474    0xc0100053,  /* fcvt_wu_s */
5475    0xc2801053,  /* fcvtmod_w_d */
5476    0x1a000053,  /* fdiv_d */
5477    0x1c000053,  /* fdiv_h */
5478    0x1e000053,  /* fdiv_q */
5479    0x18000053,  /* fdiv_s */
5480    0xf,         /* fence */
5481    0x100f,      /* fence_i */
5482    0x8330000f,  /* fence_tso */
5483    0xa2002053,  /* feq_d */
5484    0xa4002053,  /* feq_h */
5485    0xa6002053,  /* feq_q */
5486    0xa0002053,  /* feq_s */
5487    0x3007,      /* fld */
5488    0xa2000053,  /* fle_d */
5489    0xa4000053,  /* fle_h */
5490    0xa6000053,  /* fle_q */
5491    0xa0000053,  /* fle_s */
5492    0xa2004053,  /* fleq_d */
5493    0xa4004053,  /* fleq_h */
5494    0xa6004053,  /* fleq_q */
5495    0xa0004053,  /* fleq_s */
5496    0x1007,      /* flh */
5497    0xf2100053,  /* fli_d */
5498    0xf4100053,  /* fli_h */
5499    0xf6100053,  /* fli_q */
5500    0xf0100053,  /* fli_s */
5501    0x4007,      /* flq */
5502    0xa2001053,  /* flt_d */
5503    0xa4001053,  /* flt_h */
5504    0xa6001053,  /* flt_q */
5505    0xa0001053,  /* flt_s */
5506    0xa2005053,  /* fltq_d */
5507    0xa4005053,  /* fltq_h */
5508    0xa6005053,  /* fltq_q */
5509    0xa0005053,  /* fltq_s */
5510    0x2007,      /* flw */
5511    0x2000043,   /* fmadd_d */
5512    0x4000043,   /* fmadd_h */
5513    0x6000043,   /* fmadd_q */
5514    0x43,        /* fmadd_s */
5515    0x2a001053,  /* fmax_d */
5516    0x2c001053,  /* fmax_h */
5517    0x2e001053,  /* fmax_q */
5518    0x28001053,  /* fmax_s */
5519    0x2a003053,  /* fmaxm_d */
5520    0x2c003053,  /* fmaxm_h */
5521    0x2e003053,  /* fmaxm_q */
5522    0x28003053,  /* fmaxm_s */
5523    0x2a000053,  /* fmin_d */
5524    0x2c000053,  /* fmin_h */
5525    0x2e000053,  /* fmin_q */
5526    0x28000053,  /* fmin_s */
5527    0x2a002053,  /* fminm_d */
5528    0x2c002053,  /* fminm_h */
5529    0x2e002053,  /* fminm_q */
5530    0x28002053,  /* fminm_s */
5531    0x2000047,   /* fmsub_d */
5532    0x4000047,   /* fmsub_h */
5533    0x6000047,   /* fmsub_q */
5534    0x47,        /* fmsub_s */
5535    0x12000053,  /* fmul_d */
5536    0x14000053,  /* fmul_h */
5537    0x16000053,  /* fmul_q */
5538    0x10000053,  /* fmul_s */
5539    0x22000053,  /* fmv_d */
5540    0xf2000053,  /* fmv_d_x */
5541    0x24000053,  /* fmv_h */
5542    0xf4000053,  /* fmv_h_x */
5543    0x26000053,  /* fmv_q */
5544    0x20000053,  /* fmv_s */
5545    0xf0000053,  /* fmv_s_x */
5546    0xf0000053,  /* fmv_w_x */
5547    0xe2000053,  /* fmv_x_d */
5548    0xe4000053,  /* fmv_x_h */
5549    0xe0000053,  /* fmv_x_s */
5550    0xe0000053,  /* fmv_x_w */
5551    0xffff_ffff, /* fmvh_x_d */
5552    0xe6100053,  /* fmvh_x_q */
5553    0xffff_ffff, /* fmvp_d_x */
5554    0xb6000053,  /* fmvp_q_x */
5555    0x22001053,  /* fneg_d */
5556    0x24001053,  /* fneg_h */
5557    0x26001053,  /* fneg_q */
5558    0x20001053,  /* fneg_s */
5559    0x200004f,   /* fnmadd_d */
5560    0x400004f,   /* fnmadd_h */
5561    0x600004f,   /* fnmadd_q */
5562    0x4f,        /* fnmadd_s */
5563    0x200004b,   /* fnmsub_d */
5564    0x400004b,   /* fnmsub_h */
5565    0x600004b,   /* fnmsub_q */
5566    0x4b,        /* fnmsub_s */
5567    0x302073,    /* frcsr */
5568    0x102073,    /* frflags */
5569    0x42400053,  /* fround_d */
5570    0x44400053,  /* fround_h */
5571    0x46400053,  /* fround_q */
5572    0x40400053,  /* fround_s */
5573    0x42500053,  /* froundnx_d */
5574    0x44500053,  /* froundnx_h */
5575    0x46500053,  /* froundnx_q */
5576    0x40500053,  /* froundnx_s */
5577    0x202073,    /* frrm */
5578    0x301073,    /* fscsr */
5579    0x3027,      /* fsd */
5580    0x101073,    /* fsflags */
5581    0x105073,    /* fsflagsi */
5582    0x22000053,  /* fsgnj_d */
5583    0x24000053,  /* fsgnj_h */
5584    0x26000053,  /* fsgnj_q */
5585    0x20000053,  /* fsgnj_s */
5586    0x22001053,  /* fsgnjn_d */
5587    0x24001053,  /* fsgnjn_h */
5588    0x26001053,  /* fsgnjn_q */
5589    0x20001053,  /* fsgnjn_s */
5590    0x22002053,  /* fsgnjx_d */
5591    0x24002053,  /* fsgnjx_h */
5592    0x26002053,  /* fsgnjx_q */
5593    0x20002053,  /* fsgnjx_s */
5594    0x1027,      /* fsh */
5595    0x4027,      /* fsq */
5596    0x5a000053,  /* fsqrt_d */
5597    0x5c000053,  /* fsqrt_h */
5598    0x5e000053,  /* fsqrt_q */
5599    0x58000053,  /* fsqrt_s */
5600    0x201073,    /* fsrm */
5601    0x205073,    /* fsrmi */
5602    0xa000053,   /* fsub_d */
5603    0xc000053,   /* fsub_h */
5604    0xe000053,   /* fsub_q */
5605    0x8000053,   /* fsub_s */
5606    0x2027,      /* fsw */
5607    0x62000073,  /* hfence_gvma */
5608    0x22000073,  /* hfence_vvma */
5609    0x66000073,  /* hinval_gvma */
5610    0x26000073,  /* hinval_vvma */
5611    0x60004073,  /* hlv_b */
5612    0x60104073,  /* hlv_bu */
5613    0x6c004073,  /* hlv_d */
5614    0x64004073,  /* hlv_h */
5615    0x64104073,  /* hlv_hu */
5616    0x68004073,  /* hlv_w */
5617    0x68104073,  /* hlv_wu */
5618    0x64304073,  /* hlvx_hu */
5619    0x68304073,  /* hlvx_wu */
5620    0x62004073,  /* hsv_b */
5621    0x6e004073,  /* hsv_d */
5622    0x66004073,  /* hsv_h */
5623    0x6a004073,  /* hsv_w */
5624    0x6f,        /* j */
5625    0x6f,        /* jal */
5626    0xef,        /* jal_pseudo */
5627    0x67,        /* jalr */
5628    0xe7,        /* jalr_pseudo */
5629    0x67,        /* jr */
5630    0x3,         /* lb */
5631    0x4003,      /* lbu */
5632    0x3003,      /* ld */
5633    0x1003,      /* lh */
5634    0x5003,      /* lhu */
5635    0x17,        /* lpad */
5636    0x1000302f,  /* lr_d */
5637    0x1000202f,  /* lr_w */
5638    0x37,        /* lui */
5639    0x2003,      /* lw */
5640    0x6003,      /* lwu */
5641    0xa006033,   /* max */
5642    0xa007033,   /* maxu */
5643    0xa004033,   /* min */
5644    0xa005033,   /* minu */
5645    0x70200073,  /* mnret */
5646    0x81c04073,  /* mop_r_0 */
5647    0x81d04073,  /* mop_r_1 */
5648    0x89e04073,  /* mop_r_10 */
5649    0x89f04073,  /* mop_r_11 */
5650    0x8dc04073,  /* mop_r_12 */
5651    0x8dd04073,  /* mop_r_13 */
5652    0x8de04073,  /* mop_r_14 */
5653    0x8df04073,  /* mop_r_15 */
5654    0xc1c04073,  /* mop_r_16 */
5655    0xc1d04073,  /* mop_r_17 */
5656    0xc1e04073,  /* mop_r_18 */
5657    0xc1f04073,  /* mop_r_19 */
5658    0x81e04073,  /* mop_r_2 */
5659    0xc5c04073,  /* mop_r_20 */
5660    0xc5d04073,  /* mop_r_21 */
5661    0xc5e04073,  /* mop_r_22 */
5662    0xc5f04073,  /* mop_r_23 */
5663    0xc9c04073,  /* mop_r_24 */
5664    0xc9d04073,  /* mop_r_25 */
5665    0xc9e04073,  /* mop_r_26 */
5666    0xc9f04073,  /* mop_r_27 */
5667    0xcdc04073,  /* mop_r_28 */
5668    0xcdd04073,  /* mop_r_29 */
5669    0x81f04073,  /* mop_r_3 */
5670    0xcde04073,  /* mop_r_30 */
5671    0xcdf04073,  /* mop_r_31 */
5672    0x85c04073,  /* mop_r_4 */
5673    0x85d04073,  /* mop_r_5 */
5674    0x85e04073,  /* mop_r_6 */
5675    0x85f04073,  /* mop_r_7 */
5676    0x89c04073,  /* mop_r_8 */
5677    0x89d04073,  /* mop_r_9 */
5678    0x81c04073,  /* mop_r_N */
5679    0x82004073,  /* mop_rr_0 */
5680    0x86004073,  /* mop_rr_1 */
5681    0x8a004073,  /* mop_rr_2 */
5682    0x8e004073,  /* mop_rr_3 */
5683    0xc2004073,  /* mop_rr_4 */
5684    0xc6004073,  /* mop_rr_5 */
5685    0xca004073,  /* mop_rr_6 */
5686    0xce004073,  /* mop_rr_7 */
5687    0x82004073,  /* mop_rr_N */
5688    0x30200073,  /* mret */
5689    0x2000033,   /* mul */
5690    0x2001033,   /* mulh */
5691    0x2002033,   /* mulhsu */
5692    0x2003033,   /* mulhu */
5693    0x200003b,   /* mulw */
5694    0x13,        /* mv */
5695    0x40000033,  /* neg */
5696    0x13,        /* nop */
5697    0x500033,    /* ntl_all */
5698    0x200033,    /* ntl_p1 */
5699    0x300033,    /* ntl_pall */
5700    0x400033,    /* ntl_s1 */
5701    0x6033,      /* or */
5702    0x28705013,  /* orc_b */
5703    0x6013,      /* ori */
5704    0x40006033,  /* orn */
5705    0x8004033,   /* pack */
5706    0x8007033,   /* packh */
5707    0x800403b,   /* packw */
5708    0x100000f,   /* pause */
5709    0x6013,      /* prefetch_i */
5710    0x106013,    /* prefetch_r */
5711    0x306013,    /* prefetch_w */
5712    0xc0002073,  /* rdcycle */
5713    0xffff_ffff, /* rdcycleh */
5714    0xc0202073,  /* rdinstret */
5715    0xffff_ffff, /* rdinstreth */
5716    0xc0102073,  /* rdtime */
5717    0xffff_ffff, /* rdtimeh */
5718    0x2006033,   /* rem */
5719    0x2007033,   /* remu */
5720    0x200703b,   /* remuw */
5721    0x200603b,   /* remw */
5722    0x8067,      /* ret */
5723    0x6b805013,  /* rev8 */
5724    0xffff_ffff, /* rev8_rv32 */
5725    0x60001033,  /* rol */
5726    0x6000103b,  /* rolw */
5727    0x60005033,  /* ror */
5728    0x60005013,  /* rori */
5729    0xffff_ffff, /* rori_rv32 */
5730    0x6000501b,  /* roriw */
5731    0x6000503b,  /* rorw */
5732    0x23,        /* sb */
5733    0x100073,    /* sbreak */
5734    0x1800302f,  /* sc_d */
5735    0x1800202f,  /* sc_w */
5736    0x73,        /* scall */
5737    0x10400073,  /* sctrclr */
5738    0x3023,      /* sd */
5739    0x103013,    /* seqz */
5740    0x60401013,  /* sext_b */
5741    0x60501013,  /* sext_h */
5742    0x1b,        /* sext_w */
5743    0x18100073,  /* sfence_inval_ir */
5744    0x12000073,  /* sfence_vma */
5745    0x18000073,  /* sfence_w_inval */
5746    0x2033,      /* sgtz */
5747    0x1023,      /* sh */
5748    0x20002033,  /* sh1add */
5749    0x2000203b,  /* sh1add_uw */
5750    0x20004033,  /* sh2add */
5751    0x2000403b,  /* sh2add_uw */
5752    0x20006033,  /* sh3add */
5753    0x2000603b,  /* sh3add_uw */
5754    0x10201013,  /* sha256sig0 */
5755    0x10301013,  /* sha256sig1 */
5756    0x10001013,  /* sha256sum0 */
5757    0x10101013,  /* sha256sum1 */
5758    0x10601013,  /* sha512sig0 */
5759    0xffff_ffff, /* sha512sig0h */
5760    0xffff_ffff, /* sha512sig0l */
5761    0x10701013,  /* sha512sig1 */
5762    0xffff_ffff, /* sha512sig1h */
5763    0xffff_ffff, /* sha512sig1l */
5764    0x10401013,  /* sha512sum0 */
5765    0xffff_ffff, /* sha512sum0r */
5766    0x10501013,  /* sha512sum1 */
5767    0xffff_ffff, /* sha512sum1r */
5768    0x16000073,  /* sinval_vma */
5769    0x1033,      /* sll */
5770    0x1013,      /* slli */
5771    0xffff_ffff, /* slli_rv32 */
5772    0x800101b,   /* slli_uw */
5773    0x101b,      /* slliw */
5774    0x103b,      /* sllw */
5775    0x2033,      /* slt */
5776    0x2013,      /* slti */
5777    0x3013,      /* sltiu */
5778    0x3033,      /* sltu */
5779    0x2033,      /* sltz */
5780    0x10801013,  /* sm3p0 */
5781    0x10901013,  /* sm3p1 */
5782    0x30000033,  /* sm4ed */
5783    0x34000033,  /* sm4ks */
5784    0x3033,      /* snez */
5785    0x40005033,  /* sra */
5786    0x40005013,  /* srai */
5787    0xffff_ffff, /* srai_rv32 */
5788    0x4000501b,  /* sraiw */
5789    0x4000503b,  /* sraw */
5790    0x10200073,  /* sret */
5791    0x5033,      /* srl */
5792    0x5013,      /* srli */
5793    0xffff_ffff, /* srli_rv32 */
5794    0x501b,      /* srliw */
5795    0x503b,      /* srlw */
5796    0x4800302f,  /* ssamoswap_d */
5797    0x4800202f,  /* ssamoswap_w */
5798    0xcdc0c073,  /* sspopchk_x1 */
5799    0xcdc2c073,  /* sspopchk_x5 */
5800    0xce104073,  /* sspush_x1 */
5801    0xce504073,  /* sspush_x5 */
5802    0xcdc04073,  /* ssrdp */
5803    0x40000033,  /* sub */
5804    0x4000003b,  /* subw */
5805    0x2023,      /* sw */
5806    0xffff_ffff, /* unzip */
5807    0x24002057,  /* vaadd_vv */
5808    0x24006057,  /* vaadd_vx */
5809    0x20002057,  /* vaaddu_vv */
5810    0x20006057,  /* vaaddu_vx */
5811    0x40003057,  /* vadc_vim */
5812    0x40000057,  /* vadc_vvm */
5813    0x40004057,  /* vadc_vxm */
5814    0x3057,      /* vadd_vi */
5815    0x57,        /* vadd_vv */
5816    0x4057,      /* vadd_vx */
5817    0xa600a077,  /* vaesdf_vs */
5818    0xa200a077,  /* vaesdf_vv */
5819    0xa6002077,  /* vaesdm_vs */
5820    0xa2002077,  /* vaesdm_vv */
5821    0xa601a077,  /* vaesef_vs */
5822    0xa201a077,  /* vaesef_vv */
5823    0xa6012077,  /* vaesem_vs */
5824    0xa2012077,  /* vaesem_vv */
5825    0x8a002077,  /* vaeskf1_vi */
5826    0xaa002077,  /* vaeskf2_vi */
5827    0xa603a077,  /* vaesz_vs */
5828    0x24003057,  /* vand_vi */
5829    0x24000057,  /* vand_vv */
5830    0x24004057,  /* vand_vx */
5831    0x4000057,   /* vandn_vv */
5832    0x4004057,   /* vandn_vx */
5833    0x2c002057,  /* vasub_vv */
5834    0x2c006057,  /* vasub_vx */
5835    0x28002057,  /* vasubu_vv */
5836    0x28006057,  /* vasubu_vx */
5837    0x48042057,  /* vbrev8_v */
5838    0x48052057,  /* vbrev_v */
5839    0x30002057,  /* vclmul_vv */
5840    0x30006057,  /* vclmul_vx */
5841    0x34002057,  /* vclmulh_vv */
5842    0x34006057,  /* vclmulh_vx */
5843    0x48062057,  /* vclz_v */
5844    0x5e002057,  /* vcompress_vm */
5845    0x40082057,  /* vcpop_m */
5846    0x48072057,  /* vcpop_v */
5847    0x4806a057,  /* vctz_v */
5848    0x84002057,  /* vdiv_vv */
5849    0x84006057,  /* vdiv_vx */
5850    0x80002057,  /* vdivu_vv */
5851    0x80006057,  /* vdivu_vx */
5852    0x5057,      /* vfadd_vf */
5853    0x1057,      /* vfadd_vv */
5854    0x4c081057,  /* vfclass_v */
5855    0x48019057,  /* vfcvt_f_x_v */
5856    0x48011057,  /* vfcvt_f_xu_v */
5857    0x48039057,  /* vfcvt_rtz_x_f_v */
5858    0x48031057,  /* vfcvt_rtz_xu_f_v */
5859    0x48009057,  /* vfcvt_x_f_v */
5860    0x48001057,  /* vfcvt_xu_f_v */
5861    0x80005057,  /* vfdiv_vf */
5862    0x80001057,  /* vfdiv_vv */
5863    0x4008a057,  /* vfirst_m */
5864    0xb0005057,  /* vfmacc_vf */
5865    0xb0001057,  /* vfmacc_vv */
5866    0xa0005057,  /* vfmadd_vf */
5867    0xa0001057,  /* vfmadd_vv */
5868    0x18005057,  /* vfmax_vf */
5869    0x18001057,  /* vfmax_vv */
5870    0x5c005057,  /* vfmerge_vfm */
5871    0x10005057,  /* vfmin_vf */
5872    0x10001057,  /* vfmin_vv */
5873    0xb8005057,  /* vfmsac_vf */
5874    0xb8001057,  /* vfmsac_vv */
5875    0xa8005057,  /* vfmsub_vf */
5876    0xa8001057,  /* vfmsub_vv */
5877    0x90005057,  /* vfmul_vf */
5878    0x90001057,  /* vfmul_vv */
5879    0x42001057,  /* vfmv_f_s */
5880    0x42005057,  /* vfmv_s_f */
5881    0x5e005057,  /* vfmv_v_f */
5882    0x480a1057,  /* vfncvt_f_f_w */
5883    0x48099057,  /* vfncvt_f_x_w */
5884    0x48091057,  /* vfncvt_f_xu_w */
5885    0x480a9057,  /* vfncvt_rod_f_f_w */
5886    0x480b9057,  /* vfncvt_rtz_x_f_w */
5887    0x480b1057,  /* vfncvt_rtz_xu_f_w */
5888    0x48089057,  /* vfncvt_x_f_w */
5889    0x48081057,  /* vfncvt_xu_f_w */
5890    0x480e9057,  /* vfncvtbf16_f_f_w */
5891    0xb4005057,  /* vfnmacc_vf */
5892    0xb4001057,  /* vfnmacc_vv */
5893    0xa4005057,  /* vfnmadd_vf */
5894    0xa4001057,  /* vfnmadd_vv */
5895    0xbc005057,  /* vfnmsac_vf */
5896    0xbc001057,  /* vfnmsac_vv */
5897    0xac005057,  /* vfnmsub_vf */
5898    0xac001057,  /* vfnmsub_vv */
5899    0x84005057,  /* vfrdiv_vf */
5900    0x4c029057,  /* vfrec7_v */
5901    0x1c001057,  /* vfredmax_vs */
5902    0x14001057,  /* vfredmin_vs */
5903    0xc001057,   /* vfredosum_vs */
5904    0x4001057,   /* vfredsum_vs */
5905    0x4001057,   /* vfredusum_vs */
5906    0x4c021057,  /* vfrsqrt7_v */
5907    0x9c005057,  /* vfrsub_vf */
5908    0x20005057,  /* vfsgnj_vf */
5909    0x20001057,  /* vfsgnj_vv */
5910    0x24005057,  /* vfsgnjn_vf */
5911    0x24001057,  /* vfsgnjn_vv */
5912    0x28005057,  /* vfsgnjx_vf */
5913    0x28001057,  /* vfsgnjx_vv */
5914    0x3c005057,  /* vfslide1down_vf */
5915    0x38005057,  /* vfslide1up_vf */
5916    0x4c001057,  /* vfsqrt_v */
5917    0x8005057,   /* vfsub_vf */
5918    0x8001057,   /* vfsub_vv */
5919    0xc0005057,  /* vfwadd_vf */
5920    0xc0001057,  /* vfwadd_vv */
5921    0xd0005057,  /* vfwadd_wf */
5922    0xd0001057,  /* vfwadd_wv */
5923    0x48061057,  /* vfwcvt_f_f_v */
5924    0x48059057,  /* vfwcvt_f_x_v */
5925    0x48051057,  /* vfwcvt_f_xu_v */
5926    0x48079057,  /* vfwcvt_rtz_x_f_v */
5927    0x48071057,  /* vfwcvt_rtz_xu_f_v */
5928    0x48049057,  /* vfwcvt_x_f_v */
5929    0x48041057,  /* vfwcvt_xu_f_v */
5930    0x48069057,  /* vfwcvtbf16_f_f_v */
5931    0xf0005057,  /* vfwmacc_vf */
5932    0xf0001057,  /* vfwmacc_vv */
5933    0xec005057,  /* vfwmaccbf16_vf */
5934    0xec001057,  /* vfwmaccbf16_vv */
5935    0xf8005057,  /* vfwmsac_vf */
5936    0xf8001057,  /* vfwmsac_vv */
5937    0xe0005057,  /* vfwmul_vf */
5938    0xe0001057,  /* vfwmul_vv */
5939    0xf4005057,  /* vfwnmacc_vf */
5940    0xf4001057,  /* vfwnmacc_vv */
5941    0xfc005057,  /* vfwnmsac_vf */
5942    0xfc001057,  /* vfwnmsac_vv */
5943    0xcc001057,  /* vfwredosum_vs */
5944    0xc4001057,  /* vfwredsum_vs */
5945    0xc4001057,  /* vfwredusum_vs */
5946    0xc8005057,  /* vfwsub_vf */
5947    0xc8001057,  /* vfwsub_vv */
5948    0xd8005057,  /* vfwsub_wf */
5949    0xd8001057,  /* vfwsub_wv */
5950    0xb2002077,  /* vghsh_vv */
5951    0xa208a077,  /* vgmul_vv */
5952    0x5008a057,  /* vid_v */
5953    0x50082057,  /* viota_m */
5954    0x2800007,   /* vl1r_v */
5955    0x2805007,   /* vl1re16_v */
5956    0x2806007,   /* vl1re32_v */
5957    0x2807007,   /* vl1re64_v */
5958    0x2800007,   /* vl1re8_v */
5959    0x22800007,  /* vl2r_v */
5960    0x22805007,  /* vl2re16_v */
5961    0x22806007,  /* vl2re32_v */
5962    0x22807007,  /* vl2re64_v */
5963    0x22800007,  /* vl2re8_v */
5964    0x62800007,  /* vl4r_v */
5965    0x62805007,  /* vl4re16_v */
5966    0x62806007,  /* vl4re32_v */
5967    0x62807007,  /* vl4re64_v */
5968    0x62800007,  /* vl4re8_v */
5969    0xe2800007,  /* vl8r_v */
5970    0xe2805007,  /* vl8re16_v */
5971    0xe2806007,  /* vl8re32_v */
5972    0xe2807007,  /* vl8re64_v */
5973    0xe2800007,  /* vl8re8_v */
5974    0x5007,      /* vle16_v */
5975    0x1005007,   /* vle16ff_v */
5976    0x2b00007,   /* vle1_v */
5977    0x6007,      /* vle32_v */
5978    0x1006007,   /* vle32ff_v */
5979    0x7007,      /* vle64_v */
5980    0x1007007,   /* vle64ff_v */
5981    0x7,         /* vle8_v */
5982    0x1000007,   /* vle8ff_v */
5983    0x2b00007,   /* vlm_v */
5984    0xc005007,   /* vloxei16_v */
5985    0xc006007,   /* vloxei32_v */
5986    0xc007007,   /* vloxei64_v */
5987    0xc000007,   /* vloxei8_v */
5988    0x8005007,   /* vlse16_v */
5989    0x8006007,   /* vlse32_v */
5990    0x8007007,   /* vlse64_v */
5991    0x8000007,   /* vlse8_v */
5992    0x4005007,   /* vluxei16_v */
5993    0x4006007,   /* vluxei32_v */
5994    0x4007007,   /* vluxei64_v */
5995    0x4000007,   /* vluxei8_v */
5996    0xb4002057,  /* vmacc_vv */
5997    0xb4006057,  /* vmacc_vx */
5998    0x46003057,  /* vmadc_vi */
5999    0x44003057,  /* vmadc_vim */
6000    0x46000057,  /* vmadc_vv */
6001    0x44000057,  /* vmadc_vvm */
6002    0x46004057,  /* vmadc_vx */
6003    0x44004057,  /* vmadc_vxm */
6004    0xa4002057,  /* vmadd_vv */
6005    0xa4006057,  /* vmadd_vx */
6006    0x66002057,  /* vmand_mm */
6007    0x62002057,  /* vmandn_mm */
6008    0x60002057,  /* vmandnot_mm */
6009    0x1c000057,  /* vmax_vv */
6010    0x1c004057,  /* vmax_vx */
6011    0x18000057,  /* vmaxu_vv */
6012    0x18004057,  /* vmaxu_vx */
6013    0x5c003057,  /* vmerge_vim */
6014    0x5c000057,  /* vmerge_vvm */
6015    0x5c004057,  /* vmerge_vxm */
6016    0x60005057,  /* vmfeq_vf */
6017    0x60001057,  /* vmfeq_vv */
6018    0x7c005057,  /* vmfge_vf */
6019    0x74005057,  /* vmfgt_vf */
6020    0x64005057,  /* vmfle_vf */
6021    0x64001057,  /* vmfle_vv */
6022    0x6c005057,  /* vmflt_vf */
6023    0x6c001057,  /* vmflt_vv */
6024    0x70005057,  /* vmfne_vf */
6025    0x70001057,  /* vmfne_vv */
6026    0x14000057,  /* vmin_vv */
6027    0x14004057,  /* vmin_vx */
6028    0x10000057,  /* vminu_vv */
6029    0x10004057,  /* vminu_vx */
6030    0x76002057,  /* vmnand_mm */
6031    0x7a002057,  /* vmnor_mm */
6032    0x6a002057,  /* vmor_mm */
6033    0x72002057,  /* vmorn_mm */
6034    0x70002057,  /* vmornot_mm */
6035    0x4e000057,  /* vmsbc_vv */
6036    0x4c000057,  /* vmsbc_vvm */
6037    0x4e004057,  /* vmsbc_vx */
6038    0x4c004057,  /* vmsbc_vxm */
6039    0x5000a057,  /* vmsbf_m */
6040    0x60003057,  /* vmseq_vi */
6041    0x60000057,  /* vmseq_vv */
6042    0x60004057,  /* vmseq_vx */
6043    0x7c003057,  /* vmsgt_vi */
6044    0x7c004057,  /* vmsgt_vx */
6045    0x78003057,  /* vmsgtu_vi */
6046    0x78004057,  /* vmsgtu_vx */
6047    0x5001a057,  /* vmsif_m */
6048    0x74003057,  /* vmsle_vi */
6049    0x74000057,  /* vmsle_vv */
6050    0x74004057,  /* vmsle_vx */
6051    0x70003057,  /* vmsleu_vi */
6052    0x70000057,  /* vmsleu_vv */
6053    0x70004057,  /* vmsleu_vx */
6054    0x6c000057,  /* vmslt_vv */
6055    0x6c004057,  /* vmslt_vx */
6056    0x68000057,  /* vmsltu_vv */
6057    0x68004057,  /* vmsltu_vx */
6058    0x64003057,  /* vmsne_vi */
6059    0x64000057,  /* vmsne_vv */
6060    0x64004057,  /* vmsne_vx */
6061    0x50012057,  /* vmsof_m */
6062    0x94002057,  /* vmul_vv */
6063    0x94006057,  /* vmul_vx */
6064    0x9c002057,  /* vmulh_vv */
6065    0x9c006057,  /* vmulh_vx */
6066    0x98002057,  /* vmulhsu_vv */
6067    0x98006057,  /* vmulhsu_vx */
6068    0x90002057,  /* vmulhu_vv */
6069    0x90006057,  /* vmulhu_vx */
6070    0x9e003057,  /* vmv1r_v */
6071    0x9e00b057,  /* vmv2r_v */
6072    0x9e01b057,  /* vmv4r_v */
6073    0x9e03b057,  /* vmv8r_v */
6074    0x42006057,  /* vmv_s_x */
6075    0x5e003057,  /* vmv_v_i */
6076    0x5e000057,  /* vmv_v_v */
6077    0x5e004057,  /* vmv_v_x */
6078    0x42002057,  /* vmv_x_s */
6079    0x7e002057,  /* vmxnor_mm */
6080    0x6e002057,  /* vmxor_mm */
6081    0xbc003057,  /* vnclip_wi */
6082    0xbc000057,  /* vnclip_wv */
6083    0xbc004057,  /* vnclip_wx */
6084    0xb8003057,  /* vnclipu_wi */
6085    0xb8000057,  /* vnclipu_wv */
6086    0xb8004057,  /* vnclipu_wx */
6087    0xbc002057,  /* vnmsac_vv */
6088    0xbc006057,  /* vnmsac_vx */
6089    0xac002057,  /* vnmsub_vv */
6090    0xac006057,  /* vnmsub_vx */
6091    0xb4003057,  /* vnsra_wi */
6092    0xb4000057,  /* vnsra_wv */
6093    0xb4004057,  /* vnsra_wx */
6094    0xb0003057,  /* vnsrl_wi */
6095    0xb0000057,  /* vnsrl_wv */
6096    0xb0004057,  /* vnsrl_wx */
6097    0x28003057,  /* vor_vi */
6098    0x28000057,  /* vor_vv */
6099    0x28004057,  /* vor_vx */
6100    0x40082057,  /* vpopc_m */
6101    0x4002057,   /* vredand_vs */
6102    0x1c002057,  /* vredmax_vs */
6103    0x18002057,  /* vredmaxu_vs */
6104    0x14002057,  /* vredmin_vs */
6105    0x10002057,  /* vredminu_vs */
6106    0x8002057,   /* vredor_vs */
6107    0x2057,      /* vredsum_vs */
6108    0xc002057,   /* vredxor_vs */
6109    0x8c002057,  /* vrem_vv */
6110    0x8c006057,  /* vrem_vx */
6111    0x88002057,  /* vremu_vv */
6112    0x88006057,  /* vremu_vx */
6113    0x4804a057,  /* vrev8_v */
6114    0x30003057,  /* vrgather_vi */
6115    0x30000057,  /* vrgather_vv */
6116    0x30004057,  /* vrgather_vx */
6117    0x38000057,  /* vrgatherei16_vv */
6118    0x54000057,  /* vrol_vv */
6119    0x54004057,  /* vrol_vx */
6120    0x50003057,  /* vror_vi */
6121    0x50000057,  /* vror_vv */
6122    0x50004057,  /* vror_vx */
6123    0xc003057,   /* vrsub_vi */
6124    0xc004057,   /* vrsub_vx */
6125    0x2800027,   /* vs1r_v */
6126    0x22800027,  /* vs2r_v */
6127    0x62800027,  /* vs4r_v */
6128    0xe2800027,  /* vs8r_v */
6129    0x84003057,  /* vsadd_vi */
6130    0x84000057,  /* vsadd_vv */
6131    0x84004057,  /* vsadd_vx */
6132    0x80003057,  /* vsaddu_vi */
6133    0x80000057,  /* vsaddu_vv */
6134    0x80004057,  /* vsaddu_vx */
6135    0x48000057,  /* vsbc_vvm */
6136    0x48004057,  /* vsbc_vxm */
6137    0x5027,      /* vse16_v */
6138    0x2b00027,   /* vse1_v */
6139    0x6027,      /* vse32_v */
6140    0x7027,      /* vse64_v */
6141    0x27,        /* vse8_v */
6142    0xc0007057,  /* vsetivli */
6143    0x80007057,  /* vsetvl */
6144    0x7057,      /* vsetvli */
6145    0x4803a057,  /* vsext_vf2 */
6146    0x4802a057,  /* vsext_vf4 */
6147    0x4801a057,  /* vsext_vf8 */
6148    0xba002077,  /* vsha2ch_vv */
6149    0xbe002077,  /* vsha2cl_vv */
6150    0xb6002077,  /* vsha2ms_vv */
6151    0x3c006057,  /* vslide1down_vx */
6152    0x38006057,  /* vslide1up_vx */
6153    0x3c003057,  /* vslidedown_vi */
6154    0x3c004057,  /* vslidedown_vx */
6155    0x38003057,  /* vslideup_vi */
6156    0x38004057,  /* vslideup_vx */
6157    0x94003057,  /* vsll_vi */
6158    0x94000057,  /* vsll_vv */
6159    0x94004057,  /* vsll_vx */
6160    0xae002077,  /* vsm3c_vi */
6161    0x82002077,  /* vsm3me_vv */
6162    0x86002077,  /* vsm4k_vi */
6163    0xa6082077,  /* vsm4r_vs */
6164    0xa2082077,  /* vsm4r_vv */
6165    0x2b00027,   /* vsm_v */
6166    0x9c000057,  /* vsmul_vv */
6167    0x9c004057,  /* vsmul_vx */
6168    0xc005027,   /* vsoxei16_v */
6169    0xc006027,   /* vsoxei32_v */
6170    0xc007027,   /* vsoxei64_v */
6171    0xc000027,   /* vsoxei8_v */
6172    0xa4003057,  /* vsra_vi */
6173    0xa4000057,  /* vsra_vv */
6174    0xa4004057,  /* vsra_vx */
6175    0xa0003057,  /* vsrl_vi */
6176    0xa0000057,  /* vsrl_vv */
6177    0xa0004057,  /* vsrl_vx */
6178    0x8005027,   /* vsse16_v */
6179    0x8006027,   /* vsse32_v */
6180    0x8007027,   /* vsse64_v */
6181    0x8000027,   /* vsse8_v */
6182    0xac003057,  /* vssra_vi */
6183    0xac000057,  /* vssra_vv */
6184    0xac004057,  /* vssra_vx */
6185    0xa8003057,  /* vssrl_vi */
6186    0xa8000057,  /* vssrl_vv */
6187    0xa8004057,  /* vssrl_vx */
6188    0x8c000057,  /* vssub_vv */
6189    0x8c004057,  /* vssub_vx */
6190    0x88000057,  /* vssubu_vv */
6191    0x88004057,  /* vssubu_vx */
6192    0x8000057,   /* vsub_vv */
6193    0x8004057,   /* vsub_vx */
6194    0x4005027,   /* vsuxei16_v */
6195    0x4006027,   /* vsuxei32_v */
6196    0x4007027,   /* vsuxei64_v */
6197    0x4000027,   /* vsuxei8_v */
6198    0xc4002057,  /* vwadd_vv */
6199    0xc4006057,  /* vwadd_vx */
6200    0xd4002057,  /* vwadd_wv */
6201    0xd4006057,  /* vwadd_wx */
6202    0xc0002057,  /* vwaddu_vv */
6203    0xc0006057,  /* vwaddu_vx */
6204    0xd0002057,  /* vwaddu_wv */
6205    0xd0006057,  /* vwaddu_wx */
6206    0xf4002057,  /* vwmacc_vv */
6207    0xf4006057,  /* vwmacc_vx */
6208    0xfc002057,  /* vwmaccsu_vv */
6209    0xfc006057,  /* vwmaccsu_vx */
6210    0xf0002057,  /* vwmaccu_vv */
6211    0xf0006057,  /* vwmaccu_vx */
6212    0xf8006057,  /* vwmaccus_vx */
6213    0xec002057,  /* vwmul_vv */
6214    0xec006057,  /* vwmul_vx */
6215    0xe8002057,  /* vwmulsu_vv */
6216    0xe8006057,  /* vwmulsu_vx */
6217    0xe0002057,  /* vwmulu_vv */
6218    0xe0006057,  /* vwmulu_vx */
6219    0xc4000057,  /* vwredsum_vs */
6220    0xc0000057,  /* vwredsumu_vs */
6221    0xd4003057,  /* vwsll_vi */
6222    0xd4000057,  /* vwsll_vv */
6223    0xd4004057,  /* vwsll_vx */
6224    0xcc002057,  /* vwsub_vv */
6225    0xcc006057,  /* vwsub_vx */
6226    0xdc002057,  /* vwsub_wv */
6227    0xdc006057,  /* vwsub_wx */
6228    0xc8002057,  /* vwsubu_vv */
6229    0xc8006057,  /* vwsubu_vx */
6230    0xd8002057,  /* vwsubu_wv */
6231    0xd8006057,  /* vwsubu_wx */
6232    0x2c003057,  /* vxor_vi */
6233    0x2c000057,  /* vxor_vv */
6234    0x2c004057,  /* vxor_vx */
6235    0x48032057,  /* vzext_vf2 */
6236    0x48022057,  /* vzext_vf4 */
6237    0x48012057,  /* vzext_vf8 */
6238    0x10500073,  /* wfi */
6239    0xd00073,    /* wrs_nto */
6240    0x1d00073,   /* wrs_sto */
6241    0x40004033,  /* xnor */
6242    0x4033,      /* xor */
6243    0x4013,      /* xori */
6244    0x28002033,  /* xperm4 */
6245    0x28004033,  /* xperm8 */
6246    0xff07013,   /* zext_b */
6247    0x800403b,   /* zext_h */
6248    0xffff_ffff, /* zext_h_rv32 */
6249    0x800003b,   /* zext_w */
6250    0xffff_ffff, /* zip */
6251];
6252pub static OPCODE64_MASK: [u32; 1039] = [
6253    0xfe00707f,  /* add */
6254    0xfe00707f,  /* add_uw */
6255    0x707f,      /* addi */
6256    0x707f,      /* addiw */
6257    0xfe00707f,  /* addw */
6258    0xffff_ffff, /* aes32dsi */
6259    0xffff_ffff, /* aes32dsmi */
6260    0xffff_ffff, /* aes32esi */
6261    0xffff_ffff, /* aes32esmi */
6262    0xfe00707f,  /* aes64ds */
6263    0xfe00707f,  /* aes64dsm */
6264    0xfe00707f,  /* aes64es */
6265    0xfe00707f,  /* aes64esm */
6266    0xfff0707f,  /* aes64im */
6267    0xff00707f,  /* aes64ks1i */
6268    0xfe00707f,  /* aes64ks2 */
6269    0xf800707f,  /* amoadd_b */
6270    0xf800707f,  /* amoadd_d */
6271    0xf800707f,  /* amoadd_h */
6272    0xf800707f,  /* amoadd_w */
6273    0xf800707f,  /* amoand_b */
6274    0xf800707f,  /* amoand_d */
6275    0xf800707f,  /* amoand_h */
6276    0xf800707f,  /* amoand_w */
6277    0xf800707f,  /* amocas_b */
6278    0xf800707f,  /* amocas_d */
6279    0xf800707f,  /* amocas_h */
6280    0xf800707f,  /* amocas_q */
6281    0xf800707f,  /* amocas_w */
6282    0xf800707f,  /* amomax_b */
6283    0xf800707f,  /* amomax_d */
6284    0xf800707f,  /* amomax_h */
6285    0xf800707f,  /* amomax_w */
6286    0xf800707f,  /* amomaxu_b */
6287    0xf800707f,  /* amomaxu_d */
6288    0xf800707f,  /* amomaxu_h */
6289    0xf800707f,  /* amomaxu_w */
6290    0xf800707f,  /* amomin_b */
6291    0xf800707f,  /* amomin_d */
6292    0xf800707f,  /* amomin_h */
6293    0xf800707f,  /* amomin_w */
6294    0xf800707f,  /* amominu_b */
6295    0xf800707f,  /* amominu_d */
6296    0xf800707f,  /* amominu_h */
6297    0xf800707f,  /* amominu_w */
6298    0xf800707f,  /* amoor_b */
6299    0xf800707f,  /* amoor_d */
6300    0xf800707f,  /* amoor_h */
6301    0xf800707f,  /* amoor_w */
6302    0xf800707f,  /* amoswap_b */
6303    0xf800707f,  /* amoswap_d */
6304    0xf800707f,  /* amoswap_h */
6305    0xf800707f,  /* amoswap_w */
6306    0xf800707f,  /* amoxor_b */
6307    0xf800707f,  /* amoxor_d */
6308    0xf800707f,  /* amoxor_h */
6309    0xf800707f,  /* amoxor_w */
6310    0xfe00707f,  /* and */
6311    0x707f,      /* andi */
6312    0xfe00707f,  /* andn */
6313    0x7f,        /* auipc */
6314    0xfe00707f,  /* bclr */
6315    0xfc00707f,  /* bclri */
6316    0xffff_ffff, /* bclri_rv32 */
6317    0x707f,      /* beq */
6318    0x1f0707f,   /* beqz */
6319    0xfe00707f,  /* bext */
6320    0xfc00707f,  /* bexti */
6321    0xffff_ffff, /* bexti_rv32 */
6322    0x707f,      /* bge */
6323    0x707f,      /* bgeu */
6324    0x1f0707f,   /* bgez */
6325    0x707f,      /* bgt */
6326    0x707f,      /* bgtu */
6327    0xff07f,     /* bgtz */
6328    0xfe00707f,  /* binv */
6329    0xfc00707f,  /* binvi */
6330    0xffff_ffff, /* binvi_rv32 */
6331    0x707f,      /* ble */
6332    0x707f,      /* bleu */
6333    0xff07f,     /* blez */
6334    0x707f,      /* blt */
6335    0x707f,      /* bltu */
6336    0x1f0707f,   /* bltz */
6337    0x707f,      /* bne */
6338    0x1f0707f,   /* bnez */
6339    0xfff0707f,  /* brev8 */
6340    0xfe00707f,  /* bset */
6341    0xfc00707f,  /* bseti */
6342    0xffff_ffff, /* bseti_rv32 */
6343    0xf003,      /* c_add */
6344    0xe003,      /* c_addi */
6345    0xef83,      /* c_addi16sp */
6346    0xe003,      /* c_addi4spn */
6347    0xe003,      /* c_addiw */
6348    0xfc63,      /* c_addw */
6349    0xfc63,      /* c_and */
6350    0xec03,      /* c_andi */
6351    0xe003,      /* c_beqz */
6352    0xe003,      /* c_bnez */
6353    0xffff,      /* c_ebreak */
6354    0xe003,      /* c_fld */
6355    0xe003,      /* c_fldsp */
6356    0xffff_ffff, /* c_flw */
6357    0xffff_ffff, /* c_flwsp */
6358    0xe003,      /* c_fsd */
6359    0xe003,      /* c_fsdsp */
6360    0xffff_ffff, /* c_fsw */
6361    0xffff_ffff, /* c_fswsp */
6362    0xe003,      /* c_j */
6363    0xffff_ffff, /* c_jal */
6364    0xf07f,      /* c_jalr */
6365    0xf07f,      /* c_jr */
6366    0xfc03,      /* c_lbu */
6367    0xe003,      /* c_ld */
6368    0xe003,      /* c_ldsp */
6369    0xfc43,      /* c_lh */
6370    0xfc43,      /* c_lhu */
6371    0xe003,      /* c_li */
6372    0xe003,      /* c_lui */
6373    0xe003,      /* c_lw */
6374    0xe003,      /* c_lwsp */
6375    0xffff,      /* c_mop_1 */
6376    0xffff,      /* c_mop_11 */
6377    0xffff,      /* c_mop_13 */
6378    0xffff,      /* c_mop_15 */
6379    0xffff,      /* c_mop_3 */
6380    0xffff,      /* c_mop_5 */
6381    0xffff,      /* c_mop_7 */
6382    0xffff,      /* c_mop_9 */
6383    0xf8ff,      /* c_mop_N */
6384    0xfc63,      /* c_mul */
6385    0xf003,      /* c_mv */
6386    0xef83,      /* c_nop */
6387    0xfc7f,      /* c_not */
6388    0xffff,      /* c_ntl_all */
6389    0xffff,      /* c_ntl_p1 */
6390    0xffff,      /* c_ntl_pall */
6391    0xffff,      /* c_ntl_s1 */
6392    0xfc63,      /* c_or */
6393    0xfc03,      /* c_sb */
6394    0xe003,      /* c_sd */
6395    0xe003,      /* c_sdsp */
6396    0xfc7f,      /* c_sext_b */
6397    0xfc7f,      /* c_sext_h */
6398    0xf07f,      /* c_sext_w */
6399    0xfc43,      /* c_sh */
6400    0xe003,      /* c_slli */
6401    0xffff_ffff, /* c_slli_rv32 */
6402    0xec03,      /* c_srai */
6403    0xffff_ffff, /* c_srai_rv32 */
6404    0xec03,      /* c_srli */
6405    0xffff_ffff, /* c_srli_rv32 */
6406    0xffff,      /* c_sspopchk_x5 */
6407    0xffff,      /* c_sspush_x1 */
6408    0xfc63,      /* c_sub */
6409    0xfc63,      /* c_subw */
6410    0xe003,      /* c_sw */
6411    0xe003,      /* c_swsp */
6412    0xfc63,      /* c_xor */
6413    0xfc7f,      /* c_zext_b */
6414    0xfc7f,      /* c_zext_h */
6415    0xfc7f,      /* c_zext_w */
6416    0xfff07fff,  /* cbo_clean */
6417    0xfff07fff,  /* cbo_flush */
6418    0xfff07fff,  /* cbo_inval */
6419    0xfff07fff,  /* cbo_zero */
6420    0xfe00707f,  /* clmul */
6421    0xfe00707f,  /* clmulh */
6422    0xfe00707f,  /* clmulr */
6423    0xfff0707f,  /* clz */
6424    0xfff0707f,  /* clzw */
6425    0xfc03,      /* cm_jalt */
6426    0xfc63,      /* cm_mva01s */
6427    0xfc63,      /* cm_mvsa01 */
6428    0xff03,      /* cm_pop */
6429    0xff03,      /* cm_popret */
6430    0xff03,      /* cm_popretz */
6431    0xff03,      /* cm_push */
6432    0xfff0707f,  /* cpop */
6433    0xfff0707f,  /* cpopw */
6434    0x7fff,      /* csrc */
6435    0x7fff,      /* csrci */
6436    0xff07f,     /* csrr */
6437    0x707f,      /* csrrc */
6438    0x707f,      /* csrrci */
6439    0x707f,      /* csrrs */
6440    0x707f,      /* csrrsi */
6441    0x707f,      /* csrrw */
6442    0x707f,      /* csrrwi */
6443    0x7fff,      /* csrs */
6444    0x7fff,      /* csrsi */
6445    0x7fff,      /* csrw */
6446    0x7fff,      /* csrwi */
6447    0xfff0707f,  /* ctz */
6448    0xfff0707f,  /* ctzw */
6449    0xfe00707f,  /* czero_eqz */
6450    0xfe00707f,  /* czero_nez */
6451    0xfe00707f,  /* div */
6452    0xfe00707f,  /* divu */
6453    0xfe00707f,  /* divuw */
6454    0xfe00707f,  /* divw */
6455    0xffffffff,  /* dret */
6456    0xffffffff,  /* ebreak */
6457    0xffffffff,  /* ecall */
6458    0xfe00707f,  /* fabs_d */
6459    0xfe00707f,  /* fabs_h */
6460    0xfe00707f,  /* fabs_q */
6461    0xfe00707f,  /* fabs_s */
6462    0xfe00007f,  /* fadd_d */
6463    0xfe00007f,  /* fadd_h */
6464    0xfe00007f,  /* fadd_q */
6465    0xfe00007f,  /* fadd_s */
6466    0xfff0707f,  /* fclass_d */
6467    0xfff0707f,  /* fclass_h */
6468    0xfff0707f,  /* fclass_q */
6469    0xfff0707f,  /* fclass_s */
6470    0xfff0007f,  /* fcvt_bf16_s */
6471    0xfff0007f,  /* fcvt_d_h */
6472    0xfff0007f,  /* fcvt_d_l */
6473    0xfff0007f,  /* fcvt_d_lu */
6474    0xfff0007f,  /* fcvt_d_q */
6475    0xfff0007f,  /* fcvt_d_s */
6476    0xfff0007f,  /* fcvt_d_w */
6477    0xfff0007f,  /* fcvt_d_wu */
6478    0xfff0007f,  /* fcvt_h_d */
6479    0xfff0007f,  /* fcvt_h_l */
6480    0xfff0007f,  /* fcvt_h_lu */
6481    0xfff0007f,  /* fcvt_h_q */
6482    0xfff0007f,  /* fcvt_h_s */
6483    0xfff0007f,  /* fcvt_h_w */
6484    0xfff0007f,  /* fcvt_h_wu */
6485    0xfff0007f,  /* fcvt_l_d */
6486    0xfff0007f,  /* fcvt_l_h */
6487    0xfff0007f,  /* fcvt_l_q */
6488    0xfff0007f,  /* fcvt_l_s */
6489    0xfff0007f,  /* fcvt_lu_d */
6490    0xfff0007f,  /* fcvt_lu_h */
6491    0xfff0007f,  /* fcvt_lu_q */
6492    0xfff0007f,  /* fcvt_lu_s */
6493    0xfff0007f,  /* fcvt_q_d */
6494    0xfff0007f,  /* fcvt_q_h */
6495    0xfff0007f,  /* fcvt_q_l */
6496    0xfff0007f,  /* fcvt_q_lu */
6497    0xfff0007f,  /* fcvt_q_s */
6498    0xfff0007f,  /* fcvt_q_w */
6499    0xfff0007f,  /* fcvt_q_wu */
6500    0xfff0007f,  /* fcvt_s_bf16 */
6501    0xfff0007f,  /* fcvt_s_d */
6502    0xfff0007f,  /* fcvt_s_h */
6503    0xfff0007f,  /* fcvt_s_l */
6504    0xfff0007f,  /* fcvt_s_lu */
6505    0xfff0007f,  /* fcvt_s_q */
6506    0xfff0007f,  /* fcvt_s_w */
6507    0xfff0007f,  /* fcvt_s_wu */
6508    0xfff0007f,  /* fcvt_w_d */
6509    0xfff0007f,  /* fcvt_w_h */
6510    0xfff0007f,  /* fcvt_w_q */
6511    0xfff0007f,  /* fcvt_w_s */
6512    0xfff0007f,  /* fcvt_wu_d */
6513    0xfff0007f,  /* fcvt_wu_h */
6514    0xfff0007f,  /* fcvt_wu_q */
6515    0xfff0007f,  /* fcvt_wu_s */
6516    0xfff0707f,  /* fcvtmod_w_d */
6517    0xfe00007f,  /* fdiv_d */
6518    0xfe00007f,  /* fdiv_h */
6519    0xfe00007f,  /* fdiv_q */
6520    0xfe00007f,  /* fdiv_s */
6521    0x707f,      /* fence */
6522    0x707f,      /* fence_i */
6523    0xfff0707f,  /* fence_tso */
6524    0xfe00707f,  /* feq_d */
6525    0xfe00707f,  /* feq_h */
6526    0xfe00707f,  /* feq_q */
6527    0xfe00707f,  /* feq_s */
6528    0x707f,      /* fld */
6529    0xfe00707f,  /* fle_d */
6530    0xfe00707f,  /* fle_h */
6531    0xfe00707f,  /* fle_q */
6532    0xfe00707f,  /* fle_s */
6533    0xfe00707f,  /* fleq_d */
6534    0xfe00707f,  /* fleq_h */
6535    0xfe00707f,  /* fleq_q */
6536    0xfe00707f,  /* fleq_s */
6537    0x707f,      /* flh */
6538    0xfff0707f,  /* fli_d */
6539    0xfff0707f,  /* fli_h */
6540    0xfff0707f,  /* fli_q */
6541    0xfff0707f,  /* fli_s */
6542    0x707f,      /* flq */
6543    0xfe00707f,  /* flt_d */
6544    0xfe00707f,  /* flt_h */
6545    0xfe00707f,  /* flt_q */
6546    0xfe00707f,  /* flt_s */
6547    0xfe00707f,  /* fltq_d */
6548    0xfe00707f,  /* fltq_h */
6549    0xfe00707f,  /* fltq_q */
6550    0xfe00707f,  /* fltq_s */
6551    0x707f,      /* flw */
6552    0x600007f,   /* fmadd_d */
6553    0x600007f,   /* fmadd_h */
6554    0x600007f,   /* fmadd_q */
6555    0x600007f,   /* fmadd_s */
6556    0xfe00707f,  /* fmax_d */
6557    0xfe00707f,  /* fmax_h */
6558    0xfe00707f,  /* fmax_q */
6559    0xfe00707f,  /* fmax_s */
6560    0xfe00707f,  /* fmaxm_d */
6561    0xfe00707f,  /* fmaxm_h */
6562    0xfe00707f,  /* fmaxm_q */
6563    0xfe00707f,  /* fmaxm_s */
6564    0xfe00707f,  /* fmin_d */
6565    0xfe00707f,  /* fmin_h */
6566    0xfe00707f,  /* fmin_q */
6567    0xfe00707f,  /* fmin_s */
6568    0xfe00707f,  /* fminm_d */
6569    0xfe00707f,  /* fminm_h */
6570    0xfe00707f,  /* fminm_q */
6571    0xfe00707f,  /* fminm_s */
6572    0x600007f,   /* fmsub_d */
6573    0x600007f,   /* fmsub_h */
6574    0x600007f,   /* fmsub_q */
6575    0x600007f,   /* fmsub_s */
6576    0xfe00007f,  /* fmul_d */
6577    0xfe00007f,  /* fmul_h */
6578    0xfe00007f,  /* fmul_q */
6579    0xfe00007f,  /* fmul_s */
6580    0xfe00707f,  /* fmv_d */
6581    0xfff0707f,  /* fmv_d_x */
6582    0xfe00707f,  /* fmv_h */
6583    0xfff0707f,  /* fmv_h_x */
6584    0xfe00707f,  /* fmv_q */
6585    0xfe00707f,  /* fmv_s */
6586    0xfff0707f,  /* fmv_s_x */
6587    0xfff0707f,  /* fmv_w_x */
6588    0xfff0707f,  /* fmv_x_d */
6589    0xfff0707f,  /* fmv_x_h */
6590    0xfff0707f,  /* fmv_x_s */
6591    0xfff0707f,  /* fmv_x_w */
6592    0xffff_ffff, /* fmvh_x_d */
6593    0xfff0707f,  /* fmvh_x_q */
6594    0xffff_ffff, /* fmvp_d_x */
6595    0xfe00707f,  /* fmvp_q_x */
6596    0xfe00707f,  /* fneg_d */
6597    0xfe00707f,  /* fneg_h */
6598    0xfe00707f,  /* fneg_q */
6599    0xfe00707f,  /* fneg_s */
6600    0x600007f,   /* fnmadd_d */
6601    0x600007f,   /* fnmadd_h */
6602    0x600007f,   /* fnmadd_q */
6603    0x600007f,   /* fnmadd_s */
6604    0x600007f,   /* fnmsub_d */
6605    0x600007f,   /* fnmsub_h */
6606    0x600007f,   /* fnmsub_q */
6607    0x600007f,   /* fnmsub_s */
6608    0xfffff07f,  /* frcsr */
6609    0xfffff07f,  /* frflags */
6610    0xfff0007f,  /* fround_d */
6611    0xfff0007f,  /* fround_h */
6612    0xfff0007f,  /* fround_q */
6613    0xfff0007f,  /* fround_s */
6614    0xfff0007f,  /* froundnx_d */
6615    0xfff0007f,  /* froundnx_h */
6616    0xfff0007f,  /* froundnx_q */
6617    0xfff0007f,  /* froundnx_s */
6618    0xfffff07f,  /* frrm */
6619    0xfff0707f,  /* fscsr */
6620    0x707f,      /* fsd */
6621    0xfff0707f,  /* fsflags */
6622    0xfff0707f,  /* fsflagsi */
6623    0xfe00707f,  /* fsgnj_d */
6624    0xfe00707f,  /* fsgnj_h */
6625    0xfe00707f,  /* fsgnj_q */
6626    0xfe00707f,  /* fsgnj_s */
6627    0xfe00707f,  /* fsgnjn_d */
6628    0xfe00707f,  /* fsgnjn_h */
6629    0xfe00707f,  /* fsgnjn_q */
6630    0xfe00707f,  /* fsgnjn_s */
6631    0xfe00707f,  /* fsgnjx_d */
6632    0xfe00707f,  /* fsgnjx_h */
6633    0xfe00707f,  /* fsgnjx_q */
6634    0xfe00707f,  /* fsgnjx_s */
6635    0x707f,      /* fsh */
6636    0x707f,      /* fsq */
6637    0xfff0007f,  /* fsqrt_d */
6638    0xfff0007f,  /* fsqrt_h */
6639    0xfff0007f,  /* fsqrt_q */
6640    0xfff0007f,  /* fsqrt_s */
6641    0xfff0707f,  /* fsrm */
6642    0xfff0707f,  /* fsrmi */
6643    0xfe00007f,  /* fsub_d */
6644    0xfe00007f,  /* fsub_h */
6645    0xfe00007f,  /* fsub_q */
6646    0xfe00007f,  /* fsub_s */
6647    0x707f,      /* fsw */
6648    0xfe007fff,  /* hfence_gvma */
6649    0xfe007fff,  /* hfence_vvma */
6650    0xfe007fff,  /* hinval_gvma */
6651    0xfe007fff,  /* hinval_vvma */
6652    0xfff0707f,  /* hlv_b */
6653    0xfff0707f,  /* hlv_bu */
6654    0xfff0707f,  /* hlv_d */
6655    0xfff0707f,  /* hlv_h */
6656    0xfff0707f,  /* hlv_hu */
6657    0xfff0707f,  /* hlv_w */
6658    0xfff0707f,  /* hlv_wu */
6659    0xfff0707f,  /* hlvx_hu */
6660    0xfff0707f,  /* hlvx_wu */
6661    0xfe007fff,  /* hsv_b */
6662    0xfe007fff,  /* hsv_d */
6663    0xfe007fff,  /* hsv_h */
6664    0xfe007fff,  /* hsv_w */
6665    0xfff,       /* j */
6666    0x7f,        /* jal */
6667    0xfff,       /* jal_pseudo */
6668    0x707f,      /* jalr */
6669    0xfff07fff,  /* jalr_pseudo */
6670    0xfff07fff,  /* jr */
6671    0x707f,      /* lb */
6672    0x707f,      /* lbu */
6673    0x707f,      /* ld */
6674    0x707f,      /* lh */
6675    0x707f,      /* lhu */
6676    0xfff,       /* lpad */
6677    0xf9f0707f,  /* lr_d */
6678    0xf9f0707f,  /* lr_w */
6679    0x7f,        /* lui */
6680    0x707f,      /* lw */
6681    0x707f,      /* lwu */
6682    0xfe00707f,  /* max */
6683    0xfe00707f,  /* maxu */
6684    0xfe00707f,  /* min */
6685    0xfe00707f,  /* minu */
6686    0xffffffff,  /* mnret */
6687    0xfff0707f,  /* mop_r_0 */
6688    0xfff0707f,  /* mop_r_1 */
6689    0xfff0707f,  /* mop_r_10 */
6690    0xfff0707f,  /* mop_r_11 */
6691    0xfff0707f,  /* mop_r_12 */
6692    0xfff0707f,  /* mop_r_13 */
6693    0xfff0707f,  /* mop_r_14 */
6694    0xfff0707f,  /* mop_r_15 */
6695    0xfff0707f,  /* mop_r_16 */
6696    0xfff0707f,  /* mop_r_17 */
6697    0xfff0707f,  /* mop_r_18 */
6698    0xfff0707f,  /* mop_r_19 */
6699    0xfff0707f,  /* mop_r_2 */
6700    0xfff0707f,  /* mop_r_20 */
6701    0xfff0707f,  /* mop_r_21 */
6702    0xfff0707f,  /* mop_r_22 */
6703    0xfff0707f,  /* mop_r_23 */
6704    0xfff0707f,  /* mop_r_24 */
6705    0xfff0707f,  /* mop_r_25 */
6706    0xfff0707f,  /* mop_r_26 */
6707    0xfff0707f,  /* mop_r_27 */
6708    0xfff0707f,  /* mop_r_28 */
6709    0xfff0707f,  /* mop_r_29 */
6710    0xfff0707f,  /* mop_r_3 */
6711    0xfff0707f,  /* mop_r_30 */
6712    0xfff0707f,  /* mop_r_31 */
6713    0xfff0707f,  /* mop_r_4 */
6714    0xfff0707f,  /* mop_r_5 */
6715    0xfff0707f,  /* mop_r_6 */
6716    0xfff0707f,  /* mop_r_7 */
6717    0xfff0707f,  /* mop_r_8 */
6718    0xfff0707f,  /* mop_r_9 */
6719    0xb3c0707f,  /* mop_r_N */
6720    0xfe00707f,  /* mop_rr_0 */
6721    0xfe00707f,  /* mop_rr_1 */
6722    0xfe00707f,  /* mop_rr_2 */
6723    0xfe00707f,  /* mop_rr_3 */
6724    0xfe00707f,  /* mop_rr_4 */
6725    0xfe00707f,  /* mop_rr_5 */
6726    0xfe00707f,  /* mop_rr_6 */
6727    0xfe00707f,  /* mop_rr_7 */
6728    0xb200707f,  /* mop_rr_N */
6729    0xffffffff,  /* mret */
6730    0xfe00707f,  /* mul */
6731    0xfe00707f,  /* mulh */
6732    0xfe00707f,  /* mulhsu */
6733    0xfe00707f,  /* mulhu */
6734    0xfe00707f,  /* mulw */
6735    0xfff0707f,  /* mv */
6736    0xfff0707f,  /* neg */
6737    0xffffffff,  /* nop */
6738    0xffffffff,  /* ntl_all */
6739    0xffffffff,  /* ntl_p1 */
6740    0xffffffff,  /* ntl_pall */
6741    0xffffffff,  /* ntl_s1 */
6742    0xfe00707f,  /* or */
6743    0xfff0707f,  /* orc_b */
6744    0x707f,      /* ori */
6745    0xfe00707f,  /* orn */
6746    0xfe00707f,  /* pack */
6747    0xfe00707f,  /* packh */
6748    0xfe00707f,  /* packw */
6749    0xffffffff,  /* pause */
6750    0x1f07fff,   /* prefetch_i */
6751    0x1f07fff,   /* prefetch_r */
6752    0x1f07fff,   /* prefetch_w */
6753    0xfffff07f,  /* rdcycle */
6754    0xffff_ffff, /* rdcycleh */
6755    0xfffff07f,  /* rdinstret */
6756    0xffff_ffff, /* rdinstreth */
6757    0xfffff07f,  /* rdtime */
6758    0xffff_ffff, /* rdtimeh */
6759    0xfe00707f,  /* rem */
6760    0xfe00707f,  /* remu */
6761    0xfe00707f,  /* remuw */
6762    0xfe00707f,  /* remw */
6763    0xffffffff,  /* ret */
6764    0xfff0707f,  /* rev8 */
6765    0xffff_ffff, /* rev8_rv32 */
6766    0xfe00707f,  /* rol */
6767    0xfe00707f,  /* rolw */
6768    0xfe00707f,  /* ror */
6769    0xfc00707f,  /* rori */
6770    0xffff_ffff, /* rori_rv32 */
6771    0xfe00707f,  /* roriw */
6772    0xfe00707f,  /* rorw */
6773    0x707f,      /* sb */
6774    0xffffffff,  /* sbreak */
6775    0xf800707f,  /* sc_d */
6776    0xf800707f,  /* sc_w */
6777    0xffffffff,  /* scall */
6778    0xffffffff,  /* sctrclr */
6779    0x707f,      /* sd */
6780    0xfff0707f,  /* seqz */
6781    0xfff0707f,  /* sext_b */
6782    0xfff0707f,  /* sext_h */
6783    0xfff0707f,  /* sext_w */
6784    0xffffffff,  /* sfence_inval_ir */
6785    0xfe007fff,  /* sfence_vma */
6786    0xffffffff,  /* sfence_w_inval */
6787    0xfe0ff07f,  /* sgtz */
6788    0x707f,      /* sh */
6789    0xfe00707f,  /* sh1add */
6790    0xfe00707f,  /* sh1add_uw */
6791    0xfe00707f,  /* sh2add */
6792    0xfe00707f,  /* sh2add_uw */
6793    0xfe00707f,  /* sh3add */
6794    0xfe00707f,  /* sh3add_uw */
6795    0xfff0707f,  /* sha256sig0 */
6796    0xfff0707f,  /* sha256sig1 */
6797    0xfff0707f,  /* sha256sum0 */
6798    0xfff0707f,  /* sha256sum1 */
6799    0xfff0707f,  /* sha512sig0 */
6800    0xffff_ffff, /* sha512sig0h */
6801    0xffff_ffff, /* sha512sig0l */
6802    0xfff0707f,  /* sha512sig1 */
6803    0xffff_ffff, /* sha512sig1h */
6804    0xffff_ffff, /* sha512sig1l */
6805    0xfff0707f,  /* sha512sum0 */
6806    0xffff_ffff, /* sha512sum0r */
6807    0xfff0707f,  /* sha512sum1 */
6808    0xffff_ffff, /* sha512sum1r */
6809    0xfe007fff,  /* sinval_vma */
6810    0xfe00707f,  /* sll */
6811    0xfc00707f,  /* slli */
6812    0xffff_ffff, /* slli_rv32 */
6813    0xfc00707f,  /* slli_uw */
6814    0xfe00707f,  /* slliw */
6815    0xfe00707f,  /* sllw */
6816    0xfe00707f,  /* slt */
6817    0x707f,      /* slti */
6818    0x707f,      /* sltiu */
6819    0xfe00707f,  /* sltu */
6820    0xfff0707f,  /* sltz */
6821    0xfff0707f,  /* sm3p0 */
6822    0xfff0707f,  /* sm3p1 */
6823    0x3e00707f,  /* sm4ed */
6824    0x3e00707f,  /* sm4ks */
6825    0xfe0ff07f,  /* snez */
6826    0xfe00707f,  /* sra */
6827    0xfc00707f,  /* srai */
6828    0xffff_ffff, /* srai_rv32 */
6829    0xfe00707f,  /* sraiw */
6830    0xfe00707f,  /* sraw */
6831    0xffffffff,  /* sret */
6832    0xfe00707f,  /* srl */
6833    0xfc00707f,  /* srli */
6834    0xffff_ffff, /* srli_rv32 */
6835    0xfe00707f,  /* srliw */
6836    0xfe00707f,  /* srlw */
6837    0xf800707f,  /* ssamoswap_d */
6838    0xf800707f,  /* ssamoswap_w */
6839    0xffffffff,  /* sspopchk_x1 */
6840    0xffffffff,  /* sspopchk_x5 */
6841    0xffffffff,  /* sspush_x1 */
6842    0xffffffff,  /* sspush_x5 */
6843    0xfffff07f,  /* ssrdp */
6844    0xfe00707f,  /* sub */
6845    0xfe00707f,  /* subw */
6846    0x707f,      /* sw */
6847    0xffff_ffff, /* unzip */
6848    0xfc00707f,  /* vaadd_vv */
6849    0xfc00707f,  /* vaadd_vx */
6850    0xfc00707f,  /* vaaddu_vv */
6851    0xfc00707f,  /* vaaddu_vx */
6852    0xfe00707f,  /* vadc_vim */
6853    0xfe00707f,  /* vadc_vvm */
6854    0xfe00707f,  /* vadc_vxm */
6855    0xfc00707f,  /* vadd_vi */
6856    0xfc00707f,  /* vadd_vv */
6857    0xfc00707f,  /* vadd_vx */
6858    0xfe0ff07f,  /* vaesdf_vs */
6859    0xfe0ff07f,  /* vaesdf_vv */
6860    0xfe0ff07f,  /* vaesdm_vs */
6861    0xfe0ff07f,  /* vaesdm_vv */
6862    0xfe0ff07f,  /* vaesef_vs */
6863    0xfe0ff07f,  /* vaesef_vv */
6864    0xfe0ff07f,  /* vaesem_vs */
6865    0xfe0ff07f,  /* vaesem_vv */
6866    0xfe00707f,  /* vaeskf1_vi */
6867    0xfe00707f,  /* vaeskf2_vi */
6868    0xfe0ff07f,  /* vaesz_vs */
6869    0xfc00707f,  /* vand_vi */
6870    0xfc00707f,  /* vand_vv */
6871    0xfc00707f,  /* vand_vx */
6872    0xfc00707f,  /* vandn_vv */
6873    0xfc00707f,  /* vandn_vx */
6874    0xfc00707f,  /* vasub_vv */
6875    0xfc00707f,  /* vasub_vx */
6876    0xfc00707f,  /* vasubu_vv */
6877    0xfc00707f,  /* vasubu_vx */
6878    0xfc0ff07f,  /* vbrev8_v */
6879    0xfc0ff07f,  /* vbrev_v */
6880    0xfc00707f,  /* vclmul_vv */
6881    0xfc00707f,  /* vclmul_vx */
6882    0xfc00707f,  /* vclmulh_vv */
6883    0xfc00707f,  /* vclmulh_vx */
6884    0xfc0ff07f,  /* vclz_v */
6885    0xfe00707f,  /* vcompress_vm */
6886    0xfc0ff07f,  /* vcpop_m */
6887    0xfc0ff07f,  /* vcpop_v */
6888    0xfc0ff07f,  /* vctz_v */
6889    0xfc00707f,  /* vdiv_vv */
6890    0xfc00707f,  /* vdiv_vx */
6891    0xfc00707f,  /* vdivu_vv */
6892    0xfc00707f,  /* vdivu_vx */
6893    0xfc00707f,  /* vfadd_vf */
6894    0xfc00707f,  /* vfadd_vv */
6895    0xfc0ff07f,  /* vfclass_v */
6896    0xfc0ff07f,  /* vfcvt_f_x_v */
6897    0xfc0ff07f,  /* vfcvt_f_xu_v */
6898    0xfc0ff07f,  /* vfcvt_rtz_x_f_v */
6899    0xfc0ff07f,  /* vfcvt_rtz_xu_f_v */
6900    0xfc0ff07f,  /* vfcvt_x_f_v */
6901    0xfc0ff07f,  /* vfcvt_xu_f_v */
6902    0xfc00707f,  /* vfdiv_vf */
6903    0xfc00707f,  /* vfdiv_vv */
6904    0xfc0ff07f,  /* vfirst_m */
6905    0xfc00707f,  /* vfmacc_vf */
6906    0xfc00707f,  /* vfmacc_vv */
6907    0xfc00707f,  /* vfmadd_vf */
6908    0xfc00707f,  /* vfmadd_vv */
6909    0xfc00707f,  /* vfmax_vf */
6910    0xfc00707f,  /* vfmax_vv */
6911    0xfe00707f,  /* vfmerge_vfm */
6912    0xfc00707f,  /* vfmin_vf */
6913    0xfc00707f,  /* vfmin_vv */
6914    0xfc00707f,  /* vfmsac_vf */
6915    0xfc00707f,  /* vfmsac_vv */
6916    0xfc00707f,  /* vfmsub_vf */
6917    0xfc00707f,  /* vfmsub_vv */
6918    0xfc00707f,  /* vfmul_vf */
6919    0xfc00707f,  /* vfmul_vv */
6920    0xfe0ff07f,  /* vfmv_f_s */
6921    0xfff0707f,  /* vfmv_s_f */
6922    0xfff0707f,  /* vfmv_v_f */
6923    0xfc0ff07f,  /* vfncvt_f_f_w */
6924    0xfc0ff07f,  /* vfncvt_f_x_w */
6925    0xfc0ff07f,  /* vfncvt_f_xu_w */
6926    0xfc0ff07f,  /* vfncvt_rod_f_f_w */
6927    0xfc0ff07f,  /* vfncvt_rtz_x_f_w */
6928    0xfc0ff07f,  /* vfncvt_rtz_xu_f_w */
6929    0xfc0ff07f,  /* vfncvt_x_f_w */
6930    0xfc0ff07f,  /* vfncvt_xu_f_w */
6931    0xfc0ff07f,  /* vfncvtbf16_f_f_w */
6932    0xfc00707f,  /* vfnmacc_vf */
6933    0xfc00707f,  /* vfnmacc_vv */
6934    0xfc00707f,  /* vfnmadd_vf */
6935    0xfc00707f,  /* vfnmadd_vv */
6936    0xfc00707f,  /* vfnmsac_vf */
6937    0xfc00707f,  /* vfnmsac_vv */
6938    0xfc00707f,  /* vfnmsub_vf */
6939    0xfc00707f,  /* vfnmsub_vv */
6940    0xfc00707f,  /* vfrdiv_vf */
6941    0xfc0ff07f,  /* vfrec7_v */
6942    0xfc00707f,  /* vfredmax_vs */
6943    0xfc00707f,  /* vfredmin_vs */
6944    0xfc00707f,  /* vfredosum_vs */
6945    0xfc00707f,  /* vfredsum_vs */
6946    0xfc00707f,  /* vfredusum_vs */
6947    0xfc0ff07f,  /* vfrsqrt7_v */
6948    0xfc00707f,  /* vfrsub_vf */
6949    0xfc00707f,  /* vfsgnj_vf */
6950    0xfc00707f,  /* vfsgnj_vv */
6951    0xfc00707f,  /* vfsgnjn_vf */
6952    0xfc00707f,  /* vfsgnjn_vv */
6953    0xfc00707f,  /* vfsgnjx_vf */
6954    0xfc00707f,  /* vfsgnjx_vv */
6955    0xfc00707f,  /* vfslide1down_vf */
6956    0xfc00707f,  /* vfslide1up_vf */
6957    0xfc0ff07f,  /* vfsqrt_v */
6958    0xfc00707f,  /* vfsub_vf */
6959    0xfc00707f,  /* vfsub_vv */
6960    0xfc00707f,  /* vfwadd_vf */
6961    0xfc00707f,  /* vfwadd_vv */
6962    0xfc00707f,  /* vfwadd_wf */
6963    0xfc00707f,  /* vfwadd_wv */
6964    0xfc0ff07f,  /* vfwcvt_f_f_v */
6965    0xfc0ff07f,  /* vfwcvt_f_x_v */
6966    0xfc0ff07f,  /* vfwcvt_f_xu_v */
6967    0xfc0ff07f,  /* vfwcvt_rtz_x_f_v */
6968    0xfc0ff07f,  /* vfwcvt_rtz_xu_f_v */
6969    0xfc0ff07f,  /* vfwcvt_x_f_v */
6970    0xfc0ff07f,  /* vfwcvt_xu_f_v */
6971    0xfc0ff07f,  /* vfwcvtbf16_f_f_v */
6972    0xfc00707f,  /* vfwmacc_vf */
6973    0xfc00707f,  /* vfwmacc_vv */
6974    0xfc00707f,  /* vfwmaccbf16_vf */
6975    0xfc00707f,  /* vfwmaccbf16_vv */
6976    0xfc00707f,  /* vfwmsac_vf */
6977    0xfc00707f,  /* vfwmsac_vv */
6978    0xfc00707f,  /* vfwmul_vf */
6979    0xfc00707f,  /* vfwmul_vv */
6980    0xfc00707f,  /* vfwnmacc_vf */
6981    0xfc00707f,  /* vfwnmacc_vv */
6982    0xfc00707f,  /* vfwnmsac_vf */
6983    0xfc00707f,  /* vfwnmsac_vv */
6984    0xfc00707f,  /* vfwredosum_vs */
6985    0xfc00707f,  /* vfwredsum_vs */
6986    0xfc00707f,  /* vfwredusum_vs */
6987    0xfc00707f,  /* vfwsub_vf */
6988    0xfc00707f,  /* vfwsub_vv */
6989    0xfc00707f,  /* vfwsub_wf */
6990    0xfc00707f,  /* vfwsub_wv */
6991    0xfe00707f,  /* vghsh_vv */
6992    0xfe0ff07f,  /* vgmul_vv */
6993    0xfdfff07f,  /* vid_v */
6994    0xfc0ff07f,  /* viota_m */
6995    0xfff0707f,  /* vl1r_v */
6996    0xfff0707f,  /* vl1re16_v */
6997    0xfff0707f,  /* vl1re32_v */
6998    0xfff0707f,  /* vl1re64_v */
6999    0xfff0707f,  /* vl1re8_v */
7000    0xfff0707f,  /* vl2r_v */
7001    0xfff0707f,  /* vl2re16_v */
7002    0xfff0707f,  /* vl2re32_v */
7003    0xfff0707f,  /* vl2re64_v */
7004    0xfff0707f,  /* vl2re8_v */
7005    0xfff0707f,  /* vl4r_v */
7006    0xfff0707f,  /* vl4re16_v */
7007    0xfff0707f,  /* vl4re32_v */
7008    0xfff0707f,  /* vl4re64_v */
7009    0xfff0707f,  /* vl4re8_v */
7010    0xfff0707f,  /* vl8r_v */
7011    0xfff0707f,  /* vl8re16_v */
7012    0xfff0707f,  /* vl8re32_v */
7013    0xfff0707f,  /* vl8re64_v */
7014    0xfff0707f,  /* vl8re8_v */
7015    0x1df0707f,  /* vle16_v */
7016    0x1df0707f,  /* vle16ff_v */
7017    0xfff0707f,  /* vle1_v */
7018    0x1df0707f,  /* vle32_v */
7019    0x1df0707f,  /* vle32ff_v */
7020    0x1df0707f,  /* vle64_v */
7021    0x1df0707f,  /* vle64ff_v */
7022    0x1df0707f,  /* vle8_v */
7023    0x1df0707f,  /* vle8ff_v */
7024    0xfff0707f,  /* vlm_v */
7025    0x1c00707f,  /* vloxei16_v */
7026    0x1c00707f,  /* vloxei32_v */
7027    0x1c00707f,  /* vloxei64_v */
7028    0x1c00707f,  /* vloxei8_v */
7029    0x1c00707f,  /* vlse16_v */
7030    0x1c00707f,  /* vlse32_v */
7031    0x1c00707f,  /* vlse64_v */
7032    0x1c00707f,  /* vlse8_v */
7033    0x1c00707f,  /* vluxei16_v */
7034    0x1c00707f,  /* vluxei32_v */
7035    0x1c00707f,  /* vluxei64_v */
7036    0x1c00707f,  /* vluxei8_v */
7037    0xfc00707f,  /* vmacc_vv */
7038    0xfc00707f,  /* vmacc_vx */
7039    0xfe00707f,  /* vmadc_vi */
7040    0xfe00707f,  /* vmadc_vim */
7041    0xfe00707f,  /* vmadc_vv */
7042    0xfe00707f,  /* vmadc_vvm */
7043    0xfe00707f,  /* vmadc_vx */
7044    0xfe00707f,  /* vmadc_vxm */
7045    0xfc00707f,  /* vmadd_vv */
7046    0xfc00707f,  /* vmadd_vx */
7047    0xfe00707f,  /* vmand_mm */
7048    0xfe00707f,  /* vmandn_mm */
7049    0xfc00707f,  /* vmandnot_mm */
7050    0xfc00707f,  /* vmax_vv */
7051    0xfc00707f,  /* vmax_vx */
7052    0xfc00707f,  /* vmaxu_vv */
7053    0xfc00707f,  /* vmaxu_vx */
7054    0xfe00707f,  /* vmerge_vim */
7055    0xfe00707f,  /* vmerge_vvm */
7056    0xfe00707f,  /* vmerge_vxm */
7057    0xfc00707f,  /* vmfeq_vf */
7058    0xfc00707f,  /* vmfeq_vv */
7059    0xfc00707f,  /* vmfge_vf */
7060    0xfc00707f,  /* vmfgt_vf */
7061    0xfc00707f,  /* vmfle_vf */
7062    0xfc00707f,  /* vmfle_vv */
7063    0xfc00707f,  /* vmflt_vf */
7064    0xfc00707f,  /* vmflt_vv */
7065    0xfc00707f,  /* vmfne_vf */
7066    0xfc00707f,  /* vmfne_vv */
7067    0xfc00707f,  /* vmin_vv */
7068    0xfc00707f,  /* vmin_vx */
7069    0xfc00707f,  /* vminu_vv */
7070    0xfc00707f,  /* vminu_vx */
7071    0xfe00707f,  /* vmnand_mm */
7072    0xfe00707f,  /* vmnor_mm */
7073    0xfe00707f,  /* vmor_mm */
7074    0xfe00707f,  /* vmorn_mm */
7075    0xfc00707f,  /* vmornot_mm */
7076    0xfe00707f,  /* vmsbc_vv */
7077    0xfe00707f,  /* vmsbc_vvm */
7078    0xfe00707f,  /* vmsbc_vx */
7079    0xfe00707f,  /* vmsbc_vxm */
7080    0xfc0ff07f,  /* vmsbf_m */
7081    0xfc00707f,  /* vmseq_vi */
7082    0xfc00707f,  /* vmseq_vv */
7083    0xfc00707f,  /* vmseq_vx */
7084    0xfc00707f,  /* vmsgt_vi */
7085    0xfc00707f,  /* vmsgt_vx */
7086    0xfc00707f,  /* vmsgtu_vi */
7087    0xfc00707f,  /* vmsgtu_vx */
7088    0xfc0ff07f,  /* vmsif_m */
7089    0xfc00707f,  /* vmsle_vi */
7090    0xfc00707f,  /* vmsle_vv */
7091    0xfc00707f,  /* vmsle_vx */
7092    0xfc00707f,  /* vmsleu_vi */
7093    0xfc00707f,  /* vmsleu_vv */
7094    0xfc00707f,  /* vmsleu_vx */
7095    0xfc00707f,  /* vmslt_vv */
7096    0xfc00707f,  /* vmslt_vx */
7097    0xfc00707f,  /* vmsltu_vv */
7098    0xfc00707f,  /* vmsltu_vx */
7099    0xfc00707f,  /* vmsne_vi */
7100    0xfc00707f,  /* vmsne_vv */
7101    0xfc00707f,  /* vmsne_vx */
7102    0xfc0ff07f,  /* vmsof_m */
7103    0xfc00707f,  /* vmul_vv */
7104    0xfc00707f,  /* vmul_vx */
7105    0xfc00707f,  /* vmulh_vv */
7106    0xfc00707f,  /* vmulh_vx */
7107    0xfc00707f,  /* vmulhsu_vv */
7108    0xfc00707f,  /* vmulhsu_vx */
7109    0xfc00707f,  /* vmulhu_vv */
7110    0xfc00707f,  /* vmulhu_vx */
7111    0xfe0ff07f,  /* vmv1r_v */
7112    0xfe0ff07f,  /* vmv2r_v */
7113    0xfe0ff07f,  /* vmv4r_v */
7114    0xfe0ff07f,  /* vmv8r_v */
7115    0xfff0707f,  /* vmv_s_x */
7116    0xfff0707f,  /* vmv_v_i */
7117    0xfff0707f,  /* vmv_v_v */
7118    0xfff0707f,  /* vmv_v_x */
7119    0xfe0ff07f,  /* vmv_x_s */
7120    0xfe00707f,  /* vmxnor_mm */
7121    0xfe00707f,  /* vmxor_mm */
7122    0xfc00707f,  /* vnclip_wi */
7123    0xfc00707f,  /* vnclip_wv */
7124    0xfc00707f,  /* vnclip_wx */
7125    0xfc00707f,  /* vnclipu_wi */
7126    0xfc00707f,  /* vnclipu_wv */
7127    0xfc00707f,  /* vnclipu_wx */
7128    0xfc00707f,  /* vnmsac_vv */
7129    0xfc00707f,  /* vnmsac_vx */
7130    0xfc00707f,  /* vnmsub_vv */
7131    0xfc00707f,  /* vnmsub_vx */
7132    0xfc00707f,  /* vnsra_wi */
7133    0xfc00707f,  /* vnsra_wv */
7134    0xfc00707f,  /* vnsra_wx */
7135    0xfc00707f,  /* vnsrl_wi */
7136    0xfc00707f,  /* vnsrl_wv */
7137    0xfc00707f,  /* vnsrl_wx */
7138    0xfc00707f,  /* vor_vi */
7139    0xfc00707f,  /* vor_vv */
7140    0xfc00707f,  /* vor_vx */
7141    0xfc0ff07f,  /* vpopc_m */
7142    0xfc00707f,  /* vredand_vs */
7143    0xfc00707f,  /* vredmax_vs */
7144    0xfc00707f,  /* vredmaxu_vs */
7145    0xfc00707f,  /* vredmin_vs */
7146    0xfc00707f,  /* vredminu_vs */
7147    0xfc00707f,  /* vredor_vs */
7148    0xfc00707f,  /* vredsum_vs */
7149    0xfc00707f,  /* vredxor_vs */
7150    0xfc00707f,  /* vrem_vv */
7151    0xfc00707f,  /* vrem_vx */
7152    0xfc00707f,  /* vremu_vv */
7153    0xfc00707f,  /* vremu_vx */
7154    0xfc0ff07f,  /* vrev8_v */
7155    0xfc00707f,  /* vrgather_vi */
7156    0xfc00707f,  /* vrgather_vv */
7157    0xfc00707f,  /* vrgather_vx */
7158    0xfc00707f,  /* vrgatherei16_vv */
7159    0xfc00707f,  /* vrol_vv */
7160    0xfc00707f,  /* vrol_vx */
7161    0xf800707f,  /* vror_vi */
7162    0xfc00707f,  /* vror_vv */
7163    0xfc00707f,  /* vror_vx */
7164    0xfc00707f,  /* vrsub_vi */
7165    0xfc00707f,  /* vrsub_vx */
7166    0xfff0707f,  /* vs1r_v */
7167    0xfff0707f,  /* vs2r_v */
7168    0xfff0707f,  /* vs4r_v */
7169    0xfff0707f,  /* vs8r_v */
7170    0xfc00707f,  /* vsadd_vi */
7171    0xfc00707f,  /* vsadd_vv */
7172    0xfc00707f,  /* vsadd_vx */
7173    0xfc00707f,  /* vsaddu_vi */
7174    0xfc00707f,  /* vsaddu_vv */
7175    0xfc00707f,  /* vsaddu_vx */
7176    0xfe00707f,  /* vsbc_vvm */
7177    0xfe00707f,  /* vsbc_vxm */
7178    0x1df0707f,  /* vse16_v */
7179    0xfff0707f,  /* vse1_v */
7180    0x1df0707f,  /* vse32_v */
7181    0x1df0707f,  /* vse64_v */
7182    0x1df0707f,  /* vse8_v */
7183    0xc000707f,  /* vsetivli */
7184    0xfe00707f,  /* vsetvl */
7185    0x8000707f,  /* vsetvli */
7186    0xfc0ff07f,  /* vsext_vf2 */
7187    0xfc0ff07f,  /* vsext_vf4 */
7188    0xfc0ff07f,  /* vsext_vf8 */
7189    0xfe00707f,  /* vsha2ch_vv */
7190    0xfe00707f,  /* vsha2cl_vv */
7191    0xfe00707f,  /* vsha2ms_vv */
7192    0xfc00707f,  /* vslide1down_vx */
7193    0xfc00707f,  /* vslide1up_vx */
7194    0xfc00707f,  /* vslidedown_vi */
7195    0xfc00707f,  /* vslidedown_vx */
7196    0xfc00707f,  /* vslideup_vi */
7197    0xfc00707f,  /* vslideup_vx */
7198    0xfc00707f,  /* vsll_vi */
7199    0xfc00707f,  /* vsll_vv */
7200    0xfc00707f,  /* vsll_vx */
7201    0xfe00707f,  /* vsm3c_vi */
7202    0xfe00707f,  /* vsm3me_vv */
7203    0xfe00707f,  /* vsm4k_vi */
7204    0xfe0ff07f,  /* vsm4r_vs */
7205    0xfe0ff07f,  /* vsm4r_vv */
7206    0xfff0707f,  /* vsm_v */
7207    0xfc00707f,  /* vsmul_vv */
7208    0xfc00707f,  /* vsmul_vx */
7209    0x1c00707f,  /* vsoxei16_v */
7210    0x1c00707f,  /* vsoxei32_v */
7211    0x1c00707f,  /* vsoxei64_v */
7212    0x1c00707f,  /* vsoxei8_v */
7213    0xfc00707f,  /* vsra_vi */
7214    0xfc00707f,  /* vsra_vv */
7215    0xfc00707f,  /* vsra_vx */
7216    0xfc00707f,  /* vsrl_vi */
7217    0xfc00707f,  /* vsrl_vv */
7218    0xfc00707f,  /* vsrl_vx */
7219    0x1c00707f,  /* vsse16_v */
7220    0x1c00707f,  /* vsse32_v */
7221    0x1c00707f,  /* vsse64_v */
7222    0x1c00707f,  /* vsse8_v */
7223    0xfc00707f,  /* vssra_vi */
7224    0xfc00707f,  /* vssra_vv */
7225    0xfc00707f,  /* vssra_vx */
7226    0xfc00707f,  /* vssrl_vi */
7227    0xfc00707f,  /* vssrl_vv */
7228    0xfc00707f,  /* vssrl_vx */
7229    0xfc00707f,  /* vssub_vv */
7230    0xfc00707f,  /* vssub_vx */
7231    0xfc00707f,  /* vssubu_vv */
7232    0xfc00707f,  /* vssubu_vx */
7233    0xfc00707f,  /* vsub_vv */
7234    0xfc00707f,  /* vsub_vx */
7235    0x1c00707f,  /* vsuxei16_v */
7236    0x1c00707f,  /* vsuxei32_v */
7237    0x1c00707f,  /* vsuxei64_v */
7238    0x1c00707f,  /* vsuxei8_v */
7239    0xfc00707f,  /* vwadd_vv */
7240    0xfc00707f,  /* vwadd_vx */
7241    0xfc00707f,  /* vwadd_wv */
7242    0xfc00707f,  /* vwadd_wx */
7243    0xfc00707f,  /* vwaddu_vv */
7244    0xfc00707f,  /* vwaddu_vx */
7245    0xfc00707f,  /* vwaddu_wv */
7246    0xfc00707f,  /* vwaddu_wx */
7247    0xfc00707f,  /* vwmacc_vv */
7248    0xfc00707f,  /* vwmacc_vx */
7249    0xfc00707f,  /* vwmaccsu_vv */
7250    0xfc00707f,  /* vwmaccsu_vx */
7251    0xfc00707f,  /* vwmaccu_vv */
7252    0xfc00707f,  /* vwmaccu_vx */
7253    0xfc00707f,  /* vwmaccus_vx */
7254    0xfc00707f,  /* vwmul_vv */
7255    0xfc00707f,  /* vwmul_vx */
7256    0xfc00707f,  /* vwmulsu_vv */
7257    0xfc00707f,  /* vwmulsu_vx */
7258    0xfc00707f,  /* vwmulu_vv */
7259    0xfc00707f,  /* vwmulu_vx */
7260    0xfc00707f,  /* vwredsum_vs */
7261    0xfc00707f,  /* vwredsumu_vs */
7262    0xfc00707f,  /* vwsll_vi */
7263    0xfc00707f,  /* vwsll_vv */
7264    0xfc00707f,  /* vwsll_vx */
7265    0xfc00707f,  /* vwsub_vv */
7266    0xfc00707f,  /* vwsub_vx */
7267    0xfc00707f,  /* vwsub_wv */
7268    0xfc00707f,  /* vwsub_wx */
7269    0xfc00707f,  /* vwsubu_vv */
7270    0xfc00707f,  /* vwsubu_vx */
7271    0xfc00707f,  /* vwsubu_wv */
7272    0xfc00707f,  /* vwsubu_wx */
7273    0xfc00707f,  /* vxor_vi */
7274    0xfc00707f,  /* vxor_vv */
7275    0xfc00707f,  /* vxor_vx */
7276    0xfc0ff07f,  /* vzext_vf2 */
7277    0xfc0ff07f,  /* vzext_vf4 */
7278    0xfc0ff07f,  /* vzext_vf8 */
7279    0xffffffff,  /* wfi */
7280    0xffffffff,  /* wrs_nto */
7281    0xffffffff,  /* wrs_sto */
7282    0xfe00707f,  /* xnor */
7283    0xfe00707f,  /* xor */
7284    0x707f,      /* xori */
7285    0xfe00707f,  /* xperm4 */
7286    0xfe00707f,  /* xperm8 */
7287    0xfff0707f,  /* zext_b */
7288    0xfff0707f,  /* zext_h */
7289    0xffff_ffff, /* zext_h_rv32 */
7290    0xfff0707f,  /* zext_w */
7291    0xffff_ffff, /* zip */
7292];
7293pub static OPCODE_MATCH: [u32; 1039] = [
7294    0x33,       /* add */
7295    0x800003b,  /* add_uw */
7296    0x13,       /* addi */
7297    0x1b,       /* addiw */
7298    0x3b,       /* addw */
7299    0x2a000033, /* aes32dsi */
7300    0x2e000033, /* aes32dsmi */
7301    0x22000033, /* aes32esi */
7302    0x26000033, /* aes32esmi */
7303    0x3a000033, /* aes64ds */
7304    0x3e000033, /* aes64dsm */
7305    0x32000033, /* aes64es */
7306    0x36000033, /* aes64esm */
7307    0x30001013, /* aes64im */
7308    0x31001013, /* aes64ks1i */
7309    0x7e000033, /* aes64ks2 */
7310    0x2f,       /* amoadd_b */
7311    0x302f,     /* amoadd_d */
7312    0x102f,     /* amoadd_h */
7313    0x202f,     /* amoadd_w */
7314    0x6000002f, /* amoand_b */
7315    0x6000302f, /* amoand_d */
7316    0x6000102f, /* amoand_h */
7317    0x6000202f, /* amoand_w */
7318    0x2800002f, /* amocas_b */
7319    0x2800302f, /* amocas_d */
7320    0x2800102f, /* amocas_h */
7321    0x2800402f, /* amocas_q */
7322    0x2800202f, /* amocas_w */
7323    0xa000002f, /* amomax_b */
7324    0xa000302f, /* amomax_d */
7325    0xa000102f, /* amomax_h */
7326    0xa000202f, /* amomax_w */
7327    0xe000002f, /* amomaxu_b */
7328    0xe000302f, /* amomaxu_d */
7329    0xe000102f, /* amomaxu_h */
7330    0xe000202f, /* amomaxu_w */
7331    0x8000002f, /* amomin_b */
7332    0x8000302f, /* amomin_d */
7333    0x8000102f, /* amomin_h */
7334    0x8000202f, /* amomin_w */
7335    0xc000002f, /* amominu_b */
7336    0xc000302f, /* amominu_d */
7337    0xc000102f, /* amominu_h */
7338    0xc000202f, /* amominu_w */
7339    0x4000002f, /* amoor_b */
7340    0x4000302f, /* amoor_d */
7341    0x4000102f, /* amoor_h */
7342    0x4000202f, /* amoor_w */
7343    0x800002f,  /* amoswap_b */
7344    0x800302f,  /* amoswap_d */
7345    0x800102f,  /* amoswap_h */
7346    0x800202f,  /* amoswap_w */
7347    0x2000002f, /* amoxor_b */
7348    0x2000302f, /* amoxor_d */
7349    0x2000102f, /* amoxor_h */
7350    0x2000202f, /* amoxor_w */
7351    0x7033,     /* and */
7352    0x7013,     /* andi */
7353    0x40007033, /* andn */
7354    0x17,       /* auipc */
7355    0x48001033, /* bclr */
7356    0x48001013, /* bclri */
7357    0x48001013, /* bclri_rv32 */
7358    0x63,       /* beq */
7359    0x63,       /* beqz */
7360    0x48005033, /* bext */
7361    0x48005013, /* bexti */
7362    0x48005013, /* bexti_rv32 */
7363    0x5063,     /* bge */
7364    0x7063,     /* bgeu */
7365    0x5063,     /* bgez */
7366    0x4063,     /* bgt */
7367    0x6063,     /* bgtu */
7368    0x4063,     /* bgtz */
7369    0x68001033, /* binv */
7370    0x68001013, /* binvi */
7371    0x68001013, /* binvi_rv32 */
7372    0x5063,     /* ble */
7373    0x7063,     /* bleu */
7374    0x5063,     /* blez */
7375    0x4063,     /* blt */
7376    0x6063,     /* bltu */
7377    0x4063,     /* bltz */
7378    0x1063,     /* bne */
7379    0x1063,     /* bnez */
7380    0x68705013, /* brev8 */
7381    0x28001033, /* bset */
7382    0x28001013, /* bseti */
7383    0x28001013, /* bseti_rv32 */
7384    0x9002,     /* c_add */
7385    0x1,        /* c_addi */
7386    0x6101,     /* c_addi16sp */
7387    0x0,        /* c_addi4spn */
7388    0x2001,     /* c_addiw */
7389    0x9c21,     /* c_addw */
7390    0x8c61,     /* c_and */
7391    0x8801,     /* c_andi */
7392    0xc001,     /* c_beqz */
7393    0xe001,     /* c_bnez */
7394    0x9002,     /* c_ebreak */
7395    0x2000,     /* c_fld */
7396    0x2002,     /* c_fldsp */
7397    0x6000,     /* c_flw */
7398    0x6002,     /* c_flwsp */
7399    0xa000,     /* c_fsd */
7400    0xa002,     /* c_fsdsp */
7401    0xe000,     /* c_fsw */
7402    0xe002,     /* c_fswsp */
7403    0xa001,     /* c_j */
7404    0x2001,     /* c_jal */
7405    0x9002,     /* c_jalr */
7406    0x8002,     /* c_jr */
7407    0x8000,     /* c_lbu */
7408    0x6000,     /* c_ld */
7409    0x6002,     /* c_ldsp */
7410    0x8440,     /* c_lh */
7411    0x8400,     /* c_lhu */
7412    0x4001,     /* c_li */
7413    0x6001,     /* c_lui */
7414    0x4000,     /* c_lw */
7415    0x4002,     /* c_lwsp */
7416    0x6081,     /* c_mop_1 */
7417    0x6581,     /* c_mop_11 */
7418    0x6681,     /* c_mop_13 */
7419    0x6781,     /* c_mop_15 */
7420    0x6181,     /* c_mop_3 */
7421    0x6281,     /* c_mop_5 */
7422    0x6381,     /* c_mop_7 */
7423    0x6481,     /* c_mop_9 */
7424    0x6081,     /* c_mop_N */
7425    0x9c41,     /* c_mul */
7426    0x8002,     /* c_mv */
7427    0x1,        /* c_nop */
7428    0x9c75,     /* c_not */
7429    0x9016,     /* c_ntl_all */
7430    0x900a,     /* c_ntl_p1 */
7431    0x900e,     /* c_ntl_pall */
7432    0x9012,     /* c_ntl_s1 */
7433    0x8c41,     /* c_or */
7434    0x8800,     /* c_sb */
7435    0xe000,     /* c_sd */
7436    0xe002,     /* c_sdsp */
7437    0x9c65,     /* c_sext_b */
7438    0x9c6d,     /* c_sext_h */
7439    0x2001,     /* c_sext_w */
7440    0x8c00,     /* c_sh */
7441    0x2,        /* c_slli */
7442    0x2,        /* c_slli_rv32 */
7443    0x8401,     /* c_srai */
7444    0x8401,     /* c_srai_rv32 */
7445    0x8001,     /* c_srli */
7446    0x8001,     /* c_srli_rv32 */
7447    0x6281,     /* c_sspopchk_x5 */
7448    0x6081,     /* c_sspush_x1 */
7449    0x8c01,     /* c_sub */
7450    0x9c01,     /* c_subw */
7451    0xc000,     /* c_sw */
7452    0xc002,     /* c_swsp */
7453    0x8c21,     /* c_xor */
7454    0x9c61,     /* c_zext_b */
7455    0x9c69,     /* c_zext_h */
7456    0x9c71,     /* c_zext_w */
7457    0x10200f,   /* cbo_clean */
7458    0x20200f,   /* cbo_flush */
7459    0x200f,     /* cbo_inval */
7460    0x40200f,   /* cbo_zero */
7461    0xa001033,  /* clmul */
7462    0xa003033,  /* clmulh */
7463    0xa002033,  /* clmulr */
7464    0x60001013, /* clz */
7465    0x6000101b, /* clzw */
7466    0xa002,     /* cm_jalt */
7467    0xac62,     /* cm_mva01s */
7468    0xac22,     /* cm_mvsa01 */
7469    0xba02,     /* cm_pop */
7470    0xbe02,     /* cm_popret */
7471    0xbc02,     /* cm_popretz */
7472    0xb802,     /* cm_push */
7473    0x60201013, /* cpop */
7474    0x6020101b, /* cpopw */
7475    0x3073,     /* csrc */
7476    0x7073,     /* csrci */
7477    0x2073,     /* csrr */
7478    0x3073,     /* csrrc */
7479    0x7073,     /* csrrci */
7480    0x2073,     /* csrrs */
7481    0x6073,     /* csrrsi */
7482    0x1073,     /* csrrw */
7483    0x5073,     /* csrrwi */
7484    0x2073,     /* csrs */
7485    0x6073,     /* csrsi */
7486    0x1073,     /* csrw */
7487    0x5073,     /* csrwi */
7488    0x60101013, /* ctz */
7489    0x6010101b, /* ctzw */
7490    0xe005033,  /* czero_eqz */
7491    0xe007033,  /* czero_nez */
7492    0x2004033,  /* div */
7493    0x2005033,  /* divu */
7494    0x200503b,  /* divuw */
7495    0x200403b,  /* divw */
7496    0x7b200073, /* dret */
7497    0x100073,   /* ebreak */
7498    0x73,       /* ecall */
7499    0x22002053, /* fabs_d */
7500    0x24002053, /* fabs_h */
7501    0x26002053, /* fabs_q */
7502    0x20002053, /* fabs_s */
7503    0x2000053,  /* fadd_d */
7504    0x4000053,  /* fadd_h */
7505    0x6000053,  /* fadd_q */
7506    0x53,       /* fadd_s */
7507    0xe2001053, /* fclass_d */
7508    0xe4001053, /* fclass_h */
7509    0xe6001053, /* fclass_q */
7510    0xe0001053, /* fclass_s */
7511    0x44800053, /* fcvt_bf16_s */
7512    0x42200053, /* fcvt_d_h */
7513    0xd2200053, /* fcvt_d_l */
7514    0xd2300053, /* fcvt_d_lu */
7515    0x42300053, /* fcvt_d_q */
7516    0x42000053, /* fcvt_d_s */
7517    0xd2000053, /* fcvt_d_w */
7518    0xd2100053, /* fcvt_d_wu */
7519    0x44100053, /* fcvt_h_d */
7520    0xd4200053, /* fcvt_h_l */
7521    0xd4300053, /* fcvt_h_lu */
7522    0x44300053, /* fcvt_h_q */
7523    0x44000053, /* fcvt_h_s */
7524    0xd4000053, /* fcvt_h_w */
7525    0xd4100053, /* fcvt_h_wu */
7526    0xc2200053, /* fcvt_l_d */
7527    0xc4200053, /* fcvt_l_h */
7528    0xc6200053, /* fcvt_l_q */
7529    0xc0200053, /* fcvt_l_s */
7530    0xc2300053, /* fcvt_lu_d */
7531    0xc4300053, /* fcvt_lu_h */
7532    0xc6300053, /* fcvt_lu_q */
7533    0xc0300053, /* fcvt_lu_s */
7534    0x46100053, /* fcvt_q_d */
7535    0x46200053, /* fcvt_q_h */
7536    0xd6200053, /* fcvt_q_l */
7537    0xd6300053, /* fcvt_q_lu */
7538    0x46000053, /* fcvt_q_s */
7539    0xd6000053, /* fcvt_q_w */
7540    0xd6100053, /* fcvt_q_wu */
7541    0x40600053, /* fcvt_s_bf16 */
7542    0x40100053, /* fcvt_s_d */
7543    0x40200053, /* fcvt_s_h */
7544    0xd0200053, /* fcvt_s_l */
7545    0xd0300053, /* fcvt_s_lu */
7546    0x40300053, /* fcvt_s_q */
7547    0xd0000053, /* fcvt_s_w */
7548    0xd0100053, /* fcvt_s_wu */
7549    0xc2000053, /* fcvt_w_d */
7550    0xc4000053, /* fcvt_w_h */
7551    0xc6000053, /* fcvt_w_q */
7552    0xc0000053, /* fcvt_w_s */
7553    0xc2100053, /* fcvt_wu_d */
7554    0xc4100053, /* fcvt_wu_h */
7555    0xc6100053, /* fcvt_wu_q */
7556    0xc0100053, /* fcvt_wu_s */
7557    0xc2801053, /* fcvtmod_w_d */
7558    0x1a000053, /* fdiv_d */
7559    0x1c000053, /* fdiv_h */
7560    0x1e000053, /* fdiv_q */
7561    0x18000053, /* fdiv_s */
7562    0xf,        /* fence */
7563    0x100f,     /* fence_i */
7564    0x8330000f, /* fence_tso */
7565    0xa2002053, /* feq_d */
7566    0xa4002053, /* feq_h */
7567    0xa6002053, /* feq_q */
7568    0xa0002053, /* feq_s */
7569    0x3007,     /* fld */
7570    0xa2000053, /* fle_d */
7571    0xa4000053, /* fle_h */
7572    0xa6000053, /* fle_q */
7573    0xa0000053, /* fle_s */
7574    0xa2004053, /* fleq_d */
7575    0xa4004053, /* fleq_h */
7576    0xa6004053, /* fleq_q */
7577    0xa0004053, /* fleq_s */
7578    0x1007,     /* flh */
7579    0xf2100053, /* fli_d */
7580    0xf4100053, /* fli_h */
7581    0xf6100053, /* fli_q */
7582    0xf0100053, /* fli_s */
7583    0x4007,     /* flq */
7584    0xa2001053, /* flt_d */
7585    0xa4001053, /* flt_h */
7586    0xa6001053, /* flt_q */
7587    0xa0001053, /* flt_s */
7588    0xa2005053, /* fltq_d */
7589    0xa4005053, /* fltq_h */
7590    0xa6005053, /* fltq_q */
7591    0xa0005053, /* fltq_s */
7592    0x2007,     /* flw */
7593    0x2000043,  /* fmadd_d */
7594    0x4000043,  /* fmadd_h */
7595    0x6000043,  /* fmadd_q */
7596    0x43,       /* fmadd_s */
7597    0x2a001053, /* fmax_d */
7598    0x2c001053, /* fmax_h */
7599    0x2e001053, /* fmax_q */
7600    0x28001053, /* fmax_s */
7601    0x2a003053, /* fmaxm_d */
7602    0x2c003053, /* fmaxm_h */
7603    0x2e003053, /* fmaxm_q */
7604    0x28003053, /* fmaxm_s */
7605    0x2a000053, /* fmin_d */
7606    0x2c000053, /* fmin_h */
7607    0x2e000053, /* fmin_q */
7608    0x28000053, /* fmin_s */
7609    0x2a002053, /* fminm_d */
7610    0x2c002053, /* fminm_h */
7611    0x2e002053, /* fminm_q */
7612    0x28002053, /* fminm_s */
7613    0x2000047,  /* fmsub_d */
7614    0x4000047,  /* fmsub_h */
7615    0x6000047,  /* fmsub_q */
7616    0x47,       /* fmsub_s */
7617    0x12000053, /* fmul_d */
7618    0x14000053, /* fmul_h */
7619    0x16000053, /* fmul_q */
7620    0x10000053, /* fmul_s */
7621    0x22000053, /* fmv_d */
7622    0xf2000053, /* fmv_d_x */
7623    0x24000053, /* fmv_h */
7624    0xf4000053, /* fmv_h_x */
7625    0x26000053, /* fmv_q */
7626    0x20000053, /* fmv_s */
7627    0xf0000053, /* fmv_s_x */
7628    0xf0000053, /* fmv_w_x */
7629    0xe2000053, /* fmv_x_d */
7630    0xe4000053, /* fmv_x_h */
7631    0xe0000053, /* fmv_x_s */
7632    0xe0000053, /* fmv_x_w */
7633    0xe2100053, /* fmvh_x_d */
7634    0xe6100053, /* fmvh_x_q */
7635    0xb2000053, /* fmvp_d_x */
7636    0xb6000053, /* fmvp_q_x */
7637    0x22001053, /* fneg_d */
7638    0x24001053, /* fneg_h */
7639    0x26001053, /* fneg_q */
7640    0x20001053, /* fneg_s */
7641    0x200004f,  /* fnmadd_d */
7642    0x400004f,  /* fnmadd_h */
7643    0x600004f,  /* fnmadd_q */
7644    0x4f,       /* fnmadd_s */
7645    0x200004b,  /* fnmsub_d */
7646    0x400004b,  /* fnmsub_h */
7647    0x600004b,  /* fnmsub_q */
7648    0x4b,       /* fnmsub_s */
7649    0x302073,   /* frcsr */
7650    0x102073,   /* frflags */
7651    0x42400053, /* fround_d */
7652    0x44400053, /* fround_h */
7653    0x46400053, /* fround_q */
7654    0x40400053, /* fround_s */
7655    0x42500053, /* froundnx_d */
7656    0x44500053, /* froundnx_h */
7657    0x46500053, /* froundnx_q */
7658    0x40500053, /* froundnx_s */
7659    0x202073,   /* frrm */
7660    0x301073,   /* fscsr */
7661    0x3027,     /* fsd */
7662    0x101073,   /* fsflags */
7663    0x105073,   /* fsflagsi */
7664    0x22000053, /* fsgnj_d */
7665    0x24000053, /* fsgnj_h */
7666    0x26000053, /* fsgnj_q */
7667    0x20000053, /* fsgnj_s */
7668    0x22001053, /* fsgnjn_d */
7669    0x24001053, /* fsgnjn_h */
7670    0x26001053, /* fsgnjn_q */
7671    0x20001053, /* fsgnjn_s */
7672    0x22002053, /* fsgnjx_d */
7673    0x24002053, /* fsgnjx_h */
7674    0x26002053, /* fsgnjx_q */
7675    0x20002053, /* fsgnjx_s */
7676    0x1027,     /* fsh */
7677    0x4027,     /* fsq */
7678    0x5a000053, /* fsqrt_d */
7679    0x5c000053, /* fsqrt_h */
7680    0x5e000053, /* fsqrt_q */
7681    0x58000053, /* fsqrt_s */
7682    0x201073,   /* fsrm */
7683    0x205073,   /* fsrmi */
7684    0xa000053,  /* fsub_d */
7685    0xc000053,  /* fsub_h */
7686    0xe000053,  /* fsub_q */
7687    0x8000053,  /* fsub_s */
7688    0x2027,     /* fsw */
7689    0x62000073, /* hfence_gvma */
7690    0x22000073, /* hfence_vvma */
7691    0x66000073, /* hinval_gvma */
7692    0x26000073, /* hinval_vvma */
7693    0x60004073, /* hlv_b */
7694    0x60104073, /* hlv_bu */
7695    0x6c004073, /* hlv_d */
7696    0x64004073, /* hlv_h */
7697    0x64104073, /* hlv_hu */
7698    0x68004073, /* hlv_w */
7699    0x68104073, /* hlv_wu */
7700    0x64304073, /* hlvx_hu */
7701    0x68304073, /* hlvx_wu */
7702    0x62004073, /* hsv_b */
7703    0x6e004073, /* hsv_d */
7704    0x66004073, /* hsv_h */
7705    0x6a004073, /* hsv_w */
7706    0x6f,       /* j */
7707    0x6f,       /* jal */
7708    0xef,       /* jal_pseudo */
7709    0x67,       /* jalr */
7710    0xe7,       /* jalr_pseudo */
7711    0x67,       /* jr */
7712    0x3,        /* lb */
7713    0x4003,     /* lbu */
7714    0x3003,     /* ld */
7715    0x1003,     /* lh */
7716    0x5003,     /* lhu */
7717    0x17,       /* lpad */
7718    0x1000302f, /* lr_d */
7719    0x1000202f, /* lr_w */
7720    0x37,       /* lui */
7721    0x2003,     /* lw */
7722    0x6003,     /* lwu */
7723    0xa006033,  /* max */
7724    0xa007033,  /* maxu */
7725    0xa004033,  /* min */
7726    0xa005033,  /* minu */
7727    0x70200073, /* mnret */
7728    0x81c04073, /* mop_r_0 */
7729    0x81d04073, /* mop_r_1 */
7730    0x89e04073, /* mop_r_10 */
7731    0x89f04073, /* mop_r_11 */
7732    0x8dc04073, /* mop_r_12 */
7733    0x8dd04073, /* mop_r_13 */
7734    0x8de04073, /* mop_r_14 */
7735    0x8df04073, /* mop_r_15 */
7736    0xc1c04073, /* mop_r_16 */
7737    0xc1d04073, /* mop_r_17 */
7738    0xc1e04073, /* mop_r_18 */
7739    0xc1f04073, /* mop_r_19 */
7740    0x81e04073, /* mop_r_2 */
7741    0xc5c04073, /* mop_r_20 */
7742    0xc5d04073, /* mop_r_21 */
7743    0xc5e04073, /* mop_r_22 */
7744    0xc5f04073, /* mop_r_23 */
7745    0xc9c04073, /* mop_r_24 */
7746    0xc9d04073, /* mop_r_25 */
7747    0xc9e04073, /* mop_r_26 */
7748    0xc9f04073, /* mop_r_27 */
7749    0xcdc04073, /* mop_r_28 */
7750    0xcdd04073, /* mop_r_29 */
7751    0x81f04073, /* mop_r_3 */
7752    0xcde04073, /* mop_r_30 */
7753    0xcdf04073, /* mop_r_31 */
7754    0x85c04073, /* mop_r_4 */
7755    0x85d04073, /* mop_r_5 */
7756    0x85e04073, /* mop_r_6 */
7757    0x85f04073, /* mop_r_7 */
7758    0x89c04073, /* mop_r_8 */
7759    0x89d04073, /* mop_r_9 */
7760    0x81c04073, /* mop_r_N */
7761    0x82004073, /* mop_rr_0 */
7762    0x86004073, /* mop_rr_1 */
7763    0x8a004073, /* mop_rr_2 */
7764    0x8e004073, /* mop_rr_3 */
7765    0xc2004073, /* mop_rr_4 */
7766    0xc6004073, /* mop_rr_5 */
7767    0xca004073, /* mop_rr_6 */
7768    0xce004073, /* mop_rr_7 */
7769    0x82004073, /* mop_rr_N */
7770    0x30200073, /* mret */
7771    0x2000033,  /* mul */
7772    0x2001033,  /* mulh */
7773    0x2002033,  /* mulhsu */
7774    0x2003033,  /* mulhu */
7775    0x200003b,  /* mulw */
7776    0x13,       /* mv */
7777    0x40000033, /* neg */
7778    0x13,       /* nop */
7779    0x500033,   /* ntl_all */
7780    0x200033,   /* ntl_p1 */
7781    0x300033,   /* ntl_pall */
7782    0x400033,   /* ntl_s1 */
7783    0x6033,     /* or */
7784    0x28705013, /* orc_b */
7785    0x6013,     /* ori */
7786    0x40006033, /* orn */
7787    0x8004033,  /* pack */
7788    0x8007033,  /* packh */
7789    0x800403b,  /* packw */
7790    0x100000f,  /* pause */
7791    0x6013,     /* prefetch_i */
7792    0x106013,   /* prefetch_r */
7793    0x306013,   /* prefetch_w */
7794    0xc0002073, /* rdcycle */
7795    0xc8002073, /* rdcycleh */
7796    0xc0202073, /* rdinstret */
7797    0xc8202073, /* rdinstreth */
7798    0xc0102073, /* rdtime */
7799    0xc8102073, /* rdtimeh */
7800    0x2006033,  /* rem */
7801    0x2007033,  /* remu */
7802    0x200703b,  /* remuw */
7803    0x200603b,  /* remw */
7804    0x8067,     /* ret */
7805    0x6b805013, /* rev8 */
7806    0x69805013, /* rev8_rv32 */
7807    0x60001033, /* rol */
7808    0x6000103b, /* rolw */
7809    0x60005033, /* ror */
7810    0x60005013, /* rori */
7811    0x60005013, /* rori_rv32 */
7812    0x6000501b, /* roriw */
7813    0x6000503b, /* rorw */
7814    0x23,       /* sb */
7815    0x100073,   /* sbreak */
7816    0x1800302f, /* sc_d */
7817    0x1800202f, /* sc_w */
7818    0x73,       /* scall */
7819    0x10400073, /* sctrclr */
7820    0x3023,     /* sd */
7821    0x103013,   /* seqz */
7822    0x60401013, /* sext_b */
7823    0x60501013, /* sext_h */
7824    0x1b,       /* sext_w */
7825    0x18100073, /* sfence_inval_ir */
7826    0x12000073, /* sfence_vma */
7827    0x18000073, /* sfence_w_inval */
7828    0x2033,     /* sgtz */
7829    0x1023,     /* sh */
7830    0x20002033, /* sh1add */
7831    0x2000203b, /* sh1add_uw */
7832    0x20004033, /* sh2add */
7833    0x2000403b, /* sh2add_uw */
7834    0x20006033, /* sh3add */
7835    0x2000603b, /* sh3add_uw */
7836    0x10201013, /* sha256sig0 */
7837    0x10301013, /* sha256sig1 */
7838    0x10001013, /* sha256sum0 */
7839    0x10101013, /* sha256sum1 */
7840    0x10601013, /* sha512sig0 */
7841    0x5c000033, /* sha512sig0h */
7842    0x54000033, /* sha512sig0l */
7843    0x10701013, /* sha512sig1 */
7844    0x5e000033, /* sha512sig1h */
7845    0x56000033, /* sha512sig1l */
7846    0x10401013, /* sha512sum0 */
7847    0x50000033, /* sha512sum0r */
7848    0x10501013, /* sha512sum1 */
7849    0x52000033, /* sha512sum1r */
7850    0x16000073, /* sinval_vma */
7851    0x1033,     /* sll */
7852    0x1013,     /* slli */
7853    0x1013,     /* slli_rv32 */
7854    0x800101b,  /* slli_uw */
7855    0x101b,     /* slliw */
7856    0x103b,     /* sllw */
7857    0x2033,     /* slt */
7858    0x2013,     /* slti */
7859    0x3013,     /* sltiu */
7860    0x3033,     /* sltu */
7861    0x2033,     /* sltz */
7862    0x10801013, /* sm3p0 */
7863    0x10901013, /* sm3p1 */
7864    0x30000033, /* sm4ed */
7865    0x34000033, /* sm4ks */
7866    0x3033,     /* snez */
7867    0x40005033, /* sra */
7868    0x40005013, /* srai */
7869    0x40005013, /* srai_rv32 */
7870    0x4000501b, /* sraiw */
7871    0x4000503b, /* sraw */
7872    0x10200073, /* sret */
7873    0x5033,     /* srl */
7874    0x5013,     /* srli */
7875    0x5013,     /* srli_rv32 */
7876    0x501b,     /* srliw */
7877    0x503b,     /* srlw */
7878    0x4800302f, /* ssamoswap_d */
7879    0x4800202f, /* ssamoswap_w */
7880    0xcdc0c073, /* sspopchk_x1 */
7881    0xcdc2c073, /* sspopchk_x5 */
7882    0xce104073, /* sspush_x1 */
7883    0xce504073, /* sspush_x5 */
7884    0xcdc04073, /* ssrdp */
7885    0x40000033, /* sub */
7886    0x4000003b, /* subw */
7887    0x2023,     /* sw */
7888    0x8f05013,  /* unzip */
7889    0x24002057, /* vaadd_vv */
7890    0x24006057, /* vaadd_vx */
7891    0x20002057, /* vaaddu_vv */
7892    0x20006057, /* vaaddu_vx */
7893    0x40003057, /* vadc_vim */
7894    0x40000057, /* vadc_vvm */
7895    0x40004057, /* vadc_vxm */
7896    0x3057,     /* vadd_vi */
7897    0x57,       /* vadd_vv */
7898    0x4057,     /* vadd_vx */
7899    0xa600a077, /* vaesdf_vs */
7900    0xa200a077, /* vaesdf_vv */
7901    0xa6002077, /* vaesdm_vs */
7902    0xa2002077, /* vaesdm_vv */
7903    0xa601a077, /* vaesef_vs */
7904    0xa201a077, /* vaesef_vv */
7905    0xa6012077, /* vaesem_vs */
7906    0xa2012077, /* vaesem_vv */
7907    0x8a002077, /* vaeskf1_vi */
7908    0xaa002077, /* vaeskf2_vi */
7909    0xa603a077, /* vaesz_vs */
7910    0x24003057, /* vand_vi */
7911    0x24000057, /* vand_vv */
7912    0x24004057, /* vand_vx */
7913    0x4000057,  /* vandn_vv */
7914    0x4004057,  /* vandn_vx */
7915    0x2c002057, /* vasub_vv */
7916    0x2c006057, /* vasub_vx */
7917    0x28002057, /* vasubu_vv */
7918    0x28006057, /* vasubu_vx */
7919    0x48042057, /* vbrev8_v */
7920    0x48052057, /* vbrev_v */
7921    0x30002057, /* vclmul_vv */
7922    0x30006057, /* vclmul_vx */
7923    0x34002057, /* vclmulh_vv */
7924    0x34006057, /* vclmulh_vx */
7925    0x48062057, /* vclz_v */
7926    0x5e002057, /* vcompress_vm */
7927    0x40082057, /* vcpop_m */
7928    0x48072057, /* vcpop_v */
7929    0x4806a057, /* vctz_v */
7930    0x84002057, /* vdiv_vv */
7931    0x84006057, /* vdiv_vx */
7932    0x80002057, /* vdivu_vv */
7933    0x80006057, /* vdivu_vx */
7934    0x5057,     /* vfadd_vf */
7935    0x1057,     /* vfadd_vv */
7936    0x4c081057, /* vfclass_v */
7937    0x48019057, /* vfcvt_f_x_v */
7938    0x48011057, /* vfcvt_f_xu_v */
7939    0x48039057, /* vfcvt_rtz_x_f_v */
7940    0x48031057, /* vfcvt_rtz_xu_f_v */
7941    0x48009057, /* vfcvt_x_f_v */
7942    0x48001057, /* vfcvt_xu_f_v */
7943    0x80005057, /* vfdiv_vf */
7944    0x80001057, /* vfdiv_vv */
7945    0x4008a057, /* vfirst_m */
7946    0xb0005057, /* vfmacc_vf */
7947    0xb0001057, /* vfmacc_vv */
7948    0xa0005057, /* vfmadd_vf */
7949    0xa0001057, /* vfmadd_vv */
7950    0x18005057, /* vfmax_vf */
7951    0x18001057, /* vfmax_vv */
7952    0x5c005057, /* vfmerge_vfm */
7953    0x10005057, /* vfmin_vf */
7954    0x10001057, /* vfmin_vv */
7955    0xb8005057, /* vfmsac_vf */
7956    0xb8001057, /* vfmsac_vv */
7957    0xa8005057, /* vfmsub_vf */
7958    0xa8001057, /* vfmsub_vv */
7959    0x90005057, /* vfmul_vf */
7960    0x90001057, /* vfmul_vv */
7961    0x42001057, /* vfmv_f_s */
7962    0x42005057, /* vfmv_s_f */
7963    0x5e005057, /* vfmv_v_f */
7964    0x480a1057, /* vfncvt_f_f_w */
7965    0x48099057, /* vfncvt_f_x_w */
7966    0x48091057, /* vfncvt_f_xu_w */
7967    0x480a9057, /* vfncvt_rod_f_f_w */
7968    0x480b9057, /* vfncvt_rtz_x_f_w */
7969    0x480b1057, /* vfncvt_rtz_xu_f_w */
7970    0x48089057, /* vfncvt_x_f_w */
7971    0x48081057, /* vfncvt_xu_f_w */
7972    0x480e9057, /* vfncvtbf16_f_f_w */
7973    0xb4005057, /* vfnmacc_vf */
7974    0xb4001057, /* vfnmacc_vv */
7975    0xa4005057, /* vfnmadd_vf */
7976    0xa4001057, /* vfnmadd_vv */
7977    0xbc005057, /* vfnmsac_vf */
7978    0xbc001057, /* vfnmsac_vv */
7979    0xac005057, /* vfnmsub_vf */
7980    0xac001057, /* vfnmsub_vv */
7981    0x84005057, /* vfrdiv_vf */
7982    0x4c029057, /* vfrec7_v */
7983    0x1c001057, /* vfredmax_vs */
7984    0x14001057, /* vfredmin_vs */
7985    0xc001057,  /* vfredosum_vs */
7986    0x4001057,  /* vfredsum_vs */
7987    0x4001057,  /* vfredusum_vs */
7988    0x4c021057, /* vfrsqrt7_v */
7989    0x9c005057, /* vfrsub_vf */
7990    0x20005057, /* vfsgnj_vf */
7991    0x20001057, /* vfsgnj_vv */
7992    0x24005057, /* vfsgnjn_vf */
7993    0x24001057, /* vfsgnjn_vv */
7994    0x28005057, /* vfsgnjx_vf */
7995    0x28001057, /* vfsgnjx_vv */
7996    0x3c005057, /* vfslide1down_vf */
7997    0x38005057, /* vfslide1up_vf */
7998    0x4c001057, /* vfsqrt_v */
7999    0x8005057,  /* vfsub_vf */
8000    0x8001057,  /* vfsub_vv */
8001    0xc0005057, /* vfwadd_vf */
8002    0xc0001057, /* vfwadd_vv */
8003    0xd0005057, /* vfwadd_wf */
8004    0xd0001057, /* vfwadd_wv */
8005    0x48061057, /* vfwcvt_f_f_v */
8006    0x48059057, /* vfwcvt_f_x_v */
8007    0x48051057, /* vfwcvt_f_xu_v */
8008    0x48079057, /* vfwcvt_rtz_x_f_v */
8009    0x48071057, /* vfwcvt_rtz_xu_f_v */
8010    0x48049057, /* vfwcvt_x_f_v */
8011    0x48041057, /* vfwcvt_xu_f_v */
8012    0x48069057, /* vfwcvtbf16_f_f_v */
8013    0xf0005057, /* vfwmacc_vf */
8014    0xf0001057, /* vfwmacc_vv */
8015    0xec005057, /* vfwmaccbf16_vf */
8016    0xec001057, /* vfwmaccbf16_vv */
8017    0xf8005057, /* vfwmsac_vf */
8018    0xf8001057, /* vfwmsac_vv */
8019    0xe0005057, /* vfwmul_vf */
8020    0xe0001057, /* vfwmul_vv */
8021    0xf4005057, /* vfwnmacc_vf */
8022    0xf4001057, /* vfwnmacc_vv */
8023    0xfc005057, /* vfwnmsac_vf */
8024    0xfc001057, /* vfwnmsac_vv */
8025    0xcc001057, /* vfwredosum_vs */
8026    0xc4001057, /* vfwredsum_vs */
8027    0xc4001057, /* vfwredusum_vs */
8028    0xc8005057, /* vfwsub_vf */
8029    0xc8001057, /* vfwsub_vv */
8030    0xd8005057, /* vfwsub_wf */
8031    0xd8001057, /* vfwsub_wv */
8032    0xb2002077, /* vghsh_vv */
8033    0xa208a077, /* vgmul_vv */
8034    0x5008a057, /* vid_v */
8035    0x50082057, /* viota_m */
8036    0x2800007,  /* vl1r_v */
8037    0x2805007,  /* vl1re16_v */
8038    0x2806007,  /* vl1re32_v */
8039    0x2807007,  /* vl1re64_v */
8040    0x2800007,  /* vl1re8_v */
8041    0x22800007, /* vl2r_v */
8042    0x22805007, /* vl2re16_v */
8043    0x22806007, /* vl2re32_v */
8044    0x22807007, /* vl2re64_v */
8045    0x22800007, /* vl2re8_v */
8046    0x62800007, /* vl4r_v */
8047    0x62805007, /* vl4re16_v */
8048    0x62806007, /* vl4re32_v */
8049    0x62807007, /* vl4re64_v */
8050    0x62800007, /* vl4re8_v */
8051    0xe2800007, /* vl8r_v */
8052    0xe2805007, /* vl8re16_v */
8053    0xe2806007, /* vl8re32_v */
8054    0xe2807007, /* vl8re64_v */
8055    0xe2800007, /* vl8re8_v */
8056    0x5007,     /* vle16_v */
8057    0x1005007,  /* vle16ff_v */
8058    0x2b00007,  /* vle1_v */
8059    0x6007,     /* vle32_v */
8060    0x1006007,  /* vle32ff_v */
8061    0x7007,     /* vle64_v */
8062    0x1007007,  /* vle64ff_v */
8063    0x7,        /* vle8_v */
8064    0x1000007,  /* vle8ff_v */
8065    0x2b00007,  /* vlm_v */
8066    0xc005007,  /* vloxei16_v */
8067    0xc006007,  /* vloxei32_v */
8068    0xc007007,  /* vloxei64_v */
8069    0xc000007,  /* vloxei8_v */
8070    0x8005007,  /* vlse16_v */
8071    0x8006007,  /* vlse32_v */
8072    0x8007007,  /* vlse64_v */
8073    0x8000007,  /* vlse8_v */
8074    0x4005007,  /* vluxei16_v */
8075    0x4006007,  /* vluxei32_v */
8076    0x4007007,  /* vluxei64_v */
8077    0x4000007,  /* vluxei8_v */
8078    0xb4002057, /* vmacc_vv */
8079    0xb4006057, /* vmacc_vx */
8080    0x46003057, /* vmadc_vi */
8081    0x44003057, /* vmadc_vim */
8082    0x46000057, /* vmadc_vv */
8083    0x44000057, /* vmadc_vvm */
8084    0x46004057, /* vmadc_vx */
8085    0x44004057, /* vmadc_vxm */
8086    0xa4002057, /* vmadd_vv */
8087    0xa4006057, /* vmadd_vx */
8088    0x66002057, /* vmand_mm */
8089    0x62002057, /* vmandn_mm */
8090    0x60002057, /* vmandnot_mm */
8091    0x1c000057, /* vmax_vv */
8092    0x1c004057, /* vmax_vx */
8093    0x18000057, /* vmaxu_vv */
8094    0x18004057, /* vmaxu_vx */
8095    0x5c003057, /* vmerge_vim */
8096    0x5c000057, /* vmerge_vvm */
8097    0x5c004057, /* vmerge_vxm */
8098    0x60005057, /* vmfeq_vf */
8099    0x60001057, /* vmfeq_vv */
8100    0x7c005057, /* vmfge_vf */
8101    0x74005057, /* vmfgt_vf */
8102    0x64005057, /* vmfle_vf */
8103    0x64001057, /* vmfle_vv */
8104    0x6c005057, /* vmflt_vf */
8105    0x6c001057, /* vmflt_vv */
8106    0x70005057, /* vmfne_vf */
8107    0x70001057, /* vmfne_vv */
8108    0x14000057, /* vmin_vv */
8109    0x14004057, /* vmin_vx */
8110    0x10000057, /* vminu_vv */
8111    0x10004057, /* vminu_vx */
8112    0x76002057, /* vmnand_mm */
8113    0x7a002057, /* vmnor_mm */
8114    0x6a002057, /* vmor_mm */
8115    0x72002057, /* vmorn_mm */
8116    0x70002057, /* vmornot_mm */
8117    0x4e000057, /* vmsbc_vv */
8118    0x4c000057, /* vmsbc_vvm */
8119    0x4e004057, /* vmsbc_vx */
8120    0x4c004057, /* vmsbc_vxm */
8121    0x5000a057, /* vmsbf_m */
8122    0x60003057, /* vmseq_vi */
8123    0x60000057, /* vmseq_vv */
8124    0x60004057, /* vmseq_vx */
8125    0x7c003057, /* vmsgt_vi */
8126    0x7c004057, /* vmsgt_vx */
8127    0x78003057, /* vmsgtu_vi */
8128    0x78004057, /* vmsgtu_vx */
8129    0x5001a057, /* vmsif_m */
8130    0x74003057, /* vmsle_vi */
8131    0x74000057, /* vmsle_vv */
8132    0x74004057, /* vmsle_vx */
8133    0x70003057, /* vmsleu_vi */
8134    0x70000057, /* vmsleu_vv */
8135    0x70004057, /* vmsleu_vx */
8136    0x6c000057, /* vmslt_vv */
8137    0x6c004057, /* vmslt_vx */
8138    0x68000057, /* vmsltu_vv */
8139    0x68004057, /* vmsltu_vx */
8140    0x64003057, /* vmsne_vi */
8141    0x64000057, /* vmsne_vv */
8142    0x64004057, /* vmsne_vx */
8143    0x50012057, /* vmsof_m */
8144    0x94002057, /* vmul_vv */
8145    0x94006057, /* vmul_vx */
8146    0x9c002057, /* vmulh_vv */
8147    0x9c006057, /* vmulh_vx */
8148    0x98002057, /* vmulhsu_vv */
8149    0x98006057, /* vmulhsu_vx */
8150    0x90002057, /* vmulhu_vv */
8151    0x90006057, /* vmulhu_vx */
8152    0x9e003057, /* vmv1r_v */
8153    0x9e00b057, /* vmv2r_v */
8154    0x9e01b057, /* vmv4r_v */
8155    0x9e03b057, /* vmv8r_v */
8156    0x42006057, /* vmv_s_x */
8157    0x5e003057, /* vmv_v_i */
8158    0x5e000057, /* vmv_v_v */
8159    0x5e004057, /* vmv_v_x */
8160    0x42002057, /* vmv_x_s */
8161    0x7e002057, /* vmxnor_mm */
8162    0x6e002057, /* vmxor_mm */
8163    0xbc003057, /* vnclip_wi */
8164    0xbc000057, /* vnclip_wv */
8165    0xbc004057, /* vnclip_wx */
8166    0xb8003057, /* vnclipu_wi */
8167    0xb8000057, /* vnclipu_wv */
8168    0xb8004057, /* vnclipu_wx */
8169    0xbc002057, /* vnmsac_vv */
8170    0xbc006057, /* vnmsac_vx */
8171    0xac002057, /* vnmsub_vv */
8172    0xac006057, /* vnmsub_vx */
8173    0xb4003057, /* vnsra_wi */
8174    0xb4000057, /* vnsra_wv */
8175    0xb4004057, /* vnsra_wx */
8176    0xb0003057, /* vnsrl_wi */
8177    0xb0000057, /* vnsrl_wv */
8178    0xb0004057, /* vnsrl_wx */
8179    0x28003057, /* vor_vi */
8180    0x28000057, /* vor_vv */
8181    0x28004057, /* vor_vx */
8182    0x40082057, /* vpopc_m */
8183    0x4002057,  /* vredand_vs */
8184    0x1c002057, /* vredmax_vs */
8185    0x18002057, /* vredmaxu_vs */
8186    0x14002057, /* vredmin_vs */
8187    0x10002057, /* vredminu_vs */
8188    0x8002057,  /* vredor_vs */
8189    0x2057,     /* vredsum_vs */
8190    0xc002057,  /* vredxor_vs */
8191    0x8c002057, /* vrem_vv */
8192    0x8c006057, /* vrem_vx */
8193    0x88002057, /* vremu_vv */
8194    0x88006057, /* vremu_vx */
8195    0x4804a057, /* vrev8_v */
8196    0x30003057, /* vrgather_vi */
8197    0x30000057, /* vrgather_vv */
8198    0x30004057, /* vrgather_vx */
8199    0x38000057, /* vrgatherei16_vv */
8200    0x54000057, /* vrol_vv */
8201    0x54004057, /* vrol_vx */
8202    0x50003057, /* vror_vi */
8203    0x50000057, /* vror_vv */
8204    0x50004057, /* vror_vx */
8205    0xc003057,  /* vrsub_vi */
8206    0xc004057,  /* vrsub_vx */
8207    0x2800027,  /* vs1r_v */
8208    0x22800027, /* vs2r_v */
8209    0x62800027, /* vs4r_v */
8210    0xe2800027, /* vs8r_v */
8211    0x84003057, /* vsadd_vi */
8212    0x84000057, /* vsadd_vv */
8213    0x84004057, /* vsadd_vx */
8214    0x80003057, /* vsaddu_vi */
8215    0x80000057, /* vsaddu_vv */
8216    0x80004057, /* vsaddu_vx */
8217    0x48000057, /* vsbc_vvm */
8218    0x48004057, /* vsbc_vxm */
8219    0x5027,     /* vse16_v */
8220    0x2b00027,  /* vse1_v */
8221    0x6027,     /* vse32_v */
8222    0x7027,     /* vse64_v */
8223    0x27,       /* vse8_v */
8224    0xc0007057, /* vsetivli */
8225    0x80007057, /* vsetvl */
8226    0x7057,     /* vsetvli */
8227    0x4803a057, /* vsext_vf2 */
8228    0x4802a057, /* vsext_vf4 */
8229    0x4801a057, /* vsext_vf8 */
8230    0xba002077, /* vsha2ch_vv */
8231    0xbe002077, /* vsha2cl_vv */
8232    0xb6002077, /* vsha2ms_vv */
8233    0x3c006057, /* vslide1down_vx */
8234    0x38006057, /* vslide1up_vx */
8235    0x3c003057, /* vslidedown_vi */
8236    0x3c004057, /* vslidedown_vx */
8237    0x38003057, /* vslideup_vi */
8238    0x38004057, /* vslideup_vx */
8239    0x94003057, /* vsll_vi */
8240    0x94000057, /* vsll_vv */
8241    0x94004057, /* vsll_vx */
8242    0xae002077, /* vsm3c_vi */
8243    0x82002077, /* vsm3me_vv */
8244    0x86002077, /* vsm4k_vi */
8245    0xa6082077, /* vsm4r_vs */
8246    0xa2082077, /* vsm4r_vv */
8247    0x2b00027,  /* vsm_v */
8248    0x9c000057, /* vsmul_vv */
8249    0x9c004057, /* vsmul_vx */
8250    0xc005027,  /* vsoxei16_v */
8251    0xc006027,  /* vsoxei32_v */
8252    0xc007027,  /* vsoxei64_v */
8253    0xc000027,  /* vsoxei8_v */
8254    0xa4003057, /* vsra_vi */
8255    0xa4000057, /* vsra_vv */
8256    0xa4004057, /* vsra_vx */
8257    0xa0003057, /* vsrl_vi */
8258    0xa0000057, /* vsrl_vv */
8259    0xa0004057, /* vsrl_vx */
8260    0x8005027,  /* vsse16_v */
8261    0x8006027,  /* vsse32_v */
8262    0x8007027,  /* vsse64_v */
8263    0x8000027,  /* vsse8_v */
8264    0xac003057, /* vssra_vi */
8265    0xac000057, /* vssra_vv */
8266    0xac004057, /* vssra_vx */
8267    0xa8003057, /* vssrl_vi */
8268    0xa8000057, /* vssrl_vv */
8269    0xa8004057, /* vssrl_vx */
8270    0x8c000057, /* vssub_vv */
8271    0x8c004057, /* vssub_vx */
8272    0x88000057, /* vssubu_vv */
8273    0x88004057, /* vssubu_vx */
8274    0x8000057,  /* vsub_vv */
8275    0x8004057,  /* vsub_vx */
8276    0x4005027,  /* vsuxei16_v */
8277    0x4006027,  /* vsuxei32_v */
8278    0x4007027,  /* vsuxei64_v */
8279    0x4000027,  /* vsuxei8_v */
8280    0xc4002057, /* vwadd_vv */
8281    0xc4006057, /* vwadd_vx */
8282    0xd4002057, /* vwadd_wv */
8283    0xd4006057, /* vwadd_wx */
8284    0xc0002057, /* vwaddu_vv */
8285    0xc0006057, /* vwaddu_vx */
8286    0xd0002057, /* vwaddu_wv */
8287    0xd0006057, /* vwaddu_wx */
8288    0xf4002057, /* vwmacc_vv */
8289    0xf4006057, /* vwmacc_vx */
8290    0xfc002057, /* vwmaccsu_vv */
8291    0xfc006057, /* vwmaccsu_vx */
8292    0xf0002057, /* vwmaccu_vv */
8293    0xf0006057, /* vwmaccu_vx */
8294    0xf8006057, /* vwmaccus_vx */
8295    0xec002057, /* vwmul_vv */
8296    0xec006057, /* vwmul_vx */
8297    0xe8002057, /* vwmulsu_vv */
8298    0xe8006057, /* vwmulsu_vx */
8299    0xe0002057, /* vwmulu_vv */
8300    0xe0006057, /* vwmulu_vx */
8301    0xc4000057, /* vwredsum_vs */
8302    0xc0000057, /* vwredsumu_vs */
8303    0xd4003057, /* vwsll_vi */
8304    0xd4000057, /* vwsll_vv */
8305    0xd4004057, /* vwsll_vx */
8306    0xcc002057, /* vwsub_vv */
8307    0xcc006057, /* vwsub_vx */
8308    0xdc002057, /* vwsub_wv */
8309    0xdc006057, /* vwsub_wx */
8310    0xc8002057, /* vwsubu_vv */
8311    0xc8006057, /* vwsubu_vx */
8312    0xd8002057, /* vwsubu_wv */
8313    0xd8006057, /* vwsubu_wx */
8314    0x2c003057, /* vxor_vi */
8315    0x2c000057, /* vxor_vv */
8316    0x2c004057, /* vxor_vx */
8317    0x48032057, /* vzext_vf2 */
8318    0x48022057, /* vzext_vf4 */
8319    0x48012057, /* vzext_vf8 */
8320    0x10500073, /* wfi */
8321    0xd00073,   /* wrs_nto */
8322    0x1d00073,  /* wrs_sto */
8323    0x40004033, /* xnor */
8324    0x4033,     /* xor */
8325    0x4013,     /* xori */
8326    0x28002033, /* xperm4 */
8327    0x28004033, /* xperm8 */
8328    0xff07013,  /* zext_b */
8329    0x800403b,  /* zext_h */
8330    0x8004033,  /* zext_h_rv32 */
8331    0x800003b,  /* zext_w */
8332    0x8f01013,  /* zip */
8333];
8334pub static OPCODE_MASK: [u32; 1039] = [
8335    0xfe00707f, /* add */
8336    0xfe00707f, /* add_uw */
8337    0x707f,     /* addi */
8338    0x707f,     /* addiw */
8339    0xfe00707f, /* addw */
8340    0x3e00707f, /* aes32dsi */
8341    0x3e00707f, /* aes32dsmi */
8342    0x3e00707f, /* aes32esi */
8343    0x3e00707f, /* aes32esmi */
8344    0xfe00707f, /* aes64ds */
8345    0xfe00707f, /* aes64dsm */
8346    0xfe00707f, /* aes64es */
8347    0xfe00707f, /* aes64esm */
8348    0xfff0707f, /* aes64im */
8349    0xff00707f, /* aes64ks1i */
8350    0xfe00707f, /* aes64ks2 */
8351    0xf800707f, /* amoadd_b */
8352    0xf800707f, /* amoadd_d */
8353    0xf800707f, /* amoadd_h */
8354    0xf800707f, /* amoadd_w */
8355    0xf800707f, /* amoand_b */
8356    0xf800707f, /* amoand_d */
8357    0xf800707f, /* amoand_h */
8358    0xf800707f, /* amoand_w */
8359    0xf800707f, /* amocas_b */
8360    0xf800707f, /* amocas_d */
8361    0xf800707f, /* amocas_h */
8362    0xf800707f, /* amocas_q */
8363    0xf800707f, /* amocas_w */
8364    0xf800707f, /* amomax_b */
8365    0xf800707f, /* amomax_d */
8366    0xf800707f, /* amomax_h */
8367    0xf800707f, /* amomax_w */
8368    0xf800707f, /* amomaxu_b */
8369    0xf800707f, /* amomaxu_d */
8370    0xf800707f, /* amomaxu_h */
8371    0xf800707f, /* amomaxu_w */
8372    0xf800707f, /* amomin_b */
8373    0xf800707f, /* amomin_d */
8374    0xf800707f, /* amomin_h */
8375    0xf800707f, /* amomin_w */
8376    0xf800707f, /* amominu_b */
8377    0xf800707f, /* amominu_d */
8378    0xf800707f, /* amominu_h */
8379    0xf800707f, /* amominu_w */
8380    0xf800707f, /* amoor_b */
8381    0xf800707f, /* amoor_d */
8382    0xf800707f, /* amoor_h */
8383    0xf800707f, /* amoor_w */
8384    0xf800707f, /* amoswap_b */
8385    0xf800707f, /* amoswap_d */
8386    0xf800707f, /* amoswap_h */
8387    0xf800707f, /* amoswap_w */
8388    0xf800707f, /* amoxor_b */
8389    0xf800707f, /* amoxor_d */
8390    0xf800707f, /* amoxor_h */
8391    0xf800707f, /* amoxor_w */
8392    0xfe00707f, /* and */
8393    0x707f,     /* andi */
8394    0xfe00707f, /* andn */
8395    0x7f,       /* auipc */
8396    0xfe00707f, /* bclr */
8397    0xfc00707f, /* bclri */
8398    0xfe00707f, /* bclri_rv32 */
8399    0x707f,     /* beq */
8400    0x1f0707f,  /* beqz */
8401    0xfe00707f, /* bext */
8402    0xfc00707f, /* bexti */
8403    0xfe00707f, /* bexti_rv32 */
8404    0x707f,     /* bge */
8405    0x707f,     /* bgeu */
8406    0x1f0707f,  /* bgez */
8407    0x707f,     /* bgt */
8408    0x707f,     /* bgtu */
8409    0xff07f,    /* bgtz */
8410    0xfe00707f, /* binv */
8411    0xfc00707f, /* binvi */
8412    0xfe00707f, /* binvi_rv32 */
8413    0x707f,     /* ble */
8414    0x707f,     /* bleu */
8415    0xff07f,    /* blez */
8416    0x707f,     /* blt */
8417    0x707f,     /* bltu */
8418    0x1f0707f,  /* bltz */
8419    0x707f,     /* bne */
8420    0x1f0707f,  /* bnez */
8421    0xfff0707f, /* brev8 */
8422    0xfe00707f, /* bset */
8423    0xfc00707f, /* bseti */
8424    0xfe00707f, /* bseti_rv32 */
8425    0xf003,     /* c_add */
8426    0xe003,     /* c_addi */
8427    0xef83,     /* c_addi16sp */
8428    0xe003,     /* c_addi4spn */
8429    0xe003,     /* c_addiw */
8430    0xfc63,     /* c_addw */
8431    0xfc63,     /* c_and */
8432    0xec03,     /* c_andi */
8433    0xe003,     /* c_beqz */
8434    0xe003,     /* c_bnez */
8435    0xffff,     /* c_ebreak */
8436    0xe003,     /* c_fld */
8437    0xe003,     /* c_fldsp */
8438    0xe003,     /* c_flw */
8439    0xe003,     /* c_flwsp */
8440    0xe003,     /* c_fsd */
8441    0xe003,     /* c_fsdsp */
8442    0xe003,     /* c_fsw */
8443    0xe003,     /* c_fswsp */
8444    0xe003,     /* c_j */
8445    0xe003,     /* c_jal */
8446    0xf07f,     /* c_jalr */
8447    0xf07f,     /* c_jr */
8448    0xfc03,     /* c_lbu */
8449    0xe003,     /* c_ld */
8450    0xe003,     /* c_ldsp */
8451    0xfc43,     /* c_lh */
8452    0xfc43,     /* c_lhu */
8453    0xe003,     /* c_li */
8454    0xe003,     /* c_lui */
8455    0xe003,     /* c_lw */
8456    0xe003,     /* c_lwsp */
8457    0xffff,     /* c_mop_1 */
8458    0xffff,     /* c_mop_11 */
8459    0xffff,     /* c_mop_13 */
8460    0xffff,     /* c_mop_15 */
8461    0xffff,     /* c_mop_3 */
8462    0xffff,     /* c_mop_5 */
8463    0xffff,     /* c_mop_7 */
8464    0xffff,     /* c_mop_9 */
8465    0xf8ff,     /* c_mop_N */
8466    0xfc63,     /* c_mul */
8467    0xf003,     /* c_mv */
8468    0xef83,     /* c_nop */
8469    0xfc7f,     /* c_not */
8470    0xffff,     /* c_ntl_all */
8471    0xffff,     /* c_ntl_p1 */
8472    0xffff,     /* c_ntl_pall */
8473    0xffff,     /* c_ntl_s1 */
8474    0xfc63,     /* c_or */
8475    0xfc03,     /* c_sb */
8476    0xe003,     /* c_sd */
8477    0xe003,     /* c_sdsp */
8478    0xfc7f,     /* c_sext_b */
8479    0xfc7f,     /* c_sext_h */
8480    0xf07f,     /* c_sext_w */
8481    0xfc43,     /* c_sh */
8482    0xe003,     /* c_slli */
8483    0xf003,     /* c_slli_rv32 */
8484    0xec03,     /* c_srai */
8485    0xfc03,     /* c_srai_rv32 */
8486    0xec03,     /* c_srli */
8487    0xfc03,     /* c_srli_rv32 */
8488    0xffff,     /* c_sspopchk_x5 */
8489    0xffff,     /* c_sspush_x1 */
8490    0xfc63,     /* c_sub */
8491    0xfc63,     /* c_subw */
8492    0xe003,     /* c_sw */
8493    0xe003,     /* c_swsp */
8494    0xfc63,     /* c_xor */
8495    0xfc7f,     /* c_zext_b */
8496    0xfc7f,     /* c_zext_h */
8497    0xfc7f,     /* c_zext_w */
8498    0xfff07fff, /* cbo_clean */
8499    0xfff07fff, /* cbo_flush */
8500    0xfff07fff, /* cbo_inval */
8501    0xfff07fff, /* cbo_zero */
8502    0xfe00707f, /* clmul */
8503    0xfe00707f, /* clmulh */
8504    0xfe00707f, /* clmulr */
8505    0xfff0707f, /* clz */
8506    0xfff0707f, /* clzw */
8507    0xfc03,     /* cm_jalt */
8508    0xfc63,     /* cm_mva01s */
8509    0xfc63,     /* cm_mvsa01 */
8510    0xff03,     /* cm_pop */
8511    0xff03,     /* cm_popret */
8512    0xff03,     /* cm_popretz */
8513    0xff03,     /* cm_push */
8514    0xfff0707f, /* cpop */
8515    0xfff0707f, /* cpopw */
8516    0x7fff,     /* csrc */
8517    0x7fff,     /* csrci */
8518    0xff07f,    /* csrr */
8519    0x707f,     /* csrrc */
8520    0x707f,     /* csrrci */
8521    0x707f,     /* csrrs */
8522    0x707f,     /* csrrsi */
8523    0x707f,     /* csrrw */
8524    0x707f,     /* csrrwi */
8525    0x7fff,     /* csrs */
8526    0x7fff,     /* csrsi */
8527    0x7fff,     /* csrw */
8528    0x7fff,     /* csrwi */
8529    0xfff0707f, /* ctz */
8530    0xfff0707f, /* ctzw */
8531    0xfe00707f, /* czero_eqz */
8532    0xfe00707f, /* czero_nez */
8533    0xfe00707f, /* div */
8534    0xfe00707f, /* divu */
8535    0xfe00707f, /* divuw */
8536    0xfe00707f, /* divw */
8537    0xffffffff, /* dret */
8538    0xffffffff, /* ebreak */
8539    0xffffffff, /* ecall */
8540    0xfe00707f, /* fabs_d */
8541    0xfe00707f, /* fabs_h */
8542    0xfe00707f, /* fabs_q */
8543    0xfe00707f, /* fabs_s */
8544    0xfe00007f, /* fadd_d */
8545    0xfe00007f, /* fadd_h */
8546    0xfe00007f, /* fadd_q */
8547    0xfe00007f, /* fadd_s */
8548    0xfff0707f, /* fclass_d */
8549    0xfff0707f, /* fclass_h */
8550    0xfff0707f, /* fclass_q */
8551    0xfff0707f, /* fclass_s */
8552    0xfff0007f, /* fcvt_bf16_s */
8553    0xfff0007f, /* fcvt_d_h */
8554    0xfff0007f, /* fcvt_d_l */
8555    0xfff0007f, /* fcvt_d_lu */
8556    0xfff0007f, /* fcvt_d_q */
8557    0xfff0007f, /* fcvt_d_s */
8558    0xfff0007f, /* fcvt_d_w */
8559    0xfff0007f, /* fcvt_d_wu */
8560    0xfff0007f, /* fcvt_h_d */
8561    0xfff0007f, /* fcvt_h_l */
8562    0xfff0007f, /* fcvt_h_lu */
8563    0xfff0007f, /* fcvt_h_q */
8564    0xfff0007f, /* fcvt_h_s */
8565    0xfff0007f, /* fcvt_h_w */
8566    0xfff0007f, /* fcvt_h_wu */
8567    0xfff0007f, /* fcvt_l_d */
8568    0xfff0007f, /* fcvt_l_h */
8569    0xfff0007f, /* fcvt_l_q */
8570    0xfff0007f, /* fcvt_l_s */
8571    0xfff0007f, /* fcvt_lu_d */
8572    0xfff0007f, /* fcvt_lu_h */
8573    0xfff0007f, /* fcvt_lu_q */
8574    0xfff0007f, /* fcvt_lu_s */
8575    0xfff0007f, /* fcvt_q_d */
8576    0xfff0007f, /* fcvt_q_h */
8577    0xfff0007f, /* fcvt_q_l */
8578    0xfff0007f, /* fcvt_q_lu */
8579    0xfff0007f, /* fcvt_q_s */
8580    0xfff0007f, /* fcvt_q_w */
8581    0xfff0007f, /* fcvt_q_wu */
8582    0xfff0007f, /* fcvt_s_bf16 */
8583    0xfff0007f, /* fcvt_s_d */
8584    0xfff0007f, /* fcvt_s_h */
8585    0xfff0007f, /* fcvt_s_l */
8586    0xfff0007f, /* fcvt_s_lu */
8587    0xfff0007f, /* fcvt_s_q */
8588    0xfff0007f, /* fcvt_s_w */
8589    0xfff0007f, /* fcvt_s_wu */
8590    0xfff0007f, /* fcvt_w_d */
8591    0xfff0007f, /* fcvt_w_h */
8592    0xfff0007f, /* fcvt_w_q */
8593    0xfff0007f, /* fcvt_w_s */
8594    0xfff0007f, /* fcvt_wu_d */
8595    0xfff0007f, /* fcvt_wu_h */
8596    0xfff0007f, /* fcvt_wu_q */
8597    0xfff0007f, /* fcvt_wu_s */
8598    0xfff0707f, /* fcvtmod_w_d */
8599    0xfe00007f, /* fdiv_d */
8600    0xfe00007f, /* fdiv_h */
8601    0xfe00007f, /* fdiv_q */
8602    0xfe00007f, /* fdiv_s */
8603    0x707f,     /* fence */
8604    0x707f,     /* fence_i */
8605    0xfff0707f, /* fence_tso */
8606    0xfe00707f, /* feq_d */
8607    0xfe00707f, /* feq_h */
8608    0xfe00707f, /* feq_q */
8609    0xfe00707f, /* feq_s */
8610    0x707f,     /* fld */
8611    0xfe00707f, /* fle_d */
8612    0xfe00707f, /* fle_h */
8613    0xfe00707f, /* fle_q */
8614    0xfe00707f, /* fle_s */
8615    0xfe00707f, /* fleq_d */
8616    0xfe00707f, /* fleq_h */
8617    0xfe00707f, /* fleq_q */
8618    0xfe00707f, /* fleq_s */
8619    0x707f,     /* flh */
8620    0xfff0707f, /* fli_d */
8621    0xfff0707f, /* fli_h */
8622    0xfff0707f, /* fli_q */
8623    0xfff0707f, /* fli_s */
8624    0x707f,     /* flq */
8625    0xfe00707f, /* flt_d */
8626    0xfe00707f, /* flt_h */
8627    0xfe00707f, /* flt_q */
8628    0xfe00707f, /* flt_s */
8629    0xfe00707f, /* fltq_d */
8630    0xfe00707f, /* fltq_h */
8631    0xfe00707f, /* fltq_q */
8632    0xfe00707f, /* fltq_s */
8633    0x707f,     /* flw */
8634    0x600007f,  /* fmadd_d */
8635    0x600007f,  /* fmadd_h */
8636    0x600007f,  /* fmadd_q */
8637    0x600007f,  /* fmadd_s */
8638    0xfe00707f, /* fmax_d */
8639    0xfe00707f, /* fmax_h */
8640    0xfe00707f, /* fmax_q */
8641    0xfe00707f, /* fmax_s */
8642    0xfe00707f, /* fmaxm_d */
8643    0xfe00707f, /* fmaxm_h */
8644    0xfe00707f, /* fmaxm_q */
8645    0xfe00707f, /* fmaxm_s */
8646    0xfe00707f, /* fmin_d */
8647    0xfe00707f, /* fmin_h */
8648    0xfe00707f, /* fmin_q */
8649    0xfe00707f, /* fmin_s */
8650    0xfe00707f, /* fminm_d */
8651    0xfe00707f, /* fminm_h */
8652    0xfe00707f, /* fminm_q */
8653    0xfe00707f, /* fminm_s */
8654    0x600007f,  /* fmsub_d */
8655    0x600007f,  /* fmsub_h */
8656    0x600007f,  /* fmsub_q */
8657    0x600007f,  /* fmsub_s */
8658    0xfe00007f, /* fmul_d */
8659    0xfe00007f, /* fmul_h */
8660    0xfe00007f, /* fmul_q */
8661    0xfe00007f, /* fmul_s */
8662    0xfe00707f, /* fmv_d */
8663    0xfff0707f, /* fmv_d_x */
8664    0xfe00707f, /* fmv_h */
8665    0xfff0707f, /* fmv_h_x */
8666    0xfe00707f, /* fmv_q */
8667    0xfe00707f, /* fmv_s */
8668    0xfff0707f, /* fmv_s_x */
8669    0xfff0707f, /* fmv_w_x */
8670    0xfff0707f, /* fmv_x_d */
8671    0xfff0707f, /* fmv_x_h */
8672    0xfff0707f, /* fmv_x_s */
8673    0xfff0707f, /* fmv_x_w */
8674    0xfff0707f, /* fmvh_x_d */
8675    0xfff0707f, /* fmvh_x_q */
8676    0xfe00707f, /* fmvp_d_x */
8677    0xfe00707f, /* fmvp_q_x */
8678    0xfe00707f, /* fneg_d */
8679    0xfe00707f, /* fneg_h */
8680    0xfe00707f, /* fneg_q */
8681    0xfe00707f, /* fneg_s */
8682    0x600007f,  /* fnmadd_d */
8683    0x600007f,  /* fnmadd_h */
8684    0x600007f,  /* fnmadd_q */
8685    0x600007f,  /* fnmadd_s */
8686    0x600007f,  /* fnmsub_d */
8687    0x600007f,  /* fnmsub_h */
8688    0x600007f,  /* fnmsub_q */
8689    0x600007f,  /* fnmsub_s */
8690    0xfffff07f, /* frcsr */
8691    0xfffff07f, /* frflags */
8692    0xfff0007f, /* fround_d */
8693    0xfff0007f, /* fround_h */
8694    0xfff0007f, /* fround_q */
8695    0xfff0007f, /* fround_s */
8696    0xfff0007f, /* froundnx_d */
8697    0xfff0007f, /* froundnx_h */
8698    0xfff0007f, /* froundnx_q */
8699    0xfff0007f, /* froundnx_s */
8700    0xfffff07f, /* frrm */
8701    0xfff0707f, /* fscsr */
8702    0x707f,     /* fsd */
8703    0xfff0707f, /* fsflags */
8704    0xfff0707f, /* fsflagsi */
8705    0xfe00707f, /* fsgnj_d */
8706    0xfe00707f, /* fsgnj_h */
8707    0xfe00707f, /* fsgnj_q */
8708    0xfe00707f, /* fsgnj_s */
8709    0xfe00707f, /* fsgnjn_d */
8710    0xfe00707f, /* fsgnjn_h */
8711    0xfe00707f, /* fsgnjn_q */
8712    0xfe00707f, /* fsgnjn_s */
8713    0xfe00707f, /* fsgnjx_d */
8714    0xfe00707f, /* fsgnjx_h */
8715    0xfe00707f, /* fsgnjx_q */
8716    0xfe00707f, /* fsgnjx_s */
8717    0x707f,     /* fsh */
8718    0x707f,     /* fsq */
8719    0xfff0007f, /* fsqrt_d */
8720    0xfff0007f, /* fsqrt_h */
8721    0xfff0007f, /* fsqrt_q */
8722    0xfff0007f, /* fsqrt_s */
8723    0xfff0707f, /* fsrm */
8724    0xfff0707f, /* fsrmi */
8725    0xfe00007f, /* fsub_d */
8726    0xfe00007f, /* fsub_h */
8727    0xfe00007f, /* fsub_q */
8728    0xfe00007f, /* fsub_s */
8729    0x707f,     /* fsw */
8730    0xfe007fff, /* hfence_gvma */
8731    0xfe007fff, /* hfence_vvma */
8732    0xfe007fff, /* hinval_gvma */
8733    0xfe007fff, /* hinval_vvma */
8734    0xfff0707f, /* hlv_b */
8735    0xfff0707f, /* hlv_bu */
8736    0xfff0707f, /* hlv_d */
8737    0xfff0707f, /* hlv_h */
8738    0xfff0707f, /* hlv_hu */
8739    0xfff0707f, /* hlv_w */
8740    0xfff0707f, /* hlv_wu */
8741    0xfff0707f, /* hlvx_hu */
8742    0xfff0707f, /* hlvx_wu */
8743    0xfe007fff, /* hsv_b */
8744    0xfe007fff, /* hsv_d */
8745    0xfe007fff, /* hsv_h */
8746    0xfe007fff, /* hsv_w */
8747    0xfff,      /* j */
8748    0x7f,       /* jal */
8749    0xfff,      /* jal_pseudo */
8750    0x707f,     /* jalr */
8751    0xfff07fff, /* jalr_pseudo */
8752    0xfff07fff, /* jr */
8753    0x707f,     /* lb */
8754    0x707f,     /* lbu */
8755    0x707f,     /* ld */
8756    0x707f,     /* lh */
8757    0x707f,     /* lhu */
8758    0xfff,      /* lpad */
8759    0xf9f0707f, /* lr_d */
8760    0xf9f0707f, /* lr_w */
8761    0x7f,       /* lui */
8762    0x707f,     /* lw */
8763    0x707f,     /* lwu */
8764    0xfe00707f, /* max */
8765    0xfe00707f, /* maxu */
8766    0xfe00707f, /* min */
8767    0xfe00707f, /* minu */
8768    0xffffffff, /* mnret */
8769    0xfff0707f, /* mop_r_0 */
8770    0xfff0707f, /* mop_r_1 */
8771    0xfff0707f, /* mop_r_10 */
8772    0xfff0707f, /* mop_r_11 */
8773    0xfff0707f, /* mop_r_12 */
8774    0xfff0707f, /* mop_r_13 */
8775    0xfff0707f, /* mop_r_14 */
8776    0xfff0707f, /* mop_r_15 */
8777    0xfff0707f, /* mop_r_16 */
8778    0xfff0707f, /* mop_r_17 */
8779    0xfff0707f, /* mop_r_18 */
8780    0xfff0707f, /* mop_r_19 */
8781    0xfff0707f, /* mop_r_2 */
8782    0xfff0707f, /* mop_r_20 */
8783    0xfff0707f, /* mop_r_21 */
8784    0xfff0707f, /* mop_r_22 */
8785    0xfff0707f, /* mop_r_23 */
8786    0xfff0707f, /* mop_r_24 */
8787    0xfff0707f, /* mop_r_25 */
8788    0xfff0707f, /* mop_r_26 */
8789    0xfff0707f, /* mop_r_27 */
8790    0xfff0707f, /* mop_r_28 */
8791    0xfff0707f, /* mop_r_29 */
8792    0xfff0707f, /* mop_r_3 */
8793    0xfff0707f, /* mop_r_30 */
8794    0xfff0707f, /* mop_r_31 */
8795    0xfff0707f, /* mop_r_4 */
8796    0xfff0707f, /* mop_r_5 */
8797    0xfff0707f, /* mop_r_6 */
8798    0xfff0707f, /* mop_r_7 */
8799    0xfff0707f, /* mop_r_8 */
8800    0xfff0707f, /* mop_r_9 */
8801    0xb3c0707f, /* mop_r_N */
8802    0xfe00707f, /* mop_rr_0 */
8803    0xfe00707f, /* mop_rr_1 */
8804    0xfe00707f, /* mop_rr_2 */
8805    0xfe00707f, /* mop_rr_3 */
8806    0xfe00707f, /* mop_rr_4 */
8807    0xfe00707f, /* mop_rr_5 */
8808    0xfe00707f, /* mop_rr_6 */
8809    0xfe00707f, /* mop_rr_7 */
8810    0xb200707f, /* mop_rr_N */
8811    0xffffffff, /* mret */
8812    0xfe00707f, /* mul */
8813    0xfe00707f, /* mulh */
8814    0xfe00707f, /* mulhsu */
8815    0xfe00707f, /* mulhu */
8816    0xfe00707f, /* mulw */
8817    0xfff0707f, /* mv */
8818    0xfff0707f, /* neg */
8819    0xffffffff, /* nop */
8820    0xffffffff, /* ntl_all */
8821    0xffffffff, /* ntl_p1 */
8822    0xffffffff, /* ntl_pall */
8823    0xffffffff, /* ntl_s1 */
8824    0xfe00707f, /* or */
8825    0xfff0707f, /* orc_b */
8826    0x707f,     /* ori */
8827    0xfe00707f, /* orn */
8828    0xfe00707f, /* pack */
8829    0xfe00707f, /* packh */
8830    0xfe00707f, /* packw */
8831    0xffffffff, /* pause */
8832    0x1f07fff,  /* prefetch_i */
8833    0x1f07fff,  /* prefetch_r */
8834    0x1f07fff,  /* prefetch_w */
8835    0xfffff07f, /* rdcycle */
8836    0xfffff07f, /* rdcycleh */
8837    0xfffff07f, /* rdinstret */
8838    0xfffff07f, /* rdinstreth */
8839    0xfffff07f, /* rdtime */
8840    0xfffff07f, /* rdtimeh */
8841    0xfe00707f, /* rem */
8842    0xfe00707f, /* remu */
8843    0xfe00707f, /* remuw */
8844    0xfe00707f, /* remw */
8845    0xffffffff, /* ret */
8846    0xfff0707f, /* rev8 */
8847    0xfff0707f, /* rev8_rv32 */
8848    0xfe00707f, /* rol */
8849    0xfe00707f, /* rolw */
8850    0xfe00707f, /* ror */
8851    0xfc00707f, /* rori */
8852    0xfe00707f, /* rori_rv32 */
8853    0xfe00707f, /* roriw */
8854    0xfe00707f, /* rorw */
8855    0x707f,     /* sb */
8856    0xffffffff, /* sbreak */
8857    0xf800707f, /* sc_d */
8858    0xf800707f, /* sc_w */
8859    0xffffffff, /* scall */
8860    0xffffffff, /* sctrclr */
8861    0x707f,     /* sd */
8862    0xfff0707f, /* seqz */
8863    0xfff0707f, /* sext_b */
8864    0xfff0707f, /* sext_h */
8865    0xfff0707f, /* sext_w */
8866    0xffffffff, /* sfence_inval_ir */
8867    0xfe007fff, /* sfence_vma */
8868    0xffffffff, /* sfence_w_inval */
8869    0xfe0ff07f, /* sgtz */
8870    0x707f,     /* sh */
8871    0xfe00707f, /* sh1add */
8872    0xfe00707f, /* sh1add_uw */
8873    0xfe00707f, /* sh2add */
8874    0xfe00707f, /* sh2add_uw */
8875    0xfe00707f, /* sh3add */
8876    0xfe00707f, /* sh3add_uw */
8877    0xfff0707f, /* sha256sig0 */
8878    0xfff0707f, /* sha256sig1 */
8879    0xfff0707f, /* sha256sum0 */
8880    0xfff0707f, /* sha256sum1 */
8881    0xfff0707f, /* sha512sig0 */
8882    0xfe00707f, /* sha512sig0h */
8883    0xfe00707f, /* sha512sig0l */
8884    0xfff0707f, /* sha512sig1 */
8885    0xfe00707f, /* sha512sig1h */
8886    0xfe00707f, /* sha512sig1l */
8887    0xfff0707f, /* sha512sum0 */
8888    0xfe00707f, /* sha512sum0r */
8889    0xfff0707f, /* sha512sum1 */
8890    0xfe00707f, /* sha512sum1r */
8891    0xfe007fff, /* sinval_vma */
8892    0xfe00707f, /* sll */
8893    0xfc00707f, /* slli */
8894    0xfe00707f, /* slli_rv32 */
8895    0xfc00707f, /* slli_uw */
8896    0xfe00707f, /* slliw */
8897    0xfe00707f, /* sllw */
8898    0xfe00707f, /* slt */
8899    0x707f,     /* slti */
8900    0x707f,     /* sltiu */
8901    0xfe00707f, /* sltu */
8902    0xfff0707f, /* sltz */
8903    0xfff0707f, /* sm3p0 */
8904    0xfff0707f, /* sm3p1 */
8905    0x3e00707f, /* sm4ed */
8906    0x3e00707f, /* sm4ks */
8907    0xfe0ff07f, /* snez */
8908    0xfe00707f, /* sra */
8909    0xfc00707f, /* srai */
8910    0xfe00707f, /* srai_rv32 */
8911    0xfe00707f, /* sraiw */
8912    0xfe00707f, /* sraw */
8913    0xffffffff, /* sret */
8914    0xfe00707f, /* srl */
8915    0xfc00707f, /* srli */
8916    0xfe00707f, /* srli_rv32 */
8917    0xfe00707f, /* srliw */
8918    0xfe00707f, /* srlw */
8919    0xf800707f, /* ssamoswap_d */
8920    0xf800707f, /* ssamoswap_w */
8921    0xffffffff, /* sspopchk_x1 */
8922    0xffffffff, /* sspopchk_x5 */
8923    0xffffffff, /* sspush_x1 */
8924    0xffffffff, /* sspush_x5 */
8925    0xfffff07f, /* ssrdp */
8926    0xfe00707f, /* sub */
8927    0xfe00707f, /* subw */
8928    0x707f,     /* sw */
8929    0xfff0707f, /* unzip */
8930    0xfc00707f, /* vaadd_vv */
8931    0xfc00707f, /* vaadd_vx */
8932    0xfc00707f, /* vaaddu_vv */
8933    0xfc00707f, /* vaaddu_vx */
8934    0xfe00707f, /* vadc_vim */
8935    0xfe00707f, /* vadc_vvm */
8936    0xfe00707f, /* vadc_vxm */
8937    0xfc00707f, /* vadd_vi */
8938    0xfc00707f, /* vadd_vv */
8939    0xfc00707f, /* vadd_vx */
8940    0xfe0ff07f, /* vaesdf_vs */
8941    0xfe0ff07f, /* vaesdf_vv */
8942    0xfe0ff07f, /* vaesdm_vs */
8943    0xfe0ff07f, /* vaesdm_vv */
8944    0xfe0ff07f, /* vaesef_vs */
8945    0xfe0ff07f, /* vaesef_vv */
8946    0xfe0ff07f, /* vaesem_vs */
8947    0xfe0ff07f, /* vaesem_vv */
8948    0xfe00707f, /* vaeskf1_vi */
8949    0xfe00707f, /* vaeskf2_vi */
8950    0xfe0ff07f, /* vaesz_vs */
8951    0xfc00707f, /* vand_vi */
8952    0xfc00707f, /* vand_vv */
8953    0xfc00707f, /* vand_vx */
8954    0xfc00707f, /* vandn_vv */
8955    0xfc00707f, /* vandn_vx */
8956    0xfc00707f, /* vasub_vv */
8957    0xfc00707f, /* vasub_vx */
8958    0xfc00707f, /* vasubu_vv */
8959    0xfc00707f, /* vasubu_vx */
8960    0xfc0ff07f, /* vbrev8_v */
8961    0xfc0ff07f, /* vbrev_v */
8962    0xfc00707f, /* vclmul_vv */
8963    0xfc00707f, /* vclmul_vx */
8964    0xfc00707f, /* vclmulh_vv */
8965    0xfc00707f, /* vclmulh_vx */
8966    0xfc0ff07f, /* vclz_v */
8967    0xfe00707f, /* vcompress_vm */
8968    0xfc0ff07f, /* vcpop_m */
8969    0xfc0ff07f, /* vcpop_v */
8970    0xfc0ff07f, /* vctz_v */
8971    0xfc00707f, /* vdiv_vv */
8972    0xfc00707f, /* vdiv_vx */
8973    0xfc00707f, /* vdivu_vv */
8974    0xfc00707f, /* vdivu_vx */
8975    0xfc00707f, /* vfadd_vf */
8976    0xfc00707f, /* vfadd_vv */
8977    0xfc0ff07f, /* vfclass_v */
8978    0xfc0ff07f, /* vfcvt_f_x_v */
8979    0xfc0ff07f, /* vfcvt_f_xu_v */
8980    0xfc0ff07f, /* vfcvt_rtz_x_f_v */
8981    0xfc0ff07f, /* vfcvt_rtz_xu_f_v */
8982    0xfc0ff07f, /* vfcvt_x_f_v */
8983    0xfc0ff07f, /* vfcvt_xu_f_v */
8984    0xfc00707f, /* vfdiv_vf */
8985    0xfc00707f, /* vfdiv_vv */
8986    0xfc0ff07f, /* vfirst_m */
8987    0xfc00707f, /* vfmacc_vf */
8988    0xfc00707f, /* vfmacc_vv */
8989    0xfc00707f, /* vfmadd_vf */
8990    0xfc00707f, /* vfmadd_vv */
8991    0xfc00707f, /* vfmax_vf */
8992    0xfc00707f, /* vfmax_vv */
8993    0xfe00707f, /* vfmerge_vfm */
8994    0xfc00707f, /* vfmin_vf */
8995    0xfc00707f, /* vfmin_vv */
8996    0xfc00707f, /* vfmsac_vf */
8997    0xfc00707f, /* vfmsac_vv */
8998    0xfc00707f, /* vfmsub_vf */
8999    0xfc00707f, /* vfmsub_vv */
9000    0xfc00707f, /* vfmul_vf */
9001    0xfc00707f, /* vfmul_vv */
9002    0xfe0ff07f, /* vfmv_f_s */
9003    0xfff0707f, /* vfmv_s_f */
9004    0xfff0707f, /* vfmv_v_f */
9005    0xfc0ff07f, /* vfncvt_f_f_w */
9006    0xfc0ff07f, /* vfncvt_f_x_w */
9007    0xfc0ff07f, /* vfncvt_f_xu_w */
9008    0xfc0ff07f, /* vfncvt_rod_f_f_w */
9009    0xfc0ff07f, /* vfncvt_rtz_x_f_w */
9010    0xfc0ff07f, /* vfncvt_rtz_xu_f_w */
9011    0xfc0ff07f, /* vfncvt_x_f_w */
9012    0xfc0ff07f, /* vfncvt_xu_f_w */
9013    0xfc0ff07f, /* vfncvtbf16_f_f_w */
9014    0xfc00707f, /* vfnmacc_vf */
9015    0xfc00707f, /* vfnmacc_vv */
9016    0xfc00707f, /* vfnmadd_vf */
9017    0xfc00707f, /* vfnmadd_vv */
9018    0xfc00707f, /* vfnmsac_vf */
9019    0xfc00707f, /* vfnmsac_vv */
9020    0xfc00707f, /* vfnmsub_vf */
9021    0xfc00707f, /* vfnmsub_vv */
9022    0xfc00707f, /* vfrdiv_vf */
9023    0xfc0ff07f, /* vfrec7_v */
9024    0xfc00707f, /* vfredmax_vs */
9025    0xfc00707f, /* vfredmin_vs */
9026    0xfc00707f, /* vfredosum_vs */
9027    0xfc00707f, /* vfredsum_vs */
9028    0xfc00707f, /* vfredusum_vs */
9029    0xfc0ff07f, /* vfrsqrt7_v */
9030    0xfc00707f, /* vfrsub_vf */
9031    0xfc00707f, /* vfsgnj_vf */
9032    0xfc00707f, /* vfsgnj_vv */
9033    0xfc00707f, /* vfsgnjn_vf */
9034    0xfc00707f, /* vfsgnjn_vv */
9035    0xfc00707f, /* vfsgnjx_vf */
9036    0xfc00707f, /* vfsgnjx_vv */
9037    0xfc00707f, /* vfslide1down_vf */
9038    0xfc00707f, /* vfslide1up_vf */
9039    0xfc0ff07f, /* vfsqrt_v */
9040    0xfc00707f, /* vfsub_vf */
9041    0xfc00707f, /* vfsub_vv */
9042    0xfc00707f, /* vfwadd_vf */
9043    0xfc00707f, /* vfwadd_vv */
9044    0xfc00707f, /* vfwadd_wf */
9045    0xfc00707f, /* vfwadd_wv */
9046    0xfc0ff07f, /* vfwcvt_f_f_v */
9047    0xfc0ff07f, /* vfwcvt_f_x_v */
9048    0xfc0ff07f, /* vfwcvt_f_xu_v */
9049    0xfc0ff07f, /* vfwcvt_rtz_x_f_v */
9050    0xfc0ff07f, /* vfwcvt_rtz_xu_f_v */
9051    0xfc0ff07f, /* vfwcvt_x_f_v */
9052    0xfc0ff07f, /* vfwcvt_xu_f_v */
9053    0xfc0ff07f, /* vfwcvtbf16_f_f_v */
9054    0xfc00707f, /* vfwmacc_vf */
9055    0xfc00707f, /* vfwmacc_vv */
9056    0xfc00707f, /* vfwmaccbf16_vf */
9057    0xfc00707f, /* vfwmaccbf16_vv */
9058    0xfc00707f, /* vfwmsac_vf */
9059    0xfc00707f, /* vfwmsac_vv */
9060    0xfc00707f, /* vfwmul_vf */
9061    0xfc00707f, /* vfwmul_vv */
9062    0xfc00707f, /* vfwnmacc_vf */
9063    0xfc00707f, /* vfwnmacc_vv */
9064    0xfc00707f, /* vfwnmsac_vf */
9065    0xfc00707f, /* vfwnmsac_vv */
9066    0xfc00707f, /* vfwredosum_vs */
9067    0xfc00707f, /* vfwredsum_vs */
9068    0xfc00707f, /* vfwredusum_vs */
9069    0xfc00707f, /* vfwsub_vf */
9070    0xfc00707f, /* vfwsub_vv */
9071    0xfc00707f, /* vfwsub_wf */
9072    0xfc00707f, /* vfwsub_wv */
9073    0xfe00707f, /* vghsh_vv */
9074    0xfe0ff07f, /* vgmul_vv */
9075    0xfdfff07f, /* vid_v */
9076    0xfc0ff07f, /* viota_m */
9077    0xfff0707f, /* vl1r_v */
9078    0xfff0707f, /* vl1re16_v */
9079    0xfff0707f, /* vl1re32_v */
9080    0xfff0707f, /* vl1re64_v */
9081    0xfff0707f, /* vl1re8_v */
9082    0xfff0707f, /* vl2r_v */
9083    0xfff0707f, /* vl2re16_v */
9084    0xfff0707f, /* vl2re32_v */
9085    0xfff0707f, /* vl2re64_v */
9086    0xfff0707f, /* vl2re8_v */
9087    0xfff0707f, /* vl4r_v */
9088    0xfff0707f, /* vl4re16_v */
9089    0xfff0707f, /* vl4re32_v */
9090    0xfff0707f, /* vl4re64_v */
9091    0xfff0707f, /* vl4re8_v */
9092    0xfff0707f, /* vl8r_v */
9093    0xfff0707f, /* vl8re16_v */
9094    0xfff0707f, /* vl8re32_v */
9095    0xfff0707f, /* vl8re64_v */
9096    0xfff0707f, /* vl8re8_v */
9097    0x1df0707f, /* vle16_v */
9098    0x1df0707f, /* vle16ff_v */
9099    0xfff0707f, /* vle1_v */
9100    0x1df0707f, /* vle32_v */
9101    0x1df0707f, /* vle32ff_v */
9102    0x1df0707f, /* vle64_v */
9103    0x1df0707f, /* vle64ff_v */
9104    0x1df0707f, /* vle8_v */
9105    0x1df0707f, /* vle8ff_v */
9106    0xfff0707f, /* vlm_v */
9107    0x1c00707f, /* vloxei16_v */
9108    0x1c00707f, /* vloxei32_v */
9109    0x1c00707f, /* vloxei64_v */
9110    0x1c00707f, /* vloxei8_v */
9111    0x1c00707f, /* vlse16_v */
9112    0x1c00707f, /* vlse32_v */
9113    0x1c00707f, /* vlse64_v */
9114    0x1c00707f, /* vlse8_v */
9115    0x1c00707f, /* vluxei16_v */
9116    0x1c00707f, /* vluxei32_v */
9117    0x1c00707f, /* vluxei64_v */
9118    0x1c00707f, /* vluxei8_v */
9119    0xfc00707f, /* vmacc_vv */
9120    0xfc00707f, /* vmacc_vx */
9121    0xfe00707f, /* vmadc_vi */
9122    0xfe00707f, /* vmadc_vim */
9123    0xfe00707f, /* vmadc_vv */
9124    0xfe00707f, /* vmadc_vvm */
9125    0xfe00707f, /* vmadc_vx */
9126    0xfe00707f, /* vmadc_vxm */
9127    0xfc00707f, /* vmadd_vv */
9128    0xfc00707f, /* vmadd_vx */
9129    0xfe00707f, /* vmand_mm */
9130    0xfe00707f, /* vmandn_mm */
9131    0xfc00707f, /* vmandnot_mm */
9132    0xfc00707f, /* vmax_vv */
9133    0xfc00707f, /* vmax_vx */
9134    0xfc00707f, /* vmaxu_vv */
9135    0xfc00707f, /* vmaxu_vx */
9136    0xfe00707f, /* vmerge_vim */
9137    0xfe00707f, /* vmerge_vvm */
9138    0xfe00707f, /* vmerge_vxm */
9139    0xfc00707f, /* vmfeq_vf */
9140    0xfc00707f, /* vmfeq_vv */
9141    0xfc00707f, /* vmfge_vf */
9142    0xfc00707f, /* vmfgt_vf */
9143    0xfc00707f, /* vmfle_vf */
9144    0xfc00707f, /* vmfle_vv */
9145    0xfc00707f, /* vmflt_vf */
9146    0xfc00707f, /* vmflt_vv */
9147    0xfc00707f, /* vmfne_vf */
9148    0xfc00707f, /* vmfne_vv */
9149    0xfc00707f, /* vmin_vv */
9150    0xfc00707f, /* vmin_vx */
9151    0xfc00707f, /* vminu_vv */
9152    0xfc00707f, /* vminu_vx */
9153    0xfe00707f, /* vmnand_mm */
9154    0xfe00707f, /* vmnor_mm */
9155    0xfe00707f, /* vmor_mm */
9156    0xfe00707f, /* vmorn_mm */
9157    0xfc00707f, /* vmornot_mm */
9158    0xfe00707f, /* vmsbc_vv */
9159    0xfe00707f, /* vmsbc_vvm */
9160    0xfe00707f, /* vmsbc_vx */
9161    0xfe00707f, /* vmsbc_vxm */
9162    0xfc0ff07f, /* vmsbf_m */
9163    0xfc00707f, /* vmseq_vi */
9164    0xfc00707f, /* vmseq_vv */
9165    0xfc00707f, /* vmseq_vx */
9166    0xfc00707f, /* vmsgt_vi */
9167    0xfc00707f, /* vmsgt_vx */
9168    0xfc00707f, /* vmsgtu_vi */
9169    0xfc00707f, /* vmsgtu_vx */
9170    0xfc0ff07f, /* vmsif_m */
9171    0xfc00707f, /* vmsle_vi */
9172    0xfc00707f, /* vmsle_vv */
9173    0xfc00707f, /* vmsle_vx */
9174    0xfc00707f, /* vmsleu_vi */
9175    0xfc00707f, /* vmsleu_vv */
9176    0xfc00707f, /* vmsleu_vx */
9177    0xfc00707f, /* vmslt_vv */
9178    0xfc00707f, /* vmslt_vx */
9179    0xfc00707f, /* vmsltu_vv */
9180    0xfc00707f, /* vmsltu_vx */
9181    0xfc00707f, /* vmsne_vi */
9182    0xfc00707f, /* vmsne_vv */
9183    0xfc00707f, /* vmsne_vx */
9184    0xfc0ff07f, /* vmsof_m */
9185    0xfc00707f, /* vmul_vv */
9186    0xfc00707f, /* vmul_vx */
9187    0xfc00707f, /* vmulh_vv */
9188    0xfc00707f, /* vmulh_vx */
9189    0xfc00707f, /* vmulhsu_vv */
9190    0xfc00707f, /* vmulhsu_vx */
9191    0xfc00707f, /* vmulhu_vv */
9192    0xfc00707f, /* vmulhu_vx */
9193    0xfe0ff07f, /* vmv1r_v */
9194    0xfe0ff07f, /* vmv2r_v */
9195    0xfe0ff07f, /* vmv4r_v */
9196    0xfe0ff07f, /* vmv8r_v */
9197    0xfff0707f, /* vmv_s_x */
9198    0xfff0707f, /* vmv_v_i */
9199    0xfff0707f, /* vmv_v_v */
9200    0xfff0707f, /* vmv_v_x */
9201    0xfe0ff07f, /* vmv_x_s */
9202    0xfe00707f, /* vmxnor_mm */
9203    0xfe00707f, /* vmxor_mm */
9204    0xfc00707f, /* vnclip_wi */
9205    0xfc00707f, /* vnclip_wv */
9206    0xfc00707f, /* vnclip_wx */
9207    0xfc00707f, /* vnclipu_wi */
9208    0xfc00707f, /* vnclipu_wv */
9209    0xfc00707f, /* vnclipu_wx */
9210    0xfc00707f, /* vnmsac_vv */
9211    0xfc00707f, /* vnmsac_vx */
9212    0xfc00707f, /* vnmsub_vv */
9213    0xfc00707f, /* vnmsub_vx */
9214    0xfc00707f, /* vnsra_wi */
9215    0xfc00707f, /* vnsra_wv */
9216    0xfc00707f, /* vnsra_wx */
9217    0xfc00707f, /* vnsrl_wi */
9218    0xfc00707f, /* vnsrl_wv */
9219    0xfc00707f, /* vnsrl_wx */
9220    0xfc00707f, /* vor_vi */
9221    0xfc00707f, /* vor_vv */
9222    0xfc00707f, /* vor_vx */
9223    0xfc0ff07f, /* vpopc_m */
9224    0xfc00707f, /* vredand_vs */
9225    0xfc00707f, /* vredmax_vs */
9226    0xfc00707f, /* vredmaxu_vs */
9227    0xfc00707f, /* vredmin_vs */
9228    0xfc00707f, /* vredminu_vs */
9229    0xfc00707f, /* vredor_vs */
9230    0xfc00707f, /* vredsum_vs */
9231    0xfc00707f, /* vredxor_vs */
9232    0xfc00707f, /* vrem_vv */
9233    0xfc00707f, /* vrem_vx */
9234    0xfc00707f, /* vremu_vv */
9235    0xfc00707f, /* vremu_vx */
9236    0xfc0ff07f, /* vrev8_v */
9237    0xfc00707f, /* vrgather_vi */
9238    0xfc00707f, /* vrgather_vv */
9239    0xfc00707f, /* vrgather_vx */
9240    0xfc00707f, /* vrgatherei16_vv */
9241    0xfc00707f, /* vrol_vv */
9242    0xfc00707f, /* vrol_vx */
9243    0xf800707f, /* vror_vi */
9244    0xfc00707f, /* vror_vv */
9245    0xfc00707f, /* vror_vx */
9246    0xfc00707f, /* vrsub_vi */
9247    0xfc00707f, /* vrsub_vx */
9248    0xfff0707f, /* vs1r_v */
9249    0xfff0707f, /* vs2r_v */
9250    0xfff0707f, /* vs4r_v */
9251    0xfff0707f, /* vs8r_v */
9252    0xfc00707f, /* vsadd_vi */
9253    0xfc00707f, /* vsadd_vv */
9254    0xfc00707f, /* vsadd_vx */
9255    0xfc00707f, /* vsaddu_vi */
9256    0xfc00707f, /* vsaddu_vv */
9257    0xfc00707f, /* vsaddu_vx */
9258    0xfe00707f, /* vsbc_vvm */
9259    0xfe00707f, /* vsbc_vxm */
9260    0x1df0707f, /* vse16_v */
9261    0xfff0707f, /* vse1_v */
9262    0x1df0707f, /* vse32_v */
9263    0x1df0707f, /* vse64_v */
9264    0x1df0707f, /* vse8_v */
9265    0xc000707f, /* vsetivli */
9266    0xfe00707f, /* vsetvl */
9267    0x8000707f, /* vsetvli */
9268    0xfc0ff07f, /* vsext_vf2 */
9269    0xfc0ff07f, /* vsext_vf4 */
9270    0xfc0ff07f, /* vsext_vf8 */
9271    0xfe00707f, /* vsha2ch_vv */
9272    0xfe00707f, /* vsha2cl_vv */
9273    0xfe00707f, /* vsha2ms_vv */
9274    0xfc00707f, /* vslide1down_vx */
9275    0xfc00707f, /* vslide1up_vx */
9276    0xfc00707f, /* vslidedown_vi */
9277    0xfc00707f, /* vslidedown_vx */
9278    0xfc00707f, /* vslideup_vi */
9279    0xfc00707f, /* vslideup_vx */
9280    0xfc00707f, /* vsll_vi */
9281    0xfc00707f, /* vsll_vv */
9282    0xfc00707f, /* vsll_vx */
9283    0xfe00707f, /* vsm3c_vi */
9284    0xfe00707f, /* vsm3me_vv */
9285    0xfe00707f, /* vsm4k_vi */
9286    0xfe0ff07f, /* vsm4r_vs */
9287    0xfe0ff07f, /* vsm4r_vv */
9288    0xfff0707f, /* vsm_v */
9289    0xfc00707f, /* vsmul_vv */
9290    0xfc00707f, /* vsmul_vx */
9291    0x1c00707f, /* vsoxei16_v */
9292    0x1c00707f, /* vsoxei32_v */
9293    0x1c00707f, /* vsoxei64_v */
9294    0x1c00707f, /* vsoxei8_v */
9295    0xfc00707f, /* vsra_vi */
9296    0xfc00707f, /* vsra_vv */
9297    0xfc00707f, /* vsra_vx */
9298    0xfc00707f, /* vsrl_vi */
9299    0xfc00707f, /* vsrl_vv */
9300    0xfc00707f, /* vsrl_vx */
9301    0x1c00707f, /* vsse16_v */
9302    0x1c00707f, /* vsse32_v */
9303    0x1c00707f, /* vsse64_v */
9304    0x1c00707f, /* vsse8_v */
9305    0xfc00707f, /* vssra_vi */
9306    0xfc00707f, /* vssra_vv */
9307    0xfc00707f, /* vssra_vx */
9308    0xfc00707f, /* vssrl_vi */
9309    0xfc00707f, /* vssrl_vv */
9310    0xfc00707f, /* vssrl_vx */
9311    0xfc00707f, /* vssub_vv */
9312    0xfc00707f, /* vssub_vx */
9313    0xfc00707f, /* vssubu_vv */
9314    0xfc00707f, /* vssubu_vx */
9315    0xfc00707f, /* vsub_vv */
9316    0xfc00707f, /* vsub_vx */
9317    0x1c00707f, /* vsuxei16_v */
9318    0x1c00707f, /* vsuxei32_v */
9319    0x1c00707f, /* vsuxei64_v */
9320    0x1c00707f, /* vsuxei8_v */
9321    0xfc00707f, /* vwadd_vv */
9322    0xfc00707f, /* vwadd_vx */
9323    0xfc00707f, /* vwadd_wv */
9324    0xfc00707f, /* vwadd_wx */
9325    0xfc00707f, /* vwaddu_vv */
9326    0xfc00707f, /* vwaddu_vx */
9327    0xfc00707f, /* vwaddu_wv */
9328    0xfc00707f, /* vwaddu_wx */
9329    0xfc00707f, /* vwmacc_vv */
9330    0xfc00707f, /* vwmacc_vx */
9331    0xfc00707f, /* vwmaccsu_vv */
9332    0xfc00707f, /* vwmaccsu_vx */
9333    0xfc00707f, /* vwmaccu_vv */
9334    0xfc00707f, /* vwmaccu_vx */
9335    0xfc00707f, /* vwmaccus_vx */
9336    0xfc00707f, /* vwmul_vv */
9337    0xfc00707f, /* vwmul_vx */
9338    0xfc00707f, /* vwmulsu_vv */
9339    0xfc00707f, /* vwmulsu_vx */
9340    0xfc00707f, /* vwmulu_vv */
9341    0xfc00707f, /* vwmulu_vx */
9342    0xfc00707f, /* vwredsum_vs */
9343    0xfc00707f, /* vwredsumu_vs */
9344    0xfc00707f, /* vwsll_vi */
9345    0xfc00707f, /* vwsll_vv */
9346    0xfc00707f, /* vwsll_vx */
9347    0xfc00707f, /* vwsub_vv */
9348    0xfc00707f, /* vwsub_vx */
9349    0xfc00707f, /* vwsub_wv */
9350    0xfc00707f, /* vwsub_wx */
9351    0xfc00707f, /* vwsubu_vv */
9352    0xfc00707f, /* vwsubu_vx */
9353    0xfc00707f, /* vwsubu_wv */
9354    0xfc00707f, /* vwsubu_wx */
9355    0xfc00707f, /* vxor_vi */
9356    0xfc00707f, /* vxor_vv */
9357    0xfc00707f, /* vxor_vx */
9358    0xfc0ff07f, /* vzext_vf2 */
9359    0xfc0ff07f, /* vzext_vf4 */
9360    0xfc0ff07f, /* vzext_vf8 */
9361    0xffffffff, /* wfi */
9362    0xffffffff, /* wrs_nto */
9363    0xffffffff, /* wrs_sto */
9364    0xfe00707f, /* xnor */
9365    0xfe00707f, /* xor */
9366    0x707f,     /* xori */
9367    0xfe00707f, /* xperm4 */
9368    0xfe00707f, /* xperm8 */
9369    0xfff0707f, /* zext_b */
9370    0xfff0707f, /* zext_h */
9371    0xfff0707f, /* zext_h_rv32 */
9372    0xfff0707f, /* zext_w */
9373    0xfff0707f, /* zip */
9374];
9375pub static OPCODE_MASK_COMPRESSED: [u16; 1039] = [
9376    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9377    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9378    0, 0, 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,
9379    61315, 57347, 57347, 64611, 64611, 60419, 57347, 57347, 65535, 57347, 57347, 57347, 57347,
9380    57347, 57347, 57347, 57347, 57347, 57347, 61567, 61567, 64515, 57347, 57347, 64579, 64579,
9381    57347, 57347, 57347, 57347, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 63743,
9382    64611, 61443, 61315, 64639, 65535, 65535, 65535, 65535, 64611, 64515, 57347, 57347, 64639,
9383    64639, 61567, 64579, 57347, 61443, 60419, 64515, 60419, 64515, 65535, 65535, 64611, 64611,
9384    57347, 57347, 64611, 64639, 64639, 64639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64515, 64611, 64611,
9385    65283, 65283, 65283, 65283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9386    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9387    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9388    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9389    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9390    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9391    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9392    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9393    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9394    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9395    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9396    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9397    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9398    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9399    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9400    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9401    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9402    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9403    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9404    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9405    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9406    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9407    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9408    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9409    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9410    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9411    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9412    0, 0, 0, 0, 0, 0,
9413];
9414pub static OPCODE_MATCH_COMPRESSED: [u16; 1039] = [
9415    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9416    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9417    0, 0, 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,
9418    0, 8193, 39969, 35937, 34817, 49153, 57345, 36866, 8192, 8194, 24576, 24578, 40960, 40962,
9419    57344, 57346, 40961, 8193, 36866, 32770, 32768, 24576, 24578, 33856, 33792, 16385, 24577,
9420    16384, 16386, 24705, 25985, 26241, 26497, 24961, 25217, 25473, 25729, 24705, 40001, 32770, 1,
9421    40053, 36886, 36874, 36878, 36882, 35905, 34816, 57344, 57346, 40037, 40045, 8193, 35840, 2, 2,
9422    33793, 33793, 32769, 32769, 25217, 24705, 35841, 39937, 49152, 49154, 35873, 40033, 40041,
9423    40049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40962, 44130, 44066, 47618, 48642, 48130, 47106, 0, 0, 0, 0,
9424    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9425    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9426    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9427    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9428    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9429    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9430    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9431    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9432    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9433    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9434    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9435    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9436    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9437    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9438    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9439    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9440    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9441    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9442    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9443    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9444    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9445    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9446    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9447    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9448    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9449    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9450    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9451];
9452pub static OPCODE_XLEN: [u8; 1039] = [
9453    3, /* add */
9454    2, /* add_uw */
9455    3, /* addi */
9456    2, /* addiw */
9457    2, /* addw */
9458    1, /* aes32dsi */
9459    1, /* aes32dsmi */
9460    1, /* aes32esi */
9461    1, /* aes32esmi */
9462    2, /* aes64ds */
9463    2, /* aes64dsm */
9464    2, /* aes64es */
9465    2, /* aes64esm */
9466    2, /* aes64im */
9467    2, /* aes64ks1i */
9468    2, /* aes64ks2 */
9469    3, /* amoadd_b */
9470    2, /* amoadd_d */
9471    3, /* amoadd_h */
9472    3, /* amoadd_w */
9473    3, /* amoand_b */
9474    2, /* amoand_d */
9475    3, /* amoand_h */
9476    3, /* amoand_w */
9477    3, /* amocas_b */
9478    3, /* amocas_d */
9479    3, /* amocas_h */
9480    2, /* amocas_q */
9481    3, /* amocas_w */
9482    3, /* amomax_b */
9483    2, /* amomax_d */
9484    3, /* amomax_h */
9485    3, /* amomax_w */
9486    3, /* amomaxu_b */
9487    2, /* amomaxu_d */
9488    3, /* amomaxu_h */
9489    3, /* amomaxu_w */
9490    3, /* amomin_b */
9491    2, /* amomin_d */
9492    3, /* amomin_h */
9493    3, /* amomin_w */
9494    3, /* amominu_b */
9495    2, /* amominu_d */
9496    3, /* amominu_h */
9497    3, /* amominu_w */
9498    3, /* amoor_b */
9499    2, /* amoor_d */
9500    3, /* amoor_h */
9501    3, /* amoor_w */
9502    3, /* amoswap_b */
9503    2, /* amoswap_d */
9504    3, /* amoswap_h */
9505    3, /* amoswap_w */
9506    3, /* amoxor_b */
9507    2, /* amoxor_d */
9508    3, /* amoxor_h */
9509    3, /* amoxor_w */
9510    3, /* and */
9511    3, /* andi */
9512    3, /* andn */
9513    3, /* auipc */
9514    3, /* bclr */
9515    2, /* bclri */
9516    1, /* bclri_rv32 */
9517    3, /* beq */
9518    3, /* beqz */
9519    3, /* bext */
9520    2, /* bexti */
9521    1, /* bexti_rv32 */
9522    3, /* bge */
9523    3, /* bgeu */
9524    3, /* bgez */
9525    3, /* bgt */
9526    3, /* bgtu */
9527    3, /* bgtz */
9528    3, /* binv */
9529    2, /* binvi */
9530    1, /* binvi_rv32 */
9531    3, /* ble */
9532    3, /* bleu */
9533    3, /* blez */
9534    3, /* blt */
9535    3, /* bltu */
9536    3, /* bltz */
9537    3, /* bne */
9538    3, /* bnez */
9539    3, /* brev8 */
9540    3, /* bset */
9541    2, /* bseti */
9542    1, /* bseti_rv32 */
9543    3, /* c_add */
9544    3, /* c_addi */
9545    3, /* c_addi16sp */
9546    3, /* c_addi4spn */
9547    2, /* c_addiw */
9548    2, /* c_addw */
9549    3, /* c_and */
9550    3, /* c_andi */
9551    3, /* c_beqz */
9552    3, /* c_bnez */
9553    3, /* c_ebreak */
9554    3, /* c_fld */
9555    3, /* c_fldsp */
9556    1, /* c_flw */
9557    1, /* c_flwsp */
9558    3, /* c_fsd */
9559    3, /* c_fsdsp */
9560    1, /* c_fsw */
9561    1, /* c_fswsp */
9562    3, /* c_j */
9563    1, /* c_jal */
9564    3, /* c_jalr */
9565    3, /* c_jr */
9566    3, /* c_lbu */
9567    3, /* c_ld */
9568    3, /* c_ldsp */
9569    3, /* c_lh */
9570    3, /* c_lhu */
9571    3, /* c_li */
9572    3, /* c_lui */
9573    3, /* c_lw */
9574    3, /* c_lwsp */
9575    3, /* c_mop_1 */
9576    3, /* c_mop_11 */
9577    3, /* c_mop_13 */
9578    3, /* c_mop_15 */
9579    3, /* c_mop_3 */
9580    3, /* c_mop_5 */
9581    3, /* c_mop_7 */
9582    3, /* c_mop_9 */
9583    3, /* c_mop_N */
9584    3, /* c_mul */
9585    3, /* c_mv */
9586    3, /* c_nop */
9587    3, /* c_not */
9588    3, /* c_ntl_all */
9589    3, /* c_ntl_p1 */
9590    3, /* c_ntl_pall */
9591    3, /* c_ntl_s1 */
9592    3, /* c_or */
9593    3, /* c_sb */
9594    3, /* c_sd */
9595    3, /* c_sdsp */
9596    3, /* c_sext_b */
9597    3, /* c_sext_h */
9598    2, /* c_sext_w */
9599    3, /* c_sh */
9600    3, /* c_slli */
9601    1, /* c_slli_rv32 */
9602    3, /* c_srai */
9603    1, /* c_srai_rv32 */
9604    3, /* c_srli */
9605    1, /* c_srli_rv32 */
9606    3, /* c_sspopchk_x5 */
9607    3, /* c_sspush_x1 */
9608    3, /* c_sub */
9609    2, /* c_subw */
9610    3, /* c_sw */
9611    3, /* c_swsp */
9612    3, /* c_xor */
9613    3, /* c_zext_b */
9614    3, /* c_zext_h */
9615    2, /* c_zext_w */
9616    3, /* cbo_clean */
9617    3, /* cbo_flush */
9618    3, /* cbo_inval */
9619    3, /* cbo_zero */
9620    3, /* clmul */
9621    3, /* clmulh */
9622    3, /* clmulr */
9623    3, /* clz */
9624    2, /* clzw */
9625    3, /* cm_jalt */
9626    3, /* cm_mva01s */
9627    3, /* cm_mvsa01 */
9628    3, /* cm_pop */
9629    3, /* cm_popret */
9630    3, /* cm_popretz */
9631    3, /* cm_push */
9632    3, /* cpop */
9633    2, /* cpopw */
9634    3, /* csrc */
9635    3, /* csrci */
9636    3, /* csrr */
9637    3, /* csrrc */
9638    3, /* csrrci */
9639    3, /* csrrs */
9640    3, /* csrrsi */
9641    3, /* csrrw */
9642    3, /* csrrwi */
9643    3, /* csrs */
9644    3, /* csrsi */
9645    3, /* csrw */
9646    3, /* csrwi */
9647    3, /* ctz */
9648    2, /* ctzw */
9649    3, /* czero_eqz */
9650    3, /* czero_nez */
9651    3, /* div */
9652    3, /* divu */
9653    2, /* divuw */
9654    2, /* divw */
9655    3, /* dret */
9656    3, /* ebreak */
9657    3, /* ecall */
9658    3, /* fabs_d */
9659    3, /* fabs_h */
9660    3, /* fabs_q */
9661    3, /* fabs_s */
9662    3, /* fadd_d */
9663    3, /* fadd_h */
9664    3, /* fadd_q */
9665    3, /* fadd_s */
9666    3, /* fclass_d */
9667    3, /* fclass_h */
9668    3, /* fclass_q */
9669    3, /* fclass_s */
9670    3, /* fcvt_bf16_s */
9671    3, /* fcvt_d_h */
9672    2, /* fcvt_d_l */
9673    2, /* fcvt_d_lu */
9674    3, /* fcvt_d_q */
9675    3, /* fcvt_d_s */
9676    3, /* fcvt_d_w */
9677    3, /* fcvt_d_wu */
9678    3, /* fcvt_h_d */
9679    2, /* fcvt_h_l */
9680    2, /* fcvt_h_lu */
9681    3, /* fcvt_h_q */
9682    3, /* fcvt_h_s */
9683    3, /* fcvt_h_w */
9684    3, /* fcvt_h_wu */
9685    2, /* fcvt_l_d */
9686    2, /* fcvt_l_h */
9687    2, /* fcvt_l_q */
9688    2, /* fcvt_l_s */
9689    2, /* fcvt_lu_d */
9690    2, /* fcvt_lu_h */
9691    2, /* fcvt_lu_q */
9692    2, /* fcvt_lu_s */
9693    3, /* fcvt_q_d */
9694    3, /* fcvt_q_h */
9695    2, /* fcvt_q_l */
9696    2, /* fcvt_q_lu */
9697    3, /* fcvt_q_s */
9698    3, /* fcvt_q_w */
9699    3, /* fcvt_q_wu */
9700    3, /* fcvt_s_bf16 */
9701    3, /* fcvt_s_d */
9702    3, /* fcvt_s_h */
9703    2, /* fcvt_s_l */
9704    2, /* fcvt_s_lu */
9705    3, /* fcvt_s_q */
9706    3, /* fcvt_s_w */
9707    3, /* fcvt_s_wu */
9708    3, /* fcvt_w_d */
9709    3, /* fcvt_w_h */
9710    3, /* fcvt_w_q */
9711    3, /* fcvt_w_s */
9712    3, /* fcvt_wu_d */
9713    3, /* fcvt_wu_h */
9714    3, /* fcvt_wu_q */
9715    3, /* fcvt_wu_s */
9716    3, /* fcvtmod_w_d */
9717    3, /* fdiv_d */
9718    3, /* fdiv_h */
9719    3, /* fdiv_q */
9720    3, /* fdiv_s */
9721    3, /* fence */
9722    3, /* fence_i */
9723    3, /* fence_tso */
9724    3, /* feq_d */
9725    3, /* feq_h */
9726    3, /* feq_q */
9727    3, /* feq_s */
9728    3, /* fld */
9729    3, /* fle_d */
9730    3, /* fle_h */
9731    3, /* fle_q */
9732    3, /* fle_s */
9733    3, /* fleq_d */
9734    3, /* fleq_h */
9735    3, /* fleq_q */
9736    3, /* fleq_s */
9737    3, /* flh */
9738    3, /* fli_d */
9739    3, /* fli_h */
9740    3, /* fli_q */
9741    3, /* fli_s */
9742    3, /* flq */
9743    3, /* flt_d */
9744    3, /* flt_h */
9745    3, /* flt_q */
9746    3, /* flt_s */
9747    3, /* fltq_d */
9748    3, /* fltq_h */
9749    3, /* fltq_q */
9750    3, /* fltq_s */
9751    3, /* flw */
9752    3, /* fmadd_d */
9753    3, /* fmadd_h */
9754    3, /* fmadd_q */
9755    3, /* fmadd_s */
9756    3, /* fmax_d */
9757    3, /* fmax_h */
9758    3, /* fmax_q */
9759    3, /* fmax_s */
9760    3, /* fmaxm_d */
9761    3, /* fmaxm_h */
9762    3, /* fmaxm_q */
9763    3, /* fmaxm_s */
9764    3, /* fmin_d */
9765    3, /* fmin_h */
9766    3, /* fmin_q */
9767    3, /* fmin_s */
9768    3, /* fminm_d */
9769    3, /* fminm_h */
9770    3, /* fminm_q */
9771    3, /* fminm_s */
9772    3, /* fmsub_d */
9773    3, /* fmsub_h */
9774    3, /* fmsub_q */
9775    3, /* fmsub_s */
9776    3, /* fmul_d */
9777    3, /* fmul_h */
9778    3, /* fmul_q */
9779    3, /* fmul_s */
9780    3, /* fmv_d */
9781    2, /* fmv_d_x */
9782    3, /* fmv_h */
9783    3, /* fmv_h_x */
9784    3, /* fmv_q */
9785    3, /* fmv_s */
9786    3, /* fmv_s_x */
9787    3, /* fmv_w_x */
9788    2, /* fmv_x_d */
9789    3, /* fmv_x_h */
9790    3, /* fmv_x_s */
9791    3, /* fmv_x_w */
9792    1, /* fmvh_x_d */
9793    2, /* fmvh_x_q */
9794    1, /* fmvp_d_x */
9795    2, /* fmvp_q_x */
9796    3, /* fneg_d */
9797    3, /* fneg_h */
9798    3, /* fneg_q */
9799    3, /* fneg_s */
9800    3, /* fnmadd_d */
9801    3, /* fnmadd_h */
9802    3, /* fnmadd_q */
9803    3, /* fnmadd_s */
9804    3, /* fnmsub_d */
9805    3, /* fnmsub_h */
9806    3, /* fnmsub_q */
9807    3, /* fnmsub_s */
9808    3, /* frcsr */
9809    3, /* frflags */
9810    3, /* fround_d */
9811    3, /* fround_h */
9812    3, /* fround_q */
9813    3, /* fround_s */
9814    3, /* froundnx_d */
9815    3, /* froundnx_h */
9816    3, /* froundnx_q */
9817    3, /* froundnx_s */
9818    3, /* frrm */
9819    3, /* fscsr */
9820    3, /* fsd */
9821    3, /* fsflags */
9822    3, /* fsflagsi */
9823    3, /* fsgnj_d */
9824    3, /* fsgnj_h */
9825    3, /* fsgnj_q */
9826    3, /* fsgnj_s */
9827    3, /* fsgnjn_d */
9828    3, /* fsgnjn_h */
9829    3, /* fsgnjn_q */
9830    3, /* fsgnjn_s */
9831    3, /* fsgnjx_d */
9832    3, /* fsgnjx_h */
9833    3, /* fsgnjx_q */
9834    3, /* fsgnjx_s */
9835    3, /* fsh */
9836    3, /* fsq */
9837    3, /* fsqrt_d */
9838    3, /* fsqrt_h */
9839    3, /* fsqrt_q */
9840    3, /* fsqrt_s */
9841    3, /* fsrm */
9842    3, /* fsrmi */
9843    3, /* fsub_d */
9844    3, /* fsub_h */
9845    3, /* fsub_q */
9846    3, /* fsub_s */
9847    3, /* fsw */
9848    3, /* hfence_gvma */
9849    3, /* hfence_vvma */
9850    3, /* hinval_gvma */
9851    3, /* hinval_vvma */
9852    3, /* hlv_b */
9853    3, /* hlv_bu */
9854    2, /* hlv_d */
9855    3, /* hlv_h */
9856    3, /* hlv_hu */
9857    3, /* hlv_w */
9858    2, /* hlv_wu */
9859    3, /* hlvx_hu */
9860    3, /* hlvx_wu */
9861    3, /* hsv_b */
9862    2, /* hsv_d */
9863    3, /* hsv_h */
9864    3, /* hsv_w */
9865    3, /* j */
9866    3, /* jal */
9867    3, /* jal_pseudo */
9868    3, /* jalr */
9869    3, /* jalr_pseudo */
9870    3, /* jr */
9871    3, /* lb */
9872    3, /* lbu */
9873    2, /* ld */
9874    3, /* lh */
9875    3, /* lhu */
9876    3, /* lpad */
9877    2, /* lr_d */
9878    3, /* lr_w */
9879    3, /* lui */
9880    3, /* lw */
9881    2, /* lwu */
9882    3, /* max */
9883    3, /* maxu */
9884    3, /* min */
9885    3, /* minu */
9886    3, /* mnret */
9887    3, /* mop_r_0 */
9888    3, /* mop_r_1 */
9889    3, /* mop_r_10 */
9890    3, /* mop_r_11 */
9891    3, /* mop_r_12 */
9892    3, /* mop_r_13 */
9893    3, /* mop_r_14 */
9894    3, /* mop_r_15 */
9895    3, /* mop_r_16 */
9896    3, /* mop_r_17 */
9897    3, /* mop_r_18 */
9898    3, /* mop_r_19 */
9899    3, /* mop_r_2 */
9900    3, /* mop_r_20 */
9901    3, /* mop_r_21 */
9902    3, /* mop_r_22 */
9903    3, /* mop_r_23 */
9904    3, /* mop_r_24 */
9905    3, /* mop_r_25 */
9906    3, /* mop_r_26 */
9907    3, /* mop_r_27 */
9908    3, /* mop_r_28 */
9909    3, /* mop_r_29 */
9910    3, /* mop_r_3 */
9911    3, /* mop_r_30 */
9912    3, /* mop_r_31 */
9913    3, /* mop_r_4 */
9914    3, /* mop_r_5 */
9915    3, /* mop_r_6 */
9916    3, /* mop_r_7 */
9917    3, /* mop_r_8 */
9918    3, /* mop_r_9 */
9919    3, /* mop_r_N */
9920    3, /* mop_rr_0 */
9921    3, /* mop_rr_1 */
9922    3, /* mop_rr_2 */
9923    3, /* mop_rr_3 */
9924    3, /* mop_rr_4 */
9925    3, /* mop_rr_5 */
9926    3, /* mop_rr_6 */
9927    3, /* mop_rr_7 */
9928    3, /* mop_rr_N */
9929    3, /* mret */
9930    3, /* mul */
9931    3, /* mulh */
9932    3, /* mulhsu */
9933    3, /* mulhu */
9934    2, /* mulw */
9935    3, /* mv */
9936    3, /* neg */
9937    3, /* nop */
9938    3, /* ntl_all */
9939    3, /* ntl_p1 */
9940    3, /* ntl_pall */
9941    3, /* ntl_s1 */
9942    3, /* or */
9943    3, /* orc_b */
9944    3, /* ori */
9945    3, /* orn */
9946    3, /* pack */
9947    3, /* packh */
9948    2, /* packw */
9949    3, /* pause */
9950    3, /* prefetch_i */
9951    3, /* prefetch_r */
9952    3, /* prefetch_w */
9953    3, /* rdcycle */
9954    1, /* rdcycleh */
9955    3, /* rdinstret */
9956    1, /* rdinstreth */
9957    3, /* rdtime */
9958    1, /* rdtimeh */
9959    3, /* rem */
9960    3, /* remu */
9961    2, /* remuw */
9962    2, /* remw */
9963    3, /* ret */
9964    2, /* rev8 */
9965    1, /* rev8_rv32 */
9966    3, /* rol */
9967    2, /* rolw */
9968    3, /* ror */
9969    2, /* rori */
9970    1, /* rori_rv32 */
9971    2, /* roriw */
9972    2, /* rorw */
9973    3, /* sb */
9974    3, /* sbreak */
9975    2, /* sc_d */
9976    3, /* sc_w */
9977    3, /* scall */
9978    3, /* sctrclr */
9979    2, /* sd */
9980    3, /* seqz */
9981    3, /* sext_b */
9982    3, /* sext_h */
9983    2, /* sext_w */
9984    3, /* sfence_inval_ir */
9985    3, /* sfence_vma */
9986    3, /* sfence_w_inval */
9987    3, /* sgtz */
9988    3, /* sh */
9989    3, /* sh1add */
9990    2, /* sh1add_uw */
9991    3, /* sh2add */
9992    2, /* sh2add_uw */
9993    3, /* sh3add */
9994    2, /* sh3add_uw */
9995    3, /* sha256sig0 */
9996    3, /* sha256sig1 */
9997    3, /* sha256sum0 */
9998    3, /* sha256sum1 */
9999    2, /* sha512sig0 */
10000    1, /* sha512sig0h */
10001    1, /* sha512sig0l */
10002    2, /* sha512sig1 */
10003    1, /* sha512sig1h */
10004    1, /* sha512sig1l */
10005    2, /* sha512sum0 */
10006    1, /* sha512sum0r */
10007    2, /* sha512sum1 */
10008    1, /* sha512sum1r */
10009    3, /* sinval_vma */
10010    3, /* sll */
10011    3, /* slli */
10012    1, /* slli_rv32 */
10013    2, /* slli_uw */
10014    2, /* slliw */
10015    2, /* sllw */
10016    3, /* slt */
10017    3, /* slti */
10018    3, /* sltiu */
10019    3, /* sltu */
10020    3, /* sltz */
10021    3, /* sm3p0 */
10022    3, /* sm3p1 */
10023    3, /* sm4ed */
10024    3, /* sm4ks */
10025    3, /* snez */
10026    3, /* sra */
10027    3, /* srai */
10028    1, /* srai_rv32 */
10029    2, /* sraiw */
10030    2, /* sraw */
10031    3, /* sret */
10032    3, /* srl */
10033    3, /* srli */
10034    1, /* srli_rv32 */
10035    2, /* srliw */
10036    2, /* srlw */
10037    2, /* ssamoswap_d */
10038    3, /* ssamoswap_w */
10039    3, /* sspopchk_x1 */
10040    3, /* sspopchk_x5 */
10041    3, /* sspush_x1 */
10042    3, /* sspush_x5 */
10043    3, /* ssrdp */
10044    3, /* sub */
10045    2, /* subw */
10046    3, /* sw */
10047    1, /* unzip */
10048    3, /* vaadd_vv */
10049    3, /* vaadd_vx */
10050    3, /* vaaddu_vv */
10051    3, /* vaaddu_vx */
10052    3, /* vadc_vim */
10053    3, /* vadc_vvm */
10054    3, /* vadc_vxm */
10055    3, /* vadd_vi */
10056    3, /* vadd_vv */
10057    3, /* vadd_vx */
10058    3, /* vaesdf_vs */
10059    3, /* vaesdf_vv */
10060    3, /* vaesdm_vs */
10061    3, /* vaesdm_vv */
10062    3, /* vaesef_vs */
10063    3, /* vaesef_vv */
10064    3, /* vaesem_vs */
10065    3, /* vaesem_vv */
10066    3, /* vaeskf1_vi */
10067    3, /* vaeskf2_vi */
10068    3, /* vaesz_vs */
10069    3, /* vand_vi */
10070    3, /* vand_vv */
10071    3, /* vand_vx */
10072    3, /* vandn_vv */
10073    3, /* vandn_vx */
10074    3, /* vasub_vv */
10075    3, /* vasub_vx */
10076    3, /* vasubu_vv */
10077    3, /* vasubu_vx */
10078    3, /* vbrev8_v */
10079    3, /* vbrev_v */
10080    3, /* vclmul_vv */
10081    3, /* vclmul_vx */
10082    3, /* vclmulh_vv */
10083    3, /* vclmulh_vx */
10084    3, /* vclz_v */
10085    3, /* vcompress_vm */
10086    3, /* vcpop_m */
10087    3, /* vcpop_v */
10088    3, /* vctz_v */
10089    3, /* vdiv_vv */
10090    3, /* vdiv_vx */
10091    3, /* vdivu_vv */
10092    3, /* vdivu_vx */
10093    3, /* vfadd_vf */
10094    3, /* vfadd_vv */
10095    3, /* vfclass_v */
10096    3, /* vfcvt_f_x_v */
10097    3, /* vfcvt_f_xu_v */
10098    3, /* vfcvt_rtz_x_f_v */
10099    3, /* vfcvt_rtz_xu_f_v */
10100    3, /* vfcvt_x_f_v */
10101    3, /* vfcvt_xu_f_v */
10102    3, /* vfdiv_vf */
10103    3, /* vfdiv_vv */
10104    3, /* vfirst_m */
10105    3, /* vfmacc_vf */
10106    3, /* vfmacc_vv */
10107    3, /* vfmadd_vf */
10108    3, /* vfmadd_vv */
10109    3, /* vfmax_vf */
10110    3, /* vfmax_vv */
10111    3, /* vfmerge_vfm */
10112    3, /* vfmin_vf */
10113    3, /* vfmin_vv */
10114    3, /* vfmsac_vf */
10115    3, /* vfmsac_vv */
10116    3, /* vfmsub_vf */
10117    3, /* vfmsub_vv */
10118    3, /* vfmul_vf */
10119    3, /* vfmul_vv */
10120    3, /* vfmv_f_s */
10121    3, /* vfmv_s_f */
10122    3, /* vfmv_v_f */
10123    3, /* vfncvt_f_f_w */
10124    3, /* vfncvt_f_x_w */
10125    3, /* vfncvt_f_xu_w */
10126    3, /* vfncvt_rod_f_f_w */
10127    3, /* vfncvt_rtz_x_f_w */
10128    3, /* vfncvt_rtz_xu_f_w */
10129    3, /* vfncvt_x_f_w */
10130    3, /* vfncvt_xu_f_w */
10131    3, /* vfncvtbf16_f_f_w */
10132    3, /* vfnmacc_vf */
10133    3, /* vfnmacc_vv */
10134    3, /* vfnmadd_vf */
10135    3, /* vfnmadd_vv */
10136    3, /* vfnmsac_vf */
10137    3, /* vfnmsac_vv */
10138    3, /* vfnmsub_vf */
10139    3, /* vfnmsub_vv */
10140    3, /* vfrdiv_vf */
10141    3, /* vfrec7_v */
10142    3, /* vfredmax_vs */
10143    3, /* vfredmin_vs */
10144    3, /* vfredosum_vs */
10145    3, /* vfredsum_vs */
10146    3, /* vfredusum_vs */
10147    3, /* vfrsqrt7_v */
10148    3, /* vfrsub_vf */
10149    3, /* vfsgnj_vf */
10150    3, /* vfsgnj_vv */
10151    3, /* vfsgnjn_vf */
10152    3, /* vfsgnjn_vv */
10153    3, /* vfsgnjx_vf */
10154    3, /* vfsgnjx_vv */
10155    3, /* vfslide1down_vf */
10156    3, /* vfslide1up_vf */
10157    3, /* vfsqrt_v */
10158    3, /* vfsub_vf */
10159    3, /* vfsub_vv */
10160    3, /* vfwadd_vf */
10161    3, /* vfwadd_vv */
10162    3, /* vfwadd_wf */
10163    3, /* vfwadd_wv */
10164    3, /* vfwcvt_f_f_v */
10165    3, /* vfwcvt_f_x_v */
10166    3, /* vfwcvt_f_xu_v */
10167    3, /* vfwcvt_rtz_x_f_v */
10168    3, /* vfwcvt_rtz_xu_f_v */
10169    3, /* vfwcvt_x_f_v */
10170    3, /* vfwcvt_xu_f_v */
10171    3, /* vfwcvtbf16_f_f_v */
10172    3, /* vfwmacc_vf */
10173    3, /* vfwmacc_vv */
10174    3, /* vfwmaccbf16_vf */
10175    3, /* vfwmaccbf16_vv */
10176    3, /* vfwmsac_vf */
10177    3, /* vfwmsac_vv */
10178    3, /* vfwmul_vf */
10179    3, /* vfwmul_vv */
10180    3, /* vfwnmacc_vf */
10181    3, /* vfwnmacc_vv */
10182    3, /* vfwnmsac_vf */
10183    3, /* vfwnmsac_vv */
10184    3, /* vfwredosum_vs */
10185    3, /* vfwredsum_vs */
10186    3, /* vfwredusum_vs */
10187    3, /* vfwsub_vf */
10188    3, /* vfwsub_vv */
10189    3, /* vfwsub_wf */
10190    3, /* vfwsub_wv */
10191    3, /* vghsh_vv */
10192    3, /* vgmul_vv */
10193    3, /* vid_v */
10194    3, /* viota_m */
10195    3, /* vl1r_v */
10196    3, /* vl1re16_v */
10197    3, /* vl1re32_v */
10198    3, /* vl1re64_v */
10199    3, /* vl1re8_v */
10200    3, /* vl2r_v */
10201    3, /* vl2re16_v */
10202    3, /* vl2re32_v */
10203    3, /* vl2re64_v */
10204    3, /* vl2re8_v */
10205    3, /* vl4r_v */
10206    3, /* vl4re16_v */
10207    3, /* vl4re32_v */
10208    3, /* vl4re64_v */
10209    3, /* vl4re8_v */
10210    3, /* vl8r_v */
10211    3, /* vl8re16_v */
10212    3, /* vl8re32_v */
10213    3, /* vl8re64_v */
10214    3, /* vl8re8_v */
10215    3, /* vle16_v */
10216    3, /* vle16ff_v */
10217    3, /* vle1_v */
10218    3, /* vle32_v */
10219    3, /* vle32ff_v */
10220    3, /* vle64_v */
10221    3, /* vle64ff_v */
10222    3, /* vle8_v */
10223    3, /* vle8ff_v */
10224    3, /* vlm_v */
10225    3, /* vloxei16_v */
10226    3, /* vloxei32_v */
10227    3, /* vloxei64_v */
10228    3, /* vloxei8_v */
10229    3, /* vlse16_v */
10230    3, /* vlse32_v */
10231    3, /* vlse64_v */
10232    3, /* vlse8_v */
10233    3, /* vluxei16_v */
10234    3, /* vluxei32_v */
10235    3, /* vluxei64_v */
10236    3, /* vluxei8_v */
10237    3, /* vmacc_vv */
10238    3, /* vmacc_vx */
10239    3, /* vmadc_vi */
10240    3, /* vmadc_vim */
10241    3, /* vmadc_vv */
10242    3, /* vmadc_vvm */
10243    3, /* vmadc_vx */
10244    3, /* vmadc_vxm */
10245    3, /* vmadd_vv */
10246    3, /* vmadd_vx */
10247    3, /* vmand_mm */
10248    3, /* vmandn_mm */
10249    3, /* vmandnot_mm */
10250    3, /* vmax_vv */
10251    3, /* vmax_vx */
10252    3, /* vmaxu_vv */
10253    3, /* vmaxu_vx */
10254    3, /* vmerge_vim */
10255    3, /* vmerge_vvm */
10256    3, /* vmerge_vxm */
10257    3, /* vmfeq_vf */
10258    3, /* vmfeq_vv */
10259    3, /* vmfge_vf */
10260    3, /* vmfgt_vf */
10261    3, /* vmfle_vf */
10262    3, /* vmfle_vv */
10263    3, /* vmflt_vf */
10264    3, /* vmflt_vv */
10265    3, /* vmfne_vf */
10266    3, /* vmfne_vv */
10267    3, /* vmin_vv */
10268    3, /* vmin_vx */
10269    3, /* vminu_vv */
10270    3, /* vminu_vx */
10271    3, /* vmnand_mm */
10272    3, /* vmnor_mm */
10273    3, /* vmor_mm */
10274    3, /* vmorn_mm */
10275    3, /* vmornot_mm */
10276    3, /* vmsbc_vv */
10277    3, /* vmsbc_vvm */
10278    3, /* vmsbc_vx */
10279    3, /* vmsbc_vxm */
10280    3, /* vmsbf_m */
10281    3, /* vmseq_vi */
10282    3, /* vmseq_vv */
10283    3, /* vmseq_vx */
10284    3, /* vmsgt_vi */
10285    3, /* vmsgt_vx */
10286    3, /* vmsgtu_vi */
10287    3, /* vmsgtu_vx */
10288    3, /* vmsif_m */
10289    3, /* vmsle_vi */
10290    3, /* vmsle_vv */
10291    3, /* vmsle_vx */
10292    3, /* vmsleu_vi */
10293    3, /* vmsleu_vv */
10294    3, /* vmsleu_vx */
10295    3, /* vmslt_vv */
10296    3, /* vmslt_vx */
10297    3, /* vmsltu_vv */
10298    3, /* vmsltu_vx */
10299    3, /* vmsne_vi */
10300    3, /* vmsne_vv */
10301    3, /* vmsne_vx */
10302    3, /* vmsof_m */
10303    3, /* vmul_vv */
10304    3, /* vmul_vx */
10305    3, /* vmulh_vv */
10306    3, /* vmulh_vx */
10307    3, /* vmulhsu_vv */
10308    3, /* vmulhsu_vx */
10309    3, /* vmulhu_vv */
10310    3, /* vmulhu_vx */
10311    3, /* vmv1r_v */
10312    3, /* vmv2r_v */
10313    3, /* vmv4r_v */
10314    3, /* vmv8r_v */
10315    3, /* vmv_s_x */
10316    3, /* vmv_v_i */
10317    3, /* vmv_v_v */
10318    3, /* vmv_v_x */
10319    3, /* vmv_x_s */
10320    3, /* vmxnor_mm */
10321    3, /* vmxor_mm */
10322    3, /* vnclip_wi */
10323    3, /* vnclip_wv */
10324    3, /* vnclip_wx */
10325    3, /* vnclipu_wi */
10326    3, /* vnclipu_wv */
10327    3, /* vnclipu_wx */
10328    3, /* vnmsac_vv */
10329    3, /* vnmsac_vx */
10330    3, /* vnmsub_vv */
10331    3, /* vnmsub_vx */
10332    3, /* vnsra_wi */
10333    3, /* vnsra_wv */
10334    3, /* vnsra_wx */
10335    3, /* vnsrl_wi */
10336    3, /* vnsrl_wv */
10337    3, /* vnsrl_wx */
10338    3, /* vor_vi */
10339    3, /* vor_vv */
10340    3, /* vor_vx */
10341    3, /* vpopc_m */
10342    3, /* vredand_vs */
10343    3, /* vredmax_vs */
10344    3, /* vredmaxu_vs */
10345    3, /* vredmin_vs */
10346    3, /* vredminu_vs */
10347    3, /* vredor_vs */
10348    3, /* vredsum_vs */
10349    3, /* vredxor_vs */
10350    3, /* vrem_vv */
10351    3, /* vrem_vx */
10352    3, /* vremu_vv */
10353    3, /* vremu_vx */
10354    3, /* vrev8_v */
10355    3, /* vrgather_vi */
10356    3, /* vrgather_vv */
10357    3, /* vrgather_vx */
10358    3, /* vrgatherei16_vv */
10359    3, /* vrol_vv */
10360    3, /* vrol_vx */
10361    3, /* vror_vi */
10362    3, /* vror_vv */
10363    3, /* vror_vx */
10364    3, /* vrsub_vi */
10365    3, /* vrsub_vx */
10366    3, /* vs1r_v */
10367    3, /* vs2r_v */
10368    3, /* vs4r_v */
10369    3, /* vs8r_v */
10370    3, /* vsadd_vi */
10371    3, /* vsadd_vv */
10372    3, /* vsadd_vx */
10373    3, /* vsaddu_vi */
10374    3, /* vsaddu_vv */
10375    3, /* vsaddu_vx */
10376    3, /* vsbc_vvm */
10377    3, /* vsbc_vxm */
10378    3, /* vse16_v */
10379    3, /* vse1_v */
10380    3, /* vse32_v */
10381    3, /* vse64_v */
10382    3, /* vse8_v */
10383    3, /* vsetivli */
10384    3, /* vsetvl */
10385    3, /* vsetvli */
10386    3, /* vsext_vf2 */
10387    3, /* vsext_vf4 */
10388    3, /* vsext_vf8 */
10389    3, /* vsha2ch_vv */
10390    3, /* vsha2cl_vv */
10391    3, /* vsha2ms_vv */
10392    3, /* vslide1down_vx */
10393    3, /* vslide1up_vx */
10394    3, /* vslidedown_vi */
10395    3, /* vslidedown_vx */
10396    3, /* vslideup_vi */
10397    3, /* vslideup_vx */
10398    3, /* vsll_vi */
10399    3, /* vsll_vv */
10400    3, /* vsll_vx */
10401    3, /* vsm3c_vi */
10402    3, /* vsm3me_vv */
10403    3, /* vsm4k_vi */
10404    3, /* vsm4r_vs */
10405    3, /* vsm4r_vv */
10406    3, /* vsm_v */
10407    3, /* vsmul_vv */
10408    3, /* vsmul_vx */
10409    3, /* vsoxei16_v */
10410    3, /* vsoxei32_v */
10411    3, /* vsoxei64_v */
10412    3, /* vsoxei8_v */
10413    3, /* vsra_vi */
10414    3, /* vsra_vv */
10415    3, /* vsra_vx */
10416    3, /* vsrl_vi */
10417    3, /* vsrl_vv */
10418    3, /* vsrl_vx */
10419    3, /* vsse16_v */
10420    3, /* vsse32_v */
10421    3, /* vsse64_v */
10422    3, /* vsse8_v */
10423    3, /* vssra_vi */
10424    3, /* vssra_vv */
10425    3, /* vssra_vx */
10426    3, /* vssrl_vi */
10427    3, /* vssrl_vv */
10428    3, /* vssrl_vx */
10429    3, /* vssub_vv */
10430    3, /* vssub_vx */
10431    3, /* vssubu_vv */
10432    3, /* vssubu_vx */
10433    3, /* vsub_vv */
10434    3, /* vsub_vx */
10435    3, /* vsuxei16_v */
10436    3, /* vsuxei32_v */
10437    3, /* vsuxei64_v */
10438    3, /* vsuxei8_v */
10439    3, /* vwadd_vv */
10440    3, /* vwadd_vx */
10441    3, /* vwadd_wv */
10442    3, /* vwadd_wx */
10443    3, /* vwaddu_vv */
10444    3, /* vwaddu_vx */
10445    3, /* vwaddu_wv */
10446    3, /* vwaddu_wx */
10447    3, /* vwmacc_vv */
10448    3, /* vwmacc_vx */
10449    3, /* vwmaccsu_vv */
10450    3, /* vwmaccsu_vx */
10451    3, /* vwmaccu_vv */
10452    3, /* vwmaccu_vx */
10453    3, /* vwmaccus_vx */
10454    3, /* vwmul_vv */
10455    3, /* vwmul_vx */
10456    3, /* vwmulsu_vv */
10457    3, /* vwmulsu_vx */
10458    3, /* vwmulu_vv */
10459    3, /* vwmulu_vx */
10460    3, /* vwredsum_vs */
10461    3, /* vwredsumu_vs */
10462    3, /* vwsll_vi */
10463    3, /* vwsll_vv */
10464    3, /* vwsll_vx */
10465    3, /* vwsub_vv */
10466    3, /* vwsub_vx */
10467    3, /* vwsub_wv */
10468    3, /* vwsub_wx */
10469    3, /* vwsubu_vv */
10470    3, /* vwsubu_vx */
10471    3, /* vwsubu_wv */
10472    3, /* vwsubu_wx */
10473    3, /* vxor_vi */
10474    3, /* vxor_vv */
10475    3, /* vxor_vx */
10476    3, /* vzext_vf2 */
10477    3, /* vzext_vf4 */
10478    3, /* vzext_vf8 */
10479    3, /* wfi */
10480    3, /* wrs_nto */
10481    3, /* wrs_sto */
10482    3, /* xnor */
10483    3, /* xor */
10484    3, /* xori */
10485    3, /* xperm4 */
10486    3, /* xperm8 */
10487    3, /* zext_b */
10488    2, /* zext_h */
10489    1, /* zext_h_rv32 */
10490    2, /* zext_w */
10491    1, /* zip */
10492];
10493
10494pub static ALL_OPCODES: [Opcode; 1039] = [
10495    Opcode::ADD,
10496    Opcode::ADDUW,
10497    Opcode::ADDI,
10498    Opcode::ADDIW,
10499    Opcode::ADDW,
10500    Opcode::AES32DSI,
10501    Opcode::AES32DSMI,
10502    Opcode::AES32ESI,
10503    Opcode::AES32ESMI,
10504    Opcode::AES64DS,
10505    Opcode::AES64DSM,
10506    Opcode::AES64ES,
10507    Opcode::AES64ESM,
10508    Opcode::AES64IM,
10509    Opcode::AES64KS1I,
10510    Opcode::AES64KS2,
10511    Opcode::AMOADDB,
10512    Opcode::AMOADDD,
10513    Opcode::AMOADDH,
10514    Opcode::AMOADDW,
10515    Opcode::AMOANDB,
10516    Opcode::AMOANDD,
10517    Opcode::AMOANDH,
10518    Opcode::AMOANDW,
10519    Opcode::AMOCASB,
10520    Opcode::AMOCASD,
10521    Opcode::AMOCASH,
10522    Opcode::AMOCASQ,
10523    Opcode::AMOCASW,
10524    Opcode::AMOMAXB,
10525    Opcode::AMOMAXD,
10526    Opcode::AMOMAXH,
10527    Opcode::AMOMAXW,
10528    Opcode::AMOMAXUB,
10529    Opcode::AMOMAXUD,
10530    Opcode::AMOMAXUH,
10531    Opcode::AMOMAXUW,
10532    Opcode::AMOMINB,
10533    Opcode::AMOMIND,
10534    Opcode::AMOMINH,
10535    Opcode::AMOMINW,
10536    Opcode::AMOMINUB,
10537    Opcode::AMOMINUD,
10538    Opcode::AMOMINUH,
10539    Opcode::AMOMINUW,
10540    Opcode::AMOORB,
10541    Opcode::AMOORD,
10542    Opcode::AMOORH,
10543    Opcode::AMOORW,
10544    Opcode::AMOSWAPB,
10545    Opcode::AMOSWAPD,
10546    Opcode::AMOSWAPH,
10547    Opcode::AMOSWAPW,
10548    Opcode::AMOXORB,
10549    Opcode::AMOXORD,
10550    Opcode::AMOXORH,
10551    Opcode::AMOXORW,
10552    Opcode::AND,
10553    Opcode::ANDI,
10554    Opcode::ANDN,
10555    Opcode::AUIPC,
10556    Opcode::BCLR,
10557    Opcode::BCLRI,
10558    Opcode::BCLRIRV32,
10559    Opcode::BEQ,
10560    Opcode::BEQZ,
10561    Opcode::BEXT,
10562    Opcode::BEXTI,
10563    Opcode::BEXTIRV32,
10564    Opcode::BGE,
10565    Opcode::BGEU,
10566    Opcode::BGEZ,
10567    Opcode::BGT,
10568    Opcode::BGTU,
10569    Opcode::BGTZ,
10570    Opcode::BINV,
10571    Opcode::BINVI,
10572    Opcode::BINVIRV32,
10573    Opcode::BLE,
10574    Opcode::BLEU,
10575    Opcode::BLEZ,
10576    Opcode::BLT,
10577    Opcode::BLTU,
10578    Opcode::BLTZ,
10579    Opcode::BNE,
10580    Opcode::BNEZ,
10581    Opcode::BREV8,
10582    Opcode::BSET,
10583    Opcode::BSETI,
10584    Opcode::BSETIRV32,
10585    Opcode::CADD,
10586    Opcode::CADDI,
10587    Opcode::CADDI16SP,
10588    Opcode::CADDI4SPN,
10589    Opcode::CADDIW,
10590    Opcode::CADDW,
10591    Opcode::CAND,
10592    Opcode::CANDI,
10593    Opcode::CBEQZ,
10594    Opcode::CBNEZ,
10595    Opcode::CEBREAK,
10596    Opcode::CFLD,
10597    Opcode::CFLDSP,
10598    Opcode::CFLW,
10599    Opcode::CFLWSP,
10600    Opcode::CFSD,
10601    Opcode::CFSDSP,
10602    Opcode::CFSW,
10603    Opcode::CFSWSP,
10604    Opcode::CJ,
10605    Opcode::CJAL,
10606    Opcode::CJALR,
10607    Opcode::CJR,
10608    Opcode::CLBU,
10609    Opcode::CLD,
10610    Opcode::CLDSP,
10611    Opcode::CLH,
10612    Opcode::CLHU,
10613    Opcode::CLI,
10614    Opcode::CLUI,
10615    Opcode::CLW,
10616    Opcode::CLWSP,
10617    Opcode::CMOP1,
10618    Opcode::CMOP11,
10619    Opcode::CMOP13,
10620    Opcode::CMOP15,
10621    Opcode::CMOP3,
10622    Opcode::CMOP5,
10623    Opcode::CMOP7,
10624    Opcode::CMOP9,
10625    Opcode::CMOPN,
10626    Opcode::CMUL,
10627    Opcode::CMV,
10628    Opcode::CNOP,
10629    Opcode::CNOT,
10630    Opcode::CNTLALL,
10631    Opcode::CNTLP1,
10632    Opcode::CNTLPALL,
10633    Opcode::CNTLS1,
10634    Opcode::COR,
10635    Opcode::CSB,
10636    Opcode::CSD,
10637    Opcode::CSDSP,
10638    Opcode::CSEXTB,
10639    Opcode::CSEXTH,
10640    Opcode::CSEXTW,
10641    Opcode::CSH,
10642    Opcode::CSLLI,
10643    Opcode::CSLLIRV32,
10644    Opcode::CSRAI,
10645    Opcode::CSRAIRV32,
10646    Opcode::CSRLI,
10647    Opcode::CSRLIRV32,
10648    Opcode::CSSPOPCHKX5,
10649    Opcode::CSSPUSHX1,
10650    Opcode::CSUB,
10651    Opcode::CSUBW,
10652    Opcode::CSW,
10653    Opcode::CSWSP,
10654    Opcode::CXOR,
10655    Opcode::CZEXTB,
10656    Opcode::CZEXTH,
10657    Opcode::CZEXTW,
10658    Opcode::CBOCLEAN,
10659    Opcode::CBOFLUSH,
10660    Opcode::CBOINVAL,
10661    Opcode::CBOZERO,
10662    Opcode::CLMUL,
10663    Opcode::CLMULH,
10664    Opcode::CLMULR,
10665    Opcode::CLZ,
10666    Opcode::CLZW,
10667    Opcode::CMJALT,
10668    Opcode::CMMVA01S,
10669    Opcode::CMMVSA01,
10670    Opcode::CMPOP,
10671    Opcode::CMPOPRET,
10672    Opcode::CMPOPRETZ,
10673    Opcode::CMPUSH,
10674    Opcode::CPOP,
10675    Opcode::CPOPW,
10676    Opcode::CSRC,
10677    Opcode::CSRCI,
10678    Opcode::CSRR,
10679    Opcode::CSRRC,
10680    Opcode::CSRRCI,
10681    Opcode::CSRRS,
10682    Opcode::CSRRSI,
10683    Opcode::CSRRW,
10684    Opcode::CSRRWI,
10685    Opcode::CSRS,
10686    Opcode::CSRSI,
10687    Opcode::CSRW,
10688    Opcode::CSRWI,
10689    Opcode::CTZ,
10690    Opcode::CTZW,
10691    Opcode::CZEROEQZ,
10692    Opcode::CZERONEZ,
10693    Opcode::DIV,
10694    Opcode::DIVU,
10695    Opcode::DIVUW,
10696    Opcode::DIVW,
10697    Opcode::DRET,
10698    Opcode::EBREAK,
10699    Opcode::ECALL,
10700    Opcode::FABSD,
10701    Opcode::FABSH,
10702    Opcode::FABSQ,
10703    Opcode::FABSS,
10704    Opcode::FADDD,
10705    Opcode::FADDH,
10706    Opcode::FADDQ,
10707    Opcode::FADDS,
10708    Opcode::FCLASSD,
10709    Opcode::FCLASSH,
10710    Opcode::FCLASSQ,
10711    Opcode::FCLASSS,
10712    Opcode::FCVTBF16S,
10713    Opcode::FCVTDH,
10714    Opcode::FCVTDL,
10715    Opcode::FCVTDLU,
10716    Opcode::FCVTDQ,
10717    Opcode::FCVTDS,
10718    Opcode::FCVTDW,
10719    Opcode::FCVTDWU,
10720    Opcode::FCVTHD,
10721    Opcode::FCVTHL,
10722    Opcode::FCVTHLU,
10723    Opcode::FCVTHQ,
10724    Opcode::FCVTHS,
10725    Opcode::FCVTHW,
10726    Opcode::FCVTHWU,
10727    Opcode::FCVTLD,
10728    Opcode::FCVTLH,
10729    Opcode::FCVTLQ,
10730    Opcode::FCVTLS,
10731    Opcode::FCVTLUD,
10732    Opcode::FCVTLUH,
10733    Opcode::FCVTLUQ,
10734    Opcode::FCVTLUS,
10735    Opcode::FCVTQD,
10736    Opcode::FCVTQH,
10737    Opcode::FCVTQL,
10738    Opcode::FCVTQLU,
10739    Opcode::FCVTQS,
10740    Opcode::FCVTQW,
10741    Opcode::FCVTQWU,
10742    Opcode::FCVTSBF16,
10743    Opcode::FCVTSD,
10744    Opcode::FCVTSH,
10745    Opcode::FCVTSL,
10746    Opcode::FCVTSLU,
10747    Opcode::FCVTSQ,
10748    Opcode::FCVTSW,
10749    Opcode::FCVTSWU,
10750    Opcode::FCVTWD,
10751    Opcode::FCVTWH,
10752    Opcode::FCVTWQ,
10753    Opcode::FCVTWS,
10754    Opcode::FCVTWUD,
10755    Opcode::FCVTWUH,
10756    Opcode::FCVTWUQ,
10757    Opcode::FCVTWUS,
10758    Opcode::FCVTMODWD,
10759    Opcode::FDIVD,
10760    Opcode::FDIVH,
10761    Opcode::FDIVQ,
10762    Opcode::FDIVS,
10763    Opcode::FENCE,
10764    Opcode::FENCEI,
10765    Opcode::FENCETSO,
10766    Opcode::FEQD,
10767    Opcode::FEQH,
10768    Opcode::FEQQ,
10769    Opcode::FEQS,
10770    Opcode::FLD,
10771    Opcode::FLED,
10772    Opcode::FLEH,
10773    Opcode::FLEQ,
10774    Opcode::FLES,
10775    Opcode::FLEQD,
10776    Opcode::FLEQH,
10777    Opcode::FLEQQ,
10778    Opcode::FLEQS,
10779    Opcode::FLH,
10780    Opcode::FLID,
10781    Opcode::FLIH,
10782    Opcode::FLIQ,
10783    Opcode::FLIS,
10784    Opcode::FLQ,
10785    Opcode::FLTD,
10786    Opcode::FLTH,
10787    Opcode::FLTQ,
10788    Opcode::FLTS,
10789    Opcode::FLTQD,
10790    Opcode::FLTQH,
10791    Opcode::FLTQQ,
10792    Opcode::FLTQS,
10793    Opcode::FLW,
10794    Opcode::FMADDD,
10795    Opcode::FMADDH,
10796    Opcode::FMADDQ,
10797    Opcode::FMADDS,
10798    Opcode::FMAXD,
10799    Opcode::FMAXH,
10800    Opcode::FMAXQ,
10801    Opcode::FMAXS,
10802    Opcode::FMAXMD,
10803    Opcode::FMAXMH,
10804    Opcode::FMAXMQ,
10805    Opcode::FMAXMS,
10806    Opcode::FMIND,
10807    Opcode::FMINH,
10808    Opcode::FMINQ,
10809    Opcode::FMINS,
10810    Opcode::FMINMD,
10811    Opcode::FMINMH,
10812    Opcode::FMINMQ,
10813    Opcode::FMINMS,
10814    Opcode::FMSUBD,
10815    Opcode::FMSUBH,
10816    Opcode::FMSUBQ,
10817    Opcode::FMSUBS,
10818    Opcode::FMULD,
10819    Opcode::FMULH,
10820    Opcode::FMULQ,
10821    Opcode::FMULS,
10822    Opcode::FMVD,
10823    Opcode::FMVDX,
10824    Opcode::FMVH,
10825    Opcode::FMVHX,
10826    Opcode::FMVQ,
10827    Opcode::FMVS,
10828    Opcode::FMVSX,
10829    Opcode::FMVWX,
10830    Opcode::FMVXD,
10831    Opcode::FMVXH,
10832    Opcode::FMVXS,
10833    Opcode::FMVXW,
10834    Opcode::FMVHXD,
10835    Opcode::FMVHXQ,
10836    Opcode::FMVPDX,
10837    Opcode::FMVPQX,
10838    Opcode::FNEGD,
10839    Opcode::FNEGH,
10840    Opcode::FNEGQ,
10841    Opcode::FNEGS,
10842    Opcode::FNMADDD,
10843    Opcode::FNMADDH,
10844    Opcode::FNMADDQ,
10845    Opcode::FNMADDS,
10846    Opcode::FNMSUBD,
10847    Opcode::FNMSUBH,
10848    Opcode::FNMSUBQ,
10849    Opcode::FNMSUBS,
10850    Opcode::FRCSR,
10851    Opcode::FRFLAGS,
10852    Opcode::FROUNDD,
10853    Opcode::FROUNDH,
10854    Opcode::FROUNDQ,
10855    Opcode::FROUNDS,
10856    Opcode::FROUNDNXD,
10857    Opcode::FROUNDNXH,
10858    Opcode::FROUNDNXQ,
10859    Opcode::FROUNDNXS,
10860    Opcode::FRRM,
10861    Opcode::FSCSR,
10862    Opcode::FSD,
10863    Opcode::FSFLAGS,
10864    Opcode::FSFLAGSI,
10865    Opcode::FSGNJD,
10866    Opcode::FSGNJH,
10867    Opcode::FSGNJQ,
10868    Opcode::FSGNJS,
10869    Opcode::FSGNJND,
10870    Opcode::FSGNJNH,
10871    Opcode::FSGNJNQ,
10872    Opcode::FSGNJNS,
10873    Opcode::FSGNJXD,
10874    Opcode::FSGNJXH,
10875    Opcode::FSGNJXQ,
10876    Opcode::FSGNJXS,
10877    Opcode::FSH,
10878    Opcode::FSQ,
10879    Opcode::FSQRTD,
10880    Opcode::FSQRTH,
10881    Opcode::FSQRTQ,
10882    Opcode::FSQRTS,
10883    Opcode::FSRM,
10884    Opcode::FSRMI,
10885    Opcode::FSUBD,
10886    Opcode::FSUBH,
10887    Opcode::FSUBQ,
10888    Opcode::FSUBS,
10889    Opcode::FSW,
10890    Opcode::HFENCEGVMA,
10891    Opcode::HFENCEVVMA,
10892    Opcode::HINVALGVMA,
10893    Opcode::HINVALVVMA,
10894    Opcode::HLVB,
10895    Opcode::HLVBU,
10896    Opcode::HLVD,
10897    Opcode::HLVH,
10898    Opcode::HLVHU,
10899    Opcode::HLVW,
10900    Opcode::HLVWU,
10901    Opcode::HLVXHU,
10902    Opcode::HLVXWU,
10903    Opcode::HSVB,
10904    Opcode::HSVD,
10905    Opcode::HSVH,
10906    Opcode::HSVW,
10907    Opcode::J,
10908    Opcode::JAL,
10909    Opcode::JALPSEUDO,
10910    Opcode::JALR,
10911    Opcode::JALRPSEUDO,
10912    Opcode::JR,
10913    Opcode::LB,
10914    Opcode::LBU,
10915    Opcode::LD,
10916    Opcode::LH,
10917    Opcode::LHU,
10918    Opcode::LPAD,
10919    Opcode::LRD,
10920    Opcode::LRW,
10921    Opcode::LUI,
10922    Opcode::LW,
10923    Opcode::LWU,
10924    Opcode::MAX,
10925    Opcode::MAXU,
10926    Opcode::MIN,
10927    Opcode::MINU,
10928    Opcode::MNRET,
10929    Opcode::MOPR0,
10930    Opcode::MOPR1,
10931    Opcode::MOPR10,
10932    Opcode::MOPR11,
10933    Opcode::MOPR12,
10934    Opcode::MOPR13,
10935    Opcode::MOPR14,
10936    Opcode::MOPR15,
10937    Opcode::MOPR16,
10938    Opcode::MOPR17,
10939    Opcode::MOPR18,
10940    Opcode::MOPR19,
10941    Opcode::MOPR2,
10942    Opcode::MOPR20,
10943    Opcode::MOPR21,
10944    Opcode::MOPR22,
10945    Opcode::MOPR23,
10946    Opcode::MOPR24,
10947    Opcode::MOPR25,
10948    Opcode::MOPR26,
10949    Opcode::MOPR27,
10950    Opcode::MOPR28,
10951    Opcode::MOPR29,
10952    Opcode::MOPR3,
10953    Opcode::MOPR30,
10954    Opcode::MOPR31,
10955    Opcode::MOPR4,
10956    Opcode::MOPR5,
10957    Opcode::MOPR6,
10958    Opcode::MOPR7,
10959    Opcode::MOPR8,
10960    Opcode::MOPR9,
10961    Opcode::MOPRN,
10962    Opcode::MOPRR0,
10963    Opcode::MOPRR1,
10964    Opcode::MOPRR2,
10965    Opcode::MOPRR3,
10966    Opcode::MOPRR4,
10967    Opcode::MOPRR5,
10968    Opcode::MOPRR6,
10969    Opcode::MOPRR7,
10970    Opcode::MOPRRN,
10971    Opcode::MRET,
10972    Opcode::MUL,
10973    Opcode::MULH,
10974    Opcode::MULHSU,
10975    Opcode::MULHU,
10976    Opcode::MULW,
10977    Opcode::MV,
10978    Opcode::NEG,
10979    Opcode::NOP,
10980    Opcode::NTLALL,
10981    Opcode::NTLP1,
10982    Opcode::NTLPALL,
10983    Opcode::NTLS1,
10984    Opcode::OR,
10985    Opcode::ORCB,
10986    Opcode::ORI,
10987    Opcode::ORN,
10988    Opcode::PACK,
10989    Opcode::PACKH,
10990    Opcode::PACKW,
10991    Opcode::PAUSE,
10992    Opcode::PREFETCHI,
10993    Opcode::PREFETCHR,
10994    Opcode::PREFETCHW,
10995    Opcode::RDCYCLE,
10996    Opcode::RDCYCLEH,
10997    Opcode::RDINSTRET,
10998    Opcode::RDINSTRETH,
10999    Opcode::RDTIME,
11000    Opcode::RDTIMEH,
11001    Opcode::REM,
11002    Opcode::REMU,
11003    Opcode::REMUW,
11004    Opcode::REMW,
11005    Opcode::RET,
11006    Opcode::REV8,
11007    Opcode::REV8RV32,
11008    Opcode::ROL,
11009    Opcode::ROLW,
11010    Opcode::ROR,
11011    Opcode::RORI,
11012    Opcode::RORIRV32,
11013    Opcode::RORIW,
11014    Opcode::RORW,
11015    Opcode::SB,
11016    Opcode::SBREAK,
11017    Opcode::SCD,
11018    Opcode::SCW,
11019    Opcode::SCALL,
11020    Opcode::SCTRCLR,
11021    Opcode::SD,
11022    Opcode::SEQZ,
11023    Opcode::SEXTB,
11024    Opcode::SEXTH,
11025    Opcode::SEXTW,
11026    Opcode::SFENCEINVALIR,
11027    Opcode::SFENCEVMA,
11028    Opcode::SFENCEWINVAL,
11029    Opcode::SGTZ,
11030    Opcode::SH,
11031    Opcode::SH1ADD,
11032    Opcode::SH1ADDUW,
11033    Opcode::SH2ADD,
11034    Opcode::SH2ADDUW,
11035    Opcode::SH3ADD,
11036    Opcode::SH3ADDUW,
11037    Opcode::SHA256SIG0,
11038    Opcode::SHA256SIG1,
11039    Opcode::SHA256SUM0,
11040    Opcode::SHA256SUM1,
11041    Opcode::SHA512SIG0,
11042    Opcode::SHA512SIG0H,
11043    Opcode::SHA512SIG0L,
11044    Opcode::SHA512SIG1,
11045    Opcode::SHA512SIG1H,
11046    Opcode::SHA512SIG1L,
11047    Opcode::SHA512SUM0,
11048    Opcode::SHA512SUM0R,
11049    Opcode::SHA512SUM1,
11050    Opcode::SHA512SUM1R,
11051    Opcode::SINVALVMA,
11052    Opcode::SLL,
11053    Opcode::SLLI,
11054    Opcode::SLLIRV32,
11055    Opcode::SLLIUW,
11056    Opcode::SLLIW,
11057    Opcode::SLLW,
11058    Opcode::SLT,
11059    Opcode::SLTI,
11060    Opcode::SLTIU,
11061    Opcode::SLTU,
11062    Opcode::SLTZ,
11063    Opcode::SM3P0,
11064    Opcode::SM3P1,
11065    Opcode::SM4ED,
11066    Opcode::SM4KS,
11067    Opcode::SNEZ,
11068    Opcode::SRA,
11069    Opcode::SRAI,
11070    Opcode::SRAIRV32,
11071    Opcode::SRAIW,
11072    Opcode::SRAW,
11073    Opcode::SRET,
11074    Opcode::SRL,
11075    Opcode::SRLI,
11076    Opcode::SRLIRV32,
11077    Opcode::SRLIW,
11078    Opcode::SRLW,
11079    Opcode::SSAMOSWAPD,
11080    Opcode::SSAMOSWAPW,
11081    Opcode::SSPOPCHKX1,
11082    Opcode::SSPOPCHKX5,
11083    Opcode::SSPUSHX1,
11084    Opcode::SSPUSHX5,
11085    Opcode::SSRDP,
11086    Opcode::SUB,
11087    Opcode::SUBW,
11088    Opcode::SW,
11089    Opcode::UNZIP,
11090    Opcode::VAADDVV,
11091    Opcode::VAADDVX,
11092    Opcode::VAADDUVV,
11093    Opcode::VAADDUVX,
11094    Opcode::VADCVIM,
11095    Opcode::VADCVVM,
11096    Opcode::VADCVXM,
11097    Opcode::VADDVI,
11098    Opcode::VADDVV,
11099    Opcode::VADDVX,
11100    Opcode::VAESDFVS,
11101    Opcode::VAESDFVV,
11102    Opcode::VAESDMVS,
11103    Opcode::VAESDMVV,
11104    Opcode::VAESEFVS,
11105    Opcode::VAESEFVV,
11106    Opcode::VAESEMVS,
11107    Opcode::VAESEMVV,
11108    Opcode::VAESKF1VI,
11109    Opcode::VAESKF2VI,
11110    Opcode::VAESZVS,
11111    Opcode::VANDVI,
11112    Opcode::VANDVV,
11113    Opcode::VANDVX,
11114    Opcode::VANDNVV,
11115    Opcode::VANDNVX,
11116    Opcode::VASUBVV,
11117    Opcode::VASUBVX,
11118    Opcode::VASUBUVV,
11119    Opcode::VASUBUVX,
11120    Opcode::VBREV8V,
11121    Opcode::VBREVV,
11122    Opcode::VCLMULVV,
11123    Opcode::VCLMULVX,
11124    Opcode::VCLMULHVV,
11125    Opcode::VCLMULHVX,
11126    Opcode::VCLZV,
11127    Opcode::VCOMPRESSVM,
11128    Opcode::VCPOPM,
11129    Opcode::VCPOPV,
11130    Opcode::VCTZV,
11131    Opcode::VDIVVV,
11132    Opcode::VDIVVX,
11133    Opcode::VDIVUVV,
11134    Opcode::VDIVUVX,
11135    Opcode::VFADDVF,
11136    Opcode::VFADDVV,
11137    Opcode::VFCLASSV,
11138    Opcode::VFCVTFXV,
11139    Opcode::VFCVTFXUV,
11140    Opcode::VFCVTRTZXFV,
11141    Opcode::VFCVTRTZXUFV,
11142    Opcode::VFCVTXFV,
11143    Opcode::VFCVTXUFV,
11144    Opcode::VFDIVVF,
11145    Opcode::VFDIVVV,
11146    Opcode::VFIRSTM,
11147    Opcode::VFMACCVF,
11148    Opcode::VFMACCVV,
11149    Opcode::VFMADDVF,
11150    Opcode::VFMADDVV,
11151    Opcode::VFMAXVF,
11152    Opcode::VFMAXVV,
11153    Opcode::VFMERGEVFM,
11154    Opcode::VFMINVF,
11155    Opcode::VFMINVV,
11156    Opcode::VFMSACVF,
11157    Opcode::VFMSACVV,
11158    Opcode::VFMSUBVF,
11159    Opcode::VFMSUBVV,
11160    Opcode::VFMULVF,
11161    Opcode::VFMULVV,
11162    Opcode::VFMVFS,
11163    Opcode::VFMVSF,
11164    Opcode::VFMVVF,
11165    Opcode::VFNCVTFFW,
11166    Opcode::VFNCVTFXW,
11167    Opcode::VFNCVTFXUW,
11168    Opcode::VFNCVTRODFFW,
11169    Opcode::VFNCVTRTZXFW,
11170    Opcode::VFNCVTRTZXUFW,
11171    Opcode::VFNCVTXFW,
11172    Opcode::VFNCVTXUFW,
11173    Opcode::VFNCVTBF16FFW,
11174    Opcode::VFNMACCVF,
11175    Opcode::VFNMACCVV,
11176    Opcode::VFNMADDVF,
11177    Opcode::VFNMADDVV,
11178    Opcode::VFNMSACVF,
11179    Opcode::VFNMSACVV,
11180    Opcode::VFNMSUBVF,
11181    Opcode::VFNMSUBVV,
11182    Opcode::VFRDIVVF,
11183    Opcode::VFREC7V,
11184    Opcode::VFREDMAXVS,
11185    Opcode::VFREDMINVS,
11186    Opcode::VFREDOSUMVS,
11187    Opcode::VFREDSUMVS,
11188    Opcode::VFREDUSUMVS,
11189    Opcode::VFRSQRT7V,
11190    Opcode::VFRSUBVF,
11191    Opcode::VFSGNJVF,
11192    Opcode::VFSGNJVV,
11193    Opcode::VFSGNJNVF,
11194    Opcode::VFSGNJNVV,
11195    Opcode::VFSGNJXVF,
11196    Opcode::VFSGNJXVV,
11197    Opcode::VFSLIDE1DOWNVF,
11198    Opcode::VFSLIDE1UPVF,
11199    Opcode::VFSQRTV,
11200    Opcode::VFSUBVF,
11201    Opcode::VFSUBVV,
11202    Opcode::VFWADDVF,
11203    Opcode::VFWADDVV,
11204    Opcode::VFWADDWF,
11205    Opcode::VFWADDWV,
11206    Opcode::VFWCVTFFV,
11207    Opcode::VFWCVTFXV,
11208    Opcode::VFWCVTFXUV,
11209    Opcode::VFWCVTRTZXFV,
11210    Opcode::VFWCVTRTZXUFV,
11211    Opcode::VFWCVTXFV,
11212    Opcode::VFWCVTXUFV,
11213    Opcode::VFWCVTBF16FFV,
11214    Opcode::VFWMACCVF,
11215    Opcode::VFWMACCVV,
11216    Opcode::VFWMACCBF16VF,
11217    Opcode::VFWMACCBF16VV,
11218    Opcode::VFWMSACVF,
11219    Opcode::VFWMSACVV,
11220    Opcode::VFWMULVF,
11221    Opcode::VFWMULVV,
11222    Opcode::VFWNMACCVF,
11223    Opcode::VFWNMACCVV,
11224    Opcode::VFWNMSACVF,
11225    Opcode::VFWNMSACVV,
11226    Opcode::VFWREDOSUMVS,
11227    Opcode::VFWREDSUMVS,
11228    Opcode::VFWREDUSUMVS,
11229    Opcode::VFWSUBVF,
11230    Opcode::VFWSUBVV,
11231    Opcode::VFWSUBWF,
11232    Opcode::VFWSUBWV,
11233    Opcode::VGHSHVV,
11234    Opcode::VGMULVV,
11235    Opcode::VIDV,
11236    Opcode::VIOTAM,
11237    Opcode::VL1RV,
11238    Opcode::VL1RE16V,
11239    Opcode::VL1RE32V,
11240    Opcode::VL1RE64V,
11241    Opcode::VL1RE8V,
11242    Opcode::VL2RV,
11243    Opcode::VL2RE16V,
11244    Opcode::VL2RE32V,
11245    Opcode::VL2RE64V,
11246    Opcode::VL2RE8V,
11247    Opcode::VL4RV,
11248    Opcode::VL4RE16V,
11249    Opcode::VL4RE32V,
11250    Opcode::VL4RE64V,
11251    Opcode::VL4RE8V,
11252    Opcode::VL8RV,
11253    Opcode::VL8RE16V,
11254    Opcode::VL8RE32V,
11255    Opcode::VL8RE64V,
11256    Opcode::VL8RE8V,
11257    Opcode::VLE16V,
11258    Opcode::VLE16FFV,
11259    Opcode::VLE1V,
11260    Opcode::VLE32V,
11261    Opcode::VLE32FFV,
11262    Opcode::VLE64V,
11263    Opcode::VLE64FFV,
11264    Opcode::VLE8V,
11265    Opcode::VLE8FFV,
11266    Opcode::VLMV,
11267    Opcode::VLOXEI16V,
11268    Opcode::VLOXEI32V,
11269    Opcode::VLOXEI64V,
11270    Opcode::VLOXEI8V,
11271    Opcode::VLSE16V,
11272    Opcode::VLSE32V,
11273    Opcode::VLSE64V,
11274    Opcode::VLSE8V,
11275    Opcode::VLUXEI16V,
11276    Opcode::VLUXEI32V,
11277    Opcode::VLUXEI64V,
11278    Opcode::VLUXEI8V,
11279    Opcode::VMACCVV,
11280    Opcode::VMACCVX,
11281    Opcode::VMADCVI,
11282    Opcode::VMADCVIM,
11283    Opcode::VMADCVV,
11284    Opcode::VMADCVVM,
11285    Opcode::VMADCVX,
11286    Opcode::VMADCVXM,
11287    Opcode::VMADDVV,
11288    Opcode::VMADDVX,
11289    Opcode::VMANDMM,
11290    Opcode::VMANDNMM,
11291    Opcode::VMANDNOTMM,
11292    Opcode::VMAXVV,
11293    Opcode::VMAXVX,
11294    Opcode::VMAXUVV,
11295    Opcode::VMAXUVX,
11296    Opcode::VMERGEVIM,
11297    Opcode::VMERGEVVM,
11298    Opcode::VMERGEVXM,
11299    Opcode::VMFEQVF,
11300    Opcode::VMFEQVV,
11301    Opcode::VMFGEVF,
11302    Opcode::VMFGTVF,
11303    Opcode::VMFLEVF,
11304    Opcode::VMFLEVV,
11305    Opcode::VMFLTVF,
11306    Opcode::VMFLTVV,
11307    Opcode::VMFNEVF,
11308    Opcode::VMFNEVV,
11309    Opcode::VMINVV,
11310    Opcode::VMINVX,
11311    Opcode::VMINUVV,
11312    Opcode::VMINUVX,
11313    Opcode::VMNANDMM,
11314    Opcode::VMNORMM,
11315    Opcode::VMORMM,
11316    Opcode::VMORNMM,
11317    Opcode::VMORNOTMM,
11318    Opcode::VMSBCVV,
11319    Opcode::VMSBCVVM,
11320    Opcode::VMSBCVX,
11321    Opcode::VMSBCVXM,
11322    Opcode::VMSBFM,
11323    Opcode::VMSEQVI,
11324    Opcode::VMSEQVV,
11325    Opcode::VMSEQVX,
11326    Opcode::VMSGTVI,
11327    Opcode::VMSGTVX,
11328    Opcode::VMSGTUVI,
11329    Opcode::VMSGTUVX,
11330    Opcode::VMSIFM,
11331    Opcode::VMSLEVI,
11332    Opcode::VMSLEVV,
11333    Opcode::VMSLEVX,
11334    Opcode::VMSLEUVI,
11335    Opcode::VMSLEUVV,
11336    Opcode::VMSLEUVX,
11337    Opcode::VMSLTVV,
11338    Opcode::VMSLTVX,
11339    Opcode::VMSLTUVV,
11340    Opcode::VMSLTUVX,
11341    Opcode::VMSNEVI,
11342    Opcode::VMSNEVV,
11343    Opcode::VMSNEVX,
11344    Opcode::VMSOFM,
11345    Opcode::VMULVV,
11346    Opcode::VMULVX,
11347    Opcode::VMULHVV,
11348    Opcode::VMULHVX,
11349    Opcode::VMULHSUVV,
11350    Opcode::VMULHSUVX,
11351    Opcode::VMULHUVV,
11352    Opcode::VMULHUVX,
11353    Opcode::VMV1RV,
11354    Opcode::VMV2RV,
11355    Opcode::VMV4RV,
11356    Opcode::VMV8RV,
11357    Opcode::VMVSX,
11358    Opcode::VMVVI,
11359    Opcode::VMVVV,
11360    Opcode::VMVVX,
11361    Opcode::VMVXS,
11362    Opcode::VMXNORMM,
11363    Opcode::VMXORMM,
11364    Opcode::VNCLIPWI,
11365    Opcode::VNCLIPWV,
11366    Opcode::VNCLIPWX,
11367    Opcode::VNCLIPUWI,
11368    Opcode::VNCLIPUWV,
11369    Opcode::VNCLIPUWX,
11370    Opcode::VNMSACVV,
11371    Opcode::VNMSACVX,
11372    Opcode::VNMSUBVV,
11373    Opcode::VNMSUBVX,
11374    Opcode::VNSRAWI,
11375    Opcode::VNSRAWV,
11376    Opcode::VNSRAWX,
11377    Opcode::VNSRLWI,
11378    Opcode::VNSRLWV,
11379    Opcode::VNSRLWX,
11380    Opcode::VORVI,
11381    Opcode::VORVV,
11382    Opcode::VORVX,
11383    Opcode::VPOPCM,
11384    Opcode::VREDANDVS,
11385    Opcode::VREDMAXVS,
11386    Opcode::VREDMAXUVS,
11387    Opcode::VREDMINVS,
11388    Opcode::VREDMINUVS,
11389    Opcode::VREDORVS,
11390    Opcode::VREDSUMVS,
11391    Opcode::VREDXORVS,
11392    Opcode::VREMVV,
11393    Opcode::VREMVX,
11394    Opcode::VREMUVV,
11395    Opcode::VREMUVX,
11396    Opcode::VREV8V,
11397    Opcode::VRGATHERVI,
11398    Opcode::VRGATHERVV,
11399    Opcode::VRGATHERVX,
11400    Opcode::VRGATHEREI16VV,
11401    Opcode::VROLVV,
11402    Opcode::VROLVX,
11403    Opcode::VRORVI,
11404    Opcode::VRORVV,
11405    Opcode::VRORVX,
11406    Opcode::VRSUBVI,
11407    Opcode::VRSUBVX,
11408    Opcode::VS1RV,
11409    Opcode::VS2RV,
11410    Opcode::VS4RV,
11411    Opcode::VS8RV,
11412    Opcode::VSADDVI,
11413    Opcode::VSADDVV,
11414    Opcode::VSADDVX,
11415    Opcode::VSADDUVI,
11416    Opcode::VSADDUVV,
11417    Opcode::VSADDUVX,
11418    Opcode::VSBCVVM,
11419    Opcode::VSBCVXM,
11420    Opcode::VSE16V,
11421    Opcode::VSE1V,
11422    Opcode::VSE32V,
11423    Opcode::VSE64V,
11424    Opcode::VSE8V,
11425    Opcode::VSETIVLI,
11426    Opcode::VSETVL,
11427    Opcode::VSETVLI,
11428    Opcode::VSEXTVF2,
11429    Opcode::VSEXTVF4,
11430    Opcode::VSEXTVF8,
11431    Opcode::VSHA2CHVV,
11432    Opcode::VSHA2CLVV,
11433    Opcode::VSHA2MSVV,
11434    Opcode::VSLIDE1DOWNVX,
11435    Opcode::VSLIDE1UPVX,
11436    Opcode::VSLIDEDOWNVI,
11437    Opcode::VSLIDEDOWNVX,
11438    Opcode::VSLIDEUPVI,
11439    Opcode::VSLIDEUPVX,
11440    Opcode::VSLLVI,
11441    Opcode::VSLLVV,
11442    Opcode::VSLLVX,
11443    Opcode::VSM3CVI,
11444    Opcode::VSM3MEVV,
11445    Opcode::VSM4KVI,
11446    Opcode::VSM4RVS,
11447    Opcode::VSM4RVV,
11448    Opcode::VSMV,
11449    Opcode::VSMULVV,
11450    Opcode::VSMULVX,
11451    Opcode::VSOXEI16V,
11452    Opcode::VSOXEI32V,
11453    Opcode::VSOXEI64V,
11454    Opcode::VSOXEI8V,
11455    Opcode::VSRAVI,
11456    Opcode::VSRAVV,
11457    Opcode::VSRAVX,
11458    Opcode::VSRLVI,
11459    Opcode::VSRLVV,
11460    Opcode::VSRLVX,
11461    Opcode::VSSE16V,
11462    Opcode::VSSE32V,
11463    Opcode::VSSE64V,
11464    Opcode::VSSE8V,
11465    Opcode::VSSRAVI,
11466    Opcode::VSSRAVV,
11467    Opcode::VSSRAVX,
11468    Opcode::VSSRLVI,
11469    Opcode::VSSRLVV,
11470    Opcode::VSSRLVX,
11471    Opcode::VSSUBVV,
11472    Opcode::VSSUBVX,
11473    Opcode::VSSUBUVV,
11474    Opcode::VSSUBUVX,
11475    Opcode::VSUBVV,
11476    Opcode::VSUBVX,
11477    Opcode::VSUXEI16V,
11478    Opcode::VSUXEI32V,
11479    Opcode::VSUXEI64V,
11480    Opcode::VSUXEI8V,
11481    Opcode::VWADDVV,
11482    Opcode::VWADDVX,
11483    Opcode::VWADDWV,
11484    Opcode::VWADDWX,
11485    Opcode::VWADDUVV,
11486    Opcode::VWADDUVX,
11487    Opcode::VWADDUWV,
11488    Opcode::VWADDUWX,
11489    Opcode::VWMACCVV,
11490    Opcode::VWMACCVX,
11491    Opcode::VWMACCSUVV,
11492    Opcode::VWMACCSUVX,
11493    Opcode::VWMACCUVV,
11494    Opcode::VWMACCUVX,
11495    Opcode::VWMACCUSVX,
11496    Opcode::VWMULVV,
11497    Opcode::VWMULVX,
11498    Opcode::VWMULSUVV,
11499    Opcode::VWMULSUVX,
11500    Opcode::VWMULUVV,
11501    Opcode::VWMULUVX,
11502    Opcode::VWREDSUMVS,
11503    Opcode::VWREDSUMUVS,
11504    Opcode::VWSLLVI,
11505    Opcode::VWSLLVV,
11506    Opcode::VWSLLVX,
11507    Opcode::VWSUBVV,
11508    Opcode::VWSUBVX,
11509    Opcode::VWSUBWV,
11510    Opcode::VWSUBWX,
11511    Opcode::VWSUBUVV,
11512    Opcode::VWSUBUVX,
11513    Opcode::VWSUBUWV,
11514    Opcode::VWSUBUWX,
11515    Opcode::VXORVI,
11516    Opcode::VXORVV,
11517    Opcode::VXORVX,
11518    Opcode::VZEXTVF2,
11519    Opcode::VZEXTVF4,
11520    Opcode::VZEXTVF8,
11521    Opcode::WFI,
11522    Opcode::WRSNTO,
11523    Opcode::WRSSTO,
11524    Opcode::XNOR,
11525    Opcode::XOR,
11526    Opcode::XORI,
11527    Opcode::XPERM4,
11528    Opcode::XPERM8,
11529    Opcode::ZEXTB,
11530    Opcode::ZEXTH,
11531    Opcode::ZEXTHRV32,
11532    Opcode::ZEXTW,
11533    Opcode::ZIP,
11534];
11535
11536pub static SHORT_OPCODE: [bool; 1039] = [
11537    false, false, false, false, false, false, false, false, false, false, false, false, false,
11538    false, false, false, false, false, false, false, false, false, false, false, false, false,
11539    false, false, false, false, false, false, false, false, false, false, false, false, false,
11540    false, false, false, false, false, false, false, false, false, false, false, false, false,
11541    false, false, false, false, false, false, false, false, false, false, false, false, false,
11542    false, false, false, false, false, false, false, false, false, false, false, false, false,
11543    false, false, false, false, false, false, false, false, false, false, false, false, true, true,
11544    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
11545    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
11546    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
11547    true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
11548    true, true, true, true, true, true, true, false, false, false, false, false, false, false,
11549    false, false, true, true, true, true, true, true, true, false, false, false, false, false,
11550    false, false, false, false, false, false, false, false, false, false, false, false, false,
11551    false, false, false, false, false, false, false, false, false, false, false, false, false,
11552    false, false, false, false, false, false, false, false, false, false, false, false, false,
11553    false, false, false, false, false, false, false, false, false, false, false, false, false,
11554    false, false, false, false, false, false, false, false, false, false, false, false, false,
11555    false, false, false, false, false, false, false, false, false, false, false, false, false,
11556    false, false, false, false, false, false, false, false, false, false, false, false, false,
11557    false, false, false, false, false, false, false, false, false, false, false, false, false,
11558    false, false, false, false, false, false, false, false, false, false, false, false, false,
11559    false, false, false, false, false, false, false, false, false, false, false, false, false,
11560    false, false, false, false, false, false, false, false, false, false, false, false, false,
11561    false, false, false, false, false, false, false, false, false, false, false, false, false,
11562    false, false, false, false, false, false, false, false, false, false, false, false, false,
11563    false, false, false, false, false, false, false, false, false, false, false, false, false,
11564    false, false, false, false, false, false, false, false, false, false, false, false, false,
11565    false, false, false, false, false, false, false, false, false, false, false, false, false,
11566    false, false, false, false, false, false, false, false, false, false, false, false, false,
11567    false, false, false, false, false, false, false, false, false, false, false, false, false,
11568    false, false, false, false, false, false, false, false, false, false, false, false, false,
11569    false, false, false, false, false, false, false, false, false, false, false, false, false,
11570    false, false, false, false, false, false, false, false, false, false, false, false, false,
11571    false, false, false, false, false, false, false, false, false, false, false, false, false,
11572    false, false, false, false, false, false, false, false, false, false, false, false, false,
11573    false, false, false, false, false, false, false, false, false, false, false, false, false,
11574    false, false, false, false, false, false, false, false, false, false, false, false, false,
11575    false, false, false, false, false, false, false, false, false, false, false, false, false,
11576    false, false, false, false, false, false, false, false, false, false, false, false, false,
11577    false, false, false, false, false, false, false, false, false, false, false, false, false,
11578    false, false, false, false, false, false, false, false, false, false, false, false, false,
11579    false, false, false, false, false, false, false, false, false, false, false, false, false,
11580    false, false, false, false, false, false, false, false, false, false, false, false, false,
11581    false, false, false, false, false, false, false, false, false, false, false, false, false,
11582    false, false, false, false, false, false, false, false, false, false, false, false, false,
11583    false, false, false, false, false, false, false, false, false, false, false, false, false,
11584    false, false, false, false, false, false, false, false, false, false, false, false, false,
11585    false, false, false, false, false, false, false, false, false, false, false, false, false,
11586    false, false, false, false, false, false, false, false, false, false, false, false, false,
11587    false, false, false, false, false, false, false, false, false, false, false, false, false,
11588    false, false, false, false, false, false, false, false, false, false, false, false, false,
11589    false, false, false, false, false, false, false, false, false, false, false, false, false,
11590    false, false, false, false, false, false, false, false, false, false, false, false, false,
11591    false, false, false, false, false, false, false, false, false, false, false, false, false,
11592    false, false, false, false, false, false, false, false, false, false, false, false, false,
11593    false, false, false, false, false, false, false, false, false, false, false, false, false,
11594    false, false, false, false, false, false, false, false, false, false, false, false, false,
11595    false, false, false, false, false, false, false, false, false, false, false, false, false,
11596    false, false, false, false, false, false, false, false, false, false, false, false, false,
11597    false, false, false, false, false, false, false, false, false, false, false, false, false,
11598    false, false, false, false, false, false, false, false, false, false, false, false, false,
11599    false, false, false, false, false, false, false, false, false, false, false, false, false,
11600    false, false, false, false, false, false, false, false, false, false, false, false, false,
11601    false, false, false, false, false, false, false, false, false, false, false, false, false,
11602    false, false, false, false, false, false, false, false, false, false, false, false, false,
11603    false, false, false, false, false, false, false, false, false, false, false, false, false,
11604    false, false, false, false, false, false, false, false, false, false, false, false, false,
11605    false, false, false, false, false, false, false, false, false, false, false, false, false,
11606    false, false, false, false, false, false, false, false, false, false, false, false, false,
11607    false, false, false, false, false, false, false, false, false, false, false, false, false,
11608    false, false, false, false, false, false, false, false, false, false, false, false, false,
11609    false, false, false, false, false, false, false, false, false, false, false, false, false,
11610    false, false, false, false, false, false, false, false, false, false, false, false, false,
11611    false, false, false, false, false, false, false, false, false, false, false, false, false,
11612    false, false, false, false, false, false, false, false, false, false, false, false, false,
11613    false, false, false, false, false, false, false, false, false, false, false, false, false,
11614    false, false, false, false, false, false, false, false, false, false, false, false, false,
11615    false, false, false, false, false, false, false, false, false, false,
11616];
11617pub const SHORT_OPCODES: [Opcode; 80] = [
11618    Opcode::CADD,
11619    Opcode::CADDI,
11620    Opcode::CADDI16SP,
11621    Opcode::CADDI4SPN,
11622    Opcode::CADDIW,
11623    Opcode::CADDW,
11624    Opcode::CAND,
11625    Opcode::CANDI,
11626    Opcode::CBEQZ,
11627    Opcode::CBNEZ,
11628    Opcode::CEBREAK,
11629    Opcode::CFLD,
11630    Opcode::CFLDSP,
11631    Opcode::CFLW,
11632    Opcode::CFLWSP,
11633    Opcode::CFSD,
11634    Opcode::CFSDSP,
11635    Opcode::CFSW,
11636    Opcode::CFSWSP,
11637    Opcode::CJ,
11638    Opcode::CJAL,
11639    Opcode::CJALR,
11640    Opcode::CJR,
11641    Opcode::CLBU,
11642    Opcode::CLD,
11643    Opcode::CLDSP,
11644    Opcode::CLH,
11645    Opcode::CLHU,
11646    Opcode::CLI,
11647    Opcode::CLUI,
11648    Opcode::CLW,
11649    Opcode::CLWSP,
11650    Opcode::CMOP1,
11651    Opcode::CMOP11,
11652    Opcode::CMOP13,
11653    Opcode::CMOP15,
11654    Opcode::CMOP3,
11655    Opcode::CMOP5,
11656    Opcode::CMOP7,
11657    Opcode::CMOP9,
11658    Opcode::CMOPN,
11659    Opcode::CMUL,
11660    Opcode::CMV,
11661    Opcode::CNOP,
11662    Opcode::CNOT,
11663    Opcode::CNTLALL,
11664    Opcode::CNTLP1,
11665    Opcode::CNTLPALL,
11666    Opcode::CNTLS1,
11667    Opcode::COR,
11668    Opcode::CSB,
11669    Opcode::CSD,
11670    Opcode::CSDSP,
11671    Opcode::CSEXTB,
11672    Opcode::CSEXTH,
11673    Opcode::CSEXTW,
11674    Opcode::CSH,
11675    Opcode::CSLLI,
11676    Opcode::CSLLIRV32,
11677    Opcode::CSRAI,
11678    Opcode::CSRAIRV32,
11679    Opcode::CSRLI,
11680    Opcode::CSRLIRV32,
11681    Opcode::CSSPOPCHKX5,
11682    Opcode::CSSPUSHX1,
11683    Opcode::CSUB,
11684    Opcode::CSUBW,
11685    Opcode::CSW,
11686    Opcode::CSWSP,
11687    Opcode::CXOR,
11688    Opcode::CZEXTB,
11689    Opcode::CZEXTH,
11690    Opcode::CZEXTW,
11691    Opcode::CMJALT,
11692    Opcode::CMMVA01S,
11693    Opcode::CMMVSA01,
11694    Opcode::CMPOP,
11695    Opcode::CMPOPRET,
11696    Opcode::CMPOPRETZ,
11697    Opcode::CMPUSH,
11698];
11699#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
11700#[repr(u32)]
11701pub enum Opcode {
11702    /// Integer add
11703    ///
11704    /// Add the value in rs1 to rs2, and store the result in rd.
11705    /// Any overflow is thrown away.
11706    ///
11707    /// # Forms
11708    /// Assembly: `add xd, xs1, xs2`
11709    ADD,
11710    /// Add unsigned word
11711    ///
11712    /// This instruction performs an XLEN-wide addition between rs2 and the
11713    /// zero-extended least-significant word of rs1.
11714    ///
11715    /// # Forms
11716    /// Assembly: `add.uw xd, xs1, xs2`
11717    ADDUW,
11718    /// Add immediate
11719    ///
11720    /// Add an immediate to the value in rs1, and store the result in rd
11721    ///
11722    /// # Forms
11723    /// Assembly: `addi xd, xs1, imm`
11724    ADDI,
11725    /// Add immediate word
11726    ///
11727    /// Add an immediate to the 32-bit value in rs1, and store the sign extended result in rd
11728    ///
11729    /// # Forms
11730    /// Assembly: `addiw xd, xs1, imm`
11731    ADDIW,
11732    /// Add word
11733    ///
11734    /// Add the 32-bit values in rs1 to rs2, and store the sign-extended result in rd.
11735    /// Any overflow is thrown away.
11736    ///
11737    /// # Forms
11738    /// Assembly: `addw xd, xs1, xs2`
11739    ADDW,
11740    /// RISC-V `aes32dsi` instruction.
11741    ///
11742    /// # Forms
11743    /// Assembly: `aes32dsi xd, xs1, xs2, bs`
11744    AES32DSI,
11745    /// RISC-V `aes32dsmi` instruction.
11746    ///
11747    /// # Forms
11748    /// Assembly: `aes32dsmi xd, xs1, xs2, bs`
11749    AES32DSMI,
11750    /// RISC-V `aes32esi` instruction.
11751    ///
11752    /// # Forms
11753    /// Assembly: `aes32esi xd, xs1, xs2, bs`
11754    AES32ESI,
11755    /// RISC-V `aes32esmi` instruction.
11756    ///
11757    /// # Forms
11758    /// Assembly: `aes32esmi xd, xs1, xs2, bs`
11759    AES32ESMI,
11760    /// RISC-V `aes64ds` instruction.
11761    ///
11762    /// # Forms
11763    /// Assembly: `aes64ds xd, xs1, xs2`
11764    AES64DS,
11765    /// RISC-V `aes64dsm` instruction.
11766    ///
11767    /// # Forms
11768    /// Assembly: `aes64dsm xd, xs1, xs2`
11769    AES64DSM,
11770    /// RISC-V `aes64es` instruction.
11771    ///
11772    /// # Forms
11773    /// Assembly: `aes64es xd, xs1, xs2`
11774    AES64ES,
11775    /// RISC-V `aes64esm` instruction.
11776    ///
11777    /// # Forms
11778    /// Assembly: `aes64esm xd, xs1, xs2`
11779    AES64ESM,
11780    /// RISC-V `aes64im` instruction.
11781    ///
11782    /// # Forms
11783    /// Assembly: `aes64im xd, xs1`
11784    AES64IM,
11785    /// RISC-V `aes64ks1i` instruction.
11786    ///
11787    /// # Forms
11788    /// Assembly: `aes64ks1i xd, xs1, rnum`
11789    AES64KS1I,
11790    /// RISC-V `aes64ks2` instruction.
11791    ///
11792    /// # Forms
11793    /// Assembly: `aes64ks2 xd, xs1, xs2`
11794    AES64KS2,
11795    /// RISC-V `amoadd.b` instruction.
11796    ///
11797    /// # Forms
11798    /// Assembly: `amoadd.b xd, xs1, xs2, aq, rl`
11799    AMOADDB,
11800    /// Atomic fetch-and-add doubleword
11801    ///
11802    /// Atomically:
11803    ///
11804    ///   * Load the doubleword at address _rs1_
11805    ///   * Write the loaded value into _rd_
11806    ///   * Add the value of register _rs2_ to the loaded value
11807    ///   * Write the sum to the address in _rs1_
11808    ///
11809    /// # Forms
11810    /// Assembly: `amoadd.d xd, xs2, (xs1)`
11811    AMOADDD,
11812    /// RISC-V `amoadd.h` instruction.
11813    ///
11814    /// # Forms
11815    /// Assembly: `amoadd.h xd, xs1, xs2, aq, rl`
11816    AMOADDH,
11817    /// Atomic fetch-and-add word
11818    ///
11819    /// Atomically:
11820    ///
11821    ///   * Load the word at address _rs1_
11822    ///   * Write the sign-extended value into _rd_
11823    ///   * Add the least-significant word of register _rs2_ to the loaded value
11824    ///   * Write the sum to the address in _rs1_
11825    ///
11826    /// # Forms
11827    /// Assembly: `amoadd.w xd, xs2, (xrs1)`
11828    AMOADDW,
11829    /// RISC-V `amoand.b` instruction.
11830    ///
11831    /// # Forms
11832    /// Assembly: `amoand.b xd, xs1, xs2, aq, rl`
11833    AMOANDB,
11834    /// Atomic fetch-and-and doubleword
11835    ///
11836    /// Atomically:
11837    ///
11838    ///   * Load the doubleword at address _rs1_
11839    ///   * Write the loaded value into _rd_
11840    ///   * AND the value of register _rs2_ to the loaded value
11841    ///   * Write the result to the address in _rs1_
11842    ///
11843    /// # Forms
11844    /// Assembly: `amoand.d xd, xs2, (xrs1)`
11845    AMOANDD,
11846    /// RISC-V `amoand.h` instruction.
11847    ///
11848    /// # Forms
11849    /// Assembly: `amoand.h xd, xs1, xs2, aq, rl`
11850    AMOANDH,
11851    /// Atomic fetch-and-and word
11852    ///
11853    /// Atomically:
11854    ///
11855    ///   * Load the word at address _rs1_
11856    ///   * Write the sign-extended value into _rd_
11857    ///   * AND the least-significant word of register _rs2_ to the loaded value
11858    ///   * Write the result to the address in _rs1_
11859    ///
11860    /// # Forms
11861    /// Assembly: `amoand.w xd, xs2, (xrs1)`
11862    AMOANDW,
11863    /// RISC-V `amocas.b` instruction.
11864    ///
11865    /// # Forms
11866    /// Assembly: `amocas.b xd, xs1, xs2, aq, rl`
11867    AMOCASB,
11868    /// RISC-V `amocas.d` instruction.
11869    ///
11870    /// # Forms
11871    /// Assembly: `amocas.d xd, xs1, xs2, aq, rl`
11872    AMOCASD,
11873    /// RISC-V `amocas.h` instruction.
11874    ///
11875    /// # Forms
11876    /// Assembly: `amocas.h xd, xs1, xs2, aq, rl`
11877    AMOCASH,
11878    /// RISC-V `amocas.q` instruction.
11879    ///
11880    /// # Forms
11881    /// Assembly: `amocas.q xd, xs1, xs2, aq, rl`
11882    AMOCASQ,
11883    /// RISC-V `amocas.w` instruction.
11884    ///
11885    /// # Forms
11886    /// Assembly: `amocas.w xd, xs1, xs2, aq, rl`
11887    AMOCASW,
11888    /// RISC-V `amomax.b` instruction.
11889    ///
11890    /// # Forms
11891    /// Assembly: `amomax.b xd, xs1, xs2, aq, rl`
11892    AMOMAXB,
11893    /// Atomic MAX doubleword
11894    ///
11895    /// Atomically:
11896    ///
11897    ///   * Load the doubleword at address _rs1_
11898    ///   * Write the loaded value into _rd_
11899    ///   * Signed compare the value of register _rs2_ to the loaded value, and select the maximum value
11900    ///   * Write the maximum to the address in _rs1_
11901    ///
11902    /// # Forms
11903    /// Assembly: `amomax.d xd, xs2, (xrs1)`
11904    AMOMAXD,
11905    /// RISC-V `amomax.h` instruction.
11906    ///
11907    /// # Forms
11908    /// Assembly: `amomax.h xd, xs1, xs2, aq, rl`
11909    AMOMAXH,
11910    /// Atomic MAX word
11911    ///
11912    /// Atomically:
11913    ///
11914    ///   * Load the word at address _rs1_
11915    ///   * Write the sign-extended value into _rd_
11916    ///   * Signed compare the least-significant word of register _rs2_ to the loaded value, and select the maximum value
11917    ///   * Write the maximum to the address in _rs1_
11918    ///
11919    /// # Forms
11920    /// Assembly: `amomax.w xd, xs2, (xrs1)`
11921    AMOMAXW,
11922    /// RISC-V `amomaxu.b` instruction.
11923    ///
11924    /// # Forms
11925    /// Assembly: `amomaxu.b xd, xs1, xs2, aq, rl`
11926    AMOMAXUB,
11927    /// Atomic MAX unsigned doubleword
11928    ///
11929    /// Atomically:
11930    ///
11931    ///   * Load the doubleword at address _rs1_
11932    ///   * Write the loaded value into _rd_
11933    ///   * Unsigned compare the value of register _rs2_ to the loaded value, and select the maximum value
11934    ///   * Write the maximum to the address in _rs1_
11935    ///
11936    /// # Forms
11937    /// Assembly: `amomaxu.d xd, xs2, (xrs1)`
11938    AMOMAXUD,
11939    /// RISC-V `amomaxu.h` instruction.
11940    ///
11941    /// # Forms
11942    /// Assembly: `amomaxu.h xd, xs1, xs2, aq, rl`
11943    AMOMAXUH,
11944    /// Atomic MAX unsigned word
11945    ///
11946    /// Atomically:
11947    ///
11948    ///   * Load the word at address _rs1_
11949    ///   * Write the sign-extended value into _rd_
11950    ///   * Unsigned compare the least-significant word of register _rs2_ to the loaded value, and select the maximum value
11951    ///   * Write the maximum to the address in _rs1_
11952    ///
11953    /// # Forms
11954    /// Assembly: `amomaxu.w xd, xs2, (xrs1)`
11955    AMOMAXUW,
11956    /// RISC-V `amomin.b` instruction.
11957    ///
11958    /// # Forms
11959    /// Assembly: `amomin.b xd, xs1, xs2, aq, rl`
11960    AMOMINB,
11961    /// Atomic MIN doubleword
11962    ///
11963    /// Atomically:
11964    ///
11965    ///   * Load the doubleword at address _rs1_
11966    ///   * Write the loaded value into _rd_
11967    ///   * Signed compare the value of register _rs2_ to the loaded value, and select the minimum value
11968    ///   * Write the minimum to the address in _rs1_
11969    ///
11970    /// # Forms
11971    /// Assembly: `amomin.d xd, xs2, (xrs1)`
11972    AMOMIND,
11973    /// RISC-V `amomin.h` instruction.
11974    ///
11975    /// # Forms
11976    /// Assembly: `amomin.h xd, xs1, xs2, aq, rl`
11977    AMOMINH,
11978    /// Atomic MIN word
11979    ///
11980    /// Atomically:
11981    ///
11982    ///   * Load the word at address _rs1_
11983    ///   * Write the sign-extended value into _rd_
11984    ///   * Signed compare the least-significant word of register _rs2_ to the loaded value, and select the minimum value
11985    ///   * Write the result to the address in _rs1_
11986    ///
11987    /// # Forms
11988    /// Assembly: `amomin.w xd, xs2, (xrs1)`
11989    AMOMINW,
11990    /// RISC-V `amominu.b` instruction.
11991    ///
11992    /// # Forms
11993    /// Assembly: `amominu.b xd, xs1, xs2, aq, rl`
11994    AMOMINUB,
11995    /// Atomic MIN unsigned doubleword
11996    ///
11997    /// Atomically:
11998    ///
11999    ///   * Load the doubleword at address _rs1_
12000    ///   * Write the loaded value into _rd_
12001    ///   * Unsigned compare the value of register _rs2_ to the loaded value, and select the minimum value
12002    ///   * Write the minimum to the address in _rs1_
12003    ///
12004    /// # Forms
12005    /// Assembly: `amominu.d xd, xs2, (xrs1)`
12006    AMOMINUD,
12007    /// RISC-V `amominu.h` instruction.
12008    ///
12009    /// # Forms
12010    /// Assembly: `amominu.h xd, xs1, xs2, aq, rl`
12011    AMOMINUH,
12012    /// Atomic MIN unsigned word
12013    ///
12014    /// Atomically:
12015    ///
12016    ///   * Load the word at address _rs1_
12017    ///   * Write the sign-extended value into _rd_
12018    ///   * Unsigned compare the least-significant word of register _rs2_ to the loaded word, and select the minimum value
12019    ///   * Write the result to the address in _rs1_
12020    ///
12021    /// # Forms
12022    /// Assembly: `amominu.w xd, xs2, (xrs1)`
12023    AMOMINUW,
12024    /// RISC-V `amoor.b` instruction.
12025    ///
12026    /// # Forms
12027    /// Assembly: `amoor.b xd, xs1, xs2, aq, rl`
12028    AMOORB,
12029    /// Atomic fetch-and-or doubleword
12030    ///
12031    /// Atomically:
12032    ///
12033    ///   * Load the doubleword at address _rs1_
12034    ///   * Write the loaded value into _rd_
12035    ///   * OR the value of register _rs2_ to the loaded value
12036    ///   * Write the result to the address in _rs1_
12037    ///
12038    /// # Forms
12039    /// Assembly: `amoor.d xd, xs2, (xrs1)`
12040    AMOORD,
12041    /// RISC-V `amoor.h` instruction.
12042    ///
12043    /// # Forms
12044    /// Assembly: `amoor.h xd, xs1, xs2, aq, rl`
12045    AMOORH,
12046    /// Atomic fetch-and-or word
12047    ///
12048    /// Atomically:
12049    ///
12050    ///   * Load the word at address _rs1_
12051    ///   * Write the sign-extended value into _rd_
12052    ///   * OR the least-significant word of register _rs2_ to the loaded value
12053    ///   * Write the result to the address in _rs1_
12054    ///
12055    /// # Forms
12056    /// Assembly: `amoor.w xd, xs2, (xrs1)`
12057    AMOORW,
12058    /// RISC-V `amoswap.b` instruction.
12059    ///
12060    /// # Forms
12061    /// Assembly: `amoswap.b xd, xs1, xs2, aq, rl`
12062    AMOSWAPB,
12063    /// Atomic SWAP doubleword
12064    ///
12065    /// Atomically:
12066    ///
12067    ///   * Load the doubleword at address _rs1_
12068    ///   * Write the value into _rd_
12069    ///   * Store the value of register _rs2_ to the address in _rs1_
12070    ///
12071    /// # Forms
12072    /// Assembly: `amoswap.d xd, xs2, (xrs1)`
12073    AMOSWAPD,
12074    /// RISC-V `amoswap.h` instruction.
12075    ///
12076    /// # Forms
12077    /// Assembly: `amoswap.h xd, xs1, xs2, aq, rl`
12078    AMOSWAPH,
12079    /// Atomic SWAP word
12080    ///
12081    /// Atomically:
12082    ///
12083    ///   * Load the word at address _rs1_
12084    ///   * Write the sign-extended value into _rd_
12085    ///   * Store the least-significant word of register _rs2_ to the address in _rs1_
12086    ///
12087    /// # Forms
12088    /// Assembly: `amoswap.w xd, xs2, (xrs1)`
12089    AMOSWAPW,
12090    /// RISC-V `amoxor.b` instruction.
12091    ///
12092    /// # Forms
12093    /// Assembly: `amoxor.b xd, xs1, xs2, aq, rl`
12094    AMOXORB,
12095    /// Atomic fetch-and-xor doubleword
12096    ///
12097    /// Atomically:
12098    ///
12099    ///   * Load the doubleword at address _rs1_
12100    ///   * Write the loaded value into _rd_
12101    ///   * XOR the value of register _rs2_ to the loaded value
12102    ///   * Write the result to the address in _rs1_
12103    ///
12104    /// # Forms
12105    /// Assembly: `amoxor.d xd, xs2, (xrs1)`
12106    AMOXORD,
12107    /// RISC-V `amoxor.h` instruction.
12108    ///
12109    /// # Forms
12110    /// Assembly: `amoxor.h xd, xs1, xs2, aq, rl`
12111    AMOXORH,
12112    /// Atomic fetch-and-xor word
12113    ///
12114    /// Atomically:
12115    ///
12116    ///   * Load the word at address _rs1_
12117    ///   * Write the sign-extended value into _rd_
12118    ///   * XOR the least-significant word of register _rs2_ to the loaded value
12119    ///   * Write the result to the address in _rs1_
12120    ///
12121    /// # Forms
12122    /// Assembly: `amoxor.w xd, xs2, (xrs1)`
12123    AMOXORW,
12124    /// And
12125    ///
12126    /// And rs1 with rs2, and store the result in rd
12127    ///
12128    /// # Forms
12129    /// Assembly: `and xd, xs1, xs2`
12130    AND,
12131    /// And immediate
12132    ///
12133    /// And an immediate to the value in rs1, and store the result in rd
12134    ///
12135    /// # Forms
12136    /// Assembly: `andi xd, xs1, imm`
12137    ANDI,
12138    /// AND with inverted operand
12139    ///
12140    /// This instruction performs the bitwise logical AND operation between `rs1` and the
12141    /// bitwise inversion of `rs2`.
12142    ///
12143    /// # Forms
12144    /// Assembly: `andn xd, xs1, xs2`
12145    ANDN,
12146    /// Add upper immediate to pc
12147    ///
12148    /// Add an immediate to the current PC.
12149    ///
12150    /// # Forms
12151    /// Assembly: `auipc xd, imm`
12152    AUIPC,
12153    /// Single-Bit clear (Register)
12154    ///
12155    /// This instruction returns rs1 with a single bit cleared at the index specified in rs2.
12156    /// The index is read from the lower log2(XLEN) bits of rs2.
12157    ///
12158    /// # Forms
12159    /// Assembly: `bclr xd, xs1, xs2`
12160    BCLR,
12161    /// Single-Bit clear (Immediate)
12162    ///
12163    /// This instruction returns rs1 with a single bit cleared at the index specified in shamt. The
12164    /// index is read from the lower log2(XLEN) bits of shamt. For RV32, the encodings corresponding
12165    /// to shamt\[5\]=1 are reserved.
12166    ///
12167    /// # Forms
12168    /// Assembly: `bclri xd, xs1, shamt`
12169    BCLRI,
12170    /// Single-Bit clear (Immediate)
12171    ///
12172    /// This instruction returns rs1 with a single bit cleared at the index specified in shamt. The
12173    /// index is read from the lower log2(XLEN) bits of shamt. For RV32, the encodings corresponding
12174    /// to shamt\[5\]=1 are reserved.
12175    ///
12176    /// # Forms
12177    /// Assembly: `bclri.rv32 xd, xs1, shamt`
12178    BCLRIRV32,
12179    /// Branch if equal
12180    ///
12181    /// Branch to PC + imm if
12182    /// the value in register rs1 is equal to the value in register rs2.
12183    ///
12184    /// Raise a `MisalignedAddress` exception if PC + imm is misaligned.
12185    ///
12186    /// # Forms
12187    /// Assembly: `beq xs1, xs2, imm`
12188    BEQ,
12189    /// RISC-V `beqz` instruction.
12190    ///
12191    /// # Forms
12192    /// Assembly: `beqz rs1 bimm12lohi`
12193    BEQZ,
12194    /// Single-Bit extract (Register)
12195    ///
12196    /// This instruction returns a single bit extracted from rs1 at the index specified in rs2.
12197    /// The index is read from the lower log2(XLEN) bits of rs2.
12198    ///
12199    /// # Forms
12200    /// Assembly: `bext xd, xs1, xs2`
12201    BEXT,
12202    /// Single-Bit extract (Immediate)
12203    ///
12204    /// This instruction returns a single bit extracted from rs1 at the index specified in rs2.
12205    /// The index is read from the lower log2(XLEN) bits of shamt. For RV32, the encodings
12206    /// corresponding to shamt\[5\]=1 are reserved.
12207    ///
12208    /// # Forms
12209    /// Assembly: `bexti xd, xs1, shamt`
12210    BEXTI,
12211    /// Single-Bit extract (Immediate)
12212    ///
12213    /// This instruction returns a single bit extracted from rs1 at the index specified in rs2.
12214    /// The index is read from the lower log2(XLEN) bits of shamt. For RV32, the encodings
12215    /// corresponding to shamt\[5\]=1 are reserved.
12216    ///
12217    /// # Forms
12218    /// Assembly: `bexti.rv32 xd, xs1, shamt`
12219    BEXTIRV32,
12220    /// Branch if greater than or equal
12221    ///
12222    /// Branch to PC + imm if
12223    /// the signed value in register rs1 is greater than or equal to the signed value in register rs2.
12224    ///
12225    /// Raise a `MisalignedAddress` exception if PC + imm is misaligned.
12226    ///
12227    /// # Forms
12228    /// Assembly: `bge xs1, xs2, imm`
12229    BGE,
12230    /// Branch if greater than or equal unsigned
12231    ///
12232    /// Branch to PC + imm if
12233    /// the unsigned value in register rs1 is greater than or equal to the unsigned value in register rs2.
12234    ///
12235    /// Raise a `MisalignedAddress` exception if PC + imm is misaligned.
12236    ///
12237    /// # Forms
12238    /// Assembly: `bgeu xs1, xs2, imm`
12239    BGEU,
12240    /// RISC-V `bgez` instruction.
12241    ///
12242    /// # Forms
12243    /// Assembly: `bgez rs1 bimm12lohi`
12244    BGEZ,
12245    /// RISC-V `bgt` instruction.
12246    ///
12247    /// # Forms
12248    /// Assembly: `bgt rs1 rs2 bimm12lohi`
12249    BGT,
12250    /// RISC-V `bgtu` instruction.
12251    ///
12252    /// # Forms
12253    /// Assembly: `bgtu rs1 rs2 bimm12lohi`
12254    BGTU,
12255    /// RISC-V `bgtz` instruction.
12256    ///
12257    /// # Forms
12258    /// Assembly: `bgtz rs2 bimm12lohi`
12259    BGTZ,
12260    /// Single-Bit invert (Register)
12261    ///
12262    /// This instruction returns rs1 with a single bit inverted at the index specified in rs2.
12263    /// The index is read from the lower log2(XLEN) bits of rs2.
12264    ///
12265    /// # Forms
12266    /// Assembly: `binv xd, xs1, xs2`
12267    BINV,
12268    /// Single-Bit invert (Immediate)
12269    ///
12270    /// This instruction returns rs1 with a single bit inverted at the index specified in shamt.
12271    /// The index is read from the lower log2(XLEN) bits of shamt.
12272    /// For RV32, the encodings corresponding to shamt\[5\]=1 are reserved.
12273    ///
12274    /// # Forms
12275    /// Assembly: `binvi xd, xs1, shamt`
12276    BINVI,
12277    /// Single-Bit invert (Immediate)
12278    ///
12279    /// This instruction returns rs1 with a single bit inverted at the index specified in shamt.
12280    /// The index is read from the lower log2(XLEN) bits of shamt.
12281    /// For RV32, the encodings corresponding to shamt\[5\]=1 are reserved.
12282    ///
12283    /// # Forms
12284    /// Assembly: `binvi.rv32 xd, xs1, shamt`
12285    BINVIRV32,
12286    /// RISC-V `ble` instruction.
12287    ///
12288    /// # Forms
12289    /// Assembly: `ble rs1 rs2 bimm12lohi`
12290    BLE,
12291    /// RISC-V `bleu` instruction.
12292    ///
12293    /// # Forms
12294    /// Assembly: `bleu rs1 rs2 bimm12lohi`
12295    BLEU,
12296    /// RISC-V `blez` instruction.
12297    ///
12298    /// # Forms
12299    /// Assembly: `blez rs2 bimm12lohi`
12300    BLEZ,
12301    /// Branch if less than
12302    ///
12303    /// Branch to PC + imm if
12304    /// the signed value in register rs1 is less than the signed value in register rs2.
12305    ///
12306    /// Raise a `MisalignedAddress` exception if PC + imm is misaligned.
12307    ///
12308    /// # Forms
12309    /// Assembly: `blt xs1, xs2, imm`
12310    BLT,
12311    /// Branch if less than unsigned
12312    ///
12313    /// Branch to PC + imm if
12314    /// the unsigned value in register rs1 is less than the unsigned value in register rs2.
12315    ///
12316    /// Raise a `MisalignedAddress` exception if PC + imm is misaligned.
12317    ///
12318    /// # Forms
12319    /// Assembly: `bltu xs1, xs2, imm`
12320    BLTU,
12321    /// RISC-V `bltz` instruction.
12322    ///
12323    /// # Forms
12324    /// Assembly: `bltz rs1 bimm12lohi`
12325    BLTZ,
12326    /// Branch if not equal
12327    ///
12328    /// Branch to PC + imm if
12329    /// the value in register rs1 is not equal to the value in register rs2.
12330    ///
12331    /// Raise a `MisalignedAddress` exception if PC + imm is misaligned.
12332    ///
12333    /// # Forms
12334    /// Assembly: `bne xs1, xs2, imm`
12335    BNE,
12336    /// RISC-V `bnez` instruction.
12337    ///
12338    /// # Forms
12339    /// Assembly: `bnez rs1 bimm12lohi`
12340    BNEZ,
12341    /// Reverse bits in bytes
12342    ///
12343    /// This instruction reverses the order of the bits in every byte of a register.
12344    ///
12345    /// # Forms
12346    /// Assembly: `brev8 xd, xs1`
12347    BREV8,
12348    /// Single-Bit set (Register)
12349    ///
12350    /// This instruction returns rs1 with a single bit set at the index specified in rs2.
12351    /// The index is read from the lower log2(XLEN) bits of rs2.
12352    ///
12353    /// # Forms
12354    /// Assembly: `bset xd, xs1, xs2`
12355    BSET,
12356    /// Single-Bit set (Immediate)
12357    ///
12358    /// This instruction returns rs1 with a single bit set at the index specified in shamt.
12359    /// The index is read from the lower log2(XLEN) bits of shamt.
12360    /// For RV32, the encodings corresponding to shamt\[5\]=1 are reserved.
12361    ///
12362    /// # Forms
12363    /// Assembly: `bseti xd, xs1, shamt`
12364    BSETI,
12365    /// Single-Bit set (Immediate)
12366    ///
12367    /// This instruction returns rs1 with a single bit set at the index specified in shamt.
12368    /// The index is read from the lower log2(XLEN) bits of shamt.
12369    /// For RV32, the encodings corresponding to shamt\[5\]=1 are reserved.
12370    ///
12371    /// # Forms
12372    /// Assembly: `bseti.rv32 xd, xs1, shamt`
12373    BSETIRV32,
12374    /// Add
12375    ///
12376    /// Add the value in rs2 to rd, and store the result in rd.
12377    /// C.ADD expands into `add rd, rd, rs2`.
12378    ///
12379    /// # Forms
12380    /// Assembly: `c.add xd, rs2`
12381    CADD,
12382    /// Add a sign-extended non-zero immediate
12383    ///
12384    /// C.ADDI adds the non-zero sign-extended 6-bit immediate to the value in register rd then writes the result to rd.
12385    /// C.ADDI expands into `addi rd, rd, imm`.
12386    /// C.ADDI is only valid when rd &ne; x0 and imm &ne; 0.
12387    /// The code points with rd=x0 encode the C.NOP instruction; the remaining code points with imm=0 encode HINTs.
12388    ///
12389    /// # Forms
12390    /// Assembly: `c.addi xd, imm`
12391    CADDI,
12392    /// Add a sign-extended non-zero immediate
12393    ///
12394    /// C.ADDI16SP adds the non-zero sign-extended 6-bit immediate to the value in the stack pointer (sp=x2), where the immediate is scaled to represent multiples of 16 in the range (-512,496).
12395    /// C.ADDI16SP is used to adjust the stack pointer in procedure prologues and epilogues.
12396    /// It expands into `addi x2, x2, nzimm\[9:4\]`.
12397    /// C.ADDI16SP is only valid when nzimm &ne; 0; the code point with nzimm=0 is reserved.
12398    ///
12399    /// # Forms
12400    /// Assembly: `c.addi16sp imm`
12401    CADDI16SP,
12402    /// Add a zero-extended non-zero immediate, scaled by 4, to the stack pointer
12403    ///
12404    /// Adds a zero-extended non-zero immediate, scaled by 4, to the stack pointer, x2, and writes the result to rd'.
12405    /// This instruction is used to generate pointers to stack-allocated variables.
12406    /// It expands to `addi rd', x2, nzuimm\[9:2\]`.
12407    /// C.ADDI4SPN is only valid when nzuimm &ne; 0; the code points with nzuimm=0 are reserved.
12408    ///
12409    /// # Forms
12410    /// Assembly: `c.addi4spn xd, imm`
12411    CADDI4SPN,
12412    /// Add a sign-extended non-zero immediate
12413    ///
12414    /// C.ADDIW is an RV64C/RV128C-only instruction that performs the same computation as C.ADDI but produces a 32-bit result, then sign-extends result to 64 bits.
12415    /// C.ADDIW expands into `addiw rd, rd, imm`.
12416    /// The immediate can be zero for C.ADDIW, where this corresponds to `sext.w rd`.
12417    /// C.ADDIW is only valid when rd &ne; x0; the code points with rd=x0 are reserved.
12418    ///
12419    /// # Forms
12420    /// Assembly: `c.addiw xd, imm`
12421    CADDIW,
12422    /// Add word
12423    ///
12424    /// Add the 32-bit values in rs2 from rd, and store the result in rd.
12425    /// The rd and rs2 register indexes should be used as rd+8 and rs2+8 (registers x8-x15).
12426    /// C.ADDW expands into `addw rd, rd, rs2`.
12427    ///
12428    /// # Forms
12429    /// Assembly: `c.addw xd, rs2`
12430    CADDW,
12431    /// And
12432    ///
12433    /// And rd with rs2, and store the result in rd
12434    /// The rd and rs2 register indexes should be used as rd+8 and rs2+8 (registers x8-x15).
12435    /// C.AND expands into `and rd, rd, rs2`.
12436    ///
12437    /// # Forms
12438    /// Assembly: `c.and xd, rs2`
12439    CAND,
12440    /// And immediate
12441    ///
12442    /// And an immediate to the value in rd, and store the result in rd.
12443    /// The rd register index should be used as rd+8 (registers x8-x15).
12444    /// C.ANDI expands into `andi rd, rd, imm`.
12445    ///
12446    /// # Forms
12447    /// Assembly: `c.andi xd, imm`
12448    CANDI,
12449    /// Branch if Equal Zero
12450    ///
12451    /// C.BEQZ performs conditional control transfers. The offset is sign-extended and added to the pc to form the branch target address. It can therefore target a &pm;256 B range. C.BEQZ takes the branch if the value in register rs1' is zero.
12452    /// It expands to `beq` `rs1, x0, offset`.
12453    ///
12454    /// # Forms
12455    /// Assembly: `c.beqz xs1, imm`
12456    CBEQZ,
12457    /// Branch if NOT Equal Zero
12458    ///
12459    /// C.BEQZ performs conditional control transfers. The offset is sign-extended and added to the pc to form the branch target address. It can therefore target a &pm;256 B range. C.BEQZ takes the branch if the value in register rs1' is NOT zero.
12460    /// It expands to `beq` `rs1, x0, offset`.
12461    ///
12462    /// # Forms
12463    /// Assembly: `c.bnez xs1, imm`
12464    CBNEZ,
12465    /// Breakpoint exception.
12466    ///
12467    /// The C.EBREAK instruction is used by debuggers to cause control to be transferred back to
12468    /// a debugging environment. Unless overridden by an external debug environment,
12469    /// C.EBREAK raises a breakpoint exception and performs no other operation.
12470    ///
12471    /// \[NOTE\]
12472    /// As described in the `C` Standard Extension for Compressed Instructions, the `c.ebreak`
12473    /// instruction performs the same operation as the EBREAK instruction.
12474    ///
12475    /// EBREAK causes the receiving privilege mode's epc register to be set to the address of
12476    /// the EBREAK instruction itself, not the address of the following instruction.
12477    /// As EBREAK causes a synchronous exception, it is not considered to retire,
12478    /// and should not increment the `minstret` CSR.
12479    ///
12480    /// # Forms
12481    /// Assembly: `c.ebreak " "`
12482    CEBREAK,
12483    /// Load double-precision
12484    ///
12485    /// Loads a double precision floating-point value from memory into register rd.
12486    /// It computes an effective address by adding the zero-extended offset, scaled by 8,
12487    /// to the base address in register rs1.
12488    /// It expands to `fld` `rd, offset(rs1)`.
12489    ///
12490    /// # Forms
12491    /// Assembly: `c.fld xd, imm(xs1)`
12492    CFLD,
12493    /// Load doubleword into floating-point register from stack
12494    ///
12495    /// Loads a double-precision floating-point value from memory into floating-point register rd.
12496    /// It computes its effective address by adding the zero-extended offset, scaled by 8,
12497    /// to the stack pointer, x2.
12498    /// It expands to `fld` `rd, offset(x2)`.
12499    ///
12500    /// # Forms
12501    /// Assembly: `c.fldsp fd, imm(sp)`
12502    CFLDSP,
12503    /// Load single-precision
12504    ///
12505    /// Loads a single precision floating-point value from memory into register rd.
12506    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12507    /// to the base address in register rs1.
12508    /// It expands to `flw` `rd, offset(rs1)`.
12509    ///
12510    /// # Forms
12511    /// Assembly: `c.flw xd, imm(xs1)`
12512    CFLW,
12513    /// Load word into floating-point register from stack
12514    ///
12515    /// Loads a single-precision floating-point value from memory into floating-point register rd.
12516    /// It computes its effective address by adding the zero-extended offset, scaled by 4,
12517    /// to the stack pointer, x2.
12518    /// It expands to `flw` `rd, offset(x2)`.
12519    ///
12520    /// # Forms
12521    /// Assembly: `c.flwsp fd, imm(sp)`
12522    CFLWSP,
12523    /// Store double-precision
12524    ///
12525    /// Stores a double precision floating-point value in register rs2 to memory.
12526    /// It computes an effective address by adding the zero-extended offset, scaled by 8,
12527    /// to the base address in register rs1.
12528    /// It expands to `fsd` `rs2, offset(rs1)`.
12529    ///
12530    /// # Forms
12531    /// Assembly: `c.fsd xs2, imm(xs1)`
12532    CFSD,
12533    /// Store double-precision value to stack
12534    ///
12535    /// Stores a double-precision floating-point value in floating-point register rs2 to memory.
12536    /// It computes an effective address by adding the zero-extended offset, scaled by 8,
12537    /// to the stack pointer, x2.
12538    /// It expands to `fsd` `rs2, offset(x2)`.
12539    ///
12540    /// # Forms
12541    /// Assembly: `c.fsdsp fs2, imm(sp)`
12542    CFSDSP,
12543    /// Store single-precision
12544    ///
12545    /// Stores a single precision floating-point value in register rs2 to memory.
12546    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12547    /// to the base address in register rs1.
12548    /// It expands to `fsw` `rs2, offset(rs1)`.
12549    ///
12550    /// # Forms
12551    /// Assembly: `c.fsw xs2, imm(xs1)`
12552    CFSW,
12553    /// Store single-precision value to stack
12554    ///
12555    /// Stores a single-precision floating-point value in floating-point register rs2 to memory.
12556    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12557    /// to the stack pointer, x2.
12558    /// It expands to `fsw` `rs2, offset(x2)`.
12559    ///
12560    /// # Forms
12561    /// Assembly: `c.fswsp fs2, imm(sp)`
12562    CFSWSP,
12563    /// Jump
12564    ///
12565    /// C.J performs an unconditional control transfer. The offset is sign-extended and added to the pc to form the jump target address. C.J can therefore target a &pm;2 KiB range.
12566    /// It expands to `jal` `x0, offset`.
12567    ///
12568    /// # Forms
12569    /// Assembly: `c.j imm`
12570    CJ,
12571    /// Jump and Link
12572    ///
12573    /// C.JAL is an RV32C-only instruction that performs the same operation as C.J, but additionally writes the address of the instruction following the jump (pc+2) to the link register, x1.
12574    /// It expands to `jal` `x1, offset`.
12575    ///
12576    /// # Forms
12577    /// Assembly: `c.jal imm`
12578    CJAL,
12579    /// Jump and Link Register.
12580    ///
12581    /// C.JALR (jump and link register) performs the same operation as C.JR, but additionally writes the address of the instruction following the jump (pc+2) to the link register, x1.
12582    /// C.JALR expands to jalr x1, 0(rs1).
12583    ///
12584    /// # Forms
12585    /// Assembly: `c.jalr xs1`
12586    CJALR,
12587    /// Jump Register
12588    ///
12589    /// C.JR (jump register) performs an unconditional control transfer to the address in register rs1.
12590    /// C.JR expands to jalr x0, 0(rs1).
12591    ///
12592    /// # Forms
12593    /// Assembly: `c.jr xs1`
12594    CJR,
12595    /// Load unsigned byte, 16-bit encoding
12596    ///
12597    /// Loads a 8-bit value from memory into register rd.
12598    /// It computes an effective address by adding the zero-extended offset, to the base address in register rs1.
12599    /// It expands to `lbu` `rd, offset(rs1)`.
12600    ///
12601    /// # Forms
12602    /// Assembly: `c.lbu xd, imm(xs1)`
12603    CLBU,
12604    /// Load double
12605    ///
12606    /// Loads a 64-bit value from memory into register rd.
12607    /// It computes an effective address by adding the zero-extended offset, scaled by 8,
12608    /// to the base address in register rs1.
12609    /// It expands to `ld` `rd, offset(rs1)`.
12610    ///
12611    /// # Forms
12612    /// Assembly: `c.ld xd, imm(xs1)`
12613    CLD,
12614    /// Load doubleword from stack pointer
12615    ///
12616    /// C.LDSP is an RV64C/RV128C-only instruction that loads a 64-bit value from memory
12617    /// into register rd.
12618    /// It computes its effective address by adding the zero-extended offset, scaled by 8,
12619    /// to the stack pointer, x2.
12620    /// It expands to `ld` `rd, offset(x2)`.
12621    /// C.LDSP is only valid when rd &ne; x0 the code points with rd=x0 are reserved.
12622    ///
12623    /// # Forms
12624    /// Assembly: `c.ldsp xd, imm(sp)`
12625    CLDSP,
12626    /// Load signed halfword, 16-bit encoding
12627    ///
12628    /// Loads a 16-bit value from memory into register rd.
12629    /// It computes an effective address by adding the zero-extended offset, to the base address in register rs1.
12630    /// It expands to `lh` `rd, offset(rs1)`.
12631    ///
12632    /// # Forms
12633    /// Assembly: `c.lh xd, imm(xs1)`
12634    CLH,
12635    /// Load unsigned halfword, 16-bit encoding
12636    ///
12637    /// Loads a 16-bit value from memory into register rd.
12638    /// It computes an effective address by adding the zero-extended offset, to the base address in register rs1.
12639    /// It expands to `lhu` `rd, offset(rs1)`.
12640    ///
12641    /// # Forms
12642    /// Assembly: `c.lhu xd, imm(xs1)`
12643    CLHU,
12644    /// Load the sign-extended 6-bit immediate
12645    ///
12646    /// C.LI loads the sign-extended 6-bit immediate, imm, into register rd.
12647    /// C.LI expands into `addi rd, x0, imm`.
12648    /// C.LI is only valid when rd &ne; x0; the code points with rd=x0 encode HINTs.
12649    ///
12650    /// # Forms
12651    /// Assembly: `c.li xd, imm`
12652    CLI,
12653    /// Load the non-zero 6-bit immediate field into bits 17-12 of the destination register
12654    ///
12655    /// C.LUI loads the non-zero 6-bit immediate field into bits 17-12 of the destination register, clears the bottom 12 bits, and sign-extends bit 17 into all higher bits of the destination.
12656    /// C.LUI expands into `lui rd, imm`.
12657    /// C.LUI is only valid when rd&ne;x0 and rd&ne;x2, and when the immediate is not equal to zero.
12658    /// The code points with imm=0 are reserved; the remaining code points with rd=x0 are HINTs; and the remaining code points with rd=x2 correspond to the C.ADDI16SP instruction
12659    ///
12660    /// # Forms
12661    /// Assembly: `c.lui xd, imm`
12662    CLUI,
12663    /// Load word
12664    ///
12665    /// Loads a 32-bit value from memory into register rd.
12666    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12667    /// to the base address in register rs1.
12668    /// It expands to `lw` `rd, offset(rs1)`.
12669    ///
12670    /// # Forms
12671    /// Assembly: `c.lw xd, imm(xs1)`
12672    CLW,
12673    /// Load word from stack pointer
12674    ///
12675    /// Loads a 32-bit value from memory into register rd.
12676    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12677    /// to the stack pointer, x2.
12678    /// It expands to `lw` `rd, offset(x2)`.
12679    /// C.LWSP is only valid when rd &ne; x0. The code points with rd=x0 are reserved.
12680    ///
12681    /// # Forms
12682    /// Assembly: `c.lwsp xd, imm(sp)`
12683    CLWSP,
12684    /// RISC-V `c.mop.1` instruction.
12685    ///
12686    /// # Forms
12687    /// Assembly: `c.mop.1`
12688    CMOP1,
12689    /// RISC-V `c.mop.11` instruction.
12690    ///
12691    /// # Forms
12692    /// Assembly: `c.mop.11`
12693    CMOP11,
12694    /// RISC-V `c.mop.13` instruction.
12695    ///
12696    /// # Forms
12697    /// Assembly: `c.mop.13`
12698    CMOP13,
12699    /// RISC-V `c.mop.15` instruction.
12700    ///
12701    /// # Forms
12702    /// Assembly: `c.mop.15`
12703    CMOP15,
12704    /// RISC-V `c.mop.3` instruction.
12705    ///
12706    /// # Forms
12707    /// Assembly: `c.mop.3`
12708    CMOP3,
12709    /// RISC-V `c.mop.5` instruction.
12710    ///
12711    /// # Forms
12712    /// Assembly: `c.mop.5`
12713    CMOP5,
12714    /// RISC-V `c.mop.7` instruction.
12715    ///
12716    /// # Forms
12717    /// Assembly: `c.mop.7`
12718    CMOP7,
12719    /// RISC-V `c.mop.9` instruction.
12720    ///
12721    /// # Forms
12722    /// Assembly: `c.mop.9`
12723    CMOP9,
12724    /// RISC-V `c.mop.n` instruction.
12725    ///
12726    /// # Forms
12727    /// Assembly: `c.mop.n c_mop_t`
12728    CMOPN,
12729    /// Multiply, 16-bit encoding
12730    ///
12731    /// This instruction multiplies XLEN bits of the source operands from rsd' and rs2' and writes the lowest XLEN bits of the result to rsd'.
12732    ///
12733    /// # Forms
12734    /// Assembly: `c.mul xd, xs2`
12735    CMUL,
12736    /// Move Register
12737    ///
12738    /// C.MV (move register) performs copy of the data in register rs2 to register rd
12739    /// C.MV expands to addi rd, x0, rs2.
12740    ///
12741    /// # Forms
12742    /// Assembly: `c.mv xd, xs2`
12743    CMV,
12744    /// Non-operation
12745    ///
12746    /// C.NOP expands into `addi x0, x0, imm`.
12747    ///
12748    /// # Forms
12749    /// Assembly: `c.nop imm`
12750    CNOP,
12751    /// Bitwise not, 16-bit encoding
12752    ///
12753    /// This instruction takes a single source/destination operand.
12754    /// This instruction takes the one's complement of rd'/rs1' and writes the result to the same register.
12755    ///
12756    /// # Forms
12757    /// Assembly: `c.not xd`
12758    CNOT,
12759    /// RISC-V `c.ntl.all` instruction.
12760    ///
12761    /// # Forms
12762    /// Assembly: `c.ntl.all`
12763    CNTLALL,
12764    /// RISC-V `c.ntl.p1` instruction.
12765    ///
12766    /// # Forms
12767    /// Assembly: `c.ntl.p1`
12768    CNTLP1,
12769    /// RISC-V `c.ntl.pall` instruction.
12770    ///
12771    /// # Forms
12772    /// Assembly: `c.ntl.pall`
12773    CNTLPALL,
12774    /// RISC-V `c.ntl.s1` instruction.
12775    ///
12776    /// # Forms
12777    /// Assembly: `c.ntl.s1`
12778    CNTLS1,
12779    /// Or
12780    ///
12781    /// Or rd with rs2, and store the result in rd
12782    /// The rd and rs2 register indexes should be used as rd+8 and rs2+8 (registers x8-x15).
12783    /// C.OR expands into `or rd, rd, rs2`.
12784    ///
12785    /// # Forms
12786    /// Assembly: `c.or xd, rs2`
12787    COR,
12788    /// Store unsigned byte, 16-bit encoding
12789    ///
12790    /// Stores a 8-bit value from register rs2 into memory.
12791    /// It computes an effective address by adding the zero-extended offset, to the base address in register rs1.
12792    /// It expands to `sb` `rs2, offset(rs1)`.
12793    ///
12794    /// # Forms
12795    /// Assembly: `c.sb xs2, imm(xs1)`
12796    CSB,
12797    /// Store double
12798    ///
12799    /// Stores a 64-bit value in register rs2 to memory.
12800    /// It computes an effective address by adding the zero-extended offset, scaled by 8,
12801    /// to the base address in register rs1.
12802    /// It expands to `sd` `rs2, offset(rs1)`.
12803    ///
12804    /// # Forms
12805    /// Assembly: `c.sd xs2, imm(xs1)`
12806    CSD,
12807    /// Store doubleword to stack
12808    ///
12809    /// Stores a 64-bit value in register rs2 to memory.
12810    /// It computes an effective address by adding the zero-extended offset, scaled by 8,
12811    /// to the stack pointer, x2.
12812    /// It expands to `sd` `rs2, offset(x2)`.
12813    ///
12814    /// # Forms
12815    /// Assembly: `c.sdsp xs2, imm(sp)`
12816    CSDSP,
12817    /// Sign-extend byte, 16-bit encoding
12818    ///
12819    /// This instruction takes a single source/destination operand.
12820    /// This instruction sign-extends the least-significant byte of the source to XLEN by copying
12821    /// the most-significant bit in the byte (i.e., bit 7) to all of the more-significant bits.
12822    ///
12823    /// # Forms
12824    /// Assembly: `c.sext.b xd`
12825    CSEXTB,
12826    /// Sign-extend halfword, 16-bit encoding
12827    ///
12828    /// This instruction takes a single source/destination operand.
12829    /// This instruction sign-extends the least-significant halfword of the source to XLEN by copying
12830    /// the most-significant bit in the halfword (i.e., bit 15) to all of the more-significant bits.
12831    ///
12832    /// # Forms
12833    /// Assembly: `c.sext.h xd`
12834    CSEXTH,
12835    /// RISC-V `c.sext.w` instruction.
12836    ///
12837    /// # Forms
12838    /// Assembly: `c.sext.w rd_rs1_n0`
12839    CSEXTW,
12840    /// Store unsigned halfword, 16-bit encoding
12841    ///
12842    /// Stores a 16-bit value from register rs2 into memory.
12843    /// It computes an effective address by adding the zero-extended offset, to the base address in register rs1.
12844    /// It expands to `sh` `rs2, offset(rs1)`.
12845    ///
12846    /// # Forms
12847    /// Assembly: `c.sh xs2, imm(xs1)`
12848    CSH,
12849    /// Shift left logical immediate
12850    ///
12851    /// Shift the value in rd left by shamt, and store the result back in rd.
12852    /// C.SLLI expands into `slli rd, rd, shamt`.
12853    ///
12854    /// # Forms
12855    /// Assembly: `c.slli xd, shamt`
12856    CSLLI,
12857    /// Shift left logical immediate
12858    ///
12859    /// Shift the value in rd left by shamt, and store the result back in rd.
12860    /// C.SLLI expands into `slli rd, rd, shamt`.
12861    ///
12862    /// # Forms
12863    /// Assembly: `c.slli.rv32 xd, shamt`
12864    CSLLIRV32,
12865    /// Shift right arithmetical immediate
12866    ///
12867    /// Arithmetic shift (the original sign bit is copied into the vacated upper bits) the value in rd right by shamt, and store the result in rd.
12868    /// The rd register index should be used as rd+8 (registers x8-x15).
12869    /// C.SRAI expands into `srai rd, rd, shamt`.
12870    ///
12871    /// # Forms
12872    /// Assembly: `c.srai xd, shamt`
12873    CSRAI,
12874    /// Shift right arithmetical immediate
12875    ///
12876    /// Arithmetic shift (the original sign bit is copied into the vacated upper bits) the value in rd right by shamt, and store the result in rd.
12877    /// The rd register index should be used as rd+8 (registers x8-x15).
12878    /// C.SRAI expands into `srai rd, rd, shamt`.
12879    ///
12880    /// # Forms
12881    /// Assembly: `c.srai.rv32 xd, shamt`
12882    CSRAIRV32,
12883    /// Shift right logical immediate
12884    ///
12885    /// Shift the value in rd right by shamt, and store the result back in rd.
12886    /// The rd register index should be used as rd+8 (registers x8-x15).
12887    /// C.SRLI expands into `srli rd, rd, shamt`.
12888    ///
12889    /// # Forms
12890    /// Assembly: `c.srli xd, shamt`
12891    CSRLI,
12892    /// Shift right logical immediate
12893    ///
12894    /// Shift the value in rd right by shamt, and store the result back in rd.
12895    /// The rd register index should be used as rd+8 (registers x8-x15).
12896    /// C.SRLI expands into `srli rd, rd, shamt`.
12897    ///
12898    /// # Forms
12899    /// Assembly: `c.srli.rv32 xd, shamt`
12900    CSRLIRV32,
12901    /// RISC-V `c.sspopchk.x5` instruction.
12902    ///
12903    /// # Forms
12904    /// Assembly: `c.sspopchk.x5`
12905    CSSPOPCHKX5,
12906    /// RISC-V `c.sspush.x1` instruction.
12907    ///
12908    /// # Forms
12909    /// Assembly: `c.sspush.x1`
12910    CSSPUSHX1,
12911    /// Subtract
12912    ///
12913    /// Subtract the value in rs2 from rd, and store the result in rd.
12914    /// The rd and rs2 register indexes should be used as rd+8 and rs2+8 (registers x8-x15).
12915    /// C.SUB expands into `sub rd, rd, rs2`.
12916    ///
12917    /// # Forms
12918    /// Assembly: `c.sub xd, rs2`
12919    CSUB,
12920    /// Subtract word
12921    ///
12922    /// Subtract the 32-bit values in rs2 from rd, and store the result in rd.
12923    /// The rd and rs2 register indexes should be used as rd+8 and rs2+8 (registers x8-x15).
12924    /// C.SUBW expands into `subw rd, rd, rs2`.
12925    ///
12926    /// # Forms
12927    /// Assembly: `c.subw xd, rs2`
12928    CSUBW,
12929    /// Store word
12930    ///
12931    /// Stores a 32-bit value in register rs2 to memory.
12932    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12933    /// to the base address in register rs1.
12934    /// It expands to `sw` `rs2, offset(rs1)`.
12935    ///
12936    /// # Forms
12937    /// Assembly: `c.sw xs2, imm(xs1)`
12938    CSW,
12939    /// Store word to stack
12940    ///
12941    /// Stores a 32-bit value in register rs2 to memory.
12942    /// It computes an effective address by adding the zero-extended offset, scaled by 4,
12943    /// to the stack pointer, x2.
12944    /// It expands to `sw` `rs2, offset(x2)`.
12945    ///
12946    /// # Forms
12947    /// Assembly: `c.swsp xs2, imm(sp)`
12948    CSWSP,
12949    /// Exclusive Or
12950    ///
12951    /// Exclusive or rd with rs2, and store the result in rd
12952    /// The rd and rs2 register indexes should be used as rd+8 and rs2+8 (registers x8-x15).
12953    /// C.XOR expands into `xor rd, rd, rs2`.
12954    ///
12955    /// # Forms
12956    /// Assembly: `c.xor xd, rs2`
12957    CXOR,
12958    /// Zero-extend byte, 16-bit encoding
12959    ///
12960    /// This instruction takes a single source/destination operand.
12961    /// This instruction zero-extends the least-significant byte of the source to XLEN by inserting
12962    /// 0's into all of the bits more significant than 7.
12963    ///
12964    /// # Forms
12965    /// Assembly: `c.zext.b xd`
12966    CZEXTB,
12967    /// Zero-extend halfword, 16-bit encoding
12968    ///
12969    /// This instruction takes a single source/destination operand.
12970    /// This instruction zero-extends the least-significant halfword of the source to XLEN by inserting
12971    /// 0's into all of the bits more significant than 15.
12972    ///
12973    /// # Forms
12974    /// Assembly: `c.zext.h xd`
12975    CZEXTH,
12976    /// Zero-extend word, 16-bit encoding
12977    ///
12978    /// This instruction takes a single source/destination operand.
12979    /// It zero-extends the least-significant word of the operand to XLEN bits by inserting zeros into all of the bits more significant than 31.
12980    ///
12981    /// # Forms
12982    /// Assembly: `c.zext.w xd`
12983    CZEXTW,
12984    /// Cache Block Clean
12985    ///
12986    /// Cleans an entire cache block globally throughout the system.
12987    ///
12988    /// Exactly what happens is coherence protocol-dependent, but in general it is expected that after this
12989    /// operation():
12990    ///
12991    ///   * The cache block will be in the clean (not dirty) state in any coherent cache holding a valid copy of the line.
12992    ///   * The data will be cleaned to a point such that an incoherent load can observe the cleaned data.
12993    ///
12994    /// `cbo.clean` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
12995    ///
12996    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &gt; \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
12997    /// Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.clean` has UNSPECIFIED behavior.
12998    /// &lt;%- end -%&gt;
12999    ///
13000    /// Clean operations are treated as stores for page and access permissions. If permission checks fail,
13001    /// one of the following exceptions will occur:
13002    ///
13003    ///   &lt;%- if ext?(:H) -%&gt;
13004    ///   * `Store/AMO Guest-Page Fault` if virtual memory translation fails during G-stage translation.
13005    ///   &lt;%- end -%&gt;
13006    ///   * `Store/AMO Page Fault` if virtual memory translation fails &lt;% if ext?(:H) %&gt;when V=0 or during VS-stage translation&lt;% end %&gt;
13007    ///   * `Store/AMO Access Fault` if a PMP or PMA access check fails
13008    ///
13009    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &lt;= \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13010    /// Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
13011    /// and PMA access checks only need to check a single address in the line.
13012    /// &lt;%- end -%&gt;
13013    ///
13014    /// CBO operations never raise a misaligned address fault.
13015    ///
13016    /// # Forms
13017    /// Assembly: `cbo.clean "TODO"`
13018    CBOCLEAN,
13019    /// Cache Block Flush
13020    ///
13021    /// Flushes an entire cache block by cleaning it and then invalidating it in all caches.
13022    ///
13023    /// `cbo.flush` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
13024    ///
13025    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &gt; \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13026    /// Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.flush` has UNSPECIFIED behavior.
13027    /// &lt;%- end -%&gt;
13028    ///
13029    /// Flush operations are treated as stores for page and access permissions. If permission checks fail,
13030    /// one of the following exceptions will occur:
13031    ///
13032    ///   &lt;%- if ext?(:H) -%&gt;
13033    ///   * `Store/AMO Guest-Page Fault` if virtual memory translation fails during G-stage translation.
13034    ///   &lt;%- end -%&gt;
13035    ///   * `Store/AMO Page Fault` if virtual memory translation fails &lt;% if ext?(:H) %&gt;when V=0 or during VS-stage translation&lt;% end %&gt;
13036    ///   * `Store/AMO Access Fault` if a PMP or PMA access check fails.
13037    ///
13038    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &lt;= \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13039    /// Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
13040    /// and PMA access checks only need to check a single address in the line.
13041    /// &lt;%- end -%&gt;
13042    ///
13043    /// CBO operations never raise a misaligned address fault.
13044    ///
13045    /// # Forms
13046    /// Assembly: `cbo.flush "TODO"`
13047    CBOFLUSH,
13048    /// Cache Block Invalidate
13049    ///
13050    /// Either invalidates or flushes (clean + invalidate) a cache block, depending on the current mode and value of
13051    /// `menvcfg.CBIE`, `senvcfg.CBIE`, and/or `henvcfg.CBIE`.
13052    ///
13053    /// The instruction is an invalidate (without a clean) when:
13054    ///
13055    ///   * In M-mode
13056    ///   * In (H)S-mode and `menvcfg.CBIE` == 11
13057    ///   * In U-mode and `menvcfg.CBIE` == 11 and `senvcfg.CBIE` == 11
13058    ///   * In VS-mode and `menvcfg.CBIE` == 11 and `henvcfg.CBIE` == 11
13059    ///   * In VU-mode and `menvcfg.CBIE` == 11 and `henvcfg.CBIE` == 11 and `senvcfg.CBIE` == 11
13060    ///
13061    /// Otherwise, if the instruction does not trap (see Access section), the operation is a flush.
13062    /// The table below summarizes the options.
13063    ///
13064    /// \[%autowidth,cols="1,1,1,1,1,1,1,1",separator="!"\]
13065    /// !===
13066    /// .2+h!\[.rotate\]#`menvcfg.CBIE`# .2+h! \[.rotate\]#`senvcfg.CBIE`# .2+h! \[.rotate\]#`henvcfg.CBIE`#
13067    /// 5+^.&gt;h! `cbe.inval` Operation
13068    /// .^h! M-mode .^h! S-mode .^h! U-mode .^h! VS-mode .^h! VU-mode
13069    ///
13070    /// ! 00 ! - ! - ! Invalidate ! `Illegal Instruction` ! `Illegal Instruction` ! `Virtual Instruction` ! `Virtual Instruction`
13071    /// ! 01 ! 00 ! 00 ! Invalidate ! Flush  ! `Illegal Instruction` ! `Virtual Instruction` ! `Virtual Instruction`
13072    /// ! 01 ! 00 ! 01 ! Invalidate ! Flush  ! `Illegal Instruction` ! Flush ! `Virtual Instruction`
13073    /// ! 01 ! 00 ! 11 ! Invalidate ! Flush  ! `Illegal Instruction` ! Flush ! `Virtual Instruction`
13074    /// ! 01 ! 01 ! 00 ! Invalidate ! Flush  ! Flush ! `Virtual Instruction` ! `Virtual Instruction`
13075    /// ! 01 ! 01 ! 01 ! Invalidate ! Flush  ! Flush ! Flush ! Flush
13076    /// ! 01 ! 01 ! 11 ! Invalidate ! Flush  ! Flush ! Flush ! Flush
13077    /// ! 01 ! 11 ! 00 ! Invalidate ! Flush  ! Flush ! `Virtual Instruction` ! `Virtual Instruction`
13078    /// ! 01 ! 11 ! 01 ! Invalidate ! Flush  ! Flush ! Flush ! Flush
13079    /// ! 01 ! 11 ! 11 ! Invalidate ! Flush  ! Flush ! Flush ! Flush
13080    /// ! 11 ! 00 ! 00  ! Invalidate ! Invalidate  ! `Illegal Instruction` ! `Virtual Instruction` ! `Virtual Instruction`
13081    /// ! 11 ! 00 ! 01  ! Invalidate ! Invalidate  ! `Illegal Instruction` ! Flush ! `Virtual Instruction`
13082    /// ! 11 ! 00 ! 11  ! Invalidate ! Invalidate  ! `Illegal Instruction` ! Invalidate ! `Virtual Instruction`
13083    /// ! 11 ! 01 ! 00 ! Invalidate ! Invalidate  ! Flush ! `Virtual Instruction` ! `Virtual Instruction`
13084    /// ! 11 ! 01 ! 01 ! Invalidate ! Invalidate  ! Flush ! Flush ! Flush
13085    /// ! 11 ! 01 ! 11 ! Invalidate ! Invalidate  ! Flush ! Invalidate ! Flush
13086    /// ! 11 ! 11 ! 00 ! Invalidate ! Invalidate  ! Invalidate ! `Virtual Instruction` ! `Virtual Instruction`
13087    /// ! 11 ! 11 ! 01 ! Invalidate ! Invalidate  ! Invalidate ! Flush ! Flush
13088    /// ! 11 ! 11 ! 11 ! Invalidate ! Invalidate  ! Invalidate ! Invalidate ! Invalidate
13089    /// !===
13090    ///
13091    /// `cbo.inval` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
13092    ///
13093    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &gt; \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13094    /// Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.zero` has UNSPECIFIED behavior.
13095    /// &lt;%- end -%&gt;
13096    ///
13097    /// Invalidate operations are treated as stores for page and access permissions. If permission checks fail,
13098    /// one of the following exceptions will occur:
13099    ///
13100    ///   &lt;%- if ext?(:H) -%&gt;
13101    ///   * `Store/AMO Guest-Page Fault` if virtual memory translation fails during G-stage translation.
13102    ///   &lt;%- end -%&gt;
13103    ///   * `Store/AMO Page Fault` if virtual memory translation fails &lt;% if ext?(:H) %&gt;when V=0 or during VS-stage translation&lt;% end %&gt;
13104    ///   * `Store/AMO Access Fault` if a PMP or PMA access check fails.
13105    ///
13106    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &lt;= \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13107    /// Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
13108    /// and PMA access checks only need to check a single address in the line.
13109    /// &lt;%- end -%&gt;
13110    ///
13111    /// CBO operations never raise a misaligned address fault.
13112    ///
13113    /// # Forms
13114    /// Assembly: `cbo.inval "TODO"`
13115    CBOINVAL,
13116    /// Cache Block Zero
13117    ///
13118    /// Zeros an entire cache block
13119    ///
13120    /// The block zeroing does not need to be atomic.
13121    ///
13122    /// `cbo.zero` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
13123    ///
13124    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &gt; \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13125    /// Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.zero` has UNSPECIFIED behavior.
13126    /// &lt;%- end -%&gt;
13127    ///
13128    /// Clean operations are treated as stores for page and access permissions. If permission checks fail,
13129    /// one of the following exceptions will occur:
13130    ///
13131    ///   &lt;%- if ext?(:H) -%&gt;
13132    ///   * `Store/AMO Guest-Page Fault` if virtual memory translation fails during G-stage translation.
13133    ///   &lt;%- end -%&gt;
13134    ///   * `Store/AMO Page Fault` if virtual memory translation fails &lt;% if ext?(:H) %&gt;when V=0 or during VS-stage translation&lt;% end %&gt;
13135    ///   * `Store/AMO Access Fault` if a PMP or PMA access check fails.
13136    ///
13137    /// &lt;%- if CACHE_BLOCK_SIZE.bit_length &lt;= \[PMP_GRANULARITY, PMA_GRANULARITY\].min -%&gt;
13138    /// Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
13139    /// and PMA access checks only need to check a single address in the line.
13140    /// &lt;%- end -%&gt;
13141    ///
13142    /// CBO operations never raise a misaligned address fault.
13143    ///
13144    /// # Forms
13145    /// Assembly: `cbo.zero "TODO"`
13146    CBOZERO,
13147    /// Carry-less multiply (low-part)
13148    ///
13149    /// `clmul` produces the lower half of the 2*XLEN carry-less product
13150    ///
13151    /// # Forms
13152    /// Assembly: `clmul xd, xs1, xs2`
13153    CLMUL,
13154    /// Carry-less multiply (high-part)
13155    ///
13156    /// `clmulh` produces the upper half of the 2*XLEN carry-less product
13157    ///
13158    /// # Forms
13159    /// Assembly: `clmulh xd, xs1, xs2`
13160    CLMULH,
13161    /// Carry-less multiply (reversed)
13162    ///
13163    /// `clmulr` produces bits 2*XLEN-2:XLEN-1 of the 2*XLEN carry-less product
13164    ///
13165    /// # Forms
13166    /// Assembly: `clmulr xd, xs1, xs2`
13167    CLMULR,
13168    /// Count leading zero bits
13169    ///
13170    /// This instruction counts the number of 0's before the first 1,
13171    /// starting at the most-significant bit (i.e., XLEN-1) and progressing to bit 0.
13172    /// Accordingly, if the input is 0, the output is XLEN, and if the most-significant
13173    /// bit of the input is a 1, the output is 0.
13174    ///
13175    /// # Forms
13176    /// Assembly: `clz xd, xs1`
13177    CLZ,
13178    /// Count leading zero bits in word
13179    ///
13180    /// This instruction counts the number of 0's before the first 1 starting at bit 31 and progressing to bit 0.
13181    /// Accordingly, if the least-significant word is 0, the output is 32, and if the most-significant
13182    /// bit of the word (_i.e._, bit 31) is a 1, the output is 0.
13183    ///
13184    /// # Forms
13185    /// Assembly: `clzw xd, xs1`
13186    CLZW,
13187    /// RISC-V `cm.jalt` instruction.
13188    ///
13189    /// # Forms
13190    /// Assembly: `cm.jalt c_index`
13191    CMJALT,
13192    /// Move two s0-s7 registers into a0-a1
13193    ///
13194    /// This instruction moves r1s' into a0 and r2s' into a1. The execution is atomic, so it is not possible to observe state where only one of a0 or a1 have been updated.
13195    /// The encoding uses sreg number specifiers instead of xreg number specifiers to save encoding space. The mapping between them is specified in the pseudo-code below.
13196    ///
13197    /// # Forms
13198    /// Assembly: `cm.mva01s r1s, r2s`
13199    CMMVA01S,
13200    /// Move a0-a1 into two registers of s0-s7
13201    ///
13202    /// This instruction moves a0 into r1s' and a1 into r2s'. r1s' and r2s' must be different.
13203    /// The execution is atomic, so it is not possible to observe state where only one of r1s' or r2s' has been updated.
13204    /// The encoding uses sreg number specifiers instead of xreg number specifiers to save encoding space.
13205    /// The mapping between them is specified in the pseudo-code below.
13206    ///
13207    /// # Forms
13208    /// Assembly: `cm.mvsa01 r1s, r2s`
13209    CMMVSA01,
13210    /// Destroy function call stack frame
13211    ///
13212    /// Destroy stack frame: load `ra` and 0 to 12 saved registers from the stack frame, deallocate the stack frame.
13213    /// This instruction pops (loads) the registers in `reg_list` from stack memory, and then adjusts the stack pointer by `stack_adj`.
13214    ///
13215    /// Restrictions on stack_adj:
13216    ///
13217    /// * it must be enough to store all of the listed registers
13218    /// * it must be a multiple of 16 (bytes):
13219    /// ** for RV32 the allowed values are: 16, 32, 48, 64, 80, 96, 112
13220    /// ** for RV64 the allowed values are: 16, 32, 48, 64, 80, 96, 112, 128, 144, 160
13221    ///
13222    /// # Forms
13223    /// Assembly: `cm.pop reg_list, stack_adj`
13224    CMPOP,
13225    /// Destroy function call stack frame and return to `ra`.
13226    ///
13227    /// Destroy stack frame: load `ra` and 0 to 12 saved registers from the stack frame, deallocate the stack frame, return to `ra`.
13228    /// This instruction pops (loads) the registers in `reg_list` from stack memory, and then adjusts the stack pointer by `stack_adj` and then return to `ra`.
13229    ///
13230    /// Restrictions on stack_adj:
13231    ///
13232    /// * it must be enough to store all of the listed registers
13233    /// * it must be a multiple of 16 (bytes):
13234    /// ** for RV32 the allowed values are: 16, 32, 48, 64, 80, 96, 112
13235    /// ** for RV64 the allowed values are: 16, 32, 48, 64, 80, 96, 112, 128, 144, 160
13236    ///
13237    /// # Forms
13238    /// Assembly: `cm.popret reg_list, stack_adj`
13239    CMPOPRET,
13240    /// Destroy function call stack frame, move zero to `a0` and return to `ra`.
13241    ///
13242    /// Destroy stack frame: load `ra` and 0 to 12 saved registers from the stack frame, deallocate the stack frame, move zero to `a0`, return to `ra`.
13243    /// This instruction pops (loads) the registers in `reg_list` from stack memory, and then adjusts the stack pointer by `stack_adj`, move zero to `a0` and then return to `ra`.
13244    ///
13245    /// Restrictions on stack_adj:
13246    ///
13247    /// * it must be enough to store all of the listed registers
13248    /// * it must be a multiple of 16 (bytes):
13249    /// ** for RV32 the allowed values are: 16, 32, 48, 64, 80, 96, 112
13250    /// ** for RV64 the allowed values are: 16, 32, 48, 64, 80, 96, 112, 128, 144, 160
13251    ///
13252    /// # Forms
13253    /// Assembly: `cm.popretz reg_list, stack_adj`
13254    CMPOPRETZ,
13255    /// Create function call stack frame
13256    ///
13257    /// Create stack frame: store `ra` and 0 to 12 saved registers to the stack frame, optionally allocate additional stack space.
13258    /// This instruction pushes (stores) the registers in `reg_list` to the memory below the stack pointer,
13259    /// and then creates the stack frame by decrementing the stack pointer by `stack_adj`.
13260    ///
13261    /// Restrictions on stack_adj:
13262    ///
13263    /// * it must be enough to store all of the listed registers
13264    /// * it must be a multiple of 16 (bytes):
13265    /// ** for RV32 the allowed values are: 16, 32, 48, 64, 80, 96, 112
13266    /// ** for RV64 the allowed values are: 16, 32, 48, 64, 80, 96, 112, 128, 144, 160
13267    ///
13268    /// # Forms
13269    /// Assembly: `cm.push reg_list, -stack_adj`
13270    CMPUSH,
13271    /// Count set bits
13272    ///
13273    /// This instructions counts the number of 1's (i.e., set bits) in the source register.
13274    ///
13275    /// .Software Hint
13276    /// \[NOTE\]
13277    /// ----
13278    /// This operations is known as population count, popcount, sideways sum,
13279    /// bit summation, or Hamming weight.
13280    ///
13281    /// The GCC builtin function `__builtin_popcount (unsigned int x)` is
13282    /// implemented by cpop on RV32 and by cpopw on RV64. The GCC builtin
13283    /// function `__builtin_popcountl (unsigned long x)` for LP64 is
13284    /// implemented by cpop on RV64.
13285    /// ----
13286    ///
13287    /// # Forms
13288    /// Assembly: `cpop xd, xs1`
13289    CPOP,
13290    /// Count set bits in word
13291    ///
13292    /// This instructions counts the number of 1's (i.e., set bits) in the least-significant word of the source register.
13293    ///
13294    /// .Software Hint
13295    /// \[NOTE\]
13296    /// ----
13297    /// This operations is known as population count, popcount, sideways sum,
13298    /// bit summation, or Hamming weight.
13299    ///
13300    /// The GCC builtin function `__builtin_popcount (unsigned int x)` is
13301    /// implemented by cpop on RV32 and by cpopw on RV64. The GCC builtin
13302    /// function `__builtin_popcountl (unsigned long x)` for LP64 is
13303    /// implemented by cpop on RV64.
13304    /// ----
13305    ///
13306    /// # Forms
13307    /// Assembly: `cpopw xd, xs1`
13308    CPOPW,
13309    /// RISC-V `csrc` instruction.
13310    ///
13311    /// # Forms
13312    /// Assembly: `csrc rs1 csr`
13313    CSRC,
13314    /// RISC-V `csrci` instruction.
13315    ///
13316    /// # Forms
13317    /// Assembly: `csrci csr zimm5`
13318    CSRCI,
13319    /// RISC-V `csrr` instruction.
13320    ///
13321    /// # Forms
13322    /// Assembly: `csrr rd csr`
13323    CSRR,
13324    /// RISC-V `csrrc` instruction.
13325    ///
13326    /// # Forms
13327    /// Assembly: `csrrc xd, xs1, csr`
13328    CSRRC,
13329    /// RISC-V `csrrci` instruction.
13330    ///
13331    /// # Forms
13332    /// Assembly: `csrrci xd, csr, imm`
13333    CSRRCI,
13334    /// Atomic Read and Set Bits in CSR
13335    ///
13336    /// Atomically read and set bits in a CSR.
13337    ///
13338    /// Reads the value of the CSR, zero-extends the value to `XLEN` bits,
13339    /// and writes it to integer register `rd`. The initial value in integer
13340    /// register `rs1` is treated as a bit mask that specifies bit positions
13341    /// to be set in the CSR. Any bit that is high in `rs1` will cause the
13342    /// corresponding bit to be set in the CSR, if that CSR bit is writable.
13343    /// Other bits in the CSR are not explicitly written.
13344    ///
13345    /// # Forms
13346    /// Assembly: `csrrs xd, xs1, csr`
13347    CSRRS,
13348    /// RISC-V `csrrsi` instruction.
13349    ///
13350    /// # Forms
13351    /// Assembly: `csrrsi xd, csr, imm`
13352    CSRRSI,
13353    /// Atomic Read/Write CSR
13354    ///
13355    /// Atomically swap values in the CSRs and integer registers.
13356    ///
13357    /// Read the old value of the CSR, zero-extends the value to `XLEN` bits,
13358    /// and then write it to integer register rd.
13359    /// The initial value in rs1 is written to the CSR.
13360    /// If `rd=x0`, then the instruction shall not read the CSR and shall not
13361    /// cause any of the side effects that might occur on a CSR read.
13362    ///
13363    /// # Forms
13364    /// Assembly: `csrrw xd, xs1, csr`
13365    CSRRW,
13366    /// Atomic Read/Write CSR Immediate
13367    ///
13368    /// Atomically write CSR using a 5-bit immediate, and load the previous value into 'rd'.
13369    ///
13370    /// Read the old value of the CSR, zero-extends the value to `XLEN` bits,
13371    /// and then write it to integer register rd.
13372    /// The 5-bit uimm field is zero-extended and written to the CSR.
13373    /// If `rd=x0`, then the instruction shall not read the CSR and shall not
13374    /// cause any of the side effects that might occur on a CSR read.
13375    ///
13376    /// # Forms
13377    /// Assembly: `csrrwi xd, zimm, csr`
13378    CSRRWI,
13379    /// RISC-V `csrs` instruction.
13380    ///
13381    /// # Forms
13382    /// Assembly: `csrs rs1 csr`
13383    CSRS,
13384    /// RISC-V `csrsi` instruction.
13385    ///
13386    /// # Forms
13387    /// Assembly: `csrsi csr zimm5`
13388    CSRSI,
13389    /// RISC-V `csrw` instruction.
13390    ///
13391    /// # Forms
13392    /// Assembly: `csrw rs1 csr`
13393    CSRW,
13394    /// RISC-V `csrwi` instruction.
13395    ///
13396    /// # Forms
13397    /// Assembly: `csrwi csr zimm5`
13398    CSRWI,
13399    /// Count trailing zero bits
13400    ///
13401    /// This instruction counts the number of 0's before the first 1,
13402    /// starting at the least-significant bit (i.e., 0) and progressing
13403    /// to the most-significant bit (i.e., XLEN-1). Accordingly, if the
13404    /// input is 0, the output is XLEN, and if the least-significant bit
13405    /// of the input is a 1, the output is 0.
13406    ///
13407    /// # Forms
13408    /// Assembly: `ctz xd, xs1`
13409    CTZ,
13410    /// Count trailing zero bits in word
13411    ///
13412    /// This instruction counts the number of 0's before the first 1,
13413    /// starting at the least-significant bit (i.e., 0) and progressing
13414    /// to the most-significant bit of the least-significant word (i.e., 31). Accordingly, if the
13415    /// least-significant word is 0, the output is 32, and if the least-significant bit
13416    /// of the input is a 1, the output is 0.
13417    ///
13418    /// # Forms
13419    /// Assembly: `ctzw xd, xs1`
13420    CTZW,
13421    /// RISC-V `czero.eqz` instruction.
13422    ///
13423    /// # Forms
13424    /// Assembly: `czero.eqz xd, xs1, xs2`
13425    CZEROEQZ,
13426    /// RISC-V `czero.nez` instruction.
13427    ///
13428    /// # Forms
13429    /// Assembly: `czero.nez xd, xs1, xs2`
13430    CZERONEZ,
13431    /// Signed division
13432    ///
13433    /// Divide rs1 by rs2, and store the result in rd. The remainder is discarded.
13434    ///
13435    /// Division by zero will put -1 into rd.
13436    ///
13437    /// Division resulting in signed overflow (when most negative number is divided by -1)
13438    /// will put the most negative number into rd;
13439    ///
13440    /// # Forms
13441    /// Assembly: `div xd, xs1, xs2`
13442    DIV,
13443    /// Unsigned division
13444    ///
13445    /// Divide unsigned values in rs1 by rs2, and store the result in rd.
13446    ///
13447    /// The remainder is discarded.
13448    ///
13449    /// If the value in rs2 is zero, rd gets the largest unsigned value.
13450    ///
13451    /// # Forms
13452    /// Assembly: `divu xd, xs1, xs2`
13453    DIVU,
13454    /// Unsigned 32-bit division
13455    ///
13456    /// Divide the unsigned 32-bit values in rs1 and rs2, and store the sign-extended result in rd.
13457    ///
13458    /// The remainder is discarded.
13459    ///
13460    /// If the value in rs2 is zero, rd is written with all 1s.
13461    ///
13462    /// # Forms
13463    /// Assembly: `divuw xd, xs1, xs2`
13464    DIVUW,
13465    /// Signed 32-bit division
13466    ///
13467    /// Divide the lower 32-bits of register rs1 by the lower 32-bits of register rs2,
13468    /// and store the sign-extended result in rd.
13469    ///
13470    /// The remainder is discarded.
13471    ///
13472    /// Division by zero will put -1 into rd.
13473    ///
13474    /// Division resulting in signed overflow (when most negative number is divided by -1)
13475    /// will put the most negative number into rd;
13476    ///
13477    /// # Forms
13478    /// Assembly: `divw xd, xs1, xs2`
13479    DIVW,
13480    /// RISC-V `dret` instruction.
13481    ///
13482    /// # Forms
13483    /// Assembly: `dret dret`
13484    DRET,
13485    /// Breakpoint exception
13486    ///
13487    /// The EBREAK instruction is used by debuggers to cause control to be transferred back to
13488    /// a debugging environment. Unless overridden by an external debug environment,
13489    /// EBREAK raises a breakpoint exception and performs no other operation.
13490    ///
13491    /// \[NOTE\]
13492    /// As described in the `C` Standard Extension for Compressed Instructions, the `c.ebreak`
13493    /// instruction performs the same operation as the EBREAK instruction.
13494    ///
13495    /// EBREAK causes the receiving privilege mode's epc register to be set to the address of
13496    /// the EBREAK instruction itself, not the address of the following instruction.
13497    /// As EBREAK causes a synchronous exception, it is not considered to retire,
13498    /// and should not increment the `minstret` CSR.
13499    ///
13500    /// # Forms
13501    /// Assembly: `ebreak ""`
13502    EBREAK,
13503    /// Environment call
13504    ///
13505    /// The ECALL instruction is used to make a request to the supporting execution environment.
13506    /// When executed in U-mode, S-mode, or M-mode, it generates an environment-call-from-U-mode
13507    /// exception, environment-call-from-S-mode exception, or environment-call-from-M-mode
13508    /// exception, respectively, and performs no other operation.
13509    ///
13510    /// \[NOTE\]
13511    /// ECALL generates a different exception for each originating privilege mode so that
13512    /// environment call exceptions can be selectively delegated.
13513    /// A typical use case for Unix-like operating systems is to delegate to S-mode
13514    /// the environment-call-from-U-mode exception but not the others.
13515    ///
13516    /// ECALL causes the receiving privilege mode's epc register to be set to the address of
13517    /// the ECALL instruction itself, not the address of the following instruction.
13518    /// As ECALL causes a synchronous exception, it is not considered to retire,
13519    /// and should not increment the `minstret` CSR.
13520    ///
13521    /// # Forms
13522    /// Assembly: `ecall ""`
13523    ECALL,
13524    /// RISC-V `fabs.d` instruction.
13525    ///
13526    /// # Forms
13527    /// Assembly: `fabs.d rd rs1 rs2_eq_rs1`
13528    FABSD,
13529    /// RISC-V `fabs.h` instruction.
13530    ///
13531    /// # Forms
13532    /// Assembly: `fabs.h rd rs1 rs2_eq_rs1`
13533    FABSH,
13534    /// RISC-V `fabs.q` instruction.
13535    ///
13536    /// # Forms
13537    /// Assembly: `fabs.q rd rs1 rs2_eq_rs1`
13538    FABSQ,
13539    /// RISC-V `fabs.s` instruction.
13540    ///
13541    /// # Forms
13542    /// Assembly: `fabs.s rd rs1 rs2_eq_rs1`
13543    FABSS,
13544    /// RISC-V `fadd.d` instruction.
13545    ///
13546    /// # Forms
13547    /// Assembly: `fadd.d xd, xs1, xs2, rm`
13548    FADDD,
13549    /// RISC-V `fadd.h` instruction.
13550    ///
13551    /// # Forms
13552    /// Assembly: `fadd.h xd, xs1, xs2, rm`
13553    FADDH,
13554    /// RISC-V `fadd.q` instruction.
13555    ///
13556    /// # Forms
13557    /// Assembly: `fadd.q qd, qs1, qs2, rm`
13558    FADDQ,
13559    /// Single-precision floating-point addition
13560    ///
13561    /// Do the single-precision floating-point addition of fs1 and fs2 and store the result in fd.
13562    /// rm is the dynamic Rounding Mode.
13563    ///
13564    /// # Forms
13565    /// Assembly: `fadd.s fd, fs1, fs2, rm`
13566    FADDS,
13567    /// RISC-V `fclass.d` instruction.
13568    ///
13569    /// # Forms
13570    /// Assembly: `fclass.d xd, xs1`
13571    FCLASSD,
13572    /// RISC-V `fclass.h` instruction.
13573    ///
13574    /// # Forms
13575    /// Assembly: `fclass.h xd, xs1`
13576    FCLASSH,
13577    /// RISC-V `fclass.q` instruction.
13578    ///
13579    /// # Forms
13580    /// Assembly: `fclass.q xd, qs1`
13581    FCLASSQ,
13582    /// Single-precision floating-point classify.
13583    ///
13584    /// The `fclass.s` instruction examines the value in floating-point register
13585    /// _fs1_ and writes to integer register _rd_ a 10-bit mask that indicates
13586    /// the class of the floating-point number.
13587    /// The format of the mask is described in the table below.
13588    /// The corresponding bit in _rd_ will be set if the property is true and
13589    /// clear otherwise.
13590    /// All other bits in _rd_ are cleared.
13591    /// Note that exactly one bit in rd will be set.
13592    /// `fclass.s` does not set the floating-point exception flags.
13593    ///
13594    /// .Format of result of `fclass` instruction.
13595    /// \[%autowidth,float="center",align="center",cols="^,&lt;",options="header",\]
13596    /// |===
13597    /// |_rd_ bit |Meaning
13598    /// |0 |_rs1_ is latexmath:\[$-\infty$\].
13599    /// |1 |_rs1_ is a negative normal number.
13600    /// |2 |_rs1_ is a negative subnormal number.
13601    /// |3 |_rs1_ is latexmath:\[$-0$\].
13602    /// |4 |_rs1_ is latexmath:\[$+0$\].
13603    /// |5 |_rs1_ is a positive subnormal number.
13604    /// |6 |_rs1_ is a positive normal number.
13605    /// |7 |_rs1_ is latexmath:\[$+\infty$\].
13606    /// |8 |_rs1_ is a signaling NaN.
13607    /// |9 |_rs1_ is a quiet NaN.
13608    /// |===
13609    ///
13610    /// # Forms
13611    /// Assembly: `fclass.s xd, fs1`
13612    FCLASSS,
13613    /// RISC-V `fcvt.bf16.s` instruction.
13614    ///
13615    /// # Forms
13616    /// Assembly: `fcvt.bf16.s xd, xs1, rm`
13617    FCVTBF16S,
13618    /// RISC-V `fcvt.d.h` instruction.
13619    ///
13620    /// # Forms
13621    /// Assembly: `fcvt.d.h xd, xs1, rm`
13622    FCVTDH,
13623    /// RISC-V `fcvt.d.l` instruction.
13624    ///
13625    /// # Forms
13626    /// Assembly: `fcvt.d.l xd, xs1, rm`
13627    FCVTDL,
13628    /// RISC-V `fcvt.d.lu` instruction.
13629    ///
13630    /// # Forms
13631    /// Assembly: `fcvt.d.lu xd, xs1, rm`
13632    FCVTDLU,
13633    /// RISC-V `fcvt.d.q` instruction.
13634    ///
13635    /// # Forms
13636    /// Assembly: `fcvt.d.q xd, qs1, rm`
13637    FCVTDQ,
13638    /// RISC-V `fcvt.d.s` instruction.
13639    ///
13640    /// # Forms
13641    /// Assembly: `fcvt.d.s xd, xs1, rm`
13642    FCVTDS,
13643    /// RISC-V `fcvt.d.w` instruction.
13644    ///
13645    /// # Forms
13646    /// Assembly: `fcvt.d.w xd, xs1, rm`
13647    FCVTDW,
13648    /// RISC-V `fcvt.d.wu` instruction.
13649    ///
13650    /// # Forms
13651    /// Assembly: `fcvt.d.wu xd, xs1, rm`
13652    FCVTDWU,
13653    /// RISC-V `fcvt.h.d` instruction.
13654    ///
13655    /// # Forms
13656    /// Assembly: `fcvt.h.d xd, xs1, rm`
13657    FCVTHD,
13658    /// RISC-V `fcvt.h.l` instruction.
13659    ///
13660    /// # Forms
13661    /// Assembly: `fcvt.h.l xd, xs1, rm`
13662    FCVTHL,
13663    /// RISC-V `fcvt.h.lu` instruction.
13664    ///
13665    /// # Forms
13666    /// Assembly: `fcvt.h.lu xd, xs1, rm`
13667    FCVTHLU,
13668    /// RISC-V `fcvt.h.q` instruction.
13669    ///
13670    /// # Forms
13671    /// Assembly: `fcvt.h.q xd, qs1, rm`
13672    FCVTHQ,
13673    /// Convert half-precision float to a single-precision float
13674    ///
13675    /// Converts a half-precision number in floating-point register _fs1_ into a single-precision floating-point number in
13676    /// floating-point register _fd_.
13677    ///
13678    /// `fcvt.h.s` rounds according to the _rm_ field.
13679    ///
13680    /// All floating-point conversion instructions set the Inexact exception flag if the rounded
13681    /// result differs from the operand value and the Invalid exception flag is not set.
13682    ///
13683    /// # Forms
13684    /// Assembly: `fcvt.h.s fd, xs1`
13685    FCVTHS,
13686    /// RISC-V `fcvt.h.w` instruction.
13687    ///
13688    /// # Forms
13689    /// Assembly: `fcvt.h.w xd, xs1, rm`
13690    FCVTHW,
13691    /// RISC-V `fcvt.h.wu` instruction.
13692    ///
13693    /// # Forms
13694    /// Assembly: `fcvt.h.wu xd, xs1, rm`
13695    FCVTHWU,
13696    /// RISC-V `fcvt.l.d` instruction.
13697    ///
13698    /// # Forms
13699    /// Assembly: `fcvt.l.d xd, xs1, rm`
13700    FCVTLD,
13701    /// RISC-V `fcvt.l.h` instruction.
13702    ///
13703    /// # Forms
13704    /// Assembly: `fcvt.l.h xd, xs1, rm`
13705    FCVTLH,
13706    /// RISC-V `fcvt.l.q` instruction.
13707    ///
13708    /// # Forms
13709    /// Assembly: `fcvt.l.q xd, qs1, rm`
13710    FCVTLQ,
13711    /// RISC-V `fcvt.l.s` instruction.
13712    ///
13713    /// # Forms
13714    /// Assembly: `fcvt.l.s xd, fs1, rm`
13715    FCVTLS,
13716    /// RISC-V `fcvt.lu.d` instruction.
13717    ///
13718    /// # Forms
13719    /// Assembly: `fcvt.lu.d xd, xs1, rm`
13720    FCVTLUD,
13721    /// RISC-V `fcvt.lu.h` instruction.
13722    ///
13723    /// # Forms
13724    /// Assembly: `fcvt.lu.h xd, xs1, rm`
13725    FCVTLUH,
13726    /// RISC-V `fcvt.lu.q` instruction.
13727    ///
13728    /// # Forms
13729    /// Assembly: `fcvt.lu.q qd, hs1, rm`
13730    FCVTLUQ,
13731    /// RISC-V `fcvt.lu.s` instruction.
13732    ///
13733    /// # Forms
13734    /// Assembly: `fcvt.lu.s xd, fs1, rm`
13735    FCVTLUS,
13736    /// RISC-V `fcvt.q.d` instruction.
13737    ///
13738    /// # Forms
13739    /// Assembly: `fcvt.q.d dd, fs1, rm`
13740    FCVTQD,
13741    /// RISC-V `fcvt.q.h` instruction.
13742    ///
13743    /// # Forms
13744    /// Assembly: `fcvt.q.h hd, qs1, rm`
13745    FCVTQH,
13746    /// RISC-V `fcvt.q.l` instruction.
13747    ///
13748    /// # Forms
13749    /// Assembly: `fcvt.q.l qd, xs1, rm`
13750    FCVTQL,
13751    /// RISC-V `fcvt.q.lu` instruction.
13752    ///
13753    /// # Forms
13754    /// Assembly: `fcvt.q.lu qd, xs1, rm`
13755    FCVTQLU,
13756    /// RISC-V `fcvt.q.s` instruction.
13757    ///
13758    /// # Forms
13759    /// Assembly: `fcvt.q.s qd, fs1, rm`
13760    FCVTQS,
13761    /// RISC-V `fcvt.q.w` instruction.
13762    ///
13763    /// # Forms
13764    /// Assembly: `fcvt.q.w fd, xs1, rm`
13765    FCVTQW,
13766    /// RISC-V `fcvt.q.wu` instruction.
13767    ///
13768    /// # Forms
13769    /// Assembly: `fcvt.q.wu qd, xs1, rm`
13770    FCVTQWU,
13771    /// RISC-V `fcvt.s.bf16` instruction.
13772    ///
13773    /// # Forms
13774    /// Assembly: `fcvt.s.bf16 xd, xs1, rm`
13775    FCVTSBF16,
13776    /// RISC-V `fcvt.s.d` instruction.
13777    ///
13778    /// # Forms
13779    /// Assembly: `fcvt.s.d xd, xs1, rm`
13780    FCVTSD,
13781    /// Convert single-precision float to a half-precision float
13782    ///
13783    /// Converts a single-precision number in floating-point register _fs1_ into a half-precision floating-point number in
13784    /// floating-point register _fd_.
13785    ///
13786    /// `fcvt.s.h` will never round, and so the 'rm' field is effectively ignored.
13787    ///
13788    /// # Forms
13789    /// Assembly: `fcvt.s.h fd, xs1`
13790    FCVTSH,
13791    /// RISC-V `fcvt.s.l` instruction.
13792    ///
13793    /// # Forms
13794    /// Assembly: `fcvt.s.l fd, xs1, rm`
13795    FCVTSL,
13796    /// RISC-V `fcvt.s.lu` instruction.
13797    ///
13798    /// # Forms
13799    /// Assembly: `fcvt.s.lu fd, xs1, rm`
13800    FCVTSLU,
13801    /// RISC-V `fcvt.s.q` instruction.
13802    ///
13803    /// # Forms
13804    /// Assembly: `fcvt.s.q fd, qs1, rm`
13805    FCVTSQ,
13806    /// Convert signed 32-bit integer to single-precision float
13807    ///
13808    /// Converts a 32-bit signed integer in integer register _rs1_ into a floating-point number in
13809    /// floating-point register _fd_.
13810    ///
13811    /// All floating-point to integer and integer to floating-point conversion instructions round
13812    /// according to the _rm_ field.
13813    /// A floating-point register can be initialized to floating-point positive zero using
13814    /// `fcvt.s.w rd, x0`, which will never set any exception flags.
13815    ///
13816    /// All floating-point conversion instructions set the Inexact exception flag if the rounded
13817    /// result differs from the operand value and the Invalid exception flag is not set.
13818    ///
13819    /// # Forms
13820    /// Assembly: `fcvt.s.w fd, xs1`
13821    FCVTSW,
13822    /// RISC-V `fcvt.s.wu` instruction.
13823    ///
13824    /// # Forms
13825    /// Assembly: `fcvt.s.wu fd, xs1, rm`
13826    FCVTSWU,
13827    /// RISC-V `fcvt.w.d` instruction.
13828    ///
13829    /// # Forms
13830    /// Assembly: `fcvt.w.d xd, xs1, rm`
13831    FCVTWD,
13832    /// RISC-V `fcvt.w.h` instruction.
13833    ///
13834    /// # Forms
13835    /// Assembly: `fcvt.w.h xd, xs1, rm`
13836    FCVTWH,
13837    /// RISC-V `fcvt.w.q` instruction.
13838    ///
13839    /// # Forms
13840    /// Assembly: `fcvt.w.q xd, qs1, rm`
13841    FCVTWQ,
13842    /// Convert single-precision float to integer word to signed 32-bit integer.
13843    ///
13844    /// Converts a floating-point number in floating-point register _fs1_ to a signed 32-bit integer indicates
13845    /// integer register _rd_.
13846    ///
13847    /// For XLEN &gt;32, `fcvt.w.s` sign-extends the 32-bit result to the destination register width.
13848    ///
13849    /// If the rounded result is not representable as a 32-bit signed integer, it is clipped to the
13850    /// nearest value and the invalid flag is set.
13851    ///
13852    /// The range of valid inputs and behavior for invalid inputs are:
13853    ///
13854    /// \[separator="!"\]
13855    /// !===
13856    /// ! ! Value
13857    ///
13858    /// h! Minimum valid input (after rounding) ! `-2^31`
13859    /// h! Maximum valid input (after rounding) ! `2^31 - 1`
13860    /// h! Output for out-of-range negative input ! `-2^31`
13861    /// h! Output for `-&infin;` ! `-2^31`
13862    /// h! Output for out-of-range positive input ! `2^31 - 1`
13863    /// h! Output for `+&infin;` for `NaN` ! `2^31 - 1`
13864    /// !===
13865    ///
13866    /// All floating-point to integer and integer to floating-point conversion instructions round
13867    /// according to the _rm_ field.
13868    /// A floating-point register can be initialized to floating-point positive zero using
13869    /// `fcvt.s.w rd, x0`, which will never set any exception flags.
13870    ///
13871    /// All floating-point conversion instructions set the Inexact exception flag if the rounded
13872    /// result differs from the operand value and the Invalid exception flag is not set.
13873    ///
13874    /// # Forms
13875    /// Assembly: `fcvt.w.s xd, fs1`
13876    FCVTWS,
13877    /// RISC-V `fcvt.wu.d` instruction.
13878    ///
13879    /// # Forms
13880    /// Assembly: `fcvt.wu.d xd, xs1, rm`
13881    FCVTWUD,
13882    /// RISC-V `fcvt.wu.h` instruction.
13883    ///
13884    /// # Forms
13885    /// Assembly: `fcvt.wu.h xd, xs1, rm`
13886    FCVTWUH,
13887    /// RISC-V `fcvt.wu.q` instruction.
13888    ///
13889    /// # Forms
13890    /// Assembly: `fcvt.wu.q xd, xs1, rm`
13891    FCVTWUQ,
13892    /// RISC-V `fcvt.wu.s` instruction.
13893    ///
13894    /// # Forms
13895    /// Assembly: `fcvt.wu.s xd, fs1, rm`
13896    FCVTWUS,
13897    /// RISC-V `fcvtmod.w.d` instruction.
13898    ///
13899    /// # Forms
13900    /// Assembly: `fcvtmod.w.d xd, xs1`
13901    FCVTMODWD,
13902    /// RISC-V `fdiv.d` instruction.
13903    ///
13904    /// # Forms
13905    /// Assembly: `fdiv.d xd, xs1, xs2, rm`
13906    FDIVD,
13907    /// RISC-V `fdiv.h` instruction.
13908    ///
13909    /// # Forms
13910    /// Assembly: `fdiv.h xd, xs1, xs2, rm`
13911    FDIVH,
13912    /// RISC-V `fdiv.q` instruction.
13913    ///
13914    /// # Forms
13915    /// Assembly: `fdiv.q qd, qs1, qs2, rm`
13916    FDIVQ,
13917    /// RISC-V `fdiv.s` instruction.
13918    ///
13919    /// # Forms
13920    /// Assembly: `fdiv.s fd, fs1, fs2, rm`
13921    FDIVS,
13922    /// Memory ordering fence
13923    ///
13924    /// Orders memory operations.
13925    ///
13926    /// The `fence` instruction is used to order device I/O and memory accesses as
13927    /// viewed by other RISC-V harts and external devices or coprocessors. Any
13928    /// combination of device input (I), device output (O), memory reads \(R),
13929    /// and memory writes (W) may be ordered with respect to any combination of
13930    /// the same. Informally, no other RISC-V hart or external device can
13931    /// observe any operation in the _successor_ set following a `fence` before
13932    /// any operation in the _predecessor_ set preceding the `fence`.
13933    ///
13934    /// The predecessor and successor fields have the same format to specify operation types:
13935    ///
13936    /// \[%autowidth\]
13937    /// |===
13938    /// 4+| `pred` 4+| `succ`
13939    ///
13940    /// | 27 | 26 |25 | 24 | 23 | 22 | 21| 20
13941    /// | PI | PO |PR | PW | SI | SO |SR | SW
13942    /// |===
13943    ///
13944    /// \[%autowidth,align="center",cols="^1,^1,&lt;3",options="header"\]
13945    /// .Fence mode encoding
13946    /// |===
13947    /// |_fm_ field |Mnemonic |Meaning
13948    /// |0000 |_none_ |Normal Fence
13949    /// |1000 |TSO |With `FENCE RW,RW`: exclude write-to-read ordering; otherwise: _Reserved for future use._
13950    /// 2+|_other_ |_Reserved for future use._
13951    /// |===
13952    ///
13953    /// When the mode field _fm_ is `0001` and both the predecessor and successor sets are 'RW',
13954    /// then the instruction acts as a special-case `fence.tso`. `fence.tso` orders all load operations
13955    /// in its predecessor set before all memory operations in its successor set, and all store operations
13956    /// in its predecessor set before all store operations in its successor set. This leaves non-AMO store
13957    /// operations in the 'fence.tso's predecessor set unordered with non-AMO loads in its successor set.
13958    ///
13959    /// When mode field _fm_ is not `0001`, or when mode field _fm_ is `0001` but the _pred_ and
13960    /// _succ_ fields are not both 'RW' (0x3), then the fence acts as a baseline fence (_e.g._, _fm_ is
13961    /// effectively `0000`). This is unaffected by the FIOM bits, described below (implicit promotion does
13962    /// not change how `fence.tso` is decoded).
13963    ///
13964    /// The `rs1` and `rd` fields are unused and ignored.
13965    ///
13966    /// In modes other than M-mode, `fence` is further affected by `menvcfg.FIOM`,
13967    /// `senvcfg.FIOM`&lt;% if ext?(:H) %&gt;, and/or `henvcfg.FIOM`&lt;% end %&gt;
13968    /// as follows:
13969    ///
13970    /// .Effective PR/PW/SR/SW in (H)S-mode
13971    /// \[%autowidth,cols=",,,",options="header",separator="!"\]
13972    /// !===
13973    /// ! \[.rotate\]#`menvcfg.FIOM`# ! `pred.PI` +
13974    /// `pred.PO` +
13975    /// `succ.SI` +
13976    /// `succ.SO`
13977    /// ! -&gt; +
13978    /// -&gt; +
13979    /// -&gt; +
13980    /// -&gt;
13981    /// ! effective `PR` +
13982    /// effective `PW` +
13983    /// effective `SR` +
13984    /// effective `SW`
13985    ///
13986    /// ! 0 ! - ! ! from encoding
13987    /// ! 1 ! 0 ! ! from encoding
13988    /// ! 1 ! 1 ! ! 1
13989    /// !===
13990    ///
13991    /// .Effective PR/PW/SR/SW in U-mode
13992    /// \[%autowidth,options="header",separator="!",cols=",,,,"\]
13993    /// !===
13994    /// ! \[.rotate\]#`menvcfg.FIOM`# ! \[.rotate\]#`senvcfg.FIOM`# !  `pred.PI` +
13995    /// `pred.PO` +
13996    /// `succ.SI` +
13997    /// `succ.SO`
13998    /// ! -&gt; +
13999    /// -&gt; +
14000    /// -&gt; +
14001    /// -&gt;
14002    /// ! effective `PR` +
14003    /// effective `PW` +
14004    /// effective `SR` +
14005    /// effective `SW`
14006    ///
14007    /// ! 0 ! 0 ! - ! ! from encoding
14008    /// ! 0 ! 1 ! 0 ! ! from encoding
14009    /// ! 0 ! 1 ! 1 ! ! 1
14010    /// ! 1 ! - ! 0 ! ! from encoding
14011    /// ! 1 ! - ! 1 ! ! 1
14012    /// !===
14013    ///
14014    /// &lt;%- if ext?(:H) -%&gt;
14015    /// .Effective PR/PW/SR/SW in VS-mode and VU-mode
14016    /// \[%autowidth,options="header",separator="!",cols=",,,,"\]
14017    /// !===
14018    /// ! \[.rotate\]#`menvcfg.FIOM`# ! \[.rotate\]#`henvcfg.FIOM`# !  `pred.PI` +
14019    /// `pred.PO` +
14020    /// `succ.SI` +
14021    /// `succ.SO`
14022    /// ! -&gt; +
14023    /// -&gt; +
14024    /// -&gt; +
14025    /// -&gt;
14026    /// ! effective `PR` +
14027    /// effective `PW` +
14028    /// effective `SR` +
14029    /// effective `SW`
14030    ///
14031    /// ! 0 ! 0 ! - ! ! from encoding
14032    /// ! 0 ! 1 ! 0 ! ! from encoding
14033    /// ! 0 ! 1 ! 1 ! ! 1
14034    /// ! 1 ! - ! 0 ! ! from encoding
14035    /// ! 1 ! - ! 1 ! ! 1
14036    /// !===
14037    /// &lt;%- end -%&gt;
14038    ///
14039    /// # Forms
14040    /// Assembly: `fence "TODO"`
14041    FENCE,
14042    /// Instruction fence
14043    ///
14044    /// The FENCE.I instruction is used to synchronize the instruction and data
14045    /// streams. RISC-V does not guarantee that stores to instruction memory
14046    /// will be made visible to instruction fetches on a RISC-V hart until that
14047    /// hart executes a FENCE.I instruction. A FENCE.I instruction ensures that
14048    /// a subsequent instruction fetch on a RISC-V hart will see any previous
14049    /// data stores already visible to the same RISC-V hart. FENCE.I does _not_
14050    /// ensure that other RISC-V harts' instruction fetches will observe the
14051    /// local hart's stores in a multiprocessor system. To make a store to
14052    /// instruction memory visible to all RISC-V harts, the writing hart also
14053    /// has to execute a data FENCE before requesting that all remote RISC-V
14054    /// harts execute a FENCE.I.
14055    ///
14056    /// The unused fields in the FENCE.I instruction, _imm\[11:0\]_, _rs1_, and
14057    /// _rd_, are reserved for finer-grain fences in future extensions. For
14058    /// forward compatibility, base implementations shall ignore these fields,
14059    /// and standard software shall zero these fields.
14060    /// (((FENCE.I, finer-grained)))
14061    /// (((FENCE.I, forward compatibility)))
14062    ///
14063    /// \[NOTE\]
14064    /// ====
14065    /// Because FENCE.I only orders stores with a hart's own instruction
14066    /// fetches, application code should only rely upon FENCE.I if the
14067    /// application thread will not be migrated to a different hart. The EEI can
14068    /// provide mechanisms for efficient multiprocessor instruction-stream
14069    /// synchronization.
14070    /// ====
14071    ///
14072    /// # Forms
14073    /// Assembly: `fence.i ""`
14074    FENCEI,
14075    /// RISC-V `fence.tso` instruction.
14076    ///
14077    /// # Forms
14078    /// Assembly: `fence.tso`
14079    FENCETSO,
14080    /// RISC-V `feq.d` instruction.
14081    ///
14082    /// # Forms
14083    /// Assembly: `feq.d xd, xs1, xs2`
14084    FEQD,
14085    /// RISC-V `feq.h` instruction.
14086    ///
14087    /// # Forms
14088    /// Assembly: `feq.h xd, xs1, xs2`
14089    FEQH,
14090    /// RISC-V `feq.q` instruction.
14091    ///
14092    /// # Forms
14093    /// Assembly: `feq.q xd, qs1, qs2`
14094    FEQQ,
14095    /// Single-precision floating-point equal
14096    ///
14097    /// Writes 1 to _rd_ if _fs1_ and _fs2_ are equal, and 0 otherwise.
14098    ///
14099    /// If either operand is NaN, the result is 0 (not equal). If either operand is a signaling NaN, the invalid flag is set.
14100    ///
14101    /// Positive zero is considered equal to negative zero.
14102    ///
14103    /// # Forms
14104    /// Assembly: `feq.s xd, fs1, fs2`
14105    FEQS,
14106    /// RISC-V `fld` instruction.
14107    ///
14108    /// # Forms
14109    /// Assembly: `fld xd, xs1, imm`
14110    FLD,
14111    /// RISC-V `fle.d` instruction.
14112    ///
14113    /// # Forms
14114    /// Assembly: `fle.d xd, xs1, xs2`
14115    FLED,
14116    /// RISC-V `fle.h` instruction.
14117    ///
14118    /// # Forms
14119    /// Assembly: `fle.h xd, xs1, xs2`
14120    FLEH,
14121    /// RISC-V `fle.q` instruction.
14122    ///
14123    /// # Forms
14124    /// Assembly: `fle.q xd, qs1, qs2`
14125    FLEQ,
14126    /// Single-precision floating-point less than or equal
14127    ///
14128    /// Writes 1 to _rd_ if _fs1_ is less than or equal to _fs2_, and 0 otherwise.
14129    ///
14130    /// If either operand is NaN, the result is 0 (not equal).
14131    /// If either operand is a NaN (signaling or quiet), the invalid flag is set.
14132    ///
14133    /// Positive zero and negative zero are considered equal.
14134    ///
14135    /// # Forms
14136    /// Assembly: `fle.s xd, fs1, fs2`
14137    FLES,
14138    /// RISC-V `fleq.d` instruction.
14139    ///
14140    /// # Forms
14141    /// Assembly: `fleq.d xd, xs1, xs2`
14142    FLEQD,
14143    /// RISC-V `fleq.h` instruction.
14144    ///
14145    /// # Forms
14146    /// Assembly: `fleq.h xd, xs1, xs2`
14147    FLEQH,
14148    /// RISC-V `fleq.q` instruction.
14149    ///
14150    /// # Forms
14151    /// Assembly: `fleq.q xd, qs1, qs2`
14152    FLEQQ,
14153    /// RISC-V `fleq.s` instruction.
14154    ///
14155    /// # Forms
14156    /// Assembly: `fleq.s xd, fs1, fs2`
14157    FLEQS,
14158    /// Half-precision floating-point load
14159    ///
14160    /// The `flh` instruction loads a single-precision floating-point value from memory at address _rs1_ + _imm_ into floating-point register _rd_.
14161    ///
14162    /// `flh` does not modify the bits being transferred; in particular, the payloads of non-canonical NaNs are preserved.
14163    ///
14164    /// `flh` is only guaranteed to execute atomically if the effective address is naturally aligned.
14165    ///
14166    /// # Forms
14167    /// Assembly: `flh fd, imm(xs1)`
14168    FLH,
14169    /// RISC-V `fli.d` instruction.
14170    ///
14171    /// # Forms
14172    /// Assembly: `fli.d xd, xs1`
14173    FLID,
14174    /// RISC-V `fli.h` instruction.
14175    ///
14176    /// # Forms
14177    /// Assembly: `fli.h xd, xs1`
14178    FLIH,
14179    /// RISC-V `fli.q` instruction.
14180    ///
14181    /// # Forms
14182    /// Assembly: `fli.q fd, qs1`
14183    FLIQ,
14184    /// RISC-V `fli.s` instruction.
14185    ///
14186    /// # Forms
14187    /// Assembly: `fli.s fd, fs1`
14188    FLIS,
14189    /// RISC-V `flq` instruction.
14190    ///
14191    /// # Forms
14192    /// Assembly: `flq qd, xs1, imm`
14193    FLQ,
14194    /// RISC-V `flt.d` instruction.
14195    ///
14196    /// # Forms
14197    /// Assembly: `flt.d xd, xs1, xs2`
14198    FLTD,
14199    /// RISC-V `flt.h` instruction.
14200    ///
14201    /// # Forms
14202    /// Assembly: `flt.h xd, xs1, xs2`
14203    FLTH,
14204    /// RISC-V `flt.q` instruction.
14205    ///
14206    /// # Forms
14207    /// Assembly: `flt.q xd, qs1, qs2`
14208    FLTQ,
14209    /// Single-precision floating-point less than
14210    ///
14211    /// Writes 1 to _rd_ if _fs1_ is less than _fs2_, and 0 otherwise.
14212    ///
14213    /// If either operand is NaN, the result is 0 (not equal).
14214    /// If either operand is a NaN (signaling or quiet), the invalid flag is set.
14215    ///
14216    /// # Forms
14217    /// Assembly: `flt.s xd, fs1, fs2`
14218    FLTS,
14219    /// RISC-V `fltq.d` instruction.
14220    ///
14221    /// # Forms
14222    /// Assembly: `fltq.d xd, xs1, xs2`
14223    FLTQD,
14224    /// RISC-V `fltq.h` instruction.
14225    ///
14226    /// # Forms
14227    /// Assembly: `fltq.h xd, xs1, xs2`
14228    FLTQH,
14229    /// RISC-V `fltq.q` instruction.
14230    ///
14231    /// # Forms
14232    /// Assembly: `fltq.q qd, qs1, qs2`
14233    FLTQQ,
14234    /// RISC-V `fltq.s` instruction.
14235    ///
14236    /// # Forms
14237    /// Assembly: `fltq.s xd, fs1, fs2`
14238    FLTQS,
14239    /// Single-precision floating-point load
14240    ///
14241    /// The `flw` instruction loads a single-precision floating-point value from memory at address _rs1_ + _imm_ into floating-point register _fd_.
14242    ///
14243    /// `flw` does not modify the bits being transferred; in particular, the payloads of non-canonical NaNs are preserved.
14244    ///
14245    /// # Forms
14246    /// Assembly: `flw fd, xs1, imm`
14247    FLW,
14248    /// RISC-V `fmadd.d` instruction.
14249    ///
14250    /// # Forms
14251    /// Assembly: `fmadd.d xd, xs1, xs2, xs3, rm`
14252    FMADDD,
14253    /// RISC-V `fmadd.h` instruction.
14254    ///
14255    /// # Forms
14256    /// Assembly: `fmadd.h xd, xs1, xs2, xs3, rm`
14257    FMADDH,
14258    /// RISC-V `fmadd.q` instruction.
14259    ///
14260    /// # Forms
14261    /// Assembly: `fmadd.q qd, qs1, qs2, qs3, rm`
14262    FMADDQ,
14263    /// RISC-V `fmadd.s` instruction.
14264    ///
14265    /// # Forms
14266    /// Assembly: `fmadd.s fd, fs1, fs2, fs3, rm`
14267    FMADDS,
14268    /// RISC-V `fmax.d` instruction.
14269    ///
14270    /// # Forms
14271    /// Assembly: `fmax.d xd, xs1, xs2`
14272    FMAXD,
14273    /// RISC-V `fmax.h` instruction.
14274    ///
14275    /// # Forms
14276    /// Assembly: `fmax.h xd, xs1, xs2`
14277    FMAXH,
14278    /// RISC-V `fmax.q` instruction.
14279    ///
14280    /// # Forms
14281    /// Assembly: `fmax.q qd, qs1, qs2`
14282    FMAXQ,
14283    /// RISC-V `fmax.s` instruction.
14284    ///
14285    /// # Forms
14286    /// Assembly: `fmax.s fd, fs1, fs2`
14287    FMAXS,
14288    /// RISC-V `fmaxm.d` instruction.
14289    ///
14290    /// # Forms
14291    /// Assembly: `fmaxm.d xd, xs1, xs2`
14292    FMAXMD,
14293    /// RISC-V `fmaxm.h` instruction.
14294    ///
14295    /// # Forms
14296    /// Assembly: `fmaxm.h xd, xs1, xs2`
14297    FMAXMH,
14298    /// RISC-V `fmaxm.q` instruction.
14299    ///
14300    /// # Forms
14301    /// Assembly: `fmaxm.q qd, qs1, qs2`
14302    FMAXMQ,
14303    /// RISC-V `fmaxm.s` instruction.
14304    ///
14305    /// # Forms
14306    /// Assembly: `fmaxm.s xd, xs1, xs2`
14307    FMAXMS,
14308    /// RISC-V `fmin.d` instruction.
14309    ///
14310    /// # Forms
14311    /// Assembly: `fmin.d xd, xs1, xs2`
14312    FMIND,
14313    /// RISC-V `fmin.h` instruction.
14314    ///
14315    /// # Forms
14316    /// Assembly: `fmin.h xd, xs1, xs2`
14317    FMINH,
14318    /// RISC-V `fmin.q` instruction.
14319    ///
14320    /// # Forms
14321    /// Assembly: `fmin.q xd, xs1, xs2`
14322    FMINQ,
14323    /// RISC-V `fmin.s` instruction.
14324    ///
14325    /// # Forms
14326    /// Assembly: `fmin.s xd, xs1, xs2`
14327    FMINS,
14328    /// RISC-V `fminm.d` instruction.
14329    ///
14330    /// # Forms
14331    /// Assembly: `fminm.d xd, xs1, xs2`
14332    FMINMD,
14333    /// RISC-V `fminm.h` instruction.
14334    ///
14335    /// # Forms
14336    /// Assembly: `fminm.h xd, xs1, xs2`
14337    FMINMH,
14338    /// RISC-V `fminm.q` instruction.
14339    ///
14340    /// # Forms
14341    /// Assembly: `fminm.q qd, qs1, qs2`
14342    FMINMQ,
14343    /// RISC-V `fminm.s` instruction.
14344    ///
14345    /// # Forms
14346    /// Assembly: `fminm.s fd, fs1, fs2`
14347    FMINMS,
14348    /// RISC-V `fmsub.d` instruction.
14349    ///
14350    /// # Forms
14351    /// Assembly: `fmsub.d xd, xs1, xs2, xs3, rm`
14352    FMSUBD,
14353    /// RISC-V `fmsub.h` instruction.
14354    ///
14355    /// # Forms
14356    /// Assembly: `fmsub.h xd, xs1, xs2, xs3, rm`
14357    FMSUBH,
14358    /// RISC-V `fmsub.q` instruction.
14359    ///
14360    /// # Forms
14361    /// Assembly: `fmsub.q qd, qs1, qs2, qs3, rm`
14362    FMSUBQ,
14363    /// RISC-V `fmsub.s` instruction.
14364    ///
14365    /// # Forms
14366    /// Assembly: `fmsub.s fd, fs1, fs2, fs3, rm`
14367    FMSUBS,
14368    /// RISC-V `fmul.d` instruction.
14369    ///
14370    /// # Forms
14371    /// Assembly: `fmul.d xd, xs1, xs2, rm`
14372    FMULD,
14373    /// RISC-V `fmul.h` instruction.
14374    ///
14375    /// # Forms
14376    /// Assembly: `fmul.h xd, xs1, xs2, rm`
14377    FMULH,
14378    /// RISC-V `fmul.q` instruction.
14379    ///
14380    /// # Forms
14381    /// Assembly: `fmul.q qd, qs1, qs2, rm`
14382    FMULQ,
14383    /// RISC-V `fmul.s` instruction.
14384    ///
14385    /// # Forms
14386    /// Assembly: `fmul.s fd, fs1, fs2, rm`
14387    FMULS,
14388    /// RISC-V `fmv.d` instruction.
14389    ///
14390    /// # Forms
14391    /// Assembly: `fmv.d rd rs1 rs2_eq_rs1`
14392    FMVD,
14393    /// RISC-V `fmv.d.x` instruction.
14394    ///
14395    /// # Forms
14396    /// Assembly: `fmv.d.x xd, xs1`
14397    FMVDX,
14398    /// RISC-V `fmv.h` instruction.
14399    ///
14400    /// # Forms
14401    /// Assembly: `fmv.h rd rs1 rs2_eq_rs1`
14402    FMVH,
14403    /// Half-precision floating-point move from integer
14404    ///
14405    /// Moves the half-precision value encoded in IEEE 754-2008 standard encoding
14406    /// from the lower 16 bits of integer register `rs1` to the floating-point
14407    /// register `fd`. The bits are not modified in the transfer, and in particular,
14408    /// the payloads of non-canonical NaNs are preserved.
14409    ///
14410    /// # Forms
14411    /// Assembly: `fmv.h.x fd, xs1`
14412    FMVHX,
14413    /// RISC-V `fmv.q` instruction.
14414    ///
14415    /// # Forms
14416    /// Assembly: `fmv.q rd rs1 rs2_eq_rs1`
14417    FMVQ,
14418    /// RISC-V `fmv.s` instruction.
14419    ///
14420    /// # Forms
14421    /// Assembly: `fmv.s rd rs1 rs2_eq_rs1`
14422    FMVS,
14423    /// RISC-V `fmv.s.x` instruction.
14424    ///
14425    /// # Forms
14426    /// Assembly: `fmv.s.x rd rs1`
14427    FMVSX,
14428    /// Single-precision floating-point move from integer
14429    ///
14430    /// Moves the single-precision value encoded in IEEE 754-2008 standard encoding
14431    /// from the lower 32 bits of integer register `rs1` to the floating-point
14432    /// register `fd`. The bits are not modified in the transfer, and in particular,
14433    /// the payloads of non-canonical NaNs are preserved.
14434    ///
14435    /// # Forms
14436    /// Assembly: `fmv.w.x fd, xs1`
14437    FMVWX,
14438    /// RISC-V `fmv.x.d` instruction.
14439    ///
14440    /// # Forms
14441    /// Assembly: `fmv.x.d xd, xs1`
14442    FMVXD,
14443    /// Move half-precision value from floating-point to integer register
14444    ///
14445    /// Moves the half-precision value in floating-point register rs1 represented in IEEE 754-2008
14446    /// encoding to the lower 16 bits of integer register rd.
14447    ///
14448    /// The bits are not modified in the transfer, and in particular, the payloads of non-canonical
14449    /// NaNs are preserved.
14450    ///
14451    /// The highest XLEN-16 bits of the destination register are filled with copies of the
14452    /// floating-point number's sign bit.
14453    ///
14454    /// # Forms
14455    /// Assembly: `fmv.x.h rd, fs1`
14456    FMVXH,
14457    /// RISC-V `fmv.x.s` instruction.
14458    ///
14459    /// # Forms
14460    /// Assembly: `fmv.x.s rd rs1`
14461    FMVXS,
14462    /// Move single-precision value from floating-point to integer register
14463    ///
14464    /// Moves the single-precision value in floating-point register rs1 represented in IEEE 754-2008
14465    /// encoding to the lower 32 bits of integer register rd.
14466    /// The bits are not modified in the transfer, and in particular, the payloads of non-canonical
14467    /// NaNs are preserved.
14468    /// For RV64, the higher 32 bits of the destination register are filled with copies of the
14469    /// floating-point number's sign bit.
14470    ///
14471    /// # Forms
14472    /// Assembly: `fmv.x.w xd, fs1`
14473    FMVXW,
14474    /// RISC-V `fmvh.x.d` instruction.
14475    ///
14476    /// # Forms
14477    /// Assembly: `fmvh.x.d xd, xs1`
14478    FMVHXD,
14479    /// RISC-V `fmvh.x.q` instruction.
14480    ///
14481    /// # Forms
14482    /// Assembly: `fmvh.x.q xd, qs1`
14483    FMVHXQ,
14484    /// RISC-V `fmvp.d.x` instruction.
14485    ///
14486    /// # Forms
14487    /// Assembly: `fmvp.d.x xd, xs1, xs2`
14488    FMVPDX,
14489    /// RISC-V `fmvp.q.x` instruction.
14490    ///
14491    /// # Forms
14492    /// Assembly: `fmvp.q.x qd, xs1, xs2`
14493    FMVPQX,
14494    /// RISC-V `fneg.d` instruction.
14495    ///
14496    /// # Forms
14497    /// Assembly: `fneg.d rd rs1 rs2_eq_rs1`
14498    FNEGD,
14499    /// RISC-V `fneg.h` instruction.
14500    ///
14501    /// # Forms
14502    /// Assembly: `fneg.h rd rs1 rs2_eq_rs1`
14503    FNEGH,
14504    /// RISC-V `fneg.q` instruction.
14505    ///
14506    /// # Forms
14507    /// Assembly: `fneg.q rd rs1 rs2_eq_rs1`
14508    FNEGQ,
14509    /// RISC-V `fneg.s` instruction.
14510    ///
14511    /// # Forms
14512    /// Assembly: `fneg.s rd rs1 rs2_eq_rs1`
14513    FNEGS,
14514    /// RISC-V `fnmadd.d` instruction.
14515    ///
14516    /// # Forms
14517    /// Assembly: `fnmadd.d xd, xs1, xs2, xs3, rm`
14518    FNMADDD,
14519    /// RISC-V `fnmadd.h` instruction.
14520    ///
14521    /// # Forms
14522    /// Assembly: `fnmadd.h xd, xs1, xs2, xs3, rm`
14523    FNMADDH,
14524    /// RISC-V `fnmadd.q` instruction.
14525    ///
14526    /// # Forms
14527    /// Assembly: `fnmadd.q qd, qs1, qs2, qs3, rm`
14528    FNMADDQ,
14529    /// RISC-V `fnmadd.s` instruction.
14530    ///
14531    /// # Forms
14532    /// Assembly: `fnmadd.s fd, fs1, fs2, fs3, rm`
14533    FNMADDS,
14534    /// RISC-V `fnmsub.d` instruction.
14535    ///
14536    /// # Forms
14537    /// Assembly: `fnmsub.d xd, xs1, xs2, xs3, rm`
14538    FNMSUBD,
14539    /// RISC-V `fnmsub.h` instruction.
14540    ///
14541    /// # Forms
14542    /// Assembly: `fnmsub.h xd, xs1, xs2, xs3, rm`
14543    FNMSUBH,
14544    /// RISC-V `fnmsub.q` instruction.
14545    ///
14546    /// # Forms
14547    /// Assembly: `fnmsub.q qd, qs1, qs2, qs3, rm`
14548    FNMSUBQ,
14549    /// RISC-V `fnmsub.s` instruction.
14550    ///
14551    /// # Forms
14552    /// Assembly: `fnmsub.s xd, xs1, xs2, xs3, rm`
14553    FNMSUBS,
14554    /// RISC-V `frcsr` instruction.
14555    ///
14556    /// # Forms
14557    /// Assembly: `frcsr rd`
14558    FRCSR,
14559    /// RISC-V `frflags` instruction.
14560    ///
14561    /// # Forms
14562    /// Assembly: `frflags rd`
14563    FRFLAGS,
14564    /// RISC-V `fround.d` instruction.
14565    ///
14566    /// # Forms
14567    /// Assembly: `fround.d xd, xs1, rm`
14568    FROUNDD,
14569    /// RISC-V `fround.h` instruction.
14570    ///
14571    /// # Forms
14572    /// Assembly: `fround.h xd, xs1, rm`
14573    FROUNDH,
14574    /// RISC-V `fround.q` instruction.
14575    ///
14576    /// # Forms
14577    /// Assembly: `fround.q qd, qs1, rm`
14578    FROUNDQ,
14579    /// RISC-V `fround.s` instruction.
14580    ///
14581    /// # Forms
14582    /// Assembly: `fround.s fd, xs1, rm`
14583    FROUNDS,
14584    /// RISC-V `froundnx.d` instruction.
14585    ///
14586    /// # Forms
14587    /// Assembly: `froundnx.d xd, xs1, rm`
14588    FROUNDNXD,
14589    /// RISC-V `froundnx.h` instruction.
14590    ///
14591    /// # Forms
14592    /// Assembly: `froundnx.h xd, xs1, rm`
14593    FROUNDNXH,
14594    /// RISC-V `froundnx.q` instruction.
14595    ///
14596    /// # Forms
14597    /// Assembly: `froundnx.q qd, qs1, rm`
14598    FROUNDNXQ,
14599    /// RISC-V `froundnx.s` instruction.
14600    ///
14601    /// # Forms
14602    /// Assembly: `froundnx.s fd, rs1, rm`
14603    FROUNDNXS,
14604    /// RISC-V `frrm` instruction.
14605    ///
14606    /// # Forms
14607    /// Assembly: `frrm rd`
14608    FRRM,
14609    /// RISC-V `fscsr` instruction.
14610    ///
14611    /// # Forms
14612    /// Assembly: `fscsr rd rs1`
14613    FSCSR,
14614    /// RISC-V `fsd` instruction.
14615    ///
14616    /// # Forms
14617    /// Assembly: `fsd xs1, xs2, imm`
14618    FSD,
14619    /// RISC-V `fsflags` instruction.
14620    ///
14621    /// # Forms
14622    /// Assembly: `fsflags rd rs1`
14623    FSFLAGS,
14624    /// RISC-V `fsflagsi` instruction.
14625    ///
14626    /// # Forms
14627    /// Assembly: `fsflagsi rd zimm5`
14628    FSFLAGSI,
14629    /// RISC-V `fsgnj.d` instruction.
14630    ///
14631    /// # Forms
14632    /// Assembly: `fsgnj.d xd, xs1, xs2`
14633    FSGNJD,
14634    /// RISC-V `fsgnj.h` instruction.
14635    ///
14636    /// # Forms
14637    /// Assembly: `fsgnj.h xd, xs1, xs2`
14638    FSGNJH,
14639    /// RISC-V `fsgnj.q` instruction.
14640    ///
14641    /// # Forms
14642    /// Assembly: `fsgnj.q qd, qs1, qs2`
14643    FSGNJQ,
14644    /// Single-precision sign inject
14645    ///
14646    /// Writes _fd_ with sign bit of _fs2_ and the exponent and mantissa of _fs1_.
14647    ///
14648    /// Sign-injection instructions do not set floating-point exception flags, nor do they canonicalize NaNs.
14649    ///
14650    /// # Forms
14651    /// Assembly: `fsgnj.s fd, fs1, fs2`
14652    FSGNJS,
14653    /// RISC-V `fsgnjn.d` instruction.
14654    ///
14655    /// # Forms
14656    /// Assembly: `fsgnjn.d xd, xs1, xs2`
14657    FSGNJND,
14658    /// RISC-V `fsgnjn.h` instruction.
14659    ///
14660    /// # Forms
14661    /// Assembly: `fsgnjn.h xd, xs1, xs2`
14662    FSGNJNH,
14663    /// RISC-V `fsgnjn.q` instruction.
14664    ///
14665    /// # Forms
14666    /// Assembly: `fsgnjn.q qd, qs1, qs2`
14667    FSGNJNQ,
14668    /// Single-precision sign inject negate
14669    ///
14670    /// Writes _fd_ with the opposite of the sign bit of _fs2_ and the exponent and mantissa of _fs1_.
14671    ///
14672    /// Sign-injection instructions do not set floating-point exception flags, nor do they canonicalize NaNs.
14673    ///
14674    /// # Forms
14675    /// Assembly: `fsgnjn.s fd, fs1, fs2`
14676    FSGNJNS,
14677    /// RISC-V `fsgnjx.d` instruction.
14678    ///
14679    /// # Forms
14680    /// Assembly: `fsgnjx.d xd, xs1, xs2`
14681    FSGNJXD,
14682    /// RISC-V `fsgnjx.h` instruction.
14683    ///
14684    /// # Forms
14685    /// Assembly: `fsgnjx.h xd, xs1, xs2`
14686    FSGNJXH,
14687    /// RISC-V `fsgnjx.q` instruction.
14688    ///
14689    /// # Forms
14690    /// Assembly: `fsgnjx.q qd, qs1, qs2`
14691    FSGNJXQ,
14692    /// Single-precision sign inject exclusive or
14693    ///
14694    /// Writes _fd_ with the xor of the sign bits of _fs2_ and _fs1_ and the exponent and mantissa of _fs1_.
14695    ///
14696    /// Sign-injection instructions do not set floating-point exception flags, nor do they canonicalize NaNs.
14697    ///
14698    /// # Forms
14699    /// Assembly: `fsgnjx.s fd, fs1, fs2`
14700    FSGNJXS,
14701    /// Half-precision floating-point store
14702    ///
14703    /// The `fsh` instruction stores a half-precision floating-point value
14704    /// from register _rd_ to memory at address _rs1_ + _imm_.
14705    ///
14706    /// `fsh` does not modify the bits being transferred; in particular, the payloads of non-canonical NaNs are preserved.
14707    ///
14708    /// `fsh` ignores all but the lower 16 bits in _rs2_.
14709    ///
14710    /// `fsh` is only guaranteed to execute atomically if the effective address is naturally aligned.
14711    ///
14712    /// # Forms
14713    /// Assembly: `fsh fs2, imm(xs1)`
14714    FSH,
14715    /// RISC-V `fsq` instruction.
14716    ///
14717    /// # Forms
14718    /// Assembly: `fsq xs1, qs2, imm`
14719    FSQ,
14720    /// RISC-V `fsqrt.d` instruction.
14721    ///
14722    /// # Forms
14723    /// Assembly: `fsqrt.d xd, xs1, rm`
14724    FSQRTD,
14725    /// RISC-V `fsqrt.h` instruction.
14726    ///
14727    /// # Forms
14728    /// Assembly: `fsqrt.h xd, xs1, rm`
14729    FSQRTH,
14730    /// RISC-V `fsqrt.q` instruction.
14731    ///
14732    /// # Forms
14733    /// Assembly: `fsqrt.q qd, qs1, rm`
14734    FSQRTQ,
14735    /// RISC-V `fsqrt.s` instruction.
14736    ///
14737    /// # Forms
14738    /// Assembly: `fsqrt.s fd, fs1, rm`
14739    FSQRTS,
14740    /// RISC-V `fsrm` instruction.
14741    ///
14742    /// # Forms
14743    /// Assembly: `fsrm rd rs1`
14744    FSRM,
14745    /// RISC-V `fsrmi` instruction.
14746    ///
14747    /// # Forms
14748    /// Assembly: `fsrmi rd zimm5`
14749    FSRMI,
14750    /// RISC-V `fsub.d` instruction.
14751    ///
14752    /// # Forms
14753    /// Assembly: `fsub.d xd, xs1, xs2, rm`
14754    FSUBD,
14755    /// RISC-V `fsub.h` instruction.
14756    ///
14757    /// # Forms
14758    /// Assembly: `fsub.h xd, xs1, xs2, rm`
14759    FSUBH,
14760    /// RISC-V `fsub.q` instruction.
14761    ///
14762    /// # Forms
14763    /// Assembly: `fsub.q qd, qs1, qs2, rm`
14764    FSUBQ,
14765    /// Single-precision floating-point subtraction
14766    ///
14767    /// Do the single-precision floating-point subtraction of fs2 from fs1 and store the result in fd.
14768    /// rm is the dynamic Rounding Mode.
14769    ///
14770    /// # Forms
14771    /// Assembly: `fsub.s fd, fs1, fs2, rm`
14772    FSUBS,
14773    /// Single-precision floating-point store
14774    ///
14775    /// The `fsw` instruction stores a single-precision floating-point value in _fs2_ to memory at address _rs1_ + _imm_.
14776    ///
14777    /// `fsw` does not modify the bits being transferred; in particular, the payloads of non-canonical NaNs are preserved.
14778    ///
14779    /// # Forms
14780    /// Assembly: `fsw fs2, xs1, imm`
14781    FSW,
14782    /// RISC-V `hfence.gvma` instruction.
14783    ///
14784    /// # Forms
14785    /// Assembly: `hfence.gvma xs1, xs2`
14786    HFENCEGVMA,
14787    /// RISC-V `hfence.vvma` instruction.
14788    ///
14789    /// # Forms
14790    /// Assembly: `hfence.vvma xs1, xs2`
14791    HFENCEVVMA,
14792    /// Invalidate cached address translations
14793    ///
14794    /// `hinval.gvma` has the same semantics as `sinval.vma` except that it combines with
14795    /// `sfence.w.inval` and `sfence.inval.ir` to replace `hfence.gvma` and uses VMID instead of ASID.
14796    ///
14797    /// # Forms
14798    /// Assembly: `hinval.gvma xs1, xs2`
14799    HINVALGVMA,
14800    /// Invalidate cached address translations
14801    ///
14802    /// `hinval.vvma` has the same semantics as `sinval.vma` except that it combines with
14803    /// `sfence.w.inval` and `sfence.inval.ir` to replace `hfence.vvma`.
14804    ///
14805    /// # Forms
14806    /// Assembly: `hinval.vvma xs1, xs2`
14807    HINVALVVMA,
14808    /// RISC-V `hlv.b` instruction.
14809    ///
14810    /// # Forms
14811    /// Assembly: `hlv.b xd, xs1`
14812    HLVB,
14813    /// RISC-V `hlv.bu` instruction.
14814    ///
14815    /// # Forms
14816    /// Assembly: `hlv.bu xd, xs1`
14817    HLVBU,
14818    /// RISC-V `hlv.d` instruction.
14819    ///
14820    /// # Forms
14821    /// Assembly: `hlv.d xd, xs1`
14822    HLVD,
14823    /// RISC-V `hlv.h` instruction.
14824    ///
14825    /// # Forms
14826    /// Assembly: `hlv.h xd, xs1`
14827    HLVH,
14828    /// RISC-V `hlv.hu` instruction.
14829    ///
14830    /// # Forms
14831    /// Assembly: `hlv.hu xd, xs1`
14832    HLVHU,
14833    /// RISC-V `hlv.w` instruction.
14834    ///
14835    /// # Forms
14836    /// Assembly: `hlv.w xd, xs1`
14837    HLVW,
14838    /// RISC-V `hlv.wu` instruction.
14839    ///
14840    /// # Forms
14841    /// Assembly: `hlv.wu xd, xs1`
14842    HLVWU,
14843    /// RISC-V `hlvx.hu` instruction.
14844    ///
14845    /// # Forms
14846    /// Assembly: `hlvx.hu xd, xs1`
14847    HLVXHU,
14848    /// RISC-V `hlvx.wu` instruction.
14849    ///
14850    /// # Forms
14851    /// Assembly: `hlvx.wu xd, xs1`
14852    HLVXWU,
14853    /// RISC-V `hsv.b` instruction.
14854    ///
14855    /// # Forms
14856    /// Assembly: `hsv.b xs1, xs2`
14857    HSVB,
14858    /// RISC-V `hsv.d` instruction.
14859    ///
14860    /// # Forms
14861    /// Assembly: `hsv.d xs1, xs2`
14862    HSVD,
14863    /// RISC-V `hsv.h` instruction.
14864    ///
14865    /// # Forms
14866    /// Assembly: `hsv.h xs1, xs2`
14867    HSVH,
14868    /// RISC-V `hsv.w` instruction.
14869    ///
14870    /// # Forms
14871    /// Assembly: `hsv.w xs1, xs2`
14872    HSVW,
14873    /// RISC-V `j` instruction.
14874    ///
14875    /// # Forms
14876    /// Assembly: `j jimm20`
14877    J,
14878    /// Jump and link
14879    ///
14880    /// Jump to a PC-relative offset and store the return
14881    /// address in rd.
14882    ///
14883    /// # Forms
14884    /// Assembly: `jal xd, imm`
14885    JAL,
14886    /// RISC-V `jal.pseudo` instruction.
14887    ///
14888    /// # Forms
14889    /// Assembly: `jal.pseudo jimm20`
14890    JALPSEUDO,
14891    /// Jump and link register
14892    ///
14893    /// Jump to an address formed by adding rs1
14894    /// to a signed offset then clearing the least
14895    /// significant bit, and store the return address
14896    /// in rd.
14897    ///
14898    /// # Forms
14899    /// Assembly: `jalr xd, imm(rs1)`
14900    JALR,
14901    /// RISC-V `jalr.pseudo` instruction.
14902    ///
14903    /// # Forms
14904    /// Assembly: `jalr.pseudo rs1`
14905    JALRPSEUDO,
14906    /// RISC-V `jr` instruction.
14907    ///
14908    /// # Forms
14909    /// Assembly: `jr rs1`
14910    JR,
14911    /// Load byte
14912    ///
14913    /// Load 8 bits of data into register `rd` from an
14914    /// address formed by adding `rs1` to a signed offset.
14915    /// Sign extend the result.
14916    ///
14917    /// # Forms
14918    /// Assembly: `lb xd, imm(rs1)`
14919    LB,
14920    /// Load byte unsigned
14921    ///
14922    /// Load 8 bits of data into register `rd` from an
14923    /// address formed by adding `rs1` to a signed offset.
14924    /// Zero extend the result.
14925    ///
14926    /// # Forms
14927    /// Assembly: `lbu xd, imm(rs1)`
14928    LBU,
14929    /// Load doubleword
14930    ///
14931    /// Load 64 bits of data into register `rd` from an
14932    /// address formed by adding `rs1` to a signed offset.
14933    ///
14934    /// # Forms
14935    /// Assembly: `ld xd, imm(rs1)`
14936    LD,
14937    /// Load halfword
14938    ///
14939    /// Load 16 bits of data into register `rd` from an
14940    /// address formed by adding `rs1` to a signed offset.
14941    /// Sign extend the result.
14942    ///
14943    /// # Forms
14944    /// Assembly: `lh xd, imm(rs1)`
14945    LH,
14946    /// Load halfword unsigned
14947    ///
14948    /// Load 16 bits of data into register `rd` from an
14949    /// address formed by adding `rs1` to a signed offset.
14950    /// Zero extend the result.
14951    ///
14952    /// # Forms
14953    /// Assembly: `lhu xd, imm(rs1)`
14954    LHU,
14955    /// RISC-V `lpad` instruction.
14956    ///
14957    /// # Forms
14958    /// Assembly: `lpad imm`
14959    LPAD,
14960    /// Load reserved doubleword
14961    ///
14962    /// Loads a word from the address in rs1, places the value in rd,
14963    /// and registers a _reservation set_  -- a set of bytes that subsumes the bytes in the
14964    /// addressed word.
14965    ///
14966    /// The address in rs1 must be 8-byte aligned.
14967    ///
14968    /// If the address is not naturally aligned, a `LoadAddressMisaligned` exception or an
14969    /// `LoadAccessFault` exception will be generated. The access-fault exception can be generated
14970    /// for a memory access that would otherwise be able to complete except for the misalignment,
14971    /// if the misaligned access should not be emulated.
14972    ///
14973    /// An implementation can register an arbitrarily large reservation set on each LR, provided the
14974    /// reservation set includes all bytes of the addressed data word or doubleword.
14975    /// An SC can only pair with the most recent LR in program order.
14976    /// An SC may succeed only if no store from another hart to the reservation set can be
14977    /// observed to have occurred between the LR and the SC, and if there is no other SC between the
14978    /// LR and itself in program order.
14979    /// An SC may succeed only if no write from a device other than a hart to the bytes accessed by
14980    /// the LR instruction can be observed to have occurred between the LR and SC. Note this LR
14981    /// might have had a different effective address and data size, but reserved the SC's
14982    /// address as part of the reservation set.
14983    ///
14984    /// \[NOTE\]
14985    /// ----
14986    /// Following this model, in systems with memory translation, an SC is allowed to succeed if the
14987    /// earlier LR reserved the same location using an alias with a different virtual address, but is
14988    /// also allowed to fail if the virtual address is different.
14989    ///
14990    /// To accommodate legacy devices and buses, writes from devices other than RISC-V harts are only
14991    /// required to invalidate reservations when they overlap the bytes accessed by the LR.
14992    /// These writes are not required to invalidate the reservation when they access other bytes in
14993    /// the reservation set.
14994    /// ----
14995    ///
14996    /// Software should not set the _rl_ bit on an LR instruction unless the _aq_ bit is also set.
14997    /// LR.rl and SC.aq instructions are not guaranteed to provide any stronger ordering than those
14998    /// with both bits clear, but may result in lower performance.
14999    ///
15000    /// # Forms
15001    /// Assembly: `lr.d xd, xs1`
15002    LRD,
15003    /// Load reserved word
15004    ///
15005    /// Loads a word from the address in rs1, places the sign-extended value in rd,
15006    /// and registers a _reservation set_  -- a set of bytes that subsumes the bytes in the
15007    /// addressed word.
15008    ///
15009    /// &lt;%- if XLEN == 64 -%&gt;
15010    /// The 32-bit load result is sign-extended to 64-bits.
15011    /// &lt;%- end -%&gt;
15012    ///
15013    /// The address in rs1 must be naturally aligned to the size of the operand
15014    /// (_i.e._, eight-byte aligned for doublewords and four-byte aligned for words).
15015    ///
15016    /// If the address is not naturally aligned, a `LoadAddressMisaligned` exception or an
15017    /// `LoadAccessFault` exception will be generated. The access-fault exception can be generated
15018    /// for a memory access that would otherwise be able to complete except for the misalignment,
15019    /// if the misaligned access should not be emulated.
15020    ///
15021    /// An implementation can register an arbitrarily large reservation set on each LR, provided the
15022    /// reservation set includes all bytes of the addressed data word or doubleword.
15023    /// An SC can only pair with the most recent LR in program order.
15024    /// An SC may succeed only if no store from another hart to the reservation set can be
15025    /// observed to have occurred between the LR and the SC, and if there is no other SC between the
15026    /// LR and itself in program order.
15027    /// An SC may succeed only if no write from a device other than a hart to the bytes accessed by
15028    /// the LR instruction can be observed to have occurred between the LR and SC. Note this LR
15029    /// might have had a different effective address and data size, but reserved the SC's
15030    /// address as part of the reservation set.
15031    ///
15032    /// \[NOTE\]
15033    /// ----
15034    /// Following this model, in systems with memory translation, an SC is allowed to succeed if the
15035    /// earlier LR reserved the same location using an alias with a different virtual address, but is
15036    /// also allowed to fail if the virtual address is different.
15037    ///
15038    /// To accommodate legacy devices and buses, writes from devices other than RISC-V harts are only
15039    /// required to invalidate reservations when they overlap the bytes accessed by the LR.
15040    /// These writes are not required to invalidate the reservation when they access other bytes in
15041    /// the reservation set.
15042    /// ----
15043    ///
15044    /// Software should not set the _rl_ bit on an LR instruction unless the _aq_ bit is also set.
15045    /// LR.rl and SC.aq instructions are not guaranteed to provide any stronger ordering than those
15046    /// with both bits clear, but may result in lower performance.
15047    ///
15048    /// # Forms
15049    /// Assembly: `lr.w xd, xs1`
15050    LRW,
15051    /// Load upper immediate
15052    ///
15053    /// Load the zero-extended imm into rd.
15054    ///
15055    /// # Forms
15056    /// Assembly: `lui xd, imm`
15057    LUI,
15058    /// Load word
15059    ///
15060    /// Load 32 bits of data into register `rd` from an
15061    /// address formed by adding `rs1` to a signed offset.
15062    /// Sign extend the result.
15063    ///
15064    /// # Forms
15065    /// Assembly: `lw xd, imm(rs1)`
15066    LW,
15067    /// Load word unsigned
15068    ///
15069    /// Load 64 bits of data into register `rd` from an
15070    /// address formed by adding `rs1` to a signed offset.
15071    /// Zero extend the result.
15072    ///
15073    /// # Forms
15074    /// Assembly: `lwu xd, imm(rs1)`
15075    LWU,
15076    /// Maximum
15077    ///
15078    /// This instruction returns the larger of two signed integers.
15079    ///
15080    /// .Software Hint
15081    /// \[NOTE\]
15082    /// Calculating the absolute value of a signed integer can be performed using the
15083    /// following sequence: `neg rD,rS` followed by `max rD,rS,rD. When using this
15084    /// common sequence, it is suggested that they are scheduled with no intervening
15085    /// instructions so that implementations that are so optimized can fuse them
15086    /// together.
15087    ///
15088    /// # Forms
15089    /// Assembly: `max xd, xs1, xs2`
15090    MAX,
15091    /// Unsigned maximum
15092    ///
15093    /// This instruction returns the larger of two unsigned integers.
15094    ///
15095    /// # Forms
15096    /// Assembly: `maxu xd, xs1, xs2`
15097    MAXU,
15098    /// Minimum
15099    ///
15100    /// This instruction returns the smaller of two signed integers.
15101    ///
15102    /// # Forms
15103    /// Assembly: `min xd, xs1, xs2`
15104    MIN,
15105    /// Unsigned minimum
15106    ///
15107    /// This instruction returns the smaller of two unsigned integers.
15108    ///
15109    /// # Forms
15110    /// Assembly: `minu xd, xs1, xs2`
15111    MINU,
15112    /// RISC-V `mnret` instruction.
15113    ///
15114    /// # Forms
15115    /// Assembly: `mnret mnret`
15116    MNRET,
15117    /// RISC-V `mop.r.0` instruction.
15118    ///
15119    /// # Forms
15120    /// Assembly: `mop.r.0 rd rs1`
15121    MOPR0,
15122    /// RISC-V `mop.r.1` instruction.
15123    ///
15124    /// # Forms
15125    /// Assembly: `mop.r.1 rd rs1`
15126    MOPR1,
15127    /// RISC-V `mop.r.10` instruction.
15128    ///
15129    /// # Forms
15130    /// Assembly: `mop.r.10 rd rs1`
15131    MOPR10,
15132    /// RISC-V `mop.r.11` instruction.
15133    ///
15134    /// # Forms
15135    /// Assembly: `mop.r.11 rd rs1`
15136    MOPR11,
15137    /// RISC-V `mop.r.12` instruction.
15138    ///
15139    /// # Forms
15140    /// Assembly: `mop.r.12 rd rs1`
15141    MOPR12,
15142    /// RISC-V `mop.r.13` instruction.
15143    ///
15144    /// # Forms
15145    /// Assembly: `mop.r.13 rd rs1`
15146    MOPR13,
15147    /// RISC-V `mop.r.14` instruction.
15148    ///
15149    /// # Forms
15150    /// Assembly: `mop.r.14 rd rs1`
15151    MOPR14,
15152    /// RISC-V `mop.r.15` instruction.
15153    ///
15154    /// # Forms
15155    /// Assembly: `mop.r.15 rd rs1`
15156    MOPR15,
15157    /// RISC-V `mop.r.16` instruction.
15158    ///
15159    /// # Forms
15160    /// Assembly: `mop.r.16 rd rs1`
15161    MOPR16,
15162    /// RISC-V `mop.r.17` instruction.
15163    ///
15164    /// # Forms
15165    /// Assembly: `mop.r.17 rd rs1`
15166    MOPR17,
15167    /// RISC-V `mop.r.18` instruction.
15168    ///
15169    /// # Forms
15170    /// Assembly: `mop.r.18 rd rs1`
15171    MOPR18,
15172    /// RISC-V `mop.r.19` instruction.
15173    ///
15174    /// # Forms
15175    /// Assembly: `mop.r.19 rd rs1`
15176    MOPR19,
15177    /// RISC-V `mop.r.2` instruction.
15178    ///
15179    /// # Forms
15180    /// Assembly: `mop.r.2 rd rs1`
15181    MOPR2,
15182    /// RISC-V `mop.r.20` instruction.
15183    ///
15184    /// # Forms
15185    /// Assembly: `mop.r.20 rd rs1`
15186    MOPR20,
15187    /// RISC-V `mop.r.21` instruction.
15188    ///
15189    /// # Forms
15190    /// Assembly: `mop.r.21 rd rs1`
15191    MOPR21,
15192    /// RISC-V `mop.r.22` instruction.
15193    ///
15194    /// # Forms
15195    /// Assembly: `mop.r.22 rd rs1`
15196    MOPR22,
15197    /// RISC-V `mop.r.23` instruction.
15198    ///
15199    /// # Forms
15200    /// Assembly: `mop.r.23 rd rs1`
15201    MOPR23,
15202    /// RISC-V `mop.r.24` instruction.
15203    ///
15204    /// # Forms
15205    /// Assembly: `mop.r.24 rd rs1`
15206    MOPR24,
15207    /// RISC-V `mop.r.25` instruction.
15208    ///
15209    /// # Forms
15210    /// Assembly: `mop.r.25 rd rs1`
15211    MOPR25,
15212    /// RISC-V `mop.r.26` instruction.
15213    ///
15214    /// # Forms
15215    /// Assembly: `mop.r.26 rd rs1`
15216    MOPR26,
15217    /// RISC-V `mop.r.27` instruction.
15218    ///
15219    /// # Forms
15220    /// Assembly: `mop.r.27 rd rs1`
15221    MOPR27,
15222    /// RISC-V `mop.r.28` instruction.
15223    ///
15224    /// # Forms
15225    /// Assembly: `mop.r.28 rd rs1`
15226    MOPR28,
15227    /// RISC-V `mop.r.29` instruction.
15228    ///
15229    /// # Forms
15230    /// Assembly: `mop.r.29 rd rs1`
15231    MOPR29,
15232    /// RISC-V `mop.r.3` instruction.
15233    ///
15234    /// # Forms
15235    /// Assembly: `mop.r.3 rd rs1`
15236    MOPR3,
15237    /// RISC-V `mop.r.30` instruction.
15238    ///
15239    /// # Forms
15240    /// Assembly: `mop.r.30 rd rs1`
15241    MOPR30,
15242    /// RISC-V `mop.r.31` instruction.
15243    ///
15244    /// # Forms
15245    /// Assembly: `mop.r.31 rd rs1`
15246    MOPR31,
15247    /// RISC-V `mop.r.4` instruction.
15248    ///
15249    /// # Forms
15250    /// Assembly: `mop.r.4 rd rs1`
15251    MOPR4,
15252    /// RISC-V `mop.r.5` instruction.
15253    ///
15254    /// # Forms
15255    /// Assembly: `mop.r.5 rd rs1`
15256    MOPR5,
15257    /// RISC-V `mop.r.6` instruction.
15258    ///
15259    /// # Forms
15260    /// Assembly: `mop.r.6 rd rs1`
15261    MOPR6,
15262    /// RISC-V `mop.r.7` instruction.
15263    ///
15264    /// # Forms
15265    /// Assembly: `mop.r.7 rd rs1`
15266    MOPR7,
15267    /// RISC-V `mop.r.8` instruction.
15268    ///
15269    /// # Forms
15270    /// Assembly: `mop.r.8 rd rs1`
15271    MOPR8,
15272    /// RISC-V `mop.r.9` instruction.
15273    ///
15274    /// # Forms
15275    /// Assembly: `mop.r.9 rd rs1`
15276    MOPR9,
15277    /// RISC-V `mop.r.n` instruction.
15278    ///
15279    /// # Forms
15280    /// Assembly: `mop.r.n mop_r_t_30, mop_r_t_27_26, mop_r_t_21_20, xd, xs1`
15281    MOPRN,
15282    /// RISC-V `mop.rr.0` instruction.
15283    ///
15284    /// # Forms
15285    /// Assembly: `mop.rr.0 rd rs1 rs2`
15286    MOPRR0,
15287    /// RISC-V `mop.rr.1` instruction.
15288    ///
15289    /// # Forms
15290    /// Assembly: `mop.rr.1 rd rs1 rs2`
15291    MOPRR1,
15292    /// RISC-V `mop.rr.2` instruction.
15293    ///
15294    /// # Forms
15295    /// Assembly: `mop.rr.2 rd rs1 rs2`
15296    MOPRR2,
15297    /// RISC-V `mop.rr.3` instruction.
15298    ///
15299    /// # Forms
15300    /// Assembly: `mop.rr.3 rd rs1 rs2`
15301    MOPRR3,
15302    /// RISC-V `mop.rr.4` instruction.
15303    ///
15304    /// # Forms
15305    /// Assembly: `mop.rr.4 rd rs1 rs2`
15306    MOPRR4,
15307    /// RISC-V `mop.rr.5` instruction.
15308    ///
15309    /// # Forms
15310    /// Assembly: `mop.rr.5 rd rs1 rs2`
15311    MOPRR5,
15312    /// RISC-V `mop.rr.6` instruction.
15313    ///
15314    /// # Forms
15315    /// Assembly: `mop.rr.6 rd rs1 rs2`
15316    MOPRR6,
15317    /// RISC-V `mop.rr.7` instruction.
15318    ///
15319    /// # Forms
15320    /// Assembly: `mop.rr.7 rd rs1 rs2`
15321    MOPRR7,
15322    /// RISC-V `mop.rr.n` instruction.
15323    ///
15324    /// # Forms
15325    /// Assembly: `mop.rr.n mop_rr_t_30, mop_rr_t_27_26, xd, xs1, xs2`
15326    MOPRRN,
15327    /// Machine Exception Return
15328    ///
15329    /// Returns from an exception in M-mode.
15330    ///
15331    /// # Forms
15332    /// Assembly: `mret ""`
15333    MRET,
15334    /// Signed multiply
15335    ///
15336    /// MUL performs an XLEN-bitxXLEN-bit multiplication of `rs1` by `rs2` and places the lower
15337    /// XLEN bits in the destination register.
15338    /// Any overflow is thrown away.
15339    ///
15340    /// \[NOTE\]
15341    /// If both the high and low bits of the same product are required, then the recommended code
15342    /// sequence is:
15343    /// MULH\[\[S\]U\] rdh, rs1, rs2; MUL rdl, rs1, rs2
15344    /// (source register specifiers must be in same order and rdh cannot be the same as rs1 or rs2).
15345    /// Microarchitectures can then fuse these into a single multiply operation instead of
15346    /// performing two separate multiplies.
15347    ///
15348    /// # Forms
15349    /// Assembly: `mul xd, xs1, xs2`
15350    MUL,
15351    /// Signed multiply high
15352    ///
15353    /// Multiply the signed values in rs1 to rs2, and store the upper half of the result in rd.
15354    /// The lower half is thrown away.
15355    ///
15356    /// If both the upper and lower halves are needed, it suggested to use the sequence:
15357    ///
15358    /// ---
15359    ///   mulh rdh, rs1, rs2
15360    ///   mul  rdl, rs1, rs2
15361    /// ---
15362    ///
15363    /// Microarchitectures may look for that sequence and fuse the operations.
15364    ///
15365    /// # Forms
15366    /// Assembly: `mulh xd, xs1, xs2`
15367    MULH,
15368    /// Signed/unsigned multiply high
15369    ///
15370    /// Multiply the signed value in rs1 by the unsigned value in rs2, and store the upper half of the result in rd.
15371    /// The lower half is thrown away.
15372    ///
15373    /// If both the upper and lower halves are needed, it suggested to use the sequence:
15374    ///
15375    /// ---
15376    ///   mulhsu rdh, rs1, rs2
15377    ///   mul    rdl, rs1, rs2
15378    /// ---
15379    ///
15380    /// Microarchitectures may look for that sequence and fuse the operations.
15381    ///
15382    /// # Forms
15383    /// Assembly: `mulhsu xd, xs1, xs2`
15384    MULHSU,
15385    /// Unsigned multiply high
15386    ///
15387    /// Multiply the unsigned values in rs1 to rs2, and store the upper half of the result in rd.
15388    /// The lower half is thrown away.
15389    ///
15390    /// If both the upper and lower halves are needed, it suggested to use the sequence:
15391    ///
15392    /// ---
15393    ///   mulhu rdh, rs1, rs2
15394    ///   mul   rdl, rs1, rs2
15395    /// ---
15396    ///
15397    /// Microarchitectures may look for that sequence and fuse the operations.
15398    ///
15399    /// # Forms
15400    /// Assembly: `mulhu xd, xs1, xs2`
15401    MULHU,
15402    /// Signed 32-bit multiply
15403    ///
15404    /// Multiplies the lower 32 bits of the source registers, placing the sign-extension of the
15405    /// lower 32 bits of the result into the destination register.
15406    ///
15407    /// Any overflow is thrown away.
15408    ///
15409    /// \[NOTE\]
15410    /// In RV64, MUL can be used to obtain the upper 32 bits of the 64-bit product,
15411    /// but signed arguments must be proper 32-bit signed values, whereas unsigned arguments
15412    /// must have their upper 32 bits clear. If the arguments are not known to be sign- or zero-extended,
15413    /// an alternative is to shift both arguments left by 32 bits, then use MULH\[\[S\]U\].
15414    ///
15415    /// # Forms
15416    /// Assembly: `mulw xd, xs1, xs2`
15417    MULW,
15418    /// RISC-V `mv` instruction.
15419    ///
15420    /// # Forms
15421    /// Assembly: `mv rd rs1`
15422    MV,
15423    /// RISC-V `neg` instruction.
15424    ///
15425    /// # Forms
15426    /// Assembly: `neg rd rs1`
15427    NEG,
15428    /// RISC-V `nop` instruction.
15429    ///
15430    /// # Forms
15431    /// Assembly: `nop`
15432    NOP,
15433    /// RISC-V `ntl.all` instruction.
15434    ///
15435    /// # Forms
15436    /// Assembly: `ntl.all`
15437    NTLALL,
15438    /// RISC-V `ntl.p1` instruction.
15439    ///
15440    /// # Forms
15441    /// Assembly: `ntl.p1`
15442    NTLP1,
15443    /// RISC-V `ntl.pall` instruction.
15444    ///
15445    /// # Forms
15446    /// Assembly: `ntl.pall`
15447    NTLPALL,
15448    /// RISC-V `ntl.s1` instruction.
15449    ///
15450    /// # Forms
15451    /// Assembly: `ntl.s1`
15452    NTLS1,
15453    /// Or
15454    ///
15455    /// Or rs1 with rs2, and store the result in rd
15456    ///
15457    /// # Forms
15458    /// Assembly: `or xd, xs1, xs2`
15459    OR,
15460    /// Bitware OR-combine, byte granule
15461    ///
15462    /// Combines the bits within each byte using bitwise logical OR. This sets the bits
15463    /// of each byte in the result rd to all zeros if no bit within the respective byte
15464    /// of rs is set, or to all ones if any bit within the respective byte of rs is set.
15465    ///
15466    /// # Forms
15467    /// Assembly: `orc.b xd, xs1, xs2`
15468    ORCB,
15469    /// Or immediate
15470    ///
15471    /// Or an immediate to the value in rs1, and store the result in rd
15472    ///
15473    /// # Forms
15474    /// Assembly: `ori xd, xs1, imm`
15475    ORI,
15476    /// OR with inverted operand
15477    ///
15478    /// This instruction performs the bitwise logical OR operation between rs1 and the bitwise inversion of rs2.
15479    ///
15480    /// # Forms
15481    /// Assembly: `orn xd, xs1, xs2`
15482    ORN,
15483    /// RISC-V `pack` instruction.
15484    ///
15485    /// # Forms
15486    /// Assembly: `pack xd, xs1, xs2`
15487    PACK,
15488    /// RISC-V `packh` instruction.
15489    ///
15490    /// # Forms
15491    /// Assembly: `packh xd, xs1, xs2`
15492    PACKH,
15493    /// RISC-V `packw` instruction.
15494    ///
15495    /// # Forms
15496    /// Assembly: `packw xd, xs1, xs2`
15497    PACKW,
15498    /// RISC-V `pause` instruction.
15499    ///
15500    /// # Forms
15501    /// Assembly: `pause`
15502    PAUSE,
15503    /// RISC-V `prefetch.i` instruction.
15504    ///
15505    /// # Forms
15506    /// Assembly: `prefetch.i rs1 imm12lohi`
15507    PREFETCHI,
15508    /// RISC-V `prefetch.r` instruction.
15509    ///
15510    /// # Forms
15511    /// Assembly: `prefetch.r rs1 imm12lohi`
15512    PREFETCHR,
15513    /// RISC-V `prefetch.w` instruction.
15514    ///
15515    /// # Forms
15516    /// Assembly: `prefetch.w rs1 imm12lohi`
15517    PREFETCHW,
15518    /// RISC-V `rdcycle` instruction.
15519    ///
15520    /// # Forms
15521    /// Assembly: `rdcycle rd`
15522    RDCYCLE,
15523    /// RISC-V `rdcycleh` instruction.
15524    ///
15525    /// # Forms
15526    /// Assembly: `rdcycleh rd`
15527    RDCYCLEH,
15528    /// RISC-V `rdinstret` instruction.
15529    ///
15530    /// # Forms
15531    /// Assembly: `rdinstret rd`
15532    RDINSTRET,
15533    /// RISC-V `rdinstreth` instruction.
15534    ///
15535    /// # Forms
15536    /// Assembly: `rdinstreth rd`
15537    RDINSTRETH,
15538    /// RISC-V `rdtime` instruction.
15539    ///
15540    /// # Forms
15541    /// Assembly: `rdtime rd`
15542    RDTIME,
15543    /// RISC-V `rdtimeh` instruction.
15544    ///
15545    /// # Forms
15546    /// Assembly: `rdtimeh rd`
15547    RDTIMEH,
15548    /// Signed remainder
15549    ///
15550    /// Calculate the remainder of signed division of rs1 by rs2, and store the result in rd.
15551    ///
15552    /// If the value in register rs2 is zero, write the value in rs1 into rd;
15553    ///
15554    /// If the result of the division overflows, write zero into rd;
15555    ///
15556    /// # Forms
15557    /// Assembly: `rem xd, xs1, xs2`
15558    REM,
15559    /// Unsigned remainder
15560    ///
15561    /// Calculate the remainder of unsigned division of rs1 by rs2, and store the result in rd.
15562    ///
15563    /// # Forms
15564    /// Assembly: `remu xd, xs1, xs2`
15565    REMU,
15566    /// Unsigned 32-bit remainder
15567    ///
15568    /// Calculate the remainder of unsigned division of the 32-bit values in rs1 by rs2,
15569    /// and store the sign-extended result in rd.
15570    ///
15571    /// If the value in rs2 is zero, rd gets the sign-extended value in rs1.
15572    ///
15573    /// # Forms
15574    /// Assembly: `remuw xd, xs1, xs2`
15575    REMUW,
15576    /// Signed 32-bit remainder
15577    ///
15578    /// Calculate the remainder of signed division of the 32-bit values rs1 by rs2,
15579    /// and store the sign-extended result in rd.
15580    ///
15581    /// If the value in register rs2 is zero, write the sign-extended 32-bit value in rs1 into rd;
15582    ///
15583    /// If the result of the division overflows, write zero into rd;
15584    ///
15585    /// # Forms
15586    /// Assembly: `remw xd, xs1, xs2`
15587    REMW,
15588    /// RISC-V `ret` instruction.
15589    ///
15590    /// # Forms
15591    /// Assembly: `ret`
15592    RET,
15593    /// Byte-reverse register (RV64 encoding)
15594    ///
15595    /// This instruction reverses the order of the bytes in rs1.
15596    ///
15597    /// \[NOTE\]
15598    /// The rev8 mnemonic corresponds to different instruction encodings in RV32 and RV64.
15599    ///
15600    /// \[NOTE\]
15601    /// The byte-reverse operation is only available for the full register width. To emulate word-sized
15602    /// and halfword-sized byte-reversal, perform a `rev8 rd,rs` followed by a `srai rd,rd,K`, where K
15603    /// is XLEN-32 and XLEN-16, respectively.
15604    ///
15605    /// # Forms
15606    /// Assembly: `rev8 xd, xs1`
15607    REV8,
15608    /// Byte-reverse register (RV64 encoding)
15609    ///
15610    /// This instruction reverses the order of the bytes in rs1.
15611    ///
15612    /// \[NOTE\]
15613    /// The rev8 mnemonic corresponds to different instruction encodings in RV32 and RV64.
15614    ///
15615    /// \[NOTE\]
15616    /// The byte-reverse operation is only available for the full register width. To emulate word-sized
15617    /// and halfword-sized byte-reversal, perform a `rev8 rd,rs` followed by a `srai rd,rd,K`, where K
15618    /// is XLEN-32 and XLEN-16, respectively.
15619    ///
15620    /// # Forms
15621    /// Assembly: `rev8.rv32 xd, xs1`
15622    REV8RV32,
15623    /// Rotate left (Register)
15624    ///
15625    /// This instruction performs a rotate left of rs1 by the amount in least-significant `log2(XLEN)` bits of rs2.
15626    ///
15627    /// # Forms
15628    /// Assembly: `rol xd, xs1, xs2`
15629    ROL,
15630    /// Rotate left word (Register)
15631    ///
15632    /// This instruction performs a rotate left of the least-significant word of rs1 by the amount in least-significant 5 bits of rs2.
15633    /// The resulting word value is sign-extended by copying bit 31 to all of the more-significant bits.
15634    ///
15635    /// # Forms
15636    /// Assembly: `rolw xd, xs1, xs2`
15637    ROLW,
15638    /// Rotate right (Register)
15639    ///
15640    /// This instruction performs a rotate right of rs1 by the amount in least-significant `log2(XLEN)` bits of rs2.
15641    ///
15642    /// # Forms
15643    /// Assembly: `ror xd, xs1, xs2`
15644    ROR,
15645    /// Rotate right (Immediate)
15646    ///
15647    /// This instruction performs a rotate right of rs1 by the amount in the least-significant log2(XLEN) bits of shamt.
15648    /// For RV32, the encodings corresponding to shamt\[5\]=1 are reserved.
15649    ///
15650    /// # Forms
15651    /// Assembly: `rori xd, xs1, shamt`
15652    RORI,
15653    /// Rotate right (Immediate)
15654    ///
15655    /// This instruction performs a rotate right of rs1 by the amount in the least-significant log2(XLEN) bits of shamt.
15656    /// For RV32, the encodings corresponding to shamt\[5\]=1 are reserved.
15657    ///
15658    /// # Forms
15659    /// Assembly: `rori.rv32 xd, xs1, shamt`
15660    RORIRV32,
15661    /// Rotate right word (Immediate)
15662    ///
15663    /// This instruction performs a rotate right on the least-significant word of rs1 by the amount in
15664    /// the least-significant log2(XLEN) bits of shamt. The resulting word value is sign-extended by
15665    /// copying bit 31 to all of the more-significant bits.
15666    ///
15667    /// # Forms
15668    /// Assembly: `roriw xd, xs1, shamt`
15669    RORIW,
15670    /// Rotate right word (Register)
15671    ///
15672    /// This instruction performs a rotate right on the least-significant word of rs1 by the amount in
15673    /// least-significant 5 bits of rs2. The resultant word is sign-extended by copying bit 31 to all
15674    /// of the more-significant bits.
15675    ///
15676    /// # Forms
15677    /// Assembly: `rorw xd, xs1, xs2`
15678    RORW,
15679    /// Store byte
15680    ///
15681    /// Store 8 bits of data from register `rs2` to an
15682    /// address formed by adding `rs1` to a signed offset.
15683    ///
15684    /// # Forms
15685    /// Assembly: `sb xs2, imm(xs1)`
15686    SB,
15687    /// RISC-V `sbreak` instruction.
15688    ///
15689    /// # Forms
15690    /// Assembly: `sbreak`
15691    SBREAK,
15692    /// Store conditional doubleword
15693    ///
15694    /// `sc.d` conditionally writes a doubleword in _rs2_ to the address in _rs1_:
15695    /// the `sc.d` succeeds only if the reservation is still valid and the
15696    /// reservation set contains the bytes being written. If the `sc.d` succeeds,
15697    /// the instruction writes the doubleword in _rs2_ to memory, and it writes zero to _rd_.
15698    /// If the `sc.d` fails, the instruction does not write to memory, and it writes a
15699    /// nonzero value to _rd_. For the purposes of memory protection, a failed `sc.d`
15700    /// may be treated like a store. Regardless of success or failure, executing an
15701    /// `sc.d` instruction invalidates any reservation held by this hart.
15702    ///
15703    /// The failure code with value 1 encodes an unspecified failure.
15704    /// Other failure codes are reserved at this time.
15705    /// Portable software should only assume the failure code will be non-zero.
15706    ///
15707    /// The address held in _rs1_ must be naturally aligned to the size of the operand
15708    /// (_i.e._, eight-byte aligned).
15709    /// If the address is not naturally aligned, an address-misaligned exception or an
15710    /// access-fault exception will be generated.
15711    /// The access-fault exception can be generated for a memory access that would otherwise
15712    /// be able to complete except for the misalignment,
15713    /// if the misaligned access should not be emulated.
15714    ///
15715    /// \[NOTE\]
15716    /// --
15717    /// Emulating misaligned LR/SC sequences is impractical in most systems.
15718    ///
15719    /// Misaligned LR/SC sequences also raise the possibility of accessing multiple
15720    /// reservation sets at once, which present definitions do not provide for.
15721    /// --
15722    ///
15723    /// An implementation can register an arbitrarily large reservation set on each LR,
15724    /// provided the reservation set includes all bytes of the addressed data word or
15725    /// doubleword.
15726    /// An SC can only pair with the most recent LR in program order.
15727    /// An SC may succeed only if no store from another hart to the reservation set
15728    /// can be observed to have occurred between the LR and the SC,
15729    /// and if there is no other SC between the LR and itself in program order.
15730    /// An SC may succeed only if no write from a device other than a hart to the bytes
15731    /// accessed by the LR instruction can be observed to have occurred between the LR
15732    /// and SC.
15733    /// Note this LR might have had a different effective address and data size,
15734    /// but reserved the SC's address as part of the reservation set.
15735    ///
15736    /// \[NOTE\]
15737    /// ----
15738    /// Following this model, in systems with memory translation, an SC is allowed to succeed if the
15739    /// earlier LR reserved the same location using an alias with a different virtual address, but is
15740    /// also allowed to fail if the virtual address is different.
15741    ///
15742    /// To accommodate legacy devices and buses, writes from devices other than RISC-V harts are only
15743    /// required to invalidate reservations when they overlap the bytes accessed by the LR.
15744    /// These writes are not required to invalidate the reservation when they access other bytes in
15745    /// the reservation set.
15746    /// ----
15747    ///
15748    /// The SC must fail if the address is not within the reservation set of the most
15749    /// recent LR in program order.
15750    /// The SC must fail if a store to the reservation set from another hart can be
15751    /// observed to occur between the LR and SC.
15752    /// The SC must fail if a write from some other device to the bytes accessed by the
15753    /// LR can be observed to occur between the LR and SC.
15754    /// (If such a device writes the reservation set but does not write the bytes accessed
15755    /// by the LR, the SC may or may not fail.)
15756    /// An SC must fail if there is another SC (to any address) between the LR and the SC
15757    /// in program order.
15758    /// The precise statement of the atomicity requirements for successful LR/SC sequences
15759    /// is defined by the Atomicity Axiom of the memory model.
15760    ///
15761    /// \[NOTE\]
15762    /// --
15763    /// The platform should provide a means to determine the size and shape of the reservation set.
15764    ///
15765    /// A platform specification may constrain the size and shape of the reservation set.
15766    ///
15767    /// A store-conditional instruction to a scratch word of memory should be used to forcibly invalidate any existing load reservation:
15768    ///
15769    ///   * during a preemptive context switch, and
15770    ///   * if necessary when changing virtual to physical address mappings, such as when migrating pages that might contain an active reservation.
15771    ///
15772    /// The invalidation of a hart's reservation when it executes an LR or SC imply that a hart can only hold one reservation at a time, and that an SC can only pair with the most recent LR, and LR with the next following SC, in program order. This is a restriction to the Atomicity Axiom in Section 18.1 that ensures software runs correctly on expected common implementations that operate in this manner.
15773    /// --
15774    ///
15775    /// An SC instruction can never be observed by another RISC-V hart before the LR instruction that established the reservation.
15776    ///
15777    /// \[NOTE\]
15778    /// --
15779    /// The LR/SC sequence can be given acquire semantics by setting the aq bit on the LR instruction. The LR/SC sequence can be given release semantics by by setting the rl bit on the SC instruction. Assuming suitable mappings for other atomic operations, setting the aq bit on the LR instruction, and setting the rl bit on the SC instruction makes the LR/SC sequence sequentially consistent in the C++ memory_order_seq_cst sense. Such a sequence does not act as a fence for ordering ordinary load and store instructions before and after the sequence. Specific instruction mappings for other C++ atomic operations, or stronger notions of "sequential consistency", may require both bits to be set on either or both of the LR or SC instruction.
15780    ///
15781    /// If neither bit is set on either LR or SC, the LR/SC sequence can be observed to occur before or after surrounding memory operations from the same RISC-V hart. This can be appropriate when the LR/SC sequence is used to implement a parallel reduction operation.
15782    /// --
15783    ///
15784    /// Software should not set the _rl_ bit on an LR instruction unless the _aq_ bit is also set.
15785    /// LR.rl and SC.aq instructions are not guaranteed to provide any stronger ordering than those
15786    /// with both bits clear, but may result in lower performance.
15787    ///
15788    /// # Forms
15789    /// Assembly: `sc.d xd, xs2, xs1`
15790    SCD,
15791    /// Store conditional word
15792    ///
15793    /// `sc.w` conditionally writes a word in _rs2_ to the address in _rs1_:
15794    /// the `sc.w` succeeds only if the reservation is still valid and the
15795    /// reservation set contains the bytes being written. If the `sc.w` succeeds,
15796    /// the instruction writes the word in _rs2_ to memory, and it writes zero to _rd_.
15797    /// If the `sc.w` fails, the instruction does not write to memory, and it writes a
15798    /// nonzero value to _rd_. For the purposes of memory protection, a failed `sc.w`
15799    /// may be treated like a store. Regardless of success or failure, executing an
15800    /// `sc.w` instruction invalidates any reservation held by this hart.
15801    ///
15802    /// &lt;%- if XLEN == 64 -%&gt;
15803    /// \[NOTE\]
15804    /// If a value other than 0 or 1 is defined as a result for `sc.w`, the value will before
15805    /// sign-extended into _rd_.
15806    /// &lt;%- end -%&gt;
15807    ///
15808    /// The failure code with value 1 encodes an unspecified failure.
15809    /// Other failure codes are reserved at this time.
15810    /// Portable software should only assume the failure code will be non-zero.
15811    ///
15812    /// The address held in _rs1_ must be naturally aligned to the size of the operand
15813    /// (_i.e._, eight-byte aligned for doublewords and four-byte aligned for words).
15814    /// If the address is not naturally aligned, an address-misaligned exception or an
15815    /// access-fault exception will be generated.
15816    /// The access-fault exception can be generated for a memory access that would otherwise
15817    /// be able to complete except for the misalignment,
15818    /// if the misaligned access should not be emulated.
15819    ///
15820    /// \[NOTE\]
15821    /// --
15822    /// Emulating misaligned LR/SC sequences is impractical in most systems.
15823    ///
15824    /// Misaligned LR/SC sequences also raise the possibility of accessing multiple
15825    /// reservation sets at once, which present definitions do not provide for.
15826    /// --
15827    ///
15828    /// An implementation can register an arbitrarily large reservation set on each LR,
15829    /// provided the reservation set includes all bytes of the addressed data word or
15830    /// doubleword.
15831    /// An SC can only pair with the most recent LR in program order.
15832    /// An SC may succeed only if no store from another hart to the reservation set
15833    /// can be observed to have occurred between the LR and the SC,
15834    /// and if there is no other SC between the LR and itself in program order.
15835    /// An SC may succeed only if no write from a device other than a hart to the bytes
15836    /// accessed by the LR instruction can be observed to have occurred between the LR
15837    /// and SC.
15838    /// Note this LR might have had a different effective address and data size,
15839    /// but reserved the SC's address as part of the reservation set.
15840    ///
15841    /// \[NOTE\]
15842    /// ----
15843    /// Following this model, in systems with memory translation, an SC is allowed to succeed if the
15844    /// earlier LR reserved the same location using an alias with a different virtual address, but is
15845    /// also allowed to fail if the virtual address is different.
15846    ///
15847    /// To accommodate legacy devices and buses, writes from devices other than RISC-V harts are only
15848    /// required to invalidate reservations when they overlap the bytes accessed by the LR.
15849    /// These writes are not required to invalidate the reservation when they access other bytes in
15850    /// the reservation set.
15851    /// ----
15852    ///
15853    /// The SC must fail if the address is not within the reservation set of the most
15854    /// recent LR in program order.
15855    /// The SC must fail if a store to the reservation set from another hart can be
15856    /// observed to occur between the LR and SC.
15857    /// The SC must fail if a write from some other device to the bytes accessed by the
15858    /// LR can be observed to occur between the LR and SC.
15859    /// (If such a device writes the reservation set but does not write the bytes accessed
15860    /// by the LR, the SC may or may not fail.)
15861    /// An SC must fail if there is another SC (to any address) between the LR and the SC
15862    /// in program order.
15863    /// The precise statement of the atomicity requirements for successful LR/SC sequences
15864    /// is defined by the Atomicity Axiom of the memory model.
15865    ///
15866    /// \[NOTE\]
15867    /// --
15868    /// The platform should provide a means to determine the size and shape of the reservation set.
15869    ///
15870    /// A platform specification may constrain the size and shape of the reservation set.
15871    ///
15872    /// A store-conditional instruction to a scratch word of memory should be used to forcibly invalidate any existing load reservation:
15873    ///
15874    ///   * during a preemptive context switch, and
15875    ///   * if necessary when changing virtual to physical address mappings, such as when migrating pages that might contain an active reservation.
15876    ///
15877    /// The invalidation of a hart's reservation when it executes an LR or SC imply that a hart can only hold one reservation at a time, and that an SC can only pair with the most recent LR, and LR with the next following SC, in program order. This is a restriction to the Atomicity Axiom in Section 18.1 that ensures software runs correctly on expected common implementations that operate in this manner.
15878    /// --
15879    ///
15880    /// An SC instruction can never be observed by another RISC-V hart before the LR instruction that established the reservation.
15881    ///
15882    /// \[NOTE\]
15883    /// --
15884    /// The LR/SC sequence can be given acquire semantics by setting the aq bit on the LR instruction. The LR/SC sequence can be given release semantics by by setting the rl bit on the SC instruction. Assuming suitable mappings for other atomic operations, setting the aq bit on the LR instruction, and setting the rl bit on the SC instruction makes the LR/SC sequence sequentially consistent in the C++ memory_order_seq_cst sense. Such a sequence does not act as a fence for ordering ordinary load and store instructions before and after the sequence. Specific instruction mappings for other C++ atomic operations, or stronger notions of "sequential consistency", may require both bits to be set on either or both of the LR or SC instruction.
15885    ///
15886    /// If neither bit is set on either LR or SC, the LR/SC sequence can be observed to occur before or after surrounding memory operations from the same RISC-V hart. This can be appropriate when the LR/SC sequence is used to implement a parallel reduction operation.
15887    /// --
15888    ///
15889    /// Software should not set the _rl_ bit on an LR instruction unless the _aq_ bit is also set.
15890    /// LR.rl and SC.aq instructions are not guaranteed to provide any stronger ordering than those
15891    /// with both bits clear, but may result in lower performance.
15892    ///
15893    /// # Forms
15894    /// Assembly: `sc.w xd, xs2, xs1`
15895    SCW,
15896    /// RISC-V `scall` instruction.
15897    ///
15898    /// # Forms
15899    /// Assembly: `scall`
15900    SCALL,
15901    /// RISC-V `sctrclr` instruction.
15902    ///
15903    /// # Forms
15904    /// Assembly: `sctrclr sctrclr`
15905    SCTRCLR,
15906    /// Store doubleword
15907    ///
15908    /// Store 64 bits of data from register `rs2` to an
15909    /// address formed by adding `rs1` to a signed offset.
15910    ///
15911    /// # Forms
15912    /// Assembly: `sd xs2, imm(xs1)`
15913    SD,
15914    /// RISC-V `seqz` instruction.
15915    ///
15916    /// # Forms
15917    /// Assembly: `seqz rd rs1`
15918    SEQZ,
15919    /// Sign-extend byte
15920    ///
15921    /// This instruction sign-extends the least-significant byte in the source to XLEN by copying the
15922    /// most-significant bit in the byte (i.e., bit 7) to all of the more-significant bits.
15923    ///
15924    /// # Forms
15925    /// Assembly: `sext.b xd, xs1`
15926    SEXTB,
15927    /// Sign-extend halfword
15928    ///
15929    /// This instruction sign-extends the least-significant halfword in the source to XLEN by copying the
15930    /// most-significant bit in the halfword (i.e., bit 15) to all of the more-significant bits.
15931    ///
15932    /// # Forms
15933    /// Assembly: `sext.h xd, xs1`
15934    SEXTH,
15935    /// RISC-V `sext.w` instruction.
15936    ///
15937    /// # Forms
15938    /// Assembly: `sext.w rd rs1`
15939    SEXTW,
15940    /// Order implicit page table reads after invalidation
15941    ///
15942    /// The `sfence.inval.ir` instruction guarantees that any previous `sinval.vma`
15943    /// instructions executed by the current hart are ordered before subsequent implicit references by
15944    /// that hart to the memory-management data structures.
15945    ///
15946    /// # Forms
15947    /// Assembly: `sfence.inval.ir ""`
15948    SFENCEINVALIR,
15949    /// Supervisor memory-management fence
15950    ///
15951    /// The supervisor memory-management fence instruction `SFENCE.VMA` is used to
15952    /// synchronize updates to in-memory memory-management data structures with
15953    /// current execution. Instruction execution causes implicit reads and
15954    /// writes to these data structures; however, these implicit references are
15955    /// ordinarily not ordered with respect to explicit loads and stores.
15956    /// Executing an SFENCE.VMA instruction guarantees that any previous stores
15957    /// already visible to the current RISC-V hart are ordered before certain
15958    /// implicit references by subsequent instructions in that hart to the
15959    /// memory-management data structures. The specific set of operations
15960    /// ordered by SFENCE.VMA is determined by _rs1_ and _rs2_, as described
15961    /// below. SFENCE.VMA is also used to invalidate entries in the
15962    /// address-translation cache associated with a hart (see &lt;&lt;sv32algorithm&gt;&gt;). Further details on the behavior of this instruction are described in &lt;&lt;virt-control&gt;&gt; and &lt;&lt;pmp-vmem&gt;&gt;.
15963    ///
15964    /// \[NOTE\]
15965    /// ====
15966    /// The SFENCE.VMA is used to flush any local hardware caches related to
15967    /// address translation. It is specified as a fence rather than a TLB flush
15968    /// to provide cleaner semantics with respect to which instructions are
15969    /// affected by the flush operation and to support a wider variety of
15970    /// dynamic caching structures and memory-management schemes. SFENCE.VMA is
15971    /// also used by higher privilege levels to synchronize page table writes
15972    /// and the address translation hardware.
15973    /// ====
15974    ///
15975    /// SFENCE.VMA orders only the local hart's implicit references to the
15976    /// memory-management data structures.
15977    ///
15978    /// \[NOTE\]
15979    /// ====
15980    /// Consequently, other harts must be notified separately when the
15981    /// memory-management data structures have been modified. One approach is to
15982    /// use 1) a local data fence to ensure local writes are visible globally,
15983    /// then 2) an interprocessor interrupt to the other thread, then 3) a local
15984    /// SFENCE.VMA in the interrupt handler of the remote thread, and finally 4)
15985    /// signal back to originating thread that operation is complete. This is,
15986    /// of course, the RISC-V analog to a TLB shootdown.
15987    /// ====
15988    ///
15989    /// For the common case that the translation data structures have only been
15990    /// modified for a single address mapping (i.e., one page or superpage),
15991    /// _rs1_ can specify a virtual address within that mapping to effect a
15992    /// translation fence for that mapping only. Furthermore, for the common
15993    /// case that the translation data structures have only been modified for a
15994    /// single address-space identifier, _rs2_ can specify the address space.
15995    /// The behavior of SFENCE.VMA depends on _rs1_ and _rs2_ as follows:
15996    ///
15997    /// * If __rs1__=`x0` and __rs2__=`x0`, the fence orders all reads and writes
15998    /// made to any level of the page tables, for all address spaces. The fence
15999    /// also invalidates all address-translation cache entries, for all address
16000    /// spaces.
16001    /// * If __rs1__=`x0` and __rs2__&#8800;``x0``, the fence orders all
16002    /// reads and writes made to any level of the page tables, but only for the
16003    /// address space identified by integer register _rs2_. Accesses to _global_
16004    /// mappings (see &lt;&lt;translation&gt;&gt;) are not ordered. The
16005    /// fence also invalidates all address-translation cache entries matching
16006    /// the address space identified by integer register _rs2_, except for
16007    /// entries containing global mappings.
16008    /// * If __rs1__&#8800;``x0`` and __rs2__=`x0`, the fence orders only
16009    /// reads and writes made to leaf page table entries corresponding to the
16010    /// virtual address in __rs1__, for all address spaces. The fence also
16011    /// invalidates all address-translation cache entries that contain leaf page
16012    /// table entries corresponding to the virtual address in _rs1_, for all
16013    /// address spaces.
16014    /// * If __rs1__&#8800;``x0`` and __rs2__&#8800;``x0``, the
16015    /// fence orders only reads and writes made to leaf page table entries
16016    /// corresponding to the virtual address in _rs1_, for the address space
16017    /// identified by integer register _rs2_. Accesses to global mappings are
16018    /// not ordered. The fence also invalidates all address-translation cache
16019    /// entries that contain leaf page table entries corresponding to the
16020    /// virtual address in _rs1_ and that match the address space identified by
16021    /// integer register _rs2_, except for entries containing global mappings.
16022    ///
16023    /// If the value held in _rs1_ is not a valid virtual address, then the
16024    /// SFENCE.VMA instruction has no effect. No exception is raised in this
16025    /// case.
16026    ///
16027    /// When __rs2__&#8800;``x0``, bits SXLEN-1:ASIDMAX of the value held
16028    /// in _rs2_ are reserved for future standard use. Until their use is
16029    /// defined by a standard extension, they should be zeroed by software and
16030    /// ignored by current implementations. Furthermore, if
16031    /// ASIDLEN&lt;ASIDMAX, the implementation shall ignore bits
16032    /// ASIDMAX-1:ASIDLEN of the value held in _rs2_.
16033    ///
16034    /// \[NOTE\]
16035    /// ====
16036    /// It is always legal to over-fence, e.g., by fencing only based on a
16037    /// subset of the bits in _rs1_ and/or _rs2_, and/or by simply treating all
16038    /// SFENCE.VMA instructions as having _rs1_=`x0` and/or _rs2_=`x0`. For
16039    /// example, simpler implementations can ignore the virtual address in _rs1_
16040    /// and the ASID value in _rs2_ and always perform a global fence. The
16041    /// choice not to raise an exception when an invalid virtual address is held
16042    /// in _rs1_ facilitates this type of simplification.
16043    /// ====
16044    ///
16045    /// An implicit read of the memory-management data structures may return any
16046    /// translation for an address that was valid at any time since the most
16047    /// recent SFENCE.VMA that subsumes that address. The ordering implied by
16048    /// SFENCE.VMA does not place implicit reads and writes to the
16049    /// memory-management data structures into the global memory order in a way
16050    /// that interacts cleanly with the standard RVWMO ordering rules. In
16051    /// particular, even though an SFENCE.VMA orders prior explicit accesses
16052    /// before subsequent implicit accesses, and those implicit accesses are
16053    /// ordered before their associated explicit accesses, SFENCE.VMA does not
16054    /// necessarily place prior explicit accesses before subsequent explicit
16055    /// accesses in the global memory order. These implicit loads also need not
16056    /// otherwise obey normal program order semantics with respect to prior
16057    /// loads or stores to the same address.
16058    ///
16059    /// \[NOTE\]
16060    /// ====
16061    /// A consequence of this specification is that an implementation may use
16062    /// any translation for an address that was valid at any time since the most
16063    /// recent SFENCE.VMA that subsumes that address. In particular, if a leaf
16064    /// PTE is modified but a subsuming SFENCE.VMA is not executed, either the
16065    /// old translation or the new translation will be used, but the choice is
16066    /// unpredictable. The behavior is otherwise well-defined.
16067    ///
16068    /// In a conventional TLB design, it is possible for multiple entries to
16069    /// match a single address if, for example, a page is upgraded to a
16070    /// superpage without first clearing the original non-leaf PTE's valid bit
16071    /// and executing an SFENCE.VMA with __rs1__=`x0`. In this case, a similar
16072    /// remark applies: it is unpredictable whether the old non-leaf PTE or the
16073    /// new leaf PTE is used, but the behavior is otherwise well defined.
16074    ///
16075    /// Another consequence of this specification is that it is generally unsafe
16076    /// to update a PTE using a set of stores of a width less than the width of
16077    /// the PTE, as it is legal for the implementation to read the PTE at any
16078    /// time, including when only some of the partial stores have taken effect.
16079    ///
16080    /// ***
16081    ///
16082    /// This specification permits the caching of PTEs whose V (Valid) bit is
16083    /// clear. Operating systems must be written to cope with this possibility,
16084    /// but implementers are reminded that eagerly caching invalid PTEs will
16085    /// reduce performance by causing additional page faults.
16086    /// ====
16087    ///
16088    /// Implementations must only perform implicit reads of the translation data
16089    /// structures pointed to by the current contents of the `satp` register or
16090    /// a subsequent valid (V=1) translation data structure entry, and must only
16091    /// raise exceptions for implicit accesses that are generated as a result of
16092    /// instruction execution, not those that are performed speculatively.
16093    ///
16094    /// Changes to the `sstatus` fields SUM and MXR take effect immediately,
16095    /// without the need to execute an SFENCE.VMA instruction. Changing
16096    /// `satp`.MODE from Bare to other modes and vice versa also takes effect
16097    /// immediately, without the need to execute an SFENCE.VMA instruction.
16098    /// Likewise, changes to `satp`.ASID take effect immediately.
16099    ///
16100    /// \[TIP\]
16101    /// ====
16102    /// The following common situations typically require executing an
16103    /// SFENCE.VMA instruction:
16104    ///
16105    /// * When software recycles an ASID (i.e., reassociates it with a different
16106    /// page table), it should _first_ change `satp` to point to the new page
16107    /// table using the recycled ASID, _then_ execute SFENCE.VMA with __rs1__=`x0`
16108    /// and _rs2_ set to the recycled ASID. Alternatively, software can execute
16109    /// the same SFENCE.VMA instruction while a different ASID is loaded into
16110    /// `satp`, provided the next time `satp` is loaded with the recycled ASID,
16111    /// it is simultaneously loaded with the new page table.
16112    /// * If the implementation does not provide ASIDs, or software chooses to
16113    /// always use ASID 0, then after every `satp` write, software should
16114    /// execute SFENCE.VMA with __rs1__=`x0`. In the common case that no global
16115    /// translations have been modified, _rs2_ should be set to a register other
16116    /// than `x0` but which contains the value zero, so that global translations
16117    /// are not flushed.
16118    /// * If software modifies a non-leaf PTE, it should execute SFENCE.VMA with
16119    /// __rs1__=`x0`. If any PTE along the traversal path had its G bit set, _rs2_
16120    /// must be `x0`; otherwise, _rs2_ should be set to the ASID for which the
16121    /// translation is being modified.
16122    /// * If software modifies a leaf PTE, it should execute SFENCE.VMA with
16123    /// _rs1_ set to a virtual address within the page. If any PTE along the
16124    /// traversal path had its G bit set, _rs2_ must be `x0`; otherwise, _rs2_
16125    /// should be set to the ASID for which the translation is being modified.
16126    /// * For the special cases of increasing the permissions on a leaf PTE and
16127    /// changing an invalid PTE to a valid leaf, software may choose to execute
16128    /// the SFENCE.VMA lazily. After modifying the PTE but before executing
16129    /// SFENCE.VMA, either the new or old permissions will be used. In the
16130    /// latter case, a page-fault exception might occur, at which point software
16131    /// should execute SFENCE.VMA in accordance with the previous bullet point.
16132    /// ====
16133    ///
16134    /// If a hart employs an address-translation cache, that cache must appear
16135    /// to be private to that hart. In particular, the meaning of an ASID is
16136    /// local to a hart; software may choose to use the same ASID to refer to
16137    /// different address spaces on different harts.
16138    ///
16139    /// \[NOTE\]
16140    /// ====
16141    /// A future extension could redefine ASIDs to be global across the SEE,
16142    /// enabling such options as shared translation caches and hardware support
16143    /// for broadcast TLB shootdown. However, as OSes have evolved to
16144    /// significantly reduce the scope of TLB shootdowns using novel
16145    /// ASID-management techniques, we expect the local-ASID scheme to remain
16146    /// attractive for its simplicity and possibly better scalability.
16147    /// ====
16148    ///
16149    /// For implementations that make `satp`.MODE read-only zero (always Bare),
16150    /// attempts to execute an SFENCE.VMA instruction might raise an
16151    /// illegal-instruction exception.
16152    ///
16153    /// # Forms
16154    /// Assembly: `sfence.vma xs1, xs2`
16155    SFENCEVMA,
16156    /// Order writes before sfence
16157    ///
16158    /// The `sfence.w.inval` instruction guarantees that any previous stores already visible to the
16159    /// current RISC-V hart are ordered before subsequent `sinval.vma` instructions executed by the
16160    /// same hart.
16161    ///
16162    /// # Forms
16163    /// Assembly: `sfence.w.inval ""`
16164    SFENCEWINVAL,
16165    /// RISC-V `sgtz` instruction.
16166    ///
16167    /// # Forms
16168    /// Assembly: `sgtz rd rs2`
16169    SGTZ,
16170    /// Store halfword
16171    ///
16172    /// Store 16 bits of data from register `rs2` to an
16173    /// address formed by adding `rs1` to a signed offset.
16174    ///
16175    /// # Forms
16176    /// Assembly: `sh xs2, imm(xs1)`
16177    SH,
16178    /// Shift left by 1 and add
16179    ///
16180    /// This instruction shifts `rs1` to the left by 1 bit and adds it to `rs2`.
16181    ///
16182    /// # Forms
16183    /// Assembly: `sh1add xd, xs1, xs2`
16184    SH1ADD,
16185    /// Shift unsigned word left by 1 and add
16186    ///
16187    /// This instruction performs an XLEN-wide addition of two addends. The first addend is rs2.
16188    /// The second addend is the unsigned value formed by extracting the least-significant word of rs1
16189    /// and shifting it left by 1 place.
16190    ///
16191    /// # Forms
16192    /// Assembly: `sh1add.uw xd, xs1, xs2`
16193    SH1ADDUW,
16194    /// Shift left by 2 and add
16195    ///
16196    /// This instruction shifts `rs1` to the left by 2 places and adds it to `rs2`.
16197    ///
16198    /// # Forms
16199    /// Assembly: `sh2add xd, xs1, xs2`
16200    SH2ADD,
16201    /// Shift unsigned word left by 2 and add
16202    ///
16203    /// This instruction performs an XLEN-wide addition of two addends. The first addend is rs2.
16204    /// The second addend is the unsigned value formed by extracting the least-significant word of rs1
16205    /// and shifting it left by 2 places.
16206    ///
16207    /// # Forms
16208    /// Assembly: `sh2add.uw xd, xs1, xs2`
16209    SH2ADDUW,
16210    /// Shift left by 3 and add
16211    ///
16212    /// This instruction shifts `rs1` to the left by 3 places and adds it to `rs2`.
16213    ///
16214    /// # Forms
16215    /// Assembly: `sh3add xd, xs1, xs2`
16216    SH3ADD,
16217    /// Shift unsigned word left by 3 and add
16218    ///
16219    /// This instruction performs an XLEN-wide addition of two addends. The first addend is rs2.
16220    /// The second addend is the unsigned value formed by extracting the least-significant word of rs1
16221    /// and shifting it left by 3 places.
16222    ///
16223    /// # Forms
16224    /// Assembly: `sh3add.uw xd, xs1, xs2`
16225    SH3ADDUW,
16226    /// RISC-V `sha256sig0` instruction.
16227    ///
16228    /// # Forms
16229    /// Assembly: `sha256sig0 xd, xs1`
16230    SHA256SIG0,
16231    /// RISC-V `sha256sig1` instruction.
16232    ///
16233    /// # Forms
16234    /// Assembly: `sha256sig1 xd, xs1`
16235    SHA256SIG1,
16236    /// RISC-V `sha256sum0` instruction.
16237    ///
16238    /// # Forms
16239    /// Assembly: `sha256sum0 xd, xs1`
16240    SHA256SUM0,
16241    /// RISC-V `sha256sum1` instruction.
16242    ///
16243    /// # Forms
16244    /// Assembly: `sha256sum1 xd, xs1`
16245    SHA256SUM1,
16246    /// RISC-V `sha512sig0` instruction.
16247    ///
16248    /// # Forms
16249    /// Assembly: `sha512sig0 xd, xs1`
16250    SHA512SIG0,
16251    /// RISC-V `sha512sig0h` instruction.
16252    ///
16253    /// # Forms
16254    /// Assembly: `sha512sig0h xd, xs1, xs2`
16255    SHA512SIG0H,
16256    /// RISC-V `sha512sig0l` instruction.
16257    ///
16258    /// # Forms
16259    /// Assembly: `sha512sig0l xd, xs1, xs2`
16260    SHA512SIG0L,
16261    /// RISC-V `sha512sig1` instruction.
16262    ///
16263    /// # Forms
16264    /// Assembly: `sha512sig1 xd, xs1`
16265    SHA512SIG1,
16266    /// RISC-V `sha512sig1h` instruction.
16267    ///
16268    /// # Forms
16269    /// Assembly: `sha512sig1h xd, xs1, xs2`
16270    SHA512SIG1H,
16271    /// RISC-V `sha512sig1l` instruction.
16272    ///
16273    /// # Forms
16274    /// Assembly: `sha512sig1l xd, xs1, xs2`
16275    SHA512SIG1L,
16276    /// RISC-V `sha512sum0` instruction.
16277    ///
16278    /// # Forms
16279    /// Assembly: `sha512sum0 xd, xs1`
16280    SHA512SUM0,
16281    /// RISC-V `sha512sum0r` instruction.
16282    ///
16283    /// # Forms
16284    /// Assembly: `sha512sum0r xd, xs1, xs2`
16285    SHA512SUM0R,
16286    /// RISC-V `sha512sum1` instruction.
16287    ///
16288    /// # Forms
16289    /// Assembly: `sha512sum1 xd, xs1`
16290    SHA512SUM1,
16291    /// RISC-V `sha512sum1r` instruction.
16292    ///
16293    /// # Forms
16294    /// Assembly: `sha512sum1r xd, xs1, xs2`
16295    SHA512SUM1R,
16296    /// Invalidate cached address translations
16297    ///
16298    /// # Forms
16299    /// Assembly: `sinval.vma xs1, xs2`
16300    SINVALVMA,
16301    /// Shift left logical
16302    ///
16303    /// Shift the value in `rs1` left by the value in the lower 6 bits of `rs2`, and store the result in `rd`.
16304    ///
16305    /// # Forms
16306    /// Assembly: `sll xd, xs1, xs2`
16307    SLL,
16308    /// Shift left logical immediate
16309    ///
16310    /// Shift the value in rs1 left by shamt, and store the result in rd
16311    ///
16312    /// # Forms
16313    /// Assembly: `slli xd, xs1, shamt`
16314    SLLI,
16315    /// Shift left logical immediate
16316    ///
16317    /// Shift the value in rs1 left by shamt, and store the result in rd
16318    ///
16319    /// # Forms
16320    /// Assembly: `slli.rv32 xd, xs1, shamt`
16321    SLLIRV32,
16322    /// Shift left unsigned word (Immediate)
16323    ///
16324    /// This instruction takes the least-significant word of rs1, zero-extends it, and shifts it
16325    /// left by the immediate.
16326    ///
16327    /// \[NOTE\]
16328    /// This instruction is the same as `slli` with `zext.w` performed on rs1 before shifting.
16329    ///
16330    /// # Forms
16331    /// Assembly: `slli.uw xd, xs1, shamt`
16332    SLLIUW,
16333    /// Shift left logical immediate word
16334    ///
16335    /// Shift the 32-bit value in rs1 left by shamt, and store the sign-extended result in rd
16336    ///
16337    /// # Forms
16338    /// Assembly: `slliw xd, xs1, shamt`
16339    SLLIW,
16340    /// Shift left logical word
16341    ///
16342    /// Shift the 32-bit value in `rs1` left by the value in the lower 5 bits of `rs2`, and store the sign-extended result in `rd`.
16343    ///
16344    /// # Forms
16345    /// Assembly: `sllw xd, xs1, xs2`
16346    SLLW,
16347    /// Set on less than
16348    ///
16349    /// Places the value 1 in register `rd` if register `rs1` is less than the value in register `rs2`, where
16350    /// both sources are treated as signed numbers, else 0 is written to `rd`.
16351    ///
16352    /// # Forms
16353    /// Assembly: `slt xd, xs1, rs2`
16354    SLT,
16355    /// Set on less than immediate
16356    ///
16357    /// Places the value 1 in register `rd` if register `rs1` is less than the sign-extended immediate
16358    /// when both are treated as signed numbers, else 0 is written to `rd`.
16359    ///
16360    /// # Forms
16361    /// Assembly: `slti xd, xs1, imm`
16362    SLTI,
16363    /// Set on less than immediate unsigned
16364    ///
16365    /// Places the value 1 in register `rd` if register `rs1` is less than the sign-extended immediate
16366    /// when both are treated as unsigned numbers (_i.e._, the immediate is first sign-extended to
16367    /// XLEN bits then treated as an unsigned number), else 0 is written to `rd`.
16368    ///
16369    /// NOTE: `sltiu rd, rs1, 1` sets `rd` to 1 if `rs1` equals zero, otherwise sets `rd` to 0
16370    /// (assembler pseudoinstruction `SEQZ rd, rs`).
16371    ///
16372    /// # Forms
16373    /// Assembly: `sltiu xd, xs1, imm`
16374    SLTIU,
16375    /// Set on less than unsigned
16376    ///
16377    /// Places the value 1 in register `rd` if register `rs1` is less than the value in register `rs2`, where
16378    /// both sources are treated as unsigned numbers, else 0 is written to `rd`.
16379    ///
16380    /// # Forms
16381    /// Assembly: `sltu xd, xs1, xs2`
16382    SLTU,
16383    /// RISC-V `sltz` instruction.
16384    ///
16385    /// # Forms
16386    /// Assembly: `sltz rd rs1`
16387    SLTZ,
16388    /// RISC-V `sm3p0` instruction.
16389    ///
16390    /// # Forms
16391    /// Assembly: `sm3p0 xd, xs1`
16392    SM3P0,
16393    /// RISC-V `sm3p1` instruction.
16394    ///
16395    /// # Forms
16396    /// Assembly: `sm3p1 xd, xs1`
16397    SM3P1,
16398    /// RISC-V `sm4ed` instruction.
16399    ///
16400    /// # Forms
16401    /// Assembly: `sm4ed xd, xs1, xs2, bs`
16402    SM4ED,
16403    /// RISC-V `sm4ks` instruction.
16404    ///
16405    /// # Forms
16406    /// Assembly: `sm4ks xd, xs1, xs2, bs`
16407    SM4KS,
16408    /// RISC-V `snez` instruction.
16409    ///
16410    /// # Forms
16411    /// Assembly: `snez rd rs2`
16412    SNEZ,
16413    /// Shift right arithmetic
16414    ///
16415    /// Arithmetic shift the value in `rs1` right by the value in the lower 5 bits of `rs2`, and store the result in `rd`.
16416    ///
16417    /// # Forms
16418    /// Assembly: `sra xd, xs1, xs2`
16419    SRA,
16420    /// Shift right arithmetic immediate
16421    ///
16422    /// Arithmetic shift (the original sign bit is copied into the vacated upper bits) the
16423    /// value in rs1 right by shamt, and store the result in rd.
16424    ///
16425    /// # Forms
16426    /// Assembly: `srai xd, xs1, shamt`
16427    SRAI,
16428    /// Shift right arithmetic immediate
16429    ///
16430    /// Arithmetic shift (the original sign bit is copied into the vacated upper bits) the
16431    /// value in rs1 right by shamt, and store the result in rd.
16432    ///
16433    /// # Forms
16434    /// Assembly: `srai.rv32 xd, xs1, shamt`
16435    SRAIRV32,
16436    /// Shift right arithmetic immediate word
16437    ///
16438    /// Arithmetic shift (the original sign bit is copied into the vacated upper bits) the
16439    /// 32-bit value in rs1 right by shamt, and store the sign-extended result in rd.
16440    ///
16441    /// # Forms
16442    /// Assembly: `sraiw xd, xs1, shamt`
16443    SRAIW,
16444    /// Shift right arithmetic word
16445    ///
16446    /// Arithmetic shift the 32-bit value in `rs1` right by the value in the lower 5 bits of `rs2`, and store the sign-extended result in `rd`.
16447    ///
16448    /// # Forms
16449    /// Assembly: `sraw xd, xs1, xs2`
16450    SRAW,
16451    /// Supervisor Exception Return
16452    ///
16453    /// Returns from an exception.
16454    ///
16455    /// When `sret` is allowed to execute, its behavior depends on whether or not the current privilege
16456    /// mode is virtualized.
16457    ///
16458    /// *When the current privilege mode is (H)S-mode or M-mode*
16459    ///
16460    /// `sret` sets  `hstatus.HPV` = 0, `mstatus.SPP` = 0,
16461    /// `mstatus.SIE` = `mstatus.SPIE`, and `mstatus.SPIE` = 1,
16462    /// changes the privilege mode according to the table below,
16463    /// and then jumps to the address in `sepc`.
16464    ///
16465    /// .Next privilege mode following an `sret` in (H)S-mode or M-mode
16466    /// \[%autowidth\]
16467    /// |===
16468    /// | \[.rotate\]#`mstatus.SPP`# | \[.rotate\]#`hstatus.SPV`# .&gt;| Mode after `sret`
16469    ///
16470    /// | 0 | 0 | U-mode
16471    /// | 0 | 1 | VU-mode
16472    /// | 1 | 0 | (H)S-mode
16473    /// | 1 | 1 | VS-mode
16474    /// |===
16475    ///
16476    /// *When the current privilege mode is VS-mode*
16477    ///
16478    /// `sret` sets
16479    /// `vsstatus.SPP` = 0, `vsstatus.SIE` = `vstatus.SPIE`, and `vsstatus.SPIE` = 1,
16480    /// changes the privilege mode according to the table below,
16481    /// and then jumps to the address in `vsepc`.
16482    ///
16483    /// .Next privilege mode following an `sret` in (H)S-mode or M-mode
16484    /// \[%autowidth\]
16485    /// |===
16486    /// | \[.rotate\]#`vsstatus.SPP`# .&gt;| Mode after `sret`
16487    ///
16488    /// | 0 | VU-mode
16489    /// | 1 | VS-mode
16490    /// |===
16491    ///
16492    /// # Forms
16493    /// Assembly: `sret ""`
16494    SRET,
16495    /// Shift right logical
16496    ///
16497    /// Logical shift the value in `rs1` right by the value in the lower bits of `rs2`, and store the result in `rd`.
16498    ///
16499    /// # Forms
16500    /// Assembly: `srl xd, xs1, xs2`
16501    SRL,
16502    /// Shift right logical immediate
16503    ///
16504    /// Shift the value in rs1 right by shamt, and store the result in rd
16505    ///
16506    /// # Forms
16507    /// Assembly: `srli xd, xs1, shamt`
16508    SRLI,
16509    /// Shift right logical immediate
16510    ///
16511    /// Shift the value in rs1 right by shamt, and store the result in rd
16512    ///
16513    /// # Forms
16514    /// Assembly: `srli.rv32 xd, xs1, shamt`
16515    SRLIRV32,
16516    /// Shift right logical immediate word
16517    ///
16518    /// Shift the 32-bit value in rs1 right by shamt, and store the sign-extended result in rd
16519    ///
16520    /// # Forms
16521    /// Assembly: `srliw xd, xs1, shamt`
16522    SRLIW,
16523    /// Shift right logical word
16524    ///
16525    /// Logical shift the 32-bit value in `rs1` right by the value in the lower 5 bits of `rs2`, and store the sign-extended result in `rd`.
16526    ///
16527    /// # Forms
16528    /// Assembly: `srlw xd, xs1, xs2`
16529    SRLW,
16530    /// RISC-V `ssamoswap.d` instruction.
16531    ///
16532    /// # Forms
16533    /// Assembly: `ssamoswap.d xd, xs1, xs2, aq, rl`
16534    SSAMOSWAPD,
16535    /// RISC-V `ssamoswap.w` instruction.
16536    ///
16537    /// # Forms
16538    /// Assembly: `ssamoswap.w xd, xs1, xs2, aq, rl`
16539    SSAMOSWAPW,
16540    /// RISC-V `sspopchk.x1` instruction.
16541    ///
16542    /// # Forms
16543    /// Assembly: `sspopchk.x1 sspopchk_x1`
16544    SSPOPCHKX1,
16545    /// RISC-V `sspopchk.x5` instruction.
16546    ///
16547    /// # Forms
16548    /// Assembly: `sspopchk.x5 sspopchk_x5`
16549    SSPOPCHKX5,
16550    /// RISC-V `sspush.x1` instruction.
16551    ///
16552    /// # Forms
16553    /// Assembly: `sspush.x1 sspush_x1`
16554    SSPUSHX1,
16555    /// RISC-V `sspush.x5` instruction.
16556    ///
16557    /// # Forms
16558    /// Assembly: `sspush.x5 sspush_x5`
16559    SSPUSHX5,
16560    /// RISC-V `ssrdp` instruction.
16561    ///
16562    /// # Forms
16563    /// Assembly: `ssrdp xd`
16564    SSRDP,
16565    /// Subtract
16566    ///
16567    /// Subtract the value in rs2 from rs1, and store the result in rd
16568    ///
16569    /// # Forms
16570    /// Assembly: `sub xd, xs1, xs2`
16571    SUB,
16572    /// Subtract word
16573    ///
16574    /// Subtract the 32-bit values in rs2 from rs1, and store the sign-extended result in rd
16575    ///
16576    /// # Forms
16577    /// Assembly: `subw xd, xs1, xs2`
16578    SUBW,
16579    /// Store word
16580    ///
16581    /// Store 32 bits of data from register `rs2` to an
16582    /// address formed by adding `rs1` to a signed offset.
16583    ///
16584    /// # Forms
16585    /// Assembly: `sw xs2, imm(xs1)`
16586    SW,
16587    /// Bit deinterleave
16588    ///
16589    /// This instruction gathers bits from the high and low halves of the source word into odd/even bit
16590    /// positions in the destination word. It is the inverse of the zip instruction. This instruction is
16591    /// available only on RV32.
16592    ///
16593    /// # Forms
16594    /// Assembly: `unzip xd, xs1`
16595    UNZIP,
16596    /// RISC-V `vaadd.vv` instruction.
16597    ///
16598    /// # Forms
16599    /// Assembly: `vaadd.vv vm, vs2, vs1, vd`
16600    VAADDVV,
16601    /// RISC-V `vaadd.vx` instruction.
16602    ///
16603    /// # Forms
16604    /// Assembly: `vaadd.vx vm, vs2, xs1, vd`
16605    VAADDVX,
16606    /// RISC-V `vaaddu.vv` instruction.
16607    ///
16608    /// # Forms
16609    /// Assembly: `vaaddu.vv vm, vs2, vs1, vd`
16610    VAADDUVV,
16611    /// RISC-V `vaaddu.vx` instruction.
16612    ///
16613    /// # Forms
16614    /// Assembly: `vaaddu.vx vm, vs2, xs1, vd`
16615    VAADDUVX,
16616    /// RISC-V `vadc.vim` instruction.
16617    ///
16618    /// # Forms
16619    /// Assembly: `vadc.vim vs2, vd, imm`
16620    VADCVIM,
16621    /// RISC-V `vadc.vvm` instruction.
16622    ///
16623    /// # Forms
16624    /// Assembly: `vadc.vvm vs2, vs1, vd`
16625    VADCVVM,
16626    /// RISC-V `vadc.vxm` instruction.
16627    ///
16628    /// # Forms
16629    /// Assembly: `vadc.vxm vs2, xs1, vd`
16630    VADCVXM,
16631    /// RISC-V `vadd.vi` instruction.
16632    ///
16633    /// # Forms
16634    /// Assembly: `vadd.vi vm, vs2, vd, imm`
16635    VADDVI,
16636    /// RISC-V `vadd.vv` instruction.
16637    ///
16638    /// # Forms
16639    /// Assembly: `vadd.vv vm, vs2, vs1, vd`
16640    VADDVV,
16641    /// RISC-V `vadd.vx` instruction.
16642    ///
16643    /// # Forms
16644    /// Assembly: `vadd.vx vm, vs2, xs1, vd`
16645    VADDVX,
16646    /// RISC-V `vaesdf.vs` instruction.
16647    ///
16648    /// # Forms
16649    /// Assembly: `vaesdf.vs vs2, vd`
16650    VAESDFVS,
16651    /// RISC-V `vaesdf.vv` instruction.
16652    ///
16653    /// # Forms
16654    /// Assembly: `vaesdf.vv vs2, vd`
16655    VAESDFVV,
16656    /// RISC-V `vaesdm.vs` instruction.
16657    ///
16658    /// # Forms
16659    /// Assembly: `vaesdm.vs vs2, vd`
16660    VAESDMVS,
16661    /// RISC-V `vaesdm.vv` instruction.
16662    ///
16663    /// # Forms
16664    /// Assembly: `vaesdm.vv vs2, vd`
16665    VAESDMVV,
16666    /// RISC-V `vaesef.vs` instruction.
16667    ///
16668    /// # Forms
16669    /// Assembly: `vaesef.vs vs2, vd`
16670    VAESEFVS,
16671    /// RISC-V `vaesef.vv` instruction.
16672    ///
16673    /// # Forms
16674    /// Assembly: `vaesef.vv vs2, vd`
16675    VAESEFVV,
16676    /// RISC-V `vaesem.vs` instruction.
16677    ///
16678    /// # Forms
16679    /// Assembly: `vaesem.vs vs2, vd`
16680    VAESEMVS,
16681    /// RISC-V `vaesem.vv` instruction.
16682    ///
16683    /// # Forms
16684    /// Assembly: `vaesem.vv vs2, vd`
16685    VAESEMVV,
16686    /// RISC-V `vaeskf1.vi` instruction.
16687    ///
16688    /// # Forms
16689    /// Assembly: `vaeskf1.vi vs2, vd, imm`
16690    VAESKF1VI,
16691    /// RISC-V `vaeskf2.vi` instruction.
16692    ///
16693    /// # Forms
16694    /// Assembly: `vaeskf2.vi vs2, vd, imm`
16695    VAESKF2VI,
16696    /// Vector AES round zero
16697    ///
16698    /// # Forms
16699    /// Assembly: `vaesz.vs vs2, vd`
16700    VAESZVS,
16701    /// RISC-V `vand.vi` instruction.
16702    ///
16703    /// # Forms
16704    /// Assembly: `vand.vi vm, vs2, vd, imm`
16705    VANDVI,
16706    /// RISC-V `vand.vv` instruction.
16707    ///
16708    /// # Forms
16709    /// Assembly: `vand.vv vm, vs2, vs1, vd`
16710    VANDVV,
16711    /// RISC-V `vand.vx` instruction.
16712    ///
16713    /// # Forms
16714    /// Assembly: `vand.vx vm, vs2, xs1, vd`
16715    VANDVX,
16716    /// RISC-V `vandn.vv` instruction.
16717    ///
16718    /// # Forms
16719    /// Assembly: `vandn.vv vm, vs2, vs1, vd`
16720    VANDNVV,
16721    /// RISC-V `vandn.vx` instruction.
16722    ///
16723    /// # Forms
16724    /// Assembly: `vandn.vx vm, vs2, xs1, vd`
16725    VANDNVX,
16726    /// RISC-V `vasub.vv` instruction.
16727    ///
16728    /// # Forms
16729    /// Assembly: `vasub.vv vm, vs2, vs1, vd`
16730    VASUBVV,
16731    /// RISC-V `vasub.vx` instruction.
16732    ///
16733    /// # Forms
16734    /// Assembly: `vasub.vx vm, vs2, xs1, vd`
16735    VASUBVX,
16736    /// RISC-V `vasubu.vv` instruction.
16737    ///
16738    /// # Forms
16739    /// Assembly: `vasubu.vv vm, vs2, vs1, vd`
16740    VASUBUVV,
16741    /// RISC-V `vasubu.vx` instruction.
16742    ///
16743    /// # Forms
16744    /// Assembly: `vasubu.vx vm, vs2, xs1, vd`
16745    VASUBUVX,
16746    /// RISC-V `vbrev8.v` instruction.
16747    ///
16748    /// # Forms
16749    /// Assembly: `vbrev8.v vm, vs2, vd`
16750    VBREV8V,
16751    /// RISC-V `vbrev.v` instruction.
16752    ///
16753    /// # Forms
16754    /// Assembly: `vbrev.v vm, vs2, vd`
16755    VBREVV,
16756    /// RISC-V `vclmul.vv` instruction.
16757    ///
16758    /// # Forms
16759    /// Assembly: `vclmul.vv vm, vs2, vs1, vd`
16760    VCLMULVV,
16761    /// RISC-V `vclmul.vx` instruction.
16762    ///
16763    /// # Forms
16764    /// Assembly: `vclmul.vx vm, vs2, xs1, vd`
16765    VCLMULVX,
16766    /// RISC-V `vclmulh.vv` instruction.
16767    ///
16768    /// # Forms
16769    /// Assembly: `vclmulh.vv vm, vs2, vs1, vd`
16770    VCLMULHVV,
16771    /// RISC-V `vclmulh.vx` instruction.
16772    ///
16773    /// # Forms
16774    /// Assembly: `vclmulh.vx vm, vs2, xs1, vd`
16775    VCLMULHVX,
16776    /// RISC-V `vclz.v` instruction.
16777    ///
16778    /// # Forms
16779    /// Assembly: `vclz.v vm, vs2, vd`
16780    VCLZV,
16781    /// RISC-V `vcompress.vm` instruction.
16782    ///
16783    /// # Forms
16784    /// Assembly: `vcompress.vm vs2, vs1, vd`
16785    VCOMPRESSVM,
16786    /// RISC-V `vcpop.m` instruction.
16787    ///
16788    /// # Forms
16789    /// Assembly: `vcpop.m vm, vs2, xd`
16790    VCPOPM,
16791    /// RISC-V `vcpop.v` instruction.
16792    ///
16793    /// # Forms
16794    /// Assembly: `vcpop.v vm, vs2, vd`
16795    VCPOPV,
16796    /// RISC-V `vctz.v` instruction.
16797    ///
16798    /// # Forms
16799    /// Assembly: `vctz.v vm, vs2, vd`
16800    VCTZV,
16801    /// RISC-V `vdiv.vv` instruction.
16802    ///
16803    /// # Forms
16804    /// Assembly: `vdiv.vv vm, vs2, vs1, vd`
16805    VDIVVV,
16806    /// RISC-V `vdiv.vx` instruction.
16807    ///
16808    /// # Forms
16809    /// Assembly: `vdiv.vx vm, vs2, xs1, vd`
16810    VDIVVX,
16811    /// RISC-V `vdivu.vv` instruction.
16812    ///
16813    /// # Forms
16814    /// Assembly: `vdivu.vv vm, vs2, vs1, vd`
16815    VDIVUVV,
16816    /// RISC-V `vdivu.vx` instruction.
16817    ///
16818    /// # Forms
16819    /// Assembly: `vdivu.vx vm, vs2, xs1, vd`
16820    VDIVUVX,
16821    /// RISC-V `vfadd.vf` instruction.
16822    ///
16823    /// # Forms
16824    /// Assembly: `vfadd.vf vm, vs2, xs1, vd`
16825    VFADDVF,
16826    /// RISC-V `vfadd.vv` instruction.
16827    ///
16828    /// # Forms
16829    /// Assembly: `vfadd.vv vm, vs2, vs1, vd`
16830    VFADDVV,
16831    /// RISC-V `vfclass.v` instruction.
16832    ///
16833    /// # Forms
16834    /// Assembly: `vfclass.v vm, vs2, vd`
16835    VFCLASSV,
16836    /// RISC-V `vfcvt.f.x.v` instruction.
16837    ///
16838    /// # Forms
16839    /// Assembly: `vfcvt.f.x.v vm, vs2, vd`
16840    VFCVTFXV,
16841    /// RISC-V `vfcvt.f.xu.v` instruction.
16842    ///
16843    /// # Forms
16844    /// Assembly: `vfcvt.f.xu.v vm, vs2, vd`
16845    VFCVTFXUV,
16846    /// RISC-V `vfcvt.rtz.x.f.v` instruction.
16847    ///
16848    /// # Forms
16849    /// Assembly: `vfcvt.rtz.x.f.v vm, vs2, vd`
16850    VFCVTRTZXFV,
16851    /// RISC-V `vfcvt.rtz.xu.f.v` instruction.
16852    ///
16853    /// # Forms
16854    /// Assembly: `vfcvt.rtz.xu.f.v vm, vs2, vd`
16855    VFCVTRTZXUFV,
16856    /// RISC-V `vfcvt.x.f.v` instruction.
16857    ///
16858    /// # Forms
16859    /// Assembly: `vfcvt.x.f.v vm, vs2, vd`
16860    VFCVTXFV,
16861    /// RISC-V `vfcvt.xu.f.v` instruction.
16862    ///
16863    /// # Forms
16864    /// Assembly: `vfcvt.xu.f.v vm, vs2, vd`
16865    VFCVTXUFV,
16866    /// RISC-V `vfdiv.vf` instruction.
16867    ///
16868    /// # Forms
16869    /// Assembly: `vfdiv.vf vm, vs2, xs1, vd`
16870    VFDIVVF,
16871    /// RISC-V `vfdiv.vv` instruction.
16872    ///
16873    /// # Forms
16874    /// Assembly: `vfdiv.vv vm, vs2, vs1, vd`
16875    VFDIVVV,
16876    /// RISC-V `vfirst.m` instruction.
16877    ///
16878    /// # Forms
16879    /// Assembly: `vfirst.m vm, vs2, xd`
16880    VFIRSTM,
16881    /// RISC-V `vfmacc.vf` instruction.
16882    ///
16883    /// # Forms
16884    /// Assembly: `vfmacc.vf vm, vs2, xs1, vd`
16885    VFMACCVF,
16886    /// RISC-V `vfmacc.vv` instruction.
16887    ///
16888    /// # Forms
16889    /// Assembly: `vfmacc.vv vm, vs2, vs1, vd`
16890    VFMACCVV,
16891    /// RISC-V `vfmadd.vf` instruction.
16892    ///
16893    /// # Forms
16894    /// Assembly: `vfmadd.vf vm, vs2, xs1, vd`
16895    VFMADDVF,
16896    /// RISC-V `vfmadd.vv` instruction.
16897    ///
16898    /// # Forms
16899    /// Assembly: `vfmadd.vv vm, vs2, vs1, vd`
16900    VFMADDVV,
16901    /// RISC-V `vfmax.vf` instruction.
16902    ///
16903    /// # Forms
16904    /// Assembly: `vfmax.vf vm, vs2, xs1, vd`
16905    VFMAXVF,
16906    /// RISC-V `vfmax.vv` instruction.
16907    ///
16908    /// # Forms
16909    /// Assembly: `vfmax.vv vm, vs2, vs1, vd`
16910    VFMAXVV,
16911    /// RISC-V `vfmerge.vfm` instruction.
16912    ///
16913    /// # Forms
16914    /// Assembly: `vfmerge.vfm vs2, xs1, vd`
16915    VFMERGEVFM,
16916    /// RISC-V `vfmin.vf` instruction.
16917    ///
16918    /// # Forms
16919    /// Assembly: `vfmin.vf vm, vs2, xs1, vd`
16920    VFMINVF,
16921    /// RISC-V `vfmin.vv` instruction.
16922    ///
16923    /// # Forms
16924    /// Assembly: `vfmin.vv vm, vs2, vs1, vd`
16925    VFMINVV,
16926    /// RISC-V `vfmsac.vf` instruction.
16927    ///
16928    /// # Forms
16929    /// Assembly: `vfmsac.vf vm, vs2, xs1, vd`
16930    VFMSACVF,
16931    /// RISC-V `vfmsac.vv` instruction.
16932    ///
16933    /// # Forms
16934    /// Assembly: `vfmsac.vv vm, vs2, vs1, vd`
16935    VFMSACVV,
16936    /// RISC-V `vfmsub.vf` instruction.
16937    ///
16938    /// # Forms
16939    /// Assembly: `vfmsub.vf vm, vs2, xs1, vd`
16940    VFMSUBVF,
16941    /// RISC-V `vfmsub.vv` instruction.
16942    ///
16943    /// # Forms
16944    /// Assembly: `vfmsub.vv vm, vs2, vs1, vd`
16945    VFMSUBVV,
16946    /// RISC-V `vfmul.vf` instruction.
16947    ///
16948    /// # Forms
16949    /// Assembly: `vfmul.vf vm, vs2, xs1, vd`
16950    VFMULVF,
16951    /// RISC-V `vfmul.vv` instruction.
16952    ///
16953    /// # Forms
16954    /// Assembly: `vfmul.vv vm, vs2, vs1, vd`
16955    VFMULVV,
16956    /// RISC-V `vfmv.f.s` instruction.
16957    ///
16958    /// # Forms
16959    /// Assembly: `vfmv.f.s vs2, xd`
16960    VFMVFS,
16961    /// RISC-V `vfmv.s.f` instruction.
16962    ///
16963    /// # Forms
16964    /// Assembly: `vfmv.s.f xs1, vd`
16965    VFMVSF,
16966    /// RISC-V `vfmv.v.f` instruction.
16967    ///
16968    /// # Forms
16969    /// Assembly: `vfmv.v.f xs1, vd`
16970    VFMVVF,
16971    /// RISC-V `vfncvt.f.f.w` instruction.
16972    ///
16973    /// # Forms
16974    /// Assembly: `vfncvt.f.f.w vm, vs2, vd`
16975    VFNCVTFFW,
16976    /// RISC-V `vfncvt.f.x.w` instruction.
16977    ///
16978    /// # Forms
16979    /// Assembly: `vfncvt.f.x.w vm, vs2, vd`
16980    VFNCVTFXW,
16981    /// RISC-V `vfncvt.f.xu.w` instruction.
16982    ///
16983    /// # Forms
16984    /// Assembly: `vfncvt.f.xu.w vm, vs2, vd`
16985    VFNCVTFXUW,
16986    /// RISC-V `vfncvt.rod.f.f.w` instruction.
16987    ///
16988    /// # Forms
16989    /// Assembly: `vfncvt.rod.f.f.w vm, vs2, vd`
16990    VFNCVTRODFFW,
16991    /// RISC-V `vfncvt.rtz.x.f.w` instruction.
16992    ///
16993    /// # Forms
16994    /// Assembly: `vfncvt.rtz.x.f.w vm, vs2, vd`
16995    VFNCVTRTZXFW,
16996    /// RISC-V `vfncvt.rtz.xu.f.w` instruction.
16997    ///
16998    /// # Forms
16999    /// Assembly: `vfncvt.rtz.xu.f.w vm, vs2, vd`
17000    VFNCVTRTZXUFW,
17001    /// RISC-V `vfncvt.x.f.w` instruction.
17002    ///
17003    /// # Forms
17004    /// Assembly: `vfncvt.x.f.w vm, vs2, vd`
17005    VFNCVTXFW,
17006    /// RISC-V `vfncvt.xu.f.w` instruction.
17007    ///
17008    /// # Forms
17009    /// Assembly: `vfncvt.xu.f.w vm, vs2, vd`
17010    VFNCVTXUFW,
17011    /// RISC-V `vfncvtbf16.f.f.w` instruction.
17012    ///
17013    /// # Forms
17014    /// Assembly: `vfncvtbf16.f.f.w vm, vs2, vd`
17015    VFNCVTBF16FFW,
17016    /// RISC-V `vfnmacc.vf` instruction.
17017    ///
17018    /// # Forms
17019    /// Assembly: `vfnmacc.vf vm, vs2, xs1, vd`
17020    VFNMACCVF,
17021    /// RISC-V `vfnmacc.vv` instruction.
17022    ///
17023    /// # Forms
17024    /// Assembly: `vfnmacc.vv vm, vs2, vs1, vd`
17025    VFNMACCVV,
17026    /// RISC-V `vfnmadd.vf` instruction.
17027    ///
17028    /// # Forms
17029    /// Assembly: `vfnmadd.vf vm, vs2, xs1, vd`
17030    VFNMADDVF,
17031    /// RISC-V `vfnmadd.vv` instruction.
17032    ///
17033    /// # Forms
17034    /// Assembly: `vfnmadd.vv vm, vs2, vs1, vd`
17035    VFNMADDVV,
17036    /// RISC-V `vfnmsac.vf` instruction.
17037    ///
17038    /// # Forms
17039    /// Assembly: `vfnmsac.vf vm, vs2, xs1, vd`
17040    VFNMSACVF,
17041    /// RISC-V `vfnmsac.vv` instruction.
17042    ///
17043    /// # Forms
17044    /// Assembly: `vfnmsac.vv vm, vs2, vs1, vd`
17045    VFNMSACVV,
17046    /// RISC-V `vfnmsub.vf` instruction.
17047    ///
17048    /// # Forms
17049    /// Assembly: `vfnmsub.vf vm, vs2, xs1, vd`
17050    VFNMSUBVF,
17051    /// RISC-V `vfnmsub.vv` instruction.
17052    ///
17053    /// # Forms
17054    /// Assembly: `vfnmsub.vv vm, vs2, vs1, vd`
17055    VFNMSUBVV,
17056    /// RISC-V `vfrdiv.vf` instruction.
17057    ///
17058    /// # Forms
17059    /// Assembly: `vfrdiv.vf vm, vs2, xs1, vd`
17060    VFRDIVVF,
17061    /// RISC-V `vfrec7.v` instruction.
17062    ///
17063    /// # Forms
17064    /// Assembly: `vfrec7.v vm, vs2, vd`
17065    VFREC7V,
17066    /// RISC-V `vfredmax.vs` instruction.
17067    ///
17068    /// # Forms
17069    /// Assembly: `vfredmax.vs vm, vs2, vs1, vd`
17070    VFREDMAXVS,
17071    /// RISC-V `vfredmin.vs` instruction.
17072    ///
17073    /// # Forms
17074    /// Assembly: `vfredmin.vs vm, vs2, vs1, vd`
17075    VFREDMINVS,
17076    /// RISC-V `vfredosum.vs` instruction.
17077    ///
17078    /// # Forms
17079    /// Assembly: `vfredosum.vs vm, vs2, vs1, vd`
17080    VFREDOSUMVS,
17081    /// RISC-V `vfredsum.vs` instruction.
17082    ///
17083    /// # Forms
17084    /// Assembly: `vfredsum.vs vd vs1 vs2 vm`
17085    VFREDSUMVS,
17086    /// RISC-V `vfredusum.vs` instruction.
17087    ///
17088    /// # Forms
17089    /// Assembly: `vfredusum.vs vm, vs2, vs1, vd`
17090    VFREDUSUMVS,
17091    /// RISC-V `vfrsqrt7.v` instruction.
17092    ///
17093    /// # Forms
17094    /// Assembly: `vfrsqrt7.v vm, vs2, vd`
17095    VFRSQRT7V,
17096    /// RISC-V `vfrsub.vf` instruction.
17097    ///
17098    /// # Forms
17099    /// Assembly: `vfrsub.vf vm, vs2, xs1, vd`
17100    VFRSUBVF,
17101    /// RISC-V `vfsgnj.vf` instruction.
17102    ///
17103    /// # Forms
17104    /// Assembly: `vfsgnj.vf vm, vs2, xs1, vd`
17105    VFSGNJVF,
17106    /// RISC-V `vfsgnj.vv` instruction.
17107    ///
17108    /// # Forms
17109    /// Assembly: `vfsgnj.vv vm, vs2, vs1, vd`
17110    VFSGNJVV,
17111    /// RISC-V `vfsgnjn.vf` instruction.
17112    ///
17113    /// # Forms
17114    /// Assembly: `vfsgnjn.vf vm, vs2, xs1, vd`
17115    VFSGNJNVF,
17116    /// RISC-V `vfsgnjn.vv` instruction.
17117    ///
17118    /// # Forms
17119    /// Assembly: `vfsgnjn.vv vm, vs2, vs1, vd`
17120    VFSGNJNVV,
17121    /// RISC-V `vfsgnjx.vf` instruction.
17122    ///
17123    /// # Forms
17124    /// Assembly: `vfsgnjx.vf vm, vs2, xs1, vd`
17125    VFSGNJXVF,
17126    /// RISC-V `vfsgnjx.vv` instruction.
17127    ///
17128    /// # Forms
17129    /// Assembly: `vfsgnjx.vv vm, vs2, vs1, vd`
17130    VFSGNJXVV,
17131    /// RISC-V `vfslide1down.vf` instruction.
17132    ///
17133    /// # Forms
17134    /// Assembly: `vfslide1down.vf vm, vs2, xs1, vd`
17135    VFSLIDE1DOWNVF,
17136    /// RISC-V `vfslide1up.vf` instruction.
17137    ///
17138    /// # Forms
17139    /// Assembly: `vfslide1up.vf vm, vs2, xs1, vd`
17140    VFSLIDE1UPVF,
17141    /// RISC-V `vfsqrt.v` instruction.
17142    ///
17143    /// # Forms
17144    /// Assembly: `vfsqrt.v vm, vs2, vd`
17145    VFSQRTV,
17146    /// RISC-V `vfsub.vf` instruction.
17147    ///
17148    /// # Forms
17149    /// Assembly: `vfsub.vf vm, vs2, xs1, vd`
17150    VFSUBVF,
17151    /// RISC-V `vfsub.vv` instruction.
17152    ///
17153    /// # Forms
17154    /// Assembly: `vfsub.vv vm, vs2, vs1, vd`
17155    VFSUBVV,
17156    /// RISC-V `vfwadd.vf` instruction.
17157    ///
17158    /// # Forms
17159    /// Assembly: `vfwadd.vf vm, vs2, xs1, vd`
17160    VFWADDVF,
17161    /// RISC-V `vfwadd.vv` instruction.
17162    ///
17163    /// # Forms
17164    /// Assembly: `vfwadd.vv vm, vs2, vs1, vd`
17165    VFWADDVV,
17166    /// RISC-V `vfwadd.wf` instruction.
17167    ///
17168    /// # Forms
17169    /// Assembly: `vfwadd.wf vm, vs2, xs1, vd`
17170    VFWADDWF,
17171    /// RISC-V `vfwadd.wv` instruction.
17172    ///
17173    /// # Forms
17174    /// Assembly: `vfwadd.wv vm, vs2, vs1, vd`
17175    VFWADDWV,
17176    /// RISC-V `vfwcvt.f.f.v` instruction.
17177    ///
17178    /// # Forms
17179    /// Assembly: `vfwcvt.f.f.v vm, vs2, vd`
17180    VFWCVTFFV,
17181    /// RISC-V `vfwcvt.f.x.v` instruction.
17182    ///
17183    /// # Forms
17184    /// Assembly: `vfwcvt.f.x.v vm, vs2, vd`
17185    VFWCVTFXV,
17186    /// RISC-V `vfwcvt.f.xu.v` instruction.
17187    ///
17188    /// # Forms
17189    /// Assembly: `vfwcvt.f.xu.v vm, vs2, vd`
17190    VFWCVTFXUV,
17191    /// RISC-V `vfwcvt.rtz.x.f.v` instruction.
17192    ///
17193    /// # Forms
17194    /// Assembly: `vfwcvt.rtz.x.f.v vm, vs2, vd`
17195    VFWCVTRTZXFV,
17196    /// RISC-V `vfwcvt.rtz.xu.f.v` instruction.
17197    ///
17198    /// # Forms
17199    /// Assembly: `vfwcvt.rtz.xu.f.v vm, vs2, vd`
17200    VFWCVTRTZXUFV,
17201    /// RISC-V `vfwcvt.x.f.v` instruction.
17202    ///
17203    /// # Forms
17204    /// Assembly: `vfwcvt.x.f.v vm, vs2, vd`
17205    VFWCVTXFV,
17206    /// RISC-V `vfwcvt.xu.f.v` instruction.
17207    ///
17208    /// # Forms
17209    /// Assembly: `vfwcvt.xu.f.v vm, vs2, vd`
17210    VFWCVTXUFV,
17211    /// RISC-V `vfwcvtbf16.f.f.v` instruction.
17212    ///
17213    /// # Forms
17214    /// Assembly: `vfwcvtbf16.f.f.v vm, vs2, vd`
17215    VFWCVTBF16FFV,
17216    /// RISC-V `vfwmacc.vf` instruction.
17217    ///
17218    /// # Forms
17219    /// Assembly: `vfwmacc.vf vm, vs2, xs1, vd`
17220    VFWMACCVF,
17221    /// RISC-V `vfwmacc.vv` instruction.
17222    ///
17223    /// # Forms
17224    /// Assembly: `vfwmacc.vv vm, vs2, vs1, vd`
17225    VFWMACCVV,
17226    /// RISC-V `vfwmaccbf16.vf` instruction.
17227    ///
17228    /// # Forms
17229    /// Assembly: `vfwmaccbf16.vf vm, vs2, xs1, vd`
17230    VFWMACCBF16VF,
17231    /// RISC-V `vfwmaccbf16.vv` instruction.
17232    ///
17233    /// # Forms
17234    /// Assembly: `vfwmaccbf16.vv vm, vs2, vs1, vd`
17235    VFWMACCBF16VV,
17236    /// RISC-V `vfwmsac.vf` instruction.
17237    ///
17238    /// # Forms
17239    /// Assembly: `vfwmsac.vf vm, vs2, xs1, vd`
17240    VFWMSACVF,
17241    /// RISC-V `vfwmsac.vv` instruction.
17242    ///
17243    /// # Forms
17244    /// Assembly: `vfwmsac.vv vm, vs2, vs1, vd`
17245    VFWMSACVV,
17246    /// RISC-V `vfwmul.vf` instruction.
17247    ///
17248    /// # Forms
17249    /// Assembly: `vfwmul.vf vm, vs2, xs1, vd`
17250    VFWMULVF,
17251    /// RISC-V `vfwmul.vv` instruction.
17252    ///
17253    /// # Forms
17254    /// Assembly: `vfwmul.vv vm, vs2, vs1, vd`
17255    VFWMULVV,
17256    /// RISC-V `vfwnmacc.vf` instruction.
17257    ///
17258    /// # Forms
17259    /// Assembly: `vfwnmacc.vf vm, vs2, xs1, vd`
17260    VFWNMACCVF,
17261    /// RISC-V `vfwnmacc.vv` instruction.
17262    ///
17263    /// # Forms
17264    /// Assembly: `vfwnmacc.vv vm, vs2, vs1, vd`
17265    VFWNMACCVV,
17266    /// RISC-V `vfwnmsac.vf` instruction.
17267    ///
17268    /// # Forms
17269    /// Assembly: `vfwnmsac.vf vm, vs2, xs1, vd`
17270    VFWNMSACVF,
17271    /// RISC-V `vfwnmsac.vv` instruction.
17272    ///
17273    /// # Forms
17274    /// Assembly: `vfwnmsac.vv vm, vs2, vs1, vd`
17275    VFWNMSACVV,
17276    /// RISC-V `vfwredosum.vs` instruction.
17277    ///
17278    /// # Forms
17279    /// Assembly: `vfwredosum.vs vm, vs2, vs1, vd`
17280    VFWREDOSUMVS,
17281    /// RISC-V `vfwredsum.vs` instruction.
17282    ///
17283    /// # Forms
17284    /// Assembly: `vfwredsum.vs vd vs1 vs2 vm`
17285    VFWREDSUMVS,
17286    /// RISC-V `vfwredusum.vs` instruction.
17287    ///
17288    /// # Forms
17289    /// Assembly: `vfwredusum.vs vm, vs2, vs1, vd`
17290    VFWREDUSUMVS,
17291    /// RISC-V `vfwsub.vf` instruction.
17292    ///
17293    /// # Forms
17294    /// Assembly: `vfwsub.vf vm, vs2, xs1, vd`
17295    VFWSUBVF,
17296    /// RISC-V `vfwsub.vv` instruction.
17297    ///
17298    /// # Forms
17299    /// Assembly: `vfwsub.vv vm, vs2, vs1, vd`
17300    VFWSUBVV,
17301    /// RISC-V `vfwsub.wf` instruction.
17302    ///
17303    /// # Forms
17304    /// Assembly: `vfwsub.wf vm, vs2, xs1, vd`
17305    VFWSUBWF,
17306    /// RISC-V `vfwsub.wv` instruction.
17307    ///
17308    /// # Forms
17309    /// Assembly: `vfwsub.wv vm, vs2, vs1, vd`
17310    VFWSUBWV,
17311    /// RISC-V `vghsh.vv` instruction.
17312    ///
17313    /// # Forms
17314    /// Assembly: `vghsh.vv vs2, vs1, vd`
17315    VGHSHVV,
17316    /// RISC-V `vgmul.vv` instruction.
17317    ///
17318    /// # Forms
17319    /// Assembly: `vgmul.vv vs2, vd`
17320    VGMULVV,
17321    /// RISC-V `vid.v` instruction.
17322    ///
17323    /// # Forms
17324    /// Assembly: `vid.v vm, vd`
17325    VIDV,
17326    /// RISC-V `viota.m` instruction.
17327    ///
17328    /// # Forms
17329    /// Assembly: `viota.m vm, vs2, vd`
17330    VIOTAM,
17331    /// RISC-V `vl1r.v` instruction.
17332    ///
17333    /// # Forms
17334    /// Assembly: `vl1r.v vd rs1`
17335    VL1RV,
17336    /// RISC-V `vl1re16.v` instruction.
17337    ///
17338    /// # Forms
17339    /// Assembly: `vl1re16.v xs1, vd`
17340    VL1RE16V,
17341    /// RISC-V `vl1re32.v` instruction.
17342    ///
17343    /// # Forms
17344    /// Assembly: `vl1re32.v xs1, vd`
17345    VL1RE32V,
17346    /// RISC-V `vl1re64.v` instruction.
17347    ///
17348    /// # Forms
17349    /// Assembly: `vl1re64.v xs1, vd`
17350    VL1RE64V,
17351    /// RISC-V `vl1re8.v` instruction.
17352    ///
17353    /// # Forms
17354    /// Assembly: `vl1re8.v xs1, vd`
17355    VL1RE8V,
17356    /// RISC-V `vl2r.v` instruction.
17357    ///
17358    /// # Forms
17359    /// Assembly: `vl2r.v vd rs1`
17360    VL2RV,
17361    /// RISC-V `vl2re16.v` instruction.
17362    ///
17363    /// # Forms
17364    /// Assembly: `vl2re16.v xs1, vd`
17365    VL2RE16V,
17366    /// RISC-V `vl2re32.v` instruction.
17367    ///
17368    /// # Forms
17369    /// Assembly: `vl2re32.v xs1, vd`
17370    VL2RE32V,
17371    /// RISC-V `vl2re64.v` instruction.
17372    ///
17373    /// # Forms
17374    /// Assembly: `vl2re64.v xs1, vd`
17375    VL2RE64V,
17376    /// RISC-V `vl2re8.v` instruction.
17377    ///
17378    /// # Forms
17379    /// Assembly: `vl2re8.v xs1, vd`
17380    VL2RE8V,
17381    /// RISC-V `vl4r.v` instruction.
17382    ///
17383    /// # Forms
17384    /// Assembly: `vl4r.v vd rs1`
17385    VL4RV,
17386    /// RISC-V `vl4re16.v` instruction.
17387    ///
17388    /// # Forms
17389    /// Assembly: `vl4re16.v xs1, vd`
17390    VL4RE16V,
17391    /// RISC-V `vl4re32.v` instruction.
17392    ///
17393    /// # Forms
17394    /// Assembly: `vl4re32.v xs1, vd`
17395    VL4RE32V,
17396    /// RISC-V `vl4re64.v` instruction.
17397    ///
17398    /// # Forms
17399    /// Assembly: `vl4re64.v xs1, vd`
17400    VL4RE64V,
17401    /// RISC-V `vl4re8.v` instruction.
17402    ///
17403    /// # Forms
17404    /// Assembly: `vl4re8.v xs1, vd`
17405    VL4RE8V,
17406    /// RISC-V `vl8r.v` instruction.
17407    ///
17408    /// # Forms
17409    /// Assembly: `vl8r.v vd rs1`
17410    VL8RV,
17411    /// RISC-V `vl8re16.v` instruction.
17412    ///
17413    /// # Forms
17414    /// Assembly: `vl8re16.v xs1, vd`
17415    VL8RE16V,
17416    /// RISC-V `vl8re32.v` instruction.
17417    ///
17418    /// # Forms
17419    /// Assembly: `vl8re32.v xs1, vd`
17420    VL8RE32V,
17421    /// RISC-V `vl8re64.v` instruction.
17422    ///
17423    /// # Forms
17424    /// Assembly: `vl8re64.v xs1, vd`
17425    VL8RE64V,
17426    /// RISC-V `vl8re8.v` instruction.
17427    ///
17428    /// # Forms
17429    /// Assembly: `vl8re8.v xs1, vd`
17430    VL8RE8V,
17431    /// RISC-V `vle16.v` instruction.
17432    ///
17433    /// # Forms
17434    /// Assembly: `vle16.v vm, xs1, vd`
17435    VLE16V,
17436    /// RISC-V `vle16ff.v` instruction.
17437    ///
17438    /// # Forms
17439    /// Assembly: `vle16ff.v vm, xs1, vd`
17440    VLE16FFV,
17441    /// RISC-V `vle1.v` instruction.
17442    ///
17443    /// # Forms
17444    /// Assembly: `vle1.v vd rs1`
17445    VLE1V,
17446    /// RISC-V `vle32.v` instruction.
17447    ///
17448    /// # Forms
17449    /// Assembly: `vle32.v vm, xs1, vd`
17450    VLE32V,
17451    /// RISC-V `vle32ff.v` instruction.
17452    ///
17453    /// # Forms
17454    /// Assembly: `vle32ff.v vm, xs1, vd`
17455    VLE32FFV,
17456    /// RISC-V `vle64.v` instruction.
17457    ///
17458    /// # Forms
17459    /// Assembly: `vle64.v vm, xs1, vd`
17460    VLE64V,
17461    /// RISC-V `vle64ff.v` instruction.
17462    ///
17463    /// # Forms
17464    /// Assembly: `vle64ff.v vm, xs1, vd`
17465    VLE64FFV,
17466    /// RISC-V `vle8.v` instruction.
17467    ///
17468    /// # Forms
17469    /// Assembly: `vle8.v vm, xs1, vd`
17470    VLE8V,
17471    /// RISC-V `vle8ff.v` instruction.
17472    ///
17473    /// # Forms
17474    /// Assembly: `vle8ff.v vm, xs1, vd`
17475    VLE8FFV,
17476    /// RISC-V `vlm.v` instruction.
17477    ///
17478    /// # Forms
17479    /// Assembly: `vlm.v xs1, vd`
17480    VLMV,
17481    /// RISC-V `vloxei16.v` instruction.
17482    ///
17483    /// # Forms
17484    /// Assembly: `vloxei16.v vm, vs2, xs1, vd`
17485    VLOXEI16V,
17486    /// RISC-V `vloxei32.v` instruction.
17487    ///
17488    /// # Forms
17489    /// Assembly: `vloxei32.v vm, vs2, xs1, vd`
17490    VLOXEI32V,
17491    /// RISC-V `vloxei64.v` instruction.
17492    ///
17493    /// # Forms
17494    /// Assembly: `vloxei64.v vm, vs2, xs1, vd`
17495    VLOXEI64V,
17496    /// RISC-V `vloxei8.v` instruction.
17497    ///
17498    /// # Forms
17499    /// Assembly: `vloxei8.v vm, vs2, xs1, vd`
17500    VLOXEI8V,
17501    /// RISC-V `vlse16.v` instruction.
17502    ///
17503    /// # Forms
17504    /// Assembly: `vlse16.v vm, xs2, xs1, vd`
17505    VLSE16V,
17506    /// RISC-V `vlse32.v` instruction.
17507    ///
17508    /// # Forms
17509    /// Assembly: `vlse32.v vm, xs2, xs1, vd`
17510    VLSE32V,
17511    /// RISC-V `vlse64.v` instruction.
17512    ///
17513    /// # Forms
17514    /// Assembly: `vlse64.v vm, xs2, xs1, vd`
17515    VLSE64V,
17516    /// RISC-V `vlse8.v` instruction.
17517    ///
17518    /// # Forms
17519    /// Assembly: `vlse8.v vm, xs2, xs1, vd`
17520    VLSE8V,
17521    /// RISC-V `vluxei16.v` instruction.
17522    ///
17523    /// # Forms
17524    /// Assembly: `vluxei16.v vm, vs2, xs1, vd`
17525    VLUXEI16V,
17526    /// RISC-V `vluxei32.v` instruction.
17527    ///
17528    /// # Forms
17529    /// Assembly: `vluxei32.v vm, vs2, xs1, vd`
17530    VLUXEI32V,
17531    /// RISC-V `vluxei64.v` instruction.
17532    ///
17533    /// # Forms
17534    /// Assembly: `vluxei64.v vm, vs2, xs1, vd`
17535    VLUXEI64V,
17536    /// RISC-V `vluxei8.v` instruction.
17537    ///
17538    /// # Forms
17539    /// Assembly: `vluxei8.v vm, vs2, xs1, vd`
17540    VLUXEI8V,
17541    /// RISC-V `vmacc.vv` instruction.
17542    ///
17543    /// # Forms
17544    /// Assembly: `vmacc.vv vm, vs2, vs1, vd`
17545    VMACCVV,
17546    /// RISC-V `vmacc.vx` instruction.
17547    ///
17548    /// # Forms
17549    /// Assembly: `vmacc.vx vm, vs2, xs1, vd`
17550    VMACCVX,
17551    /// RISC-V `vmadc.vi` instruction.
17552    ///
17553    /// # Forms
17554    /// Assembly: `vmadc.vi vs2, vd, imm`
17555    VMADCVI,
17556    /// RISC-V `vmadc.vim` instruction.
17557    ///
17558    /// # Forms
17559    /// Assembly: `vmadc.vim vs2, vd, imm`
17560    VMADCVIM,
17561    /// RISC-V `vmadc.vv` instruction.
17562    ///
17563    /// # Forms
17564    /// Assembly: `vmadc.vv vs2, vs1, vd`
17565    VMADCVV,
17566    /// RISC-V `vmadc.vvm` instruction.
17567    ///
17568    /// # Forms
17569    /// Assembly: `vmadc.vvm vs2, vs1, vd`
17570    VMADCVVM,
17571    /// RISC-V `vmadc.vx` instruction.
17572    ///
17573    /// # Forms
17574    /// Assembly: `vmadc.vx vs2, xs1, vd`
17575    VMADCVX,
17576    /// RISC-V `vmadc.vxm` instruction.
17577    ///
17578    /// # Forms
17579    /// Assembly: `vmadc.vxm vs2, xs1, vd`
17580    VMADCVXM,
17581    /// RISC-V `vmadd.vv` instruction.
17582    ///
17583    /// # Forms
17584    /// Assembly: `vmadd.vv vm, vs2, vs1, vd`
17585    VMADDVV,
17586    /// RISC-V `vmadd.vx` instruction.
17587    ///
17588    /// # Forms
17589    /// Assembly: `vmadd.vx vm, vs2, xs1, vd`
17590    VMADDVX,
17591    /// RISC-V `vmand.mm` instruction.
17592    ///
17593    /// # Forms
17594    /// Assembly: `vmand.mm vs2, vs1, vd`
17595    VMANDMM,
17596    /// RISC-V `vmandn.mm` instruction.
17597    ///
17598    /// # Forms
17599    /// Assembly: `vmandn.mm vs2, vs1, vd`
17600    VMANDNMM,
17601    /// RISC-V `vmandnot.mm` instruction.
17602    ///
17603    /// # Forms
17604    /// Assembly: `vmandnot.mm vd vs1 vs2 vm`
17605    VMANDNOTMM,
17606    /// RISC-V `vmax.vv` instruction.
17607    ///
17608    /// # Forms
17609    /// Assembly: `vmax.vv vm, vs2, vs1, vd`
17610    VMAXVV,
17611    /// RISC-V `vmax.vx` instruction.
17612    ///
17613    /// # Forms
17614    /// Assembly: `vmax.vx vm, vs2, xs1, vd`
17615    VMAXVX,
17616    /// RISC-V `vmaxu.vv` instruction.
17617    ///
17618    /// # Forms
17619    /// Assembly: `vmaxu.vv vm, vs2, vs1, vd`
17620    VMAXUVV,
17621    /// RISC-V `vmaxu.vx` instruction.
17622    ///
17623    /// # Forms
17624    /// Assembly: `vmaxu.vx vm, vs2, xs1, vd`
17625    VMAXUVX,
17626    /// RISC-V `vmerge.vim` instruction.
17627    ///
17628    /// # Forms
17629    /// Assembly: `vmerge.vim vs2, vd, imm`
17630    VMERGEVIM,
17631    /// RISC-V `vmerge.vvm` instruction.
17632    ///
17633    /// # Forms
17634    /// Assembly: `vmerge.vvm vs2, vs1, vd`
17635    VMERGEVVM,
17636    /// RISC-V `vmerge.vxm` instruction.
17637    ///
17638    /// # Forms
17639    /// Assembly: `vmerge.vxm vs2, xs1, vd`
17640    VMERGEVXM,
17641    /// RISC-V `vmfeq.vf` instruction.
17642    ///
17643    /// # Forms
17644    /// Assembly: `vmfeq.vf vm, vs2, xs1, vd`
17645    VMFEQVF,
17646    /// RISC-V `vmfeq.vv` instruction.
17647    ///
17648    /// # Forms
17649    /// Assembly: `vmfeq.vv vm, vs2, vs1, vd`
17650    VMFEQVV,
17651    /// RISC-V `vmfge.vf` instruction.
17652    ///
17653    /// # Forms
17654    /// Assembly: `vmfge.vf vm, vs2, xs1, vd`
17655    VMFGEVF,
17656    /// RISC-V `vmfgt.vf` instruction.
17657    ///
17658    /// # Forms
17659    /// Assembly: `vmfgt.vf vm, vs2, xs1, vd`
17660    VMFGTVF,
17661    /// RISC-V `vmfle.vf` instruction.
17662    ///
17663    /// # Forms
17664    /// Assembly: `vmfle.vf vm, vs2, xs1, vd`
17665    VMFLEVF,
17666    /// RISC-V `vmfle.vv` instruction.
17667    ///
17668    /// # Forms
17669    /// Assembly: `vmfle.vv vm, vs2, vs1, vd`
17670    VMFLEVV,
17671    /// RISC-V `vmflt.vf` instruction.
17672    ///
17673    /// # Forms
17674    /// Assembly: `vmflt.vf vm, vs2, xs1, vd`
17675    VMFLTVF,
17676    /// RISC-V `vmflt.vv` instruction.
17677    ///
17678    /// # Forms
17679    /// Assembly: `vmflt.vv vm, vs2, vs1, vd`
17680    VMFLTVV,
17681    /// RISC-V `vmfne.vf` instruction.
17682    ///
17683    /// # Forms
17684    /// Assembly: `vmfne.vf vm, vs2, xs1, vd`
17685    VMFNEVF,
17686    /// RISC-V `vmfne.vv` instruction.
17687    ///
17688    /// # Forms
17689    /// Assembly: `vmfne.vv vm, vs2, vs1, vd`
17690    VMFNEVV,
17691    /// RISC-V `vmin.vv` instruction.
17692    ///
17693    /// # Forms
17694    /// Assembly: `vmin.vv vm, vs2, vs1, vd`
17695    VMINVV,
17696    /// RISC-V `vmin.vx` instruction.
17697    ///
17698    /// # Forms
17699    /// Assembly: `vmin.vx vm, vs2, xs1, vd`
17700    VMINVX,
17701    /// RISC-V `vminu.vv` instruction.
17702    ///
17703    /// # Forms
17704    /// Assembly: `vminu.vv vm, vs2, vs1, vd`
17705    VMINUVV,
17706    /// RISC-V `vminu.vx` instruction.
17707    ///
17708    /// # Forms
17709    /// Assembly: `vminu.vx vm, vs2, xs1, vd`
17710    VMINUVX,
17711    /// RISC-V `vmnand.mm` instruction.
17712    ///
17713    /// # Forms
17714    /// Assembly: `vmnand.mm vs2, vs1, vd`
17715    VMNANDMM,
17716    /// RISC-V `vmnor.mm` instruction.
17717    ///
17718    /// # Forms
17719    /// Assembly: `vmnor.mm vs2, vs1, vd`
17720    VMNORMM,
17721    /// RISC-V `vmor.mm` instruction.
17722    ///
17723    /// # Forms
17724    /// Assembly: `vmor.mm vs2, vs1, vd`
17725    VMORMM,
17726    /// RISC-V `vmorn.mm` instruction.
17727    ///
17728    /// # Forms
17729    /// Assembly: `vmorn.mm vs2, vs1, vd`
17730    VMORNMM,
17731    /// RISC-V `vmornot.mm` instruction.
17732    ///
17733    /// # Forms
17734    /// Assembly: `vmornot.mm vd vs1 vs2 vm`
17735    VMORNOTMM,
17736    /// RISC-V `vmsbc.vv` instruction.
17737    ///
17738    /// # Forms
17739    /// Assembly: `vmsbc.vv vs2, vs1, vd`
17740    VMSBCVV,
17741    /// RISC-V `vmsbc.vvm` instruction.
17742    ///
17743    /// # Forms
17744    /// Assembly: `vmsbc.vvm vs2, vs1, vd`
17745    VMSBCVVM,
17746    /// RISC-V `vmsbc.vx` instruction.
17747    ///
17748    /// # Forms
17749    /// Assembly: `vmsbc.vx vs2, xs1, vd`
17750    VMSBCVX,
17751    /// RISC-V `vmsbc.vxm` instruction.
17752    ///
17753    /// # Forms
17754    /// Assembly: `vmsbc.vxm vs2, xs1, vd`
17755    VMSBCVXM,
17756    /// RISC-V `vmsbf.m` instruction.
17757    ///
17758    /// # Forms
17759    /// Assembly: `vmsbf.m vm, vs2, vd`
17760    VMSBFM,
17761    /// RISC-V `vmseq.vi` instruction.
17762    ///
17763    /// # Forms
17764    /// Assembly: `vmseq.vi vm, vs2, vd, imm`
17765    VMSEQVI,
17766    /// RISC-V `vmseq.vv` instruction.
17767    ///
17768    /// # Forms
17769    /// Assembly: `vmseq.vv vm, vs2, vs1, vd`
17770    VMSEQVV,
17771    /// RISC-V `vmseq.vx` instruction.
17772    ///
17773    /// # Forms
17774    /// Assembly: `vmseq.vx vm, vs2, xs1, vd`
17775    VMSEQVX,
17776    /// RISC-V `vmsgt.vi` instruction.
17777    ///
17778    /// # Forms
17779    /// Assembly: `vmsgt.vi vm, vs2, vd, imm`
17780    VMSGTVI,
17781    /// RISC-V `vmsgt.vx` instruction.
17782    ///
17783    /// # Forms
17784    /// Assembly: `vmsgt.vx vm, vs2, xs1, vd`
17785    VMSGTVX,
17786    /// RISC-V `vmsgtu.vi` instruction.
17787    ///
17788    /// # Forms
17789    /// Assembly: `vmsgtu.vi vm, vs2, vd, imm`
17790    VMSGTUVI,
17791    /// RISC-V `vmsgtu.vx` instruction.
17792    ///
17793    /// # Forms
17794    /// Assembly: `vmsgtu.vx vm, vs2, xs1, vd`
17795    VMSGTUVX,
17796    /// RISC-V `vmsif.m` instruction.
17797    ///
17798    /// # Forms
17799    /// Assembly: `vmsif.m vm, vs2, vd`
17800    VMSIFM,
17801    /// RISC-V `vmsle.vi` instruction.
17802    ///
17803    /// # Forms
17804    /// Assembly: `vmsle.vi vm, vs2, vd, imm`
17805    VMSLEVI,
17806    /// RISC-V `vmsle.vv` instruction.
17807    ///
17808    /// # Forms
17809    /// Assembly: `vmsle.vv vm, vs2, vs1, vd`
17810    VMSLEVV,
17811    /// RISC-V `vmsle.vx` instruction.
17812    ///
17813    /// # Forms
17814    /// Assembly: `vmsle.vx vm, vs2, xs1, vd`
17815    VMSLEVX,
17816    /// RISC-V `vmsleu.vi` instruction.
17817    ///
17818    /// # Forms
17819    /// Assembly: `vmsleu.vi vm, vs2, vd, imm`
17820    VMSLEUVI,
17821    /// RISC-V `vmsleu.vv` instruction.
17822    ///
17823    /// # Forms
17824    /// Assembly: `vmsleu.vv vm, vs2, vs1, vd`
17825    VMSLEUVV,
17826    /// RISC-V `vmsleu.vx` instruction.
17827    ///
17828    /// # Forms
17829    /// Assembly: `vmsleu.vx vm, vs2, xs1, vd`
17830    VMSLEUVX,
17831    /// RISC-V `vmslt.vv` instruction.
17832    ///
17833    /// # Forms
17834    /// Assembly: `vmslt.vv vm, vs2, vs1, vd`
17835    VMSLTVV,
17836    /// RISC-V `vmslt.vx` instruction.
17837    ///
17838    /// # Forms
17839    /// Assembly: `vmslt.vx vm, vs2, xs1, vd`
17840    VMSLTVX,
17841    /// RISC-V `vmsltu.vv` instruction.
17842    ///
17843    /// # Forms
17844    /// Assembly: `vmsltu.vv vm, vs2, vs1, vd`
17845    VMSLTUVV,
17846    /// RISC-V `vmsltu.vx` instruction.
17847    ///
17848    /// # Forms
17849    /// Assembly: `vmsltu.vx vm, vs2, xs1, vd`
17850    VMSLTUVX,
17851    /// RISC-V `vmsne.vi` instruction.
17852    ///
17853    /// # Forms
17854    /// Assembly: `vmsne.vi vm, vs2, vd, imm`
17855    VMSNEVI,
17856    /// RISC-V `vmsne.vv` instruction.
17857    ///
17858    /// # Forms
17859    /// Assembly: `vmsne.vv vm, vs2, vs1, vd`
17860    VMSNEVV,
17861    /// RISC-V `vmsne.vx` instruction.
17862    ///
17863    /// # Forms
17864    /// Assembly: `vmsne.vx vm, vs2, xs1, vd`
17865    VMSNEVX,
17866    /// RISC-V `vmsof.m` instruction.
17867    ///
17868    /// # Forms
17869    /// Assembly: `vmsof.m vm, vs2, vd`
17870    VMSOFM,
17871    /// RISC-V `vmul.vv` instruction.
17872    ///
17873    /// # Forms
17874    /// Assembly: `vmul.vv vm, vs2, vs1, vd`
17875    VMULVV,
17876    /// RISC-V `vmul.vx` instruction.
17877    ///
17878    /// # Forms
17879    /// Assembly: `vmul.vx vm, vs2, xs1, vd`
17880    VMULVX,
17881    /// RISC-V `vmulh.vv` instruction.
17882    ///
17883    /// # Forms
17884    /// Assembly: `vmulh.vv vm, vs2, vs1, vd`
17885    VMULHVV,
17886    /// RISC-V `vmulh.vx` instruction.
17887    ///
17888    /// # Forms
17889    /// Assembly: `vmulh.vx vm, vs2, xs1, vd`
17890    VMULHVX,
17891    /// RISC-V `vmulhsu.vv` instruction.
17892    ///
17893    /// # Forms
17894    /// Assembly: `vmulhsu.vv vm, vs2, vs1, vd`
17895    VMULHSUVV,
17896    /// RISC-V `vmulhsu.vx` instruction.
17897    ///
17898    /// # Forms
17899    /// Assembly: `vmulhsu.vx vm, vs2, xs1, vd`
17900    VMULHSUVX,
17901    /// RISC-V `vmulhu.vv` instruction.
17902    ///
17903    /// # Forms
17904    /// Assembly: `vmulhu.vv vm, vs2, vs1, vd`
17905    VMULHUVV,
17906    /// RISC-V `vmulhu.vx` instruction.
17907    ///
17908    /// # Forms
17909    /// Assembly: `vmulhu.vx vm, vs2, xs1, vd`
17910    VMULHUVX,
17911    /// RISC-V `vmv1r.v` instruction.
17912    ///
17913    /// # Forms
17914    /// Assembly: `vmv1r.v vs2, vd`
17915    VMV1RV,
17916    /// RISC-V `vmv2r.v` instruction.
17917    ///
17918    /// # Forms
17919    /// Assembly: `vmv2r.v vs2, vd`
17920    VMV2RV,
17921    /// RISC-V `vmv4r.v` instruction.
17922    ///
17923    /// # Forms
17924    /// Assembly: `vmv4r.v vs2, vd`
17925    VMV4RV,
17926    /// RISC-V `vmv8r.v` instruction.
17927    ///
17928    /// # Forms
17929    /// Assembly: `vmv8r.v vs2, vd`
17930    VMV8RV,
17931    /// RISC-V `vmv.s.x` instruction.
17932    ///
17933    /// # Forms
17934    /// Assembly: `vmv.s.x xs1, vd`
17935    VMVSX,
17936    /// RISC-V `vmv.v.i` instruction.
17937    ///
17938    /// # Forms
17939    /// Assembly: `vmv.v.i vd, imm`
17940    VMVVI,
17941    /// RISC-V `vmv.v.v` instruction.
17942    ///
17943    /// # Forms
17944    /// Assembly: `vmv.v.v vs1, vd`
17945    VMVVV,
17946    /// RISC-V `vmv.v.x` instruction.
17947    ///
17948    /// # Forms
17949    /// Assembly: `vmv.v.x xs1, vd`
17950    VMVVX,
17951    /// RISC-V `vmv.x.s` instruction.
17952    ///
17953    /// # Forms
17954    /// Assembly: `vmv.x.s vs2, xd`
17955    VMVXS,
17956    /// RISC-V `vmxnor.mm` instruction.
17957    ///
17958    /// # Forms
17959    /// Assembly: `vmxnor.mm vs2, vs1, vd`
17960    VMXNORMM,
17961    /// RISC-V `vmxor.mm` instruction.
17962    ///
17963    /// # Forms
17964    /// Assembly: `vmxor.mm vs2, vs1, vd`
17965    VMXORMM,
17966    /// RISC-V `vnclip.wi` instruction.
17967    ///
17968    /// # Forms
17969    /// Assembly: `vnclip.wi vm, vs2, vd, imm`
17970    VNCLIPWI,
17971    /// RISC-V `vnclip.wv` instruction.
17972    ///
17973    /// # Forms
17974    /// Assembly: `vnclip.wv vm, vs2, vs1, vd`
17975    VNCLIPWV,
17976    /// RISC-V `vnclip.wx` instruction.
17977    ///
17978    /// # Forms
17979    /// Assembly: `vnclip.wx vm, vs2, xs1, vd`
17980    VNCLIPWX,
17981    /// RISC-V `vnclipu.wi` instruction.
17982    ///
17983    /// # Forms
17984    /// Assembly: `vnclipu.wi vm, vs2, vd, imm`
17985    VNCLIPUWI,
17986    /// RISC-V `vnclipu.wv` instruction.
17987    ///
17988    /// # Forms
17989    /// Assembly: `vnclipu.wv vm, vs2, vs1, vd`
17990    VNCLIPUWV,
17991    /// RISC-V `vnclipu.wx` instruction.
17992    ///
17993    /// # Forms
17994    /// Assembly: `vnclipu.wx vm, vs2, xs1, vd`
17995    VNCLIPUWX,
17996    /// RISC-V `vnmsac.vv` instruction.
17997    ///
17998    /// # Forms
17999    /// Assembly: `vnmsac.vv vm, vs2, vs1, vd`
18000    VNMSACVV,
18001    /// RISC-V `vnmsac.vx` instruction.
18002    ///
18003    /// # Forms
18004    /// Assembly: `vnmsac.vx vm, vs2, xs1, vd`
18005    VNMSACVX,
18006    /// RISC-V `vnmsub.vv` instruction.
18007    ///
18008    /// # Forms
18009    /// Assembly: `vnmsub.vv vm, vs2, vs1, vd`
18010    VNMSUBVV,
18011    /// RISC-V `vnmsub.vx` instruction.
18012    ///
18013    /// # Forms
18014    /// Assembly: `vnmsub.vx vm, vs2, xs1, vd`
18015    VNMSUBVX,
18016    /// RISC-V `vnsra.wi` instruction.
18017    ///
18018    /// # Forms
18019    /// Assembly: `vnsra.wi vm, vs2, vd, imm`
18020    VNSRAWI,
18021    /// RISC-V `vnsra.wv` instruction.
18022    ///
18023    /// # Forms
18024    /// Assembly: `vnsra.wv vm, vs2, vs1, vd`
18025    VNSRAWV,
18026    /// RISC-V `vnsra.wx` instruction.
18027    ///
18028    /// # Forms
18029    /// Assembly: `vnsra.wx vm, vs2, xs1, vd`
18030    VNSRAWX,
18031    /// RISC-V `vnsrl.wi` instruction.
18032    ///
18033    /// # Forms
18034    /// Assembly: `vnsrl.wi vm, vs2, vd, imm`
18035    VNSRLWI,
18036    /// RISC-V `vnsrl.wv` instruction.
18037    ///
18038    /// # Forms
18039    /// Assembly: `vnsrl.wv vm, vs2, vs1, vd`
18040    VNSRLWV,
18041    /// RISC-V `vnsrl.wx` instruction.
18042    ///
18043    /// # Forms
18044    /// Assembly: `vnsrl.wx vm, vs2, xs1, vd`
18045    VNSRLWX,
18046    /// RISC-V `vor.vi` instruction.
18047    ///
18048    /// # Forms
18049    /// Assembly: `vor.vi vm, vs2, vd, imm`
18050    VORVI,
18051    /// RISC-V `vor.vv` instruction.
18052    ///
18053    /// # Forms
18054    /// Assembly: `vor.vv vm, vs2, vs1, vd`
18055    VORVV,
18056    /// RISC-V `vor.vx` instruction.
18057    ///
18058    /// # Forms
18059    /// Assembly: `vor.vx vm, vs2, xs1, vd`
18060    VORVX,
18061    /// RISC-V `vpopc.m` instruction.
18062    ///
18063    /// # Forms
18064    /// Assembly: `vpopc.m rd vs2 vm`
18065    VPOPCM,
18066    /// RISC-V `vredand.vs` instruction.
18067    ///
18068    /// # Forms
18069    /// Assembly: `vredand.vs vm, vs2, vs1, vd`
18070    VREDANDVS,
18071    /// RISC-V `vredmax.vs` instruction.
18072    ///
18073    /// # Forms
18074    /// Assembly: `vredmax.vs vm, vs2, vs1, vd`
18075    VREDMAXVS,
18076    /// RISC-V `vredmaxu.vs` instruction.
18077    ///
18078    /// # Forms
18079    /// Assembly: `vredmaxu.vs vm, vs2, vs1, vd`
18080    VREDMAXUVS,
18081    /// RISC-V `vredmin.vs` instruction.
18082    ///
18083    /// # Forms
18084    /// Assembly: `vredmin.vs vm, vs2, vs1, vd`
18085    VREDMINVS,
18086    /// RISC-V `vredminu.vs` instruction.
18087    ///
18088    /// # Forms
18089    /// Assembly: `vredminu.vs vm, vs2, vs1, vd`
18090    VREDMINUVS,
18091    /// RISC-V `vredor.vs` instruction.
18092    ///
18093    /// # Forms
18094    /// Assembly: `vredor.vs vm, vs2, vs1, vd`
18095    VREDORVS,
18096    /// RISC-V `vredsum.vs` instruction.
18097    ///
18098    /// # Forms
18099    /// Assembly: `vredsum.vs vm, vs2, vs1, vd`
18100    VREDSUMVS,
18101    /// RISC-V `vredxor.vs` instruction.
18102    ///
18103    /// # Forms
18104    /// Assembly: `vredxor.vs vm, vs2, vs1, vd`
18105    VREDXORVS,
18106    /// RISC-V `vrem.vv` instruction.
18107    ///
18108    /// # Forms
18109    /// Assembly: `vrem.vv vm, vs2, vs1, vd`
18110    VREMVV,
18111    /// RISC-V `vrem.vx` instruction.
18112    ///
18113    /// # Forms
18114    /// Assembly: `vrem.vx vm, vs2, xs1, vd`
18115    VREMVX,
18116    /// RISC-V `vremu.vv` instruction.
18117    ///
18118    /// # Forms
18119    /// Assembly: `vremu.vv vm, vs2, vs1, vd`
18120    VREMUVV,
18121    /// RISC-V `vremu.vx` instruction.
18122    ///
18123    /// # Forms
18124    /// Assembly: `vremu.vx vm, vs2, xs1, vd`
18125    VREMUVX,
18126    /// RISC-V `vrev8.v` instruction.
18127    ///
18128    /// # Forms
18129    /// Assembly: `vrev8.v vm, vs2, vd`
18130    VREV8V,
18131    /// RISC-V `vrgather.vi` instruction.
18132    ///
18133    /// # Forms
18134    /// Assembly: `vrgather.vi vm, vs2, vd, imm`
18135    VRGATHERVI,
18136    /// RISC-V `vrgather.vv` instruction.
18137    ///
18138    /// # Forms
18139    /// Assembly: `vrgather.vv vm, vs2, vs1, vd`
18140    VRGATHERVV,
18141    /// RISC-V `vrgather.vx` instruction.
18142    ///
18143    /// # Forms
18144    /// Assembly: `vrgather.vx vm, vs2, xs1, vd`
18145    VRGATHERVX,
18146    /// RISC-V `vrgatherei16.vv` instruction.
18147    ///
18148    /// # Forms
18149    /// Assembly: `vrgatherei16.vv vm, vs2, vs1, vd`
18150    VRGATHEREI16VV,
18151    /// RISC-V `vrol.vv` instruction.
18152    ///
18153    /// # Forms
18154    /// Assembly: `vrol.vv vm, vs2, vs1, vd`
18155    VROLVV,
18156    /// RISC-V `vrol.vx` instruction.
18157    ///
18158    /// # Forms
18159    /// Assembly: `vrol.vx vm, vs2, xs1, vd`
18160    VROLVX,
18161    /// RISC-V `vror.vi` instruction.
18162    ///
18163    /// # Forms
18164    /// Assembly: `vror.vi vm, vs2, vd, imm`
18165    VRORVI,
18166    /// RISC-V `vror.vv` instruction.
18167    ///
18168    /// # Forms
18169    /// Assembly: `vror.vv vm, vs2, vs1, vd`
18170    VRORVV,
18171    /// RISC-V `vror.vx` instruction.
18172    ///
18173    /// # Forms
18174    /// Assembly: `vror.vx vm, vs2, xs1, vd`
18175    VRORVX,
18176    /// RISC-V `vrsub.vi` instruction.
18177    ///
18178    /// # Forms
18179    /// Assembly: `vrsub.vi vm, vs2, vd, imm`
18180    VRSUBVI,
18181    /// RISC-V `vrsub.vx` instruction.
18182    ///
18183    /// # Forms
18184    /// Assembly: `vrsub.vx vm, vs2, xs1, vd`
18185    VRSUBVX,
18186    /// RISC-V `vs1r.v` instruction.
18187    ///
18188    /// # Forms
18189    /// Assembly: `vs1r.v xs1, vs3`
18190    VS1RV,
18191    /// RISC-V `vs2r.v` instruction.
18192    ///
18193    /// # Forms
18194    /// Assembly: `vs2r.v xs1, vs3`
18195    VS2RV,
18196    /// RISC-V `vs4r.v` instruction.
18197    ///
18198    /// # Forms
18199    /// Assembly: `vs4r.v xs1, vs3`
18200    VS4RV,
18201    /// RISC-V `vs8r.v` instruction.
18202    ///
18203    /// # Forms
18204    /// Assembly: `vs8r.v xs1, vs3`
18205    VS8RV,
18206    /// RISC-V `vsadd.vi` instruction.
18207    ///
18208    /// # Forms
18209    /// Assembly: `vsadd.vi vm, vs2, vd, imm`
18210    VSADDVI,
18211    /// RISC-V `vsadd.vv` instruction.
18212    ///
18213    /// # Forms
18214    /// Assembly: `vsadd.vv vm, vs2, vs1, vd`
18215    VSADDVV,
18216    /// RISC-V `vsadd.vx` instruction.
18217    ///
18218    /// # Forms
18219    /// Assembly: `vsadd.vx vm, vs2, xs1, vd`
18220    VSADDVX,
18221    /// RISC-V `vsaddu.vi` instruction.
18222    ///
18223    /// # Forms
18224    /// Assembly: `vsaddu.vi vm, vs2, vd, imm`
18225    VSADDUVI,
18226    /// RISC-V `vsaddu.vv` instruction.
18227    ///
18228    /// # Forms
18229    /// Assembly: `vsaddu.vv vm, vs2, vs1, vd`
18230    VSADDUVV,
18231    /// RISC-V `vsaddu.vx` instruction.
18232    ///
18233    /// # Forms
18234    /// Assembly: `vsaddu.vx vm, vs2, xs1, vd`
18235    VSADDUVX,
18236    /// RISC-V `vsbc.vvm` instruction.
18237    ///
18238    /// # Forms
18239    /// Assembly: `vsbc.vvm vs2, vs1, vd`
18240    VSBCVVM,
18241    /// RISC-V `vsbc.vxm` instruction.
18242    ///
18243    /// # Forms
18244    /// Assembly: `vsbc.vxm vs2, xs1, vd`
18245    VSBCVXM,
18246    /// RISC-V `vse16.v` instruction.
18247    ///
18248    /// # Forms
18249    /// Assembly: `vse16.v vm, xs1, vs3`
18250    VSE16V,
18251    /// RISC-V `vse1.v` instruction.
18252    ///
18253    /// # Forms
18254    /// Assembly: `vse1.v vs3 rs1`
18255    VSE1V,
18256    /// RISC-V `vse32.v` instruction.
18257    ///
18258    /// # Forms
18259    /// Assembly: `vse32.v vm, xs1, vs3`
18260    VSE32V,
18261    /// RISC-V `vse64.v` instruction.
18262    ///
18263    /// # Forms
18264    /// Assembly: `vse64.v vm, xs1, vs3`
18265    VSE64V,
18266    /// RISC-V `vse8.v` instruction.
18267    ///
18268    /// # Forms
18269    /// Assembly: `vse8.v vm, xs1, vs3`
18270    VSE8V,
18271    /// RISC-V `vsetivli` instruction.
18272    ///
18273    /// # Forms
18274    /// Assembly: `vsetivli xd, imm`
18275    VSETIVLI,
18276    /// RISC-V `vsetvl` instruction.
18277    ///
18278    /// # Forms
18279    /// Assembly: `vsetvl xs2, xs1, xd`
18280    VSETVL,
18281    /// RISC-V `vsetvli` instruction.
18282    ///
18283    /// # Forms
18284    /// Assembly: `vsetvli xs1, xd, imm`
18285    VSETVLI,
18286    /// RISC-V `vsext.vf2` instruction.
18287    ///
18288    /// # Forms
18289    /// Assembly: `vsext.vf2 vm, vs2, vd`
18290    VSEXTVF2,
18291    /// RISC-V `vsext.vf4` instruction.
18292    ///
18293    /// # Forms
18294    /// Assembly: `vsext.vf4 vm, vs2, vd`
18295    VSEXTVF4,
18296    /// RISC-V `vsext.vf8` instruction.
18297    ///
18298    /// # Forms
18299    /// Assembly: `vsext.vf8 vm, vs2, vd`
18300    VSEXTVF8,
18301    /// RISC-V `vsha2ch.vv` instruction.
18302    ///
18303    /// # Forms
18304    /// Assembly: `vsha2ch.vv vs2, vs1, vd`
18305    VSHA2CHVV,
18306    /// RISC-V `vsha2cl.vv` instruction.
18307    ///
18308    /// # Forms
18309    /// Assembly: `vsha2cl.vv vs2, vs1, vd`
18310    VSHA2CLVV,
18311    /// RISC-V `vsha2ms.vv` instruction.
18312    ///
18313    /// # Forms
18314    /// Assembly: `vsha2ms.vv vs2, vs1, vd`
18315    VSHA2MSVV,
18316    /// RISC-V `vslide1down.vx` instruction.
18317    ///
18318    /// # Forms
18319    /// Assembly: `vslide1down.vx vm, vs2, xs1, vd`
18320    VSLIDE1DOWNVX,
18321    /// RISC-V `vslide1up.vx` instruction.
18322    ///
18323    /// # Forms
18324    /// Assembly: `vslide1up.vx vm, vs2, xs1, vd`
18325    VSLIDE1UPVX,
18326    /// RISC-V `vslidedown.vi` instruction.
18327    ///
18328    /// # Forms
18329    /// Assembly: `vslidedown.vi vm, vs2, vd, imm`
18330    VSLIDEDOWNVI,
18331    /// RISC-V `vslidedown.vx` instruction.
18332    ///
18333    /// # Forms
18334    /// Assembly: `vslidedown.vx vm, vs2, xs1, vd`
18335    VSLIDEDOWNVX,
18336    /// RISC-V `vslideup.vi` instruction.
18337    ///
18338    /// # Forms
18339    /// Assembly: `vslideup.vi vm, vs2, vd, imm`
18340    VSLIDEUPVI,
18341    /// RISC-V `vslideup.vx` instruction.
18342    ///
18343    /// # Forms
18344    /// Assembly: `vslideup.vx vm, vs2, xs1, vd`
18345    VSLIDEUPVX,
18346    /// RISC-V `vsll.vi` instruction.
18347    ///
18348    /// # Forms
18349    /// Assembly: `vsll.vi vm, vs2, vd, imm`
18350    VSLLVI,
18351    /// RISC-V `vsll.vv` instruction.
18352    ///
18353    /// # Forms
18354    /// Assembly: `vsll.vv vm, vs2, vs1, vd`
18355    VSLLVV,
18356    /// RISC-V `vsll.vx` instruction.
18357    ///
18358    /// # Forms
18359    /// Assembly: `vsll.vx vm, vs2, xs1, vd`
18360    VSLLVX,
18361    /// RISC-V `vsm3c.vi` instruction.
18362    ///
18363    /// # Forms
18364    /// Assembly: `vsm3c.vi vs2, vd, imm`
18365    VSM3CVI,
18366    /// RISC-V `vsm3me.vv` instruction.
18367    ///
18368    /// # Forms
18369    /// Assembly: `vsm3me.vv vs2, vs1, vd`
18370    VSM3MEVV,
18371    /// RISC-V `vsm4k.vi` instruction.
18372    ///
18373    /// # Forms
18374    /// Assembly: `vsm4k.vi vs2, vd, imm`
18375    VSM4KVI,
18376    /// RISC-V `vsm4r.vs` instruction.
18377    ///
18378    /// # Forms
18379    /// Assembly: `vsm4r.vs vs2, vd`
18380    VSM4RVS,
18381    /// RISC-V `vsm4r.vv` instruction.
18382    ///
18383    /// # Forms
18384    /// Assembly: `vsm4r.vv vs2, vd`
18385    VSM4RVV,
18386    /// RISC-V `vsm.v` instruction.
18387    ///
18388    /// # Forms
18389    /// Assembly: `vsm.v xs1, vs3`
18390    VSMV,
18391    /// RISC-V `vsmul.vv` instruction.
18392    ///
18393    /// # Forms
18394    /// Assembly: `vsmul.vv vm, vs2, vs1, vd`
18395    VSMULVV,
18396    /// RISC-V `vsmul.vx` instruction.
18397    ///
18398    /// # Forms
18399    /// Assembly: `vsmul.vx vm, vs2, xs1, vd`
18400    VSMULVX,
18401    /// RISC-V `vsoxei16.v` instruction.
18402    ///
18403    /// # Forms
18404    /// Assembly: `vsoxei16.v vm, vs2, xs1, vs3`
18405    VSOXEI16V,
18406    /// RISC-V `vsoxei32.v` instruction.
18407    ///
18408    /// # Forms
18409    /// Assembly: `vsoxei32.v vm, vs2, xs1, vs3`
18410    VSOXEI32V,
18411    /// RISC-V `vsoxei64.v` instruction.
18412    ///
18413    /// # Forms
18414    /// Assembly: `vsoxei64.v vm, vs2, xs1, vs3`
18415    VSOXEI64V,
18416    /// RISC-V `vsoxei8.v` instruction.
18417    ///
18418    /// # Forms
18419    /// Assembly: `vsoxei8.v vm, vs2, xs1, vs3`
18420    VSOXEI8V,
18421    /// RISC-V `vsra.vi` instruction.
18422    ///
18423    /// # Forms
18424    /// Assembly: `vsra.vi vm, vs2, vd, imm`
18425    VSRAVI,
18426    /// RISC-V `vsra.vv` instruction.
18427    ///
18428    /// # Forms
18429    /// Assembly: `vsra.vv vm, vs2, vs1, vd`
18430    VSRAVV,
18431    /// RISC-V `vsra.vx` instruction.
18432    ///
18433    /// # Forms
18434    /// Assembly: `vsra.vx vm, vs2, xs1, vd`
18435    VSRAVX,
18436    /// RISC-V `vsrl.vi` instruction.
18437    ///
18438    /// # Forms
18439    /// Assembly: `vsrl.vi vm, vs2, vd, imm`
18440    VSRLVI,
18441    /// RISC-V `vsrl.vv` instruction.
18442    ///
18443    /// # Forms
18444    /// Assembly: `vsrl.vv vm, vs2, vs1, vd`
18445    VSRLVV,
18446    /// RISC-V `vsrl.vx` instruction.
18447    ///
18448    /// # Forms
18449    /// Assembly: `vsrl.vx vm, vs2, xs1, vd`
18450    VSRLVX,
18451    /// RISC-V `vsse16.v` instruction.
18452    ///
18453    /// # Forms
18454    /// Assembly: `vsse16.v vm, xs2, xs1, vs3`
18455    VSSE16V,
18456    /// RISC-V `vsse32.v` instruction.
18457    ///
18458    /// # Forms
18459    /// Assembly: `vsse32.v vm, xs2, xs1, vs3`
18460    VSSE32V,
18461    /// RISC-V `vsse64.v` instruction.
18462    ///
18463    /// # Forms
18464    /// Assembly: `vsse64.v vm, xs2, xs1, vs3`
18465    VSSE64V,
18466    /// RISC-V `vsse8.v` instruction.
18467    ///
18468    /// # Forms
18469    /// Assembly: `vsse8.v vm, xs2, xs1, vs3`
18470    VSSE8V,
18471    /// RISC-V `vssra.vi` instruction.
18472    ///
18473    /// # Forms
18474    /// Assembly: `vssra.vi vm, vs2, vd, imm`
18475    VSSRAVI,
18476    /// RISC-V `vssra.vv` instruction.
18477    ///
18478    /// # Forms
18479    /// Assembly: `vssra.vv vm, vs2, vs1, vd`
18480    VSSRAVV,
18481    /// RISC-V `vssra.vx` instruction.
18482    ///
18483    /// # Forms
18484    /// Assembly: `vssra.vx vm, vs2, xs1, vd`
18485    VSSRAVX,
18486    /// RISC-V `vssrl.vi` instruction.
18487    ///
18488    /// # Forms
18489    /// Assembly: `vssrl.vi vm, vs2, vd, imm`
18490    VSSRLVI,
18491    /// RISC-V `vssrl.vv` instruction.
18492    ///
18493    /// # Forms
18494    /// Assembly: `vssrl.vv vm, vs2, vs1, vd`
18495    VSSRLVV,
18496    /// RISC-V `vssrl.vx` instruction.
18497    ///
18498    /// # Forms
18499    /// Assembly: `vssrl.vx vm, vs2, xs1, vd`
18500    VSSRLVX,
18501    /// RISC-V `vssub.vv` instruction.
18502    ///
18503    /// # Forms
18504    /// Assembly: `vssub.vv vm, vs2, vs1, vd`
18505    VSSUBVV,
18506    /// RISC-V `vssub.vx` instruction.
18507    ///
18508    /// # Forms
18509    /// Assembly: `vssub.vx vm, vs2, xs1, vd`
18510    VSSUBVX,
18511    /// RISC-V `vssubu.vv` instruction.
18512    ///
18513    /// # Forms
18514    /// Assembly: `vssubu.vv vm, vs2, vs1, vd`
18515    VSSUBUVV,
18516    /// RISC-V `vssubu.vx` instruction.
18517    ///
18518    /// # Forms
18519    /// Assembly: `vssubu.vx vm, vs2, xs1, vd`
18520    VSSUBUVX,
18521    /// RISC-V `vsub.vv` instruction.
18522    ///
18523    /// # Forms
18524    /// Assembly: `vsub.vv vm, vs2, vs1, vd`
18525    VSUBVV,
18526    /// RISC-V `vsub.vx` instruction.
18527    ///
18528    /// # Forms
18529    /// Assembly: `vsub.vx vm, vs2, xs1, vd`
18530    VSUBVX,
18531    /// RISC-V `vsuxei16.v` instruction.
18532    ///
18533    /// # Forms
18534    /// Assembly: `vsuxei16.v vm, vs2, xs1, vs3`
18535    VSUXEI16V,
18536    /// RISC-V `vsuxei32.v` instruction.
18537    ///
18538    /// # Forms
18539    /// Assembly: `vsuxei32.v vm, vs2, xs1, vs3`
18540    VSUXEI32V,
18541    /// RISC-V `vsuxei64.v` instruction.
18542    ///
18543    /// # Forms
18544    /// Assembly: `vsuxei64.v vm, vs2, xs1, vs3`
18545    VSUXEI64V,
18546    /// RISC-V `vsuxei8.v` instruction.
18547    ///
18548    /// # Forms
18549    /// Assembly: `vsuxei8.v vm, vs2, xs1, vs3`
18550    VSUXEI8V,
18551    /// RISC-V `vwadd.vv` instruction.
18552    ///
18553    /// # Forms
18554    /// Assembly: `vwadd.vv vm, vs2, vs1, vd`
18555    VWADDVV,
18556    /// RISC-V `vwadd.vx` instruction.
18557    ///
18558    /// # Forms
18559    /// Assembly: `vwadd.vx vm, vs2, xs1, vd`
18560    VWADDVX,
18561    /// RISC-V `vwadd.wv` instruction.
18562    ///
18563    /// # Forms
18564    /// Assembly: `vwadd.wv vm, vs2, vs1, vd`
18565    VWADDWV,
18566    /// RISC-V `vwadd.wx` instruction.
18567    ///
18568    /// # Forms
18569    /// Assembly: `vwadd.wx vm, vs2, xs1, vd`
18570    VWADDWX,
18571    /// RISC-V `vwaddu.vv` instruction.
18572    ///
18573    /// # Forms
18574    /// Assembly: `vwaddu.vv vm, vs2, vs1, vd`
18575    VWADDUVV,
18576    /// RISC-V `vwaddu.vx` instruction.
18577    ///
18578    /// # Forms
18579    /// Assembly: `vwaddu.vx vm, vs2, xs1, vd`
18580    VWADDUVX,
18581    /// RISC-V `vwaddu.wv` instruction.
18582    ///
18583    /// # Forms
18584    /// Assembly: `vwaddu.wv vm, vs2, vs1, vd`
18585    VWADDUWV,
18586    /// RISC-V `vwaddu.wx` instruction.
18587    ///
18588    /// # Forms
18589    /// Assembly: `vwaddu.wx vm, vs2, xs1, vd`
18590    VWADDUWX,
18591    /// RISC-V `vwmacc.vv` instruction.
18592    ///
18593    /// # Forms
18594    /// Assembly: `vwmacc.vv vm, vs2, vs1, vd`
18595    VWMACCVV,
18596    /// RISC-V `vwmacc.vx` instruction.
18597    ///
18598    /// # Forms
18599    /// Assembly: `vwmacc.vx vm, vs2, xs1, vd`
18600    VWMACCVX,
18601    /// RISC-V `vwmaccsu.vv` instruction.
18602    ///
18603    /// # Forms
18604    /// Assembly: `vwmaccsu.vv vm, vs2, vs1, vd`
18605    VWMACCSUVV,
18606    /// RISC-V `vwmaccsu.vx` instruction.
18607    ///
18608    /// # Forms
18609    /// Assembly: `vwmaccsu.vx vm, vs2, xs1, vd`
18610    VWMACCSUVX,
18611    /// RISC-V `vwmaccu.vv` instruction.
18612    ///
18613    /// # Forms
18614    /// Assembly: `vwmaccu.vv vm, vs2, vs1, vd`
18615    VWMACCUVV,
18616    /// RISC-V `vwmaccu.vx` instruction.
18617    ///
18618    /// # Forms
18619    /// Assembly: `vwmaccu.vx vm, vs2, xs1, vd`
18620    VWMACCUVX,
18621    /// RISC-V `vwmaccus.vx` instruction.
18622    ///
18623    /// # Forms
18624    /// Assembly: `vwmaccus.vx vm, vs2, xs1, vd`
18625    VWMACCUSVX,
18626    /// RISC-V `vwmul.vv` instruction.
18627    ///
18628    /// # Forms
18629    /// Assembly: `vwmul.vv vm, vs2, vs1, vd`
18630    VWMULVV,
18631    /// RISC-V `vwmul.vx` instruction.
18632    ///
18633    /// # Forms
18634    /// Assembly: `vwmul.vx vm, vs2, xs1, vd`
18635    VWMULVX,
18636    /// RISC-V `vwmulsu.vv` instruction.
18637    ///
18638    /// # Forms
18639    /// Assembly: `vwmulsu.vv vm, vs2, vs1, vd`
18640    VWMULSUVV,
18641    /// RISC-V `vwmulsu.vx` instruction.
18642    ///
18643    /// # Forms
18644    /// Assembly: `vwmulsu.vx vm, vs2, xs1, vd`
18645    VWMULSUVX,
18646    /// RISC-V `vwmulu.vv` instruction.
18647    ///
18648    /// # Forms
18649    /// Assembly: `vwmulu.vv vm, vs2, vs1, vd`
18650    VWMULUVV,
18651    /// RISC-V `vwmulu.vx` instruction.
18652    ///
18653    /// # Forms
18654    /// Assembly: `vwmulu.vx vm, vs2, xs1, vd`
18655    VWMULUVX,
18656    /// RISC-V `vwredsum.vs` instruction.
18657    ///
18658    /// # Forms
18659    /// Assembly: `vwredsum.vs vm, vs2, vs1, vd`
18660    VWREDSUMVS,
18661    /// RISC-V `vwredsumu.vs` instruction.
18662    ///
18663    /// # Forms
18664    /// Assembly: `vwredsumu.vs vm, vs2, vs1, vd`
18665    VWREDSUMUVS,
18666    /// RISC-V `vwsll.vi` instruction.
18667    ///
18668    /// # Forms
18669    /// Assembly: `vwsll.vi vm, vs2, vd, imm`
18670    VWSLLVI,
18671    /// RISC-V `vwsll.vv` instruction.
18672    ///
18673    /// # Forms
18674    /// Assembly: `vwsll.vv vm, vs2, vs1, vd`
18675    VWSLLVV,
18676    /// RISC-V `vwsll.vx` instruction.
18677    ///
18678    /// # Forms
18679    /// Assembly: `vwsll.vx vm, vs2, xs1, vd`
18680    VWSLLVX,
18681    /// RISC-V `vwsub.vv` instruction.
18682    ///
18683    /// # Forms
18684    /// Assembly: `vwsub.vv vm, vs2, vs1, vd`
18685    VWSUBVV,
18686    /// RISC-V `vwsub.vx` instruction.
18687    ///
18688    /// # Forms
18689    /// Assembly: `vwsub.vx vm, vs2, xs1, vd`
18690    VWSUBVX,
18691    /// RISC-V `vwsub.wv` instruction.
18692    ///
18693    /// # Forms
18694    /// Assembly: `vwsub.wv vm, vs2, vs1, vd`
18695    VWSUBWV,
18696    /// RISC-V `vwsub.wx` instruction.
18697    ///
18698    /// # Forms
18699    /// Assembly: `vwsub.wx vm, vs2, xs1, vd`
18700    VWSUBWX,
18701    /// RISC-V `vwsubu.vv` instruction.
18702    ///
18703    /// # Forms
18704    /// Assembly: `vwsubu.vv vm, vs2, vs1, vd`
18705    VWSUBUVV,
18706    /// RISC-V `vwsubu.vx` instruction.
18707    ///
18708    /// # Forms
18709    /// Assembly: `vwsubu.vx vm, vs2, xs1, vd`
18710    VWSUBUVX,
18711    /// RISC-V `vwsubu.wv` instruction.
18712    ///
18713    /// # Forms
18714    /// Assembly: `vwsubu.wv vm, vs2, vs1, vd`
18715    VWSUBUWV,
18716    /// RISC-V `vwsubu.wx` instruction.
18717    ///
18718    /// # Forms
18719    /// Assembly: `vwsubu.wx vm, vs2, xs1, vd`
18720    VWSUBUWX,
18721    /// RISC-V `vxor.vi` instruction.
18722    ///
18723    /// # Forms
18724    /// Assembly: `vxor.vi vm, vs2, vd, imm`
18725    VXORVI,
18726    /// RISC-V `vxor.vv` instruction.
18727    ///
18728    /// # Forms
18729    /// Assembly: `vxor.vv vm, vs2, vs1, vd`
18730    VXORVV,
18731    /// RISC-V `vxor.vx` instruction.
18732    ///
18733    /// # Forms
18734    /// Assembly: `vxor.vx vm, vs2, xs1, vd`
18735    VXORVX,
18736    /// RISC-V `vzext.vf2` instruction.
18737    ///
18738    /// # Forms
18739    /// Assembly: `vzext.vf2 vm, vs2, vd`
18740    VZEXTVF2,
18741    /// RISC-V `vzext.vf4` instruction.
18742    ///
18743    /// # Forms
18744    /// Assembly: `vzext.vf4 vm, vs2, vd`
18745    VZEXTVF4,
18746    /// RISC-V `vzext.vf8` instruction.
18747    ///
18748    /// # Forms
18749    /// Assembly: `vzext.vf8 vm, vs2, vd`
18750    VZEXTVF8,
18751    /// Wait for interrupt
18752    ///
18753    /// Can causes the processor to enter a low-power state until the next interrupt occurs.
18754    ///
18755    /// &lt;%- if ext?(:H) -%&gt;
18756    /// The behavior of `wfi` is affected by the `mstatus.TW`
18757    /// and `hstatus.VTW` bits, as summarized below.
18758    ///
18759    /// \[%autowidth,%footer\]
18760    /// |===
18761    /// .2+| \[.rotate\]#`mstatus.TW`# .2+| \[.rotate\]#`hstatus.VTW`# 4+^.&gt;| `wfi` behavior
18762    /// h| HS-mode h| U-mode h| VS-mode h| in VU-mode
18763    ///
18764    /// | 0 | 0 | Wait | Trap (I) | Wait | Trap (V)
18765    /// | 0 | 1 | Wait | Trap (I) | Trap (V) | Trap (V)
18766    /// | 1 | - | Trap (I) | Trap (I) | Trap (I) | Trap (I)
18767    ///
18768    /// 6+| Trap (I) - Trap with `Illegal Instruction` code +
18769    /// Trap (V) - Trap with `Virtual Instruction` code
18770    /// |===
18771    ///
18772    /// &lt;%- else -%&gt;
18773    /// The `wfi` instruction is also affected by `mstatus.TW`, as shown below:
18774    ///
18775    /// \[%autowidth,%footer\]
18776    /// |===
18777    /// .2+| \[.rotate\]#`mstatus.TW`# 2+^.&gt;| `wfi` behavior
18778    /// h| S-mode h| U-mode
18779    ///
18780    /// | 0 | Wait | Trap (I)
18781    /// | 1 | Trap (I) | Trap (I)
18782    ///
18783    /// 3+| Trap (I) - Trap with `Illegal Instruction` code
18784    /// |===
18785    ///
18786    /// &lt;%- end -%&gt;
18787    ///
18788    /// When `wfi` is marked as causing a trap above, the implementation is allowed to wait
18789    /// for an unspecified period of time to see if an interrupt occurs before raising the trap.
18790    /// That period of time can be zero (_i.e._, `wfi` always causes a trap in the cases identified
18791    /// above).
18792    ///
18793    /// # Forms
18794    /// Assembly: `wfi ""`
18795    WFI,
18796    /// RISC-V `wrs.nto` instruction.
18797    ///
18798    /// # Forms
18799    /// Assembly: `wrs.nto wrs_nto`
18800    WRSNTO,
18801    /// RISC-V `wrs.sto` instruction.
18802    ///
18803    /// # Forms
18804    /// Assembly: `wrs.sto wrs_sto`
18805    WRSSTO,
18806    /// Exclusive NOR
18807    ///
18808    /// This instruction performs the bit-wise exclusive-NOR operation on rs1 and rs2.
18809    ///
18810    /// # Forms
18811    /// Assembly: `xnor xd, xs1, xs2`
18812    XNOR,
18813    /// Exclusive Or
18814    ///
18815    /// Exclusive or rs1 with rs2, and store the result in rd
18816    ///
18817    /// # Forms
18818    /// Assembly: `xor xd, xs1, xs2`
18819    XOR,
18820    /// Exclusive Or immediate
18821    ///
18822    /// Exclusive or an immediate to the value in rs1, and store the result in rd
18823    ///
18824    /// # Forms
18825    /// Assembly: `xori xd, xs1, imm`
18826    XORI,
18827    /// Crossbar permutation (nibbles)
18828    ///
18829    /// The xperm4 instruction operates on nibbles. The rs1 register contains a vector of XLEN/4 4-bit
18830    /// elements. The rs2 register contains a vector of XLEN/4 4-bit indexes. The result is each element in
18831    /// rs2 replaced by the indexed element in rs1, or zero if the index into rs2 is out of bounds.
18832    ///
18833    /// # Forms
18834    /// Assembly: `xperm4 xd, xs1, xs2`
18835    XPERM4,
18836    /// Crossbar permutation (bytes)
18837    ///
18838    /// The xperm8 instruction operates on bytes. The rs1 register contains a vector of XLEN/8 8-bit
18839    /// elements. The rs2 register contains a vector of XLEN/8 8-bit indexes. The result is each element in
18840    /// rs2 replaced by the indexed element in rs1, or zero if the index into rs2 is out of bounds.
18841    ///
18842    /// # Forms
18843    /// Assembly: `xperm8 xd, xs1, xs2`
18844    XPERM8,
18845    /// RISC-V `zext.b` instruction.
18846    ///
18847    /// # Forms
18848    /// Assembly: `zext.b rd rs1`
18849    ZEXTB,
18850    /// Zero-extend halfword
18851    ///
18852    /// This instruction zero-extends the least-significant halfword of the source to XLEN by inserting
18853    /// 0's into all of the bits more significant than 15.
18854    ///
18855    /// \[NOTE\]
18856    /// The *zext.h* instruction is a pseudo-op for `pack` when `Zbkb` is implemented and XLEN == 32.
18857    ///
18858    /// \[NOTE\]
18859    /// The *zext.h* instruction is a pseudo-op for `packw` when `Zbkb` is implemented and XLEN == 64.
18860    ///
18861    /// # Forms
18862    /// Assembly: `zext.h xd, xs1`
18863    ZEXTH,
18864    /// Zero-extend halfword
18865    ///
18866    /// This instruction zero-extends the least-significant halfword of the source to XLEN by inserting
18867    /// 0's into all of the bits more significant than 15.
18868    ///
18869    /// \[NOTE\]
18870    /// The *zext.h* instruction is a pseudo-op for `pack` when `Zbkb` is implemented and XLEN == 32.
18871    ///
18872    /// \[NOTE\]
18873    /// The *zext.h* instruction is a pseudo-op for `packw` when `Zbkb` is implemented and XLEN == 64.
18874    ///
18875    /// # Forms
18876    /// Assembly: `zext.h.rv32 xd, xs1`
18877    ZEXTHRV32,
18878    /// RISC-V `zext.w` instruction.
18879    ///
18880    /// # Forms
18881    /// Assembly: `zext.w rd rs1`
18882    ZEXTW,
18883    /// Bit interleave
18884    ///
18885    /// This instruction scatters all of the odd and even bits of a source word into the high and low halves
18886    /// of a destination word. It is the inverse of the unzip instruction. This instruction is available only on
18887    /// RV32.
18888    ///
18889    /// # Forms
18890    /// Assembly: `zip xd, xs1`
18891    ZIP,
18892    Invalid,
18893}
18894
18895pub const OPCODE_STR: &[&str] = &[
18896    "add",
18897    "add.uw",
18898    "addi",
18899    "addiw",
18900    "addw",
18901    "aes32dsi",
18902    "aes32dsmi",
18903    "aes32esi",
18904    "aes32esmi",
18905    "aes64ds",
18906    "aes64dsm",
18907    "aes64es",
18908    "aes64esm",
18909    "aes64im",
18910    "aes64ks1i",
18911    "aes64ks2",
18912    "amoadd.b",
18913    "amoadd.d",
18914    "amoadd.h",
18915    "amoadd.w",
18916    "amoand.b",
18917    "amoand.d",
18918    "amoand.h",
18919    "amoand.w",
18920    "amocas.b",
18921    "amocas.d",
18922    "amocas.h",
18923    "amocas.q",
18924    "amocas.w",
18925    "amomax.b",
18926    "amomax.d",
18927    "amomax.h",
18928    "amomax.w",
18929    "amomaxu.b",
18930    "amomaxu.d",
18931    "amomaxu.h",
18932    "amomaxu.w",
18933    "amomin.b",
18934    "amomin.d",
18935    "amomin.h",
18936    "amomin.w",
18937    "amominu.b",
18938    "amominu.d",
18939    "amominu.h",
18940    "amominu.w",
18941    "amoor.b",
18942    "amoor.d",
18943    "amoor.h",
18944    "amoor.w",
18945    "amoswap.b",
18946    "amoswap.d",
18947    "amoswap.h",
18948    "amoswap.w",
18949    "amoxor.b",
18950    "amoxor.d",
18951    "amoxor.h",
18952    "amoxor.w",
18953    "and",
18954    "andi",
18955    "andn",
18956    "auipc",
18957    "bclr",
18958    "bclri",
18959    "bclri.rv32",
18960    "beq",
18961    "beqz",
18962    "bext",
18963    "bexti",
18964    "bexti.rv32",
18965    "bge",
18966    "bgeu",
18967    "bgez",
18968    "bgt",
18969    "bgtu",
18970    "bgtz",
18971    "binv",
18972    "binvi",
18973    "binvi.rv32",
18974    "ble",
18975    "bleu",
18976    "blez",
18977    "blt",
18978    "bltu",
18979    "bltz",
18980    "bne",
18981    "bnez",
18982    "brev8",
18983    "bset",
18984    "bseti",
18985    "bseti.rv32",
18986    "c.add",
18987    "c.addi",
18988    "c.addi16sp",
18989    "c.addi4spn",
18990    "c.addiw",
18991    "c.addw",
18992    "c.and",
18993    "c.andi",
18994    "c.beqz",
18995    "c.bnez",
18996    "c.ebreak",
18997    "c.fld",
18998    "c.fldsp",
18999    "c.flw",
19000    "c.flwsp",
19001    "c.fsd",
19002    "c.fsdsp",
19003    "c.fsw",
19004    "c.fswsp",
19005    "c.j",
19006    "c.jal",
19007    "c.jalr",
19008    "c.jr",
19009    "c.lbu",
19010    "c.ld",
19011    "c.ldsp",
19012    "c.lh",
19013    "c.lhu",
19014    "c.li",
19015    "c.lui",
19016    "c.lw",
19017    "c.lwsp",
19018    "c.mop.1",
19019    "c.mop.11",
19020    "c.mop.13",
19021    "c.mop.15",
19022    "c.mop.3",
19023    "c.mop.5",
19024    "c.mop.7",
19025    "c.mop.9",
19026    "c.mop.n",
19027    "c.mul",
19028    "c.mv",
19029    "c.nop",
19030    "c.not",
19031    "c.ntl.all",
19032    "c.ntl.p1",
19033    "c.ntl.pall",
19034    "c.ntl.s1",
19035    "c.or",
19036    "c.sb",
19037    "c.sd",
19038    "c.sdsp",
19039    "c.sext.b",
19040    "c.sext.h",
19041    "c.sext.w",
19042    "c.sh",
19043    "c.slli",
19044    "c.slli.rv32",
19045    "c.srai",
19046    "c.srai.rv32",
19047    "c.srli",
19048    "c.srli.rv32",
19049    "c.sspopchk.x5",
19050    "c.sspush.x1",
19051    "c.sub",
19052    "c.subw",
19053    "c.sw",
19054    "c.swsp",
19055    "c.xor",
19056    "c.zext.b",
19057    "c.zext.h",
19058    "c.zext.w",
19059    "cbo.clean",
19060    "cbo.flush",
19061    "cbo.inval",
19062    "cbo.zero",
19063    "clmul",
19064    "clmulh",
19065    "clmulr",
19066    "clz",
19067    "clzw",
19068    "cm.jalt",
19069    "cm.mva01s",
19070    "cm.mvsa01",
19071    "cm.pop",
19072    "cm.popret",
19073    "cm.popretz",
19074    "cm.push",
19075    "cpop",
19076    "cpopw",
19077    "csrc",
19078    "csrci",
19079    "csrr",
19080    "csrrc",
19081    "csrrci",
19082    "csrrs",
19083    "csrrsi",
19084    "csrrw",
19085    "csrrwi",
19086    "csrs",
19087    "csrsi",
19088    "csrw",
19089    "csrwi",
19090    "ctz",
19091    "ctzw",
19092    "czero.eqz",
19093    "czero.nez",
19094    "div",
19095    "divu",
19096    "divuw",
19097    "divw",
19098    "dret",
19099    "ebreak",
19100    "ecall",
19101    "fabs.d",
19102    "fabs.h",
19103    "fabs.q",
19104    "fabs.s",
19105    "fadd.d",
19106    "fadd.h",
19107    "fadd.q",
19108    "fadd.s",
19109    "fclass.d",
19110    "fclass.h",
19111    "fclass.q",
19112    "fclass.s",
19113    "fcvt.bf16.s",
19114    "fcvt.d.h",
19115    "fcvt.d.l",
19116    "fcvt.d.lu",
19117    "fcvt.d.q",
19118    "fcvt.d.s",
19119    "fcvt.d.w",
19120    "fcvt.d.wu",
19121    "fcvt.h.d",
19122    "fcvt.h.l",
19123    "fcvt.h.lu",
19124    "fcvt.h.q",
19125    "fcvt.h.s",
19126    "fcvt.h.w",
19127    "fcvt.h.wu",
19128    "fcvt.l.d",
19129    "fcvt.l.h",
19130    "fcvt.l.q",
19131    "fcvt.l.s",
19132    "fcvt.lu.d",
19133    "fcvt.lu.h",
19134    "fcvt.lu.q",
19135    "fcvt.lu.s",
19136    "fcvt.q.d",
19137    "fcvt.q.h",
19138    "fcvt.q.l",
19139    "fcvt.q.lu",
19140    "fcvt.q.s",
19141    "fcvt.q.w",
19142    "fcvt.q.wu",
19143    "fcvt.s.bf16",
19144    "fcvt.s.d",
19145    "fcvt.s.h",
19146    "fcvt.s.l",
19147    "fcvt.s.lu",
19148    "fcvt.s.q",
19149    "fcvt.s.w",
19150    "fcvt.s.wu",
19151    "fcvt.w.d",
19152    "fcvt.w.h",
19153    "fcvt.w.q",
19154    "fcvt.w.s",
19155    "fcvt.wu.d",
19156    "fcvt.wu.h",
19157    "fcvt.wu.q",
19158    "fcvt.wu.s",
19159    "fcvtmod.w.d",
19160    "fdiv.d",
19161    "fdiv.h",
19162    "fdiv.q",
19163    "fdiv.s",
19164    "fence",
19165    "fence.i",
19166    "fence.tso",
19167    "feq.d",
19168    "feq.h",
19169    "feq.q",
19170    "feq.s",
19171    "fld",
19172    "fle.d",
19173    "fle.h",
19174    "fle.q",
19175    "fle.s",
19176    "fleq.d",
19177    "fleq.h",
19178    "fleq.q",
19179    "fleq.s",
19180    "flh",
19181    "fli.d",
19182    "fli.h",
19183    "fli.q",
19184    "fli.s",
19185    "flq",
19186    "flt.d",
19187    "flt.h",
19188    "flt.q",
19189    "flt.s",
19190    "fltq.d",
19191    "fltq.h",
19192    "fltq.q",
19193    "fltq.s",
19194    "flw",
19195    "fmadd.d",
19196    "fmadd.h",
19197    "fmadd.q",
19198    "fmadd.s",
19199    "fmax.d",
19200    "fmax.h",
19201    "fmax.q",
19202    "fmax.s",
19203    "fmaxm.d",
19204    "fmaxm.h",
19205    "fmaxm.q",
19206    "fmaxm.s",
19207    "fmin.d",
19208    "fmin.h",
19209    "fmin.q",
19210    "fmin.s",
19211    "fminm.d",
19212    "fminm.h",
19213    "fminm.q",
19214    "fminm.s",
19215    "fmsub.d",
19216    "fmsub.h",
19217    "fmsub.q",
19218    "fmsub.s",
19219    "fmul.d",
19220    "fmul.h",
19221    "fmul.q",
19222    "fmul.s",
19223    "fmv.d",
19224    "fmv.d.x",
19225    "fmv.h",
19226    "fmv.h.x",
19227    "fmv.q",
19228    "fmv.s",
19229    "fmv.s.x",
19230    "fmv.w.x",
19231    "fmv.x.d",
19232    "fmv.x.h",
19233    "fmv.x.s",
19234    "fmv.x.w",
19235    "fmvh.x.d",
19236    "fmvh.x.q",
19237    "fmvp.d.x",
19238    "fmvp.q.x",
19239    "fneg.d",
19240    "fneg.h",
19241    "fneg.q",
19242    "fneg.s",
19243    "fnmadd.d",
19244    "fnmadd.h",
19245    "fnmadd.q",
19246    "fnmadd.s",
19247    "fnmsub.d",
19248    "fnmsub.h",
19249    "fnmsub.q",
19250    "fnmsub.s",
19251    "frcsr",
19252    "frflags",
19253    "fround.d",
19254    "fround.h",
19255    "fround.q",
19256    "fround.s",
19257    "froundnx.d",
19258    "froundnx.h",
19259    "froundnx.q",
19260    "froundnx.s",
19261    "frrm",
19262    "fscsr",
19263    "fsd",
19264    "fsflags",
19265    "fsflagsi",
19266    "fsgnj.d",
19267    "fsgnj.h",
19268    "fsgnj.q",
19269    "fsgnj.s",
19270    "fsgnjn.d",
19271    "fsgnjn.h",
19272    "fsgnjn.q",
19273    "fsgnjn.s",
19274    "fsgnjx.d",
19275    "fsgnjx.h",
19276    "fsgnjx.q",
19277    "fsgnjx.s",
19278    "fsh",
19279    "fsq",
19280    "fsqrt.d",
19281    "fsqrt.h",
19282    "fsqrt.q",
19283    "fsqrt.s",
19284    "fsrm",
19285    "fsrmi",
19286    "fsub.d",
19287    "fsub.h",
19288    "fsub.q",
19289    "fsub.s",
19290    "fsw",
19291    "hfence.gvma",
19292    "hfence.vvma",
19293    "hinval.gvma",
19294    "hinval.vvma",
19295    "hlv.b",
19296    "hlv.bu",
19297    "hlv.d",
19298    "hlv.h",
19299    "hlv.hu",
19300    "hlv.w",
19301    "hlv.wu",
19302    "hlvx.hu",
19303    "hlvx.wu",
19304    "hsv.b",
19305    "hsv.d",
19306    "hsv.h",
19307    "hsv.w",
19308    "j",
19309    "jal",
19310    "jal.pseudo",
19311    "jalr",
19312    "jalr.pseudo",
19313    "jr",
19314    "lb",
19315    "lbu",
19316    "ld",
19317    "lh",
19318    "lhu",
19319    "lpad",
19320    "lr.d",
19321    "lr.w",
19322    "lui",
19323    "lw",
19324    "lwu",
19325    "max",
19326    "maxu",
19327    "min",
19328    "minu",
19329    "mnret",
19330    "mop.r.0",
19331    "mop.r.1",
19332    "mop.r.10",
19333    "mop.r.11",
19334    "mop.r.12",
19335    "mop.r.13",
19336    "mop.r.14",
19337    "mop.r.15",
19338    "mop.r.16",
19339    "mop.r.17",
19340    "mop.r.18",
19341    "mop.r.19",
19342    "mop.r.2",
19343    "mop.r.20",
19344    "mop.r.21",
19345    "mop.r.22",
19346    "mop.r.23",
19347    "mop.r.24",
19348    "mop.r.25",
19349    "mop.r.26",
19350    "mop.r.27",
19351    "mop.r.28",
19352    "mop.r.29",
19353    "mop.r.3",
19354    "mop.r.30",
19355    "mop.r.31",
19356    "mop.r.4",
19357    "mop.r.5",
19358    "mop.r.6",
19359    "mop.r.7",
19360    "mop.r.8",
19361    "mop.r.9",
19362    "mop.r.n",
19363    "mop.rr.0",
19364    "mop.rr.1",
19365    "mop.rr.2",
19366    "mop.rr.3",
19367    "mop.rr.4",
19368    "mop.rr.5",
19369    "mop.rr.6",
19370    "mop.rr.7",
19371    "mop.rr.n",
19372    "mret",
19373    "mul",
19374    "mulh",
19375    "mulhsu",
19376    "mulhu",
19377    "mulw",
19378    "mv",
19379    "neg",
19380    "nop",
19381    "ntl.all",
19382    "ntl.p1",
19383    "ntl.pall",
19384    "ntl.s1",
19385    "or",
19386    "orc.b",
19387    "ori",
19388    "orn",
19389    "pack",
19390    "packh",
19391    "packw",
19392    "pause",
19393    "prefetch.i",
19394    "prefetch.r",
19395    "prefetch.w",
19396    "rdcycle",
19397    "rdcycleh",
19398    "rdinstret",
19399    "rdinstreth",
19400    "rdtime",
19401    "rdtimeh",
19402    "rem",
19403    "remu",
19404    "remuw",
19405    "remw",
19406    "ret",
19407    "rev8",
19408    "rev8.rv32",
19409    "rol",
19410    "rolw",
19411    "ror",
19412    "rori",
19413    "rori.rv32",
19414    "roriw",
19415    "rorw",
19416    "sb",
19417    "sbreak",
19418    "sc.d",
19419    "sc.w",
19420    "scall",
19421    "sctrclr",
19422    "sd",
19423    "seqz",
19424    "sext.b",
19425    "sext.h",
19426    "sext.w",
19427    "sfence.inval.ir",
19428    "sfence.vma",
19429    "sfence.w.inval",
19430    "sgtz",
19431    "sh",
19432    "sh1add",
19433    "sh1add.uw",
19434    "sh2add",
19435    "sh2add.uw",
19436    "sh3add",
19437    "sh3add.uw",
19438    "sha256sig0",
19439    "sha256sig1",
19440    "sha256sum0",
19441    "sha256sum1",
19442    "sha512sig0",
19443    "sha512sig0h",
19444    "sha512sig0l",
19445    "sha512sig1",
19446    "sha512sig1h",
19447    "sha512sig1l",
19448    "sha512sum0",
19449    "sha512sum0r",
19450    "sha512sum1",
19451    "sha512sum1r",
19452    "sinval.vma",
19453    "sll",
19454    "slli",
19455    "slli.rv32",
19456    "slli.uw",
19457    "slliw",
19458    "sllw",
19459    "slt",
19460    "slti",
19461    "sltiu",
19462    "sltu",
19463    "sltz",
19464    "sm3p0",
19465    "sm3p1",
19466    "sm4ed",
19467    "sm4ks",
19468    "snez",
19469    "sra",
19470    "srai",
19471    "srai.rv32",
19472    "sraiw",
19473    "sraw",
19474    "sret",
19475    "srl",
19476    "srli",
19477    "srli.rv32",
19478    "srliw",
19479    "srlw",
19480    "ssamoswap.d",
19481    "ssamoswap.w",
19482    "sspopchk.x1",
19483    "sspopchk.x5",
19484    "sspush.x1",
19485    "sspush.x5",
19486    "ssrdp",
19487    "sub",
19488    "subw",
19489    "sw",
19490    "unzip",
19491    "vaadd.vv",
19492    "vaadd.vx",
19493    "vaaddu.vv",
19494    "vaaddu.vx",
19495    "vadc.vim",
19496    "vadc.vvm",
19497    "vadc.vxm",
19498    "vadd.vi",
19499    "vadd.vv",
19500    "vadd.vx",
19501    "vaesdf.vs",
19502    "vaesdf.vv",
19503    "vaesdm.vs",
19504    "vaesdm.vv",
19505    "vaesef.vs",
19506    "vaesef.vv",
19507    "vaesem.vs",
19508    "vaesem.vv",
19509    "vaeskf1.vi",
19510    "vaeskf2.vi",
19511    "vaesz.vs",
19512    "vand.vi",
19513    "vand.vv",
19514    "vand.vx",
19515    "vandn.vv",
19516    "vandn.vx",
19517    "vasub.vv",
19518    "vasub.vx",
19519    "vasubu.vv",
19520    "vasubu.vx",
19521    "vbrev8.v",
19522    "vbrev.v",
19523    "vclmul.vv",
19524    "vclmul.vx",
19525    "vclmulh.vv",
19526    "vclmulh.vx",
19527    "vclz.v",
19528    "vcompress.vm",
19529    "vcpop.m",
19530    "vcpop.v",
19531    "vctz.v",
19532    "vdiv.vv",
19533    "vdiv.vx",
19534    "vdivu.vv",
19535    "vdivu.vx",
19536    "vfadd.vf",
19537    "vfadd.vv",
19538    "vfclass.v",
19539    "vfcvt.f.x.v",
19540    "vfcvt.f.xu.v",
19541    "vfcvt.rtz.x.f.v",
19542    "vfcvt.rtz.xu.f.v",
19543    "vfcvt.x.f.v",
19544    "vfcvt.xu.f.v",
19545    "vfdiv.vf",
19546    "vfdiv.vv",
19547    "vfirst.m",
19548    "vfmacc.vf",
19549    "vfmacc.vv",
19550    "vfmadd.vf",
19551    "vfmadd.vv",
19552    "vfmax.vf",
19553    "vfmax.vv",
19554    "vfmerge.vfm",
19555    "vfmin.vf",
19556    "vfmin.vv",
19557    "vfmsac.vf",
19558    "vfmsac.vv",
19559    "vfmsub.vf",
19560    "vfmsub.vv",
19561    "vfmul.vf",
19562    "vfmul.vv",
19563    "vfmv.f.s",
19564    "vfmv.s.f",
19565    "vfmv.v.f",
19566    "vfncvt.f.f.w",
19567    "vfncvt.f.x.w",
19568    "vfncvt.f.xu.w",
19569    "vfncvt.rod.f.f.w",
19570    "vfncvt.rtz.x.f.w",
19571    "vfncvt.rtz.xu.f.w",
19572    "vfncvt.x.f.w",
19573    "vfncvt.xu.f.w",
19574    "vfncvtbf16.f.f.w",
19575    "vfnmacc.vf",
19576    "vfnmacc.vv",
19577    "vfnmadd.vf",
19578    "vfnmadd.vv",
19579    "vfnmsac.vf",
19580    "vfnmsac.vv",
19581    "vfnmsub.vf",
19582    "vfnmsub.vv",
19583    "vfrdiv.vf",
19584    "vfrec7.v",
19585    "vfredmax.vs",
19586    "vfredmin.vs",
19587    "vfredosum.vs",
19588    "vfredsum.vs",
19589    "vfredusum.vs",
19590    "vfrsqrt7.v",
19591    "vfrsub.vf",
19592    "vfsgnj.vf",
19593    "vfsgnj.vv",
19594    "vfsgnjn.vf",
19595    "vfsgnjn.vv",
19596    "vfsgnjx.vf",
19597    "vfsgnjx.vv",
19598    "vfslide1down.vf",
19599    "vfslide1up.vf",
19600    "vfsqrt.v",
19601    "vfsub.vf",
19602    "vfsub.vv",
19603    "vfwadd.vf",
19604    "vfwadd.vv",
19605    "vfwadd.wf",
19606    "vfwadd.wv",
19607    "vfwcvt.f.f.v",
19608    "vfwcvt.f.x.v",
19609    "vfwcvt.f.xu.v",
19610    "vfwcvt.rtz.x.f.v",
19611    "vfwcvt.rtz.xu.f.v",
19612    "vfwcvt.x.f.v",
19613    "vfwcvt.xu.f.v",
19614    "vfwcvtbf16.f.f.v",
19615    "vfwmacc.vf",
19616    "vfwmacc.vv",
19617    "vfwmaccbf16.vf",
19618    "vfwmaccbf16.vv",
19619    "vfwmsac.vf",
19620    "vfwmsac.vv",
19621    "vfwmul.vf",
19622    "vfwmul.vv",
19623    "vfwnmacc.vf",
19624    "vfwnmacc.vv",
19625    "vfwnmsac.vf",
19626    "vfwnmsac.vv",
19627    "vfwredosum.vs",
19628    "vfwredsum.vs",
19629    "vfwredusum.vs",
19630    "vfwsub.vf",
19631    "vfwsub.vv",
19632    "vfwsub.wf",
19633    "vfwsub.wv",
19634    "vghsh.vv",
19635    "vgmul.vv",
19636    "vid.v",
19637    "viota.m",
19638    "vl1r.v",
19639    "vl1re16.v",
19640    "vl1re32.v",
19641    "vl1re64.v",
19642    "vl1re8.v",
19643    "vl2r.v",
19644    "vl2re16.v",
19645    "vl2re32.v",
19646    "vl2re64.v",
19647    "vl2re8.v",
19648    "vl4r.v",
19649    "vl4re16.v",
19650    "vl4re32.v",
19651    "vl4re64.v",
19652    "vl4re8.v",
19653    "vl8r.v",
19654    "vl8re16.v",
19655    "vl8re32.v",
19656    "vl8re64.v",
19657    "vl8re8.v",
19658    "vle16.v",
19659    "vle16ff.v",
19660    "vle1.v",
19661    "vle32.v",
19662    "vle32ff.v",
19663    "vle64.v",
19664    "vle64ff.v",
19665    "vle8.v",
19666    "vle8ff.v",
19667    "vlm.v",
19668    "vloxei16.v",
19669    "vloxei32.v",
19670    "vloxei64.v",
19671    "vloxei8.v",
19672    "vlse16.v",
19673    "vlse32.v",
19674    "vlse64.v",
19675    "vlse8.v",
19676    "vluxei16.v",
19677    "vluxei32.v",
19678    "vluxei64.v",
19679    "vluxei8.v",
19680    "vmacc.vv",
19681    "vmacc.vx",
19682    "vmadc.vi",
19683    "vmadc.vim",
19684    "vmadc.vv",
19685    "vmadc.vvm",
19686    "vmadc.vx",
19687    "vmadc.vxm",
19688    "vmadd.vv",
19689    "vmadd.vx",
19690    "vmand.mm",
19691    "vmandn.mm",
19692    "vmandnot.mm",
19693    "vmax.vv",
19694    "vmax.vx",
19695    "vmaxu.vv",
19696    "vmaxu.vx",
19697    "vmerge.vim",
19698    "vmerge.vvm",
19699    "vmerge.vxm",
19700    "vmfeq.vf",
19701    "vmfeq.vv",
19702    "vmfge.vf",
19703    "vmfgt.vf",
19704    "vmfle.vf",
19705    "vmfle.vv",
19706    "vmflt.vf",
19707    "vmflt.vv",
19708    "vmfne.vf",
19709    "vmfne.vv",
19710    "vmin.vv",
19711    "vmin.vx",
19712    "vminu.vv",
19713    "vminu.vx",
19714    "vmnand.mm",
19715    "vmnor.mm",
19716    "vmor.mm",
19717    "vmorn.mm",
19718    "vmornot.mm",
19719    "vmsbc.vv",
19720    "vmsbc.vvm",
19721    "vmsbc.vx",
19722    "vmsbc.vxm",
19723    "vmsbf.m",
19724    "vmseq.vi",
19725    "vmseq.vv",
19726    "vmseq.vx",
19727    "vmsgt.vi",
19728    "vmsgt.vx",
19729    "vmsgtu.vi",
19730    "vmsgtu.vx",
19731    "vmsif.m",
19732    "vmsle.vi",
19733    "vmsle.vv",
19734    "vmsle.vx",
19735    "vmsleu.vi",
19736    "vmsleu.vv",
19737    "vmsleu.vx",
19738    "vmslt.vv",
19739    "vmslt.vx",
19740    "vmsltu.vv",
19741    "vmsltu.vx",
19742    "vmsne.vi",
19743    "vmsne.vv",
19744    "vmsne.vx",
19745    "vmsof.m",
19746    "vmul.vv",
19747    "vmul.vx",
19748    "vmulh.vv",
19749    "vmulh.vx",
19750    "vmulhsu.vv",
19751    "vmulhsu.vx",
19752    "vmulhu.vv",
19753    "vmulhu.vx",
19754    "vmv1r.v",
19755    "vmv2r.v",
19756    "vmv4r.v",
19757    "vmv8r.v",
19758    "vmv.s.x",
19759    "vmv.v.i",
19760    "vmv.v.v",
19761    "vmv.v.x",
19762    "vmv.x.s",
19763    "vmxnor.mm",
19764    "vmxor.mm",
19765    "vnclip.wi",
19766    "vnclip.wv",
19767    "vnclip.wx",
19768    "vnclipu.wi",
19769    "vnclipu.wv",
19770    "vnclipu.wx",
19771    "vnmsac.vv",
19772    "vnmsac.vx",
19773    "vnmsub.vv",
19774    "vnmsub.vx",
19775    "vnsra.wi",
19776    "vnsra.wv",
19777    "vnsra.wx",
19778    "vnsrl.wi",
19779    "vnsrl.wv",
19780    "vnsrl.wx",
19781    "vor.vi",
19782    "vor.vv",
19783    "vor.vx",
19784    "vpopc.m",
19785    "vredand.vs",
19786    "vredmax.vs",
19787    "vredmaxu.vs",
19788    "vredmin.vs",
19789    "vredminu.vs",
19790    "vredor.vs",
19791    "vredsum.vs",
19792    "vredxor.vs",
19793    "vrem.vv",
19794    "vrem.vx",
19795    "vremu.vv",
19796    "vremu.vx",
19797    "vrev8.v",
19798    "vrgather.vi",
19799    "vrgather.vv",
19800    "vrgather.vx",
19801    "vrgatherei16.vv",
19802    "vrol.vv",
19803    "vrol.vx",
19804    "vror.vi",
19805    "vror.vv",
19806    "vror.vx",
19807    "vrsub.vi",
19808    "vrsub.vx",
19809    "vs1r.v",
19810    "vs2r.v",
19811    "vs4r.v",
19812    "vs8r.v",
19813    "vsadd.vi",
19814    "vsadd.vv",
19815    "vsadd.vx",
19816    "vsaddu.vi",
19817    "vsaddu.vv",
19818    "vsaddu.vx",
19819    "vsbc.vvm",
19820    "vsbc.vxm",
19821    "vse16.v",
19822    "vse1.v",
19823    "vse32.v",
19824    "vse64.v",
19825    "vse8.v",
19826    "vsetivli",
19827    "vsetvl",
19828    "vsetvli",
19829    "vsext.vf2",
19830    "vsext.vf4",
19831    "vsext.vf8",
19832    "vsha2ch.vv",
19833    "vsha2cl.vv",
19834    "vsha2ms.vv",
19835    "vslide1down.vx",
19836    "vslide1up.vx",
19837    "vslidedown.vi",
19838    "vslidedown.vx",
19839    "vslideup.vi",
19840    "vslideup.vx",
19841    "vsll.vi",
19842    "vsll.vv",
19843    "vsll.vx",
19844    "vsm3c.vi",
19845    "vsm3me.vv",
19846    "vsm4k.vi",
19847    "vsm4r.vs",
19848    "vsm4r.vv",
19849    "vsm.v",
19850    "vsmul.vv",
19851    "vsmul.vx",
19852    "vsoxei16.v",
19853    "vsoxei32.v",
19854    "vsoxei64.v",
19855    "vsoxei8.v",
19856    "vsra.vi",
19857    "vsra.vv",
19858    "vsra.vx",
19859    "vsrl.vi",
19860    "vsrl.vv",
19861    "vsrl.vx",
19862    "vsse16.v",
19863    "vsse32.v",
19864    "vsse64.v",
19865    "vsse8.v",
19866    "vssra.vi",
19867    "vssra.vv",
19868    "vssra.vx",
19869    "vssrl.vi",
19870    "vssrl.vv",
19871    "vssrl.vx",
19872    "vssub.vv",
19873    "vssub.vx",
19874    "vssubu.vv",
19875    "vssubu.vx",
19876    "vsub.vv",
19877    "vsub.vx",
19878    "vsuxei16.v",
19879    "vsuxei32.v",
19880    "vsuxei64.v",
19881    "vsuxei8.v",
19882    "vwadd.vv",
19883    "vwadd.vx",
19884    "vwadd.wv",
19885    "vwadd.wx",
19886    "vwaddu.vv",
19887    "vwaddu.vx",
19888    "vwaddu.wv",
19889    "vwaddu.wx",
19890    "vwmacc.vv",
19891    "vwmacc.vx",
19892    "vwmaccsu.vv",
19893    "vwmaccsu.vx",
19894    "vwmaccu.vv",
19895    "vwmaccu.vx",
19896    "vwmaccus.vx",
19897    "vwmul.vv",
19898    "vwmul.vx",
19899    "vwmulsu.vv",
19900    "vwmulsu.vx",
19901    "vwmulu.vv",
19902    "vwmulu.vx",
19903    "vwredsum.vs",
19904    "vwredsumu.vs",
19905    "vwsll.vi",
19906    "vwsll.vv",
19907    "vwsll.vx",
19908    "vwsub.vv",
19909    "vwsub.vx",
19910    "vwsub.wv",
19911    "vwsub.wx",
19912    "vwsubu.vv",
19913    "vwsubu.vx",
19914    "vwsubu.wv",
19915    "vwsubu.wx",
19916    "vxor.vi",
19917    "vxor.vv",
19918    "vxor.vx",
19919    "vzext.vf2",
19920    "vzext.vf4",
19921    "vzext.vf8",
19922    "wfi",
19923    "wrs.nto",
19924    "wrs.sto",
19925    "xnor",
19926    "xor",
19927    "xori",
19928    "xperm4",
19929    "xperm8",
19930    "zext.b",
19931    "zext.h",
19932    "zext.h.rv32",
19933    "zext.w",
19934    "zip",
19935    "<invalid>",
19936];
19937
19938#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
19939pub struct Inst {
19940    value: u32,
19941}
19942
19943impl Inst {
19944    pub const fn encode(&self) -> InstructionValue {
19945        InstructionValue::new(self.value)
19946    }
19947
19948    pub const fn new(op: Opcode) -> Self {
19949        match op {
19950            Opcode::Invalid => unreachable!(),
19951            Opcode::ADD => Inst { value: 0x33 },
19952            Opcode::ADDUW => Inst { value: 0x800003b },
19953            Opcode::ADDI => Inst { value: 0x13 },
19954            Opcode::ADDIW => Inst { value: 0x1b },
19955            Opcode::ADDW => Inst { value: 0x3b },
19956            Opcode::AES32DSI => Inst { value: 0x2a000033 },
19957            Opcode::AES32DSMI => Inst { value: 0x2e000033 },
19958            Opcode::AES32ESI => Inst { value: 0x22000033 },
19959            Opcode::AES32ESMI => Inst { value: 0x26000033 },
19960            Opcode::AES64DS => Inst { value: 0x3a000033 },
19961            Opcode::AES64DSM => Inst { value: 0x3e000033 },
19962            Opcode::AES64ES => Inst { value: 0x32000033 },
19963            Opcode::AES64ESM => Inst { value: 0x36000033 },
19964            Opcode::AES64IM => Inst { value: 0x30001013 },
19965            Opcode::AES64KS1I => Inst { value: 0x31001013 },
19966            Opcode::AES64KS2 => Inst { value: 0x7e000033 },
19967            Opcode::AMOADDB => Inst { value: 0x2f },
19968            Opcode::AMOADDD => Inst { value: 0x302f },
19969            Opcode::AMOADDH => Inst { value: 0x102f },
19970            Opcode::AMOADDW => Inst { value: 0x202f },
19971            Opcode::AMOANDB => Inst { value: 0x6000002f },
19972            Opcode::AMOANDD => Inst { value: 0x6000302f },
19973            Opcode::AMOANDH => Inst { value: 0x6000102f },
19974            Opcode::AMOANDW => Inst { value: 0x6000202f },
19975            Opcode::AMOCASB => Inst { value: 0x2800002f },
19976            Opcode::AMOCASD => Inst { value: 0x2800302f },
19977            Opcode::AMOCASH => Inst { value: 0x2800102f },
19978            Opcode::AMOCASQ => Inst { value: 0x2800402f },
19979            Opcode::AMOCASW => Inst { value: 0x2800202f },
19980            Opcode::AMOMAXB => Inst { value: 0xa000002f },
19981            Opcode::AMOMAXD => Inst { value: 0xa000302f },
19982            Opcode::AMOMAXH => Inst { value: 0xa000102f },
19983            Opcode::AMOMAXW => Inst { value: 0xa000202f },
19984            Opcode::AMOMAXUB => Inst { value: 0xe000002f },
19985            Opcode::AMOMAXUD => Inst { value: 0xe000302f },
19986            Opcode::AMOMAXUH => Inst { value: 0xe000102f },
19987            Opcode::AMOMAXUW => Inst { value: 0xe000202f },
19988            Opcode::AMOMINB => Inst { value: 0x8000002f },
19989            Opcode::AMOMIND => Inst { value: 0x8000302f },
19990            Opcode::AMOMINH => Inst { value: 0x8000102f },
19991            Opcode::AMOMINW => Inst { value: 0x8000202f },
19992            Opcode::AMOMINUB => Inst { value: 0xc000002f },
19993            Opcode::AMOMINUD => Inst { value: 0xc000302f },
19994            Opcode::AMOMINUH => Inst { value: 0xc000102f },
19995            Opcode::AMOMINUW => Inst { value: 0xc000202f },
19996            Opcode::AMOORB => Inst { value: 0x4000002f },
19997            Opcode::AMOORD => Inst { value: 0x4000302f },
19998            Opcode::AMOORH => Inst { value: 0x4000102f },
19999            Opcode::AMOORW => Inst { value: 0x4000202f },
20000            Opcode::AMOSWAPB => Inst { value: 0x800002f },
20001            Opcode::AMOSWAPD => Inst { value: 0x800302f },
20002            Opcode::AMOSWAPH => Inst { value: 0x800102f },
20003            Opcode::AMOSWAPW => Inst { value: 0x800202f },
20004            Opcode::AMOXORB => Inst { value: 0x2000002f },
20005            Opcode::AMOXORD => Inst { value: 0x2000302f },
20006            Opcode::AMOXORH => Inst { value: 0x2000102f },
20007            Opcode::AMOXORW => Inst { value: 0x2000202f },
20008            Opcode::AND => Inst { value: 0x7033 },
20009            Opcode::ANDI => Inst { value: 0x7013 },
20010            Opcode::ANDN => Inst { value: 0x40007033 },
20011            Opcode::AUIPC => Inst { value: 0x17 },
20012            Opcode::BCLR => Inst { value: 0x48001033 },
20013            Opcode::BCLRI => Inst { value: 0x48001013 },
20014            Opcode::BCLRIRV32 => Inst { value: 0x48001013 },
20015            Opcode::BEQ => Inst { value: 0x63 },
20016            Opcode::BEQZ => Inst { value: 0x63 },
20017            Opcode::BEXT => Inst { value: 0x48005033 },
20018            Opcode::BEXTI => Inst { value: 0x48005013 },
20019            Opcode::BEXTIRV32 => Inst { value: 0x48005013 },
20020            Opcode::BGE => Inst { value: 0x5063 },
20021            Opcode::BGEU => Inst { value: 0x7063 },
20022            Opcode::BGEZ => Inst { value: 0x5063 },
20023            Opcode::BGT => Inst { value: 0x4063 },
20024            Opcode::BGTU => Inst { value: 0x6063 },
20025            Opcode::BGTZ => Inst { value: 0x4063 },
20026            Opcode::BINV => Inst { value: 0x68001033 },
20027            Opcode::BINVI => Inst { value: 0x68001013 },
20028            Opcode::BINVIRV32 => Inst { value: 0x68001013 },
20029            Opcode::BLE => Inst { value: 0x5063 },
20030            Opcode::BLEU => Inst { value: 0x7063 },
20031            Opcode::BLEZ => Inst { value: 0x5063 },
20032            Opcode::BLT => Inst { value: 0x4063 },
20033            Opcode::BLTU => Inst { value: 0x6063 },
20034            Opcode::BLTZ => Inst { value: 0x4063 },
20035            Opcode::BNE => Inst { value: 0x1063 },
20036            Opcode::BNEZ => Inst { value: 0x1063 },
20037            Opcode::BREV8 => Inst { value: 0x68705013 },
20038            Opcode::BSET => Inst { value: 0x28001033 },
20039            Opcode::BSETI => Inst { value: 0x28001013 },
20040            Opcode::BSETIRV32 => Inst { value: 0x28001013 },
20041            Opcode::CADD => Inst { value: 0x9002 },
20042            Opcode::CADDI => Inst { value: 0x1 },
20043            Opcode::CADDI16SP => Inst { value: 0x6101 },
20044            Opcode::CADDI4SPN => Inst { value: 0x0 },
20045            Opcode::CADDIW => Inst { value: 0x2001 },
20046            Opcode::CADDW => Inst { value: 0x9c21 },
20047            Opcode::CAND => Inst { value: 0x8c61 },
20048            Opcode::CANDI => Inst { value: 0x8801 },
20049            Opcode::CBEQZ => Inst { value: 0xc001 },
20050            Opcode::CBNEZ => Inst { value: 0xe001 },
20051            Opcode::CEBREAK => Inst { value: 0x9002 },
20052            Opcode::CFLD => Inst { value: 0x2000 },
20053            Opcode::CFLDSP => Inst { value: 0x2002 },
20054            Opcode::CFLW => Inst { value: 0x6000 },
20055            Opcode::CFLWSP => Inst { value: 0x6002 },
20056            Opcode::CFSD => Inst { value: 0xa000 },
20057            Opcode::CFSDSP => Inst { value: 0xa002 },
20058            Opcode::CFSW => Inst { value: 0xe000 },
20059            Opcode::CFSWSP => Inst { value: 0xe002 },
20060            Opcode::CJ => Inst { value: 0xa001 },
20061            Opcode::CJAL => Inst { value: 0x2001 },
20062            Opcode::CJALR => Inst { value: 0x9002 },
20063            Opcode::CJR => Inst { value: 0x8002 },
20064            Opcode::CLBU => Inst { value: 0x8000 },
20065            Opcode::CLD => Inst { value: 0x6000 },
20066            Opcode::CLDSP => Inst { value: 0x6002 },
20067            Opcode::CLH => Inst { value: 0x8440 },
20068            Opcode::CLHU => Inst { value: 0x8400 },
20069            Opcode::CLI => Inst { value: 0x4001 },
20070            Opcode::CLUI => Inst { value: 0x6001 },
20071            Opcode::CLW => Inst { value: 0x4000 },
20072            Opcode::CLWSP => Inst { value: 0x4002 },
20073            Opcode::CMOP1 => Inst { value: 0x6081 },
20074            Opcode::CMOP11 => Inst { value: 0x6581 },
20075            Opcode::CMOP13 => Inst { value: 0x6681 },
20076            Opcode::CMOP15 => Inst { value: 0x6781 },
20077            Opcode::CMOP3 => Inst { value: 0x6181 },
20078            Opcode::CMOP5 => Inst { value: 0x6281 },
20079            Opcode::CMOP7 => Inst { value: 0x6381 },
20080            Opcode::CMOP9 => Inst { value: 0x6481 },
20081            Opcode::CMOPN => Inst { value: 0x6081 },
20082            Opcode::CMUL => Inst { value: 0x9c41 },
20083            Opcode::CMV => Inst { value: 0x8002 },
20084            Opcode::CNOP => Inst { value: 0x1 },
20085            Opcode::CNOT => Inst { value: 0x9c75 },
20086            Opcode::CNTLALL => Inst { value: 0x9016 },
20087            Opcode::CNTLP1 => Inst { value: 0x900a },
20088            Opcode::CNTLPALL => Inst { value: 0x900e },
20089            Opcode::CNTLS1 => Inst { value: 0x9012 },
20090            Opcode::COR => Inst { value: 0x8c41 },
20091            Opcode::CSB => Inst { value: 0x8800 },
20092            Opcode::CSD => Inst { value: 0xe000 },
20093            Opcode::CSDSP => Inst { value: 0xe002 },
20094            Opcode::CSEXTB => Inst { value: 0x9c65 },
20095            Opcode::CSEXTH => Inst { value: 0x9c6d },
20096            Opcode::CSEXTW => Inst { value: 0x2001 },
20097            Opcode::CSH => Inst { value: 0x8c00 },
20098            Opcode::CSLLI => Inst { value: 0x2 },
20099            Opcode::CSLLIRV32 => Inst { value: 0x2 },
20100            Opcode::CSRAI => Inst { value: 0x8401 },
20101            Opcode::CSRAIRV32 => Inst { value: 0x8401 },
20102            Opcode::CSRLI => Inst { value: 0x8001 },
20103            Opcode::CSRLIRV32 => Inst { value: 0x8001 },
20104            Opcode::CSSPOPCHKX5 => Inst { value: 0x6281 },
20105            Opcode::CSSPUSHX1 => Inst { value: 0x6081 },
20106            Opcode::CSUB => Inst { value: 0x8c01 },
20107            Opcode::CSUBW => Inst { value: 0x9c01 },
20108            Opcode::CSW => Inst { value: 0xc000 },
20109            Opcode::CSWSP => Inst { value: 0xc002 },
20110            Opcode::CXOR => Inst { value: 0x8c21 },
20111            Opcode::CZEXTB => Inst { value: 0x9c61 },
20112            Opcode::CZEXTH => Inst { value: 0x9c69 },
20113            Opcode::CZEXTW => Inst { value: 0x9c71 },
20114            Opcode::CBOCLEAN => Inst { value: 0x10200f },
20115            Opcode::CBOFLUSH => Inst { value: 0x20200f },
20116            Opcode::CBOINVAL => Inst { value: 0x200f },
20117            Opcode::CBOZERO => Inst { value: 0x40200f },
20118            Opcode::CLMUL => Inst { value: 0xa001033 },
20119            Opcode::CLMULH => Inst { value: 0xa003033 },
20120            Opcode::CLMULR => Inst { value: 0xa002033 },
20121            Opcode::CLZ => Inst { value: 0x60001013 },
20122            Opcode::CLZW => Inst { value: 0x6000101b },
20123            Opcode::CMJALT => Inst { value: 0xa002 },
20124            Opcode::CMMVA01S => Inst { value: 0xac62 },
20125            Opcode::CMMVSA01 => Inst { value: 0xac22 },
20126            Opcode::CMPOP => Inst { value: 0xba02 },
20127            Opcode::CMPOPRET => Inst { value: 0xbe02 },
20128            Opcode::CMPOPRETZ => Inst { value: 0xbc02 },
20129            Opcode::CMPUSH => Inst { value: 0xb802 },
20130            Opcode::CPOP => Inst { value: 0x60201013 },
20131            Opcode::CPOPW => Inst { value: 0x6020101b },
20132            Opcode::CSRC => Inst { value: 0x3073 },
20133            Opcode::CSRCI => Inst { value: 0x7073 },
20134            Opcode::CSRR => Inst { value: 0x2073 },
20135            Opcode::CSRRC => Inst { value: 0x3073 },
20136            Opcode::CSRRCI => Inst { value: 0x7073 },
20137            Opcode::CSRRS => Inst { value: 0x2073 },
20138            Opcode::CSRRSI => Inst { value: 0x6073 },
20139            Opcode::CSRRW => Inst { value: 0x1073 },
20140            Opcode::CSRRWI => Inst { value: 0x5073 },
20141            Opcode::CSRS => Inst { value: 0x2073 },
20142            Opcode::CSRSI => Inst { value: 0x6073 },
20143            Opcode::CSRW => Inst { value: 0x1073 },
20144            Opcode::CSRWI => Inst { value: 0x5073 },
20145            Opcode::CTZ => Inst { value: 0x60101013 },
20146            Opcode::CTZW => Inst { value: 0x6010101b },
20147            Opcode::CZEROEQZ => Inst { value: 0xe005033 },
20148            Opcode::CZERONEZ => Inst { value: 0xe007033 },
20149            Opcode::DIV => Inst { value: 0x2004033 },
20150            Opcode::DIVU => Inst { value: 0x2005033 },
20151            Opcode::DIVUW => Inst { value: 0x200503b },
20152            Opcode::DIVW => Inst { value: 0x200403b },
20153            Opcode::DRET => Inst { value: 0x7b200073 },
20154            Opcode::EBREAK => Inst { value: 0x100073 },
20155            Opcode::ECALL => Inst { value: 0x73 },
20156            Opcode::FABSD => Inst { value: 0x22002053 },
20157            Opcode::FABSH => Inst { value: 0x24002053 },
20158            Opcode::FABSQ => Inst { value: 0x26002053 },
20159            Opcode::FABSS => Inst { value: 0x20002053 },
20160            Opcode::FADDD => Inst { value: 0x2000053 },
20161            Opcode::FADDH => Inst { value: 0x4000053 },
20162            Opcode::FADDQ => Inst { value: 0x6000053 },
20163            Opcode::FADDS => Inst { value: 0x53 },
20164            Opcode::FCLASSD => Inst { value: 0xe2001053 },
20165            Opcode::FCLASSH => Inst { value: 0xe4001053 },
20166            Opcode::FCLASSQ => Inst { value: 0xe6001053 },
20167            Opcode::FCLASSS => Inst { value: 0xe0001053 },
20168            Opcode::FCVTBF16S => Inst { value: 0x44800053 },
20169            Opcode::FCVTDH => Inst { value: 0x42200053 },
20170            Opcode::FCVTDL => Inst { value: 0xd2200053 },
20171            Opcode::FCVTDLU => Inst { value: 0xd2300053 },
20172            Opcode::FCVTDQ => Inst { value: 0x42300053 },
20173            Opcode::FCVTDS => Inst { value: 0x42000053 },
20174            Opcode::FCVTDW => Inst { value: 0xd2000053 },
20175            Opcode::FCVTDWU => Inst { value: 0xd2100053 },
20176            Opcode::FCVTHD => Inst { value: 0x44100053 },
20177            Opcode::FCVTHL => Inst { value: 0xd4200053 },
20178            Opcode::FCVTHLU => Inst { value: 0xd4300053 },
20179            Opcode::FCVTHQ => Inst { value: 0x44300053 },
20180            Opcode::FCVTHS => Inst { value: 0x44000053 },
20181            Opcode::FCVTHW => Inst { value: 0xd4000053 },
20182            Opcode::FCVTHWU => Inst { value: 0xd4100053 },
20183            Opcode::FCVTLD => Inst { value: 0xc2200053 },
20184            Opcode::FCVTLH => Inst { value: 0xc4200053 },
20185            Opcode::FCVTLQ => Inst { value: 0xc6200053 },
20186            Opcode::FCVTLS => Inst { value: 0xc0200053 },
20187            Opcode::FCVTLUD => Inst { value: 0xc2300053 },
20188            Opcode::FCVTLUH => Inst { value: 0xc4300053 },
20189            Opcode::FCVTLUQ => Inst { value: 0xc6300053 },
20190            Opcode::FCVTLUS => Inst { value: 0xc0300053 },
20191            Opcode::FCVTQD => Inst { value: 0x46100053 },
20192            Opcode::FCVTQH => Inst { value: 0x46200053 },
20193            Opcode::FCVTQL => Inst { value: 0xd6200053 },
20194            Opcode::FCVTQLU => Inst { value: 0xd6300053 },
20195            Opcode::FCVTQS => Inst { value: 0x46000053 },
20196            Opcode::FCVTQW => Inst { value: 0xd6000053 },
20197            Opcode::FCVTQWU => Inst { value: 0xd6100053 },
20198            Opcode::FCVTSBF16 => Inst { value: 0x40600053 },
20199            Opcode::FCVTSD => Inst { value: 0x40100053 },
20200            Opcode::FCVTSH => Inst { value: 0x40200053 },
20201            Opcode::FCVTSL => Inst { value: 0xd0200053 },
20202            Opcode::FCVTSLU => Inst { value: 0xd0300053 },
20203            Opcode::FCVTSQ => Inst { value: 0x40300053 },
20204            Opcode::FCVTSW => Inst { value: 0xd0000053 },
20205            Opcode::FCVTSWU => Inst { value: 0xd0100053 },
20206            Opcode::FCVTWD => Inst { value: 0xc2000053 },
20207            Opcode::FCVTWH => Inst { value: 0xc4000053 },
20208            Opcode::FCVTWQ => Inst { value: 0xc6000053 },
20209            Opcode::FCVTWS => Inst { value: 0xc0000053 },
20210            Opcode::FCVTWUD => Inst { value: 0xc2100053 },
20211            Opcode::FCVTWUH => Inst { value: 0xc4100053 },
20212            Opcode::FCVTWUQ => Inst { value: 0xc6100053 },
20213            Opcode::FCVTWUS => Inst { value: 0xc0100053 },
20214            Opcode::FCVTMODWD => Inst { value: 0xc2801053 },
20215            Opcode::FDIVD => Inst { value: 0x1a000053 },
20216            Opcode::FDIVH => Inst { value: 0x1c000053 },
20217            Opcode::FDIVQ => Inst { value: 0x1e000053 },
20218            Opcode::FDIVS => Inst { value: 0x18000053 },
20219            Opcode::FENCE => Inst { value: 0xf },
20220            Opcode::FENCEI => Inst { value: 0x100f },
20221            Opcode::FENCETSO => Inst { value: 0x8330000f },
20222            Opcode::FEQD => Inst { value: 0xa2002053 },
20223            Opcode::FEQH => Inst { value: 0xa4002053 },
20224            Opcode::FEQQ => Inst { value: 0xa6002053 },
20225            Opcode::FEQS => Inst { value: 0xa0002053 },
20226            Opcode::FLD => Inst { value: 0x3007 },
20227            Opcode::FLED => Inst { value: 0xa2000053 },
20228            Opcode::FLEH => Inst { value: 0xa4000053 },
20229            Opcode::FLEQ => Inst { value: 0xa6000053 },
20230            Opcode::FLES => Inst { value: 0xa0000053 },
20231            Opcode::FLEQD => Inst { value: 0xa2004053 },
20232            Opcode::FLEQH => Inst { value: 0xa4004053 },
20233            Opcode::FLEQQ => Inst { value: 0xa6004053 },
20234            Opcode::FLEQS => Inst { value: 0xa0004053 },
20235            Opcode::FLH => Inst { value: 0x1007 },
20236            Opcode::FLID => Inst { value: 0xf2100053 },
20237            Opcode::FLIH => Inst { value: 0xf4100053 },
20238            Opcode::FLIQ => Inst { value: 0xf6100053 },
20239            Opcode::FLIS => Inst { value: 0xf0100053 },
20240            Opcode::FLQ => Inst { value: 0x4007 },
20241            Opcode::FLTD => Inst { value: 0xa2001053 },
20242            Opcode::FLTH => Inst { value: 0xa4001053 },
20243            Opcode::FLTQ => Inst { value: 0xa6001053 },
20244            Opcode::FLTS => Inst { value: 0xa0001053 },
20245            Opcode::FLTQD => Inst { value: 0xa2005053 },
20246            Opcode::FLTQH => Inst { value: 0xa4005053 },
20247            Opcode::FLTQQ => Inst { value: 0xa6005053 },
20248            Opcode::FLTQS => Inst { value: 0xa0005053 },
20249            Opcode::FLW => Inst { value: 0x2007 },
20250            Opcode::FMADDD => Inst { value: 0x2000043 },
20251            Opcode::FMADDH => Inst { value: 0x4000043 },
20252            Opcode::FMADDQ => Inst { value: 0x6000043 },
20253            Opcode::FMADDS => Inst { value: 0x43 },
20254            Opcode::FMAXD => Inst { value: 0x2a001053 },
20255            Opcode::FMAXH => Inst { value: 0x2c001053 },
20256            Opcode::FMAXQ => Inst { value: 0x2e001053 },
20257            Opcode::FMAXS => Inst { value: 0x28001053 },
20258            Opcode::FMAXMD => Inst { value: 0x2a003053 },
20259            Opcode::FMAXMH => Inst { value: 0x2c003053 },
20260            Opcode::FMAXMQ => Inst { value: 0x2e003053 },
20261            Opcode::FMAXMS => Inst { value: 0x28003053 },
20262            Opcode::FMIND => Inst { value: 0x2a000053 },
20263            Opcode::FMINH => Inst { value: 0x2c000053 },
20264            Opcode::FMINQ => Inst { value: 0x2e000053 },
20265            Opcode::FMINS => Inst { value: 0x28000053 },
20266            Opcode::FMINMD => Inst { value: 0x2a002053 },
20267            Opcode::FMINMH => Inst { value: 0x2c002053 },
20268            Opcode::FMINMQ => Inst { value: 0x2e002053 },
20269            Opcode::FMINMS => Inst { value: 0x28002053 },
20270            Opcode::FMSUBD => Inst { value: 0x2000047 },
20271            Opcode::FMSUBH => Inst { value: 0x4000047 },
20272            Opcode::FMSUBQ => Inst { value: 0x6000047 },
20273            Opcode::FMSUBS => Inst { value: 0x47 },
20274            Opcode::FMULD => Inst { value: 0x12000053 },
20275            Opcode::FMULH => Inst { value: 0x14000053 },
20276            Opcode::FMULQ => Inst { value: 0x16000053 },
20277            Opcode::FMULS => Inst { value: 0x10000053 },
20278            Opcode::FMVD => Inst { value: 0x22000053 },
20279            Opcode::FMVDX => Inst { value: 0xf2000053 },
20280            Opcode::FMVH => Inst { value: 0x24000053 },
20281            Opcode::FMVHX => Inst { value: 0xf4000053 },
20282            Opcode::FMVQ => Inst { value: 0x26000053 },
20283            Opcode::FMVS => Inst { value: 0x20000053 },
20284            Opcode::FMVSX => Inst { value: 0xf0000053 },
20285            Opcode::FMVWX => Inst { value: 0xf0000053 },
20286            Opcode::FMVXD => Inst { value: 0xe2000053 },
20287            Opcode::FMVXH => Inst { value: 0xe4000053 },
20288            Opcode::FMVXS => Inst { value: 0xe0000053 },
20289            Opcode::FMVXW => Inst { value: 0xe0000053 },
20290            Opcode::FMVHXD => Inst { value: 0xe2100053 },
20291            Opcode::FMVHXQ => Inst { value: 0xe6100053 },
20292            Opcode::FMVPDX => Inst { value: 0xb2000053 },
20293            Opcode::FMVPQX => Inst { value: 0xb6000053 },
20294            Opcode::FNEGD => Inst { value: 0x22001053 },
20295            Opcode::FNEGH => Inst { value: 0x24001053 },
20296            Opcode::FNEGQ => Inst { value: 0x26001053 },
20297            Opcode::FNEGS => Inst { value: 0x20001053 },
20298            Opcode::FNMADDD => Inst { value: 0x200004f },
20299            Opcode::FNMADDH => Inst { value: 0x400004f },
20300            Opcode::FNMADDQ => Inst { value: 0x600004f },
20301            Opcode::FNMADDS => Inst { value: 0x4f },
20302            Opcode::FNMSUBD => Inst { value: 0x200004b },
20303            Opcode::FNMSUBH => Inst { value: 0x400004b },
20304            Opcode::FNMSUBQ => Inst { value: 0x600004b },
20305            Opcode::FNMSUBS => Inst { value: 0x4b },
20306            Opcode::FRCSR => Inst { value: 0x302073 },
20307            Opcode::FRFLAGS => Inst { value: 0x102073 },
20308            Opcode::FROUNDD => Inst { value: 0x42400053 },
20309            Opcode::FROUNDH => Inst { value: 0x44400053 },
20310            Opcode::FROUNDQ => Inst { value: 0x46400053 },
20311            Opcode::FROUNDS => Inst { value: 0x40400053 },
20312            Opcode::FROUNDNXD => Inst { value: 0x42500053 },
20313            Opcode::FROUNDNXH => Inst { value: 0x44500053 },
20314            Opcode::FROUNDNXQ => Inst { value: 0x46500053 },
20315            Opcode::FROUNDNXS => Inst { value: 0x40500053 },
20316            Opcode::FRRM => Inst { value: 0x202073 },
20317            Opcode::FSCSR => Inst { value: 0x301073 },
20318            Opcode::FSD => Inst { value: 0x3027 },
20319            Opcode::FSFLAGS => Inst { value: 0x101073 },
20320            Opcode::FSFLAGSI => Inst { value: 0x105073 },
20321            Opcode::FSGNJD => Inst { value: 0x22000053 },
20322            Opcode::FSGNJH => Inst { value: 0x24000053 },
20323            Opcode::FSGNJQ => Inst { value: 0x26000053 },
20324            Opcode::FSGNJS => Inst { value: 0x20000053 },
20325            Opcode::FSGNJND => Inst { value: 0x22001053 },
20326            Opcode::FSGNJNH => Inst { value: 0x24001053 },
20327            Opcode::FSGNJNQ => Inst { value: 0x26001053 },
20328            Opcode::FSGNJNS => Inst { value: 0x20001053 },
20329            Opcode::FSGNJXD => Inst { value: 0x22002053 },
20330            Opcode::FSGNJXH => Inst { value: 0x24002053 },
20331            Opcode::FSGNJXQ => Inst { value: 0x26002053 },
20332            Opcode::FSGNJXS => Inst { value: 0x20002053 },
20333            Opcode::FSH => Inst { value: 0x1027 },
20334            Opcode::FSQ => Inst { value: 0x4027 },
20335            Opcode::FSQRTD => Inst { value: 0x5a000053 },
20336            Opcode::FSQRTH => Inst { value: 0x5c000053 },
20337            Opcode::FSQRTQ => Inst { value: 0x5e000053 },
20338            Opcode::FSQRTS => Inst { value: 0x58000053 },
20339            Opcode::FSRM => Inst { value: 0x201073 },
20340            Opcode::FSRMI => Inst { value: 0x205073 },
20341            Opcode::FSUBD => Inst { value: 0xa000053 },
20342            Opcode::FSUBH => Inst { value: 0xc000053 },
20343            Opcode::FSUBQ => Inst { value: 0xe000053 },
20344            Opcode::FSUBS => Inst { value: 0x8000053 },
20345            Opcode::FSW => Inst { value: 0x2027 },
20346            Opcode::HFENCEGVMA => Inst { value: 0x62000073 },
20347            Opcode::HFENCEVVMA => Inst { value: 0x22000073 },
20348            Opcode::HINVALGVMA => Inst { value: 0x66000073 },
20349            Opcode::HINVALVVMA => Inst { value: 0x26000073 },
20350            Opcode::HLVB => Inst { value: 0x60004073 },
20351            Opcode::HLVBU => Inst { value: 0x60104073 },
20352            Opcode::HLVD => Inst { value: 0x6c004073 },
20353            Opcode::HLVH => Inst { value: 0x64004073 },
20354            Opcode::HLVHU => Inst { value: 0x64104073 },
20355            Opcode::HLVW => Inst { value: 0x68004073 },
20356            Opcode::HLVWU => Inst { value: 0x68104073 },
20357            Opcode::HLVXHU => Inst { value: 0x64304073 },
20358            Opcode::HLVXWU => Inst { value: 0x68304073 },
20359            Opcode::HSVB => Inst { value: 0x62004073 },
20360            Opcode::HSVD => Inst { value: 0x6e004073 },
20361            Opcode::HSVH => Inst { value: 0x66004073 },
20362            Opcode::HSVW => Inst { value: 0x6a004073 },
20363            Opcode::J => Inst { value: 0x6f },
20364            Opcode::JAL => Inst { value: 0x6f },
20365            Opcode::JALPSEUDO => Inst { value: 0xef },
20366            Opcode::JALR => Inst { value: 0x67 },
20367            Opcode::JALRPSEUDO => Inst { value: 0xe7 },
20368            Opcode::JR => Inst { value: 0x67 },
20369            Opcode::LB => Inst { value: 0x3 },
20370            Opcode::LBU => Inst { value: 0x4003 },
20371            Opcode::LD => Inst { value: 0x3003 },
20372            Opcode::LH => Inst { value: 0x1003 },
20373            Opcode::LHU => Inst { value: 0x5003 },
20374            Opcode::LPAD => Inst { value: 0x17 },
20375            Opcode::LRD => Inst { value: 0x1000302f },
20376            Opcode::LRW => Inst { value: 0x1000202f },
20377            Opcode::LUI => Inst { value: 0x37 },
20378            Opcode::LW => Inst { value: 0x2003 },
20379            Opcode::LWU => Inst { value: 0x6003 },
20380            Opcode::MAX => Inst { value: 0xa006033 },
20381            Opcode::MAXU => Inst { value: 0xa007033 },
20382            Opcode::MIN => Inst { value: 0xa004033 },
20383            Opcode::MINU => Inst { value: 0xa005033 },
20384            Opcode::MNRET => Inst { value: 0x70200073 },
20385            Opcode::MOPR0 => Inst { value: 0x81c04073 },
20386            Opcode::MOPR1 => Inst { value: 0x81d04073 },
20387            Opcode::MOPR10 => Inst { value: 0x89e04073 },
20388            Opcode::MOPR11 => Inst { value: 0x89f04073 },
20389            Opcode::MOPR12 => Inst { value: 0x8dc04073 },
20390            Opcode::MOPR13 => Inst { value: 0x8dd04073 },
20391            Opcode::MOPR14 => Inst { value: 0x8de04073 },
20392            Opcode::MOPR15 => Inst { value: 0x8df04073 },
20393            Opcode::MOPR16 => Inst { value: 0xc1c04073 },
20394            Opcode::MOPR17 => Inst { value: 0xc1d04073 },
20395            Opcode::MOPR18 => Inst { value: 0xc1e04073 },
20396            Opcode::MOPR19 => Inst { value: 0xc1f04073 },
20397            Opcode::MOPR2 => Inst { value: 0x81e04073 },
20398            Opcode::MOPR20 => Inst { value: 0xc5c04073 },
20399            Opcode::MOPR21 => Inst { value: 0xc5d04073 },
20400            Opcode::MOPR22 => Inst { value: 0xc5e04073 },
20401            Opcode::MOPR23 => Inst { value: 0xc5f04073 },
20402            Opcode::MOPR24 => Inst { value: 0xc9c04073 },
20403            Opcode::MOPR25 => Inst { value: 0xc9d04073 },
20404            Opcode::MOPR26 => Inst { value: 0xc9e04073 },
20405            Opcode::MOPR27 => Inst { value: 0xc9f04073 },
20406            Opcode::MOPR28 => Inst { value: 0xcdc04073 },
20407            Opcode::MOPR29 => Inst { value: 0xcdd04073 },
20408            Opcode::MOPR3 => Inst { value: 0x81f04073 },
20409            Opcode::MOPR30 => Inst { value: 0xcde04073 },
20410            Opcode::MOPR31 => Inst { value: 0xcdf04073 },
20411            Opcode::MOPR4 => Inst { value: 0x85c04073 },
20412            Opcode::MOPR5 => Inst { value: 0x85d04073 },
20413            Opcode::MOPR6 => Inst { value: 0x85e04073 },
20414            Opcode::MOPR7 => Inst { value: 0x85f04073 },
20415            Opcode::MOPR8 => Inst { value: 0x89c04073 },
20416            Opcode::MOPR9 => Inst { value: 0x89d04073 },
20417            Opcode::MOPRN => Inst { value: 0x81c04073 },
20418            Opcode::MOPRR0 => Inst { value: 0x82004073 },
20419            Opcode::MOPRR1 => Inst { value: 0x86004073 },
20420            Opcode::MOPRR2 => Inst { value: 0x8a004073 },
20421            Opcode::MOPRR3 => Inst { value: 0x8e004073 },
20422            Opcode::MOPRR4 => Inst { value: 0xc2004073 },
20423            Opcode::MOPRR5 => Inst { value: 0xc6004073 },
20424            Opcode::MOPRR6 => Inst { value: 0xca004073 },
20425            Opcode::MOPRR7 => Inst { value: 0xce004073 },
20426            Opcode::MOPRRN => Inst { value: 0x82004073 },
20427            Opcode::MRET => Inst { value: 0x30200073 },
20428            Opcode::MUL => Inst { value: 0x2000033 },
20429            Opcode::MULH => Inst { value: 0x2001033 },
20430            Opcode::MULHSU => Inst { value: 0x2002033 },
20431            Opcode::MULHU => Inst { value: 0x2003033 },
20432            Opcode::MULW => Inst { value: 0x200003b },
20433            Opcode::MV => Inst { value: 0x13 },
20434            Opcode::NEG => Inst { value: 0x40000033 },
20435            Opcode::NOP => Inst { value: 0x13 },
20436            Opcode::NTLALL => Inst { value: 0x500033 },
20437            Opcode::NTLP1 => Inst { value: 0x200033 },
20438            Opcode::NTLPALL => Inst { value: 0x300033 },
20439            Opcode::NTLS1 => Inst { value: 0x400033 },
20440            Opcode::OR => Inst { value: 0x6033 },
20441            Opcode::ORCB => Inst { value: 0x28705013 },
20442            Opcode::ORI => Inst { value: 0x6013 },
20443            Opcode::ORN => Inst { value: 0x40006033 },
20444            Opcode::PACK => Inst { value: 0x8004033 },
20445            Opcode::PACKH => Inst { value: 0x8007033 },
20446            Opcode::PACKW => Inst { value: 0x800403b },
20447            Opcode::PAUSE => Inst { value: 0x100000f },
20448            Opcode::PREFETCHI => Inst { value: 0x6013 },
20449            Opcode::PREFETCHR => Inst { value: 0x106013 },
20450            Opcode::PREFETCHW => Inst { value: 0x306013 },
20451            Opcode::RDCYCLE => Inst { value: 0xc0002073 },
20452            Opcode::RDCYCLEH => Inst { value: 0xc8002073 },
20453            Opcode::RDINSTRET => Inst { value: 0xc0202073 },
20454            Opcode::RDINSTRETH => Inst { value: 0xc8202073 },
20455            Opcode::RDTIME => Inst { value: 0xc0102073 },
20456            Opcode::RDTIMEH => Inst { value: 0xc8102073 },
20457            Opcode::REM => Inst { value: 0x2006033 },
20458            Opcode::REMU => Inst { value: 0x2007033 },
20459            Opcode::REMUW => Inst { value: 0x200703b },
20460            Opcode::REMW => Inst { value: 0x200603b },
20461            Opcode::RET => Inst { value: 0x8067 },
20462            Opcode::REV8 => Inst { value: 0x6b805013 },
20463            Opcode::REV8RV32 => Inst { value: 0x69805013 },
20464            Opcode::ROL => Inst { value: 0x60001033 },
20465            Opcode::ROLW => Inst { value: 0x6000103b },
20466            Opcode::ROR => Inst { value: 0x60005033 },
20467            Opcode::RORI => Inst { value: 0x60005013 },
20468            Opcode::RORIRV32 => Inst { value: 0x60005013 },
20469            Opcode::RORIW => Inst { value: 0x6000501b },
20470            Opcode::RORW => Inst { value: 0x6000503b },
20471            Opcode::SB => Inst { value: 0x23 },
20472            Opcode::SBREAK => Inst { value: 0x100073 },
20473            Opcode::SCD => Inst { value: 0x1800302f },
20474            Opcode::SCW => Inst { value: 0x1800202f },
20475            Opcode::SCALL => Inst { value: 0x73 },
20476            Opcode::SCTRCLR => Inst { value: 0x10400073 },
20477            Opcode::SD => Inst { value: 0x3023 },
20478            Opcode::SEQZ => Inst { value: 0x103013 },
20479            Opcode::SEXTB => Inst { value: 0x60401013 },
20480            Opcode::SEXTH => Inst { value: 0x60501013 },
20481            Opcode::SEXTW => Inst { value: 0x1b },
20482            Opcode::SFENCEINVALIR => Inst { value: 0x18100073 },
20483            Opcode::SFENCEVMA => Inst { value: 0x12000073 },
20484            Opcode::SFENCEWINVAL => Inst { value: 0x18000073 },
20485            Opcode::SGTZ => Inst { value: 0x2033 },
20486            Opcode::SH => Inst { value: 0x1023 },
20487            Opcode::SH1ADD => Inst { value: 0x20002033 },
20488            Opcode::SH1ADDUW => Inst { value: 0x2000203b },
20489            Opcode::SH2ADD => Inst { value: 0x20004033 },
20490            Opcode::SH2ADDUW => Inst { value: 0x2000403b },
20491            Opcode::SH3ADD => Inst { value: 0x20006033 },
20492            Opcode::SH3ADDUW => Inst { value: 0x2000603b },
20493            Opcode::SHA256SIG0 => Inst { value: 0x10201013 },
20494            Opcode::SHA256SIG1 => Inst { value: 0x10301013 },
20495            Opcode::SHA256SUM0 => Inst { value: 0x10001013 },
20496            Opcode::SHA256SUM1 => Inst { value: 0x10101013 },
20497            Opcode::SHA512SIG0 => Inst { value: 0x10601013 },
20498            Opcode::SHA512SIG0H => Inst { value: 0x5c000033 },
20499            Opcode::SHA512SIG0L => Inst { value: 0x54000033 },
20500            Opcode::SHA512SIG1 => Inst { value: 0x10701013 },
20501            Opcode::SHA512SIG1H => Inst { value: 0x5e000033 },
20502            Opcode::SHA512SIG1L => Inst { value: 0x56000033 },
20503            Opcode::SHA512SUM0 => Inst { value: 0x10401013 },
20504            Opcode::SHA512SUM0R => Inst { value: 0x50000033 },
20505            Opcode::SHA512SUM1 => Inst { value: 0x10501013 },
20506            Opcode::SHA512SUM1R => Inst { value: 0x52000033 },
20507            Opcode::SINVALVMA => Inst { value: 0x16000073 },
20508            Opcode::SLL => Inst { value: 0x1033 },
20509            Opcode::SLLI => Inst { value: 0x1013 },
20510            Opcode::SLLIRV32 => Inst { value: 0x1013 },
20511            Opcode::SLLIUW => Inst { value: 0x800101b },
20512            Opcode::SLLIW => Inst { value: 0x101b },
20513            Opcode::SLLW => Inst { value: 0x103b },
20514            Opcode::SLT => Inst { value: 0x2033 },
20515            Opcode::SLTI => Inst { value: 0x2013 },
20516            Opcode::SLTIU => Inst { value: 0x3013 },
20517            Opcode::SLTU => Inst { value: 0x3033 },
20518            Opcode::SLTZ => Inst { value: 0x2033 },
20519            Opcode::SM3P0 => Inst { value: 0x10801013 },
20520            Opcode::SM3P1 => Inst { value: 0x10901013 },
20521            Opcode::SM4ED => Inst { value: 0x30000033 },
20522            Opcode::SM4KS => Inst { value: 0x34000033 },
20523            Opcode::SNEZ => Inst { value: 0x3033 },
20524            Opcode::SRA => Inst { value: 0x40005033 },
20525            Opcode::SRAI => Inst { value: 0x40005013 },
20526            Opcode::SRAIRV32 => Inst { value: 0x40005013 },
20527            Opcode::SRAIW => Inst { value: 0x4000501b },
20528            Opcode::SRAW => Inst { value: 0x4000503b },
20529            Opcode::SRET => Inst { value: 0x10200073 },
20530            Opcode::SRL => Inst { value: 0x5033 },
20531            Opcode::SRLI => Inst { value: 0x5013 },
20532            Opcode::SRLIRV32 => Inst { value: 0x5013 },
20533            Opcode::SRLIW => Inst { value: 0x501b },
20534            Opcode::SRLW => Inst { value: 0x503b },
20535            Opcode::SSAMOSWAPD => Inst { value: 0x4800302f },
20536            Opcode::SSAMOSWAPW => Inst { value: 0x4800202f },
20537            Opcode::SSPOPCHKX1 => Inst { value: 0xcdc0c073 },
20538            Opcode::SSPOPCHKX5 => Inst { value: 0xcdc2c073 },
20539            Opcode::SSPUSHX1 => Inst { value: 0xce104073 },
20540            Opcode::SSPUSHX5 => Inst { value: 0xce504073 },
20541            Opcode::SSRDP => Inst { value: 0xcdc04073 },
20542            Opcode::SUB => Inst { value: 0x40000033 },
20543            Opcode::SUBW => Inst { value: 0x4000003b },
20544            Opcode::SW => Inst { value: 0x2023 },
20545            Opcode::UNZIP => Inst { value: 0x8f05013 },
20546            Opcode::VAADDVV => Inst { value: 0x24002057 },
20547            Opcode::VAADDVX => Inst { value: 0x24006057 },
20548            Opcode::VAADDUVV => Inst { value: 0x20002057 },
20549            Opcode::VAADDUVX => Inst { value: 0x20006057 },
20550            Opcode::VADCVIM => Inst { value: 0x40003057 },
20551            Opcode::VADCVVM => Inst { value: 0x40000057 },
20552            Opcode::VADCVXM => Inst { value: 0x40004057 },
20553            Opcode::VADDVI => Inst { value: 0x3057 },
20554            Opcode::VADDVV => Inst { value: 0x57 },
20555            Opcode::VADDVX => Inst { value: 0x4057 },
20556            Opcode::VAESDFVS => Inst { value: 0xa600a077 },
20557            Opcode::VAESDFVV => Inst { value: 0xa200a077 },
20558            Opcode::VAESDMVS => Inst { value: 0xa6002077 },
20559            Opcode::VAESDMVV => Inst { value: 0xa2002077 },
20560            Opcode::VAESEFVS => Inst { value: 0xa601a077 },
20561            Opcode::VAESEFVV => Inst { value: 0xa201a077 },
20562            Opcode::VAESEMVS => Inst { value: 0xa6012077 },
20563            Opcode::VAESEMVV => Inst { value: 0xa2012077 },
20564            Opcode::VAESKF1VI => Inst { value: 0x8a002077 },
20565            Opcode::VAESKF2VI => Inst { value: 0xaa002077 },
20566            Opcode::VAESZVS => Inst { value: 0xa603a077 },
20567            Opcode::VANDVI => Inst { value: 0x24003057 },
20568            Opcode::VANDVV => Inst { value: 0x24000057 },
20569            Opcode::VANDVX => Inst { value: 0x24004057 },
20570            Opcode::VANDNVV => Inst { value: 0x4000057 },
20571            Opcode::VANDNVX => Inst { value: 0x4004057 },
20572            Opcode::VASUBVV => Inst { value: 0x2c002057 },
20573            Opcode::VASUBVX => Inst { value: 0x2c006057 },
20574            Opcode::VASUBUVV => Inst { value: 0x28002057 },
20575            Opcode::VASUBUVX => Inst { value: 0x28006057 },
20576            Opcode::VBREV8V => Inst { value: 0x48042057 },
20577            Opcode::VBREVV => Inst { value: 0x48052057 },
20578            Opcode::VCLMULVV => Inst { value: 0x30002057 },
20579            Opcode::VCLMULVX => Inst { value: 0x30006057 },
20580            Opcode::VCLMULHVV => Inst { value: 0x34002057 },
20581            Opcode::VCLMULHVX => Inst { value: 0x34006057 },
20582            Opcode::VCLZV => Inst { value: 0x48062057 },
20583            Opcode::VCOMPRESSVM => Inst { value: 0x5e002057 },
20584            Opcode::VCPOPM => Inst { value: 0x40082057 },
20585            Opcode::VCPOPV => Inst { value: 0x48072057 },
20586            Opcode::VCTZV => Inst { value: 0x4806a057 },
20587            Opcode::VDIVVV => Inst { value: 0x84002057 },
20588            Opcode::VDIVVX => Inst { value: 0x84006057 },
20589            Opcode::VDIVUVV => Inst { value: 0x80002057 },
20590            Opcode::VDIVUVX => Inst { value: 0x80006057 },
20591            Opcode::VFADDVF => Inst { value: 0x5057 },
20592            Opcode::VFADDVV => Inst { value: 0x1057 },
20593            Opcode::VFCLASSV => Inst { value: 0x4c081057 },
20594            Opcode::VFCVTFXV => Inst { value: 0x48019057 },
20595            Opcode::VFCVTFXUV => Inst { value: 0x48011057 },
20596            Opcode::VFCVTRTZXFV => Inst { value: 0x48039057 },
20597            Opcode::VFCVTRTZXUFV => Inst { value: 0x48031057 },
20598            Opcode::VFCVTXFV => Inst { value: 0x48009057 },
20599            Opcode::VFCVTXUFV => Inst { value: 0x48001057 },
20600            Opcode::VFDIVVF => Inst { value: 0x80005057 },
20601            Opcode::VFDIVVV => Inst { value: 0x80001057 },
20602            Opcode::VFIRSTM => Inst { value: 0x4008a057 },
20603            Opcode::VFMACCVF => Inst { value: 0xb0005057 },
20604            Opcode::VFMACCVV => Inst { value: 0xb0001057 },
20605            Opcode::VFMADDVF => Inst { value: 0xa0005057 },
20606            Opcode::VFMADDVV => Inst { value: 0xa0001057 },
20607            Opcode::VFMAXVF => Inst { value: 0x18005057 },
20608            Opcode::VFMAXVV => Inst { value: 0x18001057 },
20609            Opcode::VFMERGEVFM => Inst { value: 0x5c005057 },
20610            Opcode::VFMINVF => Inst { value: 0x10005057 },
20611            Opcode::VFMINVV => Inst { value: 0x10001057 },
20612            Opcode::VFMSACVF => Inst { value: 0xb8005057 },
20613            Opcode::VFMSACVV => Inst { value: 0xb8001057 },
20614            Opcode::VFMSUBVF => Inst { value: 0xa8005057 },
20615            Opcode::VFMSUBVV => Inst { value: 0xa8001057 },
20616            Opcode::VFMULVF => Inst { value: 0x90005057 },
20617            Opcode::VFMULVV => Inst { value: 0x90001057 },
20618            Opcode::VFMVFS => Inst { value: 0x42001057 },
20619            Opcode::VFMVSF => Inst { value: 0x42005057 },
20620            Opcode::VFMVVF => Inst { value: 0x5e005057 },
20621            Opcode::VFNCVTFFW => Inst { value: 0x480a1057 },
20622            Opcode::VFNCVTFXW => Inst { value: 0x48099057 },
20623            Opcode::VFNCVTFXUW => Inst { value: 0x48091057 },
20624            Opcode::VFNCVTRODFFW => Inst { value: 0x480a9057 },
20625            Opcode::VFNCVTRTZXFW => Inst { value: 0x480b9057 },
20626            Opcode::VFNCVTRTZXUFW => Inst { value: 0x480b1057 },
20627            Opcode::VFNCVTXFW => Inst { value: 0x48089057 },
20628            Opcode::VFNCVTXUFW => Inst { value: 0x48081057 },
20629            Opcode::VFNCVTBF16FFW => Inst { value: 0x480e9057 },
20630            Opcode::VFNMACCVF => Inst { value: 0xb4005057 },
20631            Opcode::VFNMACCVV => Inst { value: 0xb4001057 },
20632            Opcode::VFNMADDVF => Inst { value: 0xa4005057 },
20633            Opcode::VFNMADDVV => Inst { value: 0xa4001057 },
20634            Opcode::VFNMSACVF => Inst { value: 0xbc005057 },
20635            Opcode::VFNMSACVV => Inst { value: 0xbc001057 },
20636            Opcode::VFNMSUBVF => Inst { value: 0xac005057 },
20637            Opcode::VFNMSUBVV => Inst { value: 0xac001057 },
20638            Opcode::VFRDIVVF => Inst { value: 0x84005057 },
20639            Opcode::VFREC7V => Inst { value: 0x4c029057 },
20640            Opcode::VFREDMAXVS => Inst { value: 0x1c001057 },
20641            Opcode::VFREDMINVS => Inst { value: 0x14001057 },
20642            Opcode::VFREDOSUMVS => Inst { value: 0xc001057 },
20643            Opcode::VFREDSUMVS => Inst { value: 0x4001057 },
20644            Opcode::VFREDUSUMVS => Inst { value: 0x4001057 },
20645            Opcode::VFRSQRT7V => Inst { value: 0x4c021057 },
20646            Opcode::VFRSUBVF => Inst { value: 0x9c005057 },
20647            Opcode::VFSGNJVF => Inst { value: 0x20005057 },
20648            Opcode::VFSGNJVV => Inst { value: 0x20001057 },
20649            Opcode::VFSGNJNVF => Inst { value: 0x24005057 },
20650            Opcode::VFSGNJNVV => Inst { value: 0x24001057 },
20651            Opcode::VFSGNJXVF => Inst { value: 0x28005057 },
20652            Opcode::VFSGNJXVV => Inst { value: 0x28001057 },
20653            Opcode::VFSLIDE1DOWNVF => Inst { value: 0x3c005057 },
20654            Opcode::VFSLIDE1UPVF => Inst { value: 0x38005057 },
20655            Opcode::VFSQRTV => Inst { value: 0x4c001057 },
20656            Opcode::VFSUBVF => Inst { value: 0x8005057 },
20657            Opcode::VFSUBVV => Inst { value: 0x8001057 },
20658            Opcode::VFWADDVF => Inst { value: 0xc0005057 },
20659            Opcode::VFWADDVV => Inst { value: 0xc0001057 },
20660            Opcode::VFWADDWF => Inst { value: 0xd0005057 },
20661            Opcode::VFWADDWV => Inst { value: 0xd0001057 },
20662            Opcode::VFWCVTFFV => Inst { value: 0x48061057 },
20663            Opcode::VFWCVTFXV => Inst { value: 0x48059057 },
20664            Opcode::VFWCVTFXUV => Inst { value: 0x48051057 },
20665            Opcode::VFWCVTRTZXFV => Inst { value: 0x48079057 },
20666            Opcode::VFWCVTRTZXUFV => Inst { value: 0x48071057 },
20667            Opcode::VFWCVTXFV => Inst { value: 0x48049057 },
20668            Opcode::VFWCVTXUFV => Inst { value: 0x48041057 },
20669            Opcode::VFWCVTBF16FFV => Inst { value: 0x48069057 },
20670            Opcode::VFWMACCVF => Inst { value: 0xf0005057 },
20671            Opcode::VFWMACCVV => Inst { value: 0xf0001057 },
20672            Opcode::VFWMACCBF16VF => Inst { value: 0xec005057 },
20673            Opcode::VFWMACCBF16VV => Inst { value: 0xec001057 },
20674            Opcode::VFWMSACVF => Inst { value: 0xf8005057 },
20675            Opcode::VFWMSACVV => Inst { value: 0xf8001057 },
20676            Opcode::VFWMULVF => Inst { value: 0xe0005057 },
20677            Opcode::VFWMULVV => Inst { value: 0xe0001057 },
20678            Opcode::VFWNMACCVF => Inst { value: 0xf4005057 },
20679            Opcode::VFWNMACCVV => Inst { value: 0xf4001057 },
20680            Opcode::VFWNMSACVF => Inst { value: 0xfc005057 },
20681            Opcode::VFWNMSACVV => Inst { value: 0xfc001057 },
20682            Opcode::VFWREDOSUMVS => Inst { value: 0xcc001057 },
20683            Opcode::VFWREDSUMVS => Inst { value: 0xc4001057 },
20684            Opcode::VFWREDUSUMVS => Inst { value: 0xc4001057 },
20685            Opcode::VFWSUBVF => Inst { value: 0xc8005057 },
20686            Opcode::VFWSUBVV => Inst { value: 0xc8001057 },
20687            Opcode::VFWSUBWF => Inst { value: 0xd8005057 },
20688            Opcode::VFWSUBWV => Inst { value: 0xd8001057 },
20689            Opcode::VGHSHVV => Inst { value: 0xb2002077 },
20690            Opcode::VGMULVV => Inst { value: 0xa208a077 },
20691            Opcode::VIDV => Inst { value: 0x5008a057 },
20692            Opcode::VIOTAM => Inst { value: 0x50082057 },
20693            Opcode::VL1RV => Inst { value: 0x2800007 },
20694            Opcode::VL1RE16V => Inst { value: 0x2805007 },
20695            Opcode::VL1RE32V => Inst { value: 0x2806007 },
20696            Opcode::VL1RE64V => Inst { value: 0x2807007 },
20697            Opcode::VL1RE8V => Inst { value: 0x2800007 },
20698            Opcode::VL2RV => Inst { value: 0x22800007 },
20699            Opcode::VL2RE16V => Inst { value: 0x22805007 },
20700            Opcode::VL2RE32V => Inst { value: 0x22806007 },
20701            Opcode::VL2RE64V => Inst { value: 0x22807007 },
20702            Opcode::VL2RE8V => Inst { value: 0x22800007 },
20703            Opcode::VL4RV => Inst { value: 0x62800007 },
20704            Opcode::VL4RE16V => Inst { value: 0x62805007 },
20705            Opcode::VL4RE32V => Inst { value: 0x62806007 },
20706            Opcode::VL4RE64V => Inst { value: 0x62807007 },
20707            Opcode::VL4RE8V => Inst { value: 0x62800007 },
20708            Opcode::VL8RV => Inst { value: 0xe2800007 },
20709            Opcode::VL8RE16V => Inst { value: 0xe2805007 },
20710            Opcode::VL8RE32V => Inst { value: 0xe2806007 },
20711            Opcode::VL8RE64V => Inst { value: 0xe2807007 },
20712            Opcode::VL8RE8V => Inst { value: 0xe2800007 },
20713            Opcode::VLE16V => Inst { value: 0x5007 },
20714            Opcode::VLE16FFV => Inst { value: 0x1005007 },
20715            Opcode::VLE1V => Inst { value: 0x2b00007 },
20716            Opcode::VLE32V => Inst { value: 0x6007 },
20717            Opcode::VLE32FFV => Inst { value: 0x1006007 },
20718            Opcode::VLE64V => Inst { value: 0x7007 },
20719            Opcode::VLE64FFV => Inst { value: 0x1007007 },
20720            Opcode::VLE8V => Inst { value: 0x7 },
20721            Opcode::VLE8FFV => Inst { value: 0x1000007 },
20722            Opcode::VLMV => Inst { value: 0x2b00007 },
20723            Opcode::VLOXEI16V => Inst { value: 0xc005007 },
20724            Opcode::VLOXEI32V => Inst { value: 0xc006007 },
20725            Opcode::VLOXEI64V => Inst { value: 0xc007007 },
20726            Opcode::VLOXEI8V => Inst { value: 0xc000007 },
20727            Opcode::VLSE16V => Inst { value: 0x8005007 },
20728            Opcode::VLSE32V => Inst { value: 0x8006007 },
20729            Opcode::VLSE64V => Inst { value: 0x8007007 },
20730            Opcode::VLSE8V => Inst { value: 0x8000007 },
20731            Opcode::VLUXEI16V => Inst { value: 0x4005007 },
20732            Opcode::VLUXEI32V => Inst { value: 0x4006007 },
20733            Opcode::VLUXEI64V => Inst { value: 0x4007007 },
20734            Opcode::VLUXEI8V => Inst { value: 0x4000007 },
20735            Opcode::VMACCVV => Inst { value: 0xb4002057 },
20736            Opcode::VMACCVX => Inst { value: 0xb4006057 },
20737            Opcode::VMADCVI => Inst { value: 0x46003057 },
20738            Opcode::VMADCVIM => Inst { value: 0x44003057 },
20739            Opcode::VMADCVV => Inst { value: 0x46000057 },
20740            Opcode::VMADCVVM => Inst { value: 0x44000057 },
20741            Opcode::VMADCVX => Inst { value: 0x46004057 },
20742            Opcode::VMADCVXM => Inst { value: 0x44004057 },
20743            Opcode::VMADDVV => Inst { value: 0xa4002057 },
20744            Opcode::VMADDVX => Inst { value: 0xa4006057 },
20745            Opcode::VMANDMM => Inst { value: 0x66002057 },
20746            Opcode::VMANDNMM => Inst { value: 0x62002057 },
20747            Opcode::VMANDNOTMM => Inst { value: 0x60002057 },
20748            Opcode::VMAXVV => Inst { value: 0x1c000057 },
20749            Opcode::VMAXVX => Inst { value: 0x1c004057 },
20750            Opcode::VMAXUVV => Inst { value: 0x18000057 },
20751            Opcode::VMAXUVX => Inst { value: 0x18004057 },
20752            Opcode::VMERGEVIM => Inst { value: 0x5c003057 },
20753            Opcode::VMERGEVVM => Inst { value: 0x5c000057 },
20754            Opcode::VMERGEVXM => Inst { value: 0x5c004057 },
20755            Opcode::VMFEQVF => Inst { value: 0x60005057 },
20756            Opcode::VMFEQVV => Inst { value: 0x60001057 },
20757            Opcode::VMFGEVF => Inst { value: 0x7c005057 },
20758            Opcode::VMFGTVF => Inst { value: 0x74005057 },
20759            Opcode::VMFLEVF => Inst { value: 0x64005057 },
20760            Opcode::VMFLEVV => Inst { value: 0x64001057 },
20761            Opcode::VMFLTVF => Inst { value: 0x6c005057 },
20762            Opcode::VMFLTVV => Inst { value: 0x6c001057 },
20763            Opcode::VMFNEVF => Inst { value: 0x70005057 },
20764            Opcode::VMFNEVV => Inst { value: 0x70001057 },
20765            Opcode::VMINVV => Inst { value: 0x14000057 },
20766            Opcode::VMINVX => Inst { value: 0x14004057 },
20767            Opcode::VMINUVV => Inst { value: 0x10000057 },
20768            Opcode::VMINUVX => Inst { value: 0x10004057 },
20769            Opcode::VMNANDMM => Inst { value: 0x76002057 },
20770            Opcode::VMNORMM => Inst { value: 0x7a002057 },
20771            Opcode::VMORMM => Inst { value: 0x6a002057 },
20772            Opcode::VMORNMM => Inst { value: 0x72002057 },
20773            Opcode::VMORNOTMM => Inst { value: 0x70002057 },
20774            Opcode::VMSBCVV => Inst { value: 0x4e000057 },
20775            Opcode::VMSBCVVM => Inst { value: 0x4c000057 },
20776            Opcode::VMSBCVX => Inst { value: 0x4e004057 },
20777            Opcode::VMSBCVXM => Inst { value: 0x4c004057 },
20778            Opcode::VMSBFM => Inst { value: 0x5000a057 },
20779            Opcode::VMSEQVI => Inst { value: 0x60003057 },
20780            Opcode::VMSEQVV => Inst { value: 0x60000057 },
20781            Opcode::VMSEQVX => Inst { value: 0x60004057 },
20782            Opcode::VMSGTVI => Inst { value: 0x7c003057 },
20783            Opcode::VMSGTVX => Inst { value: 0x7c004057 },
20784            Opcode::VMSGTUVI => Inst { value: 0x78003057 },
20785            Opcode::VMSGTUVX => Inst { value: 0x78004057 },
20786            Opcode::VMSIFM => Inst { value: 0x5001a057 },
20787            Opcode::VMSLEVI => Inst { value: 0x74003057 },
20788            Opcode::VMSLEVV => Inst { value: 0x74000057 },
20789            Opcode::VMSLEVX => Inst { value: 0x74004057 },
20790            Opcode::VMSLEUVI => Inst { value: 0x70003057 },
20791            Opcode::VMSLEUVV => Inst { value: 0x70000057 },
20792            Opcode::VMSLEUVX => Inst { value: 0x70004057 },
20793            Opcode::VMSLTVV => Inst { value: 0x6c000057 },
20794            Opcode::VMSLTVX => Inst { value: 0x6c004057 },
20795            Opcode::VMSLTUVV => Inst { value: 0x68000057 },
20796            Opcode::VMSLTUVX => Inst { value: 0x68004057 },
20797            Opcode::VMSNEVI => Inst { value: 0x64003057 },
20798            Opcode::VMSNEVV => Inst { value: 0x64000057 },
20799            Opcode::VMSNEVX => Inst { value: 0x64004057 },
20800            Opcode::VMSOFM => Inst { value: 0x50012057 },
20801            Opcode::VMULVV => Inst { value: 0x94002057 },
20802            Opcode::VMULVX => Inst { value: 0x94006057 },
20803            Opcode::VMULHVV => Inst { value: 0x9c002057 },
20804            Opcode::VMULHVX => Inst { value: 0x9c006057 },
20805            Opcode::VMULHSUVV => Inst { value: 0x98002057 },
20806            Opcode::VMULHSUVX => Inst { value: 0x98006057 },
20807            Opcode::VMULHUVV => Inst { value: 0x90002057 },
20808            Opcode::VMULHUVX => Inst { value: 0x90006057 },
20809            Opcode::VMV1RV => Inst { value: 0x9e003057 },
20810            Opcode::VMV2RV => Inst { value: 0x9e00b057 },
20811            Opcode::VMV4RV => Inst { value: 0x9e01b057 },
20812            Opcode::VMV8RV => Inst { value: 0x9e03b057 },
20813            Opcode::VMVSX => Inst { value: 0x42006057 },
20814            Opcode::VMVVI => Inst { value: 0x5e003057 },
20815            Opcode::VMVVV => Inst { value: 0x5e000057 },
20816            Opcode::VMVVX => Inst { value: 0x5e004057 },
20817            Opcode::VMVXS => Inst { value: 0x42002057 },
20818            Opcode::VMXNORMM => Inst { value: 0x7e002057 },
20819            Opcode::VMXORMM => Inst { value: 0x6e002057 },
20820            Opcode::VNCLIPWI => Inst { value: 0xbc003057 },
20821            Opcode::VNCLIPWV => Inst { value: 0xbc000057 },
20822            Opcode::VNCLIPWX => Inst { value: 0xbc004057 },
20823            Opcode::VNCLIPUWI => Inst { value: 0xb8003057 },
20824            Opcode::VNCLIPUWV => Inst { value: 0xb8000057 },
20825            Opcode::VNCLIPUWX => Inst { value: 0xb8004057 },
20826            Opcode::VNMSACVV => Inst { value: 0xbc002057 },
20827            Opcode::VNMSACVX => Inst { value: 0xbc006057 },
20828            Opcode::VNMSUBVV => Inst { value: 0xac002057 },
20829            Opcode::VNMSUBVX => Inst { value: 0xac006057 },
20830            Opcode::VNSRAWI => Inst { value: 0xb4003057 },
20831            Opcode::VNSRAWV => Inst { value: 0xb4000057 },
20832            Opcode::VNSRAWX => Inst { value: 0xb4004057 },
20833            Opcode::VNSRLWI => Inst { value: 0xb0003057 },
20834            Opcode::VNSRLWV => Inst { value: 0xb0000057 },
20835            Opcode::VNSRLWX => Inst { value: 0xb0004057 },
20836            Opcode::VORVI => Inst { value: 0x28003057 },
20837            Opcode::VORVV => Inst { value: 0x28000057 },
20838            Opcode::VORVX => Inst { value: 0x28004057 },
20839            Opcode::VPOPCM => Inst { value: 0x40082057 },
20840            Opcode::VREDANDVS => Inst { value: 0x4002057 },
20841            Opcode::VREDMAXVS => Inst { value: 0x1c002057 },
20842            Opcode::VREDMAXUVS => Inst { value: 0x18002057 },
20843            Opcode::VREDMINVS => Inst { value: 0x14002057 },
20844            Opcode::VREDMINUVS => Inst { value: 0x10002057 },
20845            Opcode::VREDORVS => Inst { value: 0x8002057 },
20846            Opcode::VREDSUMVS => Inst { value: 0x2057 },
20847            Opcode::VREDXORVS => Inst { value: 0xc002057 },
20848            Opcode::VREMVV => Inst { value: 0x8c002057 },
20849            Opcode::VREMVX => Inst { value: 0x8c006057 },
20850            Opcode::VREMUVV => Inst { value: 0x88002057 },
20851            Opcode::VREMUVX => Inst { value: 0x88006057 },
20852            Opcode::VREV8V => Inst { value: 0x4804a057 },
20853            Opcode::VRGATHERVI => Inst { value: 0x30003057 },
20854            Opcode::VRGATHERVV => Inst { value: 0x30000057 },
20855            Opcode::VRGATHERVX => Inst { value: 0x30004057 },
20856            Opcode::VRGATHEREI16VV => Inst { value: 0x38000057 },
20857            Opcode::VROLVV => Inst { value: 0x54000057 },
20858            Opcode::VROLVX => Inst { value: 0x54004057 },
20859            Opcode::VRORVI => Inst { value: 0x50003057 },
20860            Opcode::VRORVV => Inst { value: 0x50000057 },
20861            Opcode::VRORVX => Inst { value: 0x50004057 },
20862            Opcode::VRSUBVI => Inst { value: 0xc003057 },
20863            Opcode::VRSUBVX => Inst { value: 0xc004057 },
20864            Opcode::VS1RV => Inst { value: 0x2800027 },
20865            Opcode::VS2RV => Inst { value: 0x22800027 },
20866            Opcode::VS4RV => Inst { value: 0x62800027 },
20867            Opcode::VS8RV => Inst { value: 0xe2800027 },
20868            Opcode::VSADDVI => Inst { value: 0x84003057 },
20869            Opcode::VSADDVV => Inst { value: 0x84000057 },
20870            Opcode::VSADDVX => Inst { value: 0x84004057 },
20871            Opcode::VSADDUVI => Inst { value: 0x80003057 },
20872            Opcode::VSADDUVV => Inst { value: 0x80000057 },
20873            Opcode::VSADDUVX => Inst { value: 0x80004057 },
20874            Opcode::VSBCVVM => Inst { value: 0x48000057 },
20875            Opcode::VSBCVXM => Inst { value: 0x48004057 },
20876            Opcode::VSE16V => Inst { value: 0x5027 },
20877            Opcode::VSE1V => Inst { value: 0x2b00027 },
20878            Opcode::VSE32V => Inst { value: 0x6027 },
20879            Opcode::VSE64V => Inst { value: 0x7027 },
20880            Opcode::VSE8V => Inst { value: 0x27 },
20881            Opcode::VSETIVLI => Inst { value: 0xc0007057 },
20882            Opcode::VSETVL => Inst { value: 0x80007057 },
20883            Opcode::VSETVLI => Inst { value: 0x7057 },
20884            Opcode::VSEXTVF2 => Inst { value: 0x4803a057 },
20885            Opcode::VSEXTVF4 => Inst { value: 0x4802a057 },
20886            Opcode::VSEXTVF8 => Inst { value: 0x4801a057 },
20887            Opcode::VSHA2CHVV => Inst { value: 0xba002077 },
20888            Opcode::VSHA2CLVV => Inst { value: 0xbe002077 },
20889            Opcode::VSHA2MSVV => Inst { value: 0xb6002077 },
20890            Opcode::VSLIDE1DOWNVX => Inst { value: 0x3c006057 },
20891            Opcode::VSLIDE1UPVX => Inst { value: 0x38006057 },
20892            Opcode::VSLIDEDOWNVI => Inst { value: 0x3c003057 },
20893            Opcode::VSLIDEDOWNVX => Inst { value: 0x3c004057 },
20894            Opcode::VSLIDEUPVI => Inst { value: 0x38003057 },
20895            Opcode::VSLIDEUPVX => Inst { value: 0x38004057 },
20896            Opcode::VSLLVI => Inst { value: 0x94003057 },
20897            Opcode::VSLLVV => Inst { value: 0x94000057 },
20898            Opcode::VSLLVX => Inst { value: 0x94004057 },
20899            Opcode::VSM3CVI => Inst { value: 0xae002077 },
20900            Opcode::VSM3MEVV => Inst { value: 0x82002077 },
20901            Opcode::VSM4KVI => Inst { value: 0x86002077 },
20902            Opcode::VSM4RVS => Inst { value: 0xa6082077 },
20903            Opcode::VSM4RVV => Inst { value: 0xa2082077 },
20904            Opcode::VSMV => Inst { value: 0x2b00027 },
20905            Opcode::VSMULVV => Inst { value: 0x9c000057 },
20906            Opcode::VSMULVX => Inst { value: 0x9c004057 },
20907            Opcode::VSOXEI16V => Inst { value: 0xc005027 },
20908            Opcode::VSOXEI32V => Inst { value: 0xc006027 },
20909            Opcode::VSOXEI64V => Inst { value: 0xc007027 },
20910            Opcode::VSOXEI8V => Inst { value: 0xc000027 },
20911            Opcode::VSRAVI => Inst { value: 0xa4003057 },
20912            Opcode::VSRAVV => Inst { value: 0xa4000057 },
20913            Opcode::VSRAVX => Inst { value: 0xa4004057 },
20914            Opcode::VSRLVI => Inst { value: 0xa0003057 },
20915            Opcode::VSRLVV => Inst { value: 0xa0000057 },
20916            Opcode::VSRLVX => Inst { value: 0xa0004057 },
20917            Opcode::VSSE16V => Inst { value: 0x8005027 },
20918            Opcode::VSSE32V => Inst { value: 0x8006027 },
20919            Opcode::VSSE64V => Inst { value: 0x8007027 },
20920            Opcode::VSSE8V => Inst { value: 0x8000027 },
20921            Opcode::VSSRAVI => Inst { value: 0xac003057 },
20922            Opcode::VSSRAVV => Inst { value: 0xac000057 },
20923            Opcode::VSSRAVX => Inst { value: 0xac004057 },
20924            Opcode::VSSRLVI => Inst { value: 0xa8003057 },
20925            Opcode::VSSRLVV => Inst { value: 0xa8000057 },
20926            Opcode::VSSRLVX => Inst { value: 0xa8004057 },
20927            Opcode::VSSUBVV => Inst { value: 0x8c000057 },
20928            Opcode::VSSUBVX => Inst { value: 0x8c004057 },
20929            Opcode::VSSUBUVV => Inst { value: 0x88000057 },
20930            Opcode::VSSUBUVX => Inst { value: 0x88004057 },
20931            Opcode::VSUBVV => Inst { value: 0x8000057 },
20932            Opcode::VSUBVX => Inst { value: 0x8004057 },
20933            Opcode::VSUXEI16V => Inst { value: 0x4005027 },
20934            Opcode::VSUXEI32V => Inst { value: 0x4006027 },
20935            Opcode::VSUXEI64V => Inst { value: 0x4007027 },
20936            Opcode::VSUXEI8V => Inst { value: 0x4000027 },
20937            Opcode::VWADDVV => Inst { value: 0xc4002057 },
20938            Opcode::VWADDVX => Inst { value: 0xc4006057 },
20939            Opcode::VWADDWV => Inst { value: 0xd4002057 },
20940            Opcode::VWADDWX => Inst { value: 0xd4006057 },
20941            Opcode::VWADDUVV => Inst { value: 0xc0002057 },
20942            Opcode::VWADDUVX => Inst { value: 0xc0006057 },
20943            Opcode::VWADDUWV => Inst { value: 0xd0002057 },
20944            Opcode::VWADDUWX => Inst { value: 0xd0006057 },
20945            Opcode::VWMACCVV => Inst { value: 0xf4002057 },
20946            Opcode::VWMACCVX => Inst { value: 0xf4006057 },
20947            Opcode::VWMACCSUVV => Inst { value: 0xfc002057 },
20948            Opcode::VWMACCSUVX => Inst { value: 0xfc006057 },
20949            Opcode::VWMACCUVV => Inst { value: 0xf0002057 },
20950            Opcode::VWMACCUVX => Inst { value: 0xf0006057 },
20951            Opcode::VWMACCUSVX => Inst { value: 0xf8006057 },
20952            Opcode::VWMULVV => Inst { value: 0xec002057 },
20953            Opcode::VWMULVX => Inst { value: 0xec006057 },
20954            Opcode::VWMULSUVV => Inst { value: 0xe8002057 },
20955            Opcode::VWMULSUVX => Inst { value: 0xe8006057 },
20956            Opcode::VWMULUVV => Inst { value: 0xe0002057 },
20957            Opcode::VWMULUVX => Inst { value: 0xe0006057 },
20958            Opcode::VWREDSUMVS => Inst { value: 0xc4000057 },
20959            Opcode::VWREDSUMUVS => Inst { value: 0xc0000057 },
20960            Opcode::VWSLLVI => Inst { value: 0xd4003057 },
20961            Opcode::VWSLLVV => Inst { value: 0xd4000057 },
20962            Opcode::VWSLLVX => Inst { value: 0xd4004057 },
20963            Opcode::VWSUBVV => Inst { value: 0xcc002057 },
20964            Opcode::VWSUBVX => Inst { value: 0xcc006057 },
20965            Opcode::VWSUBWV => Inst { value: 0xdc002057 },
20966            Opcode::VWSUBWX => Inst { value: 0xdc006057 },
20967            Opcode::VWSUBUVV => Inst { value: 0xc8002057 },
20968            Opcode::VWSUBUVX => Inst { value: 0xc8006057 },
20969            Opcode::VWSUBUWV => Inst { value: 0xd8002057 },
20970            Opcode::VWSUBUWX => Inst { value: 0xd8006057 },
20971            Opcode::VXORVI => Inst { value: 0x2c003057 },
20972            Opcode::VXORVV => Inst { value: 0x2c000057 },
20973            Opcode::VXORVX => Inst { value: 0x2c004057 },
20974            Opcode::VZEXTVF2 => Inst { value: 0x48032057 },
20975            Opcode::VZEXTVF4 => Inst { value: 0x48022057 },
20976            Opcode::VZEXTVF8 => Inst { value: 0x48012057 },
20977            Opcode::WFI => Inst { value: 0x10500073 },
20978            Opcode::WRSNTO => Inst { value: 0xd00073 },
20979            Opcode::WRSSTO => Inst { value: 0x1d00073 },
20980            Opcode::XNOR => Inst { value: 0x40004033 },
20981            Opcode::XOR => Inst { value: 0x4033 },
20982            Opcode::XORI => Inst { value: 0x4013 },
20983            Opcode::XPERM4 => Inst { value: 0x28002033 },
20984            Opcode::XPERM8 => Inst { value: 0x28004033 },
20985            Opcode::ZEXTB => Inst { value: 0xff07013 },
20986            Opcode::ZEXTH => Inst { value: 0x800403b },
20987            Opcode::ZEXTHRV32 => Inst { value: 0x8004033 },
20988            Opcode::ZEXTW => Inst { value: 0x800003b },
20989            Opcode::ZIP => Inst { value: 0x8f01013 },
20990        }
20991    }
20992}
20993
20994#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
20995pub enum Encoding {
20996    Bimm12HiRs1Bimm12lo,
20997    Bimm12HiRs1Rs2Bimm12lo,
20998    Bimm12HiRs2Bimm12lo,
20999    Bimm12HiRs2Rs1Bimm12lo,
21000    CImm12,
21001    CIndex,
21002    CMopT,
21003    CNzimm10hiCNzimm10lo,
21004    CNzimm6hiCNzimm6lo,
21005    CRlistCSpimm,
21006    CRs1N0,
21007    CRs2CUimm8spS,
21008    CRs2CUimm9spS,
21009    CSreg1CSreg2,
21010    CsrZimm5,
21011    Empty,
21012    FmPredSuccRs1Rd,
21013    Imm12HiRs1Rs2Imm12lo,
21014    Imm12Rs1Rd,
21015    Imm20,
21016    Jimm20,
21017    MopRT30MopRT2726MopRT2120RdRs1,
21018    MopRrT30MopRrT2726RdRs1Rs2,
21019    NfVmRs1Vd,
21020    NfVmRs1Vs3,
21021    NfVmRs2Rs1Vd,
21022    NfVmRs2Rs1Vs3,
21023    NfVmVs2Rs1Vd,
21024    NfVmVs2Rs1Vs3,
21025    Rd,
21026    RdCUimm8sphiCUimm8splo,
21027    RdCUimm9sphiCUimm9splo,
21028    RdCsr,
21029    RdCsrZimm5,
21030    RdImm20,
21031    RdJimm20,
21032    RdN0,
21033    RdN0CImm6loCImm6hi,
21034    RdN0CRs2N0,
21035    RdN0CUimm8sphiCUimm8splo,
21036    RdN0CUimm9sphiCUimm9splo,
21037    RdN2CNzimm18hiCNzimm18lo,
21038    RdPCNzuimm10,
21039    RdPRs1PCUimm1,
21040    RdPRs1PCUimm2,
21041    RdPRs1PCUimm7loCUimm7hi,
21042    RdPRs1PCUimm8loCUimm8hi,
21043    RdRs1,
21044    RdRs1AqRl,
21045    RdRs1Csr,
21046    RdRs1Imm12,
21047    RdRs1N0,
21048    RdRs1N0CImm6loCImm6hi,
21049    RdRs1N0CNzimm6loCNzimm6hi,
21050    RdRs1N0CNzuimm6hiCNzuimm6lo,
21051    RdRs1N0CNzuimm6lo,
21052    RdRs1N0CRs2N0,
21053    RdRs1P,
21054    RdRs1PCImm6hiCImm6lo,
21055    RdRs1PCNzuimm5,
21056    RdRs1PCNzuimm6loCNzuimm6hi,
21057    RdRs1PRs2P,
21058    RdRs1Rm,
21059    RdRs1Rnum,
21060    RdRs1Rs2,
21061    RdRs1Rs2AqRl,
21062    RdRs1Rs2Bs,
21063    RdRs1Rs2EqRs1,
21064    RdRs1Rs2Rm,
21065    RdRs1Rs2Rs3Rm,
21066    RdRs1Shamtd,
21067    RdRs1Shamtw,
21068    RdRs2,
21069    RdZimm5,
21070    Rs1,
21071    Rs1Csr,
21072    Rs1Imm12hi,
21073    Rs1N0,
21074    Rs1PCBimm9loCBimm9hi,
21075    Rs1PRs2PCUimm7loCUimm7hi,
21076    Rs1PRs2PCUimm8hiCUimm8lo,
21077    Rs1PRs2PCUimm8loCUimm8hi,
21078    Rs1Rd,
21079    Rs1Rs2,
21080    Rs1Vd,
21081    Rs1Vs3,
21082    Rs2PRs1PCUimm1,
21083    Rs2PRs1PCUimm2,
21084    Rs2Rs1Rd,
21085    Simm5Vd,
21086    VmVd,
21087    VmVs2Rd,
21088    VmVs2Rs1Vd,
21089    VmVs2Simm5Vd,
21090    VmVs2Vd,
21091    VmVs2Vs1Vd,
21092    VmVs2Zimm5Vd,
21093    Vs1Vd,
21094    Vs2Rd,
21095    Vs2Rs1Vd,
21096    Vs2Simm5Vd,
21097    Vs2Vd,
21098    Vs2Vs1Vd,
21099    Vs2Zimm5Vd,
21100    Zimm10Zimm5Rd,
21101    Zimm11Rs1Rd,
21102    Zimm6HiVmVs2Zimm6loVd,
21103}
21104
21105impl Opcode {
21106    pub fn encoding(self) -> Encoding {
21107        use Opcode::*;
21108        match self {
21109            Opcode::Invalid => unreachable!(),
21110            BEQZ | BGEZ | BLTZ | BNEZ => Encoding::Bimm12HiRs1Bimm12lo,
21111            BEQ | BGE | BGEU | BLT | BLTU | BNE => Encoding::Bimm12HiRs1Rs2Bimm12lo,
21112            BGTZ | BLEZ => Encoding::Bimm12HiRs2Bimm12lo,
21113            BGT | BGTU | BLE | BLEU => Encoding::Bimm12HiRs2Rs1Bimm12lo,
21114            CJ | CJAL => Encoding::CImm12,
21115            CMJALT => Encoding::CIndex,
21116            CMOPN => Encoding::CMopT,
21117            CADDI16SP => Encoding::CNzimm10hiCNzimm10lo,
21118            CNOP => Encoding::CNzimm6hiCNzimm6lo,
21119            CMPOP | CMPOPRET | CMPOPRETZ | CMPUSH => Encoding::CRlistCSpimm,
21120            CJALR => Encoding::CRs1N0,
21121            CFSWSP | CSWSP => Encoding::CRs2CUimm8spS,
21122            CFSDSP | CSDSP => Encoding::CRs2CUimm9spS,
21123            CMMVA01S | CMMVSA01 => Encoding::CSreg1CSreg2,
21124            CSRCI | CSRSI | CSRWI => Encoding::CsrZimm5,
21125            CEBREAK | CMOP1 | CMOP11 | CMOP13 | CMOP15 | CMOP3 | CMOP5 | CMOP7 | CMOP9
21126            | CNTLALL | CNTLP1 | CNTLPALL | CNTLS1 | CSSPOPCHKX5 | CSSPUSHX1 | DRET | EBREAK
21127            | ECALL | MNRET | MRET | NOP | NTLALL | NTLP1 | NTLPALL | NTLS1 | PAUSE | RET
21128            | SBREAK | SCALL | SCTRCLR | SFENCEINVALIR | SFENCEWINVAL | SRET | SSPOPCHKX1
21129            | SSPOPCHKX5 | SSPUSHX1 | SSPUSHX5 | WFI | WRSNTO | WRSSTO => Encoding::Empty,
21130            FENCE => Encoding::FmPredSuccRs1Rd,
21131            FSD | FSH | FSQ | FSW | SB | SD | SH | SW => Encoding::Imm12HiRs1Rs2Imm12lo,
21132            FENCEI => Encoding::Imm12Rs1Rd,
21133            LPAD => Encoding::Imm20,
21134            J | JALPSEUDO => Encoding::Jimm20,
21135            MOPRN => Encoding::MopRT30MopRT2726MopRT2120RdRs1,
21136            MOPRRN => Encoding::MopRrT30MopRrT2726RdRs1Rs2,
21137            VLE16V | VLE16FFV | VLE32V | VLE32FFV | VLE64V | VLE64FFV | VLE8V | VLE8FFV => {
21138                Encoding::NfVmRs1Vd
21139            }
21140            VSE16V | VSE32V | VSE64V | VSE8V => Encoding::NfVmRs1Vs3,
21141            VLSE16V | VLSE32V | VLSE64V | VLSE8V => Encoding::NfVmRs2Rs1Vd,
21142            VSSE16V | VSSE32V | VSSE64V | VSSE8V => Encoding::NfVmRs2Rs1Vs3,
21143            VLOXEI16V | VLOXEI32V | VLOXEI64V | VLOXEI8V | VLUXEI16V | VLUXEI32V | VLUXEI64V
21144            | VLUXEI8V => Encoding::NfVmVs2Rs1Vd,
21145            VSOXEI16V | VSOXEI32V | VSOXEI64V | VSOXEI8V | VSUXEI16V | VSUXEI32V | VSUXEI64V
21146            | VSUXEI8V => Encoding::NfVmVs2Rs1Vs3,
21147            FRCSR | FRFLAGS | FRRM | RDCYCLE | RDCYCLEH | RDINSTRET | RDINSTRETH | RDTIME
21148            | RDTIMEH => Encoding::Rd,
21149            CFLWSP => Encoding::RdCUimm8sphiCUimm8splo,
21150            CFLDSP => Encoding::RdCUimm9sphiCUimm9splo,
21151            CSRR => Encoding::RdCsr,
21152            CSRRCI | CSRRSI | CSRRWI => Encoding::RdCsrZimm5,
21153            AUIPC | LUI => Encoding::RdImm20,
21154            JAL => Encoding::RdJimm20,
21155            SSRDP => Encoding::RdN0,
21156            CLI => Encoding::RdN0CImm6loCImm6hi,
21157            CMV => Encoding::RdN0CRs2N0,
21158            CLWSP => Encoding::RdN0CUimm8sphiCUimm8splo,
21159            CLDSP => Encoding::RdN0CUimm9sphiCUimm9splo,
21160            CLUI => Encoding::RdN2CNzimm18hiCNzimm18lo,
21161            CADDI4SPN => Encoding::RdPCNzuimm10,
21162            CLH | CLHU => Encoding::RdPRs1PCUimm1,
21163            CLBU => Encoding::RdPRs1PCUimm2,
21164            CFLW | CLW => Encoding::RdPRs1PCUimm7loCUimm7hi,
21165            CFLD | CLD => Encoding::RdPRs1PCUimm8loCUimm8hi,
21166            AES64IM | BREV8 | CLZ | CLZW | CPOP | CPOPW | CTZ | CTZW | FCLASSD | FCLASSH
21167            | FCLASSQ | FCLASSS | FCVTMODWD | FLID | FLIH | FLIQ | FLIS | FMVDX | FMVHX | FMVSX
21168            | FMVWX | FMVXD | FMVXH | FMVXS | FMVXW | FMVHXD | FMVHXQ | FSCSR | FSFLAGS | FSRM
21169            | HLVB | HLVBU | HLVD | HLVH | HLVHU | HLVW | HLVWU | HLVXHU | HLVXWU | MOPR0
21170            | MOPR1 | MOPR10 | MOPR11 | MOPR12 | MOPR13 | MOPR14 | MOPR15 | MOPR16 | MOPR17
21171            | MOPR18 | MOPR19 | MOPR2 | MOPR20 | MOPR21 | MOPR22 | MOPR23 | MOPR24 | MOPR25
21172            | MOPR26 | MOPR27 | MOPR28 | MOPR29 | MOPR3 | MOPR30 | MOPR31 | MOPR4 | MOPR5
21173            | MOPR6 | MOPR7 | MOPR8 | MOPR9 | MV | NEG | ORCB | REV8 | REV8RV32 | SEQZ | SEXTB
21174            | SEXTH | SEXTW | SHA256SIG0 | SHA256SIG1 | SHA256SUM0 | SHA256SUM1 | SHA512SIG0
21175            | SHA512SIG1 | SHA512SUM0 | SHA512SUM1 | SLTZ | SM3P0 | SM3P1 | UNZIP | ZEXTB
21176            | ZEXTH | ZEXTHRV32 | ZEXTW | ZIP => Encoding::RdRs1,
21177            LRD | LRW => Encoding::RdRs1AqRl,
21178            CSRRC | CSRRS | CSRRW => Encoding::RdRs1Csr,
21179            ADDI | ADDIW | ANDI | FLD | FLH | FLQ | FLW | JALR | LB | LBU | LD | LH | LHU | LW
21180            | LWU | ORI | SLTI | SLTIU | XORI => Encoding::RdRs1Imm12,
21181            CSEXTW => Encoding::RdRs1N0,
21182            CADDIW => Encoding::RdRs1N0CImm6loCImm6hi,
21183            CADDI => Encoding::RdRs1N0CNzimm6loCNzimm6hi,
21184            CSLLI => Encoding::RdRs1N0CNzuimm6hiCNzuimm6lo,
21185            CSLLIRV32 => Encoding::RdRs1N0CNzuimm6lo,
21186            CADD => Encoding::RdRs1N0CRs2N0,
21187            CNOT | CSEXTB | CSEXTH | CZEXTB | CZEXTH | CZEXTW => Encoding::RdRs1P,
21188            CANDI => Encoding::RdRs1PCImm6hiCImm6lo,
21189            CSRAIRV32 | CSRLIRV32 => Encoding::RdRs1PCNzuimm5,
21190            CSRAI | CSRLI => Encoding::RdRs1PCNzuimm6loCNzuimm6hi,
21191            CADDW | CAND | CMUL | COR | CSUB | CSUBW | CXOR => Encoding::RdRs1PRs2P,
21192            FCVTBF16S | FCVTDH | FCVTDL | FCVTDLU | FCVTDQ | FCVTDS | FCVTDW | FCVTDWU | FCVTHD
21193            | FCVTHL | FCVTHLU | FCVTHQ | FCVTHS | FCVTHW | FCVTHWU | FCVTLD | FCVTLH | FCVTLQ
21194            | FCVTLS | FCVTLUD | FCVTLUH | FCVTLUQ | FCVTLUS | FCVTQD | FCVTQH | FCVTQL
21195            | FCVTQLU | FCVTQS | FCVTQW | FCVTQWU | FCVTSBF16 | FCVTSD | FCVTSH | FCVTSL
21196            | FCVTSLU | FCVTSQ | FCVTSW | FCVTSWU | FCVTWD | FCVTWH | FCVTWQ | FCVTWS | FCVTWUD
21197            | FCVTWUH | FCVTWUQ | FCVTWUS | FROUNDD | FROUNDH | FROUNDQ | FROUNDS | FROUNDNXD
21198            | FROUNDNXH | FROUNDNXQ | FROUNDNXS | FSQRTD | FSQRTH | FSQRTQ | FSQRTS => {
21199                Encoding::RdRs1Rm
21200            }
21201            AES64KS1I => Encoding::RdRs1Rnum,
21202            ADD | ADDUW | ADDW | AES64DS | AES64DSM | AES64ES | AES64ESM | AES64KS2 | AND
21203            | ANDN | BCLR | BEXT | BINV | BSET | CLMUL | CLMULH | CLMULR | CZEROEQZ | CZERONEZ
21204            | DIV | DIVU | DIVUW | DIVW | FEQD | FEQH | FEQQ | FEQS | FLED | FLEH | FLEQ | FLES
21205            | FLEQD | FLEQH | FLEQQ | FLEQS | FLTD | FLTH | FLTQ | FLTS | FLTQD | FLTQH | FLTQQ
21206            | FLTQS | FMAXD | FMAXH | FMAXQ | FMAXS | FMAXMD | FMAXMH | FMAXMQ | FMAXMS | FMIND
21207            | FMINH | FMINQ | FMINS | FMINMD | FMINMH | FMINMQ | FMINMS | FMVPDX | FMVPQX
21208            | FSGNJD | FSGNJH | FSGNJQ | FSGNJS | FSGNJND | FSGNJNH | FSGNJNQ | FSGNJNS
21209            | FSGNJXD | FSGNJXH | FSGNJXQ | FSGNJXS | MAX | MAXU | MIN | MINU | MOPRR0 | MOPRR1
21210            | MOPRR2 | MOPRR3 | MOPRR4 | MOPRR5 | MOPRR6 | MOPRR7 | MUL | MULH | MULHSU | MULHU
21211            | MULW | OR | ORN | PACK | PACKH | PACKW | REM | REMU | REMUW | REMW | ROL | ROLW
21212            | ROR | RORW | SH1ADD | SH1ADDUW | SH2ADD | SH2ADDUW | SH3ADD | SH3ADDUW
21213            | SHA512SIG0H | SHA512SIG0L | SHA512SIG1H | SHA512SIG1L | SHA512SUM0R | SHA512SUM1R
21214            | SLL | SLLW | SLT | SLTU | SRA | SRAW | SRL | SRLW | SUB | SUBW | XNOR | XOR
21215            | XPERM4 | XPERM8 => Encoding::RdRs1Rs2,
21216            AMOADDB | AMOADDD | AMOADDH | AMOADDW | AMOANDB | AMOANDD | AMOANDH | AMOANDW
21217            | AMOCASB | AMOCASD | AMOCASH | AMOCASQ | AMOCASW | AMOMAXB | AMOMAXD | AMOMAXH
21218            | AMOMAXW | AMOMAXUB | AMOMAXUD | AMOMAXUH | AMOMAXUW | AMOMINB | AMOMIND | AMOMINH
21219            | AMOMINW | AMOMINUB | AMOMINUD | AMOMINUH | AMOMINUW | AMOORB | AMOORD | AMOORH
21220            | AMOORW | AMOSWAPB | AMOSWAPD | AMOSWAPH | AMOSWAPW | AMOXORB | AMOXORD | AMOXORH
21221            | AMOXORW | SCD | SCW | SSAMOSWAPD | SSAMOSWAPW => Encoding::RdRs1Rs2AqRl,
21222            AES32DSI | AES32DSMI | AES32ESI | AES32ESMI | SM4ED | SM4KS => Encoding::RdRs1Rs2Bs,
21223            FABSD | FABSH | FABSQ | FABSS | FMVD | FMVH | FMVQ | FMVS | FNEGD | FNEGH | FNEGQ
21224            | FNEGS => Encoding::RdRs1Rs2EqRs1,
21225            FADDD | FADDH | FADDQ | FADDS | FDIVD | FDIVH | FDIVQ | FDIVS | FMULD | FMULH
21226            | FMULQ | FMULS | FSUBD | FSUBH | FSUBQ | FSUBS => Encoding::RdRs1Rs2Rm,
21227            FMADDD | FMADDH | FMADDQ | FMADDS | FMSUBD | FMSUBH | FMSUBQ | FMSUBS | FNMADDD
21228            | FNMADDH | FNMADDQ | FNMADDS | FNMSUBD | FNMSUBH | FNMSUBQ | FNMSUBS => {
21229                Encoding::RdRs1Rs2Rs3Rm
21230            }
21231            BCLRI | BEXTI | BINVI | BSETI | RORI | SLLI | SLLIUW | SRAI | SRLI => {
21232                Encoding::RdRs1Shamtd
21233            }
21234            BCLRIRV32 | BEXTIRV32 | BINVIRV32 | BSETIRV32 | RORIRV32 | RORIW | SLLIRV32 | SLLIW
21235            | SRAIRV32 | SRAIW | SRLIRV32 | SRLIW => Encoding::RdRs1Shamtw,
21236            SGTZ | SNEZ => Encoding::RdRs2,
21237            FSFLAGSI | FSRMI => Encoding::RdZimm5,
21238            CBOCLEAN | CBOFLUSH | CBOINVAL | CBOZERO | JALRPSEUDO | JR => Encoding::Rs1,
21239            CSRC | CSRS | CSRW => Encoding::Rs1Csr,
21240            PREFETCHI | PREFETCHR | PREFETCHW => Encoding::Rs1Imm12hi,
21241            CJR => Encoding::Rs1N0,
21242            CBEQZ | CBNEZ => Encoding::Rs1PCBimm9loCBimm9hi,
21243            CFSW | CSW => Encoding::Rs1PRs2PCUimm7loCUimm7hi,
21244            CSD => Encoding::Rs1PRs2PCUimm8hiCUimm8lo,
21245            CFSD => Encoding::Rs1PRs2PCUimm8loCUimm8hi,
21246            FENCETSO => Encoding::Rs1Rd,
21247            HFENCEGVMA | HFENCEVVMA | HINVALGVMA | HINVALVVMA | HSVB | HSVD | HSVH | HSVW
21248            | SFENCEVMA | SINVALVMA => Encoding::Rs1Rs2,
21249            VFMVSF | VFMVVF | VL1RV | VL1RE16V | VL1RE32V | VL1RE64V | VL1RE8V | VL2RV
21250            | VL2RE16V | VL2RE32V | VL2RE64V | VL2RE8V | VL4RV | VL4RE16V | VL4RE32V | VL4RE64V
21251            | VL4RE8V | VL8RV | VL8RE16V | VL8RE32V | VL8RE64V | VL8RE8V | VLE1V | VLMV | VMVSX
21252            | VMVVX => Encoding::Rs1Vd,
21253            VS1RV | VS2RV | VS4RV | VS8RV | VSE1V | VSMV => Encoding::Rs1Vs3,
21254            CSH => Encoding::Rs2PRs1PCUimm1,
21255            CSB => Encoding::Rs2PRs1PCUimm2,
21256            VSETVL => Encoding::Rs2Rs1Rd,
21257            VMVVI => Encoding::Simm5Vd,
21258            VIDV => Encoding::VmVd,
21259            VCPOPM | VFIRSTM | VPOPCM => Encoding::VmVs2Rd,
21260            VAADDVX | VAADDUVX | VADDVX | VANDVX | VANDNVX | VASUBVX | VASUBUVX | VCLMULVX
21261            | VCLMULHVX | VDIVVX | VDIVUVX | VFADDVF | VFDIVVF | VFMACCVF | VFMADDVF | VFMAXVF
21262            | VFMINVF | VFMSACVF | VFMSUBVF | VFMULVF | VFNMACCVF | VFNMADDVF | VFNMSACVF
21263            | VFNMSUBVF | VFRDIVVF | VFRSUBVF | VFSGNJVF | VFSGNJNVF | VFSGNJXVF
21264            | VFSLIDE1DOWNVF | VFSLIDE1UPVF | VFSUBVF | VFWADDVF | VFWADDWF | VFWMACCVF
21265            | VFWMACCBF16VF | VFWMSACVF | VFWMULVF | VFWNMACCVF | VFWNMSACVF | VFWSUBVF
21266            | VFWSUBWF | VMACCVX | VMADDVX | VMAXVX | VMAXUVX | VMFEQVF | VMFGEVF | VMFGTVF
21267            | VMFLEVF | VMFLTVF | VMFNEVF | VMINVX | VMINUVX | VMSEQVX | VMSGTVX | VMSGTUVX
21268            | VMSLEVX | VMSLEUVX | VMSLTVX | VMSLTUVX | VMSNEVX | VMULVX | VMULHVX | VMULHSUVX
21269            | VMULHUVX | VNCLIPWX | VNCLIPUWX | VNMSACVX | VNMSUBVX | VNSRAWX | VNSRLWX | VORVX
21270            | VREMVX | VREMUVX | VRGATHERVX | VROLVX | VRORVX | VRSUBVX | VSADDVX | VSADDUVX
21271            | VSLIDE1DOWNVX | VSLIDE1UPVX | VSLIDEDOWNVX | VSLIDEUPVX | VSLLVX | VSMULVX
21272            | VSRAVX | VSRLVX | VSSRAVX | VSSRLVX | VSSUBVX | VSSUBUVX | VSUBVX | VWADDVX
21273            | VWADDWX | VWADDUVX | VWADDUWX | VWMACCVX | VWMACCSUVX | VWMACCUVX | VWMACCUSVX
21274            | VWMULVX | VWMULSUVX | VWMULUVX | VWSLLVX | VWSUBVX | VWSUBWX | VWSUBUVX
21275            | VWSUBUWX | VXORVX => Encoding::VmVs2Rs1Vd,
21276            VADDVI | VANDVI | VMSEQVI | VMSGTVI | VMSGTUVI | VMSLEVI | VMSLEUVI | VMSNEVI
21277            | VORVI | VRSUBVI | VSADDVI | VSADDUVI | VXORVI => Encoding::VmVs2Simm5Vd,
21278            VBREV8V | VBREVV | VCLZV | VCPOPV | VCTZV | VFCLASSV | VFCVTFXV | VFCVTFXUV
21279            | VFCVTRTZXFV | VFCVTRTZXUFV | VFCVTXFV | VFCVTXUFV | VFNCVTFFW | VFNCVTFXW
21280            | VFNCVTFXUW | VFNCVTRODFFW | VFNCVTRTZXFW | VFNCVTRTZXUFW | VFNCVTXFW | VFNCVTXUFW
21281            | VFNCVTBF16FFW | VFREC7V | VFRSQRT7V | VFSQRTV | VFWCVTFFV | VFWCVTFXV
21282            | VFWCVTFXUV | VFWCVTRTZXFV | VFWCVTRTZXUFV | VFWCVTXFV | VFWCVTXUFV
21283            | VFWCVTBF16FFV | VIOTAM | VMSBFM | VMSIFM | VMSOFM | VREV8V | VSEXTVF2 | VSEXTVF4
21284            | VSEXTVF8 | VZEXTVF2 | VZEXTVF4 | VZEXTVF8 => Encoding::VmVs2Vd,
21285            VAADDVV | VAADDUVV | VADDVV | VANDVV | VANDNVV | VASUBVV | VASUBUVV | VCLMULVV
21286            | VCLMULHVV | VDIVVV | VDIVUVV | VFADDVV | VFDIVVV | VFMACCVV | VFMADDVV | VFMAXVV
21287            | VFMINVV | VFMSACVV | VFMSUBVV | VFMULVV | VFNMACCVV | VFNMADDVV | VFNMSACVV
21288            | VFNMSUBVV | VFREDMAXVS | VFREDMINVS | VFREDOSUMVS | VFREDSUMVS | VFREDUSUMVS
21289            | VFSGNJVV | VFSGNJNVV | VFSGNJXVV | VFSUBVV | VFWADDVV | VFWADDWV | VFWMACCVV
21290            | VFWMACCBF16VV | VFWMSACVV | VFWMULVV | VFWNMACCVV | VFWNMSACVV | VFWREDOSUMVS
21291            | VFWREDSUMVS | VFWREDUSUMVS | VFWSUBVV | VFWSUBWV | VMACCVV | VMADDVV | VMANDNOTMM
21292            | VMAXVV | VMAXUVV | VMFEQVV | VMFLEVV | VMFLTVV | VMFNEVV | VMINVV | VMINUVV
21293            | VMORNOTMM | VMSEQVV | VMSLEVV | VMSLEUVV | VMSLTVV | VMSLTUVV | VMSNEVV | VMULVV
21294            | VMULHVV | VMULHSUVV | VMULHUVV | VNCLIPWV | VNCLIPUWV | VNMSACVV | VNMSUBVV
21295            | VNSRAWV | VNSRLWV | VORVV | VREDANDVS | VREDMAXVS | VREDMAXUVS | VREDMINVS
21296            | VREDMINUVS | VREDORVS | VREDSUMVS | VREDXORVS | VREMVV | VREMUVV | VRGATHERVV
21297            | VRGATHEREI16VV | VROLVV | VRORVV | VSADDVV | VSADDUVV | VSLLVV | VSMULVV | VSRAVV
21298            | VSRLVV | VSSRAVV | VSSRLVV | VSSUBVV | VSSUBUVV | VSUBVV | VWADDVV | VWADDWV
21299            | VWADDUVV | VWADDUWV | VWMACCVV | VWMACCSUVV | VWMACCUVV | VWMULVV | VWMULSUVV
21300            | VWMULUVV | VWREDSUMVS | VWREDSUMUVS | VWSLLVV | VWSUBVV | VWSUBWV | VWSUBUVV
21301            | VWSUBUWV | VXORVV => Encoding::VmVs2Vs1Vd,
21302            VNCLIPWI | VNCLIPUWI | VNSRAWI | VNSRLWI | VRGATHERVI | VSLIDEDOWNVI | VSLIDEUPVI
21303            | VSLLVI | VSRAVI | VSRLVI | VSSRAVI | VSSRLVI | VWSLLVI => Encoding::VmVs2Zimm5Vd,
21304            VMVVV => Encoding::Vs1Vd,
21305            VFMVFS | VMVXS => Encoding::Vs2Rd,
21306            VADCVXM | VFMERGEVFM | VMADCVX | VMADCVXM | VMERGEVXM | VMSBCVX | VMSBCVXM
21307            | VSBCVXM => Encoding::Vs2Rs1Vd,
21308            VADCVIM | VMADCVI | VMADCVIM | VMERGEVIM => Encoding::Vs2Simm5Vd,
21309            VAESDFVS | VAESDFVV | VAESDMVS | VAESDMVV | VAESEFVS | VAESEFVV | VAESEMVS
21310            | VAESEMVV | VAESZVS | VGMULVV | VMV1RV | VMV2RV | VMV4RV | VMV8RV | VSM4RVS
21311            | VSM4RVV => Encoding::Vs2Vd,
21312            VADCVVM | VCOMPRESSVM | VGHSHVV | VMADCVV | VMADCVVM | VMANDMM | VMANDNMM
21313            | VMERGEVVM | VMNANDMM | VMNORMM | VMORMM | VMORNMM | VMSBCVV | VMSBCVVM | VMXNORMM
21314            | VMXORMM | VSBCVVM | VSHA2CHVV | VSHA2CLVV | VSHA2MSVV | VSM3MEVV => {
21315                Encoding::Vs2Vs1Vd
21316            }
21317            VAESKF1VI | VAESKF2VI | VSM3CVI | VSM4KVI => Encoding::Vs2Zimm5Vd,
21318            VSETIVLI => Encoding::Zimm10Zimm5Rd,
21319            VSETVLI => Encoding::Zimm11Rs1Rd,
21320            VRORVI => Encoding::Zimm6HiVmVs2Zimm6loVd,
21321        }
21322    }
21323}
21324pub const INSN_FIELD_RD: u32 = 0xf80;
21325pub const INSN_FIELD_RD_START: u32 = 7;
21326pub const INSN_FIELD_RD_SIZE: u32 = 5;
21327pub const INSN_FIELD_RT: u32 = 0xf8000;
21328pub const INSN_FIELD_RT_START: u32 = 15;
21329pub const INSN_FIELD_RT_SIZE: u32 = 5;
21330pub const INSN_FIELD_RS1: u32 = 0xf8000;
21331pub const INSN_FIELD_RS1_START: u32 = 15;
21332pub const INSN_FIELD_RS1_SIZE: u32 = 5;
21333pub const INSN_FIELD_RS2: u32 = 0x1f00000;
21334pub const INSN_FIELD_RS2_START: u32 = 20;
21335pub const INSN_FIELD_RS2_SIZE: u32 = 5;
21336pub const INSN_FIELD_RS3: u32 = 0xf8000000;
21337pub const INSN_FIELD_RS3_START: u32 = 27;
21338pub const INSN_FIELD_RS3_SIZE: u32 = 5;
21339pub const INSN_FIELD_AQRL: u32 = 0x6000000;
21340pub const INSN_FIELD_AQRL_START: u32 = 25;
21341pub const INSN_FIELD_AQRL_SIZE: u32 = 2;
21342pub const INSN_FIELD_AQ: u32 = 0x4000000;
21343pub const INSN_FIELD_AQ_START: u32 = 26;
21344pub const INSN_FIELD_AQ_SIZE: u32 = 1;
21345pub const INSN_FIELD_RL: u32 = 0x2000000;
21346pub const INSN_FIELD_RL_START: u32 = 25;
21347pub const INSN_FIELD_RL_SIZE: u32 = 1;
21348pub const INSN_FIELD_FM: u32 = 0xf0000000;
21349pub const INSN_FIELD_FM_START: u32 = 28;
21350pub const INSN_FIELD_FM_SIZE: u32 = 4;
21351pub const INSN_FIELD_PRED: u32 = 0xf000000;
21352pub const INSN_FIELD_PRED_START: u32 = 24;
21353pub const INSN_FIELD_PRED_SIZE: u32 = 4;
21354pub const INSN_FIELD_SUCC: u32 = 0xf00000;
21355pub const INSN_FIELD_SUCC_START: u32 = 20;
21356pub const INSN_FIELD_SUCC_SIZE: u32 = 4;
21357pub const INSN_FIELD_RM: u32 = 0x7000;
21358pub const INSN_FIELD_RM_START: u32 = 12;
21359pub const INSN_FIELD_RM_SIZE: u32 = 3;
21360pub const INSN_FIELD_FUNCT3: u32 = 0x7000;
21361pub const INSN_FIELD_FUNCT3_START: u32 = 12;
21362pub const INSN_FIELD_FUNCT3_SIZE: u32 = 3;
21363pub const INSN_FIELD_FUNCT2: u32 = 0x6000000;
21364pub const INSN_FIELD_FUNCT2_START: u32 = 25;
21365pub const INSN_FIELD_FUNCT2_SIZE: u32 = 2;
21366pub const INSN_FIELD_IMM20: u32 = 0xfffff000;
21367pub const INSN_FIELD_IMM20_START: u32 = 12;
21368pub const INSN_FIELD_IMM20_SIZE: u32 = 20;
21369pub const INSN_FIELD_JIMM20: u32 = 0xfffff000;
21370pub const INSN_FIELD_JIMM20_START: u32 = 12;
21371pub const INSN_FIELD_JIMM20_SIZE: u32 = 20;
21372pub const INSN_FIELD_IMM12: u32 = 0xfff00000;
21373pub const INSN_FIELD_IMM12_START: u32 = 20;
21374pub const INSN_FIELD_IMM12_SIZE: u32 = 12;
21375pub const INSN_FIELD_CSR: u32 = 0xfff00000;
21376pub const INSN_FIELD_CSR_START: u32 = 20;
21377pub const INSN_FIELD_CSR_SIZE: u32 = 12;
21378pub const INSN_FIELD_IMM12HI: u32 = 0xfe000000;
21379pub const INSN_FIELD_IMM12HI_START: u32 = 25;
21380pub const INSN_FIELD_IMM12HI_SIZE: u32 = 7;
21381pub const INSN_FIELD_BIMM12HI: u32 = 0xfe000000;
21382pub const INSN_FIELD_BIMM12HI_START: u32 = 25;
21383pub const INSN_FIELD_BIMM12HI_SIZE: u32 = 7;
21384pub const INSN_FIELD_IMM12LO: u32 = 0xf80;
21385pub const INSN_FIELD_IMM12LO_START: u32 = 7;
21386pub const INSN_FIELD_IMM12LO_SIZE: u32 = 5;
21387pub const INSN_FIELD_BIMM12LO: u32 = 0xf80;
21388pub const INSN_FIELD_BIMM12LO_START: u32 = 7;
21389pub const INSN_FIELD_BIMM12LO_SIZE: u32 = 5;
21390pub const INSN_FIELD_SHAMTQ: u32 = 0x7f00000;
21391pub const INSN_FIELD_SHAMTQ_START: u32 = 20;
21392pub const INSN_FIELD_SHAMTQ_SIZE: u32 = 7;
21393pub const INSN_FIELD_SHAMTW: u32 = 0x1f00000;
21394pub const INSN_FIELD_SHAMTW_START: u32 = 20;
21395pub const INSN_FIELD_SHAMTW_SIZE: u32 = 5;
21396pub const INSN_FIELD_SHAMTW4: u32 = 0xf00000;
21397pub const INSN_FIELD_SHAMTW4_START: u32 = 20;
21398pub const INSN_FIELD_SHAMTW4_SIZE: u32 = 4;
21399pub const INSN_FIELD_SHAMTD: u32 = 0x3f00000;
21400pub const INSN_FIELD_SHAMTD_START: u32 = 20;
21401pub const INSN_FIELD_SHAMTD_SIZE: u32 = 6;
21402pub const INSN_FIELD_BS: u32 = 0xc0000000;
21403pub const INSN_FIELD_BS_START: u32 = 30;
21404pub const INSN_FIELD_BS_SIZE: u32 = 2;
21405pub const INSN_FIELD_RNUM: u32 = 0xf00000;
21406pub const INSN_FIELD_RNUM_START: u32 = 20;
21407pub const INSN_FIELD_RNUM_SIZE: u32 = 4;
21408pub const INSN_FIELD_RC: u32 = 0x3e000000;
21409pub const INSN_FIELD_RC_START: u32 = 25;
21410pub const INSN_FIELD_RC_SIZE: u32 = 5;
21411pub const INSN_FIELD_IMM2: u32 = 0x300000;
21412pub const INSN_FIELD_IMM2_START: u32 = 20;
21413pub const INSN_FIELD_IMM2_SIZE: u32 = 2;
21414pub const INSN_FIELD_IMM3: u32 = 0x700000;
21415pub const INSN_FIELD_IMM3_START: u32 = 20;
21416pub const INSN_FIELD_IMM3_SIZE: u32 = 3;
21417pub const INSN_FIELD_IMM4: u32 = 0xf00000;
21418pub const INSN_FIELD_IMM4_START: u32 = 20;
21419pub const INSN_FIELD_IMM4_SIZE: u32 = 4;
21420pub const INSN_FIELD_IMM5: u32 = 0x1f00000;
21421pub const INSN_FIELD_IMM5_START: u32 = 20;
21422pub const INSN_FIELD_IMM5_SIZE: u32 = 5;
21423pub const INSN_FIELD_IMM6: u32 = 0x3f00000;
21424pub const INSN_FIELD_IMM6_START: u32 = 20;
21425pub const INSN_FIELD_IMM6_SIZE: u32 = 6;
21426pub const INSN_FIELD_OPCODE: u32 = 0x7f;
21427pub const INSN_FIELD_OPCODE_START: u32 = 0;
21428pub const INSN_FIELD_OPCODE_SIZE: u32 = 7;
21429pub const INSN_FIELD_FUNCT7: u32 = 0xfe000000;
21430pub const INSN_FIELD_FUNCT7_START: u32 = 25;
21431pub const INSN_FIELD_FUNCT7_SIZE: u32 = 7;
21432pub const INSN_FIELD_VD: u32 = 0xf80;
21433pub const INSN_FIELD_VD_START: u32 = 7;
21434pub const INSN_FIELD_VD_SIZE: u32 = 5;
21435pub const INSN_FIELD_VS3: u32 = 0xf80;
21436pub const INSN_FIELD_VS3_START: u32 = 7;
21437pub const INSN_FIELD_VS3_SIZE: u32 = 5;
21438pub const INSN_FIELD_VS1: u32 = 0xf8000;
21439pub const INSN_FIELD_VS1_START: u32 = 15;
21440pub const INSN_FIELD_VS1_SIZE: u32 = 5;
21441pub const INSN_FIELD_VS2: u32 = 0x1f00000;
21442pub const INSN_FIELD_VS2_START: u32 = 20;
21443pub const INSN_FIELD_VS2_SIZE: u32 = 5;
21444pub const INSN_FIELD_VM: u32 = 0x2000000;
21445pub const INSN_FIELD_VM_START: u32 = 25;
21446pub const INSN_FIELD_VM_SIZE: u32 = 1;
21447pub const INSN_FIELD_WD: u32 = 0x4000000;
21448pub const INSN_FIELD_WD_START: u32 = 26;
21449pub const INSN_FIELD_WD_SIZE: u32 = 1;
21450pub const INSN_FIELD_AMOOP: u32 = 0xf8000000;
21451pub const INSN_FIELD_AMOOP_START: u32 = 27;
21452pub const INSN_FIELD_AMOOP_SIZE: u32 = 5;
21453pub const INSN_FIELD_NF: u32 = 0xe0000000;
21454pub const INSN_FIELD_NF_START: u32 = 29;
21455pub const INSN_FIELD_NF_SIZE: u32 = 3;
21456pub const INSN_FIELD_SIMM5: u32 = 0xf8000;
21457pub const INSN_FIELD_SIMM5_START: u32 = 15;
21458pub const INSN_FIELD_SIMM5_SIZE: u32 = 5;
21459pub const INSN_FIELD_ZIMM5: u32 = 0xf8000;
21460pub const INSN_FIELD_ZIMM5_START: u32 = 15;
21461pub const INSN_FIELD_ZIMM5_SIZE: u32 = 5;
21462pub const INSN_FIELD_ZIMM10: u32 = 0x3ff00000;
21463pub const INSN_FIELD_ZIMM10_START: u32 = 20;
21464pub const INSN_FIELD_ZIMM10_SIZE: u32 = 10;
21465pub const INSN_FIELD_ZIMM11: u32 = 0x7ff00000;
21466pub const INSN_FIELD_ZIMM11_START: u32 = 20;
21467pub const INSN_FIELD_ZIMM11_SIZE: u32 = 11;
21468pub const INSN_FIELD_ZIMM6HI: u32 = 0x4000000;
21469pub const INSN_FIELD_ZIMM6HI_START: u32 = 26;
21470pub const INSN_FIELD_ZIMM6HI_SIZE: u32 = 1;
21471pub const INSN_FIELD_ZIMM6LO: u32 = 0xf8000;
21472pub const INSN_FIELD_ZIMM6LO_START: u32 = 15;
21473pub const INSN_FIELD_ZIMM6LO_SIZE: u32 = 5;
21474pub const INSN_FIELD_C_NZUIMM10: u32 = 0x1fe0;
21475pub const INSN_FIELD_C_NZUIMM10_START: u32 = 5;
21476pub const INSN_FIELD_C_NZUIMM10_SIZE: u32 = 8;
21477pub const INSN_FIELD_C_UIMM7LO: u32 = 0x60;
21478pub const INSN_FIELD_C_UIMM7LO_START: u32 = 5;
21479pub const INSN_FIELD_C_UIMM7LO_SIZE: u32 = 2;
21480pub const INSN_FIELD_C_UIMM7HI: u32 = 0x1c00;
21481pub const INSN_FIELD_C_UIMM7HI_START: u32 = 10;
21482pub const INSN_FIELD_C_UIMM7HI_SIZE: u32 = 3;
21483pub const INSN_FIELD_C_UIMM8LO: u32 = 0x60;
21484pub const INSN_FIELD_C_UIMM8LO_START: u32 = 5;
21485pub const INSN_FIELD_C_UIMM8LO_SIZE: u32 = 2;
21486pub const INSN_FIELD_C_UIMM8HI: u32 = 0x1c00;
21487pub const INSN_FIELD_C_UIMM8HI_START: u32 = 10;
21488pub const INSN_FIELD_C_UIMM8HI_SIZE: u32 = 3;
21489pub const INSN_FIELD_C_UIMM9LO: u32 = 0x60;
21490pub const INSN_FIELD_C_UIMM9LO_START: u32 = 5;
21491pub const INSN_FIELD_C_UIMM9LO_SIZE: u32 = 2;
21492pub const INSN_FIELD_C_UIMM9HI: u32 = 0x1c00;
21493pub const INSN_FIELD_C_UIMM9HI_START: u32 = 10;
21494pub const INSN_FIELD_C_UIMM9HI_SIZE: u32 = 3;
21495pub const INSN_FIELD_C_NZIMM6LO: u32 = 0x7c;
21496pub const INSN_FIELD_C_NZIMM6LO_START: u32 = 2;
21497pub const INSN_FIELD_C_NZIMM6LO_SIZE: u32 = 5;
21498pub const INSN_FIELD_C_NZIMM6HI: u32 = 0x1000;
21499pub const INSN_FIELD_C_NZIMM6HI_START: u32 = 12;
21500pub const INSN_FIELD_C_NZIMM6HI_SIZE: u32 = 1;
21501pub const INSN_FIELD_C_IMM6LO: u32 = 0x7c;
21502pub const INSN_FIELD_C_IMM6LO_START: u32 = 2;
21503pub const INSN_FIELD_C_IMM6LO_SIZE: u32 = 5;
21504pub const INSN_FIELD_C_IMM6HI: u32 = 0x1000;
21505pub const INSN_FIELD_C_IMM6HI_START: u32 = 12;
21506pub const INSN_FIELD_C_IMM6HI_SIZE: u32 = 1;
21507pub const INSN_FIELD_C_NZIMM10HI: u32 = 0x1000;
21508pub const INSN_FIELD_C_NZIMM10HI_START: u32 = 12;
21509pub const INSN_FIELD_C_NZIMM10HI_SIZE: u32 = 1;
21510pub const INSN_FIELD_C_NZIMM10LO: u32 = 0x7c;
21511pub const INSN_FIELD_C_NZIMM10LO_START: u32 = 2;
21512pub const INSN_FIELD_C_NZIMM10LO_SIZE: u32 = 5;
21513pub const INSN_FIELD_C_NZIMM18HI: u32 = 0x1000;
21514pub const INSN_FIELD_C_NZIMM18HI_START: u32 = 12;
21515pub const INSN_FIELD_C_NZIMM18HI_SIZE: u32 = 1;
21516pub const INSN_FIELD_C_NZIMM18LO: u32 = 0x7c;
21517pub const INSN_FIELD_C_NZIMM18LO_START: u32 = 2;
21518pub const INSN_FIELD_C_NZIMM18LO_SIZE: u32 = 5;
21519pub const INSN_FIELD_C_IMM12: u32 = 0x1ffc;
21520pub const INSN_FIELD_C_IMM12_START: u32 = 2;
21521pub const INSN_FIELD_C_IMM12_SIZE: u32 = 11;
21522pub const INSN_FIELD_C_BIMM9LO: u32 = 0x7c;
21523pub const INSN_FIELD_C_BIMM9LO_START: u32 = 2;
21524pub const INSN_FIELD_C_BIMM9LO_SIZE: u32 = 5;
21525pub const INSN_FIELD_C_BIMM9HI: u32 = 0x1c00;
21526pub const INSN_FIELD_C_BIMM9HI_START: u32 = 10;
21527pub const INSN_FIELD_C_BIMM9HI_SIZE: u32 = 3;
21528pub const INSN_FIELD_C_NZUIMM5: u32 = 0x7c;
21529pub const INSN_FIELD_C_NZUIMM5_START: u32 = 2;
21530pub const INSN_FIELD_C_NZUIMM5_SIZE: u32 = 5;
21531pub const INSN_FIELD_C_NZUIMM6LO: u32 = 0x7c;
21532pub const INSN_FIELD_C_NZUIMM6LO_START: u32 = 2;
21533pub const INSN_FIELD_C_NZUIMM6LO_SIZE: u32 = 5;
21534pub const INSN_FIELD_C_NZUIMM6HI: u32 = 0x1000;
21535pub const INSN_FIELD_C_NZUIMM6HI_START: u32 = 12;
21536pub const INSN_FIELD_C_NZUIMM6HI_SIZE: u32 = 1;
21537pub const INSN_FIELD_C_UIMM8SPLO: u32 = 0x7c;
21538pub const INSN_FIELD_C_UIMM8SPLO_START: u32 = 2;
21539pub const INSN_FIELD_C_UIMM8SPLO_SIZE: u32 = 5;
21540pub const INSN_FIELD_C_UIMM8SPHI: u32 = 0x1000;
21541pub const INSN_FIELD_C_UIMM8SPHI_START: u32 = 12;
21542pub const INSN_FIELD_C_UIMM8SPHI_SIZE: u32 = 1;
21543pub const INSN_FIELD_C_UIMM8SP_S: u32 = 0x1f80;
21544pub const INSN_FIELD_C_UIMM8SP_S_START: u32 = 7;
21545pub const INSN_FIELD_C_UIMM8SP_S_SIZE: u32 = 6;
21546pub const INSN_FIELD_C_UIMM10SPLO: u32 = 0x7c;
21547pub const INSN_FIELD_C_UIMM10SPLO_START: u32 = 2;
21548pub const INSN_FIELD_C_UIMM10SPLO_SIZE: u32 = 5;
21549pub const INSN_FIELD_C_UIMM10SPHI: u32 = 0x1000;
21550pub const INSN_FIELD_C_UIMM10SPHI_START: u32 = 12;
21551pub const INSN_FIELD_C_UIMM10SPHI_SIZE: u32 = 1;
21552pub const INSN_FIELD_C_UIMM9SPLO: u32 = 0x7c;
21553pub const INSN_FIELD_C_UIMM9SPLO_START: u32 = 2;
21554pub const INSN_FIELD_C_UIMM9SPLO_SIZE: u32 = 5;
21555pub const INSN_FIELD_C_UIMM9SPHI: u32 = 0x1000;
21556pub const INSN_FIELD_C_UIMM9SPHI_START: u32 = 12;
21557pub const INSN_FIELD_C_UIMM9SPHI_SIZE: u32 = 1;
21558pub const INSN_FIELD_C_UIMM10SP_S: u32 = 0x1f80;
21559pub const INSN_FIELD_C_UIMM10SP_S_START: u32 = 7;
21560pub const INSN_FIELD_C_UIMM10SP_S_SIZE: u32 = 6;
21561pub const INSN_FIELD_C_UIMM9SP_S: u32 = 0x1f80;
21562pub const INSN_FIELD_C_UIMM9SP_S_START: u32 = 7;
21563pub const INSN_FIELD_C_UIMM9SP_S_SIZE: u32 = 6;
21564pub const INSN_FIELD_C_UIMM2: u32 = 0x60;
21565pub const INSN_FIELD_C_UIMM2_START: u32 = 5;
21566pub const INSN_FIELD_C_UIMM2_SIZE: u32 = 2;
21567pub const INSN_FIELD_C_UIMM1: u32 = 0x20;
21568pub const INSN_FIELD_C_UIMM1_START: u32 = 5;
21569pub const INSN_FIELD_C_UIMM1_SIZE: u32 = 1;
21570pub const INSN_FIELD_C_RLIST: u32 = 0xf0;
21571pub const INSN_FIELD_C_RLIST_START: u32 = 4;
21572pub const INSN_FIELD_C_RLIST_SIZE: u32 = 4;
21573pub const INSN_FIELD_C_SPIMM: u32 = 0xc;
21574pub const INSN_FIELD_C_SPIMM_START: u32 = 2;
21575pub const INSN_FIELD_C_SPIMM_SIZE: u32 = 2;
21576pub const INSN_FIELD_C_INDEX: u32 = 0x3fc;
21577pub const INSN_FIELD_C_INDEX_START: u32 = 2;
21578pub const INSN_FIELD_C_INDEX_SIZE: u32 = 8;
21579pub const INSN_FIELD_RS1_P: u32 = 0x380;
21580pub const INSN_FIELD_RS1_P_START: u32 = 7;
21581pub const INSN_FIELD_RS1_P_SIZE: u32 = 3;
21582pub const INSN_FIELD_RS2_P: u32 = 0x1c;
21583pub const INSN_FIELD_RS2_P_START: u32 = 2;
21584pub const INSN_FIELD_RS2_P_SIZE: u32 = 3;
21585pub const INSN_FIELD_RD_P: u32 = 0x1c;
21586pub const INSN_FIELD_RD_P_START: u32 = 2;
21587pub const INSN_FIELD_RD_P_SIZE: u32 = 3;
21588pub const INSN_FIELD_RD_RS1_N0: u32 = 0xf80;
21589pub const INSN_FIELD_RD_RS1_N0_START: u32 = 7;
21590pub const INSN_FIELD_RD_RS1_N0_SIZE: u32 = 5;
21591pub const INSN_FIELD_RD_RS1_P: u32 = 0x380;
21592pub const INSN_FIELD_RD_RS1_P_START: u32 = 7;
21593pub const INSN_FIELD_RD_RS1_P_SIZE: u32 = 3;
21594pub const INSN_FIELD_RD_RS1: u32 = 0xf80;
21595pub const INSN_FIELD_RD_RS1_START: u32 = 7;
21596pub const INSN_FIELD_RD_RS1_SIZE: u32 = 5;
21597pub const INSN_FIELD_RD_N2: u32 = 0xf80;
21598pub const INSN_FIELD_RD_N2_START: u32 = 7;
21599pub const INSN_FIELD_RD_N2_SIZE: u32 = 5;
21600pub const INSN_FIELD_RD_N0: u32 = 0xf80;
21601pub const INSN_FIELD_RD_N0_START: u32 = 7;
21602pub const INSN_FIELD_RD_N0_SIZE: u32 = 5;
21603pub const INSN_FIELD_RS1_N0: u32 = 0xf80;
21604pub const INSN_FIELD_RS1_N0_START: u32 = 7;
21605pub const INSN_FIELD_RS1_N0_SIZE: u32 = 5;
21606pub const INSN_FIELD_C_RS2_N0: u32 = 0x7c;
21607pub const INSN_FIELD_C_RS2_N0_START: u32 = 2;
21608pub const INSN_FIELD_C_RS2_N0_SIZE: u32 = 5;
21609pub const INSN_FIELD_C_RS1_N0: u32 = 0xf80;
21610pub const INSN_FIELD_C_RS1_N0_START: u32 = 7;
21611pub const INSN_FIELD_C_RS1_N0_SIZE: u32 = 5;
21612pub const INSN_FIELD_C_RS2: u32 = 0x7c;
21613pub const INSN_FIELD_C_RS2_START: u32 = 2;
21614pub const INSN_FIELD_C_RS2_SIZE: u32 = 5;
21615pub const INSN_FIELD_C_SREG1: u32 = 0x380;
21616pub const INSN_FIELD_C_SREG1_START: u32 = 7;
21617pub const INSN_FIELD_C_SREG1_SIZE: u32 = 3;
21618pub const INSN_FIELD_C_SREG2: u32 = 0x1c;
21619pub const INSN_FIELD_C_SREG2_START: u32 = 2;
21620pub const INSN_FIELD_C_SREG2_SIZE: u32 = 3;
21621pub const INSN_FIELD_RD_P_E: u32 = 0x18;
21622pub const INSN_FIELD_RD_P_E_START: u32 = 3;
21623pub const INSN_FIELD_RD_P_E_SIZE: u32 = 2;
21624pub const INSN_FIELD_RS2_P_E: u32 = 0x18;
21625pub const INSN_FIELD_RS2_P_E_START: u32 = 3;
21626pub const INSN_FIELD_RS2_P_E_SIZE: u32 = 2;
21627pub const INSN_FIELD_RD_N0_E: u32 = 0xf00;
21628pub const INSN_FIELD_RD_N0_E_START: u32 = 8;
21629pub const INSN_FIELD_RD_N0_E_SIZE: u32 = 4;
21630pub const INSN_FIELD_C_RS2_E: u32 = 0x78;
21631pub const INSN_FIELD_C_RS2_E_START: u32 = 3;
21632pub const INSN_FIELD_C_RS2_E_SIZE: u32 = 4;
21633pub const INSN_FIELD_RD_E: u32 = 0xf00;
21634pub const INSN_FIELD_RD_E_START: u32 = 8;
21635pub const INSN_FIELD_RD_E_SIZE: u32 = 4;
21636pub const INSN_FIELD_RS2_E: u32 = 0x1e00000;
21637pub const INSN_FIELD_RS2_E_START: u32 = 21;
21638pub const INSN_FIELD_RS2_E_SIZE: u32 = 4;
21639pub const INSN_FIELD_P_IMM10: u32 = 0x1ff8000;
21640pub const INSN_FIELD_P_IMM10_START: u32 = 15;
21641pub const INSN_FIELD_P_IMM10_SIZE: u32 = 10;
21642pub const INSN_FIELD_P_IMM8: u32 = 0xff0000;
21643pub const INSN_FIELD_P_IMM8_START: u32 = 16;
21644pub const INSN_FIELD_P_IMM8_SIZE: u32 = 8;
21645pub const INSN_FIELD_P_W_UIMM3: u32 = 0x700000;
21646pub const INSN_FIELD_P_W_UIMM3_START: u32 = 20;
21647pub const INSN_FIELD_P_W_UIMM3_SIZE: u32 = 3;
21648pub const INSN_FIELD_P_W_UIMM4: u32 = 0xf00000;
21649pub const INSN_FIELD_P_W_UIMM4_START: u32 = 20;
21650pub const INSN_FIELD_P_W_UIMM4_SIZE: u32 = 4;
21651pub const INSN_FIELD_P_W_UIMM5: u32 = 0x1f00000;
21652pub const INSN_FIELD_P_W_UIMM5_START: u32 = 20;
21653pub const INSN_FIELD_P_W_UIMM5_SIZE: u32 = 5;
21654pub const INSN_FIELD_P_W_UIMM6: u32 = 0x3f00000;
21655pub const INSN_FIELD_P_W_UIMM6_START: u32 = 20;
21656pub const INSN_FIELD_P_W_UIMM6_SIZE: u32 = 6;
21657pub const INSN_FIELD_P_W: u32 = 0x6000000;
21658pub const INSN_FIELD_P_W_START: u32 = 25;
21659pub const INSN_FIELD_P_W_SIZE: u32 = 2;
21660pub const INSN_FIELD_P_RD_P: u32 = 0xf00;
21661pub const INSN_FIELD_P_RD_P_START: u32 = 8;
21662pub const INSN_FIELD_P_RD_P_SIZE: u32 = 4;
21663pub const INSN_FIELD_P_RS1_P: u32 = 0xf0000;
21664pub const INSN_FIELD_P_RS1_P_START: u32 = 16;
21665pub const INSN_FIELD_P_RS1_P_SIZE: u32 = 4;
21666pub const INSN_FIELD_P_RS2_P: u32 = 0x1e00000;
21667pub const INSN_FIELD_P_RS2_P_START: u32 = 21;
21668pub const INSN_FIELD_P_RS2_P_SIZE: u32 = 4;
21669pub const INSN_FIELD_MOP_R_T_30: u32 = 0x40000000;
21670pub const INSN_FIELD_MOP_R_T_30_START: u32 = 30;
21671pub const INSN_FIELD_MOP_R_T_30_SIZE: u32 = 1;
21672pub const INSN_FIELD_MOP_R_T_27_26: u32 = 0xc000000;
21673pub const INSN_FIELD_MOP_R_T_27_26_START: u32 = 26;
21674pub const INSN_FIELD_MOP_R_T_27_26_SIZE: u32 = 2;
21675pub const INSN_FIELD_MOP_R_T_21_20: u32 = 0x300000;
21676pub const INSN_FIELD_MOP_R_T_21_20_START: u32 = 20;
21677pub const INSN_FIELD_MOP_R_T_21_20_SIZE: u32 = 2;
21678pub const INSN_FIELD_MOP_RR_T_30: u32 = 0x40000000;
21679pub const INSN_FIELD_MOP_RR_T_30_START: u32 = 30;
21680pub const INSN_FIELD_MOP_RR_T_30_SIZE: u32 = 1;
21681pub const INSN_FIELD_MOP_RR_T_27_26: u32 = 0xc000000;
21682pub const INSN_FIELD_MOP_RR_T_27_26_START: u32 = 26;
21683pub const INSN_FIELD_MOP_RR_T_27_26_SIZE: u32 = 2;
21684pub const INSN_FIELD_C_MOP_T: u32 = 0x700;
21685pub const INSN_FIELD_C_MOP_T_START: u32 = 8;
21686pub const INSN_FIELD_C_MOP_T_SIZE: u32 = 3;
21687pub const INSN_FIELD_RS2_EQ_RS1: u32 = 0x1f00000;
21688pub const INSN_FIELD_RS2_EQ_RS1_START: u32 = 20;
21689pub const INSN_FIELD_RS2_EQ_RS1_SIZE: u32 = 5;
21690
21691/// InstructionValue contains the 32-bit instruction value and also provides access into the desired field.
21692#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
21693#[repr(transparent)]
21694pub struct InstructionValue {
21695    pub value: u32,
21696}
21697
21698impl InstructionValue {
21699    pub const fn new(value: u32) -> Self {
21700        Self { value }
21701    }
21702
21703    pub const fn field<const FIELD_START: usize, const FIELD_SIZE: usize>(self) -> u32 {
21704        (self.value >> FIELD_START) & ((1 << FIELD_SIZE) - 1)
21705    }
21706
21707    pub const fn rd(self) -> u32 {
21708        (self.value >> INSN_FIELD_RD_START) & ((1 << INSN_FIELD_RD_SIZE) - 1)
21709    }
21710
21711    pub const fn set_rd(mut self, value: u32) -> Self {
21712        let mask = INSN_FIELD_RD;
21713        self.value &= !mask;
21714        self.value |= (value & ((1 << INSN_FIELD_RD_SIZE) - 1)) << INSN_FIELD_RD_START;
21715        self
21716    }
21717    pub const fn rt(self) -> u32 {
21718        (self.value >> INSN_FIELD_RT_START) & ((1 << INSN_FIELD_RT_SIZE) - 1)
21719    }
21720
21721    pub const fn set_rt(mut self, value: u32) -> Self {
21722        let mask = INSN_FIELD_RT;
21723        self.value &= !mask;
21724        self.value |= (value & ((1 << INSN_FIELD_RT_SIZE) - 1)) << INSN_FIELD_RT_START;
21725        self
21726    }
21727    pub const fn rs1(self) -> u32 {
21728        (self.value >> INSN_FIELD_RS1_START) & ((1 << INSN_FIELD_RS1_SIZE) - 1)
21729    }
21730
21731    pub const fn set_rs1(mut self, value: u32) -> Self {
21732        let mask = INSN_FIELD_RS1;
21733        self.value &= !mask;
21734        self.value |= (value & ((1 << INSN_FIELD_RS1_SIZE) - 1)) << INSN_FIELD_RS1_START;
21735        self
21736    }
21737    pub const fn rs2(self) -> u32 {
21738        (self.value >> INSN_FIELD_RS2_START) & ((1 << INSN_FIELD_RS2_SIZE) - 1)
21739    }
21740
21741    pub const fn set_rs2(mut self, value: u32) -> Self {
21742        let mask = INSN_FIELD_RS2;
21743        self.value &= !mask;
21744        self.value |= (value & ((1 << INSN_FIELD_RS2_SIZE) - 1)) << INSN_FIELD_RS2_START;
21745        self
21746    }
21747    pub const fn rs3(self) -> u32 {
21748        (self.value >> INSN_FIELD_RS3_START) & ((1 << INSN_FIELD_RS3_SIZE) - 1)
21749    }
21750
21751    pub const fn set_rs3(mut self, value: u32) -> Self {
21752        let mask = INSN_FIELD_RS3;
21753        self.value &= !mask;
21754        self.value |= (value & ((1 << INSN_FIELD_RS3_SIZE) - 1)) << INSN_FIELD_RS3_START;
21755        self
21756    }
21757    pub const fn aqrl(self) -> u32 {
21758        (self.value >> INSN_FIELD_AQRL_START) & ((1 << INSN_FIELD_AQRL_SIZE) - 1)
21759    }
21760
21761    pub const fn set_aqrl(mut self, value: u32) -> Self {
21762        let mask = INSN_FIELD_AQRL;
21763        self.value &= !mask;
21764        self.value |= (value & ((1 << INSN_FIELD_AQRL_SIZE) - 1)) << INSN_FIELD_AQRL_START;
21765        self
21766    }
21767    pub const fn aq(self) -> u32 {
21768        (self.value >> INSN_FIELD_AQ_START) & ((1 << INSN_FIELD_AQ_SIZE) - 1)
21769    }
21770
21771    pub const fn set_aq(mut self, value: u32) -> Self {
21772        let mask = INSN_FIELD_AQ;
21773        self.value &= !mask;
21774        self.value |= (value & ((1 << INSN_FIELD_AQ_SIZE) - 1)) << INSN_FIELD_AQ_START;
21775        self
21776    }
21777    pub const fn rl(self) -> u32 {
21778        (self.value >> INSN_FIELD_RL_START) & ((1 << INSN_FIELD_RL_SIZE) - 1)
21779    }
21780
21781    pub const fn set_rl(mut self, value: u32) -> Self {
21782        let mask = INSN_FIELD_RL;
21783        self.value &= !mask;
21784        self.value |= (value & ((1 << INSN_FIELD_RL_SIZE) - 1)) << INSN_FIELD_RL_START;
21785        self
21786    }
21787    pub const fn fm(self) -> u32 {
21788        (self.value >> INSN_FIELD_FM_START) & ((1 << INSN_FIELD_FM_SIZE) - 1)
21789    }
21790
21791    pub const fn set_fm(mut self, value: u32) -> Self {
21792        let mask = INSN_FIELD_FM;
21793        self.value &= !mask;
21794        self.value |= (value & ((1 << INSN_FIELD_FM_SIZE) - 1)) << INSN_FIELD_FM_START;
21795        self
21796    }
21797    pub const fn pred(self) -> u32 {
21798        (self.value >> INSN_FIELD_PRED_START) & ((1 << INSN_FIELD_PRED_SIZE) - 1)
21799    }
21800
21801    pub const fn set_pred(mut self, value: u32) -> Self {
21802        let mask = INSN_FIELD_PRED;
21803        self.value &= !mask;
21804        self.value |= (value & ((1 << INSN_FIELD_PRED_SIZE) - 1)) << INSN_FIELD_PRED_START;
21805        self
21806    }
21807    pub const fn succ(self) -> u32 {
21808        (self.value >> INSN_FIELD_SUCC_START) & ((1 << INSN_FIELD_SUCC_SIZE) - 1)
21809    }
21810
21811    pub const fn set_succ(mut self, value: u32) -> Self {
21812        let mask = INSN_FIELD_SUCC;
21813        self.value &= !mask;
21814        self.value |= (value & ((1 << INSN_FIELD_SUCC_SIZE) - 1)) << INSN_FIELD_SUCC_START;
21815        self
21816    }
21817    pub const fn rm(self) -> u32 {
21818        (self.value >> INSN_FIELD_RM_START) & ((1 << INSN_FIELD_RM_SIZE) - 1)
21819    }
21820
21821    pub const fn set_rm(mut self, value: u32) -> Self {
21822        let mask = INSN_FIELD_RM;
21823        self.value &= !mask;
21824        self.value |= (value & ((1 << INSN_FIELD_RM_SIZE) - 1)) << INSN_FIELD_RM_START;
21825        self
21826    }
21827    pub const fn funct3(self) -> u32 {
21828        (self.value >> INSN_FIELD_FUNCT3_START) & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)
21829    }
21830
21831    pub const fn set_funct3(mut self, value: u32) -> Self {
21832        let mask = INSN_FIELD_FUNCT3;
21833        self.value &= !mask;
21834        self.value |= (value & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)) << INSN_FIELD_FUNCT3_START;
21835        self
21836    }
21837    pub const fn funct2(self) -> u32 {
21838        (self.value >> INSN_FIELD_FUNCT2_START) & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)
21839    }
21840
21841    pub const fn set_funct2(mut self, value: u32) -> Self {
21842        let mask = INSN_FIELD_FUNCT2;
21843        self.value &= !mask;
21844        self.value |= (value & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)) << INSN_FIELD_FUNCT2_START;
21845        self
21846    }
21847    pub const fn imm20_raw(self) -> u32 {
21848        (self.value >> INSN_FIELD_IMM20_START) & ((1 << INSN_FIELD_IMM20_SIZE) - 1)
21849    }
21850
21851    pub const fn set_imm20_raw(mut self, value: u32) -> Self {
21852        let mask = INSN_FIELD_IMM20;
21853        self.value &= !mask;
21854        self.value |= (value & ((1 << INSN_FIELD_IMM20_SIZE) - 1)) << INSN_FIELD_IMM20_START;
21855        self
21856    }
21857    pub const fn jimm20_raw(self) -> u32 {
21858        (self.value >> INSN_FIELD_JIMM20_START) & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)
21859    }
21860
21861    pub const fn set_jimm20_raw(mut self, value: u32) -> Self {
21862        let mask = INSN_FIELD_JIMM20;
21863        self.value &= !mask;
21864        self.value |= (value & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)) << INSN_FIELD_JIMM20_START;
21865        self
21866    }
21867    pub const fn imm12_raw(self) -> u32 {
21868        (self.value >> INSN_FIELD_IMM12_START) & ((1 << INSN_FIELD_IMM12_SIZE) - 1)
21869    }
21870
21871    pub const fn set_imm12_raw(mut self, value: u32) -> Self {
21872        let mask = INSN_FIELD_IMM12;
21873        self.value &= !mask;
21874        self.value |= (value & ((1 << INSN_FIELD_IMM12_SIZE) - 1)) << INSN_FIELD_IMM12_START;
21875        self
21876    }
21877    pub const fn csr(self) -> u32 {
21878        (self.value >> INSN_FIELD_CSR_START) & ((1 << INSN_FIELD_CSR_SIZE) - 1)
21879    }
21880
21881    pub const fn set_csr(mut self, value: u32) -> Self {
21882        let mask = INSN_FIELD_CSR;
21883        self.value &= !mask;
21884        self.value |= (value & ((1 << INSN_FIELD_CSR_SIZE) - 1)) << INSN_FIELD_CSR_START;
21885        self
21886    }
21887    pub const fn imm12hi_raw(self) -> u32 {
21888        (self.value >> INSN_FIELD_IMM12HI_START) & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)
21889    }
21890
21891    pub const fn set_imm12hi_raw(mut self, value: u32) -> Self {
21892        let mask = INSN_FIELD_IMM12HI;
21893        self.value &= !mask;
21894        self.value |= (value & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)) << INSN_FIELD_IMM12HI_START;
21895        self
21896    }
21897    pub const fn bimm12hi_raw(self) -> u32 {
21898        (self.value >> INSN_FIELD_BIMM12HI_START) & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)
21899    }
21900
21901    pub const fn set_bimm12hi_raw(mut self, value: u32) -> Self {
21902        let mask = INSN_FIELD_BIMM12HI;
21903        self.value &= !mask;
21904        self.value |= (value & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)) << INSN_FIELD_BIMM12HI_START;
21905        self
21906    }
21907    pub const fn imm12lo_raw(self) -> u32 {
21908        (self.value >> INSN_FIELD_IMM12LO_START) & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)
21909    }
21910
21911    pub const fn set_imm12lo_raw(mut self, value: u32) -> Self {
21912        let mask = INSN_FIELD_IMM12LO;
21913        self.value &= !mask;
21914        self.value |= (value & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)) << INSN_FIELD_IMM12LO_START;
21915        self
21916    }
21917    pub const fn bimm12lo_raw(self) -> u32 {
21918        (self.value >> INSN_FIELD_BIMM12LO_START) & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)
21919    }
21920
21921    pub const fn set_bimm12lo_raw(mut self, value: u32) -> Self {
21922        let mask = INSN_FIELD_BIMM12LO;
21923        self.value &= !mask;
21924        self.value |= (value & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)) << INSN_FIELD_BIMM12LO_START;
21925        self
21926    }
21927    pub const fn shamtq(self) -> u32 {
21928        (self.value >> INSN_FIELD_SHAMTQ_START) & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)
21929    }
21930
21931    pub const fn set_shamtq(mut self, value: u32) -> Self {
21932        let mask = INSN_FIELD_SHAMTQ;
21933        self.value &= !mask;
21934        self.value |= (value & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)) << INSN_FIELD_SHAMTQ_START;
21935        self
21936    }
21937    pub const fn shamtw(self) -> u32 {
21938        (self.value >> INSN_FIELD_SHAMTW_START) & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)
21939    }
21940
21941    pub const fn set_shamtw(mut self, value: u32) -> Self {
21942        let mask = INSN_FIELD_SHAMTW;
21943        self.value &= !mask;
21944        self.value |= (value & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)) << INSN_FIELD_SHAMTW_START;
21945        self
21946    }
21947    pub const fn shamtw4(self) -> u32 {
21948        (self.value >> INSN_FIELD_SHAMTW4_START) & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)
21949    }
21950
21951    pub const fn set_shamtw4(mut self, value: u32) -> Self {
21952        let mask = INSN_FIELD_SHAMTW4;
21953        self.value &= !mask;
21954        self.value |= (value & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)) << INSN_FIELD_SHAMTW4_START;
21955        self
21956    }
21957    pub const fn shamtd(self) -> u32 {
21958        (self.value >> INSN_FIELD_SHAMTD_START) & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)
21959    }
21960
21961    pub const fn set_shamtd(mut self, value: u32) -> Self {
21962        let mask = INSN_FIELD_SHAMTD;
21963        self.value &= !mask;
21964        self.value |= (value & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)) << INSN_FIELD_SHAMTD_START;
21965        self
21966    }
21967    pub const fn bs(self) -> u32 {
21968        (self.value >> INSN_FIELD_BS_START) & ((1 << INSN_FIELD_BS_SIZE) - 1)
21969    }
21970
21971    pub const fn set_bs(mut self, value: u32) -> Self {
21972        let mask = INSN_FIELD_BS;
21973        self.value &= !mask;
21974        self.value |= (value & ((1 << INSN_FIELD_BS_SIZE) - 1)) << INSN_FIELD_BS_START;
21975        self
21976    }
21977    pub const fn rnum(self) -> u32 {
21978        (self.value >> INSN_FIELD_RNUM_START) & ((1 << INSN_FIELD_RNUM_SIZE) - 1)
21979    }
21980
21981    pub const fn set_rnum(mut self, value: u32) -> Self {
21982        let mask = INSN_FIELD_RNUM;
21983        self.value &= !mask;
21984        self.value |= (value & ((1 << INSN_FIELD_RNUM_SIZE) - 1)) << INSN_FIELD_RNUM_START;
21985        self
21986    }
21987    pub const fn rc(self) -> u32 {
21988        (self.value >> INSN_FIELD_RC_START) & ((1 << INSN_FIELD_RC_SIZE) - 1)
21989    }
21990
21991    pub const fn set_rc(mut self, value: u32) -> Self {
21992        let mask = INSN_FIELD_RC;
21993        self.value &= !mask;
21994        self.value |= (value & ((1 << INSN_FIELD_RC_SIZE) - 1)) << INSN_FIELD_RC_START;
21995        self
21996    }
21997    pub const fn imm2_raw(self) -> u32 {
21998        (self.value >> INSN_FIELD_IMM2_START) & ((1 << INSN_FIELD_IMM2_SIZE) - 1)
21999    }
22000
22001    pub const fn set_imm2_raw(mut self, value: u32) -> Self {
22002        let mask = INSN_FIELD_IMM2;
22003        self.value &= !mask;
22004        self.value |= (value & ((1 << INSN_FIELD_IMM2_SIZE) - 1)) << INSN_FIELD_IMM2_START;
22005        self
22006    }
22007    pub const fn imm3_raw(self) -> u32 {
22008        (self.value >> INSN_FIELD_IMM3_START) & ((1 << INSN_FIELD_IMM3_SIZE) - 1)
22009    }
22010
22011    pub const fn set_imm3_raw(mut self, value: u32) -> Self {
22012        let mask = INSN_FIELD_IMM3;
22013        self.value &= !mask;
22014        self.value |= (value & ((1 << INSN_FIELD_IMM3_SIZE) - 1)) << INSN_FIELD_IMM3_START;
22015        self
22016    }
22017    pub const fn imm4_raw(self) -> u32 {
22018        (self.value >> INSN_FIELD_IMM4_START) & ((1 << INSN_FIELD_IMM4_SIZE) - 1)
22019    }
22020
22021    pub const fn set_imm4_raw(mut self, value: u32) -> Self {
22022        let mask = INSN_FIELD_IMM4;
22023        self.value &= !mask;
22024        self.value |= (value & ((1 << INSN_FIELD_IMM4_SIZE) - 1)) << INSN_FIELD_IMM4_START;
22025        self
22026    }
22027    pub const fn imm5_raw(self) -> u32 {
22028        (self.value >> INSN_FIELD_IMM5_START) & ((1 << INSN_FIELD_IMM5_SIZE) - 1)
22029    }
22030
22031    pub const fn set_imm5_raw(mut self, value: u32) -> Self {
22032        let mask = INSN_FIELD_IMM5;
22033        self.value &= !mask;
22034        self.value |= (value & ((1 << INSN_FIELD_IMM5_SIZE) - 1)) << INSN_FIELD_IMM5_START;
22035        self
22036    }
22037    pub const fn imm6_raw(self) -> u32 {
22038        (self.value >> INSN_FIELD_IMM6_START) & ((1 << INSN_FIELD_IMM6_SIZE) - 1)
22039    }
22040
22041    pub const fn set_imm6_raw(mut self, value: u32) -> Self {
22042        let mask = INSN_FIELD_IMM6;
22043        self.value &= !mask;
22044        self.value |= (value & ((1 << INSN_FIELD_IMM6_SIZE) - 1)) << INSN_FIELD_IMM6_START;
22045        self
22046    }
22047    pub const fn opcode(self) -> u32 {
22048        (self.value >> INSN_FIELD_OPCODE_START) & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)
22049    }
22050
22051    pub const fn set_opcode(mut self, value: u32) -> Self {
22052        let mask = INSN_FIELD_OPCODE;
22053        self.value &= !mask;
22054        self.value |= (value & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)) << INSN_FIELD_OPCODE_START;
22055        self
22056    }
22057    pub const fn funct7(self) -> u32 {
22058        (self.value >> INSN_FIELD_FUNCT7_START) & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)
22059    }
22060
22061    pub const fn set_funct7(mut self, value: u32) -> Self {
22062        let mask = INSN_FIELD_FUNCT7;
22063        self.value &= !mask;
22064        self.value |= (value & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)) << INSN_FIELD_FUNCT7_START;
22065        self
22066    }
22067    pub const fn vd(self) -> u32 {
22068        (self.value >> INSN_FIELD_VD_START) & ((1 << INSN_FIELD_VD_SIZE) - 1)
22069    }
22070
22071    pub const fn set_vd(mut self, value: u32) -> Self {
22072        let mask = INSN_FIELD_VD;
22073        self.value &= !mask;
22074        self.value |= (value & ((1 << INSN_FIELD_VD_SIZE) - 1)) << INSN_FIELD_VD_START;
22075        self
22076    }
22077    pub const fn vs3(self) -> u32 {
22078        (self.value >> INSN_FIELD_VS3_START) & ((1 << INSN_FIELD_VS3_SIZE) - 1)
22079    }
22080
22081    pub const fn set_vs3(mut self, value: u32) -> Self {
22082        let mask = INSN_FIELD_VS3;
22083        self.value &= !mask;
22084        self.value |= (value & ((1 << INSN_FIELD_VS3_SIZE) - 1)) << INSN_FIELD_VS3_START;
22085        self
22086    }
22087    pub const fn vs1(self) -> u32 {
22088        (self.value >> INSN_FIELD_VS1_START) & ((1 << INSN_FIELD_VS1_SIZE) - 1)
22089    }
22090
22091    pub const fn set_vs1(mut self, value: u32) -> Self {
22092        let mask = INSN_FIELD_VS1;
22093        self.value &= !mask;
22094        self.value |= (value & ((1 << INSN_FIELD_VS1_SIZE) - 1)) << INSN_FIELD_VS1_START;
22095        self
22096    }
22097    pub const fn vs2(self) -> u32 {
22098        (self.value >> INSN_FIELD_VS2_START) & ((1 << INSN_FIELD_VS2_SIZE) - 1)
22099    }
22100
22101    pub const fn set_vs2(mut self, value: u32) -> Self {
22102        let mask = INSN_FIELD_VS2;
22103        self.value &= !mask;
22104        self.value |= (value & ((1 << INSN_FIELD_VS2_SIZE) - 1)) << INSN_FIELD_VS2_START;
22105        self
22106    }
22107    pub const fn vm(self) -> u32 {
22108        (self.value >> INSN_FIELD_VM_START) & ((1 << INSN_FIELD_VM_SIZE) - 1)
22109    }
22110
22111    pub const fn set_vm(mut self, value: u32) -> Self {
22112        let mask = INSN_FIELD_VM;
22113        self.value &= !mask;
22114        self.value |= (value & ((1 << INSN_FIELD_VM_SIZE) - 1)) << INSN_FIELD_VM_START;
22115        self
22116    }
22117    pub const fn wd(self) -> u32 {
22118        (self.value >> INSN_FIELD_WD_START) & ((1 << INSN_FIELD_WD_SIZE) - 1)
22119    }
22120
22121    pub const fn set_wd(mut self, value: u32) -> Self {
22122        let mask = INSN_FIELD_WD;
22123        self.value &= !mask;
22124        self.value |= (value & ((1 << INSN_FIELD_WD_SIZE) - 1)) << INSN_FIELD_WD_START;
22125        self
22126    }
22127    pub const fn amoop(self) -> u32 {
22128        (self.value >> INSN_FIELD_AMOOP_START) & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)
22129    }
22130
22131    pub const fn set_amoop(mut self, value: u32) -> Self {
22132        let mask = INSN_FIELD_AMOOP;
22133        self.value &= !mask;
22134        self.value |= (value & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)) << INSN_FIELD_AMOOP_START;
22135        self
22136    }
22137    pub const fn nf(self) -> u32 {
22138        (self.value >> INSN_FIELD_NF_START) & ((1 << INSN_FIELD_NF_SIZE) - 1)
22139    }
22140
22141    pub const fn set_nf(mut self, value: u32) -> Self {
22142        let mask = INSN_FIELD_NF;
22143        self.value &= !mask;
22144        self.value |= (value & ((1 << INSN_FIELD_NF_SIZE) - 1)) << INSN_FIELD_NF_START;
22145        self
22146    }
22147    pub const fn simm5_raw(self) -> u32 {
22148        (self.value >> INSN_FIELD_SIMM5_START) & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)
22149    }
22150
22151    pub const fn set_simm5_raw(mut self, value: u32) -> Self {
22152        let mask = INSN_FIELD_SIMM5;
22153        self.value &= !mask;
22154        self.value |= (value & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)) << INSN_FIELD_SIMM5_START;
22155        self
22156    }
22157    pub const fn zimm5_raw(self) -> u32 {
22158        (self.value >> INSN_FIELD_ZIMM5_START) & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)
22159    }
22160
22161    pub const fn set_zimm5_raw(mut self, value: u32) -> Self {
22162        let mask = INSN_FIELD_ZIMM5;
22163        self.value &= !mask;
22164        self.value |= (value & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)) << INSN_FIELD_ZIMM5_START;
22165        self
22166    }
22167    pub const fn zimm10_raw(self) -> u32 {
22168        (self.value >> INSN_FIELD_ZIMM10_START) & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)
22169    }
22170
22171    pub const fn set_zimm10_raw(mut self, value: u32) -> Self {
22172        let mask = INSN_FIELD_ZIMM10;
22173        self.value &= !mask;
22174        self.value |= (value & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)) << INSN_FIELD_ZIMM10_START;
22175        self
22176    }
22177    pub const fn zimm11_raw(self) -> u32 {
22178        (self.value >> INSN_FIELD_ZIMM11_START) & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)
22179    }
22180
22181    pub const fn set_zimm11_raw(mut self, value: u32) -> Self {
22182        let mask = INSN_FIELD_ZIMM11;
22183        self.value &= !mask;
22184        self.value |= (value & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)) << INSN_FIELD_ZIMM11_START;
22185        self
22186    }
22187    pub const fn zimm6hi_raw(self) -> u32 {
22188        (self.value >> INSN_FIELD_ZIMM6HI_START) & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)
22189    }
22190
22191    pub const fn set_zimm6hi_raw(mut self, value: u32) -> Self {
22192        let mask = INSN_FIELD_ZIMM6HI;
22193        self.value &= !mask;
22194        self.value |= (value & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)) << INSN_FIELD_ZIMM6HI_START;
22195        self
22196    }
22197    pub const fn zimm6lo_raw(self) -> u32 {
22198        (self.value >> INSN_FIELD_ZIMM6LO_START) & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)
22199    }
22200
22201    pub const fn set_zimm6lo_raw(mut self, value: u32) -> Self {
22202        let mask = INSN_FIELD_ZIMM6LO;
22203        self.value &= !mask;
22204        self.value |= (value & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)) << INSN_FIELD_ZIMM6LO_START;
22205        self
22206    }
22207    pub const fn c_nzuimm10_raw(self) -> u32 {
22208        (self.value >> INSN_FIELD_C_NZUIMM10_START) & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)
22209    }
22210
22211    pub const fn set_c_nzuimm10_raw(mut self, value: u32) -> Self {
22212        let mask = INSN_FIELD_C_NZUIMM10;
22213        self.value &= !mask;
22214        self.value |=
22215            (value & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)) << INSN_FIELD_C_NZUIMM10_START;
22216        self
22217    }
22218    pub const fn c_uimm7lo_raw(self) -> u32 {
22219        (self.value >> INSN_FIELD_C_UIMM7LO_START) & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)
22220    }
22221
22222    pub const fn set_c_uimm7lo_raw(mut self, value: u32) -> Self {
22223        let mask = INSN_FIELD_C_UIMM7LO;
22224        self.value &= !mask;
22225        self.value |=
22226            (value & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)) << INSN_FIELD_C_UIMM7LO_START;
22227        self
22228    }
22229    pub const fn c_uimm7hi_raw(self) -> u32 {
22230        (self.value >> INSN_FIELD_C_UIMM7HI_START) & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)
22231    }
22232
22233    pub const fn set_c_uimm7hi_raw(mut self, value: u32) -> Self {
22234        let mask = INSN_FIELD_C_UIMM7HI;
22235        self.value &= !mask;
22236        self.value |=
22237            (value & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)) << INSN_FIELD_C_UIMM7HI_START;
22238        self
22239    }
22240    pub const fn c_uimm8lo_raw(self) -> u32 {
22241        (self.value >> INSN_FIELD_C_UIMM8LO_START) & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)
22242    }
22243
22244    pub const fn set_c_uimm8lo_raw(mut self, value: u32) -> Self {
22245        let mask = INSN_FIELD_C_UIMM8LO;
22246        self.value &= !mask;
22247        self.value |=
22248            (value & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)) << INSN_FIELD_C_UIMM8LO_START;
22249        self
22250    }
22251    pub const fn c_uimm8hi_raw(self) -> u32 {
22252        (self.value >> INSN_FIELD_C_UIMM8HI_START) & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)
22253    }
22254
22255    pub const fn set_c_uimm8hi_raw(mut self, value: u32) -> Self {
22256        let mask = INSN_FIELD_C_UIMM8HI;
22257        self.value &= !mask;
22258        self.value |=
22259            (value & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)) << INSN_FIELD_C_UIMM8HI_START;
22260        self
22261    }
22262    pub const fn c_uimm9lo_raw(self) -> u32 {
22263        (self.value >> INSN_FIELD_C_UIMM9LO_START) & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)
22264    }
22265
22266    pub const fn set_c_uimm9lo_raw(mut self, value: u32) -> Self {
22267        let mask = INSN_FIELD_C_UIMM9LO;
22268        self.value &= !mask;
22269        self.value |=
22270            (value & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)) << INSN_FIELD_C_UIMM9LO_START;
22271        self
22272    }
22273    pub const fn c_uimm9hi_raw(self) -> u32 {
22274        (self.value >> INSN_FIELD_C_UIMM9HI_START) & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)
22275    }
22276
22277    pub const fn set_c_uimm9hi_raw(mut self, value: u32) -> Self {
22278        let mask = INSN_FIELD_C_UIMM9HI;
22279        self.value &= !mask;
22280        self.value |=
22281            (value & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)) << INSN_FIELD_C_UIMM9HI_START;
22282        self
22283    }
22284    pub const fn c_nzimm6lo_raw(self) -> u32 {
22285        (self.value >> INSN_FIELD_C_NZIMM6LO_START) & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)
22286    }
22287
22288    pub const fn set_c_nzimm6lo_raw(mut self, value: u32) -> Self {
22289        let mask = INSN_FIELD_C_NZIMM6LO;
22290        self.value &= !mask;
22291        self.value |=
22292            (value & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM6LO_START;
22293        self
22294    }
22295    pub const fn c_nzimm6hi_raw(self) -> u32 {
22296        (self.value >> INSN_FIELD_C_NZIMM6HI_START) & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)
22297    }
22298
22299    pub const fn set_c_nzimm6hi_raw(mut self, value: u32) -> Self {
22300        let mask = INSN_FIELD_C_NZIMM6HI;
22301        self.value &= !mask;
22302        self.value |=
22303            (value & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM6HI_START;
22304        self
22305    }
22306    pub const fn c_imm6lo_raw(self) -> u32 {
22307        (self.value >> INSN_FIELD_C_IMM6LO_START) & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)
22308    }
22309
22310    pub const fn set_c_imm6lo_raw(mut self, value: u32) -> Self {
22311        let mask = INSN_FIELD_C_IMM6LO;
22312        self.value &= !mask;
22313        self.value |= (value & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)) << INSN_FIELD_C_IMM6LO_START;
22314        self
22315    }
22316    pub const fn c_imm6hi_raw(self) -> u32 {
22317        (self.value >> INSN_FIELD_C_IMM6HI_START) & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)
22318    }
22319
22320    pub const fn set_c_imm6hi_raw(mut self, value: u32) -> Self {
22321        let mask = INSN_FIELD_C_IMM6HI;
22322        self.value &= !mask;
22323        self.value |= (value & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)) << INSN_FIELD_C_IMM6HI_START;
22324        self
22325    }
22326    pub const fn c_nzimm10hi_raw(self) -> u32 {
22327        (self.value >> INSN_FIELD_C_NZIMM10HI_START) & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)
22328    }
22329
22330    pub const fn set_c_nzimm10hi_raw(mut self, value: u32) -> Self {
22331        let mask = INSN_FIELD_C_NZIMM10HI;
22332        self.value &= !mask;
22333        self.value |=
22334            (value & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM10HI_START;
22335        self
22336    }
22337    pub const fn c_nzimm10lo_raw(self) -> u32 {
22338        (self.value >> INSN_FIELD_C_NZIMM10LO_START) & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)
22339    }
22340
22341    pub const fn set_c_nzimm10lo_raw(mut self, value: u32) -> Self {
22342        let mask = INSN_FIELD_C_NZIMM10LO;
22343        self.value &= !mask;
22344        self.value |=
22345            (value & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM10LO_START;
22346        self
22347    }
22348    pub const fn c_nzimm18hi_raw(self) -> u32 {
22349        (self.value >> INSN_FIELD_C_NZIMM18HI_START) & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)
22350    }
22351
22352    pub const fn set_c_nzimm18hi_raw(mut self, value: u32) -> Self {
22353        let mask = INSN_FIELD_C_NZIMM18HI;
22354        self.value &= !mask;
22355        self.value |=
22356            (value & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM18HI_START;
22357        self
22358    }
22359    pub const fn c_nzimm18lo_raw(self) -> u32 {
22360        (self.value >> INSN_FIELD_C_NZIMM18LO_START) & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)
22361    }
22362
22363    pub const fn set_c_nzimm18lo_raw(mut self, value: u32) -> Self {
22364        let mask = INSN_FIELD_C_NZIMM18LO;
22365        self.value &= !mask;
22366        self.value |=
22367            (value & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM18LO_START;
22368        self
22369    }
22370    pub const fn c_imm12_raw(self) -> u32 {
22371        (self.value >> INSN_FIELD_C_IMM12_START) & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)
22372    }
22373
22374    pub const fn set_c_imm12_raw(mut self, value: u32) -> Self {
22375        let mask = INSN_FIELD_C_IMM12;
22376        self.value &= !mask;
22377        self.value |= (value & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)) << INSN_FIELD_C_IMM12_START;
22378        self
22379    }
22380    pub const fn c_bimm9lo_raw(self) -> u32 {
22381        (self.value >> INSN_FIELD_C_BIMM9LO_START) & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)
22382    }
22383
22384    pub const fn set_c_bimm9lo_raw(mut self, value: u32) -> Self {
22385        let mask = INSN_FIELD_C_BIMM9LO;
22386        self.value &= !mask;
22387        self.value |=
22388            (value & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)) << INSN_FIELD_C_BIMM9LO_START;
22389        self
22390    }
22391    pub const fn c_bimm9hi_raw(self) -> u32 {
22392        (self.value >> INSN_FIELD_C_BIMM9HI_START) & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)
22393    }
22394
22395    pub const fn set_c_bimm9hi_raw(mut self, value: u32) -> Self {
22396        let mask = INSN_FIELD_C_BIMM9HI;
22397        self.value &= !mask;
22398        self.value |=
22399            (value & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)) << INSN_FIELD_C_BIMM9HI_START;
22400        self
22401    }
22402    pub const fn c_nzuimm5_raw(self) -> u32 {
22403        (self.value >> INSN_FIELD_C_NZUIMM5_START) & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)
22404    }
22405
22406    pub const fn set_c_nzuimm5_raw(mut self, value: u32) -> Self {
22407        let mask = INSN_FIELD_C_NZUIMM5;
22408        self.value &= !mask;
22409        self.value |=
22410            (value & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)) << INSN_FIELD_C_NZUIMM5_START;
22411        self
22412    }
22413    pub const fn c_nzuimm6lo_raw(self) -> u32 {
22414        (self.value >> INSN_FIELD_C_NZUIMM6LO_START) & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)
22415    }
22416
22417    pub const fn set_c_nzuimm6lo_raw(mut self, value: u32) -> Self {
22418        let mask = INSN_FIELD_C_NZUIMM6LO;
22419        self.value &= !mask;
22420        self.value |=
22421            (value & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6LO_START;
22422        self
22423    }
22424    pub const fn c_nzuimm6hi_raw(self) -> u32 {
22425        (self.value >> INSN_FIELD_C_NZUIMM6HI_START) & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)
22426    }
22427
22428    pub const fn set_c_nzuimm6hi_raw(mut self, value: u32) -> Self {
22429        let mask = INSN_FIELD_C_NZUIMM6HI;
22430        self.value &= !mask;
22431        self.value |=
22432            (value & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6HI_START;
22433        self
22434    }
22435    pub const fn c_uimm8splo_raw(self) -> u32 {
22436        (self.value >> INSN_FIELD_C_UIMM8SPLO_START) & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)
22437    }
22438
22439    pub const fn set_c_uimm8splo_raw(mut self, value: u32) -> Self {
22440        let mask = INSN_FIELD_C_UIMM8SPLO;
22441        self.value &= !mask;
22442        self.value |=
22443            (value & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPLO_START;
22444        self
22445    }
22446    pub const fn c_uimm8sphi_raw(self) -> u32 {
22447        (self.value >> INSN_FIELD_C_UIMM8SPHI_START) & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)
22448    }
22449
22450    pub const fn set_c_uimm8sphi_raw(mut self, value: u32) -> Self {
22451        let mask = INSN_FIELD_C_UIMM8SPHI;
22452        self.value &= !mask;
22453        self.value |=
22454            (value & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPHI_START;
22455        self
22456    }
22457    pub const fn c_uimm8sp_s_raw(self) -> u32 {
22458        (self.value >> INSN_FIELD_C_UIMM8SP_S_START) & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)
22459    }
22460
22461    pub const fn set_c_uimm8sp_s_raw(mut self, value: u32) -> Self {
22462        let mask = INSN_FIELD_C_UIMM8SP_S;
22463        self.value &= !mask;
22464        self.value |=
22465            (value & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM8SP_S_START;
22466        self
22467    }
22468    pub const fn c_uimm10splo_raw(self) -> u32 {
22469        (self.value >> INSN_FIELD_C_UIMM10SPLO_START) & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)
22470    }
22471
22472    pub const fn set_c_uimm10splo_raw(mut self, value: u32) -> Self {
22473        let mask = INSN_FIELD_C_UIMM10SPLO;
22474        self.value &= !mask;
22475        self.value |=
22476            (value & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPLO_START;
22477        self
22478    }
22479    pub const fn c_uimm10sphi_raw(self) -> u32 {
22480        (self.value >> INSN_FIELD_C_UIMM10SPHI_START) & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)
22481    }
22482
22483    pub const fn set_c_uimm10sphi_raw(mut self, value: u32) -> Self {
22484        let mask = INSN_FIELD_C_UIMM10SPHI;
22485        self.value &= !mask;
22486        self.value |=
22487            (value & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPHI_START;
22488        self
22489    }
22490    pub const fn c_uimm9splo_raw(self) -> u32 {
22491        (self.value >> INSN_FIELD_C_UIMM9SPLO_START) & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)
22492    }
22493
22494    pub const fn set_c_uimm9splo_raw(mut self, value: u32) -> Self {
22495        let mask = INSN_FIELD_C_UIMM9SPLO;
22496        self.value &= !mask;
22497        self.value |=
22498            (value & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPLO_START;
22499        self
22500    }
22501    pub const fn c_uimm9sphi_raw(self) -> u32 {
22502        (self.value >> INSN_FIELD_C_UIMM9SPHI_START) & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)
22503    }
22504
22505    pub const fn set_c_uimm9sphi_raw(mut self, value: u32) -> Self {
22506        let mask = INSN_FIELD_C_UIMM9SPHI;
22507        self.value &= !mask;
22508        self.value |=
22509            (value & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPHI_START;
22510        self
22511    }
22512    pub const fn c_uimm10sp_s_raw(self) -> u32 {
22513        (self.value >> INSN_FIELD_C_UIMM10SP_S_START) & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)
22514    }
22515
22516    pub const fn set_c_uimm10sp_s_raw(mut self, value: u32) -> Self {
22517        let mask = INSN_FIELD_C_UIMM10SP_S;
22518        self.value &= !mask;
22519        self.value |=
22520            (value & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM10SP_S_START;
22521        self
22522    }
22523    pub const fn c_uimm9sp_s_raw(self) -> u32 {
22524        (self.value >> INSN_FIELD_C_UIMM9SP_S_START) & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)
22525    }
22526
22527    pub const fn set_c_uimm9sp_s_raw(mut self, value: u32) -> Self {
22528        let mask = INSN_FIELD_C_UIMM9SP_S;
22529        self.value &= !mask;
22530        self.value |=
22531            (value & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM9SP_S_START;
22532        self
22533    }
22534    pub const fn c_uimm2_raw(self) -> u32 {
22535        (self.value >> INSN_FIELD_C_UIMM2_START) & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)
22536    }
22537
22538    pub const fn set_c_uimm2_raw(mut self, value: u32) -> Self {
22539        let mask = INSN_FIELD_C_UIMM2;
22540        self.value &= !mask;
22541        self.value |= (value & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)) << INSN_FIELD_C_UIMM2_START;
22542        self
22543    }
22544    pub const fn c_uimm1_raw(self) -> u32 {
22545        (self.value >> INSN_FIELD_C_UIMM1_START) & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)
22546    }
22547
22548    pub const fn set_c_uimm1_raw(mut self, value: u32) -> Self {
22549        let mask = INSN_FIELD_C_UIMM1;
22550        self.value &= !mask;
22551        self.value |= (value & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)) << INSN_FIELD_C_UIMM1_START;
22552        self
22553    }
22554    pub const fn c_rlist(self) -> u32 {
22555        (self.value >> INSN_FIELD_C_RLIST_START) & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)
22556    }
22557
22558    pub const fn set_c_rlist(mut self, value: u32) -> Self {
22559        let mask = INSN_FIELD_C_RLIST;
22560        self.value &= !mask;
22561        self.value |= (value & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)) << INSN_FIELD_C_RLIST_START;
22562        self
22563    }
22564    pub const fn c_spimm_raw(self) -> u32 {
22565        (self.value >> INSN_FIELD_C_SPIMM_START) & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)
22566    }
22567
22568    pub const fn set_c_spimm_raw(mut self, value: u32) -> Self {
22569        let mask = INSN_FIELD_C_SPIMM;
22570        self.value &= !mask;
22571        self.value |= (value & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)) << INSN_FIELD_C_SPIMM_START;
22572        self
22573    }
22574    pub const fn c_index(self) -> u32 {
22575        (self.value >> INSN_FIELD_C_INDEX_START) & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)
22576    }
22577
22578    pub const fn set_c_index(mut self, value: u32) -> Self {
22579        let mask = INSN_FIELD_C_INDEX;
22580        self.value &= !mask;
22581        self.value |= (value & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)) << INSN_FIELD_C_INDEX_START;
22582        self
22583    }
22584    pub const fn rs1_p(self) -> u32 {
22585        (self.value >> INSN_FIELD_RS1_P_START) & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)
22586    }
22587
22588    pub const fn set_rs1_p(mut self, value: u32) -> Self {
22589        let mask = INSN_FIELD_RS1_P;
22590        self.value &= !mask;
22591        self.value |= (value & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)) << INSN_FIELD_RS1_P_START;
22592        self
22593    }
22594    pub const fn rs2_p(self) -> u32 {
22595        (self.value >> INSN_FIELD_RS2_P_START) & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)
22596    }
22597
22598    pub const fn set_rs2_p(mut self, value: u32) -> Self {
22599        let mask = INSN_FIELD_RS2_P;
22600        self.value &= !mask;
22601        self.value |= (value & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)) << INSN_FIELD_RS2_P_START;
22602        self
22603    }
22604    pub const fn rd_p(self) -> u32 {
22605        (self.value >> INSN_FIELD_RD_P_START) & ((1 << INSN_FIELD_RD_P_SIZE) - 1)
22606    }
22607
22608    pub const fn set_rd_p(mut self, value: u32) -> Self {
22609        let mask = INSN_FIELD_RD_P;
22610        self.value &= !mask;
22611        self.value |= (value & ((1 << INSN_FIELD_RD_P_SIZE) - 1)) << INSN_FIELD_RD_P_START;
22612        self
22613    }
22614    pub const fn rd_rs1_n0(self) -> u32 {
22615        (self.value >> INSN_FIELD_RD_RS1_N0_START) & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)
22616    }
22617
22618    pub const fn set_rd_rs1_n0(mut self, value: u32) -> Self {
22619        let mask = INSN_FIELD_RD_RS1_N0;
22620        self.value &= !mask;
22621        self.value |=
22622            (value & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RD_RS1_N0_START;
22623        self
22624    }
22625    pub const fn rd_rs1_p(self) -> u32 {
22626        (self.value >> INSN_FIELD_RD_RS1_P_START) & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)
22627    }
22628
22629    pub const fn set_rd_rs1_p(mut self, value: u32) -> Self {
22630        let mask = INSN_FIELD_RD_RS1_P;
22631        self.value &= !mask;
22632        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)) << INSN_FIELD_RD_RS1_P_START;
22633        self
22634    }
22635    pub const fn rd_rs1(self) -> u32 {
22636        (self.value >> INSN_FIELD_RD_RS1_START) & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)
22637    }
22638
22639    pub const fn set_rd_rs1(mut self, value: u32) -> Self {
22640        let mask = INSN_FIELD_RD_RS1;
22641        self.value &= !mask;
22642        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)) << INSN_FIELD_RD_RS1_START;
22643        self
22644    }
22645    pub const fn rd_n2(self) -> u32 {
22646        (self.value >> INSN_FIELD_RD_N2_START) & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)
22647    }
22648
22649    pub const fn set_rd_n2(mut self, value: u32) -> Self {
22650        let mask = INSN_FIELD_RD_N2;
22651        self.value &= !mask;
22652        self.value |= (value & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)) << INSN_FIELD_RD_N2_START;
22653        self
22654    }
22655    pub const fn rd_n0(self) -> u32 {
22656        (self.value >> INSN_FIELD_RD_N0_START) & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)
22657    }
22658
22659    pub const fn set_rd_n0(mut self, value: u32) -> Self {
22660        let mask = INSN_FIELD_RD_N0;
22661        self.value &= !mask;
22662        self.value |= (value & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)) << INSN_FIELD_RD_N0_START;
22663        self
22664    }
22665    pub const fn rs1_n0(self) -> u32 {
22666        (self.value >> INSN_FIELD_RS1_N0_START) & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)
22667    }
22668
22669    pub const fn set_rs1_n0(mut self, value: u32) -> Self {
22670        let mask = INSN_FIELD_RS1_N0;
22671        self.value &= !mask;
22672        self.value |= (value & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RS1_N0_START;
22673        self
22674    }
22675    pub const fn c_rs2_n0(self) -> u32 {
22676        (self.value >> INSN_FIELD_C_RS2_N0_START) & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)
22677    }
22678
22679    pub const fn set_c_rs2_n0(mut self, value: u32) -> Self {
22680        let mask = INSN_FIELD_C_RS2_N0;
22681        self.value &= !mask;
22682        self.value |= (value & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)) << INSN_FIELD_C_RS2_N0_START;
22683        self
22684    }
22685    pub const fn c_rs1_n0(self) -> u32 {
22686        (self.value >> INSN_FIELD_C_RS1_N0_START) & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)
22687    }
22688
22689    pub const fn set_c_rs1_n0(mut self, value: u32) -> Self {
22690        let mask = INSN_FIELD_C_RS1_N0;
22691        self.value &= !mask;
22692        self.value |= (value & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)) << INSN_FIELD_C_RS1_N0_START;
22693        self
22694    }
22695    pub const fn c_rs2(self) -> u32 {
22696        (self.value >> INSN_FIELD_C_RS2_START) & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)
22697    }
22698
22699    pub const fn set_c_rs2(mut self, value: u32) -> Self {
22700        let mask = INSN_FIELD_C_RS2;
22701        self.value &= !mask;
22702        self.value |= (value & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)) << INSN_FIELD_C_RS2_START;
22703        self
22704    }
22705    pub const fn c_sreg1(self) -> u32 {
22706        (self.value >> INSN_FIELD_C_SREG1_START) & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)
22707    }
22708
22709    pub const fn set_c_sreg1(mut self, value: u32) -> Self {
22710        let mask = INSN_FIELD_C_SREG1;
22711        self.value &= !mask;
22712        self.value |= (value & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)) << INSN_FIELD_C_SREG1_START;
22713        self
22714    }
22715    pub const fn c_sreg2(self) -> u32 {
22716        (self.value >> INSN_FIELD_C_SREG2_START) & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)
22717    }
22718
22719    pub const fn set_c_sreg2(mut self, value: u32) -> Self {
22720        let mask = INSN_FIELD_C_SREG2;
22721        self.value &= !mask;
22722        self.value |= (value & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)) << INSN_FIELD_C_SREG2_START;
22723        self
22724    }
22725    pub const fn rd_p_e(self) -> u32 {
22726        (self.value >> INSN_FIELD_RD_P_E_START) & ((1 << INSN_FIELD_RD_P_E_SIZE) - 1)
22727    }
22728
22729    pub const fn set_rd_p_e(mut self, value: u32) -> Self {
22730        let mask = INSN_FIELD_RD_P_E;
22731        self.value &= !mask;
22732        self.value |= (value & ((1 << INSN_FIELD_RD_P_E_SIZE) - 1)) << INSN_FIELD_RD_P_E_START;
22733        self
22734    }
22735    pub const fn rs2_p_e(self) -> u32 {
22736        (self.value >> INSN_FIELD_RS2_P_E_START) & ((1 << INSN_FIELD_RS2_P_E_SIZE) - 1)
22737    }
22738
22739    pub const fn set_rs2_p_e(mut self, value: u32) -> Self {
22740        let mask = INSN_FIELD_RS2_P_E;
22741        self.value &= !mask;
22742        self.value |= (value & ((1 << INSN_FIELD_RS2_P_E_SIZE) - 1)) << INSN_FIELD_RS2_P_E_START;
22743        self
22744    }
22745    pub const fn rd_n0_e(self) -> u32 {
22746        (self.value >> INSN_FIELD_RD_N0_E_START) & ((1 << INSN_FIELD_RD_N0_E_SIZE) - 1)
22747    }
22748
22749    pub const fn set_rd_n0_e(mut self, value: u32) -> Self {
22750        let mask = INSN_FIELD_RD_N0_E;
22751        self.value &= !mask;
22752        self.value |= (value & ((1 << INSN_FIELD_RD_N0_E_SIZE) - 1)) << INSN_FIELD_RD_N0_E_START;
22753        self
22754    }
22755    pub const fn c_rs2_e(self) -> u32 {
22756        (self.value >> INSN_FIELD_C_RS2_E_START) & ((1 << INSN_FIELD_C_RS2_E_SIZE) - 1)
22757    }
22758
22759    pub const fn set_c_rs2_e(mut self, value: u32) -> Self {
22760        let mask = INSN_FIELD_C_RS2_E;
22761        self.value &= !mask;
22762        self.value |= (value & ((1 << INSN_FIELD_C_RS2_E_SIZE) - 1)) << INSN_FIELD_C_RS2_E_START;
22763        self
22764    }
22765    pub const fn rd_e(self) -> u32 {
22766        (self.value >> INSN_FIELD_RD_E_START) & ((1 << INSN_FIELD_RD_E_SIZE) - 1)
22767    }
22768
22769    pub const fn set_rd_e(mut self, value: u32) -> Self {
22770        let mask = INSN_FIELD_RD_E;
22771        self.value &= !mask;
22772        self.value |= (value & ((1 << INSN_FIELD_RD_E_SIZE) - 1)) << INSN_FIELD_RD_E_START;
22773        self
22774    }
22775    pub const fn rs2_e(self) -> u32 {
22776        (self.value >> INSN_FIELD_RS2_E_START) & ((1 << INSN_FIELD_RS2_E_SIZE) - 1)
22777    }
22778
22779    pub const fn set_rs2_e(mut self, value: u32) -> Self {
22780        let mask = INSN_FIELD_RS2_E;
22781        self.value &= !mask;
22782        self.value |= (value & ((1 << INSN_FIELD_RS2_E_SIZE) - 1)) << INSN_FIELD_RS2_E_START;
22783        self
22784    }
22785    pub const fn p_imm10_raw(self) -> u32 {
22786        (self.value >> INSN_FIELD_P_IMM10_START) & ((1 << INSN_FIELD_P_IMM10_SIZE) - 1)
22787    }
22788
22789    pub const fn set_p_imm10_raw(mut self, value: u32) -> Self {
22790        let mask = INSN_FIELD_P_IMM10;
22791        self.value &= !mask;
22792        self.value |= (value & ((1 << INSN_FIELD_P_IMM10_SIZE) - 1)) << INSN_FIELD_P_IMM10_START;
22793        self
22794    }
22795    pub const fn p_imm8_raw(self) -> u32 {
22796        (self.value >> INSN_FIELD_P_IMM8_START) & ((1 << INSN_FIELD_P_IMM8_SIZE) - 1)
22797    }
22798
22799    pub const fn set_p_imm8_raw(mut self, value: u32) -> Self {
22800        let mask = INSN_FIELD_P_IMM8;
22801        self.value &= !mask;
22802        self.value |= (value & ((1 << INSN_FIELD_P_IMM8_SIZE) - 1)) << INSN_FIELD_P_IMM8_START;
22803        self
22804    }
22805    pub const fn p_w_uimm3_raw(self) -> u32 {
22806        (self.value >> INSN_FIELD_P_W_UIMM3_START) & ((1 << INSN_FIELD_P_W_UIMM3_SIZE) - 1)
22807    }
22808
22809    pub const fn set_p_w_uimm3_raw(mut self, value: u32) -> Self {
22810        let mask = INSN_FIELD_P_W_UIMM3;
22811        self.value &= !mask;
22812        self.value |=
22813            (value & ((1 << INSN_FIELD_P_W_UIMM3_SIZE) - 1)) << INSN_FIELD_P_W_UIMM3_START;
22814        self
22815    }
22816    pub const fn p_w_uimm4_raw(self) -> u32 {
22817        (self.value >> INSN_FIELD_P_W_UIMM4_START) & ((1 << INSN_FIELD_P_W_UIMM4_SIZE) - 1)
22818    }
22819
22820    pub const fn set_p_w_uimm4_raw(mut self, value: u32) -> Self {
22821        let mask = INSN_FIELD_P_W_UIMM4;
22822        self.value &= !mask;
22823        self.value |=
22824            (value & ((1 << INSN_FIELD_P_W_UIMM4_SIZE) - 1)) << INSN_FIELD_P_W_UIMM4_START;
22825        self
22826    }
22827    pub const fn p_w_uimm5_raw(self) -> u32 {
22828        (self.value >> INSN_FIELD_P_W_UIMM5_START) & ((1 << INSN_FIELD_P_W_UIMM5_SIZE) - 1)
22829    }
22830
22831    pub const fn set_p_w_uimm5_raw(mut self, value: u32) -> Self {
22832        let mask = INSN_FIELD_P_W_UIMM5;
22833        self.value &= !mask;
22834        self.value |=
22835            (value & ((1 << INSN_FIELD_P_W_UIMM5_SIZE) - 1)) << INSN_FIELD_P_W_UIMM5_START;
22836        self
22837    }
22838    pub const fn p_w_uimm6_raw(self) -> u32 {
22839        (self.value >> INSN_FIELD_P_W_UIMM6_START) & ((1 << INSN_FIELD_P_W_UIMM6_SIZE) - 1)
22840    }
22841
22842    pub const fn set_p_w_uimm6_raw(mut self, value: u32) -> Self {
22843        let mask = INSN_FIELD_P_W_UIMM6;
22844        self.value &= !mask;
22845        self.value |=
22846            (value & ((1 << INSN_FIELD_P_W_UIMM6_SIZE) - 1)) << INSN_FIELD_P_W_UIMM6_START;
22847        self
22848    }
22849    pub const fn p_w(self) -> u32 {
22850        (self.value >> INSN_FIELD_P_W_START) & ((1 << INSN_FIELD_P_W_SIZE) - 1)
22851    }
22852
22853    pub const fn set_p_w(mut self, value: u32) -> Self {
22854        let mask = INSN_FIELD_P_W;
22855        self.value &= !mask;
22856        self.value |= (value & ((1 << INSN_FIELD_P_W_SIZE) - 1)) << INSN_FIELD_P_W_START;
22857        self
22858    }
22859    pub const fn p_rd_p(self) -> u32 {
22860        (self.value >> INSN_FIELD_P_RD_P_START) & ((1 << INSN_FIELD_P_RD_P_SIZE) - 1)
22861    }
22862
22863    pub const fn set_p_rd_p(mut self, value: u32) -> Self {
22864        let mask = INSN_FIELD_P_RD_P;
22865        self.value &= !mask;
22866        self.value |= (value & ((1 << INSN_FIELD_P_RD_P_SIZE) - 1)) << INSN_FIELD_P_RD_P_START;
22867        self
22868    }
22869    pub const fn p_rs1_p(self) -> u32 {
22870        (self.value >> INSN_FIELD_P_RS1_P_START) & ((1 << INSN_FIELD_P_RS1_P_SIZE) - 1)
22871    }
22872
22873    pub const fn set_p_rs1_p(mut self, value: u32) -> Self {
22874        let mask = INSN_FIELD_P_RS1_P;
22875        self.value &= !mask;
22876        self.value |= (value & ((1 << INSN_FIELD_P_RS1_P_SIZE) - 1)) << INSN_FIELD_P_RS1_P_START;
22877        self
22878    }
22879    pub const fn p_rs2_p(self) -> u32 {
22880        (self.value >> INSN_FIELD_P_RS2_P_START) & ((1 << INSN_FIELD_P_RS2_P_SIZE) - 1)
22881    }
22882
22883    pub const fn set_p_rs2_p(mut self, value: u32) -> Self {
22884        let mask = INSN_FIELD_P_RS2_P;
22885        self.value &= !mask;
22886        self.value |= (value & ((1 << INSN_FIELD_P_RS2_P_SIZE) - 1)) << INSN_FIELD_P_RS2_P_START;
22887        self
22888    }
22889    pub const fn mop_r_t_30(self) -> u32 {
22890        (self.value >> INSN_FIELD_MOP_R_T_30_START) & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)
22891    }
22892
22893    pub const fn set_mop_r_t_30(mut self, value: u32) -> Self {
22894        let mask = INSN_FIELD_MOP_R_T_30;
22895        self.value &= !mask;
22896        self.value |=
22897            (value & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)) << INSN_FIELD_MOP_R_T_30_START;
22898        self
22899    }
22900    pub const fn mop_r_t_27_26(self) -> u32 {
22901        (self.value >> INSN_FIELD_MOP_R_T_27_26_START) & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)
22902    }
22903
22904    pub const fn set_mop_r_t_27_26(mut self, value: u32) -> Self {
22905        let mask = INSN_FIELD_MOP_R_T_27_26;
22906        self.value &= !mask;
22907        self.value |=
22908            (value & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)) << INSN_FIELD_MOP_R_T_27_26_START;
22909        self
22910    }
22911    pub const fn mop_r_t_21_20(self) -> u32 {
22912        (self.value >> INSN_FIELD_MOP_R_T_21_20_START) & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)
22913    }
22914
22915    pub const fn set_mop_r_t_21_20(mut self, value: u32) -> Self {
22916        let mask = INSN_FIELD_MOP_R_T_21_20;
22917        self.value &= !mask;
22918        self.value |=
22919            (value & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)) << INSN_FIELD_MOP_R_T_21_20_START;
22920        self
22921    }
22922    pub const fn mop_rr_t_30(self) -> u32 {
22923        (self.value >> INSN_FIELD_MOP_RR_T_30_START) & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)
22924    }
22925
22926    pub const fn set_mop_rr_t_30(mut self, value: u32) -> Self {
22927        let mask = INSN_FIELD_MOP_RR_T_30;
22928        self.value &= !mask;
22929        self.value |=
22930            (value & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)) << INSN_FIELD_MOP_RR_T_30_START;
22931        self
22932    }
22933    pub const fn mop_rr_t_27_26(self) -> u32 {
22934        (self.value >> INSN_FIELD_MOP_RR_T_27_26_START)
22935            & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1)
22936    }
22937
22938    pub const fn set_mop_rr_t_27_26(mut self, value: u32) -> Self {
22939        let mask = INSN_FIELD_MOP_RR_T_27_26;
22940        self.value &= !mask;
22941        self.value |= (value & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1))
22942            << INSN_FIELD_MOP_RR_T_27_26_START;
22943        self
22944    }
22945    pub const fn c_mop_t(self) -> u32 {
22946        (self.value >> INSN_FIELD_C_MOP_T_START) & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)
22947    }
22948
22949    pub const fn set_c_mop_t(mut self, value: u32) -> Self {
22950        let mask = INSN_FIELD_C_MOP_T;
22951        self.value &= !mask;
22952        self.value |= (value & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)) << INSN_FIELD_C_MOP_T_START;
22953        self
22954    }
22955    pub const fn rs2_eq_rs1(self) -> u32 {
22956        (self.value >> INSN_FIELD_RS2_EQ_RS1_START) & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)
22957    }
22958
22959    pub const fn set_rs2_eq_rs1(mut self, value: u32) -> Self {
22960        let mask = INSN_FIELD_RS2_EQ_RS1;
22961        self.value &= !mask;
22962        self.value |=
22963            (value & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)) << INSN_FIELD_RS2_EQ_RS1_START;
22964        self
22965    }
22966
22967    /// imm20
22968    pub const fn imm20(self) -> i32 {
22969        decode_immediate(&IMM20, self.value as _) as _
22970    }
22971
22972    pub const fn set_imm20(mut self, imm20: i32) -> Self {
22973        self.value |= encode_immediate(&IMM20, imm20 as _);
22974        self
22975    }
22976
22977    /// jimm20
22978    pub const fn jimm20(self) -> i32 {
22979        decode_immediate(&JIMM20, self.value as _) as _
22980    }
22981
22982    pub const fn set_jimm20(mut self, jimm20: i32) -> Self {
22983        self.value |= encode_immediate(&JIMM20, jimm20 as _);
22984        self
22985    }
22986
22987    /// imm12
22988    pub const fn imm12(self) -> i32 {
22989        decode_immediate(&IMM12, self.value as _) as _
22990    }
22991
22992    pub const fn set_imm12(mut self, imm12: i32) -> Self {
22993        self.value |= encode_immediate(&IMM12, imm12 as _);
22994        self
22995    }
22996
22997    /// imm12lohi
22998    pub const fn imm12lohi(self) -> i32 {
22999        decode_immediate(&IMM12LOHI, self.value as _) as _
23000    }
23001
23002    pub const fn set_imm12lohi(mut self, imm12lohi: i32) -> Self {
23003        self.value |= encode_immediate(&IMM12LOHI, imm12lohi as _);
23004        self
23005    }
23006
23007    /// bimm12lohi
23008    pub const fn bimm12lohi(self) -> i32 {
23009        decode_immediate(&BIMM12LOHI, self.value as _) as _
23010    }
23011
23012    pub const fn set_bimm12lohi(mut self, bimm12lohi: i32) -> Self {
23013        self.value |= encode_immediate(&BIMM12LOHI, bimm12lohi as _);
23014        self
23015    }
23016
23017    /// simm5
23018    pub const fn simm5(self) -> i32 {
23019        decode_immediate(&SIMM5, self.value as _) as _
23020    }
23021
23022    pub const fn set_simm5(mut self, simm5: i32) -> Self {
23023        self.value |= encode_immediate(&SIMM5, simm5 as _);
23024        self
23025    }
23026
23027    /// zimm5
23028    pub const fn zimm5(self) -> i32 {
23029        decode_immediate(&ZIMM5, self.value as _) as _
23030    }
23031
23032    pub const fn set_zimm5(mut self, zimm5: i32) -> Self {
23033        self.value |= encode_immediate(&ZIMM5, zimm5 as _);
23034        self
23035    }
23036
23037    /// zimm10
23038    pub const fn zimm10(self) -> i32 {
23039        decode_immediate(&ZIMM10, self.value as _) as _
23040    }
23041
23042    pub const fn set_zimm10(mut self, zimm10: i32) -> Self {
23043        self.value |= encode_immediate(&ZIMM10, zimm10 as _);
23044        self
23045    }
23046
23047    /// zimm11
23048    pub const fn zimm11(self) -> i32 {
23049        decode_immediate(&ZIMM11, self.value as _) as _
23050    }
23051
23052    pub const fn set_zimm11(mut self, zimm11: i32) -> Self {
23053        self.value |= encode_immediate(&ZIMM11, zimm11 as _);
23054        self
23055    }
23056
23057    /// zimm6lohi
23058    pub const fn zimm6lohi(self) -> i32 {
23059        decode_immediate(&ZIMM6LOHI, self.value as _) as _
23060    }
23061
23062    pub const fn set_zimm6lohi(mut self, zimm6lohi: i32) -> Self {
23063        self.value |= encode_immediate(&ZIMM6LOHI, zimm6lohi as _);
23064        self
23065    }
23066
23067    /// c_nzuimm10
23068    pub const fn c_nzuimm10(self) -> u32 {
23069        decode_immediate(&C_NZUIMM10, self.value as _) as _
23070    }
23071
23072    pub const fn set_c_nzuimm10(mut self, c_nzuimm10: u32) -> Self {
23073        self.value |= encode_immediate(&C_NZUIMM10, c_nzuimm10 as _);
23074        self
23075    }
23076
23077    /// c_uimm7lohi
23078    pub const fn c_uimm7lohi(self) -> u32 {
23079        decode_immediate(&C_UIMM7LOHI, self.value as _) as _
23080    }
23081
23082    pub const fn set_c_uimm7lohi(mut self, c_uimm7lohi: u32) -> Self {
23083        self.value |= encode_immediate(&C_UIMM7LOHI, c_uimm7lohi as _);
23084        self
23085    }
23086
23087    /// c_uimm8lohi
23088    pub const fn c_uimm8lohi(self) -> u32 {
23089        decode_immediate(&C_UIMM8LOHI, self.value as _) as _
23090    }
23091
23092    pub const fn set_c_uimm8lohi(mut self, c_uimm8lohi: u32) -> Self {
23093        self.value |= encode_immediate(&C_UIMM8LOHI, c_uimm8lohi as _);
23094        self
23095    }
23096
23097    /// c_nzimm6lohi
23098    pub const fn c_nzimm6lohi(self) -> i32 {
23099        decode_immediate(&C_NZIMM6LOHI, self.value as _) as _
23100    }
23101
23102    pub const fn set_c_nzimm6lohi(mut self, c_nzimm6lohi: i32) -> Self {
23103        self.value |= encode_immediate(&C_NZIMM6LOHI, c_nzimm6lohi as _);
23104        self
23105    }
23106
23107    /// c_imm6lohi
23108    pub const fn c_imm6lohi(self) -> i32 {
23109        decode_immediate(&C_IMM6LOHI, self.value as _) as _
23110    }
23111
23112    pub const fn set_c_imm6lohi(mut self, c_imm6lohi: i32) -> Self {
23113        self.value |= encode_immediate(&C_IMM6LOHI, c_imm6lohi as _);
23114        self
23115    }
23116
23117    /// c_nzimm10lohi
23118    pub const fn c_nzimm10lohi(self) -> i32 {
23119        decode_immediate(&C_NZIMM10LOHI, self.value as _) as _
23120    }
23121
23122    pub const fn set_c_nzimm10lohi(mut self, c_nzimm10lohi: i32) -> Self {
23123        self.value |= encode_immediate(&C_NZIMM10LOHI, c_nzimm10lohi as _);
23124        self
23125    }
23126
23127    /// c_nzimm18lohi
23128    pub const fn c_nzimm18lohi(self) -> i32 {
23129        decode_immediate(&C_NZIMM18LOHI, self.value as _) as _
23130    }
23131
23132    pub const fn set_c_nzimm18lohi(mut self, c_nzimm18lohi: i32) -> Self {
23133        self.value |= encode_immediate(&C_NZIMM18LOHI, c_nzimm18lohi as _);
23134        self
23135    }
23136
23137    /// c_imm12
23138    pub const fn c_imm12(self) -> i32 {
23139        decode_immediate(&C_IMM12, self.value as _) as _
23140    }
23141
23142    pub const fn set_c_imm12(mut self, c_imm12: i32) -> Self {
23143        self.value |= encode_immediate(&C_IMM12, c_imm12 as _);
23144        self
23145    }
23146
23147    /// c_bimm9lohi
23148    pub const fn c_bimm9lohi(self) -> i32 {
23149        decode_immediate(&C_BIMM9LOHI, self.value as _) as _
23150    }
23151
23152    pub const fn set_c_bimm9lohi(mut self, c_bimm9lohi: i32) -> Self {
23153        self.value |= encode_immediate(&C_BIMM9LOHI, c_bimm9lohi as _);
23154        self
23155    }
23156
23157    /// c_nzuimm5
23158    pub const fn c_nzuimm5(self) -> u32 {
23159        decode_immediate(&C_NZUIMM5, self.value as _) as _
23160    }
23161
23162    pub const fn set_c_nzuimm5(mut self, c_nzuimm5: u32) -> Self {
23163        self.value |= encode_immediate(&C_NZUIMM5, c_nzuimm5 as _);
23164        self
23165    }
23166
23167    /// c_nzuimm6lohi
23168    pub const fn c_nzuimm6lohi(self) -> u32 {
23169        decode_immediate(&C_NZUIMM6LOHI, self.value as _) as _
23170    }
23171
23172    pub const fn set_c_nzuimm6lohi(mut self, c_nzuimm6lohi: u32) -> Self {
23173        self.value |= encode_immediate(&C_NZUIMM6LOHI, c_nzuimm6lohi as _);
23174        self
23175    }
23176
23177    /// c_uimm8splohi
23178    pub const fn c_uimm8splohi(self) -> u32 {
23179        decode_immediate(&C_UIMM8SPLOHI, self.value as _) as _
23180    }
23181
23182    pub const fn set_c_uimm8splohi(mut self, c_uimm8splohi: u32) -> Self {
23183        self.value |= encode_immediate(&C_UIMM8SPLOHI, c_uimm8splohi as _);
23184        self
23185    }
23186
23187    /// c_uimm8sp_s
23188    pub const fn c_uimm8sp_s(self) -> u32 {
23189        decode_immediate(&C_UIMM8SP_S, self.value as _) as _
23190    }
23191
23192    pub const fn set_c_uimm8sp_s(mut self, c_uimm8sp_s: u32) -> Self {
23193        self.value |= encode_immediate(&C_UIMM8SP_S, c_uimm8sp_s as _);
23194        self
23195    }
23196
23197    /// c_uimm9splohi
23198    pub const fn c_uimm9splohi(self) -> u32 {
23199        decode_immediate(&C_UIMM9SPLOHI, self.value as _) as _
23200    }
23201
23202    pub const fn set_c_uimm9splohi(mut self, c_uimm9splohi: u32) -> Self {
23203        self.value |= encode_immediate(&C_UIMM9SPLOHI, c_uimm9splohi as _);
23204        self
23205    }
23206
23207    /// c_uimm9sp_s
23208    pub const fn c_uimm9sp_s(self) -> u32 {
23209        decode_immediate(&C_UIMM9SP_S, self.value as _) as _
23210    }
23211
23212    pub const fn set_c_uimm9sp_s(mut self, c_uimm9sp_s: u32) -> Self {
23213        self.value |= encode_immediate(&C_UIMM9SP_S, c_uimm9sp_s as _);
23214        self
23215    }
23216
23217    /// c_uimm2
23218    pub const fn c_uimm2(self) -> u32 {
23219        decode_immediate(&C_UIMM2, self.value as _) as _
23220    }
23221
23222    pub const fn set_c_uimm2(mut self, c_uimm2: u32) -> Self {
23223        self.value |= encode_immediate(&C_UIMM2, c_uimm2 as _);
23224        self
23225    }
23226
23227    /// c_uimm1
23228    pub const fn c_uimm1(self) -> u32 {
23229        decode_immediate(&C_UIMM1, self.value as _) as _
23230    }
23231
23232    pub const fn set_c_uimm1(mut self, c_uimm1: u32) -> Self {
23233        self.value |= encode_immediate(&C_UIMM1, c_uimm1 as _);
23234        self
23235    }
23236
23237    /// c_spimm
23238    pub const fn c_spimm(self) -> i32 {
23239        decode_immediate(&C_SPIMM, self.value as _) as _
23240    }
23241
23242    pub const fn set_c_spimm(mut self, c_spimm: i32) -> Self {
23243        self.value |= encode_immediate(&C_SPIMM, c_spimm as _);
23244        self
23245    }
23246}