/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* AMDGPUPostLegalizerCombinerImpl Combiner Match Table                       *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

#ifdef GET_GICOMBINER_DEPS
#include "llvm/ADT/SparseBitVector.h"
namespace llvm {
extern cl::OptionCategory GICombinerOptionCategory;
} // end namespace llvm
#endif // ifdef GET_GICOMBINER_DEPS

#ifdef GET_GICOMBINER_TYPES
struct AMDGPUPostLegalizerCombinerImplRuleConfig {
  SparseBitVector<> DisabledRules;

  bool isRuleEnabled(unsigned RuleID) const;
  bool parseCommandLineOption();
  bool setRuleEnabled(StringRef RuleIdentifier);
  bool setRuleDisabled(StringRef RuleIdentifier);
};

static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
  uint64_t I;
  // getAtInteger(...) returns false on success
  bool Parsed = !RuleIdentifier.getAsInteger(0, I);
  if (Parsed)
    return I;

#ifndef NDEBUG
  switch (RuleIdentifier.size()) {
  default: break;
  case 7:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "smulu64", 7) != 0)
      break;
    return 237;	 // "smulu64"
  case 9:	 // 5 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
        break;
      return 13;	 // "copy_prop"
    case 'm':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
          break;
        return 200;	 // "match_ors"
      case 'u':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
          break;
        switch (RuleIdentifier[8]) {
        default: break;
        case '0':	 // 1 string to match.
          return 146;	 // "mulo_by_0"
        case '2':	 // 1 string to match.
          return 145;	 // "mulo_by_2"
        }
        break;
      }
      break;
    case 'n':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
        break;
      return 205;	 // "nneg_zext"
    }
    break;
  case 10:	 // 7 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
        break;
      return 89;	 // "i2p_to_p2i"
    case 'm':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
          break;
        return 199;	 // "match_ands"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
          break;
        return 14;	 // "mul_to_shl"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
        break;
      return 88;	 // "p2i_to_i2p"
    case 's':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
          break;
        return 203;	 // "sext_trunc"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
          break;
        return 15;	 // "sub_to_add"
      }
      break;
    case 'z':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
        break;
      return 204;	 // "zext_trunc"
    }
    break;
  case 11:	 // 8 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
        break;
      return 94;	 // "add_sub_reg"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
        break;
      return 220;	 // "match_addos"
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
        break;
      return 194;	 // "sub_add_reg"
    case 't':	 // 4 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
        break;
      switch (RuleIdentifier[6]) {
      default: break;
      case 's':	 // 3 strings to match.
        switch (RuleIdentifier[7]) {
        default: break;
        case 'h':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
            break;
          return 132;	 // "trunc_shift"
        case 's':	 // 2 strings to match.
          if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
            break;
          switch (RuleIdentifier[10]) {
          default: break;
          case 's':	 // 1 string to match.
            return 222;	 // "trunc_ssats"
          case 'u':	 // 1 string to match.
            return 223;	 // "trunc_ssatu"
          }
          break;
        }
        break;
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
          break;
        return 224;	 // "trunc_usatu"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
        break;
      return 213;	 // "unmerge_cst"
    }
    break;
  case 12:	 // 11 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
        break;
      return 2;	 // "APlusBMinusB"
    case 'B':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
        break;
      return 3;	 // "BMinusAPlusA"
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
        break;
      return 147;	 // "adde_to_addo"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
        break;
      return 196;	 // "fsub_to_fneg"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
        break;
      return 175;	 // "mulh_to_lshr"
    case 'n':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
        break;
      return 133;	 // "not_cmp_fold"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
        break;
      return 128;	 // "redundant_or"
    case 's':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
          break;
        return 190;	 // "sdiv_by_pow2"
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
          break;
        return 48;	 // "sext_of_sext"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
        break;
      return 189;	 // "udiv_by_pow2"
    case 'z':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
        break;
      return 46;	 // "zext_of_zext"
    }
    break;
  case 13:	 // 16 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
        break;
      return 37;	 // "add_of_vscale"
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
        break;
      return 165;	 // "commute_shift"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
        break;
      return 233;	 // "foldable_fneg"
    case 'l':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
        break;
      return 69;	 // "load_and_mask"
    case 'm':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
          break;
        return 125;	 // "match_selects"
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
          break;
        return 212;	 // "merge_unmerge"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
          break;
        return 38;	 // "mul_of_vscale"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
        break;
      return 126;	 // "redundant_and"
    case 's':	 // 4 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
          break;
        return 192;	 // "sdiv_by_const"
      case 'h':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
          break;
        return 39;	 // "shl_of_vscale"
      case 'r':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
          break;
        return 188;	 // "srem_by_const"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
          break;
        return 40;	 // "sub_of_vscale"
      }
      break;
    case 'u':	 // 4 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
          break;
        return 191;	 // "udiv_by_const"
      case 'n':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
          break;
        switch (RuleIdentifier[8]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
            break;
          return 211;	 // "unmerge_merge"
        case 'u':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
            break;
          return 214;	 // "unmerge_undef"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
          break;
        return 187;	 // "urem_by_const"
      }
      break;
    }
    break;
  case 14:	 // 17 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'M':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
          break;
        return 12;	 // "AMinusC1PlusC2"
      case 'P':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
          break;
        return 8;	 // "APlusC1MinusC2"
      }
      break;
    case 'C':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
        break;
      return 9;	 // "C2MinusAPlusC1"
    case 'a':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
        break;
      switch (RuleIdentifier[10]) {
      default: break;
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
          break;
        return 52;	 // "anyext_of_sext"
      case 'z':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
          break;
        return 51;	 // "anyext_of_zext"
      }
      break;
    case 'b':	 // 2 strings to match.
      if (RuleIdentifier[1] != 'i')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "op_same_val", 11) != 0)
          break;
        return 85;	 // "binop_same_val"
      case 't':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
          break;
        return 163;	 // "bitreverse_shl"
      }
      break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
        break;
      return 231;	 // "cvt_f32_ubyteN"
    case 'f':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
          break;
        return 174;	 // "fabs_fneg_fold"
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
          break;
        return 91;	 // "fneg_fneg_fold"
      }
      break;
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
        break;
      return 17;	 // "mul_by_neg_one"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
        break;
      return 107;	 // "reassoc_ptradd"
    case 's':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 2 strings to match.
        switch (RuleIdentifier[2]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
            break;
          return 54;	 // "select_of_zext"
        case 'x':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
            break;
          return 49;	 // "sext_of_anyext"
        }
        break;
      case 'h':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
          break;
        return 106;	 // "shifts_too_big"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
        break;
      return 230;	 // "uchar_to_float"
    case 'z':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
        break;
      return 47;	 // "zext_of_anyext"
    }
    break;
  case 15:	 // 13 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'M':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
          break;
        return 10;	 // "AMinusC1MinusC2"
      case 'P':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
          break;
        return 1;	 // "APlusZeroMinusB"
      }
      break;
    case 'C':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
        break;
      return 11;	 // "C1Minus2MinusC2"
    case 'Z':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
        break;
      return 0;	 // "ZeroMinusAPlusB"
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
        break;
      return 164;	 // "bitreverse_lshr"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
        break;
      return 68;	 // "extending_loads"
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
        break;
      return 18;	 // "idempotent_prop"
    case 'l':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
        break;
      return 154;	 // "load_or_combine"
    case 'n':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
        break;
      return 62;	 // "narrow_binop_or"
    case 'o':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
        break;
      return 144;	 // "overlapping_and"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
        break;
      return 234;	 // "rcp_sqrt_to_rsq"
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
        break;
      return 83;	 // "select_same_val"
    case 'z':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
        break;
      return 130;	 // "zext_trunc_fold"
    }
    break;
  case 16:	 // 12 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
        break;
      return 50;	 // "anyext_of_anyext"
    case 'n':	 // 5 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
        break;
      switch (RuleIdentifier[13]) {
      default: break;
      case 'a':	 // 2 strings to match.
        switch (RuleIdentifier[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (RuleIdentifier[15] != 'd')
            break;
          return 58;	 // "narrow_binop_add"
        case 'n':	 // 1 string to match.
          if (RuleIdentifier[15] != 'd')
            break;
          return 61;	 // "narrow_binop_and"
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
          break;
        return 60;	 // "narrow_binop_mul"
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
          break;
        return 59;	 // "narrow_binop_sub"
      case 'x':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
          break;
        return 63;	 // "narrow_binop_xor"
      }
      break;
    case 's':	 // 3 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
        break;
      switch (RuleIdentifier[7]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
          break;
        return 55;	 // "select_of_anyext"
      case 't':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
          break;
        return 195;	 // "select_to_minmax"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
          break;
        return 122;	 // "select_undef_cmp"
      }
      break;
    case 't':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
        break;
      switch (RuleIdentifier[12]) {
      default: break;
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
          break;
        return 44;	 // "truncate_of_sext"
      case 'z':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
          break;
        return 43;	 // "truncate_of_zext"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
        break;
      return 71;	 // "undef_to_fp_zero"
    }
    break;
  case 17:	 // 14 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
        break;
      switch (RuleIdentifier[11]) {
      default: break;
      case 'A':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
          break;
        return 6;	 // "APlusBMinusAplusC"
      case 'C':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
          break;
        return 7;	 // "APlusBMinusCPlusA"
      }
      break;
    case 'a':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
          break;
        return 16;	 // "add_p2i_to_ptradd"
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
          break;
        return 90;	 // "anyext_trunc_fold"
      }
      break;
    case 'c':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
          break;
        switch (RuleIdentifier[13]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
            break;
          return 111;	 // "canonicalize_fcmp"
        case 'i':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
            break;
          return 110;	 // "canonicalize_icmp"
        }
        break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
          break;
        return 172;	 // "constant_fold_fma"
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
        break;
      return 155;	 // "div_rem_to_divrem"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
        break;
      return 81;	 // "erase_undef_store"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
        break;
      return 151;	 // "ptr_add_with_zero"
    case 's':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
          break;
        return 124;	 // "select_to_iminmax"
      case 'h':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
          break;
        return 152;	 // "shift_immed_chain"
      }
      break;
    case 'u':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
          break;
        return 72;	 // "undef_to_int_zero"
      case 'r':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
          break;
        return 129;	 // "urem_pow2_to_mask"
      }
      break;
    }
    break;
  case 18:	 // 12 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "MinusBPlus", 10) != 0)
        break;
      switch (RuleIdentifier[11]) {
      default: break;
      case 'B':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
          break;
        return 5;	 // "AMinusBPlusBMinusC"
      case 'C':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
          break;
        return 4;	 // "AMinusBPlusCMinusA"
      }
      break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
        break;
      return 86;	 // "binop_left_to_zero"
    case 'c':	 // 4 strings to match.
      if (RuleIdentifier[1] != 'o')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
          break;
        switch (RuleIdentifier[8]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
            break;
          return 148;	 // "combine_minmax_nan"
        case 'o':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
            break;
          return 240;	 // "combine_or_s64_s32"
        }
        break;
      case 'n':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
          break;
        switch (RuleIdentifier[15]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
            break;
          return 136;	 // "constant_fold_fabs"
        case 'n':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
            break;
          return 135;	 // "constant_fold_fneg"
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
        break;
      return 149;	 // "expand_const_fpowi"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
        break;
      return 99;	 // "fptrunc_fpext_fold"
    case 's':	 // 2 strings to match.
      if (RuleIdentifier[1] != 'e')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'l':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
          break;
        return 56;	 // "select_of_truncate"
      case 'x':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
          break;
        return 119;	 // "sext_inreg_of_load"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
        break;
      return 45;	 // "truncate_of_anyext"
    }
    break;
  case 19:	 // 16 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
        break;
      return 87;	 // "binop_right_to_zero"
    case 'c':	 // 5 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
        break;
      switch (RuleIdentifier[5]) {
      default: break;
      case '_':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
          break;
        return 143;	 // "const_ptradd_to_i2p"
      case 'a':	 // 4 strings to match.
        if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
          break;
        switch (RuleIdentifier[14]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
            break;
          return 170;	 // "constant_fold_binop"
        case 'f':	 // 3 strings to match.
          switch (RuleIdentifier[15]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
              break;
            return 138;	 // "constant_fold_flog2"
          case 'p':	 // 1 string to match.
            if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
              break;
            return 140;	 // "constant_fold_fpext"
          case 's':	 // 1 string to match.
            if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
              break;
            return 137;	 // "constant_fold_fsqrt"
          }
          break;
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
        break;
      return 103;	 // "extend_through_phis"
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
        break;
      return 64;	 // "integer_of_truncate"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
        break;
      return 218;	 // "merge_of_x_and_zero"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
        break;
      return 109;	 // "ptr_add_immed_chain"
    case 'r':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
          break;
        return 108;	 // "reassoc_comm_binops"
      case 'i':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
          break;
        return 84;	 // "right_identity_zero"
      }
      break;
    case 's':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
          break;
        return 123;	 // "select_constant_cmp"
      case 'i':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
          break;
        switch (RuleIdentifier[9]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
            break;
          return 104;	 // "simplify_add_to_sub"
        case 'n':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
            break;
          return 201;	 // "simplify_neg_minmax"
        }
        break;
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
        break;
      return 76;	 // "unary_undef_to_zero"
    }
    break;
  case 20:	 // 8 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
        break;
      return 177;	 // "and_or_disjoint_mask"
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
        break;
      return 98;	 // "bitcast_bitcast_fold"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
        break;
      return 217;	 // "merge_of_x_and_undef"
    case 'r':	 // 3 strings to match.
      if (RuleIdentifier[1] != 'e')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'd':	 // 2 strings to match.
        if (RuleIdentifier[3] != 'u')
          break;
        switch (RuleIdentifier[4]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
            break;
          return 120;	 // "reduce_shl_of_extend"
        case 'n':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
            break;
          return 127;	 // "redundant_sext_inreg"
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
          break;
        return 232;	 // "remove_fcanonicalize"
      }
      break;
    case 'u':	 // 2 strings to match.
      if (RuleIdentifier[1] != 'n')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
          break;
        return 77;	 // "unary_undef_to_undef"
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
          break;
        return 216;	 // "unmerge_zext_to_zext"
      }
      break;
    }
    break;
  case 21:	 // 12 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 4 strings to match.
      if (RuleIdentifier[1] != 'o')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
          break;
        switch (RuleIdentifier[8]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
            break;
          return 219;	 // "combine_build_unmerge"
        case 'c':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
            break;
          return 202;	 // "combine_concat_vector"
        }
        break;
      case 'n':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
          break;
        switch (RuleIdentifier[14]) {
        default: break;
        case 'c':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
            break;
          return 173;	 // "constant_fold_cast_op"
        case 'f':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
            break;
          return 139;	 // "constant_fold_fptrunc"
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
        break;
      return 228;	 // "expand_promoted_fmed3"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
        break;
      return 193;	 // "fdiv_repeated_divison"
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
        break;
      return 24;	 // "insert_vector_elt_oob"
    case 'l':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
        break;
      return 226;	 // "lshr_of_trunc_of_lshr"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
        break;
      return 93;	 // "right_identity_one_fp"
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
        break;
      return 236;	 // "sign_extension_in_reg"
    case 'u':	 // 2 strings to match.
      if (RuleIdentifier[1] != 'n')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
          break;
        return 73;	 // "undef_to_negative_one"
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
          break;
        return 215;	 // "unmerge_dead_to_trunc"
      }
      break;
    }
    break;
  case 22:	 // 13 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (RuleIdentifier[1] != 'o')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
          break;
        return 206;	 // "combine_shuffle_concat"
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
          break;
        return 171;	 // "constant_fold_fp_binop"
      }
      break;
    case 'f':	 // 4 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
          break;
        return 186;	 // "fold_binop_into_select"
      case 'u':	 // 3 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
          break;
        switch (RuleIdentifier[13]) {
        default: break;
        case 'l':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
            break;
          return 159;	 // "funnel_shift_left_zero"
        case 'o':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
            break;
          return 160;	 // "funnel_shift_overshift"
        case 't':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
            break;
          return 157;	 // "funnel_shift_to_rotate"
        }
        break;
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
        break;
      return 113;	 // "icmp_to_lhs_known_bits"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
        break;
      return 221;	 // "match_subo_no_overflow"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
        break;
      return 78;	 // "propagate_undef_any_op"
    case 'r':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
          break;
        return 176;	 // "redundant_neg_operands"
      case 'i':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
          break;
        return 92;	 // "right_identity_one_int"
      }
      break;
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
        break;
      return 117;	 // "shl_ashr_to_sext_inreg"
    case 't':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
        break;
      return 96;	 // "trunc_buildvector_fold"
    }
    break;
  case 23:	 // 7 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
        break;
      return 57;	 // "buildvector_of_truncate"
    case 'f':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
          break;
        return 235;	 // "fdiv_by_sqrt_to_rsq_f16"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
          break;
        return 158;	 // "funnel_shift_right_zero"
      }
      break;
    case 'i':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
        break;
      switch (RuleIdentifier[21]) {
      default: break;
      case 's':	 // 1 string to match.
        if (RuleIdentifier[22] != 'i')
          break;
        return 141;	 // "itof_const_zero_fold_si"
      case 'u':	 // 1 string to match.
        if (RuleIdentifier[22] != 'i')
          break;
        return 142;	 // "itof_const_zero_fold_ui"
      }
      break;
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
        break;
      return 79;	 // "propagate_undef_all_ops"
    case 't':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
        break;
      return 225;	 // "truncusatu_to_fptouisat"
    }
    break;
  case 24:	 // 6 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
        break;
      return 74;	 // "binop_left_undef_to_zero"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
        break;
      return 23;	 // "match_extract_of_element"
    case 'n':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
        break;
      return 121;	 // "narrow_binop_feeding_and"
    case 's':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
        break;
      switch (RuleIdentifier[11]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
          break;
        return 53;	 // "sext_inreg_of_sext_inreg"
      case 't':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
          break;
        return 131;	 // "sext_inreg_to_zext_inreg"
      }
      break;
    case 'x':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
        break;
      return 150;	 // "xor_of_and_with_same_reg"
    }
    break;
  case 25:	 // 7 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'i':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
          break;
        switch (RuleIdentifier[22]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
            break;
          return 167;	 // "bitfield_extract_from_and"
        case 's':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
            break;
          return 168;	 // "bitfield_extract_from_shr"
        }
        break;
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
          break;
        return 95;	 // "buildvector_identity_fold"
      }
      break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
        break;
      return 207;	 // "combine_shuffle_undef_rhs"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
        break;
      return 66;	 // "extract_vec_elt_build_vec"
    case 'n':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
        break;
      return 118;	 // "neg_and_one_to_sext_inreg"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
        break;
      return 102;	 // "right_identity_neg_one_fp"
    }
    break;
  case 26:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
        break;
      return 75;	 // "binop_right_undef_to_undef"
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
        break;
      return 198;	 // "commute_fp_constant_to_rhs"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
        break;
      return 156;	 // "funnel_shift_from_or_shift"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
        break;
      return 100;	 // "right_identity_neg_zero_fp"
    }
    break;
  case 27:	 // 6 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
        break;
      switch (RuleIdentifier[3]) {
      default: break;
      case 'b':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
          break;
        return 209;	 // "combine_use_vector_truncate"
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
          break;
        return 197;	 // "commute_int_constant_to_rhs"
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
        break;
      return 115;	 // "double_icmp_zero_or_combine"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
        break;
      return 116;	 // "redundant_binop_in_equality"
    case 't':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
        break;
      return 97;	 // "trunc_lshr_buildvector_fold"
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
        break;
      return 210;	 // "unmerge_anyext_build_vector"
    }
    break;
  case 28:	 // 5 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
        break;
      return 238;	 // "combine_or_s64_with_s32_mask"
    case 'd':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
        break;
      return 114;	 // "double_icmp_zero_and_combine"
    case 'o':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
        break;
      return 134;	 // "opt_brcond_by_inverting_cond"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
        break;
      return 80;	 // "propagate_undef_shuffle_mask"
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
        break;
      return 153;	 // "shift_of_shifted_logic_chain"
    }
    break;
  case 29:	 // 5 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
        break;
      return 169;	 // "bitfield_extract_from_shr_and"
    case 'c':	 // 3 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
        break;
      switch (RuleIdentifier[8]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
          break;
        return 239;	 // "combine_and_s64_with_s32_mask"
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
          break;
        return 70;	 // "combine_extracted_vector_load"
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
          break;
        return 208;	 // "combine_shuffle_disjoint_mask"
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
        break;
      return 112;	 // "icmp_to_true_false_known_bits"
    }
    break;
  case 30:	 // 2 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
        break;
      return 41;	 // "freeze_of_non_undef_non_poison"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
        break;
      return 101;	 // "right_identity_neg_zero_fp_nsz"
    }
    break;
  case 31:	 // 3 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
        break;
      return 227;	 // "fcmp_select_to_fmin_fmax_legacy"
    case 'i':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
        break;
      switch (RuleIdentifier[22]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
          break;
        return 22;	 // "insert_vector_element_elt_undef"
      case 'i':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
          break;
        return 21;	 // "insert_vector_element_idx_undef"
      }
      break;
    }
    break;
  case 32:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
        break;
      return 166;	 // "bitfield_extract_from_sext_inreg"
    case 'c':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
        break;
      switch (RuleIdentifier[9]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
          break;
        return 178;	 // "combine_fadd_fmul_to_fmad_or_fma"
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
          break;
        return 182;	 // "combine_fsub_fmul_to_fmad_or_fma"
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
        break;
      return 25;	 // "extract_vector_element_not_const"
    }
    break;
  case 34:	 // 2 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
        break;
      return 229;	 // "combine_fmul_with_select_to_fldexp"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
        break;
      return 67;	 // "extract_all_elts_from_build_vector"
    }
    break;
  case 35:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
      break;
    return 27;	 // "extract_vector_element_build_vector"
  case 36:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
        break;
      switch (RuleIdentifier[8]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
          break;
        return 180;	 // "combine_fadd_fma_fmul_to_fmad_or_fma"
      case 'i':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
          break;
        return 65;	 // "combine_insert_vec_elts_build_vector"
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
        break;
      return 82;	 // "insert_extract_vec_elt_out_of_bounds"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
        break;
      return 20;	 // "match_extract_of_element_undef_index"
    }
    break;
  case 37:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
        break;
      return 183;	 // "combine_fsub_fneg_fmul_to_fmad_or_fma"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
        break;
      return 35;	 // "extract_vector_element_shuffle_vector"
    case 'h':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
        break;
      return 105;	 // "hoist_logic_op_with_same_opcode_hands"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
        break;
      return 19;	 // "match_extract_of_element_undef_vector"
    }
    break;
  case 38:	 // 2 strings to match.
    if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
      break;
    switch (RuleIdentifier[9]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
        break;
      return 179;	 // "combine_fadd_fpext_fmul_to_fmad_or_fma"
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
        break;
      return 184;	 // "combine_fsub_fpext_fmul_to_fmad_or_fma"
    }
    break;
  case 40:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
      break;
    return 26;	 // "extract_vector_element_different_indices"
  case 42:	 // 9 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
        break;
      return 181;	 // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
    case 'e':	 // 7 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
        break;
      switch (RuleIdentifier[41]) {
      default: break;
      case '2':	 // 1 string to match.
        return 28;	 // "extract_vector_element_build_vector_trunc2"
      case '3':	 // 1 string to match.
        return 29;	 // "extract_vector_element_build_vector_trunc3"
      case '4':	 // 1 string to match.
        return 30;	 // "extract_vector_element_build_vector_trunc4"
      case '5':	 // 1 string to match.
        return 31;	 // "extract_vector_element_build_vector_trunc5"
      case '6':	 // 1 string to match.
        return 32;	 // "extract_vector_element_build_vector_trunc6"
      case '7':	 // 1 string to match.
        return 33;	 // "extract_vector_element_build_vector_trunc7"
      case '8':	 // 1 string to match.
        return 34;	 // "extract_vector_element_build_vector_trunc8"
      }
      break;
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
        break;
      return 161;	 // "funnel_shift_or_shift_to_funnel_shift_left"
    }
    break;
  case 43:	 // 2 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
        break;
      return 185;	 // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
        break;
      return 162;	 // "funnel_shift_or_shift_to_funnel_shift_right"
    }
    break;
  case 44:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
      break;
    return 36;	 // "insert_vector_element_extract_vector_element"
  case 46:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
      break;
    return 42;	 // "push_freeze_to_prevent_poison_from_propagating"
  }
#endif // ifndef NDEBUG

  return std::nullopt;
}
static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
  std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
  if (!RangePair.second.empty()) {
    const auto First = getRuleIdxForIdentifier(RangePair.first);
    const auto Last = getRuleIdxForIdentifier(RangePair.second);
    if (!First || !Last)
      return std::nullopt;
    if (First >= Last)
      report_fatal_error("Beginning of range should be before end of range");
    return {{*First, *Last + 1}};
  }
  if (RangePair.first == "*") {
    return {{0, 241}};
  }
  const auto I = getRuleIdxForIdentifier(RangePair.first);
  if (!I)
    return std::nullopt;
  return {{*I, *I + 1}};
}

bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
  auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
  if (!MaybeRange)
    return false;
  for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
    DisabledRules.reset(I);
  return true;
}

bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
  auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
  if (!MaybeRange)
    return false;
  for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
    DisabledRules.set(I);
  return true;
}

static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
    "amdgpupostlegalizercombiner-disable-rule",
    cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
    cl::CommaSeparated,
    cl::Hidden,
    cl::cat(GICombinerOptionCategory),
    cl::callback([](const std::string &Str) {
      AMDGPUPostLegalizerCombinerOption.push_back(Str);
    }));
static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
    "amdgpupostlegalizercombiner-only-enable-rule",
    cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
    cl::Hidden,
    cl::cat(GICombinerOptionCategory),
    cl::callback([](const std::string &CommaSeparatedArg) {
      StringRef Str = CommaSeparatedArg;
      AMDGPUPostLegalizerCombinerOption.push_back("*");
      do {
        auto X = Str.split(",");
        AMDGPUPostLegalizerCombinerOption.push_back(("!" + X.first).str());
        Str = X.second;
      } while (!Str.empty());
    }));


bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
    return  !DisabledRules.test(RuleID);
}
bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
  for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
    bool Enabled = Identifier.consume_front("!");
    if (Enabled && !setRuleEnabled(Identifier))
      return false;
    if (!Enabled && !setRuleDisabled(Identifier))
      return false;
  }
  return true;
}

#endif // ifdef GET_GICOMBINER_TYPES

#ifdef GET_GICOMBINER_TYPES
const unsigned MAX_SUBTARGET_PREDICATES = 3;
using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
#endif // ifdef GET_GICOMBINER_TYPES

#ifdef GET_GICOMBINER_CLASS_MEMBERS
PredicateBitset AvailableModuleFeatures;
mutable PredicateBitset AvailableFunctionFeatures;
PredicateBitset getAvailableFeatures() const {
  return AvailableModuleFeatures | AvailableFunctionFeatures;
}
PredicateBitset
computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
PredicateBitset
computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
                                 const MachineFunction *MF) const;
void setupGeneratedPerFunctionState(MachineFunction &MF) override;
#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
#ifdef GET_GICOMBINER_CLASS_MEMBERS
  mutable MatcherState State;
  typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
  typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
  const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
  static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
  static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
  bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
  bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
  bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
  const uint8_t *getMatchTable() const override;
  bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
  bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
  bool testSimplePredicate(unsigned PredicateID) const override;
  bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS

#ifdef GET_GICOMBINER_IMPL
// LLT Objects.
enum {
  GILLT_s16,
  GILLT_s32,
  GILLT_s64,
};
const static size_t NumTypeObjects = 3;
const static LLT TypeObjects[] = {
  LLT::scalar(16),
  LLT::scalar(32),
  LLT::scalar(64),
};

// Bits for subtarget features that participate in instruction matching.
enum SubtargetFeatureBits : uint8_t {
  Feature_Has16BitInstsBit = 1,
  Feature_NotHasMed3_16Bit = 2,
  Feature_HasFminFmaxLegacyBit = 0,
};

PredicateBitset AMDGPUPostLegalizerCombinerImpl::
computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
  PredicateBitset Features{};
  if (Subtarget->has16BitInsts())
    Features.set(Feature_Has16BitInstsBit);
  if (!Subtarget->hasMed3_16())
    Features.set(Feature_NotHasMed3_16Bit);
  if (Subtarget->hasFminFmaxLegacy())
    Features.set(Feature_HasFminFmaxLegacyBit);
  return Features;
}

void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
  AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
}
PredicateBitset AMDGPUPostLegalizerCombinerImpl::
computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
  PredicateBitset Features{};
  return Features;
}

// Feature bitsets.
enum {
  GIFBS_Invalid,
  GIFBS_HasFminFmaxLegacy,
  GIFBS_Has16BitInsts_NotHasMed3_16,
};
constexpr static PredicateBitset FeatureBitsets[] {
  {}, // GIFBS_Invalid
  {Feature_HasFminFmaxLegacyBit, },
  {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
};

// ComplexPattern predicates.
enum {
  GICP_Invalid,
};
// See constructor for table contents

AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
  nullptr, // GICP_Invalid
};

enum {
  GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
  GICXXPred_MI_Predicate_GICombiner1,
  GICXXPred_MI_Predicate_GICombiner2,
  GICXXPred_MI_Predicate_GICombiner3,
  GICXXPred_MI_Predicate_GICombiner4,
  GICXXPred_MI_Predicate_GICombiner5,
  GICXXPred_MI_Predicate_GICombiner6,
  GICXXPred_MI_Predicate_GICombiner7,
  GICXXPred_MI_Predicate_GICombiner8,
  GICXXPred_MI_Predicate_GICombiner9,
  GICXXPred_MI_Predicate_GICombiner10,
  GICXXPred_MI_Predicate_GICombiner11,
  GICXXPred_MI_Predicate_GICombiner12,
  GICXXPred_MI_Predicate_GICombiner13,
};
bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
  switch (PredicateID) {
  case GICXXPred_MI_Predicate_GICombiner0: {
    return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
  }
  case GICXXPred_MI_Predicate_GICombiner1: {
    return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
  }
  case GICXXPred_MI_Predicate_GICombiner2: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
  }
  case GICXXPred_MI_Predicate_GICombiner3: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
  }
  case GICXXPred_MI_Predicate_GICombiner4: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
  }
  case GICXXPred_MI_Predicate_GICombiner5: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
  }
  case GICXXPred_MI_Predicate_GICombiner6: {
    return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
                               !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
                               (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
                                   MRI.getType(State.MIs[2]->getOperand(2).getReg()));
  }
  case GICXXPred_MI_Predicate_GICombiner7: {
    return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
                               !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
                               (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
                                   MRI.getType(State.MIs[2]->getOperand(2).getReg()));
  }
  case GICXXPred_MI_Predicate_GICombiner8: {
    return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
                    Helper.isLegalOrBeforeLegalizer(
                      {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
  }
  case GICXXPred_MI_Predicate_GICombiner9: {
    return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
                                                           {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
                                                            MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
  }
  case GICXXPred_MI_Predicate_GICombiner10: {
    return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
                                                           {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
                                                            MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
  }
  case GICXXPred_MI_Predicate_GICombiner11: {
    return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
  }
  case GICXXPred_MI_Predicate_GICombiner12: {
    return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
  }
  case GICXXPred_MI_Predicate_GICombiner13: {
    return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
                           Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
  }
  }
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
enum {
  GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
  GICXXPred_Simple_IsRule1Enabled,
  GICXXPred_Simple_IsRule2Enabled,
  GICXXPred_Simple_IsRule3Enabled,
  GICXXPred_Simple_IsRule4Enabled,
  GICXXPred_Simple_IsRule5Enabled,
  GICXXPred_Simple_IsRule6Enabled,
  GICXXPred_Simple_IsRule7Enabled,
  GICXXPred_Simple_IsRule8Enabled,
  GICXXPred_Simple_IsRule9Enabled,
  GICXXPred_Simple_IsRule10Enabled,
  GICXXPred_Simple_IsRule11Enabled,
  GICXXPred_Simple_IsRule12Enabled,
  GICXXPred_Simple_IsRule13Enabled,
  GICXXPred_Simple_IsRule14Enabled,
  GICXXPred_Simple_IsRule15Enabled,
  GICXXPred_Simple_IsRule16Enabled,
  GICXXPred_Simple_IsRule17Enabled,
  GICXXPred_Simple_IsRule18Enabled,
  GICXXPred_Simple_IsRule19Enabled,
  GICXXPred_Simple_IsRule20Enabled,
  GICXXPred_Simple_IsRule21Enabled,
  GICXXPred_Simple_IsRule22Enabled,
  GICXXPred_Simple_IsRule23Enabled,
  GICXXPred_Simple_IsRule24Enabled,
  GICXXPred_Simple_IsRule25Enabled,
  GICXXPred_Simple_IsRule26Enabled,
  GICXXPred_Simple_IsRule27Enabled,
  GICXXPred_Simple_IsRule28Enabled,
  GICXXPred_Simple_IsRule29Enabled,
  GICXXPred_Simple_IsRule30Enabled,
  GICXXPred_Simple_IsRule31Enabled,
  GICXXPred_Simple_IsRule32Enabled,
  GICXXPred_Simple_IsRule33Enabled,
  GICXXPred_Simple_IsRule34Enabled,
  GICXXPred_Simple_IsRule35Enabled,
  GICXXPred_Simple_IsRule36Enabled,
  GICXXPred_Simple_IsRule37Enabled,
  GICXXPred_Simple_IsRule38Enabled,
  GICXXPred_Simple_IsRule39Enabled,
  GICXXPred_Simple_IsRule40Enabled,
  GICXXPred_Simple_IsRule41Enabled,
  GICXXPred_Simple_IsRule42Enabled,
  GICXXPred_Simple_IsRule43Enabled,
  GICXXPred_Simple_IsRule44Enabled,
  GICXXPred_Simple_IsRule45Enabled,
  GICXXPred_Simple_IsRule46Enabled,
  GICXXPred_Simple_IsRule47Enabled,
  GICXXPred_Simple_IsRule48Enabled,
  GICXXPred_Simple_IsRule49Enabled,
  GICXXPred_Simple_IsRule50Enabled,
  GICXXPred_Simple_IsRule51Enabled,
  GICXXPred_Simple_IsRule52Enabled,
  GICXXPred_Simple_IsRule53Enabled,
  GICXXPred_Simple_IsRule54Enabled,
  GICXXPred_Simple_IsRule55Enabled,
  GICXXPred_Simple_IsRule56Enabled,
  GICXXPred_Simple_IsRule57Enabled,
  GICXXPred_Simple_IsRule58Enabled,
  GICXXPred_Simple_IsRule59Enabled,
  GICXXPred_Simple_IsRule60Enabled,
  GICXXPred_Simple_IsRule61Enabled,
  GICXXPred_Simple_IsRule62Enabled,
  GICXXPred_Simple_IsRule63Enabled,
  GICXXPred_Simple_IsRule64Enabled,
  GICXXPred_Simple_IsRule65Enabled,
  GICXXPred_Simple_IsRule66Enabled,
  GICXXPred_Simple_IsRule67Enabled,
  GICXXPred_Simple_IsRule68Enabled,
  GICXXPred_Simple_IsRule69Enabled,
  GICXXPred_Simple_IsRule70Enabled,
  GICXXPred_Simple_IsRule71Enabled,
  GICXXPred_Simple_IsRule72Enabled,
  GICXXPred_Simple_IsRule73Enabled,
  GICXXPred_Simple_IsRule74Enabled,
  GICXXPred_Simple_IsRule75Enabled,
  GICXXPred_Simple_IsRule76Enabled,
  GICXXPred_Simple_IsRule77Enabled,
  GICXXPred_Simple_IsRule78Enabled,
  GICXXPred_Simple_IsRule79Enabled,
  GICXXPred_Simple_IsRule80Enabled,
  GICXXPred_Simple_IsRule81Enabled,
  GICXXPred_Simple_IsRule82Enabled,
  GICXXPred_Simple_IsRule83Enabled,
  GICXXPred_Simple_IsRule84Enabled,
  GICXXPred_Simple_IsRule85Enabled,
  GICXXPred_Simple_IsRule86Enabled,
  GICXXPred_Simple_IsRule87Enabled,
  GICXXPred_Simple_IsRule88Enabled,
  GICXXPred_Simple_IsRule89Enabled,
  GICXXPred_Simple_IsRule90Enabled,
  GICXXPred_Simple_IsRule91Enabled,
  GICXXPred_Simple_IsRule92Enabled,
  GICXXPred_Simple_IsRule93Enabled,
  GICXXPred_Simple_IsRule94Enabled,
  GICXXPred_Simple_IsRule95Enabled,
  GICXXPred_Simple_IsRule96Enabled,
  GICXXPred_Simple_IsRule97Enabled,
  GICXXPred_Simple_IsRule98Enabled,
  GICXXPred_Simple_IsRule99Enabled,
  GICXXPred_Simple_IsRule100Enabled,
  GICXXPred_Simple_IsRule101Enabled,
  GICXXPred_Simple_IsRule102Enabled,
  GICXXPred_Simple_IsRule103Enabled,
  GICXXPred_Simple_IsRule104Enabled,
  GICXXPred_Simple_IsRule105Enabled,
  GICXXPred_Simple_IsRule106Enabled,
  GICXXPred_Simple_IsRule107Enabled,
  GICXXPred_Simple_IsRule108Enabled,
  GICXXPred_Simple_IsRule109Enabled,
  GICXXPred_Simple_IsRule110Enabled,
  GICXXPred_Simple_IsRule111Enabled,
  GICXXPred_Simple_IsRule112Enabled,
  GICXXPred_Simple_IsRule113Enabled,
  GICXXPred_Simple_IsRule114Enabled,
  GICXXPred_Simple_IsRule115Enabled,
  GICXXPred_Simple_IsRule116Enabled,
  GICXXPred_Simple_IsRule117Enabled,
  GICXXPred_Simple_IsRule118Enabled,
  GICXXPred_Simple_IsRule119Enabled,
  GICXXPred_Simple_IsRule120Enabled,
  GICXXPred_Simple_IsRule121Enabled,
  GICXXPred_Simple_IsRule122Enabled,
  GICXXPred_Simple_IsRule123Enabled,
  GICXXPred_Simple_IsRule124Enabled,
  GICXXPred_Simple_IsRule125Enabled,
  GICXXPred_Simple_IsRule126Enabled,
  GICXXPred_Simple_IsRule127Enabled,
  GICXXPred_Simple_IsRule128Enabled,
  GICXXPred_Simple_IsRule129Enabled,
  GICXXPred_Simple_IsRule130Enabled,
  GICXXPred_Simple_IsRule131Enabled,
  GICXXPred_Simple_IsRule132Enabled,
  GICXXPred_Simple_IsRule133Enabled,
  GICXXPred_Simple_IsRule134Enabled,
  GICXXPred_Simple_IsRule135Enabled,
  GICXXPred_Simple_IsRule136Enabled,
  GICXXPred_Simple_IsRule137Enabled,
  GICXXPred_Simple_IsRule138Enabled,
  GICXXPred_Simple_IsRule139Enabled,
  GICXXPred_Simple_IsRule140Enabled,
  GICXXPred_Simple_IsRule141Enabled,
  GICXXPred_Simple_IsRule142Enabled,
  GICXXPred_Simple_IsRule143Enabled,
  GICXXPred_Simple_IsRule144Enabled,
  GICXXPred_Simple_IsRule145Enabled,
  GICXXPred_Simple_IsRule146Enabled,
  GICXXPred_Simple_IsRule147Enabled,
  GICXXPred_Simple_IsRule148Enabled,
  GICXXPred_Simple_IsRule149Enabled,
  GICXXPred_Simple_IsRule150Enabled,
  GICXXPred_Simple_IsRule151Enabled,
  GICXXPred_Simple_IsRule152Enabled,
  GICXXPred_Simple_IsRule153Enabled,
  GICXXPred_Simple_IsRule154Enabled,
  GICXXPred_Simple_IsRule155Enabled,
  GICXXPred_Simple_IsRule156Enabled,
  GICXXPred_Simple_IsRule157Enabled,
  GICXXPred_Simple_IsRule158Enabled,
  GICXXPred_Simple_IsRule159Enabled,
  GICXXPred_Simple_IsRule160Enabled,
  GICXXPred_Simple_IsRule161Enabled,
  GICXXPred_Simple_IsRule162Enabled,
  GICXXPred_Simple_IsRule163Enabled,
  GICXXPred_Simple_IsRule164Enabled,
  GICXXPred_Simple_IsRule165Enabled,
  GICXXPred_Simple_IsRule166Enabled,
  GICXXPred_Simple_IsRule167Enabled,
  GICXXPred_Simple_IsRule168Enabled,
  GICXXPred_Simple_IsRule169Enabled,
  GICXXPred_Simple_IsRule170Enabled,
  GICXXPred_Simple_IsRule171Enabled,
  GICXXPred_Simple_IsRule172Enabled,
  GICXXPred_Simple_IsRule173Enabled,
  GICXXPred_Simple_IsRule174Enabled,
  GICXXPred_Simple_IsRule175Enabled,
  GICXXPred_Simple_IsRule176Enabled,
  GICXXPred_Simple_IsRule177Enabled,
  GICXXPred_Simple_IsRule178Enabled,
  GICXXPred_Simple_IsRule179Enabled,
  GICXXPred_Simple_IsRule180Enabled,
  GICXXPred_Simple_IsRule181Enabled,
  GICXXPred_Simple_IsRule182Enabled,
  GICXXPred_Simple_IsRule183Enabled,
  GICXXPred_Simple_IsRule184Enabled,
  GICXXPred_Simple_IsRule185Enabled,
  GICXXPred_Simple_IsRule186Enabled,
  GICXXPred_Simple_IsRule187Enabled,
  GICXXPred_Simple_IsRule188Enabled,
  GICXXPred_Simple_IsRule189Enabled,
  GICXXPred_Simple_IsRule190Enabled,
  GICXXPred_Simple_IsRule191Enabled,
  GICXXPred_Simple_IsRule192Enabled,
  GICXXPred_Simple_IsRule193Enabled,
  GICXXPred_Simple_IsRule194Enabled,
  GICXXPred_Simple_IsRule195Enabled,
  GICXXPred_Simple_IsRule196Enabled,
  GICXXPred_Simple_IsRule197Enabled,
  GICXXPred_Simple_IsRule198Enabled,
  GICXXPred_Simple_IsRule199Enabled,
  GICXXPred_Simple_IsRule200Enabled,
  GICXXPred_Simple_IsRule201Enabled,
  GICXXPred_Simple_IsRule202Enabled,
  GICXXPred_Simple_IsRule203Enabled,
  GICXXPred_Simple_IsRule204Enabled,
  GICXXPred_Simple_IsRule205Enabled,
  GICXXPred_Simple_IsRule206Enabled,
  GICXXPred_Simple_IsRule207Enabled,
  GICXXPred_Simple_IsRule208Enabled,
  GICXXPred_Simple_IsRule209Enabled,
  GICXXPred_Simple_IsRule210Enabled,
  GICXXPred_Simple_IsRule211Enabled,
  GICXXPred_Simple_IsRule212Enabled,
  GICXXPred_Simple_IsRule213Enabled,
  GICXXPred_Simple_IsRule214Enabled,
  GICXXPred_Simple_IsRule215Enabled,
  GICXXPred_Simple_IsRule216Enabled,
  GICXXPred_Simple_IsRule217Enabled,
  GICXXPred_Simple_IsRule218Enabled,
  GICXXPred_Simple_IsRule219Enabled,
  GICXXPred_Simple_IsRule220Enabled,
  GICXXPred_Simple_IsRule221Enabled,
  GICXXPred_Simple_IsRule222Enabled,
  GICXXPred_Simple_IsRule223Enabled,
  GICXXPred_Simple_IsRule224Enabled,
  GICXXPred_Simple_IsRule225Enabled,
  GICXXPred_Simple_IsRule226Enabled,
  GICXXPred_Simple_IsRule227Enabled,
  GICXXPred_Simple_IsRule228Enabled,
  GICXXPred_Simple_IsRule229Enabled,
  GICXXPred_Simple_IsRule230Enabled,
  GICXXPred_Simple_IsRule231Enabled,
  GICXXPred_Simple_IsRule232Enabled,
  GICXXPred_Simple_IsRule233Enabled,
  GICXXPred_Simple_IsRule234Enabled,
  GICXXPred_Simple_IsRule235Enabled,
  GICXXPred_Simple_IsRule236Enabled,
  GICXXPred_Simple_IsRule237Enabled,
  GICXXPred_Simple_IsRule238Enabled,
  GICXXPred_Simple_IsRule239Enabled,
  GICXXPred_Simple_IsRule240Enabled,
};

bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
    return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
}
// Custom renderers.
enum {
  GICR_Invalid,
};
AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
  nullptr, // GICR_Invalid
};

bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
  const TargetSubtargetInfo &ST = MF.getSubtarget();
  const PredicateBitset AvailableFeatures = getAvailableFeatures();
  B.setInstrAndDebugLoc(I);
  State.MIs.clear();
  State.MIs.push_back(&I);
  if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
    return true;
  }

  return false;
}

enum {
  GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
  GICXXCustomAction_GICombiner1,
  GICXXCustomAction_GICombiner2,
  GICXXCustomAction_GICombiner3,
  GICXXCustomAction_GICombiner4,
  GICXXCustomAction_GICombiner5,
  GICXXCustomAction_GICombiner6,
  GICXXCustomAction_GICombiner7,
  GICXXCustomAction_GICombiner8,
  GICXXCustomAction_GICombiner9,
  GICXXCustomAction_GICombiner10,
  GICXXCustomAction_GICombiner11,
  GICXXCustomAction_GICombiner12,
  GICXXCustomAction_GICombiner13,
  GICXXCustomAction_GICombiner14,
  GICXXCustomAction_GICombiner15,
  GICXXCustomAction_GICombiner16,
  GICXXCustomAction_GICombiner17,
  GICXXCustomAction_GICombiner18,
  GICXXCustomAction_GICombiner19,
  GICXXCustomAction_GICombiner20,
  GICXXCustomAction_GICombiner21,
  GICXXCustomAction_GICombiner22,
  GICXXCustomAction_GICombiner23,
  GICXXCustomAction_GICombiner24,
  GICXXCustomAction_GICombiner25,
  GICXXCustomAction_GICombiner26,
  GICXXCustomAction_GICombiner27,
  GICXXCustomAction_GICombiner28,
  GICXXCustomAction_GICombiner29,
  GICXXCustomAction_GICombiner30,
  GICXXCustomAction_GICombiner31,
  GICXXCustomAction_GICombiner32,
  GICXXCustomAction_GICombiner33,
  GICXXCustomAction_GICombiner34,
  GICXXCustomAction_GICombiner35,
  GICXXCustomAction_GICombiner36,
  GICXXCustomAction_GICombiner37,
  GICXXCustomAction_GICombiner38,
  GICXXCustomAction_GICombiner39,
  GICXXCustomAction_GICombiner40,
  GICXXCustomAction_GICombiner41,
  GICXXCustomAction_GICombiner42,
  GICXXCustomAction_GICombiner43,
  GICXXCustomAction_GICombiner44,
  GICXXCustomAction_GICombiner45,
  GICXXCustomAction_GICombiner46,
  GICXXCustomAction_GICombiner47,
  GICXXCustomAction_GICombiner48,
  GICXXCustomAction_GICombiner49,
  GICXXCustomAction_GICombiner50,
  GICXXCustomAction_GICombiner51,
  GICXXCustomAction_GICombiner52,
  GICXXCustomAction_GICombiner53,
  GICXXCustomAction_GICombiner54,
  GICXXCustomAction_GICombiner55,
  GICXXCustomAction_GICombiner56,
  GICXXCustomAction_GICombiner57,
  GICXXCustomAction_GICombiner58,
  GICXXCustomAction_GICombiner59,
  GICXXCustomAction_GICombiner60,
  GICXXCustomAction_GICombiner61,
  GICXXCustomAction_GICombiner62,
  GICXXCustomAction_GICombiner63,
  GICXXCustomAction_GICombiner64,
  GICXXCustomAction_GICombiner65,
  GICXXCustomAction_GICombiner66,
  GICXXCustomAction_GICombiner67,
  GICXXCustomAction_GICombiner68,
  GICXXCustomAction_GICombiner69,
  GICXXCustomAction_GICombiner70,
  GICXXCustomAction_GICombiner71,
  GICXXCustomAction_GICombiner72,
  GICXXCustomAction_GICombiner73,
  GICXXCustomAction_GICombiner74,
  GICXXCustomAction_GICombiner75,
  GICXXCustomAction_GICombiner76,
  GICXXCustomAction_GICombiner77,
  GICXXCustomAction_GICombiner78,
  GICXXCustomAction_GICombiner79,
  GICXXCustomAction_GICombiner80,
  GICXXCustomAction_GICombiner81,
  GICXXCustomAction_GICombiner82,
  GICXXCustomAction_GICombiner83,
  GICXXCustomAction_GICombiner84,
  GICXXCustomAction_GICombiner85,
  GICXXCustomAction_GICombiner86,
  GICXXCustomAction_GICombiner87,
  GICXXCustomAction_GICombiner88,
  GICXXCustomAction_GICombiner89,
  GICXXCustomAction_GICombiner90,
  GICXXCustomAction_GICombiner91,
  GICXXCustomAction_GICombiner92,
  GICXXCustomAction_GICombiner93,
  GICXXCustomAction_GICombiner94,
  GICXXCustomAction_GICombiner95,
  GICXXCustomAction_GICombiner96,
  GICXXCustomAction_GICombiner97,
  GICXXCustomAction_GICombiner98,
  GICXXCustomAction_GICombiner99,
  GICXXCustomAction_GICombiner100,
  GICXXCustomAction_GICombiner101,
  GICXXCustomAction_GICombiner102,
  GICXXCustomAction_GICombiner103,
  GICXXCustomAction_GICombiner104,
  GICXXCustomAction_GICombiner105,
  GICXXCustomAction_GICombiner106,
  GICXXCustomAction_GICombiner107,
  GICXXCustomAction_GICombiner108,
  GICXXCustomAction_GICombiner109,
  GICXXCustomAction_GICombiner110,
  GICXXCustomAction_GICombiner111,
  GICXXCustomAction_GICombiner112,
  GICXXCustomAction_GICombiner113,
  GICXXCustomAction_GICombiner114,
  GICXXCustomAction_GICombiner115,
  GICXXCustomAction_GICombiner116,
  GICXXCustomAction_GICombiner117,
  GICXXCustomAction_GICombiner118,
  GICXXCustomAction_GICombiner119,
  GICXXCustomAction_GICombiner120,
  GICXXCustomAction_GICombiner121,
  GICXXCustomAction_GICombiner122,
  GICXXCustomAction_GICombiner123,
  GICXXCustomAction_GICombiner124,
  GICXXCustomAction_GICombiner125,
  GICXXCustomAction_GICombiner126,
  GICXXCustomAction_GICombiner127,
  GICXXCustomAction_GICombiner128,
  GICXXCustomAction_GICombiner129,
  GICXXCustomAction_GICombiner130,
  GICXXCustomAction_GICombiner131,
  GICXXCustomAction_GICombiner132,
  GICXXCustomAction_GICombiner133,
  GICXXCustomAction_GICombiner134,
  GICXXCustomAction_GICombiner135,
  GICXXCustomAction_GICombiner136,
  GICXXCustomAction_GICombiner137,
  GICXXCustomAction_GICombiner138,
  GICXXCustomAction_GICombiner139,
  GICXXCustomAction_GICombiner140,
  GICXXCustomAction_GICombiner141,
  GICXXCustomAction_GICombiner142,
  GICXXCustomAction_GICombiner143,
  GICXXCustomAction_GICombiner144,
  GICXXCustomAction_GICombiner145,
  GICXXCustomAction_GICombiner146,
  GICXXCustomAction_GICombiner147,
  GICXXCustomAction_GICombiner148,
  GICXXCustomAction_GICombiner149,
  GICXXCustomAction_GICombiner150,
  GICXXCustomAction_GICombiner151,
  GICXXCustomAction_GICombiner152,
  GICXXCustomAction_GICombiner153,
  GICXXCustomAction_GICombiner154,
  GICXXCustomAction_GICombiner155,
  GICXXCustomAction_GICombiner156,
  GICXXCustomAction_GICombiner157,
  GICXXCustomAction_GICombiner158,
  GICXXCustomAction_GICombiner159,
  GICXXCustomAction_GICombiner160,
  GICXXCustomAction_GICombiner161,
  GICXXCustomAction_GICombiner162,
  GICXXCustomAction_GICombiner163,
  GICXXCustomAction_GICombiner164,
  GICXXCustomAction_GICombiner165,
  GICXXCustomAction_GICombiner166,
};
bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
  Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
  switch(ApplyID) {
  case GICXXCustomAction_GICombiner0:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner1:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner2:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner3:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner4:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner5:{
    // Match Patterns
    if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineCopy(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner6:{
    unsigned GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner7:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner8:{
    std::pair<Register, bool> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner9:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner10:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner11:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner12:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
              GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner13:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner14:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
              GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner15:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner16:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner17:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner18:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner19:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner20:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner21:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner22:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner23:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner24:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner25:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner26:{
    APInt GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner27:{
    SmallVector<Register> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner28:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner29:{
    SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner30:{
    PreferredTuple GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner31:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner32:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner33:{
    // Match Patterns
    if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
    return true;
  }
  case GICXXCustomAction_GICombiner34:{
    // Match Patterns
    if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], 0);
    return true;
  }
  case GICXXCustomAction_GICombiner35:{
    // Match Patterns
    if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], -1);
    return true;
  }
  case GICXXCustomAction_GICombiner36:{
    // Match Patterns
    if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], 0);
    return true;
  }
  case GICXXCustomAction_GICombiner37:{
    // Match Patterns
    if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithUndef(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner38:{
    // Apply Patterns
    Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
    return true;
  }
  case GICXXCustomAction_GICombiner39:{
    // Match Patterns
    if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithUndef(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner40:{
    // Match Patterns
    if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithUndef(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner41:{
    // Match Patterns
    if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithUndef(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner42:{
    // Match Patterns
    if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.eraseInst(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner43:{
    // Match Patterns
    if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithUndef(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner44:{
    // Match Patterns
    if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
    return true;
  }
  case GICXXCustomAction_GICombiner45:{
    // Match Patterns
    if(![&](){return Helper.matchOperandIsZero(*State.MIs[0], 1);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
    return true;
  }
  case GICXXCustomAction_GICombiner46:{
    Register GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner47:{
    Register GIMatchData_info;
    // Match Patterns
    if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner48:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner49:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner50:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner51:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner52:{
    // Match Patterns
    if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
    return true;
  }
  case GICXXCustomAction_GICombiner53:{
    MachineInstr* GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner54:{
    std::tuple<Register, Register> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner55:{
    InstructionStepsMatchInfo GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner56:{
    std::optional<int64_t> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    if (GIMatchData_matchinfo) {
              Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
            } else {
              Helper.replaceInstWithUndef(*State.MIs[0]);
            }
    return true;
  }
  case GICXXCustomAction_GICombiner57:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner58:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner59:{
    PtrAddChain GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner60:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner61:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner62:{
    int64_t GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner63:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner64:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner65:{
    std::tuple<Register, int64_t> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner66:{
    std::tuple<Register, unsigned> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner67:{
    RegisterImmPair GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner68:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner69:{
    unsigned GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner70:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner71:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner72:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner73:{
    // Match Patterns
    if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
    return true;
  }
  case GICXXCustomAction_GICombiner74:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner75:{
    // Match Patterns
    if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applySimplifyURemByPow2(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner76:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner77:{
    // Match Patterns
    if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
                return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
                         APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
      return false;
    }
    // Apply Patterns
    Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
              Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
              State.MIs[0]->eraseFromParent();
    return true;
  }
  case GICXXCustomAction_GICombiner78:{
    std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner79:{
    SmallVector<Register> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner80:{
    MachineInstr * GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner81:{
    // Apply Patterns
    Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
    return true;
  }
  case GICXXCustomAction_GICombiner82:{
    // Apply Patterns
    Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
    return true;
  }
  case GICXXCustomAction_GICombiner83:{
    APInt GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner84:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner85:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner86:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner87:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner88:{
    unsigned GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner89:{
    // Match Patterns
    if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
    return true;
  }
  case GICXXCustomAction_GICombiner90:{
    std::pair<Register, Register> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner91:{
    // Match Patterns
    if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyPtrAddZero(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner92:{
    RegisterImmPair GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner93:{
    ShiftOfShiftedLogic GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner94:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner95:{
    MachineInstr * GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner96:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner97:{
    // Match Patterns
    if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyFunnelShiftToRotate(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner98:{
    // Match Patterns
    if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner99:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner100:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner101:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner102:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner103:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner104:{
    APInt GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner105:{
    ConstantFP* GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner106:{
    ConstantFP* GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner107:{
    APInt GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner108:{
    // Match Patterns
    if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyUMulHToLShr(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner109:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner110:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner111:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
                                                                  GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner112:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
                                                                       GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner113:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
                                                                     GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner114:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
                                                          *State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner115:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
                                                                  GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner116:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
                                                                      GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner117:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
                                                                       GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner118:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
                                                    *State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner119:{
    unsigned GIMatchData_select_op_no;
    // Match Patterns
    if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
    return true;
  }
  case GICXXCustomAction_GICombiner120:{
    // Match Patterns
    if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyUDivOrURemByConst(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner121:{
    // Match Patterns
    if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applySDivOrSRemByConst(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner122:{
    // Match Patterns
    if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyUDivByPow2(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner123:{
    // Match Patterns
    if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applySDivByPow2(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner124:{
    SmallVector<MachineInstr *> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner125:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner126:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner127:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner128:{
    // Match Patterns
    if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCommuteBinOpOperands(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner129:{
    // Match Patterns
    if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCommuteBinOpOperands(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner130:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner131:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner132:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner133:{
    SmallVector<Register> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner134:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner135:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner136:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner137:{
    SmallVector<Register> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner138:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner139:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner140:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner141:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner142:{
    SmallVector<Register> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner143:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineMergeUnmerge(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner144:{
    SmallVector<APInt, 8> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner145:{
    std::function<void(MachineIRBuilder &)> GIMatchData_info;
    // Match Patterns
    if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
    return true;
  }
  case GICXXCustomAction_GICombiner146:{
    // Match Patterns
    if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner147:{
    // Match Patterns
    if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner148:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner149:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner150:{
    Register GIMatchData_unmergeSrc;
    // Match Patterns
    if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
    return true;
  }
  case GICXXCustomAction_GICombiner151:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner152:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner153:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner154:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner155:{
    LshrOfTruncOfLshr GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner156:{
    FMinFMaxLegacyInfo GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner157:{
    // Match Patterns
    if(![&](){return Helper.matchExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
    return true;
  }
  case GICXXCustomAction_GICombiner158:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner159:{
    // Match Patterns
    if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    applyUCharToFloat(*State.MIs[0]);
    return true;
  }
  case GICXXCustomAction_GICombiner160:{
    CvtF32UByteMatchInfo GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner161:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner162:{
    MachineInstr * GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner163:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner164:{
    // Match Patterns
    if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
      return false;
    }
    // Apply Patterns
    applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
    return true;
  }
  case GICXXCustomAction_GICombiner165:{
    std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner166:{
    unsigned GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  }
  llvm_unreachable("Unknown Apply Action");
}
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24),  uint8_t(uint64_t(Val) >> 32), uint8_t(uint64_t(Val) >> 40), uint8_t(uint64_t(Val) >> 48), uint8_t(uint64_t(Val) >> 56)
#else
#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
#define GIMT_Encode8(Val) uint8_t(uint64_t(Val) >> 56), uint8_t(uint64_t(Val) >> 48), uint8_t(uint64_t(Val) >> 40), uint8_t(uint64_t(Val) >> 32),  uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
#endif
const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
  constexpr static uint8_t MatchTable0[] = {
     /*     0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(4017), /*)*//*default:*//*Label 102*/ GIMT_Encode4(23086),
     /*    10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(15998), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(16010),
     /*   154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(16567),
     /*   158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(16885),
     /*   162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(17062),
     /*   166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(17135),
     /*   170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(17219),
     /*   174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(17275), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(17353),
     /*   190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(17748),
     /*   194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(18469), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(18570), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(18582), GIMT_Encode4(0),
     /*   258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(18649),
     /*   262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(18723),
     /*   266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(18788),
     /*   270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(18800),
     /*   274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(18812),
     /*   278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(18855),
     /*   282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(18888),
     /*   286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(18931), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   326 */ /*TargetOpcode::G_LOAD*//*Label 21*/ GIMT_Encode4(18995),
     /*   330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 22*/ GIMT_Encode4(19007),
     /*   334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 23*/ GIMT_Encode4(19019), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   350 */ /*TargetOpcode::G_STORE*//*Label 24*/ GIMT_Encode4(19031), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   470 */ /*TargetOpcode::G_INTRINSIC*//*Label 25*/ GIMT_Encode4(19043), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   486 */ /*TargetOpcode::G_ANYEXT*//*Label 26*/ GIMT_Encode4(19055),
     /*   490 */ /*TargetOpcode::G_TRUNC*//*Label 27*/ GIMT_Encode4(19183), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   502 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 28*/ GIMT_Encode4(19595), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   522 */ /*TargetOpcode::G_SEXT*//*Label 29*/ GIMT_Encode4(19628),
     /*   526 */ /*TargetOpcode::G_SEXT_INREG*//*Label 30*/ GIMT_Encode4(19703),
     /*   530 */ /*TargetOpcode::G_ZEXT*//*Label 31*/ GIMT_Encode4(19780),
     /*   534 */ /*TargetOpcode::G_SHL*//*Label 32*/ GIMT_Encode4(19910),
     /*   538 */ /*TargetOpcode::G_LSHR*//*Label 33*/ GIMT_Encode4(20079),
     /*   542 */ /*TargetOpcode::G_ASHR*//*Label 34*/ GIMT_Encode4(20231),
     /*   546 */ /*TargetOpcode::G_FSHL*//*Label 35*/ GIMT_Encode4(20365),
     /*   550 */ /*TargetOpcode::G_FSHR*//*Label 36*/ GIMT_Encode4(20408),
     /*   554 */ /*TargetOpcode::G_ROTR*//*Label 37*/ GIMT_Encode4(20451),
     /*   558 */ /*TargetOpcode::G_ROTL*//*Label 38*/ GIMT_Encode4(20475),
     /*   562 */ /*TargetOpcode::G_ICMP*//*Label 39*/ GIMT_Encode4(20499),
     /*   566 */ /*TargetOpcode::G_FCMP*//*Label 40*/ GIMT_Encode4(20544), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   578 */ /*TargetOpcode::G_SELECT*//*Label 41*/ GIMT_Encode4(20556),
     /*   582 */ /*TargetOpcode::G_UADDO*//*Label 42*/ GIMT_Encode4(20678),
     /*   586 */ /*TargetOpcode::G_UADDE*//*Label 43*/ GIMT_Encode4(20701),
     /*   590 */ /*TargetOpcode::G_USUBO*//*Label 44*/ GIMT_Encode4(20713),
     /*   594 */ /*TargetOpcode::G_USUBE*//*Label 45*/ GIMT_Encode4(20725),
     /*   598 */ /*TargetOpcode::G_SADDO*//*Label 46*/ GIMT_Encode4(20737),
     /*   602 */ /*TargetOpcode::G_SADDE*//*Label 47*/ GIMT_Encode4(20760),
     /*   606 */ /*TargetOpcode::G_SSUBO*//*Label 48*/ GIMT_Encode4(20772),
     /*   610 */ /*TargetOpcode::G_SSUBE*//*Label 49*/ GIMT_Encode4(20784),
     /*   614 */ /*TargetOpcode::G_UMULO*//*Label 50*/ GIMT_Encode4(20796),
     /*   618 */ /*TargetOpcode::G_SMULO*//*Label 51*/ GIMT_Encode4(20830),
     /*   622 */ /*TargetOpcode::G_UMULH*//*Label 52*/ GIMT_Encode4(20864),
     /*   626 */ /*TargetOpcode::G_SMULH*//*Label 53*/ GIMT_Encode4(20887),
     /*   630 */ /*TargetOpcode::G_UADDSAT*//*Label 54*/ GIMT_Encode4(20899),
     /*   634 */ /*TargetOpcode::G_SADDSAT*//*Label 55*/ GIMT_Encode4(20911), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   646 */ /*TargetOpcode::G_USHLSAT*//*Label 56*/ GIMT_Encode4(20923),
     /*   650 */ /*TargetOpcode::G_SSHLSAT*//*Label 57*/ GIMT_Encode4(20946),
     /*   654 */ /*TargetOpcode::G_SMULFIX*//*Label 58*/ GIMT_Encode4(20969),
     /*   658 */ /*TargetOpcode::G_UMULFIX*//*Label 59*/ GIMT_Encode4(20981),
     /*   662 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 60*/ GIMT_Encode4(20993),
     /*   666 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 61*/ GIMT_Encode4(21005), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   686 */ /*TargetOpcode::G_FADD*//*Label 62*/ GIMT_Encode4(21017),
     /*   690 */ /*TargetOpcode::G_FSUB*//*Label 63*/ GIMT_Encode4(21158),
     /*   694 */ /*TargetOpcode::G_FMUL*//*Label 64*/ GIMT_Encode4(21247),
     /*   698 */ /*TargetOpcode::G_FMA*//*Label 65*/ GIMT_Encode4(21356),
     /*   702 */ /*TargetOpcode::G_FMAD*//*Label 66*/ GIMT_Encode4(21379),
     /*   706 */ /*TargetOpcode::G_FDIV*//*Label 67*/ GIMT_Encode4(21402),
     /*   710 */ /*TargetOpcode::G_FREM*//*Label 68*/ GIMT_Encode4(21486), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   722 */ /*TargetOpcode::G_FPOWI*//*Label 69*/ GIMT_Encode4(21498), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   742 */ /*TargetOpcode::G_FLOG2*//*Label 70*/ GIMT_Encode4(21520), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   758 */ /*TargetOpcode::G_FNEG*//*Label 71*/ GIMT_Encode4(21542),
     /*   762 */ /*TargetOpcode::G_FPEXT*//*Label 72*/ GIMT_Encode4(21604),
     /*   766 */ /*TargetOpcode::G_FPTRUNC*//*Label 73*/ GIMT_Encode4(21626),
     /*   770 */ /*TargetOpcode::G_FPTOSI*//*Label 74*/ GIMT_Encode4(21693),
     /*   774 */ /*TargetOpcode::G_FPTOUI*//*Label 75*/ GIMT_Encode4(21715),
     /*   778 */ /*TargetOpcode::G_SITOFP*//*Label 76*/ GIMT_Encode4(21737),
     /*   782 */ /*TargetOpcode::G_UITOFP*//*Label 77*/ GIMT_Encode4(21775), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   794 */ /*TargetOpcode::G_FABS*//*Label 78*/ GIMT_Encode4(21813), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   806 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 79*/ GIMT_Encode4(21892),
     /*   810 */ /*TargetOpcode::G_FMINNUM*//*Label 80*/ GIMT_Encode4(21933),
     /*   814 */ /*TargetOpcode::G_FMAXNUM*//*Label 81*/ GIMT_Encode4(21967),
     /*   818 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 82*/ GIMT_Encode4(22001),
     /*   822 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 83*/ GIMT_Encode4(22013),
     /*   826 */ /*TargetOpcode::G_FMINIMUM*//*Label 84*/ GIMT_Encode4(22025),
     /*   830 */ /*TargetOpcode::G_FMAXIMUM*//*Label 85*/ GIMT_Encode4(22059), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   874 */ /*TargetOpcode::G_PTR_ADD*//*Label 86*/ GIMT_Encode4(22093), GIMT_Encode4(0),
     /*   882 */ /*TargetOpcode::G_SMIN*//*Label 87*/ GIMT_Encode4(22183),
     /*   886 */ /*TargetOpcode::G_SMAX*//*Label 88*/ GIMT_Encode4(22217),
     /*   890 */ /*TargetOpcode::G_UMIN*//*Label 89*/ GIMT_Encode4(22251),
     /*   894 */ /*TargetOpcode::G_UMAX*//*Label 90*/ GIMT_Encode4(22285),
     /*   898 */ /*TargetOpcode::G_ABS*//*Label 91*/ GIMT_Encode4(22319), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   910 */ /*TargetOpcode::G_BR*//*Label 92*/ GIMT_Encode4(22331), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   930 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 93*/ GIMT_Encode4(22343),
     /*   934 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 94*/ GIMT_Encode4(22473),
     /*   938 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 95*/ GIMT_Encode4(22850), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*   978 */ /*TargetOpcode::G_BITREVERSE*//*Label 96*/ GIMT_Encode4(22916), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  1030 */ /*TargetOpcode::G_FSQRT*//*Label 97*/ GIMT_Encode4(23005), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /* 15982 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 98*/ GIMT_Encode4(23038),
     /* 15986 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 99*/ GIMT_Encode4(23050),
     /* 15990 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 100*/ GIMT_Encode4(23062),
     /* 15994 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 101*/ GIMT_Encode4(23074),
     /* 15998 */ // Label 0: @15998
     /* 15998 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(16009), // Rule ID 13 //
     /* 16003 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
     /* 16006 */   // MIs[0] d
     /* 16006 */   // No operand predicates
     /* 16006 */   // MIs[0] s
     /* 16006 */   // No operand predicates
     /* 16006 */   // Combiner Rule #13: copy_prop
     /* 16006 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
     /* 16009 */ // Label 103: @16009
     /* 16009 */ GIM_Reject,
     /* 16010 */ // Label 1: @16010
     /* 16010 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(16021), // Rule ID 16 //
     /* 16015 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
     /* 16018 */   // Combiner Rule #16: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
     /* 16018 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
     /* 16021 */ // Label 104: @16021
     /* 16021 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(16032), // Rule ID 94 //
     /* 16026 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 16029 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_ADD'
     /* 16029 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 16032 */ // Label 105: @16032
     /* 16032 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(16043), // Rule ID 142 //
     /* 16037 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
     /* 16040 */   // Combiner Rule #104: simplify_add_to_sub; wip_match_opcode 'G_ADD'
     /* 16040 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
     /* 16043 */ // Label 106: @16043
     /* 16043 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(16054), // Rule ID 237 //
     /* 16048 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 16051 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_ADD'
     /* 16051 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 16054 */ // Label 107: @16054
     /* 16054 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(16065), // Rule ID 281 //
     /* 16059 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 16062 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ADD'
     /* 16062 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 16065 */ // Label 108: @16065
     /* 16065 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(16076), // Rule ID 317 //
     /* 16070 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 16073 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
     /* 16073 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 16076 */ // Label 109: @16076
     /* 16076 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(16110), // Rule ID 0 //
     /* 16081 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
     /* 16084 */   // MIs[0] root
     /* 16084 */   // No operand predicates
     /* 16084 */   // MIs[0] sub
     /* 16084 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16088 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16092 */   // MIs[1] Operand 1
     /* 16092 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
     /* 16096 */   // MIs[1] A
     /* 16096 */   // No operand predicates
     /* 16096 */   // MIs[0] B
     /* 16096 */   // No operand predicates
     /* 16096 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16098 */   // Combiner Rule #0: ZeroMinusAPlusB
     /* 16098 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16101 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 16103 */   GIR_RootToRootCopy, /*OpIdx*/2, // B
     /* 16105 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
     /* 16109 */   GIR_EraseRootFromParent_Done,
     /* 16110 */ // Label 110: @16110
     /* 16110 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(16147), // Rule ID 12 //
     /* 16115 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
     /* 16118 */   // MIs[0] root
     /* 16118 */   // No operand predicates
     /* 16118 */   // MIs[0] sub
     /* 16118 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16122 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16126 */   // MIs[1] A
     /* 16126 */   // No operand predicates
     /* 16126 */   // MIs[1] c1
     /* 16126 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 16130 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16134 */   // MIs[2] imm1
     /* 16134 */   // No operand predicates
     /* 16134 */   // MIs[0] c2
     /* 16134 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 16138 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16142 */   // MIs[3] imm2
     /* 16142 */   // No operand predicates
     /* 16142 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 16144 */   // Combiner Rule #12: AMinusC1PlusC2
     /* 16144 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
     /* 16147 */ // Label 111: @16147
     /* 16147 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(16181), // Rule ID 3 //
     /* 16152 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
     /* 16155 */   // MIs[0] root
     /* 16155 */   // No operand predicates
     /* 16155 */   // MIs[0] sub
     /* 16155 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16159 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16163 */   // MIs[1] B
     /* 16163 */   // No operand predicates
     /* 16163 */   // MIs[1] A
     /* 16163 */   // No operand predicates
     /* 16163 */   // MIs[0] A
     /* 16163 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 16168 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16173 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16175 */   // Combiner Rule #3: BMinusAPlusA
     /* 16175 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16180 */   GIR_EraseRootFromParent_Done,
     /* 16181 */ // Label 112: @16181
     /* 16181 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(16215), // Rule ID 131 //
     /* 16186 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
     /* 16189 */   // MIs[0] dst
     /* 16189 */   // No operand predicates
     /* 16189 */   // MIs[0] __add_sub_reg_match_0.tmp
     /* 16189 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16193 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16197 */   // MIs[1] src
     /* 16197 */   // No operand predicates
     /* 16197 */   // MIs[1] __add_sub_reg_match_0.x
     /* 16197 */   // No operand predicates
     /* 16197 */   // MIs[0] __add_sub_reg_match_0.x
     /* 16197 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 16202 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16207 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16209 */   // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[1]]
     /* 16209 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16214 */   GIR_EraseRootFromParent_Done,
     /* 16215 */ // Label 113: @16215
     /* 16215 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(16260), // Rule ID 5 //
     /* 16220 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
     /* 16223 */   // MIs[0] root
     /* 16223 */   // No operand predicates
     /* 16223 */   // MIs[0] sub1
     /* 16223 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16227 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16231 */   // MIs[1] A
     /* 16231 */   // No operand predicates
     /* 16231 */   // MIs[1] B
     /* 16231 */   // No operand predicates
     /* 16231 */   // MIs[0] sub2
     /* 16231 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 16235 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16239 */   // MIs[2] B
     /* 16239 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 16244 */   // MIs[2] C
     /* 16244 */   // No operand predicates
     /* 16244 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 16246 */   // Combiner Rule #5: AMinusBPlusBMinusC
     /* 16246 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16249 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 16251 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
     /* 16255 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
     /* 16259 */   GIR_EraseRootFromParent_Done,
     /* 16260 */ // Label 114: @16260
     /* 16260 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(16305), // Rule ID 4 //
     /* 16265 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
     /* 16268 */   // MIs[0] root
     /* 16268 */   // No operand predicates
     /* 16268 */   // MIs[0] sub1
     /* 16268 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16272 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16276 */   // MIs[1] A
     /* 16276 */   // No operand predicates
     /* 16276 */   // MIs[1] B
     /* 16276 */   // No operand predicates
     /* 16276 */   // MIs[0] sub2
     /* 16276 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 16280 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16284 */   // MIs[2] C
     /* 16284 */   // No operand predicates
     /* 16284 */   // MIs[2] A
     /* 16284 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 16289 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 16291 */   // Combiner Rule #4: AMinusBPlusCMinusA
     /* 16291 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16294 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 16296 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
     /* 16300 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
     /* 16304 */   GIR_EraseRootFromParent_Done,
     /* 16305 */ // Label 115: @16305
     /* 16305 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(16340), // Rule ID 39 //
     /* 16310 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
     /* 16313 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 16319 */   // MIs[0] root
     /* 16319 */   // No operand predicates
     /* 16319 */   // MIs[0] left
     /* 16319 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16323 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 16327 */   // MIs[1] imm1
     /* 16327 */   // No operand predicates
     /* 16327 */   // MIs[0] right
     /* 16327 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 16331 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 16335 */   // MIs[2] imm2
     /* 16335 */   // No operand predicates
     /* 16335 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 16337 */   // Combiner Rule #37: add_of_vscale
     /* 16337 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
     /* 16340 */ // Label 116: @16340
     /* 16340 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(16374), // Rule ID 1 //
     /* 16345 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
     /* 16348 */   // MIs[0] root
     /* 16348 */   // No operand predicates
     /* 16348 */   // MIs[0] A
     /* 16348 */   // No operand predicates
     /* 16348 */   // MIs[0] sub
     /* 16348 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16352 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16356 */   // MIs[1] Operand 1
     /* 16356 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
     /* 16360 */   // MIs[1] B
     /* 16360 */   // No operand predicates
     /* 16360 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16362 */   // Combiner Rule #1: APlusZeroMinusB
     /* 16362 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16365 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 16367 */   GIR_RootToRootCopy, /*OpIdx*/1, // A
     /* 16369 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
     /* 16373 */   GIR_EraseRootFromParent_Done,
     /* 16374 */ // Label 117: @16374
     /* 16374 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(16408), // Rule ID 2 //
     /* 16379 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
     /* 16382 */   // MIs[0] root
     /* 16382 */   // No operand predicates
     /* 16382 */   // MIs[0] A
     /* 16382 */   // No operand predicates
     /* 16382 */   // MIs[0] sub
     /* 16382 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16386 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16390 */   // MIs[1] B
     /* 16390 */   // No operand predicates
     /* 16390 */   // MIs[1] A
     /* 16390 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 16395 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16400 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16402 */   // Combiner Rule #2: APlusBMinusB
     /* 16402 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16407 */   GIR_EraseRootFromParent_Done,
     /* 16408 */ // Label 118: @16408
     /* 16408 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(16442), // Rule ID 130 //
     /* 16413 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
     /* 16416 */   // MIs[0] dst
     /* 16416 */   // No operand predicates
     /* 16416 */   // MIs[0] __add_sub_reg_match_0.x
     /* 16416 */   // No operand predicates
     /* 16416 */   // MIs[0] __add_sub_reg_match_0.tmp
     /* 16416 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16420 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16424 */   // MIs[1] src
     /* 16424 */   // No operand predicates
     /* 16424 */   // MIs[1] __add_sub_reg_match_0.x
     /* 16424 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 16429 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16434 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16436 */   // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[0]]
     /* 16436 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 16441 */   GIR_EraseRootFromParent_Done,
     /* 16442 */ // Label 119: @16442
     /* 16442 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(16487), // Rule ID 6 //
     /* 16447 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
     /* 16450 */   // MIs[0] root
     /* 16450 */   // No operand predicates
     /* 16450 */   // MIs[0] A
     /* 16450 */   // No operand predicates
     /* 16450 */   // MIs[0] sub1
     /* 16450 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16454 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16458 */   // MIs[1] B
     /* 16458 */   // No operand predicates
     /* 16458 */   // MIs[1] add1
     /* 16458 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 16462 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 16466 */   // MIs[2] A
     /* 16466 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 16471 */   // MIs[2] C
     /* 16471 */   // No operand predicates
     /* 16471 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 16473 */   // Combiner Rule #6: APlusBMinusAplusC
     /* 16473 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16476 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 16478 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
     /* 16482 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
     /* 16486 */   GIR_EraseRootFromParent_Done,
     /* 16487 */ // Label 120: @16487
     /* 16487 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(16532), // Rule ID 7 //
     /* 16492 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
     /* 16495 */   // MIs[0] root
     /* 16495 */   // No operand predicates
     /* 16495 */   // MIs[0] A
     /* 16495 */   // No operand predicates
     /* 16495 */   // MIs[0] sub1
     /* 16495 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16499 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16503 */   // MIs[1] B
     /* 16503 */   // No operand predicates
     /* 16503 */   // MIs[1] add1
     /* 16503 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 16507 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 16511 */   // MIs[2] C
     /* 16511 */   // No operand predicates
     /* 16511 */   // MIs[2] A
     /* 16511 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 16516 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 16518 */   // Combiner Rule #7: APlusBMinusCPlusA
     /* 16518 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16521 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 16523 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
     /* 16527 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
     /* 16531 */   GIR_EraseRootFromParent_Done,
     /* 16532 */ // Label 121: @16532
     /* 16532 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(16555), // Rule ID 105 //
     /* 16537 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 16540 */   // MIs[0] dst
     /* 16540 */   // No operand predicates
     /* 16540 */   // MIs[0] lhs
     /* 16540 */   // No operand predicates
     /* 16540 */   // MIs[0] Operand 2
     /* 16540 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 16544 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 16549 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[1]]
     /* 16549 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 16554 */   GIR_EraseRootFromParent_Done,
     /* 16555 */ // Label 122: @16555
     /* 16555 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(16566), // Rule ID 150 //
     /* 16560 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
     /* 16563 */   // MIs[0] root
     /* 16563 */   // No operand predicates
     /* 16563 */   // MIs[0] src1
     /* 16563 */   // No operand predicates
     /* 16563 */   // MIs[0] src2
     /* 16563 */   // No operand predicates
     /* 16563 */   // Combiner Rule #108: reassoc_comm_binops
     /* 16563 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
     /* 16566 */ // Label 123: @16566
     /* 16566 */ GIM_Reject,
     /* 16567 */ // Label 2: @16567
     /* 16567 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(16578), // Rule ID 95 //
     /* 16572 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 16575 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_SUB'
     /* 16575 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 16578 */ // Label 124: @16578
     /* 16578 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(16589), // Rule ID 245 //
     /* 16583 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 16586 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SUB'
     /* 16586 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 16589 */ // Label 125: @16589
     /* 16589 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(16600), // Rule ID 282 //
     /* 16594 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 16597 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SUB'
     /* 16597 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 16600 */ // Label 126: @16600
     /* 16600 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(16611), // Rule ID 314 //
     /* 16605 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
     /* 16608 */   // Combiner Rule #194: sub_add_reg; wip_match_opcode 'G_SUB'
     /* 16608 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
     /* 16611 */ // Label 127: @16611
     /* 16611 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(16622), // Rule ID 348 //
     /* 16616 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
     /* 16619 */   // Combiner Rule #201: simplify_neg_minmax; wip_match_opcode 'G_SUB'
     /* 16619 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
     /* 16622 */ // Label 128: @16622
     /* 16622 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(16659), // Rule ID 8 //
     /* 16627 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
     /* 16630 */   // MIs[0] root
     /* 16630 */   // No operand predicates
     /* 16630 */   // MIs[0] add
     /* 16630 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16634 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 16638 */   // MIs[1] A
     /* 16638 */   // No operand predicates
     /* 16638 */   // MIs[1] c1
     /* 16638 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 16642 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16646 */   // MIs[2] imm1
     /* 16646 */   // No operand predicates
     /* 16646 */   // MIs[0] c2
     /* 16646 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 16650 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16654 */   // MIs[3] imm2
     /* 16654 */   // No operand predicates
     /* 16654 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 16656 */   // Combiner Rule #8: APlusC1MinusC2
     /* 16656 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
     /* 16659 */ // Label 129: @16659
     /* 16659 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(16696), // Rule ID 11 //
     /* 16664 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
     /* 16667 */   // MIs[0] root
     /* 16667 */   // No operand predicates
     /* 16667 */   // MIs[0] sub1
     /* 16667 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16671 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16675 */   // MIs[1] c1
     /* 16675 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 16679 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16683 */   // MIs[2] imm1
     /* 16683 */   // No operand predicates
     /* 16683 */   // MIs[1] A
     /* 16683 */   // No operand predicates
     /* 16683 */   // MIs[0] c2
     /* 16683 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 16687 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16691 */   // MIs[3] imm2
     /* 16691 */   // No operand predicates
     /* 16691 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 16693 */   // Combiner Rule #11: C1Minus2MinusC2
     /* 16693 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
     /* 16696 */ // Label 130: @16696
     /* 16696 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(16733), // Rule ID 10 //
     /* 16701 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
     /* 16704 */   // MIs[0] root
     /* 16704 */   // No operand predicates
     /* 16704 */   // MIs[0] sub1
     /* 16704 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16708 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16712 */   // MIs[1] A
     /* 16712 */   // No operand predicates
     /* 16712 */   // MIs[1] c1
     /* 16712 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 16716 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16720 */   // MIs[2] imm1
     /* 16720 */   // No operand predicates
     /* 16720 */   // MIs[0] c2
     /* 16720 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 16724 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16728 */   // MIs[3] imm2
     /* 16728 */   // No operand predicates
     /* 16728 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 16730 */   // Combiner Rule #10: AMinusC1MinusC2
     /* 16730 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
     /* 16733 */ // Label 131: @16733
     /* 16733 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(16776), // Rule ID 160 //
     /* 16738 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
     /* 16741 */   // MIs[0] dst
     /* 16741 */   // No operand predicates
     /* 16741 */   // MIs[0] Operand 1
     /* 16741 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 16745 */   // MIs[0] and
     /* 16745 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16749 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
     /* 16753 */   // MIs[1] x
     /* 16753 */   // No operand predicates
     /* 16753 */   // MIs[1] Operand 2
     /* 16753 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
     /* 16757 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
     /* 16761 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16763 */   // Combiner Rule #118: neg_and_one_to_sext_inreg
     /* 16763 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
     /* 16766 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 16768 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 16772 */   GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
     /* 16775 */   GIR_EraseRootFromParent_Done,
     /* 16776 */ // Label 132: @16776
     /* 16776 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(16813), // Rule ID 9 //
     /* 16781 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
     /* 16784 */   // MIs[0] root
     /* 16784 */   // No operand predicates
     /* 16784 */   // MIs[0] c2
     /* 16784 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16788 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16792 */   // MIs[1] imm2
     /* 16792 */   // No operand predicates
     /* 16792 */   // MIs[0] add
     /* 16792 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 16796 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 16800 */   // MIs[2] A
     /* 16800 */   // No operand predicates
     /* 16800 */   // MIs[2] c1
     /* 16800 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
     /* 16804 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16808 */   // MIs[3] imm1
     /* 16808 */   // No operand predicates
     /* 16808 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 16810 */   // Combiner Rule #9: C2MinusAPlusC1
     /* 16810 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
     /* 16813 */ // Label 133: @16813
     /* 16813 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(16840), // Rule ID 42 //
     /* 16818 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
     /* 16821 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 16827 */   // MIs[0] root
     /* 16827 */   // No operand predicates
     /* 16827 */   // MIs[0] x
     /* 16827 */   // No operand predicates
     /* 16827 */   // MIs[0] right
     /* 16827 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16831 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 16835 */   // MIs[1] imm
     /* 16835 */   // No operand predicates
     /* 16835 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16837 */   // Combiner Rule #40: sub_of_vscale
     /* 16837 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
     /* 16840 */ // Label 134: @16840
     /* 16840 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(16863), // Rule ID 104 //
     /* 16845 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 16848 */   // MIs[0] dst
     /* 16848 */   // No operand predicates
     /* 16848 */   // MIs[0] lhs
     /* 16848 */   // No operand predicates
     /* 16848 */   // MIs[0] Operand 2
     /* 16848 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 16852 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 16857 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[0]]
     /* 16857 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 16862 */   GIR_EraseRootFromParent_Done,
     /* 16863 */ // Label 135: @16863
     /* 16863 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(16884), // Rule ID 15 //
     /* 16868 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
     /* 16871 */   // MIs[0] d
     /* 16871 */   // No operand predicates
     /* 16871 */   // MIs[0] op1
     /* 16871 */   // No operand predicates
     /* 16871 */   // MIs[0] c
     /* 16871 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 16875 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16879 */   // MIs[1] imm
     /* 16879 */   // No operand predicates
     /* 16879 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 16881 */   // Combiner Rule #15: sub_to_add
     /* 16881 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
     /* 16884 */ // Label 136: @16884
     /* 16884 */ GIM_Reject,
     /* 16885 */ // Label 3: @16885
     /* 16885 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(16896), // Rule ID 78 //
     /* 16890 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
     /* 16893 */   // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_MUL'
     /* 16893 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
     /* 16896 */ // Label 137: @16896
     /* 16896 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(16907), // Rule ID 242 //
     /* 16901 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 16904 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_MUL'
     /* 16904 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 16907 */ // Label 138: @16907
     /* 16907 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(16918), // Rule ID 318 //
     /* 16912 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 16915 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
     /* 16915 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 16918 */ // Label 139: @16918
     /* 16918 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(16929), // Rule ID 391 //
     /* 16923 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
     /* 16926 */   // Combiner Rule #237: smulu64; wip_match_opcode 'G_MUL'
     /* 16926 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
     /* 16929 */ // Label 140: @16929
     /* 16929 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(16969), // Rule ID 17 //
     /* 16934 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
     /* 16937 */   // MIs[0] dst
     /* 16937 */   GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
     /* 16941 */   // MIs[0] x
     /* 16941 */   // No operand predicates
     /* 16941 */   // MIs[0] Operand 2
     /* 16941 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
     /* 16945 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 16948 */   GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
     /* 16958 */   // Combiner Rule #17: mul_by_neg_one
     /* 16958 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 16961 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 16963 */   GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
     /* 16966 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 16968 */   GIR_EraseRootFromParent_Done,
     /* 16969 */ // Label 141: @16969
     /* 16969 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(17004), // Rule ID 40 //
     /* 16974 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
     /* 16977 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 16983 */   // MIs[0] root
     /* 16983 */   // No operand predicates
     /* 16983 */   // MIs[0] left
     /* 16983 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 16987 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 16991 */   // MIs[1] scale
     /* 16991 */   // No operand predicates
     /* 16991 */   // MIs[0] x
     /* 16991 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 16995 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 16999 */   // MIs[2] imm1
     /* 16999 */   // No operand predicates
     /* 16999 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 17001 */   // Combiner Rule #38: mul_of_vscale
     /* 17001 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
     /* 17004 */ // Label 142: @17004
     /* 17004 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(17027), // Rule ID 123 //
     /* 17009 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
     /* 17012 */   // MIs[0] dst
     /* 17012 */   // No operand predicates
     /* 17012 */   // MIs[0] lhs
     /* 17012 */   // No operand predicates
     /* 17012 */   // MIs[0] zero
     /* 17012 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 17016 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 17021 */   // Combiner Rule #87: binop_right_to_zero
     /* 17021 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 17026 */   GIR_EraseRootFromParent_Done,
     /* 17027 */ // Label 143: @17027
     /* 17027 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(17050), // Rule ID 128 //
     /* 17032 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
     /* 17035 */   // MIs[0] dst
     /* 17035 */   // No operand predicates
     /* 17035 */   // MIs[0] x
     /* 17035 */   // No operand predicates
     /* 17035 */   // MIs[0] Operand 2
     /* 17035 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
     /* 17039 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 17044 */   // Combiner Rule #92: right_identity_one_int
     /* 17044 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 17049 */   GIR_EraseRootFromParent_Done,
     /* 17050 */ // Label 144: @17050
     /* 17050 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(17061), // Rule ID 14 //
     /* 17055 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
     /* 17058 */   // MIs[0] d
     /* 17058 */   // No operand predicates
     /* 17058 */   // MIs[0] op1
     /* 17058 */   // No operand predicates
     /* 17058 */   // MIs[0] op2
     /* 17058 */   // No operand predicates
     /* 17058 */   // Combiner Rule #14: mul_to_shl
     /* 17058 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
     /* 17061 */ // Label 145: @17061
     /* 17061 */ GIM_Reject,
     /* 17062 */ // Label 4: @17062
     /* 17062 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(17073), // Rule ID 119 //
     /* 17067 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 17070 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SDIV'
     /* 17070 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 17073 */ // Label 146: @17073
     /* 17073 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(17084), // Rule ID 213 //
     /* 17078 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 17081 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
     /* 17081 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 17084 */ // Label 147: @17084
     /* 17084 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(17095), // Rule ID 248 //
     /* 17089 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 17092 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SDIV'
     /* 17092 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 17095 */ // Label 148: @17095
     /* 17095 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(17106), // Rule ID 287 //
     /* 17100 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 17103 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SDIV'
     /* 17103 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 17106 */ // Label 149: @17106
     /* 17106 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(17123), // Rule ID 310 //
     /* 17111 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
     /* 17114 */   GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
     /* 17120 */   // MIs[0] dst
     /* 17120 */   // No operand predicates
     /* 17120 */   // MIs[0] x
     /* 17120 */   // No operand predicates
     /* 17120 */   // MIs[0] y
     /* 17120 */   // No operand predicates
     /* 17120 */   // Combiner Rule #190: sdiv_by_pow2
     /* 17120 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
     /* 17123 */ // Label 150: @17123
     /* 17123 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(17134), // Rule ID 312 //
     /* 17128 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
     /* 17131 */   // MIs[0] dst
     /* 17131 */   // No operand predicates
     /* 17131 */   // MIs[0] x
     /* 17131 */   // No operand predicates
     /* 17131 */   // MIs[0] y
     /* 17131 */   // No operand predicates
     /* 17131 */   // Combiner Rule #192: sdiv_by_const
     /* 17131 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
     /* 17134 */ // Label 151: @17134
     /* 17134 */ GIM_Reject,
     /* 17135 */ // Label 5: @17135
     /* 17135 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(17146), // Rule ID 81 //
     /* 17140 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 17143 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
     /* 17143 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 17146 */ // Label 152: @17146
     /* 17146 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(17157), // Rule ID 120 //
     /* 17151 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 17154 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UDIV'
     /* 17154 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 17157 */ // Label 153: @17157
     /* 17157 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(17168), // Rule ID 214 //
     /* 17162 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 17165 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
     /* 17165 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 17168 */ // Label 154: @17168
     /* 17168 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(17179), // Rule ID 247 //
     /* 17173 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 17176 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UDIV'
     /* 17176 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 17179 */ // Label 155: @17179
     /* 17179 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(17190), // Rule ID 289 //
     /* 17184 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 17187 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UDIV'
     /* 17187 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 17190 */ // Label 156: @17190
     /* 17190 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(17207), // Rule ID 309 //
     /* 17195 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
     /* 17198 */   GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
     /* 17204 */   // MIs[0] dst
     /* 17204 */   // No operand predicates
     /* 17204 */   // MIs[0] x
     /* 17204 */   // No operand predicates
     /* 17204 */   // MIs[0] y
     /* 17204 */   // No operand predicates
     /* 17204 */   // Combiner Rule #189: udiv_by_pow2
     /* 17204 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
     /* 17207 */ // Label 157: @17207
     /* 17207 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(17218), // Rule ID 311 //
     /* 17212 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
     /* 17215 */   // MIs[0] dst
     /* 17215 */   // No operand predicates
     /* 17215 */   // MIs[0] x
     /* 17215 */   // No operand predicates
     /* 17215 */   // MIs[0] y
     /* 17215 */   // No operand predicates
     /* 17215 */   // Combiner Rule #191: udiv_by_const
     /* 17215 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
     /* 17218 */ // Label 158: @17218
     /* 17218 */ GIM_Reject,
     /* 17219 */ // Label 6: @17219
     /* 17219 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(17230), // Rule ID 121 //
     /* 17224 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 17227 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SREM'
     /* 17227 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 17230 */ // Label 159: @17230
     /* 17230 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(17241), // Rule ID 215 //
     /* 17235 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 17238 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_SREM'
     /* 17238 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 17241 */ // Label 160: @17241
     /* 17241 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(17252), // Rule ID 250 //
     /* 17246 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 17249 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SREM'
     /* 17249 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 17252 */ // Label 161: @17252
     /* 17252 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(17263), // Rule ID 288 //
     /* 17257 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 17260 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SREM'
     /* 17260 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 17263 */ // Label 162: @17263
     /* 17263 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(17274), // Rule ID 308 //
     /* 17268 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
     /* 17271 */   // MIs[0] dst
     /* 17271 */   // No operand predicates
     /* 17271 */   // MIs[0] x
     /* 17271 */   // No operand predicates
     /* 17271 */   // MIs[0] y
     /* 17271 */   // No operand predicates
     /* 17271 */   // Combiner Rule #188: srem_by_const
     /* 17271 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
     /* 17274 */ // Label 163: @17274
     /* 17274 */ GIM_Reject,
     /* 17275 */ // Label 7: @17275
     /* 17275 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(17286), // Rule ID 82 //
     /* 17280 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 17283 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
     /* 17283 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 17286 */ // Label 164: @17286
     /* 17286 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(17297), // Rule ID 122 //
     /* 17291 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 17294 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UREM'
     /* 17294 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 17297 */ // Label 165: @17297
     /* 17297 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(17308), // Rule ID 171 //
     /* 17302 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
     /* 17305 */   // Combiner Rule #129: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
     /* 17305 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
     /* 17308 */ // Label 166: @17308
     /* 17308 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(17319), // Rule ID 216 //
     /* 17313 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 17316 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_UREM'
     /* 17316 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 17319 */ // Label 167: @17319
     /* 17319 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(17330), // Rule ID 249 //
     /* 17324 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 17327 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UREM'
     /* 17327 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 17330 */ // Label 168: @17330
     /* 17330 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(17341), // Rule ID 290 //
     /* 17335 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 17338 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UREM'
     /* 17338 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 17341 */ // Label 169: @17341
     /* 17341 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(17352), // Rule ID 307 //
     /* 17346 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
     /* 17349 */   // MIs[0] dst
     /* 17349 */   // No operand predicates
     /* 17349 */   // MIs[0] x
     /* 17349 */   // No operand predicates
     /* 17349 */   // MIs[0] y
     /* 17349 */   // No operand predicates
     /* 17349 */   // Combiner Rule #187: urem_by_const
     /* 17349 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
     /* 17352 */ // Label 170: @17352
     /* 17352 */ GIM_Reject,
     /* 17353 */ // Label 8: @17353
     /* 17353 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(17364), // Rule ID 73 //
     /* 17358 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
     /* 17361 */   // Combiner Rule #69: load_and_mask; wip_match_opcode 'G_AND'
     /* 17361 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
     /* 17364 */ // Label 171: @17364
     /* 17364 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(17375), // Rule ID 77 //
     /* 17369 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
     /* 17372 */   // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_AND'
     /* 17372 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
     /* 17375 */ // Label 172: @17375
     /* 17375 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(17386), // Rule ID 143 //
     /* 17380 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 17383 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
     /* 17383 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 17386 */ // Label 173: @17386
     /* 17386 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(17397), // Rule ID 163 //
     /* 17391 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
     /* 17394 */   // Combiner Rule #121: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
     /* 17394 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
     /* 17397 */ // Label 174: @17397
     /* 17397 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(17408), // Rule ID 168 //
     /* 17402 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
     /* 17405 */   // Combiner Rule #126: redundant_and; wip_match_opcode 'G_AND'
     /* 17405 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
     /* 17408 */ // Label 175: @17408
     /* 17408 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(17419), // Rule ID 186 //
     /* 17413 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
     /* 17416 */   // Combiner Rule #144: overlapping_and; wip_match_opcode 'G_AND'
     /* 17416 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
     /* 17419 */ // Label 176: @17419
     /* 17419 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(17430), // Rule ID 239 //
     /* 17424 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 17427 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_AND'
     /* 17427 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 17430 */ // Label 177: @17430
     /* 17430 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(17441), // Rule ID 272 //
     /* 17435 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
     /* 17438 */   // Combiner Rule #177: and_or_disjoint_mask; wip_match_opcode 'G_AND'
     /* 17438 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
     /* 17441 */ // Label 178: @17441
     /* 17441 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(17452), // Rule ID 284 //
     /* 17446 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 17449 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_AND'
     /* 17449 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 17452 */ // Label 179: @17452
     /* 17452 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(17463), // Rule ID 319 //
     /* 17457 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 17460 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
     /* 17460 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 17463 */ // Label 180: @17463
     /* 17463 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(17474), // Rule ID 346 //
     /* 17468 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
     /* 17471 */   // Combiner Rule #199: match_ands; wip_match_opcode 'G_AND'
     /* 17471 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
     /* 17474 */ // Label 181: @17474
     /* 17474 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(17572), // Rule ID 156 //
     /* 17479 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
     /* 17482 */   // MIs[0] root
     /* 17482 */   // No operand predicates
     /* 17482 */   // MIs[0] d1
     /* 17482 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 17486 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 17490 */   // MIs[1] p
     /* 17490 */   // No operand predicates
     /* 17490 */   // MIs[1] s1
     /* 17490 */   GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
     /* 17494 */   // MIs[1] Operand 3
     /* 17494 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
     /* 17498 */   // MIs[0] d2
     /* 17498 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 17502 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 17506 */   // MIs[2] p
     /* 17506 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 17511 */   // MIs[2] s2
     /* 17511 */   // No operand predicates
     /* 17511 */   // MIs[2] Operand 3
     /* 17511 */   GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
     /* 17515 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
     /* 17519 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 17521 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 17524 */   GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
     /* 17534 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 17537 */   // Combiner Rule #114: double_icmp_zero_and_combine
     /* 17537 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 17540 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17545 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
     /* 17549 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
     /* 17553 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 17557 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
     /* 17561 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
     /* 17565 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 17568 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
     /* 17571 */   GIR_EraseRootFromParent_Done,
     /* 17572 */ // Label 182: @17572
     /* 17572 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(17609), // Rule ID 232 //
     /* 17577 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
     /* 17580 */   // MIs[0] root
     /* 17580 */   // No operand predicates
     /* 17580 */   // MIs[0] shift
     /* 17580 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 17584 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 17588 */   // MIs[1] x
     /* 17588 */   // No operand predicates
     /* 17588 */   // MIs[1] lsb
     /* 17588 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 17592 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 17596 */   // MIs[2] imm1
     /* 17596 */   // No operand predicates
     /* 17596 */   // MIs[0] mask
     /* 17596 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 17600 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 17604 */   // MIs[3] imm2
     /* 17604 */   // No operand predicates
     /* 17604 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 17606 */   // Combiner Rule #167: bitfield_extract_from_and
     /* 17606 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
     /* 17609 */ // Label 183: @17609
     /* 17609 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(17723), // Rule ID 393 //
     /* 17614 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
     /* 17617 */   GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
     /* 17620 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
     /* 17623 */   // MIs[0] dst
     /* 17623 */   // No operand predicates
     /* 17623 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
     /* 17627 */   GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
     /* 17630 */   GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
     /* 17633 */   GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
     /* 17636 */   GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
     /* 17639 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
     /* 17642 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
     /* 17645 */   // Combiner Rule #239: combine_and_s64_with_s32_mask
     /* 17645 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 17648 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17653 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17658 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 17660 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 17664 */   GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17669 */   GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17674 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
     /* 17678 */   GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
     /* 17682 */   GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17687 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
     /* 17690 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 17693 */   GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
     /* 17697 */   GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17702 */   GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
     /* 17705 */   GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
     /* 17708 */   GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 17712 */   GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 17716 */   GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
     /* 17719 */   GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
     /* 17722 */   GIR_EraseRootFromParent_Done,
     /* 17723 */ // Label 184: @17723
     /* 17723 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(17747), // Rule ID 114 //
     /* 17728 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
     /* 17731 */   // MIs[0] dst
     /* 17731 */   // No operand predicates
     /* 17731 */   // MIs[0] src
     /* 17731 */   // No operand predicates
     /* 17731 */   // MIs[0] src
     /* 17731 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 17736 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 17741 */   // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[0]]
     /* 17741 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 17746 */   GIR_EraseRootFromParent_Done,
     /* 17747 */ // Label 185: @17747
     /* 17747 */ GIM_Reject,
     /* 17748 */ // Label 9: @17748
     /* 17748 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(17759), // Rule ID 79 //
     /* 17753 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
     /* 17756 */   // Combiner Rule #73: undef_to_negative_one; wip_match_opcode 'G_OR'
     /* 17756 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
     /* 17759 */ // Label 186: @17759
     /* 17759 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(17770), // Rule ID 144 //
     /* 17764 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 17767 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
     /* 17767 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 17770 */ // Label 187: @17770
     /* 17770 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(17781), // Rule ID 170 //
     /* 17775 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
     /* 17778 */   // Combiner Rule #128: redundant_or; wip_match_opcode 'G_OR'
     /* 17778 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
     /* 17781 */ // Label 188: @17781
     /* 17781 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(17792), // Rule ID 212 //
     /* 17786 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
     /* 17789 */   // Combiner Rule #154: load_or_combine; wip_match_opcode 'G_OR'
     /* 17789 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
     /* 17792 */ // Label 189: @17792
     /* 17792 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(17803), // Rule ID 217 //
     /* 17797 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
     /* 17800 */   // Combiner Rule #156: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
     /* 17800 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
     /* 17803 */ // Label 190: @17803
     /* 17803 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(17814), // Rule ID 243 //
     /* 17808 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 17811 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_OR'
     /* 17811 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 17814 */ // Label 191: @17814
     /* 17814 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(17825), // Rule ID 285 //
     /* 17819 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 17822 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_OR'
     /* 17822 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 17825 */ // Label 192: @17825
     /* 17825 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(17836), // Rule ID 320 //
     /* 17830 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 17833 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
     /* 17833 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 17836 */ // Label 193: @17836
     /* 17836 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(17847), // Rule ID 347 //
     /* 17841 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
     /* 17844 */   // Combiner Rule #200: match_ors; wip_match_opcode 'G_OR'
     /* 17844 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
     /* 17847 */ // Label 194: @17847
     /* 17847 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(17934), // Rule ID 395 //
     /* 17852 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
     /* 17855 */   GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
     /* 17858 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
     /* 17861 */   // MIs[0] dst
     /* 17861 */   // No operand predicates
     /* 17861 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 17865 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 17869 */   GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
     /* 17873 */   GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
     /* 17877 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 17879 */   GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
     /* 17882 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 17885 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 17888 */   // Combiner Rule #240: combine_or_s64_s32 @ [dst[1]]
     /* 17888 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 17891 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17896 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17901 */   GIR_RootToRootCopy, /*OpIdx*/2, // x
     /* 17903 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 17907 */   GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 17912 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 17915 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
     /* 17919 */   GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 17923 */   GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 17927 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 17930 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
     /* 17933 */   GIR_EraseRootFromParent_Done,
     /* 17934 */ // Label 195: @17934
     /* 17934 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(17981), // Rule ID 224 //
     /* 17939 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
     /* 17942 */   // MIs[0] root
     /* 17942 */   // No operand predicates
     /* 17942 */   // MIs[0] out1
     /* 17942 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 17946 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
     /* 17950 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 17950 */   // No operand predicates
     /* 17950 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
     /* 17950 */   // No operand predicates
     /* 17950 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 17950 */   // No operand predicates
     /* 17950 */   // MIs[0] out2
     /* 17950 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 17954 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 17958 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 17958 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 17963 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 17963 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 17968 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 17973 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 17975 */   // Combiner Rule #161: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
     /* 17975 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 17980 */   GIR_EraseRootFromParent_Done,
     /* 17981 */ // Label 196: @17981
     /* 17981 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(18028), // Rule ID 226 //
     /* 17986 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
     /* 17989 */   // MIs[0] root
     /* 17989 */   // No operand predicates
     /* 17989 */   // MIs[0] out1
     /* 17989 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 17993 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
     /* 17997 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
     /* 17997 */   // No operand predicates
     /* 17997 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 17997 */   // No operand predicates
     /* 17997 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 17997 */   // No operand predicates
     /* 17997 */   // MIs[0] out2
     /* 17997 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 18001 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 18005 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 18005 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 18010 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 18010 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 18015 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18020 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 18022 */   // Combiner Rule #162: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
     /* 18022 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18027 */   GIR_EraseRootFromParent_Done,
     /* 18028 */ // Label 197: @18028
     /* 18028 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(18126), // Rule ID 157 //
     /* 18033 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
     /* 18036 */   // MIs[0] root
     /* 18036 */   // No operand predicates
     /* 18036 */   // MIs[0] d1
     /* 18036 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18040 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 18044 */   // MIs[1] p
     /* 18044 */   // No operand predicates
     /* 18044 */   // MIs[1] s1
     /* 18044 */   GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
     /* 18048 */   // MIs[1] Operand 3
     /* 18048 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
     /* 18052 */   // MIs[0] d2
     /* 18052 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 18056 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 18060 */   // MIs[2] p
     /* 18060 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 18065 */   // MIs[2] s2
     /* 18065 */   // No operand predicates
     /* 18065 */   // MIs[2] Operand 3
     /* 18065 */   GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
     /* 18069 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
     /* 18073 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 18075 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 18078 */   GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
     /* 18088 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 18091 */   // Combiner Rule #115: double_icmp_zero_or_combine
     /* 18091 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 18094 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18099 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
     /* 18103 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
     /* 18107 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 18111 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
     /* 18115 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
     /* 18119 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 18122 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
     /* 18125 */   GIR_EraseRootFromParent_Done,
     /* 18126 */ // Label 198: @18126
     /* 18126 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(18173), // Rule ID 227 //
     /* 18131 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
     /* 18134 */   // MIs[0] root
     /* 18134 */   // No operand predicates
     /* 18134 */   // MIs[0] out2
     /* 18134 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18138 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 18142 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 18142 */   // No operand predicates
     /* 18142 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 18142 */   // No operand predicates
     /* 18142 */   // MIs[0] out1
     /* 18142 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 18146 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
     /* 18150 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
     /* 18150 */   // No operand predicates
     /* 18150 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 18150 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 18155 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 18155 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 18160 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 18165 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 18167 */   // Combiner Rule #162: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
     /* 18167 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 18172 */   GIR_EraseRootFromParent_Done,
     /* 18173 */ // Label 199: @18173
     /* 18173 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(18220), // Rule ID 225 //
     /* 18178 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
     /* 18181 */   // MIs[0] root
     /* 18181 */   // No operand predicates
     /* 18181 */   // MIs[0] out2
     /* 18181 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18185 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 18189 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 18189 */   // No operand predicates
     /* 18189 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 18189 */   // No operand predicates
     /* 18189 */   // MIs[0] out1
     /* 18189 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 18193 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
     /* 18197 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 18197 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 18202 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
     /* 18202 */   // No operand predicates
     /* 18202 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 18202 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 18207 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 18212 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 18214 */   // Combiner Rule #161: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
     /* 18214 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 18219 */   GIR_EraseRootFromParent_Done,
     /* 18220 */ // Label 200: @18220
     /* 18220 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(18421),
     /* 18225 */   GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
     /* 18228 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
     /* 18231 */   GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(18312), // Rule ID 394 //
     /* 18236 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
     /* 18239 */     // MIs[0] dst
     /* 18239 */     // No operand predicates
     /* 18239 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 18243 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 18247 */     GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
     /* 18251 */     GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
     /* 18255 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18257 */     GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
     /* 18260 */     GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 18263 */     GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 18266 */     // Combiner Rule #240: combine_or_s64_s32 @ [dst[0]]
     /* 18266 */     GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 18269 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18274 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18279 */     GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 18281 */     GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 18285 */     GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18290 */     GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 18293 */     GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
     /* 18297 */     GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 18301 */     GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 18305 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 18308 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
     /* 18311 */     GIR_EraseRootFromParent_Done,
     /* 18312 */   // Label 202: @18312
     /* 18312 */   GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(18420), // Rule ID 392 //
     /* 18317 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
     /* 18320 */     // MIs[0] dst
     /* 18320 */     // No operand predicates
     /* 18320 */     GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
     /* 18324 */     GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
     /* 18327 */     GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
     /* 18330 */     GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
     /* 18333 */     GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
     /* 18336 */     GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
     /* 18339 */     GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
     /* 18342 */     // Combiner Rule #238: combine_or_s64_with_s32_mask
     /* 18342 */     GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 18345 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18350 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18355 */     GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 18357 */     GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 18361 */     GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18366 */     GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18371 */     GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
     /* 18375 */     GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 18379 */     GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18384 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
     /* 18387 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 18390 */     GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 18394 */     GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 18399 */     GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
     /* 18402 */     GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
     /* 18405 */     GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 18409 */     GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 18413 */     GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
     /* 18416 */     GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
     /* 18419 */     GIR_EraseRootFromParent_Done,
     /* 18420 */   // Label 203: @18420
     /* 18420 */   GIM_Reject,
     /* 18421 */ // Label 201: @18421
     /* 18421 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(18445), // Rule ID 115 //
     /* 18426 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
     /* 18429 */   // MIs[0] dst
     /* 18429 */   // No operand predicates
     /* 18429 */   // MIs[0] src
     /* 18429 */   // No operand predicates
     /* 18429 */   // MIs[0] src
     /* 18429 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 18434 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18439 */   // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[1]]
     /* 18439 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18444 */   GIR_EraseRootFromParent_Done,
     /* 18445 */ // Label 204: @18445
     /* 18445 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(18468), // Rule ID 106 //
     /* 18450 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 18453 */   // MIs[0] dst
     /* 18453 */   // No operand predicates
     /* 18453 */   // MIs[0] lhs
     /* 18453 */   // No operand predicates
     /* 18453 */   // MIs[0] Operand 2
     /* 18453 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 18457 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18462 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[2]]
     /* 18462 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18467 */   GIR_EraseRootFromParent_Done,
     /* 18468 */ // Label 205: @18468
     /* 18468 */ GIM_Reject,
     /* 18469 */ // Label 10: @18469
     /* 18469 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(18480), // Rule ID 96 //
     /* 18474 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 18477 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_XOR'
     /* 18477 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 18480 */ // Label 206: @18480
     /* 18480 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(18491), // Rule ID 145 //
     /* 18485 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 18488 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
     /* 18488 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 18491 */ // Label 207: @18491
     /* 18491 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(18502), // Rule ID 175 //
     /* 18496 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
     /* 18499 */   // Combiner Rule #133: not_cmp_fold; wip_match_opcode 'G_XOR'
     /* 18499 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
     /* 18502 */ // Label 208: @18502
     /* 18502 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(18513), // Rule ID 200 //
     /* 18507 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
     /* 18510 */   // Combiner Rule #150: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
     /* 18510 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
     /* 18513 */ // Label 209: @18513
     /* 18513 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(18524), // Rule ID 246 //
     /* 18518 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 18521 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_XOR'
     /* 18521 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 18524 */ // Label 210: @18524
     /* 18524 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(18535), // Rule ID 286 //
     /* 18529 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 18532 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_XOR'
     /* 18532 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 18535 */ // Label 211: @18535
     /* 18535 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(18546), // Rule ID 321 //
     /* 18540 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 18543 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
     /* 18543 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 18546 */ // Label 212: @18546
     /* 18546 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(18569), // Rule ID 107 //
     /* 18551 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 18554 */   // MIs[0] dst
     /* 18554 */   // No operand predicates
     /* 18554 */   // MIs[0] lhs
     /* 18554 */   // No operand predicates
     /* 18554 */   // MIs[0] Operand 2
     /* 18554 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 18558 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18563 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[3]]
     /* 18563 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18568 */   GIR_EraseRootFromParent_Done,
     /* 18569 */ // Label 213: @18569
     /* 18569 */ GIM_Reject,
     /* 18570 */ // Label 11: @18570
     /* 18570 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(18581), // Rule ID 141 //
     /* 18575 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
     /* 18578 */   // Combiner Rule #103: extend_through_phis; wip_match_opcode 'G_PHI'
     /* 18578 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
     /* 18581 */ // Label 214: @18581
     /* 18581 */ GIM_Reject,
     /* 18582 */ // Label 12: @18582
     /* 18582 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(18593), // Rule ID 357 //
     /* 18587 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
     /* 18590 */   // Combiner Rule #210: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 18590 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
     /* 18593 */ // Label 215: @18593
     /* 18593 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(18604), // Rule ID 358 //
     /* 18598 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
     /* 18601 */   // Combiner Rule #211: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 18601 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
     /* 18604 */ // Label 216: @18604
     /* 18604 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(18615), // Rule ID 360 //
     /* 18609 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
     /* 18612 */   // Combiner Rule #213: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 18612 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
     /* 18615 */ // Label 217: @18615
     /* 18615 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(18626), // Rule ID 361 //
     /* 18620 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
     /* 18623 */   // Combiner Rule #214: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 18623 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
     /* 18626 */ // Label 218: @18626
     /* 18626 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(18637), // Rule ID 362 //
     /* 18631 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
     /* 18634 */   // Combiner Rule #215: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 18634 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
     /* 18637 */ // Label 219: @18637
     /* 18637 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(18648), // Rule ID 363 //
     /* 18642 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
     /* 18645 */   // Combiner Rule #216: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 18645 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
     /* 18648 */ // Label 220: @18648
     /* 18648 */ GIM_Reject,
     /* 18649 */ // Label 13: @18649
     /* 18649 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(18660), // Rule ID 359 //
     /* 18654 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
     /* 18657 */   // Combiner Rule #212: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES'
     /* 18657 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
     /* 18660 */ // Label 221: @18660
     /* 18660 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(18722),
     /* 18665 */   GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
     /* 18668 */   GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(18689), // Rule ID 364 //
     /* 18673 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
     /* 18676 */     // MIs[0] root
     /* 18676 */     // No operand predicates
     /* 18676 */     // MIs[0] x
     /* 18676 */     // No operand predicates
     /* 18676 */     // MIs[0] undef
     /* 18676 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 18680 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 18684 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18686 */     // Combiner Rule #217: merge_of_x_and_undef
     /* 18686 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
     /* 18689 */   // Label 223: @18689
     /* 18689 */   GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(18721), // Rule ID 365 //
     /* 18694 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
     /* 18697 */     // MIs[0] root
     /* 18697 */     // No operand predicates
     /* 18697 */     // MIs[0] x
     /* 18697 */     // No operand predicates
     /* 18697 */     // MIs[0] zero
     /* 18697 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 18701 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 18705 */     // MIs[1] Operand 1
     /* 18705 */     GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
     /* 18716 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18718 */     // Combiner Rule #218: merge_of_x_and_zero
     /* 18718 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
     /* 18721 */   // Label 224: @18721
     /* 18721 */   GIM_Reject,
     /* 18722 */ // Label 222: @18722
     /* 18722 */ GIM_Reject,
     /* 18723 */ // Label 14: @18723
     /* 18723 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(18734), // Rule ID 69 //
     /* 18728 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
     /* 18731 */   // Combiner Rule #67: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
     /* 18731 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
     /* 18734 */ // Label 225: @18734
     /* 18734 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(18745), // Rule ID 98 //
     /* 18739 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
     /* 18742 */   // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
     /* 18742 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
     /* 18745 */ // Label 226: @18745
     /* 18745 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(18756), // Rule ID 133 //
     /* 18750 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
     /* 18753 */   // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
     /* 18753 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
     /* 18756 */ // Label 227: @18756
     /* 18756 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(18787),
     /* 18761 */   GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
     /* 18764 */   GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(18775), // Rule ID 356 //
     /* 18769 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
     /* 18772 */     // MIs[0] dst
     /* 18772 */     // No operand predicates
     /* 18772 */     // MIs[0] unused
     /* 18772 */     // No operand predicates
     /* 18772 */     // Combiner Rule #209: combine_use_vector_truncate
     /* 18772 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
     /* 18775 */   // Label 229: @18775
     /* 18775 */   GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(18786), // Rule ID 366 //
     /* 18780 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
     /* 18783 */     // MIs[0] dst
     /* 18783 */     // No operand predicates
     /* 18783 */     // MIs[0] unused
     /* 18783 */     // No operand predicates
     /* 18783 */     // Combiner Rule #219: combine_build_unmerge
     /* 18783 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
     /* 18786 */   // Label 230: @18786
     /* 18786 */   GIM_Reject,
     /* 18787 */ // Label 228: @18787
     /* 18787 */ GIM_Reject,
     /* 18788 */ // Label 15: @18788
     /* 18788 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(18799), // Rule ID 132 //
     /* 18793 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
     /* 18796 */   // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
     /* 18796 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
     /* 18799 */ // Label 231: @18799
     /* 18799 */ GIM_Reject,
     /* 18800 */ // Label 16: @18800
     /* 18800 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(18811), // Rule ID 349 //
     /* 18805 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
     /* 18808 */   // Combiner Rule #202: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
     /* 18808 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
     /* 18811 */ // Label 232: @18811
     /* 18811 */ GIM_Reject,
     /* 18812 */ // Label 17: @18812
     /* 18812 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(18833), // Rule ID 125 //
     /* 18817 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
     /* 18820 */   // MIs[0] dst
     /* 18820 */   // No operand predicates
     /* 18820 */   // MIs[0] t
     /* 18820 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18824 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
     /* 18828 */   // MIs[1] ptr
     /* 18828 */   // No operand predicates
     /* 18828 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18830 */   // Combiner Rule #89: i2p_to_p2i
     /* 18830 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
     /* 18833 */ // Label 233: @18833
     /* 18833 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(18854), // Rule ID 90 //
     /* 18838 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 18841 */   // MIs[0] dst
     /* 18841 */   // No operand predicates
     /* 18841 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 18841 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18845 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 18849 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18851 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
     /* 18851 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 18854 */ // Label 234: @18854
     /* 18854 */ GIM_Reject,
     /* 18855 */ // Label 18: @18855
     /* 18855 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(18866), // Rule ID 124 //
     /* 18860 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
     /* 18863 */   // Combiner Rule #88: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
     /* 18863 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
     /* 18866 */ // Label 235: @18866
     /* 18866 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(18887), // Rule ID 91 //
     /* 18871 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 18874 */   // MIs[0] dst
     /* 18874 */   // No operand predicates
     /* 18874 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 18874 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18878 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 18882 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18884 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
     /* 18884 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 18887 */ // Label 236: @18887
     /* 18887 */ GIM_Reject,
     /* 18888 */ // Label 19: @18888
     /* 18888 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(18909), // Rule ID 136 //
     /* 18893 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
     /* 18896 */   // MIs[0] dst
     /* 18896 */   // No operand predicates
     /* 18896 */   // MIs[0] src1
     /* 18896 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18900 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
     /* 18904 */   // MIs[1] src0
     /* 18904 */   // No operand predicates
     /* 18904 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18906 */   // Combiner Rule #98: bitcast_bitcast_fold
     /* 18906 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
     /* 18909 */ // Label 237: @18909
     /* 18909 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(18930), // Rule ID 88 //
     /* 18914 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 18917 */   // MIs[0] dst
     /* 18917 */   // No operand predicates
     /* 18917 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 18917 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18921 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 18925 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18927 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
     /* 18927 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 18930 */ // Label 238: @18930
     /* 18930 */ GIM_Reject,
     /* 18931 */ // Label 20: @18931
     /* 18931 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(18960), // Rule ID 18 //
     /* 18936 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 18939 */   // MIs[0] dst
     /* 18939 */   // No operand predicates
     /* 18939 */   // MIs[0] src
     /* 18939 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 18943 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
     /* 18947 */   // MIs[1] __idempotent_prop_match_0.x
     /* 18947 */   // No operand predicates
     /* 18947 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18952 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 18954 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[0]]
     /* 18954 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18959 */   GIR_EraseRootFromParent_Done,
     /* 18960 */ // Label 239: @18960
     /* 18960 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(18983), // Rule ID 43 //
     /* 18965 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
     /* 18968 */   // MIs[0] root
     /* 18968 */   // No operand predicates
     /* 18968 */   // MIs[0] src
     /* 18968 */   // No operand predicates
     /* 18968 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
     /* 18972 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18977 */   // Combiner Rule #41: freeze_of_non_undef_non_poison
     /* 18977 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 18982 */   GIR_EraseRootFromParent_Done,
     /* 18983 */ // Label 240: @18983
     /* 18983 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(18994), // Rule ID 44 //
     /* 18988 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
     /* 18991 */   // MIs[0] dst
     /* 18991 */   // No operand predicates
     /* 18991 */   // MIs[0] src
     /* 18991 */   // No operand predicates
     /* 18991 */   // Combiner Rule #42: push_freeze_to_prevent_poison_from_propagating
     /* 18991 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
     /* 18994 */ // Label 241: @18994
     /* 18994 */ GIM_Reject,
     /* 18995 */ // Label 21: @18995
     /* 18995 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(19006), // Rule ID 70 //
     /* 19000 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 19003 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_LOAD'
     /* 19003 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 19006 */ // Label 242: @19006
     /* 19006 */ GIM_Reject,
     /* 19007 */ // Label 22: @19007
     /* 19007 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(19018), // Rule ID 71 //
     /* 19012 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 19015 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_SEXTLOAD'
     /* 19015 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 19018 */ // Label 243: @19018
     /* 19018 */ GIM_Reject,
     /* 19019 */ // Label 23: @19019
     /* 19019 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(19030), // Rule ID 72 //
     /* 19024 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 19027 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
     /* 19027 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 19030 */ // Label 244: @19030
     /* 19030 */ GIM_Reject,
     /* 19031 */ // Label 24: @19031
     /* 19031 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(19042), // Rule ID 100 //
     /* 19036 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
     /* 19039 */   // Combiner Rule #81: erase_undef_store; wip_match_opcode 'G_STORE'
     /* 19039 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
     /* 19042 */ // Label 245: @19042
     /* 19042 */ GIM_Reject,
     /* 19043 */ // Label 25: @19043
     /* 19043 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(19054), // Rule ID 387 //
     /* 19048 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
     /* 19051 */   // Combiner Rule #234: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
     /* 19051 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
     /* 19054 */ // Label 246: @19054
     /* 19054 */ GIM_Reject,
     /* 19055 */ // Label 26: @19055
     /* 19055 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(19066), // Rule ID 126 //
     /* 19060 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
     /* 19063 */   // Combiner Rule #90: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
     /* 19063 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
     /* 19066 */ // Label 247: @19066
     /* 19066 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(19077), // Rule ID 263 //
     /* 19071 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 19074 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
     /* 19074 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 19077 */ // Label 248: @19077
     /* 19077 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(19098), // Rule ID 57 //
     /* 19082 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
     /* 19085 */   // MIs[0] root
     /* 19085 */   // No operand predicates
     /* 19085 */   // MIs[0] select
     /* 19085 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19089 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 19093 */   // MIs[1] cond
     /* 19093 */   // No operand predicates
     /* 19093 */   // MIs[1] true
     /* 19093 */   // No operand predicates
     /* 19093 */   // MIs[1] false
     /* 19093 */   // No operand predicates
     /* 19093 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19095 */   // Combiner Rule #55: select_of_anyext
     /* 19095 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 19098 */ // Label 249: @19098
     /* 19098 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(19119), // Rule ID 52 //
     /* 19103 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
     /* 19106 */   // MIs[0] root
     /* 19106 */   // No operand predicates
     /* 19106 */   // MIs[0] second
     /* 19106 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19110 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 19114 */   // MIs[1] src
     /* 19114 */   // No operand predicates
     /* 19114 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19116 */   // Combiner Rule #50: anyext_of_anyext
     /* 19116 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19119 */ // Label 250: @19119
     /* 19119 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(19140), // Rule ID 54 //
     /* 19124 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
     /* 19127 */   // MIs[0] root
     /* 19127 */   // No operand predicates
     /* 19127 */   // MIs[0] second
     /* 19127 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19131 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 19135 */   // MIs[1] src
     /* 19135 */   // No operand predicates
     /* 19135 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19137 */   // Combiner Rule #52: anyext_of_sext
     /* 19137 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19140 */ // Label 251: @19140
     /* 19140 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(19161), // Rule ID 53 //
     /* 19145 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
     /* 19148 */   // MIs[0] root
     /* 19148 */   // No operand predicates
     /* 19148 */   // MIs[0] second
     /* 19148 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19152 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 19156 */   // MIs[1] src
     /* 19156 */   // No operand predicates
     /* 19156 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19158 */   // Combiner Rule #51: anyext_of_zext
     /* 19158 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19161 */ // Label 252: @19161
     /* 19161 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(19182), // Rule ID 89 //
     /* 19166 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 19169 */   // MIs[0] dst
     /* 19169 */   // No operand predicates
     /* 19169 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 19169 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19173 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 19177 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19179 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
     /* 19179 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 19182 */ // Label 253: @19182
     /* 19182 */ GIM_Reject,
     /* 19183 */ // Label 27: @19183
     /* 19183 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(19194), // Rule ID 134 //
     /* 19188 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
     /* 19191 */   // Combiner Rule #96: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
     /* 19191 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
     /* 19194 */ // Label 254: @19194
     /* 19194 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(19205), // Rule ID 135 //
     /* 19199 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
     /* 19202 */   // Combiner Rule #97: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
     /* 19202 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
     /* 19205 */ // Label 255: @19205
     /* 19205 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(19216), // Rule ID 174 //
     /* 19210 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
     /* 19213 */   // Combiner Rule #132: trunc_shift; wip_match_opcode 'G_TRUNC'
     /* 19213 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
     /* 19216 */ // Label 256: @19216
     /* 19216 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(19237), // Rule ID 58 //
     /* 19221 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
     /* 19224 */   // MIs[0] root
     /* 19224 */   // No operand predicates
     /* 19224 */   // MIs[0] select
     /* 19224 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19228 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 19232 */   // MIs[1] cond
     /* 19232 */   // No operand predicates
     /* 19232 */   // MIs[1] true
     /* 19232 */   // No operand predicates
     /* 19232 */   // MIs[1] false
     /* 19232 */   // No operand predicates
     /* 19232 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19234 */   // Combiner Rule #56: select_of_truncate
     /* 19234 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 19237 */ // Label 257: @19237
     /* 19237 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(19266), // Rule ID 60 //
     /* 19242 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
     /* 19245 */   // MIs[0] root
     /* 19245 */   // No operand predicates
     /* 19245 */   // MIs[0] binop
     /* 19245 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19249 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 19253 */   // MIs[1] x
     /* 19253 */   // No operand predicates
     /* 19253 */   // MIs[1] const
     /* 19253 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 19257 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19261 */   // MIs[2] imm
     /* 19261 */   // No operand predicates
     /* 19261 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 19263 */   // Combiner Rule #58: narrow_binop_add
     /* 19263 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 19266 */ // Label 258: @19266
     /* 19266 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(19295), // Rule ID 63 //
     /* 19271 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
     /* 19274 */   // MIs[0] root
     /* 19274 */   // No operand predicates
     /* 19274 */   // MIs[0] binop
     /* 19274 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19278 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
     /* 19282 */   // MIs[1] x
     /* 19282 */   // No operand predicates
     /* 19282 */   // MIs[1] const
     /* 19282 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 19286 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19290 */   // MIs[2] imm
     /* 19290 */   // No operand predicates
     /* 19290 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 19292 */   // Combiner Rule #61: narrow_binop_and
     /* 19292 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 19295 */ // Label 259: @19295
     /* 19295 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(19324), // Rule ID 62 //
     /* 19300 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
     /* 19303 */   // MIs[0] root
     /* 19303 */   // No operand predicates
     /* 19303 */   // MIs[0] binop
     /* 19303 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19307 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
     /* 19311 */   // MIs[1] x
     /* 19311 */   // No operand predicates
     /* 19311 */   // MIs[1] const
     /* 19311 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 19315 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19319 */   // MIs[2] imm
     /* 19319 */   // No operand predicates
     /* 19319 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 19321 */   // Combiner Rule #60: narrow_binop_mul
     /* 19321 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 19324 */ // Label 260: @19324
     /* 19324 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(19353), // Rule ID 64 //
     /* 19329 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
     /* 19332 */   // MIs[0] root
     /* 19332 */   // No operand predicates
     /* 19332 */   // MIs[0] binop
     /* 19332 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19336 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
     /* 19340 */   // MIs[1] x
     /* 19340 */   // No operand predicates
     /* 19340 */   // MIs[1] const
     /* 19340 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 19344 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19348 */   // MIs[2] imm
     /* 19348 */   // No operand predicates
     /* 19348 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 19350 */   // Combiner Rule #62: narrow_binop_or
     /* 19350 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 19353 */ // Label 261: @19353
     /* 19353 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(19382), // Rule ID 61 //
     /* 19358 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
     /* 19361 */   // MIs[0] root
     /* 19361 */   // No operand predicates
     /* 19361 */   // MIs[0] binop
     /* 19361 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19365 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 19369 */   // MIs[1] x
     /* 19369 */   // No operand predicates
     /* 19369 */   // MIs[1] const
     /* 19369 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 19373 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19377 */   // MIs[2] imm
     /* 19377 */   // No operand predicates
     /* 19377 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 19379 */   // Combiner Rule #59: narrow_binop_sub
     /* 19379 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 19382 */ // Label 262: @19382
     /* 19382 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(19414), // Rule ID 373 //
     /* 19387 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
     /* 19390 */   // MIs[0] dst
     /* 19390 */   // No operand predicates
     /* 19390 */   // MIs[0] min
     /* 19390 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19394 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
     /* 19398 */   // MIs[1] x
     /* 19398 */   // No operand predicates
     /* 19398 */   // MIs[1] y
     /* 19398 */   // No operand predicates
     /* 19398 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
     /* 19402 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19404 */   // Combiner Rule #224: trunc_usatu
     /* 19404 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
     /* 19407 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 19409 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 19413 */   GIR_EraseRootFromParent_Done,
     /* 19414 */ // Label 263: @19414
     /* 19414 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(19443), // Rule ID 65 //
     /* 19419 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
     /* 19422 */   // MIs[0] root
     /* 19422 */   // No operand predicates
     /* 19422 */   // MIs[0] binop
     /* 19422 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19426 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
     /* 19430 */   // MIs[1] x
     /* 19430 */   // No operand predicates
     /* 19430 */   // MIs[1] const
     /* 19430 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 19434 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19438 */   // MIs[2] imm
     /* 19438 */   // No operand predicates
     /* 19438 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 19440 */   // Combiner Rule #63: narrow_binop_xor
     /* 19440 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 19443 */ // Label 264: @19443
     /* 19443 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(19464), // Rule ID 47 //
     /* 19448 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
     /* 19451 */   // MIs[0] root
     /* 19451 */   // No operand predicates
     /* 19451 */   // MIs[0] ext
     /* 19451 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19455 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 19459 */   // MIs[1] src
     /* 19459 */   // No operand predicates
     /* 19459 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19461 */   // Combiner Rule #45: truncate_of_anyext
     /* 19461 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 19464 */ // Label 265: @19464
     /* 19464 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(19488), // Rule ID 59 //
     /* 19469 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
     /* 19472 */   // MIs[0] root
     /* 19472 */   // No operand predicates
     /* 19472 */   // MIs[0] bv
     /* 19472 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19476 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
     /* 19480 */   GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
     /* 19483 */   // MIs[1] unused
     /* 19483 */   // No operand predicates
     /* 19483 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19485 */   // Combiner Rule #57: buildvector_of_truncate
     /* 19485 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
     /* 19488 */ // Label 266: @19488
     /* 19488 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(19509), // Rule ID 46 //
     /* 19493 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
     /* 19496 */   // MIs[0] root
     /* 19496 */   // No operand predicates
     /* 19496 */   // MIs[0] ext
     /* 19496 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19500 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 19504 */   // MIs[1] src
     /* 19504 */   // No operand predicates
     /* 19504 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19506 */   // Combiner Rule #44: truncate_of_sext
     /* 19506 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 19509 */ // Label 267: @19509
     /* 19509 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(19530), // Rule ID 45 //
     /* 19514 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
     /* 19517 */   // MIs[0] root
     /* 19517 */   // No operand predicates
     /* 19517 */   // MIs[0] ext
     /* 19517 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19521 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 19525 */   // MIs[1] src
     /* 19525 */   // No operand predicates
     /* 19525 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19527 */   // Combiner Rule #43: truncate_of_zext
     /* 19527 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 19530 */ // Label 268: @19530
     /* 19530 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(19551), // Rule ID 87 //
     /* 19535 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 19538 */   // MIs[0] dst
     /* 19538 */   // No operand predicates
     /* 19538 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 19538 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19542 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 19546 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19548 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
     /* 19548 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 19551 */ // Label 269: @19551
     /* 19551 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(19572), // Rule ID 66 //
     /* 19556 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
     /* 19559 */   // MIs[0] root
     /* 19559 */   // No operand predicates
     /* 19559 */   // MIs[0] int
     /* 19559 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19563 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 19567 */   // MIs[1] imm
     /* 19567 */   // No operand predicates
     /* 19567 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19569 */   // Combiner Rule #64: integer_of_truncate
     /* 19569 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
     /* 19572 */ // Label 270: @19572
     /* 19572 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(19583), // Rule ID 371 //
     /* 19577 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
     /* 19580 */   // MIs[0] dst
     /* 19580 */   // No operand predicates
     /* 19580 */   // MIs[0] src
     /* 19580 */   // No operand predicates
     /* 19580 */   // Combiner Rule #222: trunc_ssats
     /* 19580 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
     /* 19583 */ // Label 271: @19583
     /* 19583 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(19594), // Rule ID 372 //
     /* 19588 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
     /* 19591 */   // MIs[0] dst
     /* 19591 */   // No operand predicates
     /* 19591 */   // MIs[0] src
     /* 19591 */   // No operand predicates
     /* 19591 */   // Combiner Rule #223: trunc_ssatu
     /* 19591 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
     /* 19594 */ // Label 272: @19594
     /* 19594 */ GIM_Reject,
     /* 19595 */ // Label 28: @19595
     /* 19595 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(19627), // Rule ID 374 //
     /* 19600 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
     /* 19603 */   // MIs[0] dst
     /* 19603 */   // No operand predicates
     /* 19603 */   // MIs[0] src
     /* 19603 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19607 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
     /* 19611 */   // MIs[1] x
     /* 19611 */   // No operand predicates
     /* 19611 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
     /* 19615 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19617 */   // Combiner Rule #225: truncusatu_to_fptouisat
     /* 19617 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
     /* 19620 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 19622 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 19626 */   GIR_EraseRootFromParent_Done,
     /* 19627 */ // Label 273: @19627
     /* 19627 */ GIM_Reject,
     /* 19628 */ // Label 29: @19628
     /* 19628 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(19639), // Rule ID 262 //
     /* 19633 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 19636 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
     /* 19636 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 19639 */ // Label 274: @19639
     /* 19639 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(19660), // Rule ID 51 //
     /* 19644 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
     /* 19647 */   // MIs[0] root
     /* 19647 */   // No operand predicates
     /* 19647 */   // MIs[0] second
     /* 19647 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19651 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 19655 */   // MIs[1] src
     /* 19655 */   // No operand predicates
     /* 19655 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19657 */   // Combiner Rule #49: sext_of_anyext
     /* 19657 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19660 */ // Label 275: @19660
     /* 19660 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(19681), // Rule ID 50 //
     /* 19665 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
     /* 19668 */   // MIs[0] root
     /* 19668 */   // No operand predicates
     /* 19668 */   // MIs[0] second
     /* 19668 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19672 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 19676 */   // MIs[1] src
     /* 19676 */   // No operand predicates
     /* 19676 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19678 */   // Combiner Rule #48: sext_of_sext
     /* 19678 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19681 */ // Label 276: @19681
     /* 19681 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(19702), // Rule ID 350 //
     /* 19686 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
     /* 19689 */   // MIs[0] root
     /* 19689 */   // No operand predicates
     /* 19689 */   // MIs[0] src
     /* 19689 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19693 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 19697 */   // MIs[1] x
     /* 19697 */   // No operand predicates
     /* 19697 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19699 */   // Combiner Rule #203: sext_trunc
     /* 19699 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
     /* 19702 */ // Label 277: @19702
     /* 19702 */ GIM_Reject,
     /* 19703 */ // Label 30: @19703
     /* 19703 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(19714), // Rule ID 161 //
     /* 19708 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
     /* 19711 */   // Combiner Rule #119: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
     /* 19711 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
     /* 19714 */ // Label 278: @19714
     /* 19714 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(19725), // Rule ID 169 //
     /* 19719 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
     /* 19722 */   // Combiner Rule #127: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
     /* 19722 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
     /* 19725 */ // Label 279: @19725
     /* 19725 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(19736), // Rule ID 231 //
     /* 19730 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
     /* 19733 */   // Combiner Rule #166: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
     /* 19733 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
     /* 19736 */ // Label 280: @19736
     /* 19736 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(19747), // Rule ID 390 //
     /* 19741 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
     /* 19744 */   // Combiner Rule #236: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
     /* 19744 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
     /* 19747 */ // Label 281: @19747
     /* 19747 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(19768), // Rule ID 55 //
     /* 19752 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
     /* 19755 */   // MIs[0] dst
     /* 19755 */   // No operand predicates
     /* 19755 */   // MIs[0] x
     /* 19755 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19759 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
     /* 19763 */   // MIs[1] src
     /* 19763 */   // No operand predicates
     /* 19763 */   // MIs[1] a
     /* 19763 */   // No operand predicates
     /* 19763 */   // MIs[0] b
     /* 19763 */   // No operand predicates
     /* 19763 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19765 */   // Combiner Rule #53: sext_inreg_of_sext_inreg
     /* 19765 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
     /* 19768 */ // Label 282: @19768
     /* 19768 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(19779), // Rule ID 173 //
     /* 19773 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
     /* 19776 */   // MIs[0] dst
     /* 19776 */   // No operand predicates
     /* 19776 */   // MIs[0] src
     /* 19776 */   // No operand predicates
     /* 19776 */   // MIs[0] imm
     /* 19776 */   // No operand predicates
     /* 19776 */   // Combiner Rule #131: sext_inreg_to_zext_inreg
     /* 19776 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
     /* 19779 */ // Label 283: @19779
     /* 19779 */ GIM_Reject,
     /* 19780 */ // Label 31: @19780
     /* 19780 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(19791), // Rule ID 172 //
     /* 19785 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
     /* 19788 */   // Combiner Rule #130: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
     /* 19788 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
     /* 19791 */ // Label 284: @19791
     /* 19791 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(19802), // Rule ID 261 //
     /* 19796 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 19799 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
     /* 19799 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 19802 */ // Label 285: @19802
     /* 19802 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(19823), // Rule ID 56 //
     /* 19807 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
     /* 19810 */   // MIs[0] root
     /* 19810 */   // No operand predicates
     /* 19810 */   // MIs[0] select
     /* 19810 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19814 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 19818 */   // MIs[1] cond
     /* 19818 */   // No operand predicates
     /* 19818 */   // MIs[1] true
     /* 19818 */   // No operand predicates
     /* 19818 */   // MIs[1] false
     /* 19818 */   // No operand predicates
     /* 19818 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19820 */   // Combiner Rule #54: select_of_zext
     /* 19820 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 19823 */ // Label 286: @19823
     /* 19823 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(19844), // Rule ID 49 //
     /* 19828 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
     /* 19831 */   // MIs[0] root
     /* 19831 */   // No operand predicates
     /* 19831 */   // MIs[0] second
     /* 19831 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19835 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 19839 */   // MIs[1] src
     /* 19839 */   // No operand predicates
     /* 19839 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19841 */   // Combiner Rule #47: zext_of_anyext
     /* 19841 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19844 */ // Label 287: @19844
     /* 19844 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(19871), // Rule ID 351 //
     /* 19849 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
     /* 19852 */   // MIs[0] root
     /* 19852 */   // No operand predicates
     /* 19852 */   // MIs[0] src
     /* 19852 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19856 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 19860 */   GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
     /* 19866 */   // MIs[1] x
     /* 19866 */   // No operand predicates
     /* 19866 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19868 */   // Combiner Rule #204: zext_trunc
     /* 19868 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
     /* 19871 */ // Label 288: @19871
     /* 19871 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(19892), // Rule ID 48 //
     /* 19876 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
     /* 19879 */   // MIs[0] root
     /* 19879 */   // No operand predicates
     /* 19879 */   // MIs[0] second
     /* 19879 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 19883 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 19887 */   // MIs[1] src
     /* 19887 */   // No operand predicates
     /* 19887 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 19889 */   // Combiner Rule #46: zext_of_zext
     /* 19889 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 19892 */ // Label 289: @19892
     /* 19892 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(19909), // Rule ID 352 //
     /* 19897 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
     /* 19900 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
     /* 19906 */   // MIs[0] root
     /* 19906 */   // No operand predicates
     /* 19906 */   // MIs[0] x
     /* 19906 */   // No operand predicates
     /* 19906 */   // Combiner Rule #205: nneg_zext
     /* 19906 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
     /* 19909 */ // Label 290: @19909
     /* 19909 */ GIM_Reject,
     /* 19910 */ // Label 32: @19910
     /* 19910 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(19921), // Rule ID 80 //
     /* 19915 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 19918 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
     /* 19918 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 19921 */ // Label 291: @19921
     /* 19921 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(19932), // Rule ID 83 //
     /* 19926 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 19929 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
     /* 19929 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 19932 */ // Label 292: @19932
     /* 19932 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(19943), // Rule ID 116 //
     /* 19937 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 19940 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SHL'
     /* 19940 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 19943 */ // Label 293: @19943
     /* 19943 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(19954), // Rule ID 202 //
     /* 19948 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 19951 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_SHL'
     /* 19951 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 19954 */ // Label 294: @19954
     /* 19954 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(19965), // Rule ID 207 //
     /* 19959 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 19962 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
     /* 19962 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 19965 */ // Label 295: @19965
     /* 19965 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(19976), // Rule ID 230 //
     /* 19970 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
     /* 19973 */   // Combiner Rule #165: commute_shift; wip_match_opcode 'G_SHL'
     /* 19973 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
     /* 19976 */ // Label 296: @19976
     /* 19976 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(19987), // Rule ID 244 //
     /* 19981 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 19984 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SHL'
     /* 19984 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 19987 */ // Label 297: @19987
     /* 19987 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(19998), // Rule ID 293 //
     /* 19992 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 19995 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SHL'
     /* 19995 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 19998 */ // Label 298: @19998
     /* 19998 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(20033), // Rule ID 41 //
     /* 20003 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
     /* 20006 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 20012 */   // MIs[0] root
     /* 20012 */   // No operand predicates
     /* 20012 */   // MIs[0] left
     /* 20012 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 20016 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 20020 */   // MIs[1] imm
     /* 20020 */   // No operand predicates
     /* 20020 */   // MIs[0] x
     /* 20020 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 20024 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 20028 */   // MIs[2] imm1
     /* 20028 */   // No operand predicates
     /* 20028 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 20030 */   // Combiner Rule #39: shl_of_vscale
     /* 20030 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
     /* 20033 */ // Label 299: @20033
     /* 20033 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(20056), // Rule ID 108 //
     /* 20038 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 20041 */   // MIs[0] dst
     /* 20041 */   // No operand predicates
     /* 20041 */   // MIs[0] lhs
     /* 20041 */   // No operand predicates
     /* 20041 */   // MIs[0] Operand 2
     /* 20041 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 20045 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20050 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[4]]
     /* 20050 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20055 */   GIR_EraseRootFromParent_Done,
     /* 20056 */ // Label 300: @20056
     /* 20056 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(20067), // Rule ID 146 //
     /* 20061 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 20064 */   // MIs[0] root
     /* 20064 */   // No operand predicates
     /* 20064 */   // MIs[0] mi.shifted
     /* 20064 */   // No operand predicates
     /* 20064 */   // MIs[0] mi.amt
     /* 20064 */   // No operand predicates
     /* 20064 */   // Combiner Rule #106: shifts_too_big @ [mi[0]]
     /* 20064 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 20067 */ // Label 301: @20067
     /* 20067 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(20078), // Rule ID 162 //
     /* 20072 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
     /* 20075 */   // MIs[0] dst
     /* 20075 */   // No operand predicates
     /* 20075 */   // MIs[0] src0
     /* 20075 */   // No operand predicates
     /* 20075 */   // MIs[0] src1
     /* 20075 */   // No operand predicates
     /* 20075 */   // Combiner Rule #120: reduce_shl_of_extend
     /* 20075 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
     /* 20078 */ // Label 302: @20078
     /* 20078 */ GIM_Reject,
     /* 20079 */ // Label 33: @20079
     /* 20079 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(20090), // Rule ID 85 //
     /* 20084 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 20087 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
     /* 20087 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 20090 */ // Label 303: @20090
     /* 20090 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(20101), // Rule ID 117 //
     /* 20095 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 20098 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_LSHR'
     /* 20098 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 20101 */ // Label 304: @20101
     /* 20101 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(20112), // Rule ID 204 //
     /* 20106 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 20109 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_LSHR'
     /* 20109 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 20112 */ // Label 305: @20112
     /* 20112 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(20123), // Rule ID 209 //
     /* 20117 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 20120 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
     /* 20120 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 20123 */ // Label 306: @20123
     /* 20123 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(20134), // Rule ID 234 //
     /* 20128 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
     /* 20131 */   // Combiner Rule #168: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
     /* 20131 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
     /* 20134 */ // Label 307: @20134
     /* 20134 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(20145), // Rule ID 236 //
     /* 20139 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
     /* 20142 */   // Combiner Rule #169: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
     /* 20142 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
     /* 20145 */ // Label 308: @20145
     /* 20145 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(20156), // Rule ID 241 //
     /* 20150 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 20153 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_LSHR'
     /* 20153 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 20156 */ // Label 309: @20156
     /* 20156 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(20167), // Rule ID 291 //
     /* 20161 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 20164 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_LSHR'
     /* 20164 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 20167 */ // Label 310: @20167
     /* 20167 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(20196), // Rule ID 375 //
     /* 20172 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
     /* 20175 */   // MIs[0] dst
     /* 20175 */   // No operand predicates
     /* 20175 */   // MIs[0] d2
     /* 20175 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 20179 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 20183 */   // MIs[1] d1
     /* 20183 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 20187 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 20191 */   // MIs[2] x
     /* 20191 */   // No operand predicates
     /* 20191 */   // MIs[2] y
     /* 20191 */   // No operand predicates
     /* 20191 */   // MIs[0] z
     /* 20191 */   // No operand predicates
     /* 20191 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 20193 */   // Combiner Rule #226: lshr_of_trunc_of_lshr
     /* 20193 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
     /* 20196 */ // Label 311: @20196
     /* 20196 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(20219), // Rule ID 110 //
     /* 20201 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 20204 */   // MIs[0] dst
     /* 20204 */   // No operand predicates
     /* 20204 */   // MIs[0] lhs
     /* 20204 */   // No operand predicates
     /* 20204 */   // MIs[0] Operand 2
     /* 20204 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 20208 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20213 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[6]]
     /* 20213 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20218 */   GIR_EraseRootFromParent_Done,
     /* 20219 */ // Label 312: @20219
     /* 20219 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(20230), // Rule ID 148 //
     /* 20224 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 20227 */   // MIs[0] root
     /* 20227 */   // No operand predicates
     /* 20227 */   // MIs[0] mi.shifted
     /* 20227 */   // No operand predicates
     /* 20227 */   // MIs[0] mi.amt
     /* 20227 */   // No operand predicates
     /* 20227 */   // Combiner Rule #106: shifts_too_big @ [mi[2]]
     /* 20227 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 20230 */ // Label 313: @20230
     /* 20230 */ GIM_Reject,
     /* 20231 */ // Label 34: @20231
     /* 20231 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(20242), // Rule ID 84 //
     /* 20236 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 20239 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
     /* 20239 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 20242 */ // Label 314: @20242
     /* 20242 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(20253), // Rule ID 118 //
     /* 20247 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 20250 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_ASHR'
     /* 20250 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 20253 */ // Label 315: @20253
     /* 20253 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(20264), // Rule ID 159 //
     /* 20258 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
     /* 20261 */   // Combiner Rule #117: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
     /* 20261 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
     /* 20264 */ // Label 316: @20264
     /* 20264 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(20275), // Rule ID 203 //
     /* 20269 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 20272 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_ASHR'
     /* 20272 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 20275 */ // Label 317: @20275
     /* 20275 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(20286), // Rule ID 208 //
     /* 20280 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 20283 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
     /* 20283 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 20286 */ // Label 318: @20286
     /* 20286 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(20297), // Rule ID 233 //
     /* 20291 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
     /* 20294 */   // Combiner Rule #168: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
     /* 20294 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
     /* 20297 */ // Label 319: @20297
     /* 20297 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(20308), // Rule ID 235 //
     /* 20302 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
     /* 20305 */   // Combiner Rule #169: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
     /* 20305 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
     /* 20308 */ // Label 320: @20308
     /* 20308 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(20319), // Rule ID 240 //
     /* 20313 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 20316 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_ASHR'
     /* 20316 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 20319 */ // Label 321: @20319
     /* 20319 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(20330), // Rule ID 292 //
     /* 20324 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 20327 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ASHR'
     /* 20327 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 20330 */ // Label 322: @20330
     /* 20330 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(20353), // Rule ID 109 //
     /* 20335 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 20338 */   // MIs[0] dst
     /* 20338 */   // No operand predicates
     /* 20338 */   // MIs[0] lhs
     /* 20338 */   // No operand predicates
     /* 20338 */   // MIs[0] Operand 2
     /* 20338 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 20342 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20347 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[5]]
     /* 20347 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20352 */   GIR_EraseRootFromParent_Done,
     /* 20353 */ // Label 323: @20353
     /* 20353 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(20364), // Rule ID 147 //
     /* 20358 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 20361 */   // MIs[0] root
     /* 20361 */   // No operand predicates
     /* 20361 */   // MIs[0] mi.shifted
     /* 20361 */   // No operand predicates
     /* 20361 */   // MIs[0] mi.amt
     /* 20361 */   // No operand predicates
     /* 20361 */   // Combiner Rule #106: shifts_too_big @ [mi[1]]
     /* 20361 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 20364 */ // Label 324: @20364
     /* 20364 */ GIM_Reject,
     /* 20365 */ // Label 35: @20365
     /* 20365 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(20376), // Rule ID 218 //
     /* 20370 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
     /* 20373 */   // Combiner Rule #157: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
     /* 20373 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
     /* 20376 */ // Label 325: @20376
     /* 20376 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(20387), // Rule ID 222 //
     /* 20381 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
     /* 20384 */   // Combiner Rule #160: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
     /* 20384 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
     /* 20387 */ // Label 326: @20387
     /* 20387 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(20407), // Rule ID 221 //
     /* 20392 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
     /* 20395 */   // MIs[0] x
     /* 20395 */   // No operand predicates
     /* 20395 */   // MIs[0] y
     /* 20395 */   // No operand predicates
     /* 20395 */   // MIs[0] z
     /* 20395 */   // No operand predicates
     /* 20395 */   // MIs[0] Operand 3
     /* 20395 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
     /* 20399 */   // Combiner Rule #159: funnel_shift_left_zero
     /* 20399 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
     /* 20402 */   GIR_RootToRootCopy, /*OpIdx*/0, // x
     /* 20404 */   GIR_RootToRootCopy, /*OpIdx*/1, // y
     /* 20406 */   GIR_EraseRootFromParent_Done,
     /* 20407 */ // Label 327: @20407
     /* 20407 */ GIM_Reject,
     /* 20408 */ // Label 36: @20408
     /* 20408 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(20419), // Rule ID 219 //
     /* 20413 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
     /* 20416 */   // Combiner Rule #157: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
     /* 20416 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
     /* 20419 */ // Label 328: @20419
     /* 20419 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(20430), // Rule ID 223 //
     /* 20424 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
     /* 20427 */   // Combiner Rule #160: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
     /* 20427 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
     /* 20430 */ // Label 329: @20430
     /* 20430 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(20450), // Rule ID 220 //
     /* 20435 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
     /* 20438 */   // MIs[0] x
     /* 20438 */   // No operand predicates
     /* 20438 */   // MIs[0] y
     /* 20438 */   // No operand predicates
     /* 20438 */   // MIs[0] z
     /* 20438 */   // No operand predicates
     /* 20438 */   // MIs[0] Operand 3
     /* 20438 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
     /* 20442 */   // Combiner Rule #158: funnel_shift_right_zero
     /* 20442 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
     /* 20445 */   GIR_RootToRootCopy, /*OpIdx*/0, // x
     /* 20447 */   GIR_RootToRootCopy, /*OpIdx*/2, // z
     /* 20449 */   GIR_EraseRootFromParent_Done,
     /* 20450 */ // Label 330: @20450
     /* 20450 */ GIM_Reject,
     /* 20451 */ // Label 37: @20451
     /* 20451 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(20474), // Rule ID 113 //
     /* 20456 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 20459 */   // MIs[0] dst
     /* 20459 */   // No operand predicates
     /* 20459 */   // MIs[0] lhs
     /* 20459 */   // No operand predicates
     /* 20459 */   // MIs[0] Operand 2
     /* 20459 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 20463 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20468 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[9]]
     /* 20468 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20473 */   GIR_EraseRootFromParent_Done,
     /* 20474 */ // Label 331: @20474
     /* 20474 */ GIM_Reject,
     /* 20475 */ // Label 38: @20475
     /* 20475 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(20498), // Rule ID 112 //
     /* 20480 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 20483 */   // MIs[0] dst
     /* 20483 */   // No operand predicates
     /* 20483 */   // MIs[0] lhs
     /* 20483 */   // No operand predicates
     /* 20483 */   // MIs[0] Operand 2
     /* 20483 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 20487 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20492 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[8]]
     /* 20492 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 20497 */   GIR_EraseRootFromParent_Done,
     /* 20498 */ // Label 332: @20498
     /* 20498 */ GIM_Reject,
     /* 20499 */ // Label 39: @20499
     /* 20499 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(20510), // Rule ID 154 //
     /* 20504 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
     /* 20507 */   // Combiner Rule #112: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
     /* 20507 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
     /* 20510 */ // Label 333: @20510
     /* 20510 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(20521), // Rule ID 155 //
     /* 20515 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
     /* 20518 */   // Combiner Rule #113: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
     /* 20518 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
     /* 20521 */ // Label 334: @20521
     /* 20521 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(20532), // Rule ID 158 //
     /* 20526 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
     /* 20529 */   // Combiner Rule #116: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
     /* 20529 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
     /* 20532 */ // Label 335: @20532
     /* 20532 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(20543), // Rule ID 152 //
     /* 20537 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
     /* 20540 */   // MIs[0] root
     /* 20540 */   // No operand predicates
     /* 20540 */   // MIs[0] pred
     /* 20540 */   // No operand predicates
     /* 20540 */   // MIs[0] lhs
     /* 20540 */   // No operand predicates
     /* 20540 */   // MIs[0] rhs
     /* 20540 */   // No operand predicates
     /* 20540 */   // Combiner Rule #110: canonicalize_icmp
     /* 20540 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
     /* 20543 */ // Label 336: @20543
     /* 20543 */ GIM_Reject,
     /* 20544 */ // Label 40: @20544
     /* 20544 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(20555), // Rule ID 153 //
     /* 20549 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
     /* 20552 */   // MIs[0] root
     /* 20552 */   // No operand predicates
     /* 20552 */   // MIs[0] pred
     /* 20552 */   // No operand predicates
     /* 20552 */   // MIs[0] lhs
     /* 20552 */   // No operand predicates
     /* 20552 */   // MIs[0] rhs
     /* 20552 */   // No operand predicates
     /* 20552 */   // Combiner Rule #111: canonicalize_fcmp
     /* 20552 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
     /* 20555 */ // Label 337: @20555
     /* 20555 */ GIM_Reject,
     /* 20556 */ // Label 41: @20556
     /* 20556 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(20567), // Rule ID 103 //
     /* 20561 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
     /* 20564 */   // Combiner Rule #83: select_same_val; wip_match_opcode 'G_SELECT'
     /* 20564 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
     /* 20567 */ // Label 338: @20567
     /* 20567 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(20578), // Rule ID 165 //
     /* 20572 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
     /* 20575 */   // Combiner Rule #123: select_constant_cmp; wip_match_opcode 'G_SELECT'
     /* 20575 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
     /* 20578 */ // Label 339: @20578
     /* 20578 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(20589), // Rule ID 167 //
     /* 20583 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
     /* 20586 */   // Combiner Rule #125: match_selects; wip_match_opcode 'G_SELECT'
     /* 20586 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
     /* 20589 */ // Label 340: @20589
     /* 20589 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(20600), // Rule ID 315 //
     /* 20594 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
     /* 20597 */   // Combiner Rule #195: select_to_minmax; wip_match_opcode 'G_SELECT'
     /* 20597 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
     /* 20600 */ // Label 341: @20600
     /* 20600 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(20627), // Rule ID 376 //
     /* 20605 */   GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy),
     /* 20608 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
     /* 20611 */   GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
     /* 20614 */   // MIs[0] cond
     /* 20614 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 20618 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
     /* 20622 */   // MIs[1] pred
     /* 20622 */   // No operand predicates
     /* 20622 */   // MIs[1] lhs
     /* 20622 */   // No operand predicates
     /* 20622 */   // MIs[1] rhs
     /* 20622 */   // No operand predicates
     /* 20622 */   // MIs[0] true
     /* 20622 */   // No operand predicates
     /* 20622 */   // MIs[0] false
     /* 20622 */   // No operand predicates
     /* 20622 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 20624 */   // Combiner Rule #227: fcmp_select_to_fmin_fmax_legacy
     /* 20624 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
     /* 20627 */ // Label 342: @20627
     /* 20627 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(20648), // Rule ID 166 //
     /* 20632 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
     /* 20635 */   // MIs[0] root
     /* 20635 */   // No operand predicates
     /* 20635 */   // MIs[0] tst
     /* 20635 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 20639 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 20643 */   // MIs[1] tst1
     /* 20643 */   // No operand predicates
     /* 20643 */   // MIs[1] a
     /* 20643 */   // No operand predicates
     /* 20643 */   // MIs[1] b
     /* 20643 */   // No operand predicates
     /* 20643 */   // MIs[0] x
     /* 20643 */   // No operand predicates
     /* 20643 */   // MIs[0] y
     /* 20643 */   // No operand predicates
     /* 20643 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 20645 */   // Combiner Rule #124: select_to_iminmax
     /* 20645 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
     /* 20648 */ // Label 343: @20648
     /* 20648 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(20677), // Rule ID 164 //
     /* 20653 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
     /* 20656 */   // MIs[0] dst
     /* 20656 */   // No operand predicates
     /* 20656 */   // MIs[0] undef
     /* 20656 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 20660 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 20664 */   // MIs[0] x
     /* 20664 */   // No operand predicates
     /* 20664 */   // MIs[0] y
     /* 20664 */   // No operand predicates
     /* 20664 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
     /* 20669 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 20671 */   // Combiner Rule #122: select_undef_cmp
     /* 20671 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
     /* 20676 */   GIR_EraseRootFromParent_Done,
     /* 20677 */ // Label 344: @20677
     /* 20677 */ GIM_Reject,
     /* 20678 */ // Label 42: @20678
     /* 20678 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(20689), // Rule ID 326 //
     /* 20683 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20686 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
     /* 20686 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20689 */ // Label 345: @20689
     /* 20689 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(20700), // Rule ID 368 //
     /* 20694 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
     /* 20697 */   // Combiner Rule #220: match_addos; wip_match_opcode 'G_UADDO'
     /* 20697 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
     /* 20700 */ // Label 346: @20700
     /* 20700 */ GIM_Reject,
     /* 20701 */ // Label 43: @20701
     /* 20701 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(20712), // Rule ID 191 //
     /* 20706 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 20709 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_UADDE'
     /* 20709 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 20712 */ // Label 347: @20712
     /* 20712 */ GIM_Reject,
     /* 20713 */ // Label 44: @20713
     /* 20713 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(20724), // Rule ID 370 //
     /* 20718 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
     /* 20721 */   // Combiner Rule #221: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
     /* 20721 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
     /* 20724 */ // Label 348: @20724
     /* 20724 */ GIM_Reject,
     /* 20725 */ // Label 45: @20725
     /* 20725 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(20736), // Rule ID 193 //
     /* 20730 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 20733 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_USUBE'
     /* 20733 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 20736 */ // Label 349: @20736
     /* 20736 */ GIM_Reject,
     /* 20737 */ // Label 46: @20737
     /* 20737 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(20748), // Rule ID 327 //
     /* 20742 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20745 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
     /* 20745 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20748 */ // Label 350: @20748
     /* 20748 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(20759), // Rule ID 367 //
     /* 20753 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
     /* 20756 */   // Combiner Rule #220: match_addos; wip_match_opcode 'G_SADDO'
     /* 20756 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
     /* 20759 */ // Label 351: @20759
     /* 20759 */ GIM_Reject,
     /* 20760 */ // Label 47: @20760
     /* 20760 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(20771), // Rule ID 192 //
     /* 20765 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 20768 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_SADDE'
     /* 20768 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 20771 */ // Label 352: @20771
     /* 20771 */ GIM_Reject,
     /* 20772 */ // Label 48: @20772
     /* 20772 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(20783), // Rule ID 369 //
     /* 20777 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
     /* 20780 */   // Combiner Rule #221: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
     /* 20780 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
     /* 20783 */ // Label 353: @20783
     /* 20783 */ GIM_Reject,
     /* 20784 */ // Label 49: @20784
     /* 20784 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(20795), // Rule ID 194 //
     /* 20789 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 20792 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_SSUBE'
     /* 20792 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 20795 */ // Label 354: @20795
     /* 20795 */ GIM_Reject,
     /* 20796 */ // Label 50: @20796
     /* 20796 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(20807), // Rule ID 187 //
     /* 20801 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
     /* 20804 */   // Combiner Rule #145: mulo_by_2; wip_match_opcode 'G_UMULO'
     /* 20804 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
     /* 20807 */ // Label 355: @20807
     /* 20807 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(20818), // Rule ID 189 //
     /* 20812 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
     /* 20815 */   // Combiner Rule #146: mulo_by_0; wip_match_opcode 'G_UMULO'
     /* 20815 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
     /* 20818 */ // Label 356: @20818
     /* 20818 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(20829), // Rule ID 328 //
     /* 20823 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20826 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
     /* 20826 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20829 */ // Label 357: @20829
     /* 20829 */ GIM_Reject,
     /* 20830 */ // Label 51: @20830
     /* 20830 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(20841), // Rule ID 188 //
     /* 20835 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
     /* 20838 */   // Combiner Rule #145: mulo_by_2; wip_match_opcode 'G_SMULO'
     /* 20838 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
     /* 20841 */ // Label 358: @20841
     /* 20841 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(20852), // Rule ID 190 //
     /* 20846 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
     /* 20849 */   // Combiner Rule #146: mulo_by_0; wip_match_opcode 'G_SMULO'
     /* 20849 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
     /* 20852 */ // Label 359: @20852
     /* 20852 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(20863), // Rule ID 329 //
     /* 20857 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20860 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
     /* 20860 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20863 */ // Label 360: @20863
     /* 20863 */ GIM_Reject,
     /* 20864 */ // Label 52: @20864
     /* 20864 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(20875), // Rule ID 265 //
     /* 20869 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
     /* 20872 */   // Combiner Rule #175: mulh_to_lshr; wip_match_opcode 'G_UMULH'
     /* 20872 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
     /* 20875 */ // Label 361: @20875
     /* 20875 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(20886), // Rule ID 330 //
     /* 20880 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20883 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
     /* 20883 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20886 */ // Label 362: @20886
     /* 20886 */ GIM_Reject,
     /* 20887 */ // Label 53: @20887
     /* 20887 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(20898), // Rule ID 331 //
     /* 20892 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20895 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
     /* 20895 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20898 */ // Label 363: @20898
     /* 20898 */ GIM_Reject,
     /* 20899 */ // Label 54: @20899
     /* 20899 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(20910), // Rule ID 332 //
     /* 20904 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20907 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
     /* 20907 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20910 */ // Label 364: @20910
     /* 20910 */ GIM_Reject,
     /* 20911 */ // Label 55: @20911
     /* 20911 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(20922), // Rule ID 333 //
     /* 20916 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20919 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
     /* 20919 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20922 */ // Label 365: @20922
     /* 20922 */ GIM_Reject,
     /* 20923 */ // Label 56: @20923
     /* 20923 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(20934), // Rule ID 206 //
     /* 20928 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 20931 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
     /* 20931 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 20934 */ // Label 366: @20934
     /* 20934 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(20945), // Rule ID 210 //
     /* 20939 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 20942 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
     /* 20942 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 20945 */ // Label 367: @20945
     /* 20945 */ GIM_Reject,
     /* 20946 */ // Label 57: @20946
     /* 20946 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(20957), // Rule ID 205 //
     /* 20951 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 20954 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
     /* 20954 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 20957 */ // Label 368: @20957
     /* 20957 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(20968), // Rule ID 211 //
     /* 20962 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 20965 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
     /* 20965 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 20968 */ // Label 369: @20968
     /* 20968 */ GIM_Reject,
     /* 20969 */ // Label 58: @20969
     /* 20969 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(20980), // Rule ID 334 //
     /* 20974 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20977 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
     /* 20977 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20980 */ // Label 370: @20980
     /* 20980 */ GIM_Reject,
     /* 20981 */ // Label 59: @20981
     /* 20981 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(20992), // Rule ID 335 //
     /* 20986 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 20989 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
     /* 20989 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 20992 */ // Label 371: @20992
     /* 20992 */ GIM_Reject,
     /* 20993 */ // Label 60: @20993
     /* 20993 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(21004), // Rule ID 336 //
     /* 20998 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 21001 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
     /* 21001 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 21004 */ // Label 372: @21004
     /* 21004 */ GIM_Reject,
     /* 21005 */ // Label 61: @21005
     /* 21005 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(21016), // Rule ID 337 //
     /* 21010 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 21013 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
     /* 21013 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 21016 */ // Label 373: @21016
     /* 21016 */ GIM_Reject,
     /* 21017 */ // Label 62: @21017
     /* 21017 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(21028), // Rule ID 255 //
     /* 21022 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 21025 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
     /* 21025 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 21028 */ // Label 374: @21028
     /* 21028 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(21039), // Rule ID 266 //
     /* 21033 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 21036 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FADD'
     /* 21036 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 21039 */ // Label 375: @21039
     /* 21039 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(21050), // Rule ID 273 //
     /* 21044 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
     /* 21047 */   // Combiner Rule #178: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 21047 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
     /* 21050 */ // Label 376: @21050
     /* 21050 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(21061), // Rule ID 274 //
     /* 21055 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
     /* 21058 */   // Combiner Rule #179: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 21058 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
     /* 21061 */ // Label 377: @21061
     /* 21061 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(21072), // Rule ID 275 //
     /* 21066 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
     /* 21069 */   // Combiner Rule #180: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 21069 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
     /* 21072 */ // Label 378: @21072
     /* 21072 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(21083), // Rule ID 276 //
     /* 21077 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
     /* 21080 */   // Combiner Rule #181: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 21080 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
     /* 21083 */ // Label 379: @21083
     /* 21083 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(21094), // Rule ID 299 //
     /* 21088 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21091 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FADD'
     /* 21091 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21094 */ // Label 380: @21094
     /* 21094 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(21105), // Rule ID 338 //
     /* 21099 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 21102 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
     /* 21102 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 21105 */ // Label 381: @21105
     /* 21105 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(21128), // Rule ID 138 //
     /* 21110 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
     /* 21113 */   // MIs[0] dst
     /* 21113 */   // No operand predicates
     /* 21113 */   // MIs[0] x
     /* 21113 */   // No operand predicates
     /* 21113 */   // MIs[0] y
     /* 21113 */   // No operand predicates
     /* 21113 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
     /* 21117 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21122 */   // Combiner Rule #100: right_identity_neg_zero_fp
     /* 21122 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21127 */   GIR_EraseRootFromParent_Done,
     /* 21128 */ // Label 382: @21128
     /* 21128 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(21157), // Rule ID 139 //
     /* 21133 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
     /* 21136 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
     /* 21142 */   // MIs[0] dst
     /* 21142 */   // No operand predicates
     /* 21142 */   // MIs[0] x
     /* 21142 */   // No operand predicates
     /* 21142 */   // MIs[0] y
     /* 21142 */   // No operand predicates
     /* 21142 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
     /* 21146 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21151 */   // Combiner Rule #101: right_identity_neg_zero_fp_nsz
     /* 21151 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21156 */   GIR_EraseRootFromParent_Done,
     /* 21157 */ // Label 383: @21157
     /* 21157 */ GIM_Reject,
     /* 21158 */ // Label 63: @21158
     /* 21158 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(21169), // Rule ID 256 //
     /* 21163 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 21166 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
     /* 21166 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 21169 */ // Label 384: @21169
     /* 21169 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(21180), // Rule ID 267 //
     /* 21174 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 21177 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FSUB'
     /* 21177 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 21180 */ // Label 385: @21180
     /* 21180 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(21191), // Rule ID 277 //
     /* 21185 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
     /* 21188 */   // Combiner Rule #182: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 21188 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
     /* 21191 */ // Label 386: @21191
     /* 21191 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(21202), // Rule ID 278 //
     /* 21196 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
     /* 21199 */   // Combiner Rule #183: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 21199 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
     /* 21202 */ // Label 387: @21202
     /* 21202 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(21213), // Rule ID 279 //
     /* 21207 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
     /* 21210 */   // Combiner Rule #184: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 21210 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
     /* 21213 */ // Label 388: @21213
     /* 21213 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(21224), // Rule ID 280 //
     /* 21218 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
     /* 21221 */   // Combiner Rule #185: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 21221 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
     /* 21224 */ // Label 389: @21224
     /* 21224 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(21235), // Rule ID 300 //
     /* 21229 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21232 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FSUB'
     /* 21232 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21235 */ // Label 390: @21235
     /* 21235 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(21246), // Rule ID 316 //
     /* 21240 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
     /* 21243 */   // Combiner Rule #196: fsub_to_fneg; wip_match_opcode 'G_FSUB'
     /* 21243 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
     /* 21246 */ // Label 391: @21246
     /* 21246 */ GIM_Reject,
     /* 21247 */ // Label 64: @21247
     /* 21247 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(21258), // Rule ID 257 //
     /* 21252 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 21255 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
     /* 21255 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 21258 */ // Label 392: @21258
     /* 21258 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(21269), // Rule ID 268 //
     /* 21263 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 21266 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMUL'
     /* 21266 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 21269 */ // Label 393: @21269
     /* 21269 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(21280), // Rule ID 298 //
     /* 21274 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21277 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMUL'
     /* 21277 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21280 */ // Label 394: @21280
     /* 21280 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(21291), // Rule ID 339 //
     /* 21285 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 21288 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
     /* 21288 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 21291 */ // Label 395: @21291
     /* 21291 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(21312), // Rule ID 378 //
     /* 21296 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
     /* 21299 */   // MIs[0] dst
     /* 21299 */   // No operand predicates
     /* 21299 */   // MIs[0] x
     /* 21299 */   // No operand predicates
     /* 21299 */   // MIs[0] select
     /* 21299 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 21303 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 21307 */   // MIs[1] y
     /* 21307 */   // No operand predicates
     /* 21307 */   // MIs[1] A
     /* 21307 */   // No operand predicates
     /* 21307 */   // MIs[1] B
     /* 21307 */   // No operand predicates
     /* 21307 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21309 */   // Combiner Rule #229: combine_fmul_with_select_to_fldexp
     /* 21309 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
     /* 21312 */ // Label 396: @21312
     /* 21312 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(21335), // Rule ID 129 //
     /* 21317 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
     /* 21320 */   // MIs[0] dst
     /* 21320 */   // No operand predicates
     /* 21320 */   // MIs[0] x
     /* 21320 */   // No operand predicates
     /* 21320 */   // MIs[0] y
     /* 21320 */   // No operand predicates
     /* 21320 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
     /* 21324 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21329 */   // Combiner Rule #93: right_identity_one_fp
     /* 21329 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21334 */   GIR_EraseRootFromParent_Done,
     /* 21335 */ // Label 397: @21335
     /* 21335 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(21355), // Rule ID 140 //
     /* 21340 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
     /* 21343 */   // MIs[0] dst
     /* 21343 */   // No operand predicates
     /* 21343 */   // MIs[0] x
     /* 21343 */   // No operand predicates
     /* 21343 */   // MIs[0] y
     /* 21343 */   // No operand predicates
     /* 21343 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
     /* 21347 */   // Combiner Rule #102: right_identity_neg_one_fp
     /* 21347 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 21350 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 21352 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 21354 */   GIR_EraseRootFromParent_Done,
     /* 21355 */ // Label 398: @21355
     /* 21355 */ GIM_Reject,
     /* 21356 */ // Label 65: @21356
     /* 21356 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(21367), // Rule ID 260 //
     /* 21361 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
     /* 21364 */   // Combiner Rule #172: constant_fold_fma; wip_match_opcode 'G_FMA'
     /* 21364 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
     /* 21367 */ // Label 399: @21367
     /* 21367 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(21378), // Rule ID 271 //
     /* 21372 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 21375 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMA'
     /* 21375 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 21378 */ // Label 400: @21378
     /* 21378 */ GIM_Reject,
     /* 21379 */ // Label 66: @21379
     /* 21379 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(21390), // Rule ID 259 //
     /* 21384 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
     /* 21387 */   // Combiner Rule #172: constant_fold_fma; wip_match_opcode 'G_FMAD'
     /* 21387 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
     /* 21390 */ // Label 401: @21390
     /* 21390 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(21401), // Rule ID 270 //
     /* 21395 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 21398 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMAD'
     /* 21398 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 21401 */ // Label 402: @21401
     /* 21401 */ GIM_Reject,
     /* 21402 */ // Label 67: @21402
     /* 21402 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(21413), // Rule ID 258 //
     /* 21407 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 21410 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
     /* 21410 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 21413 */ // Label 403: @21413
     /* 21413 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(21424), // Rule ID 269 //
     /* 21418 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 21421 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FDIV'
     /* 21421 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 21424 */ // Label 404: @21424
     /* 21424 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(21435), // Rule ID 301 //
     /* 21429 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21432 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FDIV'
     /* 21432 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21435 */ // Label 405: @21435
     /* 21435 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(21474), // Rule ID 389 //
     /* 21440 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
     /* 21443 */   GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
     /* 21446 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
     /* 21449 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
     /* 21455 */   // MIs[0] y
     /* 21455 */   // No operand predicates
     /* 21455 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 21459 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
     /* 21463 */   GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
     /* 21469 */   // MIs[1] x
     /* 21469 */   // No operand predicates
     /* 21469 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21471 */   // Combiner Rule #235: fdiv_by_sqrt_to_rsq_f16
     /* 21471 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
     /* 21474 */ // Label 406: @21474
     /* 21474 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(21485), // Rule ID 313 //
     /* 21479 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
     /* 21482 */   // MIs[0] dst
     /* 21482 */   // No operand predicates
     /* 21482 */   // MIs[0] src1
     /* 21482 */   // No operand predicates
     /* 21482 */   // MIs[0] src2
     /* 21482 */   // No operand predicates
     /* 21482 */   // Combiner Rule #193: fdiv_repeated_divison
     /* 21482 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
     /* 21485 */ // Label 407: @21485
     /* 21485 */ GIM_Reject,
     /* 21486 */ // Label 68: @21486
     /* 21486 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(21497), // Rule ID 302 //
     /* 21491 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21494 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FREM'
     /* 21494 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21497 */ // Label 408: @21497
     /* 21497 */ GIM_Reject,
     /* 21498 */ // Label 69: @21498
     /* 21498 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(21519), // Rule ID 199 //
     /* 21503 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
     /* 21506 */   // MIs[0] dst
     /* 21506 */   // No operand predicates
     /* 21506 */   // MIs[0] float
     /* 21506 */   // No operand predicates
     /* 21506 */   // MIs[0] int
     /* 21506 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 21510 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 21514 */   // MIs[1] imm
     /* 21514 */   // No operand predicates
     /* 21514 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21516 */   // Combiner Rule #149: expand_const_fpowi
     /* 21516 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
     /* 21519 */ // Label 409: @21519
     /* 21519 */ GIM_Reject,
     /* 21520 */ // Label 70: @21520
     /* 21520 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(21541), // Rule ID 180 //
     /* 21525 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
     /* 21528 */   // MIs[0] dst
     /* 21528 */   // No operand predicates
     /* 21528 */   // MIs[0] src0
     /* 21528 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21532 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 21536 */   // MIs[1] cst
     /* 21536 */   // No operand predicates
     /* 21536 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21538 */   // Combiner Rule #138: constant_fold_flog2
     /* 21538 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 21541 */ // Label 410: @21541
     /* 21541 */ GIM_Reject,
     /* 21542 */ // Label 71: @21542
     /* 21542 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(21553), // Rule ID 386 //
     /* 21547 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
     /* 21550 */   // Combiner Rule #233: foldable_fneg; wip_match_opcode 'G_FNEG'
     /* 21550 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
     /* 21553 */ // Label 411: @21553
     /* 21553 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(21574), // Rule ID 177 //
     /* 21558 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
     /* 21561 */   // MIs[0] dst
     /* 21561 */   // No operand predicates
     /* 21561 */   // MIs[0] src0
     /* 21561 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21565 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 21569 */   // MIs[1] cst
     /* 21569 */   // No operand predicates
     /* 21569 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21571 */   // Combiner Rule #135: constant_fold_fneg
     /* 21571 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 21574 */ // Label 412: @21574
     /* 21574 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(21603), // Rule ID 127 //
     /* 21579 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
     /* 21582 */   // MIs[0] dst
     /* 21582 */   // No operand predicates
     /* 21582 */   // MIs[0] t
     /* 21582 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21586 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 21590 */   // MIs[1] src
     /* 21590 */   // No operand predicates
     /* 21590 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 21595 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21597 */   // Combiner Rule #91: fneg_fneg_fold
     /* 21597 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 21602 */   GIR_EraseRootFromParent_Done,
     /* 21603 */ // Label 413: @21603
     /* 21603 */ GIM_Reject,
     /* 21604 */ // Label 72: @21604
     /* 21604 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(21625), // Rule ID 182 //
     /* 21609 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
     /* 21612 */   // MIs[0] dst
     /* 21612 */   // No operand predicates
     /* 21612 */   // MIs[0] src0
     /* 21612 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21616 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 21620 */   // MIs[1] cst
     /* 21620 */   // No operand predicates
     /* 21620 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21622 */   // Combiner Rule #140: constant_fold_fpext
     /* 21622 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 21625 */ // Label 414: @21625
     /* 21625 */ GIM_Reject,
     /* 21626 */ // Label 73: @21626
     /* 21626 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(21650), // Rule ID 377 //
     /* 21631 */   GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16),
     /* 21634 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
     /* 21637 */   // MIs[0] fptrunc_dst
     /* 21637 */   // No operand predicates
     /* 21637 */   // MIs[0] fmed3_dst
     /* 21637 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21641 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
     /* 21645 */   // MIs[1] src0
     /* 21645 */   // No operand predicates
     /* 21645 */   // MIs[1] src1
     /* 21645 */   // No operand predicates
     /* 21645 */   // MIs[1] src2
     /* 21645 */   // No operand predicates
     /* 21645 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21647 */   // Combiner Rule #228: expand_promoted_fmed3
     /* 21647 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
     /* 21650 */ // Label 415: @21650
     /* 21650 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(21671), // Rule ID 181 //
     /* 21655 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
     /* 21658 */   // MIs[0] dst
     /* 21658 */   // No operand predicates
     /* 21658 */   // MIs[0] src0
     /* 21658 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21662 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 21666 */   // MIs[1] cst
     /* 21666 */   // No operand predicates
     /* 21666 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21668 */   // Combiner Rule #139: constant_fold_fptrunc
     /* 21668 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 21671 */ // Label 416: @21671
     /* 21671 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(21692), // Rule ID 137 //
     /* 21676 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
     /* 21679 */   // MIs[0] dst
     /* 21679 */   // No operand predicates
     /* 21679 */   // MIs[0] src1
     /* 21679 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21683 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
     /* 21687 */   // MIs[1] src0
     /* 21687 */   // No operand predicates
     /* 21687 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21689 */   // Combiner Rule #99: fptrunc_fpext_fold
     /* 21689 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
     /* 21692 */ // Label 417: @21692
     /* 21692 */ GIM_Reject,
     /* 21693 */ // Label 74: @21693
     /* 21693 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(21714), // Rule ID 92 //
     /* 21698 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 21701 */   // MIs[0] dst
     /* 21701 */   // No operand predicates
     /* 21701 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 21701 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21705 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 21709 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21711 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
     /* 21711 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 21714 */ // Label 418: @21714
     /* 21714 */ GIM_Reject,
     /* 21715 */ // Label 75: @21715
     /* 21715 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(21736), // Rule ID 93 //
     /* 21720 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 21723 */   // MIs[0] dst
     /* 21723 */   // No operand predicates
     /* 21723 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 21723 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21727 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 21731 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21733 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
     /* 21733 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 21736 */ // Label 419: @21736
     /* 21736 */ GIM_Reject,
     /* 21737 */ // Label 76: @21737
     /* 21737 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(21748), // Rule ID 76 //
     /* 21742 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
     /* 21745 */   // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
     /* 21745 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
     /* 21748 */ // Label 420: @21748
     /* 21748 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(21759), // Rule ID 380 //
     /* 21753 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
     /* 21756 */   // Combiner Rule #230: uchar_to_float; wip_match_opcode 'G_SITOFP'
     /* 21756 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
     /* 21759 */ // Label 421: @21759
     /* 21759 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(21774), // Rule ID 183 //
     /* 21764 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
     /* 21767 */   // MIs[0] dst
     /* 21767 */   // No operand predicates
     /* 21767 */   // MIs[0] Operand 1
     /* 21767 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 21771 */   // Combiner Rule #141: itof_const_zero_fold_si
     /* 21771 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
     /* 21774 */ // Label 422: @21774
     /* 21774 */ GIM_Reject,
     /* 21775 */ // Label 77: @21775
     /* 21775 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(21786), // Rule ID 75 //
     /* 21780 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
     /* 21783 */   // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
     /* 21783 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
     /* 21786 */ // Label 423: @21786
     /* 21786 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(21797), // Rule ID 379 //
     /* 21791 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
     /* 21794 */   // Combiner Rule #230: uchar_to_float; wip_match_opcode 'G_UITOFP'
     /* 21794 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
     /* 21797 */ // Label 424: @21797
     /* 21797 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(21812), // Rule ID 184 //
     /* 21802 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
     /* 21805 */   // MIs[0] dst
     /* 21805 */   // No operand predicates
     /* 21805 */   // MIs[0] Operand 1
     /* 21805 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 21809 */   // Combiner Rule #142: itof_const_zero_fold_ui
     /* 21809 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
     /* 21812 */ // Label 425: @21812
     /* 21812 */ GIM_Reject,
     /* 21813 */ // Label 78: @21813
     /* 21813 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(21842), // Rule ID 19 //
     /* 21818 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 21821 */   // MIs[0] dst
     /* 21821 */   // No operand predicates
     /* 21821 */   // MIs[0] src
     /* 21821 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21825 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
     /* 21829 */   // MIs[1] __idempotent_prop_match_0.x
     /* 21829 */   // No operand predicates
     /* 21829 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21834 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21836 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[1]]
     /* 21836 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21841 */   GIR_EraseRootFromParent_Done,
     /* 21842 */ // Label 426: @21842
     /* 21842 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(21863), // Rule ID 178 //
     /* 21847 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
     /* 21850 */   // MIs[0] dst
     /* 21850 */   // No operand predicates
     /* 21850 */   // MIs[0] src0
     /* 21850 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21854 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 21858 */   // MIs[1] cst
     /* 21858 */   // No operand predicates
     /* 21858 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21860 */   // Combiner Rule #136: constant_fold_fabs
     /* 21860 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 21863 */ // Label 427: @21863
     /* 21863 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(21891), // Rule ID 264 //
     /* 21868 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
     /* 21871 */   // MIs[0] dst
     /* 21871 */   // No operand predicates
     /* 21871 */   // MIs[0] tmp
     /* 21871 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21875 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 21879 */   // MIs[1] x
     /* 21879 */   // No operand predicates
     /* 21879 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21881 */   // Combiner Rule #174: fabs_fneg_fold
     /* 21881 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
     /* 21884 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 21886 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 21890 */   GIR_EraseRootFromParent_Done,
     /* 21891 */ // Label 428: @21891
     /* 21891 */ GIM_Reject,
     /* 21892 */ // Label 79: @21892
     /* 21892 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(21903), // Rule ID 385 //
     /* 21897 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
     /* 21900 */   // Combiner Rule #232: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
     /* 21900 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
     /* 21903 */ // Label 429: @21903
     /* 21903 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(21932), // Rule ID 20 //
     /* 21908 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 21911 */   // MIs[0] dst
     /* 21911 */   // No operand predicates
     /* 21911 */   // MIs[0] src
     /* 21911 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 21915 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
     /* 21919 */   // MIs[1] __idempotent_prop_match_0.x
     /* 21919 */   // No operand predicates
     /* 21919 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21924 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 21926 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[2]]
     /* 21926 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 21931 */   GIR_EraseRootFromParent_Done,
     /* 21932 */ // Label 430: @21932
     /* 21932 */ GIM_Reject,
     /* 21933 */ // Label 80: @21933
     /* 21933 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(21944), // Rule ID 195 //
     /* 21938 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 21941 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
     /* 21941 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 21944 */ // Label 431: @21944
     /* 21944 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(21955), // Rule ID 303 //
     /* 21949 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21952 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
     /* 21952 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21955 */ // Label 432: @21955
     /* 21955 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(21966), // Rule ID 340 //
     /* 21960 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 21963 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
     /* 21963 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 21966 */ // Label 433: @21966
     /* 21966 */ GIM_Reject,
     /* 21967 */ // Label 81: @21967
     /* 21967 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(21978), // Rule ID 196 //
     /* 21972 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 21975 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
     /* 21975 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 21978 */ // Label 434: @21978
     /* 21978 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(21989), // Rule ID 304 //
     /* 21983 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 21986 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
     /* 21986 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 21989 */ // Label 435: @21989
     /* 21989 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(22000), // Rule ID 341 //
     /* 21994 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 21997 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
     /* 21997 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 22000 */ // Label 436: @22000
     /* 22000 */ GIM_Reject,
     /* 22001 */ // Label 82: @22001
     /* 22001 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(22012), // Rule ID 342 //
     /* 22006 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 22009 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
     /* 22009 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 22012 */ // Label 437: @22012
     /* 22012 */ GIM_Reject,
     /* 22013 */ // Label 83: @22013
     /* 22013 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(22024), // Rule ID 343 //
     /* 22018 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 22021 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
     /* 22021 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 22024 */ // Label 438: @22024
     /* 22024 */ GIM_Reject,
     /* 22025 */ // Label 84: @22025
     /* 22025 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(22036), // Rule ID 197 //
     /* 22030 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 22033 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
     /* 22033 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 22036 */ // Label 439: @22036
     /* 22036 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(22047), // Rule ID 305 //
     /* 22041 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22044 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
     /* 22044 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22047 */ // Label 440: @22047
     /* 22047 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(22058), // Rule ID 344 //
     /* 22052 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 22055 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
     /* 22055 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 22058 */ // Label 441: @22058
     /* 22058 */ GIM_Reject,
     /* 22059 */ // Label 85: @22059
     /* 22059 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(22070), // Rule ID 198 //
     /* 22064 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 22067 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
     /* 22067 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 22070 */ // Label 442: @22070
     /* 22070 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(22081), // Rule ID 306 //
     /* 22075 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22078 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
     /* 22078 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22081 */ // Label 443: @22081
     /* 22081 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(22092), // Rule ID 345 //
     /* 22086 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 22089 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
     /* 22089 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 22092 */ // Label 444: @22092
     /* 22092 */ GIM_Reject,
     /* 22093 */ // Label 86: @22093
     /* 22093 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(22104), // Rule ID 149 //
     /* 22098 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
     /* 22101 */   // Combiner Rule #107: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
     /* 22101 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
     /* 22104 */ // Label 445: @22104
     /* 22104 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(22115), // Rule ID 151 //
     /* 22109 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
     /* 22112 */   // Combiner Rule #109: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
     /* 22112 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
     /* 22115 */ // Label 446: @22115
     /* 22115 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(22126), // Rule ID 185 //
     /* 22120 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
     /* 22123 */   // Combiner Rule #143: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
     /* 22123 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
     /* 22126 */ // Label 447: @22126
     /* 22126 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(22137), // Rule ID 201 //
     /* 22131 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
     /* 22134 */   // Combiner Rule #151: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
     /* 22134 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
     /* 22137 */ // Label 448: @22137
     /* 22137 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(22148), // Rule ID 238 //
     /* 22142 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 22145 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
     /* 22145 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 22148 */ // Label 449: @22148
     /* 22148 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(22159), // Rule ID 283 //
     /* 22153 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22156 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
     /* 22156 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22159 */ // Label 450: @22159
     /* 22159 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(22182), // Rule ID 111 //
     /* 22164 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 22167 */   // MIs[0] dst
     /* 22167 */   // No operand predicates
     /* 22167 */   // MIs[0] lhs
     /* 22167 */   // No operand predicates
     /* 22167 */   // MIs[0] Operand 2
     /* 22167 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 22171 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 22176 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[7]]
     /* 22176 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 22181 */   GIR_EraseRootFromParent_Done,
     /* 22182 */ // Label 451: @22182
     /* 22182 */ GIM_Reject,
     /* 22183 */ // Label 87: @22183
     /* 22183 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(22194), // Rule ID 251 //
     /* 22188 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 22191 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SMIN'
     /* 22191 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 22194 */ // Label 452: @22194
     /* 22194 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(22205), // Rule ID 294 //
     /* 22199 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22202 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMIN'
     /* 22202 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22205 */ // Label 453: @22205
     /* 22205 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(22216), // Rule ID 322 //
     /* 22210 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 22213 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
     /* 22213 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 22216 */ // Label 454: @22216
     /* 22216 */ GIM_Reject,
     /* 22217 */ // Label 88: @22217
     /* 22217 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(22228), // Rule ID 252 //
     /* 22222 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 22225 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SMAX'
     /* 22225 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 22228 */ // Label 455: @22228
     /* 22228 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(22239), // Rule ID 295 //
     /* 22233 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22236 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMAX'
     /* 22236 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22239 */ // Label 456: @22239
     /* 22239 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(22250), // Rule ID 323 //
     /* 22244 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 22247 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
     /* 22247 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 22250 */ // Label 457: @22250
     /* 22250 */ GIM_Reject,
     /* 22251 */ // Label 89: @22251
     /* 22251 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(22262), // Rule ID 253 //
     /* 22256 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 22259 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UMIN'
     /* 22259 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 22262 */ // Label 458: @22262
     /* 22262 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(22273), // Rule ID 296 //
     /* 22267 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22270 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMIN'
     /* 22270 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22273 */ // Label 459: @22273
     /* 22273 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(22284), // Rule ID 324 //
     /* 22278 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 22281 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
     /* 22281 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 22284 */ // Label 460: @22284
     /* 22284 */ GIM_Reject,
     /* 22285 */ // Label 90: @22285
     /* 22285 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(22296), // Rule ID 254 //
     /* 22290 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 22293 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UMAX'
     /* 22293 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 22296 */ // Label 461: @22296
     /* 22296 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(22307), // Rule ID 297 //
     /* 22301 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 22304 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMAX'
     /* 22304 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 22307 */ // Label 462: @22307
     /* 22307 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(22318), // Rule ID 325 //
     /* 22312 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 22315 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
     /* 22315 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 22318 */ // Label 463: @22318
     /* 22318 */ GIM_Reject,
     /* 22319 */ // Label 91: @22319
     /* 22319 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(22330), // Rule ID 86 //
     /* 22324 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
     /* 22327 */   // Combiner Rule #76: unary_undef_to_zero; wip_match_opcode 'G_ABS'
     /* 22327 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 22330 */ // Label 464: @22330
     /* 22330 */ GIM_Reject,
     /* 22331 */ // Label 92: @22331
     /* 22331 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(22342), // Rule ID 176 //
     /* 22336 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
     /* 22339 */   // Combiner Rule #134: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
     /* 22339 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
     /* 22342 */ // Label 465: @22342
     /* 22342 */ GIM_Reject,
     /* 22343 */ // Label 93: @22343
     /* 22343 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(22354), // Rule ID 26 //
     /* 22348 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
     /* 22351 */   // Combiner Rule #24: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 22351 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
     /* 22354 */ // Label 466: @22354
     /* 22354 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(22365), // Rule ID 67 //
     /* 22359 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
     /* 22362 */   // Combiner Rule #65: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 22362 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
     /* 22365 */ // Label 467: @22365
     /* 22365 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(22376), // Rule ID 101 //
     /* 22370 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
     /* 22373 */   // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 22373 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
     /* 22376 */ // Label 468: @22376
     /* 22376 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(22415), // Rule ID 38 //
     /* 22381 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
     /* 22384 */   // MIs[0] root
     /* 22384 */   // No operand predicates
     /* 22384 */   // MIs[0] src
     /* 22384 */   // No operand predicates
     /* 22384 */   // MIs[0] elt
     /* 22384 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 22388 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
     /* 22392 */   // MIs[1] src
     /* 22392 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 22397 */   // MIs[1] idx
     /* 22397 */   // No operand predicates
     /* 22397 */   // MIs[0] idx
     /* 22397 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 22402 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 22407 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22409 */   // Combiner Rule #36: insert_vector_element_extract_vector_element
     /* 22409 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 22414 */   GIR_EraseRootFromParent_Done,
     /* 22415 */ // Label 469: @22415
     /* 22415 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(22448), // Rule ID 24 //
     /* 22420 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
     /* 22423 */   // MIs[0] root
     /* 22423 */   // No operand predicates
     /* 22423 */   // MIs[0] src
     /* 22423 */   // No operand predicates
     /* 22423 */   // MIs[0] elt
     /* 22423 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 22427 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22431 */   // MIs[0] idx
     /* 22431 */   // No operand predicates
     /* 22431 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
     /* 22435 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 22440 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22442 */   // Combiner Rule #22: insert_vector_element_elt_undef
     /* 22442 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 22447 */   GIR_EraseRootFromParent_Done,
     /* 22448 */ // Label 470: @22448
     /* 22448 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(22472), // Rule ID 23 //
     /* 22453 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
     /* 22456 */   // MIs[0] root
     /* 22456 */   // No operand predicates
     /* 22456 */   // MIs[0] src
     /* 22456 */   // No operand predicates
     /* 22456 */   // MIs[0] elt
     /* 22456 */   // No operand predicates
     /* 22456 */   // MIs[0] idx
     /* 22456 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
     /* 22460 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22464 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22466 */   // Combiner Rule #21: insert_vector_element_idx_undef
     /* 22466 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22469 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 22471 */   GIR_EraseRootFromParent_Done,
     /* 22472 */ // Label 471: @22472
     /* 22472 */ GIM_Reject,
     /* 22473 */ // Label 94: @22473
     /* 22473 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(22484), // Rule ID 25 //
     /* 22478 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
     /* 22481 */   // Combiner Rule #23: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 22481 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
     /* 22484 */ // Label 472: @22484
     /* 22484 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(22495), // Rule ID 68 //
     /* 22489 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
     /* 22492 */   // Combiner Rule #66: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 22492 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
     /* 22495 */ // Label 473: @22495
     /* 22495 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(22506), // Rule ID 74 //
     /* 22500 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
     /* 22503 */   // Combiner Rule #70: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 22503 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
     /* 22506 */ // Label 474: @22506
     /* 22506 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(22517), // Rule ID 102 //
     /* 22511 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
     /* 22514 */   // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 22514 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
     /* 22517 */ // Label 475: @22517
     /* 22517 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(22541), // Rule ID 36 //
     /* 22522 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
     /* 22525 */   // MIs[0] root
     /* 22525 */   // No operand predicates
     /* 22525 */   // MIs[0] src
     /* 22525 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22529 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22533 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
     /* 22536 */   // MIs[1] x
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] y
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] z
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] a
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] b
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] c
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] d
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[1] e
     /* 22536 */   // No operand predicates
     /* 22536 */   // MIs[0] idx
     /* 22536 */   // No operand predicates
     /* 22536 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22538 */   // Combiner Rule #34: extract_vector_element_build_vector_trunc8
     /* 22538 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22541 */ // Label 476: @22541
     /* 22541 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(22565), // Rule ID 35 //
     /* 22546 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
     /* 22549 */   // MIs[0] root
     /* 22549 */   // No operand predicates
     /* 22549 */   // MIs[0] src
     /* 22549 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22553 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22557 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
     /* 22560 */   // MIs[1] x
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[1] y
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[1] z
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[1] a
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[1] b
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[1] c
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[1] d
     /* 22560 */   // No operand predicates
     /* 22560 */   // MIs[0] idx
     /* 22560 */   // No operand predicates
     /* 22560 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22562 */   // Combiner Rule #33: extract_vector_element_build_vector_trunc7
     /* 22562 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22565 */ // Label 477: @22565
     /* 22565 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(22589), // Rule ID 34 //
     /* 22570 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
     /* 22573 */   // MIs[0] root
     /* 22573 */   // No operand predicates
     /* 22573 */   // MIs[0] src
     /* 22573 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22577 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22581 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
     /* 22584 */   // MIs[1] x
     /* 22584 */   // No operand predicates
     /* 22584 */   // MIs[1] y
     /* 22584 */   // No operand predicates
     /* 22584 */   // MIs[1] z
     /* 22584 */   // No operand predicates
     /* 22584 */   // MIs[1] a
     /* 22584 */   // No operand predicates
     /* 22584 */   // MIs[1] b
     /* 22584 */   // No operand predicates
     /* 22584 */   // MIs[1] c
     /* 22584 */   // No operand predicates
     /* 22584 */   // MIs[0] idx
     /* 22584 */   // No operand predicates
     /* 22584 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22586 */   // Combiner Rule #32: extract_vector_element_build_vector_trunc6
     /* 22586 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22589 */ // Label 478: @22589
     /* 22589 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(22613), // Rule ID 33 //
     /* 22594 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
     /* 22597 */   // MIs[0] root
     /* 22597 */   // No operand predicates
     /* 22597 */   // MIs[0] src
     /* 22597 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22601 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22605 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
     /* 22608 */   // MIs[1] x
     /* 22608 */   // No operand predicates
     /* 22608 */   // MIs[1] y
     /* 22608 */   // No operand predicates
     /* 22608 */   // MIs[1] z
     /* 22608 */   // No operand predicates
     /* 22608 */   // MIs[1] a
     /* 22608 */   // No operand predicates
     /* 22608 */   // MIs[1] b
     /* 22608 */   // No operand predicates
     /* 22608 */   // MIs[0] idx
     /* 22608 */   // No operand predicates
     /* 22608 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22610 */   // Combiner Rule #31: extract_vector_element_build_vector_trunc5
     /* 22610 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22613 */ // Label 479: @22613
     /* 22613 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(22637), // Rule ID 32 //
     /* 22618 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
     /* 22621 */   // MIs[0] root
     /* 22621 */   // No operand predicates
     /* 22621 */   // MIs[0] src
     /* 22621 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22625 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22629 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
     /* 22632 */   // MIs[1] x
     /* 22632 */   // No operand predicates
     /* 22632 */   // MIs[1] y
     /* 22632 */   // No operand predicates
     /* 22632 */   // MIs[1] z
     /* 22632 */   // No operand predicates
     /* 22632 */   // MIs[1] a
     /* 22632 */   // No operand predicates
     /* 22632 */   // MIs[0] idx
     /* 22632 */   // No operand predicates
     /* 22632 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22634 */   // Combiner Rule #30: extract_vector_element_build_vector_trunc4
     /* 22634 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22637 */ // Label 480: @22637
     /* 22637 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(22661), // Rule ID 31 //
     /* 22642 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
     /* 22645 */   // MIs[0] root
     /* 22645 */   // No operand predicates
     /* 22645 */   // MIs[0] src
     /* 22645 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22649 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22653 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
     /* 22656 */   // MIs[1] x
     /* 22656 */   // No operand predicates
     /* 22656 */   // MIs[1] y
     /* 22656 */   // No operand predicates
     /* 22656 */   // MIs[1] z
     /* 22656 */   // No operand predicates
     /* 22656 */   // MIs[0] idx
     /* 22656 */   // No operand predicates
     /* 22656 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22658 */   // Combiner Rule #29: extract_vector_element_build_vector_trunc3
     /* 22658 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22661 */ // Label 481: @22661
     /* 22661 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(22695), // Rule ID 27 //
     /* 22666 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
     /* 22669 */   // MIs[0] root
     /* 22669 */   // No operand predicates
     /* 22669 */   // MIs[0] src
     /* 22669 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22673 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
     /* 22677 */   // MIs[1] x
     /* 22677 */   // No operand predicates
     /* 22677 */   // MIs[1] value
     /* 22677 */   // No operand predicates
     /* 22677 */   // MIs[1] idx
     /* 22677 */   // No operand predicates
     /* 22677 */   // MIs[0] idx
     /* 22677 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 22682 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
     /* 22687 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22689 */   // Combiner Rule #25: extract_vector_element_not_const
     /* 22689 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
     /* 22694 */   GIR_EraseRootFromParent_Done,
     /* 22695 */ // Label 482: @22695
     /* 22695 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(22716), // Rule ID 28 //
     /* 22700 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
     /* 22703 */   // MIs[0] root
     /* 22703 */   // No operand predicates
     /* 22703 */   // MIs[0] src
     /* 22703 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22707 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
     /* 22711 */   // MIs[1] x
     /* 22711 */   // No operand predicates
     /* 22711 */   // MIs[1] value
     /* 22711 */   // No operand predicates
     /* 22711 */   // MIs[1] idx2
     /* 22711 */   // No operand predicates
     /* 22711 */   // MIs[0] idx1
     /* 22711 */   // No operand predicates
     /* 22711 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22713 */   // Combiner Rule #26: extract_vector_element_different_indices
     /* 22713 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
     /* 22716 */ // Label 483: @22716
     /* 22716 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(22745), // Rule ID 37 //
     /* 22721 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
     /* 22724 */   // MIs[0] root
     /* 22724 */   // No operand predicates
     /* 22724 */   // MIs[0] src
     /* 22724 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22728 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
     /* 22732 */   // MIs[1] src1
     /* 22732 */   // No operand predicates
     /* 22732 */   // MIs[1] src2
     /* 22732 */   // No operand predicates
     /* 22732 */   // MIs[1] mask
     /* 22732 */   // No operand predicates
     /* 22732 */   // MIs[0] idx
     /* 22732 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 22736 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 22740 */   // MIs[2] imm
     /* 22740 */   // No operand predicates
     /* 22740 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 22742 */   // Combiner Rule #35: extract_vector_element_shuffle_vector
     /* 22742 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
     /* 22745 */ // Label 484: @22745
     /* 22745 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(22769), // Rule ID 30 //
     /* 22750 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
     /* 22753 */   // MIs[0] root
     /* 22753 */   // No operand predicates
     /* 22753 */   // MIs[0] src
     /* 22753 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22757 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 22761 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
     /* 22764 */   // MIs[1] x
     /* 22764 */   // No operand predicates
     /* 22764 */   // MIs[1] y
     /* 22764 */   // No operand predicates
     /* 22764 */   // MIs[0] idx
     /* 22764 */   // No operand predicates
     /* 22764 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22766 */   // Combiner Rule #28: extract_vector_element_build_vector_trunc2
     /* 22766 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 22769 */ // Label 485: @22769
     /* 22769 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(22801), // Rule ID 29 //
     /* 22774 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
     /* 22777 */   // MIs[0] root
     /* 22777 */   // No operand predicates
     /* 22777 */   // MIs[0] src
     /* 22777 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22781 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
     /* 22785 */   GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
     /* 22788 */   // MIs[1] unused
     /* 22788 */   // No operand predicates
     /* 22788 */   // MIs[0] idx
     /* 22788 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 22792 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 22796 */   // MIs[2] imm
     /* 22796 */   // No operand predicates
     /* 22796 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 22798 */   // Combiner Rule #27: extract_vector_element_build_vector
     /* 22798 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
     /* 22801 */ // Label 486: @22801
     /* 22801 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(22825), // Rule ID 21 //
     /* 22806 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
     /* 22809 */   // MIs[0] root
     /* 22809 */   // No operand predicates
     /* 22809 */   // MIs[0] vector
     /* 22809 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22813 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22817 */   // MIs[0] idx
     /* 22817 */   // No operand predicates
     /* 22817 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22819 */   // Combiner Rule #19: match_extract_of_element_undef_vector
     /* 22819 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22822 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 22824 */   GIR_EraseRootFromParent_Done,
     /* 22825 */ // Label 487: @22825
     /* 22825 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(22849), // Rule ID 22 //
     /* 22830 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
     /* 22833 */   // MIs[0] root
     /* 22833 */   // No operand predicates
     /* 22833 */   // MIs[0] vector
     /* 22833 */   // No operand predicates
     /* 22833 */   // MIs[0] idx
     /* 22833 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 22837 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22841 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22843 */   // Combiner Rule #20: match_extract_of_element_undef_index
     /* 22843 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22846 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 22848 */   GIR_EraseRootFromParent_Done,
     /* 22849 */ // Label 488: @22849
     /* 22849 */ GIM_Reject,
     /* 22850 */ // Label 95: @22850
     /* 22850 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(22861), // Rule ID 97 //
     /* 22855 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
     /* 22858 */   // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 22858 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
     /* 22861 */ // Label 489: @22861
     /* 22861 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(22872), // Rule ID 99 //
     /* 22866 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
     /* 22869 */   // Combiner Rule #80: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 22869 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
     /* 22872 */ // Label 490: @22872
     /* 22872 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(22883), // Rule ID 353 //
     /* 22877 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
     /* 22880 */   // Combiner Rule #206: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 22880 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
     /* 22883 */ // Label 491: @22883
     /* 22883 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(22894), // Rule ID 355 //
     /* 22888 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
     /* 22891 */   // Combiner Rule #208: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 22891 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
     /* 22894 */ // Label 492: @22894
     /* 22894 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(22915), // Rule ID 354 //
     /* 22899 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
     /* 22902 */   // MIs[0] root
     /* 22902 */   // No operand predicates
     /* 22902 */   // MIs[0] src1
     /* 22902 */   // No operand predicates
     /* 22902 */   // MIs[0] undef
     /* 22902 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 22906 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 22910 */   // MIs[0] mask
     /* 22910 */   // No operand predicates
     /* 22910 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 22912 */   // Combiner Rule #207: combine_shuffle_undef_rhs
     /* 22912 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
     /* 22915 */ // Label 493: @22915
     /* 22915 */ GIM_Reject,
     /* 22916 */ // Label 96: @22916
     /* 22916 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(22960), // Rule ID 229 //
     /* 22921 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
     /* 22924 */   // MIs[0] d
     /* 22924 */   // No operand predicates
     /* 22924 */   // MIs[0] src
     /* 22924 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22928 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 22932 */   // MIs[1] rev
     /* 22932 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 22936 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
     /* 22940 */   // MIs[2] val
     /* 22940 */   // No operand predicates
     /* 22940 */   // MIs[1] amt
     /* 22940 */   // No operand predicates
     /* 22940 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
     /* 22944 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 22946 */   // Combiner Rule #164: bitreverse_lshr
     /* 22946 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
     /* 22949 */   GIR_RootToRootCopy, /*OpIdx*/0, // d
     /* 22951 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
     /* 22955 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
     /* 22959 */   GIR_EraseRootFromParent_Done,
     /* 22960 */ // Label 494: @22960
     /* 22960 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(23004), // Rule ID 228 //
     /* 22965 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
     /* 22968 */   // MIs[0] d
     /* 22968 */   // No operand predicates
     /* 22968 */   // MIs[0] src
     /* 22968 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 22972 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 22976 */   // MIs[1] rev
     /* 22976 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 22980 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
     /* 22984 */   // MIs[2] val
     /* 22984 */   // No operand predicates
     /* 22984 */   // MIs[1] amt
     /* 22984 */   // No operand predicates
     /* 22984 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
     /* 22988 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 22990 */   // Combiner Rule #163: bitreverse_shl
     /* 22990 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 22993 */   GIR_RootToRootCopy, /*OpIdx*/0, // d
     /* 22995 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
     /* 22999 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
     /* 23003 */   GIR_EraseRootFromParent_Done,
     /* 23004 */ // Label 495: @23004
     /* 23004 */ GIM_Reject,
     /* 23005 */ // Label 97: @23005
     /* 23005 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(23016), // Rule ID 388 //
     /* 23010 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
     /* 23013 */   // Combiner Rule #234: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
     /* 23013 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
     /* 23016 */ // Label 496: @23016
     /* 23016 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(23037), // Rule ID 179 //
     /* 23021 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
     /* 23024 */   // MIs[0] dst
     /* 23024 */   // No operand predicates
     /* 23024 */   // MIs[0] src0
     /* 23024 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 23028 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 23032 */   // MIs[1] cst
     /* 23032 */   // No operand predicates
     /* 23032 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 23034 */   // Combiner Rule #137: constant_fold_fsqrt
     /* 23034 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 23037 */ // Label 497: @23037
     /* 23037 */ GIM_Reject,
     /* 23038 */ // Label 98: @23038
     /* 23038 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(23049), // Rule ID 381 //
     /* 23043 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
     /* 23046 */   // Combiner Rule #231: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
     /* 23046 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 23049 */ // Label 498: @23049
     /* 23049 */ GIM_Reject,
     /* 23050 */ // Label 99: @23050
     /* 23050 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(23061), // Rule ID 382 //
     /* 23055 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
     /* 23058 */   // Combiner Rule #231: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
     /* 23058 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 23061 */ // Label 499: @23061
     /* 23061 */ GIM_Reject,
     /* 23062 */ // Label 100: @23062
     /* 23062 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(23073), // Rule ID 383 //
     /* 23067 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
     /* 23070 */   // Combiner Rule #231: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
     /* 23070 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 23073 */ // Label 500: @23073
     /* 23073 */ GIM_Reject,
     /* 23074 */ // Label 101: @23074
     /* 23074 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(23085), // Rule ID 384 //
     /* 23079 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
     /* 23082 */   // Combiner Rule #231: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
     /* 23082 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 23085 */ // Label 501: @23085
     /* 23085 */ GIM_Reject,
     /* 23086 */ // Label 102: @23086
     /* 23086 */ GIM_Reject,
     /* 23087 */ }; // Size: 23087 bytes
  return MatchTable0;
}
#undef GIMT_Encode2
#undef GIMT_Encode4
#undef GIMT_Encode8

#endif // ifdef GET_GICOMBINER_IMPL

#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
AvailableFunctionFeatures()
#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
, State(0),
ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS

