rubbler 0.1.2

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

struct Inst {
    inst_type: InstType,
    code: u32,
}

#[derive(Clone, Copy, Debug)]
pub enum InstType {
    R,
    I,
    S,
    L,
    B,
    U,
    J,
}

#[derive(Clone, Copy, Debug)]
pub enum AsmArgs {
    RegDest,
    RegSrc1,
    RegSrc2,
    Imm,
    Mem,
}

pub struct Instructions {
    map: HashMap<&'static str, Inst>,
}

static INSTRUCTIONS: OnceLock<Instructions> = OnceLock::new();

macro_rules! insert_inst {
    ($map:expr, $op:ident, $inst_type:ident, $inst_code:ident) => {
        $map.insert(
            stringify!($op),
            Inst {
                inst_type: InstType::$inst_type,
                code: $inst_code,
            },
        );
    };
}

impl Instructions {
    fn new() -> Instructions {
        let mut map = HashMap::new();
        insert_inst!(map, addi, I, MATCH_ADDI);
        insert_inst!(map, andi, I, MATCH_ANDI);
        insert_inst!(map, ori, I, MATCH_ORI);
        insert_inst!(map, xori, I, MATCH_XORI);
        insert_inst!(map, slti, I, MATCH_SLTI);
        insert_inst!(map, sltiu, I, MATCH_SLTIU);
        insert_inst!(map, slli, I, MATCH_SLLI);
        insert_inst!(map, srli, I, MATCH_SRLI);
        insert_inst!(map, srai, I, MATCH_SRAI);
        insert_inst!(map, lui, U, MATCH_LUI);
        insert_inst!(map, auipc, U, MATCH_AUIPC);
        insert_inst!(map, add, R, MATCH_ADD);
        insert_inst!(map, and, R, MATCH_AND);
        insert_inst!(map, or, R, MATCH_OR);
        insert_inst!(map, xor, R, MATCH_XOR);
        insert_inst!(map, slt, R, MATCH_SLT);
        insert_inst!(map, sltu, R, MATCH_SLTU);
        insert_inst!(map, sll, R, MATCH_SLL);
        insert_inst!(map, srl, R, MATCH_SRL);
        insert_inst!(map, sra, R, MATCH_SRA);
        insert_inst!(map, sub, R, MATCH_SUB);
        insert_inst!(map, jal, J, MATCH_JAL);
        insert_inst!(map, jalr, I, MATCH_JALR);
        insert_inst!(map, beq, B, MATCH_BEQ);
        insert_inst!(map, bne, B, MATCH_BNE);
        insert_inst!(map, blt, B, MATCH_BLT);
        insert_inst!(map, bltu, B, MATCH_BLTU);
        insert_inst!(map, bge, B, MATCH_BGE);
        insert_inst!(map, bgeu, B, MATCH_BGEU);
        insert_inst!(map, lw, L, MATCH_LW);
        insert_inst!(map, lh, L, MATCH_LH);
        insert_inst!(map, lhu, L, MATCH_LHU);
        insert_inst!(map, lb, L, MATCH_LB);
        insert_inst!(map, lbu, L, MATCH_LBU);
        insert_inst!(map, sw, S, MATCH_SW);
        insert_inst!(map, sh, S, MATCH_SH);
        insert_inst!(map, sb, S, MATCH_SB);
        Instructions { map }
    }
    pub fn is_valid_op(op: &str) -> bool {
        let instructions = INSTRUCTIONS.get_or_init(|| Instructions::new());
        if let Some(_) = instructions.map.get(op) {
            true
        } else {
            false
        }
    }
    pub fn get_code(op: &str) -> Option<u32> {
        let instructions = INSTRUCTIONS.get_or_init(|| Instructions::new());
        if let Some(i) = instructions.map.get(op) {
            Some(i.code)
        } else {
            None
        }
    }
    pub fn get_args(op: &str) -> Option<Vec<AsmArgs>> {
        let instructions = INSTRUCTIONS.get_or_init(|| Instructions::new());
        if let Some(i) = instructions.map.get(op) {
            Some(i.inst_type.get_args())
        } else {
            None
        }
    }
    pub fn get_type(op: &str) -> Option<InstType> {
        let instructions = INSTRUCTIONS.get_or_init(|| Instructions::new());
        if let Some(i) = instructions.map.get(op) {
            Some(i.inst_type)
        } else {
            None
        }
    }
}

impl InstType {
    fn get_args(&self) -> Vec<AsmArgs> {
        match self {
            InstType::R => vec![AsmArgs::RegDest, AsmArgs::RegSrc1, AsmArgs::RegSrc2],
            InstType::I => vec![AsmArgs::RegDest, AsmArgs::RegSrc1, AsmArgs::Imm],
            InstType::S => vec![AsmArgs::RegSrc2, AsmArgs::Mem],
            InstType::L => vec![AsmArgs::RegDest, AsmArgs::Mem],
            InstType::B => vec![AsmArgs::RegSrc1, AsmArgs::RegSrc2, AsmArgs::Imm],
            InstType::U => vec![AsmArgs::RegDest, AsmArgs::Imm],
            InstType::J => vec![AsmArgs::RegDest, AsmArgs::Imm],
        }
    }
}

/* Automatically generated by parse_opcodes */
const MATCH_ADD: u32 = 0x33;
const MASK_ADD: u32 = 0xfe00707f;
const MATCH_ADD16: u32 = 0x40000077;
const MASK_ADD16: u32 = 0xfe00707f;
const MATCH_ADD32: u32 = 0x40002077;
const MASK_ADD32: u32 = 0xfe00707f;
const MATCH_ADD64: u32 = 0xc0001077;
const MASK_ADD64: u32 = 0xfe00707f;
const MATCH_ADD8: u32 = 0x48000077;
const MASK_ADD8: u32 = 0xfe00707f;
const MATCH_ADD_UW: u32 = 0x800003b;
const MASK_ADD_UW: u32 = 0xfe00707f;
const MATCH_ADDD: u32 = 0x7b;
const MASK_ADDD: u32 = 0xfe00707f;
const MATCH_ADDI: u32 = 0x13;
const MASK_ADDI: u32 = 0x707f;
const MATCH_ADDID: u32 = 0x5b;
const MASK_ADDID: u32 = 0x707f;
const MATCH_ADDIW: u32 = 0x1b;
const MASK_ADDIW: u32 = 0x707f;
const MATCH_ADDW: u32 = 0x3b;
const MASK_ADDW: u32 = 0xfe00707f;
const MATCH_AES32DSI: u32 = 0x2a000033;
const MASK_AES32DSI: u32 = 0x3e00707f;
const MATCH_AES32DSMI: u32 = 0x2e000033;
const MASK_AES32DSMI: u32 = 0x3e00707f;
const MATCH_AES32ESI: u32 = 0x22000033;
const MASK_AES32ESI: u32 = 0x3e00707f;
const MATCH_AES32ESMI: u32 = 0x26000033;
const MASK_AES32ESMI: u32 = 0x3e00707f;
const MATCH_AES64DS: u32 = 0x3a000033;
const MASK_AES64DS: u32 = 0xfe00707f;
const MATCH_AES64DSM: u32 = 0x3e000033;
const MASK_AES64DSM: u32 = 0xfe00707f;
const MATCH_AES64ES: u32 = 0x32000033;
const MASK_AES64ES: u32 = 0xfe00707f;
const MATCH_AES64ESM: u32 = 0x36000033;
const MASK_AES64ESM: u32 = 0xfe00707f;
const MATCH_AES64IM: u32 = 0x30001013;
const MASK_AES64IM: u32 = 0xfff0707f;
const MATCH_AES64KS1I: u32 = 0x31001013;
const MASK_AES64KS1I: u32 = 0xff00707f;
const MATCH_AES64KS2: u32 = 0x7e000033;
const MASK_AES64KS2: u32 = 0xfe00707f;
const MATCH_AMOADD_B: u32 = 0x2f;
const MASK_AMOADD_B: u32 = 0xf800707f;
const MATCH_AMOADD_D: u32 = 0x302f;
const MASK_AMOADD_D: u32 = 0xf800707f;
const MATCH_AMOADD_H: u32 = 0x102f;
const MASK_AMOADD_H: u32 = 0xf800707f;
const MATCH_AMOADD_W: u32 = 0x202f;
const MASK_AMOADD_W: u32 = 0xf800707f;
const MATCH_AMOAND_B: u32 = 0x6000002f;
const MASK_AMOAND_B: u32 = 0xf800707f;
const MATCH_AMOAND_D: u32 = 0x6000302f;
const MASK_AMOAND_D: u32 = 0xf800707f;
const MATCH_AMOAND_H: u32 = 0x6000102f;
const MASK_AMOAND_H: u32 = 0xf800707f;
const MATCH_AMOAND_W: u32 = 0x6000202f;
const MASK_AMOAND_W: u32 = 0xf800707f;
const MATCH_AMOCAS_B: u32 = 0x2800002f;
const MASK_AMOCAS_B: u32 = 0xf800707f;
const MATCH_AMOCAS_D: u32 = 0x2800302f;
const MASK_AMOCAS_D: u32 = 0xf800707f;
const MATCH_AMOCAS_H: u32 = 0x2800102f;
const MASK_AMOCAS_H: u32 = 0xf800707f;
const MATCH_AMOCAS_Q: u32 = 0x2800402f;
const MASK_AMOCAS_Q: u32 = 0xf800707f;
const MATCH_AMOCAS_W: u32 = 0x2800202f;
const MASK_AMOCAS_W: u32 = 0xf800707f;
const MATCH_AMOMAX_B: u32 = 0xa000002f;
const MASK_AMOMAX_B: u32 = 0xf800707f;
const MATCH_AMOMAX_D: u32 = 0xa000302f;
const MASK_AMOMAX_D: u32 = 0xf800707f;
const MATCH_AMOMAX_H: u32 = 0xa000102f;
const MASK_AMOMAX_H: u32 = 0xf800707f;
const MATCH_AMOMAX_W: u32 = 0xa000202f;
const MASK_AMOMAX_W: u32 = 0xf800707f;
const MATCH_AMOMAXU_B: u32 = 0xe000002f;
const MASK_AMOMAXU_B: u32 = 0xf800707f;
const MATCH_AMOMAXU_D: u32 = 0xe000302f;
const MASK_AMOMAXU_D: u32 = 0xf800707f;
const MATCH_AMOMAXU_H: u32 = 0xe000102f;
const MASK_AMOMAXU_H: u32 = 0xf800707f;
const MATCH_AMOMAXU_W: u32 = 0xe000202f;
const MASK_AMOMAXU_W: u32 = 0xf800707f;
const MATCH_AMOMIN_B: u32 = 0x8000002f;
const MASK_AMOMIN_B: u32 = 0xf800707f;
const MATCH_AMOMIN_D: u32 = 0x8000302f;
const MASK_AMOMIN_D: u32 = 0xf800707f;
const MATCH_AMOMIN_H: u32 = 0x8000102f;
const MASK_AMOMIN_H: u32 = 0xf800707f;
const MATCH_AMOMIN_W: u32 = 0x8000202f;
const MASK_AMOMIN_W: u32 = 0xf800707f;
const MATCH_AMOMINU_B: u32 = 0xc000002f;
const MASK_AMOMINU_B: u32 = 0xf800707f;
const MATCH_AMOMINU_D: u32 = 0xc000302f;
const MASK_AMOMINU_D: u32 = 0xf800707f;
const MATCH_AMOMINU_H: u32 = 0xc000102f;
const MASK_AMOMINU_H: u32 = 0xf800707f;
const MATCH_AMOMINU_W: u32 = 0xc000202f;
const MASK_AMOMINU_W: u32 = 0xf800707f;
const MATCH_AMOOR_B: u32 = 0x4000002f;
const MASK_AMOOR_B: u32 = 0xf800707f;
const MATCH_AMOOR_D: u32 = 0x4000302f;
const MASK_AMOOR_D: u32 = 0xf800707f;
const MATCH_AMOOR_H: u32 = 0x4000102f;
const MASK_AMOOR_H: u32 = 0xf800707f;
const MATCH_AMOOR_W: u32 = 0x4000202f;
const MASK_AMOOR_W: u32 = 0xf800707f;
const MATCH_AMOSWAP_B: u32 = 0x800002f;
const MASK_AMOSWAP_B: u32 = 0xf800707f;
const MATCH_AMOSWAP_D: u32 = 0x800302f;
const MASK_AMOSWAP_D: u32 = 0xf800707f;
const MATCH_AMOSWAP_H: u32 = 0x800102f;
const MASK_AMOSWAP_H: u32 = 0xf800707f;
const MATCH_AMOSWAP_W: u32 = 0x800202f;
const MASK_AMOSWAP_W: u32 = 0xf800707f;
const MATCH_AMOXOR_B: u32 = 0x2000002f;
const MASK_AMOXOR_B: u32 = 0xf800707f;
const MATCH_AMOXOR_D: u32 = 0x2000302f;
const MASK_AMOXOR_D: u32 = 0xf800707f;
const MATCH_AMOXOR_H: u32 = 0x2000102f;
const MASK_AMOXOR_H: u32 = 0xf800707f;
const MATCH_AMOXOR_W: u32 = 0x2000202f;
const MASK_AMOXOR_W: u32 = 0xf800707f;
const MATCH_AND: u32 = 0x7033;
const MASK_AND: u32 = 0xfe00707f;
const MATCH_ANDI: u32 = 0x7013;
const MASK_ANDI: u32 = 0x707f;
const MATCH_ANDN: u32 = 0x40007033;
const MASK_ANDN: u32 = 0xfe00707f;
const MATCH_AUIPC: u32 = 0x17;
const MASK_AUIPC: u32 = 0x7f;
const MATCH_AVE: u32 = 0xe0000077;
const MASK_AVE: u32 = 0xfe00707f;
const MATCH_BCLR: u32 = 0x48001033;
const MASK_BCLR: u32 = 0xfe00707f;
const MATCH_BCLRI: u32 = 0x48001013;
const MASK_BCLRI: u32 = 0xfc00707f;
const MATCH_BCOMPRESS: u32 = 0x8006033;
const MASK_BCOMPRESS: u32 = 0xfe00707f;
const MATCH_BCOMPRESSW: u32 = 0x800603b;
const MASK_BCOMPRESSW: u32 = 0xfe00707f;
const MATCH_BDECOMPRESS: u32 = 0x48006033;
const MASK_BDECOMPRESS: u32 = 0xfe00707f;
const MATCH_BDECOMPRESSW: u32 = 0x4800603b;
const MASK_BDECOMPRESSW: u32 = 0xfe00707f;
const MATCH_BEQ: u32 = 0x63;
const MASK_BEQ: u32 = 0x707f;
const MATCH_BEXT: u32 = 0x48005033;
const MASK_BEXT: u32 = 0xfe00707f;
const MATCH_BEXTI: u32 = 0x48005013;
const MASK_BEXTI: u32 = 0xfc00707f;
const MATCH_BFP: u32 = 0x48007033;
const MASK_BFP: u32 = 0xfe00707f;
const MATCH_BFPW: u32 = 0x4800703b;
const MASK_BFPW: u32 = 0xfe00707f;
const MATCH_BGE: u32 = 0x5063;
const MASK_BGE: u32 = 0x707f;
const MATCH_BGEU: u32 = 0x7063;
const MASK_BGEU: u32 = 0x707f;
const MATCH_BINV: u32 = 0x68001033;
const MASK_BINV: u32 = 0xfe00707f;
const MATCH_BINVI: u32 = 0x68001013;
const MASK_BINVI: u32 = 0xfc00707f;
const MATCH_BLT: u32 = 0x4063;
const MASK_BLT: u32 = 0x707f;
const MATCH_BLTU: u32 = 0x6063;
const MASK_BLTU: u32 = 0x707f;
const MATCH_BMATFLIP: u32 = 0x60301013;
const MASK_BMATFLIP: u32 = 0xfff0707f;
const MATCH_BMATOR: u32 = 0x8003033;
const MASK_BMATOR: u32 = 0xfe00707f;
const MATCH_BMATXOR: u32 = 0x48003033;
const MASK_BMATXOR: u32 = 0xfe00707f;
const MATCH_BNE: u32 = 0x1063;
const MASK_BNE: u32 = 0x707f;
const MATCH_BREV8: u32 = 0x68705013;
const MASK_BREV8: u32 = 0xfff0707f;
const MATCH_BSET: u32 = 0x28001033;
const MASK_BSET: u32 = 0xfe00707f;
const MATCH_BSETI: u32 = 0x28001013;
const MASK_BSETI: u32 = 0xfc00707f;
const MATCH_C_ADD: u32 = 0x9002;
const MASK_C_ADD: u32 = 0xf003;
const MATCH_C_ADDI: u32 = 0x1;
const MASK_C_ADDI: u32 = 0xe003;
const MATCH_C_ADDI16SP: u32 = 0x6101;
const MASK_C_ADDI16SP: u32 = 0xef83;
const MATCH_C_ADDI4SPN: u32 = 0x0;
const MASK_C_ADDI4SPN: u32 = 0xe003;
const MATCH_C_ADDIW: u32 = 0x2001;
const MASK_C_ADDIW: u32 = 0xe003;
const MATCH_C_ADDW: u32 = 0x9c21;
const MASK_C_ADDW: u32 = 0xfc63;
const MATCH_C_AND: u32 = 0x8c61;
const MASK_C_AND: u32 = 0xfc63;
const MATCH_C_ANDI: u32 = 0x8801;
const MASK_C_ANDI: u32 = 0xec03;
const MATCH_C_BEQZ: u32 = 0xc001;
const MASK_C_BEQZ: u32 = 0xe003;
const MATCH_C_BNEZ: u32 = 0xe001;
const MASK_C_BNEZ: u32 = 0xe003;
const MATCH_C_EBREAK: u32 = 0x9002;
const MASK_C_EBREAK: u32 = 0xffff;
const MATCH_C_FLD: u32 = 0x2000;
const MASK_C_FLD: u32 = 0xe003;
const MATCH_C_FLDSP: u32 = 0x2002;
const MASK_C_FLDSP: u32 = 0xe003;
const MATCH_C_FLW: u32 = 0x6000;
const MASK_C_FLW: u32 = 0xe003;
const MATCH_C_FLWSP: u32 = 0x6002;
const MASK_C_FLWSP: u32 = 0xe003;
const MATCH_C_FSD: u32 = 0xa000;
const MASK_C_FSD: u32 = 0xe003;
const MATCH_C_FSDSP: u32 = 0xa002;
const MASK_C_FSDSP: u32 = 0xe003;
const MATCH_C_FSW: u32 = 0xe000;
const MASK_C_FSW: u32 = 0xe003;
const MATCH_C_FSWSP: u32 = 0xe002;
const MASK_C_FSWSP: u32 = 0xe003;
const MATCH_C_J: u32 = 0xa001;
const MASK_C_J: u32 = 0xe003;
const MATCH_C_JAL: u32 = 0x2001;
const MASK_C_JAL: u32 = 0xe003;
const MATCH_C_JALR: u32 = 0x9002;
const MASK_C_JALR: u32 = 0xf07f;
const MATCH_C_JR: u32 = 0x8002;
const MASK_C_JR: u32 = 0xf07f;
const MATCH_C_LBU: u32 = 0x8000;
const MASK_C_LBU: u32 = 0xfc03;
const MATCH_C_LD: u32 = 0x6000;
const MASK_C_LD: u32 = 0xe003;
const MATCH_C_LDSP: u32 = 0x6002;
const MASK_C_LDSP: u32 = 0xe003;
const MATCH_C_LH: u32 = 0x8440;
const MASK_C_LH: u32 = 0xfc43;
const MATCH_C_LHU: u32 = 0x8400;
const MASK_C_LHU: u32 = 0xfc43;
const MATCH_C_LI: u32 = 0x4001;
const MASK_C_LI: u32 = 0xe003;
const MATCH_C_LQ: u32 = 0x2000;
const MASK_C_LQ: u32 = 0xe003;
const MATCH_C_LQSP: u32 = 0x2002;
const MASK_C_LQSP: u32 = 0xe003;
const MATCH_C_LUI: u32 = 0x6001;
const MASK_C_LUI: u32 = 0xe003;
const MATCH_C_LW: u32 = 0x4000;
const MASK_C_LW: u32 = 0xe003;
const MATCH_C_LWSP: u32 = 0x4002;
const MASK_C_LWSP: u32 = 0xe003;
const MATCH_C_MOP_1: u32 = 0x6081;
const MASK_C_MOP_1: u32 = 0xffff;
const MATCH_C_MOP_11: u32 = 0x6581;
const MASK_C_MOP_11: u32 = 0xffff;
const MATCH_C_MOP_13: u32 = 0x6681;
const MASK_C_MOP_13: u32 = 0xffff;
const MATCH_C_MOP_15: u32 = 0x6781;
const MASK_C_MOP_15: u32 = 0xffff;
const MATCH_C_MOP_3: u32 = 0x6181;
const MASK_C_MOP_3: u32 = 0xffff;
const MATCH_C_MOP_5: u32 = 0x6281;
const MASK_C_MOP_5: u32 = 0xffff;
const MATCH_C_MOP_7: u32 = 0x6381;
const MASK_C_MOP_7: u32 = 0xffff;
const MATCH_C_MOP_9: u32 = 0x6481;
const MASK_C_MOP_9: u32 = 0xffff;
const MATCH_C_MOP_N: u32 = 0x6081;
const MASK_C_MOP_N: u32 = 0xf8ff;
const MATCH_C_MUL: u32 = 0x9c41;
const MASK_C_MUL: u32 = 0xfc63;
const MATCH_C_MV: u32 = 0x8002;
const MASK_C_MV: u32 = 0xf003;
const MATCH_C_NOP: u32 = 0x1;
const MASK_C_NOP: u32 = 0xef83;
const MATCH_C_NOT: u32 = 0x9c75;
const MASK_C_NOT: u32 = 0xfc7f;
const MATCH_C_NTL_ALL: u32 = 0x9016;
const MASK_C_NTL_ALL: u32 = 0xffff;
const MATCH_C_NTL_P1: u32 = 0x900a;
const MASK_C_NTL_P1: u32 = 0xffff;
const MATCH_C_NTL_PALL: u32 = 0x900e;
const MASK_C_NTL_PALL: u32 = 0xffff;
const MATCH_C_NTL_S1: u32 = 0x9012;
const MASK_C_NTL_S1: u32 = 0xffff;
const MATCH_C_OR: u32 = 0x8c41;
const MASK_C_OR: u32 = 0xfc63;
const MATCH_C_SB: u32 = 0x8800;
const MASK_C_SB: u32 = 0xfc03;
const MATCH_C_SD: u32 = 0xe000;
const MASK_C_SD: u32 = 0xe003;
const MATCH_C_SDSP: u32 = 0xe002;
const MASK_C_SDSP: u32 = 0xe003;
const MATCH_C_SEXT_B: u32 = 0x9c65;
const MASK_C_SEXT_B: u32 = 0xfc7f;
const MATCH_C_SEXT_H: u32 = 0x9c6d;
const MASK_C_SEXT_H: u32 = 0xfc7f;
const MATCH_C_SH: u32 = 0x8c00;
const MASK_C_SH: u32 = 0xfc43;
const MATCH_C_SLLI: u32 = 0x2;
const MASK_C_SLLI: u32 = 0xe003;
const MATCH_C_SLLI_RV32: u32 = 0x2;
const MASK_C_SLLI_RV32: u32 = 0xf003;
const MATCH_C_SQ: u32 = 0xa000;
const MASK_C_SQ: u32 = 0xe003;
const MATCH_C_SQSP: u32 = 0xa002;
const MASK_C_SQSP: u32 = 0xe003;
const MATCH_C_SRAI: u32 = 0x8401;
const MASK_C_SRAI: u32 = 0xec03;
const MATCH_C_SRAI_RV32: u32 = 0x8401;
const MASK_C_SRAI_RV32: u32 = 0xfc03;
const MATCH_C_SRLI: u32 = 0x8001;
const MASK_C_SRLI: u32 = 0xec03;
const MATCH_C_SRLI_RV32: u32 = 0x8001;
const MASK_C_SRLI_RV32: u32 = 0xfc03;
const MATCH_C_SUB: u32 = 0x8c01;
const MASK_C_SUB: u32 = 0xfc63;
const MATCH_C_SUBW: u32 = 0x9c01;
const MASK_C_SUBW: u32 = 0xfc63;
const MATCH_C_SW: u32 = 0xc000;
const MASK_C_SW: u32 = 0xe003;
const MATCH_C_SWSP: u32 = 0xc002;
const MASK_C_SWSP: u32 = 0xe003;
const MATCH_C_XOR: u32 = 0x8c21;
const MASK_C_XOR: u32 = 0xfc63;
const MATCH_C_ZEXT_B: u32 = 0x9c61;
const MASK_C_ZEXT_B: u32 = 0xfc7f;
const MATCH_C_ZEXT_H: u32 = 0x9c69;
const MASK_C_ZEXT_H: u32 = 0xfc7f;
const MATCH_C_ZEXT_W: u32 = 0x9c71;
const MASK_C_ZEXT_W: u32 = 0xfc7f;
const MATCH_CBO_CLEAN: u32 = 0x10200f;
const MASK_CBO_CLEAN: u32 = 0xfff07fff;
const MATCH_CBO_FLUSH: u32 = 0x20200f;
const MASK_CBO_FLUSH: u32 = 0xfff07fff;
const MATCH_CBO_INVAL: u32 = 0x200f;
const MASK_CBO_INVAL: u32 = 0xfff07fff;
const MATCH_CBO_ZERO: u32 = 0x40200f;
const MASK_CBO_ZERO: u32 = 0xfff07fff;
const MATCH_CLMUL: u32 = 0xa001033;
const MASK_CLMUL: u32 = 0xfe00707f;
const MATCH_CLMULH: u32 = 0xa003033;
const MASK_CLMULH: u32 = 0xfe00707f;
const MATCH_CLMULR: u32 = 0xa002033;
const MASK_CLMULR: u32 = 0xfe00707f;
const MATCH_CLROV: u32 = 0x90f073;
const MASK_CLROV: u32 = 0xfffff07f;
const MATCH_CLRS16: u32 = 0xae800077;
const MASK_CLRS16: u32 = 0xfff0707f;
const MATCH_CLRS32: u32 = 0xaf800077;
const MASK_CLRS32: u32 = 0xfff0707f;
const MATCH_CLRS8: u32 = 0xae000077;
const MASK_CLRS8: u32 = 0xfff0707f;
const MATCH_CLZ: u32 = 0x60001013;
const MASK_CLZ: u32 = 0xfff0707f;
const MATCH_CLZ16: u32 = 0xae900077;
const MASK_CLZ16: u32 = 0xfff0707f;
const MATCH_CLZ32: u32 = 0xaf900077;
const MASK_CLZ32: u32 = 0xfff0707f;
const MATCH_CLZ8: u32 = 0xae100077;
const MASK_CLZ8: u32 = 0xfff0707f;
const MATCH_CLZW: u32 = 0x6000101b;
const MASK_CLZW: u32 = 0xfff0707f;
const MATCH_CM_JALT: u32 = 0xa002;
const MASK_CM_JALT: u32 = 0xfc03;
const MATCH_CM_MVA01S: u32 = 0xac62;
const MASK_CM_MVA01S: u32 = 0xfc63;
const MATCH_CM_MVSA01: u32 = 0xac22;
const MASK_CM_MVSA01: u32 = 0xfc63;
const MATCH_CM_POP: u32 = 0xba02;
const MASK_CM_POP: u32 = 0xff03;
const MATCH_CM_POPRET: u32 = 0xbe02;
const MASK_CM_POPRET: u32 = 0xff03;
const MATCH_CM_POPRETZ: u32 = 0xbc02;
const MASK_CM_POPRETZ: u32 = 0xff03;
const MATCH_CM_PUSH: u32 = 0xb802;
const MASK_CM_PUSH: u32 = 0xff03;
const MATCH_CMIX: u32 = 0x6001033;
const MASK_CMIX: u32 = 0x600707f;
const MATCH_CMOV: u32 = 0x6005033;
const MASK_CMOV: u32 = 0x600707f;
const MATCH_CMPEQ16: u32 = 0x4c000077;
const MASK_CMPEQ16: u32 = 0xfe00707f;
const MATCH_CMPEQ8: u32 = 0x4e000077;
const MASK_CMPEQ8: u32 = 0xfe00707f;
const MATCH_CPOP: u32 = 0x60201013;
const MASK_CPOP: u32 = 0xfff0707f;
const MATCH_CPOPW: u32 = 0x6020101b;
const MASK_CPOPW: u32 = 0xfff0707f;
const MATCH_CRAS16: u32 = 0x44000077;
const MASK_CRAS16: u32 = 0xfe00707f;
const MATCH_CRAS32: u32 = 0x44002077;
const MASK_CRAS32: u32 = 0xfe00707f;
const MATCH_CRC32_B: u32 = 0x61001013;
const MASK_CRC32_B: u32 = 0xfff0707f;
const MATCH_CRC32_D: u32 = 0x61301013;
const MASK_CRC32_D: u32 = 0xfff0707f;
const MATCH_CRC32_H: u32 = 0x61101013;
const MASK_CRC32_H: u32 = 0xfff0707f;
const MATCH_CRC32_W: u32 = 0x61201013;
const MASK_CRC32_W: u32 = 0xfff0707f;
const MATCH_CRC32C_B: u32 = 0x61801013;
const MASK_CRC32C_B: u32 = 0xfff0707f;
const MATCH_CRC32C_D: u32 = 0x61b01013;
const MASK_CRC32C_D: u32 = 0xfff0707f;
const MATCH_CRC32C_H: u32 = 0x61901013;
const MASK_CRC32C_H: u32 = 0xfff0707f;
const MATCH_CRC32C_W: u32 = 0x61a01013;
const MASK_CRC32C_W: u32 = 0xfff0707f;
const MATCH_CRSA16: u32 = 0x46000077;
const MASK_CRSA16: u32 = 0xfe00707f;
const MATCH_CRSA32: u32 = 0x46002077;
const MASK_CRSA32: u32 = 0xfe00707f;
const MATCH_CSRRC: u32 = 0x3073;
const MASK_CSRRC: u32 = 0x707f;
const MATCH_CSRRCI: u32 = 0x7073;
const MASK_CSRRCI: u32 = 0x707f;
const MATCH_CSRRS: u32 = 0x2073;
const MASK_CSRRS: u32 = 0x707f;
const MATCH_CSRRSI: u32 = 0x6073;
const MASK_CSRRSI: u32 = 0x707f;
const MATCH_CSRRW: u32 = 0x1073;
const MASK_CSRRW: u32 = 0x707f;
const MATCH_CSRRWI: u32 = 0x5073;
const MASK_CSRRWI: u32 = 0x707f;
const MATCH_CTZ: u32 = 0x60101013;
const MASK_CTZ: u32 = 0xfff0707f;
const MATCH_CTZW: u32 = 0x6010101b;
const MASK_CTZW: u32 = 0xfff0707f;
const MATCH_CZERO_EQZ: u32 = 0xe005033;
const MASK_CZERO_EQZ: u32 = 0xfe00707f;
const MATCH_CZERO_NEZ: u32 = 0xe007033;
const MASK_CZERO_NEZ: u32 = 0xfe00707f;
const MATCH_DIV: u32 = 0x2004033;
const MASK_DIV: u32 = 0xfe00707f;
const MATCH_DIVU: u32 = 0x2005033;
const MASK_DIVU: u32 = 0xfe00707f;
const MATCH_DIVUW: u32 = 0x200503b;
const MASK_DIVUW: u32 = 0xfe00707f;
const MATCH_DIVW: u32 = 0x200403b;
const MASK_DIVW: u32 = 0xfe00707f;
const MATCH_DRET: u32 = 0x7b200073;
const MASK_DRET: u32 = 0xffffffff;
const MATCH_EBREAK: u32 = 0x100073;
const MASK_EBREAK: u32 = 0xffffffff;
const MATCH_ECALL: u32 = 0x73;
const MASK_ECALL: u32 = 0xffffffff;
const MATCH_FADD_D: u32 = 0x2000053;
const MASK_FADD_D: u32 = 0xfe00007f;
const MATCH_FADD_H: u32 = 0x4000053;
const MASK_FADD_H: u32 = 0xfe00007f;
const MATCH_FADD_Q: u32 = 0x6000053;
const MASK_FADD_Q: u32 = 0xfe00007f;
const MATCH_FADD_S: u32 = 0x53;
const MASK_FADD_S: u32 = 0xfe00007f;
const MATCH_FCLASS_D: u32 = 0xe2001053;
const MASK_FCLASS_D: u32 = 0xfff0707f;
const MATCH_FCLASS_H: u32 = 0xe4001053;
const MASK_FCLASS_H: u32 = 0xfff0707f;
const MATCH_FCLASS_Q: u32 = 0xe6001053;
const MASK_FCLASS_Q: u32 = 0xfff0707f;
const MATCH_FCLASS_S: u32 = 0xe0001053;
const MASK_FCLASS_S: u32 = 0xfff0707f;
const MATCH_FCVT_BF16_S: u32 = 0x44800053;
const MASK_FCVT_BF16_S: u32 = 0xfff0007f;
const MATCH_FCVT_D_H: u32 = 0x42200053;
const MASK_FCVT_D_H: u32 = 0xfff0007f;
const MATCH_FCVT_D_L: u32 = 0xd2200053;
const MASK_FCVT_D_L: u32 = 0xfff0007f;
const MATCH_FCVT_D_LU: u32 = 0xd2300053;
const MASK_FCVT_D_LU: u32 = 0xfff0007f;
const MATCH_FCVT_D_Q: u32 = 0x42300053;
const MASK_FCVT_D_Q: u32 = 0xfff0007f;
const MATCH_FCVT_D_S: u32 = 0x42000053;
const MASK_FCVT_D_S: u32 = 0xfff0007f;
const MATCH_FCVT_D_W: u32 = 0xd2000053;
const MASK_FCVT_D_W: u32 = 0xfff0007f;
const MATCH_FCVT_D_WU: u32 = 0xd2100053;
const MASK_FCVT_D_WU: u32 = 0xfff0007f;
const MATCH_FCVT_H_D: u32 = 0x44100053;
const MASK_FCVT_H_D: u32 = 0xfff0007f;
const MATCH_FCVT_H_L: u32 = 0xd4200053;
const MASK_FCVT_H_L: u32 = 0xfff0007f;
const MATCH_FCVT_H_LU: u32 = 0xd4300053;
const MASK_FCVT_H_LU: u32 = 0xfff0007f;
const MATCH_FCVT_H_Q: u32 = 0x44300053;
const MASK_FCVT_H_Q: u32 = 0xfff0007f;
const MATCH_FCVT_H_S: u32 = 0x44000053;
const MASK_FCVT_H_S: u32 = 0xfff0007f;
const MATCH_FCVT_H_W: u32 = 0xd4000053;
const MASK_FCVT_H_W: u32 = 0xfff0007f;
const MATCH_FCVT_H_WU: u32 = 0xd4100053;
const MASK_FCVT_H_WU: u32 = 0xfff0007f;
const MATCH_FCVT_L_D: u32 = 0xc2200053;
const MASK_FCVT_L_D: u32 = 0xfff0007f;
const MATCH_FCVT_L_H: u32 = 0xc4200053;
const MASK_FCVT_L_H: u32 = 0xfff0007f;
const MATCH_FCVT_L_Q: u32 = 0xc6200053;
const MASK_FCVT_L_Q: u32 = 0xfff0007f;
const MATCH_FCVT_L_S: u32 = 0xc0200053;
const MASK_FCVT_L_S: u32 = 0xfff0007f;
const MATCH_FCVT_LU_D: u32 = 0xc2300053;
const MASK_FCVT_LU_D: u32 = 0xfff0007f;
const MATCH_FCVT_LU_H: u32 = 0xc4300053;
const MASK_FCVT_LU_H: u32 = 0xfff0007f;
const MATCH_FCVT_LU_Q: u32 = 0xc6300053;
const MASK_FCVT_LU_Q: u32 = 0xfff0007f;
const MATCH_FCVT_LU_S: u32 = 0xc0300053;
const MASK_FCVT_LU_S: u32 = 0xfff0007f;
const MATCH_FCVT_Q_D: u32 = 0x46100053;
const MASK_FCVT_Q_D: u32 = 0xfff0007f;
const MATCH_FCVT_Q_H: u32 = 0x46200053;
const MASK_FCVT_Q_H: u32 = 0xfff0007f;
const MATCH_FCVT_Q_L: u32 = 0xd6200053;
const MASK_FCVT_Q_L: u32 = 0xfff0007f;
const MATCH_FCVT_Q_LU: u32 = 0xd6300053;
const MASK_FCVT_Q_LU: u32 = 0xfff0007f;
const MATCH_FCVT_Q_S: u32 = 0x46000053;
const MASK_FCVT_Q_S: u32 = 0xfff0007f;
const MATCH_FCVT_Q_W: u32 = 0xd6000053;
const MASK_FCVT_Q_W: u32 = 0xfff0007f;
const MATCH_FCVT_Q_WU: u32 = 0xd6100053;
const MASK_FCVT_Q_WU: u32 = 0xfff0007f;
const MATCH_FCVT_S_BF16: u32 = 0x40600053;
const MASK_FCVT_S_BF16: u32 = 0xfff0007f;
const MATCH_FCVT_S_D: u32 = 0x40100053;
const MASK_FCVT_S_D: u32 = 0xfff0007f;
const MATCH_FCVT_S_H: u32 = 0x40200053;
const MASK_FCVT_S_H: u32 = 0xfff0007f;
const MATCH_FCVT_S_L: u32 = 0xd0200053;
const MASK_FCVT_S_L: u32 = 0xfff0007f;
const MATCH_FCVT_S_LU: u32 = 0xd0300053;
const MASK_FCVT_S_LU: u32 = 0xfff0007f;
const MATCH_FCVT_S_Q: u32 = 0x40300053;
const MASK_FCVT_S_Q: u32 = 0xfff0007f;
const MATCH_FCVT_S_W: u32 = 0xd0000053;
const MASK_FCVT_S_W: u32 = 0xfff0007f;
const MATCH_FCVT_S_WU: u32 = 0xd0100053;
const MASK_FCVT_S_WU: u32 = 0xfff0007f;
const MATCH_FCVT_W_D: u32 = 0xc2000053;
const MASK_FCVT_W_D: u32 = 0xfff0007f;
const MATCH_FCVT_W_H: u32 = 0xc4000053;
const MASK_FCVT_W_H: u32 = 0xfff0007f;
const MATCH_FCVT_W_Q: u32 = 0xc6000053;
const MASK_FCVT_W_Q: u32 = 0xfff0007f;
const MATCH_FCVT_W_S: u32 = 0xc0000053;
const MASK_FCVT_W_S: u32 = 0xfff0007f;
const MATCH_FCVT_WU_D: u32 = 0xc2100053;
const MASK_FCVT_WU_D: u32 = 0xfff0007f;
const MATCH_FCVT_WU_H: u32 = 0xc4100053;
const MASK_FCVT_WU_H: u32 = 0xfff0007f;
const MATCH_FCVT_WU_Q: u32 = 0xc6100053;
const MASK_FCVT_WU_Q: u32 = 0xfff0007f;
const MATCH_FCVT_WU_S: u32 = 0xc0100053;
const MASK_FCVT_WU_S: u32 = 0xfff0007f;
const MATCH_FCVTMOD_W_D: u32 = 0xc2801053;
const MASK_FCVTMOD_W_D: u32 = 0xfff0707f;
const MATCH_FDIV_D: u32 = 0x1a000053;
const MASK_FDIV_D: u32 = 0xfe00007f;
const MATCH_FDIV_H: u32 = 0x1c000053;
const MASK_FDIV_H: u32 = 0xfe00007f;
const MATCH_FDIV_Q: u32 = 0x1e000053;
const MASK_FDIV_Q: u32 = 0xfe00007f;
const MATCH_FDIV_S: u32 = 0x18000053;
const MASK_FDIV_S: u32 = 0xfe00007f;
const MATCH_FENCE: u32 = 0xf;
const MASK_FENCE: u32 = 0x707f;
const MATCH_FENCE_I: u32 = 0x100f;
const MASK_FENCE_I: u32 = 0x707f;
const MATCH_FENCE_TSO: u32 = 0x8330000f;
const MASK_FENCE_TSO: u32 = 0xfff0707f;
const MATCH_FEQ_D: u32 = 0xa2002053;
const MASK_FEQ_D: u32 = 0xfe00707f;
const MATCH_FEQ_H: u32 = 0xa4002053;
const MASK_FEQ_H: u32 = 0xfe00707f;
const MATCH_FEQ_Q: u32 = 0xa6002053;
const MASK_FEQ_Q: u32 = 0xfe00707f;
const MATCH_FEQ_S: u32 = 0xa0002053;
const MASK_FEQ_S: u32 = 0xfe00707f;
const MATCH_FLD: u32 = 0x3007;
const MASK_FLD: u32 = 0x707f;
const MATCH_FLE_D: u32 = 0xa2000053;
const MASK_FLE_D: u32 = 0xfe00707f;
const MATCH_FLE_H: u32 = 0xa4000053;
const MASK_FLE_H: u32 = 0xfe00707f;
const MATCH_FLE_Q: u32 = 0xa6000053;
const MASK_FLE_Q: u32 = 0xfe00707f;
const MATCH_FLE_S: u32 = 0xa0000053;
const MASK_FLE_S: u32 = 0xfe00707f;
const MATCH_FLEQ_D: u32 = 0xa2004053;
const MASK_FLEQ_D: u32 = 0xfe00707f;
const MATCH_FLEQ_H: u32 = 0xa4004053;
const MASK_FLEQ_H: u32 = 0xfe00707f;
const MATCH_FLEQ_Q: u32 = 0xa6004053;
const MASK_FLEQ_Q: u32 = 0xfe00707f;
const MATCH_FLEQ_S: u32 = 0xa0004053;
const MASK_FLEQ_S: u32 = 0xfe00707f;
const MATCH_FLH: u32 = 0x1007;
const MASK_FLH: u32 = 0x707f;
const MATCH_FLI_D: u32 = 0xf2100053;
const MASK_FLI_D: u32 = 0xfff0707f;
const MATCH_FLI_H: u32 = 0xf4100053;
const MASK_FLI_H: u32 = 0xfff0707f;
const MATCH_FLI_Q: u32 = 0xf6100053;
const MASK_FLI_Q: u32 = 0xfff0707f;
const MATCH_FLI_S: u32 = 0xf0100053;
const MASK_FLI_S: u32 = 0xfff0707f;
const MATCH_FLQ: u32 = 0x4007;
const MASK_FLQ: u32 = 0x707f;
const MATCH_FLT_D: u32 = 0xa2001053;
const MASK_FLT_D: u32 = 0xfe00707f;
const MATCH_FLT_H: u32 = 0xa4001053;
const MASK_FLT_H: u32 = 0xfe00707f;
const MATCH_FLT_Q: u32 = 0xa6001053;
const MASK_FLT_Q: u32 = 0xfe00707f;
const MATCH_FLT_S: u32 = 0xa0001053;
const MASK_FLT_S: u32 = 0xfe00707f;
const MATCH_FLTQ_D: u32 = 0xa2005053;
const MASK_FLTQ_D: u32 = 0xfe00707f;
const MATCH_FLTQ_H: u32 = 0xa4005053;
const MASK_FLTQ_H: u32 = 0xfe00707f;
const MATCH_FLTQ_Q: u32 = 0xa6005053;
const MASK_FLTQ_Q: u32 = 0xfe00707f;
const MATCH_FLTQ_S: u32 = 0xa0005053;
const MASK_FLTQ_S: u32 = 0xfe00707f;
const MATCH_FLW: u32 = 0x2007;
const MASK_FLW: u32 = 0x707f;
const MATCH_FMADD_D: u32 = 0x2000043;
const MASK_FMADD_D: u32 = 0x600007f;
const MATCH_FMADD_H: u32 = 0x4000043;
const MASK_FMADD_H: u32 = 0x600007f;
const MATCH_FMADD_Q: u32 = 0x6000043;
const MASK_FMADD_Q: u32 = 0x600007f;
const MATCH_FMADD_S: u32 = 0x43;
const MASK_FMADD_S: u32 = 0x600007f;
const MATCH_FMAX_D: u32 = 0x2a001053;
const MASK_FMAX_D: u32 = 0xfe00707f;
const MATCH_FMAX_H: u32 = 0x2c001053;
const MASK_FMAX_H: u32 = 0xfe00707f;
const MATCH_FMAX_Q: u32 = 0x2e001053;
const MASK_FMAX_Q: u32 = 0xfe00707f;
const MATCH_FMAX_S: u32 = 0x28001053;
const MASK_FMAX_S: u32 = 0xfe00707f;
const MATCH_FMAXM_D: u32 = 0x2a003053;
const MASK_FMAXM_D: u32 = 0xfe00707f;
const MATCH_FMAXM_H: u32 = 0x2c003053;
const MASK_FMAXM_H: u32 = 0xfe00707f;
const MATCH_FMAXM_Q: u32 = 0x2e003053;
const MASK_FMAXM_Q: u32 = 0xfe00707f;
const MATCH_FMAXM_S: u32 = 0x28003053;
const MASK_FMAXM_S: u32 = 0xfe00707f;
const MATCH_FMIN_D: u32 = 0x2a000053;
const MASK_FMIN_D: u32 = 0xfe00707f;
const MATCH_FMIN_H: u32 = 0x2c000053;
const MASK_FMIN_H: u32 = 0xfe00707f;
const MATCH_FMIN_Q: u32 = 0x2e000053;
const MASK_FMIN_Q: u32 = 0xfe00707f;
const MATCH_FMIN_S: u32 = 0x28000053;
const MASK_FMIN_S: u32 = 0xfe00707f;
const MATCH_FMINM_D: u32 = 0x2a002053;
const MASK_FMINM_D: u32 = 0xfe00707f;
const MATCH_FMINM_H: u32 = 0x2c002053;
const MASK_FMINM_H: u32 = 0xfe00707f;
const MATCH_FMINM_Q: u32 = 0x2e002053;
const MASK_FMINM_Q: u32 = 0xfe00707f;
const MATCH_FMINM_S: u32 = 0x28002053;
const MASK_FMINM_S: u32 = 0xfe00707f;
const MATCH_FMSUB_D: u32 = 0x2000047;
const MASK_FMSUB_D: u32 = 0x600007f;
const MATCH_FMSUB_H: u32 = 0x4000047;
const MASK_FMSUB_H: u32 = 0x600007f;
const MATCH_FMSUB_Q: u32 = 0x6000047;
const MASK_FMSUB_Q: u32 = 0x600007f;
const MATCH_FMSUB_S: u32 = 0x47;
const MASK_FMSUB_S: u32 = 0x600007f;
const MATCH_FMUL_D: u32 = 0x12000053;
const MASK_FMUL_D: u32 = 0xfe00007f;
const MATCH_FMUL_H: u32 = 0x14000053;
const MASK_FMUL_H: u32 = 0xfe00007f;
const MATCH_FMUL_Q: u32 = 0x16000053;
const MASK_FMUL_Q: u32 = 0xfe00007f;
const MATCH_FMUL_S: u32 = 0x10000053;
const MASK_FMUL_S: u32 = 0xfe00007f;
const MATCH_FMV_D_X: u32 = 0xf2000053;
const MASK_FMV_D_X: u32 = 0xfff0707f;
const MATCH_FMV_H_X: u32 = 0xf4000053;
const MASK_FMV_H_X: u32 = 0xfff0707f;
const MATCH_FMV_S_X: u32 = 0xf0000053;
const MASK_FMV_S_X: u32 = 0xfff0707f;
const MATCH_FMV_W_X: u32 = 0xf0000053;
const MASK_FMV_W_X: u32 = 0xfff0707f;
const MATCH_FMV_X_D: u32 = 0xe2000053;
const MASK_FMV_X_D: u32 = 0xfff0707f;
const MATCH_FMV_X_H: u32 = 0xe4000053;
const MASK_FMV_X_H: u32 = 0xfff0707f;
const MATCH_FMV_X_S: u32 = 0xe0000053;
const MASK_FMV_X_S: u32 = 0xfff0707f;
const MATCH_FMV_X_W: u32 = 0xe0000053;
const MASK_FMV_X_W: u32 = 0xfff0707f;
const MATCH_FMVH_X_D: u32 = 0xe2100053;
const MASK_FMVH_X_D: u32 = 0xfff0707f;
const MATCH_FMVH_X_Q: u32 = 0xe6100053;
const MASK_FMVH_X_Q: u32 = 0xfff0707f;
const MATCH_FMVP_D_X: u32 = 0xb2000053;
const MASK_FMVP_D_X: u32 = 0xfe00707f;
const MATCH_FMVP_Q_X: u32 = 0xb6000053;
const MASK_FMVP_Q_X: u32 = 0xfe00707f;
const MATCH_FNMADD_D: u32 = 0x200004f;
const MASK_FNMADD_D: u32 = 0x600007f;
const MATCH_FNMADD_H: u32 = 0x400004f;
const MASK_FNMADD_H: u32 = 0x600007f;
const MATCH_FNMADD_Q: u32 = 0x600004f;
const MASK_FNMADD_Q: u32 = 0x600007f;
const MATCH_FNMADD_S: u32 = 0x4f;
const MASK_FNMADD_S: u32 = 0x600007f;
const MATCH_FNMSUB_D: u32 = 0x200004b;
const MASK_FNMSUB_D: u32 = 0x600007f;
const MATCH_FNMSUB_H: u32 = 0x400004b;
const MASK_FNMSUB_H: u32 = 0x600007f;
const MATCH_FNMSUB_Q: u32 = 0x600004b;
const MASK_FNMSUB_Q: u32 = 0x600007f;
const MATCH_FNMSUB_S: u32 = 0x4b;
const MASK_FNMSUB_S: u32 = 0x600007f;
const MATCH_FRCSR: u32 = 0x302073;
const MASK_FRCSR: u32 = 0xfffff07f;
const MATCH_FRFLAGS: u32 = 0x102073;
const MASK_FRFLAGS: u32 = 0xfffff07f;
const MATCH_FROUND_D: u32 = 0x42400053;
const MASK_FROUND_D: u32 = 0xfff0007f;
const MATCH_FROUND_H: u32 = 0x44400053;
const MASK_FROUND_H: u32 = 0xfff0007f;
const MATCH_FROUND_Q: u32 = 0x46400053;
const MASK_FROUND_Q: u32 = 0xfff0007f;
const MATCH_FROUND_S: u32 = 0x40400053;
const MASK_FROUND_S: u32 = 0xfff0007f;
const MATCH_FROUNDNX_D: u32 = 0x42500053;
const MASK_FROUNDNX_D: u32 = 0xfff0007f;
const MATCH_FROUNDNX_H: u32 = 0x44500053;
const MASK_FROUNDNX_H: u32 = 0xfff0007f;
const MATCH_FROUNDNX_Q: u32 = 0x46500053;
const MASK_FROUNDNX_Q: u32 = 0xfff0007f;
const MATCH_FROUNDNX_S: u32 = 0x40500053;
const MASK_FROUNDNX_S: u32 = 0xfff0007f;
const MATCH_FRRM: u32 = 0x202073;
const MASK_FRRM: u32 = 0xfffff07f;
const MATCH_FSCSR: u32 = 0x301073;
const MASK_FSCSR: u32 = 0xfff0707f;
const MATCH_FSD: u32 = 0x3027;
const MASK_FSD: u32 = 0x707f;
const MATCH_FSFLAGS: u32 = 0x101073;
const MASK_FSFLAGS: u32 = 0xfff0707f;
const MATCH_FSFLAGSI: u32 = 0x105073;
const MASK_FSFLAGSI: u32 = 0xfff0707f;
const MATCH_FSGNJ_D: u32 = 0x22000053;
const MASK_FSGNJ_D: u32 = 0xfe00707f;
const MATCH_FSGNJ_H: u32 = 0x24000053;
const MASK_FSGNJ_H: u32 = 0xfe00707f;
const MATCH_FSGNJ_Q: u32 = 0x26000053;
const MASK_FSGNJ_Q: u32 = 0xfe00707f;
const MATCH_FSGNJ_S: u32 = 0x20000053;
const MASK_FSGNJ_S: u32 = 0xfe00707f;
const MATCH_FSGNJN_D: u32 = 0x22001053;
const MASK_FSGNJN_D: u32 = 0xfe00707f;
const MATCH_FSGNJN_H: u32 = 0x24001053;
const MASK_FSGNJN_H: u32 = 0xfe00707f;
const MATCH_FSGNJN_Q: u32 = 0x26001053;
const MASK_FSGNJN_Q: u32 = 0xfe00707f;
const MATCH_FSGNJN_S: u32 = 0x20001053;
const MASK_FSGNJN_S: u32 = 0xfe00707f;
const MATCH_FSGNJX_D: u32 = 0x22002053;
const MASK_FSGNJX_D: u32 = 0xfe00707f;
const MATCH_FSGNJX_H: u32 = 0x24002053;
const MASK_FSGNJX_H: u32 = 0xfe00707f;
const MATCH_FSGNJX_Q: u32 = 0x26002053;
const MASK_FSGNJX_Q: u32 = 0xfe00707f;
const MATCH_FSGNJX_S: u32 = 0x20002053;
const MASK_FSGNJX_S: u32 = 0xfe00707f;
const MATCH_FSH: u32 = 0x1027;
const MASK_FSH: u32 = 0x707f;
const MATCH_FSL: u32 = 0x4001033;
const MASK_FSL: u32 = 0x600707f;
const MATCH_FSLW: u32 = 0x400103b;
const MASK_FSLW: u32 = 0x600707f;
const MATCH_FSQ: u32 = 0x4027;
const MASK_FSQ: u32 = 0x707f;
const MATCH_FSQRT_D: u32 = 0x5a000053;
const MASK_FSQRT_D: u32 = 0xfff0007f;
const MATCH_FSQRT_H: u32 = 0x5c000053;
const MASK_FSQRT_H: u32 = 0xfff0007f;
const MATCH_FSQRT_Q: u32 = 0x5e000053;
const MASK_FSQRT_Q: u32 = 0xfff0007f;
const MATCH_FSQRT_S: u32 = 0x58000053;
const MASK_FSQRT_S: u32 = 0xfff0007f;
const MATCH_FSR: u32 = 0x4005033;
const MASK_FSR: u32 = 0x600707f;
const MATCH_FSRI: u32 = 0x4005013;
const MASK_FSRI: u32 = 0x400707f;
const MATCH_FSRIW: u32 = 0x400501b;
const MASK_FSRIW: u32 = 0x600707f;
const MATCH_FSRM: u32 = 0x201073;
const MASK_FSRM: u32 = 0xfff0707f;
const MATCH_FSRMI: u32 = 0x205073;
const MASK_FSRMI: u32 = 0xfff0707f;
const MATCH_FSRW: u32 = 0x400503b;
const MASK_FSRW: u32 = 0x600707f;
const MATCH_FSUB_D: u32 = 0xa000053;
const MASK_FSUB_D: u32 = 0xfe00007f;
const MATCH_FSUB_H: u32 = 0xc000053;
const MASK_FSUB_H: u32 = 0xfe00007f;
const MATCH_FSUB_Q: u32 = 0xe000053;
const MASK_FSUB_Q: u32 = 0xfe00007f;
const MATCH_FSUB_S: u32 = 0x8000053;
const MASK_FSUB_S: u32 = 0xfe00007f;
const MATCH_FSW: u32 = 0x2027;
const MASK_FSW: u32 = 0x707f;
const MATCH_GORC: u32 = 0x28005033;
const MASK_GORC: u32 = 0xfe00707f;
const MATCH_GORCI: u32 = 0x28005013;
const MASK_GORCI: u32 = 0xfc00707f;
const MATCH_GORCIW: u32 = 0x2800501b;
const MASK_GORCIW: u32 = 0xfe00707f;
const MATCH_GORCW: u32 = 0x2800503b;
const MASK_GORCW: u32 = 0xfe00707f;
const MATCH_GREV: u32 = 0x68005033;
const MASK_GREV: u32 = 0xfe00707f;
const MATCH_GREVI: u32 = 0x68005013;
const MASK_GREVI: u32 = 0xfc00707f;
const MATCH_GREVIW: u32 = 0x6800501b;
const MASK_GREVIW: u32 = 0xfe00707f;
const MATCH_GREVW: u32 = 0x6800503b;
const MASK_GREVW: u32 = 0xfe00707f;
const MATCH_HFENCE_GVMA: u32 = 0x62000073;
const MASK_HFENCE_GVMA: u32 = 0xfe007fff;
const MATCH_HFENCE_VVMA: u32 = 0x22000073;
const MASK_HFENCE_VVMA: u32 = 0xfe007fff;
const MATCH_HINVAL_GVMA: u32 = 0x66000073;
const MASK_HINVAL_GVMA: u32 = 0xfe007fff;
const MATCH_HINVAL_VVMA: u32 = 0x26000073;
const MASK_HINVAL_VVMA: u32 = 0xfe007fff;
const MATCH_HLV_B: u32 = 0x60004073;
const MASK_HLV_B: u32 = 0xfff0707f;
const MATCH_HLV_BU: u32 = 0x60104073;
const MASK_HLV_BU: u32 = 0xfff0707f;
const MATCH_HLV_D: u32 = 0x6c004073;
const MASK_HLV_D: u32 = 0xfff0707f;
const MATCH_HLV_H: u32 = 0x64004073;
const MASK_HLV_H: u32 = 0xfff0707f;
const MATCH_HLV_HU: u32 = 0x64104073;
const MASK_HLV_HU: u32 = 0xfff0707f;
const MATCH_HLV_W: u32 = 0x68004073;
const MASK_HLV_W: u32 = 0xfff0707f;
const MATCH_HLV_WU: u32 = 0x68104073;
const MASK_HLV_WU: u32 = 0xfff0707f;
const MATCH_HLVX_HU: u32 = 0x64304073;
const MASK_HLVX_HU: u32 = 0xfff0707f;
const MATCH_HLVX_WU: u32 = 0x68304073;
const MASK_HLVX_WU: u32 = 0xfff0707f;
const MATCH_HSV_B: u32 = 0x62004073;
const MASK_HSV_B: u32 = 0xfe007fff;
const MATCH_HSV_D: u32 = 0x6e004073;
const MASK_HSV_D: u32 = 0xfe007fff;
const MATCH_HSV_H: u32 = 0x66004073;
const MASK_HSV_H: u32 = 0xfe007fff;
const MATCH_HSV_W: u32 = 0x6a004073;
const MASK_HSV_W: u32 = 0xfe007fff;
const MATCH_INSB: u32 = 0xac000077;
const MASK_INSB: u32 = 0xff80707f;
const MATCH_JAL: u32 = 0x6f;
const MASK_JAL: u32 = 0x7f;
const MATCH_JALR: u32 = 0x67;
const MASK_JALR: u32 = 0x707f;
const MATCH_KABS16: u32 = 0xad100077;
const MASK_KABS16: u32 = 0xfff0707f;
const MATCH_KABS32: u32 = 0xad200077;
const MASK_KABS32: u32 = 0xfff0707f;
const MATCH_KABS8: u32 = 0xad000077;
const MASK_KABS8: u32 = 0xfff0707f;
const MATCH_KABSW: u32 = 0xad400077;
const MASK_KABSW: u32 = 0xfff0707f;
const MATCH_KADD16: u32 = 0x10000077;
const MASK_KADD16: u32 = 0xfe00707f;
const MATCH_KADD32: u32 = 0x10002077;
const MASK_KADD32: u32 = 0xfe00707f;
const MATCH_KADD64: u32 = 0x90001077;
const MASK_KADD64: u32 = 0xfe00707f;
const MATCH_KADD8: u32 = 0x18000077;
const MASK_KADD8: u32 = 0xfe00707f;
const MATCH_KADDH: u32 = 0x4001077;
const MASK_KADDH: u32 = 0xfe00707f;
const MATCH_KADDW: u32 = 0x1077;
const MASK_KADDW: u32 = 0xfe00707f;
const MATCH_KCRAS16: u32 = 0x14000077;
const MASK_KCRAS16: u32 = 0xfe00707f;
const MATCH_KCRAS32: u32 = 0x14002077;
const MASK_KCRAS32: u32 = 0xfe00707f;
const MATCH_KCRSA16: u32 = 0x16000077;
const MASK_KCRSA16: u32 = 0xfe00707f;
const MATCH_KCRSA32: u32 = 0x16002077;
const MASK_KCRSA32: u32 = 0xfe00707f;
const MATCH_KDMABB: u32 = 0xd2001077;
const MASK_KDMABB: u32 = 0xfe00707f;
const MATCH_KDMABB16: u32 = 0xd8001077;
const MASK_KDMABB16: u32 = 0xfe00707f;
const MATCH_KDMABT: u32 = 0xe2001077;
const MASK_KDMABT: u32 = 0xfe00707f;
const MATCH_KDMABT16: u32 = 0xe8001077;
const MASK_KDMABT16: u32 = 0xfe00707f;
const MATCH_KDMATT: u32 = 0xf2001077;
const MASK_KDMATT: u32 = 0xfe00707f;
const MATCH_KDMATT16: u32 = 0xf8001077;
const MASK_KDMATT16: u32 = 0xfe00707f;
const MATCH_KDMBB: u32 = 0xa001077;
const MASK_KDMBB: u32 = 0xfe00707f;
const MATCH_KDMBB16: u32 = 0xda001077;
const MASK_KDMBB16: u32 = 0xfe00707f;
const MATCH_KDMBT: u32 = 0x1a001077;
const MASK_KDMBT: u32 = 0xfe00707f;
const MATCH_KDMBT16: u32 = 0xea001077;
const MASK_KDMBT16: u32 = 0xfe00707f;
const MATCH_KDMTT: u32 = 0x2a001077;
const MASK_KDMTT: u32 = 0xfe00707f;
const MATCH_KDMTT16: u32 = 0xfa001077;
const MASK_KDMTT16: u32 = 0xfe00707f;
const MATCH_KHM16: u32 = 0x86000077;
const MASK_KHM16: u32 = 0xfe00707f;
const MATCH_KHM8: u32 = 0x8e000077;
const MASK_KHM8: u32 = 0xfe00707f;
const MATCH_KHMBB: u32 = 0xc001077;
const MASK_KHMBB: u32 = 0xfe00707f;
const MATCH_KHMBB16: u32 = 0xdc001077;
const MASK_KHMBB16: u32 = 0xfe00707f;
const MATCH_KHMBT: u32 = 0x1c001077;
const MASK_KHMBT: u32 = 0xfe00707f;
const MATCH_KHMBT16: u32 = 0xec001077;
const MASK_KHMBT16: u32 = 0xfe00707f;
const MATCH_KHMTT: u32 = 0x2c001077;
const MASK_KHMTT: u32 = 0xfe00707f;
const MATCH_KHMTT16: u32 = 0xfc001077;
const MASK_KHMTT16: u32 = 0xfe00707f;
const MATCH_KHMX16: u32 = 0x96000077;
const MASK_KHMX16: u32 = 0xfe00707f;
const MATCH_KHMX8: u32 = 0x9e000077;
const MASK_KHMX8: u32 = 0xfe00707f;
const MATCH_KMABB: u32 = 0x5a001077;
const MASK_KMABB: u32 = 0xfe00707f;
const MATCH_KMABB32: u32 = 0x5a002077;
const MASK_KMABB32: u32 = 0xfe00707f;
const MATCH_KMABT: u32 = 0x6a001077;
const MASK_KMABT: u32 = 0xfe00707f;
const MATCH_KMABT32: u32 = 0x6a002077;
const MASK_KMABT32: u32 = 0xfe00707f;
const MATCH_KMADA: u32 = 0x48001077;
const MASK_KMADA: u32 = 0xfe00707f;
const MATCH_KMADRS: u32 = 0x6c001077;
const MASK_KMADRS: u32 = 0xfe00707f;
const MATCH_KMADRS32: u32 = 0x6c002077;
const MASK_KMADRS32: u32 = 0xfe00707f;
const MATCH_KMADS: u32 = 0x5c001077;
const MASK_KMADS: u32 = 0xfe00707f;
const MATCH_KMADS32: u32 = 0x5c002077;
const MASK_KMADS32: u32 = 0xfe00707f;
const MATCH_KMAR64: u32 = 0x94001077;
const MASK_KMAR64: u32 = 0xfe00707f;
const MATCH_KMATT: u32 = 0x7a001077;
const MASK_KMATT: u32 = 0xfe00707f;
const MATCH_KMATT32: u32 = 0x7a002077;
const MASK_KMATT32: u32 = 0xfe00707f;
const MATCH_KMAXDA: u32 = 0x4a001077;
const MASK_KMAXDA: u32 = 0xfe00707f;
const MATCH_KMAXDA32: u32 = 0x4a002077;
const MASK_KMAXDA32: u32 = 0xfe00707f;
const MATCH_KMAXDS: u32 = 0x7c001077;
const MASK_KMAXDS: u32 = 0xfe00707f;
const MATCH_KMAXDS32: u32 = 0x7c002077;
const MASK_KMAXDS32: u32 = 0xfe00707f;
const MATCH_KMDA: u32 = 0x38001077;
const MASK_KMDA: u32 = 0xfe00707f;
const MATCH_KMDA32: u32 = 0x38002077;
const MASK_KMDA32: u32 = 0xfe00707f;
const MATCH_KMMAC: u32 = 0x60001077;
const MASK_KMMAC: u32 = 0xfe00707f;
const MATCH_KMMAC_U: u32 = 0x70001077;
const MASK_KMMAC_U: u32 = 0xfe00707f;
const MATCH_KMMAWB: u32 = 0x46001077;
const MASK_KMMAWB: u32 = 0xfe00707f;
const MATCH_KMMAWB2: u32 = 0xce001077;
const MASK_KMMAWB2: u32 = 0xfe00707f;
const MATCH_KMMAWB2_U: u32 = 0xde001077;
const MASK_KMMAWB2_U: u32 = 0xfe00707f;
const MATCH_KMMAWB_U: u32 = 0x56001077;
const MASK_KMMAWB_U: u32 = 0xfe00707f;
const MATCH_KMMAWT: u32 = 0x66001077;
const MASK_KMMAWT: u32 = 0xfe00707f;
const MATCH_KMMAWT2: u32 = 0xee001077;
const MASK_KMMAWT2: u32 = 0xfe00707f;
const MATCH_KMMAWT2_U: u32 = 0xfe001077;
const MASK_KMMAWT2_U: u32 = 0xfe00707f;
const MATCH_KMMAWT_U: u32 = 0x76001077;
const MASK_KMMAWT_U: u32 = 0xfe00707f;
const MATCH_KMMSB: u32 = 0x42001077;
const MASK_KMMSB: u32 = 0xfe00707f;
const MATCH_KMMSB_U: u32 = 0x52001077;
const MASK_KMMSB_U: u32 = 0xfe00707f;
const MATCH_KMMWB2: u32 = 0x8e001077;
const MASK_KMMWB2: u32 = 0xfe00707f;
const MATCH_KMMWB2_U: u32 = 0x9e001077;
const MASK_KMMWB2_U: u32 = 0xfe00707f;
const MATCH_KMMWT2: u32 = 0xae001077;
const MASK_KMMWT2: u32 = 0xfe00707f;
const MATCH_KMMWT2_U: u32 = 0xbe001077;
const MASK_KMMWT2_U: u32 = 0xfe00707f;
const MATCH_KMSDA: u32 = 0x4c001077;
const MASK_KMSDA: u32 = 0xfe00707f;
const MATCH_KMSDA32: u32 = 0x4c002077;
const MASK_KMSDA32: u32 = 0xfe00707f;
const MATCH_KMSR64: u32 = 0x96001077;
const MASK_KMSR64: u32 = 0xfe00707f;
const MATCH_KMSXDA: u32 = 0x4e001077;
const MASK_KMSXDA: u32 = 0xfe00707f;
const MATCH_KMSXDA32: u32 = 0x4e002077;
const MASK_KMSXDA32: u32 = 0xfe00707f;
const MATCH_KMXDA: u32 = 0x3a001077;
const MASK_KMXDA: u32 = 0xfe00707f;
const MATCH_KMXDA32: u32 = 0x3a002077;
const MASK_KMXDA32: u32 = 0xfe00707f;
const MATCH_KSLL16: u32 = 0x64000077;
const MASK_KSLL16: u32 = 0xfe00707f;
const MATCH_KSLL32: u32 = 0x64002077;
const MASK_KSLL32: u32 = 0xfe00707f;
const MATCH_KSLL8: u32 = 0x6c000077;
const MASK_KSLL8: u32 = 0xfe00707f;
const MATCH_KSLLI16: u32 = 0x75000077;
const MASK_KSLLI16: u32 = 0xff00707f;
const MATCH_KSLLI32: u32 = 0x84002077;
const MASK_KSLLI32: u32 = 0xfe00707f;
const MATCH_KSLLI8: u32 = 0x7c800077;
const MASK_KSLLI8: u32 = 0xff80707f;
const MATCH_KSLLIW: u32 = 0x36001077;
const MASK_KSLLIW: u32 = 0xfe00707f;
const MATCH_KSLLW: u32 = 0x26001077;
const MASK_KSLLW: u32 = 0xfe00707f;
const MATCH_KSLRA16: u32 = 0x56000077;
const MASK_KSLRA16: u32 = 0xfe00707f;
const MATCH_KSLRA16_U: u32 = 0x66000077;
const MASK_KSLRA16_U: u32 = 0xfe00707f;
const MATCH_KSLRA32: u32 = 0x56002077;
const MASK_KSLRA32: u32 = 0xfe00707f;
const MATCH_KSLRA32_U: u32 = 0x66002077;
const MASK_KSLRA32_U: u32 = 0xfe00707f;
const MATCH_KSLRA8: u32 = 0x5e000077;
const MASK_KSLRA8: u32 = 0xfe00707f;
const MATCH_KSLRA8_U: u32 = 0x6e000077;
const MASK_KSLRA8_U: u32 = 0xfe00707f;
const MATCH_KSLRAW: u32 = 0x6e001077;
const MASK_KSLRAW: u32 = 0xfe00707f;
const MATCH_KSLRAW_U: u32 = 0x7e001077;
const MASK_KSLRAW_U: u32 = 0xfe00707f;
const MATCH_KSTAS16: u32 = 0xc4002077;
const MASK_KSTAS16: u32 = 0xfe00707f;
const MATCH_KSTAS32: u32 = 0xc0002077;
const MASK_KSTAS32: u32 = 0xfe00707f;
const MATCH_KSTSA16: u32 = 0xc6002077;
const MASK_KSTSA16: u32 = 0xfe00707f;
const MATCH_KSTSA32: u32 = 0xc2002077;
const MASK_KSTSA32: u32 = 0xfe00707f;
const MATCH_KSUB16: u32 = 0x12000077;
const MASK_KSUB16: u32 = 0xfe00707f;
const MATCH_KSUB32: u32 = 0x12002077;
const MASK_KSUB32: u32 = 0xfe00707f;
const MATCH_KSUB64: u32 = 0x92001077;
const MASK_KSUB64: u32 = 0xfe00707f;
const MATCH_KSUB8: u32 = 0x1a000077;
const MASK_KSUB8: u32 = 0xfe00707f;
const MATCH_KSUBH: u32 = 0x6001077;
const MASK_KSUBH: u32 = 0xfe00707f;
const MATCH_KSUBW: u32 = 0x2001077;
const MASK_KSUBW: u32 = 0xfe00707f;
const MATCH_KWMMUL: u32 = 0x62001077;
const MASK_KWMMUL: u32 = 0xfe00707f;
const MATCH_KWMMUL_U: u32 = 0x72001077;
const MASK_KWMMUL_U: u32 = 0xfe00707f;
const MATCH_LB: u32 = 0x3;
const MASK_LB: u32 = 0x707f;
const MATCH_LB_AQ: u32 = 0x3400002f;
const MASK_LB_AQ: u32 = 0xfdf0707f;
const MATCH_LBU: u32 = 0x4003;
const MASK_LBU: u32 = 0x707f;
const MATCH_LD: u32 = 0x3003;
const MASK_LD: u32 = 0x707f;
const MATCH_LD_AQ: u32 = 0x3400302f;
const MASK_LD_AQ: u32 = 0xfdf0707f;
const MATCH_LDU: u32 = 0x7003;
const MASK_LDU: u32 = 0x707f;
const MATCH_LH: u32 = 0x1003;
const MASK_LH: u32 = 0x707f;
const MATCH_LH_AQ: u32 = 0x3400102f;
const MASK_LH_AQ: u32 = 0xfdf0707f;
const MATCH_LHU: u32 = 0x5003;
const MASK_LHU: u32 = 0x707f;
const MATCH_LQ: u32 = 0x300f;
const MASK_LQ: u32 = 0x707f;
const MATCH_LR_D: u32 = 0x1000302f;
const MASK_LR_D: u32 = 0xf9f0707f;
const MATCH_LR_W: u32 = 0x1000202f;
const MASK_LR_W: u32 = 0xf9f0707f;
const MATCH_LUI: u32 = 0x37;
const MASK_LUI: u32 = 0x7f;
const MATCH_LW: u32 = 0x2003;
const MASK_LW: u32 = 0x707f;
const MATCH_LW_AQ: u32 = 0x3400202f;
const MASK_LW_AQ: u32 = 0xfdf0707f;
const MATCH_LWU: u32 = 0x6003;
const MASK_LWU: u32 = 0x707f;
const MATCH_MADDR32: u32 = 0xc4001077;
const MASK_MADDR32: u32 = 0xfe00707f;
const MATCH_MAX: u32 = 0xa006033;
const MASK_MAX: u32 = 0xfe00707f;
const MATCH_MAXU: u32 = 0xa007033;
const MASK_MAXU: u32 = 0xfe00707f;
const MATCH_MIN: u32 = 0xa004033;
const MASK_MIN: u32 = 0xfe00707f;
const MATCH_MINU: u32 = 0xa005033;
const MASK_MINU: u32 = 0xfe00707f;
const MATCH_MNRET: u32 = 0x70200073;
const MASK_MNRET: u32 = 0xffffffff;
const MATCH_MOP_R_0: u32 = 0x81c04073;
const MASK_MOP_R_0: u32 = 0xfff0707f;
const MATCH_MOP_R_1: u32 = 0x81d04073;
const MASK_MOP_R_1: u32 = 0xfff0707f;
const MATCH_MOP_R_10: u32 = 0x89e04073;
const MASK_MOP_R_10: u32 = 0xfff0707f;
const MATCH_MOP_R_11: u32 = 0x89f04073;
const MASK_MOP_R_11: u32 = 0xfff0707f;
const MATCH_MOP_R_12: u32 = 0x8dc04073;
const MASK_MOP_R_12: u32 = 0xfff0707f;
const MATCH_MOP_R_13: u32 = 0x8dd04073;
const MASK_MOP_R_13: u32 = 0xfff0707f;
const MATCH_MOP_R_14: u32 = 0x8de04073;
const MASK_MOP_R_14: u32 = 0xfff0707f;
const MATCH_MOP_R_15: u32 = 0x8df04073;
const MASK_MOP_R_15: u32 = 0xfff0707f;
const MATCH_MOP_R_16: u32 = 0xc1c04073;
const MASK_MOP_R_16: u32 = 0xfff0707f;
const MATCH_MOP_R_17: u32 = 0xc1d04073;
const MASK_MOP_R_17: u32 = 0xfff0707f;
const MATCH_MOP_R_18: u32 = 0xc1e04073;
const MASK_MOP_R_18: u32 = 0xfff0707f;
const MATCH_MOP_R_19: u32 = 0xc1f04073;
const MASK_MOP_R_19: u32 = 0xfff0707f;
const MATCH_MOP_R_2: u32 = 0x81e04073;
const MASK_MOP_R_2: u32 = 0xfff0707f;
const MATCH_MOP_R_20: u32 = 0xc5c04073;
const MASK_MOP_R_20: u32 = 0xfff0707f;
const MATCH_MOP_R_21: u32 = 0xc5d04073;
const MASK_MOP_R_21: u32 = 0xfff0707f;
const MATCH_MOP_R_22: u32 = 0xc5e04073;
const MASK_MOP_R_22: u32 = 0xfff0707f;
const MATCH_MOP_R_23: u32 = 0xc5f04073;
const MASK_MOP_R_23: u32 = 0xfff0707f;
const MATCH_MOP_R_24: u32 = 0xc9c04073;
const MASK_MOP_R_24: u32 = 0xfff0707f;
const MATCH_MOP_R_25: u32 = 0xc9d04073;
const MASK_MOP_R_25: u32 = 0xfff0707f;
const MATCH_MOP_R_26: u32 = 0xc9e04073;
const MASK_MOP_R_26: u32 = 0xfff0707f;
const MATCH_MOP_R_27: u32 = 0xc9f04073;
const MASK_MOP_R_27: u32 = 0xfff0707f;
const MATCH_MOP_R_28: u32 = 0xcdc04073;
const MASK_MOP_R_28: u32 = 0xfff0707f;
const MATCH_MOP_R_29: u32 = 0xcdd04073;
const MASK_MOP_R_29: u32 = 0xfff0707f;
const MATCH_MOP_R_3: u32 = 0x81f04073;
const MASK_MOP_R_3: u32 = 0xfff0707f;
const MATCH_MOP_R_30: u32 = 0xcde04073;
const MASK_MOP_R_30: u32 = 0xfff0707f;
const MATCH_MOP_R_31: u32 = 0xcdf04073;
const MASK_MOP_R_31: u32 = 0xfff0707f;
const MATCH_MOP_R_4: u32 = 0x85c04073;
const MASK_MOP_R_4: u32 = 0xfff0707f;
const MATCH_MOP_R_5: u32 = 0x85d04073;
const MASK_MOP_R_5: u32 = 0xfff0707f;
const MATCH_MOP_R_6: u32 = 0x85e04073;
const MASK_MOP_R_6: u32 = 0xfff0707f;
const MATCH_MOP_R_7: u32 = 0x85f04073;
const MASK_MOP_R_7: u32 = 0xfff0707f;
const MATCH_MOP_R_8: u32 = 0x89c04073;
const MASK_MOP_R_8: u32 = 0xfff0707f;
const MATCH_MOP_R_9: u32 = 0x89d04073;
const MASK_MOP_R_9: u32 = 0xfff0707f;
const MATCH_MOP_R_N: u32 = 0x81c04073;
const MASK_MOP_R_N: u32 = 0xb3c0707f;
const MATCH_MOP_RR_0: u32 = 0x82004073;
const MASK_MOP_RR_0: u32 = 0xfe00707f;
const MATCH_MOP_RR_1: u32 = 0x86004073;
const MASK_MOP_RR_1: u32 = 0xfe00707f;
const MATCH_MOP_RR_2: u32 = 0x8a004073;
const MASK_MOP_RR_2: u32 = 0xfe00707f;
const MATCH_MOP_RR_3: u32 = 0x8e004073;
const MASK_MOP_RR_3: u32 = 0xfe00707f;
const MATCH_MOP_RR_4: u32 = 0xc2004073;
const MASK_MOP_RR_4: u32 = 0xfe00707f;
const MATCH_MOP_RR_5: u32 = 0xc6004073;
const MASK_MOP_RR_5: u32 = 0xfe00707f;
const MATCH_MOP_RR_6: u32 = 0xca004073;
const MASK_MOP_RR_6: u32 = 0xfe00707f;
const MATCH_MOP_RR_7: u32 = 0xce004073;
const MASK_MOP_RR_7: u32 = 0xfe00707f;
const MATCH_MOP_RR_N: u32 = 0x82004073;
const MASK_MOP_RR_N: u32 = 0xb200707f;
const MATCH_MRET: u32 = 0x30200073;
const MASK_MRET: u32 = 0xffffffff;
const MATCH_MSUBR32: u32 = 0xc6001077;
const MASK_MSUBR32: u32 = 0xfe00707f;
const MATCH_MUL: u32 = 0x2000033;
const MASK_MUL: u32 = 0xfe00707f;
const MATCH_MULH: u32 = 0x2001033;
const MASK_MULH: u32 = 0xfe00707f;
const MATCH_MULHSU: u32 = 0x2002033;
const MASK_MULHSU: u32 = 0xfe00707f;
const MATCH_MULHU: u32 = 0x2003033;
const MASK_MULHU: u32 = 0xfe00707f;
const MATCH_MULR64: u32 = 0xf0001077;
const MASK_MULR64: u32 = 0xfe00707f;
const MATCH_MULSR64: u32 = 0xe0001077;
const MASK_MULSR64: u32 = 0xfe00707f;
const MATCH_MULW: u32 = 0x200003b;
const MASK_MULW: u32 = 0xfe00707f;
const MATCH_NTL_ALL: u32 = 0x500033;
const MASK_NTL_ALL: u32 = 0xffffffff;
const MATCH_NTL_P1: u32 = 0x200033;
const MASK_NTL_P1: u32 = 0xffffffff;
const MATCH_NTL_PALL: u32 = 0x300033;
const MASK_NTL_PALL: u32 = 0xffffffff;
const MATCH_NTL_S1: u32 = 0x400033;
const MASK_NTL_S1: u32 = 0xffffffff;
const MATCH_OR: u32 = 0x6033;
const MASK_OR: u32 = 0xfe00707f;
const MATCH_ORC_B: u32 = 0x28705013;
const MASK_ORC_B: u32 = 0xfff0707f;
const MATCH_ORI: u32 = 0x6013;
const MASK_ORI: u32 = 0x707f;
const MATCH_ORN: u32 = 0x40006033;
const MASK_ORN: u32 = 0xfe00707f;
const MATCH_PACK: u32 = 0x8004033;
const MASK_PACK: u32 = 0xfe00707f;
const MATCH_PACKH: u32 = 0x8007033;
const MASK_PACKH: u32 = 0xfe00707f;
const MATCH_PACKU: u32 = 0x48004033;
const MASK_PACKU: u32 = 0xfe00707f;
const MATCH_PACKUW: u32 = 0x4800403b;
const MASK_PACKUW: u32 = 0xfe00707f;
const MATCH_PACKW: u32 = 0x800403b;
const MASK_PACKW: u32 = 0xfe00707f;
const MATCH_PAUSE: u32 = 0x100000f;
const MASK_PAUSE: u32 = 0xffffffff;
const MATCH_PBSAD: u32 = 0xfc000077;
const MASK_PBSAD: u32 = 0xfe00707f;
const MATCH_PBSADA: u32 = 0xfe000077;
const MASK_PBSADA: u32 = 0xfe00707f;
const MATCH_PKBB16: u32 = 0xe001077;
const MASK_PKBB16: u32 = 0xfe00707f;
const MATCH_PKBT16: u32 = 0x1e001077;
const MASK_PKBT16: u32 = 0xfe00707f;
const MATCH_PKBT32: u32 = 0x1e002077;
const MASK_PKBT32: u32 = 0xfe00707f;
const MATCH_PKTB16: u32 = 0x3e001077;
const MASK_PKTB16: u32 = 0xfe00707f;
const MATCH_PKTB32: u32 = 0x3e002077;
const MASK_PKTB32: u32 = 0xfe00707f;
const MATCH_PKTT16: u32 = 0x2e001077;
const MASK_PKTT16: u32 = 0xfe00707f;
const MATCH_PREFETCH_I: u32 = 0x6013;
const MASK_PREFETCH_I: u32 = 0x1f07fff;
const MATCH_PREFETCH_R: u32 = 0x106013;
const MASK_PREFETCH_R: u32 = 0x1f07fff;
const MATCH_PREFETCH_W: u32 = 0x306013;
const MASK_PREFETCH_W: u32 = 0x1f07fff;
const MATCH_RADD16: u32 = 0x77;
const MASK_RADD16: u32 = 0xfe00707f;
const MATCH_RADD32: u32 = 0x2077;
const MASK_RADD32: u32 = 0xfe00707f;
const MATCH_RADD64: u32 = 0x80001077;
const MASK_RADD64: u32 = 0xfe00707f;
const MATCH_RADD8: u32 = 0x8000077;
const MASK_RADD8: u32 = 0xfe00707f;
const MATCH_RADDW: u32 = 0x20001077;
const MASK_RADDW: u32 = 0xfe00707f;
const MATCH_RCRAS16: u32 = 0x4000077;
const MASK_RCRAS16: u32 = 0xfe00707f;
const MATCH_RCRAS32: u32 = 0x4002077;
const MASK_RCRAS32: u32 = 0xfe00707f;
const MATCH_RCRSA16: u32 = 0x6000077;
const MASK_RCRSA16: u32 = 0xfe00707f;
const MATCH_RCRSA32: u32 = 0x6002077;
const MASK_RCRSA32: u32 = 0xfe00707f;
const MATCH_RDCYCLE: u32 = 0xc0002073;
const MASK_RDCYCLE: u32 = 0xfffff07f;
const MATCH_RDCYCLEH: u32 = 0xc8002073;
const MASK_RDCYCLEH: u32 = 0xfffff07f;
const MATCH_RDINSTRET: u32 = 0xc0202073;
const MASK_RDINSTRET: u32 = 0xfffff07f;
const MATCH_RDINSTRETH: u32 = 0xc8202073;
const MASK_RDINSTRETH: u32 = 0xfffff07f;
const MATCH_RDOV: u32 = 0x902073;
const MASK_RDOV: u32 = 0xfffff07f;
const MATCH_RDTIME: u32 = 0xc0102073;
const MASK_RDTIME: u32 = 0xfffff07f;
const MATCH_RDTIMEH: u32 = 0xc8102073;
const MASK_RDTIMEH: u32 = 0xfffff07f;
const MATCH_REM: u32 = 0x2006033;
const MASK_REM: u32 = 0xfe00707f;
const MATCH_REMU: u32 = 0x2007033;
const MASK_REMU: u32 = 0xfe00707f;
const MATCH_REMUW: u32 = 0x200703b;
const MASK_REMUW: u32 = 0xfe00707f;
const MATCH_REMW: u32 = 0x200603b;
const MASK_REMW: u32 = 0xfe00707f;
const MATCH_REV: u32 = 0x6bf05013;
const MASK_REV: u32 = 0xfff0707f;
const MATCH_REV8: u32 = 0x6b805013;
const MASK_REV8: u32 = 0xfff0707f;
const MATCH_REV8_H: u32 = 0x68805013;
const MASK_REV8_H: u32 = 0xfff0707f;
const MATCH_ROL: u32 = 0x60001033;
const MASK_ROL: u32 = 0xfe00707f;
const MATCH_ROLW: u32 = 0x6000103b;
const MASK_ROLW: u32 = 0xfe00707f;
const MATCH_ROR: u32 = 0x60005033;
const MASK_ROR: u32 = 0xfe00707f;
const MATCH_RORI: u32 = 0x60005013;
const MASK_RORI: u32 = 0xfc00707f;
const MATCH_RORIW: u32 = 0x6000501b;
const MASK_RORIW: u32 = 0xfe00707f;
const MATCH_RORW: u32 = 0x6000503b;
const MASK_RORW: u32 = 0xfe00707f;
const MATCH_RSTAS16: u32 = 0xb4002077;
const MASK_RSTAS16: u32 = 0xfe00707f;
const MATCH_RSTAS32: u32 = 0xb0002077;
const MASK_RSTAS32: u32 = 0xfe00707f;
const MATCH_RSTSA16: u32 = 0xb6002077;
const MASK_RSTSA16: u32 = 0xfe00707f;
const MATCH_RSTSA32: u32 = 0xb2002077;
const MASK_RSTSA32: u32 = 0xfe00707f;
const MATCH_RSUB16: u32 = 0x2000077;
const MASK_RSUB16: u32 = 0xfe00707f;
const MATCH_RSUB32: u32 = 0x2002077;
const MASK_RSUB32: u32 = 0xfe00707f;
const MATCH_RSUB64: u32 = 0x82001077;
const MASK_RSUB64: u32 = 0xfe00707f;
const MATCH_RSUB8: u32 = 0xa000077;
const MASK_RSUB8: u32 = 0xfe00707f;
const MATCH_RSUBW: u32 = 0x22001077;
const MASK_RSUBW: u32 = 0xfe00707f;
const MATCH_SB: u32 = 0x23;
const MASK_SB: u32 = 0x707f;
const MATCH_SB_RL: u32 = 0x3a00002f;
const MASK_SB_RL: u32 = 0xfa007fff;
const MATCH_SBREAK: u32 = 0x100073;
const MASK_SBREAK: u32 = 0xffffffff;
const MATCH_SC_D: u32 = 0x1800302f;
const MASK_SC_D: u32 = 0xf800707f;
const MATCH_SC_W: u32 = 0x1800202f;
const MASK_SC_W: u32 = 0xf800707f;
const MATCH_SCALL: u32 = 0x73;
const MASK_SCALL: u32 = 0xffffffff;
const MATCH_SCLIP16: u32 = 0x84000077;
const MASK_SCLIP16: u32 = 0xff00707f;
const MATCH_SCLIP32: u32 = 0xe4000077;
const MASK_SCLIP32: u32 = 0xfe00707f;
const MATCH_SCLIP8: u32 = 0x8c000077;
const MASK_SCLIP8: u32 = 0xff80707f;
const MATCH_SCMPLE16: u32 = 0x1c000077;
const MASK_SCMPLE16: u32 = 0xfe00707f;
const MATCH_SCMPLE8: u32 = 0x1e000077;
const MASK_SCMPLE8: u32 = 0xfe00707f;
const MATCH_SCMPLT16: u32 = 0xc000077;
const MASK_SCMPLT16: u32 = 0xfe00707f;
const MATCH_SCMPLT8: u32 = 0xe000077;
const MASK_SCMPLT8: u32 = 0xfe00707f;
const MATCH_SD: u32 = 0x3023;
const MASK_SD: u32 = 0x707f;
const MATCH_SD_RL: u32 = 0x3a00302f;
const MASK_SD_RL: u32 = 0xfa007fff;
const MATCH_SEXT_B: u32 = 0x60401013;
const MASK_SEXT_B: u32 = 0xfff0707f;
const MATCH_SEXT_H: u32 = 0x60501013;
const MASK_SEXT_H: u32 = 0xfff0707f;
const MATCH_SFENCE_INVAL_IR: u32 = 0x18100073;
const MASK_SFENCE_INVAL_IR: u32 = 0xffffffff;
const MATCH_SFENCE_VMA: u32 = 0x12000073;
const MASK_SFENCE_VMA: u32 = 0xfe007fff;
const MATCH_SFENCE_W_INVAL: u32 = 0x18000073;
const MASK_SFENCE_W_INVAL: u32 = 0xffffffff;
const MATCH_SH: u32 = 0x1023;
const MASK_SH: u32 = 0x707f;
const MATCH_SH1ADD: u32 = 0x20002033;
const MASK_SH1ADD: u32 = 0xfe00707f;
const MATCH_SH1ADD_UW: u32 = 0x2000203b;
const MASK_SH1ADD_UW: u32 = 0xfe00707f;
const MATCH_SH2ADD: u32 = 0x20004033;
const MASK_SH2ADD: u32 = 0xfe00707f;
const MATCH_SH2ADD_UW: u32 = 0x2000403b;
const MASK_SH2ADD_UW: u32 = 0xfe00707f;
const MATCH_SH3ADD: u32 = 0x20006033;
const MASK_SH3ADD: u32 = 0xfe00707f;
const MATCH_SH3ADD_UW: u32 = 0x2000603b;
const MASK_SH3ADD_UW: u32 = 0xfe00707f;
const MATCH_SH_RL: u32 = 0x3a00102f;
const MASK_SH_RL: u32 = 0xfa007fff;
const MATCH_SHA256SIG0: u32 = 0x10201013;
const MASK_SHA256SIG0: u32 = 0xfff0707f;
const MATCH_SHA256SIG1: u32 = 0x10301013;
const MASK_SHA256SIG1: u32 = 0xfff0707f;
const MATCH_SHA256SUM0: u32 = 0x10001013;
const MASK_SHA256SUM0: u32 = 0xfff0707f;
const MATCH_SHA256SUM1: u32 = 0x10101013;
const MASK_SHA256SUM1: u32 = 0xfff0707f;
const MATCH_SHA512SIG0: u32 = 0x10601013;
const MASK_SHA512SIG0: u32 = 0xfff0707f;
const MATCH_SHA512SIG0H: u32 = 0x5c000033;
const MASK_SHA512SIG0H: u32 = 0xfe00707f;
const MATCH_SHA512SIG0L: u32 = 0x54000033;
const MASK_SHA512SIG0L: u32 = 0xfe00707f;
const MATCH_SHA512SIG1: u32 = 0x10701013;
const MASK_SHA512SIG1: u32 = 0xfff0707f;
const MATCH_SHA512SIG1H: u32 = 0x5e000033;
const MASK_SHA512SIG1H: u32 = 0xfe00707f;
const MATCH_SHA512SIG1L: u32 = 0x56000033;
const MASK_SHA512SIG1L: u32 = 0xfe00707f;
const MATCH_SHA512SUM0: u32 = 0x10401013;
const MASK_SHA512SUM0: u32 = 0xfff0707f;
const MATCH_SHA512SUM0R: u32 = 0x50000033;
const MASK_SHA512SUM0R: u32 = 0xfe00707f;
const MATCH_SHA512SUM1: u32 = 0x10501013;
const MASK_SHA512SUM1: u32 = 0xfff0707f;
const MATCH_SHA512SUM1R: u32 = 0x52000033;
const MASK_SHA512SUM1R: u32 = 0xfe00707f;
const MATCH_SHFL: u32 = 0x8001033;
const MASK_SHFL: u32 = 0xfe00707f;
const MATCH_SHFLI: u32 = 0x8001013;
const MASK_SHFLI: u32 = 0xfe00707f;
const MATCH_SHFLW: u32 = 0x800103b;
const MASK_SHFLW: u32 = 0xfe00707f;
const MATCH_SINVAL_VMA: u32 = 0x16000073;
const MASK_SINVAL_VMA: u32 = 0xfe007fff;
const MATCH_SLL: u32 = 0x1033;
const MASK_SLL: u32 = 0xfe00707f;
const MATCH_SLL16: u32 = 0x54000077;
const MASK_SLL16: u32 = 0xfe00707f;
const MATCH_SLL32: u32 = 0x54002077;
const MASK_SLL32: u32 = 0xfe00707f;
const MATCH_SLL8: u32 = 0x5c000077;
const MASK_SLL8: u32 = 0xfe00707f;
const MATCH_SLLD: u32 = 0x107b;
const MASK_SLLD: u32 = 0xfe00707f;
const MATCH_SLLI: u32 = 0x1013;
const MASK_SLLI: u32 = 0xfc00707f;
const MATCH_SLLI16: u32 = 0x74000077;
const MASK_SLLI16: u32 = 0xff00707f;
const MATCH_SLLI32: u32 = 0x74002077;
const MASK_SLLI32: u32 = 0xfe00707f;
const MATCH_SLLI8: u32 = 0x7c000077;
const MASK_SLLI8: u32 = 0xff80707f;
const MATCH_SLLI_RV128: u32 = 0x1013;
const MASK_SLLI_RV128: u32 = 0xf800707f;
const MATCH_SLLI_RV32: u32 = 0x1013;
const MASK_SLLI_RV32: u32 = 0xfe00707f;
const MATCH_SLLI_UW: u32 = 0x800101b;
const MASK_SLLI_UW: u32 = 0xfc00707f;
const MATCH_SLLID: u32 = 0x105b;
const MASK_SLLID: u32 = 0xfc00707f;
const MATCH_SLLIW: u32 = 0x101b;
const MASK_SLLIW: u32 = 0xfe00707f;
const MATCH_SLLW: u32 = 0x103b;
const MASK_SLLW: u32 = 0xfe00707f;
const MATCH_SLO: u32 = 0x20001033;
const MASK_SLO: u32 = 0xfe00707f;
const MATCH_SLOI: u32 = 0x20001013;
const MASK_SLOI: u32 = 0xfc00707f;
const MATCH_SLOIW: u32 = 0x2000101b;
const MASK_SLOIW: u32 = 0xfe00707f;
const MATCH_SLOW: u32 = 0x2000103b;
const MASK_SLOW: u32 = 0xfe00707f;
const MATCH_SLT: u32 = 0x2033;
const MASK_SLT: u32 = 0xfe00707f;
const MATCH_SLTI: u32 = 0x2013;
const MASK_SLTI: u32 = 0x707f;
const MATCH_SLTIU: u32 = 0x3013;
const MASK_SLTIU: u32 = 0x707f;
const MATCH_SLTU: u32 = 0x3033;
const MASK_SLTU: u32 = 0xfe00707f;
const MATCH_SM3P0: u32 = 0x10801013;
const MASK_SM3P0: u32 = 0xfff0707f;
const MATCH_SM3P1: u32 = 0x10901013;
const MASK_SM3P1: u32 = 0xfff0707f;
const MATCH_SM4ED: u32 = 0x30000033;
const MASK_SM4ED: u32 = 0x3e00707f;
const MATCH_SM4KS: u32 = 0x34000033;
const MASK_SM4KS: u32 = 0x3e00707f;
const MATCH_SMAL: u32 = 0x5e001077;
const MASK_SMAL: u32 = 0xfe00707f;
const MATCH_SMALBB: u32 = 0x88001077;
const MASK_SMALBB: u32 = 0xfe00707f;
const MATCH_SMALBT: u32 = 0x98001077;
const MASK_SMALBT: u32 = 0xfe00707f;
const MATCH_SMALDA: u32 = 0x8c001077;
const MASK_SMALDA: u32 = 0xfe00707f;
const MATCH_SMALDRS: u32 = 0x9a001077;
const MASK_SMALDRS: u32 = 0xfe00707f;
const MATCH_SMALDS: u32 = 0x8a001077;
const MASK_SMALDS: u32 = 0xfe00707f;
const MATCH_SMALTT: u32 = 0xa8001077;
const MASK_SMALTT: u32 = 0xfe00707f;
const MATCH_SMALXDA: u32 = 0x9c001077;
const MASK_SMALXDA: u32 = 0xfe00707f;
const MATCH_SMALXDS: u32 = 0xaa001077;
const MASK_SMALXDS: u32 = 0xfe00707f;
const MATCH_SMAQA: u32 = 0xc8000077;
const MASK_SMAQA: u32 = 0xfe00707f;
const MATCH_SMAQA_SU: u32 = 0xca000077;
const MASK_SMAQA_SU: u32 = 0xfe00707f;
const MATCH_SMAR64: u32 = 0x84001077;
const MASK_SMAR64: u32 = 0xfe00707f;
const MATCH_SMAX16: u32 = 0x82000077;
const MASK_SMAX16: u32 = 0xfe00707f;
const MATCH_SMAX32: u32 = 0x92002077;
const MASK_SMAX32: u32 = 0xfe00707f;
const MATCH_SMAX8: u32 = 0x8a000077;
const MASK_SMAX8: u32 = 0xfe00707f;
const MATCH_SMBB16: u32 = 0x8001077;
const MASK_SMBB16: u32 = 0xfe00707f;
const MATCH_SMBT16: u32 = 0x18001077;
const MASK_SMBT16: u32 = 0xfe00707f;
const MATCH_SMBT32: u32 = 0x18002077;
const MASK_SMBT32: u32 = 0xfe00707f;
const MATCH_SMDRS: u32 = 0x68001077;
const MASK_SMDRS: u32 = 0xfe00707f;
const MATCH_SMDRS32: u32 = 0x68002077;
const MASK_SMDRS32: u32 = 0xfe00707f;
const MATCH_SMDS: u32 = 0x58001077;
const MASK_SMDS: u32 = 0xfe00707f;
const MATCH_SMDS32: u32 = 0x58002077;
const MASK_SMDS32: u32 = 0xfe00707f;
const MATCH_SMIN16: u32 = 0x80000077;
const MASK_SMIN16: u32 = 0xfe00707f;
const MATCH_SMIN32: u32 = 0x90002077;
const MASK_SMIN32: u32 = 0xfe00707f;
const MATCH_SMIN8: u32 = 0x88000077;
const MASK_SMIN8: u32 = 0xfe00707f;
const MATCH_SMMUL: u32 = 0x40001077;
const MASK_SMMUL: u32 = 0xfe00707f;
const MATCH_SMMUL_U: u32 = 0x50001077;
const MASK_SMMUL_U: u32 = 0xfe00707f;
const MATCH_SMMWB: u32 = 0x44001077;
const MASK_SMMWB: u32 = 0xfe00707f;
const MATCH_SMMWB_U: u32 = 0x54001077;
const MASK_SMMWB_U: u32 = 0xfe00707f;
const MATCH_SMMWT: u32 = 0x64001077;
const MASK_SMMWT: u32 = 0xfe00707f;
const MATCH_SMMWT_U: u32 = 0x74001077;
const MASK_SMMWT_U: u32 = 0xfe00707f;
const MATCH_SMSLDA: u32 = 0xac001077;
const MASK_SMSLDA: u32 = 0xfe00707f;
const MATCH_SMSLXDA: u32 = 0xbc001077;
const MASK_SMSLXDA: u32 = 0xfe00707f;
const MATCH_SMSR64: u32 = 0x86001077;
const MASK_SMSR64: u32 = 0xfe00707f;
const MATCH_SMTT16: u32 = 0x28001077;
const MASK_SMTT16: u32 = 0xfe00707f;
const MATCH_SMTT32: u32 = 0x28002077;
const MASK_SMTT32: u32 = 0xfe00707f;
const MATCH_SMUL16: u32 = 0xa0000077;
const MASK_SMUL16: u32 = 0xfe00707f;
const MATCH_SMUL8: u32 = 0xa8000077;
const MASK_SMUL8: u32 = 0xfe00707f;
const MATCH_SMULX16: u32 = 0xa2000077;
const MASK_SMULX16: u32 = 0xfe00707f;
const MATCH_SMULX8: u32 = 0xaa000077;
const MASK_SMULX8: u32 = 0xfe00707f;
const MATCH_SMXDS: u32 = 0x78001077;
const MASK_SMXDS: u32 = 0xfe00707f;
const MATCH_SMXDS32: u32 = 0x78002077;
const MASK_SMXDS32: u32 = 0xfe00707f;
const MATCH_SQ: u32 = 0x4023;
const MASK_SQ: u32 = 0x707f;
const MATCH_SRA: u32 = 0x40005033;
const MASK_SRA: u32 = 0xfe00707f;
const MATCH_SRA16: u32 = 0x50000077;
const MASK_SRA16: u32 = 0xfe00707f;
const MATCH_SRA16_U: u32 = 0x60000077;
const MASK_SRA16_U: u32 = 0xfe00707f;
const MATCH_SRA32: u32 = 0x50002077;
const MASK_SRA32: u32 = 0xfe00707f;
const MATCH_SRA32_U: u32 = 0x60002077;
const MASK_SRA32_U: u32 = 0xfe00707f;
const MATCH_SRA8: u32 = 0x58000077;
const MASK_SRA8: u32 = 0xfe00707f;
const MATCH_SRA8_U: u32 = 0x68000077;
const MASK_SRA8_U: u32 = 0xfe00707f;
const MATCH_SRA_U: u32 = 0x24001077;
const MASK_SRA_U: u32 = 0xfe00707f;
const MATCH_SRAD: u32 = 0x4000507b;
const MASK_SRAD: u32 = 0xfe00707f;
const MATCH_SRAI: u32 = 0x40005013;
const MASK_SRAI: u32 = 0xfc00707f;
const MATCH_SRAI16: u32 = 0x70000077;
const MASK_SRAI16: u32 = 0xff00707f;
const MATCH_SRAI16_U: u32 = 0x71000077;
const MASK_SRAI16_U: u32 = 0xff00707f;
const MATCH_SRAI32: u32 = 0x70002077;
const MASK_SRAI32: u32 = 0xfe00707f;
const MATCH_SRAI32_U: u32 = 0x80002077;
const MASK_SRAI32_U: u32 = 0xfe00707f;
const MATCH_SRAI8: u32 = 0x78000077;
const MASK_SRAI8: u32 = 0xff80707f;
const MATCH_SRAI8_U: u32 = 0x78800077;
const MASK_SRAI8_U: u32 = 0xff80707f;
const MATCH_SRAI_RV128: u32 = 0x40005013;
const MASK_SRAI_RV128: u32 = 0xf800707f;
const MATCH_SRAI_RV32: u32 = 0x40005013;
const MASK_SRAI_RV32: u32 = 0xfe00707f;
const MATCH_SRAI_U: u32 = 0xd4001077;
const MASK_SRAI_U: u32 = 0xfc00707f;
const MATCH_SRAID: u32 = 0x4000505b;
const MASK_SRAID: u32 = 0xfc00707f;
const MATCH_SRAIW: u32 = 0x4000501b;
const MASK_SRAIW: u32 = 0xfe00707f;
const MATCH_SRAIW_U: u32 = 0x34001077;
const MASK_SRAIW_U: u32 = 0xfe00707f;
const MATCH_SRAW: u32 = 0x4000503b;
const MASK_SRAW: u32 = 0xfe00707f;
const MATCH_SRET: u32 = 0x10200073;
const MASK_SRET: u32 = 0xffffffff;
const MATCH_SRL: u32 = 0x5033;
const MASK_SRL: u32 = 0xfe00707f;
const MATCH_SRL16: u32 = 0x52000077;
const MASK_SRL16: u32 = 0xfe00707f;
const MATCH_SRL16_U: u32 = 0x62000077;
const MASK_SRL16_U: u32 = 0xfe00707f;
const MATCH_SRL32: u32 = 0x52002077;
const MASK_SRL32: u32 = 0xfe00707f;
const MATCH_SRL32_U: u32 = 0x62002077;
const MASK_SRL32_U: u32 = 0xfe00707f;
const MATCH_SRL8: u32 = 0x5a000077;
const MASK_SRL8: u32 = 0xfe00707f;
const MATCH_SRL8_U: u32 = 0x6a000077;
const MASK_SRL8_U: u32 = 0xfe00707f;
const MATCH_SRLD: u32 = 0x507b;
const MASK_SRLD: u32 = 0xfe00707f;
const MATCH_SRLI: u32 = 0x5013;
const MASK_SRLI: u32 = 0xfc00707f;
const MATCH_SRLI16: u32 = 0x72000077;
const MASK_SRLI16: u32 = 0xff00707f;
const MATCH_SRLI16_U: u32 = 0x73000077;
const MASK_SRLI16_U: u32 = 0xff00707f;
const MATCH_SRLI32: u32 = 0x72002077;
const MASK_SRLI32: u32 = 0xfe00707f;
const MATCH_SRLI32_U: u32 = 0x82002077;
const MASK_SRLI32_U: u32 = 0xfe00707f;
const MATCH_SRLI8: u32 = 0x7a000077;
const MASK_SRLI8: u32 = 0xff80707f;
const MATCH_SRLI8_U: u32 = 0x7a800077;
const MASK_SRLI8_U: u32 = 0xff80707f;
const MATCH_SRLI_RV128: u32 = 0x5013;
const MASK_SRLI_RV128: u32 = 0xf800707f;
const MATCH_SRLI_RV32: u32 = 0x5013;
const MASK_SRLI_RV32: u32 = 0xfe00707f;
const MATCH_SRLID: u32 = 0x505b;
const MASK_SRLID: u32 = 0xfc00707f;
const MATCH_SRLIW: u32 = 0x501b;
const MASK_SRLIW: u32 = 0xfe00707f;
const MATCH_SRLW: u32 = 0x503b;
const MASK_SRLW: u32 = 0xfe00707f;
const MATCH_SRO: u32 = 0x20005033;
const MASK_SRO: u32 = 0xfe00707f;
const MATCH_SROI: u32 = 0x20005013;
const MASK_SROI: u32 = 0xfc00707f;
const MATCH_SROIW: u32 = 0x2000501b;
const MASK_SROIW: u32 = 0xfe00707f;
const MATCH_SROW: u32 = 0x2000503b;
const MASK_SROW: u32 = 0xfe00707f;
const MATCH_STAS16: u32 = 0xf4002077;
const MASK_STAS16: u32 = 0xfe00707f;
const MATCH_STAS32: u32 = 0xf0002077;
const MASK_STAS32: u32 = 0xfe00707f;
const MATCH_STSA16: u32 = 0xf6002077;
const MASK_STSA16: u32 = 0xfe00707f;
const MATCH_STSA32: u32 = 0xf2002077;
const MASK_STSA32: u32 = 0xfe00707f;
const MATCH_SUB: u32 = 0x40000033;
const MASK_SUB: u32 = 0xfe00707f;
const MATCH_SUB16: u32 = 0x42000077;
const MASK_SUB16: u32 = 0xfe00707f;
const MATCH_SUB32: u32 = 0x42002077;
const MASK_SUB32: u32 = 0xfe00707f;
const MATCH_SUB64: u32 = 0xc2001077;
const MASK_SUB64: u32 = 0xfe00707f;
const MATCH_SUB8: u32 = 0x4a000077;
const MASK_SUB8: u32 = 0xfe00707f;
const MATCH_SUBD: u32 = 0x4000007b;
const MASK_SUBD: u32 = 0xfe00707f;
const MATCH_SUBW: u32 = 0x4000003b;
const MASK_SUBW: u32 = 0xfe00707f;
const MATCH_SUNPKD810: u32 = 0xac800077;
const MASK_SUNPKD810: u32 = 0xfff0707f;
const MATCH_SUNPKD820: u32 = 0xac900077;
const MASK_SUNPKD820: u32 = 0xfff0707f;
const MATCH_SUNPKD830: u32 = 0xaca00077;
const MASK_SUNPKD830: u32 = 0xfff0707f;
const MATCH_SUNPKD831: u32 = 0xacb00077;
const MASK_SUNPKD831: u32 = 0xfff0707f;
const MATCH_SUNPKD832: u32 = 0xad300077;
const MASK_SUNPKD832: u32 = 0xfff0707f;
const MATCH_SW: u32 = 0x2023;
const MASK_SW: u32 = 0x707f;
const MATCH_SW_RL: u32 = 0x3a00202f;
const MASK_SW_RL: u32 = 0xfa007fff;
const MATCH_UCLIP16: u32 = 0x85000077;
const MASK_UCLIP16: u32 = 0xff00707f;
const MATCH_UCLIP32: u32 = 0xf4000077;
const MASK_UCLIP32: u32 = 0xfe00707f;
const MATCH_UCLIP8: u32 = 0x8d000077;
const MASK_UCLIP8: u32 = 0xff80707f;
const MATCH_UCMPLE16: u32 = 0x3c000077;
const MASK_UCMPLE16: u32 = 0xfe00707f;
const MATCH_UCMPLE8: u32 = 0x3e000077;
const MASK_UCMPLE8: u32 = 0xfe00707f;
const MATCH_UCMPLT16: u32 = 0x2c000077;
const MASK_UCMPLT16: u32 = 0xfe00707f;
const MATCH_UCMPLT8: u32 = 0x2e000077;
const MASK_UCMPLT8: u32 = 0xfe00707f;
const MATCH_UKADD16: u32 = 0x30000077;
const MASK_UKADD16: u32 = 0xfe00707f;
const MATCH_UKADD32: u32 = 0x30002077;
const MASK_UKADD32: u32 = 0xfe00707f;
const MATCH_UKADD64: u32 = 0xb0001077;
const MASK_UKADD64: u32 = 0xfe00707f;
const MATCH_UKADD8: u32 = 0x38000077;
const MASK_UKADD8: u32 = 0xfe00707f;
const MATCH_UKADDH: u32 = 0x14001077;
const MASK_UKADDH: u32 = 0xfe00707f;
const MATCH_UKADDW: u32 = 0x10001077;
const MASK_UKADDW: u32 = 0xfe00707f;
const MATCH_UKCRAS16: u32 = 0x34000077;
const MASK_UKCRAS16: u32 = 0xfe00707f;
const MATCH_UKCRAS32: u32 = 0x34002077;
const MASK_UKCRAS32: u32 = 0xfe00707f;
const MATCH_UKCRSA16: u32 = 0x36000077;
const MASK_UKCRSA16: u32 = 0xfe00707f;
const MATCH_UKCRSA32: u32 = 0x36002077;
const MASK_UKCRSA32: u32 = 0xfe00707f;
const MATCH_UKMAR64: u32 = 0xb4001077;
const MASK_UKMAR64: u32 = 0xfe00707f;
const MATCH_UKMSR64: u32 = 0xb6001077;
const MASK_UKMSR64: u32 = 0xfe00707f;
const MATCH_UKSTAS16: u32 = 0xe4002077;
const MASK_UKSTAS16: u32 = 0xfe00707f;
const MATCH_UKSTAS32: u32 = 0xe0002077;
const MASK_UKSTAS32: u32 = 0xfe00707f;
const MATCH_UKSTSA16: u32 = 0xe6002077;
const MASK_UKSTSA16: u32 = 0xfe00707f;
const MATCH_UKSTSA32: u32 = 0xe2002077;
const MASK_UKSTSA32: u32 = 0xfe00707f;
const MATCH_UKSUB16: u32 = 0x32000077;
const MASK_UKSUB16: u32 = 0xfe00707f;
const MATCH_UKSUB32: u32 = 0x32002077;
const MASK_UKSUB32: u32 = 0xfe00707f;
const MATCH_UKSUB64: u32 = 0xb2001077;
const MASK_UKSUB64: u32 = 0xfe00707f;
const MATCH_UKSUB8: u32 = 0x3a000077;
const MASK_UKSUB8: u32 = 0xfe00707f;
const MATCH_UKSUBH: u32 = 0x16001077;
const MASK_UKSUBH: u32 = 0xfe00707f;
const MATCH_UKSUBW: u32 = 0x12001077;
const MASK_UKSUBW: u32 = 0xfe00707f;
const MATCH_UMAQA: u32 = 0xcc000077;
const MASK_UMAQA: u32 = 0xfe00707f;
const MATCH_UMAR64: u32 = 0xa4001077;
const MASK_UMAR64: u32 = 0xfe00707f;
const MATCH_UMAX16: u32 = 0x92000077;
const MASK_UMAX16: u32 = 0xfe00707f;
const MATCH_UMAX32: u32 = 0xa2002077;
const MASK_UMAX32: u32 = 0xfe00707f;
const MATCH_UMAX8: u32 = 0x9a000077;
const MASK_UMAX8: u32 = 0xfe00707f;
const MATCH_UMIN16: u32 = 0x90000077;
const MASK_UMIN16: u32 = 0xfe00707f;
const MATCH_UMIN32: u32 = 0xa0002077;
const MASK_UMIN32: u32 = 0xfe00707f;
const MATCH_UMIN8: u32 = 0x98000077;
const MASK_UMIN8: u32 = 0xfe00707f;
const MATCH_UMSR64: u32 = 0xa6001077;
const MASK_UMSR64: u32 = 0xfe00707f;
const MATCH_UMUL16: u32 = 0xb0000077;
const MASK_UMUL16: u32 = 0xfe00707f;
const MATCH_UMUL8: u32 = 0xb8000077;
const MASK_UMUL8: u32 = 0xfe00707f;
const MATCH_UMULX16: u32 = 0xb2000077;
const MASK_UMULX16: u32 = 0xfe00707f;
const MATCH_UMULX8: u32 = 0xba000077;
const MASK_UMULX8: u32 = 0xfe00707f;
const MATCH_UNSHFL: u32 = 0x8005033;
const MASK_UNSHFL: u32 = 0xfe00707f;
const MATCH_UNSHFLI: u32 = 0x8005013;
const MASK_UNSHFLI: u32 = 0xfe00707f;
const MATCH_UNSHFLW: u32 = 0x800503b;
const MASK_UNSHFLW: u32 = 0xfe00707f;
const MATCH_UNZIP: u32 = 0x8f05013;
const MASK_UNZIP: u32 = 0xfff0707f;
const MATCH_UNZIP16: u32 = 0x9005013;
const MASK_UNZIP16: u32 = 0xfff0707f;
const MATCH_UNZIP8: u32 = 0x9805013;
const MASK_UNZIP8: u32 = 0xfff0707f;
const MATCH_URADD16: u32 = 0x20000077;
const MASK_URADD16: u32 = 0xfe00707f;
const MATCH_URADD32: u32 = 0x20002077;
const MASK_URADD32: u32 = 0xfe00707f;
const MATCH_URADD64: u32 = 0xa0001077;
const MASK_URADD64: u32 = 0xfe00707f;
const MATCH_URADD8: u32 = 0x28000077;
const MASK_URADD8: u32 = 0xfe00707f;
const MATCH_URADDW: u32 = 0x30001077;
const MASK_URADDW: u32 = 0xfe00707f;
const MATCH_URCRAS16: u32 = 0x24000077;
const MASK_URCRAS16: u32 = 0xfe00707f;
const MATCH_URCRAS32: u32 = 0x24002077;
const MASK_URCRAS32: u32 = 0xfe00707f;
const MATCH_URCRSA16: u32 = 0x26000077;
const MASK_URCRSA16: u32 = 0xfe00707f;
const MATCH_URCRSA32: u32 = 0x26002077;
const MASK_URCRSA32: u32 = 0xfe00707f;
const MATCH_URSTAS16: u32 = 0xd4002077;
const MASK_URSTAS16: u32 = 0xfe00707f;
const MATCH_URSTAS32: u32 = 0xd0002077;
const MASK_URSTAS32: u32 = 0xfe00707f;
const MATCH_URSTSA16: u32 = 0xd6002077;
const MASK_URSTSA16: u32 = 0xfe00707f;
const MATCH_URSTSA32: u32 = 0xd2002077;
const MASK_URSTSA32: u32 = 0xfe00707f;
const MATCH_URSUB16: u32 = 0x22000077;
const MASK_URSUB16: u32 = 0xfe00707f;
const MATCH_URSUB32: u32 = 0x22002077;
const MASK_URSUB32: u32 = 0xfe00707f;
const MATCH_URSUB64: u32 = 0xa2001077;
const MASK_URSUB64: u32 = 0xfe00707f;
const MATCH_URSUB8: u32 = 0x2a000077;
const MASK_URSUB8: u32 = 0xfe00707f;
const MATCH_URSUBW: u32 = 0x32001077;
const MASK_URSUBW: u32 = 0xfe00707f;
const MATCH_VAADD_VV: u32 = 0x24002057;
const MASK_VAADD_VV: u32 = 0xfc00707f;
const MATCH_VAADD_VX: u32 = 0x24006057;
const MASK_VAADD_VX: u32 = 0xfc00707f;
const MATCH_VAADDU_VV: u32 = 0x20002057;
const MASK_VAADDU_VV: u32 = 0xfc00707f;
const MATCH_VAADDU_VX: u32 = 0x20006057;
const MASK_VAADDU_VX: u32 = 0xfc00707f;
const MATCH_VADC_VIM: u32 = 0x40003057;
const MASK_VADC_VIM: u32 = 0xfe00707f;
const MATCH_VADC_VVM: u32 = 0x40000057;
const MASK_VADC_VVM: u32 = 0xfe00707f;
const MATCH_VADC_VXM: u32 = 0x40004057;
const MASK_VADC_VXM: u32 = 0xfe00707f;
const MATCH_VADD_VI: u32 = 0x3057;
const MASK_VADD_VI: u32 = 0xfc00707f;
const MATCH_VADD_VV: u32 = 0x57;
const MASK_VADD_VV: u32 = 0xfc00707f;
const MATCH_VADD_VX: u32 = 0x4057;
const MASK_VADD_VX: u32 = 0xfc00707f;
const MATCH_VAESDF_VS: u32 = 0xa600a077;
const MASK_VAESDF_VS: u32 = 0xfe0ff07f;
const MATCH_VAESDF_VV: u32 = 0xa200a077;
const MASK_VAESDF_VV: u32 = 0xfe0ff07f;
const MATCH_VAESDM_VS: u32 = 0xa6002077;
const MASK_VAESDM_VS: u32 = 0xfe0ff07f;
const MATCH_VAESDM_VV: u32 = 0xa2002077;
const MASK_VAESDM_VV: u32 = 0xfe0ff07f;
const MATCH_VAESEF_VS: u32 = 0xa601a077;
const MASK_VAESEF_VS: u32 = 0xfe0ff07f;
const MATCH_VAESEF_VV: u32 = 0xa201a077;
const MASK_VAESEF_VV: u32 = 0xfe0ff07f;
const MATCH_VAESEM_VS: u32 = 0xa6012077;
const MASK_VAESEM_VS: u32 = 0xfe0ff07f;
const MATCH_VAESEM_VV: u32 = 0xa2012077;
const MASK_VAESEM_VV: u32 = 0xfe0ff07f;
const MATCH_VAESKF1_VI: u32 = 0x8a002077;
const MASK_VAESKF1_VI: u32 = 0xfe00707f;
const MATCH_VAESKF2_VI: u32 = 0xaa002077;
const MASK_VAESKF2_VI: u32 = 0xfe00707f;
const MATCH_VAESZ_VS: u32 = 0xa603a077;
const MASK_VAESZ_VS: u32 = 0xfe0ff07f;
const MATCH_VAND_VI: u32 = 0x24003057;
const MASK_VAND_VI: u32 = 0xfc00707f;
const MATCH_VAND_VV: u32 = 0x24000057;
const MASK_VAND_VV: u32 = 0xfc00707f;
const MATCH_VAND_VX: u32 = 0x24004057;
const MASK_VAND_VX: u32 = 0xfc00707f;
const MATCH_VANDN_VV: u32 = 0x4000057;
const MASK_VANDN_VV: u32 = 0xfc00707f;
const MATCH_VANDN_VX: u32 = 0x4004057;
const MASK_VANDN_VX: u32 = 0xfc00707f;
const MATCH_VASUB_VV: u32 = 0x2c002057;
const MASK_VASUB_VV: u32 = 0xfc00707f;
const MATCH_VASUB_VX: u32 = 0x2c006057;
const MASK_VASUB_VX: u32 = 0xfc00707f;
const MATCH_VASUBU_VV: u32 = 0x28002057;
const MASK_VASUBU_VV: u32 = 0xfc00707f;
const MATCH_VASUBU_VX: u32 = 0x28006057;
const MASK_VASUBU_VX: u32 = 0xfc00707f;
const MATCH_VBREV8_V: u32 = 0x48042057;
const MASK_VBREV8_V: u32 = 0xfc0ff07f;
const MATCH_VBREV_V: u32 = 0x48052057;
const MASK_VBREV_V: u32 = 0xfc0ff07f;
const MATCH_VCLMUL_VV: u32 = 0x30002057;
const MASK_VCLMUL_VV: u32 = 0xfc00707f;
const MATCH_VCLMUL_VX: u32 = 0x30006057;
const MASK_VCLMUL_VX: u32 = 0xfc00707f;
const MATCH_VCLMULH_VV: u32 = 0x34002057;
const MASK_VCLMULH_VV: u32 = 0xfc00707f;
const MATCH_VCLMULH_VX: u32 = 0x34006057;
const MASK_VCLMULH_VX: u32 = 0xfc00707f;
const MATCH_VCLZ_V: u32 = 0x48062057;
const MASK_VCLZ_V: u32 = 0xfc0ff07f;
const MATCH_VCOMPRESS_VM: u32 = 0x5e002057;
const MASK_VCOMPRESS_VM: u32 = 0xfe00707f;
const MATCH_VCPOP_M: u32 = 0x40082057;
const MASK_VCPOP_M: u32 = 0xfc0ff07f;
const MATCH_VCPOP_V: u32 = 0x48072057;
const MASK_VCPOP_V: u32 = 0xfc0ff07f;
const MATCH_VCTZ_V: u32 = 0x4806a057;
const MASK_VCTZ_V: u32 = 0xfc0ff07f;
const MATCH_VDIV_VV: u32 = 0x84002057;
const MASK_VDIV_VV: u32 = 0xfc00707f;
const MATCH_VDIV_VX: u32 = 0x84006057;
const MASK_VDIV_VX: u32 = 0xfc00707f;
const MATCH_VDIVU_VV: u32 = 0x80002057;
const MASK_VDIVU_VV: u32 = 0xfc00707f;
const MATCH_VDIVU_VX: u32 = 0x80006057;
const MASK_VDIVU_VX: u32 = 0xfc00707f;
const MATCH_VFADD_VF: u32 = 0x5057;
const MASK_VFADD_VF: u32 = 0xfc00707f;
const MATCH_VFADD_VV: u32 = 0x1057;
const MASK_VFADD_VV: u32 = 0xfc00707f;
const MATCH_VFCLASS_V: u32 = 0x4c081057;
const MASK_VFCLASS_V: u32 = 0xfc0ff07f;
const MATCH_VFCVT_F_X_V: u32 = 0x48019057;
const MASK_VFCVT_F_X_V: u32 = 0xfc0ff07f;
const MATCH_VFCVT_F_XU_V: u32 = 0x48011057;
const MASK_VFCVT_F_XU_V: u32 = 0xfc0ff07f;
const MATCH_VFCVT_RTZ_X_F_V: u32 = 0x48039057;
const MASK_VFCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
const MATCH_VFCVT_RTZ_XU_F_V: u32 = 0x48031057;
const MASK_VFCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
const MATCH_VFCVT_X_F_V: u32 = 0x48009057;
const MASK_VFCVT_X_F_V: u32 = 0xfc0ff07f;
const MATCH_VFCVT_XU_F_V: u32 = 0x48001057;
const MASK_VFCVT_XU_F_V: u32 = 0xfc0ff07f;
const MATCH_VFDIV_VF: u32 = 0x80005057;
const MASK_VFDIV_VF: u32 = 0xfc00707f;
const MATCH_VFDIV_VV: u32 = 0x80001057;
const MASK_VFDIV_VV: u32 = 0xfc00707f;
const MATCH_VFIRST_M: u32 = 0x4008a057;
const MASK_VFIRST_M: u32 = 0xfc0ff07f;
const MATCH_VFMACC_VF: u32 = 0xb0005057;
const MASK_VFMACC_VF: u32 = 0xfc00707f;
const MATCH_VFMACC_VV: u32 = 0xb0001057;
const MASK_VFMACC_VV: u32 = 0xfc00707f;
const MATCH_VFMADD_VF: u32 = 0xa0005057;
const MASK_VFMADD_VF: u32 = 0xfc00707f;
const MATCH_VFMADD_VV: u32 = 0xa0001057;
const MASK_VFMADD_VV: u32 = 0xfc00707f;
const MATCH_VFMAX_VF: u32 = 0x18005057;
const MASK_VFMAX_VF: u32 = 0xfc00707f;
const MATCH_VFMAX_VV: u32 = 0x18001057;
const MASK_VFMAX_VV: u32 = 0xfc00707f;
const MATCH_VFMERGE_VFM: u32 = 0x5c005057;
const MASK_VFMERGE_VFM: u32 = 0xfe00707f;
const MATCH_VFMIN_VF: u32 = 0x10005057;
const MASK_VFMIN_VF: u32 = 0xfc00707f;
const MATCH_VFMIN_VV: u32 = 0x10001057;
const MASK_VFMIN_VV: u32 = 0xfc00707f;
const MATCH_VFMSAC_VF: u32 = 0xb8005057;
const MASK_VFMSAC_VF: u32 = 0xfc00707f;
const MATCH_VFMSAC_VV: u32 = 0xb8001057;
const MASK_VFMSAC_VV: u32 = 0xfc00707f;
const MATCH_VFMSUB_VF: u32 = 0xa8005057;
const MASK_VFMSUB_VF: u32 = 0xfc00707f;
const MATCH_VFMSUB_VV: u32 = 0xa8001057;
const MASK_VFMSUB_VV: u32 = 0xfc00707f;
const MATCH_VFMUL_VF: u32 = 0x90005057;
const MASK_VFMUL_VF: u32 = 0xfc00707f;
const MATCH_VFMUL_VV: u32 = 0x90001057;
const MASK_VFMUL_VV: u32 = 0xfc00707f;
const MATCH_VFMV_F_S: u32 = 0x42001057;
const MASK_VFMV_F_S: u32 = 0xfe0ff07f;
const MATCH_VFMV_S_F: u32 = 0x42005057;
const MASK_VFMV_S_F: u32 = 0xfff0707f;
const MATCH_VFMV_V_F: u32 = 0x5e005057;
const MASK_VFMV_V_F: u32 = 0xfff0707f;
const MATCH_VFNCVT_F_F_W: u32 = 0x480a1057;
const MASK_VFNCVT_F_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_F_X_W: u32 = 0x48099057;
const MASK_VFNCVT_F_X_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_F_XU_W: u32 = 0x48091057;
const MASK_VFNCVT_F_XU_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_ROD_F_F_W: u32 = 0x480a9057;
const MASK_VFNCVT_ROD_F_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_RTZ_X_F_W: u32 = 0x480b9057;
const MASK_VFNCVT_RTZ_X_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_RTZ_XU_F_W: u32 = 0x480b1057;
const MASK_VFNCVT_RTZ_XU_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_X_F_W: u32 = 0x48089057;
const MASK_VFNCVT_X_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVT_XU_F_W: u32 = 0x48081057;
const MASK_VFNCVT_XU_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNCVTBF16_F_F_W: u32 = 0x480e9057;
const MASK_VFNCVTBF16_F_F_W: u32 = 0xfc0ff07f;
const MATCH_VFNMACC_VF: u32 = 0xb4005057;
const MASK_VFNMACC_VF: u32 = 0xfc00707f;
const MATCH_VFNMACC_VV: u32 = 0xb4001057;
const MASK_VFNMACC_VV: u32 = 0xfc00707f;
const MATCH_VFNMADD_VF: u32 = 0xa4005057;
const MASK_VFNMADD_VF: u32 = 0xfc00707f;
const MATCH_VFNMADD_VV: u32 = 0xa4001057;
const MASK_VFNMADD_VV: u32 = 0xfc00707f;
const MATCH_VFNMSAC_VF: u32 = 0xbc005057;
const MASK_VFNMSAC_VF: u32 = 0xfc00707f;
const MATCH_VFNMSAC_VV: u32 = 0xbc001057;
const MASK_VFNMSAC_VV: u32 = 0xfc00707f;
const MATCH_VFNMSUB_VF: u32 = 0xac005057;
const MASK_VFNMSUB_VF: u32 = 0xfc00707f;
const MATCH_VFNMSUB_VV: u32 = 0xac001057;
const MASK_VFNMSUB_VV: u32 = 0xfc00707f;
const MATCH_VFRDIV_VF: u32 = 0x84005057;
const MASK_VFRDIV_VF: u32 = 0xfc00707f;
const MATCH_VFREC7_V: u32 = 0x4c029057;
const MASK_VFREC7_V: u32 = 0xfc0ff07f;
const MATCH_VFREDMAX_VS: u32 = 0x1c001057;
const MASK_VFREDMAX_VS: u32 = 0xfc00707f;
const MATCH_VFREDMIN_VS: u32 = 0x14001057;
const MASK_VFREDMIN_VS: u32 = 0xfc00707f;
const MATCH_VFREDOSUM_VS: u32 = 0xc001057;
const MASK_VFREDOSUM_VS: u32 = 0xfc00707f;
const MATCH_VFREDSUM_VS: u32 = 0x4001057;
const MASK_VFREDSUM_VS: u32 = 0xfc00707f;
const MATCH_VFREDUSUM_VS: u32 = 0x4001057;
const MASK_VFREDUSUM_VS: u32 = 0xfc00707f;
const MATCH_VFRSQRT7_V: u32 = 0x4c021057;
const MASK_VFRSQRT7_V: u32 = 0xfc0ff07f;
const MATCH_VFRSUB_VF: u32 = 0x9c005057;
const MASK_VFRSUB_VF: u32 = 0xfc00707f;
const MATCH_VFSGNJ_VF: u32 = 0x20005057;
const MASK_VFSGNJ_VF: u32 = 0xfc00707f;
const MATCH_VFSGNJ_VV: u32 = 0x20001057;
const MASK_VFSGNJ_VV: u32 = 0xfc00707f;
const MATCH_VFSGNJN_VF: u32 = 0x24005057;
const MASK_VFSGNJN_VF: u32 = 0xfc00707f;
const MATCH_VFSGNJN_VV: u32 = 0x24001057;
const MASK_VFSGNJN_VV: u32 = 0xfc00707f;
const MATCH_VFSGNJX_VF: u32 = 0x28005057;
const MASK_VFSGNJX_VF: u32 = 0xfc00707f;
const MATCH_VFSGNJX_VV: u32 = 0x28001057;
const MASK_VFSGNJX_VV: u32 = 0xfc00707f;
const MATCH_VFSLIDE1DOWN_VF: u32 = 0x3c005057;
const MASK_VFSLIDE1DOWN_VF: u32 = 0xfc00707f;
const MATCH_VFSLIDE1UP_VF: u32 = 0x38005057;
const MASK_VFSLIDE1UP_VF: u32 = 0xfc00707f;
const MATCH_VFSQRT_V: u32 = 0x4c001057;
const MASK_VFSQRT_V: u32 = 0xfc0ff07f;
const MATCH_VFSUB_VF: u32 = 0x8005057;
const MASK_VFSUB_VF: u32 = 0xfc00707f;
const MATCH_VFSUB_VV: u32 = 0x8001057;
const MASK_VFSUB_VV: u32 = 0xfc00707f;
const MATCH_VFWADD_VF: u32 = 0xc0005057;
const MASK_VFWADD_VF: u32 = 0xfc00707f;
const MATCH_VFWADD_VV: u32 = 0xc0001057;
const MASK_VFWADD_VV: u32 = 0xfc00707f;
const MATCH_VFWADD_WF: u32 = 0xd0005057;
const MASK_VFWADD_WF: u32 = 0xfc00707f;
const MATCH_VFWADD_WV: u32 = 0xd0001057;
const MASK_VFWADD_WV: u32 = 0xfc00707f;
const MATCH_VFWCVT_F_F_V: u32 = 0x48061057;
const MASK_VFWCVT_F_F_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVT_F_X_V: u32 = 0x48059057;
const MASK_VFWCVT_F_X_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVT_F_XU_V: u32 = 0x48051057;
const MASK_VFWCVT_F_XU_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVT_RTZ_X_F_V: u32 = 0x48079057;
const MASK_VFWCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVT_RTZ_XU_F_V: u32 = 0x48071057;
const MASK_VFWCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVT_X_F_V: u32 = 0x48049057;
const MASK_VFWCVT_X_F_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVT_XU_F_V: u32 = 0x48041057;
const MASK_VFWCVT_XU_F_V: u32 = 0xfc0ff07f;
const MATCH_VFWCVTBF16_F_F_V: u32 = 0x48069057;
const MASK_VFWCVTBF16_F_F_V: u32 = 0xfc0ff07f;
const MATCH_VFWMACC_VF: u32 = 0xf0005057;
const MASK_VFWMACC_VF: u32 = 0xfc00707f;
const MATCH_VFWMACC_VV: u32 = 0xf0001057;
const MASK_VFWMACC_VV: u32 = 0xfc00707f;
const MATCH_VFWMACCBF16_VF: u32 = 0xec005057;
const MASK_VFWMACCBF16_VF: u32 = 0xfc00707f;
const MATCH_VFWMACCBF16_VV: u32 = 0xec001057;
const MASK_VFWMACCBF16_VV: u32 = 0xfc00707f;
const MATCH_VFWMSAC_VF: u32 = 0xf8005057;
const MASK_VFWMSAC_VF: u32 = 0xfc00707f;
const MATCH_VFWMSAC_VV: u32 = 0xf8001057;
const MASK_VFWMSAC_VV: u32 = 0xfc00707f;
const MATCH_VFWMUL_VF: u32 = 0xe0005057;
const MASK_VFWMUL_VF: u32 = 0xfc00707f;
const MATCH_VFWMUL_VV: u32 = 0xe0001057;
const MASK_VFWMUL_VV: u32 = 0xfc00707f;
const MATCH_VFWNMACC_VF: u32 = 0xf4005057;
const MASK_VFWNMACC_VF: u32 = 0xfc00707f;
const MATCH_VFWNMACC_VV: u32 = 0xf4001057;
const MASK_VFWNMACC_VV: u32 = 0xfc00707f;
const MATCH_VFWNMSAC_VF: u32 = 0xfc005057;
const MASK_VFWNMSAC_VF: u32 = 0xfc00707f;
const MATCH_VFWNMSAC_VV: u32 = 0xfc001057;
const MASK_VFWNMSAC_VV: u32 = 0xfc00707f;
const MATCH_VFWREDOSUM_VS: u32 = 0xcc001057;
const MASK_VFWREDOSUM_VS: u32 = 0xfc00707f;
const MATCH_VFWREDSUM_VS: u32 = 0xc4001057;
const MASK_VFWREDSUM_VS: u32 = 0xfc00707f;
const MATCH_VFWREDUSUM_VS: u32 = 0xc4001057;
const MASK_VFWREDUSUM_VS: u32 = 0xfc00707f;
const MATCH_VFWSUB_VF: u32 = 0xc8005057;
const MASK_VFWSUB_VF: u32 = 0xfc00707f;
const MATCH_VFWSUB_VV: u32 = 0xc8001057;
const MASK_VFWSUB_VV: u32 = 0xfc00707f;
const MATCH_VFWSUB_WF: u32 = 0xd8005057;
const MASK_VFWSUB_WF: u32 = 0xfc00707f;
const MATCH_VFWSUB_WV: u32 = 0xd8001057;
const MASK_VFWSUB_WV: u32 = 0xfc00707f;
const MATCH_VGHSH_VV: u32 = 0xb2002077;
const MASK_VGHSH_VV: u32 = 0xfe00707f;
const MATCH_VGMUL_VV: u32 = 0xa208a077;
const MASK_VGMUL_VV: u32 = 0xfe0ff07f;
const MATCH_VID_V: u32 = 0x5008a057;
const MASK_VID_V: u32 = 0xfdfff07f;
const MATCH_VIOTA_M: u32 = 0x50082057;
const MASK_VIOTA_M: u32 = 0xfc0ff07f;
const MATCH_VL1R_V: u32 = 0x2800007;
const MASK_VL1R_V: u32 = 0xfff0707f;
const MATCH_VL1RE16_V: u32 = 0x2805007;
const MASK_VL1RE16_V: u32 = 0xfff0707f;
const MATCH_VL1RE32_V: u32 = 0x2806007;
const MASK_VL1RE32_V: u32 = 0xfff0707f;
const MATCH_VL1RE64_V: u32 = 0x2807007;
const MASK_VL1RE64_V: u32 = 0xfff0707f;
const MATCH_VL1RE8_V: u32 = 0x2800007;
const MASK_VL1RE8_V: u32 = 0xfff0707f;
const MATCH_VL2R_V: u32 = 0x22800007;
const MASK_VL2R_V: u32 = 0xfff0707f;
const MATCH_VL2RE16_V: u32 = 0x22805007;
const MASK_VL2RE16_V: u32 = 0xfff0707f;
const MATCH_VL2RE32_V: u32 = 0x22806007;
const MASK_VL2RE32_V: u32 = 0xfff0707f;
const MATCH_VL2RE64_V: u32 = 0x22807007;
const MASK_VL2RE64_V: u32 = 0xfff0707f;
const MATCH_VL2RE8_V: u32 = 0x22800007;
const MASK_VL2RE8_V: u32 = 0xfff0707f;
const MATCH_VL4R_V: u32 = 0x62800007;
const MASK_VL4R_V: u32 = 0xfff0707f;
const MATCH_VL4RE16_V: u32 = 0x62805007;
const MASK_VL4RE16_V: u32 = 0xfff0707f;
const MATCH_VL4RE32_V: u32 = 0x62806007;
const MASK_VL4RE32_V: u32 = 0xfff0707f;
const MATCH_VL4RE64_V: u32 = 0x62807007;
const MASK_VL4RE64_V: u32 = 0xfff0707f;
const MATCH_VL4RE8_V: u32 = 0x62800007;
const MASK_VL4RE8_V: u32 = 0xfff0707f;
const MATCH_VL8R_V: u32 = 0xe2800007;
const MASK_VL8R_V: u32 = 0xfff0707f;
const MATCH_VL8RE16_V: u32 = 0xe2805007;
const MASK_VL8RE16_V: u32 = 0xfff0707f;
const MATCH_VL8RE32_V: u32 = 0xe2806007;
const MASK_VL8RE32_V: u32 = 0xfff0707f;
const MATCH_VL8RE64_V: u32 = 0xe2807007;
const MASK_VL8RE64_V: u32 = 0xfff0707f;
const MATCH_VL8RE8_V: u32 = 0xe2800007;
const MASK_VL8RE8_V: u32 = 0xfff0707f;
const MATCH_VLE1024_V: u32 = 0x10007007;
const MASK_VLE1024_V: u32 = 0x1df0707f;
const MATCH_VLE1024FF_V: u32 = 0x11007007;
const MASK_VLE1024FF_V: u32 = 0x1df0707f;
const MATCH_VLE128_V: u32 = 0x10000007;
const MASK_VLE128_V: u32 = 0x1df0707f;
const MATCH_VLE128FF_V: u32 = 0x11000007;
const MASK_VLE128FF_V: u32 = 0x1df0707f;
const MATCH_VLE16_V: u32 = 0x5007;
const MASK_VLE16_V: u32 = 0x1df0707f;
const MATCH_VLE16FF_V: u32 = 0x1005007;
const MASK_VLE16FF_V: u32 = 0x1df0707f;
const MATCH_VLE1_V: u32 = 0x2b00007;
const MASK_VLE1_V: u32 = 0xfff0707f;
const MATCH_VLE256_V: u32 = 0x10005007;
const MASK_VLE256_V: u32 = 0x1df0707f;
const MATCH_VLE256FF_V: u32 = 0x11005007;
const MASK_VLE256FF_V: u32 = 0x1df0707f;
const MATCH_VLE32_V: u32 = 0x6007;
const MASK_VLE32_V: u32 = 0x1df0707f;
const MATCH_VLE32FF_V: u32 = 0x1006007;
const MASK_VLE32FF_V: u32 = 0x1df0707f;
const MATCH_VLE512_V: u32 = 0x10006007;
const MASK_VLE512_V: u32 = 0x1df0707f;
const MATCH_VLE512FF_V: u32 = 0x11006007;
const MASK_VLE512FF_V: u32 = 0x1df0707f;
const MATCH_VLE64_V: u32 = 0x7007;
const MASK_VLE64_V: u32 = 0x1df0707f;
const MATCH_VLE64FF_V: u32 = 0x1007007;
const MASK_VLE64FF_V: u32 = 0x1df0707f;
const MATCH_VLE8_V: u32 = 0x7;
const MASK_VLE8_V: u32 = 0x1df0707f;
const MATCH_VLE8FF_V: u32 = 0x1000007;
const MASK_VLE8FF_V: u32 = 0x1df0707f;
const MATCH_VLM_V: u32 = 0x2b00007;
const MASK_VLM_V: u32 = 0xfff0707f;
const MATCH_VLOXEI1024_V: u32 = 0x1c007007;
const MASK_VLOXEI1024_V: u32 = 0x1c00707f;
const MATCH_VLOXEI128_V: u32 = 0x1c000007;
const MASK_VLOXEI128_V: u32 = 0x1c00707f;
const MATCH_VLOXEI16_V: u32 = 0xc005007;
const MASK_VLOXEI16_V: u32 = 0x1c00707f;
const MATCH_VLOXEI256_V: u32 = 0x1c005007;
const MASK_VLOXEI256_V: u32 = 0x1c00707f;
const MATCH_VLOXEI32_V: u32 = 0xc006007;
const MASK_VLOXEI32_V: u32 = 0x1c00707f;
const MATCH_VLOXEI512_V: u32 = 0x1c006007;
const MASK_VLOXEI512_V: u32 = 0x1c00707f;
const MATCH_VLOXEI64_V: u32 = 0xc007007;
const MASK_VLOXEI64_V: u32 = 0x1c00707f;
const MATCH_VLOXEI8_V: u32 = 0xc000007;
const MASK_VLOXEI8_V: u32 = 0x1c00707f;
const MATCH_VLSE1024_V: u32 = 0x18007007;
const MASK_VLSE1024_V: u32 = 0x1c00707f;
const MATCH_VLSE128_V: u32 = 0x18000007;
const MASK_VLSE128_V: u32 = 0x1c00707f;
const MATCH_VLSE16_V: u32 = 0x8005007;
const MASK_VLSE16_V: u32 = 0x1c00707f;
const MATCH_VLSE256_V: u32 = 0x18005007;
const MASK_VLSE256_V: u32 = 0x1c00707f;
const MATCH_VLSE32_V: u32 = 0x8006007;
const MASK_VLSE32_V: u32 = 0x1c00707f;
const MATCH_VLSE512_V: u32 = 0x18006007;
const MASK_VLSE512_V: u32 = 0x1c00707f;
const MATCH_VLSE64_V: u32 = 0x8007007;
const MASK_VLSE64_V: u32 = 0x1c00707f;
const MATCH_VLSE8_V: u32 = 0x8000007;
const MASK_VLSE8_V: u32 = 0x1c00707f;
const MATCH_VLUXEI1024_V: u32 = 0x14007007;
const MASK_VLUXEI1024_V: u32 = 0x1c00707f;
const MATCH_VLUXEI128_V: u32 = 0x14000007;
const MASK_VLUXEI128_V: u32 = 0x1c00707f;
const MATCH_VLUXEI16_V: u32 = 0x4005007;
const MASK_VLUXEI16_V: u32 = 0x1c00707f;
const MATCH_VLUXEI256_V: u32 = 0x14005007;
const MASK_VLUXEI256_V: u32 = 0x1c00707f;
const MATCH_VLUXEI32_V: u32 = 0x4006007;
const MASK_VLUXEI32_V: u32 = 0x1c00707f;
const MATCH_VLUXEI512_V: u32 = 0x14006007;
const MASK_VLUXEI512_V: u32 = 0x1c00707f;
const MATCH_VLUXEI64_V: u32 = 0x4007007;
const MASK_VLUXEI64_V: u32 = 0x1c00707f;
const MATCH_VLUXEI8_V: u32 = 0x4000007;
const MASK_VLUXEI8_V: u32 = 0x1c00707f;
const MATCH_VMACC_VV: u32 = 0xb4002057;
const MASK_VMACC_VV: u32 = 0xfc00707f;
const MATCH_VMACC_VX: u32 = 0xb4006057;
const MASK_VMACC_VX: u32 = 0xfc00707f;
const MATCH_VMADC_VI: u32 = 0x46003057;
const MASK_VMADC_VI: u32 = 0xfe00707f;
const MATCH_VMADC_VIM: u32 = 0x44003057;
const MASK_VMADC_VIM: u32 = 0xfe00707f;
const MATCH_VMADC_VV: u32 = 0x46000057;
const MASK_VMADC_VV: u32 = 0xfe00707f;
const MATCH_VMADC_VVM: u32 = 0x44000057;
const MASK_VMADC_VVM: u32 = 0xfe00707f;
const MATCH_VMADC_VX: u32 = 0x46004057;
const MASK_VMADC_VX: u32 = 0xfe00707f;
const MATCH_VMADC_VXM: u32 = 0x44004057;
const MASK_VMADC_VXM: u32 = 0xfe00707f;
const MATCH_VMADD_VV: u32 = 0xa4002057;
const MASK_VMADD_VV: u32 = 0xfc00707f;
const MATCH_VMADD_VX: u32 = 0xa4006057;
const MASK_VMADD_VX: u32 = 0xfc00707f;
const MATCH_VMAND_MM: u32 = 0x66002057;
const MASK_VMAND_MM: u32 = 0xfe00707f;
const MATCH_VMANDN_MM: u32 = 0x62002057;
const MASK_VMANDN_MM: u32 = 0xfe00707f;
const MATCH_VMANDNOT_MM: u32 = 0x60002057;
const MASK_VMANDNOT_MM: u32 = 0xfc00707f;
const MATCH_VMAX_VV: u32 = 0x1c000057;
const MASK_VMAX_VV: u32 = 0xfc00707f;
const MATCH_VMAX_VX: u32 = 0x1c004057;
const MASK_VMAX_VX: u32 = 0xfc00707f;
const MATCH_VMAXU_VV: u32 = 0x18000057;
const MASK_VMAXU_VV: u32 = 0xfc00707f;
const MATCH_VMAXU_VX: u32 = 0x18004057;
const MASK_VMAXU_VX: u32 = 0xfc00707f;
const MATCH_VMERGE_VIM: u32 = 0x5c003057;
const MASK_VMERGE_VIM: u32 = 0xfe00707f;
const MATCH_VMERGE_VVM: u32 = 0x5c000057;
const MASK_VMERGE_VVM: u32 = 0xfe00707f;
const MATCH_VMERGE_VXM: u32 = 0x5c004057;
const MASK_VMERGE_VXM: u32 = 0xfe00707f;
const MATCH_VMFEQ_VF: u32 = 0x60005057;
const MASK_VMFEQ_VF: u32 = 0xfc00707f;
const MATCH_VMFEQ_VV: u32 = 0x60001057;
const MASK_VMFEQ_VV: u32 = 0xfc00707f;
const MATCH_VMFGE_VF: u32 = 0x7c005057;
const MASK_VMFGE_VF: u32 = 0xfc00707f;
const MATCH_VMFGT_VF: u32 = 0x74005057;
const MASK_VMFGT_VF: u32 = 0xfc00707f;
const MATCH_VMFLE_VF: u32 = 0x64005057;
const MASK_VMFLE_VF: u32 = 0xfc00707f;
const MATCH_VMFLE_VV: u32 = 0x64001057;
const MASK_VMFLE_VV: u32 = 0xfc00707f;
const MATCH_VMFLT_VF: u32 = 0x6c005057;
const MASK_VMFLT_VF: u32 = 0xfc00707f;
const MATCH_VMFLT_VV: u32 = 0x6c001057;
const MASK_VMFLT_VV: u32 = 0xfc00707f;
const MATCH_VMFNE_VF: u32 = 0x70005057;
const MASK_VMFNE_VF: u32 = 0xfc00707f;
const MATCH_VMFNE_VV: u32 = 0x70001057;
const MASK_VMFNE_VV: u32 = 0xfc00707f;
const MATCH_VMIN_VV: u32 = 0x14000057;
const MASK_VMIN_VV: u32 = 0xfc00707f;
const MATCH_VMIN_VX: u32 = 0x14004057;
const MASK_VMIN_VX: u32 = 0xfc00707f;
const MATCH_VMINU_VV: u32 = 0x10000057;
const MASK_VMINU_VV: u32 = 0xfc00707f;
const MATCH_VMINU_VX: u32 = 0x10004057;
const MASK_VMINU_VX: u32 = 0xfc00707f;
const MATCH_VMNAND_MM: u32 = 0x76002057;
const MASK_VMNAND_MM: u32 = 0xfe00707f;
const MATCH_VMNOR_MM: u32 = 0x7a002057;
const MASK_VMNOR_MM: u32 = 0xfe00707f;
const MATCH_VMOR_MM: u32 = 0x6a002057;
const MASK_VMOR_MM: u32 = 0xfe00707f;
const MATCH_VMORN_MM: u32 = 0x72002057;
const MASK_VMORN_MM: u32 = 0xfe00707f;
const MATCH_VMORNOT_MM: u32 = 0x70002057;
const MASK_VMORNOT_MM: u32 = 0xfc00707f;
const MATCH_VMSBC_VV: u32 = 0x4e000057;
const MASK_VMSBC_VV: u32 = 0xfe00707f;
const MATCH_VMSBC_VVM: u32 = 0x4c000057;
const MASK_VMSBC_VVM: u32 = 0xfe00707f;
const MATCH_VMSBC_VX: u32 = 0x4e004057;
const MASK_VMSBC_VX: u32 = 0xfe00707f;
const MATCH_VMSBC_VXM: u32 = 0x4c004057;
const MASK_VMSBC_VXM: u32 = 0xfe00707f;
const MATCH_VMSBF_M: u32 = 0x5000a057;
const MASK_VMSBF_M: u32 = 0xfc0ff07f;
const MATCH_VMSEQ_VI: u32 = 0x60003057;
const MASK_VMSEQ_VI: u32 = 0xfc00707f;
const MATCH_VMSEQ_VV: u32 = 0x60000057;
const MASK_VMSEQ_VV: u32 = 0xfc00707f;
const MATCH_VMSEQ_VX: u32 = 0x60004057;
const MASK_VMSEQ_VX: u32 = 0xfc00707f;
const MATCH_VMSGT_VI: u32 = 0x7c003057;
const MASK_VMSGT_VI: u32 = 0xfc00707f;
const MATCH_VMSGT_VX: u32 = 0x7c004057;
const MASK_VMSGT_VX: u32 = 0xfc00707f;
const MATCH_VMSGTU_VI: u32 = 0x78003057;
const MASK_VMSGTU_VI: u32 = 0xfc00707f;
const MATCH_VMSGTU_VX: u32 = 0x78004057;
const MASK_VMSGTU_VX: u32 = 0xfc00707f;
const MATCH_VMSIF_M: u32 = 0x5001a057;
const MASK_VMSIF_M: u32 = 0xfc0ff07f;
const MATCH_VMSLE_VI: u32 = 0x74003057;
const MASK_VMSLE_VI: u32 = 0xfc00707f;
const MATCH_VMSLE_VV: u32 = 0x74000057;
const MASK_VMSLE_VV: u32 = 0xfc00707f;
const MATCH_VMSLE_VX: u32 = 0x74004057;
const MASK_VMSLE_VX: u32 = 0xfc00707f;
const MATCH_VMSLEU_VI: u32 = 0x70003057;
const MASK_VMSLEU_VI: u32 = 0xfc00707f;
const MATCH_VMSLEU_VV: u32 = 0x70000057;
const MASK_VMSLEU_VV: u32 = 0xfc00707f;
const MATCH_VMSLEU_VX: u32 = 0x70004057;
const MASK_VMSLEU_VX: u32 = 0xfc00707f;
const MATCH_VMSLT_VV: u32 = 0x6c000057;
const MASK_VMSLT_VV: u32 = 0xfc00707f;
const MATCH_VMSLT_VX: u32 = 0x6c004057;
const MASK_VMSLT_VX: u32 = 0xfc00707f;
const MATCH_VMSLTU_VV: u32 = 0x68000057;
const MASK_VMSLTU_VV: u32 = 0xfc00707f;
const MATCH_VMSLTU_VX: u32 = 0x68004057;
const MASK_VMSLTU_VX: u32 = 0xfc00707f;
const MATCH_VMSNE_VI: u32 = 0x64003057;
const MASK_VMSNE_VI: u32 = 0xfc00707f;
const MATCH_VMSNE_VV: u32 = 0x64000057;
const MASK_VMSNE_VV: u32 = 0xfc00707f;
const MATCH_VMSNE_VX: u32 = 0x64004057;
const MASK_VMSNE_VX: u32 = 0xfc00707f;
const MATCH_VMSOF_M: u32 = 0x50012057;
const MASK_VMSOF_M: u32 = 0xfc0ff07f;
const MATCH_VMUL_VV: u32 = 0x94002057;
const MASK_VMUL_VV: u32 = 0xfc00707f;
const MATCH_VMUL_VX: u32 = 0x94006057;
const MASK_VMUL_VX: u32 = 0xfc00707f;
const MATCH_VMULH_VV: u32 = 0x9c002057;
const MASK_VMULH_VV: u32 = 0xfc00707f;
const MATCH_VMULH_VX: u32 = 0x9c006057;
const MASK_VMULH_VX: u32 = 0xfc00707f;
const MATCH_VMULHSU_VV: u32 = 0x98002057;
const MASK_VMULHSU_VV: u32 = 0xfc00707f;
const MATCH_VMULHSU_VX: u32 = 0x98006057;
const MASK_VMULHSU_VX: u32 = 0xfc00707f;
const MATCH_VMULHU_VV: u32 = 0x90002057;
const MASK_VMULHU_VV: u32 = 0xfc00707f;
const MATCH_VMULHU_VX: u32 = 0x90006057;
const MASK_VMULHU_VX: u32 = 0xfc00707f;
const MATCH_VMV1R_V: u32 = 0x9e003057;
const MASK_VMV1R_V: u32 = 0xfe0ff07f;
const MATCH_VMV2R_V: u32 = 0x9e00b057;
const MASK_VMV2R_V: u32 = 0xfe0ff07f;
const MATCH_VMV4R_V: u32 = 0x9e01b057;
const MASK_VMV4R_V: u32 = 0xfe0ff07f;
const MATCH_VMV8R_V: u32 = 0x9e03b057;
const MASK_VMV8R_V: u32 = 0xfe0ff07f;
const MATCH_VMV_S_X: u32 = 0x42006057;
const MASK_VMV_S_X: u32 = 0xfff0707f;
const MATCH_VMV_V_I: u32 = 0x5e003057;
const MASK_VMV_V_I: u32 = 0xfff0707f;
const MATCH_VMV_V_V: u32 = 0x5e000057;
const MASK_VMV_V_V: u32 = 0xfff0707f;
const MATCH_VMV_V_X: u32 = 0x5e004057;
const MASK_VMV_V_X: u32 = 0xfff0707f;
const MATCH_VMV_X_S: u32 = 0x42002057;
const MASK_VMV_X_S: u32 = 0xfe0ff07f;
const MATCH_VMXNOR_MM: u32 = 0x7e002057;
const MASK_VMXNOR_MM: u32 = 0xfe00707f;
const MATCH_VMXOR_MM: u32 = 0x6e002057;
const MASK_VMXOR_MM: u32 = 0xfe00707f;
const MATCH_VNCLIP_WI: u32 = 0xbc003057;
const MASK_VNCLIP_WI: u32 = 0xfc00707f;
const MATCH_VNCLIP_WV: u32 = 0xbc000057;
const MASK_VNCLIP_WV: u32 = 0xfc00707f;
const MATCH_VNCLIP_WX: u32 = 0xbc004057;
const MASK_VNCLIP_WX: u32 = 0xfc00707f;
const MATCH_VNCLIPU_WI: u32 = 0xb8003057;
const MASK_VNCLIPU_WI: u32 = 0xfc00707f;
const MATCH_VNCLIPU_WV: u32 = 0xb8000057;
const MASK_VNCLIPU_WV: u32 = 0xfc00707f;
const MATCH_VNCLIPU_WX: u32 = 0xb8004057;
const MASK_VNCLIPU_WX: u32 = 0xfc00707f;
const MATCH_VNMSAC_VV: u32 = 0xbc002057;
const MASK_VNMSAC_VV: u32 = 0xfc00707f;
const MATCH_VNMSAC_VX: u32 = 0xbc006057;
const MASK_VNMSAC_VX: u32 = 0xfc00707f;
const MATCH_VNMSUB_VV: u32 = 0xac002057;
const MASK_VNMSUB_VV: u32 = 0xfc00707f;
const MATCH_VNMSUB_VX: u32 = 0xac006057;
const MASK_VNMSUB_VX: u32 = 0xfc00707f;
const MATCH_VNSRA_WI: u32 = 0xb4003057;
const MASK_VNSRA_WI: u32 = 0xfc00707f;
const MATCH_VNSRA_WV: u32 = 0xb4000057;
const MASK_VNSRA_WV: u32 = 0xfc00707f;
const MATCH_VNSRA_WX: u32 = 0xb4004057;
const MASK_VNSRA_WX: u32 = 0xfc00707f;
const MATCH_VNSRL_WI: u32 = 0xb0003057;
const MASK_VNSRL_WI: u32 = 0xfc00707f;
const MATCH_VNSRL_WV: u32 = 0xb0000057;
const MASK_VNSRL_WV: u32 = 0xfc00707f;
const MATCH_VNSRL_WX: u32 = 0xb0004057;
const MASK_VNSRL_WX: u32 = 0xfc00707f;
const MATCH_VOR_VI: u32 = 0x28003057;
const MASK_VOR_VI: u32 = 0xfc00707f;
const MATCH_VOR_VV: u32 = 0x28000057;
const MASK_VOR_VV: u32 = 0xfc00707f;
const MATCH_VOR_VX: u32 = 0x28004057;
const MASK_VOR_VX: u32 = 0xfc00707f;
const MATCH_VPOPC_M: u32 = 0x40082057;
const MASK_VPOPC_M: u32 = 0xfc0ff07f;
const MATCH_VREDAND_VS: u32 = 0x4002057;
const MASK_VREDAND_VS: u32 = 0xfc00707f;
const MATCH_VREDMAX_VS: u32 = 0x1c002057;
const MASK_VREDMAX_VS: u32 = 0xfc00707f;
const MATCH_VREDMAXU_VS: u32 = 0x18002057;
const MASK_VREDMAXU_VS: u32 = 0xfc00707f;
const MATCH_VREDMIN_VS: u32 = 0x14002057;
const MASK_VREDMIN_VS: u32 = 0xfc00707f;
const MATCH_VREDMINU_VS: u32 = 0x10002057;
const MASK_VREDMINU_VS: u32 = 0xfc00707f;
const MATCH_VREDOR_VS: u32 = 0x8002057;
const MASK_VREDOR_VS: u32 = 0xfc00707f;
const MATCH_VREDSUM_VS: u32 = 0x2057;
const MASK_VREDSUM_VS: u32 = 0xfc00707f;
const MATCH_VREDXOR_VS: u32 = 0xc002057;
const MASK_VREDXOR_VS: u32 = 0xfc00707f;
const MATCH_VREM_VV: u32 = 0x8c002057;
const MASK_VREM_VV: u32 = 0xfc00707f;
const MATCH_VREM_VX: u32 = 0x8c006057;
const MASK_VREM_VX: u32 = 0xfc00707f;
const MATCH_VREMU_VV: u32 = 0x88002057;
const MASK_VREMU_VV: u32 = 0xfc00707f;
const MATCH_VREMU_VX: u32 = 0x88006057;
const MASK_VREMU_VX: u32 = 0xfc00707f;
const MATCH_VREV8_V: u32 = 0x4804a057;
const MASK_VREV8_V: u32 = 0xfc0ff07f;
const MATCH_VRGATHER_VI: u32 = 0x30003057;
const MASK_VRGATHER_VI: u32 = 0xfc00707f;
const MATCH_VRGATHER_VV: u32 = 0x30000057;
const MASK_VRGATHER_VV: u32 = 0xfc00707f;
const MATCH_VRGATHER_VX: u32 = 0x30004057;
const MASK_VRGATHER_VX: u32 = 0xfc00707f;
const MATCH_VRGATHEREI16_VV: u32 = 0x38000057;
const MASK_VRGATHEREI16_VV: u32 = 0xfc00707f;
const MATCH_VROL_VV: u32 = 0x54000057;
const MASK_VROL_VV: u32 = 0xfc00707f;
const MATCH_VROL_VX: u32 = 0x54004057;
const MASK_VROL_VX: u32 = 0xfc00707f;
const MATCH_VROR_VI: u32 = 0x50003057;
const MASK_VROR_VI: u32 = 0xf800707f;
const MATCH_VROR_VV: u32 = 0x50000057;
const MASK_VROR_VV: u32 = 0xfc00707f;
const MATCH_VROR_VX: u32 = 0x50004057;
const MASK_VROR_VX: u32 = 0xfc00707f;
const MATCH_VRSUB_VI: u32 = 0xc003057;
const MASK_VRSUB_VI: u32 = 0xfc00707f;
const MATCH_VRSUB_VX: u32 = 0xc004057;
const MASK_VRSUB_VX: u32 = 0xfc00707f;
const MATCH_VS1R_V: u32 = 0x2800027;
const MASK_VS1R_V: u32 = 0xfff0707f;
const MATCH_VS2R_V: u32 = 0x22800027;
const MASK_VS2R_V: u32 = 0xfff0707f;
const MATCH_VS4R_V: u32 = 0x62800027;
const MASK_VS4R_V: u32 = 0xfff0707f;
const MATCH_VS8R_V: u32 = 0xe2800027;
const MASK_VS8R_V: u32 = 0xfff0707f;
const MATCH_VSADD_VI: u32 = 0x84003057;
const MASK_VSADD_VI: u32 = 0xfc00707f;
const MATCH_VSADD_VV: u32 = 0x84000057;
const MASK_VSADD_VV: u32 = 0xfc00707f;
const MATCH_VSADD_VX: u32 = 0x84004057;
const MASK_VSADD_VX: u32 = 0xfc00707f;
const MATCH_VSADDU_VI: u32 = 0x80003057;
const MASK_VSADDU_VI: u32 = 0xfc00707f;
const MATCH_VSADDU_VV: u32 = 0x80000057;
const MASK_VSADDU_VV: u32 = 0xfc00707f;
const MATCH_VSADDU_VX: u32 = 0x80004057;
const MASK_VSADDU_VX: u32 = 0xfc00707f;
const MATCH_VSBC_VVM: u32 = 0x48000057;
const MASK_VSBC_VVM: u32 = 0xfe00707f;
const MATCH_VSBC_VXM: u32 = 0x48004057;
const MASK_VSBC_VXM: u32 = 0xfe00707f;
const MATCH_VSE1024_V: u32 = 0x10007027;
const MASK_VSE1024_V: u32 = 0x1df0707f;
const MATCH_VSE128_V: u32 = 0x10000027;
const MASK_VSE128_V: u32 = 0x1df0707f;
const MATCH_VSE16_V: u32 = 0x5027;
const MASK_VSE16_V: u32 = 0x1df0707f;
const MATCH_VSE1_V: u32 = 0x2b00027;
const MASK_VSE1_V: u32 = 0xfff0707f;
const MATCH_VSE256_V: u32 = 0x10005027;
const MASK_VSE256_V: u32 = 0x1df0707f;
const MATCH_VSE32_V: u32 = 0x6027;
const MASK_VSE32_V: u32 = 0x1df0707f;
const MATCH_VSE512_V: u32 = 0x10006027;
const MASK_VSE512_V: u32 = 0x1df0707f;
const MATCH_VSE64_V: u32 = 0x7027;
const MASK_VSE64_V: u32 = 0x1df0707f;
const MATCH_VSE8_V: u32 = 0x27;
const MASK_VSE8_V: u32 = 0x1df0707f;
const MATCH_VSETIVLI: u32 = 0xc0007057;
const MASK_VSETIVLI: u32 = 0xc000707f;
const MATCH_VSETVL: u32 = 0x80007057;
const MASK_VSETVL: u32 = 0xfe00707f;
const MATCH_VSETVLI: u32 = 0x7057;
const MASK_VSETVLI: u32 = 0x8000707f;
const MATCH_VSEXT_VF2: u32 = 0x4803a057;
const MASK_VSEXT_VF2: u32 = 0xfc0ff07f;
const MATCH_VSEXT_VF4: u32 = 0x4802a057;
const MASK_VSEXT_VF4: u32 = 0xfc0ff07f;
const MATCH_VSEXT_VF8: u32 = 0x4801a057;
const MASK_VSEXT_VF8: u32 = 0xfc0ff07f;
const MATCH_VSHA2CH_VV: u32 = 0xba002077;
const MASK_VSHA2CH_VV: u32 = 0xfe00707f;
const MATCH_VSHA2CL_VV: u32 = 0xbe002077;
const MASK_VSHA2CL_VV: u32 = 0xfe00707f;
const MATCH_VSHA2MS_VV: u32 = 0xb6002077;
const MASK_VSHA2MS_VV: u32 = 0xfe00707f;
const MATCH_VSLIDE1DOWN_VX: u32 = 0x3c006057;
const MASK_VSLIDE1DOWN_VX: u32 = 0xfc00707f;
const MATCH_VSLIDE1UP_VX: u32 = 0x38006057;
const MASK_VSLIDE1UP_VX: u32 = 0xfc00707f;
const MATCH_VSLIDEDOWN_VI: u32 = 0x3c003057;
const MASK_VSLIDEDOWN_VI: u32 = 0xfc00707f;
const MATCH_VSLIDEDOWN_VX: u32 = 0x3c004057;
const MASK_VSLIDEDOWN_VX: u32 = 0xfc00707f;
const MATCH_VSLIDEUP_VI: u32 = 0x38003057;
const MASK_VSLIDEUP_VI: u32 = 0xfc00707f;
const MATCH_VSLIDEUP_VX: u32 = 0x38004057;
const MASK_VSLIDEUP_VX: u32 = 0xfc00707f;
const MATCH_VSLL_VI: u32 = 0x94003057;
const MASK_VSLL_VI: u32 = 0xfc00707f;
const MATCH_VSLL_VV: u32 = 0x94000057;
const MASK_VSLL_VV: u32 = 0xfc00707f;
const MATCH_VSLL_VX: u32 = 0x94004057;
const MASK_VSLL_VX: u32 = 0xfc00707f;
const MATCH_VSM3C_VI: u32 = 0xae002077;
const MASK_VSM3C_VI: u32 = 0xfe00707f;
const MATCH_VSM3ME_VV: u32 = 0x82002077;
const MASK_VSM3ME_VV: u32 = 0xfe00707f;
const MATCH_VSM4K_VI: u32 = 0x86002077;
const MASK_VSM4K_VI: u32 = 0xfe00707f;
const MATCH_VSM4R_VS: u32 = 0xa6082077;
const MASK_VSM4R_VS: u32 = 0xfe0ff07f;
const MATCH_VSM4R_VV: u32 = 0xa2082077;
const MASK_VSM4R_VV: u32 = 0xfe0ff07f;
const MATCH_VSM_V: u32 = 0x2b00027;
const MASK_VSM_V: u32 = 0xfff0707f;
const MATCH_VSMUL_VV: u32 = 0x9c000057;
const MASK_VSMUL_VV: u32 = 0xfc00707f;
const MATCH_VSMUL_VX: u32 = 0x9c004057;
const MASK_VSMUL_VX: u32 = 0xfc00707f;
const MATCH_VSOXEI1024_V: u32 = 0x1c007027;
const MASK_VSOXEI1024_V: u32 = 0x1c00707f;
const MATCH_VSOXEI128_V: u32 = 0x1c000027;
const MASK_VSOXEI128_V: u32 = 0x1c00707f;
const MATCH_VSOXEI16_V: u32 = 0xc005027;
const MASK_VSOXEI16_V: u32 = 0x1c00707f;
const MATCH_VSOXEI256_V: u32 = 0x1c005027;
const MASK_VSOXEI256_V: u32 = 0x1c00707f;
const MATCH_VSOXEI32_V: u32 = 0xc006027;
const MASK_VSOXEI32_V: u32 = 0x1c00707f;
const MATCH_VSOXEI512_V: u32 = 0x1c006027;
const MASK_VSOXEI512_V: u32 = 0x1c00707f;
const MATCH_VSOXEI64_V: u32 = 0xc007027;
const MASK_VSOXEI64_V: u32 = 0x1c00707f;
const MATCH_VSOXEI8_V: u32 = 0xc000027;
const MASK_VSOXEI8_V: u32 = 0x1c00707f;
const MATCH_VSRA_VI: u32 = 0xa4003057;
const MASK_VSRA_VI: u32 = 0xfc00707f;
const MATCH_VSRA_VV: u32 = 0xa4000057;
const MASK_VSRA_VV: u32 = 0xfc00707f;
const MATCH_VSRA_VX: u32 = 0xa4004057;
const MASK_VSRA_VX: u32 = 0xfc00707f;
const MATCH_VSRL_VI: u32 = 0xa0003057;
const MASK_VSRL_VI: u32 = 0xfc00707f;
const MATCH_VSRL_VV: u32 = 0xa0000057;
const MASK_VSRL_VV: u32 = 0xfc00707f;
const MATCH_VSRL_VX: u32 = 0xa0004057;
const MASK_VSRL_VX: u32 = 0xfc00707f;
const MATCH_VSSE1024_V: u32 = 0x18007027;
const MASK_VSSE1024_V: u32 = 0x1c00707f;
const MATCH_VSSE128_V: u32 = 0x18000027;
const MASK_VSSE128_V: u32 = 0x1c00707f;
const MATCH_VSSE16_V: u32 = 0x8005027;
const MASK_VSSE16_V: u32 = 0x1c00707f;
const MATCH_VSSE256_V: u32 = 0x18005027;
const MASK_VSSE256_V: u32 = 0x1c00707f;
const MATCH_VSSE32_V: u32 = 0x8006027;
const MASK_VSSE32_V: u32 = 0x1c00707f;
const MATCH_VSSE512_V: u32 = 0x18006027;
const MASK_VSSE512_V: u32 = 0x1c00707f;
const MATCH_VSSE64_V: u32 = 0x8007027;
const MASK_VSSE64_V: u32 = 0x1c00707f;
const MATCH_VSSE8_V: u32 = 0x8000027;
const MASK_VSSE8_V: u32 = 0x1c00707f;
const MATCH_VSSRA_VI: u32 = 0xac003057;
const MASK_VSSRA_VI: u32 = 0xfc00707f;
const MATCH_VSSRA_VV: u32 = 0xac000057;
const MASK_VSSRA_VV: u32 = 0xfc00707f;
const MATCH_VSSRA_VX: u32 = 0xac004057;
const MASK_VSSRA_VX: u32 = 0xfc00707f;
const MATCH_VSSRL_VI: u32 = 0xa8003057;
const MASK_VSSRL_VI: u32 = 0xfc00707f;
const MATCH_VSSRL_VV: u32 = 0xa8000057;
const MASK_VSSRL_VV: u32 = 0xfc00707f;
const MATCH_VSSRL_VX: u32 = 0xa8004057;
const MASK_VSSRL_VX: u32 = 0xfc00707f;
const MATCH_VSSUB_VV: u32 = 0x8c000057;
const MASK_VSSUB_VV: u32 = 0xfc00707f;
const MATCH_VSSUB_VX: u32 = 0x8c004057;
const MASK_VSSUB_VX: u32 = 0xfc00707f;
const MATCH_VSSUBU_VV: u32 = 0x88000057;
const MASK_VSSUBU_VV: u32 = 0xfc00707f;
const MATCH_VSSUBU_VX: u32 = 0x88004057;
const MASK_VSSUBU_VX: u32 = 0xfc00707f;
const MATCH_VSUB_VV: u32 = 0x8000057;
const MASK_VSUB_VV: u32 = 0xfc00707f;
const MATCH_VSUB_VX: u32 = 0x8004057;
const MASK_VSUB_VX: u32 = 0xfc00707f;
const MATCH_VSUXEI1024_V: u32 = 0x14007027;
const MASK_VSUXEI1024_V: u32 = 0x1c00707f;
const MATCH_VSUXEI128_V: u32 = 0x14000027;
const MASK_VSUXEI128_V: u32 = 0x1c00707f;
const MATCH_VSUXEI16_V: u32 = 0x4005027;
const MASK_VSUXEI16_V: u32 = 0x1c00707f;
const MATCH_VSUXEI256_V: u32 = 0x14005027;
const MASK_VSUXEI256_V: u32 = 0x1c00707f;
const MATCH_VSUXEI32_V: u32 = 0x4006027;
const MASK_VSUXEI32_V: u32 = 0x1c00707f;
const MATCH_VSUXEI512_V: u32 = 0x14006027;
const MASK_VSUXEI512_V: u32 = 0x1c00707f;
const MATCH_VSUXEI64_V: u32 = 0x4007027;
const MASK_VSUXEI64_V: u32 = 0x1c00707f;
const MATCH_VSUXEI8_V: u32 = 0x4000027;
const MASK_VSUXEI8_V: u32 = 0x1c00707f;
const MATCH_VWADD_VV: u32 = 0xc4002057;
const MASK_VWADD_VV: u32 = 0xfc00707f;
const MATCH_VWADD_VX: u32 = 0xc4006057;
const MASK_VWADD_VX: u32 = 0xfc00707f;
const MATCH_VWADD_WV: u32 = 0xd4002057;
const MASK_VWADD_WV: u32 = 0xfc00707f;
const MATCH_VWADD_WX: u32 = 0xd4006057;
const MASK_VWADD_WX: u32 = 0xfc00707f;
const MATCH_VWADDU_VV: u32 = 0xc0002057;
const MASK_VWADDU_VV: u32 = 0xfc00707f;
const MATCH_VWADDU_VX: u32 = 0xc0006057;
const MASK_VWADDU_VX: u32 = 0xfc00707f;
const MATCH_VWADDU_WV: u32 = 0xd0002057;
const MASK_VWADDU_WV: u32 = 0xfc00707f;
const MATCH_VWADDU_WX: u32 = 0xd0006057;
const MASK_VWADDU_WX: u32 = 0xfc00707f;
const MATCH_VWMACC_VV: u32 = 0xf4002057;
const MASK_VWMACC_VV: u32 = 0xfc00707f;
const MATCH_VWMACC_VX: u32 = 0xf4006057;
const MASK_VWMACC_VX: u32 = 0xfc00707f;
const MATCH_VWMACCSU_VV: u32 = 0xfc002057;
const MASK_VWMACCSU_VV: u32 = 0xfc00707f;
const MATCH_VWMACCSU_VX: u32 = 0xfc006057;
const MASK_VWMACCSU_VX: u32 = 0xfc00707f;
const MATCH_VWMACCU_VV: u32 = 0xf0002057;
const MASK_VWMACCU_VV: u32 = 0xfc00707f;
const MATCH_VWMACCU_VX: u32 = 0xf0006057;
const MASK_VWMACCU_VX: u32 = 0xfc00707f;
const MATCH_VWMACCUS_VX: u32 = 0xf8006057;
const MASK_VWMACCUS_VX: u32 = 0xfc00707f;
const MATCH_VWMUL_VV: u32 = 0xec002057;
const MASK_VWMUL_VV: u32 = 0xfc00707f;
const MATCH_VWMUL_VX: u32 = 0xec006057;
const MASK_VWMUL_VX: u32 = 0xfc00707f;
const MATCH_VWMULSU_VV: u32 = 0xe8002057;
const MASK_VWMULSU_VV: u32 = 0xfc00707f;
const MATCH_VWMULSU_VX: u32 = 0xe8006057;
const MASK_VWMULSU_VX: u32 = 0xfc00707f;
const MATCH_VWMULU_VV: u32 = 0xe0002057;
const MASK_VWMULU_VV: u32 = 0xfc00707f;
const MATCH_VWMULU_VX: u32 = 0xe0006057;
const MASK_VWMULU_VX: u32 = 0xfc00707f;
const MATCH_VWREDSUM_VS: u32 = 0xc4000057;
const MASK_VWREDSUM_VS: u32 = 0xfc00707f;
const MATCH_VWREDSUMU_VS: u32 = 0xc0000057;
const MASK_VWREDSUMU_VS: u32 = 0xfc00707f;
const MATCH_VWSLL_VI: u32 = 0xd4003057;
const MASK_VWSLL_VI: u32 = 0xfc00707f;
const MATCH_VWSLL_VV: u32 = 0xd4000057;
const MASK_VWSLL_VV: u32 = 0xfc00707f;
const MATCH_VWSLL_VX: u32 = 0xd4004057;
const MASK_VWSLL_VX: u32 = 0xfc00707f;
const MATCH_VWSUB_VV: u32 = 0xcc002057;
const MASK_VWSUB_VV: u32 = 0xfc00707f;
const MATCH_VWSUB_VX: u32 = 0xcc006057;
const MASK_VWSUB_VX: u32 = 0xfc00707f;
const MATCH_VWSUB_WV: u32 = 0xdc002057;
const MASK_VWSUB_WV: u32 = 0xfc00707f;
const MATCH_VWSUB_WX: u32 = 0xdc006057;
const MASK_VWSUB_WX: u32 = 0xfc00707f;
const MATCH_VWSUBU_VV: u32 = 0xc8002057;
const MASK_VWSUBU_VV: u32 = 0xfc00707f;
const MATCH_VWSUBU_VX: u32 = 0xc8006057;
const MASK_VWSUBU_VX: u32 = 0xfc00707f;
const MATCH_VWSUBU_WV: u32 = 0xd8002057;
const MASK_VWSUBU_WV: u32 = 0xfc00707f;
const MATCH_VWSUBU_WX: u32 = 0xd8006057;
const MASK_VWSUBU_WX: u32 = 0xfc00707f;
const MATCH_VXOR_VI: u32 = 0x2c003057;
const MASK_VXOR_VI: u32 = 0xfc00707f;
const MATCH_VXOR_VV: u32 = 0x2c000057;
const MASK_VXOR_VV: u32 = 0xfc00707f;
const MATCH_VXOR_VX: u32 = 0x2c004057;
const MASK_VXOR_VX: u32 = 0xfc00707f;
const MATCH_VZEXT_VF2: u32 = 0x48032057;
const MASK_VZEXT_VF2: u32 = 0xfc0ff07f;
const MATCH_VZEXT_VF4: u32 = 0x48022057;
const MASK_VZEXT_VF4: u32 = 0xfc0ff07f;
const MATCH_VZEXT_VF8: u32 = 0x48012057;
const MASK_VZEXT_VF8: u32 = 0xfc0ff07f;
const MATCH_WFI: u32 = 0x10500073;
const MASK_WFI: u32 = 0xffffffff;
const MATCH_WRS_NTO: u32 = 0xd00073;
const MASK_WRS_NTO: u32 = 0xffffffff;
const MATCH_WRS_STO: u32 = 0x1d00073;
const MASK_WRS_STO: u32 = 0xffffffff;
const MATCH_XNOR: u32 = 0x40004033;
const MASK_XNOR: u32 = 0xfe00707f;
const MATCH_XOR: u32 = 0x4033;
const MASK_XOR: u32 = 0xfe00707f;
const MATCH_XORI: u32 = 0x4013;
const MASK_XORI: u32 = 0x707f;
const MATCH_XPERM16: u32 = 0x28006033;
const MASK_XPERM16: u32 = 0xfe00707f;
const MATCH_XPERM32: u32 = 0x28000033;
const MASK_XPERM32: u32 = 0xfe00707f;
const MATCH_XPERM4: u32 = 0x28002033;
const MASK_XPERM4: u32 = 0xfe00707f;
const MATCH_XPERM8: u32 = 0x28004033;
const MASK_XPERM8: u32 = 0xfe00707f;
const MATCH_ZEXT_H: u32 = 0x800403b;
const MASK_ZEXT_H: u32 = 0xfff0707f;
const MATCH_ZIP: u32 = 0x8f01013;
const MASK_ZIP: u32 = 0xfff0707f;
const MATCH_ZUNPKD810: u32 = 0xacc00077;
const MASK_ZUNPKD810: u32 = 0xfff0707f;
const MATCH_ZUNPKD820: u32 = 0xacd00077;
const MASK_ZUNPKD820: u32 = 0xfff0707f;
const MATCH_ZUNPKD830: u32 = 0xace00077;
const MASK_ZUNPKD830: u32 = 0xfff0707f;
const MATCH_ZUNPKD831: u32 = 0xacf00077;
const MASK_ZUNPKD831: u32 = 0xfff0707f;
const MATCH_ZUNPKD832: u32 = 0xad700077;
const MASK_ZUNPKD832: u32 = 0xfff0707f;
const CSR_FFLAGS: u16 = 0x1;
const CSR_FRM: u16 = 0x2;
const CSR_FCSR: u16 = 0x3;
const CSR_VSTART: u16 = 0x8;
const CSR_VXSAT: u16 = 0x9;
const CSR_VXRM: u16 = 0xa;
const CSR_VCSR: u16 = 0xf;
const CSR_SEED: u16 = 0x15;
const CSR_JVT: u16 = 0x17;
const CSR_CYCLE: u16 = 0xc00;
const CSR_TIME: u16 = 0xc01;
const CSR_INSTRET: u16 = 0xc02;
const CSR_HPMCOUNTER3: u16 = 0xc03;
const CSR_HPMCOUNTER4: u16 = 0xc04;
const CSR_HPMCOUNTER5: u16 = 0xc05;
const CSR_HPMCOUNTER6: u16 = 0xc06;
const CSR_HPMCOUNTER7: u16 = 0xc07;
const CSR_HPMCOUNTER8: u16 = 0xc08;
const CSR_HPMCOUNTER9: u16 = 0xc09;
const CSR_HPMCOUNTER10: u16 = 0xc0a;
const CSR_HPMCOUNTER11: u16 = 0xc0b;
const CSR_HPMCOUNTER12: u16 = 0xc0c;
const CSR_HPMCOUNTER13: u16 = 0xc0d;
const CSR_HPMCOUNTER14: u16 = 0xc0e;
const CSR_HPMCOUNTER15: u16 = 0xc0f;
const CSR_HPMCOUNTER16: u16 = 0xc10;
const CSR_HPMCOUNTER17: u16 = 0xc11;
const CSR_HPMCOUNTER18: u16 = 0xc12;
const CSR_HPMCOUNTER19: u16 = 0xc13;
const CSR_HPMCOUNTER20: u16 = 0xc14;
const CSR_HPMCOUNTER21: u16 = 0xc15;
const CSR_HPMCOUNTER22: u16 = 0xc16;
const CSR_HPMCOUNTER23: u16 = 0xc17;
const CSR_HPMCOUNTER24: u16 = 0xc18;
const CSR_HPMCOUNTER25: u16 = 0xc19;
const CSR_HPMCOUNTER26: u16 = 0xc1a;
const CSR_HPMCOUNTER27: u16 = 0xc1b;
const CSR_HPMCOUNTER28: u16 = 0xc1c;
const CSR_HPMCOUNTER29: u16 = 0xc1d;
const CSR_HPMCOUNTER30: u16 = 0xc1e;
const CSR_HPMCOUNTER31: u16 = 0xc1f;
const CSR_VL: u16 = 0xc20;
const CSR_VTYPE: u16 = 0xc21;
const CSR_VLENB: u16 = 0xc22;
const CSR_SSTATUS: u16 = 0x100;
const CSR_SEDELEG: u16 = 0x102;
const CSR_SIDELEG: u16 = 0x103;
const CSR_SIE: u16 = 0x104;
const CSR_STVEC: u16 = 0x105;
const CSR_SCOUNTEREN: u16 = 0x106;
const CSR_SENVCFG: u16 = 0x10a;
const CSR_SSTATEEN0: u16 = 0x10c;
const CSR_SSTATEEN1: u16 = 0x10d;
const CSR_SSTATEEN2: u16 = 0x10e;
const CSR_SSTATEEN3: u16 = 0x10f;
const CSR_SCOUNTINHIBIT: u16 = 0x120;
const CSR_SSCRATCH: u16 = 0x140;
const CSR_SEPC: u16 = 0x141;
const CSR_SCAUSE: u16 = 0x142;
const CSR_STVAL: u16 = 0x143;
const CSR_SIP: u16 = 0x144;
const CSR_STIMECMP: u16 = 0x14d;
const CSR_SISELECT: u16 = 0x150;
const CSR_SIREG: u16 = 0x151;
const CSR_SIREG2: u16 = 0x152;
const CSR_SIREG3: u16 = 0x153;
const CSR_SIREG4: u16 = 0x155;
const CSR_SIREG5: u16 = 0x156;
const CSR_SIREG6: u16 = 0x157;
const CSR_STOPEI: u16 = 0x15c;
const CSR_SATP: u16 = 0x180;
const CSR_SCONTEXT: u16 = 0x5a8;
const CSR_VSSTATUS: u16 = 0x200;
const CSR_VSIE: u16 = 0x204;
const CSR_VSTVEC: u16 = 0x205;
const CSR_VSSCRATCH: u16 = 0x240;
const CSR_VSEPC: u16 = 0x241;
const CSR_VSCAUSE: u16 = 0x242;
const CSR_VSTVAL: u16 = 0x243;
const CSR_VSIP: u16 = 0x244;
const CSR_VSTIMECMP: u16 = 0x24d;
const CSR_VSISELECT: u16 = 0x250;
const CSR_VSIREG: u16 = 0x251;
const CSR_VSIREG2: u16 = 0x252;
const CSR_VSIREG3: u16 = 0x253;
const CSR_VSIREG4: u16 = 0x255;
const CSR_VSIREG5: u16 = 0x256;
const CSR_VSIREG6: u16 = 0x257;
const CSR_VSTOPEI: u16 = 0x25c;
const CSR_VSATP: u16 = 0x280;
const CSR_HSTATUS: u16 = 0x600;
const CSR_HEDELEG: u16 = 0x602;
const CSR_HIDELEG: u16 = 0x603;
const CSR_HIE: u16 = 0x604;
const CSR_HTIMEDELTA: u16 = 0x605;
const CSR_HCOUNTEREN: u16 = 0x606;
const CSR_HGEIE: u16 = 0x607;
const CSR_HVIEN: u16 = 0x608;
const CSR_HVICTL: u16 = 0x609;
const CSR_HENVCFG: u16 = 0x60a;
const CSR_HSTATEEN0: u16 = 0x60c;
const CSR_HSTATEEN1: u16 = 0x60d;
const CSR_HSTATEEN2: u16 = 0x60e;
const CSR_HSTATEEN3: u16 = 0x60f;
const CSR_HTVAL: u16 = 0x643;
const CSR_HIP: u16 = 0x644;
const CSR_HVIP: u16 = 0x645;
const CSR_HVIPRIO1: u16 = 0x646;
const CSR_HVIPRIO2: u16 = 0x647;
const CSR_HTINST: u16 = 0x64a;
const CSR_HGATP: u16 = 0x680;
const CSR_HCONTEXT: u16 = 0x6a8;
const CSR_HGEIP: u16 = 0xe12;
const CSR_VSTOPI: u16 = 0xeb0;
const CSR_SCOUNTOVF: u16 = 0xda0;
const CSR_STOPI: u16 = 0xdb0;
const CSR_UTVT: u16 = 0x7;
const CSR_UNXTI: u16 = 0x45;
const CSR_UINTSTATUS: u16 = 0x46;
const CSR_USCRATCHCSW: u16 = 0x48;
const CSR_USCRATCHCSWL: u16 = 0x49;
const CSR_STVT: u16 = 0x107;
const CSR_SNXTI: u16 = 0x145;
const CSR_SINTSTATUS: u16 = 0x146;
const CSR_SSCRATCHCSW: u16 = 0x148;
const CSR_SSCRATCHCSWL: u16 = 0x149;
const CSR_MTVT: u16 = 0x307;
const CSR_MNXTI: u16 = 0x345;
const CSR_MINTSTATUS: u16 = 0x346;
const CSR_MSCRATCHCSW: u16 = 0x348;
const CSR_MSCRATCHCSWL: u16 = 0x349;
const CSR_MSTATUS: u16 = 0x300;
const CSR_MISA: u16 = 0x301;
const CSR_MEDELEG: u16 = 0x302;
const CSR_MIDELEG: u16 = 0x303;
const CSR_MIE: u16 = 0x304;
const CSR_MTVEC: u16 = 0x305;
const CSR_MCOUNTEREN: u16 = 0x306;
const CSR_MVIEN: u16 = 0x308;
const CSR_MVIP: u16 = 0x309;
const CSR_MENVCFG: u16 = 0x30a;
const CSR_MSTATEEN0: u16 = 0x30c;
const CSR_MSTATEEN1: u16 = 0x30d;
const CSR_MSTATEEN2: u16 = 0x30e;
const CSR_MSTATEEN3: u16 = 0x30f;
const CSR_MCOUNTINHIBIT: u16 = 0x320;
const CSR_MSCRATCH: u16 = 0x340;
const CSR_MEPC: u16 = 0x341;
const CSR_MCAUSE: u16 = 0x342;
const CSR_MTVAL: u16 = 0x343;
const CSR_MIP: u16 = 0x344;
const CSR_MTINST: u16 = 0x34a;
const CSR_MTVAL2: u16 = 0x34b;
const CSR_MISELECT: u16 = 0x350;
const CSR_MIREG: u16 = 0x351;
const CSR_MIREG2: u16 = 0x352;
const CSR_MIREG3: u16 = 0x353;
const CSR_MIREG4: u16 = 0x355;
const CSR_MIREG5: u16 = 0x356;
const CSR_MIREG6: u16 = 0x357;
const CSR_MTOPEI: u16 = 0x35c;
const CSR_PMPCFG0: u16 = 0x3a0;
const CSR_PMPCFG1: u16 = 0x3a1;
const CSR_PMPCFG2: u16 = 0x3a2;
const CSR_PMPCFG3: u16 = 0x3a3;
const CSR_PMPCFG4: u16 = 0x3a4;
const CSR_PMPCFG5: u16 = 0x3a5;
const CSR_PMPCFG6: u16 = 0x3a6;
const CSR_PMPCFG7: u16 = 0x3a7;
const CSR_PMPCFG8: u16 = 0x3a8;
const CSR_PMPCFG9: u16 = 0x3a9;
const CSR_PMPCFG10: u16 = 0x3aa;
const CSR_PMPCFG11: u16 = 0x3ab;
const CSR_PMPCFG12: u16 = 0x3ac;
const CSR_PMPCFG13: u16 = 0x3ad;
const CSR_PMPCFG14: u16 = 0x3ae;
const CSR_PMPCFG15: u16 = 0x3af;
const CSR_PMPADDR0: u16 = 0x3b0;
const CSR_PMPADDR1: u16 = 0x3b1;
const CSR_PMPADDR2: u16 = 0x3b2;
const CSR_PMPADDR3: u16 = 0x3b3;
const CSR_PMPADDR4: u16 = 0x3b4;
const CSR_PMPADDR5: u16 = 0x3b5;
const CSR_PMPADDR6: u16 = 0x3b6;
const CSR_PMPADDR7: u16 = 0x3b7;
const CSR_PMPADDR8: u16 = 0x3b8;
const CSR_PMPADDR9: u16 = 0x3b9;
const CSR_PMPADDR10: u16 = 0x3ba;
const CSR_PMPADDR11: u16 = 0x3bb;
const CSR_PMPADDR12: u16 = 0x3bc;
const CSR_PMPADDR13: u16 = 0x3bd;
const CSR_PMPADDR14: u16 = 0x3be;
const CSR_PMPADDR15: u16 = 0x3bf;
const CSR_PMPADDR16: u16 = 0x3c0;
const CSR_PMPADDR17: u16 = 0x3c1;
const CSR_PMPADDR18: u16 = 0x3c2;
const CSR_PMPADDR19: u16 = 0x3c3;
const CSR_PMPADDR20: u16 = 0x3c4;
const CSR_PMPADDR21: u16 = 0x3c5;
const CSR_PMPADDR22: u16 = 0x3c6;
const CSR_PMPADDR23: u16 = 0x3c7;
const CSR_PMPADDR24: u16 = 0x3c8;
const CSR_PMPADDR25: u16 = 0x3c9;
const CSR_PMPADDR26: u16 = 0x3ca;
const CSR_PMPADDR27: u16 = 0x3cb;
const CSR_PMPADDR28: u16 = 0x3cc;
const CSR_PMPADDR29: u16 = 0x3cd;
const CSR_PMPADDR30: u16 = 0x3ce;
const CSR_PMPADDR31: u16 = 0x3cf;
const CSR_PMPADDR32: u16 = 0x3d0;
const CSR_PMPADDR33: u16 = 0x3d1;
const CSR_PMPADDR34: u16 = 0x3d2;
const CSR_PMPADDR35: u16 = 0x3d3;
const CSR_PMPADDR36: u16 = 0x3d4;
const CSR_PMPADDR37: u16 = 0x3d5;
const CSR_PMPADDR38: u16 = 0x3d6;
const CSR_PMPADDR39: u16 = 0x3d7;
const CSR_PMPADDR40: u16 = 0x3d8;
const CSR_PMPADDR41: u16 = 0x3d9;
const CSR_PMPADDR42: u16 = 0x3da;
const CSR_PMPADDR43: u16 = 0x3db;
const CSR_PMPADDR44: u16 = 0x3dc;
const CSR_PMPADDR45: u16 = 0x3dd;
const CSR_PMPADDR46: u16 = 0x3de;
const CSR_PMPADDR47: u16 = 0x3df;
const CSR_PMPADDR48: u16 = 0x3e0;
const CSR_PMPADDR49: u16 = 0x3e1;
const CSR_PMPADDR50: u16 = 0x3e2;
const CSR_PMPADDR51: u16 = 0x3e3;
const CSR_PMPADDR52: u16 = 0x3e4;
const CSR_PMPADDR53: u16 = 0x3e5;
const CSR_PMPADDR54: u16 = 0x3e6;
const CSR_PMPADDR55: u16 = 0x3e7;
const CSR_PMPADDR56: u16 = 0x3e8;
const CSR_PMPADDR57: u16 = 0x3e9;
const CSR_PMPADDR58: u16 = 0x3ea;
const CSR_PMPADDR59: u16 = 0x3eb;
const CSR_PMPADDR60: u16 = 0x3ec;
const CSR_PMPADDR61: u16 = 0x3ed;
const CSR_PMPADDR62: u16 = 0x3ee;
const CSR_PMPADDR63: u16 = 0x3ef;
const CSR_MSECCFG: u16 = 0x747;
const CSR_TSELECT: u16 = 0x7a0;
const CSR_TDATA1: u16 = 0x7a1;
const CSR_TDATA2: u16 = 0x7a2;
const CSR_TDATA3: u16 = 0x7a3;
const CSR_TINFO: u16 = 0x7a4;
const CSR_TCONTROL: u16 = 0x7a5;
const CSR_MCONTEXT: u16 = 0x7a8;
const CSR_MSCONTEXT: u16 = 0x7aa;
const CSR_DCSR: u16 = 0x7b0;
const CSR_DPC: u16 = 0x7b1;
const CSR_DSCRATCH0: u16 = 0x7b2;
const CSR_DSCRATCH1: u16 = 0x7b3;
const CSR_MCYCLE: u16 = 0xb00;
const CSR_MINSTRET: u16 = 0xb02;
const CSR_MHPMCOUNTER3: u16 = 0xb03;
const CSR_MHPMCOUNTER4: u16 = 0xb04;
const CSR_MHPMCOUNTER5: u16 = 0xb05;
const CSR_MHPMCOUNTER6: u16 = 0xb06;
const CSR_MHPMCOUNTER7: u16 = 0xb07;
const CSR_MHPMCOUNTER8: u16 = 0xb08;
const CSR_MHPMCOUNTER9: u16 = 0xb09;
const CSR_MHPMCOUNTER10: u16 = 0xb0a;
const CSR_MHPMCOUNTER11: u16 = 0xb0b;
const CSR_MHPMCOUNTER12: u16 = 0xb0c;
const CSR_MHPMCOUNTER13: u16 = 0xb0d;
const CSR_MHPMCOUNTER14: u16 = 0xb0e;
const CSR_MHPMCOUNTER15: u16 = 0xb0f;
const CSR_MHPMCOUNTER16: u16 = 0xb10;
const CSR_MHPMCOUNTER17: u16 = 0xb11;
const CSR_MHPMCOUNTER18: u16 = 0xb12;
const CSR_MHPMCOUNTER19: u16 = 0xb13;
const CSR_MHPMCOUNTER20: u16 = 0xb14;
const CSR_MHPMCOUNTER21: u16 = 0xb15;
const CSR_MHPMCOUNTER22: u16 = 0xb16;
const CSR_MHPMCOUNTER23: u16 = 0xb17;
const CSR_MHPMCOUNTER24: u16 = 0xb18;
const CSR_MHPMCOUNTER25: u16 = 0xb19;
const CSR_MHPMCOUNTER26: u16 = 0xb1a;
const CSR_MHPMCOUNTER27: u16 = 0xb1b;
const CSR_MHPMCOUNTER28: u16 = 0xb1c;
const CSR_MHPMCOUNTER29: u16 = 0xb1d;
const CSR_MHPMCOUNTER30: u16 = 0xb1e;
const CSR_MHPMCOUNTER31: u16 = 0xb1f;
const CSR_MCYCLECFG: u16 = 0x321;
const CSR_MINSTRETCFG: u16 = 0x322;
const CSR_MHPMEVENT3: u16 = 0x323;
const CSR_MHPMEVENT4: u16 = 0x324;
const CSR_MHPMEVENT5: u16 = 0x325;
const CSR_MHPMEVENT6: u16 = 0x326;
const CSR_MHPMEVENT7: u16 = 0x327;
const CSR_MHPMEVENT8: u16 = 0x328;
const CSR_MHPMEVENT9: u16 = 0x329;
const CSR_MHPMEVENT10: u16 = 0x32a;
const CSR_MHPMEVENT11: u16 = 0x32b;
const CSR_MHPMEVENT12: u16 = 0x32c;
const CSR_MHPMEVENT13: u16 = 0x32d;
const CSR_MHPMEVENT14: u16 = 0x32e;
const CSR_MHPMEVENT15: u16 = 0x32f;
const CSR_MHPMEVENT16: u16 = 0x330;
const CSR_MHPMEVENT17: u16 = 0x331;
const CSR_MHPMEVENT18: u16 = 0x332;
const CSR_MHPMEVENT19: u16 = 0x333;
const CSR_MHPMEVENT20: u16 = 0x334;
const CSR_MHPMEVENT21: u16 = 0x335;
const CSR_MHPMEVENT22: u16 = 0x336;
const CSR_MHPMEVENT23: u16 = 0x337;
const CSR_MHPMEVENT24: u16 = 0x338;
const CSR_MHPMEVENT25: u16 = 0x339;
const CSR_MHPMEVENT26: u16 = 0x33a;
const CSR_MHPMEVENT27: u16 = 0x33b;
const CSR_MHPMEVENT28: u16 = 0x33c;
const CSR_MHPMEVENT29: u16 = 0x33d;
const CSR_MHPMEVENT30: u16 = 0x33e;
const CSR_MHPMEVENT31: u16 = 0x33f;
const CSR_MVENDORID: u16 = 0xf11;
const CSR_MARCHID: u16 = 0xf12;
const CSR_MIMPID: u16 = 0xf13;
const CSR_MHARTID: u16 = 0xf14;
const CSR_MCONFIGPTR: u16 = 0xf15;
const CSR_MTOPI: u16 = 0xfb0;
const CSR_SIEH: u16 = 0x114;
const CSR_SIPH: u16 = 0x154;
const CSR_STIMECMPH: u16 = 0x15d;
const CSR_VSIEH: u16 = 0x214;
const CSR_VSIPH: u16 = 0x254;
const CSR_VSTIMECMPH: u16 = 0x25d;
const CSR_HTIMEDELTAH: u16 = 0x615;
const CSR_HIDELEGH: u16 = 0x613;
const CSR_HVIENH: u16 = 0x618;
const CSR_HENVCFGH: u16 = 0x61a;
const CSR_HVIPH: u16 = 0x655;
const CSR_HVIPRIO1H: u16 = 0x656;
const CSR_HVIPRIO2H: u16 = 0x657;
const CSR_HSTATEEN0H: u16 = 0x61c;
const CSR_HSTATEEN1H: u16 = 0x61d;
const CSR_HSTATEEN2H: u16 = 0x61e;
const CSR_HSTATEEN3H: u16 = 0x61f;
const CSR_CYCLEH: u16 = 0xc80;
const CSR_TIMEH: u16 = 0xc81;
const CSR_INSTRETH: u16 = 0xc82;
const CSR_HPMCOUNTER3H: u16 = 0xc83;
const CSR_HPMCOUNTER4H: u16 = 0xc84;
const CSR_HPMCOUNTER5H: u16 = 0xc85;
const CSR_HPMCOUNTER6H: u16 = 0xc86;
const CSR_HPMCOUNTER7H: u16 = 0xc87;
const CSR_HPMCOUNTER8H: u16 = 0xc88;
const CSR_HPMCOUNTER9H: u16 = 0xc89;
const CSR_HPMCOUNTER10H: u16 = 0xc8a;
const CSR_HPMCOUNTER11H: u16 = 0xc8b;
const CSR_HPMCOUNTER12H: u16 = 0xc8c;
const CSR_HPMCOUNTER13H: u16 = 0xc8d;
const CSR_HPMCOUNTER14H: u16 = 0xc8e;
const CSR_HPMCOUNTER15H: u16 = 0xc8f;
const CSR_HPMCOUNTER16H: u16 = 0xc90;
const CSR_HPMCOUNTER17H: u16 = 0xc91;
const CSR_HPMCOUNTER18H: u16 = 0xc92;
const CSR_HPMCOUNTER19H: u16 = 0xc93;
const CSR_HPMCOUNTER20H: u16 = 0xc94;
const CSR_HPMCOUNTER21H: u16 = 0xc95;
const CSR_HPMCOUNTER22H: u16 = 0xc96;
const CSR_HPMCOUNTER23H: u16 = 0xc97;
const CSR_HPMCOUNTER24H: u16 = 0xc98;
const CSR_HPMCOUNTER25H: u16 = 0xc99;
const CSR_HPMCOUNTER26H: u16 = 0xc9a;
const CSR_HPMCOUNTER27H: u16 = 0xc9b;
const CSR_HPMCOUNTER28H: u16 = 0xc9c;
const CSR_HPMCOUNTER29H: u16 = 0xc9d;
const CSR_HPMCOUNTER30H: u16 = 0xc9e;
const CSR_HPMCOUNTER31H: u16 = 0xc9f;
const CSR_MSTATUSH: u16 = 0x310;
const CSR_MIDELEGH: u16 = 0x313;
const CSR_MIEH: u16 = 0x314;
const CSR_MVIENH: u16 = 0x318;
const CSR_MVIPH: u16 = 0x319;
const CSR_MENVCFGH: u16 = 0x31a;
const CSR_MSTATEEN0H: u16 = 0x31c;
const CSR_MSTATEEN1H: u16 = 0x31d;
const CSR_MSTATEEN2H: u16 = 0x31e;
const CSR_MSTATEEN3H: u16 = 0x31f;
const CSR_MIPH: u16 = 0x354;
const CSR_MCYCLECFGH: u16 = 0x721;
const CSR_MINSTRETCFGH: u16 = 0x722;
const CSR_MHPMEVENT3H: u16 = 0x723;
const CSR_MHPMEVENT4H: u16 = 0x724;
const CSR_MHPMEVENT5H: u16 = 0x725;
const CSR_MHPMEVENT6H: u16 = 0x726;
const CSR_MHPMEVENT7H: u16 = 0x727;
const CSR_MHPMEVENT8H: u16 = 0x728;
const CSR_MHPMEVENT9H: u16 = 0x729;
const CSR_MHPMEVENT10H: u16 = 0x72a;
const CSR_MHPMEVENT11H: u16 = 0x72b;
const CSR_MHPMEVENT12H: u16 = 0x72c;
const CSR_MHPMEVENT13H: u16 = 0x72d;
const CSR_MHPMEVENT14H: u16 = 0x72e;
const CSR_MHPMEVENT15H: u16 = 0x72f;
const CSR_MHPMEVENT16H: u16 = 0x730;
const CSR_MHPMEVENT17H: u16 = 0x731;
const CSR_MHPMEVENT18H: u16 = 0x732;
const CSR_MHPMEVENT19H: u16 = 0x733;
const CSR_MHPMEVENT20H: u16 = 0x734;
const CSR_MHPMEVENT21H: u16 = 0x735;
const CSR_MHPMEVENT22H: u16 = 0x736;
const CSR_MHPMEVENT23H: u16 = 0x737;
const CSR_MHPMEVENT24H: u16 = 0x738;
const CSR_MHPMEVENT25H: u16 = 0x739;
const CSR_MHPMEVENT26H: u16 = 0x73a;
const CSR_MHPMEVENT27H: u16 = 0x73b;
const CSR_MHPMEVENT28H: u16 = 0x73c;
const CSR_MHPMEVENT29H: u16 = 0x73d;
const CSR_MHPMEVENT30H: u16 = 0x73e;
const CSR_MHPMEVENT31H: u16 = 0x73f;
const CSR_MNSCRATCH: u16 = 0x740;
const CSR_MNEPC: u16 = 0x741;
const CSR_MNCAUSE: u16 = 0x742;
const CSR_MNSTATUS: u16 = 0x744;
const CSR_MSECCFGH: u16 = 0x757;
const CSR_MCYCLEH: u16 = 0xb80;
const CSR_MINSTRETH: u16 = 0xb82;
const CSR_MHPMCOUNTER3H: u16 = 0xb83;
const CSR_MHPMCOUNTER4H: u16 = 0xb84;
const CSR_MHPMCOUNTER5H: u16 = 0xb85;
const CSR_MHPMCOUNTER6H: u16 = 0xb86;
const CSR_MHPMCOUNTER7H: u16 = 0xb87;
const CSR_MHPMCOUNTER8H: u16 = 0xb88;
const CSR_MHPMCOUNTER9H: u16 = 0xb89;
const CSR_MHPMCOUNTER10H: u16 = 0xb8a;
const CSR_MHPMCOUNTER11H: u16 = 0xb8b;
const CSR_MHPMCOUNTER12H: u16 = 0xb8c;
const CSR_MHPMCOUNTER13H: u16 = 0xb8d;
const CSR_MHPMCOUNTER14H: u16 = 0xb8e;
const CSR_MHPMCOUNTER15H: u16 = 0xb8f;
const CSR_MHPMCOUNTER16H: u16 = 0xb90;
const CSR_MHPMCOUNTER17H: u16 = 0xb91;
const CSR_MHPMCOUNTER18H: u16 = 0xb92;
const CSR_MHPMCOUNTER19H: u16 = 0xb93;
const CSR_MHPMCOUNTER20H: u16 = 0xb94;
const CSR_MHPMCOUNTER21H: u16 = 0xb95;
const CSR_MHPMCOUNTER22H: u16 = 0xb96;
const CSR_MHPMCOUNTER23H: u16 = 0xb97;
const CSR_MHPMCOUNTER24H: u16 = 0xb98;
const CSR_MHPMCOUNTER25H: u16 = 0xb99;
const CSR_MHPMCOUNTER26H: u16 = 0xb9a;
const CSR_MHPMCOUNTER27H: u16 = 0xb9b;
const CSR_MHPMCOUNTER28H: u16 = 0xb9c;
const CSR_MHPMCOUNTER29H: u16 = 0xb9d;
const CSR_MHPMCOUNTER30H: u16 = 0xb9e;
const CSR_MHPMCOUNTER31H: u16 = 0xb9f;
const CAUSE_MISALIGNED_FETCH: u8 = 0x0;
const CAUSE_FETCH_ACCESS: u8 = 0x1;
const CAUSE_ILLEGAL_INSTRUCTION: u8 = 0x2;
const CAUSE_BREAKPOINT: u8 = 0x3;
const CAUSE_MISALIGNED_LOAD: u8 = 0x4;
const CAUSE_LOAD_ACCESS: u8 = 0x5;
const CAUSE_MISALIGNED_STORE: u8 = 0x6;
const CAUSE_STORE_ACCESS: u8 = 0x7;
const CAUSE_USER_ECALL: u8 = 0x8;
const CAUSE_SUPERVISOR_ECALL: u8 = 0x9;
const CAUSE_VIRTUAL_SUPERVISOR_ECALL: u8 = 0xa;
const CAUSE_MACHINE_ECALL: u8 = 0xb;
const CAUSE_FETCH_PAGE_FAULT: u8 = 0xc;
const CAUSE_LOAD_PAGE_FAULT: u8 = 0xd;
const CAUSE_STORE_PAGE_FAULT: u8 = 0xf;
const CAUSE_FETCH_GUEST_PAGE_FAULT: u8 = 0x14;
const CAUSE_LOAD_GUEST_PAGE_FAULT: u8 = 0x15;
const CAUSE_VIRTUAL_INSTRUCTION: u8 = 0x16;
const CAUSE_STORE_GUEST_PAGE_FAULT: u8 = 0x17;