1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* AMDGPURegBankCombinerImpl Combiner Match Table *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_GICOMBINER_DEPS
10#include "llvm/ADT/SparseBitVector.h"
11namespace llvm {
12extern cl::OptionCategory GICombinerOptionCategory;
13} // end namespace llvm
14#endif // ifdef GET_GICOMBINER_DEPS
15
16#ifdef GET_GICOMBINER_TYPES
17struct AMDGPURegBankCombinerImplRuleConfig {
18 SparseBitVector<> DisabledRules;
19
20 bool isRuleEnabled(unsigned RuleID) const;
21 bool parseCommandLineOption();
22 bool setRuleEnabled(StringRef RuleIdentifier);
23 bool setRuleDisabled(StringRef RuleIdentifier);
24};
25
26static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
27 uint64_t I;
28 // getAtInteger(...) returns false on success
29 bool Parsed = !RuleIdentifier.getAsInteger(Radix: 0, Result&: I);
30 if (Parsed)
31 return I;
32
33#ifndef NDEBUG
34 switch (RuleIdentifier.size()) {
35 default: break;
36 case 8: // 1 string to match.
37 if (memcmp(RuleIdentifier.data()+0, "d16_load", 8) != 0)
38 break;
39 return 46; // "d16_load"
40 case 10: // 3 strings to match.
41 switch (RuleIdentifier[0]) {
42 default: break;
43 case 'i': // 1 string to match.
44 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
45 break;
46 return 15; // "i2p_to_p2i"
47 case 'p': // 1 string to match.
48 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
49 break;
50 return 14; // "p2i_to_i2p"
51 case 's': // 1 string to match.
52 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
53 break;
54 return 42; // "sext_trunc"
55 }
56 break;
57 case 11: // 2 strings to match.
58 switch (RuleIdentifier[0]) {
59 default: break;
60 case 'a': // 1 string to match.
61 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
62 break;
63 return 20; // "add_sub_reg"
64 case 'u': // 1 string to match.
65 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
66 break;
67 return 1; // "unmerge_cst"
68 }
69 break;
70 case 12: // 2 strings to match.
71 switch (RuleIdentifier[0]) {
72 default: break;
73 case 's': // 1 string to match.
74 if (memcmp(RuleIdentifier.data()+1, "ext_of_sext", 11) != 0)
75 break;
76 return 36; // "sext_of_sext"
77 case 'z': // 1 string to match.
78 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
79 break;
80 return 34; // "zext_of_zext"
81 }
82 break;
83 case 13: // 3 strings to match.
84 switch (RuleIdentifier[0]) {
85 default: break;
86 case 'r': // 1 string to match.
87 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
88 break;
89 return 29; // "redundant_and"
90 case 'u': // 2 strings to match.
91 if (memcmp(RuleIdentifier.data()+1, "nmerge_", 7) != 0)
92 break;
93 switch (RuleIdentifier[8]) {
94 default: break;
95 case 'm': // 1 string to match.
96 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
97 break;
98 return 0; // "unmerge_merge"
99 case 'u': // 1 string to match.
100 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
101 break;
102 return 2; // "unmerge_undef"
103 }
104 break;
105 }
106 break;
107 case 14: // 6 strings to match.
108 switch (RuleIdentifier[0]) {
109 default: break;
110 case 'a': // 2 strings to match.
111 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
112 break;
113 switch (RuleIdentifier[10]) {
114 default: break;
115 case 's': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
117 break;
118 return 40; // "anyext_of_sext"
119 case 'z': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
121 break;
122 return 39; // "anyext_of_zext"
123 }
124 break;
125 case 'b': // 1 string to match.
126 if (memcmp(RuleIdentifier.data()+1, "inop_same_val", 13) != 0)
127 break;
128 return 11; // "binop_same_val"
129 case 'f': // 1 string to match.
130 if (memcmp(RuleIdentifier.data()+1, "neg_fneg_fold", 13) != 0)
131 break;
132 return 17; // "fneg_fneg_fold"
133 case 's': // 1 string to match.
134 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
135 break;
136 return 37; // "sext_of_anyext"
137 case 'z': // 1 string to match.
138 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
139 break;
140 return 35; // "zext_of_anyext"
141 }
142 break;
143 case 15: // 2 strings to match.
144 switch (RuleIdentifier[0]) {
145 default: break;
146 case 's': // 1 string to match.
147 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
148 break;
149 return 9; // "select_same_val"
150 case 'z': // 1 string to match.
151 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
152 break;
153 return 3; // "zext_trunc_fold"
154 }
155 break;
156 case 16: // 3 strings to match.
157 switch (RuleIdentifier[0]) {
158 default: break;
159 case 'a': // 1 string to match.
160 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
161 break;
162 return 38; // "anyext_of_anyext"
163 case 't': // 2 strings to match.
164 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
165 break;
166 switch (RuleIdentifier[12]) {
167 default: break;
168 case 's': // 1 string to match.
169 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
170 break;
171 return 32; // "truncate_of_sext"
172 case 'z': // 1 string to match.
173 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
174 break;
175 return 31; // "truncate_of_zext"
176 }
177 break;
178 }
179 break;
180 case 17: // 2 strings to match.
181 switch (RuleIdentifier[0]) {
182 default: break;
183 case 'a': // 1 string to match.
184 if (memcmp(RuleIdentifier.data()+1, "nyext_trunc_fold", 16) != 0)
185 break;
186 return 16; // "anyext_trunc_fold"
187 case 'f': // 1 string to match.
188 if (memcmp(RuleIdentifier.data()+1, "p_minmax_to_med3", 16) != 0)
189 break;
190 return 7; // "fp_minmax_to_med3"
191 }
192 break;
193 case 18: // 5 strings to match.
194 switch (RuleIdentifier[0]) {
195 default: break;
196 case 'b': // 1 string to match.
197 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
198 break;
199 return 12; // "binop_left_to_zero"
200 case 'f': // 2 strings to match.
201 if (RuleIdentifier[1] != 'p')
202 break;
203 switch (RuleIdentifier[2]) {
204 default: break;
205 case '_': // 1 string to match.
206 if (memcmp(RuleIdentifier.data()+3, "minmax_to_clamp", 15) != 0)
207 break;
208 return 6; // "fp_minmax_to_clamp"
209 case 't': // 1 string to match.
210 if (memcmp(RuleIdentifier.data()+3, "runc_fpext_fold", 15) != 0)
211 break;
212 return 25; // "fptrunc_fpext_fold"
213 }
214 break;
215 case 'i': // 1 string to match.
216 if (memcmp(RuleIdentifier.data()+1, "nt_minmax_to_med3", 17) != 0)
217 break;
218 return 4; // "int_minmax_to_med3"
219 case 't': // 1 string to match.
220 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
221 break;
222 return 33; // "truncate_of_anyext"
223 }
224 break;
225 case 19: // 3 strings to match.
226 switch (RuleIdentifier[0]) {
227 default: break;
228 case 'b': // 1 string to match.
229 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
230 break;
231 return 13; // "binop_right_to_zero"
232 case 'p': // 1 string to match.
233 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
234 break;
235 return 5; // "ptr_add_immed_chain"
236 case 'r': // 1 string to match.
237 if (memcmp(RuleIdentifier.data()+1, "ight_identity_zero", 18) != 0)
238 break;
239 return 10; // "right_identity_zero"
240 }
241 break;
242 case 20: // 1 string to match.
243 if (memcmp(RuleIdentifier.data()+0, "bitcast_bitcast_fold", 20) != 0)
244 break;
245 return 24; // "bitcast_bitcast_fold"
246 case 21: // 3 strings to match.
247 switch (RuleIdentifier[0]) {
248 default: break;
249 case 'c': // 2 strings to match.
250 switch (RuleIdentifier[1]) {
251 default: break;
252 case 'a': // 1 string to match.
253 if (memcmp(RuleIdentifier.data()+2, "nonicalize_zext_shl", 19) != 0)
254 break;
255 return 45; // "canonicalize_zext_shl"
256 case 'o': // 1 string to match.
257 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_cast_op", 19) != 0)
258 break;
259 return 30; // "constant_fold_cast_op"
260 }
261 break;
262 case 'r': // 1 string to match.
263 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
264 break;
265 return 19; // "right_identity_one_fp"
266 }
267 break;
268 case 22: // 4 strings to match.
269 switch (RuleIdentifier[0]) {
270 default: break;
271 case 'c': // 2 strings to match.
272 if (memcmp(RuleIdentifier.data()+1, "anonicalize_zext_", 17) != 0)
273 break;
274 switch (RuleIdentifier[18]) {
275 default: break;
276 case 'a': // 1 string to match.
277 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
278 break;
279 return 44; // "canonicalize_zext_ashr"
280 case 'l': // 1 string to match.
281 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
282 break;
283 return 43; // "canonicalize_zext_lshr"
284 }
285 break;
286 case 'r': // 1 string to match.
287 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
288 break;
289 return 18; // "right_identity_one_int"
290 case 't': // 1 string to match.
291 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
292 break;
293 return 22; // "trunc_buildvector_fold"
294 }
295 break;
296 case 24: // 2 strings to match.
297 switch (RuleIdentifier[0]) {
298 default: break;
299 case 'f': // 1 string to match.
300 if (memcmp(RuleIdentifier.data()+1, "med3_intrinsic_to_clamp", 23) != 0)
301 break;
302 return 8; // "fmed3_intrinsic_to_clamp"
303 case 's': // 1 string to match.
304 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_of_sext_inreg", 23) != 0)
305 break;
306 return 41; // "sext_inreg_of_sext_inreg"
307 }
308 break;
309 case 25: // 2 strings to match.
310 switch (RuleIdentifier[0]) {
311 default: break;
312 case 'b': // 1 string to match.
313 if (memcmp(RuleIdentifier.data()+1, "uildvector_identity_fold", 24) != 0)
314 break;
315 return 21; // "buildvector_identity_fold"
316 case 'r': // 1 string to match.
317 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
318 break;
319 return 28; // "right_identity_neg_one_fp"
320 }
321 break;
322 case 26: // 1 string to match.
323 if (memcmp(RuleIdentifier.data()+0, "right_identity_neg_zero_fp", 26) != 0)
324 break;
325 return 26; // "right_identity_neg_zero_fp"
326 case 27: // 1 string to match.
327 if (memcmp(RuleIdentifier.data()+0, "trunc_lshr_buildvector_fold", 27) != 0)
328 break;
329 return 23; // "trunc_lshr_buildvector_fold"
330 case 30: // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+0, "right_identity_neg_zero_fp_nsz", 30) != 0)
332 break;
333 return 27; // "right_identity_neg_zero_fp_nsz"
334 }
335#endif // ifndef NDEBUG
336
337 return std::nullopt;
338}
339static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
340 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
341 if (!RangePair.second.empty()) {
342 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
343 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
344 if (!First || !Last)
345 return std::nullopt;
346 if (First >= Last)
347 report_fatal_error(reason: "Beginning of range should be before end of range");
348 return {{*First, *Last + 1}};
349 }
350 if (RangePair.first == "*") {
351 return {{0, 47}};
352 }
353 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
354 if (!I)
355 return std::nullopt;
356 return {{*I, *I + 1}};
357}
358
359bool AMDGPURegBankCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
360 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
361 if (!MaybeRange)
362 return false;
363 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
364 DisabledRules.reset(Idx: I);
365 return true;
366}
367
368bool AMDGPURegBankCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
369 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
370 if (!MaybeRange)
371 return false;
372 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
373 DisabledRules.set(I);
374 return true;
375}
376
377static std::vector<std::string> AMDGPURegBankCombinerOption;
378static cl::list<std::string> AMDGPURegBankCombinerDisableOption(
379 "amdgpuregbankcombiner-disable-rule",
380 cl::desc("Disable one or more combiner rules temporarily in the AMDGPURegBankCombiner pass"),
381 cl::CommaSeparated,
382 cl::Hidden,
383 cl::cat(GICombinerOptionCategory),
384 cl::callback(CB: [](const std::string &Str) {
385 AMDGPURegBankCombinerOption.push_back(x: Str);
386 }));
387static cl::list<std::string> AMDGPURegBankCombinerOnlyEnableOption(
388 "amdgpuregbankcombiner-only-enable-rule",
389 cl::desc("Disable all rules in the AMDGPURegBankCombiner pass then re-enable the specified ones"),
390 cl::Hidden,
391 cl::cat(GICombinerOptionCategory),
392 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
393 StringRef Str = CommaSeparatedArg;
394 AMDGPURegBankCombinerOption.push_back(x: "*");
395 do {
396 auto X = Str.split(Separator: ",");
397 AMDGPURegBankCombinerOption.push_back(x: ("!" + X.first).str());
398 Str = X.second;
399 } while (!Str.empty());
400 }));
401
402
403bool AMDGPURegBankCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
404 return !DisabledRules.test(Idx: RuleID);
405}
406bool AMDGPURegBankCombinerImplRuleConfig::parseCommandLineOption() {
407 for (StringRef Identifier : AMDGPURegBankCombinerOption) {
408 bool Enabled = Identifier.consume_front(Prefix: "!");
409 if (Enabled && !setRuleEnabled(Identifier))
410 return false;
411 if (!Enabled && !setRuleDisabled(Identifier))
412 return false;
413 }
414 return true;
415}
416
417#endif // ifdef GET_GICOMBINER_TYPES
418
419#ifdef GET_GICOMBINER_TYPES
420const unsigned MAX_SUBTARGET_PREDICATES = 1;
421using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
422#endif // ifdef GET_GICOMBINER_TYPES
423
424#ifdef GET_GICOMBINER_CLASS_MEMBERS
425PredicateBitset AvailableModuleFeatures;
426mutable PredicateBitset AvailableFunctionFeatures;
427PredicateBitset getAvailableFeatures() const {
428 return AvailableModuleFeatures | AvailableFunctionFeatures;
429}
430PredicateBitset
431computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
432PredicateBitset
433computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
434 const MachineFunction *MF) const;
435void setupGeneratedPerFunctionState(MachineFunction &MF) override;
436#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
437#ifdef GET_GICOMBINER_CLASS_MEMBERS
438 mutable MatcherState State;
439 typedef ComplexRendererFns(AMDGPURegBankCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
440 typedef void(AMDGPURegBankCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
441 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
442 static AMDGPURegBankCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
443 static AMDGPURegBankCombinerImpl::CustomRendererFn CustomRenderers[];
444 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
445 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
446 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
447 const uint8_t *getMatchTable() const override;
448 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
449 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
450 bool testSimplePredicate(unsigned PredicateID) const override;
451 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
452#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
453
454#ifdef GET_GICOMBINER_IMPL
455// LLT Objects.
456enum {
457 GILLT_s1,
458};
459const static size_t NumTypeObjects = 1;
460const static LLT TypeObjects[] = {
461 LLT::scalar(1),
462};
463
464// Bits for subtarget features that participate in instruction matching.
465enum SubtargetFeatureBits : uint8_t {
466 Feature_anonymous_50959Bit = 0,
467};
468
469PredicateBitset AMDGPURegBankCombinerImpl::
470computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
471 PredicateBitset Features{};
472 if (Subtarget->d16PreservesUnusedBits())
473 Features.set(Feature_anonymous_50959Bit);
474 return Features;
475}
476
477void AMDGPURegBankCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
478 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
479}
480PredicateBitset AMDGPURegBankCombinerImpl::
481computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
482 PredicateBitset Features{};
483 return Features;
484}
485
486// Feature bitsets.
487enum {
488 GIFBS_Invalid,
489 GIFBS_anonymous_50959,
490};
491constexpr static PredicateBitset FeatureBitsets[] {
492 {}, // GIFBS_Invalid
493 {Feature_anonymous_50959Bit, },
494};
495
496// ComplexPattern predicates.
497enum {
498 GICP_Invalid,
499};
500// See constructor for table contents
501
502AMDGPURegBankCombinerImpl::ComplexMatcherMemFn
503AMDGPURegBankCombinerImpl::ComplexPredicateFns[] = {
504 nullptr, // GICP_Invalid
505};
506
507enum {
508 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
509 GICXXPred_MI_Predicate_GICombiner1,
510 GICXXPred_MI_Predicate_GICombiner2,
511 GICXXPred_MI_Predicate_GICombiner3,
512};
513bool AMDGPURegBankCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
514 switch (PredicateID) {
515 case GICXXPred_MI_Predicate_GICombiner0: {
516 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
517 }
518 case GICXXPred_MI_Predicate_GICombiner1: {
519 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
520 }
521 case GICXXPred_MI_Predicate_GICombiner2: {
522 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
523 }
524 case GICXXPred_MI_Predicate_GICombiner3: {
525 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
526 }
527 }
528 llvm_unreachable("Unknown predicate");
529 return false;
530}
531bool AMDGPURegBankCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
532 llvm_unreachable("Unknown predicate");
533 return false;
534}
535bool AMDGPURegBankCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
536 llvm_unreachable("Unknown predicate");
537 return false;
538}
539bool AMDGPURegBankCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
540 llvm_unreachable("Unknown predicate");
541 return false;
542}
543bool AMDGPURegBankCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
544 llvm_unreachable("Unknown predicate");
545 return false;
546}
547enum {
548 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
549 GICXXPred_Simple_IsRule1Enabled,
550 GICXXPred_Simple_IsRule2Enabled,
551 GICXXPred_Simple_IsRule3Enabled,
552 GICXXPred_Simple_IsRule4Enabled,
553 GICXXPred_Simple_IsRule5Enabled,
554 GICXXPred_Simple_IsRule6Enabled,
555 GICXXPred_Simple_IsRule7Enabled,
556 GICXXPred_Simple_IsRule8Enabled,
557 GICXXPred_Simple_IsRule9Enabled,
558 GICXXPred_Simple_IsRule10Enabled,
559 GICXXPred_Simple_IsRule11Enabled,
560 GICXXPred_Simple_IsRule12Enabled,
561 GICXXPred_Simple_IsRule13Enabled,
562 GICXXPred_Simple_IsRule14Enabled,
563 GICXXPred_Simple_IsRule15Enabled,
564 GICXXPred_Simple_IsRule16Enabled,
565 GICXXPred_Simple_IsRule17Enabled,
566 GICXXPred_Simple_IsRule18Enabled,
567 GICXXPred_Simple_IsRule19Enabled,
568 GICXXPred_Simple_IsRule20Enabled,
569 GICXXPred_Simple_IsRule21Enabled,
570 GICXXPred_Simple_IsRule22Enabled,
571 GICXXPred_Simple_IsRule23Enabled,
572 GICXXPred_Simple_IsRule24Enabled,
573 GICXXPred_Simple_IsRule25Enabled,
574 GICXXPred_Simple_IsRule26Enabled,
575 GICXXPred_Simple_IsRule27Enabled,
576 GICXXPred_Simple_IsRule28Enabled,
577 GICXXPred_Simple_IsRule29Enabled,
578 GICXXPred_Simple_IsRule30Enabled,
579 GICXXPred_Simple_IsRule31Enabled,
580 GICXXPred_Simple_IsRule32Enabled,
581 GICXXPred_Simple_IsRule33Enabled,
582 GICXXPred_Simple_IsRule34Enabled,
583 GICXXPred_Simple_IsRule35Enabled,
584 GICXXPred_Simple_IsRule36Enabled,
585 GICXXPred_Simple_IsRule37Enabled,
586 GICXXPred_Simple_IsRule38Enabled,
587 GICXXPred_Simple_IsRule39Enabled,
588 GICXXPred_Simple_IsRule40Enabled,
589 GICXXPred_Simple_IsRule41Enabled,
590 GICXXPred_Simple_IsRule42Enabled,
591 GICXXPred_Simple_IsRule43Enabled,
592 GICXXPred_Simple_IsRule44Enabled,
593 GICXXPred_Simple_IsRule45Enabled,
594 GICXXPred_Simple_IsRule46Enabled,
595};
596
597bool AMDGPURegBankCombinerImpl::testSimplePredicate(unsigned Predicate) const {
598 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
599}
600// Custom renderers.
601enum {
602 GICR_Invalid,
603};
604AMDGPURegBankCombinerImpl::CustomRendererFn
605AMDGPURegBankCombinerImpl::CustomRenderers[] = {
606 nullptr, // GICR_Invalid
607};
608
609bool AMDGPURegBankCombinerImpl::tryCombineAll(MachineInstr &I) const {
610 const TargetSubtargetInfo &ST = MF.getSubtarget();
611 const PredicateBitset AvailableFeatures = getAvailableFeatures();
612 B.setInstrAndDebugLoc(I);
613 State.MIs.clear();
614 State.MIs.push_back(&I);
615 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
616 return true;
617 }
618
619 return false;
620}
621
622enum {
623 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
624 GICXXCustomAction_GICombiner1,
625 GICXXCustomAction_GICombiner2,
626 GICXXCustomAction_GICombiner3,
627 GICXXCustomAction_GICombiner4,
628 GICXXCustomAction_GICombiner5,
629 GICXXCustomAction_GICombiner6,
630 GICXXCustomAction_GICombiner7,
631 GICXXCustomAction_GICombiner8,
632 GICXXCustomAction_GICombiner9,
633 GICXXCustomAction_GICombiner10,
634 GICXXCustomAction_GICombiner11,
635 GICXXCustomAction_GICombiner12,
636 GICXXCustomAction_GICombiner13,
637 GICXXCustomAction_GICombiner14,
638 GICXXCustomAction_GICombiner15,
639 GICXXCustomAction_GICombiner16,
640 GICXXCustomAction_GICombiner17,
641 GICXXCustomAction_GICombiner18,
642 GICXXCustomAction_GICombiner19,
643 GICXXCustomAction_GICombiner20,
644 GICXXCustomAction_GICombiner21,
645 GICXXCustomAction_GICombiner22,
646 GICXXCustomAction_GICombiner23,
647 GICXXCustomAction_GICombiner24,
648};
649bool AMDGPURegBankCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
650 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
651 switch(ApplyID) {
652 case GICXXCustomAction_GICombiner0:{
653 SmallVector<Register> GIMatchData_info;
654 // Match Patterns
655 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
656 return false;
657 }
658 // Apply Patterns
659 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
660 return true;
661 }
662 case GICXXCustomAction_GICombiner1:{
663 SmallVector<APInt, 8> GIMatchData_info;
664 // Match Patterns
665 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
666 return false;
667 }
668 // Apply Patterns
669 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
670 return true;
671 }
672 case GICXXCustomAction_GICombiner2:{
673 std::function<void(MachineIRBuilder &)> GIMatchData_info;
674 // Match Patterns
675 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
676 return false;
677 }
678 // Apply Patterns
679 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
680 return true;
681 }
682 case GICXXCustomAction_GICombiner3:{
683 Register GIMatchData_matchinfo;
684 // Match Patterns
685 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
686 return false;
687 }
688 // Apply Patterns
689 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
690 return true;
691 }
692 case GICXXCustomAction_GICombiner4:{
693 Med3MatchInfo GIMatchData_matchinfo;
694 // Match Patterns
695 if(![&](){return matchIntMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
696 return false;
697 }
698 // Apply Patterns
699 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
700 return true;
701 }
702 case GICXXCustomAction_GICombiner5:{
703 PtrAddChain GIMatchData_matchinfo;
704 // Match Patterns
705 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
706 return false;
707 }
708 // Apply Patterns
709 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
710 return true;
711 }
712 case GICXXCustomAction_GICombiner6:{
713 Register GIMatchData_matchinfo;
714 // Match Patterns
715 if(![&](){return matchFPMinMaxToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
716 return false;
717 }
718 // Apply Patterns
719 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
720 return true;
721 }
722 case GICXXCustomAction_GICombiner7:{
723 Med3MatchInfo GIMatchData_matchinfo;
724 // Match Patterns
725 if(![&](){return matchFPMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
726 return false;
727 }
728 // Apply Patterns
729 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
730 return true;
731 }
732 case GICXXCustomAction_GICombiner8:{
733 Register GIMatchData_matchinfo;
734 // Match Patterns
735 if(![&](){return matchFPMed3ToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
736 return false;
737 }
738 // Apply Patterns
739 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
740 return true;
741 }
742 case GICXXCustomAction_GICombiner9:{
743 // Match Patterns
744 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
745 return false;
746 }
747 // Apply Patterns
748 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
749 return true;
750 }
751 case GICXXCustomAction_GICombiner10:{
752 Register GIMatchData_info;
753 // Match Patterns
754 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
755 return false;
756 }
757 // Apply Patterns
758 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
759 return true;
760 }
761 case GICXXCustomAction_GICombiner11:{
762 Register GIMatchData_info;
763 // Match Patterns
764 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
765 return false;
766 }
767 // Apply Patterns
768 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
769 return true;
770 }
771 case GICXXCustomAction_GICombiner12:{
772 Register GIMatchData_matchinfo;
773 // Match Patterns
774 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
775 return false;
776 }
777 // Apply Patterns
778 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
779 return true;
780 }
781 case GICXXCustomAction_GICombiner13:{
782 Register GIMatchData_matchinfo;
783 // Match Patterns
784 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
785 return false;
786 }
787 // Apply Patterns
788 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
789 return true;
790 }
791 case GICXXCustomAction_GICombiner14:{
792 Register GIMatchData_matchinfo;
793 // Match Patterns
794 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
795 return false;
796 }
797 // Apply Patterns
798 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
799 return true;
800 }
801 case GICXXCustomAction_GICombiner15:{
802 Register GIMatchData_matchinfo;
803 // Match Patterns
804 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
805 return false;
806 }
807 // Apply Patterns
808 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
809 return true;
810 }
811 case GICXXCustomAction_GICombiner16:{
812 // Match Patterns
813 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
814 return false;
815 }
816 // Apply Patterns
817 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
818 return true;
819 }
820 case GICXXCustomAction_GICombiner17:{
821 Register GIMatchData_matchinfo;
822 // Match Patterns
823 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
824 return false;
825 }
826 // Apply Patterns
827 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
828 return true;
829 }
830 case GICXXCustomAction_GICombiner18:{
831 APInt GIMatchData_matchinfo;
832 // Match Patterns
833 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
834 return false;
835 }
836 // Apply Patterns
837 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
838 return true;
839 }
840 case GICXXCustomAction_GICombiner19:{
841 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
842 // Match Patterns
843 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
844 return false;
845 }
846 // Apply Patterns
847 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
848 return true;
849 }
850 case GICXXCustomAction_GICombiner20:{
851 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
852 // Match Patterns
853 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
854 return false;
855 }
856 // Apply Patterns
857 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
858 return true;
859 }
860 case GICXXCustomAction_GICombiner21:{
861 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
862 // Match Patterns
863 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
864 return false;
865 }
866 // Apply Patterns
867 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
868 return true;
869 }
870 case GICXXCustomAction_GICombiner22:{
871 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
872 // Match Patterns
873 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
874 return false;
875 }
876 // Apply Patterns
877 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
878 return true;
879 }
880 case GICXXCustomAction_GICombiner23:{
881 // Apply Patterns
882 applyCanonicalizeZextShiftAmt(*State.MIs[0], *State.MIs[1]);
883 return true;
884 }
885 case GICXXCustomAction_GICombiner24:{
886 // Apply Patterns
887 return combineD16Load(*State.MIs[0] );
888 return true;
889 }
890 }
891 llvm_unreachable("Unknown Apply Action");
892}
893#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
894#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
895#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
896#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)
897#else
898#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
899#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
900#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)
901#endif
902const uint8_t *AMDGPURegBankCombinerImpl::getMatchTable() const {
903 constexpr static uint8_t MatchTable0[] = {
904 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(55), GIMT_Encode2(4024), /*)*//*default:*//*Label 41*/ GIMT_Encode4(17474),
905 /* 10 */ /*TargetOpcode::G_ADD*//*Label 0*/ GIMT_Encode4(15886),
906 /* 14 */ /*TargetOpcode::G_SUB*//*Label 1*/ GIMT_Encode4(15978),
907 /* 18 */ /*TargetOpcode::G_MUL*//*Label 2*/ GIMT_Encode4(16002),
908 /* 22 */ /*TargetOpcode::G_SDIV*//*Label 3*/ GIMT_Encode4(16089),
909 /* 26 */ /*TargetOpcode::G_UDIV*//*Label 4*/ GIMT_Encode4(16130),
910 /* 30 */ /*TargetOpcode::G_SREM*//*Label 5*/ GIMT_Encode4(16171),
911 /* 34 */ /*TargetOpcode::G_UREM*//*Label 6*/ GIMT_Encode4(16212), GIMT_Encode4(0), GIMT_Encode4(0),
912 /* 46 */ /*TargetOpcode::G_AND*//*Label 7*/ GIMT_Encode4(16253),
913 /* 50 */ /*TargetOpcode::G_OR*//*Label 8*/ GIMT_Encode4(16289),
914 /* 54 */ /*TargetOpcode::G_XOR*//*Label 9*/ GIMT_Encode4(16337), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
915 /* 110 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 10*/ GIMT_Encode4(16361), GIMT_Encode4(0), GIMT_Encode4(0),
916 /* 122 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 11*/ GIMT_Encode4(16395),
917 /* 126 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 12*/ GIMT_Encode4(16407), GIMT_Encode4(0),
918 /* 134 */ /*TargetOpcode::G_PTRTOINT*//*Label 13*/ GIMT_Encode4(16419),
919 /* 138 */ /*TargetOpcode::G_INTTOPTR*//*Label 14*/ GIMT_Encode4(16441),
920 /* 142 */ /*TargetOpcode::G_BITCAST*//*Label 15*/ GIMT_Encode4(16453), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
921 /* 346 */ /*TargetOpcode::G_ANYEXT*//*Label 16*/ GIMT_Encode4(16489),
922 /* 350 */ /*TargetOpcode::G_TRUNC*//*Label 17*/ GIMT_Encode4(16575), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
923 /* 382 */ /*TargetOpcode::G_SEXT*//*Label 18*/ GIMT_Encode4(16661),
924 /* 386 */ /*TargetOpcode::G_SEXT_INREG*//*Label 19*/ GIMT_Encode4(16736),
925 /* 390 */ /*TargetOpcode::G_ZEXT*//*Label 20*/ GIMT_Encode4(16758),
926 /* 394 */ /*TargetOpcode::G_SHL*//*Label 21*/ GIMT_Encode4(16823),
927 /* 398 */ /*TargetOpcode::G_LSHR*//*Label 22*/ GIMT_Encode4(16908),
928 /* 402 */ /*TargetOpcode::G_ASHR*//*Label 23*/ GIMT_Encode4(16993), GIMT_Encode4(0), GIMT_Encode4(0),
929 /* 414 */ /*TargetOpcode::G_ROTR*//*Label 24*/ GIMT_Encode4(17078),
930 /* 418 */ /*TargetOpcode::G_ROTL*//*Label 25*/ GIMT_Encode4(17102), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
931 /* 438 */ /*TargetOpcode::G_SELECT*//*Label 26*/ GIMT_Encode4(17126), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
932 /* 546 */ /*TargetOpcode::G_FADD*//*Label 27*/ GIMT_Encode4(17138), GIMT_Encode4(0),
933 /* 554 */ /*TargetOpcode::G_FMUL*//*Label 28*/ GIMT_Encode4(17191), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
934 /* 618 */ /*TargetOpcode::G_FNEG*//*Label 29*/ GIMT_Encode4(17235), GIMT_Encode4(0),
935 /* 626 */ /*TargetOpcode::G_FPTRUNC*//*Label 30*/ GIMT_Encode4(17265), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
936 /* 670 */ /*TargetOpcode::G_FMINNUM*//*Label 31*/ GIMT_Encode4(17287),
937 /* 674 */ /*TargetOpcode::G_FMAXNUM*//*Label 32*/ GIMT_Encode4(17310),
938 /* 678 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 33*/ GIMT_Encode4(17333),
939 /* 682 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 34*/ GIMT_Encode4(17356), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
940 /* 734 */ /*TargetOpcode::G_PTR_ADD*//*Label 35*/ GIMT_Encode4(17379), GIMT_Encode4(0),
941 /* 742 */ /*TargetOpcode::G_SMIN*//*Label 36*/ GIMT_Encode4(17414),
942 /* 746 */ /*TargetOpcode::G_SMAX*//*Label 37*/ GIMT_Encode4(17426),
943 /* 750 */ /*TargetOpcode::G_UMIN*//*Label 38*/ GIMT_Encode4(17438),
944 /* 754 */ /*TargetOpcode::G_UMAX*//*Label 39*/ GIMT_Encode4(17450), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
945 /* 15882 */ /*AMDGPU::G_AMDGPU_FMED3*//*Label 40*/ GIMT_Encode4(17462),
946 /* 15886 */ // Label 0: @15886
947 /* 15886 */ GIM_Try, /*On fail goto*//*Label 42*/ GIMT_Encode4(15920), // Rule ID 47 //
948 /* 15891 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
949 /* 15894 */ // MIs[0] dst
950 /* 15894 */ // No operand predicates
951 /* 15894 */ // MIs[0] __add_sub_reg_match_0.tmp
952 /* 15894 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
953 /* 15898 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
954 /* 15902 */ // MIs[1] src
955 /* 15902 */ // No operand predicates
956 /* 15902 */ // MIs[1] __add_sub_reg_match_0.x
957 /* 15902 */ // No operand predicates
958 /* 15902 */ // MIs[0] __add_sub_reg_match_0.x
959 /* 15902 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
960 /* 15907 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
961 /* 15912 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
962 /* 15914 */ // Combiner Rule #20: add_sub_reg @ [__add_sub_reg_match_0[1]]
963 /* 15914 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
964 /* 15919 */ GIR_EraseRootFromParent_Done,
965 /* 15920 */ // Label 42: @15920
966 /* 15920 */ GIM_Try, /*On fail goto*//*Label 43*/ GIMT_Encode4(15954), // Rule ID 46 //
967 /* 15925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
968 /* 15928 */ // MIs[0] dst
969 /* 15928 */ // No operand predicates
970 /* 15928 */ // MIs[0] __add_sub_reg_match_0.x
971 /* 15928 */ // No operand predicates
972 /* 15928 */ // MIs[0] __add_sub_reg_match_0.tmp
973 /* 15928 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
974 /* 15932 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
975 /* 15936 */ // MIs[1] src
976 /* 15936 */ // No operand predicates
977 /* 15936 */ // MIs[1] __add_sub_reg_match_0.x
978 /* 15936 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
979 /* 15941 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
980 /* 15946 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
981 /* 15948 */ // Combiner Rule #20: add_sub_reg @ [__add_sub_reg_match_0[0]]
982 /* 15948 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
983 /* 15953 */ GIR_EraseRootFromParent_Done,
984 /* 15954 */ // Label 43: @15954
985 /* 15954 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(15977), // Rule ID 20 //
986 /* 15959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
987 /* 15962 */ // MIs[0] dst
988 /* 15962 */ // No operand predicates
989 /* 15962 */ // MIs[0] lhs
990 /* 15962 */ // No operand predicates
991 /* 15962 */ // MIs[0] Operand 2
992 /* 15962 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
993 /* 15966 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
994 /* 15971 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[1]]
995 /* 15971 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
996 /* 15976 */ GIR_EraseRootFromParent_Done,
997 /* 15977 */ // Label 44: @15977
998 /* 15977 */ GIM_Reject,
999 /* 15978 */ // Label 1: @15978
1000 /* 15978 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(16001), // Rule ID 19 //
1001 /* 15983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1002 /* 15986 */ // MIs[0] dst
1003 /* 15986 */ // No operand predicates
1004 /* 15986 */ // MIs[0] lhs
1005 /* 15986 */ // No operand predicates
1006 /* 15986 */ // MIs[0] Operand 2
1007 /* 15986 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1008 /* 15990 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1009 /* 15995 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[0]]
1010 /* 15995 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1011 /* 16000 */ GIR_EraseRootFromParent_Done,
1012 /* 16001 */ // Label 45: @16001
1013 /* 16001 */ GIM_Reject,
1014 /* 16002 */ // Label 2: @16002
1015 /* 16002 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(16042), // Rule ID 38 //
1016 /* 16007 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1017 /* 16010 */ // MIs[0] dst
1018 /* 16010 */ // No operand predicates
1019 /* 16010 */ // MIs[0] zero
1020 /* 16010 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1021 /* 16014 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1022 /* 16018 */ // MIs[1] Operand 1
1023 /* 16018 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1024 /* 16029 */ // MIs[0] rhs
1025 /* 16029 */ // No operand predicates
1026 /* 16029 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1027 /* 16034 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1028 /* 16036 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
1029 /* 16036 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1030 /* 16041 */ GIR_EraseRootFromParent_Done,
1031 /* 16042 */ // Label 46: @16042
1032 /* 16042 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(16065), // Rule ID 39 //
1033 /* 16047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1034 /* 16050 */ // MIs[0] dst
1035 /* 16050 */ // No operand predicates
1036 /* 16050 */ // MIs[0] lhs
1037 /* 16050 */ // No operand predicates
1038 /* 16050 */ // MIs[0] zero
1039 /* 16050 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1040 /* 16054 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1041 /* 16059 */ // Combiner Rule #13: binop_right_to_zero
1042 /* 16059 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1043 /* 16064 */ GIR_EraseRootFromParent_Done,
1044 /* 16065 */ // Label 47: @16065
1045 /* 16065 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(16088), // Rule ID 44 //
1046 /* 16070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
1047 /* 16073 */ // MIs[0] dst
1048 /* 16073 */ // No operand predicates
1049 /* 16073 */ // MIs[0] x
1050 /* 16073 */ // No operand predicates
1051 /* 16073 */ // MIs[0] Operand 2
1052 /* 16073 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
1053 /* 16077 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1054 /* 16082 */ // Combiner Rule #18: right_identity_one_int
1055 /* 16082 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1056 /* 16087 */ GIR_EraseRootFromParent_Done,
1057 /* 16088 */ // Label 48: @16088
1058 /* 16088 */ GIM_Reject,
1059 /* 16089 */ // Label 3: @16089
1060 /* 16089 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(16129), // Rule ID 34 //
1061 /* 16094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1062 /* 16097 */ // MIs[0] dst
1063 /* 16097 */ // No operand predicates
1064 /* 16097 */ // MIs[0] zero
1065 /* 16097 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1066 /* 16101 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1067 /* 16105 */ // MIs[1] Operand 1
1068 /* 16105 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1069 /* 16116 */ // MIs[0] rhs
1070 /* 16116 */ // No operand predicates
1071 /* 16116 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1072 /* 16121 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1073 /* 16123 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
1074 /* 16123 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1075 /* 16128 */ GIR_EraseRootFromParent_Done,
1076 /* 16129 */ // Label 49: @16129
1077 /* 16129 */ GIM_Reject,
1078 /* 16130 */ // Label 4: @16130
1079 /* 16130 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(16170), // Rule ID 35 //
1080 /* 16135 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1081 /* 16138 */ // MIs[0] dst
1082 /* 16138 */ // No operand predicates
1083 /* 16138 */ // MIs[0] zero
1084 /* 16138 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1085 /* 16142 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1086 /* 16146 */ // MIs[1] Operand 1
1087 /* 16146 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1088 /* 16157 */ // MIs[0] rhs
1089 /* 16157 */ // No operand predicates
1090 /* 16157 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1091 /* 16162 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1092 /* 16164 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
1093 /* 16164 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1094 /* 16169 */ GIR_EraseRootFromParent_Done,
1095 /* 16170 */ // Label 50: @16170
1096 /* 16170 */ GIM_Reject,
1097 /* 16171 */ // Label 5: @16171
1098 /* 16171 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(16211), // Rule ID 36 //
1099 /* 16176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1100 /* 16179 */ // MIs[0] dst
1101 /* 16179 */ // No operand predicates
1102 /* 16179 */ // MIs[0] zero
1103 /* 16179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1104 /* 16183 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1105 /* 16187 */ // MIs[1] Operand 1
1106 /* 16187 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1107 /* 16198 */ // MIs[0] rhs
1108 /* 16198 */ // No operand predicates
1109 /* 16198 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1110 /* 16203 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1111 /* 16205 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
1112 /* 16205 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1113 /* 16210 */ GIR_EraseRootFromParent_Done,
1114 /* 16211 */ // Label 51: @16211
1115 /* 16211 */ GIM_Reject,
1116 /* 16212 */ // Label 6: @16212
1117 /* 16212 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(16252), // Rule ID 37 //
1118 /* 16217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1119 /* 16220 */ // MIs[0] dst
1120 /* 16220 */ // No operand predicates
1121 /* 16220 */ // MIs[0] zero
1122 /* 16220 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1123 /* 16224 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1124 /* 16228 */ // MIs[1] Operand 1
1125 /* 16228 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1126 /* 16239 */ // MIs[0] rhs
1127 /* 16239 */ // No operand predicates
1128 /* 16239 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1129 /* 16244 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1130 /* 16246 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
1131 /* 16246 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1132 /* 16251 */ GIR_EraseRootFromParent_Done,
1133 /* 16252 */ // Label 52: @16252
1134 /* 16252 */ GIM_Reject,
1135 /* 16253 */ // Label 7: @16253
1136 /* 16253 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(16264), // Rule ID 57 //
1137 /* 16258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
1138 /* 16261 */ // Combiner Rule #29: redundant_and; wip_match_opcode 'G_AND'
1139 /* 16261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1140 /* 16264 */ // Label 53: @16264
1141 /* 16264 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(16288), // Rule ID 29 //
1142 /* 16269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1143 /* 16272 */ // MIs[0] dst
1144 /* 16272 */ // No operand predicates
1145 /* 16272 */ // MIs[0] src
1146 /* 16272 */ // No operand predicates
1147 /* 16272 */ // MIs[0] src
1148 /* 16272 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1149 /* 16277 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1150 /* 16282 */ // Combiner Rule #11: binop_same_val @ [__binop_same_val_match_0[0]]
1151 /* 16282 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1152 /* 16287 */ GIR_EraseRootFromParent_Done,
1153 /* 16288 */ // Label 54: @16288
1154 /* 16288 */ GIM_Reject,
1155 /* 16289 */ // Label 8: @16289
1156 /* 16289 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(16313), // Rule ID 30 //
1157 /* 16294 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1158 /* 16297 */ // MIs[0] dst
1159 /* 16297 */ // No operand predicates
1160 /* 16297 */ // MIs[0] src
1161 /* 16297 */ // No operand predicates
1162 /* 16297 */ // MIs[0] src
1163 /* 16297 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1164 /* 16302 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1165 /* 16307 */ // Combiner Rule #11: binop_same_val @ [__binop_same_val_match_0[1]]
1166 /* 16307 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1167 /* 16312 */ GIR_EraseRootFromParent_Done,
1168 /* 16313 */ // Label 55: @16313
1169 /* 16313 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(16336), // Rule ID 21 //
1170 /* 16318 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1171 /* 16321 */ // MIs[0] dst
1172 /* 16321 */ // No operand predicates
1173 /* 16321 */ // MIs[0] lhs
1174 /* 16321 */ // No operand predicates
1175 /* 16321 */ // MIs[0] Operand 2
1176 /* 16321 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1177 /* 16325 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1178 /* 16330 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[2]]
1179 /* 16330 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1180 /* 16335 */ GIR_EraseRootFromParent_Done,
1181 /* 16336 */ // Label 56: @16336
1182 /* 16336 */ GIM_Reject,
1183 /* 16337 */ // Label 9: @16337
1184 /* 16337 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(16360), // Rule ID 22 //
1185 /* 16342 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1186 /* 16345 */ // MIs[0] dst
1187 /* 16345 */ // No operand predicates
1188 /* 16345 */ // MIs[0] lhs
1189 /* 16345 */ // No operand predicates
1190 /* 16345 */ // MIs[0] Operand 2
1191 /* 16345 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1192 /* 16349 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1193 /* 16354 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[3]]
1194 /* 16354 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1195 /* 16359 */ GIR_EraseRootFromParent_Done,
1196 /* 16360 */ // Label 57: @16360
1197 /* 16360 */ GIM_Reject,
1198 /* 16361 */ // Label 10: @16361
1199 /* 16361 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(16372), // Rule ID 0 //
1200 /* 16366 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
1201 /* 16369 */ // Combiner Rule #0: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
1202 /* 16369 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
1203 /* 16372 */ // Label 58: @16372
1204 /* 16372 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(16383), // Rule ID 1 //
1205 /* 16377 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
1206 /* 16380 */ // Combiner Rule #1: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
1207 /* 16380 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
1208 /* 16383 */ // Label 59: @16383
1209 /* 16383 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(16394), // Rule ID 2 //
1210 /* 16388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
1211 /* 16391 */ // Combiner Rule #2: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
1212 /* 16391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
1213 /* 16394 */ // Label 60: @16394
1214 /* 16394 */ GIM_Reject,
1215 /* 16395 */ // Label 11: @16395
1216 /* 16395 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(16406), // Rule ID 49 //
1217 /* 16400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
1218 /* 16403 */ // Combiner Rule #21: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
1219 /* 16403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1220 /* 16406 */ // Label 61: @16406
1221 /* 16406 */ GIM_Reject,
1222 /* 16407 */ // Label 12: @16407
1223 /* 16407 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(16418), // Rule ID 48 //
1224 /* 16412 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
1225 /* 16415 */ // Combiner Rule #21: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
1226 /* 16415 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1227 /* 16418 */ // Label 62: @16418
1228 /* 16418 */ GIM_Reject,
1229 /* 16419 */ // Label 13: @16419
1230 /* 16419 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(16440), // Rule ID 41 //
1231 /* 16424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
1232 /* 16427 */ // MIs[0] dst
1233 /* 16427 */ // No operand predicates
1234 /* 16427 */ // MIs[0] t
1235 /* 16427 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1236 /* 16431 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1237 /* 16435 */ // MIs[1] ptr
1238 /* 16435 */ // No operand predicates
1239 /* 16435 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1240 /* 16437 */ // Combiner Rule #15: i2p_to_p2i
1241 /* 16437 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
1242 /* 16440 */ // Label 63: @16440
1243 /* 16440 */ GIM_Reject,
1244 /* 16441 */ // Label 14: @16441
1245 /* 16441 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(16452), // Rule ID 40 //
1246 /* 16446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1247 /* 16449 */ // Combiner Rule #14: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
1248 /* 16449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
1249 /* 16452 */ // Label 64: @16452
1250 /* 16452 */ GIM_Reject,
1251 /* 16453 */ // Label 15: @16453
1252 /* 16453 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(16474), // Rule ID 52 //
1253 /* 16458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
1254 /* 16461 */ // MIs[0] dst
1255 /* 16461 */ // No operand predicates
1256 /* 16461 */ // MIs[0] src1
1257 /* 16461 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1258 /* 16465 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1259 /* 16469 */ // MIs[1] src0
1260 /* 16469 */ // No operand predicates
1261 /* 16469 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1262 /* 16471 */ // Combiner Rule #24: bitcast_bitcast_fold
1263 /* 16471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1264 /* 16474 */ // Label 65: @16474
1265 /* 16474 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(16488), // Rule ID 76 //
1266 /* 16479 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_anonymous_50959),
1267 /* 16482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
1268 /* 16485 */ // MIs[0] dst
1269 /* 16485 */ // No operand predicates
1270 /* 16485 */ // MIs[0] src
1271 /* 16485 */ // No operand predicates
1272 /* 16485 */ // Combiner Rule #46: d16_load
1273 /* 16485 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
1274 /* 16488 */ // Label 66: @16488
1275 /* 16488 */ GIM_Reject,
1276 /* 16489 */ // Label 16: @16489
1277 /* 16489 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(16500), // Rule ID 42 //
1278 /* 16494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
1279 /* 16497 */ // Combiner Rule #16: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
1280 /* 16497 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
1281 /* 16500 */ // Label 67: @16500
1282 /* 16500 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(16511), // Rule ID 60 //
1283 /* 16505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1284 /* 16508 */ // Combiner Rule #30: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
1285 /* 16508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1286 /* 16511 */ // Label 68: @16511
1287 /* 16511 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(16532), // Rule ID 68 //
1288 /* 16516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
1289 /* 16519 */ // MIs[0] root
1290 /* 16519 */ // No operand predicates
1291 /* 16519 */ // MIs[0] second
1292 /* 16519 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1293 /* 16523 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1294 /* 16527 */ // MIs[1] src
1295 /* 16527 */ // No operand predicates
1296 /* 16527 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1297 /* 16529 */ // Combiner Rule #38: anyext_of_anyext
1298 /* 16529 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1299 /* 16532 */ // Label 69: @16532
1300 /* 16532 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(16553), // Rule ID 70 //
1301 /* 16537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
1302 /* 16540 */ // MIs[0] root
1303 /* 16540 */ // No operand predicates
1304 /* 16540 */ // MIs[0] second
1305 /* 16540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1306 /* 16544 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1307 /* 16548 */ // MIs[1] src
1308 /* 16548 */ // No operand predicates
1309 /* 16548 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1310 /* 16550 */ // Combiner Rule #40: anyext_of_sext
1311 /* 16550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1312 /* 16553 */ // Label 70: @16553
1313 /* 16553 */ GIM_Try, /*On fail goto*//*Label 71*/ GIMT_Encode4(16574), // Rule ID 69 //
1314 /* 16558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
1315 /* 16561 */ // MIs[0] root
1316 /* 16561 */ // No operand predicates
1317 /* 16561 */ // MIs[0] second
1318 /* 16561 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1319 /* 16565 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1320 /* 16569 */ // MIs[1] src
1321 /* 16569 */ // No operand predicates
1322 /* 16569 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1323 /* 16571 */ // Combiner Rule #39: anyext_of_zext
1324 /* 16571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1325 /* 16574 */ // Label 71: @16574
1326 /* 16574 */ GIM_Reject,
1327 /* 16575 */ // Label 17: @16575
1328 /* 16575 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(16586), // Rule ID 50 //
1329 /* 16580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1330 /* 16583 */ // Combiner Rule #22: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
1331 /* 16583 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1332 /* 16586 */ // Label 72: @16586
1333 /* 16586 */ GIM_Try, /*On fail goto*//*Label 73*/ GIMT_Encode4(16597), // Rule ID 51 //
1334 /* 16591 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
1335 /* 16594 */ // Combiner Rule #23: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
1336 /* 16594 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1337 /* 16597 */ // Label 73: @16597
1338 /* 16597 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(16618), // Rule ID 63 //
1339 /* 16602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
1340 /* 16605 */ // MIs[0] root
1341 /* 16605 */ // No operand predicates
1342 /* 16605 */ // MIs[0] ext
1343 /* 16605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1344 /* 16609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1345 /* 16613 */ // MIs[1] src
1346 /* 16613 */ // No operand predicates
1347 /* 16613 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1348 /* 16615 */ // Combiner Rule #33: truncate_of_anyext
1349 /* 16615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1350 /* 16618 */ // Label 74: @16618
1351 /* 16618 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(16639), // Rule ID 62 //
1352 /* 16623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1353 /* 16626 */ // MIs[0] root
1354 /* 16626 */ // No operand predicates
1355 /* 16626 */ // MIs[0] ext
1356 /* 16626 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1357 /* 16630 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1358 /* 16634 */ // MIs[1] src
1359 /* 16634 */ // No operand predicates
1360 /* 16634 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1361 /* 16636 */ // Combiner Rule #32: truncate_of_sext
1362 /* 16636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1363 /* 16639 */ // Label 75: @16639
1364 /* 16639 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(16660), // Rule ID 61 //
1365 /* 16644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
1366 /* 16647 */ // MIs[0] root
1367 /* 16647 */ // No operand predicates
1368 /* 16647 */ // MIs[0] ext
1369 /* 16647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1370 /* 16651 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1371 /* 16655 */ // MIs[1] src
1372 /* 16655 */ // No operand predicates
1373 /* 16655 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1374 /* 16657 */ // Combiner Rule #31: truncate_of_zext
1375 /* 16657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1376 /* 16660 */ // Label 76: @16660
1377 /* 16660 */ GIM_Reject,
1378 /* 16661 */ // Label 18: @16661
1379 /* 16661 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(16672), // Rule ID 59 //
1380 /* 16666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1381 /* 16669 */ // Combiner Rule #30: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
1382 /* 16669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1383 /* 16672 */ // Label 77: @16672
1384 /* 16672 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(16693), // Rule ID 67 //
1385 /* 16677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
1386 /* 16680 */ // MIs[0] root
1387 /* 16680 */ // No operand predicates
1388 /* 16680 */ // MIs[0] second
1389 /* 16680 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1390 /* 16684 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1391 /* 16688 */ // MIs[1] src
1392 /* 16688 */ // No operand predicates
1393 /* 16688 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1394 /* 16690 */ // Combiner Rule #37: sext_of_anyext
1395 /* 16690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1396 /* 16693 */ // Label 78: @16693
1397 /* 16693 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(16714), // Rule ID 66 //
1398 /* 16698 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1399 /* 16701 */ // MIs[0] root
1400 /* 16701 */ // No operand predicates
1401 /* 16701 */ // MIs[0] second
1402 /* 16701 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1403 /* 16705 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1404 /* 16709 */ // MIs[1] src
1405 /* 16709 */ // No operand predicates
1406 /* 16709 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1407 /* 16711 */ // Combiner Rule #36: sext_of_sext
1408 /* 16711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1409 /* 16714 */ // Label 79: @16714
1410 /* 16714 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(16735), // Rule ID 72 //
1411 /* 16719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
1412 /* 16722 */ // MIs[0] root
1413 /* 16722 */ // No operand predicates
1414 /* 16722 */ // MIs[0] src
1415 /* 16722 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1416 /* 16726 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
1417 /* 16730 */ // MIs[1] x
1418 /* 16730 */ // No operand predicates
1419 /* 16730 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1420 /* 16732 */ // Combiner Rule #42: sext_trunc
1421 /* 16732 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
1422 /* 16735 */ // Label 80: @16735
1423 /* 16735 */ GIM_Reject,
1424 /* 16736 */ // Label 19: @16736
1425 /* 16736 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(16757), // Rule ID 71 //
1426 /* 16741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
1427 /* 16744 */ // MIs[0] dst
1428 /* 16744 */ // No operand predicates
1429 /* 16744 */ // MIs[0] x
1430 /* 16744 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1431 /* 16748 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
1432 /* 16752 */ // MIs[1] src
1433 /* 16752 */ // No operand predicates
1434 /* 16752 */ // MIs[1] a
1435 /* 16752 */ // No operand predicates
1436 /* 16752 */ // MIs[0] b
1437 /* 16752 */ // No operand predicates
1438 /* 16752 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1439 /* 16754 */ // Combiner Rule #41: sext_inreg_of_sext_inreg
1440 /* 16754 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
1441 /* 16757 */ // Label 81: @16757
1442 /* 16757 */ GIM_Reject,
1443 /* 16758 */ // Label 20: @16758
1444 /* 16758 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(16769), // Rule ID 3 //
1445 /* 16763 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
1446 /* 16766 */ // Combiner Rule #3: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
1447 /* 16766 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
1448 /* 16769 */ // Label 82: @16769
1449 /* 16769 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(16780), // Rule ID 58 //
1450 /* 16774 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1451 /* 16777 */ // Combiner Rule #30: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
1452 /* 16777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1453 /* 16780 */ // Label 83: @16780
1454 /* 16780 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(16801), // Rule ID 65 //
1455 /* 16785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
1456 /* 16788 */ // MIs[0] root
1457 /* 16788 */ // No operand predicates
1458 /* 16788 */ // MIs[0] second
1459 /* 16788 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1460 /* 16792 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1461 /* 16796 */ // MIs[1] src
1462 /* 16796 */ // No operand predicates
1463 /* 16796 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1464 /* 16798 */ // Combiner Rule #35: zext_of_anyext
1465 /* 16798 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1466 /* 16801 */ // Label 84: @16801
1467 /* 16801 */ GIM_Try, /*On fail goto*//*Label 85*/ GIMT_Encode4(16822), // Rule ID 64 //
1468 /* 16806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
1469 /* 16809 */ // MIs[0] root
1470 /* 16809 */ // No operand predicates
1471 /* 16809 */ // MIs[0] second
1472 /* 16809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1473 /* 16813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1474 /* 16817 */ // MIs[1] src
1475 /* 16817 */ // No operand predicates
1476 /* 16817 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1477 /* 16819 */ // Combiner Rule #34: zext_of_zext
1478 /* 16819 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1479 /* 16822 */ // Label 85: @16822
1480 /* 16822 */ GIM_Reject,
1481 /* 16823 */ // Label 21: @16823
1482 /* 16823 */ GIM_Try, /*On fail goto*//*Label 86*/ GIMT_Encode4(16863), // Rule ID 31 //
1483 /* 16828 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1484 /* 16831 */ // MIs[0] dst
1485 /* 16831 */ // No operand predicates
1486 /* 16831 */ // MIs[0] zero
1487 /* 16831 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1488 /* 16835 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1489 /* 16839 */ // MIs[1] Operand 1
1490 /* 16839 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1491 /* 16850 */ // MIs[0] rhs
1492 /* 16850 */ // No operand predicates
1493 /* 16850 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1494 /* 16855 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1495 /* 16857 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
1496 /* 16857 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1497 /* 16862 */ GIR_EraseRootFromParent_Done,
1498 /* 16863 */ // Label 86: @16863
1499 /* 16863 */ GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(16884), // Rule ID 75 //
1500 /* 16868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
1501 /* 16871 */ // MIs[0] dst
1502 /* 16871 */ // No operand predicates
1503 /* 16871 */ // MIs[0] src
1504 /* 16871 */ // No operand predicates
1505 /* 16871 */ // MIs[0] amt
1506 /* 16871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1507 /* 16875 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1508 /* 16879 */ // MIs[1] amtsrc
1509 /* 16879 */ // No operand predicates
1510 /* 16879 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1511 /* 16881 */ // Combiner Rule #45: canonicalize_zext_shl
1512 /* 16881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1513 /* 16884 */ // Label 87: @16884
1514 /* 16884 */ GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(16907), // Rule ID 23 //
1515 /* 16889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1516 /* 16892 */ // MIs[0] dst
1517 /* 16892 */ // No operand predicates
1518 /* 16892 */ // MIs[0] lhs
1519 /* 16892 */ // No operand predicates
1520 /* 16892 */ // MIs[0] Operand 2
1521 /* 16892 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1522 /* 16896 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1523 /* 16901 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[4]]
1524 /* 16901 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1525 /* 16906 */ GIR_EraseRootFromParent_Done,
1526 /* 16907 */ // Label 88: @16907
1527 /* 16907 */ GIM_Reject,
1528 /* 16908 */ // Label 22: @16908
1529 /* 16908 */ GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(16948), // Rule ID 32 //
1530 /* 16913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1531 /* 16916 */ // MIs[0] dst
1532 /* 16916 */ // No operand predicates
1533 /* 16916 */ // MIs[0] zero
1534 /* 16916 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1535 /* 16920 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1536 /* 16924 */ // MIs[1] Operand 1
1537 /* 16924 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1538 /* 16935 */ // MIs[0] rhs
1539 /* 16935 */ // No operand predicates
1540 /* 16935 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1541 /* 16940 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1542 /* 16942 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
1543 /* 16942 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1544 /* 16947 */ GIR_EraseRootFromParent_Done,
1545 /* 16948 */ // Label 89: @16948
1546 /* 16948 */ GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(16969), // Rule ID 73 //
1547 /* 16953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
1548 /* 16956 */ // MIs[0] dst
1549 /* 16956 */ // No operand predicates
1550 /* 16956 */ // MIs[0] src
1551 /* 16956 */ // No operand predicates
1552 /* 16956 */ // MIs[0] amt
1553 /* 16956 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1554 /* 16960 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1555 /* 16964 */ // MIs[1] amtsrc
1556 /* 16964 */ // No operand predicates
1557 /* 16964 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1558 /* 16966 */ // Combiner Rule #43: canonicalize_zext_lshr
1559 /* 16966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1560 /* 16969 */ // Label 90: @16969
1561 /* 16969 */ GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(16992), // Rule ID 25 //
1562 /* 16974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1563 /* 16977 */ // MIs[0] dst
1564 /* 16977 */ // No operand predicates
1565 /* 16977 */ // MIs[0] lhs
1566 /* 16977 */ // No operand predicates
1567 /* 16977 */ // MIs[0] Operand 2
1568 /* 16977 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1569 /* 16981 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1570 /* 16986 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[6]]
1571 /* 16986 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1572 /* 16991 */ GIR_EraseRootFromParent_Done,
1573 /* 16992 */ // Label 91: @16992
1574 /* 16992 */ GIM_Reject,
1575 /* 16993 */ // Label 23: @16993
1576 /* 16993 */ GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(17033), // Rule ID 33 //
1577 /* 16998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1578 /* 17001 */ // MIs[0] dst
1579 /* 17001 */ // No operand predicates
1580 /* 17001 */ // MIs[0] zero
1581 /* 17001 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1582 /* 17005 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1583 /* 17009 */ // MIs[1] Operand 1
1584 /* 17009 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1585 /* 17020 */ // MIs[0] rhs
1586 /* 17020 */ // No operand predicates
1587 /* 17020 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1588 /* 17025 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1589 /* 17027 */ // Combiner Rule #12: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
1590 /* 17027 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1591 /* 17032 */ GIR_EraseRootFromParent_Done,
1592 /* 17033 */ // Label 92: @17033
1593 /* 17033 */ GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(17054), // Rule ID 74 //
1594 /* 17038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
1595 /* 17041 */ // MIs[0] dst
1596 /* 17041 */ // No operand predicates
1597 /* 17041 */ // MIs[0] src
1598 /* 17041 */ // No operand predicates
1599 /* 17041 */ // MIs[0] amt
1600 /* 17041 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1601 /* 17045 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1602 /* 17049 */ // MIs[1] amtsrc
1603 /* 17049 */ // No operand predicates
1604 /* 17049 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1605 /* 17051 */ // Combiner Rule #44: canonicalize_zext_ashr
1606 /* 17051 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1607 /* 17054 */ // Label 93: @17054
1608 /* 17054 */ GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(17077), // Rule ID 24 //
1609 /* 17059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1610 /* 17062 */ // MIs[0] dst
1611 /* 17062 */ // No operand predicates
1612 /* 17062 */ // MIs[0] lhs
1613 /* 17062 */ // No operand predicates
1614 /* 17062 */ // MIs[0] Operand 2
1615 /* 17062 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1616 /* 17066 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1617 /* 17071 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[5]]
1618 /* 17071 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1619 /* 17076 */ GIR_EraseRootFromParent_Done,
1620 /* 17077 */ // Label 94: @17077
1621 /* 17077 */ GIM_Reject,
1622 /* 17078 */ // Label 24: @17078
1623 /* 17078 */ GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(17101), // Rule ID 28 //
1624 /* 17083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1625 /* 17086 */ // MIs[0] dst
1626 /* 17086 */ // No operand predicates
1627 /* 17086 */ // MIs[0] lhs
1628 /* 17086 */ // No operand predicates
1629 /* 17086 */ // MIs[0] Operand 2
1630 /* 17086 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1631 /* 17090 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1632 /* 17095 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[9]]
1633 /* 17095 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1634 /* 17100 */ GIR_EraseRootFromParent_Done,
1635 /* 17101 */ // Label 95: @17101
1636 /* 17101 */ GIM_Reject,
1637 /* 17102 */ // Label 25: @17102
1638 /* 17102 */ GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(17125), // Rule ID 27 //
1639 /* 17107 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1640 /* 17110 */ // MIs[0] dst
1641 /* 17110 */ // No operand predicates
1642 /* 17110 */ // MIs[0] lhs
1643 /* 17110 */ // No operand predicates
1644 /* 17110 */ // MIs[0] Operand 2
1645 /* 17110 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1646 /* 17114 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1647 /* 17119 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[8]]
1648 /* 17119 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1649 /* 17124 */ GIR_EraseRootFromParent_Done,
1650 /* 17125 */ // Label 96: @17125
1651 /* 17125 */ GIM_Reject,
1652 /* 17126 */ // Label 26: @17126
1653 /* 17126 */ GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(17137), // Rule ID 18 //
1654 /* 17131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
1655 /* 17134 */ // Combiner Rule #9: select_same_val; wip_match_opcode 'G_SELECT'
1656 /* 17134 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
1657 /* 17137 */ // Label 97: @17137
1658 /* 17137 */ GIM_Reject,
1659 /* 17138 */ // Label 27: @17138
1660 /* 17138 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(17161), // Rule ID 54 //
1661 /* 17143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
1662 /* 17146 */ // MIs[0] dst
1663 /* 17146 */ // No operand predicates
1664 /* 17146 */ // MIs[0] x
1665 /* 17146 */ // No operand predicates
1666 /* 17146 */ // MIs[0] y
1667 /* 17146 */ // No operand predicates
1668 /* 17146 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1669 /* 17150 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1670 /* 17155 */ // Combiner Rule #26: right_identity_neg_zero_fp
1671 /* 17155 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1672 /* 17160 */ GIR_EraseRootFromParent_Done,
1673 /* 17161 */ // Label 98: @17161
1674 /* 17161 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(17190), // Rule ID 55 //
1675 /* 17166 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
1676 /* 17169 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
1677 /* 17175 */ // MIs[0] dst
1678 /* 17175 */ // No operand predicates
1679 /* 17175 */ // MIs[0] x
1680 /* 17175 */ // No operand predicates
1681 /* 17175 */ // MIs[0] y
1682 /* 17175 */ // No operand predicates
1683 /* 17175 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
1684 /* 17179 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1685 /* 17184 */ // Combiner Rule #27: right_identity_neg_zero_fp_nsz
1686 /* 17184 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1687 /* 17189 */ GIR_EraseRootFromParent_Done,
1688 /* 17190 */ // Label 99: @17190
1689 /* 17190 */ GIM_Reject,
1690 /* 17191 */ // Label 28: @17191
1691 /* 17191 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(17214), // Rule ID 45 //
1692 /* 17196 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
1693 /* 17199 */ // MIs[0] dst
1694 /* 17199 */ // No operand predicates
1695 /* 17199 */ // MIs[0] x
1696 /* 17199 */ // No operand predicates
1697 /* 17199 */ // MIs[0] y
1698 /* 17199 */ // No operand predicates
1699 /* 17199 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
1700 /* 17203 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1701 /* 17208 */ // Combiner Rule #19: right_identity_one_fp
1702 /* 17208 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1703 /* 17213 */ GIR_EraseRootFromParent_Done,
1704 /* 17214 */ // Label 100: @17214
1705 /* 17214 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(17234), // Rule ID 56 //
1706 /* 17219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
1707 /* 17222 */ // MIs[0] dst
1708 /* 17222 */ // No operand predicates
1709 /* 17222 */ // MIs[0] x
1710 /* 17222 */ // No operand predicates
1711 /* 17222 */ // MIs[0] y
1712 /* 17222 */ // No operand predicates
1713 /* 17222 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
1714 /* 17226 */ // Combiner Rule #28: right_identity_neg_one_fp
1715 /* 17226 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
1716 /* 17229 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1717 /* 17231 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
1718 /* 17233 */ GIR_EraseRootFromParent_Done,
1719 /* 17234 */ // Label 101: @17234
1720 /* 17234 */ GIM_Reject,
1721 /* 17235 */ // Label 29: @17235
1722 /* 17235 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(17264), // Rule ID 43 //
1723 /* 17240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
1724 /* 17243 */ // MIs[0] dst
1725 /* 17243 */ // No operand predicates
1726 /* 17243 */ // MIs[0] t
1727 /* 17243 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1728 /* 17247 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
1729 /* 17251 */ // MIs[1] src
1730 /* 17251 */ // No operand predicates
1731 /* 17251 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1732 /* 17256 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1733 /* 17258 */ // Combiner Rule #17: fneg_fneg_fold
1734 /* 17258 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1735 /* 17263 */ GIR_EraseRootFromParent_Done,
1736 /* 17264 */ // Label 102: @17264
1737 /* 17264 */ GIM_Reject,
1738 /* 17265 */ // Label 30: @17265
1739 /* 17265 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(17286), // Rule ID 53 //
1740 /* 17270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
1741 /* 17273 */ // MIs[0] dst
1742 /* 17273 */ // No operand predicates
1743 /* 17273 */ // MIs[0] src1
1744 /* 17273 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1745 /* 17277 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
1746 /* 17281 */ // MIs[1] src0
1747 /* 17281 */ // No operand predicates
1748 /* 17281 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1749 /* 17283 */ // Combiner Rule #25: fptrunc_fpext_fold
1750 /* 17283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1751 /* 17286 */ // Label 103: @17286
1752 /* 17286 */ GIM_Reject,
1753 /* 17287 */ // Label 31: @17287
1754 /* 17287 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(17298), // Rule ID 10 //
1755 /* 17292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
1756 /* 17295 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMINNUM'
1757 /* 17295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
1758 /* 17298 */ // Label 104: @17298
1759 /* 17298 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(17309), // Rule ID 14 //
1760 /* 17303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
1761 /* 17306 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMINNUM'
1762 /* 17306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
1763 /* 17309 */ // Label 105: @17309
1764 /* 17309 */ GIM_Reject,
1765 /* 17310 */ // Label 32: @17310
1766 /* 17310 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(17321), // Rule ID 9 //
1767 /* 17315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
1768 /* 17318 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMAXNUM'
1769 /* 17318 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
1770 /* 17321 */ // Label 106: @17321
1771 /* 17321 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(17332), // Rule ID 13 //
1772 /* 17326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
1773 /* 17329 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMAXNUM'
1774 /* 17329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
1775 /* 17332 */ // Label 107: @17332
1776 /* 17332 */ GIM_Reject,
1777 /* 17333 */ // Label 33: @17333
1778 /* 17333 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(17344), // Rule ID 12 //
1779 /* 17338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
1780 /* 17341 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMINNUM_IEEE'
1781 /* 17341 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
1782 /* 17344 */ // Label 108: @17344
1783 /* 17344 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(17355), // Rule ID 16 //
1784 /* 17349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
1785 /* 17352 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMINNUM_IEEE'
1786 /* 17352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
1787 /* 17355 */ // Label 109: @17355
1788 /* 17355 */ GIM_Reject,
1789 /* 17356 */ // Label 34: @17356
1790 /* 17356 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(17367), // Rule ID 11 //
1791 /* 17361 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
1792 /* 17364 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMAXNUM_IEEE'
1793 /* 17364 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
1794 /* 17367 */ // Label 110: @17367
1795 /* 17367 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(17378), // Rule ID 15 //
1796 /* 17372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
1797 /* 17375 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMAXNUM_IEEE'
1798 /* 17375 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
1799 /* 17378 */ // Label 111: @17378
1800 /* 17378 */ GIM_Reject,
1801 /* 17379 */ // Label 35: @17379
1802 /* 17379 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(17390), // Rule ID 8 //
1803 /* 17384 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
1804 /* 17387 */ // Combiner Rule #5: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
1805 /* 17387 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
1806 /* 17390 */ // Label 112: @17390
1807 /* 17390 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(17413), // Rule ID 26 //
1808 /* 17395 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1809 /* 17398 */ // MIs[0] dst
1810 /* 17398 */ // No operand predicates
1811 /* 17398 */ // MIs[0] lhs
1812 /* 17398 */ // No operand predicates
1813 /* 17398 */ // MIs[0] Operand 2
1814 /* 17398 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1815 /* 17402 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1816 /* 17407 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[7]]
1817 /* 17407 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1818 /* 17412 */ GIR_EraseRootFromParent_Done,
1819 /* 17413 */ // Label 113: @17413
1820 /* 17413 */ GIM_Reject,
1821 /* 17414 */ // Label 36: @17414
1822 /* 17414 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(17425), // Rule ID 5 //
1823 /* 17419 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
1824 /* 17422 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_SMIN'
1825 /* 17422 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
1826 /* 17425 */ // Label 114: @17425
1827 /* 17425 */ GIM_Reject,
1828 /* 17426 */ // Label 37: @17426
1829 /* 17426 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(17437), // Rule ID 4 //
1830 /* 17431 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
1831 /* 17434 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_SMAX'
1832 /* 17434 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
1833 /* 17437 */ // Label 115: @17437
1834 /* 17437 */ GIM_Reject,
1835 /* 17438 */ // Label 38: @17438
1836 /* 17438 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(17449), // Rule ID 7 //
1837 /* 17443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
1838 /* 17446 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_UMIN'
1839 /* 17446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
1840 /* 17449 */ // Label 116: @17449
1841 /* 17449 */ GIM_Reject,
1842 /* 17450 */ // Label 39: @17450
1843 /* 17450 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(17461), // Rule ID 6 //
1844 /* 17455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
1845 /* 17458 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_UMAX'
1846 /* 17458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
1847 /* 17461 */ // Label 117: @17461
1848 /* 17461 */ GIM_Reject,
1849 /* 17462 */ // Label 40: @17462
1850 /* 17462 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(17473), // Rule ID 17 //
1851 /* 17467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
1852 /* 17470 */ // Combiner Rule #8: fmed3_intrinsic_to_clamp; wip_match_opcode 'G_AMDGPU_FMED3'
1853 /* 17470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
1854 /* 17473 */ // Label 118: @17473
1855 /* 17473 */ GIM_Reject,
1856 /* 17474 */ // Label 41: @17474
1857 /* 17474 */ GIM_Reject,
1858 /* 17475 */ }; // Size: 17475 bytes
1859 return MatchTable0;
1860}
1861#undef GIMT_Encode2
1862#undef GIMT_Encode4
1863#undef GIMT_Encode8
1864
1865#endif // ifdef GET_GICOMBINER_IMPL
1866
1867#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
1868AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
1869AvailableFunctionFeatures()
1870#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
1871#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
1872, State(0),
1873ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
1874#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
1875
1876