#ifdef GET_GICOMBINER_DEPS
#include "llvm/ADT/SparseBitVector.h"
namespace llvm {
extern cl::OptionCategory GICombinerOptionCategory;
}
#endif
#ifdef GET_GICOMBINER_TYPES
struct AArch64PostLegalizerCombinerImplRuleConfig {
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;
bool Parsed = !RuleIdentifier.getAsInteger(0, I);
if (Parsed)
return I;
#ifndef NDEBUG
switch (RuleIdentifier.size()) {
default: break;
case 9:
switch (RuleIdentifier[0]) {
default: break;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
break;
return 0;
case 'm':
if (memcmp(RuleIdentifier.data()+1, "ul_const", 8) != 0)
break;
return 11;
case 'o':
if (memcmp(RuleIdentifier.data()+1, "r_to_bsp", 8) != 0)
break;
return 62;
}
break;
case 10:
switch (RuleIdentifier[0]) {
default: break;
case 'i':
if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
break;
return 33;
case 'p':
if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
break;
return 32;
}
break;
case 11:
if (memcmp(RuleIdentifier.data()+0, "add_sub_reg", 11) != 0)
break;
return 38;
case 12:
if (memcmp(RuleIdentifier.data()+0, "redundant_or", 12) != 0)
break;
return 10;
case 13:
switch (RuleIdentifier[0]) {
default: break;
case 'l':
if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
break;
return 2;
case 'm':
switch (RuleIdentifier[1]) {
default: break;
case 'a':
if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
break;
return 23;
case 'e':
if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
break;
return 19;
}
break;
case 'r':
if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
break;
return 7;
case 'u':
if (memcmp(RuleIdentifier.data()+1, "nmerge_undef", 12) != 0)
break;
return 59;
}
break;
case 14:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "inop_same_val", 13) != 0)
break;
return 29;
case 'f':
if (memcmp(RuleIdentifier.data()+1, "neg_fneg_fold", 13) != 0)
break;
return 35;
}
break;
case 15:
switch (RuleIdentifier[0]) {
default: break;
case 'e':
if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
break;
return 1;
case 'o':
if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
break;
return 47;
case 's':
if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
break;
return 27;
}
break;
case 16:
switch (RuleIdentifier[0]) {
default: break;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "ombine_mul_cmlt", 15) != 0)
break;
return 67;
case 's':
if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
break;
switch (RuleIdentifier[7]) {
default: break;
case 't':
if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
break;
return 61;
case 'u':
if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
break;
return 20;
}
break;
case 'u':
if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
break;
return 49;
}
break;
case 17:
switch (RuleIdentifier[0]) {
default: break;
case 'a':
if (memcmp(RuleIdentifier.data()+1, "nyext_trunc_fold", 16) != 0)
break;
return 34;
case 'e':
if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
break;
return 58;
case 's':
if (memcmp(RuleIdentifier.data()+1, "elect_to_iminmax", 16) != 0)
break;
return 22;
case 'u':
if (memcmp(RuleIdentifier.data()+1, "ndef_to_int_zero", 16) != 0)
break;
return 50;
}
break;
case 18:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
break;
return 30;
case 'f':
switch (RuleIdentifier[1]) {
default: break;
case 'o':
if (memcmp(RuleIdentifier.data()+2, "ld_merge_to_zext", 16) != 0)
break;
return 24;
case 'p':
if (memcmp(RuleIdentifier.data()+2, "trunc_fpext_fold", 16) != 0)
break;
return 43;
}
break;
}
break;
case 19:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
break;
return 31;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "onstant_fold_binop", 18) != 0)
break;
return 25;
case 'p':
if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
break;
return 46;
case 'r':
switch (RuleIdentifier[1]) {
default: break;
case 'i':
if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
break;
return 28;
case 'o':
if (memcmp(RuleIdentifier.data()+2, "tate_out_of_range", 17) != 0)
break;
return 17;
}
break;
case 's':
if (RuleIdentifier[1] != 'e')
break;
switch (RuleIdentifier[2]) {
default: break;
case 'l':
if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp", 16) != 0)
break;
return 21;
case 'x':
if (memcmp(RuleIdentifier.data()+3, "t_trunc_sextload", 16) != 0)
break;
return 4;
}
break;
case 'u':
if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
break;
return 54;
}
break;
case 20:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
break;
return 42;
case 'r':
if (memcmp(RuleIdentifier.data()+1, "edundant_sext_inreg", 19) != 0)
break;
return 12;
case 's':
if (memcmp(RuleIdentifier.data()+1, "plit_store_zero_128", 19) != 0)
break;
return 48;
}
break;
case 21:
switch (RuleIdentifier[0]) {
default: break;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "ombine_concat_vector", 20) != 0)
break;
return 63;
case 'm':
if (memcmp(RuleIdentifier.data()+1, "utate_anyext_to_zext", 20) != 0)
break;
return 5;
case 'r':
if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
break;
return 37;
case 'u':
if (memcmp(RuleIdentifier.data()+1, "ndef_to_negative_one", 20) != 0)
break;
return 51;
}
break;
case 22:
switch (RuleIdentifier[0]) {
default: break;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fp_binop", 21) != 0)
break;
return 26;
case 'p':
if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
break;
return 55;
case 'r':
if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
break;
return 36;
case 't':
if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
break;
return 40;
}
break;
case 23:
if (memcmp(RuleIdentifier.data()+0, "propagate_undef_all_ops", 23) != 0)
break;
return 56;
case 24:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
break;
return 52;
case 'x':
if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
break;
return 8;
}
break;
case 25:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
switch (RuleIdentifier[1]) {
default: break;
case 'i':
if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
break;
switch (RuleIdentifier[22]) {
default: break;
case 'a':
if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
break;
return 14;
case 's':
if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
break;
return 15;
}
break;
case 'u':
if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
break;
return 39;
}
break;
case 'r':
if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
break;
return 45;
}
break;
case 26:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
break;
return 53;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
break;
switch (RuleIdentifier[3]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+4, "ine_indexed_load_store", 22) != 0)
break;
return 3;
case 'm':
if (memcmp(RuleIdentifier.data()+4, "ute_fp_constant_to_rhs", 22) != 0)
break;
return 65;
}
break;
case 'e':
if (memcmp(RuleIdentifier.data()+1, "xtractvecelt_pairwise_add", 25) != 0)
break;
return 9;
case 'r':
if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
break;
return 44;
}
break;
case 27:
switch (RuleIdentifier[0]) {
default: break;
case 'c':
if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
break;
switch (RuleIdentifier[3]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
break;
return 68;
case 'm':
if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
break;
return 64;
}
break;
case 't':
if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
break;
return 41;
}
break;
case 28:
if (memcmp(RuleIdentifier.data()+0, "propagate_undef_shuffle_mask", 28) != 0)
break;
return 57;
case 29:
switch (RuleIdentifier[0]) {
default: break;
case 'b':
if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
break;
return 16;
case 'i':
if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
break;
return 18;
}
break;
case 32:
if (memcmp(RuleIdentifier.data()+0, "bitfield_extract_from_sext_inreg", 32) != 0)
break;
return 13;
case 36:
if (memcmp(RuleIdentifier.data()+0, "insert_extract_vec_elt_out_of_bounds", 36) != 0)
break;
return 60;
case 37:
if (memcmp(RuleIdentifier.data()+0, "hoist_logic_op_with_same_opcode_hands", 37) != 0)
break;
return 6;
case 46:
if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
break;
return 66;
}
#endif
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, 69}};
}
const auto I = getRuleIdxForIdentifier(RangePair.first);
if (!I)
return std::nullopt;
return {{*I, *I + 1}};
}
bool AArch64PostLegalizerCombinerImplRuleConfig::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 AArch64PostLegalizerCombinerImplRuleConfig::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> AArch64PostLegalizerCombinerOption;
static cl::list<std::string> AArch64PostLegalizerCombinerDisableOption(
"aarch64postlegalizercombiner-disable-rule",
cl::desc("Disable one or more combiner rules temporarily in the AArch64PostLegalizerCombiner pass"),
cl::CommaSeparated,
cl::Hidden,
cl::cat(GICombinerOptionCategory),
cl::callback([](const std::string &Str) {
AArch64PostLegalizerCombinerOption.push_back(Str);
}));
static cl::list<std::string> AArch64PostLegalizerCombinerOnlyEnableOption(
"aarch64postlegalizercombiner-only-enable-rule",
cl::desc("Disable all rules in the AArch64PostLegalizerCombiner pass then re-enable the specified ones"),
cl::Hidden,
cl::cat(GICombinerOptionCategory),
cl::callback([](const std::string &CommaSeparatedArg) {
StringRef Str = CommaSeparatedArg;
AArch64PostLegalizerCombinerOption.push_back("*");
do {
auto X = Str.split(",");
AArch64PostLegalizerCombinerOption.push_back(("!" + X.first).str());
Str = X.second;
} while (!Str.empty());
}));
bool AArch64PostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
return !DisabledRules.test(RuleID);
}
bool AArch64PostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
for (StringRef Identifier : AArch64PostLegalizerCombinerOption) {
bool Enabled = Identifier.consume_front("!");
if (Enabled && !setRuleEnabled(Identifier))
return false;
if (!Enabled && !setRuleDisabled(Identifier))
return false;
}
return true;
}
#endif
#ifdef GET_GICOMBINER_TYPES
const unsigned MAX_SUBTARGET_PREDICATES = 0;
using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
#endif
#ifdef GET_GICOMBINER_CLASS_MEMBERS
PredicateBitset AvailableModuleFeatures;
mutable PredicateBitset AvailableFunctionFeatures;
PredicateBitset getAvailableFeatures() const {
return AvailableModuleFeatures | AvailableFunctionFeatures;
}
PredicateBitset
computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const;
PredicateBitset
computeAvailableFunctionFeatures(const AArch64Subtarget *Subtarget,
const MachineFunction *MF) const;
void setupGeneratedPerFunctionState(MachineFunction &MF) override;
#endif
#ifdef GET_GICOMBINER_CLASS_MEMBERS
mutable MatcherState State;
typedef ComplexRendererFns(AArch64PostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
typedef void(AArch64PostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
static AArch64PostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
static AArch64PostLegalizerCombinerImpl::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 testSimplePredicate(unsigned PredicateID) const override;
bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
#endif
#ifdef GET_GICOMBINER_IMPL
enum {
GILLT_s1,
};
const static size_t NumTypeObjects = 1;
const static LLT TypeObjects[] = {
LLT::scalar(1),
};
enum SubtargetFeatureBits : uint8_t {
};
PredicateBitset AArch64PostLegalizerCombinerImpl::
computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const {
PredicateBitset Features{};
return Features;
}
void AArch64PostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AArch64Subtarget *)&MF.getSubtarget(), &MF);
}
PredicateBitset AArch64PostLegalizerCombinerImpl::
computeAvailableFunctionFeatures(const AArch64Subtarget *Subtarget, const MachineFunction *MF) const {
PredicateBitset Features{};
return Features;
}
enum {
GIFBS_Invalid,
};
constexpr static PredicateBitset FeatureBitsets[] {
{},
};
enum {
GICP_Invalid,
};
AArch64PostLegalizerCombinerImpl::ComplexMatcherMemFn
AArch64PostLegalizerCombinerImpl::ComplexPredicateFns[] = {
nullptr,
};
enum {
GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
GICXXPred_MI_Predicate_GICombiner1,
GICXXPred_MI_Predicate_GICombiner2,
};
bool AArch64PostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
switch (PredicateID) {
case GICXXPred_MI_Predicate_GICombiner0: {
return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
}
case GICXXPred_MI_Predicate_GICombiner1: {
return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
}
case GICXXPred_MI_Predicate_GICombiner2: {
return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
}
}
llvm_unreachable("Unknown predicate");
return false;
}
bool AArch64PostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
llvm_unreachable("Unknown predicate");
return false;
}
bool AArch64PostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
llvm_unreachable("Unknown predicate");
return false;
}
bool AArch64PostLegalizerCombinerImpl::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,
};
bool AArch64PostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
}
enum {
GICR_Invalid,
};
AArch64PostLegalizerCombinerImpl::CustomRendererFn
AArch64PostLegalizerCombinerImpl::CustomRenderers[] = {
nullptr,
};
bool AArch64PostLegalizerCombinerImpl::tryCombineAll(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, 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,
};
bool AArch64PostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
switch(ApplyID) {
case GICXXCustomAction_GICombiner0:{
if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
return false;
}
Helper.applyCombineCopy(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner1:{
PreferredTuple GIMatchData_matchinfo;
if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner2:{
std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner3:{
IndexedLoadStoreMatchInfo GIMatchData_matchinfo;
if(![&](){return Helper.matchCombineIndexedLoadStore(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyCombineIndexedLoadStore(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner4:{
if(![&](){return Helper.matchSextTruncSextLoad(*State.MIs[0]);}()) {
return false;
}
Helper.applySextTruncSextLoad(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner5:{
if(![&](){return matchMutateAnyExtToZExt(*State.MIs[0], MRI);}()) {
return false;
}
applyMutateAnyExtToZExt(*State.MIs[0], MRI, B, Observer);
return true;
}
case GICXXCustomAction_GICombiner6:{
InstructionStepsMatchInfo GIMatchData_info;
if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner7:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner8:{
std::pair<Register, Register> GIMatchData_matchinfo;
if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner9:{
std::tuple<unsigned, LLT, Register> GIMatchData_matchinfo;
if(![&](){return matchExtractVecEltPairwiseAdd(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
return false;
}
applyExtractVecEltPairwiseAdd(*State.MIs[0], MRI, B, GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner10:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner11:{
std::function<void(MachineIRBuilder&, Register)> GIMatchData_matchinfo;
if(![&](){return matchAArch64MulConstCombine(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
return false;
}
applyAArch64MulConstCombine(*State.MIs[0], MRI, B, GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner12:{
if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
return false;
}
Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
return true;
}
case GICXXCustomAction_GICombiner13:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner14:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner15:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner16:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner17:{
if(![&](){return Helper.matchRotateOutOfRange(*State.MIs[0]);}()) {
return false;
}
Helper.applyRotateOutOfRange(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner18:{
int64_t GIMatchData_matchinfo;
if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner19:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchCombineMergeUnmerge(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner20:{
unsigned GIMatchData_matchinfo;
if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner21:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner22:{
std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner23:{
if(![&](){return matchFoldMergeToZext(*State.MIs[0], MRI);}()) {
return false;
}
applyFoldMergeToZext(*State.MIs[0], MRI, B, Observer);
return true;
}
case GICXXCustomAction_GICombiner24:{
APInt GIMatchData_matchinfo;
if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner25:{
ConstantFP* GIMatchData_matchinfo;
if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner26:{
if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
return false;
}
Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
return true;
}
case GICXXCustomAction_GICombiner27:{
if(![&](){return Helper.matchOperandIsZero(*State.MIs[0], 1);}()) {
return false;
}
Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
return true;
}
case GICXXCustomAction_GICombiner28:{
Register GIMatchData_info;
if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner29:{
Register GIMatchData_info;
if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
return false;
}
Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner30:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner31:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner32:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner33:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner34:{
if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
return false;
}
Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
return true;
}
case GICXXCustomAction_GICombiner35:{
PtrAddChain GIMatchData_matchinfo;
if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner36:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner37:{
if(![&](){return matchSplitStoreZero128(*State.MIs[0], MRI);}()) {
return false;
}
applySplitStoreZero128(*State.MIs[0], MRI, B, Observer);
return true;
}
case GICXXCustomAction_GICombiner38:{
if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
return true;
}
case GICXXCustomAction_GICombiner39:{
if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithConstant(*State.MIs[0], 0);
return true;
}
case GICXXCustomAction_GICombiner40:{
if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithConstant(*State.MIs[0], -1);
return true;
}
case GICXXCustomAction_GICombiner41:{
if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
return false;
}
Helper.replaceInstWithConstant(*State.MIs[0], 0);
return true;
}
case GICXXCustomAction_GICombiner42:{
if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
return false;
}
Helper.replaceInstWithUndef(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner43:{
if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithUndef(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner44:{
if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithUndef(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner45:{
if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithUndef(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner46:{
if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
return false;
}
Helper.eraseInst(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner47:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner48:{
if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
return false;
}
Helper.replaceInstWithUndef(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner49:{
std::function<void(MachineIRBuilder &)> GIMatchData_info;
if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
return true;
}
case GICXXCustomAction_GICombiner50:{
std::tuple<Register, Register, Register> GIMatchData_matchinfo;
if(![&](){return matchOrToBSP(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
return false;
}
applyOrToBSP(*State.MIs[0], MRI, B, GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner51:{
SmallVector<Register> GIMatchData_matchinfo;
if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner52:{
if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
return false;
}
Helper.applyCommuteBinOpOperands(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner53:{
if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
return false;
}
Helper.applyCommuteBinOpOperands(*State.MIs[0]);
return true;
}
case GICXXCustomAction_GICombiner54:{
std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner55:{
Register GIMatchData_matchinfo;
if(![&](){return matchCombineMulCMLT(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
return false;
}
applyCombineMulCMLT(*State.MIs[0], MRI, B, GIMatchData_matchinfo);
return true;
}
case GICXXCustomAction_GICombiner56:{
Register GIMatchData_matchinfo;
if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
return false;
}
Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
return true;
}
}
llvm_unreachable("Unknown Apply Action");
}
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define GIMT_Encode2 …
#define GIMT_Encode4 …
#define GIMT_Encode8 …
#else
#define GIMT_Encode2 …
#define GIMT_Encode4 …
#define GIMT_Encode8 …
#endif
const uint8_t *AArch64PostLegalizerCombinerImpl::getMatchTable() const {
constexpr static uint8_t MatchTable0[] = {
GIM_SwitchOpcode, 0, GIMT_Encode2(20), GIMT_Encode2(235), GIMT_Encode4(2978),
GIMT_Encode4(870), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(882),
GIMT_Encode4(1007),
GIMT_Encode4(1053),
GIMT_Encode4(1155),
GIMT_Encode4(1178),
GIMT_Encode4(1212),
GIMT_Encode4(1235), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(1269),
GIMT_Encode4(1408),
GIMT_Encode4(1522), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(1601), GIMT_Encode4(0),
GIMT_Encode4(1613),
GIMT_Encode4(1636),
GIMT_Encode4(1662),
GIMT_Encode4(1674),
GIMT_Encode4(1686),
GIMT_Encode4(1708),
GIMT_Encode4(1720),
GIMT_Encode4(1742), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(1754),
GIMT_Encode4(1777),
GIMT_Encode4(1800), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(1823), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(1857),
GIMT_Encode4(1880), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(1914), GIMT_Encode4(0),
GIMT_Encode4(1948),
GIMT_Encode4(2005),
GIMT_Encode4(2073), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2141),
GIMT_Encode4(2176),
GIMT_Encode4(2211), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2223),
GIMT_Encode4(2318), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2330), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2342),
GIMT_Encode4(2354),
GIMT_Encode4(2366),
GIMT_Encode4(2378),
GIMT_Encode4(2390),
GIMT_Encode4(2402), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2414),
GIMT_Encode4(2426),
GIMT_Encode4(2438),
GIMT_Encode4(2450), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2462),
GIMT_Encode4(2508),
GIMT_Encode4(2520), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2586), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2598), GIMT_Encode4(0),
GIMT_Encode4(2628),
GIMT_Encode4(2650),
GIMT_Encode4(2662),
GIMT_Encode4(2674),
GIMT_Encode4(2686), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2698),
GIMT_Encode4(2710),
GIMT_Encode4(2722),
GIMT_Encode4(2734),
GIMT_Encode4(2746),
GIMT_Encode4(2758), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2770), GIMT_Encode4(0),
GIMT_Encode4(2816),
GIMT_Encode4(2839),
GIMT_Encode4(2862),
GIMT_Encode4(2885),
GIMT_Encode4(2908), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
GIMT_Encode4(2920),
GIMT_Encode4(2932),
GIMT_Encode4(2955),
GIM_Try, GIMT_Encode4(881),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner0),
GIM_Reject,
GIM_Try, GIMT_Encode4(893),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(904),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner43),
GIM_Try, GIMT_Encode4(915),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Try, GIMT_Encode4(949),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SUB),
GIM_CheckIsSameOperandIgnoreCopies, 0, 2, 1, 2,
GIM_CheckCanReplaceReg, 0, 0, 1, 1,
GIM_CheckIsSafeToFold, 1,
GIR_ReplaceReg, 0, 0, 1, 1,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(983),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 2,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_SUB),
GIM_CheckIsSameOperandIgnoreCopies, 1, 2, 0, 1,
GIM_CheckCanReplaceReg, 0, 0, 1, 1,
GIM_CheckIsSafeToFold, 1,
GIR_ReplaceReg, 0, 0, 1, 1,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1006),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(1018),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1029),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner43),
GIM_Try, GIMT_Encode4(1052),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(1064),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner11),
GIM_Try, GIMT_Encode4(1075),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1086),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner39),
GIM_Try, GIMT_Encode4(1097),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Try, GIMT_Encode4(1108),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner55),
GIM_Try, GIMT_Encode4(1131),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 2,
GIR_ReplaceReg, 0, 0, 0, 2,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1154),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
GIM_CheckConstantInt8, 0, 2, 1,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(1166),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1177),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner27),
GIM_Reject,
GIM_Try, GIMT_Encode4(1189),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1200),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner27),
GIM_Try, GIMT_Encode4(1211),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner41),
GIM_Reject,
GIM_Try, GIMT_Encode4(1223),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1234),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner27),
GIM_Reject,
GIM_Try, GIMT_Encode4(1246),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1257),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner27),
GIM_Try, GIMT_Encode4(1268),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner41),
GIM_Reject,
GIM_Try, GIMT_Encode4(1280),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner2),
GIM_Try, GIMT_Encode4(1291),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner6),
GIM_Try, GIMT_Encode4(1302),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner7),
GIM_Try, GIMT_Encode4(1313),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1324),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner36),
GIM_Try, GIMT_Encode4(1335),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner39),
GIM_Try, GIMT_Encode4(1346),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Try, GIMT_Encode4(1383),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_LSHR),
GIM_RecordInsnIgnoreCopies, 2, 1, 2,
GIM_CheckOpcode, 2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_RecordInsnIgnoreCopies, 3, 0, 2,
GIM_CheckOpcode, 3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
GIM_CheckIsSafeToFold, 3,
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner14),
GIM_Try, GIMT_Encode4(1407),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
GIM_CheckIsSameOperandIgnoreCopies, 0, 2, 0, 1,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(1419),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner6),
GIM_Try, GIMT_Encode4(1430),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner10),
GIM_Try, GIMT_Encode4(1441),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1452),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner40),
GIM_Try, GIMT_Encode4(1463),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Try, GIMT_Encode4(1487),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
GIM_CheckIsSameOperandIgnoreCopies, 0, 2, 0, 1,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1510),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(1521),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner50),
GIM_Reject,
GIM_Try, GIMT_Encode4(1533),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner6),
GIM_Try, GIMT_Encode4(1544),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner8),
GIM_Try, GIMT_Encode4(1555),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1566),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner43),
GIM_Try, GIMT_Encode4(1577),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Try, GIMT_Encode4(1600),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(1612),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner47),
GIM_Reject,
GIM_Try, GIMT_Encode4(1624),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner19),
GIM_Try, GIMT_Encode4(1635),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner23),
GIM_Reject,
GIM_Try, GIMT_Encode4(1647),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner31),
GIM_Try, GIMT_Encode4(1661),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
GIM_CheckNumOperandsGE, 0, 2,
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner56),
GIM_Reject,
GIM_Try, GIMT_Encode4(1673),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner31),
GIM_Reject,
GIM_Try, GIMT_Encode4(1685),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner51),
GIM_Reject,
GIM_Try, GIMT_Encode4(1707),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
GIM_CheckIsSafeToFold, 1,
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner29),
GIM_Reject,
GIM_Try, GIMT_Encode4(1719),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner28),
GIM_Reject,
GIM_Try, GIMT_Encode4(1741),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_BITCAST),
GIM_CheckIsSafeToFold, 1,
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner34),
GIM_Reject,
GIM_Try, GIMT_Encode4(1753),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner54),
GIM_Reject,
GIM_Try, GIMT_Encode4(1765),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner1),
GIM_Try, GIMT_Encode4(1776),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner3),
GIM_Reject,
GIM_Try, GIMT_Encode4(1788),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner1),
GIM_Try, GIMT_Encode4(1799),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner3),
GIM_Reject,
GIM_Try, GIMT_Encode4(1811),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner1),
GIM_Try, GIMT_Encode4(1822),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner3),
GIM_Reject,
GIM_Try, GIMT_Encode4(1834),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner3),
GIM_Try, GIMT_Encode4(1845),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner46),
GIM_Try, GIMT_Encode4(1856),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner37),
GIM_Reject,
GIM_Try, GIMT_Encode4(1868),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner5),
GIM_Try, GIMT_Encode4(1879),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner30),
GIM_Reject,
GIM_Try, GIMT_Encode4(1891),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner32),
GIM_Try, GIMT_Encode4(1902),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner33),
GIM_Try, GIMT_Encode4(1913),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner43),
GIM_Reject,
GIM_Try, GIMT_Encode4(1925),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner4),
GIM_Try, GIMT_Encode4(1936),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner12),
GIM_Try, GIMT_Encode4(1947),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner13),
GIM_Reject,
GIM_Try, GIMT_Encode4(1959),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(1970),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner41),
GIM_Try, GIMT_Encode4(1981),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner42),
GIM_Try, GIMT_Encode4(2004),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2016),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner15),
GIM_Try, GIMT_Encode4(2027),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner16),
GIM_Try, GIMT_Encode4(2038),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2049),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner42),
GIM_Try, GIMT_Encode4(2072),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2084),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner15),
GIM_Try, GIMT_Encode4(2095),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner16),
GIM_Try, GIMT_Encode4(2106),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2117),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner42),
GIM_Try, GIMT_Encode4(2140),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2152),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner17),
GIM_Try, GIMT_Encode4(2175),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2187),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner17),
GIM_Try, GIMT_Encode4(2210),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2222),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner18),
GIM_Reject,
GIM_Try, GIMT_Encode4(2234),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner20),
GIM_Try, GIMT_Encode4(2245),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner22),
GIM_Try, GIMT_Encode4(2256),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner26),
GIM_Try, GIMT_Encode4(2267),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner49),
GIM_Try, GIMT_Encode4(2288),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_ICMP),
GIM_CheckIsSafeToFold, 1,
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner21),
GIM_Try, GIMT_Encode4(2317),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
GIM_CheckCanReplaceReg, 0, 0, 0, 3,
GIM_CheckIsSafeToFold, 1,
GIR_ReplaceReg, 0, 0, 0, 3,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2329),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2341),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2353),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2365),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2377),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2389),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2401),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2413),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2425),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2437),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2449),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2461),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2473),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner25),
GIM_Try, GIMT_Encode4(2484),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Try, GIMT_Encode4(2507),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
GIM_CheckCxxInsnPredicate, 0, GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2519),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner25),
GIM_Reject,
GIM_Try, GIMT_Encode4(2531),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner25),
GIM_Try, GIMT_Encode4(2542),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Try, GIMT_Encode4(2565),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
GIM_CheckCxxInsnPredicate, 0, GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Try, GIMT_Encode4(2585),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
GIM_CheckCxxInsnPredicate, 0, GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
GIR_BuildRootMI, GIMT_Encode2(TargetOpcode::G_FNEG),
GIR_RootToRootCopy, 0,
GIR_RootToRootCopy, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2597),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner25),
GIM_Reject,
GIM_Try, GIMT_Encode4(2627),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_FNEG),
GIM_CheckCanReplaceReg, 0, 0, 1, 1,
GIM_CheckIsSafeToFold, 1,
GIR_ReplaceReg, 0, 0, 1, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2649),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
GIM_RecordInsnIgnoreCopies, 1, 0, 1,
GIM_CheckOpcode, 1, GIMT_Encode2(TargetOpcode::G_FPEXT),
GIM_CheckIsSafeToFold, 1,
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner34),
GIM_Reject,
GIM_Try, GIMT_Encode4(2661),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner43),
GIM_Reject,
GIM_Try, GIMT_Encode4(2673),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner43),
GIM_Reject,
GIM_Try, GIMT_Encode4(2685),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner38),
GIM_Reject,
GIM_Try, GIMT_Encode4(2697),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner38),
GIM_Reject,
GIM_Try, GIMT_Encode4(2709),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Reject,
GIM_Try, GIMT_Encode4(2721),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Reject,
GIM_Try, GIMT_Encode4(2733),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Reject,
GIM_Try, GIMT_Encode4(2745),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Reject,
GIM_Try, GIMT_Encode4(2757),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Reject,
GIM_Try, GIMT_Encode4(2769),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner53),
GIM_Reject,
GIM_Try, GIMT_Encode4(2781),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2792),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner35),
GIM_Try, GIMT_Encode4(2815),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
GIM_CheckConstantInt8, 0, 2, 0,
GIM_CheckCanReplaceReg, 0, 0, 0, 1,
GIR_ReplaceReg, 0, 0, 0, 1,
GIR_EraseRootFromParent_Done,
GIM_Reject,
GIM_Try, GIMT_Encode4(2827),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2838),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2850),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2861),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2873),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2884),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2896),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner24),
GIM_Try, GIMT_Encode4(2907),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner52),
GIM_Reject,
GIM_Try, GIMT_Encode4(2919),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner41),
GIM_Reject,
GIM_Try, GIMT_Encode4(2931),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner48),
GIM_Reject,
GIM_Try, GIMT_Encode4(2943),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner9),
GIM_Try, GIMT_Encode4(2954),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner48),
GIM_Reject,
GIM_Try, GIMT_Encode4(2966),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner44),
GIM_Try, GIMT_Encode4(2977),
GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
GIR_DoneWithCustomAction, GIMT_Encode2(GICXXCustomAction_GICombiner45),
GIM_Reject,
GIM_Reject,
};
return MatchTable0;
}
#undef GIMT_Encode2
#undef GIMT_Encode4
#undef GIMT_Encode8
#endif
#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
AvailableFunctionFeatures()
#endif
#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
, State(0),
ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
#endif