/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* AMDGPUPreLegalizerCombinerImpl 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 AMDGPUPreLegalizerCombinerImplRuleConfig {
  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:	 // 16 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
        break;
      return 37;	 // "add_of_vscale"
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
        break;
      return 165;	 // "commute_shift"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
        break;
      return 229;	 // "foldable_fneg"
    case 'l':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
        break;
      return 69;	 // "load_and_mask"
    case 'm':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
          break;
        return 125;	 // "match_selects"
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
          break;
        return 212;	 // "merge_unmerge"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
          break;
        return 38;	 // "mul_of_vscale"
      }
      break;
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
        break;
      return 126;	 // "redundant_and"
    case 's':	 // 4 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
          break;
        return 192;	 // "sdiv_by_const"
      case 'h':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
          break;
        return 39;	 // "shl_of_vscale"
      case 'r':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
          break;
        return 188;	 // "srem_by_const"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
          break;
        return 40;	 // "sub_of_vscale"
      }
      break;
    case 'u':	 // 4 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
          break;
        return 191;	 // "udiv_by_const"
      case 'n':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
          break;
        switch (RuleIdentifier[8]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
            break;
          return 211;	 // "unmerge_merge"
        case 'u':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
            break;
          return 214;	 // "unmerge_undef"
        }
        break;
      case 'r':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
          break;
        return 187;	 // "urem_by_const"
      }
      break;
    }
    break;
  case 14:	 // 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:	 // 13 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 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "lamp_i64_to_i16", 15) != 0)
        break;
      return 228;	 // "clamp_i64_to_i16"
    case 'n':	 // 5 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
        break;
      switch (RuleIdentifier[13]) {
      default: break;
      case 'a':	 // 2 strings to match.
        switch (RuleIdentifier[14]) {
        default: break;
        case 'd':	 // 1 string to match.
          if (RuleIdentifier[15] != 'd')
            break;
          return 58;	 // "narrow_binop_add"
        case 'n':	 // 1 string to match.
          if (RuleIdentifier[15] != 'd')
            break;
          return 61;	 // "narrow_binop_and"
        }
        break;
      case 'm':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
          break;
        return 60;	 // "narrow_binop_mul"
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
          break;
        return 59;	 // "narrow_binop_sub"
      case 'x':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
          break;
        return 63;	 // "narrow_binop_xor"
      }
      break;
    case 's':	 // 3 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
        break;
      switch (RuleIdentifier[7]) {
      default: break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
          break;
        return 55;	 // "select_of_anyext"
      case 't':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
          break;
        return 195;	 // "select_to_minmax"
      case 'u':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
          break;
        return 122;	 // "select_undef_cmp"
      }
      break;
    case 't':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
        break;
      switch (RuleIdentifier[12]) {
      default: break;
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
          break;
        return 44;	 // "truncate_of_sext"
      case 'z':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
          break;
        return 43;	 // "truncate_of_zext"
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
        break;
      return 71;	 // "undef_to_fp_zero"
    }
    break;
  case 17:	 // 14 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
        break;
      switch (RuleIdentifier[11]) {
      default: break;
      case 'A':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
          break;
        return 6;	 // "APlusBMinusAplusC"
      case 'C':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
          break;
        return 7;	 // "APlusBMinusCPlusA"
      }
      break;
    case 'a':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'd':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
          break;
        return 16;	 // "add_p2i_to_ptradd"
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
          break;
        return 90;	 // "anyext_trunc_fold"
      }
      break;
    case 'c':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
          break;
        switch (RuleIdentifier[13]) {
        default: break;
        case 'f':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
            break;
          return 111;	 // "canonicalize_fcmp"
        case 'i':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
            break;
          return 110;	 // "canonicalize_icmp"
        }
        break;
      case 'o':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
          break;
        return 172;	 // "constant_fold_fma"
      }
      break;
    case 'd':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
        break;
      return 155;	 // "div_rem_to_divrem"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
        break;
      return 81;	 // "erase_undef_store"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
        break;
      return 151;	 // "ptr_add_with_zero"
    case 's':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
          break;
        return 124;	 // "select_to_iminmax"
      case 'h':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
          break;
        return 152;	 // "shift_immed_chain"
      }
      break;
    case 'u':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'n':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
          break;
        return 72;	 // "undef_to_int_zero"
      case 'r':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
          break;
        return 129;	 // "urem_pow2_to_mask"
      }
      break;
    }
    break;
  case 18:	 // 12 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'A':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "MinusBPlus", 10) != 0)
        break;
      switch (RuleIdentifier[11]) {
      default: break;
      case 'B':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
          break;
        return 5;	 // "AMinusBPlusBMinusC"
      case 'C':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
          break;
        return 4;	 // "AMinusBPlusCMinusA"
      }
      break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
        break;
      return 86;	 // "binop_left_to_zero"
    case 'c':	 // 4 strings to match.
      if (RuleIdentifier[1] != 'o')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'm':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
          break;
        switch (RuleIdentifier[8]) {
        default: break;
        case 'm':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
            break;
          return 148;	 // "combine_minmax_nan"
        case 'o':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
            break;
          return 233;	 // "combine_or_s64_s32"
        }
        break;
      case 'n':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
          break;
        switch (RuleIdentifier[15]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
            break;
          return 136;	 // "constant_fold_fabs"
        case 'n':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
            break;
          return 135;	 // "constant_fold_fneg"
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
        break;
      return 149;	 // "expand_const_fpowi"
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
        break;
      return 99;	 // "fptrunc_fpext_fold"
    case 's':	 // 2 strings to match.
      if (RuleIdentifier[1] != 'e')
        break;
      switch (RuleIdentifier[2]) {
      default: break;
      case 'l':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
          break;
        return 56;	 // "select_of_truncate"
      case 'x':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
          break;
        return 119;	 // "sext_inreg_of_load"
      }
      break;
    case 't':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
        break;
      return 45;	 // "truncate_of_anyext"
    }
    break;
  case 19:	 // 16 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
        break;
      return 87;	 // "binop_right_to_zero"
    case 'c':	 // 5 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
        break;
      switch (RuleIdentifier[5]) {
      default: break;
      case '_':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
          break;
        return 143;	 // "const_ptradd_to_i2p"
      case 'a':	 // 4 strings to match.
        if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
          break;
        switch (RuleIdentifier[14]) {
        default: break;
        case 'b':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
            break;
          return 170;	 // "constant_fold_binop"
        case 'f':	 // 3 strings to match.
          switch (RuleIdentifier[15]) {
          default: break;
          case 'l':	 // 1 string to match.
            if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
              break;
            return 138;	 // "constant_fold_flog2"
          case 'p':	 // 1 string to match.
            if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
              break;
            return 140;	 // "constant_fold_fpext"
          case 's':	 // 1 string to match.
            if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
              break;
            return 137;	 // "constant_fold_fsqrt"
          }
          break;
        }
        break;
      }
      break;
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
        break;
      return 103;	 // "extend_through_phis"
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
        break;
      return 64;	 // "integer_of_truncate"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
        break;
      return 218;	 // "merge_of_x_and_zero"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
        break;
      return 109;	 // "ptr_add_immed_chain"
    case 'r':	 // 2 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
          break;
        return 108;	 // "reassoc_comm_binops"
      case 'i':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
          break;
        return 84;	 // "right_identity_zero"
      }
      break;
    case 's':	 // 3 strings to match.
      switch (RuleIdentifier[1]) {
      default: break;
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
          break;
        return 123;	 // "select_constant_cmp"
      case 'i':	 // 2 strings to match.
        if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
          break;
        switch (RuleIdentifier[9]) {
        default: break;
        case 'a':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
            break;
          return 104;	 // "simplify_add_to_sub"
        case 'n':	 // 1 string to match.
          if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
            break;
          return 201;	 // "simplify_neg_minmax"
        }
        break;
      }
      break;
    case 'u':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
        break;
      return 76;	 // "unary_undef_to_zero"
    }
    break;
  case 20:	 // 7 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'a':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
        break;
      return 177;	 // "and_or_disjoint_mask"
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
        break;
      return 98;	 // "bitcast_bitcast_fold"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
        break;
      return 217;	 // "merge_of_x_and_undef"
    case 'r':	 // 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:	 // 10 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 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
        break;
      return 193;	 // "fdiv_repeated_divison"
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
        break;
      return 24;	 // "insert_vector_elt_oob"
    case 'l':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
        break;
      return 226;	 // "lshr_of_trunc_of_lshr"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
        break;
      return 93;	 // "right_identity_one_fp"
    case '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:	 // 5 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
        break;
      return 231;	 // "combine_or_s64_with_s32_mask"
    case 'd':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
        break;
      return 114;	 // "double_icmp_zero_and_combine"
    case 'o':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
        break;
      return 134;	 // "opt_brcond_by_inverting_cond"
    case 'p':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
        break;
      return 80;	 // "propagate_undef_shuffle_mask"
    case 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
        break;
      return 153;	 // "shift_of_shifted_logic_chain"
    }
    break;
  case 29:	 // 5 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'b':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
        break;
      return 169;	 // "bitfield_extract_from_shr_and"
    case 'c':	 // 3 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
        break;
      switch (RuleIdentifier[8]) {
      default: break;
      case 'a':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
          break;
        return 232;	 // "combine_and_s64_with_s32_mask"
      case 'e':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
          break;
        return 70;	 // "combine_extracted_vector_load"
      case 's':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
          break;
        return 208;	 // "combine_shuffle_disjoint_mask"
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
        break;
      return 112;	 // "icmp_to_true_false_known_bits"
    }
    break;
  case 30:	 // 2 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'f':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
        break;
      return 41;	 // "freeze_of_non_undef_non_poison"
    case 'r':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
        break;
      return 101;	 // "right_identity_neg_zero_fp_nsz"
    }
    break;
  case 31:	 // 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:	 // 2 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
        break;
      return 227;	 // "combine_fmul_with_select_to_fldexp"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
        break;
      return 67;	 // "extract_all_elts_from_build_vector"
    }
    break;
  case 35:	 // 1 string to match.
    if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
      break;
    return 27;	 // "extract_vector_element_build_vector"
  case 36:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
        break;
      switch (RuleIdentifier[8]) {
      default: break;
      case 'f':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
          break;
        return 180;	 // "combine_fadd_fma_fmul_to_fmad_or_fma"
      case 'i':	 // 1 string to match.
        if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
          break;
        return 65;	 // "combine_insert_vec_elts_build_vector"
      }
      break;
    case 'i':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
        break;
      return 82;	 // "insert_extract_vec_elt_out_of_bounds"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
        break;
      return 20;	 // "match_extract_of_element_undef_index"
    }
    break;
  case 37:	 // 4 strings to match.
    switch (RuleIdentifier[0]) {
    default: break;
    case 'c':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
        break;
      return 183;	 // "combine_fsub_fneg_fmul_to_fmad_or_fma"
    case 'e':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
        break;
      return 35;	 // "extract_vector_element_shuffle_vector"
    case 'h':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
        break;
      return 105;	 // "hoist_logic_op_with_same_opcode_hands"
    case 'm':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
        break;
      return 19;	 // "match_extract_of_element_undef_vector"
    }
    break;
  case 38:	 // 3 strings to match.
    if (memcmp(RuleIdentifier.data()+0, "combine_", 8) != 0)
      break;
    switch (RuleIdentifier[8]) {
    default: break;
    case 'f':	 // 2 strings to match.
      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 's':	 // 1 string to match.
      if (memcmp(RuleIdentifier.data()+9, "huffle_vector_to_build_vector", 29) != 0)
        break;
      return 230;	 // "combine_shuffle_vector_to_build_vector"
    }
    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, 234}};
  }
  const auto I = getRuleIdxForIdentifier(RangePair.first);
  if (!I)
    return std::nullopt;
  return {{*I, *I + 1}};
}

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


bool AMDGPUPreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
    return  !DisabledRules.test(RuleID);
}
bool AMDGPUPreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
  for (StringRef Identifier : AMDGPUPreLegalizerCombinerOption) {
    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 = 0;
using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
#endif // ifdef GET_GICOMBINER_TYPES

#ifdef GET_GICOMBINER_CLASS_MEMBERS
PredicateBitset AvailableModuleFeatures;
mutable PredicateBitset AvailableFunctionFeatures;
PredicateBitset getAvailableFeatures() const {
  return AvailableModuleFeatures | AvailableFunctionFeatures;
}
PredicateBitset
computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
PredicateBitset
computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
                                 const MachineFunction *MF) const;
void setupGeneratedPerFunctionState(MachineFunction &MF) override;
#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
#ifdef GET_GICOMBINER_CLASS_MEMBERS
  mutable MatcherState State;
  typedef ComplexRendererFns(AMDGPUPreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
  typedef void(AMDGPUPreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
  const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
  static AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
  static AMDGPUPreLegalizerCombinerImpl::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_s32,
  GILLT_s64,
};
const static size_t NumTypeObjects = 2;
const static LLT TypeObjects[] = {
  LLT::scalar(32),
  LLT::scalar(64),
};

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

PredicateBitset AMDGPUPreLegalizerCombinerImpl::
computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
  PredicateBitset Features{};
  return Features;
}

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

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

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

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

enum {
  GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
  GICXXPred_MI_Predicate_GICombiner1,
  GICXXPred_MI_Predicate_GICombiner2,
  GICXXPred_MI_Predicate_GICombiner3,
  GICXXPred_MI_Predicate_GICombiner4,
  GICXXPred_MI_Predicate_GICombiner5,
  GICXXPred_MI_Predicate_GICombiner6,
  GICXXPred_MI_Predicate_GICombiner7,
  GICXXPred_MI_Predicate_GICombiner8,
  GICXXPred_MI_Predicate_GICombiner9,
  GICXXPred_MI_Predicate_GICombiner10,
  GICXXPred_MI_Predicate_GICombiner11,
  GICXXPred_MI_Predicate_GICombiner12,
  GICXXPred_MI_Predicate_GICombiner13,
};
bool AMDGPUPreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
  switch (PredicateID) {
  case GICXXPred_MI_Predicate_GICombiner0: {
    return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
  }
  case GICXXPred_MI_Predicate_GICombiner1: {
    return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
  }
  case GICXXPred_MI_Predicate_GICombiner2: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
  }
  case GICXXPred_MI_Predicate_GICombiner3: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
  }
  case GICXXPred_MI_Predicate_GICombiner4: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
  }
  case GICXXPred_MI_Predicate_GICombiner5: {
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
  }
  case GICXXPred_MI_Predicate_GICombiner6: {
    return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
                               !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
                               (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
                                   MRI.getType(State.MIs[2]->getOperand(2).getReg()));
  }
  case GICXXPred_MI_Predicate_GICombiner7: {
    return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
                               !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
                               (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
                                   MRI.getType(State.MIs[2]->getOperand(2).getReg()));
  }
  case GICXXPred_MI_Predicate_GICombiner8: {
    return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
                    Helper.isLegalOrBeforeLegalizer(
                      {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
  }
  case GICXXPred_MI_Predicate_GICombiner9: {
    return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
                                                           {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
                                                            MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
  }
  case GICXXPred_MI_Predicate_GICombiner10: {
    return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
                                                           {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
                                                            MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
  }
  case GICXXPred_MI_Predicate_GICombiner11: {
    return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
  }
  case GICXXPred_MI_Predicate_GICombiner12: {
    return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
  }
  case GICXXPred_MI_Predicate_GICombiner13: {
    return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
                           Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
  }
  }
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
  llvm_unreachable("Unknown predicate");
  return false;
}
bool AMDGPUPreLegalizerCombinerImpl::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,
};

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

bool AMDGPUPreLegalizerCombinerImpl::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,
};
bool AMDGPUPreLegalizerCombinerImpl::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:{
    std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner157:{
    ClampI64ToI16MatchInfo GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return matchClampI64ToI16(*State.MIs[0], MRI, MF, GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    applyClampI64ToI16(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner158:{
    MachineInstr * GIMatchData_matchinfo;
    // Match Patterns
    if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
      return false;
    }
    // Apply Patterns
    Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
    return true;
  }
  case GICXXCustomAction_GICombiner159:{
    // Apply Patterns
    Helper.applyCombineShuffleToBuildVector(*State.MIs[0]);
    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 *AMDGPUPreLegalizerCombinerImpl::getMatchTable() const {
  constexpr static uint8_t MatchTable0[] = {
     /*    0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(276), /*)*//*default:*//*Label 97*/ GIMT_Encode4(7928),
     /*   10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1034), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(1046),
     /*  154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(1603),
     /*  158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(1921),
     /*  162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(2087),
     /*  166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(2160),
     /*  170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(2244),
     /*  174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(2300), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(2378),
     /*  190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(2773),
     /*  194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(3494), 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(3595), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(3607), GIMT_Encode4(0),
     /*  258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(3674),
     /*  262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(3748),
     /*  266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(3813),
     /*  270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(3825),
     /*  274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(3837),
     /*  278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(3880),
     /*  282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(3913),
     /*  286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(3956), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  326 */ /*TargetOpcode::G_LOAD*//*Label 21*/ GIMT_Encode4(4020),
     /*  330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 22*/ GIMT_Encode4(4032),
     /*  334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 23*/ GIMT_Encode4(4044), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  350 */ /*TargetOpcode::G_STORE*//*Label 24*/ GIMT_Encode4(4056), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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 25*/ GIMT_Encode4(4068),
     /*  490 */ /*TargetOpcode::G_TRUNC*//*Label 26*/ GIMT_Encode4(4196), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  502 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 27*/ GIMT_Encode4(4619), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  522 */ /*TargetOpcode::G_SEXT*//*Label 28*/ GIMT_Encode4(4652),
     /*  526 */ /*TargetOpcode::G_SEXT_INREG*//*Label 29*/ GIMT_Encode4(4727),
     /*  530 */ /*TargetOpcode::G_ZEXT*//*Label 30*/ GIMT_Encode4(4793),
     /*  534 */ /*TargetOpcode::G_SHL*//*Label 31*/ GIMT_Encode4(4923),
     /*  538 */ /*TargetOpcode::G_LSHR*//*Label 32*/ GIMT_Encode4(5092),
     /*  542 */ /*TargetOpcode::G_ASHR*//*Label 33*/ GIMT_Encode4(5244),
     /*  546 */ /*TargetOpcode::G_FSHL*//*Label 34*/ GIMT_Encode4(5378),
     /*  550 */ /*TargetOpcode::G_FSHR*//*Label 35*/ GIMT_Encode4(5421),
     /*  554 */ /*TargetOpcode::G_ROTR*//*Label 36*/ GIMT_Encode4(5464),
     /*  558 */ /*TargetOpcode::G_ROTL*//*Label 37*/ GIMT_Encode4(5488),
     /*  562 */ /*TargetOpcode::G_ICMP*//*Label 38*/ GIMT_Encode4(5512),
     /*  566 */ /*TargetOpcode::G_FCMP*//*Label 39*/ GIMT_Encode4(5557), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  578 */ /*TargetOpcode::G_SELECT*//*Label 40*/ GIMT_Encode4(5569),
     /*  582 */ /*TargetOpcode::G_UADDO*//*Label 41*/ GIMT_Encode4(5664),
     /*  586 */ /*TargetOpcode::G_UADDE*//*Label 42*/ GIMT_Encode4(5687),
     /*  590 */ /*TargetOpcode::G_USUBO*//*Label 43*/ GIMT_Encode4(5699),
     /*  594 */ /*TargetOpcode::G_USUBE*//*Label 44*/ GIMT_Encode4(5711),
     /*  598 */ /*TargetOpcode::G_SADDO*//*Label 45*/ GIMT_Encode4(5723),
     /*  602 */ /*TargetOpcode::G_SADDE*//*Label 46*/ GIMT_Encode4(5746),
     /*  606 */ /*TargetOpcode::G_SSUBO*//*Label 47*/ GIMT_Encode4(5758),
     /*  610 */ /*TargetOpcode::G_SSUBE*//*Label 48*/ GIMT_Encode4(5770),
     /*  614 */ /*TargetOpcode::G_UMULO*//*Label 49*/ GIMT_Encode4(5782),
     /*  618 */ /*TargetOpcode::G_SMULO*//*Label 50*/ GIMT_Encode4(5816),
     /*  622 */ /*TargetOpcode::G_UMULH*//*Label 51*/ GIMT_Encode4(5850),
     /*  626 */ /*TargetOpcode::G_SMULH*//*Label 52*/ GIMT_Encode4(5873),
     /*  630 */ /*TargetOpcode::G_UADDSAT*//*Label 53*/ GIMT_Encode4(5885),
     /*  634 */ /*TargetOpcode::G_SADDSAT*//*Label 54*/ GIMT_Encode4(5897), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  646 */ /*TargetOpcode::G_USHLSAT*//*Label 55*/ GIMT_Encode4(5909),
     /*  650 */ /*TargetOpcode::G_SSHLSAT*//*Label 56*/ GIMT_Encode4(5932),
     /*  654 */ /*TargetOpcode::G_SMULFIX*//*Label 57*/ GIMT_Encode4(5955),
     /*  658 */ /*TargetOpcode::G_UMULFIX*//*Label 58*/ GIMT_Encode4(5967),
     /*  662 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 59*/ GIMT_Encode4(5979),
     /*  666 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 60*/ GIMT_Encode4(5991), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  686 */ /*TargetOpcode::G_FADD*//*Label 61*/ GIMT_Encode4(6003),
     /*  690 */ /*TargetOpcode::G_FSUB*//*Label 62*/ GIMT_Encode4(6144),
     /*  694 */ /*TargetOpcode::G_FMUL*//*Label 63*/ GIMT_Encode4(6233),
     /*  698 */ /*TargetOpcode::G_FMA*//*Label 64*/ GIMT_Encode4(6342),
     /*  702 */ /*TargetOpcode::G_FMAD*//*Label 65*/ GIMT_Encode4(6365),
     /*  706 */ /*TargetOpcode::G_FDIV*//*Label 66*/ GIMT_Encode4(6388),
     /*  710 */ /*TargetOpcode::G_FREM*//*Label 67*/ GIMT_Encode4(6433), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  722 */ /*TargetOpcode::G_FPOWI*//*Label 68*/ GIMT_Encode4(6445), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  742 */ /*TargetOpcode::G_FLOG2*//*Label 69*/ GIMT_Encode4(6467), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  758 */ /*TargetOpcode::G_FNEG*//*Label 70*/ GIMT_Encode4(6489),
     /*  762 */ /*TargetOpcode::G_FPEXT*//*Label 71*/ GIMT_Encode4(6551),
     /*  766 */ /*TargetOpcode::G_FPTRUNC*//*Label 72*/ GIMT_Encode4(6573),
     /*  770 */ /*TargetOpcode::G_FPTOSI*//*Label 73*/ GIMT_Encode4(6616),
     /*  774 */ /*TargetOpcode::G_FPTOUI*//*Label 74*/ GIMT_Encode4(6638),
     /*  778 */ /*TargetOpcode::G_SITOFP*//*Label 75*/ GIMT_Encode4(6660),
     /*  782 */ /*TargetOpcode::G_UITOFP*//*Label 76*/ GIMT_Encode4(6687), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  794 */ /*TargetOpcode::G_FABS*//*Label 77*/ GIMT_Encode4(6714), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  806 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 78*/ GIMT_Encode4(6793),
     /*  810 */ /*TargetOpcode::G_FMINNUM*//*Label 79*/ GIMT_Encode4(6823),
     /*  814 */ /*TargetOpcode::G_FMAXNUM*//*Label 80*/ GIMT_Encode4(6857),
     /*  818 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 81*/ GIMT_Encode4(6891),
     /*  822 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 82*/ GIMT_Encode4(6903),
     /*  826 */ /*TargetOpcode::G_FMINIMUM*//*Label 83*/ GIMT_Encode4(6915),
     /*  830 */ /*TargetOpcode::G_FMAXIMUM*//*Label 84*/ GIMT_Encode4(6949), GIMT_Encode4(0), GIMT_Encode4(0), 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 85*/ GIMT_Encode4(6983), GIMT_Encode4(0),
     /*  882 */ /*TargetOpcode::G_SMIN*//*Label 86*/ GIMT_Encode4(7073),
     /*  886 */ /*TargetOpcode::G_SMAX*//*Label 87*/ GIMT_Encode4(7107),
     /*  890 */ /*TargetOpcode::G_UMIN*//*Label 88*/ GIMT_Encode4(7141),
     /*  894 */ /*TargetOpcode::G_UMAX*//*Label 89*/ GIMT_Encode4(7175),
     /*  898 */ /*TargetOpcode::G_ABS*//*Label 90*/ GIMT_Encode4(7209), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  910 */ /*TargetOpcode::G_BR*//*Label 91*/ GIMT_Encode4(7221), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
     /*  930 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 92*/ GIMT_Encode4(7233),
     /*  934 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 93*/ GIMT_Encode4(7363),
     /*  938 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 94*/ GIMT_Encode4(7740), GIMT_Encode4(0), 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 95*/ GIMT_Encode4(7817), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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 96*/ GIMT_Encode4(7906),
     /* 1034 */ // Label 0: @1034
     /* 1034 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(1045), // Rule ID 13 //
     /* 1039 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
     /* 1042 */   // MIs[0] d
     /* 1042 */   // No operand predicates
     /* 1042 */   // MIs[0] s
     /* 1042 */   // No operand predicates
     /* 1042 */   // Combiner Rule #13: copy_prop
     /* 1042 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
     /* 1045 */ // Label 98: @1045
     /* 1045 */ GIM_Reject,
     /* 1046 */ // Label 1: @1046
     /* 1046 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(1057), // Rule ID 16 //
     /* 1051 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
     /* 1054 */   // Combiner Rule #16: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
     /* 1054 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
     /* 1057 */ // Label 99: @1057
     /* 1057 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(1068), // Rule ID 94 //
     /* 1062 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 1065 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_ADD'
     /* 1065 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 1068 */ // Label 100: @1068
     /* 1068 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(1079), // Rule ID 142 //
     /* 1073 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
     /* 1076 */   // Combiner Rule #104: simplify_add_to_sub; wip_match_opcode 'G_ADD'
     /* 1076 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
     /* 1079 */ // Label 101: @1079
     /* 1079 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(1090), // Rule ID 237 //
     /* 1084 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 1087 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_ADD'
     /* 1087 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 1090 */ // Label 102: @1090
     /* 1090 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(1101), // Rule ID 281 //
     /* 1095 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 1098 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ADD'
     /* 1098 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 1101 */ // Label 103: @1101
     /* 1101 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(1112), // Rule ID 317 //
     /* 1106 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 1109 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
     /* 1109 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 1112 */ // Label 104: @1112
     /* 1112 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(1146), // Rule ID 0 //
     /* 1117 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
     /* 1120 */   // MIs[0] root
     /* 1120 */   // No operand predicates
     /* 1120 */   // MIs[0] sub
     /* 1120 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1124 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1128 */   // MIs[1] Operand 1
     /* 1128 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
     /* 1132 */   // MIs[1] A
     /* 1132 */   // No operand predicates
     /* 1132 */   // MIs[0] B
     /* 1132 */   // No operand predicates
     /* 1132 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1134 */   // Combiner Rule #0: ZeroMinusAPlusB
     /* 1134 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1137 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1139 */   GIR_RootToRootCopy, /*OpIdx*/2, // B
     /* 1141 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
     /* 1145 */   GIR_EraseRootFromParent_Done,
     /* 1146 */ // Label 105: @1146
     /* 1146 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(1183), // Rule ID 12 //
     /* 1151 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
     /* 1154 */   // MIs[0] root
     /* 1154 */   // No operand predicates
     /* 1154 */   // MIs[0] sub
     /* 1154 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1158 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1162 */   // MIs[1] A
     /* 1162 */   // No operand predicates
     /* 1162 */   // MIs[1] c1
     /* 1162 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1166 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1170 */   // MIs[2] imm1
     /* 1170 */   // No operand predicates
     /* 1170 */   // MIs[0] c2
     /* 1170 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1174 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1178 */   // MIs[3] imm2
     /* 1178 */   // No operand predicates
     /* 1178 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1180 */   // Combiner Rule #12: AMinusC1PlusC2
     /* 1180 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
     /* 1183 */ // Label 106: @1183
     /* 1183 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(1217), // Rule ID 3 //
     /* 1188 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
     /* 1191 */   // MIs[0] root
     /* 1191 */   // No operand predicates
     /* 1191 */   // MIs[0] sub
     /* 1191 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1195 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1199 */   // MIs[1] B
     /* 1199 */   // No operand predicates
     /* 1199 */   // MIs[1] A
     /* 1199 */   // No operand predicates
     /* 1199 */   // MIs[0] A
     /* 1199 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 1204 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1209 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1211 */   // Combiner Rule #3: BMinusAPlusA
     /* 1211 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1216 */   GIR_EraseRootFromParent_Done,
     /* 1217 */ // Label 107: @1217
     /* 1217 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(1251), // Rule ID 131 //
     /* 1222 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
     /* 1225 */   // MIs[0] dst
     /* 1225 */   // No operand predicates
     /* 1225 */   // MIs[0] __add_sub_reg_match_0.tmp
     /* 1225 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1229 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1233 */   // MIs[1] src
     /* 1233 */   // No operand predicates
     /* 1233 */   // MIs[1] __add_sub_reg_match_0.x
     /* 1233 */   // No operand predicates
     /* 1233 */   // MIs[0] __add_sub_reg_match_0.x
     /* 1233 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 1238 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1243 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1245 */   // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[1]]
     /* 1245 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1250 */   GIR_EraseRootFromParent_Done,
     /* 1251 */ // Label 108: @1251
     /* 1251 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(1296), // Rule ID 5 //
     /* 1256 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
     /* 1259 */   // MIs[0] root
     /* 1259 */   // No operand predicates
     /* 1259 */   // MIs[0] sub1
     /* 1259 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1263 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1267 */   // MIs[1] A
     /* 1267 */   // No operand predicates
     /* 1267 */   // MIs[1] B
     /* 1267 */   // No operand predicates
     /* 1267 */   // MIs[0] sub2
     /* 1267 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1271 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1275 */   // MIs[2] B
     /* 1275 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 1280 */   // MIs[2] C
     /* 1280 */   // No operand predicates
     /* 1280 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1282 */   // Combiner Rule #5: AMinusBPlusBMinusC
     /* 1282 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1285 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1287 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
     /* 1291 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
     /* 1295 */   GIR_EraseRootFromParent_Done,
     /* 1296 */ // Label 109: @1296
     /* 1296 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(1341), // Rule ID 4 //
     /* 1301 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
     /* 1304 */   // MIs[0] root
     /* 1304 */   // No operand predicates
     /* 1304 */   // MIs[0] sub1
     /* 1304 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1308 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1312 */   // MIs[1] A
     /* 1312 */   // No operand predicates
     /* 1312 */   // MIs[1] B
     /* 1312 */   // No operand predicates
     /* 1312 */   // MIs[0] sub2
     /* 1312 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1316 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1320 */   // MIs[2] C
     /* 1320 */   // No operand predicates
     /* 1320 */   // MIs[2] A
     /* 1320 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 1325 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1327 */   // Combiner Rule #4: AMinusBPlusCMinusA
     /* 1327 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1330 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1332 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
     /* 1336 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
     /* 1340 */   GIR_EraseRootFromParent_Done,
     /* 1341 */ // Label 110: @1341
     /* 1341 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(1376), // Rule ID 39 //
     /* 1346 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
     /* 1349 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 1355 */   // MIs[0] root
     /* 1355 */   // No operand predicates
     /* 1355 */   // MIs[0] left
     /* 1355 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1359 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 1363 */   // MIs[1] imm1
     /* 1363 */   // No operand predicates
     /* 1363 */   // MIs[0] right
     /* 1363 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1367 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 1371 */   // MIs[2] imm2
     /* 1371 */   // No operand predicates
     /* 1371 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1373 */   // Combiner Rule #37: add_of_vscale
     /* 1373 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
     /* 1376 */ // Label 111: @1376
     /* 1376 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(1410), // Rule ID 1 //
     /* 1381 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
     /* 1384 */   // MIs[0] root
     /* 1384 */   // No operand predicates
     /* 1384 */   // MIs[0] A
     /* 1384 */   // No operand predicates
     /* 1384 */   // MIs[0] sub
     /* 1384 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1388 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1392 */   // MIs[1] Operand 1
     /* 1392 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
     /* 1396 */   // MIs[1] B
     /* 1396 */   // No operand predicates
     /* 1396 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1398 */   // Combiner Rule #1: APlusZeroMinusB
     /* 1398 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1401 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1403 */   GIR_RootToRootCopy, /*OpIdx*/1, // A
     /* 1405 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
     /* 1409 */   GIR_EraseRootFromParent_Done,
     /* 1410 */ // Label 112: @1410
     /* 1410 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(1444), // Rule ID 2 //
     /* 1415 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
     /* 1418 */   // MIs[0] root
     /* 1418 */   // No operand predicates
     /* 1418 */   // MIs[0] A
     /* 1418 */   // No operand predicates
     /* 1418 */   // MIs[0] sub
     /* 1418 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1422 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1426 */   // MIs[1] B
     /* 1426 */   // No operand predicates
     /* 1426 */   // MIs[1] A
     /* 1426 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1431 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1436 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1438 */   // Combiner Rule #2: APlusBMinusB
     /* 1438 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1443 */   GIR_EraseRootFromParent_Done,
     /* 1444 */ // Label 113: @1444
     /* 1444 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1478), // Rule ID 130 //
     /* 1449 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
     /* 1452 */   // MIs[0] dst
     /* 1452 */   // No operand predicates
     /* 1452 */   // MIs[0] __add_sub_reg_match_0.x
     /* 1452 */   // No operand predicates
     /* 1452 */   // MIs[0] __add_sub_reg_match_0.tmp
     /* 1452 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1456 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1460 */   // MIs[1] src
     /* 1460 */   // No operand predicates
     /* 1460 */   // MIs[1] __add_sub_reg_match_0.x
     /* 1460 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1465 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1470 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1472 */   // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[0]]
     /* 1472 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 1477 */   GIR_EraseRootFromParent_Done,
     /* 1478 */ // Label 114: @1478
     /* 1478 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1523), // Rule ID 6 //
     /* 1483 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
     /* 1486 */   // MIs[0] root
     /* 1486 */   // No operand predicates
     /* 1486 */   // MIs[0] A
     /* 1486 */   // No operand predicates
     /* 1486 */   // MIs[0] sub1
     /* 1486 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1490 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1494 */   // MIs[1] B
     /* 1494 */   // No operand predicates
     /* 1494 */   // MIs[1] add1
     /* 1494 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1498 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1502 */   // MIs[2] A
     /* 1502 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1507 */   // MIs[2] C
     /* 1507 */   // No operand predicates
     /* 1507 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1509 */   // Combiner Rule #6: APlusBMinusAplusC
     /* 1509 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1512 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1514 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
     /* 1518 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
     /* 1522 */   GIR_EraseRootFromParent_Done,
     /* 1523 */ // Label 115: @1523
     /* 1523 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1568), // Rule ID 7 //
     /* 1528 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
     /* 1531 */   // MIs[0] root
     /* 1531 */   // No operand predicates
     /* 1531 */   // MIs[0] A
     /* 1531 */   // No operand predicates
     /* 1531 */   // MIs[0] sub1
     /* 1531 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1535 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1539 */   // MIs[1] B
     /* 1539 */   // No operand predicates
     /* 1539 */   // MIs[1] add1
     /* 1539 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1543 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1547 */   // MIs[2] C
     /* 1547 */   // No operand predicates
     /* 1547 */   // MIs[2] A
     /* 1547 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 1552 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 1554 */   // Combiner Rule #7: APlusBMinusCPlusA
     /* 1554 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1557 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 1559 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
     /* 1563 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
     /* 1567 */   GIR_EraseRootFromParent_Done,
     /* 1568 */ // Label 116: @1568
     /* 1568 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1591), // Rule ID 105 //
     /* 1573 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 1576 */   // MIs[0] dst
     /* 1576 */   // No operand predicates
     /* 1576 */   // MIs[0] lhs
     /* 1576 */   // No operand predicates
     /* 1576 */   // MIs[0] Operand 2
     /* 1576 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 1580 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 1585 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[1]]
     /* 1585 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 1590 */   GIR_EraseRootFromParent_Done,
     /* 1591 */ // Label 117: @1591
     /* 1591 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1602), // Rule ID 150 //
     /* 1596 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
     /* 1599 */   // MIs[0] root
     /* 1599 */   // No operand predicates
     /* 1599 */   // MIs[0] src1
     /* 1599 */   // No operand predicates
     /* 1599 */   // MIs[0] src2
     /* 1599 */   // No operand predicates
     /* 1599 */   // Combiner Rule #108: reassoc_comm_binops
     /* 1599 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
     /* 1602 */ // Label 118: @1602
     /* 1602 */ GIM_Reject,
     /* 1603 */ // Label 2: @1603
     /* 1603 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1614), // Rule ID 95 //
     /* 1608 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 1611 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_SUB'
     /* 1611 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 1614 */ // Label 119: @1614
     /* 1614 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1625), // Rule ID 245 //
     /* 1619 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 1622 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SUB'
     /* 1622 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 1625 */ // Label 120: @1625
     /* 1625 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1636), // Rule ID 282 //
     /* 1630 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 1633 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SUB'
     /* 1633 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 1636 */ // Label 121: @1636
     /* 1636 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1647), // Rule ID 314 //
     /* 1641 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
     /* 1644 */   // Combiner Rule #194: sub_add_reg; wip_match_opcode 'G_SUB'
     /* 1644 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
     /* 1647 */ // Label 122: @1647
     /* 1647 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1658), // Rule ID 348 //
     /* 1652 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
     /* 1655 */   // Combiner Rule #201: simplify_neg_minmax; wip_match_opcode 'G_SUB'
     /* 1655 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
     /* 1658 */ // Label 123: @1658
     /* 1658 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1695), // Rule ID 8 //
     /* 1663 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
     /* 1666 */   // MIs[0] root
     /* 1666 */   // No operand predicates
     /* 1666 */   // MIs[0] add
     /* 1666 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1670 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1674 */   // MIs[1] A
     /* 1674 */   // No operand predicates
     /* 1674 */   // MIs[1] c1
     /* 1674 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1678 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1682 */   // MIs[2] imm1
     /* 1682 */   // No operand predicates
     /* 1682 */   // MIs[0] c2
     /* 1682 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1686 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1690 */   // MIs[3] imm2
     /* 1690 */   // No operand predicates
     /* 1690 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1692 */   // Combiner Rule #8: APlusC1MinusC2
     /* 1692 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
     /* 1695 */ // Label 124: @1695
     /* 1695 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1732), // Rule ID 11 //
     /* 1700 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
     /* 1703 */   // MIs[0] root
     /* 1703 */   // No operand predicates
     /* 1703 */   // MIs[0] sub1
     /* 1703 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1707 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1711 */   // MIs[1] c1
     /* 1711 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 1715 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1719 */   // MIs[2] imm1
     /* 1719 */   // No operand predicates
     /* 1719 */   // MIs[1] A
     /* 1719 */   // No operand predicates
     /* 1719 */   // MIs[0] c2
     /* 1719 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1723 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1727 */   // MIs[3] imm2
     /* 1727 */   // No operand predicates
     /* 1727 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1729 */   // Combiner Rule #11: C1Minus2MinusC2
     /* 1729 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
     /* 1732 */ // Label 125: @1732
     /* 1732 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1769), // Rule ID 10 //
     /* 1737 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
     /* 1740 */   // MIs[0] root
     /* 1740 */   // No operand predicates
     /* 1740 */   // MIs[0] sub1
     /* 1740 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1744 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1748 */   // MIs[1] A
     /* 1748 */   // No operand predicates
     /* 1748 */   // MIs[1] c1
     /* 1748 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 1752 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1756 */   // MIs[2] imm1
     /* 1756 */   // No operand predicates
     /* 1756 */   // MIs[0] c2
     /* 1756 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 1760 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1764 */   // MIs[3] imm2
     /* 1764 */   // No operand predicates
     /* 1764 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1766 */   // Combiner Rule #10: AMinusC1MinusC2
     /* 1766 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
     /* 1769 */ // Label 126: @1769
     /* 1769 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1812), // Rule ID 160 //
     /* 1774 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
     /* 1777 */   // MIs[0] dst
     /* 1777 */   // No operand predicates
     /* 1777 */   // MIs[0] Operand 1
     /* 1777 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 1781 */   // MIs[0] and
     /* 1781 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1785 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
     /* 1789 */   // MIs[1] x
     /* 1789 */   // No operand predicates
     /* 1789 */   // MIs[1] Operand 2
     /* 1789 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
     /* 1793 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
     /* 1797 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1799 */   // Combiner Rule #118: neg_and_one_to_sext_inreg
     /* 1799 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
     /* 1802 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 1804 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 1808 */   GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
     /* 1811 */   GIR_EraseRootFromParent_Done,
     /* 1812 */ // Label 127: @1812
     /* 1812 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1849), // Rule ID 9 //
     /* 1817 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
     /* 1820 */   // MIs[0] root
     /* 1820 */   // No operand predicates
     /* 1820 */   // MIs[0] c2
     /* 1820 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 1824 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1828 */   // MIs[1] imm2
     /* 1828 */   // No operand predicates
     /* 1828 */   // MIs[0] add
     /* 1828 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 1832 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 1836 */   // MIs[2] A
     /* 1836 */   // No operand predicates
     /* 1836 */   // MIs[2] c1
     /* 1836 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
     /* 1840 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1844 */   // MIs[3] imm1
     /* 1844 */   // No operand predicates
     /* 1844 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 1846 */   // Combiner Rule #9: C2MinusAPlusC1
     /* 1846 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
     /* 1849 */ // Label 128: @1849
     /* 1849 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1876), // Rule ID 42 //
     /* 1854 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
     /* 1857 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 1863 */   // MIs[0] root
     /* 1863 */   // No operand predicates
     /* 1863 */   // MIs[0] x
     /* 1863 */   // No operand predicates
     /* 1863 */   // MIs[0] right
     /* 1863 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1867 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 1871 */   // MIs[1] imm
     /* 1871 */   // No operand predicates
     /* 1871 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1873 */   // Combiner Rule #40: sub_of_vscale
     /* 1873 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
     /* 1876 */ // Label 129: @1876
     /* 1876 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1899), // Rule ID 104 //
     /* 1881 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 1884 */   // MIs[0] dst
     /* 1884 */   // No operand predicates
     /* 1884 */   // MIs[0] lhs
     /* 1884 */   // No operand predicates
     /* 1884 */   // MIs[0] Operand 2
     /* 1884 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 1888 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 1893 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[0]]
     /* 1893 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 1898 */   GIR_EraseRootFromParent_Done,
     /* 1899 */ // Label 130: @1899
     /* 1899 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1920), // Rule ID 15 //
     /* 1904 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
     /* 1907 */   // MIs[0] d
     /* 1907 */   // No operand predicates
     /* 1907 */   // MIs[0] op1
     /* 1907 */   // No operand predicates
     /* 1907 */   // MIs[0] c
     /* 1907 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 1911 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 1915 */   // MIs[1] imm
     /* 1915 */   // No operand predicates
     /* 1915 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 1917 */   // Combiner Rule #15: sub_to_add
     /* 1917 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
     /* 1920 */ // Label 131: @1920
     /* 1920 */ GIM_Reject,
     /* 1921 */ // Label 3: @1921
     /* 1921 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1932), // Rule ID 78 //
     /* 1926 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
     /* 1929 */   // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_MUL'
     /* 1929 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
     /* 1932 */ // Label 132: @1932
     /* 1932 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1943), // Rule ID 242 //
     /* 1937 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 1940 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_MUL'
     /* 1940 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 1943 */ // Label 133: @1943
     /* 1943 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1954), // Rule ID 318 //
     /* 1948 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 1951 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
     /* 1951 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 1954 */ // Label 134: @1954
     /* 1954 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(1994), // Rule ID 17 //
     /* 1959 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
     /* 1962 */   // MIs[0] dst
     /* 1962 */   GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
     /* 1966 */   // MIs[0] x
     /* 1966 */   // No operand predicates
     /* 1966 */   // MIs[0] Operand 2
     /* 1966 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
     /* 1970 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 1973 */   GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
     /* 1983 */   // Combiner Rule #17: mul_by_neg_one
     /* 1983 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
     /* 1986 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 1988 */   GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
     /* 1991 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 1993 */   GIR_EraseRootFromParent_Done,
     /* 1994 */ // Label 135: @1994
     /* 1994 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(2029), // Rule ID 40 //
     /* 1999 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
     /* 2002 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 2008 */   // MIs[0] root
     /* 2008 */   // No operand predicates
     /* 2008 */   // MIs[0] left
     /* 2008 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2012 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 2016 */   // MIs[1] scale
     /* 2016 */   // No operand predicates
     /* 2016 */   // MIs[0] x
     /* 2016 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2020 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2024 */   // MIs[2] imm1
     /* 2024 */   // No operand predicates
     /* 2024 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2026 */   // Combiner Rule #38: mul_of_vscale
     /* 2026 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
     /* 2029 */ // Label 136: @2029
     /* 2029 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(2052), // Rule ID 123 //
     /* 2034 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
     /* 2037 */   // MIs[0] dst
     /* 2037 */   // No operand predicates
     /* 2037 */   // MIs[0] lhs
     /* 2037 */   // No operand predicates
     /* 2037 */   // MIs[0] zero
     /* 2037 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 2041 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 2046 */   // Combiner Rule #87: binop_right_to_zero
     /* 2046 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 2051 */   GIR_EraseRootFromParent_Done,
     /* 2052 */ // Label 137: @2052
     /* 2052 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2075), // Rule ID 128 //
     /* 2057 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
     /* 2060 */   // MIs[0] dst
     /* 2060 */   // No operand predicates
     /* 2060 */   // MIs[0] x
     /* 2060 */   // No operand predicates
     /* 2060 */   // MIs[0] Operand 2
     /* 2060 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
     /* 2064 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2069 */   // Combiner Rule #92: right_identity_one_int
     /* 2069 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2074 */   GIR_EraseRootFromParent_Done,
     /* 2075 */ // Label 138: @2075
     /* 2075 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2086), // Rule ID 14 //
     /* 2080 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
     /* 2083 */   // MIs[0] d
     /* 2083 */   // No operand predicates
     /* 2083 */   // MIs[0] op1
     /* 2083 */   // No operand predicates
     /* 2083 */   // MIs[0] op2
     /* 2083 */   // No operand predicates
     /* 2083 */   // Combiner Rule #14: mul_to_shl
     /* 2083 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
     /* 2086 */ // Label 139: @2086
     /* 2086 */ GIM_Reject,
     /* 2087 */ // Label 4: @2087
     /* 2087 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2098), // Rule ID 119 //
     /* 2092 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2095 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SDIV'
     /* 2095 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2098 */ // Label 140: @2098
     /* 2098 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2109), // Rule ID 213 //
     /* 2103 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2106 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
     /* 2106 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2109 */ // Label 141: @2109
     /* 2109 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2120), // Rule ID 248 //
     /* 2114 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2117 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SDIV'
     /* 2117 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2120 */ // Label 142: @2120
     /* 2120 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2131), // Rule ID 287 //
     /* 2125 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2128 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SDIV'
     /* 2128 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2131 */ // Label 143: @2131
     /* 2131 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2148), // Rule ID 310 //
     /* 2136 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
     /* 2139 */   GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
     /* 2145 */   // MIs[0] dst
     /* 2145 */   // No operand predicates
     /* 2145 */   // MIs[0] x
     /* 2145 */   // No operand predicates
     /* 2145 */   // MIs[0] y
     /* 2145 */   // No operand predicates
     /* 2145 */   // Combiner Rule #190: sdiv_by_pow2
     /* 2145 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
     /* 2148 */ // Label 144: @2148
     /* 2148 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2159), // Rule ID 312 //
     /* 2153 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
     /* 2156 */   // MIs[0] dst
     /* 2156 */   // No operand predicates
     /* 2156 */   // MIs[0] x
     /* 2156 */   // No operand predicates
     /* 2156 */   // MIs[0] y
     /* 2156 */   // No operand predicates
     /* 2156 */   // Combiner Rule #192: sdiv_by_const
     /* 2156 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
     /* 2159 */ // Label 145: @2159
     /* 2159 */ GIM_Reject,
     /* 2160 */ // Label 5: @2160
     /* 2160 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2171), // Rule ID 81 //
     /* 2165 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 2168 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
     /* 2168 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 2171 */ // Label 146: @2171
     /* 2171 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2182), // Rule ID 120 //
     /* 2176 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2179 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UDIV'
     /* 2179 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2182 */ // Label 147: @2182
     /* 2182 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2193), // Rule ID 214 //
     /* 2187 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2190 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
     /* 2190 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2193 */ // Label 148: @2193
     /* 2193 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2204), // Rule ID 247 //
     /* 2198 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2201 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UDIV'
     /* 2201 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2204 */ // Label 149: @2204
     /* 2204 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2215), // Rule ID 289 //
     /* 2209 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2212 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UDIV'
     /* 2212 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2215 */ // Label 150: @2215
     /* 2215 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2232), // Rule ID 309 //
     /* 2220 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
     /* 2223 */   GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
     /* 2229 */   // MIs[0] dst
     /* 2229 */   // No operand predicates
     /* 2229 */   // MIs[0] x
     /* 2229 */   // No operand predicates
     /* 2229 */   // MIs[0] y
     /* 2229 */   // No operand predicates
     /* 2229 */   // Combiner Rule #189: udiv_by_pow2
     /* 2229 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
     /* 2232 */ // Label 151: @2232
     /* 2232 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2243), // Rule ID 311 //
     /* 2237 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
     /* 2240 */   // MIs[0] dst
     /* 2240 */   // No operand predicates
     /* 2240 */   // MIs[0] x
     /* 2240 */   // No operand predicates
     /* 2240 */   // MIs[0] y
     /* 2240 */   // No operand predicates
     /* 2240 */   // Combiner Rule #191: udiv_by_const
     /* 2240 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
     /* 2243 */ // Label 152: @2243
     /* 2243 */ GIM_Reject,
     /* 2244 */ // Label 6: @2244
     /* 2244 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2255), // Rule ID 121 //
     /* 2249 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2252 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SREM'
     /* 2252 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2255 */ // Label 153: @2255
     /* 2255 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2266), // Rule ID 215 //
     /* 2260 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2263 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_SREM'
     /* 2263 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2266 */ // Label 154: @2266
     /* 2266 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2277), // Rule ID 250 //
     /* 2271 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2274 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SREM'
     /* 2274 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2277 */ // Label 155: @2277
     /* 2277 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2288), // Rule ID 288 //
     /* 2282 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2285 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SREM'
     /* 2285 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2288 */ // Label 156: @2288
     /* 2288 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2299), // Rule ID 308 //
     /* 2293 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
     /* 2296 */   // MIs[0] dst
     /* 2296 */   // No operand predicates
     /* 2296 */   // MIs[0] x
     /* 2296 */   // No operand predicates
     /* 2296 */   // MIs[0] y
     /* 2296 */   // No operand predicates
     /* 2296 */   // Combiner Rule #188: srem_by_const
     /* 2296 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
     /* 2299 */ // Label 157: @2299
     /* 2299 */ GIM_Reject,
     /* 2300 */ // Label 7: @2300
     /* 2300 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2311), // Rule ID 82 //
     /* 2305 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 2308 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
     /* 2308 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 2311 */ // Label 158: @2311
     /* 2311 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2322), // Rule ID 122 //
     /* 2316 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 2319 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UREM'
     /* 2319 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 2322 */ // Label 159: @2322
     /* 2322 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2333), // Rule ID 171 //
     /* 2327 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
     /* 2330 */   // Combiner Rule #129: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
     /* 2330 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
     /* 2333 */ // Label 160: @2333
     /* 2333 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(2344), // Rule ID 216 //
     /* 2338 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
     /* 2341 */   // Combiner Rule #155: div_rem_to_divrem; wip_match_opcode 'G_UREM'
     /* 2341 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
     /* 2344 */ // Label 161: @2344
     /* 2344 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(2355), // Rule ID 249 //
     /* 2349 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2352 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UREM'
     /* 2352 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2355 */ // Label 162: @2355
     /* 2355 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(2366), // Rule ID 290 //
     /* 2360 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2363 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UREM'
     /* 2363 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2366 */ // Label 163: @2366
     /* 2366 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(2377), // Rule ID 307 //
     /* 2371 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
     /* 2374 */   // MIs[0] dst
     /* 2374 */   // No operand predicates
     /* 2374 */   // MIs[0] x
     /* 2374 */   // No operand predicates
     /* 2374 */   // MIs[0] y
     /* 2374 */   // No operand predicates
     /* 2374 */   // Combiner Rule #187: urem_by_const
     /* 2374 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
     /* 2377 */ // Label 164: @2377
     /* 2377 */ GIM_Reject,
     /* 2378 */ // Label 8: @2378
     /* 2378 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(2389), // Rule ID 73 //
     /* 2383 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
     /* 2386 */   // Combiner Rule #69: load_and_mask; wip_match_opcode 'G_AND'
     /* 2386 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
     /* 2389 */ // Label 165: @2389
     /* 2389 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(2400), // Rule ID 77 //
     /* 2394 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
     /* 2397 */   // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_AND'
     /* 2397 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
     /* 2400 */ // Label 166: @2400
     /* 2400 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(2411), // Rule ID 143 //
     /* 2405 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 2408 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
     /* 2408 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 2411 */ // Label 167: @2411
     /* 2411 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(2422), // Rule ID 163 //
     /* 2416 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
     /* 2419 */   // Combiner Rule #121: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
     /* 2419 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
     /* 2422 */ // Label 168: @2422
     /* 2422 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(2433), // Rule ID 168 //
     /* 2427 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
     /* 2430 */   // Combiner Rule #126: redundant_and; wip_match_opcode 'G_AND'
     /* 2430 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
     /* 2433 */ // Label 169: @2433
     /* 2433 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(2444), // Rule ID 186 //
     /* 2438 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
     /* 2441 */   // Combiner Rule #144: overlapping_and; wip_match_opcode 'G_AND'
     /* 2441 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
     /* 2444 */ // Label 170: @2444
     /* 2444 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(2455), // Rule ID 239 //
     /* 2449 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2452 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_AND'
     /* 2452 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2455 */ // Label 171: @2455
     /* 2455 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(2466), // Rule ID 272 //
     /* 2460 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
     /* 2463 */   // Combiner Rule #177: and_or_disjoint_mask; wip_match_opcode 'G_AND'
     /* 2463 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
     /* 2466 */ // Label 172: @2466
     /* 2466 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(2477), // Rule ID 284 //
     /* 2471 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2474 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_AND'
     /* 2474 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2477 */ // Label 173: @2477
     /* 2477 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(2488), // Rule ID 319 //
     /* 2482 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 2485 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
     /* 2485 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 2488 */ // Label 174: @2488
     /* 2488 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(2499), // Rule ID 346 //
     /* 2493 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
     /* 2496 */   // Combiner Rule #199: match_ands; wip_match_opcode 'G_AND'
     /* 2496 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
     /* 2499 */ // Label 175: @2499
     /* 2499 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(2597), // Rule ID 156 //
     /* 2504 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
     /* 2507 */   // MIs[0] root
     /* 2507 */   // No operand predicates
     /* 2507 */   // MIs[0] d1
     /* 2507 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2511 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 2515 */   // MIs[1] p
     /* 2515 */   // No operand predicates
     /* 2515 */   // MIs[1] s1
     /* 2515 */   GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
     /* 2519 */   // MIs[1] Operand 3
     /* 2519 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
     /* 2523 */   // MIs[0] d2
     /* 2523 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2527 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 2531 */   // MIs[2] p
     /* 2531 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 2536 */   // MIs[2] s2
     /* 2536 */   // No operand predicates
     /* 2536 */   // MIs[2] Operand 3
     /* 2536 */   GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
     /* 2540 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
     /* 2544 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 2546 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 2549 */   GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
     /* 2559 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 2562 */   // Combiner Rule #114: double_icmp_zero_and_combine
     /* 2562 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 2565 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2570 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
     /* 2574 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
     /* 2578 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 2582 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
     /* 2586 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
     /* 2590 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 2593 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
     /* 2596 */   GIR_EraseRootFromParent_Done,
     /* 2597 */ // Label 176: @2597
     /* 2597 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(2634), // Rule ID 232 //
     /* 2602 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
     /* 2605 */   // MIs[0] root
     /* 2605 */   // No operand predicates
     /* 2605 */   // MIs[0] shift
     /* 2605 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2609 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 2613 */   // MIs[1] x
     /* 2613 */   // No operand predicates
     /* 2613 */   // MIs[1] lsb
     /* 2613 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 2617 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2621 */   // MIs[2] imm1
     /* 2621 */   // No operand predicates
     /* 2621 */   // MIs[0] mask
     /* 2621 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
     /* 2625 */   GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 2629 */   // MIs[3] imm2
     /* 2629 */   // No operand predicates
     /* 2629 */   GIM_CheckIsSafeToFold, /*NumInsns*/3,
     /* 2631 */   // Combiner Rule #167: bitfield_extract_from_and
     /* 2631 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
     /* 2634 */ // Label 177: @2634
     /* 2634 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(2748), // Rule ID 381 //
     /* 2639 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
     /* 2642 */   GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
     /* 2645 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
     /* 2648 */   // MIs[0] dst
     /* 2648 */   // No operand predicates
     /* 2648 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
     /* 2652 */   GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
     /* 2655 */   GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
     /* 2658 */   GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
     /* 2661 */   GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
     /* 2664 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
     /* 2667 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
     /* 2670 */   // Combiner Rule #232: combine_and_s64_with_s32_mask
     /* 2670 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 2673 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2678 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2683 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 2685 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 2689 */   GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2694 */   GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2699 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
     /* 2703 */   GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
     /* 2707 */   GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2712 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
     /* 2715 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 2718 */   GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
     /* 2722 */   GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2727 */   GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
     /* 2730 */   GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
     /* 2733 */   GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 2737 */   GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 2741 */   GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
     /* 2744 */   GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
     /* 2747 */   GIR_EraseRootFromParent_Done,
     /* 2748 */ // Label 178: @2748
     /* 2748 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(2772), // Rule ID 114 //
     /* 2753 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
     /* 2756 */   // MIs[0] dst
     /* 2756 */   // No operand predicates
     /* 2756 */   // MIs[0] src
     /* 2756 */   // No operand predicates
     /* 2756 */   // MIs[0] src
     /* 2756 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 2761 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2766 */   // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[0]]
     /* 2766 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2771 */   GIR_EraseRootFromParent_Done,
     /* 2772 */ // Label 179: @2772
     /* 2772 */ GIM_Reject,
     /* 2773 */ // Label 9: @2773
     /* 2773 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(2784), // Rule ID 79 //
     /* 2778 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
     /* 2781 */   // Combiner Rule #73: undef_to_negative_one; wip_match_opcode 'G_OR'
     /* 2781 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
     /* 2784 */ // Label 180: @2784
     /* 2784 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(2795), // Rule ID 144 //
     /* 2789 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 2792 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
     /* 2792 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 2795 */ // Label 181: @2795
     /* 2795 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(2806), // Rule ID 170 //
     /* 2800 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
     /* 2803 */   // Combiner Rule #128: redundant_or; wip_match_opcode 'G_OR'
     /* 2803 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
     /* 2806 */ // Label 182: @2806
     /* 2806 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(2817), // Rule ID 212 //
     /* 2811 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
     /* 2814 */   // Combiner Rule #154: load_or_combine; wip_match_opcode 'G_OR'
     /* 2814 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
     /* 2817 */ // Label 183: @2817
     /* 2817 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(2828), // Rule ID 217 //
     /* 2822 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
     /* 2825 */   // Combiner Rule #156: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
     /* 2825 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
     /* 2828 */ // Label 184: @2828
     /* 2828 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(2839), // Rule ID 243 //
     /* 2833 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 2836 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_OR'
     /* 2836 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 2839 */ // Label 185: @2839
     /* 2839 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(2850), // Rule ID 285 //
     /* 2844 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 2847 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_OR'
     /* 2847 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 2850 */ // Label 186: @2850
     /* 2850 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(2861), // Rule ID 320 //
     /* 2855 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 2858 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
     /* 2858 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 2861 */ // Label 187: @2861
     /* 2861 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(2872), // Rule ID 347 //
     /* 2866 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
     /* 2869 */   // Combiner Rule #200: match_ors; wip_match_opcode 'G_OR'
     /* 2869 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
     /* 2872 */ // Label 188: @2872
     /* 2872 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(2959), // Rule ID 383 //
     /* 2877 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
     /* 2880 */   GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
     /* 2883 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
     /* 2886 */   // MIs[0] dst
     /* 2886 */   // No operand predicates
     /* 2886 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2890 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 2894 */   GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
     /* 2898 */   GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
     /* 2902 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 2904 */   GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
     /* 2907 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 2910 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 2913 */   // Combiner Rule #233: combine_or_s64_s32 @ [dst[1]]
     /* 2913 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 2916 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2921 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2926 */   GIR_RootToRootCopy, /*OpIdx*/2, // x
     /* 2928 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 2932 */   GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 2937 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 2940 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
     /* 2944 */   GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 2948 */   GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 2952 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 2955 */   GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
     /* 2958 */   GIR_EraseRootFromParent_Done,
     /* 2959 */ // Label 189: @2959
     /* 2959 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3006), // Rule ID 224 //
     /* 2964 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
     /* 2967 */   // MIs[0] root
     /* 2967 */   // No operand predicates
     /* 2967 */   // MIs[0] out1
     /* 2967 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 2971 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
     /* 2975 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 2975 */   // No operand predicates
     /* 2975 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
     /* 2975 */   // No operand predicates
     /* 2975 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 2975 */   // No operand predicates
     /* 2975 */   // MIs[0] out2
     /* 2975 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 2979 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 2983 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 2983 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 2988 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 2988 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 2993 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 2998 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3000 */   // Combiner Rule #161: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
     /* 3000 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3005 */   GIR_EraseRootFromParent_Done,
     /* 3006 */ // Label 190: @3006
     /* 3006 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3053), // Rule ID 226 //
     /* 3011 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
     /* 3014 */   // MIs[0] root
     /* 3014 */   // No operand predicates
     /* 3014 */   // MIs[0] out1
     /* 3014 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3018 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
     /* 3022 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
     /* 3022 */   // No operand predicates
     /* 3022 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3022 */   // No operand predicates
     /* 3022 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3022 */   // No operand predicates
     /* 3022 */   // MIs[0] out2
     /* 3022 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3026 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 3030 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3030 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 3035 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3035 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 3040 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3045 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3047 */   // Combiner Rule #162: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
     /* 3047 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3052 */   GIR_EraseRootFromParent_Done,
     /* 3053 */ // Label 191: @3053
     /* 3053 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3151), // Rule ID 157 //
     /* 3058 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
     /* 3061 */   // MIs[0] root
     /* 3061 */   // No operand predicates
     /* 3061 */   // MIs[0] d1
     /* 3061 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3065 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 3069 */   // MIs[1] p
     /* 3069 */   // No operand predicates
     /* 3069 */   // MIs[1] s1
     /* 3069 */   GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
     /* 3073 */   // MIs[1] Operand 3
     /* 3073 */   GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
     /* 3077 */   // MIs[0] d2
     /* 3077 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3081 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 3085 */   // MIs[2] p
     /* 3085 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3090 */   // MIs[2] s2
     /* 3090 */   // No operand predicates
     /* 3090 */   // MIs[2] Operand 3
     /* 3090 */   GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
     /* 3094 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
     /* 3098 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3100 */   GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 3103 */   GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
     /* 3113 */   GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 3116 */   // Combiner Rule #115: double_icmp_zero_or_combine
     /* 3116 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 3119 */   GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3124 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
     /* 3128 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
     /* 3132 */   GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 3136 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
     /* 3140 */   GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
     /* 3144 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 3147 */   GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
     /* 3150 */   GIR_EraseRootFromParent_Done,
     /* 3151 */ // Label 192: @3151
     /* 3151 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3198), // Rule ID 227 //
     /* 3156 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
     /* 3159 */   // MIs[0] root
     /* 3159 */   // No operand predicates
     /* 3159 */   // MIs[0] out2
     /* 3159 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3163 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 3167 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3167 */   // No operand predicates
     /* 3167 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3167 */   // No operand predicates
     /* 3167 */   // MIs[0] out1
     /* 3167 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3171 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
     /* 3175 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
     /* 3175 */   // No operand predicates
     /* 3175 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
     /* 3175 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3180 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
     /* 3180 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 3185 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3190 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3192 */   // Combiner Rule #162: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
     /* 3192 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3197 */   GIR_EraseRootFromParent_Done,
     /* 3198 */ // Label 193: @3198
     /* 3198 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3245), // Rule ID 225 //
     /* 3203 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
     /* 3206 */   // MIs[0] root
     /* 3206 */   // No operand predicates
     /* 3206 */   // MIs[0] out2
     /* 3206 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3210 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 3214 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 3214 */   // No operand predicates
     /* 3214 */   // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 3214 */   // No operand predicates
     /* 3214 */   // MIs[0] out1
     /* 3214 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 3218 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
     /* 3222 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
     /* 3222 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
     /* 3227 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
     /* 3227 */   // No operand predicates
     /* 3227 */   // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
     /* 3227 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 3232 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3237 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 3239 */   // Combiner Rule #161: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
     /* 3239 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
     /* 3244 */   GIR_EraseRootFromParent_Done,
     /* 3245 */ // Label 194: @3245
     /* 3245 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3446),
     /* 3250 */   GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
     /* 3253 */   GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
     /* 3256 */   GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3337), // Rule ID 382 //
     /* 3261 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
     /* 3264 */     // MIs[0] dst
     /* 3264 */     // No operand predicates
     /* 3264 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 3268 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 3272 */     GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
     /* 3276 */     GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
     /* 3280 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3282 */     GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
     /* 3285 */     GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
     /* 3288 */     GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
     /* 3291 */     // Combiner Rule #233: combine_or_s64_s32 @ [dst[0]]
     /* 3291 */     GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 3294 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3299 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3304 */     GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 3306 */     GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 3310 */     GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3315 */     GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
     /* 3318 */     GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
     /* 3322 */     GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 3326 */     GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 3330 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 3333 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
     /* 3336 */     GIR_EraseRootFromParent_Done,
     /* 3337 */   // Label 196: @3337
     /* 3337 */   GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3445), // Rule ID 380 //
     /* 3342 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
     /* 3345 */     // MIs[0] dst
     /* 3345 */     // No operand predicates
     /* 3345 */     GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
     /* 3349 */     GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
     /* 3352 */     GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
     /* 3355 */     GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
     /* 3358 */     GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
     /* 3361 */     GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
     /* 3364 */     GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
     /* 3367 */     // Combiner Rule #231: combine_or_s64_with_s32_mask
     /* 3367 */     GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 3370 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3375 */     GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3380 */     GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 3382 */     GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
     /* 3386 */     GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3391 */     GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3396 */     GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
     /* 3400 */     GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 3404 */     GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3409 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
     /* 3412 */     GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
     /* 3415 */     GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
     /* 3419 */     GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
     /* 3424 */     GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
     /* 3427 */     GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
     /* 3430 */     GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
     /* 3434 */     GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
     /* 3438 */     GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
     /* 3441 */     GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
     /* 3444 */     GIR_EraseRootFromParent_Done,
     /* 3445 */   // Label 197: @3445
     /* 3445 */   GIM_Reject,
     /* 3446 */ // Label 195: @3446
     /* 3446 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3470), // Rule ID 115 //
     /* 3451 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
     /* 3454 */   // MIs[0] dst
     /* 3454 */   // No operand predicates
     /* 3454 */   // MIs[0] src
     /* 3454 */   // No operand predicates
     /* 3454 */   // MIs[0] src
     /* 3454 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 3459 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3464 */   // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[1]]
     /* 3464 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3469 */   GIR_EraseRootFromParent_Done,
     /* 3470 */ // Label 198: @3470
     /* 3470 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3493), // Rule ID 106 //
     /* 3475 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 3478 */   // MIs[0] dst
     /* 3478 */   // No operand predicates
     /* 3478 */   // MIs[0] lhs
     /* 3478 */   // No operand predicates
     /* 3478 */   // MIs[0] Operand 2
     /* 3478 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 3482 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3487 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[2]]
     /* 3487 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3492 */   GIR_EraseRootFromParent_Done,
     /* 3493 */ // Label 199: @3493
     /* 3493 */ GIM_Reject,
     /* 3494 */ // Label 10: @3494
     /* 3494 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3505), // Rule ID 96 //
     /* 3499 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
     /* 3502 */   // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_XOR'
     /* 3502 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
     /* 3505 */ // Label 200: @3505
     /* 3505 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3516), // Rule ID 145 //
     /* 3510 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
     /* 3513 */   // Combiner Rule #105: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
     /* 3513 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
     /* 3516 */ // Label 201: @3516
     /* 3516 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3527), // Rule ID 175 //
     /* 3521 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
     /* 3524 */   // Combiner Rule #133: not_cmp_fold; wip_match_opcode 'G_XOR'
     /* 3524 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
     /* 3527 */ // Label 202: @3527
     /* 3527 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3538), // Rule ID 200 //
     /* 3532 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
     /* 3535 */   // Combiner Rule #150: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
     /* 3535 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
     /* 3538 */ // Label 203: @3538
     /* 3538 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3549), // Rule ID 246 //
     /* 3543 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 3546 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_XOR'
     /* 3546 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 3549 */ // Label 204: @3549
     /* 3549 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3560), // Rule ID 286 //
     /* 3554 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 3557 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_XOR'
     /* 3557 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 3560 */ // Label 205: @3560
     /* 3560 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3571), // Rule ID 321 //
     /* 3565 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 3568 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
     /* 3568 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 3571 */ // Label 206: @3571
     /* 3571 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3594), // Rule ID 107 //
     /* 3576 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 3579 */   // MIs[0] dst
     /* 3579 */   // No operand predicates
     /* 3579 */   // MIs[0] lhs
     /* 3579 */   // No operand predicates
     /* 3579 */   // MIs[0] Operand 2
     /* 3579 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 3583 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3588 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[3]]
     /* 3588 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3593 */   GIR_EraseRootFromParent_Done,
     /* 3594 */ // Label 207: @3594
     /* 3594 */ GIM_Reject,
     /* 3595 */ // Label 11: @3595
     /* 3595 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3606), // Rule ID 141 //
     /* 3600 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
     /* 3603 */   // Combiner Rule #103: extend_through_phis; wip_match_opcode 'G_PHI'
     /* 3603 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
     /* 3606 */ // Label 208: @3606
     /* 3606 */ GIM_Reject,
     /* 3607 */ // Label 12: @3607
     /* 3607 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(3618), // Rule ID 357 //
     /* 3612 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
     /* 3615 */   // Combiner Rule #210: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3615 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
     /* 3618 */ // Label 209: @3618
     /* 3618 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(3629), // Rule ID 358 //
     /* 3623 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
     /* 3626 */   // Combiner Rule #211: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3626 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
     /* 3629 */ // Label 210: @3629
     /* 3629 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(3640), // Rule ID 360 //
     /* 3634 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
     /* 3637 */   // Combiner Rule #213: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3637 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
     /* 3640 */ // Label 211: @3640
     /* 3640 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(3651), // Rule ID 361 //
     /* 3645 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
     /* 3648 */   // Combiner Rule #214: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3648 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
     /* 3651 */ // Label 212: @3651
     /* 3651 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(3662), // Rule ID 362 //
     /* 3656 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
     /* 3659 */   // Combiner Rule #215: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3659 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
     /* 3662 */ // Label 213: @3662
     /* 3662 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(3673), // Rule ID 363 //
     /* 3667 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
     /* 3670 */   // Combiner Rule #216: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
     /* 3670 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
     /* 3673 */ // Label 214: @3673
     /* 3673 */ GIM_Reject,
     /* 3674 */ // Label 13: @3674
     /* 3674 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(3685), // Rule ID 359 //
     /* 3679 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
     /* 3682 */   // Combiner Rule #212: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES'
     /* 3682 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
     /* 3685 */ // Label 215: @3685
     /* 3685 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(3747),
     /* 3690 */   GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
     /* 3693 */   GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(3714), // Rule ID 364 //
     /* 3698 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
     /* 3701 */     // MIs[0] root
     /* 3701 */     // No operand predicates
     /* 3701 */     // MIs[0] x
     /* 3701 */     // No operand predicates
     /* 3701 */     // MIs[0] undef
     /* 3701 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 3705 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3709 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3711 */     // Combiner Rule #217: merge_of_x_and_undef
     /* 3711 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
     /* 3714 */   // Label 217: @3714
     /* 3714 */   GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(3746), // Rule ID 365 //
     /* 3719 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
     /* 3722 */     // MIs[0] root
     /* 3722 */     // No operand predicates
     /* 3722 */     // MIs[0] x
     /* 3722 */     // No operand predicates
     /* 3722 */     // MIs[0] zero
     /* 3722 */     GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 3726 */     GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 3730 */     // MIs[1] Operand 1
     /* 3730 */     GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
     /* 3741 */     GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3743 */     // Combiner Rule #218: merge_of_x_and_zero
     /* 3743 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
     /* 3746 */   // Label 218: @3746
     /* 3746 */   GIM_Reject,
     /* 3747 */ // Label 216: @3747
     /* 3747 */ GIM_Reject,
     /* 3748 */ // Label 14: @3748
     /* 3748 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(3759), // Rule ID 69 //
     /* 3753 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
     /* 3756 */   // Combiner Rule #67: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
     /* 3756 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
     /* 3759 */ // Label 219: @3759
     /* 3759 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(3770), // Rule ID 98 //
     /* 3764 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
     /* 3767 */   // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
     /* 3767 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
     /* 3770 */ // Label 220: @3770
     /* 3770 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(3781), // Rule ID 133 //
     /* 3775 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
     /* 3778 */   // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
     /* 3778 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
     /* 3781 */ // Label 221: @3781
     /* 3781 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(3812),
     /* 3786 */   GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
     /* 3789 */   GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(3800), // Rule ID 356 //
     /* 3794 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
     /* 3797 */     // MIs[0] dst
     /* 3797 */     // No operand predicates
     /* 3797 */     // MIs[0] unused
     /* 3797 */     // No operand predicates
     /* 3797 */     // Combiner Rule #209: combine_use_vector_truncate
     /* 3797 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
     /* 3800 */   // Label 223: @3800
     /* 3800 */   GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(3811), // Rule ID 366 //
     /* 3805 */     GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
     /* 3808 */     // MIs[0] dst
     /* 3808 */     // No operand predicates
     /* 3808 */     // MIs[0] unused
     /* 3808 */     // No operand predicates
     /* 3808 */     // Combiner Rule #219: combine_build_unmerge
     /* 3808 */     GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
     /* 3811 */   // Label 224: @3811
     /* 3811 */   GIM_Reject,
     /* 3812 */ // Label 222: @3812
     /* 3812 */ GIM_Reject,
     /* 3813 */ // Label 15: @3813
     /* 3813 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(3824), // Rule ID 132 //
     /* 3818 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
     /* 3821 */   // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
     /* 3821 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
     /* 3824 */ // Label 225: @3824
     /* 3824 */ GIM_Reject,
     /* 3825 */ // Label 16: @3825
     /* 3825 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(3836), // Rule ID 349 //
     /* 3830 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
     /* 3833 */   // Combiner Rule #202: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
     /* 3833 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
     /* 3836 */ // Label 226: @3836
     /* 3836 */ GIM_Reject,
     /* 3837 */ // Label 17: @3837
     /* 3837 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(3858), // Rule ID 125 //
     /* 3842 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
     /* 3845 */   // MIs[0] dst
     /* 3845 */   // No operand predicates
     /* 3845 */   // MIs[0] t
     /* 3845 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3849 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
     /* 3853 */   // MIs[1] ptr
     /* 3853 */   // No operand predicates
     /* 3853 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3855 */   // Combiner Rule #89: i2p_to_p2i
     /* 3855 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
     /* 3858 */ // Label 227: @3858
     /* 3858 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(3879), // Rule ID 90 //
     /* 3863 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 3866 */   // MIs[0] dst
     /* 3866 */   // No operand predicates
     /* 3866 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 3866 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3870 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3874 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3876 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
     /* 3876 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 3879 */ // Label 228: @3879
     /* 3879 */ GIM_Reject,
     /* 3880 */ // Label 18: @3880
     /* 3880 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(3891), // Rule ID 124 //
     /* 3885 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
     /* 3888 */   // Combiner Rule #88: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
     /* 3888 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
     /* 3891 */ // Label 229: @3891
     /* 3891 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(3912), // Rule ID 91 //
     /* 3896 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 3899 */   // MIs[0] dst
     /* 3899 */   // No operand predicates
     /* 3899 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 3899 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3903 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3907 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3909 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
     /* 3909 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 3912 */ // Label 230: @3912
     /* 3912 */ GIM_Reject,
     /* 3913 */ // Label 19: @3913
     /* 3913 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(3934), // Rule ID 136 //
     /* 3918 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
     /* 3921 */   // MIs[0] dst
     /* 3921 */   // No operand predicates
     /* 3921 */   // MIs[0] src1
     /* 3921 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3925 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
     /* 3929 */   // MIs[1] src0
     /* 3929 */   // No operand predicates
     /* 3929 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3931 */   // Combiner Rule #98: bitcast_bitcast_fold
     /* 3931 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
     /* 3934 */ // Label 231: @3934
     /* 3934 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(3955), // Rule ID 88 //
     /* 3939 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 3942 */   // MIs[0] dst
     /* 3942 */   // No operand predicates
     /* 3942 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 3942 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3946 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 3950 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3952 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
     /* 3952 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 3955 */ // Label 232: @3955
     /* 3955 */ GIM_Reject,
     /* 3956 */ // Label 20: @3956
     /* 3956 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(3985), // Rule ID 18 //
     /* 3961 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 3964 */   // MIs[0] dst
     /* 3964 */   // No operand predicates
     /* 3964 */   // MIs[0] src
     /* 3964 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 3968 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
     /* 3972 */   // MIs[1] __idempotent_prop_match_0.x
     /* 3972 */   // No operand predicates
     /* 3972 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3977 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 3979 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[0]]
     /* 3979 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 3984 */   GIR_EraseRootFromParent_Done,
     /* 3985 */ // Label 233: @3985
     /* 3985 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(4008), // Rule ID 43 //
     /* 3990 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
     /* 3993 */   // MIs[0] root
     /* 3993 */   // No operand predicates
     /* 3993 */   // MIs[0] src
     /* 3993 */   // No operand predicates
     /* 3993 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
     /* 3997 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 4002 */   // Combiner Rule #41: freeze_of_non_undef_non_poison
     /* 4002 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 4007 */   GIR_EraseRootFromParent_Done,
     /* 4008 */ // Label 234: @4008
     /* 4008 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(4019), // Rule ID 44 //
     /* 4013 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
     /* 4016 */   // MIs[0] dst
     /* 4016 */   // No operand predicates
     /* 4016 */   // MIs[0] src
     /* 4016 */   // No operand predicates
     /* 4016 */   // Combiner Rule #42: push_freeze_to_prevent_poison_from_propagating
     /* 4016 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
     /* 4019 */ // Label 235: @4019
     /* 4019 */ GIM_Reject,
     /* 4020 */ // Label 21: @4020
     /* 4020 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(4031), // Rule ID 70 //
     /* 4025 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 4028 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_LOAD'
     /* 4028 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 4031 */ // Label 236: @4031
     /* 4031 */ GIM_Reject,
     /* 4032 */ // Label 22: @4032
     /* 4032 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(4043), // Rule ID 71 //
     /* 4037 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 4040 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_SEXTLOAD'
     /* 4040 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 4043 */ // Label 237: @4043
     /* 4043 */ GIM_Reject,
     /* 4044 */ // Label 23: @4044
     /* 4044 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(4055), // Rule ID 72 //
     /* 4049 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
     /* 4052 */   // Combiner Rule #68: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
     /* 4052 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
     /* 4055 */ // Label 238: @4055
     /* 4055 */ GIM_Reject,
     /* 4056 */ // Label 24: @4056
     /* 4056 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(4067), // Rule ID 100 //
     /* 4061 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
     /* 4064 */   // Combiner Rule #81: erase_undef_store; wip_match_opcode 'G_STORE'
     /* 4064 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
     /* 4067 */ // Label 239: @4067
     /* 4067 */ GIM_Reject,
     /* 4068 */ // Label 25: @4068
     /* 4068 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(4079), // Rule ID 126 //
     /* 4073 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
     /* 4076 */   // Combiner Rule #90: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
     /* 4076 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
     /* 4079 */ // Label 240: @4079
     /* 4079 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(4090), // Rule ID 263 //
     /* 4084 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 4087 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
     /* 4087 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 4090 */ // Label 241: @4090
     /* 4090 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(4111), // Rule ID 57 //
     /* 4095 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
     /* 4098 */   // MIs[0] root
     /* 4098 */   // No operand predicates
     /* 4098 */   // MIs[0] select
     /* 4098 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4102 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 4106 */   // MIs[1] cond
     /* 4106 */   // No operand predicates
     /* 4106 */   // MIs[1] true
     /* 4106 */   // No operand predicates
     /* 4106 */   // MIs[1] false
     /* 4106 */   // No operand predicates
     /* 4106 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4108 */   // Combiner Rule #55: select_of_anyext
     /* 4108 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 4111 */ // Label 242: @4111
     /* 4111 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(4132), // Rule ID 52 //
     /* 4116 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
     /* 4119 */   // MIs[0] root
     /* 4119 */   // No operand predicates
     /* 4119 */   // MIs[0] second
     /* 4119 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4123 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4127 */   // MIs[1] src
     /* 4127 */   // No operand predicates
     /* 4127 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4129 */   // Combiner Rule #50: anyext_of_anyext
     /* 4129 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4132 */ // Label 243: @4132
     /* 4132 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(4153), // Rule ID 54 //
     /* 4137 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
     /* 4140 */   // MIs[0] root
     /* 4140 */   // No operand predicates
     /* 4140 */   // MIs[0] second
     /* 4140 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4144 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 4148 */   // MIs[1] src
     /* 4148 */   // No operand predicates
     /* 4148 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4150 */   // Combiner Rule #52: anyext_of_sext
     /* 4150 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4153 */ // Label 244: @4153
     /* 4153 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(4174), // Rule ID 53 //
     /* 4158 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
     /* 4161 */   // MIs[0] root
     /* 4161 */   // No operand predicates
     /* 4161 */   // MIs[0] second
     /* 4161 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4165 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 4169 */   // MIs[1] src
     /* 4169 */   // No operand predicates
     /* 4169 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4171 */   // Combiner Rule #51: anyext_of_zext
     /* 4171 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4174 */ // Label 245: @4174
     /* 4174 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(4195), // Rule ID 89 //
     /* 4179 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 4182 */   // MIs[0] dst
     /* 4182 */   // No operand predicates
     /* 4182 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 4182 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4186 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 4190 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4192 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
     /* 4192 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 4195 */ // Label 246: @4195
     /* 4195 */ GIM_Reject,
     /* 4196 */ // Label 26: @4196
     /* 4196 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(4207), // Rule ID 134 //
     /* 4201 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
     /* 4204 */   // Combiner Rule #96: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
     /* 4204 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
     /* 4207 */ // Label 247: @4207
     /* 4207 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(4218), // Rule ID 135 //
     /* 4212 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
     /* 4215 */   // Combiner Rule #97: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
     /* 4215 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
     /* 4218 */ // Label 248: @4218
     /* 4218 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(4229), // Rule ID 174 //
     /* 4223 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
     /* 4226 */   // Combiner Rule #132: trunc_shift; wip_match_opcode 'G_TRUNC'
     /* 4226 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
     /* 4229 */ // Label 249: @4229
     /* 4229 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(4240), // Rule ID 377 //
     /* 4234 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
     /* 4237 */   // Combiner Rule #228: clamp_i64_to_i16; wip_match_opcode 'G_TRUNC'
     /* 4237 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
     /* 4240 */ // Label 250: @4240
     /* 4240 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(4261), // Rule ID 58 //
     /* 4245 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
     /* 4248 */   // MIs[0] root
     /* 4248 */   // No operand predicates
     /* 4248 */   // MIs[0] select
     /* 4248 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4252 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 4256 */   // MIs[1] cond
     /* 4256 */   // No operand predicates
     /* 4256 */   // MIs[1] true
     /* 4256 */   // No operand predicates
     /* 4256 */   // MIs[1] false
     /* 4256 */   // No operand predicates
     /* 4256 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4258 */   // Combiner Rule #56: select_of_truncate
     /* 4258 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 4261 */ // Label 251: @4261
     /* 4261 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(4290), // Rule ID 60 //
     /* 4266 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
     /* 4269 */   // MIs[0] root
     /* 4269 */   // No operand predicates
     /* 4269 */   // MIs[0] binop
     /* 4269 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4273 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
     /* 4277 */   // MIs[1] x
     /* 4277 */   // No operand predicates
     /* 4277 */   // MIs[1] const
     /* 4277 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4281 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4285 */   // MIs[2] imm
     /* 4285 */   // No operand predicates
     /* 4285 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4287 */   // Combiner Rule #58: narrow_binop_add
     /* 4287 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4290 */ // Label 252: @4290
     /* 4290 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(4319), // Rule ID 63 //
     /* 4295 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
     /* 4298 */   // MIs[0] root
     /* 4298 */   // No operand predicates
     /* 4298 */   // MIs[0] binop
     /* 4298 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4302 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
     /* 4306 */   // MIs[1] x
     /* 4306 */   // No operand predicates
     /* 4306 */   // MIs[1] const
     /* 4306 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4310 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4314 */   // MIs[2] imm
     /* 4314 */   // No operand predicates
     /* 4314 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4316 */   // Combiner Rule #61: narrow_binop_and
     /* 4316 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4319 */ // Label 253: @4319
     /* 4319 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(4348), // Rule ID 62 //
     /* 4324 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
     /* 4327 */   // MIs[0] root
     /* 4327 */   // No operand predicates
     /* 4327 */   // MIs[0] binop
     /* 4327 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4331 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
     /* 4335 */   // MIs[1] x
     /* 4335 */   // No operand predicates
     /* 4335 */   // MIs[1] const
     /* 4335 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4339 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4343 */   // MIs[2] imm
     /* 4343 */   // No operand predicates
     /* 4343 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4345 */   // Combiner Rule #60: narrow_binop_mul
     /* 4345 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4348 */ // Label 254: @4348
     /* 4348 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(4377), // Rule ID 64 //
     /* 4353 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
     /* 4356 */   // MIs[0] root
     /* 4356 */   // No operand predicates
     /* 4356 */   // MIs[0] binop
     /* 4356 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4360 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
     /* 4364 */   // MIs[1] x
     /* 4364 */   // No operand predicates
     /* 4364 */   // MIs[1] const
     /* 4364 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4368 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4372 */   // MIs[2] imm
     /* 4372 */   // No operand predicates
     /* 4372 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4374 */   // Combiner Rule #62: narrow_binop_or
     /* 4374 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4377 */ // Label 255: @4377
     /* 4377 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(4406), // Rule ID 61 //
     /* 4382 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
     /* 4385 */   // MIs[0] root
     /* 4385 */   // No operand predicates
     /* 4385 */   // MIs[0] binop
     /* 4385 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4389 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
     /* 4393 */   // MIs[1] x
     /* 4393 */   // No operand predicates
     /* 4393 */   // MIs[1] const
     /* 4393 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4397 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4401 */   // MIs[2] imm
     /* 4401 */   // No operand predicates
     /* 4401 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4403 */   // Combiner Rule #59: narrow_binop_sub
     /* 4403 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4406 */ // Label 256: @4406
     /* 4406 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(4438), // Rule ID 373 //
     /* 4411 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
     /* 4414 */   // MIs[0] dst
     /* 4414 */   // No operand predicates
     /* 4414 */   // MIs[0] min
     /* 4414 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4418 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
     /* 4422 */   // MIs[1] x
     /* 4422 */   // No operand predicates
     /* 4422 */   // MIs[1] y
     /* 4422 */   // No operand predicates
     /* 4422 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
     /* 4426 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4428 */   // Combiner Rule #224: trunc_usatu
     /* 4428 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
     /* 4431 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 4433 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 4437 */   GIR_EraseRootFromParent_Done,
     /* 4438 */ // Label 257: @4438
     /* 4438 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(4467), // Rule ID 65 //
     /* 4443 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
     /* 4446 */   // MIs[0] root
     /* 4446 */   // No operand predicates
     /* 4446 */   // MIs[0] binop
     /* 4446 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4450 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
     /* 4454 */   // MIs[1] x
     /* 4454 */   // No operand predicates
     /* 4454 */   // MIs[1] const
     /* 4454 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
     /* 4458 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4462 */   // MIs[2] imm
     /* 4462 */   // No operand predicates
     /* 4462 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 4464 */   // Combiner Rule #63: narrow_binop_xor
     /* 4464 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
     /* 4467 */ // Label 258: @4467
     /* 4467 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(4488), // Rule ID 47 //
     /* 4472 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
     /* 4475 */   // MIs[0] root
     /* 4475 */   // No operand predicates
     /* 4475 */   // MIs[0] ext
     /* 4475 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4479 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4483 */   // MIs[1] src
     /* 4483 */   // No operand predicates
     /* 4483 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4485 */   // Combiner Rule #45: truncate_of_anyext
     /* 4485 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 4488 */ // Label 259: @4488
     /* 4488 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(4512), // Rule ID 59 //
     /* 4493 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
     /* 4496 */   // MIs[0] root
     /* 4496 */   // No operand predicates
     /* 4496 */   // MIs[0] bv
     /* 4496 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4500 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
     /* 4504 */   GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
     /* 4507 */   // MIs[1] unused
     /* 4507 */   // No operand predicates
     /* 4507 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4509 */   // Combiner Rule #57: buildvector_of_truncate
     /* 4509 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
     /* 4512 */ // Label 260: @4512
     /* 4512 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(4533), // Rule ID 46 //
     /* 4517 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
     /* 4520 */   // MIs[0] root
     /* 4520 */   // No operand predicates
     /* 4520 */   // MIs[0] ext
     /* 4520 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4524 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 4528 */   // MIs[1] src
     /* 4528 */   // No operand predicates
     /* 4528 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4530 */   // Combiner Rule #44: truncate_of_sext
     /* 4530 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 4533 */ // Label 261: @4533
     /* 4533 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(4554), // Rule ID 45 //
     /* 4538 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
     /* 4541 */   // MIs[0] root
     /* 4541 */   // No operand predicates
     /* 4541 */   // MIs[0] ext
     /* 4541 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4545 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 4549 */   // MIs[1] src
     /* 4549 */   // No operand predicates
     /* 4549 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4551 */   // Combiner Rule #43: truncate_of_zext
     /* 4551 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
     /* 4554 */ // Label 262: @4554
     /* 4554 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(4575), // Rule ID 87 //
     /* 4559 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 4562 */   // MIs[0] dst
     /* 4562 */   // No operand predicates
     /* 4562 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 4562 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4566 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 4570 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4572 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
     /* 4572 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 4575 */ // Label 263: @4575
     /* 4575 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(4596), // Rule ID 66 //
     /* 4580 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
     /* 4583 */   // MIs[0] root
     /* 4583 */   // No operand predicates
     /* 4583 */   // MIs[0] int
     /* 4583 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4587 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 4591 */   // MIs[1] imm
     /* 4591 */   // No operand predicates
     /* 4591 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4593 */   // Combiner Rule #64: integer_of_truncate
     /* 4593 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
     /* 4596 */ // Label 264: @4596
     /* 4596 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(4607), // Rule ID 371 //
     /* 4601 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
     /* 4604 */   // MIs[0] dst
     /* 4604 */   // No operand predicates
     /* 4604 */   // MIs[0] src
     /* 4604 */   // No operand predicates
     /* 4604 */   // Combiner Rule #222: trunc_ssats
     /* 4604 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
     /* 4607 */ // Label 265: @4607
     /* 4607 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(4618), // Rule ID 372 //
     /* 4612 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
     /* 4615 */   // MIs[0] dst
     /* 4615 */   // No operand predicates
     /* 4615 */   // MIs[0] src
     /* 4615 */   // No operand predicates
     /* 4615 */   // Combiner Rule #223: trunc_ssatu
     /* 4615 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
     /* 4618 */ // Label 266: @4618
     /* 4618 */ GIM_Reject,
     /* 4619 */ // Label 27: @4619
     /* 4619 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(4651), // Rule ID 374 //
     /* 4624 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
     /* 4627 */   // MIs[0] dst
     /* 4627 */   // No operand predicates
     /* 4627 */   // MIs[0] src
     /* 4627 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4631 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
     /* 4635 */   // MIs[1] x
     /* 4635 */   // No operand predicates
     /* 4635 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
     /* 4639 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4641 */   // Combiner Rule #225: truncusatu_to_fptouisat
     /* 4641 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
     /* 4644 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 4646 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 4650 */   GIR_EraseRootFromParent_Done,
     /* 4651 */ // Label 267: @4651
     /* 4651 */ GIM_Reject,
     /* 4652 */ // Label 28: @4652
     /* 4652 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(4663), // Rule ID 262 //
     /* 4657 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 4660 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
     /* 4660 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 4663 */ // Label 268: @4663
     /* 4663 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(4684), // Rule ID 51 //
     /* 4668 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
     /* 4671 */   // MIs[0] root
     /* 4671 */   // No operand predicates
     /* 4671 */   // MIs[0] second
     /* 4671 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4675 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4679 */   // MIs[1] src
     /* 4679 */   // No operand predicates
     /* 4679 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4681 */   // Combiner Rule #49: sext_of_anyext
     /* 4681 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4684 */ // Label 269: @4684
     /* 4684 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(4705), // Rule ID 50 //
     /* 4689 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
     /* 4692 */   // MIs[0] root
     /* 4692 */   // No operand predicates
     /* 4692 */   // MIs[0] second
     /* 4692 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4696 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
     /* 4700 */   // MIs[1] src
     /* 4700 */   // No operand predicates
     /* 4700 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4702 */   // Combiner Rule #48: sext_of_sext
     /* 4702 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4705 */ // Label 270: @4705
     /* 4705 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(4726), // Rule ID 350 //
     /* 4710 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
     /* 4713 */   // MIs[0] root
     /* 4713 */   // No operand predicates
     /* 4713 */   // MIs[0] src
     /* 4713 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4717 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 4721 */   // MIs[1] x
     /* 4721 */   // No operand predicates
     /* 4721 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4723 */   // Combiner Rule #203: sext_trunc
     /* 4723 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
     /* 4726 */ // Label 271: @4726
     /* 4726 */ GIM_Reject,
     /* 4727 */ // Label 29: @4727
     /* 4727 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(4738), // Rule ID 161 //
     /* 4732 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
     /* 4735 */   // Combiner Rule #119: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
     /* 4735 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
     /* 4738 */ // Label 272: @4738
     /* 4738 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(4749), // Rule ID 169 //
     /* 4743 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
     /* 4746 */   // Combiner Rule #127: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
     /* 4746 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
     /* 4749 */ // Label 273: @4749
     /* 4749 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(4760), // Rule ID 231 //
     /* 4754 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
     /* 4757 */   // Combiner Rule #166: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
     /* 4757 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
     /* 4760 */ // Label 274: @4760
     /* 4760 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(4781), // Rule ID 55 //
     /* 4765 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
     /* 4768 */   // MIs[0] dst
     /* 4768 */   // No operand predicates
     /* 4768 */   // MIs[0] x
     /* 4768 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4772 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
     /* 4776 */   // MIs[1] src
     /* 4776 */   // No operand predicates
     /* 4776 */   // MIs[1] a
     /* 4776 */   // No operand predicates
     /* 4776 */   // MIs[0] b
     /* 4776 */   // No operand predicates
     /* 4776 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4778 */   // Combiner Rule #53: sext_inreg_of_sext_inreg
     /* 4778 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
     /* 4781 */ // Label 275: @4781
     /* 4781 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(4792), // Rule ID 173 //
     /* 4786 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
     /* 4789 */   // MIs[0] dst
     /* 4789 */   // No operand predicates
     /* 4789 */   // MIs[0] src
     /* 4789 */   // No operand predicates
     /* 4789 */   // MIs[0] imm
     /* 4789 */   // No operand predicates
     /* 4789 */   // Combiner Rule #131: sext_inreg_to_zext_inreg
     /* 4789 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
     /* 4792 */ // Label 276: @4792
     /* 4792 */ GIM_Reject,
     /* 4793 */ // Label 30: @4793
     /* 4793 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(4804), // Rule ID 172 //
     /* 4798 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
     /* 4801 */   // Combiner Rule #130: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
     /* 4801 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
     /* 4804 */ // Label 277: @4804
     /* 4804 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(4815), // Rule ID 261 //
     /* 4809 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
     /* 4812 */   // Combiner Rule #173: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
     /* 4812 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
     /* 4815 */ // Label 278: @4815
     /* 4815 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(4836), // Rule ID 56 //
     /* 4820 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
     /* 4823 */   // MIs[0] root
     /* 4823 */   // No operand predicates
     /* 4823 */   // MIs[0] select
     /* 4823 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4827 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 4831 */   // MIs[1] cond
     /* 4831 */   // No operand predicates
     /* 4831 */   // MIs[1] true
     /* 4831 */   // No operand predicates
     /* 4831 */   // MIs[1] false
     /* 4831 */   // No operand predicates
     /* 4831 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4833 */   // Combiner Rule #54: select_of_zext
     /* 4833 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
     /* 4836 */ // Label 279: @4836
     /* 4836 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(4857), // Rule ID 49 //
     /* 4841 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
     /* 4844 */   // MIs[0] root
     /* 4844 */   // No operand predicates
     /* 4844 */   // MIs[0] second
     /* 4844 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4848 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
     /* 4852 */   // MIs[1] src
     /* 4852 */   // No operand predicates
     /* 4852 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4854 */   // Combiner Rule #47: zext_of_anyext
     /* 4854 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4857 */ // Label 280: @4857
     /* 4857 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(4884), // Rule ID 351 //
     /* 4862 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
     /* 4865 */   // MIs[0] root
     /* 4865 */   // No operand predicates
     /* 4865 */   // MIs[0] src
     /* 4865 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4869 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 4873 */   GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
     /* 4879 */   // MIs[1] x
     /* 4879 */   // No operand predicates
     /* 4879 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4881 */   // Combiner Rule #204: zext_trunc
     /* 4881 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
     /* 4884 */ // Label 281: @4884
     /* 4884 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(4905), // Rule ID 48 //
     /* 4889 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
     /* 4892 */   // MIs[0] root
     /* 4892 */   // No operand predicates
     /* 4892 */   // MIs[0] second
     /* 4892 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 4896 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
     /* 4900 */   // MIs[1] src
     /* 4900 */   // No operand predicates
     /* 4900 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 4902 */   // Combiner Rule #46: zext_of_zext
     /* 4902 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
     /* 4905 */ // Label 282: @4905
     /* 4905 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(4922), // Rule ID 352 //
     /* 4910 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
     /* 4913 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
     /* 4919 */   // MIs[0] root
     /* 4919 */   // No operand predicates
     /* 4919 */   // MIs[0] x
     /* 4919 */   // No operand predicates
     /* 4919 */   // Combiner Rule #205: nneg_zext
     /* 4919 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
     /* 4922 */ // Label 283: @4922
     /* 4922 */ GIM_Reject,
     /* 4923 */ // Label 31: @4923
     /* 4923 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(4934), // Rule ID 80 //
     /* 4928 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
     /* 4931 */   // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
     /* 4931 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 4934 */ // Label 284: @4934
     /* 4934 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(4945), // Rule ID 83 //
     /* 4939 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 4942 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
     /* 4942 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 4945 */ // Label 285: @4945
     /* 4945 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(4956), // Rule ID 116 //
     /* 4950 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 4953 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SHL'
     /* 4953 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 4956 */ // Label 286: @4956
     /* 4956 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(4967), // Rule ID 202 //
     /* 4961 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 4964 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_SHL'
     /* 4964 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 4967 */ // Label 287: @4967
     /* 4967 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(4978), // Rule ID 207 //
     /* 4972 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 4975 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
     /* 4975 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 4978 */ // Label 288: @4978
     /* 4978 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(4989), // Rule ID 230 //
     /* 4983 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
     /* 4986 */   // Combiner Rule #165: commute_shift; wip_match_opcode 'G_SHL'
     /* 4986 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
     /* 4989 */ // Label 289: @4989
     /* 4989 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(5000), // Rule ID 244 //
     /* 4994 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 4997 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SHL'
     /* 4997 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 5000 */ // Label 290: @5000
     /* 5000 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(5011), // Rule ID 293 //
     /* 5005 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 5008 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SHL'
     /* 5008 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 5011 */ // Label 291: @5011
     /* 5011 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(5046), // Rule ID 41 //
     /* 5016 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
     /* 5019 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
     /* 5025 */   // MIs[0] root
     /* 5025 */   // No operand predicates
     /* 5025 */   // MIs[0] left
     /* 5025 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5029 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
     /* 5033 */   // MIs[1] imm
     /* 5033 */   // No operand predicates
     /* 5033 */   // MIs[0] x
     /* 5033 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 5037 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 5041 */   // MIs[2] imm1
     /* 5041 */   // No operand predicates
     /* 5041 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 5043 */   // Combiner Rule #39: shl_of_vscale
     /* 5043 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
     /* 5046 */ // Label 292: @5046
     /* 5046 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(5069), // Rule ID 108 //
     /* 5051 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5054 */   // MIs[0] dst
     /* 5054 */   // No operand predicates
     /* 5054 */   // MIs[0] lhs
     /* 5054 */   // No operand predicates
     /* 5054 */   // MIs[0] Operand 2
     /* 5054 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5058 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5063 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[4]]
     /* 5063 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5068 */   GIR_EraseRootFromParent_Done,
     /* 5069 */ // Label 293: @5069
     /* 5069 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(5080), // Rule ID 146 //
     /* 5074 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 5077 */   // MIs[0] root
     /* 5077 */   // No operand predicates
     /* 5077 */   // MIs[0] mi.shifted
     /* 5077 */   // No operand predicates
     /* 5077 */   // MIs[0] mi.amt
     /* 5077 */   // No operand predicates
     /* 5077 */   // Combiner Rule #106: shifts_too_big @ [mi[0]]
     /* 5077 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 5080 */ // Label 294: @5080
     /* 5080 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(5091), // Rule ID 162 //
     /* 5085 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
     /* 5088 */   // MIs[0] dst
     /* 5088 */   // No operand predicates
     /* 5088 */   // MIs[0] src0
     /* 5088 */   // No operand predicates
     /* 5088 */   // MIs[0] src1
     /* 5088 */   // No operand predicates
     /* 5088 */   // Combiner Rule #120: reduce_shl_of_extend
     /* 5088 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
     /* 5091 */ // Label 295: @5091
     /* 5091 */ GIM_Reject,
     /* 5092 */ // Label 32: @5092
     /* 5092 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(5103), // Rule ID 85 //
     /* 5097 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 5100 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
     /* 5100 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 5103 */ // Label 296: @5103
     /* 5103 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(5114), // Rule ID 117 //
     /* 5108 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 5111 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_LSHR'
     /* 5111 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 5114 */ // Label 297: @5114
     /* 5114 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(5125), // Rule ID 204 //
     /* 5119 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5122 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_LSHR'
     /* 5122 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5125 */ // Label 298: @5125
     /* 5125 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(5136), // Rule ID 209 //
     /* 5130 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5133 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
     /* 5133 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5136 */ // Label 299: @5136
     /* 5136 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(5147), // Rule ID 234 //
     /* 5141 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
     /* 5144 */   // Combiner Rule #168: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
     /* 5144 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
     /* 5147 */ // Label 300: @5147
     /* 5147 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(5158), // Rule ID 236 //
     /* 5152 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
     /* 5155 */   // Combiner Rule #169: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
     /* 5155 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
     /* 5158 */ // Label 301: @5158
     /* 5158 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(5169), // Rule ID 241 //
     /* 5163 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 5166 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_LSHR'
     /* 5166 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 5169 */ // Label 302: @5169
     /* 5169 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(5180), // Rule ID 291 //
     /* 5174 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 5177 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_LSHR'
     /* 5177 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 5180 */ // Label 303: @5180
     /* 5180 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(5209), // Rule ID 375 //
     /* 5185 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
     /* 5188 */   // MIs[0] dst
     /* 5188 */   // No operand predicates
     /* 5188 */   // MIs[0] d2
     /* 5188 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5192 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
     /* 5196 */   // MIs[1] d1
     /* 5196 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 5200 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 5204 */   // MIs[2] x
     /* 5204 */   // No operand predicates
     /* 5204 */   // MIs[2] y
     /* 5204 */   // No operand predicates
     /* 5204 */   // MIs[0] z
     /* 5204 */   // No operand predicates
     /* 5204 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 5206 */   // Combiner Rule #226: lshr_of_trunc_of_lshr
     /* 5206 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
     /* 5209 */ // Label 304: @5209
     /* 5209 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(5232), // Rule ID 110 //
     /* 5214 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5217 */   // MIs[0] dst
     /* 5217 */   // No operand predicates
     /* 5217 */   // MIs[0] lhs
     /* 5217 */   // No operand predicates
     /* 5217 */   // MIs[0] Operand 2
     /* 5217 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5221 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5226 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[6]]
     /* 5226 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5231 */   GIR_EraseRootFromParent_Done,
     /* 5232 */ // Label 305: @5232
     /* 5232 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(5243), // Rule ID 148 //
     /* 5237 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 5240 */   // MIs[0] root
     /* 5240 */   // No operand predicates
     /* 5240 */   // MIs[0] mi.shifted
     /* 5240 */   // No operand predicates
     /* 5240 */   // MIs[0] mi.amt
     /* 5240 */   // No operand predicates
     /* 5240 */   // Combiner Rule #106: shifts_too_big @ [mi[2]]
     /* 5240 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 5243 */ // Label 306: @5243
     /* 5243 */ GIM_Reject,
     /* 5244 */ // Label 33: @5244
     /* 5244 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(5255), // Rule ID 84 //
     /* 5249 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
     /* 5252 */   // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
     /* 5252 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
     /* 5255 */ // Label 307: @5255
     /* 5255 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(5266), // Rule ID 118 //
     /* 5260 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
     /* 5263 */   // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_ASHR'
     /* 5263 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
     /* 5266 */ // Label 308: @5266
     /* 5266 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(5277), // Rule ID 159 //
     /* 5271 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
     /* 5274 */   // Combiner Rule #117: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
     /* 5274 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
     /* 5277 */ // Label 309: @5277
     /* 5277 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(5288), // Rule ID 203 //
     /* 5282 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5285 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_ASHR'
     /* 5285 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5288 */ // Label 310: @5288
     /* 5288 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(5299), // Rule ID 208 //
     /* 5293 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5296 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
     /* 5296 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5299 */ // Label 311: @5299
     /* 5299 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(5310), // Rule ID 233 //
     /* 5304 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
     /* 5307 */   // Combiner Rule #168: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
     /* 5307 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
     /* 5310 */ // Label 312: @5310
     /* 5310 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(5321), // Rule ID 235 //
     /* 5315 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
     /* 5318 */   // Combiner Rule #169: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
     /* 5318 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
     /* 5321 */ // Label 313: @5321
     /* 5321 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(5332), // Rule ID 240 //
     /* 5326 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 5329 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_ASHR'
     /* 5329 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 5332 */ // Label 314: @5332
     /* 5332 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(5343), // Rule ID 292 //
     /* 5337 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 5340 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ASHR'
     /* 5340 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 5343 */ // Label 315: @5343
     /* 5343 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(5366), // Rule ID 109 //
     /* 5348 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5351 */   // MIs[0] dst
     /* 5351 */   // No operand predicates
     /* 5351 */   // MIs[0] lhs
     /* 5351 */   // No operand predicates
     /* 5351 */   // MIs[0] Operand 2
     /* 5351 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5355 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5360 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[5]]
     /* 5360 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5365 */   GIR_EraseRootFromParent_Done,
     /* 5366 */ // Label 316: @5366
     /* 5366 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(5377), // Rule ID 147 //
     /* 5371 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
     /* 5374 */   // MIs[0] root
     /* 5374 */   // No operand predicates
     /* 5374 */   // MIs[0] mi.shifted
     /* 5374 */   // No operand predicates
     /* 5374 */   // MIs[0] mi.amt
     /* 5374 */   // No operand predicates
     /* 5374 */   // Combiner Rule #106: shifts_too_big @ [mi[1]]
     /* 5374 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
     /* 5377 */ // Label 317: @5377
     /* 5377 */ GIM_Reject,
     /* 5378 */ // Label 34: @5378
     /* 5378 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(5389), // Rule ID 218 //
     /* 5383 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
     /* 5386 */   // Combiner Rule #157: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
     /* 5386 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
     /* 5389 */ // Label 318: @5389
     /* 5389 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(5400), // Rule ID 222 //
     /* 5394 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
     /* 5397 */   // Combiner Rule #160: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
     /* 5397 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
     /* 5400 */ // Label 319: @5400
     /* 5400 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(5420), // Rule ID 221 //
     /* 5405 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
     /* 5408 */   // MIs[0] x
     /* 5408 */   // No operand predicates
     /* 5408 */   // MIs[0] y
     /* 5408 */   // No operand predicates
     /* 5408 */   // MIs[0] z
     /* 5408 */   // No operand predicates
     /* 5408 */   // MIs[0] Operand 3
     /* 5408 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
     /* 5412 */   // Combiner Rule #159: funnel_shift_left_zero
     /* 5412 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
     /* 5415 */   GIR_RootToRootCopy, /*OpIdx*/0, // x
     /* 5417 */   GIR_RootToRootCopy, /*OpIdx*/1, // y
     /* 5419 */   GIR_EraseRootFromParent_Done,
     /* 5420 */ // Label 320: @5420
     /* 5420 */ GIM_Reject,
     /* 5421 */ // Label 35: @5421
     /* 5421 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(5432), // Rule ID 219 //
     /* 5426 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
     /* 5429 */   // Combiner Rule #157: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
     /* 5429 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
     /* 5432 */ // Label 321: @5432
     /* 5432 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(5443), // Rule ID 223 //
     /* 5437 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
     /* 5440 */   // Combiner Rule #160: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
     /* 5440 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
     /* 5443 */ // Label 322: @5443
     /* 5443 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(5463), // Rule ID 220 //
     /* 5448 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
     /* 5451 */   // MIs[0] x
     /* 5451 */   // No operand predicates
     /* 5451 */   // MIs[0] y
     /* 5451 */   // No operand predicates
     /* 5451 */   // MIs[0] z
     /* 5451 */   // No operand predicates
     /* 5451 */   // MIs[0] Operand 3
     /* 5451 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
     /* 5455 */   // Combiner Rule #158: funnel_shift_right_zero
     /* 5455 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
     /* 5458 */   GIR_RootToRootCopy, /*OpIdx*/0, // x
     /* 5460 */   GIR_RootToRootCopy, /*OpIdx*/2, // z
     /* 5462 */   GIR_EraseRootFromParent_Done,
     /* 5463 */ // Label 323: @5463
     /* 5463 */ GIM_Reject,
     /* 5464 */ // Label 36: @5464
     /* 5464 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(5487), // Rule ID 113 //
     /* 5469 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5472 */   // MIs[0] dst
     /* 5472 */   // No operand predicates
     /* 5472 */   // MIs[0] lhs
     /* 5472 */   // No operand predicates
     /* 5472 */   // MIs[0] Operand 2
     /* 5472 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5476 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5481 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[9]]
     /* 5481 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5486 */   GIR_EraseRootFromParent_Done,
     /* 5487 */ // Label 324: @5487
     /* 5487 */ GIM_Reject,
     /* 5488 */ // Label 37: @5488
     /* 5488 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(5511), // Rule ID 112 //
     /* 5493 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 5496 */   // MIs[0] dst
     /* 5496 */   // No operand predicates
     /* 5496 */   // MIs[0] lhs
     /* 5496 */   // No operand predicates
     /* 5496 */   // MIs[0] Operand 2
     /* 5496 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 5500 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5505 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[8]]
     /* 5505 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 5510 */   GIR_EraseRootFromParent_Done,
     /* 5511 */ // Label 325: @5511
     /* 5511 */ GIM_Reject,
     /* 5512 */ // Label 38: @5512
     /* 5512 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(5523), // Rule ID 154 //
     /* 5517 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
     /* 5520 */   // Combiner Rule #112: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
     /* 5520 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
     /* 5523 */ // Label 326: @5523
     /* 5523 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(5534), // Rule ID 155 //
     /* 5528 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
     /* 5531 */   // Combiner Rule #113: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
     /* 5531 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
     /* 5534 */ // Label 327: @5534
     /* 5534 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(5545), // Rule ID 158 //
     /* 5539 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
     /* 5542 */   // Combiner Rule #116: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
     /* 5542 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
     /* 5545 */ // Label 328: @5545
     /* 5545 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(5556), // Rule ID 152 //
     /* 5550 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
     /* 5553 */   // MIs[0] root
     /* 5553 */   // No operand predicates
     /* 5553 */   // MIs[0] pred
     /* 5553 */   // No operand predicates
     /* 5553 */   // MIs[0] lhs
     /* 5553 */   // No operand predicates
     /* 5553 */   // MIs[0] rhs
     /* 5553 */   // No operand predicates
     /* 5553 */   // Combiner Rule #110: canonicalize_icmp
     /* 5553 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
     /* 5556 */ // Label 329: @5556
     /* 5556 */ GIM_Reject,
     /* 5557 */ // Label 39: @5557
     /* 5557 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(5568), // Rule ID 153 //
     /* 5562 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
     /* 5565 */   // MIs[0] root
     /* 5565 */   // No operand predicates
     /* 5565 */   // MIs[0] pred
     /* 5565 */   // No operand predicates
     /* 5565 */   // MIs[0] lhs
     /* 5565 */   // No operand predicates
     /* 5565 */   // MIs[0] rhs
     /* 5565 */   // No operand predicates
     /* 5565 */   // Combiner Rule #111: canonicalize_fcmp
     /* 5565 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
     /* 5568 */ // Label 330: @5568
     /* 5568 */ GIM_Reject,
     /* 5569 */ // Label 40: @5569
     /* 5569 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(5580), // Rule ID 103 //
     /* 5574 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
     /* 5577 */   // Combiner Rule #83: select_same_val; wip_match_opcode 'G_SELECT'
     /* 5577 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
     /* 5580 */ // Label 331: @5580
     /* 5580 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(5591), // Rule ID 165 //
     /* 5585 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
     /* 5588 */   // Combiner Rule #123: select_constant_cmp; wip_match_opcode 'G_SELECT'
     /* 5588 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
     /* 5591 */ // Label 332: @5591
     /* 5591 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(5602), // Rule ID 167 //
     /* 5596 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
     /* 5599 */   // Combiner Rule #125: match_selects; wip_match_opcode 'G_SELECT'
     /* 5599 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
     /* 5602 */ // Label 333: @5602
     /* 5602 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(5613), // Rule ID 315 //
     /* 5607 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
     /* 5610 */   // Combiner Rule #195: select_to_minmax; wip_match_opcode 'G_SELECT'
     /* 5610 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
     /* 5613 */ // Label 334: @5613
     /* 5613 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(5634), // Rule ID 166 //
     /* 5618 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
     /* 5621 */   // MIs[0] root
     /* 5621 */   // No operand predicates
     /* 5621 */   // MIs[0] tst
     /* 5621 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5625 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
     /* 5629 */   // MIs[1] tst1
     /* 5629 */   // No operand predicates
     /* 5629 */   // MIs[1] a
     /* 5629 */   // No operand predicates
     /* 5629 */   // MIs[1] b
     /* 5629 */   // No operand predicates
     /* 5629 */   // MIs[0] x
     /* 5629 */   // No operand predicates
     /* 5629 */   // MIs[0] y
     /* 5629 */   // No operand predicates
     /* 5629 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 5631 */   // Combiner Rule #124: select_to_iminmax
     /* 5631 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
     /* 5634 */ // Label 335: @5634
     /* 5634 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(5663), // Rule ID 164 //
     /* 5639 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
     /* 5642 */   // MIs[0] dst
     /* 5642 */   // No operand predicates
     /* 5642 */   // MIs[0] undef
     /* 5642 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 5646 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 5650 */   // MIs[0] x
     /* 5650 */   // No operand predicates
     /* 5650 */   // MIs[0] y
     /* 5650 */   // No operand predicates
     /* 5650 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
     /* 5655 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 5657 */   // Combiner Rule #122: select_undef_cmp
     /* 5657 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
     /* 5662 */   GIR_EraseRootFromParent_Done,
     /* 5663 */ // Label 336: @5663
     /* 5663 */ GIM_Reject,
     /* 5664 */ // Label 41: @5664
     /* 5664 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(5675), // Rule ID 326 //
     /* 5669 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5672 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
     /* 5672 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5675 */ // Label 337: @5675
     /* 5675 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(5686), // Rule ID 368 //
     /* 5680 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
     /* 5683 */   // Combiner Rule #220: match_addos; wip_match_opcode 'G_UADDO'
     /* 5683 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
     /* 5686 */ // Label 338: @5686
     /* 5686 */ GIM_Reject,
     /* 5687 */ // Label 42: @5687
     /* 5687 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(5698), // Rule ID 191 //
     /* 5692 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5695 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_UADDE'
     /* 5695 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5698 */ // Label 339: @5698
     /* 5698 */ GIM_Reject,
     /* 5699 */ // Label 43: @5699
     /* 5699 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(5710), // Rule ID 370 //
     /* 5704 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
     /* 5707 */   // Combiner Rule #221: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
     /* 5707 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
     /* 5710 */ // Label 340: @5710
     /* 5710 */ GIM_Reject,
     /* 5711 */ // Label 44: @5711
     /* 5711 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(5722), // Rule ID 193 //
     /* 5716 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5719 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_USUBE'
     /* 5719 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5722 */ // Label 341: @5722
     /* 5722 */ GIM_Reject,
     /* 5723 */ // Label 45: @5723
     /* 5723 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(5734), // Rule ID 327 //
     /* 5728 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5731 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
     /* 5731 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5734 */ // Label 342: @5734
     /* 5734 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(5745), // Rule ID 367 //
     /* 5739 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
     /* 5742 */   // Combiner Rule #220: match_addos; wip_match_opcode 'G_SADDO'
     /* 5742 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
     /* 5745 */ // Label 343: @5745
     /* 5745 */ GIM_Reject,
     /* 5746 */ // Label 46: @5746
     /* 5746 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(5757), // Rule ID 192 //
     /* 5751 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5754 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_SADDE'
     /* 5754 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5757 */ // Label 344: @5757
     /* 5757 */ GIM_Reject,
     /* 5758 */ // Label 47: @5758
     /* 5758 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(5769), // Rule ID 369 //
     /* 5763 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
     /* 5766 */   // Combiner Rule #221: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
     /* 5766 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
     /* 5769 */ // Label 345: @5769
     /* 5769 */ GIM_Reject,
     /* 5770 */ // Label 48: @5770
     /* 5770 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(5781), // Rule ID 194 //
     /* 5775 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
     /* 5778 */   // Combiner Rule #147: adde_to_addo; wip_match_opcode 'G_SSUBE'
     /* 5778 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
     /* 5781 */ // Label 346: @5781
     /* 5781 */ GIM_Reject,
     /* 5782 */ // Label 49: @5782
     /* 5782 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(5793), // Rule ID 187 //
     /* 5787 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
     /* 5790 */   // Combiner Rule #145: mulo_by_2; wip_match_opcode 'G_UMULO'
     /* 5790 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
     /* 5793 */ // Label 347: @5793
     /* 5793 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(5804), // Rule ID 189 //
     /* 5798 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
     /* 5801 */   // Combiner Rule #146: mulo_by_0; wip_match_opcode 'G_UMULO'
     /* 5801 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
     /* 5804 */ // Label 348: @5804
     /* 5804 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(5815), // Rule ID 328 //
     /* 5809 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5812 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
     /* 5812 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5815 */ // Label 349: @5815
     /* 5815 */ GIM_Reject,
     /* 5816 */ // Label 50: @5816
     /* 5816 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(5827), // Rule ID 188 //
     /* 5821 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
     /* 5824 */   // Combiner Rule #145: mulo_by_2; wip_match_opcode 'G_SMULO'
     /* 5824 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
     /* 5827 */ // Label 350: @5827
     /* 5827 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(5838), // Rule ID 190 //
     /* 5832 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
     /* 5835 */   // Combiner Rule #146: mulo_by_0; wip_match_opcode 'G_SMULO'
     /* 5835 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
     /* 5838 */ // Label 351: @5838
     /* 5838 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(5849), // Rule ID 329 //
     /* 5843 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5846 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
     /* 5846 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5849 */ // Label 352: @5849
     /* 5849 */ GIM_Reject,
     /* 5850 */ // Label 51: @5850
     /* 5850 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(5861), // Rule ID 265 //
     /* 5855 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
     /* 5858 */   // Combiner Rule #175: mulh_to_lshr; wip_match_opcode 'G_UMULH'
     /* 5858 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
     /* 5861 */ // Label 353: @5861
     /* 5861 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(5872), // Rule ID 330 //
     /* 5866 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5869 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
     /* 5869 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5872 */ // Label 354: @5872
     /* 5872 */ GIM_Reject,
     /* 5873 */ // Label 52: @5873
     /* 5873 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(5884), // Rule ID 331 //
     /* 5878 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5881 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
     /* 5881 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5884 */ // Label 355: @5884
     /* 5884 */ GIM_Reject,
     /* 5885 */ // Label 53: @5885
     /* 5885 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(5896), // Rule ID 332 //
     /* 5890 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5893 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
     /* 5893 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5896 */ // Label 356: @5896
     /* 5896 */ GIM_Reject,
     /* 5897 */ // Label 54: @5897
     /* 5897 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(5908), // Rule ID 333 //
     /* 5902 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5905 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
     /* 5905 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5908 */ // Label 357: @5908
     /* 5908 */ GIM_Reject,
     /* 5909 */ // Label 55: @5909
     /* 5909 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(5920), // Rule ID 206 //
     /* 5914 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5917 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
     /* 5917 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5920 */ // Label 358: @5920
     /* 5920 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(5931), // Rule ID 210 //
     /* 5925 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5928 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
     /* 5928 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5931 */ // Label 359: @5931
     /* 5931 */ GIM_Reject,
     /* 5932 */ // Label 56: @5932
     /* 5932 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(5943), // Rule ID 205 //
     /* 5937 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
     /* 5940 */   // Combiner Rule #152: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
     /* 5940 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
     /* 5943 */ // Label 360: @5943
     /* 5943 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(5954), // Rule ID 211 //
     /* 5948 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
     /* 5951 */   // Combiner Rule #153: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
     /* 5951 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
     /* 5954 */ // Label 361: @5954
     /* 5954 */ GIM_Reject,
     /* 5955 */ // Label 57: @5955
     /* 5955 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(5966), // Rule ID 334 //
     /* 5960 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5963 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
     /* 5963 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5966 */ // Label 362: @5966
     /* 5966 */ GIM_Reject,
     /* 5967 */ // Label 58: @5967
     /* 5967 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(5978), // Rule ID 335 //
     /* 5972 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5975 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
     /* 5975 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5978 */ // Label 363: @5978
     /* 5978 */ GIM_Reject,
     /* 5979 */ // Label 59: @5979
     /* 5979 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(5990), // Rule ID 336 //
     /* 5984 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5987 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
     /* 5987 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 5990 */ // Label 364: @5990
     /* 5990 */ GIM_Reject,
     /* 5991 */ // Label 60: @5991
     /* 5991 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(6002), // Rule ID 337 //
     /* 5996 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 5999 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
     /* 5999 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 6002 */ // Label 365: @6002
     /* 6002 */ GIM_Reject,
     /* 6003 */ // Label 61: @6003
     /* 6003 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(6014), // Rule ID 255 //
     /* 6008 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6011 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
     /* 6011 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6014 */ // Label 366: @6014
     /* 6014 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(6025), // Rule ID 266 //
     /* 6019 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6022 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FADD'
     /* 6022 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6025 */ // Label 367: @6025
     /* 6025 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(6036), // Rule ID 273 //
     /* 6030 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
     /* 6033 */   // Combiner Rule #178: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 6033 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
     /* 6036 */ // Label 368: @6036
     /* 6036 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(6047), // Rule ID 274 //
     /* 6041 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
     /* 6044 */   // Combiner Rule #179: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 6044 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
     /* 6047 */ // Label 369: @6047
     /* 6047 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(6058), // Rule ID 275 //
     /* 6052 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
     /* 6055 */   // Combiner Rule #180: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 6055 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
     /* 6058 */ // Label 370: @6058
     /* 6058 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(6069), // Rule ID 276 //
     /* 6063 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
     /* 6066 */   // Combiner Rule #181: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
     /* 6066 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
     /* 6069 */ // Label 371: @6069
     /* 6069 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(6080), // Rule ID 299 //
     /* 6074 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6077 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FADD'
     /* 6077 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6080 */ // Label 372: @6080
     /* 6080 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(6091), // Rule ID 338 //
     /* 6085 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6088 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
     /* 6088 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6091 */ // Label 373: @6091
     /* 6091 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(6114), // Rule ID 138 //
     /* 6096 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
     /* 6099 */   // MIs[0] dst
     /* 6099 */   // No operand predicates
     /* 6099 */   // MIs[0] x
     /* 6099 */   // No operand predicates
     /* 6099 */   // MIs[0] y
     /* 6099 */   // No operand predicates
     /* 6099 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
     /* 6103 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6108 */   // Combiner Rule #100: right_identity_neg_zero_fp
     /* 6108 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6113 */   GIR_EraseRootFromParent_Done,
     /* 6114 */ // Label 374: @6114
     /* 6114 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(6143), // Rule ID 139 //
     /* 6119 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
     /* 6122 */   GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
     /* 6128 */   // MIs[0] dst
     /* 6128 */   // No operand predicates
     /* 6128 */   // MIs[0] x
     /* 6128 */   // No operand predicates
     /* 6128 */   // MIs[0] y
     /* 6128 */   // No operand predicates
     /* 6128 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
     /* 6132 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6137 */   // Combiner Rule #101: right_identity_neg_zero_fp_nsz
     /* 6137 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6142 */   GIR_EraseRootFromParent_Done,
     /* 6143 */ // Label 375: @6143
     /* 6143 */ GIM_Reject,
     /* 6144 */ // Label 62: @6144
     /* 6144 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(6155), // Rule ID 256 //
     /* 6149 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6152 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
     /* 6152 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6155 */ // Label 376: @6155
     /* 6155 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(6166), // Rule ID 267 //
     /* 6160 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6163 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FSUB'
     /* 6163 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6166 */ // Label 377: @6166
     /* 6166 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(6177), // Rule ID 277 //
     /* 6171 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
     /* 6174 */   // Combiner Rule #182: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6174 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
     /* 6177 */ // Label 378: @6177
     /* 6177 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(6188), // Rule ID 278 //
     /* 6182 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
     /* 6185 */   // Combiner Rule #183: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6185 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
     /* 6188 */ // Label 379: @6188
     /* 6188 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(6199), // Rule ID 279 //
     /* 6193 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
     /* 6196 */   // Combiner Rule #184: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6196 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
     /* 6199 */ // Label 380: @6199
     /* 6199 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(6210), // Rule ID 280 //
     /* 6204 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
     /* 6207 */   // Combiner Rule #185: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
     /* 6207 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
     /* 6210 */ // Label 381: @6210
     /* 6210 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(6221), // Rule ID 300 //
     /* 6215 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6218 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FSUB'
     /* 6218 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6221 */ // Label 382: @6221
     /* 6221 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(6232), // Rule ID 316 //
     /* 6226 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
     /* 6229 */   // Combiner Rule #196: fsub_to_fneg; wip_match_opcode 'G_FSUB'
     /* 6229 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
     /* 6232 */ // Label 383: @6232
     /* 6232 */ GIM_Reject,
     /* 6233 */ // Label 63: @6233
     /* 6233 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(6244), // Rule ID 257 //
     /* 6238 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6241 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
     /* 6241 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6244 */ // Label 384: @6244
     /* 6244 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(6255), // Rule ID 268 //
     /* 6249 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6252 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMUL'
     /* 6252 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6255 */ // Label 385: @6255
     /* 6255 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(6266), // Rule ID 298 //
     /* 6260 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6263 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMUL'
     /* 6263 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6266 */ // Label 386: @6266
     /* 6266 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(6277), // Rule ID 339 //
     /* 6271 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6274 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
     /* 6274 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6277 */ // Label 387: @6277
     /* 6277 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(6298), // Rule ID 376 //
     /* 6282 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
     /* 6285 */   // MIs[0] dst
     /* 6285 */   // No operand predicates
     /* 6285 */   // MIs[0] x
     /* 6285 */   // No operand predicates
     /* 6285 */   // MIs[0] select
     /* 6285 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 6289 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
     /* 6293 */   // MIs[1] y
     /* 6293 */   // No operand predicates
     /* 6293 */   // MIs[1] A
     /* 6293 */   // No operand predicates
     /* 6293 */   // MIs[1] B
     /* 6293 */   // No operand predicates
     /* 6293 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6295 */   // Combiner Rule #227: combine_fmul_with_select_to_fldexp
     /* 6295 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
     /* 6298 */ // Label 388: @6298
     /* 6298 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(6321), // Rule ID 129 //
     /* 6303 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
     /* 6306 */   // MIs[0] dst
     /* 6306 */   // No operand predicates
     /* 6306 */   // MIs[0] x
     /* 6306 */   // No operand predicates
     /* 6306 */   // MIs[0] y
     /* 6306 */   // No operand predicates
     /* 6306 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
     /* 6310 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6315 */   // Combiner Rule #93: right_identity_one_fp
     /* 6315 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6320 */   GIR_EraseRootFromParent_Done,
     /* 6321 */ // Label 389: @6321
     /* 6321 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(6341), // Rule ID 140 //
     /* 6326 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
     /* 6329 */   // MIs[0] dst
     /* 6329 */   // No operand predicates
     /* 6329 */   // MIs[0] x
     /* 6329 */   // No operand predicates
     /* 6329 */   // MIs[0] y
     /* 6329 */   // No operand predicates
     /* 6329 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
     /* 6333 */   // Combiner Rule #102: right_identity_neg_one_fp
     /* 6333 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 6336 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 6338 */   GIR_RootToRootCopy, /*OpIdx*/1, // x
     /* 6340 */   GIR_EraseRootFromParent_Done,
     /* 6341 */ // Label 390: @6341
     /* 6341 */ GIM_Reject,
     /* 6342 */ // Label 64: @6342
     /* 6342 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(6353), // Rule ID 260 //
     /* 6347 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
     /* 6350 */   // Combiner Rule #172: constant_fold_fma; wip_match_opcode 'G_FMA'
     /* 6350 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
     /* 6353 */ // Label 391: @6353
     /* 6353 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(6364), // Rule ID 271 //
     /* 6358 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6361 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMA'
     /* 6361 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6364 */ // Label 392: @6364
     /* 6364 */ GIM_Reject,
     /* 6365 */ // Label 65: @6365
     /* 6365 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(6376), // Rule ID 259 //
     /* 6370 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
     /* 6373 */   // Combiner Rule #172: constant_fold_fma; wip_match_opcode 'G_FMAD'
     /* 6373 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
     /* 6376 */ // Label 393: @6376
     /* 6376 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(6387), // Rule ID 270 //
     /* 6381 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6384 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMAD'
     /* 6384 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6387 */ // Label 394: @6387
     /* 6387 */ GIM_Reject,
     /* 6388 */ // Label 66: @6388
     /* 6388 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(6399), // Rule ID 258 //
     /* 6393 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
     /* 6396 */   // Combiner Rule #171: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
     /* 6396 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
     /* 6399 */ // Label 395: @6399
     /* 6399 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(6410), // Rule ID 269 //
     /* 6404 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
     /* 6407 */   // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FDIV'
     /* 6407 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
     /* 6410 */ // Label 396: @6410
     /* 6410 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(6421), // Rule ID 301 //
     /* 6415 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6418 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FDIV'
     /* 6418 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6421 */ // Label 397: @6421
     /* 6421 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(6432), // Rule ID 313 //
     /* 6426 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
     /* 6429 */   // MIs[0] dst
     /* 6429 */   // No operand predicates
     /* 6429 */   // MIs[0] src1
     /* 6429 */   // No operand predicates
     /* 6429 */   // MIs[0] src2
     /* 6429 */   // No operand predicates
     /* 6429 */   // Combiner Rule #193: fdiv_repeated_divison
     /* 6429 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
     /* 6432 */ // Label 398: @6432
     /* 6432 */ GIM_Reject,
     /* 6433 */ // Label 67: @6433
     /* 6433 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(6444), // Rule ID 302 //
     /* 6438 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6441 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FREM'
     /* 6441 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6444 */ // Label 399: @6444
     /* 6444 */ GIM_Reject,
     /* 6445 */ // Label 68: @6445
     /* 6445 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(6466), // Rule ID 199 //
     /* 6450 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
     /* 6453 */   // MIs[0] dst
     /* 6453 */   // No operand predicates
     /* 6453 */   // MIs[0] float
     /* 6453 */   // No operand predicates
     /* 6453 */   // MIs[0] int
     /* 6453 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 6457 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 6461 */   // MIs[1] imm
     /* 6461 */   // No operand predicates
     /* 6461 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6463 */   // Combiner Rule #149: expand_const_fpowi
     /* 6463 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
     /* 6466 */ // Label 400: @6466
     /* 6466 */ GIM_Reject,
     /* 6467 */ // Label 69: @6467
     /* 6467 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(6488), // Rule ID 180 //
     /* 6472 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
     /* 6475 */   // MIs[0] dst
     /* 6475 */   // No operand predicates
     /* 6475 */   // MIs[0] src0
     /* 6475 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6479 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6483 */   // MIs[1] cst
     /* 6483 */   // No operand predicates
     /* 6483 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6485 */   // Combiner Rule #138: constant_fold_flog2
     /* 6485 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6488 */ // Label 401: @6488
     /* 6488 */ GIM_Reject,
     /* 6489 */ // Label 70: @6489
     /* 6489 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(6500), // Rule ID 378 //
     /* 6494 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
     /* 6497 */   // Combiner Rule #229: foldable_fneg; wip_match_opcode 'G_FNEG'
     /* 6497 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
     /* 6500 */ // Label 402: @6500
     /* 6500 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(6521), // Rule ID 177 //
     /* 6505 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
     /* 6508 */   // MIs[0] dst
     /* 6508 */   // No operand predicates
     /* 6508 */   // MIs[0] src0
     /* 6508 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6512 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6516 */   // MIs[1] cst
     /* 6516 */   // No operand predicates
     /* 6516 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6518 */   // Combiner Rule #135: constant_fold_fneg
     /* 6518 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6521 */ // Label 403: @6521
     /* 6521 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(6550), // Rule ID 127 //
     /* 6526 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
     /* 6529 */   // MIs[0] dst
     /* 6529 */   // No operand predicates
     /* 6529 */   // MIs[0] t
     /* 6529 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6533 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 6537 */   // MIs[1] src
     /* 6537 */   // No operand predicates
     /* 6537 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 6542 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6544 */   // Combiner Rule #91: fneg_fneg_fold
     /* 6544 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
     /* 6549 */   GIR_EraseRootFromParent_Done,
     /* 6550 */ // Label 404: @6550
     /* 6550 */ GIM_Reject,
     /* 6551 */ // Label 71: @6551
     /* 6551 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(6572), // Rule ID 182 //
     /* 6556 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
     /* 6559 */   // MIs[0] dst
     /* 6559 */   // No operand predicates
     /* 6559 */   // MIs[0] src0
     /* 6559 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6563 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6567 */   // MIs[1] cst
     /* 6567 */   // No operand predicates
     /* 6567 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6569 */   // Combiner Rule #140: constant_fold_fpext
     /* 6569 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6572 */ // Label 405: @6572
     /* 6572 */ GIM_Reject,
     /* 6573 */ // Label 72: @6573
     /* 6573 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(6594), // Rule ID 181 //
     /* 6578 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
     /* 6581 */   // MIs[0] dst
     /* 6581 */   // No operand predicates
     /* 6581 */   // MIs[0] src0
     /* 6581 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6585 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6589 */   // MIs[1] cst
     /* 6589 */   // No operand predicates
     /* 6589 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6591 */   // Combiner Rule #139: constant_fold_fptrunc
     /* 6591 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6594 */ // Label 406: @6594
     /* 6594 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(6615), // Rule ID 137 //
     /* 6599 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
     /* 6602 */   // MIs[0] dst
     /* 6602 */   // No operand predicates
     /* 6602 */   // MIs[0] src1
     /* 6602 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6606 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
     /* 6610 */   // MIs[1] src0
     /* 6610 */   // No operand predicates
     /* 6610 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6612 */   // Combiner Rule #99: fptrunc_fpext_fold
     /* 6612 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
     /* 6615 */ // Label 407: @6615
     /* 6615 */ GIM_Reject,
     /* 6616 */ // Label 73: @6616
     /* 6616 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(6637), // Rule ID 92 //
     /* 6621 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 6624 */   // MIs[0] dst
     /* 6624 */   // No operand predicates
     /* 6624 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 6624 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6628 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 6632 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6634 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
     /* 6634 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 6637 */ // Label 408: @6637
     /* 6637 */ GIM_Reject,
     /* 6638 */ // Label 74: @6638
     /* 6638 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(6659), // Rule ID 93 //
     /* 6643 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
     /* 6646 */   // MIs[0] dst
     /* 6646 */   // No operand predicates
     /* 6646 */   // MIs[0] __unary_undef_to_undef_match_0.x
     /* 6646 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6650 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 6654 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6656 */   // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
     /* 6656 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
     /* 6659 */ // Label 409: @6659
     /* 6659 */ GIM_Reject,
     /* 6660 */ // Label 75: @6660
     /* 6660 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(6671), // Rule ID 76 //
     /* 6665 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
     /* 6668 */   // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
     /* 6668 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
     /* 6671 */ // Label 410: @6671
     /* 6671 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(6686), // Rule ID 183 //
     /* 6676 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
     /* 6679 */   // MIs[0] dst
     /* 6679 */   // No operand predicates
     /* 6679 */   // MIs[0] Operand 1
     /* 6679 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 6683 */   // Combiner Rule #141: itof_const_zero_fold_si
     /* 6683 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
     /* 6686 */ // Label 411: @6686
     /* 6686 */ GIM_Reject,
     /* 6687 */ // Label 76: @6687
     /* 6687 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(6698), // Rule ID 75 //
     /* 6692 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
     /* 6695 */   // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
     /* 6695 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
     /* 6698 */ // Label 412: @6698
     /* 6698 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(6713), // Rule ID 184 //
     /* 6703 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
     /* 6706 */   // MIs[0] dst
     /* 6706 */   // No operand predicates
     /* 6706 */   // MIs[0] Operand 1
     /* 6706 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
     /* 6710 */   // Combiner Rule #142: itof_const_zero_fold_ui
     /* 6710 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
     /* 6713 */ // Label 413: @6713
     /* 6713 */ GIM_Reject,
     /* 6714 */ // Label 77: @6714
     /* 6714 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(6743), // Rule ID 19 //
     /* 6719 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 6722 */   // MIs[0] dst
     /* 6722 */   // No operand predicates
     /* 6722 */   // MIs[0] src
     /* 6722 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6726 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
     /* 6730 */   // MIs[1] __idempotent_prop_match_0.x
     /* 6730 */   // No operand predicates
     /* 6730 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6735 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6737 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[1]]
     /* 6737 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6742 */   GIR_EraseRootFromParent_Done,
     /* 6743 */ // Label 414: @6743
     /* 6743 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(6764), // Rule ID 178 //
     /* 6748 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
     /* 6751 */   // MIs[0] dst
     /* 6751 */   // No operand predicates
     /* 6751 */   // MIs[0] src0
     /* 6751 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6755 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 6759 */   // MIs[1] cst
     /* 6759 */   // No operand predicates
     /* 6759 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6761 */   // Combiner Rule #136: constant_fold_fabs
     /* 6761 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 6764 */ // Label 415: @6764
     /* 6764 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(6792), // Rule ID 264 //
     /* 6769 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
     /* 6772 */   // MIs[0] dst
     /* 6772 */   // No operand predicates
     /* 6772 */   // MIs[0] tmp
     /* 6772 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6776 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
     /* 6780 */   // MIs[1] x
     /* 6780 */   // No operand predicates
     /* 6780 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6782 */   // Combiner Rule #174: fabs_fneg_fold
     /* 6782 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
     /* 6785 */   GIR_RootToRootCopy, /*OpIdx*/0, // dst
     /* 6787 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
     /* 6791 */   GIR_EraseRootFromParent_Done,
     /* 6792 */ // Label 416: @6792
     /* 6792 */ GIM_Reject,
     /* 6793 */ // Label 78: @6793
     /* 6793 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(6822), // Rule ID 20 //
     /* 6798 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
     /* 6801 */   // MIs[0] dst
     /* 6801 */   // No operand predicates
     /* 6801 */   // MIs[0] src
     /* 6801 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 6805 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
     /* 6809 */   // MIs[1] __idempotent_prop_match_0.x
     /* 6809 */   // No operand predicates
     /* 6809 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6814 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 6816 */   // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[2]]
     /* 6816 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 6821 */   GIR_EraseRootFromParent_Done,
     /* 6822 */ // Label 417: @6822
     /* 6822 */ GIM_Reject,
     /* 6823 */ // Label 79: @6823
     /* 6823 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(6834), // Rule ID 195 //
     /* 6828 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6831 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
     /* 6831 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6834 */ // Label 418: @6834
     /* 6834 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(6845), // Rule ID 303 //
     /* 6839 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6842 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
     /* 6842 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6845 */ // Label 419: @6845
     /* 6845 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(6856), // Rule ID 340 //
     /* 6850 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6853 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
     /* 6853 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6856 */ // Label 420: @6856
     /* 6856 */ GIM_Reject,
     /* 6857 */ // Label 80: @6857
     /* 6857 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(6868), // Rule ID 196 //
     /* 6862 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6865 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
     /* 6865 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6868 */ // Label 421: @6868
     /* 6868 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(6879), // Rule ID 304 //
     /* 6873 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6876 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
     /* 6876 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6879 */ // Label 422: @6879
     /* 6879 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(6890), // Rule ID 341 //
     /* 6884 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6887 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
     /* 6887 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6890 */ // Label 423: @6890
     /* 6890 */ GIM_Reject,
     /* 6891 */ // Label 81: @6891
     /* 6891 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(6902), // Rule ID 342 //
     /* 6896 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6899 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
     /* 6899 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6902 */ // Label 424: @6902
     /* 6902 */ GIM_Reject,
     /* 6903 */ // Label 82: @6903
     /* 6903 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(6914), // Rule ID 343 //
     /* 6908 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6911 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
     /* 6911 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6914 */ // Label 425: @6914
     /* 6914 */ GIM_Reject,
     /* 6915 */ // Label 83: @6915
     /* 6915 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(6926), // Rule ID 197 //
     /* 6920 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6923 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
     /* 6923 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6926 */ // Label 426: @6926
     /* 6926 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(6937), // Rule ID 305 //
     /* 6931 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6934 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
     /* 6934 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6937 */ // Label 427: @6937
     /* 6937 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(6948), // Rule ID 344 //
     /* 6942 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6945 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
     /* 6945 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6948 */ // Label 428: @6948
     /* 6948 */ GIM_Reject,
     /* 6949 */ // Label 84: @6949
     /* 6949 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(6960), // Rule ID 198 //
     /* 6954 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
     /* 6957 */   // Combiner Rule #148: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
     /* 6957 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
     /* 6960 */ // Label 429: @6960
     /* 6960 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(6971), // Rule ID 306 //
     /* 6965 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 6968 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
     /* 6968 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 6971 */ // Label 430: @6971
     /* 6971 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(6982), // Rule ID 345 //
     /* 6976 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
     /* 6979 */   // Combiner Rule #198: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
     /* 6979 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
     /* 6982 */ // Label 431: @6982
     /* 6982 */ GIM_Reject,
     /* 6983 */ // Label 85: @6983
     /* 6983 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(6994), // Rule ID 149 //
     /* 6988 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
     /* 6991 */   // Combiner Rule #107: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
     /* 6991 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
     /* 6994 */ // Label 432: @6994
     /* 6994 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(7005), // Rule ID 151 //
     /* 6999 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
     /* 7002 */   // Combiner Rule #109: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
     /* 7002 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
     /* 7005 */ // Label 433: @7005
     /* 7005 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(7016), // Rule ID 185 //
     /* 7010 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
     /* 7013 */   // Combiner Rule #143: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
     /* 7013 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
     /* 7016 */ // Label 434: @7016
     /* 7016 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(7027), // Rule ID 201 //
     /* 7021 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
     /* 7024 */   // Combiner Rule #151: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
     /* 7024 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
     /* 7027 */ // Label 435: @7027
     /* 7027 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(7038), // Rule ID 238 //
     /* 7032 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7035 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
     /* 7035 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7038 */ // Label 436: @7038
     /* 7038 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(7049), // Rule ID 283 //
     /* 7043 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7046 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
     /* 7046 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7049 */ // Label 437: @7049
     /* 7049 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(7072), // Rule ID 111 //
     /* 7054 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
     /* 7057 */   // MIs[0] dst
     /* 7057 */   // No operand predicates
     /* 7057 */   // MIs[0] lhs
     /* 7057 */   // No operand predicates
     /* 7057 */   // MIs[0] Operand 2
     /* 7057 */   GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
     /* 7061 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7066 */   // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[7]]
     /* 7066 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7071 */   GIR_EraseRootFromParent_Done,
     /* 7072 */ // Label 438: @7072
     /* 7072 */ GIM_Reject,
     /* 7073 */ // Label 86: @7073
     /* 7073 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(7084), // Rule ID 251 //
     /* 7078 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7081 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SMIN'
     /* 7081 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7084 */ // Label 439: @7084
     /* 7084 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(7095), // Rule ID 294 //
     /* 7089 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7092 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMIN'
     /* 7092 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7095 */ // Label 440: @7095
     /* 7095 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(7106), // Rule ID 322 //
     /* 7100 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7103 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
     /* 7103 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7106 */ // Label 441: @7106
     /* 7106 */ GIM_Reject,
     /* 7107 */ // Label 87: @7107
     /* 7107 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(7118), // Rule ID 252 //
     /* 7112 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7115 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_SMAX'
     /* 7115 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7118 */ // Label 442: @7118
     /* 7118 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(7129), // Rule ID 295 //
     /* 7123 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7126 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMAX'
     /* 7126 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7129 */ // Label 443: @7129
     /* 7129 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(7140), // Rule ID 323 //
     /* 7134 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7137 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
     /* 7137 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7140 */ // Label 444: @7140
     /* 7140 */ GIM_Reject,
     /* 7141 */ // Label 88: @7141
     /* 7141 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(7152), // Rule ID 253 //
     /* 7146 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7149 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UMIN'
     /* 7149 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7152 */ // Label 445: @7152
     /* 7152 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(7163), // Rule ID 296 //
     /* 7157 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7160 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMIN'
     /* 7160 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7163 */ // Label 446: @7163
     /* 7163 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(7174), // Rule ID 324 //
     /* 7168 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7171 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
     /* 7171 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7174 */ // Label 447: @7174
     /* 7174 */ GIM_Reject,
     /* 7175 */ // Label 89: @7175
     /* 7175 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(7186), // Rule ID 254 //
     /* 7180 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
     /* 7183 */   // Combiner Rule #170: constant_fold_binop; wip_match_opcode 'G_UMAX'
     /* 7183 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
     /* 7186 */ // Label 448: @7186
     /* 7186 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(7197), // Rule ID 297 //
     /* 7191 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
     /* 7194 */   // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMAX'
     /* 7194 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
     /* 7197 */ // Label 449: @7197
     /* 7197 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(7208), // Rule ID 325 //
     /* 7202 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
     /* 7205 */   // Combiner Rule #197: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
     /* 7205 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
     /* 7208 */ // Label 450: @7208
     /* 7208 */ GIM_Reject,
     /* 7209 */ // Label 90: @7209
     /* 7209 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(7220), // Rule ID 86 //
     /* 7214 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
     /* 7217 */   // Combiner Rule #76: unary_undef_to_zero; wip_match_opcode 'G_ABS'
     /* 7217 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
     /* 7220 */ // Label 451: @7220
     /* 7220 */ GIM_Reject,
     /* 7221 */ // Label 91: @7221
     /* 7221 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(7232), // Rule ID 176 //
     /* 7226 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
     /* 7229 */   // Combiner Rule #134: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
     /* 7229 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
     /* 7232 */ // Label 452: @7232
     /* 7232 */ GIM_Reject,
     /* 7233 */ // Label 92: @7233
     /* 7233 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(7244), // Rule ID 26 //
     /* 7238 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
     /* 7241 */   // Combiner Rule #24: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 7241 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
     /* 7244 */ // Label 453: @7244
     /* 7244 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(7255), // Rule ID 67 //
     /* 7249 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
     /* 7252 */   // Combiner Rule #65: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 7252 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
     /* 7255 */ // Label 454: @7255
     /* 7255 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(7266), // Rule ID 101 //
     /* 7260 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
     /* 7263 */   // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
     /* 7263 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
     /* 7266 */ // Label 455: @7266
     /* 7266 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(7305), // Rule ID 38 //
     /* 7271 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
     /* 7274 */   // MIs[0] root
     /* 7274 */   // No operand predicates
     /* 7274 */   // MIs[0] src
     /* 7274 */   // No operand predicates
     /* 7274 */   // MIs[0] elt
     /* 7274 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7278 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
     /* 7282 */   // MIs[1] src
     /* 7282 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
     /* 7287 */   // MIs[1] idx
     /* 7287 */   // No operand predicates
     /* 7287 */   // MIs[0] idx
     /* 7287 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
     /* 7292 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7297 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7299 */   // Combiner Rule #36: insert_vector_element_extract_vector_element
     /* 7299 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7304 */   GIR_EraseRootFromParent_Done,
     /* 7305 */ // Label 456: @7305
     /* 7305 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(7338), // Rule ID 24 //
     /* 7310 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
     /* 7313 */   // MIs[0] root
     /* 7313 */   // No operand predicates
     /* 7313 */   // MIs[0] src
     /* 7313 */   // No operand predicates
     /* 7313 */   // MIs[0] elt
     /* 7313 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7317 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7321 */   // MIs[0] idx
     /* 7321 */   // No operand predicates
     /* 7321 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
     /* 7325 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7330 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7332 */   // Combiner Rule #22: insert_vector_element_elt_undef
     /* 7332 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
     /* 7337 */   GIR_EraseRootFromParent_Done,
     /* 7338 */ // Label 457: @7338
     /* 7338 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(7362), // Rule ID 23 //
     /* 7343 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
     /* 7346 */   // MIs[0] root
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[0] src
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[0] elt
     /* 7346 */   // No operand predicates
     /* 7346 */   // MIs[0] idx
     /* 7346 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
     /* 7350 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7354 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7356 */   // Combiner Rule #21: insert_vector_element_idx_undef
     /* 7356 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7359 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 7361 */   GIR_EraseRootFromParent_Done,
     /* 7362 */ // Label 458: @7362
     /* 7362 */ GIM_Reject,
     /* 7363 */ // Label 93: @7363
     /* 7363 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(7374), // Rule ID 25 //
     /* 7368 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
     /* 7371 */   // Combiner Rule #23: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7371 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
     /* 7374 */ // Label 459: @7374
     /* 7374 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(7385), // Rule ID 68 //
     /* 7379 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
     /* 7382 */   // Combiner Rule #66: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7382 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
     /* 7385 */ // Label 460: @7385
     /* 7385 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(7396), // Rule ID 74 //
     /* 7390 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
     /* 7393 */   // Combiner Rule #70: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7393 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
     /* 7396 */ // Label 461: @7396
     /* 7396 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(7407), // Rule ID 102 //
     /* 7401 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
     /* 7404 */   // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
     /* 7404 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
     /* 7407 */ // Label 462: @7407
     /* 7407 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(7431), // Rule ID 36 //
     /* 7412 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
     /* 7415 */   // MIs[0] root
     /* 7415 */   // No operand predicates
     /* 7415 */   // MIs[0] src
     /* 7415 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7419 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7423 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
     /* 7426 */   // MIs[1] x
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] y
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] z
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] a
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] b
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] c
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] d
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[1] e
     /* 7426 */   // No operand predicates
     /* 7426 */   // MIs[0] idx
     /* 7426 */   // No operand predicates
     /* 7426 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7428 */   // Combiner Rule #34: extract_vector_element_build_vector_trunc8
     /* 7428 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7431 */ // Label 463: @7431
     /* 7431 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(7455), // Rule ID 35 //
     /* 7436 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
     /* 7439 */   // MIs[0] root
     /* 7439 */   // No operand predicates
     /* 7439 */   // MIs[0] src
     /* 7439 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7443 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7447 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
     /* 7450 */   // MIs[1] x
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[1] y
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[1] z
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[1] a
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[1] b
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[1] c
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[1] d
     /* 7450 */   // No operand predicates
     /* 7450 */   // MIs[0] idx
     /* 7450 */   // No operand predicates
     /* 7450 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7452 */   // Combiner Rule #33: extract_vector_element_build_vector_trunc7
     /* 7452 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7455 */ // Label 464: @7455
     /* 7455 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(7479), // Rule ID 34 //
     /* 7460 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
     /* 7463 */   // MIs[0] root
     /* 7463 */   // No operand predicates
     /* 7463 */   // MIs[0] src
     /* 7463 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7467 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7471 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
     /* 7474 */   // MIs[1] x
     /* 7474 */   // No operand predicates
     /* 7474 */   // MIs[1] y
     /* 7474 */   // No operand predicates
     /* 7474 */   // MIs[1] z
     /* 7474 */   // No operand predicates
     /* 7474 */   // MIs[1] a
     /* 7474 */   // No operand predicates
     /* 7474 */   // MIs[1] b
     /* 7474 */   // No operand predicates
     /* 7474 */   // MIs[1] c
     /* 7474 */   // No operand predicates
     /* 7474 */   // MIs[0] idx
     /* 7474 */   // No operand predicates
     /* 7474 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7476 */   // Combiner Rule #32: extract_vector_element_build_vector_trunc6
     /* 7476 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7479 */ // Label 465: @7479
     /* 7479 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(7503), // Rule ID 33 //
     /* 7484 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
     /* 7487 */   // MIs[0] root
     /* 7487 */   // No operand predicates
     /* 7487 */   // MIs[0] src
     /* 7487 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7491 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7495 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
     /* 7498 */   // MIs[1] x
     /* 7498 */   // No operand predicates
     /* 7498 */   // MIs[1] y
     /* 7498 */   // No operand predicates
     /* 7498 */   // MIs[1] z
     /* 7498 */   // No operand predicates
     /* 7498 */   // MIs[1] a
     /* 7498 */   // No operand predicates
     /* 7498 */   // MIs[1] b
     /* 7498 */   // No operand predicates
     /* 7498 */   // MIs[0] idx
     /* 7498 */   // No operand predicates
     /* 7498 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7500 */   // Combiner Rule #31: extract_vector_element_build_vector_trunc5
     /* 7500 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7503 */ // Label 466: @7503
     /* 7503 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(7527), // Rule ID 32 //
     /* 7508 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
     /* 7511 */   // MIs[0] root
     /* 7511 */   // No operand predicates
     /* 7511 */   // MIs[0] src
     /* 7511 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7515 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7519 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
     /* 7522 */   // MIs[1] x
     /* 7522 */   // No operand predicates
     /* 7522 */   // MIs[1] y
     /* 7522 */   // No operand predicates
     /* 7522 */   // MIs[1] z
     /* 7522 */   // No operand predicates
     /* 7522 */   // MIs[1] a
     /* 7522 */   // No operand predicates
     /* 7522 */   // MIs[0] idx
     /* 7522 */   // No operand predicates
     /* 7522 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7524 */   // Combiner Rule #30: extract_vector_element_build_vector_trunc4
     /* 7524 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7527 */ // Label 467: @7527
     /* 7527 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(7551), // Rule ID 31 //
     /* 7532 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
     /* 7535 */   // MIs[0] root
     /* 7535 */   // No operand predicates
     /* 7535 */   // MIs[0] src
     /* 7535 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7539 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7543 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
     /* 7546 */   // MIs[1] x
     /* 7546 */   // No operand predicates
     /* 7546 */   // MIs[1] y
     /* 7546 */   // No operand predicates
     /* 7546 */   // MIs[1] z
     /* 7546 */   // No operand predicates
     /* 7546 */   // MIs[0] idx
     /* 7546 */   // No operand predicates
     /* 7546 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7548 */   // Combiner Rule #29: extract_vector_element_build_vector_trunc3
     /* 7548 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7551 */ // Label 468: @7551
     /* 7551 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(7585), // Rule ID 27 //
     /* 7556 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
     /* 7559 */   // MIs[0] root
     /* 7559 */   // No operand predicates
     /* 7559 */   // MIs[0] src
     /* 7559 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7563 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
     /* 7567 */   // MIs[1] x
     /* 7567 */   // No operand predicates
     /* 7567 */   // MIs[1] value
     /* 7567 */   // No operand predicates
     /* 7567 */   // MIs[1] idx
     /* 7567 */   // No operand predicates
     /* 7567 */   // MIs[0] idx
     /* 7567 */   GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
     /* 7572 */   GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
     /* 7577 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7579 */   // Combiner Rule #25: extract_vector_element_not_const
     /* 7579 */   GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
     /* 7584 */   GIR_EraseRootFromParent_Done,
     /* 7585 */ // Label 469: @7585
     /* 7585 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(7606), // Rule ID 28 //
     /* 7590 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
     /* 7593 */   // MIs[0] root
     /* 7593 */   // No operand predicates
     /* 7593 */   // MIs[0] src
     /* 7593 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7597 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
     /* 7601 */   // MIs[1] x
     /* 7601 */   // No operand predicates
     /* 7601 */   // MIs[1] value
     /* 7601 */   // No operand predicates
     /* 7601 */   // MIs[1] idx2
     /* 7601 */   // No operand predicates
     /* 7601 */   // MIs[0] idx1
     /* 7601 */   // No operand predicates
     /* 7601 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7603 */   // Combiner Rule #26: extract_vector_element_different_indices
     /* 7603 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
     /* 7606 */ // Label 470: @7606
     /* 7606 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(7635), // Rule ID 37 //
     /* 7611 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
     /* 7614 */   // MIs[0] root
     /* 7614 */   // No operand predicates
     /* 7614 */   // MIs[0] src
     /* 7614 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7618 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
     /* 7622 */   // MIs[1] src1
     /* 7622 */   // No operand predicates
     /* 7622 */   // MIs[1] src2
     /* 7622 */   // No operand predicates
     /* 7622 */   // MIs[1] mask
     /* 7622 */   // No operand predicates
     /* 7622 */   // MIs[0] idx
     /* 7622 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 7626 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 7630 */   // MIs[2] imm
     /* 7630 */   // No operand predicates
     /* 7630 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7632 */   // Combiner Rule #35: extract_vector_element_shuffle_vector
     /* 7632 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
     /* 7635 */ // Label 471: @7635
     /* 7635 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(7659), // Rule ID 30 //
     /* 7640 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
     /* 7643 */   // MIs[0] root
     /* 7643 */   // No operand predicates
     /* 7643 */   // MIs[0] src
     /* 7643 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7647 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
     /* 7651 */   GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
     /* 7654 */   // MIs[1] x
     /* 7654 */   // No operand predicates
     /* 7654 */   // MIs[1] y
     /* 7654 */   // No operand predicates
     /* 7654 */   // MIs[0] idx
     /* 7654 */   // No operand predicates
     /* 7654 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7656 */   // Combiner Rule #28: extract_vector_element_build_vector_trunc2
     /* 7656 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
     /* 7659 */ // Label 472: @7659
     /* 7659 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(7691), // Rule ID 29 //
     /* 7664 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
     /* 7667 */   // MIs[0] root
     /* 7667 */   // No operand predicates
     /* 7667 */   // MIs[0] src
     /* 7667 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7671 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
     /* 7675 */   GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
     /* 7678 */   // MIs[1] unused
     /* 7678 */   // No operand predicates
     /* 7678 */   // MIs[0] idx
     /* 7678 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
     /* 7682 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
     /* 7686 */   // MIs[2] imm
     /* 7686 */   // No operand predicates
     /* 7686 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7688 */   // Combiner Rule #27: extract_vector_element_build_vector
     /* 7688 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
     /* 7691 */ // Label 473: @7691
     /* 7691 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(7715), // Rule ID 21 //
     /* 7696 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
     /* 7699 */   // MIs[0] root
     /* 7699 */   // No operand predicates
     /* 7699 */   // MIs[0] vector
     /* 7699 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7703 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7707 */   // MIs[0] idx
     /* 7707 */   // No operand predicates
     /* 7707 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7709 */   // Combiner Rule #19: match_extract_of_element_undef_vector
     /* 7709 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7712 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 7714 */   GIR_EraseRootFromParent_Done,
     /* 7715 */ // Label 474: @7715
     /* 7715 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(7739), // Rule ID 22 //
     /* 7720 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
     /* 7723 */   // MIs[0] root
     /* 7723 */   // No operand predicates
     /* 7723 */   // MIs[0] vector
     /* 7723 */   // No operand predicates
     /* 7723 */   // MIs[0] idx
     /* 7723 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7727 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7731 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7733 */   // Combiner Rule #20: match_extract_of_element_undef_index
     /* 7733 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7736 */   GIR_RootToRootCopy, /*OpIdx*/0, // root
     /* 7738 */   GIR_EraseRootFromParent_Done,
     /* 7739 */ // Label 475: @7739
     /* 7739 */ GIM_Reject,
     /* 7740 */ // Label 94: @7740
     /* 7740 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(7751), // Rule ID 97 //
     /* 7745 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
     /* 7748 */   // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7748 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
     /* 7751 */ // Label 476: @7751
     /* 7751 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(7762), // Rule ID 99 //
     /* 7756 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
     /* 7759 */   // Combiner Rule #80: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7759 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
     /* 7762 */ // Label 477: @7762
     /* 7762 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(7773), // Rule ID 353 //
     /* 7767 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
     /* 7770 */   // Combiner Rule #206: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7770 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
     /* 7773 */ // Label 478: @7773
     /* 7773 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(7784), // Rule ID 355 //
     /* 7778 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
     /* 7781 */   // Combiner Rule #208: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
     /* 7781 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
     /* 7784 */ // Label 479: @7784
     /* 7784 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(7805), // Rule ID 354 //
     /* 7789 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
     /* 7792 */   // MIs[0] root
     /* 7792 */   // No operand predicates
     /* 7792 */   // MIs[0] src1
     /* 7792 */   // No operand predicates
     /* 7792 */   // MIs[0] undef
     /* 7792 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
     /* 7796 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
     /* 7800 */   // MIs[0] mask
     /* 7800 */   // No operand predicates
     /* 7800 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7802 */   // Combiner Rule #207: combine_shuffle_undef_rhs
     /* 7802 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
     /* 7805 */ // Label 480: @7805
     /* 7805 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(7816), // Rule ID 379 //
     /* 7810 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
     /* 7813 */   // MIs[0] dst
     /* 7813 */   // No operand predicates
     /* 7813 */   // MIs[0] src1
     /* 7813 */   // No operand predicates
     /* 7813 */   // MIs[0] src2
     /* 7813 */   // No operand predicates
     /* 7813 */   // MIs[0] mask
     /* 7813 */   // No operand predicates
     /* 7813 */   // Combiner Rule #230: combine_shuffle_vector_to_build_vector
     /* 7813 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
     /* 7816 */ // Label 481: @7816
     /* 7816 */ GIM_Reject,
     /* 7817 */ // Label 95: @7817
     /* 7817 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(7861), // Rule ID 229 //
     /* 7822 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
     /* 7825 */   // MIs[0] d
     /* 7825 */   // No operand predicates
     /* 7825 */   // MIs[0] src
     /* 7825 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7829 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 7833 */   // MIs[1] rev
     /* 7833 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 7837 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
     /* 7841 */   // MIs[2] val
     /* 7841 */   // No operand predicates
     /* 7841 */   // MIs[1] amt
     /* 7841 */   // No operand predicates
     /* 7841 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
     /* 7845 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7847 */   // Combiner Rule #164: bitreverse_lshr
     /* 7847 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
     /* 7850 */   GIR_RootToRootCopy, /*OpIdx*/0, // d
     /* 7852 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
     /* 7856 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
     /* 7860 */   GIR_EraseRootFromParent_Done,
     /* 7861 */ // Label 482: @7861
     /* 7861 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(7905), // Rule ID 228 //
     /* 7866 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
     /* 7869 */   // MIs[0] d
     /* 7869 */   // No operand predicates
     /* 7869 */   // MIs[0] src
     /* 7869 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7873 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
     /* 7877 */   // MIs[1] rev
     /* 7877 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
     /* 7881 */   GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
     /* 7885 */   // MIs[2] val
     /* 7885 */   // No operand predicates
     /* 7885 */   // MIs[1] amt
     /* 7885 */   // No operand predicates
     /* 7885 */   GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
     /* 7889 */   GIM_CheckIsSafeToFold, /*NumInsns*/2,
     /* 7891 */   // Combiner Rule #163: bitreverse_shl
     /* 7891 */   GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
     /* 7894 */   GIR_RootToRootCopy, /*OpIdx*/0, // d
     /* 7896 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
     /* 7900 */   GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
     /* 7904 */   GIR_EraseRootFromParent_Done,
     /* 7905 */ // Label 483: @7905
     /* 7905 */ GIM_Reject,
     /* 7906 */ // Label 96: @7906
     /* 7906 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(7927), // Rule ID 179 //
     /* 7911 */   GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
     /* 7914 */   // MIs[0] dst
     /* 7914 */   // No operand predicates
     /* 7914 */   // MIs[0] src0
     /* 7914 */   GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
     /* 7918 */   GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
     /* 7922 */   // MIs[1] cst
     /* 7922 */   // No operand predicates
     /* 7922 */   GIM_CheckIsSafeToFold, /*NumInsns*/1,
     /* 7924 */   // Combiner Rule #137: constant_fold_fsqrt
     /* 7924 */   GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
     /* 7927 */ // Label 484: @7927
     /* 7927 */ GIM_Reject,
     /* 7928 */ // Label 97: @7928
     /* 7928 */ GIM_Reject,
     /* 7929 */ }; // Size: 7929 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

