/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* AArch64PreLegalizerCombinerImpl 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 AArch64PreLegalizerCombinerImplRuleConfig {
  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 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:	 // 15 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 '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:	 // 15 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 '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 'z':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
        break;
      return 47;	 // "zext_of_anyext"
    }
    break;
  case 15:	 // 12 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 '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':	 // 3 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_minmax_nan", 15) != 0)
          break;
        return 148;	 // "combine_minmax_nan"
      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':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ld_global_offset", 16) != 0)
          break;
        return 228;	 // "fold_global_offset"
      case 'p':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "trunc_fpext_fold", 16) != 0)
          break;
        return 99;	 // "fptrunc_fpext_fold"
      }
      break;
    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:	 // 17 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':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "xt", 2) != 0)
        break;
      switch (RuleIdentifier[3]) {
      default: break;
      case '_':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+4, "uaddv_to_uaddlv", 15) != 0)
          break;
        return 230;	 // "ext_uaddv_to_uaddlv"
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+4, "nd_through_phis", 15) != 0)
          break;
        return 103;	 // "extend_through_phis"
      }
      break;
    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 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "cmp_redundant_trunc", 19) != 0)
        break;
      return 227;	 // "icmp_redundant_trunc"
    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':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
        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 '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:	 // 17 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, "xt_addv_to_udot_addv", 20) != 0)
        break;
      return 229;	 // "ext_addv_to_udot_addv"
    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 'p':	 // 6 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ush_", 4) != 0)
        break;
      switch (RuleIdentifier[5]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+6, "dd_through_", 11) != 0)
          break;
        switch (RuleIdentifier[17]) {
        default: break;
        case 's':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
            break;
          return 235;	 // "push_add_through_sext"
        case 'z':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
            break;
          return 232;	 // "push_add_through_zext"
        }
        break;
      case 'm':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+6, "ul_through_", 11) != 0)
          break;
        switch (RuleIdentifier[17]) {
        default: break;
        case 's':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
            break;
          return 236;	 // "push_mul_through_sext"
        case 'z':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
            break;
          return 233;	 // "push_mul_through_zext"
        }
        break;
      case 's':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+6, "ub_through_", 11) != 0)
          break;
        switch (RuleIdentifier[17]) {
        default: break;
        case 's':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
            break;
          return 234;	 // "push_sub_through_sext"
        case 'z':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
            break;
          return 231;	 // "push_sub_through_zext"
        }
        break;
      }
      break;
    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 '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:	 // 6 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':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
        break;
      return 158;	 // "funnel_shift_right_zero"
    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:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    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:	 // 4 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':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
        break;
      switch (RuleIdentifier[8]) {
      default: break;
      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:	 // 2 strings to match.
    if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_", 22) != 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;
  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:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector", 34) != 0)
      break;
    return 67;	 // "extract_all_elts_from_build_vector"
  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, 237}};
  }
  const auto I = getRuleIdxForIdentifier(RangePair.first);
  if (!I)
    return std::nullopt;
  return {{*I, *I + 1}};
}

bool AArch64PreLegalizerCombinerImplRuleConfig::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 AArch64PreLegalizerCombinerImplRuleConfig::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> AArch64PreLegalizerCombinerOption;
static cl::list<std::string> AArch64PreLegalizerCombinerDisableOption(
    "aarch64prelegalizercombiner-disable-rule",
    cl::desc("Disable one or more combiner rules temporarily in the AArch64PreLegalizerCombiner pass"),
    cl::CommaSeparated,
    cl::Hidden,
    cl::cat(GICombinerOptionCategory),
    cl::callback([](const std::string &Str) {
      AArch64PreLegalizerCombinerOption.push_back(Str);
    }));
static cl::list<std::string> AArch64PreLegalizerCombinerOnlyEnableOption(
    "aarch64prelegalizercombiner-only-enable-rule",
    cl::desc("Disable all rules in the AArch64PreLegalizerCombiner pass then re-enable the specified ones"),
    cl::Hidden,
    cl::cat(GICombinerOptionCategory),
    cl::callback([](const std::string &CommaSeparatedArg) {
      StringRef Str = CommaSeparatedArg;
      AArch64PreLegalizerCombinerOption.push_back("*");
      do {
        auto X = Str.split(",");
        AArch64PreLegalizerCombinerOption.push_back(("!" + X.first).str());
        Str = X.second;
      } while (!Str.empty());
    }));


bool AArch64PreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
    return  !DisabledRules.test(RuleID);
}
bool AArch64PreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
  for (StringRef Identifier : AArch64PreLegalizerCombinerOption) {
    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 = 1;
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 AArch64Subtarget *Subtarget) const;
PredicateBitset
computeAvailableFunctionFeatures(const AArch64Subtarget *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(AArch64PreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
  typedef void(AArch64PreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
  const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
  static AArch64PreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
  static AArch64PreLegalizerCombinerImpl::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_s1,
};
const static size_t NumTypeObjects = 1;
const static LLT TypeObjects[] = {
  LLT::scalar(1),
};

// Bits for subtarget features that participate in instruction matching.
enum SubtargetFeatureBits : uint8_t {
  Feature_HasDotProdBit = 0,
};

PredicateBitset AArch64PreLegalizerCombinerImpl::
computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const {
  PredicateBitset Features{};
  if (Subtarget->hasDotProd())
    Features.set(Feature_HasDotProdBit);
  return Features;
}

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

// Feature bitsets.
enum {
  GIFBS_Invalid,
  GIFBS_HasDotProd,
};
constexpr static PredicateBitset FeatureBitsets[] {
  {}, // GIFBS_Invalid
  {Feature_HasDotProdBit, },
};

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

AArch64PreLegalizerCombinerImpl::ComplexMatcherMemFn
AArch64PreLegalizerCombinerImpl::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,
};
bool AArch64PreLegalizerCombinerImpl::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]);
  }
  }
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AArch64PreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AArch64PreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AArch64PreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AArch64PreLegalizerCombinerImpl::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,
};

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

bool AArch64PreLegalizerCombinerImpl::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,
};
bool AArch64PreLegalizerCombinerImpl::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:{
    Register GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchICmpRedundantTrunc(*State.MIs[0], MRI, Helper.getValueTracking(), GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyICmpRedundantTrunc(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner157:{
    std::pair<uint64_t, uint64_t> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchFoldGlobalOffset(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyFoldGlobalOffset(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner158:{
    std::tuple<Register, Register, bool> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchExtAddvToDotAddv(*State.MIs[0], MRI, STI, GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyExtAddvToDotAddv(*State.MIs[0], MRI, B, Observer, STI, GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner159:{
    std::pair<Register, bool> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchExtUaddvToUaddlv(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyExtUaddvToUaddlv(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner160:{
    // Match Patterns
    if(![&](){return matchPushAddSubExt(*State.MIs[0], MRI, State.MIs[0]->getOperand(0).getReg(), State.MIs[1]->getOperand(1).getReg(), State.MIs[2]->getOperand(1).getReg());}()) {
      return false;
    }
    // Apply Patterns
    applyPushAddSubExt(*State.MIs[0], MRI, B, State.MIs[1]->getOpcode() == TargetOpcode::G_SEXT, State.MIs[0]->getOperand(0).getReg(), State.MIs[1]->getOperand(1).getReg(), State.MIs[2]->getOperand(1).getReg());
    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 *AArch64PreLegalizerCombinerImpl::getMatchTable() const {
  constexpr static uint8_t MatchTable0[] = {
     /*    0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(312), /*)*//*default:*//*Label 99*/ GIMT_Encode4(7839),
     /*   10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1178), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(1190),
     /*  154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(1805),
     /*  158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(2181),
     /*  162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(2405),
     /*  166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(2478),
     /*  170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(2562),
     /*  174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(2618), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(2696),
     /*  190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(2977),
     /*  194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(3410), 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(3511), GIMT_Encode4(0),
     /*  234 */ /*TargetOpcode::G_GLOBAL_VALUE*//*Label 12*/ GIMT_Encode4(3523), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 13*/ GIMT_Encode4(3535), GIMT_Encode4(0),
     /*  258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 14*/ GIMT_Encode4(3602),
     /*  262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 15*/ GIMT_Encode4(3676),
     /*  266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 16*/ GIMT_Encode4(3741),
     /*  270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 17*/ GIMT_Encode4(3753),
     /*  274 */ /*TargetOpcode::G_PTRTOINT*//*Label 18*/ GIMT_Encode4(3765),
     /*  278 */ /*TargetOpcode::G_INTTOPTR*//*Label 19*/ GIMT_Encode4(3808),
     /*  282 */ /*TargetOpcode::G_BITCAST*//*Label 20*/ GIMT_Encode4(3841),
     /*  286 */ /*TargetOpcode::G_FREEZE*//*Label 21*/ GIMT_Encode4(3884), GIMT_Encode4(0), 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 22*/ GIMT_Encode4(3948),
     /*  330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 23*/ GIMT_Encode4(3960),
     /*  334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 24*/ GIMT_Encode4(3972), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  350 */ /*TargetOpcode::G_STORE*//*Label 25*/ GIMT_Encode4(3984), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  486 */ /*TargetOpcode::G_ANYEXT*//*Label 26*/ GIMT_Encode4(3996),
     /*  490 */ /*TargetOpcode::G_TRUNC*//*Label 27*/ GIMT_Encode4(4124), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  502 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 28*/ GIMT_Encode4(4536), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  522 */ /*TargetOpcode::G_SEXT*//*Label 29*/ GIMT_Encode4(4569),
     /*  526 */ /*TargetOpcode::G_SEXT_INREG*//*Label 30*/ GIMT_Encode4(4644),
     /*  530 */ /*TargetOpcode::G_ZEXT*//*Label 31*/ GIMT_Encode4(4710),
     /*  534 */ /*TargetOpcode::G_SHL*//*Label 32*/ GIMT_Encode4(4840),
     /*  538 */ /*TargetOpcode::G_LSHR*//*Label 33*/ GIMT_Encode4(5009),
     /*  542 */ /*TargetOpcode::G_ASHR*//*Label 34*/ GIMT_Encode4(5161),
     /*  546 */ /*TargetOpcode::G_FSHL*//*Label 35*/ GIMT_Encode4(5295),
     /*  550 */ /*TargetOpcode::G_FSHR*//*Label 36*/ GIMT_Encode4(5338),
     /*  554 */ /*TargetOpcode::G_ROTR*//*Label 37*/ GIMT_Encode4(5381),
     /*  558 */ /*TargetOpcode::G_ROTL*//*Label 38*/ GIMT_Encode4(5405),
     /*  562 */ /*TargetOpcode::G_ICMP*//*Label 39*/ GIMT_Encode4(5429),
     /*  566 */ /*TargetOpcode::G_FCMP*//*Label 40*/ GIMT_Encode4(5485), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  578 */ /*TargetOpcode::G_SELECT*//*Label 41*/ GIMT_Encode4(5497),
     /*  582 */ /*TargetOpcode::G_UADDO*//*Label 42*/ GIMT_Encode4(5592),
     /*  586 */ /*TargetOpcode::G_UADDE*//*Label 43*/ GIMT_Encode4(5615),
     /*  590 */ /*TargetOpcode::G_USUBO*//*Label 44*/ GIMT_Encode4(5627),
     /*  594 */ /*TargetOpcode::G_USUBE*//*Label 45*/ GIMT_Encode4(5639),
     /*  598 */ /*TargetOpcode::G_SADDO*//*Label 46*/ GIMT_Encode4(5651),
     /*  602 */ /*TargetOpcode::G_SADDE*//*Label 47*/ GIMT_Encode4(5674),
     /*  606 */ /*TargetOpcode::G_SSUBO*//*Label 48*/ GIMT_Encode4(5686),
     /*  610 */ /*TargetOpcode::G_SSUBE*//*Label 49*/ GIMT_Encode4(5698),
     /*  614 */ /*TargetOpcode::G_UMULO*//*Label 50*/ GIMT_Encode4(5710),
     /*  618 */ /*TargetOpcode::G_SMULO*//*Label 51*/ GIMT_Encode4(5744),
     /*  622 */ /*TargetOpcode::G_UMULH*//*Label 52*/ GIMT_Encode4(5778),
     /*  626 */ /*TargetOpcode::G_SMULH*//*Label 53*/ GIMT_Encode4(5801),
     /*  630 */ /*TargetOpcode::G_UADDSAT*//*Label 54*/ GIMT_Encode4(5813),
     /*  634 */ /*TargetOpcode::G_SADDSAT*//*Label 55*/ GIMT_Encode4(5825), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  646 */ /*TargetOpcode::G_USHLSAT*//*Label 56*/ GIMT_Encode4(5837),
     /*  650 */ /*TargetOpcode::G_SSHLSAT*//*Label 57*/ GIMT_Encode4(5860),
     /*  654 */ /*TargetOpcode::G_SMULFIX*//*Label 58*/ GIMT_Encode4(5883),
     /*  658 */ /*TargetOpcode::G_UMULFIX*//*Label 59*/ GIMT_Encode4(5895),
     /*  662 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 60*/ GIMT_Encode4(5907),
     /*  666 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 61*/ GIMT_Encode4(5919), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  686 */ /*TargetOpcode::G_FADD*//*Label 62*/ GIMT_Encode4(5931),
     /*  690 */ /*TargetOpcode::G_FSUB*//*Label 63*/ GIMT_Encode4(6072),
     /*  694 */ /*TargetOpcode::G_FMUL*//*Label 64*/ GIMT_Encode4(6161),
     /*  698 */ /*TargetOpcode::G_FMA*//*Label 65*/ GIMT_Encode4(6249),
     /*  702 */ /*TargetOpcode::G_FMAD*//*Label 66*/ GIMT_Encode4(6272),
     /*  706 */ /*TargetOpcode::G_FDIV*//*Label 67*/ GIMT_Encode4(6295),
     /*  710 */ /*TargetOpcode::G_FREM*//*Label 68*/ GIMT_Encode4(6340), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  722 */ /*TargetOpcode::G_FPOWI*//*Label 69*/ GIMT_Encode4(6352), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  742 */ /*TargetOpcode::G_FLOG2*//*Label 70*/ GIMT_Encode4(6374), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  758 */ /*TargetOpcode::G_FNEG*//*Label 71*/ GIMT_Encode4(6396),
     /*  762 */ /*TargetOpcode::G_FPEXT*//*Label 72*/ GIMT_Encode4(6447),
     /*  766 */ /*TargetOpcode::G_FPTRUNC*//*Label 73*/ GIMT_Encode4(6469),
     /*  770 */ /*TargetOpcode::G_FPTOSI*//*Label 74*/ GIMT_Encode4(6512),
     /*  774 */ /*TargetOpcode::G_FPTOUI*//*Label 75*/ GIMT_Encode4(6534),
     /*  778 */ /*TargetOpcode::G_SITOFP*//*Label 76*/ GIMT_Encode4(6556),
     /*  782 */ /*TargetOpcode::G_UITOFP*//*Label 77*/ GIMT_Encode4(6583), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  794 */ /*TargetOpcode::G_FABS*//*Label 78*/ GIMT_Encode4(6610), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  806 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 79*/ GIMT_Encode4(6689),
     /*  810 */ /*TargetOpcode::G_FMINNUM*//*Label 80*/ GIMT_Encode4(6719),
     /*  814 */ /*TargetOpcode::G_FMAXNUM*//*Label 81*/ GIMT_Encode4(6753),
     /*  818 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 82*/ GIMT_Encode4(6787),
     /*  822 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 83*/ GIMT_Encode4(6799),
     /*  826 */ /*TargetOpcode::G_FMINIMUM*//*Label 84*/ GIMT_Encode4(6811),
     /*  830 */ /*TargetOpcode::G_FMAXIMUM*//*Label 85*/ GIMT_Encode4(6845), GIMT_Encode4(0), GIMT_Encode4(0), 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(6879), GIMT_Encode4(0),
     /*  882 */ /*TargetOpcode::G_SMIN*//*Label 87*/ GIMT_Encode4(6969),
     /*  886 */ /*TargetOpcode::G_SMAX*//*Label 88*/ GIMT_Encode4(7003),
     /*  890 */ /*TargetOpcode::G_UMIN*//*Label 89*/ GIMT_Encode4(7037),
     /*  894 */ /*TargetOpcode::G_UMAX*//*Label 90*/ GIMT_Encode4(7071),
     /*  898 */ /*TargetOpcode::G_ABS*//*Label 91*/ GIMT_Encode4(7105), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  910 */ /*TargetOpcode::G_BR*//*Label 92*/ GIMT_Encode4(7117), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  930 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 93*/ GIMT_Encode4(7129),
     /*  934 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 94*/ GIMT_Encode4(7259),
     /*  938 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 95*/ GIMT_Encode4(7636), GIMT_Encode4(0), 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(7702), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(7791), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /* 1174 */ /*TargetOpcode::G_VECREDUCE_ADD*//*Label 98*/ GIMT_Encode4(7813),
     /* 1178 */ // Label 0: @1178
     /* 1178 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(1189), // Rule ID 13 //
     /* 1183 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
     /* 1186 */   // MIs[0] d
     /* 1186 */   // No operand predicates
     /* 1186 */   // MIs[0] s
     /* 1186 */   // No operand predicates
     /* 1186 */   // Combiner Rule #13: copy_prop
     /* 1186 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
     /* 1189 */ // Label 100: @1189
     /* 1189 */ GIM_Reject,
     /* 1190 */ // Label 1: @1190
     /* 1190 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(1201), // Rule ID 16 //
     /* 1195 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
     /* 1198 */   // Combiner Rule #16: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
     /* 1198 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
     /* 1201 */ // Label 101: @1201
     /* 1201 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(1212), // Rule ID 94 //
     /* 1206 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 1209 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_ADD'
     /* 1209 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 1212 */ // Label 102: @1212
     /* 1212 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(1223), // Rule ID 142 //
     /* 1217 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
     /* 1220 */   // Combiner Rule #104: simplify_add_to_sub; wip_match_opcode 'G_ADD'
     /* 1220 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
     /* 1223 */ // Label 103: @1223
     /* 1223 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(1234), // Rule ID 237 //
     /* 1228 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 1231 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_ADD'
     /* 1231 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 1234 */ // Label 104: @1234
     /* 1234 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(1245), // Rule ID 281 //
     /* 1239 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 1242 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ADD'
     /* 1242 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 1245 */ // Label 105: @1245
     /* 1245 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(1256), // Rule ID 317 //
     /* 1250 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 1253 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
     /* 1253 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 1256 */ // Label 106: @1256
     /* 1256 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(1290), // Rule ID 0 //
     /* 1261 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
     /* 1264 */   // MIs[0] root
     /* 1264 */   // No operand predicates
     /* 1264 */   // MIs[0] sub
     /* 1264 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1268 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1272 */   // MIs[1] Operand 1
     /* 1272 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
     /* 1276 */   // MIs[1] A
     /* 1276 */   // No operand predicates
     /* 1276 */   // MIs[0] B
     /* 1276 */   // No operand predicates
     /* 1276 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1278 */   // Combiner Rule #0: ZeroMinusAPlusB
     /* 1278 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1281 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1283 */   GIR_RootToRootCopy, /*OpIdx*/2, // B
     /* 1285 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
     /* 1289 */   GIR_EraseRootFromParent_Done,
     /* 1290 */ // Label 107: @1290
     /* 1290 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(1327), // Rule ID 12 //
     /* 1295 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
     /* 1298 */   // MIs[0] root
     /* 1298 */   // No operand predicates
     /* 1298 */   // MIs[0] sub
     /* 1298 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1302 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1306 */   // MIs[1] A
     /* 1306 */   // No operand predicates
     /* 1306 */   // MIs[1] c1
     /* 1306 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1310 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1314 */   // MIs[2] imm1
     /* 1314 */   // No operand predicates
     /* 1314 */   // MIs[0] c2
     /* 1314 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1318 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1322 */   // MIs[3] imm2
     /* 1322 */   // No operand predicates
     /* 1322 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1324 */   // Combiner Rule #12: AMinusC1PlusC2
     /* 1324 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
     /* 1327 */ // Label 108: @1327
     /* 1327 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(1361), // Rule ID 3 //
     /* 1332 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
     /* 1335 */   // MIs[0] root
     /* 1335 */   // No operand predicates
     /* 1335 */   // MIs[0] sub
     /* 1335 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1339 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1343 */   // MIs[1] B
     /* 1343 */   // No operand predicates
     /* 1343 */   // MIs[1] A
     /* 1343 */   // No operand predicates
     /* 1343 */   // MIs[0] A
     /* 1343 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 1348 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1353 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1355 */   // Combiner Rule #3: BMinusAPlusA
     /* 1355 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1360 */   GIR_EraseRootFromParent_Done,
     /* 1361 */ // Label 109: @1361
     /* 1361 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(1395), // Rule ID 131 //
     /* 1366 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
     /* 1369 */   // MIs[0] dst
     /* 1369 */   // No operand predicates
     /* 1369 */   // MIs[0] __add_sub_reg_match_0.tmp
     /* 1369 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1373 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1377 */   // MIs[1] src
     /* 1377 */   // No operand predicates
     /* 1377 */   // MIs[1] __add_sub_reg_match_0.x
     /* 1377 */   // No operand predicates
     /* 1377 */   // MIs[0] __add_sub_reg_match_0.x
     /* 1377 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 1382 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1387 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1389 */   // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[1]]
     /* 1389 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1394 */   GIR_EraseRootFromParent_Done,
     /* 1395 */ // Label 110: @1395
     /* 1395 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(1440), // Rule ID 5 //
     /* 1400 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
     /* 1403 */   // MIs[0] root
     /* 1403 */   // No operand predicates
     /* 1403 */   // MIs[0] sub1
     /* 1403 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1407 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1411 */   // MIs[1] A
     /* 1411 */   // No operand predicates
     /* 1411 */   // MIs[1] B
     /* 1411 */   // No operand predicates
     /* 1411 */   // MIs[0] sub2
     /* 1411 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1415 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1419 */   // MIs[2] B
     /* 1419 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 1424 */   // MIs[2] C
     /* 1424 */   // No operand predicates
     /* 1424 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1426 */   // Combiner Rule #5: AMinusBPlusBMinusC
     /* 1426 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1429 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1431 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
     /* 1435 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
     /* 1439 */   GIR_EraseRootFromParent_Done,
     /* 1440 */ // Label 111: @1440
     /* 1440 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(1485), // Rule ID 4 //
     /* 1445 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
     /* 1448 */   // MIs[0] root
     /* 1448 */   // No operand predicates
     /* 1448 */   // MIs[0] sub1
     /* 1448 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1452 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1456 */   // MIs[1] A
     /* 1456 */   // No operand predicates
     /* 1456 */   // MIs[1] B
     /* 1456 */   // No operand predicates
     /* 1456 */   // MIs[0] sub2
     /* 1456 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1460 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1464 */   // MIs[2] C
     /* 1464 */   // No operand predicates
     /* 1464 */   // MIs[2] A
     /* 1464 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 1469 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1471 */   // Combiner Rule #4: AMinusBPlusCMinusA
     /* 1471 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1474 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1476 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
     /* 1480 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
     /* 1484 */   GIR_EraseRootFromParent_Done,
     /* 1485 */ // Label 112: @1485
     /* 1485 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(1514), // Rule ID 384 //
     /* 1490 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
     /* 1493 */   // MIs[0] dst
     /* 1493 */   // No operand predicates
     /* 1493 */   // MIs[0] ext1
     /* 1493 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1497 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 1501 */   // MIs[1] src1
     /* 1501 */   // No operand predicates
     /* 1501 */   // MIs[0] ext2
     /* 1501 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1505 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 1509 */   // MIs[2] src2
     /* 1509 */   // No operand predicates
     /* 1509 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1511 */   // Combiner Rule #235: push_add_through_sext
     /* 1511 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 1514 */ // Label 113: @1514
     /* 1514 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1549), // Rule ID 39 //
     /* 1519 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
     /* 1522 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 1528 */   // MIs[0] root
     /* 1528 */   // No operand predicates
     /* 1528 */   // MIs[0] left
     /* 1528 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1532 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 1536 */   // MIs[1] imm1
     /* 1536 */   // No operand predicates
     /* 1536 */   // MIs[0] right
     /* 1536 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1540 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 1544 */   // MIs[2] imm2
     /* 1544 */   // No operand predicates
     /* 1544 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1546 */   // Combiner Rule #37: add_of_vscale
     /* 1546 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
     /* 1549 */ // Label 114: @1549
     /* 1549 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1578), // Rule ID 381 //
     /* 1554 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
     /* 1557 */   // MIs[0] dst
     /* 1557 */   // No operand predicates
     /* 1557 */   // MIs[0] ext1
     /* 1557 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1561 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 1565 */   // MIs[1] src1
     /* 1565 */   // No operand predicates
     /* 1565 */   // MIs[0] ext2
     /* 1565 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1569 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 1573 */   // MIs[2] src2
     /* 1573 */   // No operand predicates
     /* 1573 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1575 */   // Combiner Rule #232: push_add_through_zext
     /* 1575 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 1578 */ // Label 115: @1578
     /* 1578 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1612), // Rule ID 1 //
     /* 1583 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
     /* 1586 */   // MIs[0] root
     /* 1586 */   // No operand predicates
     /* 1586 */   // MIs[0] A
     /* 1586 */   // No operand predicates
     /* 1586 */   // MIs[0] sub
     /* 1586 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1590 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1594 */   // MIs[1] Operand 1
     /* 1594 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
     /* 1598 */   // MIs[1] B
     /* 1598 */   // No operand predicates
     /* 1598 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1600 */   // Combiner Rule #1: APlusZeroMinusB
     /* 1600 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1603 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1605 */   GIR_RootToRootCopy, /*OpIdx*/1, // A
     /* 1607 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
     /* 1611 */   GIR_EraseRootFromParent_Done,
     /* 1612 */ // Label 116: @1612
     /* 1612 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1646), // Rule ID 2 //
     /* 1617 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
     /* 1620 */   // MIs[0] root
     /* 1620 */   // No operand predicates
     /* 1620 */   // MIs[0] A
     /* 1620 */   // No operand predicates
     /* 1620 */   // MIs[0] sub
     /* 1620 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1624 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1628 */   // MIs[1] B
     /* 1628 */   // No operand predicates
     /* 1628 */   // MIs[1] A
     /* 1628 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1633 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1638 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1640 */   // Combiner Rule #2: APlusBMinusB
     /* 1640 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1645 */   GIR_EraseRootFromParent_Done,
     /* 1646 */ // Label 117: @1646
     /* 1646 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1680), // Rule ID 130 //
     /* 1651 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
     /* 1654 */   // MIs[0] dst
     /* 1654 */   // No operand predicates
     /* 1654 */   // MIs[0] __add_sub_reg_match_0.x
     /* 1654 */   // No operand predicates
     /* 1654 */   // MIs[0] __add_sub_reg_match_0.tmp
     /* 1654 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1658 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1662 */   // MIs[1] src
     /* 1662 */   // No operand predicates
     /* 1662 */   // MIs[1] __add_sub_reg_match_0.x
     /* 1662 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1667 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1672 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1674 */   // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[0]]
     /* 1674 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1679 */   GIR_EraseRootFromParent_Done,
     /* 1680 */ // Label 118: @1680
     /* 1680 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1725), // Rule ID 6 //
     /* 1685 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
     /* 1688 */   // MIs[0] root
     /* 1688 */   // No operand predicates
     /* 1688 */   // MIs[0] A
     /* 1688 */   // No operand predicates
     /* 1688 */   // MIs[0] sub1
     /* 1688 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1692 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1696 */   // MIs[1] B
     /* 1696 */   // No operand predicates
     /* 1696 */   // MIs[1] add1
     /* 1696 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1700 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1704 */   // MIs[2] A
     /* 1704 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1709 */   // MIs[2] C
     /* 1709 */   // No operand predicates
     /* 1709 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1711 */   // Combiner Rule #6: APlusBMinusAplusC
     /* 1711 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1714 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1716 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
     /* 1720 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
     /* 1724 */   GIR_EraseRootFromParent_Done,
     /* 1725 */ // Label 119: @1725
     /* 1725 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1770), // Rule ID 7 //
     /* 1730 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
     /* 1733 */   // MIs[0] root
     /* 1733 */   // No operand predicates
     /* 1733 */   // MIs[0] A
     /* 1733 */   // No operand predicates
     /* 1733 */   // MIs[0] sub1
     /* 1733 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1737 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1741 */   // MIs[1] B
     /* 1741 */   // No operand predicates
     /* 1741 */   // MIs[1] add1
     /* 1741 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1745 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1749 */   // MIs[2] C
     /* 1749 */   // No operand predicates
     /* 1749 */   // MIs[2] A
     /* 1749 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1754 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1756 */   // Combiner Rule #7: APlusBMinusCPlusA
     /* 1756 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1759 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1761 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
     /* 1765 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
     /* 1769 */   GIR_EraseRootFromParent_Done,
     /* 1770 */ // Label 120: @1770
     /* 1770 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1793), // Rule ID 105 //
     /* 1775 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 1778 */   // MIs[0] dst
     /* 1778 */   // No operand predicates
     /* 1778 */   // MIs[0] lhs
     /* 1778 */   // No operand predicates
     /* 1778 */   // MIs[0] Operand 2
     /* 1778 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 1782 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 1787 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[1]]
     /* 1787 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 1792 */   GIR_EraseRootFromParent_Done,
     /* 1793 */ // Label 121: @1793
     /* 1793 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1804), // Rule ID 150 //
     /* 1798 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
     /* 1801 */   // MIs[0] root
     /* 1801 */   // No operand predicates
     /* 1801 */   // MIs[0] src1
     /* 1801 */   // No operand predicates
     /* 1801 */   // MIs[0] src2
     /* 1801 */   // No operand predicates
     /* 1801 */   // Combiner Rule #108: reassoc_comm_binops
     /* 1801 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
     /* 1804 */ // Label 122: @1804
     /* 1804 */ GIM_Reject,
     /* 1805 */ // Label 2: @1805
     /* 1805 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1816), // Rule ID 95 //
     /* 1810 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 1813 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_SUB'
     /* 1813 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 1816 */ // Label 123: @1816
     /* 1816 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1827), // Rule ID 245 //
     /* 1821 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 1824 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SUB'
     /* 1824 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 1827 */ // Label 124: @1827
     /* 1827 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1838), // Rule ID 282 //
     /* 1832 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 1835 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SUB'
     /* 1835 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 1838 */ // Label 125: @1838
     /* 1838 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1849), // Rule ID 314 //
     /* 1843 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
     /* 1846 */   // Combiner Rule #194: sub_add_reg; wip_match_opcode 'G_SUB'
     /* 1846 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
     /* 1849 */ // Label 126: @1849
     /* 1849 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1860), // Rule ID 348 //
     /* 1854 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
     /* 1857 */   // Combiner Rule #201: simplify_neg_minmax; wip_match_opcode 'G_SUB'
     /* 1857 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
     /* 1860 */ // Label 127: @1860
     /* 1860 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1897), // Rule ID 8 //
     /* 1865 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
     /* 1868 */   // MIs[0] root
     /* 1868 */   // No operand predicates
     /* 1868 */   // MIs[0] add
     /* 1868 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1872 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1876 */   // MIs[1] A
     /* 1876 */   // No operand predicates
     /* 1876 */   // MIs[1] c1
     /* 1876 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1880 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1884 */   // MIs[2] imm1
     /* 1884 */   // No operand predicates
     /* 1884 */   // MIs[0] c2
     /* 1884 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1888 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1892 */   // MIs[3] imm2
     /* 1892 */   // No operand predicates
     /* 1892 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1894 */   // Combiner Rule #8: APlusC1MinusC2
     /* 1894 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
     /* 1897 */ // Label 128: @1897
     /* 1897 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1934), // Rule ID 11 //
     /* 1902 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
     /* 1905 */   // MIs[0] root
     /* 1905 */   // No operand predicates
     /* 1905 */   // MIs[0] sub1
     /* 1905 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1909 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1913 */   // MIs[1] c1
     /* 1913 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 1917 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1921 */   // MIs[2] imm1
     /* 1921 */   // No operand predicates
     /* 1921 */   // MIs[1] A
     /* 1921 */   // No operand predicates
     /* 1921 */   // MIs[0] c2
     /* 1921 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1925 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1929 */   // MIs[3] imm2
     /* 1929 */   // No operand predicates
     /* 1929 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1931 */   // Combiner Rule #11: C1Minus2MinusC2
     /* 1931 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
     /* 1934 */ // Label 129: @1934
     /* 1934 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1971), // Rule ID 10 //
     /* 1939 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
     /* 1942 */   // MIs[0] root
     /* 1942 */   // No operand predicates
     /* 1942 */   // MIs[0] sub1
     /* 1942 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1946 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1950 */   // MIs[1] A
     /* 1950 */   // No operand predicates
     /* 1950 */   // MIs[1] c1
     /* 1950 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1954 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1958 */   // MIs[2] imm1
     /* 1958 */   // No operand predicates
     /* 1958 */   // MIs[0] c2
     /* 1958 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1962 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1966 */   // MIs[3] imm2
     /* 1966 */   // No operand predicates
     /* 1966 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1968 */   // Combiner Rule #10: AMinusC1MinusC2
     /* 1968 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
     /* 1971 */ // Label 130: @1971
     /* 1971 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(2000), // Rule ID 383 //
     /* 1976 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
     /* 1979 */   // MIs[0] dst
     /* 1979 */   // No operand predicates
     /* 1979 */   // MIs[0] ext1
     /* 1979 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1983 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 1987 */   // MIs[1] src1
     /* 1987 */   // No operand predicates
     /* 1987 */   // MIs[0] ext2
     /* 1987 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1991 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 1995 */   // MIs[2] src2
     /* 1995 */   // No operand predicates
     /* 1995 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1997 */   // Combiner Rule #234: push_sub_through_sext
     /* 1997 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 2000 */ // Label 131: @2000
     /* 2000 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(2029), // Rule ID 380 //
     /* 2005 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
     /* 2008 */   // MIs[0] dst
     /* 2008 */   // No operand predicates
     /* 2008 */   // MIs[0] ext1
     /* 2008 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2012 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 2016 */   // MIs[1] src1
     /* 2016 */   // No operand predicates
     /* 2016 */   // MIs[0] ext2
     /* 2016 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2020 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 2024 */   // MIs[2] src2
     /* 2024 */   // No operand predicates
     /* 2024 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2026 */   // Combiner Rule #231: push_sub_through_zext
     /* 2026 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 2029 */ // Label 132: @2029
     /* 2029 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(2072), // Rule ID 160 //
     /* 2034 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
     /* 2037 */   // MIs[0] dst
     /* 2037 */   // No operand predicates
     /* 2037 */   // MIs[0] Operand 1
     /* 2037 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 2041 */   // MIs[0] and
     /* 2041 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 2045 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
     /* 2049 */   // MIs[1] x
     /* 2049 */   // No operand predicates
     /* 2049 */   // MIs[1] Operand 2
     /* 2049 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
     /* 2053 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
     /* 2057 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 2059 */   // Combiner Rule #118: neg_and_one_to_sext_inreg
     /* 2059 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
     /* 2062 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 2064 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 2068 */   GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
     /* 2071 */   GIR_EraseRootFromParent_Done,
     /* 2072 */ // Label 133: @2072
     /* 2072 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(2109), // Rule ID 9 //
     /* 2077 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
     /* 2080 */   // MIs[0] root
     /* 2080 */   // No operand predicates
     /* 2080 */   // MIs[0] c2
     /* 2080 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2084 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2088 */   // MIs[1] imm2
     /* 2088 */   // No operand predicates
     /* 2088 */   // MIs[0] add
     /* 2088 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2092 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 2096 */   // MIs[2] A
     /* 2096 */   // No operand predicates
     /* 2096 */   // MIs[2] c1
     /* 2096 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
     /* 2100 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2104 */   // MIs[3] imm1
     /* 2104 */   // No operand predicates
     /* 2104 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 2106 */   // Combiner Rule #9: C2MinusAPlusC1
     /* 2106 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
     /* 2109 */ // Label 134: @2109
     /* 2109 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(2136), // Rule ID 42 //
     /* 2114 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
     /* 2117 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 2123 */   // MIs[0] root
     /* 2123 */   // No operand predicates
     /* 2123 */   // MIs[0] x
     /* 2123 */   // No operand predicates
     /* 2123 */   // MIs[0] right
     /* 2123 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 2127 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 2131 */   // MIs[1] imm
     /* 2131 */   // No operand predicates
     /* 2131 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 2133 */   // Combiner Rule #40: sub_of_vscale
     /* 2133 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
     /* 2136 */ // Label 135: @2136
     /* 2136 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(2159), // Rule ID 104 //
     /* 2141 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 2144 */   // MIs[0] dst
     /* 2144 */   // No operand predicates
     /* 2144 */   // MIs[0] lhs
     /* 2144 */   // No operand predicates
     /* 2144 */   // MIs[0] Operand 2
     /* 2144 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 2148 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2153 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[0]]
     /* 2153 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2158 */   GIR_EraseRootFromParent_Done,
     /* 2159 */ // Label 136: @2159
     /* 2159 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(2180), // Rule ID 15 //
     /* 2164 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
     /* 2167 */   // MIs[0] d
     /* 2167 */   // No operand predicates
     /* 2167 */   // MIs[0] op1
     /* 2167 */   // No operand predicates
     /* 2167 */   // MIs[0] c
     /* 2167 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 2171 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2175 */   // MIs[1] imm
     /* 2175 */   // No operand predicates
     /* 2175 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 2177 */   // Combiner Rule #15: sub_to_add
     /* 2177 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
     /* 2180 */ // Label 137: @2180
     /* 2180 */ GIM_Reject,
     /* 2181 */ // Label 3: @2181
     /* 2181 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2192), // Rule ID 78 //
     /* 2186 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
     /* 2189 */   // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_MUL'
     /* 2189 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
     /* 2192 */ // Label 138: @2192
     /* 2192 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2203), // Rule ID 242 //
     /* 2197 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2200 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_MUL'
     /* 2200 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2203 */ // Label 139: @2203
     /* 2203 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2214), // Rule ID 318 //
     /* 2208 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 2211 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
     /* 2211 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 2214 */ // Label 140: @2214
     /* 2214 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2254), // Rule ID 17 //
     /* 2219 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
     /* 2222 */   // MIs[0] dst
     /* 2222 */   GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
     /* 2226 */   // MIs[0] x
     /* 2226 */   // No operand predicates
     /* 2226 */   // MIs[0] Operand 2
     /* 2226 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
     /* 2230 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 2233 */   GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
     /* 2243 */   // Combiner Rule #17: mul_by_neg_one
     /* 2243 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 2246 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 2248 */   GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
     /* 2251 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 2253 */   GIR_EraseRootFromParent_Done,
     /* 2254 */ // Label 141: @2254
     /* 2254 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2283), // Rule ID 385 //
     /* 2259 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
     /* 2262 */   // MIs[0] dst
     /* 2262 */   // No operand predicates
     /* 2262 */   // MIs[0] ext1
     /* 2262 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2266 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 2270 */   // MIs[1] src1
     /* 2270 */   // No operand predicates
     /* 2270 */   // MIs[0] ext2
     /* 2270 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2274 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 2278 */   // MIs[2] src2
     /* 2278 */   // No operand predicates
     /* 2278 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2280 */   // Combiner Rule #236: push_mul_through_sext
     /* 2280 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 2283 */ // Label 142: @2283
     /* 2283 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2318), // Rule ID 40 //
     /* 2288 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
     /* 2291 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 2297 */   // MIs[0] root
     /* 2297 */   // No operand predicates
     /* 2297 */   // MIs[0] left
     /* 2297 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2301 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 2305 */   // MIs[1] scale
     /* 2305 */   // No operand predicates
     /* 2305 */   // MIs[0] x
     /* 2305 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2309 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2313 */   // MIs[2] imm1
     /* 2313 */   // No operand predicates
     /* 2313 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2315 */   // Combiner Rule #38: mul_of_vscale
     /* 2315 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
     /* 2318 */ // Label 143: @2318
     /* 2318 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2347), // Rule ID 382 //
     /* 2323 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
     /* 2326 */   // MIs[0] dst
     /* 2326 */   // No operand predicates
     /* 2326 */   // MIs[0] ext1
     /* 2326 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2330 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 2334 */   // MIs[1] src1
     /* 2334 */   // No operand predicates
     /* 2334 */   // MIs[0] ext2
     /* 2334 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2338 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 2342 */   // MIs[2] src2
     /* 2342 */   // No operand predicates
     /* 2342 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2344 */   // Combiner Rule #233: push_mul_through_zext
     /* 2344 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
     /* 2347 */ // Label 144: @2347
     /* 2347 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2370), // Rule ID 123 //
     /* 2352 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
     /* 2355 */   // MIs[0] dst
     /* 2355 */   // No operand predicates
     /* 2355 */   // MIs[0] lhs
     /* 2355 */   // No operand predicates
     /* 2355 */   // MIs[0] zero
     /* 2355 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 2359 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 2364 */   // Combiner Rule #87: binop_right_to_zero
     /* 2364 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 2369 */   GIR_EraseRootFromParent_Done,
     /* 2370 */ // Label 145: @2370
     /* 2370 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2393), // Rule ID 128 //
     /* 2375 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
     /* 2378 */   // MIs[0] dst
     /* 2378 */   // No operand predicates
     /* 2378 */   // MIs[0] x
     /* 2378 */   // No operand predicates
     /* 2378 */   // MIs[0] Operand 2
     /* 2378 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
     /* 2382 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2387 */   // Combiner Rule #92: right_identity_one_int
     /* 2387 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2392 */   GIR_EraseRootFromParent_Done,
     /* 2393 */ // Label 146: @2393
     /* 2393 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2404), // Rule ID 14 //
     /* 2398 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
     /* 2401 */   // MIs[0] d
     /* 2401 */   // No operand predicates
     /* 2401 */   // MIs[0] op1
     /* 2401 */   // No operand predicates
     /* 2401 */   // MIs[0] op2
     /* 2401 */   // No operand predicates
     /* 2401 */   // Combiner Rule #14: mul_to_shl
     /* 2401 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
     /* 2404 */ // Label 147: @2404
     /* 2404 */ GIM_Reject,
     /* 2405 */ // Label 4: @2405
     /* 2405 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2416), // Rule ID 119 //
     /* 2410 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2413 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SDIV'
     /* 2413 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2416 */ // Label 148: @2416
     /* 2416 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2427), // Rule ID 213 //
     /* 2421 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2424 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
     /* 2424 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2427 */ // Label 149: @2427
     /* 2427 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2438), // Rule ID 248 //
     /* 2432 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2435 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SDIV'
     /* 2435 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2438 */ // Label 150: @2438
     /* 2438 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2449), // Rule ID 287 //
     /* 2443 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2446 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SDIV'
     /* 2446 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2449 */ // Label 151: @2449
     /* 2449 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2466), // Rule ID 310 //
     /* 2454 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
     /* 2457 */   GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
     /* 2463 */   // MIs[0] dst
     /* 2463 */   // No operand predicates
     /* 2463 */   // MIs[0] x
     /* 2463 */   // No operand predicates
     /* 2463 */   // MIs[0] y
     /* 2463 */   // No operand predicates
     /* 2463 */   // Combiner Rule #190: sdiv_by_pow2
     /* 2463 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
     /* 2466 */ // Label 152: @2466
     /* 2466 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2477), // Rule ID 312 //
     /* 2471 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
     /* 2474 */   // MIs[0] dst
     /* 2474 */   // No operand predicates
     /* 2474 */   // MIs[0] x
     /* 2474 */   // No operand predicates
     /* 2474 */   // MIs[0] y
     /* 2474 */   // No operand predicates
     /* 2474 */   // Combiner Rule #192: sdiv_by_const
     /* 2474 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
     /* 2477 */ // Label 153: @2477
     /* 2477 */ GIM_Reject,
     /* 2478 */ // Label 5: @2478
     /* 2478 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2489), // Rule ID 81 //
     /* 2483 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 2486 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
     /* 2486 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 2489 */ // Label 154: @2489
     /* 2489 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2500), // Rule ID 120 //
     /* 2494 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2497 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UDIV'
     /* 2497 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2500 */ // Label 155: @2500
     /* 2500 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2511), // Rule ID 214 //
     /* 2505 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2508 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
     /* 2508 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2511 */ // Label 156: @2511
     /* 2511 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2522), // Rule ID 247 //
     /* 2516 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2519 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UDIV'
     /* 2519 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2522 */ // Label 157: @2522
     /* 2522 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2533), // Rule ID 289 //
     /* 2527 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2530 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UDIV'
     /* 2530 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2533 */ // Label 158: @2533
     /* 2533 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2550), // Rule ID 309 //
     /* 2538 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
     /* 2541 */   GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
     /* 2547 */   // MIs[0] dst
     /* 2547 */   // No operand predicates
     /* 2547 */   // MIs[0] x
     /* 2547 */   // No operand predicates
     /* 2547 */   // MIs[0] y
     /* 2547 */   // No operand predicates
     /* 2547 */   // Combiner Rule #189: udiv_by_pow2
     /* 2547 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
     /* 2550 */ // Label 159: @2550
     /* 2550 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2561), // Rule ID 311 //
     /* 2555 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
     /* 2558 */   // MIs[0] dst
     /* 2558 */   // No operand predicates
     /* 2558 */   // MIs[0] x
     /* 2558 */   // No operand predicates
     /* 2558 */   // MIs[0] y
     /* 2558 */   // No operand predicates
     /* 2558 */   // Combiner Rule #191: udiv_by_const
     /* 2558 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
     /* 2561 */ // Label 160: @2561
     /* 2561 */ GIM_Reject,
     /* 2562 */ // Label 6: @2562
     /* 2562 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(2573), // Rule ID 121 //
     /* 2567 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2570 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SREM'
     /* 2570 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2573 */ // Label 161: @2573
     /* 2573 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(2584), // Rule ID 215 //
     /* 2578 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2581 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_SREM'
     /* 2581 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2584 */ // Label 162: @2584
     /* 2584 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(2595), // Rule ID 250 //
     /* 2589 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2592 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SREM'
     /* 2592 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2595 */ // Label 163: @2595
     /* 2595 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(2606), // Rule ID 288 //
     /* 2600 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2603 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SREM'
     /* 2603 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2606 */ // Label 164: @2606
     /* 2606 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(2617), // Rule ID 308 //
     /* 2611 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
     /* 2614 */   // MIs[0] dst
     /* 2614 */   // No operand predicates
     /* 2614 */   // MIs[0] x
     /* 2614 */   // No operand predicates
     /* 2614 */   // MIs[0] y
     /* 2614 */   // No operand predicates
     /* 2614 */   // Combiner Rule #188: srem_by_const
     /* 2614 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
     /* 2617 */ // Label 165: @2617
     /* 2617 */ GIM_Reject,
     /* 2618 */ // Label 7: @2618
     /* 2618 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(2629), // Rule ID 82 //
     /* 2623 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 2626 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
     /* 2626 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 2629 */ // Label 166: @2629
     /* 2629 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(2640), // Rule ID 122 //
     /* 2634 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2637 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UREM'
     /* 2637 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2640 */ // Label 167: @2640
     /* 2640 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(2651), // Rule ID 171 //
     /* 2645 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
     /* 2648 */   // Combiner Rule #129: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
     /* 2648 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
     /* 2651 */ // Label 168: @2651
     /* 2651 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(2662), // Rule ID 216 //
     /* 2656 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2659 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_UREM'
     /* 2659 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2662 */ // Label 169: @2662
     /* 2662 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(2673), // Rule ID 249 //
     /* 2667 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2670 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UREM'
     /* 2670 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2673 */ // Label 170: @2673
     /* 2673 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(2684), // Rule ID 290 //
     /* 2678 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2681 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UREM'
     /* 2681 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2684 */ // Label 171: @2684
     /* 2684 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(2695), // Rule ID 307 //
     /* 2689 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
     /* 2692 */   // MIs[0] dst
     /* 2692 */   // No operand predicates
     /* 2692 */   // MIs[0] x
     /* 2692 */   // No operand predicates
     /* 2692 */   // MIs[0] y
     /* 2692 */   // No operand predicates
     /* 2692 */   // Combiner Rule #187: urem_by_const
     /* 2692 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
     /* 2695 */ // Label 172: @2695
     /* 2695 */ GIM_Reject,
     /* 2696 */ // Label 8: @2696
     /* 2696 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(2707), // Rule ID 73 //
     /* 2701 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
     /* 2704 */   // Combiner Rule #69: load_and_mask; wip_match_opcode 'G_AND'
     /* 2704 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
     /* 2707 */ // Label 173: @2707
     /* 2707 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(2718), // Rule ID 77 //
     /* 2712 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
     /* 2715 */   // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_AND'
     /* 2715 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
     /* 2718 */ // Label 174: @2718
     /* 2718 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(2729), // Rule ID 143 //
     /* 2723 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 2726 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
     /* 2726 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 2729 */ // Label 175: @2729
     /* 2729 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(2740), // Rule ID 163 //
     /* 2734 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
     /* 2737 */   // Combiner Rule #121: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
     /* 2737 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
     /* 2740 */ // Label 176: @2740
     /* 2740 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(2751), // Rule ID 168 //
     /* 2745 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
     /* 2748 */   // Combiner Rule #126: redundant_and; wip_match_opcode 'G_AND'
     /* 2748 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
     /* 2751 */ // Label 177: @2751
     /* 2751 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(2762), // Rule ID 186 //
     /* 2756 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
     /* 2759 */   // Combiner Rule #144: overlapping_and; wip_match_opcode 'G_AND'
     /* 2759 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
     /* 2762 */ // Label 178: @2762
     /* 2762 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(2773), // Rule ID 239 //
     /* 2767 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2770 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_AND'
     /* 2770 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2773 */ // Label 179: @2773
     /* 2773 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(2784), // Rule ID 272 //
     /* 2778 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
     /* 2781 */   // Combiner Rule #177: and_or_disjoint_mask; wip_match_opcode 'G_AND'
     /* 2781 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
     /* 2784 */ // Label 180: @2784
     /* 2784 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(2795), // Rule ID 284 //
     /* 2789 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2792 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_AND'
     /* 2792 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2795 */ // Label 181: @2795
     /* 2795 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(2806), // Rule ID 319 //
     /* 2800 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 2803 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
     /* 2803 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 2806 */ // Label 182: @2806
     /* 2806 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(2817), // Rule ID 346 //
     /* 2811 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
     /* 2814 */   // Combiner Rule #199: match_ands; wip_match_opcode 'G_AND'
     /* 2814 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
     /* 2817 */ // Label 183: @2817
     /* 2817 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(2915), // Rule ID 156 //
     /* 2822 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
     /* 2825 */   // MIs[0] root
     /* 2825 */   // No operand predicates
     /* 2825 */   // MIs[0] d1
     /* 2825 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2829 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 2833 */   // MIs[1] p
     /* 2833 */   // No operand predicates
     /* 2833 */   // MIs[1] s1
     /* 2833 */   GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
     /* 2837 */   // MIs[1] Operand 3
     /* 2837 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
     /* 2841 */   // MIs[0] d2
     /* 2841 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2845 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 2849 */   // MIs[2] p
     /* 2849 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 2854 */   // MIs[2] s2
     /* 2854 */   // No operand predicates
     /* 2854 */   // MIs[2] Operand 3
     /* 2854 */   GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
     /* 2858 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
     /* 2862 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2864 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 2867 */   GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
     /* 2877 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 2880 */   // Combiner Rule #114: double_icmp_zero_and_combine
     /* 2880 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 2883 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2888 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
     /* 2892 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
     /* 2896 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 2900 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
     /* 2904 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
     /* 2908 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 2911 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
     /* 2914 */   GIR_EraseRootFromParent_Done,
     /* 2915 */ // Label 184: @2915
     /* 2915 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(2952), // Rule ID 232 //
     /* 2920 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
     /* 2923 */   // MIs[0] root
     /* 2923 */   // No operand predicates
     /* 2923 */   // MIs[0] shift
     /* 2923 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2927 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 2931 */   // MIs[1] x
     /* 2931 */   // No operand predicates
     /* 2931 */   // MIs[1] lsb
     /* 2931 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 2935 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2939 */   // MIs[2] imm1
     /* 2939 */   // No operand predicates
     /* 2939 */   // MIs[0] mask
     /* 2939 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 2943 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2947 */   // MIs[3] imm2
     /* 2947 */   // No operand predicates
     /* 2947 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 2949 */   // Combiner Rule #167: bitfield_extract_from_and
     /* 2949 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
     /* 2952 */ // Label 185: @2952
     /* 2952 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(2976), // Rule ID 114 //
     /* 2957 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
     /* 2960 */   // MIs[0] dst
     /* 2960 */   // No operand predicates
     /* 2960 */   // MIs[0] src
     /* 2960 */   // No operand predicates
     /* 2960 */   // MIs[0] src
     /* 2960 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 2965 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2970 */   // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[0]]
     /* 2970 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2975 */   GIR_EraseRootFromParent_Done,
     /* 2976 */ // Label 186: @2976
     /* 2976 */ GIM_Reject,
     /* 2977 */ // Label 9: @2977
     /* 2977 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(2988), // Rule ID 79 //
     /* 2982 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
     /* 2985 */   // Combiner Rule #73: undef_to_negative_one; wip_match_opcode 'G_OR'
     /* 2985 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
     /* 2988 */ // Label 187: @2988
     /* 2988 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(2999), // Rule ID 144 //
     /* 2993 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 2996 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
     /* 2996 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 2999 */ // Label 188: @2999
     /* 2999 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(3010), // Rule ID 170 //
     /* 3004 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
     /* 3007 */   // Combiner Rule #128: redundant_or; wip_match_opcode 'G_OR'
     /* 3007 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
     /* 3010 */ // Label 189: @3010
     /* 3010 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3021), // Rule ID 212 //
     /* 3015 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
     /* 3018 */   // Combiner Rule #154: load_or_combine; wip_match_opcode 'G_OR'
     /* 3018 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
     /* 3021 */ // Label 190: @3021
     /* 3021 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3032), // Rule ID 217 //
     /* 3026 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
     /* 3029 */   // Combiner Rule #156: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
     /* 3029 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
     /* 3032 */ // Label 191: @3032
     /* 3032 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3043), // Rule ID 243 //
     /* 3037 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 3040 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_OR'
     /* 3040 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 3043 */ // Label 192: @3043
     /* 3043 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3054), // Rule ID 285 //
     /* 3048 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 3051 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_OR'
     /* 3051 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 3054 */ // Label 193: @3054
     /* 3054 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3065), // Rule ID 320 //
     /* 3059 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 3062 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
     /* 3062 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 3065 */ // Label 194: @3065
     /* 3065 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3076), // Rule ID 347 //
     /* 3070 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
     /* 3073 */   // Combiner Rule #200: match_ors; wip_match_opcode 'G_OR'
     /* 3073 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
     /* 3076 */ // Label 195: @3076
     /* 3076 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3123), // Rule ID 224 //
     /* 3081 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
     /* 3084 */   // MIs[0] root
     /* 3084 */   // No operand predicates
     /* 3084 */   // MIs[0] out1
     /* 3084 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3088 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
     /* 3092 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 3092 */   // No operand predicates
     /* 3092 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
     /* 3092 */   // No operand predicates
     /* 3092 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 3092 */   // No operand predicates
     /* 3092 */   // MIs[0] out2
     /* 3092 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3096 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 3100 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 3100 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3105 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 3105 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 3110 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3115 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3117 */   // Combiner Rule #161: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
     /* 3117 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3122 */   GIR_EraseRootFromParent_Done,
     /* 3123 */ // Label 196: @3123
     /* 3123 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3170), // Rule ID 226 //
     /* 3128 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
     /* 3131 */   // MIs[0] root
     /* 3131 */   // No operand predicates
     /* 3131 */   // MIs[0] out1
     /* 3131 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3135 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
     /* 3139 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
     /* 3139 */   // No operand predicates
     /* 3139 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3139 */   // No operand predicates
     /* 3139 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3139 */   // No operand predicates
     /* 3139 */   // MIs[0] out2
     /* 3139 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3143 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 3147 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3147 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 3152 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3152 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 3157 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3162 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3164 */   // Combiner Rule #162: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
     /* 3164 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3169 */   GIR_EraseRootFromParent_Done,
     /* 3170 */ // Label 197: @3170
     /* 3170 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3268), // Rule ID 157 //
     /* 3175 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
     /* 3178 */   // MIs[0] root
     /* 3178 */   // No operand predicates
     /* 3178 */   // MIs[0] d1
     /* 3178 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3182 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 3186 */   // MIs[1] p
     /* 3186 */   // No operand predicates
     /* 3186 */   // MIs[1] s1
     /* 3186 */   GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
     /* 3190 */   // MIs[1] Operand 3
     /* 3190 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
     /* 3194 */   // MIs[0] d2
     /* 3194 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3198 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 3202 */   // MIs[2] p
     /* 3202 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3207 */   // MIs[2] s2
     /* 3207 */   // No operand predicates
     /* 3207 */   // MIs[2] Operand 3
     /* 3207 */   GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
     /* 3211 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
     /* 3215 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3217 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 3220 */   GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
     /* 3230 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 3233 */   // Combiner Rule #115: double_icmp_zero_or_combine
     /* 3233 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 3236 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3241 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
     /* 3245 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
     /* 3249 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 3253 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
     /* 3257 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
     /* 3261 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 3264 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
     /* 3267 */   GIR_EraseRootFromParent_Done,
     /* 3268 */ // Label 198: @3268
     /* 3268 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3315), // Rule ID 227 //
     /* 3273 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
     /* 3276 */   // MIs[0] root
     /* 3276 */   // No operand predicates
     /* 3276 */   // MIs[0] out2
     /* 3276 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3280 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 3284 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3284 */   // No operand predicates
     /* 3284 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3284 */   // No operand predicates
     /* 3284 */   // MIs[0] out1
     /* 3284 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3288 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
     /* 3292 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
     /* 3292 */   // No operand predicates
     /* 3292 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3292 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3297 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3297 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 3302 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3307 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3309 */   // Combiner Rule #162: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
     /* 3309 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3314 */   GIR_EraseRootFromParent_Done,
     /* 3315 */ // Label 199: @3315
     /* 3315 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3362), // Rule ID 225 //
     /* 3320 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
     /* 3323 */   // MIs[0] root
     /* 3323 */   // No operand predicates
     /* 3323 */   // MIs[0] out2
     /* 3323 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3327 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 3331 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 3331 */   // No operand predicates
     /* 3331 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 3331 */   // No operand predicates
     /* 3331 */   // MIs[0] out1
     /* 3331 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3335 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
     /* 3339 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 3339 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3344 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
     /* 3344 */   // No operand predicates
     /* 3344 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 3344 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 3349 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3354 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3356 */   // Combiner Rule #161: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
     /* 3356 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3361 */   GIR_EraseRootFromParent_Done,
     /* 3362 */ // Label 200: @3362
     /* 3362 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3386), // Rule ID 115 //
     /* 3367 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
     /* 3370 */   // MIs[0] dst
     /* 3370 */   // No operand predicates
     /* 3370 */   // MIs[0] src
     /* 3370 */   // No operand predicates
     /* 3370 */   // MIs[0] src
     /* 3370 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 3375 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3380 */   // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[1]]
     /* 3380 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3385 */   GIR_EraseRootFromParent_Done,
     /* 3386 */ // Label 201: @3386
     /* 3386 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3409), // Rule ID 106 //
     /* 3391 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 3394 */   // MIs[0] dst
     /* 3394 */   // No operand predicates
     /* 3394 */   // MIs[0] lhs
     /* 3394 */   // No operand predicates
     /* 3394 */   // MIs[0] Operand 2
     /* 3394 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 3398 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3403 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[2]]
     /* 3403 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3408 */   GIR_EraseRootFromParent_Done,
     /* 3409 */ // Label 202: @3409
     /* 3409 */ GIM_Reject,
     /* 3410 */ // Label 10: @3410
     /* 3410 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3421), // Rule ID 96 //
     /* 3415 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 3418 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_XOR'
     /* 3418 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 3421 */ // Label 203: @3421
     /* 3421 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3432), // Rule ID 145 //
     /* 3426 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 3429 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
     /* 3429 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 3432 */ // Label 204: @3432
     /* 3432 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3443), // Rule ID 175 //
     /* 3437 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
     /* 3440 */   // Combiner Rule #133: not_cmp_fold; wip_match_opcode 'G_XOR'
     /* 3440 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
     /* 3443 */ // Label 205: @3443
     /* 3443 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3454), // Rule ID 200 //
     /* 3448 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
     /* 3451 */   // Combiner Rule #150: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
     /* 3451 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
     /* 3454 */ // Label 206: @3454
     /* 3454 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3465), // Rule ID 246 //
     /* 3459 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 3462 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_XOR'
     /* 3462 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 3465 */ // Label 207: @3465
     /* 3465 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3476), // Rule ID 286 //
     /* 3470 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 3473 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_XOR'
     /* 3473 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 3476 */ // Label 208: @3476
     /* 3476 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(3487), // Rule ID 321 //
     /* 3481 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 3484 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
     /* 3484 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 3487 */ // Label 209: @3487
     /* 3487 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(3510), // Rule ID 107 //
     /* 3492 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 3495 */   // MIs[0] dst
     /* 3495 */   // No operand predicates
     /* 3495 */   // MIs[0] lhs
     /* 3495 */   // No operand predicates
     /* 3495 */   // MIs[0] Operand 2
     /* 3495 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 3499 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3504 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[3]]
     /* 3504 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3509 */   GIR_EraseRootFromParent_Done,
     /* 3510 */ // Label 210: @3510
     /* 3510 */ GIM_Reject,
     /* 3511 */ // Label 11: @3511
     /* 3511 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(3522), // Rule ID 141 //
     /* 3516 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
     /* 3519 */   // Combiner Rule #103: extend_through_phis; wip_match_opcode 'G_PHI'
     /* 3519 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
     /* 3522 */ // Label 211: @3522
     /* 3522 */ GIM_Reject,
     /* 3523 */ // Label 12: @3523
     /* 3523 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(3534), // Rule ID 377 //
     /* 3528 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
     /* 3531 */   // Combiner Rule #228: fold_global_offset; wip_match_opcode 'G_GLOBAL_VALUE'
     /* 3531 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
     /* 3534 */ // Label 212: @3534
     /* 3534 */ GIM_Reject,
     /* 3535 */ // Label 13: @3535
     /* 3535 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(3546), // Rule ID 357 //
     /* 3540 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
     /* 3543 */   // Combiner Rule #210: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3543 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
     /* 3546 */ // Label 213: @3546
     /* 3546 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(3557), // Rule ID 358 //
     /* 3551 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
     /* 3554 */   // Combiner Rule #211: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3554 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
     /* 3557 */ // Label 214: @3557
     /* 3557 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(3568), // Rule ID 360 //
     /* 3562 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
     /* 3565 */   // Combiner Rule #213: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3565 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
     /* 3568 */ // Label 215: @3568
     /* 3568 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(3579), // Rule ID 361 //
     /* 3573 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
     /* 3576 */   // Combiner Rule #214: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3576 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
     /* 3579 */ // Label 216: @3579
     /* 3579 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(3590), // Rule ID 362 //
     /* 3584 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
     /* 3587 */   // Combiner Rule #215: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3587 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
     /* 3590 */ // Label 217: @3590
     /* 3590 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(3601), // Rule ID 363 //
     /* 3595 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
     /* 3598 */   // Combiner Rule #216: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3598 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
     /* 3601 */ // Label 218: @3601
     /* 3601 */ GIM_Reject,
     /* 3602 */ // Label 14: @3602
     /* 3602 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(3613), // Rule ID 359 //
     /* 3607 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
     /* 3610 */   // Combiner Rule #212: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES'
     /* 3610 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
     /* 3613 */ // Label 219: @3613
     /* 3613 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(3675),
     /* 3618 */   GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
     /* 3621 */   GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(3642), // Rule ID 364 //
     /* 3626 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
     /* 3629 */     // MIs[0] root
     /* 3629 */     // No operand predicates
     /* 3629 */     // MIs[0] x
     /* 3629 */     // No operand predicates
     /* 3629 */     // MIs[0] undef
     /* 3629 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 3633 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3637 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3639 */     // Combiner Rule #217: merge_of_x_and_undef
     /* 3639 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
     /* 3642 */   // Label 221: @3642
     /* 3642 */   GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(3674), // Rule ID 365 //
     /* 3647 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
     /* 3650 */     // MIs[0] root
     /* 3650 */     // No operand predicates
     /* 3650 */     // MIs[0] x
     /* 3650 */     // No operand predicates
     /* 3650 */     // MIs[0] zero
     /* 3650 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 3654 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 3658 */     // MIs[1] Operand 1
     /* 3658 */     GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
     /* 3669 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3671 */     // Combiner Rule #218: merge_of_x_and_zero
     /* 3671 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
     /* 3674 */   // Label 222: @3674
     /* 3674 */   GIM_Reject,
     /* 3675 */ // Label 220: @3675
     /* 3675 */ GIM_Reject,
     /* 3676 */ // Label 15: @3676
     /* 3676 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(3687), // Rule ID 69 //
     /* 3681 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
     /* 3684 */   // Combiner Rule #67: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
     /* 3684 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
     /* 3687 */ // Label 223: @3687
     /* 3687 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(3698), // Rule ID 98 //
     /* 3692 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
     /* 3695 */   // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
     /* 3695 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
     /* 3698 */ // Label 224: @3698
     /* 3698 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(3709), // Rule ID 133 //
     /* 3703 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
     /* 3706 */   // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
     /* 3706 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
     /* 3709 */ // Label 225: @3709
     /* 3709 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(3740),
     /* 3714 */   GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
     /* 3717 */   GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(3728), // Rule ID 356 //
     /* 3722 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
     /* 3725 */     // MIs[0] dst
     /* 3725 */     // No operand predicates
     /* 3725 */     // MIs[0] unused
     /* 3725 */     // No operand predicates
     /* 3725 */     // Combiner Rule #209: combine_use_vector_truncate
     /* 3725 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
     /* 3728 */   // Label 227: @3728
     /* 3728 */   GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(3739), // Rule ID 366 //
     /* 3733 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
     /* 3736 */     // MIs[0] dst
     /* 3736 */     // No operand predicates
     /* 3736 */     // MIs[0] unused
     /* 3736 */     // No operand predicates
     /* 3736 */     // Combiner Rule #219: combine_build_unmerge
     /* 3736 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
     /* 3739 */   // Label 228: @3739
     /* 3739 */   GIM_Reject,
     /* 3740 */ // Label 226: @3740
     /* 3740 */ GIM_Reject,
     /* 3741 */ // Label 16: @3741
     /* 3741 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(3752), // Rule ID 132 //
     /* 3746 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
     /* 3749 */   // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
     /* 3749 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
     /* 3752 */ // Label 229: @3752
     /* 3752 */ GIM_Reject,
     /* 3753 */ // Label 17: @3753
     /* 3753 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(3764), // Rule ID 349 //
     /* 3758 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
     /* 3761 */   // Combiner Rule #202: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
     /* 3761 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
     /* 3764 */ // Label 230: @3764
     /* 3764 */ GIM_Reject,
     /* 3765 */ // Label 18: @3765
     /* 3765 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(3786), // Rule ID 125 //
     /* 3770 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
     /* 3773 */   // MIs[0] dst
     /* 3773 */   // No operand predicates
     /* 3773 */   // MIs[0] t
     /* 3773 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3777 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
     /* 3781 */   // MIs[1] ptr
     /* 3781 */   // No operand predicates
     /* 3781 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3783 */   // Combiner Rule #89: i2p_to_p2i
     /* 3783 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
     /* 3786 */ // Label 231: @3786
     /* 3786 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(3807), // Rule ID 90 //
     /* 3791 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 3794 */   // MIs[0] dst
     /* 3794 */   // No operand predicates
     /* 3794 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 3794 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3798 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3802 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3804 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
     /* 3804 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 3807 */ // Label 232: @3807
     /* 3807 */ GIM_Reject,
     /* 3808 */ // Label 19: @3808
     /* 3808 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(3819), // Rule ID 124 //
     /* 3813 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
     /* 3816 */   // Combiner Rule #88: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
     /* 3816 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
     /* 3819 */ // Label 233: @3819
     /* 3819 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(3840), // Rule ID 91 //
     /* 3824 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 3827 */   // MIs[0] dst
     /* 3827 */   // No operand predicates
     /* 3827 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 3827 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3831 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3835 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3837 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
     /* 3837 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 3840 */ // Label 234: @3840
     /* 3840 */ GIM_Reject,
     /* 3841 */ // Label 20: @3841
     /* 3841 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(3862), // Rule ID 136 //
     /* 3846 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
     /* 3849 */   // MIs[0] dst
     /* 3849 */   // No operand predicates
     /* 3849 */   // MIs[0] src1
     /* 3849 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3853 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
     /* 3857 */   // MIs[1] src0
     /* 3857 */   // No operand predicates
     /* 3857 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3859 */   // Combiner Rule #98: bitcast_bitcast_fold
     /* 3859 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
     /* 3862 */ // Label 235: @3862
     /* 3862 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(3883), // Rule ID 88 //
     /* 3867 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 3870 */   // MIs[0] dst
     /* 3870 */   // No operand predicates
     /* 3870 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 3870 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3874 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3878 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3880 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
     /* 3880 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 3883 */ // Label 236: @3883
     /* 3883 */ GIM_Reject,
     /* 3884 */ // Label 21: @3884
     /* 3884 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(3913), // Rule ID 18 //
     /* 3889 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 3892 */   // MIs[0] dst
     /* 3892 */   // No operand predicates
     /* 3892 */   // MIs[0] src
     /* 3892 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3896 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
     /* 3900 */   // MIs[1] __idempotent_prop_match_0.x
     /* 3900 */   // No operand predicates
     /* 3900 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3905 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3907 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[0]]
     /* 3907 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3912 */   GIR_EraseRootFromParent_Done,
     /* 3913 */ // Label 237: @3913
     /* 3913 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(3936), // Rule ID 43 //
     /* 3918 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
     /* 3921 */   // MIs[0] root
     /* 3921 */   // No operand predicates
     /* 3921 */   // MIs[0] src
     /* 3921 */   // No operand predicates
     /* 3921 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
     /* 3925 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3930 */   // Combiner Rule #41: freeze_of_non_undef_non_poison
     /* 3930 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3935 */   GIR_EraseRootFromParent_Done,
     /* 3936 */ // Label 238: @3936
     /* 3936 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(3947), // Rule ID 44 //
     /* 3941 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
     /* 3944 */   // MIs[0] dst
     /* 3944 */   // No operand predicates
     /* 3944 */   // MIs[0] src
     /* 3944 */   // No operand predicates
     /* 3944 */   // Combiner Rule #42: push_freeze_to_prevent_poison_from_propagating
     /* 3944 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
     /* 3947 */ // Label 239: @3947
     /* 3947 */ GIM_Reject,
     /* 3948 */ // Label 22: @3948
     /* 3948 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(3959), // Rule ID 70 //
     /* 3953 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 3956 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_LOAD'
     /* 3956 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 3959 */ // Label 240: @3959
     /* 3959 */ GIM_Reject,
     /* 3960 */ // Label 23: @3960
     /* 3960 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(3971), // Rule ID 71 //
     /* 3965 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 3968 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_SEXTLOAD'
     /* 3968 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 3971 */ // Label 241: @3971
     /* 3971 */ GIM_Reject,
     /* 3972 */ // Label 24: @3972
     /* 3972 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(3983), // Rule ID 72 //
     /* 3977 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 3980 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
     /* 3980 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 3983 */ // Label 242: @3983
     /* 3983 */ GIM_Reject,
     /* 3984 */ // Label 25: @3984
     /* 3984 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(3995), // Rule ID 100 //
     /* 3989 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
     /* 3992 */   // Combiner Rule #81: erase_undef_store; wip_match_opcode 'G_STORE'
     /* 3992 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
     /* 3995 */ // Label 243: @3995
     /* 3995 */ GIM_Reject,
     /* 3996 */ // Label 26: @3996
     /* 3996 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(4007), // Rule ID 126 //
     /* 4001 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
     /* 4004 */   // Combiner Rule #90: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
     /* 4004 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
     /* 4007 */ // Label 244: @4007
     /* 4007 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(4018), // Rule ID 263 //
     /* 4012 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 4015 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
     /* 4015 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 4018 */ // Label 245: @4018
     /* 4018 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(4039), // Rule ID 57 //
     /* 4023 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
     /* 4026 */   // MIs[0] root
     /* 4026 */   // No operand predicates
     /* 4026 */   // MIs[0] select
     /* 4026 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4030 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 4034 */   // MIs[1] cond
     /* 4034 */   // No operand predicates
     /* 4034 */   // MIs[1] true
     /* 4034 */   // No operand predicates
     /* 4034 */   // MIs[1] false
     /* 4034 */   // No operand predicates
     /* 4034 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4036 */   // Combiner Rule #55: select_of_anyext
     /* 4036 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 4039 */ // Label 246: @4039
     /* 4039 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(4060), // Rule ID 52 //
     /* 4044 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
     /* 4047 */   // MIs[0] root
     /* 4047 */   // No operand predicates
     /* 4047 */   // MIs[0] second
     /* 4047 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4051 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4055 */   // MIs[1] src
     /* 4055 */   // No operand predicates
     /* 4055 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4057 */   // Combiner Rule #50: anyext_of_anyext
     /* 4057 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4060 */ // Label 247: @4060
     /* 4060 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(4081), // Rule ID 54 //
     /* 4065 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
     /* 4068 */   // MIs[0] root
     /* 4068 */   // No operand predicates
     /* 4068 */   // MIs[0] second
     /* 4068 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4072 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 4076 */   // MIs[1] src
     /* 4076 */   // No operand predicates
     /* 4076 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4078 */   // Combiner Rule #52: anyext_of_sext
     /* 4078 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4081 */ // Label 248: @4081
     /* 4081 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(4102), // Rule ID 53 //
     /* 4086 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
     /* 4089 */   // MIs[0] root
     /* 4089 */   // No operand predicates
     /* 4089 */   // MIs[0] second
     /* 4089 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4093 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 4097 */   // MIs[1] src
     /* 4097 */   // No operand predicates
     /* 4097 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4099 */   // Combiner Rule #51: anyext_of_zext
     /* 4099 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4102 */ // Label 249: @4102
     /* 4102 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(4123), // Rule ID 89 //
     /* 4107 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 4110 */   // MIs[0] dst
     /* 4110 */   // No operand predicates
     /* 4110 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 4110 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4114 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 4118 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4120 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
     /* 4120 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 4123 */ // Label 250: @4123
     /* 4123 */ GIM_Reject,
     /* 4124 */ // Label 27: @4124
     /* 4124 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(4135), // Rule ID 134 //
     /* 4129 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
     /* 4132 */   // Combiner Rule #96: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
     /* 4132 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
     /* 4135 */ // Label 251: @4135
     /* 4135 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(4146), // Rule ID 135 //
     /* 4140 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
     /* 4143 */   // Combiner Rule #97: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
     /* 4143 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
     /* 4146 */ // Label 252: @4146
     /* 4146 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(4157), // Rule ID 174 //
     /* 4151 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
     /* 4154 */   // Combiner Rule #132: trunc_shift; wip_match_opcode 'G_TRUNC'
     /* 4154 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
     /* 4157 */ // Label 253: @4157
     /* 4157 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(4178), // Rule ID 58 //
     /* 4162 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
     /* 4165 */   // MIs[0] root
     /* 4165 */   // No operand predicates
     /* 4165 */   // MIs[0] select
     /* 4165 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4169 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 4173 */   // MIs[1] cond
     /* 4173 */   // No operand predicates
     /* 4173 */   // MIs[1] true
     /* 4173 */   // No operand predicates
     /* 4173 */   // MIs[1] false
     /* 4173 */   // No operand predicates
     /* 4173 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4175 */   // Combiner Rule #56: select_of_truncate
     /* 4175 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 4178 */ // Label 254: @4178
     /* 4178 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(4207), // Rule ID 60 //
     /* 4183 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
     /* 4186 */   // MIs[0] root
     /* 4186 */   // No operand predicates
     /* 4186 */   // MIs[0] binop
     /* 4186 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4190 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 4194 */   // MIs[1] x
     /* 4194 */   // No operand predicates
     /* 4194 */   // MIs[1] const
     /* 4194 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4198 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4202 */   // MIs[2] imm
     /* 4202 */   // No operand predicates
     /* 4202 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4204 */   // Combiner Rule #58: narrow_binop_add
     /* 4204 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4207 */ // Label 255: @4207
     /* 4207 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(4236), // Rule ID 63 //
     /* 4212 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
     /* 4215 */   // MIs[0] root
     /* 4215 */   // No operand predicates
     /* 4215 */   // MIs[0] binop
     /* 4215 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4219 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
     /* 4223 */   // MIs[1] x
     /* 4223 */   // No operand predicates
     /* 4223 */   // MIs[1] const
     /* 4223 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4227 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4231 */   // MIs[2] imm
     /* 4231 */   // No operand predicates
     /* 4231 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4233 */   // Combiner Rule #61: narrow_binop_and
     /* 4233 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4236 */ // Label 256: @4236
     /* 4236 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(4265), // Rule ID 62 //
     /* 4241 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
     /* 4244 */   // MIs[0] root
     /* 4244 */   // No operand predicates
     /* 4244 */   // MIs[0] binop
     /* 4244 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4248 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
     /* 4252 */   // MIs[1] x
     /* 4252 */   // No operand predicates
     /* 4252 */   // MIs[1] const
     /* 4252 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4256 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4260 */   // MIs[2] imm
     /* 4260 */   // No operand predicates
     /* 4260 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4262 */   // Combiner Rule #60: narrow_binop_mul
     /* 4262 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4265 */ // Label 257: @4265
     /* 4265 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(4294), // Rule ID 64 //
     /* 4270 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
     /* 4273 */   // MIs[0] root
     /* 4273 */   // No operand predicates
     /* 4273 */   // MIs[0] binop
     /* 4273 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4277 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
     /* 4281 */   // MIs[1] x
     /* 4281 */   // No operand predicates
     /* 4281 */   // MIs[1] const
     /* 4281 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4285 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4289 */   // MIs[2] imm
     /* 4289 */   // No operand predicates
     /* 4289 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4291 */   // Combiner Rule #62: narrow_binop_or
     /* 4291 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4294 */ // Label 258: @4294
     /* 4294 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(4323), // Rule ID 61 //
     /* 4299 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
     /* 4302 */   // MIs[0] root
     /* 4302 */   // No operand predicates
     /* 4302 */   // MIs[0] binop
     /* 4302 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4306 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 4310 */   // MIs[1] x
     /* 4310 */   // No operand predicates
     /* 4310 */   // MIs[1] const
     /* 4310 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4314 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4318 */   // MIs[2] imm
     /* 4318 */   // No operand predicates
     /* 4318 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4320 */   // Combiner Rule #59: narrow_binop_sub
     /* 4320 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4323 */ // Label 259: @4323
     /* 4323 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(4355), // Rule ID 373 //
     /* 4328 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
     /* 4331 */   // MIs[0] dst
     /* 4331 */   // No operand predicates
     /* 4331 */   // MIs[0] min
     /* 4331 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4335 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
     /* 4339 */   // MIs[1] x
     /* 4339 */   // No operand predicates
     /* 4339 */   // MIs[1] y
     /* 4339 */   // No operand predicates
     /* 4339 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
     /* 4343 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4345 */   // Combiner Rule #224: trunc_usatu
     /* 4345 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
     /* 4348 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 4350 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 4354 */   GIR_EraseRootFromParent_Done,
     /* 4355 */ // Label 260: @4355
     /* 4355 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(4384), // Rule ID 65 //
     /* 4360 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
     /* 4363 */   // MIs[0] root
     /* 4363 */   // No operand predicates
     /* 4363 */   // MIs[0] binop
     /* 4363 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4367 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
     /* 4371 */   // MIs[1] x
     /* 4371 */   // No operand predicates
     /* 4371 */   // MIs[1] const
     /* 4371 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4375 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4379 */   // MIs[2] imm
     /* 4379 */   // No operand predicates
     /* 4379 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4381 */   // Combiner Rule #63: narrow_binop_xor
     /* 4381 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4384 */ // Label 261: @4384
     /* 4384 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(4405), // Rule ID 47 //
     /* 4389 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
     /* 4392 */   // MIs[0] root
     /* 4392 */   // No operand predicates
     /* 4392 */   // MIs[0] ext
     /* 4392 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4396 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4400 */   // MIs[1] src
     /* 4400 */   // No operand predicates
     /* 4400 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4402 */   // Combiner Rule #45: truncate_of_anyext
     /* 4402 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 4405 */ // Label 262: @4405
     /* 4405 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(4429), // Rule ID 59 //
     /* 4410 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
     /* 4413 */   // MIs[0] root
     /* 4413 */   // No operand predicates
     /* 4413 */   // MIs[0] bv
     /* 4413 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4417 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
     /* 4421 */   GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
     /* 4424 */   // MIs[1] unused
     /* 4424 */   // No operand predicates
     /* 4424 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4426 */   // Combiner Rule #57: buildvector_of_truncate
     /* 4426 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
     /* 4429 */ // Label 263: @4429
     /* 4429 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(4450), // Rule ID 46 //
     /* 4434 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
     /* 4437 */   // MIs[0] root
     /* 4437 */   // No operand predicates
     /* 4437 */   // MIs[0] ext
     /* 4437 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4441 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 4445 */   // MIs[1] src
     /* 4445 */   // No operand predicates
     /* 4445 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4447 */   // Combiner Rule #44: truncate_of_sext
     /* 4447 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 4450 */ // Label 264: @4450
     /* 4450 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(4471), // Rule ID 45 //
     /* 4455 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
     /* 4458 */   // MIs[0] root
     /* 4458 */   // No operand predicates
     /* 4458 */   // MIs[0] ext
     /* 4458 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4462 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 4466 */   // MIs[1] src
     /* 4466 */   // No operand predicates
     /* 4466 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4468 */   // Combiner Rule #43: truncate_of_zext
     /* 4468 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 4471 */ // Label 265: @4471
     /* 4471 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(4492), // Rule ID 87 //
     /* 4476 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 4479 */   // MIs[0] dst
     /* 4479 */   // No operand predicates
     /* 4479 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 4479 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4483 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 4487 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4489 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
     /* 4489 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 4492 */ // Label 266: @4492
     /* 4492 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(4513), // Rule ID 66 //
     /* 4497 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
     /* 4500 */   // MIs[0] root
     /* 4500 */   // No operand predicates
     /* 4500 */   // MIs[0] int
     /* 4500 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4504 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4508 */   // MIs[1] imm
     /* 4508 */   // No operand predicates
     /* 4508 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4510 */   // Combiner Rule #64: integer_of_truncate
     /* 4510 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
     /* 4513 */ // Label 267: @4513
     /* 4513 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(4524), // Rule ID 371 //
     /* 4518 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
     /* 4521 */   // MIs[0] dst
     /* 4521 */   // No operand predicates
     /* 4521 */   // MIs[0] src
     /* 4521 */   // No operand predicates
     /* 4521 */   // Combiner Rule #222: trunc_ssats
     /* 4521 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
     /* 4524 */ // Label 268: @4524
     /* 4524 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(4535), // Rule ID 372 //
     /* 4529 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
     /* 4532 */   // MIs[0] dst
     /* 4532 */   // No operand predicates
     /* 4532 */   // MIs[0] src
     /* 4532 */   // No operand predicates
     /* 4532 */   // Combiner Rule #223: trunc_ssatu
     /* 4532 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
     /* 4535 */ // Label 269: @4535
     /* 4535 */ GIM_Reject,
     /* 4536 */ // Label 28: @4536
     /* 4536 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(4568), // Rule ID 374 //
     /* 4541 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
     /* 4544 */   // MIs[0] dst
     /* 4544 */   // No operand predicates
     /* 4544 */   // MIs[0] src
     /* 4544 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4548 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
     /* 4552 */   // MIs[1] x
     /* 4552 */   // No operand predicates
     /* 4552 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
     /* 4556 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4558 */   // Combiner Rule #225: truncusatu_to_fptouisat
     /* 4558 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
     /* 4561 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 4563 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 4567 */   GIR_EraseRootFromParent_Done,
     /* 4568 */ // Label 270: @4568
     /* 4568 */ GIM_Reject,
     /* 4569 */ // Label 29: @4569
     /* 4569 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(4580), // Rule ID 262 //
     /* 4574 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 4577 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
     /* 4577 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 4580 */ // Label 271: @4580
     /* 4580 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(4601), // Rule ID 51 //
     /* 4585 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
     /* 4588 */   // MIs[0] root
     /* 4588 */   // No operand predicates
     /* 4588 */   // MIs[0] second
     /* 4588 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4592 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4596 */   // MIs[1] src
     /* 4596 */   // No operand predicates
     /* 4596 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4598 */   // Combiner Rule #49: sext_of_anyext
     /* 4598 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4601 */ // Label 272: @4601
     /* 4601 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(4622), // Rule ID 50 //
     /* 4606 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
     /* 4609 */   // MIs[0] root
     /* 4609 */   // No operand predicates
     /* 4609 */   // MIs[0] second
     /* 4609 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4613 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 4617 */   // MIs[1] src
     /* 4617 */   // No operand predicates
     /* 4617 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4619 */   // Combiner Rule #48: sext_of_sext
     /* 4619 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4622 */ // Label 273: @4622
     /* 4622 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(4643), // Rule ID 350 //
     /* 4627 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
     /* 4630 */   // MIs[0] root
     /* 4630 */   // No operand predicates
     /* 4630 */   // MIs[0] src
     /* 4630 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4634 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 4638 */   // MIs[1] x
     /* 4638 */   // No operand predicates
     /* 4638 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4640 */   // Combiner Rule #203: sext_trunc
     /* 4640 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
     /* 4643 */ // Label 274: @4643
     /* 4643 */ GIM_Reject,
     /* 4644 */ // Label 30: @4644
     /* 4644 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(4655), // Rule ID 161 //
     /* 4649 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
     /* 4652 */   // Combiner Rule #119: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
     /* 4652 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
     /* 4655 */ // Label 275: @4655
     /* 4655 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(4666), // Rule ID 169 //
     /* 4660 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
     /* 4663 */   // Combiner Rule #127: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
     /* 4663 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
     /* 4666 */ // Label 276: @4666
     /* 4666 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(4677), // Rule ID 231 //
     /* 4671 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
     /* 4674 */   // Combiner Rule #166: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
     /* 4674 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
     /* 4677 */ // Label 277: @4677
     /* 4677 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(4698), // Rule ID 55 //
     /* 4682 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
     /* 4685 */   // MIs[0] dst
     /* 4685 */   // No operand predicates
     /* 4685 */   // MIs[0] x
     /* 4685 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4689 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
     /* 4693 */   // MIs[1] src
     /* 4693 */   // No operand predicates
     /* 4693 */   // MIs[1] a
     /* 4693 */   // No operand predicates
     /* 4693 */   // MIs[0] b
     /* 4693 */   // No operand predicates
     /* 4693 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4695 */   // Combiner Rule #53: sext_inreg_of_sext_inreg
     /* 4695 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
     /* 4698 */ // Label 278: @4698
     /* 4698 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(4709), // Rule ID 173 //
     /* 4703 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
     /* 4706 */   // MIs[0] dst
     /* 4706 */   // No operand predicates
     /* 4706 */   // MIs[0] src
     /* 4706 */   // No operand predicates
     /* 4706 */   // MIs[0] imm
     /* 4706 */   // No operand predicates
     /* 4706 */   // Combiner Rule #131: sext_inreg_to_zext_inreg
     /* 4706 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
     /* 4709 */ // Label 279: @4709
     /* 4709 */ GIM_Reject,
     /* 4710 */ // Label 31: @4710
     /* 4710 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(4721), // Rule ID 172 //
     /* 4715 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
     /* 4718 */   // Combiner Rule #130: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
     /* 4718 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
     /* 4721 */ // Label 280: @4721
     /* 4721 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(4732), // Rule ID 261 //
     /* 4726 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 4729 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
     /* 4729 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 4732 */ // Label 281: @4732
     /* 4732 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(4753), // Rule ID 56 //
     /* 4737 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
     /* 4740 */   // MIs[0] root
     /* 4740 */   // No operand predicates
     /* 4740 */   // MIs[0] select
     /* 4740 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4744 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 4748 */   // MIs[1] cond
     /* 4748 */   // No operand predicates
     /* 4748 */   // MIs[1] true
     /* 4748 */   // No operand predicates
     /* 4748 */   // MIs[1] false
     /* 4748 */   // No operand predicates
     /* 4748 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4750 */   // Combiner Rule #54: select_of_zext
     /* 4750 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 4753 */ // Label 282: @4753
     /* 4753 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(4774), // Rule ID 49 //
     /* 4758 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
     /* 4761 */   // MIs[0] root
     /* 4761 */   // No operand predicates
     /* 4761 */   // MIs[0] second
     /* 4761 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4765 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4769 */   // MIs[1] src
     /* 4769 */   // No operand predicates
     /* 4769 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4771 */   // Combiner Rule #47: zext_of_anyext
     /* 4771 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4774 */ // Label 283: @4774
     /* 4774 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(4801), // Rule ID 351 //
     /* 4779 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
     /* 4782 */   // MIs[0] root
     /* 4782 */   // No operand predicates
     /* 4782 */   // MIs[0] src
     /* 4782 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4786 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 4790 */   GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
     /* 4796 */   // MIs[1] x
     /* 4796 */   // No operand predicates
     /* 4796 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4798 */   // Combiner Rule #204: zext_trunc
     /* 4798 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
     /* 4801 */ // Label 284: @4801
     /* 4801 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(4822), // Rule ID 48 //
     /* 4806 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
     /* 4809 */   // MIs[0] root
     /* 4809 */   // No operand predicates
     /* 4809 */   // MIs[0] second
     /* 4809 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4813 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 4817 */   // MIs[1] src
     /* 4817 */   // No operand predicates
     /* 4817 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4819 */   // Combiner Rule #46: zext_of_zext
     /* 4819 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4822 */ // Label 285: @4822
     /* 4822 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(4839), // Rule ID 352 //
     /* 4827 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
     /* 4830 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
     /* 4836 */   // MIs[0] root
     /* 4836 */   // No operand predicates
     /* 4836 */   // MIs[0] x
     /* 4836 */   // No operand predicates
     /* 4836 */   // Combiner Rule #205: nneg_zext
     /* 4836 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
     /* 4839 */ // Label 286: @4839
     /* 4839 */ GIM_Reject,
     /* 4840 */ // Label 32: @4840
     /* 4840 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(4851), // Rule ID 80 //
     /* 4845 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 4848 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
     /* 4848 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 4851 */ // Label 287: @4851
     /* 4851 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(4862), // Rule ID 83 //
     /* 4856 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 4859 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
     /* 4859 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 4862 */ // Label 288: @4862
     /* 4862 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(4873), // Rule ID 116 //
     /* 4867 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 4870 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SHL'
     /* 4870 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 4873 */ // Label 289: @4873
     /* 4873 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(4884), // Rule ID 202 //
     /* 4878 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 4881 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_SHL'
     /* 4881 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 4884 */ // Label 290: @4884
     /* 4884 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(4895), // Rule ID 207 //
     /* 4889 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 4892 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
     /* 4892 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 4895 */ // Label 291: @4895
     /* 4895 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(4906), // Rule ID 230 //
     /* 4900 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
     /* 4903 */   // Combiner Rule #165: commute_shift; wip_match_opcode 'G_SHL'
     /* 4903 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
     /* 4906 */ // Label 292: @4906
     /* 4906 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(4917), // Rule ID 244 //
     /* 4911 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 4914 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SHL'
     /* 4914 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 4917 */ // Label 293: @4917
     /* 4917 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(4928), // Rule ID 293 //
     /* 4922 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 4925 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SHL'
     /* 4925 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 4928 */ // Label 294: @4928
     /* 4928 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(4963), // Rule ID 41 //
     /* 4933 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
     /* 4936 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 4942 */   // MIs[0] root
     /* 4942 */   // No operand predicates
     /* 4942 */   // MIs[0] left
     /* 4942 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4946 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 4950 */   // MIs[1] imm
     /* 4950 */   // No operand predicates
     /* 4950 */   // MIs[0] x
     /* 4950 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 4954 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4958 */   // MIs[2] imm1
     /* 4958 */   // No operand predicates
     /* 4958 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4960 */   // Combiner Rule #39: shl_of_vscale
     /* 4960 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
     /* 4963 */ // Label 295: @4963
     /* 4963 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(4986), // Rule ID 108 //
     /* 4968 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 4971 */   // MIs[0] dst
     /* 4971 */   // No operand predicates
     /* 4971 */   // MIs[0] lhs
     /* 4971 */   // No operand predicates
     /* 4971 */   // MIs[0] Operand 2
     /* 4971 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 4975 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 4980 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[4]]
     /* 4980 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 4985 */   GIR_EraseRootFromParent_Done,
     /* 4986 */ // Label 296: @4986
     /* 4986 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(4997), // Rule ID 146 //
     /* 4991 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 4994 */   // MIs[0] root
     /* 4994 */   // No operand predicates
     /* 4994 */   // MIs[0] mi.shifted
     /* 4994 */   // No operand predicates
     /* 4994 */   // MIs[0] mi.amt
     /* 4994 */   // No operand predicates
     /* 4994 */   // Combiner Rule #106: shifts_too_big @ [mi[0]]
     /* 4994 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 4997 */ // Label 297: @4997
     /* 4997 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(5008), // Rule ID 162 //
     /* 5002 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
     /* 5005 */   // MIs[0] dst
     /* 5005 */   // No operand predicates
     /* 5005 */   // MIs[0] src0
     /* 5005 */   // No operand predicates
     /* 5005 */   // MIs[0] src1
     /* 5005 */   // No operand predicates
     /* 5005 */   // Combiner Rule #120: reduce_shl_of_extend
     /* 5005 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
     /* 5008 */ // Label 298: @5008
     /* 5008 */ GIM_Reject,
     /* 5009 */ // Label 33: @5009
     /* 5009 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(5020), // Rule ID 85 //
     /* 5014 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 5017 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
     /* 5017 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 5020 */ // Label 299: @5020
     /* 5020 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(5031), // Rule ID 117 //
     /* 5025 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 5028 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_LSHR'
     /* 5028 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 5031 */ // Label 300: @5031
     /* 5031 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(5042), // Rule ID 204 //
     /* 5036 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5039 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_LSHR'
     /* 5039 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5042 */ // Label 301: @5042
     /* 5042 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(5053), // Rule ID 209 //
     /* 5047 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5050 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
     /* 5050 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5053 */ // Label 302: @5053
     /* 5053 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(5064), // Rule ID 234 //
     /* 5058 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
     /* 5061 */   // Combiner Rule #168: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
     /* 5061 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
     /* 5064 */ // Label 303: @5064
     /* 5064 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(5075), // Rule ID 236 //
     /* 5069 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
     /* 5072 */   // Combiner Rule #169: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
     /* 5072 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
     /* 5075 */ // Label 304: @5075
     /* 5075 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(5086), // Rule ID 241 //
     /* 5080 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 5083 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_LSHR'
     /* 5083 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 5086 */ // Label 305: @5086
     /* 5086 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(5097), // Rule ID 291 //
     /* 5091 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 5094 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_LSHR'
     /* 5094 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 5097 */ // Label 306: @5097
     /* 5097 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(5126), // Rule ID 375 //
     /* 5102 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
     /* 5105 */   // MIs[0] dst
     /* 5105 */   // No operand predicates
     /* 5105 */   // MIs[0] d2
     /* 5105 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5109 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 5113 */   // MIs[1] d1
     /* 5113 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 5117 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 5121 */   // MIs[2] x
     /* 5121 */   // No operand predicates
     /* 5121 */   // MIs[2] y
     /* 5121 */   // No operand predicates
     /* 5121 */   // MIs[0] z
     /* 5121 */   // No operand predicates
     /* 5121 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 5123 */   // Combiner Rule #226: lshr_of_trunc_of_lshr
     /* 5123 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
     /* 5126 */ // Label 307: @5126
     /* 5126 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(5149), // Rule ID 110 //
     /* 5131 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5134 */   // MIs[0] dst
     /* 5134 */   // No operand predicates
     /* 5134 */   // MIs[0] lhs
     /* 5134 */   // No operand predicates
     /* 5134 */   // MIs[0] Operand 2
     /* 5134 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5138 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5143 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[6]]
     /* 5143 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5148 */   GIR_EraseRootFromParent_Done,
     /* 5149 */ // Label 308: @5149
     /* 5149 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(5160), // Rule ID 148 //
     /* 5154 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 5157 */   // MIs[0] root
     /* 5157 */   // No operand predicates
     /* 5157 */   // MIs[0] mi.shifted
     /* 5157 */   // No operand predicates
     /* 5157 */   // MIs[0] mi.amt
     /* 5157 */   // No operand predicates
     /* 5157 */   // Combiner Rule #106: shifts_too_big @ [mi[2]]
     /* 5157 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 5160 */ // Label 309: @5160
     /* 5160 */ GIM_Reject,
     /* 5161 */ // Label 34: @5161
     /* 5161 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(5172), // Rule ID 84 //
     /* 5166 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 5169 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
     /* 5169 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 5172 */ // Label 310: @5172
     /* 5172 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(5183), // Rule ID 118 //
     /* 5177 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 5180 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_ASHR'
     /* 5180 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 5183 */ // Label 311: @5183
     /* 5183 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(5194), // Rule ID 159 //
     /* 5188 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
     /* 5191 */   // Combiner Rule #117: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
     /* 5191 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
     /* 5194 */ // Label 312: @5194
     /* 5194 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(5205), // Rule ID 203 //
     /* 5199 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5202 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_ASHR'
     /* 5202 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5205 */ // Label 313: @5205
     /* 5205 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(5216), // Rule ID 208 //
     /* 5210 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5213 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
     /* 5213 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5216 */ // Label 314: @5216
     /* 5216 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(5227), // Rule ID 233 //
     /* 5221 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
     /* 5224 */   // Combiner Rule #168: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
     /* 5224 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
     /* 5227 */ // Label 315: @5227
     /* 5227 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(5238), // Rule ID 235 //
     /* 5232 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
     /* 5235 */   // Combiner Rule #169: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
     /* 5235 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
     /* 5238 */ // Label 316: @5238
     /* 5238 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(5249), // Rule ID 240 //
     /* 5243 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 5246 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_ASHR'
     /* 5246 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 5249 */ // Label 317: @5249
     /* 5249 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(5260), // Rule ID 292 //
     /* 5254 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 5257 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ASHR'
     /* 5257 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 5260 */ // Label 318: @5260
     /* 5260 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(5283), // Rule ID 109 //
     /* 5265 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5268 */   // MIs[0] dst
     /* 5268 */   // No operand predicates
     /* 5268 */   // MIs[0] lhs
     /* 5268 */   // No operand predicates
     /* 5268 */   // MIs[0] Operand 2
     /* 5268 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5272 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5277 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[5]]
     /* 5277 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5282 */   GIR_EraseRootFromParent_Done,
     /* 5283 */ // Label 319: @5283
     /* 5283 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(5294), // Rule ID 147 //
     /* 5288 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 5291 */   // MIs[0] root
     /* 5291 */   // No operand predicates
     /* 5291 */   // MIs[0] mi.shifted
     /* 5291 */   // No operand predicates
     /* 5291 */   // MIs[0] mi.amt
     /* 5291 */   // No operand predicates
     /* 5291 */   // Combiner Rule #106: shifts_too_big @ [mi[1]]
     /* 5291 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 5294 */ // Label 320: @5294
     /* 5294 */ GIM_Reject,
     /* 5295 */ // Label 35: @5295
     /* 5295 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(5306), // Rule ID 218 //
     /* 5300 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
     /* 5303 */   // Combiner Rule #157: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
     /* 5303 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
     /* 5306 */ // Label 321: @5306
     /* 5306 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(5317), // Rule ID 222 //
     /* 5311 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
     /* 5314 */   // Combiner Rule #160: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
     /* 5314 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
     /* 5317 */ // Label 322: @5317
     /* 5317 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(5337), // Rule ID 221 //
     /* 5322 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
     /* 5325 */   // MIs[0] x
     /* 5325 */   // No operand predicates
     /* 5325 */   // MIs[0] y
     /* 5325 */   // No operand predicates
     /* 5325 */   // MIs[0] z
     /* 5325 */   // No operand predicates
     /* 5325 */   // MIs[0] Operand 3
     /* 5325 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
     /* 5329 */   // Combiner Rule #159: funnel_shift_left_zero
     /* 5329 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
     /* 5332 */   GIR_RootToRootCopy, /*OpIdx*/0, // x
     /* 5334 */   GIR_RootToRootCopy, /*OpIdx*/1, // y
     /* 5336 */   GIR_EraseRootFromParent_Done,
     /* 5337 */ // Label 323: @5337
     /* 5337 */ GIM_Reject,
     /* 5338 */ // Label 36: @5338
     /* 5338 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(5349), // Rule ID 219 //
     /* 5343 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
     /* 5346 */   // Combiner Rule #157: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
     /* 5346 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
     /* 5349 */ // Label 324: @5349
     /* 5349 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(5360), // Rule ID 223 //
     /* 5354 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
     /* 5357 */   // Combiner Rule #160: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
     /* 5357 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
     /* 5360 */ // Label 325: @5360
     /* 5360 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(5380), // Rule ID 220 //
     /* 5365 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
     /* 5368 */   // MIs[0] x
     /* 5368 */   // No operand predicates
     /* 5368 */   // MIs[0] y
     /* 5368 */   // No operand predicates
     /* 5368 */   // MIs[0] z
     /* 5368 */   // No operand predicates
     /* 5368 */   // MIs[0] Operand 3
     /* 5368 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
     /* 5372 */   // Combiner Rule #158: funnel_shift_right_zero
     /* 5372 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
     /* 5375 */   GIR_RootToRootCopy, /*OpIdx*/0, // x
     /* 5377 */   GIR_RootToRootCopy, /*OpIdx*/2, // z
     /* 5379 */   GIR_EraseRootFromParent_Done,
     /* 5380 */ // Label 326: @5380
     /* 5380 */ GIM_Reject,
     /* 5381 */ // Label 37: @5381
     /* 5381 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(5404), // Rule ID 113 //
     /* 5386 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5389 */   // MIs[0] dst
     /* 5389 */   // No operand predicates
     /* 5389 */   // MIs[0] lhs
     /* 5389 */   // No operand predicates
     /* 5389 */   // MIs[0] Operand 2
     /* 5389 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5393 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5398 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[9]]
     /* 5398 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5403 */   GIR_EraseRootFromParent_Done,
     /* 5404 */ // Label 327: @5404
     /* 5404 */ GIM_Reject,
     /* 5405 */ // Label 38: @5405
     /* 5405 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(5428), // Rule ID 112 //
     /* 5410 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5413 */   // MIs[0] dst
     /* 5413 */   // No operand predicates
     /* 5413 */   // MIs[0] lhs
     /* 5413 */   // No operand predicates
     /* 5413 */   // MIs[0] Operand 2
     /* 5413 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5417 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5422 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[8]]
     /* 5422 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5427 */   GIR_EraseRootFromParent_Done,
     /* 5428 */ // Label 328: @5428
     /* 5428 */ GIM_Reject,
     /* 5429 */ // Label 39: @5429
     /* 5429 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(5440), // Rule ID 154 //
     /* 5434 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
     /* 5437 */   // Combiner Rule #112: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
     /* 5437 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
     /* 5440 */ // Label 329: @5440
     /* 5440 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(5451), // Rule ID 155 //
     /* 5445 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
     /* 5448 */   // Combiner Rule #113: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
     /* 5448 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
     /* 5451 */ // Label 330: @5451
     /* 5451 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(5462), // Rule ID 158 //
     /* 5456 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
     /* 5459 */   // Combiner Rule #116: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
     /* 5459 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
     /* 5462 */ // Label 331: @5462
     /* 5462 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(5473), // Rule ID 152 //
     /* 5467 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
     /* 5470 */   // MIs[0] root
     /* 5470 */   // No operand predicates
     /* 5470 */   // MIs[0] pred
     /* 5470 */   // No operand predicates
     /* 5470 */   // MIs[0] lhs
     /* 5470 */   // No operand predicates
     /* 5470 */   // MIs[0] rhs
     /* 5470 */   // No operand predicates
     /* 5470 */   // Combiner Rule #110: canonicalize_icmp
     /* 5470 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
     /* 5473 */ // Label 332: @5473
     /* 5473 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(5484), // Rule ID 376 //
     /* 5478 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
     /* 5481 */   // MIs[0] dst
     /* 5481 */   // No operand predicates
     /* 5481 */   // MIs[0] tst
     /* 5481 */   // No operand predicates
     /* 5481 */   // MIs[0] src1
     /* 5481 */   // No operand predicates
     /* 5481 */   // MIs[0] src2
     /* 5481 */   // No operand predicates
     /* 5481 */   // Combiner Rule #227: icmp_redundant_trunc
     /* 5481 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
     /* 5484 */ // Label 333: @5484
     /* 5484 */ GIM_Reject,
     /* 5485 */ // Label 40: @5485
     /* 5485 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(5496), // Rule ID 153 //
     /* 5490 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
     /* 5493 */   // MIs[0] root
     /* 5493 */   // No operand predicates
     /* 5493 */   // MIs[0] pred
     /* 5493 */   // No operand predicates
     /* 5493 */   // MIs[0] lhs
     /* 5493 */   // No operand predicates
     /* 5493 */   // MIs[0] rhs
     /* 5493 */   // No operand predicates
     /* 5493 */   // Combiner Rule #111: canonicalize_fcmp
     /* 5493 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
     /* 5496 */ // Label 334: @5496
     /* 5496 */ GIM_Reject,
     /* 5497 */ // Label 41: @5497
     /* 5497 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(5508), // Rule ID 103 //
     /* 5502 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
     /* 5505 */   // Combiner Rule #83: select_same_val; wip_match_opcode 'G_SELECT'
     /* 5505 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
     /* 5508 */ // Label 335: @5508
     /* 5508 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(5519), // Rule ID 165 //
     /* 5513 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
     /* 5516 */   // Combiner Rule #123: select_constant_cmp; wip_match_opcode 'G_SELECT'
     /* 5516 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
     /* 5519 */ // Label 336: @5519
     /* 5519 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(5530), // Rule ID 167 //
     /* 5524 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
     /* 5527 */   // Combiner Rule #125: match_selects; wip_match_opcode 'G_SELECT'
     /* 5527 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
     /* 5530 */ // Label 337: @5530
     /* 5530 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(5541), // Rule ID 315 //
     /* 5535 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
     /* 5538 */   // Combiner Rule #195: select_to_minmax; wip_match_opcode 'G_SELECT'
     /* 5538 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
     /* 5541 */ // Label 338: @5541
     /* 5541 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(5562), // Rule ID 166 //
     /* 5546 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
     /* 5549 */   // MIs[0] root
     /* 5549 */   // No operand predicates
     /* 5549 */   // MIs[0] tst
     /* 5549 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5553 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 5557 */   // MIs[1] tst1
     /* 5557 */   // No operand predicates
     /* 5557 */   // MIs[1] a
     /* 5557 */   // No operand predicates
     /* 5557 */   // MIs[1] b
     /* 5557 */   // No operand predicates
     /* 5557 */   // MIs[0] x
     /* 5557 */   // No operand predicates
     /* 5557 */   // MIs[0] y
     /* 5557 */   // No operand predicates
     /* 5557 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 5559 */   // Combiner Rule #124: select_to_iminmax
     /* 5559 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
     /* 5562 */ // Label 339: @5562
     /* 5562 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(5591), // Rule ID 164 //
     /* 5567 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
     /* 5570 */   // MIs[0] dst
     /* 5570 */   // No operand predicates
     /* 5570 */   // MIs[0] undef
     /* 5570 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5574 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 5578 */   // MIs[0] x
     /* 5578 */   // No operand predicates
     /* 5578 */   // MIs[0] y
     /* 5578 */   // No operand predicates
     /* 5578 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
     /* 5583 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 5585 */   // Combiner Rule #122: select_undef_cmp
     /* 5585 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
     /* 5590 */   GIR_EraseRootFromParent_Done,
     /* 5591 */ // Label 340: @5591
     /* 5591 */ GIM_Reject,
     /* 5592 */ // Label 42: @5592
     /* 5592 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(5603), // Rule ID 326 //
     /* 5597 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5600 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
     /* 5600 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5603 */ // Label 341: @5603
     /* 5603 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(5614), // Rule ID 368 //
     /* 5608 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
     /* 5611 */   // Combiner Rule #220: match_addos; wip_match_opcode 'G_UADDO'
     /* 5611 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
     /* 5614 */ // Label 342: @5614
     /* 5614 */ GIM_Reject,
     /* 5615 */ // Label 43: @5615
     /* 5615 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(5626), // Rule ID 191 //
     /* 5620 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5623 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_UADDE'
     /* 5623 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5626 */ // Label 343: @5626
     /* 5626 */ GIM_Reject,
     /* 5627 */ // Label 44: @5627
     /* 5627 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(5638), // Rule ID 370 //
     /* 5632 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
     /* 5635 */   // Combiner Rule #221: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
     /* 5635 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
     /* 5638 */ // Label 344: @5638
     /* 5638 */ GIM_Reject,
     /* 5639 */ // Label 45: @5639
     /* 5639 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(5650), // Rule ID 193 //
     /* 5644 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5647 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_USUBE'
     /* 5647 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5650 */ // Label 345: @5650
     /* 5650 */ GIM_Reject,
     /* 5651 */ // Label 46: @5651
     /* 5651 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(5662), // Rule ID 327 //
     /* 5656 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5659 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
     /* 5659 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5662 */ // Label 346: @5662
     /* 5662 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(5673), // Rule ID 367 //
     /* 5667 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
     /* 5670 */   // Combiner Rule #220: match_addos; wip_match_opcode 'G_SADDO'
     /* 5670 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
     /* 5673 */ // Label 347: @5673
     /* 5673 */ GIM_Reject,
     /* 5674 */ // Label 47: @5674
     /* 5674 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(5685), // Rule ID 192 //
     /* 5679 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5682 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_SADDE'
     /* 5682 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5685 */ // Label 348: @5685
     /* 5685 */ GIM_Reject,
     /* 5686 */ // Label 48: @5686
     /* 5686 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(5697), // Rule ID 369 //
     /* 5691 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
     /* 5694 */   // Combiner Rule #221: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
     /* 5694 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
     /* 5697 */ // Label 349: @5697
     /* 5697 */ GIM_Reject,
     /* 5698 */ // Label 49: @5698
     /* 5698 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(5709), // Rule ID 194 //
     /* 5703 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5706 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_SSUBE'
     /* 5706 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5709 */ // Label 350: @5709
     /* 5709 */ GIM_Reject,
     /* 5710 */ // Label 50: @5710
     /* 5710 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(5721), // Rule ID 187 //
     /* 5715 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
     /* 5718 */   // Combiner Rule #145: mulo_by_2; wip_match_opcode 'G_UMULO'
     /* 5718 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
     /* 5721 */ // Label 351: @5721
     /* 5721 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(5732), // Rule ID 189 //
     /* 5726 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
     /* 5729 */   // Combiner Rule #146: mulo_by_0; wip_match_opcode 'G_UMULO'
     /* 5729 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
     /* 5732 */ // Label 352: @5732
     /* 5732 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(5743), // Rule ID 328 //
     /* 5737 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5740 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
     /* 5740 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5743 */ // Label 353: @5743
     /* 5743 */ GIM_Reject,
     /* 5744 */ // Label 51: @5744
     /* 5744 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(5755), // Rule ID 188 //
     /* 5749 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
     /* 5752 */   // Combiner Rule #145: mulo_by_2; wip_match_opcode 'G_SMULO'
     /* 5752 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
     /* 5755 */ // Label 354: @5755
     /* 5755 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(5766), // Rule ID 190 //
     /* 5760 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
     /* 5763 */   // Combiner Rule #146: mulo_by_0; wip_match_opcode 'G_SMULO'
     /* 5763 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
     /* 5766 */ // Label 355: @5766
     /* 5766 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(5777), // Rule ID 329 //
     /* 5771 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5774 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
     /* 5774 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5777 */ // Label 356: @5777
     /* 5777 */ GIM_Reject,
     /* 5778 */ // Label 52: @5778
     /* 5778 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(5789), // Rule ID 265 //
     /* 5783 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
     /* 5786 */   // Combiner Rule #175: mulh_to_lshr; wip_match_opcode 'G_UMULH'
     /* 5786 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
     /* 5789 */ // Label 357: @5789
     /* 5789 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(5800), // Rule ID 330 //
     /* 5794 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5797 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
     /* 5797 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5800 */ // Label 358: @5800
     /* 5800 */ GIM_Reject,
     /* 5801 */ // Label 53: @5801
     /* 5801 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(5812), // Rule ID 331 //
     /* 5806 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5809 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
     /* 5809 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5812 */ // Label 359: @5812
     /* 5812 */ GIM_Reject,
     /* 5813 */ // Label 54: @5813
     /* 5813 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(5824), // Rule ID 332 //
     /* 5818 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5821 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
     /* 5821 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5824 */ // Label 360: @5824
     /* 5824 */ GIM_Reject,
     /* 5825 */ // Label 55: @5825
     /* 5825 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(5836), // Rule ID 333 //
     /* 5830 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5833 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
     /* 5833 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5836 */ // Label 361: @5836
     /* 5836 */ GIM_Reject,
     /* 5837 */ // Label 56: @5837
     /* 5837 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(5848), // Rule ID 206 //
     /* 5842 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5845 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
     /* 5845 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5848 */ // Label 362: @5848
     /* 5848 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(5859), // Rule ID 210 //
     /* 5853 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5856 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
     /* 5856 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5859 */ // Label 363: @5859
     /* 5859 */ GIM_Reject,
     /* 5860 */ // Label 57: @5860
     /* 5860 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(5871), // Rule ID 205 //
     /* 5865 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5868 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
     /* 5868 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5871 */ // Label 364: @5871
     /* 5871 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(5882), // Rule ID 211 //
     /* 5876 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5879 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
     /* 5879 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5882 */ // Label 365: @5882
     /* 5882 */ GIM_Reject,
     /* 5883 */ // Label 58: @5883
     /* 5883 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(5894), // Rule ID 334 //
     /* 5888 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5891 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
     /* 5891 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5894 */ // Label 366: @5894
     /* 5894 */ GIM_Reject,
     /* 5895 */ // Label 59: @5895
     /* 5895 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(5906), // Rule ID 335 //
     /* 5900 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5903 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
     /* 5903 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5906 */ // Label 367: @5906
     /* 5906 */ GIM_Reject,
     /* 5907 */ // Label 60: @5907
     /* 5907 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(5918), // Rule ID 336 //
     /* 5912 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5915 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
     /* 5915 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5918 */ // Label 368: @5918
     /* 5918 */ GIM_Reject,
     /* 5919 */ // Label 61: @5919
     /* 5919 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(5930), // Rule ID 337 //
     /* 5924 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5927 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
     /* 5927 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5930 */ // Label 369: @5930
     /* 5930 */ GIM_Reject,
     /* 5931 */ // Label 62: @5931
     /* 5931 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(5942), // Rule ID 255 //
     /* 5936 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 5939 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
     /* 5939 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 5942 */ // Label 370: @5942
     /* 5942 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(5953), // Rule ID 266 //
     /* 5947 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 5950 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FADD'
     /* 5950 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 5953 */ // Label 371: @5953
     /* 5953 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(5964), // Rule ID 273 //
     /* 5958 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
     /* 5961 */   // Combiner Rule #178: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 5961 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
     /* 5964 */ // Label 372: @5964
     /* 5964 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(5975), // Rule ID 274 //
     /* 5969 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
     /* 5972 */   // Combiner Rule #179: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 5972 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
     /* 5975 */ // Label 373: @5975
     /* 5975 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(5986), // Rule ID 275 //
     /* 5980 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
     /* 5983 */   // Combiner Rule #180: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 5983 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
     /* 5986 */ // Label 374: @5986
     /* 5986 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(5997), // Rule ID 276 //
     /* 5991 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
     /* 5994 */   // Combiner Rule #181: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 5994 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
     /* 5997 */ // Label 375: @5997
     /* 5997 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(6008), // Rule ID 299 //
     /* 6002 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6005 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FADD'
     /* 6005 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6008 */ // Label 376: @6008
     /* 6008 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(6019), // Rule ID 338 //
     /* 6013 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6016 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
     /* 6016 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6019 */ // Label 377: @6019
     /* 6019 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(6042), // Rule ID 138 //
     /* 6024 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
     /* 6027 */   // MIs[0] dst
     /* 6027 */   // No operand predicates
     /* 6027 */   // MIs[0] x
     /* 6027 */   // No operand predicates
     /* 6027 */   // MIs[0] y
     /* 6027 */   // No operand predicates
     /* 6027 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
     /* 6031 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6036 */   // Combiner Rule #100: right_identity_neg_zero_fp
     /* 6036 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6041 */   GIR_EraseRootFromParent_Done,
     /* 6042 */ // Label 378: @6042
     /* 6042 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(6071), // Rule ID 139 //
     /* 6047 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
     /* 6050 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
     /* 6056 */   // MIs[0] dst
     /* 6056 */   // No operand predicates
     /* 6056 */   // MIs[0] x
     /* 6056 */   // No operand predicates
     /* 6056 */   // MIs[0] y
     /* 6056 */   // No operand predicates
     /* 6056 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
     /* 6060 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6065 */   // Combiner Rule #101: right_identity_neg_zero_fp_nsz
     /* 6065 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6070 */   GIR_EraseRootFromParent_Done,
     /* 6071 */ // Label 379: @6071
     /* 6071 */ GIM_Reject,
     /* 6072 */ // Label 63: @6072
     /* 6072 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(6083), // Rule ID 256 //
     /* 6077 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6080 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
     /* 6080 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6083 */ // Label 380: @6083
     /* 6083 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(6094), // Rule ID 267 //
     /* 6088 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6091 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FSUB'
     /* 6091 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6094 */ // Label 381: @6094
     /* 6094 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(6105), // Rule ID 277 //
     /* 6099 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
     /* 6102 */   // Combiner Rule #182: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6102 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
     /* 6105 */ // Label 382: @6105
     /* 6105 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(6116), // Rule ID 278 //
     /* 6110 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
     /* 6113 */   // Combiner Rule #183: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6113 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
     /* 6116 */ // Label 383: @6116
     /* 6116 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(6127), // Rule ID 279 //
     /* 6121 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
     /* 6124 */   // Combiner Rule #184: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6124 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
     /* 6127 */ // Label 384: @6127
     /* 6127 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(6138), // Rule ID 280 //
     /* 6132 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
     /* 6135 */   // Combiner Rule #185: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6135 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
     /* 6138 */ // Label 385: @6138
     /* 6138 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(6149), // Rule ID 300 //
     /* 6143 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6146 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FSUB'
     /* 6146 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6149 */ // Label 386: @6149
     /* 6149 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(6160), // Rule ID 316 //
     /* 6154 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
     /* 6157 */   // Combiner Rule #196: fsub_to_fneg; wip_match_opcode 'G_FSUB'
     /* 6157 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
     /* 6160 */ // Label 387: @6160
     /* 6160 */ GIM_Reject,
     /* 6161 */ // Label 64: @6161
     /* 6161 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(6172), // Rule ID 257 //
     /* 6166 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6169 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
     /* 6169 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6172 */ // Label 388: @6172
     /* 6172 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(6183), // Rule ID 268 //
     /* 6177 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6180 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMUL'
     /* 6180 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6183 */ // Label 389: @6183
     /* 6183 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(6194), // Rule ID 298 //
     /* 6188 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6191 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMUL'
     /* 6191 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6194 */ // Label 390: @6194
     /* 6194 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(6205), // Rule ID 339 //
     /* 6199 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6202 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
     /* 6202 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6205 */ // Label 391: @6205
     /* 6205 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(6228), // Rule ID 129 //
     /* 6210 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
     /* 6213 */   // MIs[0] dst
     /* 6213 */   // No operand predicates
     /* 6213 */   // MIs[0] x
     /* 6213 */   // No operand predicates
     /* 6213 */   // MIs[0] y
     /* 6213 */   // No operand predicates
     /* 6213 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
     /* 6217 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6222 */   // Combiner Rule #93: right_identity_one_fp
     /* 6222 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6227 */   GIR_EraseRootFromParent_Done,
     /* 6228 */ // Label 392: @6228
     /* 6228 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(6248), // Rule ID 140 //
     /* 6233 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
     /* 6236 */   // MIs[0] dst
     /* 6236 */   // No operand predicates
     /* 6236 */   // MIs[0] x
     /* 6236 */   // No operand predicates
     /* 6236 */   // MIs[0] y
     /* 6236 */   // No operand predicates
     /* 6236 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
     /* 6240 */   // Combiner Rule #102: right_identity_neg_one_fp
     /* 6240 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 6243 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 6245 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 6247 */   GIR_EraseRootFromParent_Done,
     /* 6248 */ // Label 393: @6248
     /* 6248 */ GIM_Reject,
     /* 6249 */ // Label 65: @6249
     /* 6249 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(6260), // Rule ID 260 //
     /* 6254 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
     /* 6257 */   // Combiner Rule #172: constant_fold_fma; wip_match_opcode 'G_FMA'
     /* 6257 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
     /* 6260 */ // Label 394: @6260
     /* 6260 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(6271), // Rule ID 271 //
     /* 6265 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6268 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMA'
     /* 6268 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6271 */ // Label 395: @6271
     /* 6271 */ GIM_Reject,
     /* 6272 */ // Label 66: @6272
     /* 6272 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(6283), // Rule ID 259 //
     /* 6277 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
     /* 6280 */   // Combiner Rule #172: constant_fold_fma; wip_match_opcode 'G_FMAD'
     /* 6280 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
     /* 6283 */ // Label 396: @6283
     /* 6283 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(6294), // Rule ID 270 //
     /* 6288 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6291 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMAD'
     /* 6291 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6294 */ // Label 397: @6294
     /* 6294 */ GIM_Reject,
     /* 6295 */ // Label 67: @6295
     /* 6295 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(6306), // Rule ID 258 //
     /* 6300 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6303 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
     /* 6303 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6306 */ // Label 398: @6306
     /* 6306 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(6317), // Rule ID 269 //
     /* 6311 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6314 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FDIV'
     /* 6314 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6317 */ // Label 399: @6317
     /* 6317 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(6328), // Rule ID 301 //
     /* 6322 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6325 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FDIV'
     /* 6325 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6328 */ // Label 400: @6328
     /* 6328 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(6339), // Rule ID 313 //
     /* 6333 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
     /* 6336 */   // MIs[0] dst
     /* 6336 */   // No operand predicates
     /* 6336 */   // MIs[0] src1
     /* 6336 */   // No operand predicates
     /* 6336 */   // MIs[0] src2
     /* 6336 */   // No operand predicates
     /* 6336 */   // Combiner Rule #193: fdiv_repeated_divison
     /* 6336 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
     /* 6339 */ // Label 401: @6339
     /* 6339 */ GIM_Reject,
     /* 6340 */ // Label 68: @6340
     /* 6340 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(6351), // Rule ID 302 //
     /* 6345 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6348 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FREM'
     /* 6348 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6351 */ // Label 402: @6351
     /* 6351 */ GIM_Reject,
     /* 6352 */ // Label 69: @6352
     /* 6352 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(6373), // Rule ID 199 //
     /* 6357 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
     /* 6360 */   // MIs[0] dst
     /* 6360 */   // No operand predicates
     /* 6360 */   // MIs[0] float
     /* 6360 */   // No operand predicates
     /* 6360 */   // MIs[0] int
     /* 6360 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 6364 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 6368 */   // MIs[1] imm
     /* 6368 */   // No operand predicates
     /* 6368 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6370 */   // Combiner Rule #149: expand_const_fpowi
     /* 6370 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
     /* 6373 */ // Label 403: @6373
     /* 6373 */ GIM_Reject,
     /* 6374 */ // Label 70: @6374
     /* 6374 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(6395), // Rule ID 180 //
     /* 6379 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
     /* 6382 */   // MIs[0] dst
     /* 6382 */   // No operand predicates
     /* 6382 */   // MIs[0] src0
     /* 6382 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6386 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6390 */   // MIs[1] cst
     /* 6390 */   // No operand predicates
     /* 6390 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6392 */   // Combiner Rule #138: constant_fold_flog2
     /* 6392 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6395 */ // Label 404: @6395
     /* 6395 */ GIM_Reject,
     /* 6396 */ // Label 71: @6396
     /* 6396 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(6417), // Rule ID 177 //
     /* 6401 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
     /* 6404 */   // MIs[0] dst
     /* 6404 */   // No operand predicates
     /* 6404 */   // MIs[0] src0
     /* 6404 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6408 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6412 */   // MIs[1] cst
     /* 6412 */   // No operand predicates
     /* 6412 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6414 */   // Combiner Rule #135: constant_fold_fneg
     /* 6414 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6417 */ // Label 405: @6417
     /* 6417 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(6446), // Rule ID 127 //
     /* 6422 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
     /* 6425 */   // MIs[0] dst
     /* 6425 */   // No operand predicates
     /* 6425 */   // MIs[0] t
     /* 6425 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6429 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 6433 */   // MIs[1] src
     /* 6433 */   // No operand predicates
     /* 6433 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 6438 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6440 */   // Combiner Rule #91: fneg_fneg_fold
     /* 6440 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 6445 */   GIR_EraseRootFromParent_Done,
     /* 6446 */ // Label 406: @6446
     /* 6446 */ GIM_Reject,
     /* 6447 */ // Label 72: @6447
     /* 6447 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(6468), // Rule ID 182 //
     /* 6452 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
     /* 6455 */   // MIs[0] dst
     /* 6455 */   // No operand predicates
     /* 6455 */   // MIs[0] src0
     /* 6455 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6459 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6463 */   // MIs[1] cst
     /* 6463 */   // No operand predicates
     /* 6463 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6465 */   // Combiner Rule #140: constant_fold_fpext
     /* 6465 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6468 */ // Label 407: @6468
     /* 6468 */ GIM_Reject,
     /* 6469 */ // Label 73: @6469
     /* 6469 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(6490), // Rule ID 181 //
     /* 6474 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
     /* 6477 */   // MIs[0] dst
     /* 6477 */   // No operand predicates
     /* 6477 */   // MIs[0] src0
     /* 6477 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6481 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6485 */   // MIs[1] cst
     /* 6485 */   // No operand predicates
     /* 6485 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6487 */   // Combiner Rule #139: constant_fold_fptrunc
     /* 6487 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6490 */ // Label 408: @6490
     /* 6490 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(6511), // Rule ID 137 //
     /* 6495 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
     /* 6498 */   // MIs[0] dst
     /* 6498 */   // No operand predicates
     /* 6498 */   // MIs[0] src1
     /* 6498 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6502 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
     /* 6506 */   // MIs[1] src0
     /* 6506 */   // No operand predicates
     /* 6506 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6508 */   // Combiner Rule #99: fptrunc_fpext_fold
     /* 6508 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
     /* 6511 */ // Label 409: @6511
     /* 6511 */ GIM_Reject,
     /* 6512 */ // Label 74: @6512
     /* 6512 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(6533), // Rule ID 92 //
     /* 6517 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 6520 */   // MIs[0] dst
     /* 6520 */   // No operand predicates
     /* 6520 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 6520 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6524 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 6528 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6530 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
     /* 6530 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 6533 */ // Label 410: @6533
     /* 6533 */ GIM_Reject,
     /* 6534 */ // Label 75: @6534
     /* 6534 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(6555), // Rule ID 93 //
     /* 6539 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 6542 */   // MIs[0] dst
     /* 6542 */   // No operand predicates
     /* 6542 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 6542 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6546 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 6550 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6552 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
     /* 6552 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 6555 */ // Label 411: @6555
     /* 6555 */ GIM_Reject,
     /* 6556 */ // Label 76: @6556
     /* 6556 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(6567), // Rule ID 76 //
     /* 6561 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
     /* 6564 */   // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
     /* 6564 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
     /* 6567 */ // Label 412: @6567
     /* 6567 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(6582), // Rule ID 183 //
     /* 6572 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
     /* 6575 */   // MIs[0] dst
     /* 6575 */   // No operand predicates
     /* 6575 */   // MIs[0] Operand 1
     /* 6575 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 6579 */   // Combiner Rule #141: itof_const_zero_fold_si
     /* 6579 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
     /* 6582 */ // Label 413: @6582
     /* 6582 */ GIM_Reject,
     /* 6583 */ // Label 77: @6583
     /* 6583 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(6594), // Rule ID 75 //
     /* 6588 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
     /* 6591 */   // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
     /* 6591 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
     /* 6594 */ // Label 414: @6594
     /* 6594 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(6609), // Rule ID 184 //
     /* 6599 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
     /* 6602 */   // MIs[0] dst
     /* 6602 */   // No operand predicates
     /* 6602 */   // MIs[0] Operand 1
     /* 6602 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 6606 */   // Combiner Rule #142: itof_const_zero_fold_ui
     /* 6606 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
     /* 6609 */ // Label 415: @6609
     /* 6609 */ GIM_Reject,
     /* 6610 */ // Label 78: @6610
     /* 6610 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(6639), // Rule ID 19 //
     /* 6615 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 6618 */   // MIs[0] dst
     /* 6618 */   // No operand predicates
     /* 6618 */   // MIs[0] src
     /* 6618 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6622 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
     /* 6626 */   // MIs[1] __idempotent_prop_match_0.x
     /* 6626 */   // No operand predicates
     /* 6626 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6631 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6633 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[1]]
     /* 6633 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6638 */   GIR_EraseRootFromParent_Done,
     /* 6639 */ // Label 416: @6639
     /* 6639 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(6660), // Rule ID 178 //
     /* 6644 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
     /* 6647 */   // MIs[0] dst
     /* 6647 */   // No operand predicates
     /* 6647 */   // MIs[0] src0
     /* 6647 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6651 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6655 */   // MIs[1] cst
     /* 6655 */   // No operand predicates
     /* 6655 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6657 */   // Combiner Rule #136: constant_fold_fabs
     /* 6657 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6660 */ // Label 417: @6660
     /* 6660 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(6688), // Rule ID 264 //
     /* 6665 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
     /* 6668 */   // MIs[0] dst
     /* 6668 */   // No operand predicates
     /* 6668 */   // MIs[0] tmp
     /* 6668 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6672 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 6676 */   // MIs[1] x
     /* 6676 */   // No operand predicates
     /* 6676 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6678 */   // Combiner Rule #174: fabs_fneg_fold
     /* 6678 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
     /* 6681 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 6683 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 6687 */   GIR_EraseRootFromParent_Done,
     /* 6688 */ // Label 418: @6688
     /* 6688 */ GIM_Reject,
     /* 6689 */ // Label 79: @6689
     /* 6689 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(6718), // Rule ID 20 //
     /* 6694 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 6697 */   // MIs[0] dst
     /* 6697 */   // No operand predicates
     /* 6697 */   // MIs[0] src
     /* 6697 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6701 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
     /* 6705 */   // MIs[1] __idempotent_prop_match_0.x
     /* 6705 */   // No operand predicates
     /* 6705 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6710 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6712 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[2]]
     /* 6712 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6717 */   GIR_EraseRootFromParent_Done,
     /* 6718 */ // Label 419: @6718
     /* 6718 */ GIM_Reject,
     /* 6719 */ // Label 80: @6719
     /* 6719 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(6730), // Rule ID 195 //
     /* 6724 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6727 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
     /* 6727 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6730 */ // Label 420: @6730
     /* 6730 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(6741), // Rule ID 303 //
     /* 6735 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6738 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
     /* 6738 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6741 */ // Label 421: @6741
     /* 6741 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(6752), // Rule ID 340 //
     /* 6746 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6749 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
     /* 6749 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6752 */ // Label 422: @6752
     /* 6752 */ GIM_Reject,
     /* 6753 */ // Label 81: @6753
     /* 6753 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(6764), // Rule ID 196 //
     /* 6758 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6761 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
     /* 6761 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6764 */ // Label 423: @6764
     /* 6764 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(6775), // Rule ID 304 //
     /* 6769 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6772 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
     /* 6772 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6775 */ // Label 424: @6775
     /* 6775 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(6786), // Rule ID 341 //
     /* 6780 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6783 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
     /* 6783 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6786 */ // Label 425: @6786
     /* 6786 */ GIM_Reject,
     /* 6787 */ // Label 82: @6787
     /* 6787 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(6798), // Rule ID 342 //
     /* 6792 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6795 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
     /* 6795 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6798 */ // Label 426: @6798
     /* 6798 */ GIM_Reject,
     /* 6799 */ // Label 83: @6799
     /* 6799 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(6810), // Rule ID 343 //
     /* 6804 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6807 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
     /* 6807 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6810 */ // Label 427: @6810
     /* 6810 */ GIM_Reject,
     /* 6811 */ // Label 84: @6811
     /* 6811 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(6822), // Rule ID 197 //
     /* 6816 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6819 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
     /* 6819 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6822 */ // Label 428: @6822
     /* 6822 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(6833), // Rule ID 305 //
     /* 6827 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6830 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
     /* 6830 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6833 */ // Label 429: @6833
     /* 6833 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(6844), // Rule ID 344 //
     /* 6838 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6841 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
     /* 6841 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6844 */ // Label 430: @6844
     /* 6844 */ GIM_Reject,
     /* 6845 */ // Label 85: @6845
     /* 6845 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(6856), // Rule ID 198 //
     /* 6850 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6853 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
     /* 6853 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6856 */ // Label 431: @6856
     /* 6856 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(6867), // Rule ID 306 //
     /* 6861 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6864 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
     /* 6864 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6867 */ // Label 432: @6867
     /* 6867 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(6878), // Rule ID 345 //
     /* 6872 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6875 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
     /* 6875 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6878 */ // Label 433: @6878
     /* 6878 */ GIM_Reject,
     /* 6879 */ // Label 86: @6879
     /* 6879 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(6890), // Rule ID 149 //
     /* 6884 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
     /* 6887 */   // Combiner Rule #107: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
     /* 6887 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
     /* 6890 */ // Label 434: @6890
     /* 6890 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(6901), // Rule ID 151 //
     /* 6895 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
     /* 6898 */   // Combiner Rule #109: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
     /* 6898 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
     /* 6901 */ // Label 435: @6901
     /* 6901 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(6912), // Rule ID 185 //
     /* 6906 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
     /* 6909 */   // Combiner Rule #143: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
     /* 6909 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
     /* 6912 */ // Label 436: @6912
     /* 6912 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(6923), // Rule ID 201 //
     /* 6917 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
     /* 6920 */   // Combiner Rule #151: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
     /* 6920 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
     /* 6923 */ // Label 437: @6923
     /* 6923 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(6934), // Rule ID 238 //
     /* 6928 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 6931 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
     /* 6931 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 6934 */ // Label 438: @6934
     /* 6934 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(6945), // Rule ID 283 //
     /* 6939 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6942 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
     /* 6942 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6945 */ // Label 439: @6945
     /* 6945 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(6968), // Rule ID 111 //
     /* 6950 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 6953 */   // MIs[0] dst
     /* 6953 */   // No operand predicates
     /* 6953 */   // MIs[0] lhs
     /* 6953 */   // No operand predicates
     /* 6953 */   // MIs[0] Operand 2
     /* 6953 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 6957 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6962 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[7]]
     /* 6962 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6967 */   GIR_EraseRootFromParent_Done,
     /* 6968 */ // Label 440: @6968
     /* 6968 */ GIM_Reject,
     /* 6969 */ // Label 87: @6969
     /* 6969 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(6980), // Rule ID 251 //
     /* 6974 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 6977 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SMIN'
     /* 6977 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 6980 */ // Label 441: @6980
     /* 6980 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(6991), // Rule ID 294 //
     /* 6985 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6988 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMIN'
     /* 6988 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6991 */ // Label 442: @6991
     /* 6991 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(7002), // Rule ID 322 //
     /* 6996 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 6999 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
     /* 6999 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7002 */ // Label 443: @7002
     /* 7002 */ GIM_Reject,
     /* 7003 */ // Label 88: @7003
     /* 7003 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(7014), // Rule ID 252 //
     /* 7008 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7011 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SMAX'
     /* 7011 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7014 */ // Label 444: @7014
     /* 7014 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(7025), // Rule ID 295 //
     /* 7019 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7022 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMAX'
     /* 7022 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7025 */ // Label 445: @7025
     /* 7025 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(7036), // Rule ID 323 //
     /* 7030 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7033 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
     /* 7033 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7036 */ // Label 446: @7036
     /* 7036 */ GIM_Reject,
     /* 7037 */ // Label 89: @7037
     /* 7037 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(7048), // Rule ID 253 //
     /* 7042 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7045 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UMIN'
     /* 7045 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7048 */ // Label 447: @7048
     /* 7048 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(7059), // Rule ID 296 //
     /* 7053 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7056 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMIN'
     /* 7056 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7059 */ // Label 448: @7059
     /* 7059 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(7070), // Rule ID 324 //
     /* 7064 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7067 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
     /* 7067 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7070 */ // Label 449: @7070
     /* 7070 */ GIM_Reject,
     /* 7071 */ // Label 90: @7071
     /* 7071 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(7082), // Rule ID 254 //
     /* 7076 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7079 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UMAX'
     /* 7079 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7082 */ // Label 450: @7082
     /* 7082 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(7093), // Rule ID 297 //
     /* 7087 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7090 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMAX'
     /* 7090 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7093 */ // Label 451: @7093
     /* 7093 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(7104), // Rule ID 325 //
     /* 7098 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7101 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
     /* 7101 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7104 */ // Label 452: @7104
     /* 7104 */ GIM_Reject,
     /* 7105 */ // Label 91: @7105
     /* 7105 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(7116), // Rule ID 86 //
     /* 7110 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
     /* 7113 */   // Combiner Rule #76: unary_undef_to_zero; wip_match_opcode 'G_ABS'
     /* 7113 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 7116 */ // Label 453: @7116
     /* 7116 */ GIM_Reject,
     /* 7117 */ // Label 92: @7117
     /* 7117 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(7128), // Rule ID 176 //
     /* 7122 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
     /* 7125 */   // Combiner Rule #134: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
     /* 7125 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
     /* 7128 */ // Label 454: @7128
     /* 7128 */ GIM_Reject,
     /* 7129 */ // Label 93: @7129
     /* 7129 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(7140), // Rule ID 26 //
     /* 7134 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
     /* 7137 */   // Combiner Rule #24: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 7137 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
     /* 7140 */ // Label 455: @7140
     /* 7140 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(7151), // Rule ID 67 //
     /* 7145 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
     /* 7148 */   // Combiner Rule #65: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 7148 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
     /* 7151 */ // Label 456: @7151
     /* 7151 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(7162), // Rule ID 101 //
     /* 7156 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
     /* 7159 */   // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 7159 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
     /* 7162 */ // Label 457: @7162
     /* 7162 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(7201), // Rule ID 38 //
     /* 7167 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
     /* 7170 */   // MIs[0] root
     /* 7170 */   // No operand predicates
     /* 7170 */   // MIs[0] src
     /* 7170 */   // No operand predicates
     /* 7170 */   // MIs[0] elt
     /* 7170 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7174 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
     /* 7178 */   // MIs[1] src
     /* 7178 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 7183 */   // MIs[1] idx
     /* 7183 */   // No operand predicates
     /* 7183 */   // MIs[0] idx
     /* 7183 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 7188 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7193 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7195 */   // Combiner Rule #36: insert_vector_element_extract_vector_element
     /* 7195 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7200 */   GIR_EraseRootFromParent_Done,
     /* 7201 */ // Label 458: @7201
     /* 7201 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(7234), // Rule ID 24 //
     /* 7206 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
     /* 7209 */   // MIs[0] root
     /* 7209 */   // No operand predicates
     /* 7209 */   // MIs[0] src
     /* 7209 */   // No operand predicates
     /* 7209 */   // MIs[0] elt
     /* 7209 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7213 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7217 */   // MIs[0] idx
     /* 7217 */   // No operand predicates
     /* 7217 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
     /* 7221 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7226 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7228 */   // Combiner Rule #22: insert_vector_element_elt_undef
     /* 7228 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7233 */   GIR_EraseRootFromParent_Done,
     /* 7234 */ // Label 459: @7234
     /* 7234 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(7258), // Rule ID 23 //
     /* 7239 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
     /* 7242 */   // MIs[0] root
     /* 7242 */   // No operand predicates
     /* 7242 */   // MIs[0] src
     /* 7242 */   // No operand predicates
     /* 7242 */   // MIs[0] elt
     /* 7242 */   // No operand predicates
     /* 7242 */   // MIs[0] idx
     /* 7242 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
     /* 7246 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7250 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7252 */   // Combiner Rule #21: insert_vector_element_idx_undef
     /* 7252 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7255 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 7257 */   GIR_EraseRootFromParent_Done,
     /* 7258 */ // Label 460: @7258
     /* 7258 */ GIM_Reject,
     /* 7259 */ // Label 94: @7259
     /* 7259 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(7270), // Rule ID 25 //
     /* 7264 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
     /* 7267 */   // Combiner Rule #23: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7267 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
     /* 7270 */ // Label 461: @7270
     /* 7270 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(7281), // Rule ID 68 //
     /* 7275 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
     /* 7278 */   // Combiner Rule #66: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7278 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
     /* 7281 */ // Label 462: @7281
     /* 7281 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(7292), // Rule ID 74 //
     /* 7286 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
     /* 7289 */   // Combiner Rule #70: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7289 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
     /* 7292 */ // Label 463: @7292
     /* 7292 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(7303), // Rule ID 102 //
     /* 7297 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
     /* 7300 */   // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7300 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
     /* 7303 */ // Label 464: @7303
     /* 7303 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(7327), // Rule ID 36 //
     /* 7308 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
     /* 7311 */   // MIs[0] root
     /* 7311 */   // No operand predicates
     /* 7311 */   // MIs[0] src
     /* 7311 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7315 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7319 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
     /* 7322 */   // MIs[1] x
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] y
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] z
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] a
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] b
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] c
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] d
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[1] e
     /* 7322 */   // No operand predicates
     /* 7322 */   // MIs[0] idx
     /* 7322 */   // No operand predicates
     /* 7322 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7324 */   // Combiner Rule #34: extract_vector_element_build_vector_trunc8
     /* 7324 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7327 */ // Label 465: @7327
     /* 7327 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(7351), // Rule ID 35 //
     /* 7332 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
     /* 7335 */   // MIs[0] root
     /* 7335 */   // No operand predicates
     /* 7335 */   // MIs[0] src
     /* 7335 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7339 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7343 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
     /* 7346 */   // MIs[1] x
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[1] y
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[1] z
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[1] a
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[1] b
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[1] c
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[1] d
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[0] idx
     /* 7346 */   // No operand predicates
     /* 7346 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7348 */   // Combiner Rule #33: extract_vector_element_build_vector_trunc7
     /* 7348 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7351 */ // Label 466: @7351
     /* 7351 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(7375), // Rule ID 34 //
     /* 7356 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
     /* 7359 */   // MIs[0] root
     /* 7359 */   // No operand predicates
     /* 7359 */   // MIs[0] src
     /* 7359 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7363 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7367 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
     /* 7370 */   // MIs[1] x
     /* 7370 */   // No operand predicates
     /* 7370 */   // MIs[1] y
     /* 7370 */   // No operand predicates
     /* 7370 */   // MIs[1] z
     /* 7370 */   // No operand predicates
     /* 7370 */   // MIs[1] a
     /* 7370 */   // No operand predicates
     /* 7370 */   // MIs[1] b
     /* 7370 */   // No operand predicates
     /* 7370 */   // MIs[1] c
     /* 7370 */   // No operand predicates
     /* 7370 */   // MIs[0] idx
     /* 7370 */   // No operand predicates
     /* 7370 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7372 */   // Combiner Rule #32: extract_vector_element_build_vector_trunc6
     /* 7372 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7375 */ // Label 467: @7375
     /* 7375 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(7399), // Rule ID 33 //
     /* 7380 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
     /* 7383 */   // MIs[0] root
     /* 7383 */   // No operand predicates
     /* 7383 */   // MIs[0] src
     /* 7383 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7387 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7391 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
     /* 7394 */   // MIs[1] x
     /* 7394 */   // No operand predicates
     /* 7394 */   // MIs[1] y
     /* 7394 */   // No operand predicates
     /* 7394 */   // MIs[1] z
     /* 7394 */   // No operand predicates
     /* 7394 */   // MIs[1] a
     /* 7394 */   // No operand predicates
     /* 7394 */   // MIs[1] b
     /* 7394 */   // No operand predicates
     /* 7394 */   // MIs[0] idx
     /* 7394 */   // No operand predicates
     /* 7394 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7396 */   // Combiner Rule #31: extract_vector_element_build_vector_trunc5
     /* 7396 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7399 */ // Label 468: @7399
     /* 7399 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(7423), // Rule ID 32 //
     /* 7404 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
     /* 7407 */   // MIs[0] root
     /* 7407 */   // No operand predicates
     /* 7407 */   // MIs[0] src
     /* 7407 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7411 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7415 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
     /* 7418 */   // MIs[1] x
     /* 7418 */   // No operand predicates
     /* 7418 */   // MIs[1] y
     /* 7418 */   // No operand predicates
     /* 7418 */   // MIs[1] z
     /* 7418 */   // No operand predicates
     /* 7418 */   // MIs[1] a
     /* 7418 */   // No operand predicates
     /* 7418 */   // MIs[0] idx
     /* 7418 */   // No operand predicates
     /* 7418 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7420 */   // Combiner Rule #30: extract_vector_element_build_vector_trunc4
     /* 7420 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7423 */ // Label 469: @7423
     /* 7423 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(7447), // Rule ID 31 //
     /* 7428 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
     /* 7431 */   // MIs[0] root
     /* 7431 */   // No operand predicates
     /* 7431 */   // MIs[0] src
     /* 7431 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7435 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7439 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
     /* 7442 */   // MIs[1] x
     /* 7442 */   // No operand predicates
     /* 7442 */   // MIs[1] y
     /* 7442 */   // No operand predicates
     /* 7442 */   // MIs[1] z
     /* 7442 */   // No operand predicates
     /* 7442 */   // MIs[0] idx
     /* 7442 */   // No operand predicates
     /* 7442 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7444 */   // Combiner Rule #29: extract_vector_element_build_vector_trunc3
     /* 7444 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7447 */ // Label 470: @7447
     /* 7447 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(7481), // Rule ID 27 //
     /* 7452 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
     /* 7455 */   // MIs[0] root
     /* 7455 */   // No operand predicates
     /* 7455 */   // MIs[0] src
     /* 7455 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7459 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
     /* 7463 */   // MIs[1] x
     /* 7463 */   // No operand predicates
     /* 7463 */   // MIs[1] value
     /* 7463 */   // No operand predicates
     /* 7463 */   // MIs[1] idx
     /* 7463 */   // No operand predicates
     /* 7463 */   // MIs[0] idx
     /* 7463 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 7468 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
     /* 7473 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7475 */   // Combiner Rule #25: extract_vector_element_not_const
     /* 7475 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
     /* 7480 */   GIR_EraseRootFromParent_Done,
     /* 7481 */ // Label 471: @7481
     /* 7481 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(7502), // Rule ID 28 //
     /* 7486 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
     /* 7489 */   // MIs[0] root
     /* 7489 */   // No operand predicates
     /* 7489 */   // MIs[0] src
     /* 7489 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7493 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
     /* 7497 */   // MIs[1] x
     /* 7497 */   // No operand predicates
     /* 7497 */   // MIs[1] value
     /* 7497 */   // No operand predicates
     /* 7497 */   // MIs[1] idx2
     /* 7497 */   // No operand predicates
     /* 7497 */   // MIs[0] idx1
     /* 7497 */   // No operand predicates
     /* 7497 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7499 */   // Combiner Rule #26: extract_vector_element_different_indices
     /* 7499 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
     /* 7502 */ // Label 472: @7502
     /* 7502 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(7531), // Rule ID 37 //
     /* 7507 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
     /* 7510 */   // MIs[0] root
     /* 7510 */   // No operand predicates
     /* 7510 */   // MIs[0] src
     /* 7510 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7514 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
     /* 7518 */   // MIs[1] src1
     /* 7518 */   // No operand predicates
     /* 7518 */   // MIs[1] src2
     /* 7518 */   // No operand predicates
     /* 7518 */   // MIs[1] mask
     /* 7518 */   // No operand predicates
     /* 7518 */   // MIs[0] idx
     /* 7518 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 7522 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 7526 */   // MIs[2] imm
     /* 7526 */   // No operand predicates
     /* 7526 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7528 */   // Combiner Rule #35: extract_vector_element_shuffle_vector
     /* 7528 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
     /* 7531 */ // Label 473: @7531
     /* 7531 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(7555), // Rule ID 30 //
     /* 7536 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
     /* 7539 */   // MIs[0] root
     /* 7539 */   // No operand predicates
     /* 7539 */   // MIs[0] src
     /* 7539 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7543 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7547 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
     /* 7550 */   // MIs[1] x
     /* 7550 */   // No operand predicates
     /* 7550 */   // MIs[1] y
     /* 7550 */   // No operand predicates
     /* 7550 */   // MIs[0] idx
     /* 7550 */   // No operand predicates
     /* 7550 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7552 */   // Combiner Rule #28: extract_vector_element_build_vector_trunc2
     /* 7552 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7555 */ // Label 474: @7555
     /* 7555 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(7587), // Rule ID 29 //
     /* 7560 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
     /* 7563 */   // MIs[0] root
     /* 7563 */   // No operand predicates
     /* 7563 */   // MIs[0] src
     /* 7563 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7567 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
     /* 7571 */   GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
     /* 7574 */   // MIs[1] unused
     /* 7574 */   // No operand predicates
     /* 7574 */   // MIs[0] idx
     /* 7574 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 7578 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 7582 */   // MIs[2] imm
     /* 7582 */   // No operand predicates
     /* 7582 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7584 */   // Combiner Rule #27: extract_vector_element_build_vector
     /* 7584 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
     /* 7587 */ // Label 475: @7587
     /* 7587 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(7611), // Rule ID 21 //
     /* 7592 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
     /* 7595 */   // MIs[0] root
     /* 7595 */   // No operand predicates
     /* 7595 */   // MIs[0] vector
     /* 7595 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7599 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7603 */   // MIs[0] idx
     /* 7603 */   // No operand predicates
     /* 7603 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7605 */   // Combiner Rule #19: match_extract_of_element_undef_vector
     /* 7605 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7608 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 7610 */   GIR_EraseRootFromParent_Done,
     /* 7611 */ // Label 476: @7611
     /* 7611 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(7635), // Rule ID 22 //
     /* 7616 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
     /* 7619 */   // MIs[0] root
     /* 7619 */   // No operand predicates
     /* 7619 */   // MIs[0] vector
     /* 7619 */   // No operand predicates
     /* 7619 */   // MIs[0] idx
     /* 7619 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7623 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7627 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7629 */   // Combiner Rule #20: match_extract_of_element_undef_index
     /* 7629 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7632 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 7634 */   GIR_EraseRootFromParent_Done,
     /* 7635 */ // Label 477: @7635
     /* 7635 */ GIM_Reject,
     /* 7636 */ // Label 95: @7636
     /* 7636 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(7647), // Rule ID 97 //
     /* 7641 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
     /* 7644 */   // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7644 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
     /* 7647 */ // Label 478: @7647
     /* 7647 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(7658), // Rule ID 99 //
     /* 7652 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
     /* 7655 */   // Combiner Rule #80: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7655 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
     /* 7658 */ // Label 479: @7658
     /* 7658 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(7669), // Rule ID 353 //
     /* 7663 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
     /* 7666 */   // Combiner Rule #206: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7666 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
     /* 7669 */ // Label 480: @7669
     /* 7669 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(7680), // Rule ID 355 //
     /* 7674 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
     /* 7677 */   // Combiner Rule #208: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7677 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
     /* 7680 */ // Label 481: @7680
     /* 7680 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(7701), // Rule ID 354 //
     /* 7685 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
     /* 7688 */   // MIs[0] root
     /* 7688 */   // No operand predicates
     /* 7688 */   // MIs[0] src1
     /* 7688 */   // No operand predicates
     /* 7688 */   // MIs[0] undef
     /* 7688 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7692 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7696 */   // MIs[0] mask
     /* 7696 */   // No operand predicates
     /* 7696 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7698 */   // Combiner Rule #207: combine_shuffle_undef_rhs
     /* 7698 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
     /* 7701 */ // Label 482: @7701
     /* 7701 */ GIM_Reject,
     /* 7702 */ // Label 96: @7702
     /* 7702 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(7746), // Rule ID 229 //
     /* 7707 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
     /* 7710 */   // MIs[0] d
     /* 7710 */   // No operand predicates
     /* 7710 */   // MIs[0] src
     /* 7710 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7714 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 7718 */   // MIs[1] rev
     /* 7718 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 7722 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
     /* 7726 */   // MIs[2] val
     /* 7726 */   // No operand predicates
     /* 7726 */   // MIs[1] amt
     /* 7726 */   // No operand predicates
     /* 7726 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
     /* 7730 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7732 */   // Combiner Rule #164: bitreverse_lshr
     /* 7732 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
     /* 7735 */   GIR_RootToRootCopy, /*OpIdx*/0, // d
     /* 7737 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
     /* 7741 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
     /* 7745 */   GIR_EraseRootFromParent_Done,
     /* 7746 */ // Label 483: @7746
     /* 7746 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(7790), // Rule ID 228 //
     /* 7751 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
     /* 7754 */   // MIs[0] d
     /* 7754 */   // No operand predicates
     /* 7754 */   // MIs[0] src
     /* 7754 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7758 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 7762 */   // MIs[1] rev
     /* 7762 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 7766 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
     /* 7770 */   // MIs[2] val
     /* 7770 */   // No operand predicates
     /* 7770 */   // MIs[1] amt
     /* 7770 */   // No operand predicates
     /* 7770 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
     /* 7774 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7776 */   // Combiner Rule #163: bitreverse_shl
     /* 7776 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 7779 */   GIR_RootToRootCopy, /*OpIdx*/0, // d
     /* 7781 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
     /* 7785 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
     /* 7789 */   GIR_EraseRootFromParent_Done,
     /* 7790 */ // Label 484: @7790
     /* 7790 */ GIM_Reject,
     /* 7791 */ // Label 97: @7791
     /* 7791 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(7812), // Rule ID 179 //
     /* 7796 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
     /* 7799 */   // MIs[0] dst
     /* 7799 */   // No operand predicates
     /* 7799 */   // MIs[0] src0
     /* 7799 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7803 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 7807 */   // MIs[1] cst
     /* 7807 */   // No operand predicates
     /* 7807 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7809 */   // Combiner Rule #137: constant_fold_fsqrt
     /* 7809 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 7812 */ // Label 485: @7812
     /* 7812 */ GIM_Reject,
     /* 7813 */ // Label 98: @7813
     /* 7813 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(7827), // Rule ID 378 //
     /* 7818 */   GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasDotProd),
     /* 7821 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
     /* 7824 */   // Combiner Rule #229: ext_addv_to_udot_addv; wip_match_opcode 'G_VECREDUCE_ADD'
     /* 7824 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
     /* 7827 */ // Label 486: @7827
     /* 7827 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(7838), // Rule ID 379 //
     /* 7832 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
     /* 7835 */   // Combiner Rule #230: ext_uaddv_to_uaddlv; wip_match_opcode 'G_VECREDUCE_ADD'
     /* 7835 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
     /* 7838 */ // Label 487: @7838
     /* 7838 */ GIM_Reject,
     /* 7839 */ // Label 99: @7839
     /* 7839 */ GIM_Reject,
     /* 7840 */ }; // Size: 7840 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

