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
11#include "llvm/ADT/SparseBitVector.h"
12namespace llvm {
13
14extern cl::OptionCategory GICombinerOptionCategory;
15
16} // namespace llvm
17
18#endif // GET_GICOMBINER_DEPS
19
20#ifdef GET_GICOMBINER_TYPES
21
22struct AMDGPURegBankCombinerImplRuleConfig {
23 SparseBitVector<> DisabledRules;
24
25 bool isRuleEnabled(unsigned RuleID) const;
26 bool parseCommandLineOption();
27 bool setRuleEnabled(StringRef RuleIdentifier);
28 bool setRuleDisabled(StringRef RuleIdentifier);
29};
30
31static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
32 uint64_t I;
33 // getAtInteger(...) returns false on success
34 bool Parsed = !RuleIdentifier.getAsInteger(Radix: 0, Result&: I);
35 if (Parsed)
36 return I;
37
38#ifndef NDEBUG
39 switch (RuleIdentifier.size()) {
40 default: break;
41 case 8: // 1 string to match.
42 if (memcmp(RuleIdentifier.data()+0, "d16_load", 8) != 0)
43 break;
44 return 49; // "d16_load"
45 case 10: // 3 strings to match.
46 switch (RuleIdentifier[0]) {
47 default: break;
48 case 'i': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
50 break;
51 return 17; // "i2p_to_p2i"
52 case 'p': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
54 break;
55 return 16; // "p2i_to_i2p"
56 case 's': // 1 string to match.
57 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
58 break;
59 return 45; // "sext_trunc"
60 }
61 break;
62 case 11: // 2 strings to match.
63 switch (RuleIdentifier[0]) {
64 default: break;
65 case 'a': // 1 string to match.
66 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
67 break;
68 return 22; // "add_sub_reg"
69 case 'u': // 1 string to match.
70 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
71 break;
72 return 1; // "unmerge_cst"
73 }
74 break;
75 case 12: // 2 strings to match.
76 switch (RuleIdentifier[0]) {
77 default: break;
78 case 's': // 1 string to match.
79 if (memcmp(RuleIdentifier.data()+1, "ext_of_sext", 11) != 0)
80 break;
81 return 39; // "sext_of_sext"
82 case 'z': // 1 string to match.
83 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
84 break;
85 return 37; // "zext_of_zext"
86 }
87 break;
88 case 13: // 4 strings to match.
89 switch (RuleIdentifier[0]) {
90 default: break;
91 case 'r': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
93 break;
94 return 32; // "redundant_and"
95 case 's': // 1 string to match.
96 if (memcmp(RuleIdentifier.data()+1, "ame_val_zero", 12) != 0)
97 break;
98 return 13; // "same_val_zero"
99 case 'u': // 2 strings to match.
100 if (memcmp(RuleIdentifier.data()+1, "nmerge_", 7) != 0)
101 break;
102 switch (RuleIdentifier[8]) {
103 default: break;
104 case 'm': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
106 break;
107 return 0; // "unmerge_merge"
108 case 'u': // 1 string to match.
109 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
110 break;
111 return 2; // "unmerge_undef"
112 }
113 break;
114 }
115 break;
116 case 14: // 6 strings to match.
117 switch (RuleIdentifier[0]) {
118 default: break;
119 case 'a': // 2 strings to match.
120 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
121 break;
122 switch (RuleIdentifier[10]) {
123 default: break;
124 case 's': // 1 string to match.
125 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
126 break;
127 return 43; // "anyext_of_sext"
128 case 'z': // 1 string to match.
129 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
130 break;
131 return 42; // "anyext_of_zext"
132 }
133 break;
134 case 'b': // 1 string to match.
135 if (memcmp(RuleIdentifier.data()+1, "inop_same_val", 13) != 0)
136 break;
137 return 12; // "binop_same_val"
138 case 'f': // 1 string to match.
139 if (memcmp(RuleIdentifier.data()+1, "neg_fneg_fold", 13) != 0)
140 break;
141 return 19; // "fneg_fneg_fold"
142 case 's': // 1 string to match.
143 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
144 break;
145 return 40; // "sext_of_anyext"
146 case 'z': // 1 string to match.
147 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
148 break;
149 return 38; // "zext_of_anyext"
150 }
151 break;
152 case 15: // 7 strings to match.
153 switch (RuleIdentifier[0]) {
154 default: break;
155 case 'f': // 2 strings to match.
156 if (RuleIdentifier[1] != 'm')
157 break;
158 switch (RuleIdentifier[2]) {
159 default: break;
160 case 'a': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
162 break;
163 return 54; // "fmax_to_minmax3"
164 case 'i': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
166 break;
167 return 55; // "fmin_to_minmax3"
168 }
169 break;
170 case 's': // 2 strings to match.
171 if (RuleIdentifier[1] != 'm')
172 break;
173 switch (RuleIdentifier[2]) {
174 default: break;
175 case 'a': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
177 break;
178 return 50; // "smax_to_minmax3"
179 case 'i': // 1 string to match.
180 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
181 break;
182 return 51; // "smin_to_minmax3"
183 }
184 break;
185 case 'u': // 2 strings to match.
186 if (RuleIdentifier[1] != 'm')
187 break;
188 switch (RuleIdentifier[2]) {
189 default: break;
190 case 'a': // 1 string to match.
191 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
192 break;
193 return 52; // "umax_to_minmax3"
194 case 'i': // 1 string to match.
195 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
196 break;
197 return 53; // "umin_to_minmax3"
198 }
199 break;
200 case 'z': // 1 string to match.
201 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
202 break;
203 return 3; // "zext_trunc_fold"
204 }
205 break;
206 case 16: // 3 strings to match.
207 switch (RuleIdentifier[0]) {
208 default: break;
209 case 'a': // 1 string to match.
210 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
211 break;
212 return 41; // "anyext_of_anyext"
213 case 't': // 2 strings to match.
214 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
215 break;
216 switch (RuleIdentifier[12]) {
217 default: break;
218 case 's': // 1 string to match.
219 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
220 break;
221 return 35; // "truncate_of_sext"
222 case 'z': // 1 string to match.
223 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
224 break;
225 return 34; // "truncate_of_zext"
226 }
227 break;
228 }
229 break;
230 case 17: // 2 strings to match.
231 switch (RuleIdentifier[0]) {
232 default: break;
233 case 'a': // 1 string to match.
234 if (memcmp(RuleIdentifier.data()+1, "nyext_trunc_fold", 16) != 0)
235 break;
236 return 18; // "anyext_trunc_fold"
237 case 'f': // 1 string to match.
238 if (memcmp(RuleIdentifier.data()+1, "p_minmax_to_med3", 16) != 0)
239 break;
240 return 7; // "fp_minmax_to_med3"
241 }
242 break;
243 case 18: // 5 strings to match.
244 switch (RuleIdentifier[0]) {
245 default: break;
246 case 'b': // 1 string to match.
247 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
248 break;
249 return 14; // "binop_left_to_zero"
250 case 'f': // 2 strings to match.
251 if (RuleIdentifier[1] != 'p')
252 break;
253 switch (RuleIdentifier[2]) {
254 default: break;
255 case '_': // 1 string to match.
256 if (memcmp(RuleIdentifier.data()+3, "minmax_to_clamp", 15) != 0)
257 break;
258 return 6; // "fp_minmax_to_clamp"
259 case 't': // 1 string to match.
260 if (memcmp(RuleIdentifier.data()+3, "runc_fpext_fold", 15) != 0)
261 break;
262 return 28; // "fptrunc_fpext_fold"
263 }
264 break;
265 case 'i': // 1 string to match.
266 if (memcmp(RuleIdentifier.data()+1, "nt_minmax_to_med3", 17) != 0)
267 break;
268 return 4; // "int_minmax_to_med3"
269 case 't': // 1 string to match.
270 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
271 break;
272 return 36; // "truncate_of_anyext"
273 }
274 break;
275 case 19: // 5 strings to match.
276 switch (RuleIdentifier[0]) {
277 default: break;
278 case 'b': // 1 string to match.
279 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
280 break;
281 return 15; // "binop_right_to_zero"
282 case 'f': // 2 strings to match.
283 if (RuleIdentifier[1] != 'm')
284 break;
285 switch (RuleIdentifier[2]) {
286 default: break;
287 case 'a': // 1 string to match.
288 if (memcmp(RuleIdentifier.data()+3, "ximum_to_minmax3", 16) != 0)
289 break;
290 return 56; // "fmaximum_to_minmax3"
291 case 'i': // 1 string to match.
292 if (memcmp(RuleIdentifier.data()+3, "nimum_to_minmax3", 16) != 0)
293 break;
294 return 57; // "fminimum_to_minmax3"
295 }
296 break;
297 case 'p': // 1 string to match.
298 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
299 break;
300 return 5; // "ptr_add_immed_chain"
301 case 'r': // 1 string to match.
302 if (memcmp(RuleIdentifier.data()+1, "ight_identity_zero", 18) != 0)
303 break;
304 return 11; // "right_identity_zero"
305 }
306 break;
307 case 20: // 3 strings to match.
308 switch (RuleIdentifier[0]) {
309 default: break;
310 case 'b': // 1 string to match.
311 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
312 break;
313 return 26; // "bitcast_bitcast_fold"
314 case 'f': // 2 strings to match.
315 if (RuleIdentifier[1] != 'm')
316 break;
317 switch (RuleIdentifier[2]) {
318 default: break;
319 case 'a': // 1 string to match.
320 if (memcmp(RuleIdentifier.data()+3, "x_ieee_to_minmax3", 17) != 0)
321 break;
322 return 58; // "fmax_ieee_to_minmax3"
323 case 'i': // 1 string to match.
324 if (memcmp(RuleIdentifier.data()+3, "n_ieee_to_minmax3", 17) != 0)
325 break;
326 return 59; // "fmin_ieee_to_minmax3"
327 }
328 break;
329 }
330 break;
331 case 21: // 4 strings to match.
332 switch (RuleIdentifier[0]) {
333 default: break;
334 case 'c': // 2 strings to match.
335 switch (RuleIdentifier[1]) {
336 default: break;
337 case 'a': // 1 string to match.
338 if (memcmp(RuleIdentifier.data()+2, "nonicalize_zext_shl", 19) != 0)
339 break;
340 return 48; // "canonicalize_zext_shl"
341 case 'o': // 1 string to match.
342 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_cast_op", 19) != 0)
343 break;
344 return 33; // "constant_fold_cast_op"
345 }
346 break;
347 case 'r': // 1 string to match.
348 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
349 break;
350 return 21; // "right_identity_one_fp"
351 case 's': // 1 string to match.
352 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_equiv", 20) != 0)
353 break;
354 return 10; // "select_same_val_equiv"
355 }
356 break;
357 case 22: // 4 strings to match.
358 switch (RuleIdentifier[0]) {
359 default: break;
360 case 'c': // 2 strings to match.
361 if (memcmp(RuleIdentifier.data()+1, "anonicalize_zext_", 17) != 0)
362 break;
363 switch (RuleIdentifier[18]) {
364 default: break;
365 case 'a': // 1 string to match.
366 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
367 break;
368 return 47; // "canonicalize_zext_ashr"
369 case 'l': // 1 string to match.
370 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
371 break;
372 return 46; // "canonicalize_zext_lshr"
373 }
374 break;
375 case 'r': // 1 string to match.
376 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
377 break;
378 return 20; // "right_identity_one_int"
379 case 't': // 1 string to match.
380 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
381 break;
382 return 24; // "trunc_buildvector_fold"
383 }
384 break;
385 case 23: // 1 string to match.
386 if (memcmp(RuleIdentifier.data()+0, "select_same_val_trivial", 23) != 0)
387 break;
388 return 9; // "select_same_val_trivial"
389 case 24: // 2 strings to match.
390 switch (RuleIdentifier[0]) {
391 default: break;
392 case 'f': // 1 string to match.
393 if (memcmp(RuleIdentifier.data()+1, "med3_intrinsic_to_clamp", 23) != 0)
394 break;
395 return 8; // "fmed3_intrinsic_to_clamp"
396 case 's': // 1 string to match.
397 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_of_sext_inreg", 23) != 0)
398 break;
399 return 44; // "sext_inreg_of_sext_inreg"
400 }
401 break;
402 case 25: // 2 strings to match.
403 switch (RuleIdentifier[0]) {
404 default: break;
405 case 'b': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+1, "uildvector_identity_fold", 24) != 0)
407 break;
408 return 23; // "buildvector_identity_fold"
409 case 'r': // 1 string to match.
410 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
411 break;
412 return 31; // "right_identity_neg_one_fp"
413 }
414 break;
415 case 26: // 2 strings to match.
416 switch (RuleIdentifier[0]) {
417 default: break;
418 case 'b': // 1 string to match.
419 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_to_bitcast", 25) != 0)
420 break;
421 return 27; // "bitcast_bitcast_to_bitcast"
422 case 'r': // 1 string to match.
423 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
424 break;
425 return 29; // "right_identity_neg_zero_fp"
426 }
427 break;
428 case 27: // 1 string to match.
429 if (memcmp(RuleIdentifier.data()+0, "trunc_lshr_buildvector_fold", 27) != 0)
430 break;
431 return 25; // "trunc_lshr_buildvector_fold"
432 case 30: // 1 string to match.
433 if (memcmp(RuleIdentifier.data()+0, "right_identity_neg_zero_fp_nsz", 30) != 0)
434 break;
435 return 30; // "right_identity_neg_zero_fp_nsz"
436 }
437#endif // ifndef NDEBUG
438
439 return std::nullopt;
440}
441static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
442 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
443 if (!RangePair.second.empty()) {
444 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
445 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
446 if (!First || !Last)
447 return std::nullopt;
448 if (First >= Last)
449 report_fatal_error(reason: "Beginning of range should be before end of range");
450 return {{*First, *Last + 1}};
451 }
452 if (RangePair.first == "*") {
453 return {{0, 60}};
454 }
455 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
456 if (!I)
457 return std::nullopt;
458 return {{*I, *I + 1}};
459}
460
461bool AMDGPURegBankCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
462 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
463 if (!MaybeRange)
464 return false;
465 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
466 DisabledRules.reset(Idx: I);
467 return true;
468}
469
470bool AMDGPURegBankCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
471 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
472 if (!MaybeRange)
473 return false;
474 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
475 DisabledRules.set(I);
476 return true;
477}
478
479static std::vector<std::string> AMDGPURegBankCombinerOption;
480static cl::list<std::string> AMDGPURegBankCombinerDisableOption(
481 "amdgpuregbankcombiner-disable-rule",
482 cl::desc("Disable one or more combiner rules temporarily in the AMDGPURegBankCombiner pass"),
483 cl::CommaSeparated,
484 cl::Hidden,
485 cl::cat(GICombinerOptionCategory),
486 cl::callback(CB: [](const std::string &Str) {
487 AMDGPURegBankCombinerOption.push_back(x: Str);
488 }));
489static cl::list<std::string> AMDGPURegBankCombinerOnlyEnableOption(
490 "amdgpuregbankcombiner-only-enable-rule",
491 cl::desc("Disable all rules in the AMDGPURegBankCombiner pass then re-enable the specified ones"),
492 cl::Hidden,
493 cl::cat(GICombinerOptionCategory),
494 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
495 StringRef Str = CommaSeparatedArg;
496 AMDGPURegBankCombinerOption.push_back(x: "*");
497 do {
498 auto X = Str.split(Separator: ",");
499 AMDGPURegBankCombinerOption.push_back(x: ("!" + X.first).str());
500 Str = X.second;
501 } while (!Str.empty());
502 }));
503
504
505bool AMDGPURegBankCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
506 return !DisabledRules.test(Idx: RuleID);
507}
508bool AMDGPURegBankCombinerImplRuleConfig::parseCommandLineOption() {
509 for (StringRef Identifier : AMDGPURegBankCombinerOption) {
510 bool Enabled = Identifier.consume_front(Prefix: "!");
511 if (Enabled && !setRuleEnabled(Identifier))
512 return false;
513 if (!Enabled && !setRuleDisabled(Identifier))
514 return false;
515 }
516 return true;
517}
518
519
520#endif // GET_GICOMBINER_TYPES
521
522#ifdef GET_GICOMBINER_TYPES
523
524const unsigned MAX_SUBTARGET_PREDICATES = 1;
525using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
526
527#endif // GET_GICOMBINER_TYPES
528
529#ifdef GET_GICOMBINER_CLASS_MEMBERS
530
531 bool canMatchOpcode(unsigned Opc) const override;
532 uint32_t getRootFlagsToDrop() const override;
533
534#endif // GET_GICOMBINER_CLASS_MEMBERS
535
536#ifdef GET_GICOMBINER_CLASS_MEMBERS
537
538PredicateBitset AvailableModuleFeatures;
539mutable PredicateBitset AvailableFunctionFeatures;
540PredicateBitset getAvailableFeatures() const {
541 return AvailableModuleFeatures | AvailableFunctionFeatures;
542}
543PredicateBitset
544computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
545PredicateBitset
546computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
547 const MachineFunction *MF) const;
548void setupGeneratedPerFunctionState(MachineFunction &MF) override;
549
550#endif // GET_GICOMBINER_CLASS_MEMBERS
551
552#ifdef GET_GICOMBINER_CLASS_MEMBERS
553
554 mutable MatcherState State;
555 typedef ComplexRendererFns(AMDGPURegBankCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
556 typedef void(AMDGPURegBankCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
557 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
558 static AMDGPURegBankCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
559 static AMDGPURegBankCombinerImpl::CustomRendererFn CustomRenderers[];
560 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
561 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
562 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
563 const uint8_t *getMatchTable() const override;
564 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
565 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
566 bool testSimplePredicate(unsigned PredicateID) const override;
567 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
568
569#endif // GET_GICOMBINER_CLASS_MEMBERS
570
571#ifdef GET_GICOMBINER_IMPL
572
573// LLT Objects.
574enum {
575 GILLT_s1,
576};
577const static size_t NumTypeObjects = 1;
578const static LLT TypeObjects[] = {
579 LLT::scalar(1),
580};
581
582// Bits for subtarget features that participate in instruction matching.
583enum SubtargetFeatureBits : uint8_t {
584 Feature_anonymous_55132Bit = 0,
585};
586
587PredicateBitset AMDGPURegBankCombinerImpl::
588computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
589 PredicateBitset Features{};
590 if (Subtarget->d16PreservesUnusedBits())
591 Features.set(Feature_anonymous_55132Bit);
592 return Features;
593}
594
595void AMDGPURegBankCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
596 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
597}
598PredicateBitset AMDGPURegBankCombinerImpl::
599computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
600 PredicateBitset Features{};
601 return Features;
602}
603
604// Feature bitsets.
605enum {
606 GIFBS_Invalid,
607 GIFBS_anonymous_55132,
608};
609constexpr static PredicateBitset FeatureBitsets[] {
610 {}, // GIFBS_Invalid
611 {Feature_anonymous_55132Bit, },
612};
613
614// ComplexPattern predicates.
615enum {
616 GICP_Invalid,
617};
618// See constructor for table contents
619
620AMDGPURegBankCombinerImpl::ComplexMatcherMemFn
621AMDGPURegBankCombinerImpl::ComplexPredicateFns[] = {
622 nullptr, // GICP_Invalid
623};
624
625enum {
626 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
627 GICXXPred_MI_Predicate_GICombiner1,
628 GICXXPred_MI_Predicate_GICombiner2,
629 GICXXPred_MI_Predicate_GICombiner3,
630 GICXXPred_MI_Predicate_GICombiner4,
631 GICXXPred_MI_Predicate_GICombiner5,
632 GICXXPred_MI_Predicate_GICombiner6,
633};
634bool AMDGPURegBankCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
635 switch (PredicateID) {
636 case GICXXPred_MI_Predicate_GICombiner0: {
637 return Helper.matchSelectSameVal(*State.MIs[0]);
638 }
639 case GICXXPred_MI_Predicate_GICombiner1: {
640 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
641 }
642 case GICXXPred_MI_Predicate_GICombiner2: {
643 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
644 }
645 case GICXXPred_MI_Predicate_GICombiner3: {
646 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
647 }
648 case GICXXPred_MI_Predicate_GICombiner4: {
649 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
650 }
651 case GICXXPred_MI_Predicate_GICombiner5: {
652 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
653 }
654 case GICXXPred_MI_Predicate_GICombiner6: {
655 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
656 }
657 }
658 llvm_unreachable("Unknown predicate");
659 return false;
660}
661bool AMDGPURegBankCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
662 llvm_unreachable("Unknown predicate");
663 return false;
664}
665bool AMDGPURegBankCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
666 llvm_unreachable("Unknown predicate");
667 return false;
668}
669bool AMDGPURegBankCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
670 llvm_unreachable("Unknown predicate");
671 return false;
672}
673bool AMDGPURegBankCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
674 llvm_unreachable("Unknown predicate");
675 return false;
676}
677enum {
678 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
679 GICXXPred_Simple_IsRule1Enabled,
680 GICXXPred_Simple_IsRule2Enabled,
681 GICXXPred_Simple_IsRule3Enabled,
682 GICXXPred_Simple_IsRule4Enabled,
683 GICXXPred_Simple_IsRule5Enabled,
684 GICXXPred_Simple_IsRule6Enabled,
685 GICXXPred_Simple_IsRule7Enabled,
686 GICXXPred_Simple_IsRule8Enabled,
687 GICXXPred_Simple_IsRule9Enabled,
688 GICXXPred_Simple_IsRule10Enabled,
689 GICXXPred_Simple_IsRule11Enabled,
690 GICXXPred_Simple_IsRule12Enabled,
691 GICXXPred_Simple_IsRule13Enabled,
692 GICXXPred_Simple_IsRule14Enabled,
693 GICXXPred_Simple_IsRule15Enabled,
694 GICXXPred_Simple_IsRule16Enabled,
695 GICXXPred_Simple_IsRule17Enabled,
696 GICXXPred_Simple_IsRule18Enabled,
697 GICXXPred_Simple_IsRule19Enabled,
698 GICXXPred_Simple_IsRule20Enabled,
699 GICXXPred_Simple_IsRule21Enabled,
700 GICXXPred_Simple_IsRule22Enabled,
701 GICXXPred_Simple_IsRule23Enabled,
702 GICXXPred_Simple_IsRule24Enabled,
703 GICXXPred_Simple_IsRule25Enabled,
704 GICXXPred_Simple_IsRule26Enabled,
705 GICXXPred_Simple_IsRule27Enabled,
706 GICXXPred_Simple_IsRule28Enabled,
707 GICXXPred_Simple_IsRule29Enabled,
708 GICXXPred_Simple_IsRule30Enabled,
709 GICXXPred_Simple_IsRule31Enabled,
710 GICXXPred_Simple_IsRule32Enabled,
711 GICXXPred_Simple_IsRule33Enabled,
712 GICXXPred_Simple_IsRule34Enabled,
713 GICXXPred_Simple_IsRule35Enabled,
714 GICXXPred_Simple_IsRule36Enabled,
715 GICXXPred_Simple_IsRule37Enabled,
716 GICXXPred_Simple_IsRule38Enabled,
717 GICXXPred_Simple_IsRule39Enabled,
718 GICXXPred_Simple_IsRule40Enabled,
719 GICXXPred_Simple_IsRule41Enabled,
720 GICXXPred_Simple_IsRule42Enabled,
721 GICXXPred_Simple_IsRule43Enabled,
722 GICXXPred_Simple_IsRule44Enabled,
723 GICXXPred_Simple_IsRule45Enabled,
724 GICXXPred_Simple_IsRule46Enabled,
725 GICXXPred_Simple_IsRule47Enabled,
726 GICXXPred_Simple_IsRule48Enabled,
727 GICXXPred_Simple_IsRule49Enabled,
728 GICXXPred_Simple_IsRule50Enabled,
729 GICXXPred_Simple_IsRule51Enabled,
730 GICXXPred_Simple_IsRule52Enabled,
731 GICXXPred_Simple_IsRule53Enabled,
732 GICXXPred_Simple_IsRule54Enabled,
733 GICXXPred_Simple_IsRule55Enabled,
734 GICXXPred_Simple_IsRule56Enabled,
735 GICXXPred_Simple_IsRule57Enabled,
736 GICXXPred_Simple_IsRule58Enabled,
737 GICXXPred_Simple_IsRule59Enabled,
738};
739
740bool AMDGPURegBankCombinerImpl::testSimplePredicate(unsigned Predicate) const {
741 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
742}
743// Custom renderers.
744enum {
745 GICR_Invalid,
746};
747AMDGPURegBankCombinerImpl::CustomRendererFn
748AMDGPURegBankCombinerImpl::CustomRenderers[] = {
749 nullptr, // GICR_Invalid
750};
751
752bool AMDGPURegBankCombinerImpl::canMatchOpcode(unsigned Opc) const {
753 switch (Opc) {
754 case AMDGPU::G_AMDGPU_FMED3:
755 case TargetOpcode::G_SELECT:
756 case TargetOpcode::G_ADD:
757 case TargetOpcode::G_AND:
758 case TargetOpcode::G_ASHR:
759 case TargetOpcode::G_FADD:
760 case TargetOpcode::G_FMAXIMUM:
761 case TargetOpcode::G_FMAXNUM:
762 case TargetOpcode::G_FMAXNUM_IEEE:
763 case TargetOpcode::G_FMINIMUM:
764 case TargetOpcode::G_FMINNUM:
765 case TargetOpcode::G_FMINNUM_IEEE:
766 case TargetOpcode::G_FMUL:
767 case TargetOpcode::G_LSHR:
768 case TargetOpcode::G_MUL:
769 case TargetOpcode::G_OR:
770 case TargetOpcode::G_PTR_ADD:
771 case TargetOpcode::G_ROTL:
772 case TargetOpcode::G_ROTR:
773 case TargetOpcode::G_SDIV:
774 case TargetOpcode::G_SEXT_INREG:
775 case TargetOpcode::G_SHL:
776 case TargetOpcode::G_SMAX:
777 case TargetOpcode::G_SMIN:
778 case TargetOpcode::G_SREM:
779 case TargetOpcode::G_SUB:
780 case TargetOpcode::G_UDIV:
781 case TargetOpcode::G_UMAX:
782 case TargetOpcode::G_UMIN:
783 case TargetOpcode::G_UREM:
784 case TargetOpcode::G_XOR:
785 case TargetOpcode::G_ANYEXT:
786 case TargetOpcode::G_BITCAST:
787 case TargetOpcode::G_FNEG:
788 case TargetOpcode::G_FPTRUNC:
789 case TargetOpcode::G_INTTOPTR:
790 case TargetOpcode::G_PTRTOINT:
791 case TargetOpcode::G_SEXT:
792 case TargetOpcode::G_TRUNC:
793 case TargetOpcode::G_ZEXT:
794 case TargetOpcode::G_BUILD_VECTOR:
795 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
796 case TargetOpcode::G_UNMERGE_VALUES:
797 return true;
798 default:
799 return false;
800 }
801}
802
803uint32_t AMDGPURegBankCombinerImpl::getRootFlagsToDrop() const {
804 return MachineInstr::getPoisonGeneratingFlags();
805}
806
807bool AMDGPURegBankCombinerImpl::tryCombineAll(MachineInstr &I) const {
808 const PredicateBitset AvailableFeatures = getAvailableFeatures();
809 State.MIs.clear();
810 State.MIs.push_back(&I);
811 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
812 return true;
813 }
814
815 return false;
816}
817
818enum {
819 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
820 GICXXCustomAction_GICombiner1,
821 GICXXCustomAction_GICombiner2,
822 GICXXCustomAction_GICombiner3,
823 GICXXCustomAction_GICombiner4,
824 GICXXCustomAction_GICombiner5,
825 GICXXCustomAction_GICombiner6,
826 GICXXCustomAction_GICombiner7,
827 GICXXCustomAction_GICombiner8,
828 GICXXCustomAction_GICombiner9,
829 GICXXCustomAction_GICombiner10,
830 GICXXCustomAction_GICombiner11,
831 GICXXCustomAction_GICombiner12,
832 GICXXCustomAction_GICombiner13,
833 GICXXCustomAction_GICombiner14,
834 GICXXCustomAction_GICombiner15,
835 GICXXCustomAction_GICombiner16,
836 GICXXCustomAction_GICombiner17,
837 GICXXCustomAction_GICombiner18,
838 GICXXCustomAction_GICombiner19,
839 GICXXCustomAction_GICombiner20,
840 GICXXCustomAction_GICombiner21,
841 GICXXCustomAction_GICombiner22,
842 GICXXCustomAction_GICombiner23,
843};
844bool AMDGPURegBankCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
845 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
846 switch(ApplyID) {
847 case GICXXCustomAction_GICombiner0:{
848 SmallVector<Register> GIMatchData_info;
849 // Match Patterns
850 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
851 return false;
852 }
853 // Apply Patterns
854 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
855 return true;
856 }
857 case GICXXCustomAction_GICombiner1:{
858 SmallVector<APInt, 8> GIMatchData_info;
859 // Match Patterns
860 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
861 return false;
862 }
863 // Apply Patterns
864 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
865 return true;
866 }
867 case GICXXCustomAction_GICombiner2:{
868 std::function<void(MachineIRBuilder &)> GIMatchData_info;
869 // Match Patterns
870 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
871 return false;
872 }
873 // Apply Patterns
874 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
875 return true;
876 }
877 case GICXXCustomAction_GICombiner3:{
878 Register GIMatchData_matchinfo;
879 // Match Patterns
880 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
881 return false;
882 }
883 // Apply Patterns
884 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
885 return true;
886 }
887 case GICXXCustomAction_GICombiner4:{
888 Med3MatchInfo GIMatchData_matchinfo;
889 // Match Patterns
890 if(![&](){return matchIntMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
891 return false;
892 }
893 // Apply Patterns
894 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
895 return true;
896 }
897 case GICXXCustomAction_GICombiner5:{
898 PtrAddChain GIMatchData_matchinfo;
899 // Match Patterns
900 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
901 return false;
902 }
903 // Apply Patterns
904 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
905 return true;
906 }
907 case GICXXCustomAction_GICombiner6:{
908 Register GIMatchData_matchinfo;
909 // Match Patterns
910 if(![&](){return matchFPMinMaxToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
911 return false;
912 }
913 // Apply Patterns
914 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
915 return true;
916 }
917 case GICXXCustomAction_GICombiner7:{
918 Med3MatchInfo GIMatchData_matchinfo;
919 // Match Patterns
920 if(![&](){return matchFPMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
921 return false;
922 }
923 // Apply Patterns
924 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
925 return true;
926 }
927 case GICXXCustomAction_GICombiner8:{
928 Register GIMatchData_matchinfo;
929 // Match Patterns
930 if(![&](){return matchFPMed3ToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
931 return false;
932 }
933 // Apply Patterns
934 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
935 return true;
936 }
937 case GICXXCustomAction_GICombiner9:{
938 Register GIMatchData_info;
939 // Match Patterns
940 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
941 return false;
942 }
943 // Apply Patterns
944 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
945 return true;
946 }
947 case GICXXCustomAction_GICombiner10:{
948 Register GIMatchData_matchinfo;
949 // Match Patterns
950 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
951 return false;
952 }
953 // Apply Patterns
954 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
955 return true;
956 }
957 case GICXXCustomAction_GICombiner11:{
958 Register GIMatchData_matchinfo;
959 // Match Patterns
960 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
961 return false;
962 }
963 // Apply Patterns
964 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
965 return true;
966 }
967 case GICXXCustomAction_GICombiner12:{
968 Register GIMatchData_matchinfo;
969 // Match Patterns
970 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
971 return false;
972 }
973 // Apply Patterns
974 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
975 return true;
976 }
977 case GICXXCustomAction_GICombiner13:{
978 Register GIMatchData_matchinfo;
979 // Match Patterns
980 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
981 return false;
982 }
983 // Apply Patterns
984 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
985 return true;
986 }
987 case GICXXCustomAction_GICombiner14:{
988 // Match Patterns
989 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
990 return false;
991 }
992 // Apply Patterns
993 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
994 return true;
995 }
996 case GICXXCustomAction_GICombiner15:{
997 Register GIMatchData_matchinfo;
998 // Match Patterns
999 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
1000 return false;
1001 }
1002 // Apply Patterns
1003 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
1004 return true;
1005 }
1006 case GICXXCustomAction_GICombiner16:{
1007 APInt GIMatchData_matchinfo;
1008 // Match Patterns
1009 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
1010 return false;
1011 }
1012 // Apply Patterns
1013 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
1014 return true;
1015 }
1016 case GICXXCustomAction_GICombiner17:{
1017 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1018 // Match Patterns
1019 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1020 return false;
1021 }
1022 // Apply Patterns
1023 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1024 return true;
1025 }
1026 case GICXXCustomAction_GICombiner18:{
1027 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1028 // Match Patterns
1029 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1030 return false;
1031 }
1032 // Apply Patterns
1033 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1034 return true;
1035 }
1036 case GICXXCustomAction_GICombiner19:{
1037 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1038 // Match Patterns
1039 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1040 return false;
1041 }
1042 // Apply Patterns
1043 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1044 return true;
1045 }
1046 case GICXXCustomAction_GICombiner20:{
1047 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1048 // Match Patterns
1049 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
1050 return false;
1051 }
1052 // Apply Patterns
1053 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
1054 return true;
1055 }
1056 case GICXXCustomAction_GICombiner21:{
1057 // Apply Patterns
1058 applyCanonicalizeZextShiftAmt(*State.MIs[0], *State.MIs[1]);
1059 return true;
1060 }
1061 case GICXXCustomAction_GICombiner22:{
1062 // Apply Patterns
1063 return combineD16Load(*State.MIs[0] );
1064 return true;
1065 }
1066 case GICXXCustomAction_GICombiner23:{
1067 MinMaxToMinMax3MatchInfo GIMatchData_matchinfo;
1068 // Match Patterns
1069 if(![&](){return matchMinMaxToMinMax3(*State.MIs[0], GIMatchData_matchinfo);}()) {
1070 return false;
1071 }
1072 // Apply Patterns
1073 applyMinMaxToMinMax3(*State.MIs[0], GIMatchData_matchinfo);
1074 return true;
1075 }
1076 }
1077 llvm_unreachable("Unknown Apply Action");
1078}
1079#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
1080#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
1081#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
1082#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)
1083#else
1084#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
1085#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
1086#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)
1087#endif
1088const uint8_t *AMDGPURegBankCombinerImpl::getMatchTable() const {
1089 constexpr static uint8_t MatchTable0[] = {
1090 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(55), GIMT_Encode2(5519), /*)*//*default:*//*Label 43*/ GIMT_Encode4(23733),
1091 /* 10 */ /*TargetOpcode::G_ADD*//*Label 0*/ GIMT_Encode4(21866),
1092 /* 14 */ /*TargetOpcode::G_SUB*//*Label 1*/ GIMT_Encode4(21958),
1093 /* 18 */ /*TargetOpcode::G_MUL*//*Label 2*/ GIMT_Encode4(22021),
1094 /* 22 */ /*TargetOpcode::G_SDIV*//*Label 3*/ GIMT_Encode4(22108),
1095 /* 26 */ /*TargetOpcode::G_UDIV*//*Label 4*/ GIMT_Encode4(22149),
1096 /* 30 */ /*TargetOpcode::G_SREM*//*Label 5*/ GIMT_Encode4(22190),
1097 /* 34 */ /*TargetOpcode::G_UREM*//*Label 6*/ GIMT_Encode4(22231), GIMT_Encode4(0), GIMT_Encode4(0),
1098 /* 46 */ /*TargetOpcode::G_AND*//*Label 7*/ GIMT_Encode4(22272),
1099 /* 50 */ /*TargetOpcode::G_OR*//*Label 8*/ GIMT_Encode4(22308),
1100 /* 54 */ /*TargetOpcode::G_XOR*//*Label 9*/ GIMT_Encode4(22356), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1101 /* 110 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 10*/ GIMT_Encode4(22419), GIMT_Encode4(0), GIMT_Encode4(0),
1102 /* 122 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 11*/ GIMT_Encode4(22453),
1103 /* 126 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 12*/ GIMT_Encode4(22465), GIMT_Encode4(0),
1104 /* 134 */ /*TargetOpcode::G_PTRTOINT*//*Label 13*/ GIMT_Encode4(22477),
1105 /* 138 */ /*TargetOpcode::G_INTTOPTR*//*Label 14*/ GIMT_Encode4(22499),
1106 /* 142 */ /*TargetOpcode::G_BITCAST*//*Label 15*/ GIMT_Encode4(22533), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1107 /* 362 */ /*TargetOpcode::G_ANYEXT*//*Label 16*/ GIMT_Encode4(22600),
1108 /* 366 */ /*TargetOpcode::G_TRUNC*//*Label 17*/ GIMT_Encode4(22686), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1109 /* 398 */ /*TargetOpcode::G_SEXT*//*Label 18*/ GIMT_Encode4(22772),
1110 /* 402 */ /*TargetOpcode::G_SEXT_INREG*//*Label 19*/ GIMT_Encode4(22847),
1111 /* 406 */ /*TargetOpcode::G_ZEXT*//*Label 20*/ GIMT_Encode4(22869),
1112 /* 410 */ /*TargetOpcode::G_SHL*//*Label 21*/ GIMT_Encode4(22934),
1113 /* 414 */ /*TargetOpcode::G_LSHR*//*Label 22*/ GIMT_Encode4(23019),
1114 /* 418 */ /*TargetOpcode::G_ASHR*//*Label 23*/ GIMT_Encode4(23104), GIMT_Encode4(0), GIMT_Encode4(0),
1115 /* 430 */ /*TargetOpcode::G_ROTR*//*Label 24*/ GIMT_Encode4(23189),
1116 /* 434 */ /*TargetOpcode::G_ROTL*//*Label 25*/ GIMT_Encode4(23213), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1117 /* 454 */ /*TargetOpcode::G_SELECT*//*Label 26*/ GIMT_Encode4(23237), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1118 /* 562 */ /*TargetOpcode::G_FADD*//*Label 27*/ GIMT_Encode4(23285), GIMT_Encode4(0),
1119 /* 570 */ /*TargetOpcode::G_FMUL*//*Label 28*/ GIMT_Encode4(23338), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1120 /* 634 */ /*TargetOpcode::G_FNEG*//*Label 29*/ GIMT_Encode4(23382), GIMT_Encode4(0),
1121 /* 642 */ /*TargetOpcode::G_FPTRUNC*//*Label 30*/ GIMT_Encode4(23412), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1122 /* 686 */ /*TargetOpcode::G_FMINNUM*//*Label 31*/ GIMT_Encode4(23434),
1123 /* 690 */ /*TargetOpcode::G_FMAXNUM*//*Label 32*/ GIMT_Encode4(23468),
1124 /* 694 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 33*/ GIMT_Encode4(23502),
1125 /* 698 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 34*/ GIMT_Encode4(23536),
1126 /* 702 */ /*TargetOpcode::G_FMINIMUM*//*Label 35*/ GIMT_Encode4(23570),
1127 /* 706 */ /*TargetOpcode::G_FMAXIMUM*//*Label 36*/ GIMT_Encode4(23582), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1128 /* 750 */ /*TargetOpcode::G_PTR_ADD*//*Label 37*/ GIMT_Encode4(23594), GIMT_Encode4(0),
1129 /* 758 */ /*TargetOpcode::G_SMIN*//*Label 38*/ GIMT_Encode4(23629),
1130 /* 762 */ /*TargetOpcode::G_SMAX*//*Label 39*/ GIMT_Encode4(23652),
1131 /* 766 */ /*TargetOpcode::G_UMIN*//*Label 40*/ GIMT_Encode4(23675),
1132 /* 770 */ /*TargetOpcode::G_UMAX*//*Label 41*/ GIMT_Encode4(23698), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1133 /* 21862 */ /*AMDGPU::G_AMDGPU_FMED3*//*Label 42*/ GIMT_Encode4(23721),
1134 /* 21866 */ // Label 0: @21866
1135 /* 21866 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(21900), // Rule ID 50 //
1136 /* 21871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1137 /* 21874 */ // MIs[0] dst
1138 /* 21874 */ // No operand predicates
1139 /* 21874 */ // MIs[0] __add_sub_reg_match_0.tmp
1140 /* 21874 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1141 /* 21878 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1142 /* 21882 */ // MIs[1] src
1143 /* 21882 */ // No operand predicates
1144 /* 21882 */ // MIs[1] __add_sub_reg_match_0.x
1145 /* 21882 */ // No operand predicates
1146 /* 21882 */ // MIs[0] __add_sub_reg_match_0.x
1147 /* 21882 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
1148 /* 21887 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1149 /* 21892 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1150 /* 21894 */ // Combiner Rule #22: add_sub_reg @ [__add_sub_reg_match_0[1]]
1151 /* 21894 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1152 /* 21899 */ GIR_EraseRootFromParent_Done,
1153 /* 21900 */ // Label 44: @21900
1154 /* 21900 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(21934), // Rule ID 49 //
1155 /* 21905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1156 /* 21908 */ // MIs[0] dst
1157 /* 21908 */ // No operand predicates
1158 /* 21908 */ // MIs[0] __add_sub_reg_match_0.x
1159 /* 21908 */ // No operand predicates
1160 /* 21908 */ // MIs[0] __add_sub_reg_match_0.tmp
1161 /* 21908 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1162 /* 21912 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1163 /* 21916 */ // MIs[1] src
1164 /* 21916 */ // No operand predicates
1165 /* 21916 */ // MIs[1] __add_sub_reg_match_0.x
1166 /* 21916 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1167 /* 21921 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1168 /* 21926 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1169 /* 21928 */ // Combiner Rule #22: add_sub_reg @ [__add_sub_reg_match_0[0]]
1170 /* 21928 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1171 /* 21933 */ GIR_EraseRootFromParent_Done,
1172 /* 21934 */ // Label 45: @21934
1173 /* 21934 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(21957), // Rule ID 21 //
1174 /* 21939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1175 /* 21942 */ // MIs[0] dst
1176 /* 21942 */ // No operand predicates
1177 /* 21942 */ // MIs[0] lhs
1178 /* 21942 */ // No operand predicates
1179 /* 21942 */ // MIs[0] Operand 2
1180 /* 21942 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1181 /* 21946 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1182 /* 21951 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[1]]
1183 /* 21951 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1184 /* 21956 */ GIR_EraseRootFromParent_Done,
1185 /* 21957 */ // Label 46: @21957
1186 /* 21957 */ GIM_Reject,
1187 /* 21958 */ // Label 1: @21958
1188 /* 21958 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(21997), // Rule ID 32 //
1189 /* 21963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1190 /* 21966 */ // MIs[0] dst
1191 /* 21966 */ // No operand predicates
1192 /* 21966 */ // MIs[0] x
1193 /* 21966 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1194 /* 21970 */ // MIs[0] x
1195 /* 21970 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1196 /* 21975 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1197 /* 21978 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1198 /* 21988 */ // Combiner Rule #13: same_val_zero @ [__same_val_zero_match_0[0]]
1199 /* 21988 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1200 /* 21991 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1201 /* 21993 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1202 /* 21996 */ GIR_EraseRootFromParent_Done,
1203 /* 21997 */ // Label 47: @21997
1204 /* 21997 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(22020), // Rule ID 20 //
1205 /* 22002 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1206 /* 22005 */ // MIs[0] dst
1207 /* 22005 */ // No operand predicates
1208 /* 22005 */ // MIs[0] lhs
1209 /* 22005 */ // No operand predicates
1210 /* 22005 */ // MIs[0] Operand 2
1211 /* 22005 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1212 /* 22009 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1213 /* 22014 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[0]]
1214 /* 22014 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1215 /* 22019 */ GIR_EraseRootFromParent_Done,
1216 /* 22020 */ // Label 48: @22020
1217 /* 22020 */ GIM_Reject,
1218 /* 22021 */ // Label 2: @22021
1219 /* 22021 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(22061), // Rule ID 41 //
1220 /* 22026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1221 /* 22029 */ // MIs[0] dst
1222 /* 22029 */ // No operand predicates
1223 /* 22029 */ // MIs[0] zero
1224 /* 22029 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1225 /* 22033 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1226 /* 22037 */ // MIs[1] Operand 1
1227 /* 22037 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1228 /* 22048 */ // MIs[0] rhs
1229 /* 22048 */ // No operand predicates
1230 /* 22048 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1231 /* 22053 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1232 /* 22055 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
1233 /* 22055 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1234 /* 22060 */ GIR_EraseRootFromParent_Done,
1235 /* 22061 */ // Label 49: @22061
1236 /* 22061 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(22084), // Rule ID 42 //
1237 /* 22066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
1238 /* 22069 */ // MIs[0] dst
1239 /* 22069 */ // No operand predicates
1240 /* 22069 */ // MIs[0] lhs
1241 /* 22069 */ // No operand predicates
1242 /* 22069 */ // MIs[0] zero
1243 /* 22069 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1244 /* 22073 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1245 /* 22078 */ // Combiner Rule #15: binop_right_to_zero
1246 /* 22078 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1247 /* 22083 */ GIR_EraseRootFromParent_Done,
1248 /* 22084 */ // Label 50: @22084
1249 /* 22084 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(22107), // Rule ID 47 //
1250 /* 22089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
1251 /* 22092 */ // MIs[0] dst
1252 /* 22092 */ // No operand predicates
1253 /* 22092 */ // MIs[0] x
1254 /* 22092 */ // No operand predicates
1255 /* 22092 */ // MIs[0] Operand 2
1256 /* 22092 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
1257 /* 22096 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1258 /* 22101 */ // Combiner Rule #20: right_identity_one_int
1259 /* 22101 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1260 /* 22106 */ GIR_EraseRootFromParent_Done,
1261 /* 22107 */ // Label 51: @22107
1262 /* 22107 */ GIM_Reject,
1263 /* 22108 */ // Label 3: @22108
1264 /* 22108 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(22148), // Rule ID 37 //
1265 /* 22113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1266 /* 22116 */ // MIs[0] dst
1267 /* 22116 */ // No operand predicates
1268 /* 22116 */ // MIs[0] zero
1269 /* 22116 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1270 /* 22120 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1271 /* 22124 */ // MIs[1] Operand 1
1272 /* 22124 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1273 /* 22135 */ // MIs[0] rhs
1274 /* 22135 */ // No operand predicates
1275 /* 22135 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1276 /* 22140 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1277 /* 22142 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
1278 /* 22142 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1279 /* 22147 */ GIR_EraseRootFromParent_Done,
1280 /* 22148 */ // Label 52: @22148
1281 /* 22148 */ GIM_Reject,
1282 /* 22149 */ // Label 4: @22149
1283 /* 22149 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(22189), // Rule ID 38 //
1284 /* 22154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1285 /* 22157 */ // MIs[0] dst
1286 /* 22157 */ // No operand predicates
1287 /* 22157 */ // MIs[0] zero
1288 /* 22157 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1289 /* 22161 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1290 /* 22165 */ // MIs[1] Operand 1
1291 /* 22165 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1292 /* 22176 */ // MIs[0] rhs
1293 /* 22176 */ // No operand predicates
1294 /* 22176 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1295 /* 22181 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1296 /* 22183 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
1297 /* 22183 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1298 /* 22188 */ GIR_EraseRootFromParent_Done,
1299 /* 22189 */ // Label 53: @22189
1300 /* 22189 */ GIM_Reject,
1301 /* 22190 */ // Label 5: @22190
1302 /* 22190 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(22230), // Rule ID 39 //
1303 /* 22195 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1304 /* 22198 */ // MIs[0] dst
1305 /* 22198 */ // No operand predicates
1306 /* 22198 */ // MIs[0] zero
1307 /* 22198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1308 /* 22202 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1309 /* 22206 */ // MIs[1] Operand 1
1310 /* 22206 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1311 /* 22217 */ // MIs[0] rhs
1312 /* 22217 */ // No operand predicates
1313 /* 22217 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1314 /* 22222 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1315 /* 22224 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
1316 /* 22224 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1317 /* 22229 */ GIR_EraseRootFromParent_Done,
1318 /* 22230 */ // Label 54: @22230
1319 /* 22230 */ GIM_Reject,
1320 /* 22231 */ // Label 6: @22231
1321 /* 22231 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(22271), // Rule ID 40 //
1322 /* 22236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1323 /* 22239 */ // MIs[0] dst
1324 /* 22239 */ // No operand predicates
1325 /* 22239 */ // MIs[0] zero
1326 /* 22239 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1327 /* 22243 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1328 /* 22247 */ // MIs[1] Operand 1
1329 /* 22247 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1330 /* 22258 */ // MIs[0] rhs
1331 /* 22258 */ // No operand predicates
1332 /* 22258 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1333 /* 22263 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1334 /* 22265 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
1335 /* 22265 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1336 /* 22270 */ GIR_EraseRootFromParent_Done,
1337 /* 22271 */ // Label 55: @22271
1338 /* 22271 */ GIM_Reject,
1339 /* 22272 */ // Label 7: @22272
1340 /* 22272 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(22296), // Rule ID 30 //
1341 /* 22277 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1342 /* 22280 */ // MIs[0] dst
1343 /* 22280 */ // No operand predicates
1344 /* 22280 */ // MIs[0] src
1345 /* 22280 */ // No operand predicates
1346 /* 22280 */ // MIs[0] src
1347 /* 22280 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1348 /* 22285 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1349 /* 22290 */ // Combiner Rule #12: binop_same_val @ [__binop_same_val_match_0[0]]
1350 /* 22290 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1351 /* 22295 */ GIR_EraseRootFromParent_Done,
1352 /* 22296 */ // Label 56: @22296
1353 /* 22296 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(22307), // Rule ID 61 //
1354 /* 22301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1355 /* 22304 */ // MIs[0] dst
1356 /* 22304 */ // No operand predicates
1357 /* 22304 */ // MIs[0] src1
1358 /* 22304 */ // No operand predicates
1359 /* 22304 */ // MIs[0] src2
1360 /* 22304 */ // No operand predicates
1361 /* 22304 */ // Combiner Rule #32: redundant_and
1362 /* 22304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1363 /* 22307 */ // Label 57: @22307
1364 /* 22307 */ GIM_Reject,
1365 /* 22308 */ // Label 8: @22308
1366 /* 22308 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(22332), // Rule ID 31 //
1367 /* 22313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1368 /* 22316 */ // MIs[0] dst
1369 /* 22316 */ // No operand predicates
1370 /* 22316 */ // MIs[0] src
1371 /* 22316 */ // No operand predicates
1372 /* 22316 */ // MIs[0] src
1373 /* 22316 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1374 /* 22321 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1375 /* 22326 */ // Combiner Rule #12: binop_same_val @ [__binop_same_val_match_0[1]]
1376 /* 22326 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1377 /* 22331 */ GIR_EraseRootFromParent_Done,
1378 /* 22332 */ // Label 58: @22332
1379 /* 22332 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(22355), // Rule ID 22 //
1380 /* 22337 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1381 /* 22340 */ // MIs[0] dst
1382 /* 22340 */ // No operand predicates
1383 /* 22340 */ // MIs[0] lhs
1384 /* 22340 */ // No operand predicates
1385 /* 22340 */ // MIs[0] Operand 2
1386 /* 22340 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1387 /* 22344 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1388 /* 22349 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[2]]
1389 /* 22349 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1390 /* 22354 */ GIR_EraseRootFromParent_Done,
1391 /* 22355 */ // Label 59: @22355
1392 /* 22355 */ GIM_Reject,
1393 /* 22356 */ // Label 9: @22356
1394 /* 22356 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(22395), // Rule ID 33 //
1395 /* 22361 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1396 /* 22364 */ // MIs[0] dst
1397 /* 22364 */ // No operand predicates
1398 /* 22364 */ // MIs[0] x
1399 /* 22364 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1400 /* 22368 */ // MIs[0] x
1401 /* 22368 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1402 /* 22373 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1403 /* 22376 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1404 /* 22386 */ // Combiner Rule #13: same_val_zero @ [__same_val_zero_match_0[1]]
1405 /* 22386 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1406 /* 22389 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1407 /* 22391 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1408 /* 22394 */ GIR_EraseRootFromParent_Done,
1409 /* 22395 */ // Label 60: @22395
1410 /* 22395 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(22418), // Rule ID 23 //
1411 /* 22400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1412 /* 22403 */ // MIs[0] dst
1413 /* 22403 */ // No operand predicates
1414 /* 22403 */ // MIs[0] lhs
1415 /* 22403 */ // No operand predicates
1416 /* 22403 */ // MIs[0] Operand 2
1417 /* 22403 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1418 /* 22407 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1419 /* 22412 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[3]]
1420 /* 22412 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1421 /* 22417 */ GIR_EraseRootFromParent_Done,
1422 /* 22418 */ // Label 61: @22418
1423 /* 22418 */ GIM_Reject,
1424 /* 22419 */ // Label 10: @22419
1425 /* 22419 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(22430), // Rule ID 0 //
1426 /* 22424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
1427 /* 22427 */ // Combiner Rule #0: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
1428 /* 22427 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
1429 /* 22430 */ // Label 62: @22430
1430 /* 22430 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(22441), // Rule ID 1 //
1431 /* 22435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
1432 /* 22438 */ // Combiner Rule #1: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
1433 /* 22438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
1434 /* 22441 */ // Label 63: @22441
1435 /* 22441 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(22452), // Rule ID 2 //
1436 /* 22446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
1437 /* 22449 */ // Combiner Rule #2: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
1438 /* 22449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
1439 /* 22452 */ // Label 64: @22452
1440 /* 22452 */ GIM_Reject,
1441 /* 22453 */ // Label 11: @22453
1442 /* 22453 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(22464), // Rule ID 52 //
1443 /* 22458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
1444 /* 22461 */ // Combiner Rule #23: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
1445 /* 22461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
1446 /* 22464 */ // Label 65: @22464
1447 /* 22464 */ GIM_Reject,
1448 /* 22465 */ // Label 12: @22465
1449 /* 22465 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(22476), // Rule ID 51 //
1450 /* 22470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
1451 /* 22473 */ // Combiner Rule #23: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
1452 /* 22473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
1453 /* 22476 */ // Label 66: @22476
1454 /* 22476 */ GIM_Reject,
1455 /* 22477 */ // Label 13: @22477
1456 /* 22477 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(22498), // Rule ID 44 //
1457 /* 22482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
1458 /* 22485 */ // MIs[0] dst
1459 /* 22485 */ // No operand predicates
1460 /* 22485 */ // MIs[0] t
1461 /* 22485 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1462 /* 22489 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1463 /* 22493 */ // MIs[1] ptr
1464 /* 22493 */ // No operand predicates
1465 /* 22493 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1466 /* 22495 */ // Combiner Rule #17: i2p_to_p2i
1467 /* 22495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
1468 /* 22498 */ // Label 67: @22498
1469 /* 22498 */ GIM_Reject,
1470 /* 22499 */ // Label 14: @22499
1471 /* 22499 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(22532), // Rule ID 43 //
1472 /* 22504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
1473 /* 22507 */ // MIs[0] dst
1474 /* 22507 */ // No operand predicates
1475 /* 22507 */ // MIs[0] mid
1476 /* 22507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1477 /* 22511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
1478 /* 22515 */ // MIs[1] x
1479 /* 22515 */ // No operand predicates
1480 /* 22515 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1481 /* 22519 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1482 /* 22524 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1483 /* 22526 */ // Combiner Rule #16: p2i_to_i2p
1484 /* 22526 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1485 /* 22531 */ GIR_EraseRootFromParent_Done,
1486 /* 22532 */ // Label 68: @22532
1487 /* 22532 */ GIM_Reject,
1488 /* 22533 */ // Label 15: @22533
1489 /* 22533 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(22565), // Rule ID 56 //
1490 /* 22538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
1491 /* 22541 */ // MIs[0] dst
1492 /* 22541 */ // No operand predicates
1493 /* 22541 */ // MIs[0] src1
1494 /* 22541 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1495 /* 22545 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1496 /* 22549 */ // MIs[1] src0
1497 /* 22549 */ // No operand predicates
1498 /* 22549 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
1499 /* 22553 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1500 /* 22555 */ // Combiner Rule #27: bitcast_bitcast_to_bitcast
1501 /* 22555 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
1502 /* 22558 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1503 /* 22560 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
1504 /* 22564 */ GIR_EraseRootFromParent_Done,
1505 /* 22565 */ // Label 69: @22565
1506 /* 22565 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(22586), // Rule ID 55 //
1507 /* 22570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
1508 /* 22573 */ // MIs[0] dst
1509 /* 22573 */ // No operand predicates
1510 /* 22573 */ // MIs[0] src1
1511 /* 22573 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1512 /* 22577 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1513 /* 22581 */ // MIs[1] src0
1514 /* 22581 */ // No operand predicates
1515 /* 22581 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1516 /* 22583 */ // Combiner Rule #26: bitcast_bitcast_fold
1517 /* 22583 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1518 /* 22586 */ // Label 70: @22586
1519 /* 22586 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 71*/ GIMT_Encode4(22599), GIMT_Encode2(GIFBS_anonymous_55132), // Rule ID 80 //
1520 /* 22593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
1521 /* 22596 */ // MIs[0] dst
1522 /* 22596 */ // No operand predicates
1523 /* 22596 */ // MIs[0] src
1524 /* 22596 */ // No operand predicates
1525 /* 22596 */ // Combiner Rule #49: d16_load
1526 /* 22596 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
1527 /* 22599 */ // Label 71: @22599
1528 /* 22599 */ GIM_Reject,
1529 /* 22600 */ // Label 16: @22600
1530 /* 22600 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(22621), // Rule ID 72 //
1531 /* 22605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
1532 /* 22608 */ // MIs[0] root
1533 /* 22608 */ // No operand predicates
1534 /* 22608 */ // MIs[0] second
1535 /* 22608 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1536 /* 22612 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1537 /* 22616 */ // MIs[1] src
1538 /* 22616 */ // No operand predicates
1539 /* 22616 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1540 /* 22618 */ // Combiner Rule #41: anyext_of_anyext
1541 /* 22618 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1542 /* 22621 */ // Label 72: @22621
1543 /* 22621 */ GIM_Try, /*On fail goto*//*Label 73*/ GIMT_Encode4(22642), // Rule ID 74 //
1544 /* 22626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
1545 /* 22629 */ // MIs[0] root
1546 /* 22629 */ // No operand predicates
1547 /* 22629 */ // MIs[0] second
1548 /* 22629 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1549 /* 22633 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1550 /* 22637 */ // MIs[1] src
1551 /* 22637 */ // No operand predicates
1552 /* 22637 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1553 /* 22639 */ // Combiner Rule #43: anyext_of_sext
1554 /* 22639 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1555 /* 22642 */ // Label 73: @22642
1556 /* 22642 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(22663), // Rule ID 73 //
1557 /* 22647 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
1558 /* 22650 */ // MIs[0] root
1559 /* 22650 */ // No operand predicates
1560 /* 22650 */ // MIs[0] second
1561 /* 22650 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1562 /* 22654 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1563 /* 22658 */ // MIs[1] src
1564 /* 22658 */ // No operand predicates
1565 /* 22658 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1566 /* 22660 */ // Combiner Rule #42: anyext_of_zext
1567 /* 22660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1568 /* 22663 */ // Label 74: @22663
1569 /* 22663 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(22674), // Rule ID 45 //
1570 /* 22668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
1571 /* 22671 */ // MIs[0] dst
1572 /* 22671 */ // No operand predicates
1573 /* 22671 */ // MIs[0] src
1574 /* 22671 */ // No operand predicates
1575 /* 22671 */ // Combiner Rule #18: anyext_trunc_fold
1576 /* 22671 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
1577 /* 22674 */ // Label 75: @22674
1578 /* 22674 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(22685), // Rule ID 64 //
1579 /* 22679 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
1580 /* 22682 */ // MIs[0] dst
1581 /* 22682 */ // No operand predicates
1582 /* 22682 */ // MIs[0] d.src
1583 /* 22682 */ // No operand predicates
1584 /* 22682 */ // Combiner Rule #33: constant_fold_cast_op @ [d[2]]
1585 /* 22682 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1586 /* 22685 */ // Label 76: @22685
1587 /* 22685 */ GIM_Reject,
1588 /* 22686 */ // Label 17: @22686
1589 /* 22686 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(22707), // Rule ID 67 //
1590 /* 22691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1591 /* 22694 */ // MIs[0] root
1592 /* 22694 */ // No operand predicates
1593 /* 22694 */ // MIs[0] ext
1594 /* 22694 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1595 /* 22698 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1596 /* 22702 */ // MIs[1] src
1597 /* 22702 */ // No operand predicates
1598 /* 22702 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1599 /* 22704 */ // Combiner Rule #36: truncate_of_anyext
1600 /* 22704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1601 /* 22707 */ // Label 77: @22707
1602 /* 22707 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(22728), // Rule ID 66 //
1603 /* 22712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
1604 /* 22715 */ // MIs[0] root
1605 /* 22715 */ // No operand predicates
1606 /* 22715 */ // MIs[0] ext
1607 /* 22715 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1608 /* 22719 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1609 /* 22723 */ // MIs[1] src
1610 /* 22723 */ // No operand predicates
1611 /* 22723 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1612 /* 22725 */ // Combiner Rule #35: truncate_of_sext
1613 /* 22725 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1614 /* 22728 */ // Label 78: @22728
1615 /* 22728 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(22749), // Rule ID 65 //
1616 /* 22733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
1617 /* 22736 */ // MIs[0] root
1618 /* 22736 */ // No operand predicates
1619 /* 22736 */ // MIs[0] ext
1620 /* 22736 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1621 /* 22740 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1622 /* 22744 */ // MIs[1] src
1623 /* 22744 */ // No operand predicates
1624 /* 22744 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1625 /* 22746 */ // Combiner Rule #34: truncate_of_zext
1626 /* 22746 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1627 /* 22749 */ // Label 79: @22749
1628 /* 22749 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(22760), // Rule ID 53 //
1629 /* 22754 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
1630 /* 22757 */ // MIs[0] dst
1631 /* 22757 */ // No operand predicates
1632 /* 22757 */ // MIs[0] src
1633 /* 22757 */ // No operand predicates
1634 /* 22757 */ // Combiner Rule #24: trunc_buildvector_fold
1635 /* 22757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
1636 /* 22760 */ // Label 80: @22760
1637 /* 22760 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(22771), // Rule ID 54 //
1638 /* 22765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
1639 /* 22768 */ // MIs[0] dst
1640 /* 22768 */ // No operand predicates
1641 /* 22768 */ // MIs[0] src
1642 /* 22768 */ // No operand predicates
1643 /* 22768 */ // Combiner Rule #25: trunc_lshr_buildvector_fold
1644 /* 22768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1645 /* 22771 */ // Label 81: @22771
1646 /* 22771 */ GIM_Reject,
1647 /* 22772 */ // Label 18: @22772
1648 /* 22772 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(22793), // Rule ID 71 //
1649 /* 22777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
1650 /* 22780 */ // MIs[0] root
1651 /* 22780 */ // No operand predicates
1652 /* 22780 */ // MIs[0] second
1653 /* 22780 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1654 /* 22784 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1655 /* 22788 */ // MIs[1] src
1656 /* 22788 */ // No operand predicates
1657 /* 22788 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1658 /* 22790 */ // Combiner Rule #40: sext_of_anyext
1659 /* 22790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1660 /* 22793 */ // Label 82: @22793
1661 /* 22793 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(22814), // Rule ID 70 //
1662 /* 22798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
1663 /* 22801 */ // MIs[0] root
1664 /* 22801 */ // No operand predicates
1665 /* 22801 */ // MIs[0] second
1666 /* 22801 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1667 /* 22805 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1668 /* 22809 */ // MIs[1] src
1669 /* 22809 */ // No operand predicates
1670 /* 22809 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1671 /* 22811 */ // Combiner Rule #39: sext_of_sext
1672 /* 22811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1673 /* 22814 */ // Label 83: @22814
1674 /* 22814 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(22835), // Rule ID 76 //
1675 /* 22819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
1676 /* 22822 */ // MIs[0] root
1677 /* 22822 */ // No operand predicates
1678 /* 22822 */ // MIs[0] src
1679 /* 22822 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1680 /* 22826 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
1681 /* 22830 */ // MIs[1] x
1682 /* 22830 */ // No operand predicates
1683 /* 22830 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1684 /* 22832 */ // Combiner Rule #45: sext_trunc
1685 /* 22832 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1686 /* 22835 */ // Label 84: @22835
1687 /* 22835 */ GIM_Try, /*On fail goto*//*Label 85*/ GIMT_Encode4(22846), // Rule ID 63 //
1688 /* 22840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
1689 /* 22843 */ // MIs[0] dst
1690 /* 22843 */ // No operand predicates
1691 /* 22843 */ // MIs[0] d.src
1692 /* 22843 */ // No operand predicates
1693 /* 22843 */ // Combiner Rule #33: constant_fold_cast_op @ [d[1]]
1694 /* 22843 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1695 /* 22846 */ // Label 85: @22846
1696 /* 22846 */ GIM_Reject,
1697 /* 22847 */ // Label 19: @22847
1698 /* 22847 */ GIM_Try, /*On fail goto*//*Label 86*/ GIMT_Encode4(22868), // Rule ID 75 //
1699 /* 22852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
1700 /* 22855 */ // MIs[0] dst
1701 /* 22855 */ // No operand predicates
1702 /* 22855 */ // MIs[0] x
1703 /* 22855 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1704 /* 22859 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
1705 /* 22863 */ // MIs[1] src
1706 /* 22863 */ // No operand predicates
1707 /* 22863 */ // MIs[1] a
1708 /* 22863 */ // No operand predicates
1709 /* 22863 */ // MIs[0] b
1710 /* 22863 */ // No operand predicates
1711 /* 22863 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1712 /* 22865 */ // Combiner Rule #44: sext_inreg_of_sext_inreg
1713 /* 22865 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1714 /* 22868 */ // Label 86: @22868
1715 /* 22868 */ GIM_Reject,
1716 /* 22869 */ // Label 20: @22869
1717 /* 22869 */ GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(22890), // Rule ID 69 //
1718 /* 22874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
1719 /* 22877 */ // MIs[0] root
1720 /* 22877 */ // No operand predicates
1721 /* 22877 */ // MIs[0] second
1722 /* 22877 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1723 /* 22881 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1724 /* 22885 */ // MIs[1] src
1725 /* 22885 */ // No operand predicates
1726 /* 22885 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1727 /* 22887 */ // Combiner Rule #38: zext_of_anyext
1728 /* 22887 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1729 /* 22890 */ // Label 87: @22890
1730 /* 22890 */ GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(22911), // Rule ID 68 //
1731 /* 22895 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
1732 /* 22898 */ // MIs[0] root
1733 /* 22898 */ // No operand predicates
1734 /* 22898 */ // MIs[0] second
1735 /* 22898 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1736 /* 22902 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1737 /* 22906 */ // MIs[1] src
1738 /* 22906 */ // No operand predicates
1739 /* 22906 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1740 /* 22908 */ // Combiner Rule #37: zext_of_zext
1741 /* 22908 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1742 /* 22911 */ // Label 88: @22911
1743 /* 22911 */ GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(22922), // Rule ID 3 //
1744 /* 22916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
1745 /* 22919 */ // MIs[0] dst
1746 /* 22919 */ // No operand predicates
1747 /* 22919 */ // MIs[0] src
1748 /* 22919 */ // No operand predicates
1749 /* 22919 */ // Combiner Rule #3: zext_trunc_fold
1750 /* 22919 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
1751 /* 22922 */ // Label 89: @22922
1752 /* 22922 */ GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(22933), // Rule ID 62 //
1753 /* 22927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
1754 /* 22930 */ // MIs[0] dst
1755 /* 22930 */ // No operand predicates
1756 /* 22930 */ // MIs[0] d.src
1757 /* 22930 */ // No operand predicates
1758 /* 22930 */ // Combiner Rule #33: constant_fold_cast_op @ [d[0]]
1759 /* 22930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1760 /* 22933 */ // Label 90: @22933
1761 /* 22933 */ GIM_Reject,
1762 /* 22934 */ // Label 21: @22934
1763 /* 22934 */ GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(22974), // Rule ID 34 //
1764 /* 22939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1765 /* 22942 */ // MIs[0] dst
1766 /* 22942 */ // No operand predicates
1767 /* 22942 */ // MIs[0] zero
1768 /* 22942 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1769 /* 22946 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1770 /* 22950 */ // MIs[1] Operand 1
1771 /* 22950 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1772 /* 22961 */ // MIs[0] rhs
1773 /* 22961 */ // No operand predicates
1774 /* 22961 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1775 /* 22966 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1776 /* 22968 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
1777 /* 22968 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1778 /* 22973 */ GIR_EraseRootFromParent_Done,
1779 /* 22974 */ // Label 91: @22974
1780 /* 22974 */ GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(22995), // Rule ID 79 //
1781 /* 22979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
1782 /* 22982 */ // MIs[0] dst
1783 /* 22982 */ // No operand predicates
1784 /* 22982 */ // MIs[0] src
1785 /* 22982 */ // No operand predicates
1786 /* 22982 */ // MIs[0] amt
1787 /* 22982 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1788 /* 22986 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1789 /* 22990 */ // MIs[1] amtsrc
1790 /* 22990 */ // No operand predicates
1791 /* 22990 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1792 /* 22992 */ // Combiner Rule #48: canonicalize_zext_shl
1793 /* 22992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
1794 /* 22995 */ // Label 92: @22995
1795 /* 22995 */ GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(23018), // Rule ID 24 //
1796 /* 23000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1797 /* 23003 */ // MIs[0] dst
1798 /* 23003 */ // No operand predicates
1799 /* 23003 */ // MIs[0] lhs
1800 /* 23003 */ // No operand predicates
1801 /* 23003 */ // MIs[0] Operand 2
1802 /* 23003 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1803 /* 23007 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1804 /* 23012 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[4]]
1805 /* 23012 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1806 /* 23017 */ GIR_EraseRootFromParent_Done,
1807 /* 23018 */ // Label 93: @23018
1808 /* 23018 */ GIM_Reject,
1809 /* 23019 */ // Label 22: @23019
1810 /* 23019 */ GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(23059), // Rule ID 35 //
1811 /* 23024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1812 /* 23027 */ // MIs[0] dst
1813 /* 23027 */ // No operand predicates
1814 /* 23027 */ // MIs[0] zero
1815 /* 23027 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1816 /* 23031 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1817 /* 23035 */ // MIs[1] Operand 1
1818 /* 23035 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1819 /* 23046 */ // MIs[0] rhs
1820 /* 23046 */ // No operand predicates
1821 /* 23046 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1822 /* 23051 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1823 /* 23053 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
1824 /* 23053 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1825 /* 23058 */ GIR_EraseRootFromParent_Done,
1826 /* 23059 */ // Label 94: @23059
1827 /* 23059 */ GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(23080), // Rule ID 77 //
1828 /* 23064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
1829 /* 23067 */ // MIs[0] dst
1830 /* 23067 */ // No operand predicates
1831 /* 23067 */ // MIs[0] src
1832 /* 23067 */ // No operand predicates
1833 /* 23067 */ // MIs[0] amt
1834 /* 23067 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1835 /* 23071 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1836 /* 23075 */ // MIs[1] amtsrc
1837 /* 23075 */ // No operand predicates
1838 /* 23075 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1839 /* 23077 */ // Combiner Rule #46: canonicalize_zext_lshr
1840 /* 23077 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
1841 /* 23080 */ // Label 95: @23080
1842 /* 23080 */ GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(23103), // Rule ID 26 //
1843 /* 23085 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1844 /* 23088 */ // MIs[0] dst
1845 /* 23088 */ // No operand predicates
1846 /* 23088 */ // MIs[0] lhs
1847 /* 23088 */ // No operand predicates
1848 /* 23088 */ // MIs[0] Operand 2
1849 /* 23088 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1850 /* 23092 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1851 /* 23097 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[6]]
1852 /* 23097 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1853 /* 23102 */ GIR_EraseRootFromParent_Done,
1854 /* 23103 */ // Label 96: @23103
1855 /* 23103 */ GIM_Reject,
1856 /* 23104 */ // Label 23: @23104
1857 /* 23104 */ GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(23144), // Rule ID 36 //
1858 /* 23109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1859 /* 23112 */ // MIs[0] dst
1860 /* 23112 */ // No operand predicates
1861 /* 23112 */ // MIs[0] zero
1862 /* 23112 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1863 /* 23116 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1864 /* 23120 */ // MIs[1] Operand 1
1865 /* 23120 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1866 /* 23131 */ // MIs[0] rhs
1867 /* 23131 */ // No operand predicates
1868 /* 23131 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1869 /* 23136 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1870 /* 23138 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
1871 /* 23138 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1872 /* 23143 */ GIR_EraseRootFromParent_Done,
1873 /* 23144 */ // Label 97: @23144
1874 /* 23144 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(23165), // Rule ID 78 //
1875 /* 23149 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
1876 /* 23152 */ // MIs[0] dst
1877 /* 23152 */ // No operand predicates
1878 /* 23152 */ // MIs[0] src
1879 /* 23152 */ // No operand predicates
1880 /* 23152 */ // MIs[0] amt
1881 /* 23152 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1882 /* 23156 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1883 /* 23160 */ // MIs[1] amtsrc
1884 /* 23160 */ // No operand predicates
1885 /* 23160 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1886 /* 23162 */ // Combiner Rule #47: canonicalize_zext_ashr
1887 /* 23162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
1888 /* 23165 */ // Label 98: @23165
1889 /* 23165 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(23188), // Rule ID 25 //
1890 /* 23170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1891 /* 23173 */ // MIs[0] dst
1892 /* 23173 */ // No operand predicates
1893 /* 23173 */ // MIs[0] lhs
1894 /* 23173 */ // No operand predicates
1895 /* 23173 */ // MIs[0] Operand 2
1896 /* 23173 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1897 /* 23177 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1898 /* 23182 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[5]]
1899 /* 23182 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1900 /* 23187 */ GIR_EraseRootFromParent_Done,
1901 /* 23188 */ // Label 99: @23188
1902 /* 23188 */ GIM_Reject,
1903 /* 23189 */ // Label 24: @23189
1904 /* 23189 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(23212), // Rule ID 29 //
1905 /* 23194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1906 /* 23197 */ // MIs[0] dst
1907 /* 23197 */ // No operand predicates
1908 /* 23197 */ // MIs[0] lhs
1909 /* 23197 */ // No operand predicates
1910 /* 23197 */ // MIs[0] Operand 2
1911 /* 23197 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1912 /* 23201 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1913 /* 23206 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[9]]
1914 /* 23206 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1915 /* 23211 */ GIR_EraseRootFromParent_Done,
1916 /* 23212 */ // Label 100: @23212
1917 /* 23212 */ GIM_Reject,
1918 /* 23213 */ // Label 25: @23213
1919 /* 23213 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(23236), // Rule ID 28 //
1920 /* 23218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1921 /* 23221 */ // MIs[0] dst
1922 /* 23221 */ // No operand predicates
1923 /* 23221 */ // MIs[0] lhs
1924 /* 23221 */ // No operand predicates
1925 /* 23221 */ // MIs[0] Operand 2
1926 /* 23221 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1927 /* 23225 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1928 /* 23230 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[8]]
1929 /* 23230 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1930 /* 23235 */ GIR_EraseRootFromParent_Done,
1931 /* 23236 */ // Label 101: @23236
1932 /* 23236 */ GIM_Reject,
1933 /* 23237 */ // Label 26: @23237
1934 /* 23237 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(23261), // Rule ID 18 //
1935 /* 23242 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
1936 /* 23245 */ // MIs[0] dst
1937 /* 23245 */ // No operand predicates
1938 /* 23245 */ // MIs[0] cond
1939 /* 23245 */ // No operand predicates
1940 /* 23245 */ // MIs[0] x
1941 /* 23245 */ // No operand predicates
1942 /* 23245 */ // MIs[0] x
1943 /* 23245 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
1944 /* 23250 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1945 /* 23255 */ // Combiner Rule #9: select_same_val_trivial
1946 /* 23255 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1947 /* 23260 */ GIR_EraseRootFromParent_Done,
1948 /* 23261 */ // Label 102: @23261
1949 /* 23261 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(23284), // Rule ID 19 //
1950 /* 23266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1951 /* 23269 */ // MIs[0] dst
1952 /* 23269 */ // No operand predicates
1953 /* 23269 */ // MIs[0] cond
1954 /* 23269 */ // No operand predicates
1955 /* 23269 */ // MIs[0] tval
1956 /* 23269 */ // No operand predicates
1957 /* 23269 */ // MIs[0] fval
1958 /* 23269 */ // No operand predicates
1959 /* 23269 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
1960 /* 23273 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1961 /* 23278 */ // Combiner Rule #10: select_same_val_equiv
1962 /* 23278 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1963 /* 23283 */ GIR_EraseRootFromParent_Done,
1964 /* 23284 */ // Label 103: @23284
1965 /* 23284 */ GIM_Reject,
1966 /* 23285 */ // Label 27: @23285
1967 /* 23285 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(23308), // Rule ID 58 //
1968 /* 23290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
1969 /* 23293 */ // MIs[0] dst
1970 /* 23293 */ // No operand predicates
1971 /* 23293 */ // MIs[0] x
1972 /* 23293 */ // No operand predicates
1973 /* 23293 */ // MIs[0] y
1974 /* 23293 */ // No operand predicates
1975 /* 23293 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
1976 /* 23297 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1977 /* 23302 */ // Combiner Rule #29: right_identity_neg_zero_fp
1978 /* 23302 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1979 /* 23307 */ GIR_EraseRootFromParent_Done,
1980 /* 23308 */ // Label 104: @23308
1981 /* 23308 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(23337), // Rule ID 59 //
1982 /* 23313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1983 /* 23316 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
1984 /* 23322 */ // MIs[0] dst
1985 /* 23322 */ // No operand predicates
1986 /* 23322 */ // MIs[0] x
1987 /* 23322 */ // No operand predicates
1988 /* 23322 */ // MIs[0] y
1989 /* 23322 */ // No operand predicates
1990 /* 23322 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
1991 /* 23326 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1992 /* 23331 */ // Combiner Rule #30: right_identity_neg_zero_fp_nsz
1993 /* 23331 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1994 /* 23336 */ GIR_EraseRootFromParent_Done,
1995 /* 23337 */ // Label 105: @23337
1996 /* 23337 */ GIM_Reject,
1997 /* 23338 */ // Label 28: @23338
1998 /* 23338 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(23361), // Rule ID 48 //
1999 /* 23343 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
2000 /* 23346 */ // MIs[0] dst
2001 /* 23346 */ // No operand predicates
2002 /* 23346 */ // MIs[0] x
2003 /* 23346 */ // No operand predicates
2004 /* 23346 */ // MIs[0] y
2005 /* 23346 */ // No operand predicates
2006 /* 23346 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
2007 /* 23350 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2008 /* 23355 */ // Combiner Rule #21: right_identity_one_fp
2009 /* 23355 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2010 /* 23360 */ GIR_EraseRootFromParent_Done,
2011 /* 23361 */ // Label 106: @23361
2012 /* 23361 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(23381), // Rule ID 60 //
2013 /* 23366 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
2014 /* 23369 */ // MIs[0] dst
2015 /* 23369 */ // No operand predicates
2016 /* 23369 */ // MIs[0] x
2017 /* 23369 */ // No operand predicates
2018 /* 23369 */ // MIs[0] y
2019 /* 23369 */ // No operand predicates
2020 /* 23369 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
2021 /* 23373 */ // Combiner Rule #31: right_identity_neg_one_fp
2022 /* 23373 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
2023 /* 23376 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
2024 /* 23378 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
2025 /* 23380 */ GIR_EraseRootFromParent_Done,
2026 /* 23381 */ // Label 107: @23381
2027 /* 23381 */ GIM_Reject,
2028 /* 23382 */ // Label 29: @23382
2029 /* 23382 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(23411), // Rule ID 46 //
2030 /* 23387 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
2031 /* 23390 */ // MIs[0] dst
2032 /* 23390 */ // No operand predicates
2033 /* 23390 */ // MIs[0] t
2034 /* 23390 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2035 /* 23394 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
2036 /* 23398 */ // MIs[1] src
2037 /* 23398 */ // No operand predicates
2038 /* 23398 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2039 /* 23403 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
2040 /* 23405 */ // Combiner Rule #19: fneg_fneg_fold
2041 /* 23405 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2042 /* 23410 */ GIR_EraseRootFromParent_Done,
2043 /* 23411 */ // Label 108: @23411
2044 /* 23411 */ GIM_Reject,
2045 /* 23412 */ // Label 30: @23412
2046 /* 23412 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(23433), // Rule ID 57 //
2047 /* 23417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
2048 /* 23420 */ // MIs[0] dst
2049 /* 23420 */ // No operand predicates
2050 /* 23420 */ // MIs[0] src1
2051 /* 23420 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2052 /* 23424 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
2053 /* 23428 */ // MIs[1] src0
2054 /* 23428 */ // No operand predicates
2055 /* 23428 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
2056 /* 23430 */ // Combiner Rule #28: fptrunc_fpext_fold
2057 /* 23430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
2058 /* 23433 */ // Label 109: @23433
2059 /* 23433 */ GIM_Reject,
2060 /* 23434 */ // Label 31: @23434
2061 /* 23434 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(23445), // Rule ID 10 //
2062 /* 23439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2063 /* 23442 */ // MIs[0] dst
2064 /* 23442 */ // No operand predicates
2065 /* 23442 */ // MIs[0] min_or_max.lhs
2066 /* 23442 */ // No operand predicates
2067 /* 23442 */ // MIs[0] min_or_max.rhs
2068 /* 23442 */ // No operand predicates
2069 /* 23442 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[1]]
2070 /* 23442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2071 /* 23445 */ // Label 110: @23445
2072 /* 23445 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(23456), // Rule ID 14 //
2073 /* 23450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2074 /* 23453 */ // MIs[0] dst
2075 /* 23453 */ // No operand predicates
2076 /* 23453 */ // MIs[0] min_or_max.lhs
2077 /* 23453 */ // No operand predicates
2078 /* 23453 */ // MIs[0] min_or_max.rhs
2079 /* 23453 */ // No operand predicates
2080 /* 23453 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[1]]
2081 /* 23453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2082 /* 23456 */ // Label 111: @23456
2083 /* 23456 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(23467), // Rule ID 86 //
2084 /* 23461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
2085 /* 23464 */ // MIs[0] dst
2086 /* 23464 */ // No operand predicates
2087 /* 23464 */ // MIs[0] lhs
2088 /* 23464 */ // No operand predicates
2089 /* 23464 */ // MIs[0] rhs
2090 /* 23464 */ // No operand predicates
2091 /* 23464 */ // Combiner Rule #55: fmin_to_minmax3
2092 /* 23464 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2093 /* 23467 */ // Label 112: @23467
2094 /* 23467 */ GIM_Reject,
2095 /* 23468 */ // Label 32: @23468
2096 /* 23468 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(23479), // Rule ID 9 //
2097 /* 23473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2098 /* 23476 */ // MIs[0] dst
2099 /* 23476 */ // No operand predicates
2100 /* 23476 */ // MIs[0] min_or_max.lhs
2101 /* 23476 */ // No operand predicates
2102 /* 23476 */ // MIs[0] min_or_max.rhs
2103 /* 23476 */ // No operand predicates
2104 /* 23476 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[0]]
2105 /* 23476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2106 /* 23479 */ // Label 113: @23479
2107 /* 23479 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(23490), // Rule ID 13 //
2108 /* 23484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2109 /* 23487 */ // MIs[0] dst
2110 /* 23487 */ // No operand predicates
2111 /* 23487 */ // MIs[0] min_or_max.lhs
2112 /* 23487 */ // No operand predicates
2113 /* 23487 */ // MIs[0] min_or_max.rhs
2114 /* 23487 */ // No operand predicates
2115 /* 23487 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[0]]
2116 /* 23487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2117 /* 23490 */ // Label 114: @23490
2118 /* 23490 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(23501), // Rule ID 85 //
2119 /* 23495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
2120 /* 23498 */ // MIs[0] dst
2121 /* 23498 */ // No operand predicates
2122 /* 23498 */ // MIs[0] lhs
2123 /* 23498 */ // No operand predicates
2124 /* 23498 */ // MIs[0] rhs
2125 /* 23498 */ // No operand predicates
2126 /* 23498 */ // Combiner Rule #54: fmax_to_minmax3
2127 /* 23498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2128 /* 23501 */ // Label 115: @23501
2129 /* 23501 */ GIM_Reject,
2130 /* 23502 */ // Label 33: @23502
2131 /* 23502 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(23513), // Rule ID 12 //
2132 /* 23507 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2133 /* 23510 */ // MIs[0] dst
2134 /* 23510 */ // No operand predicates
2135 /* 23510 */ // MIs[0] min_or_max.lhs
2136 /* 23510 */ // No operand predicates
2137 /* 23510 */ // MIs[0] min_or_max.rhs
2138 /* 23510 */ // No operand predicates
2139 /* 23510 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[3]]
2140 /* 23510 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2141 /* 23513 */ // Label 116: @23513
2142 /* 23513 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(23524), // Rule ID 16 //
2143 /* 23518 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2144 /* 23521 */ // MIs[0] dst
2145 /* 23521 */ // No operand predicates
2146 /* 23521 */ // MIs[0] min_or_max.lhs
2147 /* 23521 */ // No operand predicates
2148 /* 23521 */ // MIs[0] min_or_max.rhs
2149 /* 23521 */ // No operand predicates
2150 /* 23521 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[3]]
2151 /* 23521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2152 /* 23524 */ // Label 117: @23524
2153 /* 23524 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(23535), // Rule ID 90 //
2154 /* 23529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
2155 /* 23532 */ // MIs[0] dst
2156 /* 23532 */ // No operand predicates
2157 /* 23532 */ // MIs[0] lhs
2158 /* 23532 */ // No operand predicates
2159 /* 23532 */ // MIs[0] rhs
2160 /* 23532 */ // No operand predicates
2161 /* 23532 */ // Combiner Rule #59: fmin_ieee_to_minmax3
2162 /* 23532 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2163 /* 23535 */ // Label 118: @23535
2164 /* 23535 */ GIM_Reject,
2165 /* 23536 */ // Label 34: @23536
2166 /* 23536 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(23547), // Rule ID 11 //
2167 /* 23541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2168 /* 23544 */ // MIs[0] dst
2169 /* 23544 */ // No operand predicates
2170 /* 23544 */ // MIs[0] min_or_max.lhs
2171 /* 23544 */ // No operand predicates
2172 /* 23544 */ // MIs[0] min_or_max.rhs
2173 /* 23544 */ // No operand predicates
2174 /* 23544 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[2]]
2175 /* 23544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2176 /* 23547 */ // Label 119: @23547
2177 /* 23547 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(23558), // Rule ID 15 //
2178 /* 23552 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2179 /* 23555 */ // MIs[0] dst
2180 /* 23555 */ // No operand predicates
2181 /* 23555 */ // MIs[0] min_or_max.lhs
2182 /* 23555 */ // No operand predicates
2183 /* 23555 */ // MIs[0] min_or_max.rhs
2184 /* 23555 */ // No operand predicates
2185 /* 23555 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[2]]
2186 /* 23555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2187 /* 23558 */ // Label 120: @23558
2188 /* 23558 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(23569), // Rule ID 89 //
2189 /* 23563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
2190 /* 23566 */ // MIs[0] dst
2191 /* 23566 */ // No operand predicates
2192 /* 23566 */ // MIs[0] lhs
2193 /* 23566 */ // No operand predicates
2194 /* 23566 */ // MIs[0] rhs
2195 /* 23566 */ // No operand predicates
2196 /* 23566 */ // Combiner Rule #58: fmax_ieee_to_minmax3
2197 /* 23566 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2198 /* 23569 */ // Label 121: @23569
2199 /* 23569 */ GIM_Reject,
2200 /* 23570 */ // Label 35: @23570
2201 /* 23570 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(23581), // Rule ID 88 //
2202 /* 23575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
2203 /* 23578 */ // MIs[0] dst
2204 /* 23578 */ // No operand predicates
2205 /* 23578 */ // MIs[0] lhs
2206 /* 23578 */ // No operand predicates
2207 /* 23578 */ // MIs[0] rhs
2208 /* 23578 */ // No operand predicates
2209 /* 23578 */ // Combiner Rule #57: fminimum_to_minmax3
2210 /* 23578 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2211 /* 23581 */ // Label 122: @23581
2212 /* 23581 */ GIM_Reject,
2213 /* 23582 */ // Label 36: @23582
2214 /* 23582 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(23593), // Rule ID 87 //
2215 /* 23587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
2216 /* 23590 */ // MIs[0] dst
2217 /* 23590 */ // No operand predicates
2218 /* 23590 */ // MIs[0] lhs
2219 /* 23590 */ // No operand predicates
2220 /* 23590 */ // MIs[0] rhs
2221 /* 23590 */ // No operand predicates
2222 /* 23590 */ // Combiner Rule #56: fmaximum_to_minmax3
2223 /* 23590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2224 /* 23593 */ // Label 123: @23593
2225 /* 23593 */ GIM_Reject,
2226 /* 23594 */ // Label 37: @23594
2227 /* 23594 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(23617), // Rule ID 27 //
2228 /* 23599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
2229 /* 23602 */ // MIs[0] dst
2230 /* 23602 */ // No operand predicates
2231 /* 23602 */ // MIs[0] lhs
2232 /* 23602 */ // No operand predicates
2233 /* 23602 */ // MIs[0] Operand 2
2234 /* 23602 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2235 /* 23606 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2236 /* 23611 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[7]]
2237 /* 23611 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2238 /* 23616 */ GIR_EraseRootFromParent_Done,
2239 /* 23617 */ // Label 124: @23617
2240 /* 23617 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(23628), // Rule ID 8 //
2241 /* 23622 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
2242 /* 23625 */ // MIs[0] dst
2243 /* 23625 */ // No operand predicates
2244 /* 23625 */ // MIs[0] base
2245 /* 23625 */ // No operand predicates
2246 /* 23625 */ // MIs[0] offset
2247 /* 23625 */ // No operand predicates
2248 /* 23625 */ // Combiner Rule #5: ptr_add_immed_chain
2249 /* 23625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
2250 /* 23628 */ // Label 125: @23628
2251 /* 23628 */ GIM_Reject,
2252 /* 23629 */ // Label 38: @23629
2253 /* 23629 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(23640), // Rule ID 5 //
2254 /* 23634 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2255 /* 23637 */ // MIs[0] dst
2256 /* 23637 */ // No operand predicates
2257 /* 23637 */ // MIs[0] min_or_max.lhs
2258 /* 23637 */ // No operand predicates
2259 /* 23637 */ // MIs[0] min_or_max.rhs
2260 /* 23637 */ // No operand predicates
2261 /* 23637 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[1]]
2262 /* 23637 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2263 /* 23640 */ // Label 126: @23640
2264 /* 23640 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(23651), // Rule ID 82 //
2265 /* 23645 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
2266 /* 23648 */ // MIs[0] dst
2267 /* 23648 */ // No operand predicates
2268 /* 23648 */ // MIs[0] lhs
2269 /* 23648 */ // No operand predicates
2270 /* 23648 */ // MIs[0] rhs
2271 /* 23648 */ // No operand predicates
2272 /* 23648 */ // Combiner Rule #51: smin_to_minmax3
2273 /* 23648 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2274 /* 23651 */ // Label 127: @23651
2275 /* 23651 */ GIM_Reject,
2276 /* 23652 */ // Label 39: @23652
2277 /* 23652 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(23663), // Rule ID 4 //
2278 /* 23657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2279 /* 23660 */ // MIs[0] dst
2280 /* 23660 */ // No operand predicates
2281 /* 23660 */ // MIs[0] min_or_max.lhs
2282 /* 23660 */ // No operand predicates
2283 /* 23660 */ // MIs[0] min_or_max.rhs
2284 /* 23660 */ // No operand predicates
2285 /* 23660 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[0]]
2286 /* 23660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2287 /* 23663 */ // Label 128: @23663
2288 /* 23663 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(23674), // Rule ID 81 //
2289 /* 23668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
2290 /* 23671 */ // MIs[0] dst
2291 /* 23671 */ // No operand predicates
2292 /* 23671 */ // MIs[0] lhs
2293 /* 23671 */ // No operand predicates
2294 /* 23671 */ // MIs[0] rhs
2295 /* 23671 */ // No operand predicates
2296 /* 23671 */ // Combiner Rule #50: smax_to_minmax3
2297 /* 23671 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2298 /* 23674 */ // Label 129: @23674
2299 /* 23674 */ GIM_Reject,
2300 /* 23675 */ // Label 40: @23675
2301 /* 23675 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(23686), // Rule ID 7 //
2302 /* 23680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2303 /* 23683 */ // MIs[0] dst
2304 /* 23683 */ // No operand predicates
2305 /* 23683 */ // MIs[0] min_or_max.lhs
2306 /* 23683 */ // No operand predicates
2307 /* 23683 */ // MIs[0] min_or_max.rhs
2308 /* 23683 */ // No operand predicates
2309 /* 23683 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[3]]
2310 /* 23683 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2311 /* 23686 */ // Label 130: @23686
2312 /* 23686 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(23697), // Rule ID 84 //
2313 /* 23691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
2314 /* 23694 */ // MIs[0] dst
2315 /* 23694 */ // No operand predicates
2316 /* 23694 */ // MIs[0] lhs
2317 /* 23694 */ // No operand predicates
2318 /* 23694 */ // MIs[0] rhs
2319 /* 23694 */ // No operand predicates
2320 /* 23694 */ // Combiner Rule #53: umin_to_minmax3
2321 /* 23694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2322 /* 23697 */ // Label 131: @23697
2323 /* 23697 */ GIM_Reject,
2324 /* 23698 */ // Label 41: @23698
2325 /* 23698 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(23709), // Rule ID 6 //
2326 /* 23703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2327 /* 23706 */ // MIs[0] dst
2328 /* 23706 */ // No operand predicates
2329 /* 23706 */ // MIs[0] min_or_max.lhs
2330 /* 23706 */ // No operand predicates
2331 /* 23706 */ // MIs[0] min_or_max.rhs
2332 /* 23706 */ // No operand predicates
2333 /* 23706 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[2]]
2334 /* 23706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2335 /* 23709 */ // Label 132: @23709
2336 /* 23709 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(23720), // Rule ID 83 //
2337 /* 23714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
2338 /* 23717 */ // MIs[0] dst
2339 /* 23717 */ // No operand predicates
2340 /* 23717 */ // MIs[0] lhs
2341 /* 23717 */ // No operand predicates
2342 /* 23717 */ // MIs[0] rhs
2343 /* 23717 */ // No operand predicates
2344 /* 23717 */ // Combiner Rule #52: umax_to_minmax3
2345 /* 23717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
2346 /* 23720 */ // Label 133: @23720
2347 /* 23720 */ GIM_Reject,
2348 /* 23721 */ // Label 42: @23721
2349 /* 23721 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(23732), // Rule ID 17 //
2350 /* 23726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2351 /* 23729 */ // MIs[0] dst
2352 /* 23729 */ // No operand predicates
2353 /* 23729 */ // MIs[0] src0
2354 /* 23729 */ // No operand predicates
2355 /* 23729 */ // MIs[0] src1
2356 /* 23729 */ // No operand predicates
2357 /* 23729 */ // MIs[0] src2
2358 /* 23729 */ // No operand predicates
2359 /* 23729 */ // Combiner Rule #8: fmed3_intrinsic_to_clamp
2360 /* 23729 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
2361 /* 23732 */ // Label 134: @23732
2362 /* 23732 */ GIM_Reject,
2363 /* 23733 */ // Label 43: @23733
2364 /* 23733 */ GIM_Reject,
2365 /* 23734 */ }; // Size: 23734 bytes
2366 return MatchTable0;
2367}
2368#undef GIMT_Encode2
2369#undef GIMT_Encode4
2370#undef GIMT_Encode8
2371
2372
2373#endif // GET_GICOMBINER_IMPL
2374
2375#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
2376
2377AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
2378AvailableFunctionFeatures()
2379
2380#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
2381
2382#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
2383
2384, State(0),
2385ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
2386
2387#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
2388
2389