/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Assembly Writer Source Fragment                                            *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

/// getMnemonic - This method is automatically generated by tablegen
/// from the instruction set description.
std::pair<const char *, uint64_t> LoongArchInstPrinter::getMnemonic(const MCInst *MI) {

#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
  static const char AsmStrs[] = {
  /* 0 */ "ld.b\t\0"
  /* 6 */ "iocsrrd.b\t\0"
  /* 17 */ "ldle.b\t\0"
  /* 25 */ "stle.b\t\0"
  /* 33 */ "iocsrwr.b\t\0"
  /* 44 */ "ldgt.b\t\0"
  /* 52 */ "stgt.b\t\0"
  /* 60 */ "st.b\t\0"
  /* 66 */ "ext.w.b\t\0"
  /* 75 */ "ldx.b\t\0"
  /* 82 */ "stx.b\t\0"
  /* 89 */ "bitrev.4b\t\0"
  /* 100 */ "bitrev.8b\t\0"
  /* 111 */ "invtlb\t\0"
  /* 119 */ "fmina.d\t\0"
  /* 128 */ "sra.d\t\0"
  /* 135 */ "fmaxa.d\t\0"
  /* 144 */ "amadd_db.d\t\0"
  /* 156 */ "amand_db.d\t\0"
  /* 168 */ "ammin_db.d\t\0"
  /* 180 */ "amswap_db.d\t\0"
  /* 193 */ "amor_db.d\t\0"
  /* 204 */ "amxor_db.d\t\0"
  /* 216 */ "ammax_db.d\t\0"
  /* 228 */ "fscaleb.d\t\0"
  /* 239 */ "flogb.d\t\0"
  /* 248 */ "fsub.d\t\0"
  /* 256 */ "fmsub.d\t\0"
  /* 265 */ "fnmsub.d\t\0"
  /* 275 */ "revb.d\t\0"
  /* 283 */ "sc.d\t\0"
  /* 289 */ "fadd.d\t\0"
  /* 297 */ "amadd.d\t\0"
  /* 306 */ "fmadd.d\t\0"
  /* 315 */ "fnmadd.d\t\0"
  /* 325 */ "fld.d\t\0"
  /* 332 */ "amand.d\t\0"
  /* 341 */ "mod.d\t\0"
  /* 348 */ "iocsrrd.d\t\0"
  /* 359 */ "fcmp.cle.d\t\0"
  /* 371 */ "fldle.d\t\0"
  /* 380 */ "fcmp.sle.d\t\0"
  /* 392 */ "asrtle.d\t\0"
  /* 402 */ "fstle.d\t\0"
  /* 411 */ "fcmp.cule.d\t\0"
  /* 424 */ "fcmp.sule.d\t\0"
  /* 437 */ "rdtime.d\t\0"
  /* 447 */ "fcmp.cne.d\t\0"
  /* 459 */ "fcmp.sne.d\t\0"
  /* 471 */ "fcmp.cune.d\t\0"
  /* 484 */ "fcmp.sune.d\t\0"
  /* 497 */ "fcmp.caf.d\t\0"
  /* 509 */ "fcmp.saf.d\t\0"
  /* 521 */ "fneg.d\t\0"
  /* 529 */ "mulh.d\t\0"
  /* 537 */ "revh.d\t\0"
  /* 545 */ "lu32i.d\t\0"
  /* 554 */ "lu52i.d\t\0"
  /* 563 */ "addu16i.d\t\0"
  /* 574 */ "srai.d\t\0"
  /* 582 */ "addi.d\t\0"
  /* 590 */ "slli.d\t\0"
  /* 598 */ "srli.d\t\0"
  /* 606 */ "rotri.d\t\0"
  /* 615 */ "bytepick.d\t\0"
  /* 627 */ "bstrpick.d\t\0"
  /* 639 */ "ftintrne.l.d\t\0"
  /* 653 */ "ftintrm.l.d\t\0"
  /* 666 */ "ftintrp.l.d\t\0"
  /* 679 */ "ftint.l.d\t\0"
  /* 690 */ "ftintrz.l.d\t\0"
  /* 703 */ "sll.d\t\0"
  /* 710 */ "srl.d\t\0"
  /* 717 */ "alsl.d\t\0"
  /* 725 */ "fmul.d\t\0"
  /* 733 */ "fcopysign.d\t\0"
  /* 746 */ "fmin.d\t\0"
  /* 754 */ "ammin.d\t\0"
  /* 763 */ "fcmp.cun.d\t\0"
  /* 775 */ "fcmp.sun.d\t\0"
  /* 787 */ "clo.d\t\0"
  /* 794 */ "cto.d\t\0"
  /* 801 */ "amswap.d\t\0"
  /* 811 */ "frecip.d\t\0"
  /* 821 */ "fcmp.ceq.d\t\0"
  /* 833 */ "fcmp.seq.d\t\0"
  /* 845 */ "fcmp.cueq.d\t\0"
  /* 858 */ "fcmp.sueq.d\t\0"
  /* 871 */ "movgr2fr.d\t\0"
  /* 883 */ "movfr2gr.d\t\0"
  /* 895 */ "fcmp.cor.d\t\0"
  /* 907 */ "amor.d\t\0"
  /* 915 */ "fcmp.sor.d\t\0"
  /* 927 */ "amxor.d\t\0"
  /* 936 */ "rotr.d\t\0"
  /* 944 */ "ldptr.d\t\0"
  /* 953 */ "stptr.d\t\0"
  /* 962 */ "iocsrwr.d\t\0"
  /* 973 */ "fcvt.s.d\t\0"
  /* 983 */ "fabs.d\t\0"
  /* 991 */ "bstrins.d\t\0"
  /* 1002 */ "fclass.d\t\0"
  /* 1012 */ "fldgt.d\t\0"
  /* 1021 */ "asrtgt.d\t\0"
  /* 1031 */ "fstgt.d\t\0"
  /* 1040 */ "fcmp.clt.d\t\0"
  /* 1052 */ "fcmp.slt.d\t\0"
  /* 1064 */ "fcmp.cult.d\t\0"
  /* 1077 */ "fcmp.sult.d\t\0"
  /* 1090 */ "frint.d\t\0"
  /* 1099 */ "fsqrt.d\t\0"
  /* 1108 */ "frsqrt.d\t\0"
  /* 1118 */ "fst.d\t\0"
  /* 1125 */ "bitrev.d\t\0"
  /* 1135 */ "fdiv.d\t\0"
  /* 1143 */ "fmov.d\t\0"
  /* 1151 */ "ftintrne.w.d\t\0"
  /* 1165 */ "ftintrm.w.d\t\0"
  /* 1178 */ "ftintrp.w.d\t\0"
  /* 1191 */ "ftint.w.d\t\0"
  /* 1202 */ "ftintrz.w.d\t\0"
  /* 1215 */ "fmax.d\t\0"
  /* 1223 */ "ammax.d\t\0"
  /* 1232 */ "fldx.d\t\0"
  /* 1240 */ "fstx.d\t\0"
  /* 1248 */ "clz.d\t\0"
  /* 1255 */ "ctz.d\t\0"
  /* 1262 */ "la.tls.gd\t\0"
  /* 1273 */ "la.tls.ld\t\0"
  /* 1284 */ "preld\t\0"
  /* 1291 */ "and\t\0"
  /* 1296 */ "tlbrd\t\0"
  /* 1303 */ "csrrd\t\0"
  /* 1310 */ "bge\t\0"
  /* 1315 */ "la.tls.ie\t\0"
  /* 1326 */ "la.tls.le\t\0"
  /* 1337 */ "idle\t\0"
  /* 1343 */ "bne\t\0"
  /* 1348 */ "ldpte\t\0"
  /* 1355 */ "movfr2cf\t\0"
  /* 1365 */ "movgr2cf\t\0"
  /* 1375 */ "cpucfg\t\0"
  /* 1383 */ "csrxchg\t\0"
  /* 1392 */ "ld.h\t\0"
  /* 1398 */ "iocsrrd.h\t\0"
  /* 1409 */ "ldle.h\t\0"
  /* 1417 */ "stle.h\t\0"
  /* 1425 */ "iocsrwr.h\t\0"
  /* 1436 */ "ldgt.h\t\0"
  /* 1444 */ "stgt.h\t\0"
  /* 1452 */ "st.h\t\0"
  /* 1458 */ "ext.w.h\t\0"
  /* 1467 */ "ldx.h\t\0"
  /* 1474 */ "stx.h\t\0"
  /* 1481 */ "revb.2h\t\0"
  /* 1490 */ "revb.4h\t\0"
  /* 1499 */ "tlbsrch\t\0"
  /* 1508 */ "tlbflush\t\0"
  /* 1518 */ "pcalau12i\t\0"
  /* 1529 */ "pcaddu12i\t\0"
  /* 1540 */ "pcaddu18i\t\0"
  /* 1551 */ "pcaddi\t\0"
  /* 1559 */ "andi\t\0"
  /* 1565 */ "xori\t\0"
  /* 1571 */ "slti\t\0"
  /* 1577 */ "sltui\t\0"
  /* 1584 */ "break\t\0"
  /* 1591 */ "ffint.d.l\t\0"
  /* 1602 */ "ffint.s.l\t\0"
  /* 1613 */ "bl\t\0"
  /* 1617 */ "dbcl\t\0"
  /* 1623 */ "la.pcrel\t\0"
  /* 1633 */ "fsel\t\0"
  /* 1639 */ "syscall\t\0"
  /* 1648 */ "tlbfill\t\0"
  /* 1657 */ "jirl\t\0"
  /* 1663 */ "andn\t\0"
  /* 1669 */ "orn\t\0"
  /* 1674 */ "ertn\t\0"
  /* 1680 */ "cacop\t\0"
  /* 1687 */ "beq\t\0"
  /* 1692 */ "dbar\t\0"
  /* 1698 */ "ibar\t\0"
  /* 1704 */ "movcf2fr\t\0"
  /* 1714 */ "movcf2gr\t\0"
  /* 1724 */ "movfcsr2gr\t\0"
  /* 1736 */ "lddir\t\0"
  /* 1743 */ "tlbclr\t\0"
  /* 1751 */ "nor\t\0"
  /* 1756 */ "xor\t\0"
  /* 1761 */ "movgr2fcsr\t\0"
  /* 1773 */ "tlbwr\t\0"
  /* 1780 */ "csrwr\t\0"
  /* 1787 */ "fmina.s\t\0"
  /* 1796 */ "fmaxa.s\t\0"
  /* 1805 */ "fscaleb.s\t\0"
  /* 1816 */ "flogb.s\t\0"
  /* 1825 */ "fsub.s\t\0"
  /* 1833 */ "fmsub.s\t\0"
  /* 1842 */ "fnmsub.s\t\0"
  /* 1852 */ "fcvt.d.s\t\0"
  /* 1862 */ "fadd.s\t\0"
  /* 1870 */ "fmadd.s\t\0"
  /* 1879 */ "fnmadd.s\t\0"
  /* 1889 */ "fld.s\t\0"
  /* 1896 */ "fcmp.cle.s\t\0"
  /* 1908 */ "fldle.s\t\0"
  /* 1917 */ "fcmp.sle.s\t\0"
  /* 1929 */ "fstle.s\t\0"
  /* 1938 */ "fcmp.cule.s\t\0"
  /* 1951 */ "fcmp.sule.s\t\0"
  /* 1964 */ "fcmp.cne.s\t\0"
  /* 1976 */ "fcmp.sne.s\t\0"
  /* 1988 */ "fcmp.cune.s\t\0"
  /* 2001 */ "fcmp.sune.s\t\0"
  /* 2014 */ "fcmp.caf.s\t\0"
  /* 2026 */ "fcmp.saf.s\t\0"
  /* 2038 */ "fneg.s\t\0"
  /* 2046 */ "ftintrne.l.s\t\0"
  /* 2060 */ "ftintrm.l.s\t\0"
  /* 2073 */ "ftintrp.l.s\t\0"
  /* 2086 */ "ftint.l.s\t\0"
  /* 2097 */ "ftintrz.l.s\t\0"
  /* 2110 */ "fmul.s\t\0"
  /* 2118 */ "fcopysign.s\t\0"
  /* 2131 */ "fmin.s\t\0"
  /* 2139 */ "fcmp.cun.s\t\0"
  /* 2151 */ "fcmp.sun.s\t\0"
  /* 2163 */ "frecip.s\t\0"
  /* 2173 */ "fcmp.ceq.s\t\0"
  /* 2185 */ "fcmp.seq.s\t\0"
  /* 2197 */ "fcmp.cueq.s\t\0"
  /* 2210 */ "fcmp.sueq.s\t\0"
  /* 2223 */ "movfrh2gr.s\t\0"
  /* 2236 */ "movfr2gr.s\t\0"
  /* 2248 */ "fcmp.cor.s\t\0"
  /* 2260 */ "fcmp.sor.s\t\0"
  /* 2272 */ "fabs.s\t\0"
  /* 2280 */ "fclass.s\t\0"
  /* 2290 */ "fldgt.s\t\0"
  /* 2299 */ "fstgt.s\t\0"
  /* 2308 */ "fcmp.clt.s\t\0"
  /* 2320 */ "fcmp.slt.s\t\0"
  /* 2332 */ "fcmp.cult.s\t\0"
  /* 2345 */ "fcmp.sult.s\t\0"
  /* 2358 */ "frint.s\t\0"
  /* 2367 */ "fsqrt.s\t\0"
  /* 2376 */ "frsqrt.s\t\0"
  /* 2386 */ "fst.s\t\0"
  /* 2393 */ "fdiv.s\t\0"
  /* 2401 */ "fmov.s\t\0"
  /* 2409 */ "ftintrne.w.s\t\0"
  /* 2423 */ "ftintrm.w.s\t\0"
  /* 2436 */ "ftintrp.w.s\t\0"
  /* 2449 */ "ftint.w.s\t\0"
  /* 2460 */ "ftintrz.w.s\t\0"
  /* 2473 */ "fmax.s\t\0"
  /* 2481 */ "fldx.s\t\0"
  /* 2489 */ "fstx.s\t\0"
  /* 2497 */ "la.abs\t\0"
  /* 2505 */ "blt\t\0"
  /* 2510 */ "slt\t\0"
  /* 2515 */ "la.got\t\0"
  /* 2523 */ "ld.bu\t\0"
  /* 2530 */ "ldx.bu\t\0"
  /* 2538 */ "ammin_db.du\t\0"
  /* 2551 */ "ammax_db.du\t\0"
  /* 2564 */ "mod.du\t\0"
  /* 2572 */ "mulh.du\t\0"
  /* 2581 */ "ammin.du\t\0"
  /* 2591 */ "div.du\t\0"
  /* 2599 */ "ammax.du\t\0"
  /* 2609 */ "bgeu\t\0"
  /* 2615 */ "ld.hu\t\0"
  /* 2622 */ "ldx.hu\t\0"
  /* 2630 */ "bltu\t\0"
  /* 2636 */ "sltu\t\0"
  /* 2642 */ "ammin_db.wu\t\0"
  /* 2655 */ "ammax_db.wu\t\0"
  /* 2668 */ "mulw.d.wu\t\0"
  /* 2679 */ "ld.wu\t\0"
  /* 2686 */ "mod.wu\t\0"
  /* 2694 */ "mulh.wu\t\0"
  /* 2703 */ "alsl.wu\t\0"
  /* 2712 */ "ammin.wu\t\0"
  /* 2722 */ "div.wu\t\0"
  /* 2730 */ "ammax.wu\t\0"
  /* 2740 */ "ldx.wu\t\0"
  /* 2748 */ "sra.w\t\0"
  /* 2755 */ "crcc.w.b.w\t\0"
  /* 2767 */ "crc.w.b.w\t\0"
  /* 2778 */ "amadd_db.w\t\0"
  /* 2790 */ "amand_db.w\t\0"
  /* 2802 */ "ammin_db.w\t\0"
  /* 2814 */ "amswap_db.w\t\0"
  /* 2827 */ "amor_db.w\t\0"
  /* 2838 */ "amxor_db.w\t\0"
  /* 2850 */ "ammax_db.w\t\0"
  /* 2862 */ "sub.w\t\0"
  /* 2869 */ "sc.w\t\0"
  /* 2875 */ "ffint.d.w\t\0"
  /* 2886 */ "crcc.w.d.w\t\0"
  /* 2898 */ "crc.w.d.w\t\0"
  /* 2909 */ "mulw.d.w\t\0"
  /* 2919 */ "amadd.w\t\0"
  /* 2928 */ "ld.w\t\0"
  /* 2934 */ "amand.w\t\0"
  /* 2943 */ "mod.w\t\0"
  /* 2950 */ "iocsrrd.w\t\0"
  /* 2961 */ "ldle.w\t\0"
  /* 2969 */ "stle.w\t\0"
  /* 2977 */ "crcc.w.h.w\t\0"
  /* 2989 */ "crc.w.h.w\t\0"
  /* 3000 */ "rdtimeh.w\t\0"
  /* 3011 */ "mulh.w\t\0"
  /* 3019 */ "movgr2frh.w\t\0"
  /* 3032 */ "lu12i.w\t\0"
  /* 3041 */ "srai.w\t\0"
  /* 3049 */ "addi.w\t\0"
  /* 3057 */ "slli.w\t\0"
  /* 3065 */ "srli.w\t\0"
  /* 3073 */ "rotri.w\t\0"
  /* 3082 */ "bytepick.w\t\0"
  /* 3094 */ "bstrpick.w\t\0"
  /* 3106 */ "rdtimel.w\t\0"
  /* 3117 */ "sll.w\t\0"
  /* 3124 */ "srl.w\t\0"
  /* 3131 */ "alsl.w\t\0"
  /* 3139 */ "mul.w\t\0"
  /* 3146 */ "ammin.w\t\0"
  /* 3155 */ "clo.w\t\0"
  /* 3162 */ "cto.w\t\0"
  /* 3169 */ "amswap.w\t\0"
  /* 3179 */ "movgr2fr.w\t\0"
  /* 3191 */ "amor.w\t\0"
  /* 3199 */ "amxor.w\t\0"
  /* 3208 */ "rotr.w\t\0"
  /* 3216 */ "ldptr.w\t\0"
  /* 3225 */ "stptr.w\t\0"
  /* 3234 */ "iocsrwr.w\t\0"
  /* 3245 */ "ffint.s.w\t\0"
  /* 3256 */ "bstrins.w\t\0"
  /* 3267 */ "ldgt.w\t\0"
  /* 3275 */ "stgt.w\t\0"
  /* 3283 */ "st.w\t\0"
  /* 3289 */ "bitrev.w\t\0"
  /* 3299 */ "div.w\t\0"
  /* 3306 */ "crcc.w.w.w\t\0"
  /* 3318 */ "crc.w.w.w\t\0"
  /* 3329 */ "ammax.w\t\0"
  /* 3338 */ "ldx.w\t\0"
  /* 3345 */ "stx.w\t\0"
  /* 3352 */ "clz.w\t\0"
  /* 3359 */ "ctz.w\t\0"
  /* 3366 */ "revb.2w\t\0"
  /* 3375 */ "revh.2w\t\0"
  /* 3384 */ "preldx\t\0"
  /* 3392 */ "bnez\t\0"
  /* 3398 */ "bcnez\t\0"
  /* 3405 */ "masknez\t\0"
  /* 3414 */ "beqz\t\0"
  /* 3420 */ "bceqz\t\0"
  /* 3427 */ "maskeqz\t\0"
  /* 3436 */ "# XRay Function Patchable RET.\0"
  /* 3467 */ "# XRay Typed Event Log.\0"
  /* 3491 */ "# XRay Custom Event Log.\0"
  /* 3516 */ "# XRay Function Enter.\0"
  /* 3539 */ "# XRay Tail Call Exit.\0"
  /* 3562 */ "# XRay Function Exit.\0"
  /* 3584 */ "LIFETIME_END\0"
  /* 3597 */ "PSEUDO_PROBE\0"
  /* 3610 */ "BUNDLE\0"
  /* 3617 */ "DBG_VALUE\0"
  /* 3627 */ "DBG_INSTR_REF\0"
  /* 3641 */ "DBG_PHI\0"
  /* 3649 */ "DBG_LABEL\0"
  /* 3659 */ "LIFETIME_START\0"
  /* 3674 */ "DBG_VALUE_LIST\0"
  /* 3689 */ "# FEntry call\0"
};
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif

  static const uint16_t OpInfo0[] = {
    0U,	// PHI
    0U,	// INLINEASM
    0U,	// INLINEASM_BR
    0U,	// CFI_INSTRUCTION
    0U,	// EH_LABEL
    0U,	// GC_LABEL
    0U,	// ANNOTATION_LABEL
    0U,	// KILL
    0U,	// EXTRACT_SUBREG
    0U,	// INSERT_SUBREG
    0U,	// IMPLICIT_DEF
    0U,	// SUBREG_TO_REG
    0U,	// COPY_TO_REGCLASS
    3618U,	// DBG_VALUE
    3675U,	// DBG_VALUE_LIST
    3628U,	// DBG_INSTR_REF
    3642U,	// DBG_PHI
    3650U,	// DBG_LABEL
    0U,	// REG_SEQUENCE
    0U,	// COPY
    3611U,	// BUNDLE
    3660U,	// LIFETIME_START
    3585U,	// LIFETIME_END
    3598U,	// PSEUDO_PROBE
    0U,	// ARITH_FENCE
    0U,	// STACKMAP
    3690U,	// FENTRY_CALL
    0U,	// PATCHPOINT
    0U,	// LOAD_STACK_GUARD
    0U,	// PREALLOCATED_SETUP
    0U,	// PREALLOCATED_ARG
    0U,	// STATEPOINT
    0U,	// LOCAL_ESCAPE
    0U,	// FAULTING_OP
    0U,	// PATCHABLE_OP
    3517U,	// PATCHABLE_FUNCTION_ENTER
    3437U,	// PATCHABLE_RET
    3563U,	// PATCHABLE_FUNCTION_EXIT
    3540U,	// PATCHABLE_TAIL_CALL
    3492U,	// PATCHABLE_EVENT_CALL
    3468U,	// PATCHABLE_TYPED_EVENT_CALL
    0U,	// ICALL_BRANCH_FUNNEL
    0U,	// MEMBARRIER
    0U,	// G_ASSERT_SEXT
    0U,	// G_ASSERT_ZEXT
    0U,	// G_ASSERT_ALIGN
    0U,	// G_ADD
    0U,	// G_SUB
    0U,	// G_MUL
    0U,	// G_SDIV
    0U,	// G_UDIV
    0U,	// G_SREM
    0U,	// G_UREM
    0U,	// G_SDIVREM
    0U,	// G_UDIVREM
    0U,	// G_AND
    0U,	// G_OR
    0U,	// G_XOR
    0U,	// G_IMPLICIT_DEF
    0U,	// G_PHI
    0U,	// G_FRAME_INDEX
    0U,	// G_GLOBAL_VALUE
    0U,	// G_EXTRACT
    0U,	// G_UNMERGE_VALUES
    0U,	// G_INSERT
    0U,	// G_MERGE_VALUES
    0U,	// G_BUILD_VECTOR
    0U,	// G_BUILD_VECTOR_TRUNC
    0U,	// G_CONCAT_VECTORS
    0U,	// G_PTRTOINT
    0U,	// G_INTTOPTR
    0U,	// G_BITCAST
    0U,	// G_FREEZE
    0U,	// G_INTRINSIC_FPTRUNC_ROUND
    0U,	// G_INTRINSIC_TRUNC
    0U,	// G_INTRINSIC_ROUND
    0U,	// G_INTRINSIC_LRINT
    0U,	// G_INTRINSIC_ROUNDEVEN
    0U,	// G_READCYCLECOUNTER
    0U,	// G_LOAD
    0U,	// G_SEXTLOAD
    0U,	// G_ZEXTLOAD
    0U,	// G_INDEXED_LOAD
    0U,	// G_INDEXED_SEXTLOAD
    0U,	// G_INDEXED_ZEXTLOAD
    0U,	// G_STORE
    0U,	// G_INDEXED_STORE
    0U,	// G_ATOMIC_CMPXCHG_WITH_SUCCESS
    0U,	// G_ATOMIC_CMPXCHG
    0U,	// G_ATOMICRMW_XCHG
    0U,	// G_ATOMICRMW_ADD
    0U,	// G_ATOMICRMW_SUB
    0U,	// G_ATOMICRMW_AND
    0U,	// G_ATOMICRMW_NAND
    0U,	// G_ATOMICRMW_OR
    0U,	// G_ATOMICRMW_XOR
    0U,	// G_ATOMICRMW_MAX
    0U,	// G_ATOMICRMW_MIN
    0U,	// G_ATOMICRMW_UMAX
    0U,	// G_ATOMICRMW_UMIN
    0U,	// G_ATOMICRMW_FADD
    0U,	// G_ATOMICRMW_FSUB
    0U,	// G_ATOMICRMW_FMAX
    0U,	// G_ATOMICRMW_FMIN
    0U,	// G_ATOMICRMW_UINC_WRAP
    0U,	// G_ATOMICRMW_UDEC_WRAP
    0U,	// G_FENCE
    0U,	// G_BRCOND
    0U,	// G_BRINDIRECT
    0U,	// G_INVOKE_REGION_START
    0U,	// G_INTRINSIC
    0U,	// G_INTRINSIC_W_SIDE_EFFECTS
    0U,	// G_ANYEXT
    0U,	// G_TRUNC
    0U,	// G_CONSTANT
    0U,	// G_FCONSTANT
    0U,	// G_VASTART
    0U,	// G_VAARG
    0U,	// G_SEXT
    0U,	// G_SEXT_INREG
    0U,	// G_ZEXT
    0U,	// G_SHL
    0U,	// G_LSHR
    0U,	// G_ASHR
    0U,	// G_FSHL
    0U,	// G_FSHR
    0U,	// G_ROTR
    0U,	// G_ROTL
    0U,	// G_ICMP
    0U,	// G_FCMP
    0U,	// G_SELECT
    0U,	// G_UADDO
    0U,	// G_UADDE
    0U,	// G_USUBO
    0U,	// G_USUBE
    0U,	// G_SADDO
    0U,	// G_SADDE
    0U,	// G_SSUBO
    0U,	// G_SSUBE
    0U,	// G_UMULO
    0U,	// G_SMULO
    0U,	// G_UMULH
    0U,	// G_SMULH
    0U,	// G_UADDSAT
    0U,	// G_SADDSAT
    0U,	// G_USUBSAT
    0U,	// G_SSUBSAT
    0U,	// G_USHLSAT
    0U,	// G_SSHLSAT
    0U,	// G_SMULFIX
    0U,	// G_UMULFIX
    0U,	// G_SMULFIXSAT
    0U,	// G_UMULFIXSAT
    0U,	// G_SDIVFIX
    0U,	// G_UDIVFIX
    0U,	// G_SDIVFIXSAT
    0U,	// G_UDIVFIXSAT
    0U,	// G_FADD
    0U,	// G_FSUB
    0U,	// G_FMUL
    0U,	// G_FMA
    0U,	// G_FMAD
    0U,	// G_FDIV
    0U,	// G_FREM
    0U,	// G_FPOW
    0U,	// G_FPOWI
    0U,	// G_FEXP
    0U,	// G_FEXP2
    0U,	// G_FLOG
    0U,	// G_FLOG2
    0U,	// G_FLOG10
    0U,	// G_FNEG
    0U,	// G_FPEXT
    0U,	// G_FPTRUNC
    0U,	// G_FPTOSI
    0U,	// G_FPTOUI
    0U,	// G_SITOFP
    0U,	// G_UITOFP
    0U,	// G_FABS
    0U,	// G_FCOPYSIGN
    0U,	// G_IS_FPCLASS
    0U,	// G_FCANONICALIZE
    0U,	// G_FMINNUM
    0U,	// G_FMAXNUM
    0U,	// G_FMINNUM_IEEE
    0U,	// G_FMAXNUM_IEEE
    0U,	// G_FMINIMUM
    0U,	// G_FMAXIMUM
    0U,	// G_PTR_ADD
    0U,	// G_PTRMASK
    0U,	// G_SMIN
    0U,	// G_SMAX
    0U,	// G_UMIN
    0U,	// G_UMAX
    0U,	// G_ABS
    0U,	// G_LROUND
    0U,	// G_LLROUND
    0U,	// G_BR
    0U,	// G_BRJT
    0U,	// G_INSERT_VECTOR_ELT
    0U,	// G_EXTRACT_VECTOR_ELT
    0U,	// G_SHUFFLE_VECTOR
    0U,	// G_CTTZ
    0U,	// G_CTTZ_ZERO_UNDEF
    0U,	// G_CTLZ
    0U,	// G_CTLZ_ZERO_UNDEF
    0U,	// G_CTPOP
    0U,	// G_BSWAP
    0U,	// G_BITREVERSE
    0U,	// G_FCEIL
    0U,	// G_FCOS
    0U,	// G_FSIN
    0U,	// G_FSQRT
    0U,	// G_FFLOOR
    0U,	// G_FRINT
    0U,	// G_FNEARBYINT
    0U,	// G_ADDRSPACE_CAST
    0U,	// G_BLOCK_ADDR
    0U,	// G_JUMP_TABLE
    0U,	// G_DYN_STACKALLOC
    0U,	// G_STRICT_FADD
    0U,	// G_STRICT_FSUB
    0U,	// G_STRICT_FMUL
    0U,	// G_STRICT_FDIV
    0U,	// G_STRICT_FREM
    0U,	// G_STRICT_FMA
    0U,	// G_STRICT_FSQRT
    0U,	// G_READ_REGISTER
    0U,	// G_WRITE_REGISTER
    0U,	// G_MEMCPY
    0U,	// G_MEMCPY_INLINE
    0U,	// G_MEMMOVE
    0U,	// G_MEMSET
    0U,	// G_BZERO
    0U,	// G_VECREDUCE_SEQ_FADD
    0U,	// G_VECREDUCE_SEQ_FMUL
    0U,	// G_VECREDUCE_FADD
    0U,	// G_VECREDUCE_FMUL
    0U,	// G_VECREDUCE_FMAX
    0U,	// G_VECREDUCE_FMIN
    0U,	// G_VECREDUCE_ADD
    0U,	// G_VECREDUCE_MUL
    0U,	// G_VECREDUCE_AND
    0U,	// G_VECREDUCE_OR
    0U,	// G_VECREDUCE_XOR
    0U,	// G_VECREDUCE_SMAX
    0U,	// G_VECREDUCE_SMIN
    0U,	// G_VECREDUCE_UMAX
    0U,	// G_VECREDUCE_UMIN
    0U,	// G_SBFX
    0U,	// G_UBFX
    5U,	// ADJCALLSTACKDOWN
    5U,	// ADJCALLSTACKUP
    5U,	// PseudoAtomicLoadAdd32
    5U,	// PseudoAtomicLoadAnd32
    5U,	// PseudoAtomicLoadNand32
    5U,	// PseudoAtomicLoadNand64
    5U,	// PseudoAtomicLoadOr32
    5U,	// PseudoAtomicLoadSub32
    5U,	// PseudoAtomicLoadXor32
    5U,	// PseudoAtomicStoreD
    5U,	// PseudoAtomicStoreW
    5U,	// PseudoAtomicSwap32
    5U,	// PseudoBR
    5U,	// PseudoBRIND
    5U,	// PseudoB_TAIL
    5U,	// PseudoCALL
    5U,	// PseudoCALLIndirect
    5U,	// PseudoCmpXchg32
    5U,	// PseudoCmpXchg64
    5U,	// PseudoJIRL_CALL
    5U,	// PseudoJIRL_TAIL
    6594U,	// PseudoLA_ABS
    39362U,	// PseudoLA_ABS_LARGE
    6612U,	// PseudoLA_GOT
    6612U,	// PseudoLA_GOT_LARGE
    5720U,	// PseudoLA_PCREL
    5720U,	// PseudoLA_PCREL_LARGE
    5359U,	// PseudoLA_TLS_GD
    5359U,	// PseudoLA_TLS_GD_LARGE
    5412U,	// PseudoLA_TLS_IE
    5412U,	// PseudoLA_TLS_IE_LARGE
    5370U,	// PseudoLA_TLS_LD
    5370U,	// PseudoLA_TLS_LD_LARGE
    5423U,	// PseudoLA_TLS_LE
    5U,	// PseudoLD_CFR
    4689U,	// PseudoLI_D
    7156U,	// PseudoLI_W
    5U,	// PseudoMaskedAtomicLoadAdd32
    5U,	// PseudoMaskedAtomicLoadMax32
    5U,	// PseudoMaskedAtomicLoadMin32
    5U,	// PseudoMaskedAtomicLoadNand32
    5U,	// PseudoMaskedAtomicLoadSub32
    5U,	// PseudoMaskedAtomicLoadUMax32
    5U,	// PseudoMaskedAtomicLoadUMin32
    5U,	// PseudoMaskedAtomicSwap32
    5U,	// PseudoMaskedCmpXchg32
    5U,	// PseudoRET
    5U,	// PseudoST_CFR
    5U,	// PseudoTAIL
    5U,	// PseudoTAILIndirect
    5U,	// PseudoUNIMP
    5U,	// RDFCSR
    5U,	// WRFCSR
    4679U,	// ADDI_D
    7146U,	// ADDI_W
    4660U,	// ADDU16I_D
    4387U,	// ADD_D
    7018U,	// ADD_W
    4814U,	// ALSL_D
    7228U,	// ALSL_W
    6800U,	// ALSL_WU
    4394U,	// AMADD_D
    4241U,	// AMADD_DB_D
    6875U,	// AMADD_DB_W
    7016U,	// AMADD_W
    4429U,	// AMAND_D
    4253U,	// AMAND_DB_D
    6887U,	// AMAND_DB_W
    7031U,	// AMAND_W
    5320U,	// AMMAX_D
    4313U,	// AMMAX_DB_D
    6648U,	// AMMAX_DB_DU
    6947U,	// AMMAX_DB_W
    6752U,	// AMMAX_DB_WU
    6696U,	// AMMAX_DU
    7426U,	// AMMAX_W
    6827U,	// AMMAX_WU
    4851U,	// AMMIN_D
    4265U,	// AMMIN_DB_D
    6635U,	// AMMIN_DB_DU
    6899U,	// AMMIN_DB_W
    6739U,	// AMMIN_DB_WU
    6678U,	// AMMIN_DU
    7243U,	// AMMIN_W
    6809U,	// AMMIN_WU
    5004U,	// AMOR_D
    4290U,	// AMOR_DB_D
    6924U,	// AMOR_DB_W
    7288U,	// AMOR_W
    4898U,	// AMSWAP_D
    4277U,	// AMSWAP_DB_D
    6911U,	// AMSWAP_DB_W
    7266U,	// AMSWAP_W
    5024U,	// AMXOR_D
    4301U,	// AMXOR_DB_D
    6935U,	// AMXOR_DB_W
    7296U,	// AMXOR_W
    5388U,	// AND
    5656U,	// ANDI
    5760U,	// ANDN
    5118U,	// ASRTGT_D
    4489U,	// ASRTLE_D
    20484U,	// B
    7517U,	// BCEQZ
    7495U,	// BCNEZ
    5784U,	// BEQ
    7511U,	// BEQZ
    5407U,	// BGE
    6706U,	// BGEU
    4186U,	// BITREV_4B
    4197U,	// BITREV_8B
    5222U,	// BITREV_D
    7386U,	// BITREV_W
    22094U,	// BL
    6602U,	// BLT
    6727U,	// BLTU
    5440U,	// BNE
    7489U,	// BNEZ
    22065U,	// BREAK
    9184U,	// BSTRINS_D
    11449U,	// BSTRINS_W
    4724U,	// BSTRPICK_D
    7191U,	// BSTRPICK_W
    4712U,	// BYTEPICK_D
    7179U,	// BYTEPICK_W
    5777U,	// CACOP
    4884U,	// CLO_D
    7252U,	// CLO_W
    5345U,	// CLZ_D
    7449U,	// CLZ_W
    5472U,	// CPUCFG
    6852U,	// CRCC_W_B_W
    6983U,	// CRCC_W_D_W
    7074U,	// CRCC_W_H_W
    7403U,	// CRCC_W_W_W
    6864U,	// CRC_W_B_W
    6995U,	// CRC_W_D_W
    7086U,	// CRC_W_H_W
    7415U,	// CRC_W_W_W
    5400U,	// CSRRD
    26357U,	// CSRWR
    9576U,	// CSRXCHG
    4891U,	// CTO_D
    7259U,	// CTO_W
    5352U,	// CTZ_D
    7456U,	// CTZ_W
    22173U,	// DBAR
    22098U,	// DBCL
    5233U,	// DIV_D
    6688U,	// DIV_DU
    7396U,	// DIV_W
    6819U,	// DIV_WU
    1675U,	// ERTN
    4163U,	// EXT_W_B
    5555U,	// EXT_W_H
    5080U,	// FABS_D
    6369U,	// FABS_S
    4386U,	// FADD_D
    5959U,	// FADD_S
    5099U,	// FCLASS_D
    6377U,	// FCLASS_S
    4594U,	// FCMP_CAF_D
    6111U,	// FCMP_CAF_S
    4918U,	// FCMP_CEQ_D
    6270U,	// FCMP_CEQ_S
    4456U,	// FCMP_CLE_D
    5993U,	// FCMP_CLE_S
    5137U,	// FCMP_CLT_D
    6405U,	// FCMP_CLT_S
    4544U,	// FCMP_CNE_D
    6061U,	// FCMP_CNE_S
    4992U,	// FCMP_COR_D
    6345U,	// FCMP_COR_S
    4942U,	// FCMP_CUEQ_D
    6294U,	// FCMP_CUEQ_S
    4508U,	// FCMP_CULE_D
    6035U,	// FCMP_CULE_S
    5161U,	// FCMP_CULT_D
    6429U,	// FCMP_CULT_S
    4568U,	// FCMP_CUNE_D
    6085U,	// FCMP_CUNE_S
    4860U,	// FCMP_CUN_D
    6236U,	// FCMP_CUN_S
    4606U,	// FCMP_SAF_D
    6123U,	// FCMP_SAF_S
    4930U,	// FCMP_SEQ_D
    6282U,	// FCMP_SEQ_S
    4477U,	// FCMP_SLE_D
    6014U,	// FCMP_SLE_S
    5149U,	// FCMP_SLT_D
    6417U,	// FCMP_SLT_S
    4556U,	// FCMP_SNE_D
    6073U,	// FCMP_SNE_S
    5012U,	// FCMP_SOR_D
    6357U,	// FCMP_SOR_S
    4955U,	// FCMP_SUEQ_D
    6307U,	// FCMP_SUEQ_S
    4521U,	// FCMP_SULE_D
    6048U,	// FCMP_SULE_S
    5174U,	// FCMP_SULT_D
    6442U,	// FCMP_SULT_S
    4581U,	// FCMP_SUNE_D
    6098U,	// FCMP_SUNE_S
    4872U,	// FCMP_SUN_D
    6248U,	// FCMP_SUN_S
    4830U,	// FCOPYSIGN_D
    6215U,	// FCOPYSIGN_S
    5949U,	// FCVT_D_S
    5070U,	// FCVT_S_D
    5232U,	// FDIV_D
    6490U,	// FDIV_S
    5688U,	// FFINT_D_L
    6972U,	// FFINT_D_W
    5699U,	// FFINT_S_L
    7342U,	// FFINT_S_W
    5109U,	// FLDGT_D
    6387U,	// FLDGT_S
    4468U,	// FLDLE_D
    6005U,	// FLDLE_S
    5329U,	// FLDX_D
    6578U,	// FLDX_S
    4422U,	// FLD_D
    5986U,	// FLD_S
    4336U,	// FLOGB_D
    5913U,	// FLOGB_S
    4403U,	// FMADD_D
    5967U,	// FMADD_S
    4232U,	// FMAXA_D
    5893U,	// FMAXA_S
    5312U,	// FMAX_D
    6570U,	// FMAX_S
    4216U,	// FMINA_D
    5884U,	// FMINA_S
    4843U,	// FMIN_D
    6228U,	// FMIN_S
    5240U,	// FMOV_D
    6498U,	// FMOV_S
    4353U,	// FMSUB_D
    5930U,	// FMSUB_S
    4822U,	// FMUL_D
    6207U,	// FMUL_S
    4618U,	// FNEG_D
    6135U,	// FNEG_S
    4412U,	// FNMADD_D
    5976U,	// FNMADD_S
    4362U,	// FNMSUB_D
    5939U,	// FNMSUB_S
    4908U,	// FRECIP_D
    6260U,	// FRECIP_S
    5187U,	// FRINT_D
    6455U,	// FRINT_S
    5205U,	// FRSQRT_D
    6473U,	// FRSQRT_S
    4325U,	// FSCALEB_D
    5902U,	// FSCALEB_S
    5730U,	// FSEL_D
    5730U,	// FSEL_S
    5196U,	// FSQRT_D
    6464U,	// FSQRT_S
    5128U,	// FSTGT_D
    6396U,	// FSTGT_S
    4499U,	// FSTLE_D
    6026U,	// FSTLE_S
    5337U,	// FSTX_D
    6586U,	// FSTX_S
    5215U,	// FST_D
    6483U,	// FST_S
    4345U,	// FSUB_D
    5922U,	// FSUB_S
    4750U,	// FTINTRM_L_D
    6157U,	// FTINTRM_L_S
    5262U,	// FTINTRM_W_D
    6520U,	// FTINTRM_W_S
    4736U,	// FTINTRNE_L_D
    6143U,	// FTINTRNE_L_S
    5248U,	// FTINTRNE_W_D
    6506U,	// FTINTRNE_W_S
    4763U,	// FTINTRP_L_D
    6170U,	// FTINTRP_L_S
    5275U,	// FTINTRP_W_D
    6533U,	// FTINTRP_W_S
    4787U,	// FTINTRZ_L_D
    6194U,	// FTINTRZ_L_S
    5299U,	// FTINTRZ_W_D
    6557U,	// FTINTRZ_W_S
    4776U,	// FTINT_L_D
    6183U,	// FTINT_L_S
    5288U,	// FTINT_W_D
    6546U,	// FTINT_W_S
    22179U,	// IBAR
    21818U,	// IDLE
    12400U,	// INVTLB
    4103U,	// IOCSRRD_B
    4445U,	// IOCSRRD_D
    5495U,	// IOCSRRD_H
    7047U,	// IOCSRRD_W
    4130U,	// IOCSRWR_B
    5059U,	// IOCSRWR_D
    5522U,	// IOCSRWR_H
    7331U,	// IOCSRWR_W
    5754U,	// JIRL
    5833U,	// LDDIR
    4141U,	// LDGT_B
    5110U,	// LDGT_D
    5533U,	// LDGT_H
    7364U,	// LDGT_W
    4114U,	// LDLE_B
    4469U,	// LDLE_D
    5506U,	// LDLE_H
    7058U,	// LDLE_W
    5445U,	// LDPTE
    5041U,	// LDPTR_D
    7313U,	// LDPTR_W
    4172U,	// LDX_B
    6627U,	// LDX_BU
    5330U,	// LDX_D
    5564U,	// LDX_H
    6719U,	// LDX_HU
    7435U,	// LDX_W
    6837U,	// LDX_WU
    4097U,	// LD_B
    6620U,	// LD_BU
    4423U,	// LD_D
    5489U,	// LD_H
    6712U,	// LD_HU
    7025U,	// LD_W
    6776U,	// LD_WU
    4801U,	// LL_D
    7215U,	// LL_W
    7129U,	// LU12I_W
    25122U,	// LU32I_D
    4651U,	// LU52I_D
    7524U,	// MASKEQZ
    7502U,	// MASKNEZ
    4438U,	// MOD_D
    6661U,	// MOD_DU
    7040U,	// MOD_W
    6783U,	// MOD_WU
    5801U,	// MOVCF2FR_S
    5811U,	// MOVCF2GR
    5821U,	// MOVFCSR2GR
    5452U,	// MOVFR2CF_S
    4980U,	// MOVFR2GR_D
    6333U,	// MOVFR2GR_S
    6333U,	// MOVFR2GR_S_64
    6320U,	// MOVFRH2GR_S
    5462U,	// MOVGR2CF
    5858U,	// MOVGR2FCSR
    27596U,	// MOVGR2FRH_W
    4968U,	// MOVGR2FR_D
    7276U,	// MOVGR2FR_W
    7276U,	// MOVGR2FR_W_64
    4626U,	// MULH_D
    6669U,	// MULH_DU
    7108U,	// MULH_W
    6791U,	// MULH_WU
    7006U,	// MULW_D_W
    6765U,	// MULW_D_WU
    4823U,	// MUL_D
    7236U,	// MUL_W
    5848U,	// NOR
    5849U,	// OR
    5663U,	// ORI
    5766U,	// ORN
    5648U,	// PCADDI
    5626U,	// PCADDU12I
    5637U,	// PCADDU18I
    5615U,	// PCALAU12I
    5381U,	// PRELD
    7481U,	// PRELDX
    7097U,	// RDTIMEH_W
    7203U,	// RDTIMEL_W
    4534U,	// RDTIME_D
    5578U,	// REVB_2H
    7463U,	// REVB_2W
    5587U,	// REVB_4H
    4372U,	// REVB_D
    7472U,	// REVH_2W
    4634U,	// REVH_D
    4703U,	// ROTRI_D
    7170U,	// ROTRI_W
    5033U,	// ROTR_D
    7305U,	// ROTR_W
    8476U,	// SC_D
    11062U,	// SC_W
    4687U,	// SLLI_D
    7154U,	// SLLI_W
    4800U,	// SLL_D
    7214U,	// SLL_W
    6607U,	// SLT
    5668U,	// SLTI
    6733U,	// SLTU
    5674U,	// SLTUI
    4671U,	// SRAI_D
    7138U,	// SRAI_W
    4225U,	// SRA_D
    6845U,	// SRA_W
    4695U,	// SRLI_D
    7162U,	// SRLI_W
    4807U,	// SRL_D
    7221U,	// SRL_W
    4149U,	// STGT_B
    5129U,	// STGT_D
    5541U,	// STGT_H
    7372U,	// STGT_W
    4122U,	// STLE_B
    4500U,	// STLE_D
    5514U,	// STLE_H
    7066U,	// STLE_W
    5050U,	// STPTR_D
    7322U,	// STPTR_W
    4179U,	// STX_B
    5338U,	// STX_D
    5571U,	// STX_H
    7442U,	// STX_W
    4157U,	// ST_B
    5216U,	// ST_D
    5549U,	// ST_H
    7380U,	// ST_W
    4346U,	// SUB_D
    6959U,	// SUB_W
    22120U,	// SYSCALL
    1744U,	// TLBCLR
    1649U,	// TLBFILL
    1509U,	// TLBFLUSH
    1297U,	// TLBRD
    1500U,	// TLBSRCH
    1774U,	// TLBWR
    5853U,	// XOR
    5662U,	// XORI
  };

  static const uint8_t OpInfo1[] = {
    0U,	// PHI
    0U,	// INLINEASM
    0U,	// INLINEASM_BR
    0U,	// CFI_INSTRUCTION
    0U,	// EH_LABEL
    0U,	// GC_LABEL
    0U,	// ANNOTATION_LABEL
    0U,	// KILL
    0U,	// EXTRACT_SUBREG
    0U,	// INSERT_SUBREG
    0U,	// IMPLICIT_DEF
    0U,	// SUBREG_TO_REG
    0U,	// COPY_TO_REGCLASS
    0U,	// DBG_VALUE
    0U,	// DBG_VALUE_LIST
    0U,	// DBG_INSTR_REF
    0U,	// DBG_PHI
    0U,	// DBG_LABEL
    0U,	// REG_SEQUENCE
    0U,	// COPY
    0U,	// BUNDLE
    0U,	// LIFETIME_START
    0U,	// LIFETIME_END
    0U,	// PSEUDO_PROBE
    0U,	// ARITH_FENCE
    0U,	// STACKMAP
    0U,	// FENTRY_CALL
    0U,	// PATCHPOINT
    0U,	// LOAD_STACK_GUARD
    0U,	// PREALLOCATED_SETUP
    0U,	// PREALLOCATED_ARG
    0U,	// STATEPOINT
    0U,	// LOCAL_ESCAPE
    0U,	// FAULTING_OP
    0U,	// PATCHABLE_OP
    0U,	// PATCHABLE_FUNCTION_ENTER
    0U,	// PATCHABLE_RET
    0U,	// PATCHABLE_FUNCTION_EXIT
    0U,	// PATCHABLE_TAIL_CALL
    0U,	// PATCHABLE_EVENT_CALL
    0U,	// PATCHABLE_TYPED_EVENT_CALL
    0U,	// ICALL_BRANCH_FUNNEL
    0U,	// MEMBARRIER
    0U,	// G_ASSERT_SEXT
    0U,	// G_ASSERT_ZEXT
    0U,	// G_ASSERT_ALIGN
    0U,	// G_ADD
    0U,	// G_SUB
    0U,	// G_MUL
    0U,	// G_SDIV
    0U,	// G_UDIV
    0U,	// G_SREM
    0U,	// G_UREM
    0U,	// G_SDIVREM
    0U,	// G_UDIVREM
    0U,	// G_AND
    0U,	// G_OR
    0U,	// G_XOR
    0U,	// G_IMPLICIT_DEF
    0U,	// G_PHI
    0U,	// G_FRAME_INDEX
    0U,	// G_GLOBAL_VALUE
    0U,	// G_EXTRACT
    0U,	// G_UNMERGE_VALUES
    0U,	// G_INSERT
    0U,	// G_MERGE_VALUES
    0U,	// G_BUILD_VECTOR
    0U,	// G_BUILD_VECTOR_TRUNC
    0U,	// G_CONCAT_VECTORS
    0U,	// G_PTRTOINT
    0U,	// G_INTTOPTR
    0U,	// G_BITCAST
    0U,	// G_FREEZE
    0U,	// G_INTRINSIC_FPTRUNC_ROUND
    0U,	// G_INTRINSIC_TRUNC
    0U,	// G_INTRINSIC_ROUND
    0U,	// G_INTRINSIC_LRINT
    0U,	// G_INTRINSIC_ROUNDEVEN
    0U,	// G_READCYCLECOUNTER
    0U,	// G_LOAD
    0U,	// G_SEXTLOAD
    0U,	// G_ZEXTLOAD
    0U,	// G_INDEXED_LOAD
    0U,	// G_INDEXED_SEXTLOAD
    0U,	// G_INDEXED_ZEXTLOAD
    0U,	// G_STORE
    0U,	// G_INDEXED_STORE
    0U,	// G_ATOMIC_CMPXCHG_WITH_SUCCESS
    0U,	// G_ATOMIC_CMPXCHG
    0U,	// G_ATOMICRMW_XCHG
    0U,	// G_ATOMICRMW_ADD
    0U,	// G_ATOMICRMW_SUB
    0U,	// G_ATOMICRMW_AND
    0U,	// G_ATOMICRMW_NAND
    0U,	// G_ATOMICRMW_OR
    0U,	// G_ATOMICRMW_XOR
    0U,	// G_ATOMICRMW_MAX
    0U,	// G_ATOMICRMW_MIN
    0U,	// G_ATOMICRMW_UMAX
    0U,	// G_ATOMICRMW_UMIN
    0U,	// G_ATOMICRMW_FADD
    0U,	// G_ATOMICRMW_FSUB
    0U,	// G_ATOMICRMW_FMAX
    0U,	// G_ATOMICRMW_FMIN
    0U,	// G_ATOMICRMW_UINC_WRAP
    0U,	// G_ATOMICRMW_UDEC_WRAP
    0U,	// G_FENCE
    0U,	// G_BRCOND
    0U,	// G_BRINDIRECT
    0U,	// G_INVOKE_REGION_START
    0U,	// G_INTRINSIC
    0U,	// G_INTRINSIC_W_SIDE_EFFECTS
    0U,	// G_ANYEXT
    0U,	// G_TRUNC
    0U,	// G_CONSTANT
    0U,	// G_FCONSTANT
    0U,	// G_VASTART
    0U,	// G_VAARG
    0U,	// G_SEXT
    0U,	// G_SEXT_INREG
    0U,	// G_ZEXT
    0U,	// G_SHL
    0U,	// G_LSHR
    0U,	// G_ASHR
    0U,	// G_FSHL
    0U,	// G_FSHR
    0U,	// G_ROTR
    0U,	// G_ROTL
    0U,	// G_ICMP
    0U,	// G_FCMP
    0U,	// G_SELECT
    0U,	// G_UADDO
    0U,	// G_UADDE
    0U,	// G_USUBO
    0U,	// G_USUBE
    0U,	// G_SADDO
    0U,	// G_SADDE
    0U,	// G_SSUBO
    0U,	// G_SSUBE
    0U,	// G_UMULO
    0U,	// G_SMULO
    0U,	// G_UMULH
    0U,	// G_SMULH
    0U,	// G_UADDSAT
    0U,	// G_SADDSAT
    0U,	// G_USUBSAT
    0U,	// G_SSUBSAT
    0U,	// G_USHLSAT
    0U,	// G_SSHLSAT
    0U,	// G_SMULFIX
    0U,	// G_UMULFIX
    0U,	// G_SMULFIXSAT
    0U,	// G_UMULFIXSAT
    0U,	// G_SDIVFIX
    0U,	// G_UDIVFIX
    0U,	// G_SDIVFIXSAT
    0U,	// G_UDIVFIXSAT
    0U,	// G_FADD
    0U,	// G_FSUB
    0U,	// G_FMUL
    0U,	// G_FMA
    0U,	// G_FMAD
    0U,	// G_FDIV
    0U,	// G_FREM
    0U,	// G_FPOW
    0U,	// G_FPOWI
    0U,	// G_FEXP
    0U,	// G_FEXP2
    0U,	// G_FLOG
    0U,	// G_FLOG2
    0U,	// G_FLOG10
    0U,	// G_FNEG
    0U,	// G_FPEXT
    0U,	// G_FPTRUNC
    0U,	// G_FPTOSI
    0U,	// G_FPTOUI
    0U,	// G_SITOFP
    0U,	// G_UITOFP
    0U,	// G_FABS
    0U,	// G_FCOPYSIGN
    0U,	// G_IS_FPCLASS
    0U,	// G_FCANONICALIZE
    0U,	// G_FMINNUM
    0U,	// G_FMAXNUM
    0U,	// G_FMINNUM_IEEE
    0U,	// G_FMAXNUM_IEEE
    0U,	// G_FMINIMUM
    0U,	// G_FMAXIMUM
    0U,	// G_PTR_ADD
    0U,	// G_PTRMASK
    0U,	// G_SMIN
    0U,	// G_SMAX
    0U,	// G_UMIN
    0U,	// G_UMAX
    0U,	// G_ABS
    0U,	// G_LROUND
    0U,	// G_LLROUND
    0U,	// G_BR
    0U,	// G_BRJT
    0U,	// G_INSERT_VECTOR_ELT
    0U,	// G_EXTRACT_VECTOR_ELT
    0U,	// G_SHUFFLE_VECTOR
    0U,	// G_CTTZ
    0U,	// G_CTTZ_ZERO_UNDEF
    0U,	// G_CTLZ
    0U,	// G_CTLZ_ZERO_UNDEF
    0U,	// G_CTPOP
    0U,	// G_BSWAP
    0U,	// G_BITREVERSE
    0U,	// G_FCEIL
    0U,	// G_FCOS
    0U,	// G_FSIN
    0U,	// G_FSQRT
    0U,	// G_FFLOOR
    0U,	// G_FRINT
    0U,	// G_FNEARBYINT
    0U,	// G_ADDRSPACE_CAST
    0U,	// G_BLOCK_ADDR
    0U,	// G_JUMP_TABLE
    0U,	// G_DYN_STACKALLOC
    0U,	// G_STRICT_FADD
    0U,	// G_STRICT_FSUB
    0U,	// G_STRICT_FMUL
    0U,	// G_STRICT_FDIV
    0U,	// G_STRICT_FREM
    0U,	// G_STRICT_FMA
    0U,	// G_STRICT_FSQRT
    0U,	// G_READ_REGISTER
    0U,	// G_WRITE_REGISTER
    0U,	// G_MEMCPY
    0U,	// G_MEMCPY_INLINE
    0U,	// G_MEMMOVE
    0U,	// G_MEMSET
    0U,	// G_BZERO
    0U,	// G_VECREDUCE_SEQ_FADD
    0U,	// G_VECREDUCE_SEQ_FMUL
    0U,	// G_VECREDUCE_FADD
    0U,	// G_VECREDUCE_FMUL
    0U,	// G_VECREDUCE_FMAX
    0U,	// G_VECREDUCE_FMIN
    0U,	// G_VECREDUCE_ADD
    0U,	// G_VECREDUCE_MUL
    0U,	// G_VECREDUCE_AND
    0U,	// G_VECREDUCE_OR
    0U,	// G_VECREDUCE_XOR
    0U,	// G_VECREDUCE_SMAX
    0U,	// G_VECREDUCE_SMIN
    0U,	// G_VECREDUCE_UMAX
    0U,	// G_VECREDUCE_UMIN
    0U,	// G_SBFX
    0U,	// G_UBFX
    0U,	// ADJCALLSTACKDOWN
    0U,	// ADJCALLSTACKUP
    0U,	// PseudoAtomicLoadAdd32
    0U,	// PseudoAtomicLoadAnd32
    0U,	// PseudoAtomicLoadNand32
    0U,	// PseudoAtomicLoadNand64
    0U,	// PseudoAtomicLoadOr32
    0U,	// PseudoAtomicLoadSub32
    0U,	// PseudoAtomicLoadXor32
    0U,	// PseudoAtomicStoreD
    0U,	// PseudoAtomicStoreW
    0U,	// PseudoAtomicSwap32
    0U,	// PseudoBR
    0U,	// PseudoBRIND
    0U,	// PseudoB_TAIL
    0U,	// PseudoCALL
    0U,	// PseudoCALLIndirect
    0U,	// PseudoCmpXchg32
    0U,	// PseudoCmpXchg64
    0U,	// PseudoJIRL_CALL
    0U,	// PseudoJIRL_TAIL
    0U,	// PseudoLA_ABS
    0U,	// PseudoLA_ABS_LARGE
    0U,	// PseudoLA_GOT
    2U,	// PseudoLA_GOT_LARGE
    0U,	// PseudoLA_PCREL
    2U,	// PseudoLA_PCREL_LARGE
    0U,	// PseudoLA_TLS_GD
    2U,	// PseudoLA_TLS_GD_LARGE
    0U,	// PseudoLA_TLS_IE
    2U,	// PseudoLA_TLS_IE_LARGE
    0U,	// PseudoLA_TLS_LD
    2U,	// PseudoLA_TLS_LD_LARGE
    0U,	// PseudoLA_TLS_LE
    0U,	// PseudoLD_CFR
    0U,	// PseudoLI_D
    0U,	// PseudoLI_W
    0U,	// PseudoMaskedAtomicLoadAdd32
    0U,	// PseudoMaskedAtomicLoadMax32
    0U,	// PseudoMaskedAtomicLoadMin32
    0U,	// PseudoMaskedAtomicLoadNand32
    0U,	// PseudoMaskedAtomicLoadSub32
    0U,	// PseudoMaskedAtomicLoadUMax32
    0U,	// PseudoMaskedAtomicLoadUMin32
    0U,	// PseudoMaskedAtomicSwap32
    0U,	// PseudoMaskedCmpXchg32
    0U,	// PseudoRET
    0U,	// PseudoST_CFR
    0U,	// PseudoTAIL
    0U,	// PseudoTAILIndirect
    0U,	// PseudoUNIMP
    0U,	// RDFCSR
    0U,	// WRFCSR
    2U,	// ADDI_D
    2U,	// ADDI_W
    2U,	// ADDU16I_D
    2U,	// ADD_D
    2U,	// ADD_W
    18U,	// ALSL_D
    18U,	// ALSL_W
    18U,	// ALSL_WU
    6U,	// AMADD_D
    6U,	// AMADD_DB_D
    6U,	// AMADD_DB_W
    6U,	// AMADD_W
    6U,	// AMAND_D
    6U,	// AMAND_DB_D
    6U,	// AMAND_DB_W
    6U,	// AMAND_W
    6U,	// AMMAX_D
    6U,	// AMMAX_DB_D
    6U,	// AMMAX_DB_DU
    6U,	// AMMAX_DB_W
    6U,	// AMMAX_DB_WU
    6U,	// AMMAX_DU
    6U,	// AMMAX_W
    6U,	// AMMAX_WU
    6U,	// AMMIN_D
    6U,	// AMMIN_DB_D
    6U,	// AMMIN_DB_DU
    6U,	// AMMIN_DB_W
    6U,	// AMMIN_DB_WU
    6U,	// AMMIN_DU
    6U,	// AMMIN_W
    6U,	// AMMIN_WU
    6U,	// AMOR_D
    6U,	// AMOR_DB_D
    6U,	// AMOR_DB_W
    6U,	// AMOR_W
    6U,	// AMSWAP_D
    6U,	// AMSWAP_DB_D
    6U,	// AMSWAP_DB_W
    6U,	// AMSWAP_W
    6U,	// AMXOR_D
    6U,	// AMXOR_DB_D
    6U,	// AMXOR_DB_W
    6U,	// AMXOR_W
    2U,	// AND
    2U,	// ANDI
    2U,	// ANDN
    0U,	// ASRTGT_D
    0U,	// ASRTLE_D
    0U,	// B
    0U,	// BCEQZ
    0U,	// BCNEZ
    2U,	// BEQ
    0U,	// BEQZ
    2U,	// BGE
    2U,	// BGEU
    0U,	// BITREV_4B
    0U,	// BITREV_8B
    0U,	// BITREV_D
    0U,	// BITREV_W
    0U,	// BL
    2U,	// BLT
    2U,	// BLTU
    2U,	// BNE
    0U,	// BNEZ
    0U,	// BREAK
    11U,	// BSTRINS_D
    11U,	// BSTRINS_W
    18U,	// BSTRPICK_D
    18U,	// BSTRPICK_W
    18U,	// BYTEPICK_D
    18U,	// BYTEPICK_W
    2U,	// CACOP
    0U,	// CLO_D
    0U,	// CLO_W
    0U,	// CLZ_D
    0U,	// CLZ_W
    0U,	// CPUCFG
    2U,	// CRCC_W_B_W
    2U,	// CRCC_W_D_W
    2U,	// CRCC_W_H_W
    2U,	// CRCC_W_W_W
    2U,	// CRC_W_B_W
    2U,	// CRC_W_D_W
    2U,	// CRC_W_H_W
    2U,	// CRC_W_W_W
    0U,	// CSRRD
    0U,	// CSRWR
    1U,	// CSRXCHG
    0U,	// CTO_D
    0U,	// CTO_W
    0U,	// CTZ_D
    0U,	// CTZ_W
    0U,	// DBAR
    0U,	// DBCL
    2U,	// DIV_D
    2U,	// DIV_DU
    2U,	// DIV_W
    2U,	// DIV_WU
    0U,	// ERTN
    0U,	// EXT_W_B
    0U,	// EXT_W_H
    0U,	// FABS_D
    0U,	// FABS_S
    2U,	// FADD_D
    2U,	// FADD_S
    0U,	// FCLASS_D
    0U,	// FCLASS_S
    2U,	// FCMP_CAF_D
    2U,	// FCMP_CAF_S
    2U,	// FCMP_CEQ_D
    2U,	// FCMP_CEQ_S
    2U,	// FCMP_CLE_D
    2U,	// FCMP_CLE_S
    2U,	// FCMP_CLT_D
    2U,	// FCMP_CLT_S
    2U,	// FCMP_CNE_D
    2U,	// FCMP_CNE_S
    2U,	// FCMP_COR_D
    2U,	// FCMP_COR_S
    2U,	// FCMP_CUEQ_D
    2U,	// FCMP_CUEQ_S
    2U,	// FCMP_CULE_D
    2U,	// FCMP_CULE_S
    2U,	// FCMP_CULT_D
    2U,	// FCMP_CULT_S
    2U,	// FCMP_CUNE_D
    2U,	// FCMP_CUNE_S
    2U,	// FCMP_CUN_D
    2U,	// FCMP_CUN_S
    2U,	// FCMP_SAF_D
    2U,	// FCMP_SAF_S
    2U,	// FCMP_SEQ_D
    2U,	// FCMP_SEQ_S
    2U,	// FCMP_SLE_D
    2U,	// FCMP_SLE_S
    2U,	// FCMP_SLT_D
    2U,	// FCMP_SLT_S
    2U,	// FCMP_SNE_D
    2U,	// FCMP_SNE_S
    2U,	// FCMP_SOR_D
    2U,	// FCMP_SOR_S
    2U,	// FCMP_SUEQ_D
    2U,	// FCMP_SUEQ_S
    2U,	// FCMP_SULE_D
    2U,	// FCMP_SULE_S
    2U,	// FCMP_SULT_D
    2U,	// FCMP_SULT_S
    2U,	// FCMP_SUNE_D
    2U,	// FCMP_SUNE_S
    2U,	// FCMP_SUN_D
    2U,	// FCMP_SUN_S
    2U,	// FCOPYSIGN_D
    2U,	// FCOPYSIGN_S
    0U,	// FCVT_D_S
    0U,	// FCVT_S_D
    2U,	// FDIV_D
    2U,	// FDIV_S
    0U,	// FFINT_D_L
    0U,	// FFINT_D_W
    0U,	// FFINT_S_L
    0U,	// FFINT_S_W
    2U,	// FLDGT_D
    2U,	// FLDGT_S
    2U,	// FLDLE_D
    2U,	// FLDLE_S
    2U,	// FLDX_D
    2U,	// FLDX_S
    2U,	// FLD_D
    2U,	// FLD_S
    0U,	// FLOGB_D
    0U,	// FLOGB_S
    18U,	// FMADD_D
    18U,	// FMADD_S
    2U,	// FMAXA_D
    2U,	// FMAXA_S
    2U,	// FMAX_D
    2U,	// FMAX_S
    2U,	// FMINA_D
    2U,	// FMINA_S
    2U,	// FMIN_D
    2U,	// FMIN_S
    0U,	// FMOV_D
    0U,	// FMOV_S
    18U,	// FMSUB_D
    18U,	// FMSUB_S
    2U,	// FMUL_D
    2U,	// FMUL_S
    0U,	// FNEG_D
    0U,	// FNEG_S
    18U,	// FNMADD_D
    18U,	// FNMADD_S
    18U,	// FNMSUB_D
    18U,	// FNMSUB_S
    0U,	// FRECIP_D
    0U,	// FRECIP_S
    0U,	// FRINT_D
    0U,	// FRINT_S
    0U,	// FRSQRT_D
    0U,	// FRSQRT_S
    2U,	// FSCALEB_D
    2U,	// FSCALEB_S
    18U,	// FSEL_D
    18U,	// FSEL_S
    0U,	// FSQRT_D
    0U,	// FSQRT_S
    2U,	// FSTGT_D
    2U,	// FSTGT_S
    2U,	// FSTLE_D
    2U,	// FSTLE_S
    2U,	// FSTX_D
    2U,	// FSTX_S
    2U,	// FST_D
    2U,	// FST_S
    2U,	// FSUB_D
    2U,	// FSUB_S
    0U,	// FTINTRM_L_D
    0U,	// FTINTRM_L_S
    0U,	// FTINTRM_W_D
    0U,	// FTINTRM_W_S
    0U,	// FTINTRNE_L_D
    0U,	// FTINTRNE_L_S
    0U,	// FTINTRNE_W_D
    0U,	// FTINTRNE_W_S
    0U,	// FTINTRP_L_D
    0U,	// FTINTRP_L_S
    0U,	// FTINTRP_W_D
    0U,	// FTINTRP_W_S
    0U,	// FTINTRZ_L_D
    0U,	// FTINTRZ_L_S
    0U,	// FTINTRZ_W_D
    0U,	// FTINTRZ_W_S
    0U,	// FTINT_L_D
    0U,	// FTINT_L_S
    0U,	// FTINT_W_D
    0U,	// FTINT_W_S
    0U,	// IBAR
    0U,	// IDLE
    0U,	// INVTLB
    0U,	// IOCSRRD_B
    0U,	// IOCSRRD_D
    0U,	// IOCSRRD_H
    0U,	// IOCSRRD_W
    0U,	// IOCSRWR_B
    0U,	// IOCSRWR_D
    0U,	// IOCSRWR_H
    0U,	// IOCSRWR_W
    2U,	// JIRL
    2U,	// LDDIR
    2U,	// LDGT_B
    2U,	// LDGT_D
    2U,	// LDGT_H
    2U,	// LDGT_W
    2U,	// LDLE_B
    2U,	// LDLE_D
    2U,	// LDLE_H
    2U,	// LDLE_W
    0U,	// LDPTE
    2U,	// LDPTR_D
    2U,	// LDPTR_W
    2U,	// LDX_B
    2U,	// LDX_BU
    2U,	// LDX_D
    2U,	// LDX_H
    2U,	// LDX_HU
    2U,	// LDX_W
    2U,	// LDX_WU
    2U,	// LD_B
    2U,	// LD_BU
    2U,	// LD_D
    2U,	// LD_H
    2U,	// LD_HU
    2U,	// LD_W
    2U,	// LD_WU
    2U,	// LL_D
    2U,	// LL_W
    0U,	// LU12I_W
    0U,	// LU32I_D
    2U,	// LU52I_D
    2U,	// MASKEQZ
    2U,	// MASKNEZ
    2U,	// MOD_D
    2U,	// MOD_DU
    2U,	// MOD_W
    2U,	// MOD_WU
    0U,	// MOVCF2FR_S
    0U,	// MOVCF2GR
    0U,	// MOVFCSR2GR
    0U,	// MOVFR2CF_S
    0U,	// MOVFR2GR_D
    0U,	// MOVFR2GR_S
    0U,	// MOVFR2GR_S_64
    0U,	// MOVFRH2GR_S
    0U,	// MOVGR2CF
    0U,	// MOVGR2FCSR
    0U,	// MOVGR2FRH_W
    0U,	// MOVGR2FR_D
    0U,	// MOVGR2FR_W
    0U,	// MOVGR2FR_W_64
    2U,	// MULH_D
    2U,	// MULH_DU
    2U,	// MULH_W
    2U,	// MULH_WU
    2U,	// MULW_D_W
    2U,	// MULW_D_WU
    2U,	// MUL_D
    2U,	// MUL_W
    2U,	// NOR
    2U,	// OR
    2U,	// ORI
    2U,	// ORN
    0U,	// PCADDI
    0U,	// PCADDU12I
    0U,	// PCADDU18I
    0U,	// PCALAU12I
    2U,	// PRELD
    2U,	// PRELDX
    0U,	// RDTIMEH_W
    0U,	// RDTIMEL_W
    0U,	// RDTIME_D
    0U,	// REVB_2H
    0U,	// REVB_2W
    0U,	// REVB_4H
    0U,	// REVB_D
    0U,	// REVH_2W
    0U,	// REVH_D
    2U,	// ROTRI_D
    2U,	// ROTRI_W
    2U,	// ROTR_D
    2U,	// ROTR_W
    1U,	// SC_D
    1U,	// SC_W
    2U,	// SLLI_D
    2U,	// SLLI_W
    2U,	// SLL_D
    2U,	// SLL_W
    2U,	// SLT
    2U,	// SLTI
    2U,	// SLTU
    2U,	// SLTUI
    2U,	// SRAI_D
    2U,	// SRAI_W
    2U,	// SRA_D
    2U,	// SRA_W
    2U,	// SRLI_D
    2U,	// SRLI_W
    2U,	// SRL_D
    2U,	// SRL_W
    2U,	// STGT_B
    2U,	// STGT_D
    2U,	// STGT_H
    2U,	// STGT_W
    2U,	// STLE_B
    2U,	// STLE_D
    2U,	// STLE_H
    2U,	// STLE_W
    2U,	// STPTR_D
    2U,	// STPTR_W
    2U,	// STX_B
    2U,	// STX_D
    2U,	// STX_H
    2U,	// STX_W
    2U,	// ST_B
    2U,	// ST_D
    2U,	// ST_H
    2U,	// ST_W
    2U,	// SUB_D
    2U,	// SUB_W
    0U,	// SYSCALL
    0U,	// TLBCLR
    0U,	// TLBFILL
    0U,	// TLBFLUSH
    0U,	// TLBRD
    0U,	// TLBSRCH
    0U,	// TLBWR
    2U,	// XOR
    2U,	// XORI
  };

  // Emit the opcode for the instruction.
  uint32_t Bits = 0;
  Bits |= OpInfo0[MI->getOpcode()] << 0;
  Bits |= OpInfo1[MI->getOpcode()] << 16;
  return {AsmStrs+(Bits & 4095)-1, Bits};

}
/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
LLVM_NO_PROFILE_INSTRUMENT_FUNCTION
void LoongArchInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) {
  O << "\t";

  auto MnemonicInfo = getMnemonic(MI);

  O << MnemonicInfo.first;

  uint32_t Bits = MnemonicInfo.second;
  assert(Bits != 0 && "Cannot print this instruction.");

  // Fragment 0 encoded into 2 bits for 4 unique commands.
  switch ((Bits >> 12) & 3) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // DBG_VALUE, DBG_VALUE_LIST, DBG_INSTR_REF, DBG_PHI, DBG_LABEL, BUNDLE, ...
    return;
    break;
  case 1:
    // PseudoLA_ABS, PseudoLA_ABS_LARGE, PseudoLA_GOT, PseudoLA_GOT_LARGE, Ps...
    printOperand(MI, 0, STI, O);
    break;
  case 2:
    // BSTRINS_D, BSTRINS_W, CSRWR, CSRXCHG, LU32I_D, MOVGR2FRH_W, SC_D, SC_W
    printOperand(MI, 1, STI, O);
    O << ", ";
    printOperand(MI, 2, STI, O);
    break;
  case 3:
    // INVTLB
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 1, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  }


  // Fragment 1 encoded into 1 bits for 2 unique commands.
  if ((Bits >> 14) & 1) {
    // B, BL, BREAK, CSRWR, DBAR, DBCL, IBAR, IDLE, LU32I_D, MOVGR2FRH_W, SYS...
    return;
  } else {
    // PseudoLA_ABS, PseudoLA_ABS_LARGE, PseudoLA_GOT, PseudoLA_GOT_LARGE, Ps...
    O << ", ";
  }


  // Fragment 2 encoded into 2 bits for 3 unique commands.
  switch ((Bits >> 15) & 3) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // PseudoLA_ABS, PseudoLA_GOT, PseudoLA_GOT_LARGE, PseudoLA_PCREL, Pseudo...
    printOperand(MI, 1, STI, O);
    break;
  case 1:
    // PseudoLA_ABS_LARGE
    printOperand(MI, 2, STI, O);
    return;
    break;
  case 2:
    // BSTRINS_D, BSTRINS_W, CSRXCHG, SC_D, SC_W
    printOperand(MI, 3, STI, O);
    break;
  }


  // Fragment 3 encoded into 1 bits for 2 unique commands.
  if ((Bits >> 17) & 1) {
    // PseudoLA_GOT_LARGE, PseudoLA_PCREL_LARGE, PseudoLA_TLS_GD_LARGE, Pseud...
    O << ", ";
  } else {
    // PseudoLA_ABS, PseudoLA_GOT, PseudoLA_PCREL, PseudoLA_TLS_GD, PseudoLA_...
    return;
  }


  // Fragment 4 encoded into 2 bits for 3 unique commands.
  switch ((Bits >> 18) & 3) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // PseudoLA_GOT_LARGE, PseudoLA_PCREL_LARGE, PseudoLA_TLS_GD_LARGE, Pseud...
    printOperand(MI, 2, STI, O);
    break;
  case 1:
    // AMADD_D, AMADD_DB_D, AMADD_DB_W, AMADD_W, AMAND_D, AMAND_DB_D, AMAND_D...
    printAtomicMemOp(MI, 2, STI, O);
    return;
    break;
  case 2:
    // BSTRINS_D, BSTRINS_W
    printOperand(MI, 4, STI, O);
    return;
    break;
  }


  // Fragment 5 encoded into 1 bits for 2 unique commands.
  if ((Bits >> 20) & 1) {
    // ALSL_D, ALSL_W, ALSL_WU, BSTRPICK_D, BSTRPICK_W, BYTEPICK_D, BYTEPICK_...
    O << ", ";
    printOperand(MI, 3, STI, O);
    return;
  } else {
    // PseudoLA_GOT_LARGE, PseudoLA_PCREL_LARGE, PseudoLA_TLS_GD_LARGE, Pseud...
    return;
  }

}


/// getRegisterName - This method is automatically generated by tblgen
/// from the register set description.  This returns the assembler name
/// for the specified register.
const char *LoongArchInstPrinter::
getRegisterName(MCRegister Reg, unsigned AltIdx) {
  unsigned RegNo = Reg.id();
  assert(RegNo && RegNo < 109 && "Invalid register number!");


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
  static const char AsmStrsNoRegAltName[] = {
  /* 0 */ "f10\0"
  /* 4 */ "r10\0"
  /* 8 */ "f20\0"
  /* 12 */ "r20\0"
  /* 16 */ "f30\0"
  /* 20 */ "r30\0"
  /* 24 */ "fcc0\0"
  /* 29 */ "f0\0"
  /* 32 */ "fcsr0\0"
  /* 38 */ "f11\0"
  /* 42 */ "r11\0"
  /* 46 */ "f21\0"
  /* 50 */ "r21\0"
  /* 54 */ "f31\0"
  /* 58 */ "r31\0"
  /* 62 */ "fcc1\0"
  /* 67 */ "f1\0"
  /* 70 */ "fcsr1\0"
  /* 76 */ "f12\0"
  /* 80 */ "r12\0"
  /* 84 */ "f22\0"
  /* 88 */ "r22\0"
  /* 92 */ "fcc2\0"
  /* 97 */ "f2\0"
  /* 100 */ "fcsr2\0"
  /* 106 */ "f13\0"
  /* 110 */ "r13\0"
  /* 114 */ "f23\0"
  /* 118 */ "r23\0"
  /* 122 */ "fcc3\0"
  /* 127 */ "f3\0"
  /* 130 */ "fcsr3\0"
  /* 136 */ "f14\0"
  /* 140 */ "r14\0"
  /* 144 */ "f24\0"
  /* 148 */ "r24\0"
  /* 152 */ "fcc4\0"
  /* 157 */ "f4\0"
  /* 160 */ "r4\0"
  /* 163 */ "f15\0"
  /* 167 */ "r15\0"
  /* 171 */ "f25\0"
  /* 175 */ "r25\0"
  /* 179 */ "fcc5\0"
  /* 184 */ "f5\0"
  /* 187 */ "r5\0"
  /* 190 */ "f16\0"
  /* 194 */ "r16\0"
  /* 198 */ "f26\0"
  /* 202 */ "r26\0"
  /* 206 */ "fcc6\0"
  /* 211 */ "f6\0"
  /* 214 */ "r6\0"
  /* 217 */ "f17\0"
  /* 221 */ "r17\0"
  /* 225 */ "f27\0"
  /* 229 */ "r27\0"
  /* 233 */ "fcc7\0"
  /* 238 */ "f7\0"
  /* 241 */ "r7\0"
  /* 244 */ "f18\0"
  /* 248 */ "r18\0"
  /* 252 */ "f28\0"
  /* 256 */ "r28\0"
  /* 260 */ "f8\0"
  /* 263 */ "r8\0"
  /* 266 */ "f19\0"
  /* 270 */ "r19\0"
  /* 274 */ "f29\0"
  /* 278 */ "r29\0"
  /* 282 */ "f9\0"
  /* 285 */ "r9\0"
};
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif

  static const uint16_t RegAsmOffsetNoRegAltName[] = {
    29, 67, 97, 127, 157, 184, 211, 238, 260, 282, 0, 38, 76, 106, 
    136, 163, 190, 217, 244, 266, 8, 46, 84, 114, 144, 171, 198, 225, 
    252, 274, 16, 54, 24, 62, 92, 122, 152, 179, 206, 233, 32, 70, 
    100, 130, 35, 73, 103, 133, 160, 187, 214, 241, 263, 285, 4, 42, 
    80, 110, 140, 167, 194, 221, 248, 270, 12, 50, 88, 118, 148, 175, 
    202, 229, 256, 278, 20, 58, 29, 67, 97, 127, 157, 184, 211, 238, 
    260, 282, 0, 38, 76, 106, 136, 163, 190, 217, 244, 266, 8, 46, 
    84, 114, 144, 171, 198, 225, 252, 274, 16, 54, 
  };


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverlength-strings"
#endif
  static const char AsmStrsRegAliasName[] = {
  /* 0 */ "ft10\0"
  /* 5 */ "fa0\0"
  /* 9 */ "fs0\0"
  /* 13 */ "ft0\0"
  /* 17 */ "ft11\0"
  /* 22 */ "fa1\0"
  /* 26 */ "fs1\0"
  /* 30 */ "ft1\0"
  /* 34 */ "ft12\0"
  /* 39 */ "fa2\0"
  /* 43 */ "fs2\0"
  /* 47 */ "ft2\0"
  /* 51 */ "ft13\0"
  /* 56 */ "fa3\0"
  /* 60 */ "fs3\0"
  /* 64 */ "ft3\0"
  /* 68 */ "ft14\0"
  /* 73 */ "fa4\0"
  /* 77 */ "fs4\0"
  /* 81 */ "ft4\0"
  /* 85 */ "ft15\0"
  /* 90 */ "fa5\0"
  /* 94 */ "fs5\0"
  /* 98 */ "ft5\0"
  /* 102 */ "fa6\0"
  /* 106 */ "fs6\0"
  /* 110 */ "ft6\0"
  /* 114 */ "fa7\0"
  /* 118 */ "fs7\0"
  /* 122 */ "ft7\0"
  /* 126 */ "s8\0"
  /* 129 */ "ft8\0"
  /* 133 */ "ft9\0"
  /* 137 */ "ra\0"
  /* 140 */ "zero\0"
  /* 145 */ "fp\0"
  /* 148 */ "sp\0"
  /* 151 */ "tp\0"
};
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif

  static const uint8_t RegAsmOffsetRegAliasName[] = {
    5, 22, 39, 56, 73, 90, 102, 114, 13, 30, 47, 64, 81, 98, 
    110, 122, 129, 133, 0, 17, 34, 51, 68, 85, 9, 26, 43, 60, 
    77, 94, 106, 118, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
    4, 4, 140, 137, 151, 148, 6, 23, 40, 57, 74, 91, 103, 115, 
    14, 31, 48, 65, 82, 99, 111, 123, 130, 4, 145, 10, 27, 44, 
    61, 78, 95, 107, 119, 126, 5, 22, 39, 56, 73, 90, 102, 114, 
    13, 30, 47, 64, 81, 98, 110, 122, 129, 133, 0, 17, 34, 51, 
    68, 85, 9, 26, 43, 60, 77, 94, 106, 118, 
  };

  switch(AltIdx) {
  default: llvm_unreachable("Invalid register alt name index!");
  case LoongArch::NoRegAltName:
    assert(*(AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1]) &&
           "Invalid alt name index for register!");
    return AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1];
  case LoongArch::RegAliasName:
    if (!*(AsmStrsRegAliasName+RegAsmOffsetRegAliasName[RegNo-1]))
      return getRegisterName(RegNo, LoongArch::NoRegAltName);
    return AsmStrsRegAliasName+RegAsmOffsetRegAliasName[RegNo-1];
  }
}

#ifdef PRINT_ALIAS_INSTR
#undef PRINT_ALIAS_INSTR

bool LoongArchInstPrinter::printAliasInstr(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &OS) {
  static const PatternsForOpcode OpToPatterns[] = {
    {LoongArch::PseudoLA_ABS, 0, 1 },
    {LoongArch::PseudoLA_GOT_LARGE, 1, 1 },
    {LoongArch::PseudoLA_PCREL, 2, 1 },
    {LoongArch::PseudoLA_PCREL_LARGE, 3, 2 },
    {LoongArch::ANDI, 5, 1 },
    {LoongArch::JIRL, 6, 2 },
    {LoongArch::OR, 8, 1 },
  };

  static const AliasPattern Patterns[] = {
    // LoongArch::PseudoLA_ABS - 0
    {0, 0, 2, 2 },
    // LoongArch::PseudoLA_GOT_LARGE - 1
    {16, 2, 3, 2 },
    // LoongArch::PseudoLA_PCREL - 2
    {0, 4, 2, 1 },
    // LoongArch::PseudoLA_PCREL_LARGE - 3
    {37, 5, 3, 2 },
    {16, 7, 3, 3 },
    // LoongArch::ANDI - 5
    {57, 10, 3, 3 },
    // LoongArch::JIRL - 6
    {61, 13, 3, 3 },
    {65, 16, 3, 3 },
    // LoongArch::OR - 8
    {71, 19, 3, 3 },
  };

  static const AliasPatternCond Conds[] = {
    // (PseudoLA_ABS GPR:$dst, bare_symbol:$src) - 0
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_Feature, LoongArch::LaLocalWithAbs},
    // (PseudoLA_GOT_LARGE GPR:$dst, GPR:$tmp, bare_symbol:$src) - 2
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    // (PseudoLA_PCREL GPR:$dst, bare_symbol:$src) - 4
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    // (PseudoLA_PCREL_LARGE GPR:$dst, GPR:$tmp, bare_symbol:$src) - 5
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    // (PseudoLA_PCREL_LARGE GPR:$dst, GPR:$tmp, bare_symbol:$src) - 7
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_Feature, LoongArch::LaGlobalWithPcrel},
    // (ANDI R0, R0, 0) - 10
    {AliasPatternCond::K_Reg, LoongArch::R0},
    {AliasPatternCond::K_Reg, LoongArch::R0},
    {AliasPatternCond::K_Imm, uint32_t(0)},
    // (JIRL R0, R1, 0) - 13
    {AliasPatternCond::K_Reg, LoongArch::R0},
    {AliasPatternCond::K_Reg, LoongArch::R1},
    {AliasPatternCond::K_Imm, uint32_t(0)},
    // (JIRL R0, GPR:$rj, 0) - 16
    {AliasPatternCond::K_Reg, LoongArch::R0},
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_Imm, uint32_t(0)},
    // (OR GPR:$dst, GPR:$src, R0) - 19
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
    {AliasPatternCond::K_Reg, LoongArch::R0},
  };

  static const char AsmStrings[] =
    /* 0 */ "la.local $\x01, $\x02\0"
    /* 16 */ "la.global $\x01, $\x02, $\x03\0"
    /* 37 */ "la.local $\x01, $\x02, $\x03\0"
    /* 57 */ "nop\0"
    /* 61 */ "ret\0"
    /* 65 */ "jr $\x02\0"
    /* 71 */ "move $\x01, $\x02\0"
  ;

#ifndef NDEBUG
  static struct SortCheck {
    SortCheck(ArrayRef<PatternsForOpcode> OpToPatterns) {
      assert(std::is_sorted(
                 OpToPatterns.begin(), OpToPatterns.end(),
                 [](const PatternsForOpcode &L, const PatternsForOpcode &R) {
                   return L.Opcode < R.Opcode;
                 }) &&
             "tablegen failed to sort opcode patterns");
    }
  } sortCheckVar(OpToPatterns);
#endif

  AliasMatchingData M {
    ArrayRef(OpToPatterns),
    ArrayRef(Patterns),
    ArrayRef(Conds),
    StringRef(AsmStrings, std::size(AsmStrings)),
    nullptr,
  };
  const char *AsmString = matchAliasPatterns(MI, &STI, M);
  if (!AsmString) return false;

  unsigned I = 0;
  while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
         AsmString[I] != '$' && AsmString[I] != '\0')
    ++I;
  OS << '\t' << StringRef(AsmString, I);
  if (AsmString[I] != '\0') {
    if (AsmString[I] == ' ' || AsmString[I] == '\t') {
      OS << '\t';
      ++I;
    }
    do {
      if (AsmString[I] == '$') {
        ++I;
        if (AsmString[I] == (char)0xff) {
          ++I;
          int OpIdx = AsmString[I++] - 1;
          int PrintMethodIdx = AsmString[I++] - 1;
          printCustomAliasOperand(MI, Address, OpIdx, PrintMethodIdx, STI, OS);
        } else
          printOperand(MI, unsigned(AsmString[I++]) - 1, STI, OS);
      } else {
        OS << AsmString[I++];
      }
    } while (AsmString[I] != '\0');
  }

  return true;
}

void LoongArchInstPrinter::printCustomAliasOperand(
         const MCInst *MI, uint64_t Address, unsigned OpIdx,
         unsigned PrintMethodIdx,
         const MCSubtargetInfo &STI,
         raw_ostream &OS) {
  llvm_unreachable("Unknown PrintMethod kind");
}

#endif // PRINT_ALIAS_INSTR
