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 52; // "d16_load"
45 case 10: // 2 strings to match.
46 switch (RuleIdentifier[0]) {
47 default: break;
48 case 'p': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
50 break;
51 return 16; // "p2i_to_i2p"
52 case 's': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
54 break;
55 return 48; // "sext_trunc"
56 }
57 break;
58 case 11: // 2 strings to match.
59 switch (RuleIdentifier[0]) {
60 default: break;
61 case 'a': // 1 string to match.
62 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
63 break;
64 return 24; // "add_sub_reg"
65 case 'u': // 1 string to match.
66 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
67 break;
68 return 1; // "unmerge_cst"
69 }
70 break;
71 case 12: // 2 strings to match.
72 switch (RuleIdentifier[0]) {
73 default: break;
74 case 's': // 1 string to match.
75 if (memcmp(RuleIdentifier.data()+1, "ext_of_sext", 11) != 0)
76 break;
77 return 42; // "sext_of_sext"
78 case 'z': // 1 string to match.
79 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
80 break;
81 return 40; // "zext_of_zext"
82 }
83 break;
84 case 13: // 4 strings to match.
85 switch (RuleIdentifier[0]) {
86 default: break;
87 case 'r': // 1 string to match.
88 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
89 break;
90 return 35; // "redundant_and"
91 case 's': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+1, "ame_val_zero", 12) != 0)
93 break;
94 return 13; // "same_val_zero"
95 case 'u': // 2 strings to match.
96 if (memcmp(RuleIdentifier.data()+1, "nmerge_", 7) != 0)
97 break;
98 switch (RuleIdentifier[8]) {
99 default: break;
100 case 'm': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
102 break;
103 return 0; // "unmerge_merge"
104 case 'u': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
106 break;
107 return 2; // "unmerge_undef"
108 }
109 break;
110 }
111 break;
112 case 14: // 6 strings to match.
113 switch (RuleIdentifier[0]) {
114 default: break;
115 case 'a': // 2 strings to match.
116 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
117 break;
118 switch (RuleIdentifier[10]) {
119 default: break;
120 case 's': // 1 string to match.
121 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
122 break;
123 return 46; // "anyext_of_sext"
124 case 'z': // 1 string to match.
125 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
126 break;
127 return 45; // "anyext_of_zext"
128 }
129 break;
130 case 'b': // 1 string to match.
131 if (memcmp(RuleIdentifier.data()+1, "inop_same_val", 13) != 0)
132 break;
133 return 12; // "binop_same_val"
134 case 'f': // 1 string to match.
135 if (memcmp(RuleIdentifier.data()+1, "neg_fneg_fold", 13) != 0)
136 break;
137 return 21; // "fneg_fneg_fold"
138 case 's': // 1 string to match.
139 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
140 break;
141 return 43; // "sext_of_anyext"
142 case 'z': // 1 string to match.
143 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
144 break;
145 return 41; // "zext_of_anyext"
146 }
147 break;
148 case 15: // 8 strings to match.
149 switch (RuleIdentifier[0]) {
150 default: break;
151 case 'f': // 2 strings to match.
152 if (RuleIdentifier[1] != 'm')
153 break;
154 switch (RuleIdentifier[2]) {
155 default: break;
156 case 'a': // 1 string to match.
157 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
158 break;
159 return 57; // "fmax_to_minmax3"
160 case 'i': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
162 break;
163 return 58; // "fmin_to_minmax3"
164 }
165 break;
166 case 'i': // 1 string to match.
167 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_zext", 14) != 0)
168 break;
169 return 18; // "i2p_to_p2i_zext"
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 53; // "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 54; // "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 55; // "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 56; // "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: // 4 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 44; // "anyext_of_anyext"
213 case 'i': // 1 string to match.
214 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_trunc", 15) != 0)
215 break;
216 return 19; // "i2p_to_p2i_trunc"
217 case 't': // 2 strings to match.
218 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
219 break;
220 switch (RuleIdentifier[12]) {
221 default: break;
222 case 's': // 1 string to match.
223 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
224 break;
225 return 38; // "truncate_of_sext"
226 case 'z': // 1 string to match.
227 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
228 break;
229 return 37; // "truncate_of_zext"
230 }
231 break;
232 }
233 break;
234 case 17: // 2 strings to match.
235 switch (RuleIdentifier[0]) {
236 default: break;
237 case 'a': // 1 string to match.
238 if (memcmp(RuleIdentifier.data()+1, "nyext_trunc_fold", 16) != 0)
239 break;
240 return 20; // "anyext_trunc_fold"
241 case 'f': // 1 string to match.
242 if (memcmp(RuleIdentifier.data()+1, "p_minmax_to_med3", 16) != 0)
243 break;
244 return 7; // "fp_minmax_to_med3"
245 }
246 break;
247 case 18: // 5 strings to match.
248 switch (RuleIdentifier[0]) {
249 default: break;
250 case 'b': // 1 string to match.
251 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
252 break;
253 return 14; // "binop_left_to_zero"
254 case 'f': // 2 strings to match.
255 if (RuleIdentifier[1] != 'p')
256 break;
257 switch (RuleIdentifier[2]) {
258 default: break;
259 case '_': // 1 string to match.
260 if (memcmp(RuleIdentifier.data()+3, "minmax_to_clamp", 15) != 0)
261 break;
262 return 6; // "fp_minmax_to_clamp"
263 case 't': // 1 string to match.
264 if (memcmp(RuleIdentifier.data()+3, "runc_fpext_fold", 15) != 0)
265 break;
266 return 31; // "fptrunc_fpext_fold"
267 }
268 break;
269 case 'i': // 1 string to match.
270 if (memcmp(RuleIdentifier.data()+1, "nt_minmax_to_med3", 17) != 0)
271 break;
272 return 4; // "int_minmax_to_med3"
273 case 't': // 1 string to match.
274 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
275 break;
276 return 39; // "truncate_of_anyext"
277 }
278 break;
279 case 19: // 5 strings to match.
280 switch (RuleIdentifier[0]) {
281 default: break;
282 case 'b': // 1 string to match.
283 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
284 break;
285 return 15; // "binop_right_to_zero"
286 case 'f': // 2 strings to match.
287 if (RuleIdentifier[1] != 'm')
288 break;
289 switch (RuleIdentifier[2]) {
290 default: break;
291 case 'a': // 1 string to match.
292 if (memcmp(RuleIdentifier.data()+3, "ximum_to_minmax3", 16) != 0)
293 break;
294 return 59; // "fmaximum_to_minmax3"
295 case 'i': // 1 string to match.
296 if (memcmp(RuleIdentifier.data()+3, "nimum_to_minmax3", 16) != 0)
297 break;
298 return 60; // "fminimum_to_minmax3"
299 }
300 break;
301 case 'p': // 1 string to match.
302 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
303 break;
304 return 5; // "ptr_add_immed_chain"
305 case 'r': // 1 string to match.
306 if (memcmp(RuleIdentifier.data()+1, "ight_identity_zero", 18) != 0)
307 break;
308 return 11; // "right_identity_zero"
309 }
310 break;
311 case 20: // 4 strings to match.
312 switch (RuleIdentifier[0]) {
313 default: break;
314 case 'b': // 1 string to match.
315 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
316 break;
317 return 29; // "bitcast_bitcast_fold"
318 case 'f': // 2 strings to match.
319 if (RuleIdentifier[1] != 'm')
320 break;
321 switch (RuleIdentifier[2]) {
322 default: break;
323 case 'a': // 1 string to match.
324 if (memcmp(RuleIdentifier.data()+3, "x_ieee_to_minmax3", 17) != 0)
325 break;
326 return 61; // "fmax_ieee_to_minmax3"
327 case 'i': // 1 string to match.
328 if (memcmp(RuleIdentifier.data()+3, "n_ieee_to_minmax3", 17) != 0)
329 break;
330 return 62; // "fmin_ieee_to_minmax3"
331 }
332 break;
333 case 'i': // 1 string to match.
334 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_same_size", 19) != 0)
335 break;
336 return 17; // "i2p_to_p2i_same_size"
337 }
338 break;
339 case 21: // 4 strings to match.
340 switch (RuleIdentifier[0]) {
341 default: break;
342 case 'c': // 2 strings to match.
343 switch (RuleIdentifier[1]) {
344 default: break;
345 case 'a': // 1 string to match.
346 if (memcmp(RuleIdentifier.data()+2, "nonicalize_zext_shl", 19) != 0)
347 break;
348 return 51; // "canonicalize_zext_shl"
349 case 'o': // 1 string to match.
350 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_cast_op", 19) != 0)
351 break;
352 return 36; // "constant_fold_cast_op"
353 }
354 break;
355 case 'r': // 1 string to match.
356 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
357 break;
358 return 23; // "right_identity_one_fp"
359 case 's': // 1 string to match.
360 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_equiv", 20) != 0)
361 break;
362 return 10; // "select_same_val_equiv"
363 }
364 break;
365 case 22: // 4 strings to match.
366 switch (RuleIdentifier[0]) {
367 default: break;
368 case 'c': // 2 strings to match.
369 if (memcmp(RuleIdentifier.data()+1, "anonicalize_zext_", 17) != 0)
370 break;
371 switch (RuleIdentifier[18]) {
372 default: break;
373 case 'a': // 1 string to match.
374 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
375 break;
376 return 50; // "canonicalize_zext_ashr"
377 case 'l': // 1 string to match.
378 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
379 break;
380 return 49; // "canonicalize_zext_lshr"
381 }
382 break;
383 case 'r': // 1 string to match.
384 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
385 break;
386 return 22; // "right_identity_one_int"
387 case 't': // 1 string to match.
388 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
389 break;
390 return 27; // "trunc_buildvector_fold"
391 }
392 break;
393 case 23: // 1 string to match.
394 if (memcmp(RuleIdentifier.data()+0, "select_same_val_trivial", 23) != 0)
395 break;
396 return 9; // "select_same_val_trivial"
397 case 24: // 2 strings to match.
398 switch (RuleIdentifier[0]) {
399 default: break;
400 case 'f': // 1 string to match.
401 if (memcmp(RuleIdentifier.data()+1, "med3_intrinsic_to_clamp", 23) != 0)
402 break;
403 return 8; // "fmed3_intrinsic_to_clamp"
404 case 's': // 1 string to match.
405 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_of_sext_inreg", 23) != 0)
406 break;
407 return 47; // "sext_inreg_of_sext_inreg"
408 }
409 break;
410 case 25: // 1 string to match.
411 if (memcmp(RuleIdentifier.data()+0, "right_identity_neg_one_fp", 25) != 0)
412 break;
413 return 34; // "right_identity_neg_one_fp"
414 case 26: // 2 strings to match.
415 switch (RuleIdentifier[0]) {
416 default: break;
417 case 'b': // 1 string to match.
418 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_to_bitcast", 25) != 0)
419 break;
420 return 30; // "bitcast_bitcast_to_bitcast"
421 case 'r': // 1 string to match.
422 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
423 break;
424 return 32; // "right_identity_neg_zero_fp"
425 }
426 break;
427 case 27: // 1 string to match.
428 if (memcmp(RuleIdentifier.data()+0, "trunc_lshr_buildvector_fold", 27) != 0)
429 break;
430 return 28; // "trunc_lshr_buildvector_fold"
431 case 28: // 1 string to match.
432 if (memcmp(RuleIdentifier.data()+0, "buildvector_identity_fold_bv", 28) != 0)
433 break;
434 return 25; // "buildvector_identity_fold_bv"
435 case 29: // 1 string to match.
436 if (memcmp(RuleIdentifier.data()+0, "buildvector_identity_fold_bvt", 29) != 0)
437 break;
438 return 26; // "buildvector_identity_fold_bvt"
439 case 30: // 1 string to match.
440 if (memcmp(RuleIdentifier.data()+0, "right_identity_neg_zero_fp_nsz", 30) != 0)
441 break;
442 return 33; // "right_identity_neg_zero_fp_nsz"
443 }
444#endif // ifndef NDEBUG
445
446 return std::nullopt;
447}
448static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
449 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
450 if (!RangePair.second.empty()) {
451 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
452 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
453 if (!First || !Last)
454 return std::nullopt;
455 if (First >= Last)
456 report_fatal_error(reason: "Beginning of range should be before end of range");
457 return {{*First, *Last + 1}};
458 }
459 if (RangePair.first == "*") {
460 return {{0, 63}};
461 }
462 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
463 if (!I)
464 return std::nullopt;
465 return {{*I, *I + 1}};
466}
467
468bool AMDGPURegBankCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
469 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
470 if (!MaybeRange)
471 return false;
472 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
473 DisabledRules.reset(Idx: I);
474 return true;
475}
476
477bool AMDGPURegBankCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
478 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
479 if (!MaybeRange)
480 return false;
481 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
482 DisabledRules.set(I);
483 return true;
484}
485
486static std::vector<std::string> AMDGPURegBankCombinerOption;
487static cl::list<std::string> AMDGPURegBankCombinerDisableOption(
488 "amdgpuregbankcombiner-disable-rule",
489 cl::desc("Disable one or more combiner rules temporarily in the AMDGPURegBankCombiner pass"),
490 cl::CommaSeparated,
491 cl::Hidden,
492 cl::cat(GICombinerOptionCategory),
493 cl::callback(CB: [](const std::string &Str) {
494 AMDGPURegBankCombinerOption.push_back(x: Str);
495 }));
496static cl::list<std::string> AMDGPURegBankCombinerOnlyEnableOption(
497 "amdgpuregbankcombiner-only-enable-rule",
498 cl::desc("Disable all rules in the AMDGPURegBankCombiner pass then re-enable the specified ones"),
499 cl::Hidden,
500 cl::cat(GICombinerOptionCategory),
501 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
502 StringRef Str = CommaSeparatedArg;
503 AMDGPURegBankCombinerOption.push_back(x: "*");
504 do {
505 auto X = Str.split(Separator: ",");
506 AMDGPURegBankCombinerOption.push_back(x: ("!" + X.first).str());
507 Str = X.second;
508 } while (!Str.empty());
509 }));
510
511
512bool AMDGPURegBankCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
513 return !DisabledRules.test(Idx: RuleID);
514}
515bool AMDGPURegBankCombinerImplRuleConfig::parseCommandLineOption() {
516 for (StringRef Identifier : AMDGPURegBankCombinerOption) {
517 bool Enabled = Identifier.consume_front(Prefix: "!");
518 if (Enabled && !setRuleEnabled(Identifier))
519 return false;
520 if (!Enabled && !setRuleDisabled(Identifier))
521 return false;
522 }
523 return true;
524}
525
526
527#endif // GET_GICOMBINER_TYPES
528
529#ifdef GET_GICOMBINER_TYPES
530
531const unsigned MAX_SUBTARGET_PREDICATES = 1;
532using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
533
534#endif // GET_GICOMBINER_TYPES
535
536#ifdef GET_GICOMBINER_CLASS_MEMBERS
537
538 bool canMatchOpcode(unsigned Opc) const override;
539 uint32_t getRootFlagsToDrop() const override;
540
541#endif // GET_GICOMBINER_CLASS_MEMBERS
542
543#ifdef GET_GICOMBINER_CLASS_MEMBERS
544
545PredicateBitset AvailableModuleFeatures;
546mutable PredicateBitset AvailableFunctionFeatures;
547PredicateBitset getAvailableFeatures() const {
548 return AvailableModuleFeatures | AvailableFunctionFeatures;
549}
550PredicateBitset
551computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
552PredicateBitset
553computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
554 const MachineFunction *MF) const;
555void setupGeneratedPerFunctionState(MachineFunction &MF) override;
556
557#endif // GET_GICOMBINER_CLASS_MEMBERS
558
559#ifdef GET_GICOMBINER_CLASS_MEMBERS
560
561 mutable MatcherState State;
562 typedef ComplexRendererFns(AMDGPURegBankCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
563 typedef void(AMDGPURegBankCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
564 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
565 static AMDGPURegBankCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
566 static AMDGPURegBankCombinerImpl::CustomRendererFn CustomRenderers[];
567 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
568 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
569 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
570 const uint8_t *getMatchTable() const override;
571 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
572 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
573 bool testSimplePredicate(unsigned PredicateID) const override;
574 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
575
576#endif // GET_GICOMBINER_CLASS_MEMBERS
577
578#ifdef GET_GICOMBINER_IMPL
579
580// LLT Objects.
581enum {
582 GILLT_s1,
583};
584const static size_t NumTypeObjects = 1;
585const static LLT TypeObjects[] = {
586 LLT::scalar(1),
587};
588
589// Bits for subtarget features that participate in instruction matching.
590enum SubtargetFeatureBits : uint8_t {
591 Feature_anonymous_55725Bit = 0,
592};
593
594PredicateBitset AMDGPURegBankCombinerImpl::
595computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
596 PredicateBitset Features{};
597 if (Subtarget->d16PreservesUnusedBits())
598 Features.set(Feature_anonymous_55725Bit);
599 return Features;
600}
601
602void AMDGPURegBankCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
603 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
604}
605PredicateBitset AMDGPURegBankCombinerImpl::
606computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
607 PredicateBitset Features{};
608 return Features;
609}
610
611// Feature bitsets.
612enum {
613 GIFBS_Invalid,
614 GIFBS_anonymous_55725,
615};
616constexpr static PredicateBitset FeatureBitsets[] {
617 {}, // GIFBS_Invalid
618 {Feature_anonymous_55725Bit, },
619};
620
621// ComplexPattern predicates.
622enum {
623 GICP_Invalid,
624};
625// See constructor for table contents
626
627AMDGPURegBankCombinerImpl::ComplexMatcherMemFn
628AMDGPURegBankCombinerImpl::ComplexPredicateFns[] = {
629 nullptr, // GICP_Invalid
630};
631
632enum {
633 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
634 GICXXPred_MI_Predicate_GICombiner1,
635 GICXXPred_MI_Predicate_GICombiner2,
636 GICXXPred_MI_Predicate_GICombiner3,
637 GICXXPred_MI_Predicate_GICombiner4,
638 GICXXPred_MI_Predicate_GICombiner5,
639 GICXXPred_MI_Predicate_GICombiner6,
640 GICXXPred_MI_Predicate_GICombiner7,
641 GICXXPred_MI_Predicate_GICombiner8,
642 GICXXPred_MI_Predicate_GICombiner9,
643 GICXXPred_MI_Predicate_GICombiner10,
644};
645bool AMDGPURegBankCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
646 switch (PredicateID) {
647 case GICXXPred_MI_Predicate_GICombiner0: {
648 return Helper.matchSelectSameVal(*State.MIs[0]);
649 }
650 case GICXXPred_MI_Predicate_GICombiner1: {
651 return Helper.matchConstantOp(State.MIs[0]->getOperand(1), 0);
652 }
653 case GICXXPred_MI_Predicate_GICombiner2: {
654 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
655 }
656 case GICXXPred_MI_Predicate_GICombiner3: {
657 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() ==
658 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
659 }
660 case GICXXPred_MI_Predicate_GICombiner4: {
661 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() >
662 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
663 }
664 case GICXXPred_MI_Predicate_GICombiner5: {
665 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() <
666 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
667 }
668 case GICXXPred_MI_Predicate_GICombiner6: {
669 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
670 }
671 case GICXXPred_MI_Predicate_GICombiner7: {
672 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
673 }
674 case GICXXPred_MI_Predicate_GICombiner8: {
675 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
676 }
677 case GICXXPred_MI_Predicate_GICombiner9: {
678 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
679 }
680 case GICXXPred_MI_Predicate_GICombiner10: {
681 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
682 }
683 }
684 llvm_unreachable("Unknown predicate");
685 return false;
686}
687bool AMDGPURegBankCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
688 llvm_unreachable("Unknown predicate");
689 return false;
690}
691bool AMDGPURegBankCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
692 llvm_unreachable("Unknown predicate");
693 return false;
694}
695bool AMDGPURegBankCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
696 llvm_unreachable("Unknown predicate");
697 return false;
698}
699bool AMDGPURegBankCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
700 llvm_unreachable("Unknown predicate");
701 return false;
702}
703enum {
704 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
705 GICXXPred_Simple_IsRule1Enabled,
706 GICXXPred_Simple_IsRule2Enabled,
707 GICXXPred_Simple_IsRule3Enabled,
708 GICXXPred_Simple_IsRule4Enabled,
709 GICXXPred_Simple_IsRule5Enabled,
710 GICXXPred_Simple_IsRule6Enabled,
711 GICXXPred_Simple_IsRule7Enabled,
712 GICXXPred_Simple_IsRule8Enabled,
713 GICXXPred_Simple_IsRule9Enabled,
714 GICXXPred_Simple_IsRule10Enabled,
715 GICXXPred_Simple_IsRule11Enabled,
716 GICXXPred_Simple_IsRule12Enabled,
717 GICXXPred_Simple_IsRule13Enabled,
718 GICXXPred_Simple_IsRule14Enabled,
719 GICXXPred_Simple_IsRule15Enabled,
720 GICXXPred_Simple_IsRule16Enabled,
721 GICXXPred_Simple_IsRule17Enabled,
722 GICXXPred_Simple_IsRule18Enabled,
723 GICXXPred_Simple_IsRule19Enabled,
724 GICXXPred_Simple_IsRule20Enabled,
725 GICXXPred_Simple_IsRule21Enabled,
726 GICXXPred_Simple_IsRule22Enabled,
727 GICXXPred_Simple_IsRule23Enabled,
728 GICXXPred_Simple_IsRule24Enabled,
729 GICXXPred_Simple_IsRule25Enabled,
730 GICXXPred_Simple_IsRule26Enabled,
731 GICXXPred_Simple_IsRule27Enabled,
732 GICXXPred_Simple_IsRule28Enabled,
733 GICXXPred_Simple_IsRule29Enabled,
734 GICXXPred_Simple_IsRule30Enabled,
735 GICXXPred_Simple_IsRule31Enabled,
736 GICXXPred_Simple_IsRule32Enabled,
737 GICXXPred_Simple_IsRule33Enabled,
738 GICXXPred_Simple_IsRule34Enabled,
739 GICXXPred_Simple_IsRule35Enabled,
740 GICXXPred_Simple_IsRule36Enabled,
741 GICXXPred_Simple_IsRule37Enabled,
742 GICXXPred_Simple_IsRule38Enabled,
743 GICXXPred_Simple_IsRule39Enabled,
744 GICXXPred_Simple_IsRule40Enabled,
745 GICXXPred_Simple_IsRule41Enabled,
746 GICXXPred_Simple_IsRule42Enabled,
747 GICXXPred_Simple_IsRule43Enabled,
748 GICXXPred_Simple_IsRule44Enabled,
749 GICXXPred_Simple_IsRule45Enabled,
750 GICXXPred_Simple_IsRule46Enabled,
751 GICXXPred_Simple_IsRule47Enabled,
752 GICXXPred_Simple_IsRule48Enabled,
753 GICXXPred_Simple_IsRule49Enabled,
754 GICXXPred_Simple_IsRule50Enabled,
755 GICXXPred_Simple_IsRule51Enabled,
756 GICXXPred_Simple_IsRule52Enabled,
757 GICXXPred_Simple_IsRule53Enabled,
758 GICXXPred_Simple_IsRule54Enabled,
759 GICXXPred_Simple_IsRule55Enabled,
760 GICXXPred_Simple_IsRule56Enabled,
761 GICXXPred_Simple_IsRule57Enabled,
762 GICXXPred_Simple_IsRule58Enabled,
763 GICXXPred_Simple_IsRule59Enabled,
764 GICXXPred_Simple_IsRule60Enabled,
765 GICXXPred_Simple_IsRule61Enabled,
766 GICXXPred_Simple_IsRule62Enabled,
767};
768
769bool AMDGPURegBankCombinerImpl::testSimplePredicate(unsigned Predicate) const {
770 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
771}
772// Custom renderers.
773enum {
774 GICR_Invalid,
775};
776AMDGPURegBankCombinerImpl::CustomRendererFn
777AMDGPURegBankCombinerImpl::CustomRenderers[] = {
778 nullptr, // GICR_Invalid
779};
780
781bool AMDGPURegBankCombinerImpl::canMatchOpcode(unsigned Opc) const {
782 switch (Opc) {
783 case AMDGPU::G_AMDGPU_FMED3:
784 case TargetOpcode::G_SELECT:
785 case TargetOpcode::G_ADD:
786 case TargetOpcode::G_AND:
787 case TargetOpcode::G_ASHR:
788 case TargetOpcode::G_FADD:
789 case TargetOpcode::G_FMAXIMUM:
790 case TargetOpcode::G_FMAXNUM:
791 case TargetOpcode::G_FMAXNUM_IEEE:
792 case TargetOpcode::G_FMINIMUM:
793 case TargetOpcode::G_FMINNUM:
794 case TargetOpcode::G_FMINNUM_IEEE:
795 case TargetOpcode::G_FMUL:
796 case TargetOpcode::G_LSHR:
797 case TargetOpcode::G_MUL:
798 case TargetOpcode::G_OR:
799 case TargetOpcode::G_PTR_ADD:
800 case TargetOpcode::G_ROTL:
801 case TargetOpcode::G_ROTR:
802 case TargetOpcode::G_SDIV:
803 case TargetOpcode::G_SEXT_INREG:
804 case TargetOpcode::G_SHL:
805 case TargetOpcode::G_SMAX:
806 case TargetOpcode::G_SMIN:
807 case TargetOpcode::G_SREM:
808 case TargetOpcode::G_SUB:
809 case TargetOpcode::G_UDIV:
810 case TargetOpcode::G_UMAX:
811 case TargetOpcode::G_UMIN:
812 case TargetOpcode::G_UREM:
813 case TargetOpcode::G_XOR:
814 case TargetOpcode::G_ANYEXT:
815 case TargetOpcode::G_BITCAST:
816 case TargetOpcode::G_BUILD_VECTOR:
817 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
818 case TargetOpcode::G_FNEG:
819 case TargetOpcode::G_FPTRUNC:
820 case TargetOpcode::G_INTTOPTR:
821 case TargetOpcode::G_PTRTOINT:
822 case TargetOpcode::G_SEXT:
823 case TargetOpcode::G_TRUNC:
824 case TargetOpcode::G_ZEXT:
825 case TargetOpcode::G_UNMERGE_VALUES:
826 return true;
827 default:
828 return false;
829 }
830}
831
832uint32_t AMDGPURegBankCombinerImpl::getRootFlagsToDrop() const {
833 return MachineInstr::getPoisonGeneratingFlags();
834}
835
836bool AMDGPURegBankCombinerImpl::tryCombineAll(MachineInstr &I) const {
837 const PredicateBitset AvailableFeatures = getAvailableFeatures();
838 State.MIs.clear();
839 State.MIs.push_back(&I);
840 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
841 return true;
842 }
843
844 return false;
845}
846
847enum {
848 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
849 GICXXCustomAction_GICombiner1,
850 GICXXCustomAction_GICombiner2,
851 GICXXCustomAction_GICombiner3,
852 GICXXCustomAction_GICombiner4,
853 GICXXCustomAction_GICombiner5,
854 GICXXCustomAction_GICombiner6,
855 GICXXCustomAction_GICombiner7,
856 GICXXCustomAction_GICombiner8,
857 GICXXCustomAction_GICombiner9,
858 GICXXCustomAction_GICombiner10,
859 GICXXCustomAction_GICombiner11,
860 GICXXCustomAction_GICombiner12,
861 GICXXCustomAction_GICombiner13,
862 GICXXCustomAction_GICombiner14,
863 GICXXCustomAction_GICombiner15,
864 GICXXCustomAction_GICombiner16,
865 GICXXCustomAction_GICombiner17,
866 GICXXCustomAction_GICombiner18,
867 GICXXCustomAction_GICombiner19,
868 GICXXCustomAction_GICombiner20,
869 GICXXCustomAction_GICombiner21,
870};
871bool AMDGPURegBankCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
872 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
873 switch(ApplyID) {
874 case GICXXCustomAction_GICombiner0:{
875 SmallVector<Register> GIMatchData_info;
876 // Match Patterns
877 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
878 return false;
879 }
880 // Apply Patterns
881 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
882 return true;
883 }
884 case GICXXCustomAction_GICombiner1:{
885 SmallVector<APInt, 8> GIMatchData_info;
886 // Match Patterns
887 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
888 return false;
889 }
890 // Apply Patterns
891 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
892 return true;
893 }
894 case GICXXCustomAction_GICombiner2:{
895 std::function<void(MachineIRBuilder &)> GIMatchData_info;
896 // Match Patterns
897 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
898 return false;
899 }
900 // Apply Patterns
901 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
902 return true;
903 }
904 case GICXXCustomAction_GICombiner3:{
905 Register GIMatchData_matchinfo;
906 // Match Patterns
907 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
908 return false;
909 }
910 // Apply Patterns
911 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
912 return true;
913 }
914 case GICXXCustomAction_GICombiner4:{
915 Med3MatchInfo GIMatchData_matchinfo;
916 // Match Patterns
917 if(![&](){return matchIntMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
918 return false;
919 }
920 // Apply Patterns
921 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
922 return true;
923 }
924 case GICXXCustomAction_GICombiner5:{
925 PtrAddChain GIMatchData_matchinfo;
926 // Match Patterns
927 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
928 return false;
929 }
930 // Apply Patterns
931 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
932 return true;
933 }
934 case GICXXCustomAction_GICombiner6:{
935 Register GIMatchData_matchinfo;
936 // Match Patterns
937 if(![&](){return matchFPMinMaxToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
938 return false;
939 }
940 // Apply Patterns
941 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
942 return true;
943 }
944 case GICXXCustomAction_GICombiner7:{
945 Med3MatchInfo GIMatchData_matchinfo;
946 // Match Patterns
947 if(![&](){return matchFPMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
948 return false;
949 }
950 // Apply Patterns
951 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
952 return true;
953 }
954 case GICXXCustomAction_GICombiner8:{
955 Register GIMatchData_matchinfo;
956 // Match Patterns
957 if(![&](){return matchFPMed3ToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
958 return false;
959 }
960 // Apply Patterns
961 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
962 return true;
963 }
964 case GICXXCustomAction_GICombiner9:{
965 Register GIMatchData_matchinfo;
966 // Match Patterns
967 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
968 return false;
969 }
970 // Apply Patterns
971 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
972 return true;
973 }
974 case GICXXCustomAction_GICombiner10:{
975 Register GIMatchData_matchinfo;
976 // Match Patterns
977 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
978 return false;
979 }
980 // Apply Patterns
981 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
982 return true;
983 }
984 case GICXXCustomAction_GICombiner11:{
985 Register GIMatchData_matchinfo;
986 // Match Patterns
987 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
988 return false;
989 }
990 // Apply Patterns
991 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
992 return true;
993 }
994 case GICXXCustomAction_GICombiner12:{
995 Register GIMatchData_matchinfo;
996 // Match Patterns
997 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
998 return false;
999 }
1000 // Apply Patterns
1001 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
1002 return true;
1003 }
1004 case GICXXCustomAction_GICombiner13:{
1005 Register GIMatchData_matchinfo;
1006 // Match Patterns
1007 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
1008 return false;
1009 }
1010 // Apply Patterns
1011 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
1012 return true;
1013 }
1014 case GICXXCustomAction_GICombiner14:{
1015 APInt GIMatchData_matchinfo;
1016 // Match Patterns
1017 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
1018 return false;
1019 }
1020 // Apply Patterns
1021 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
1022 return true;
1023 }
1024 case GICXXCustomAction_GICombiner15:{
1025 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1026 // Match Patterns
1027 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1028 return false;
1029 }
1030 // Apply Patterns
1031 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1032 return true;
1033 }
1034 case GICXXCustomAction_GICombiner16:{
1035 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1036 // Match Patterns
1037 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1038 return false;
1039 }
1040 // Apply Patterns
1041 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1042 return true;
1043 }
1044 case GICXXCustomAction_GICombiner17:{
1045 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1046 // Match Patterns
1047 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1048 return false;
1049 }
1050 // Apply Patterns
1051 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1052 return true;
1053 }
1054 case GICXXCustomAction_GICombiner18:{
1055 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1056 // Match Patterns
1057 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
1058 return false;
1059 }
1060 // Apply Patterns
1061 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
1062 return true;
1063 }
1064 case GICXXCustomAction_GICombiner19:{
1065 // Apply Patterns
1066 applyCanonicalizeZextShiftAmt(*State.MIs[0], *State.MIs[1]);
1067 return true;
1068 }
1069 case GICXXCustomAction_GICombiner20:{
1070 // Apply Patterns
1071 return combineD16Load(*State.MIs[0] );
1072 return true;
1073 }
1074 case GICXXCustomAction_GICombiner21:{
1075 MinMaxToMinMax3MatchInfo GIMatchData_matchinfo;
1076 // Match Patterns
1077 if(![&](){return matchMinMaxToMinMax3(*State.MIs[0], GIMatchData_matchinfo);}()) {
1078 return false;
1079 }
1080 // Apply Patterns
1081 applyMinMaxToMinMax3(*State.MIs[0], GIMatchData_matchinfo);
1082 return true;
1083 }
1084 }
1085 llvm_unreachable("Unknown Apply Action");
1086}
1087#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
1088#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
1089#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
1090#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)
1091#else
1092#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
1093#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
1094#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)
1095#endif
1096const uint8_t *AMDGPURegBankCombinerImpl::getMatchTable() const {
1097 constexpr static uint8_t MatchTable0[] = {
1098 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(55), GIMT_Encode2(5520), /*)*//*default:*//*Label 43*/ GIMT_Encode4(23706),
1099 /* 10 */ /*TargetOpcode::G_ADD*//*Label 0*/ GIMT_Encode4(21870),
1100 /* 14 */ /*TargetOpcode::G_SUB*//*Label 1*/ GIMT_Encode4(21962),
1101 /* 18 */ /*TargetOpcode::G_MUL*//*Label 2*/ GIMT_Encode4(22025),
1102 /* 22 */ /*TargetOpcode::G_SDIV*//*Label 3*/ GIMT_Encode4(22095),
1103 /* 26 */ /*TargetOpcode::G_UDIV*//*Label 4*/ GIMT_Encode4(22119),
1104 /* 30 */ /*TargetOpcode::G_SREM*//*Label 5*/ GIMT_Encode4(22143),
1105 /* 34 */ /*TargetOpcode::G_UREM*//*Label 6*/ GIMT_Encode4(22167), GIMT_Encode4(0), GIMT_Encode4(0),
1106 /* 46 */ /*TargetOpcode::G_AND*//*Label 7*/ GIMT_Encode4(22191),
1107 /* 50 */ /*TargetOpcode::G_OR*//*Label 8*/ GIMT_Encode4(22227),
1108 /* 54 */ /*TargetOpcode::G_XOR*//*Label 9*/ GIMT_Encode4(22275), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1109 /* 110 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 10*/ GIMT_Encode4(22338), GIMT_Encode4(0), GIMT_Encode4(0),
1110 /* 122 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 11*/ GIMT_Encode4(22372),
1111 /* 126 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 12*/ GIMT_Encode4(22387), GIMT_Encode4(0),
1112 /* 134 */ /*TargetOpcode::G_PTRTOINT*//*Label 13*/ GIMT_Encode4(22402),
1113 /* 138 */ /*TargetOpcode::G_INTTOPTR*//*Label 14*/ GIMT_Encode4(22499),
1114 /* 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),
1115 /* 362 */ /*TargetOpcode::G_ANYEXT*//*Label 16*/ GIMT_Encode4(22612),
1116 /* 366 */ /*TargetOpcode::G_TRUNC*//*Label 17*/ GIMT_Encode4(22698), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1117 /* 398 */ /*TargetOpcode::G_SEXT*//*Label 18*/ GIMT_Encode4(22784),
1118 /* 402 */ /*TargetOpcode::G_SEXT_INREG*//*Label 19*/ GIMT_Encode4(22859),
1119 /* 406 */ /*TargetOpcode::G_ZEXT*//*Label 20*/ GIMT_Encode4(22881),
1120 /* 410 */ /*TargetOpcode::G_SHL*//*Label 21*/ GIMT_Encode4(22946),
1121 /* 414 */ /*TargetOpcode::G_LSHR*//*Label 22*/ GIMT_Encode4(23014),
1122 /* 418 */ /*TargetOpcode::G_ASHR*//*Label 23*/ GIMT_Encode4(23082), GIMT_Encode4(0), GIMT_Encode4(0),
1123 /* 430 */ /*TargetOpcode::G_ROTR*//*Label 24*/ GIMT_Encode4(23150),
1124 /* 434 */ /*TargetOpcode::G_ROTL*//*Label 25*/ GIMT_Encode4(23174), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1125 /* 454 */ /*TargetOpcode::G_SELECT*//*Label 26*/ GIMT_Encode4(23198), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1126 /* 562 */ /*TargetOpcode::G_FADD*//*Label 27*/ GIMT_Encode4(23246), GIMT_Encode4(0),
1127 /* 570 */ /*TargetOpcode::G_FMUL*//*Label 28*/ GIMT_Encode4(23299), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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 /* 634 */ /*TargetOpcode::G_FNEG*//*Label 29*/ GIMT_Encode4(23343), GIMT_Encode4(0),
1129 /* 642 */ /*TargetOpcode::G_FPTRUNC*//*Label 30*/ GIMT_Encode4(23373), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1130 /* 686 */ /*TargetOpcode::G_FMINNUM*//*Label 31*/ GIMT_Encode4(23407),
1131 /* 690 */ /*TargetOpcode::G_FMAXNUM*//*Label 32*/ GIMT_Encode4(23441),
1132 /* 694 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 33*/ GIMT_Encode4(23475),
1133 /* 698 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 34*/ GIMT_Encode4(23509),
1134 /* 702 */ /*TargetOpcode::G_FMINIMUM*//*Label 35*/ GIMT_Encode4(23543),
1135 /* 706 */ /*TargetOpcode::G_FMAXIMUM*//*Label 36*/ GIMT_Encode4(23555), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1136 /* 750 */ /*TargetOpcode::G_PTR_ADD*//*Label 37*/ GIMT_Encode4(23567), GIMT_Encode4(0),
1137 /* 758 */ /*TargetOpcode::G_SMIN*//*Label 38*/ GIMT_Encode4(23602),
1138 /* 762 */ /*TargetOpcode::G_SMAX*//*Label 39*/ GIMT_Encode4(23625),
1139 /* 766 */ /*TargetOpcode::G_UMIN*//*Label 40*/ GIMT_Encode4(23648),
1140 /* 770 */ /*TargetOpcode::G_UMAX*//*Label 41*/ GIMT_Encode4(23671), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1141 /* 21866 */ /*AMDGPU::G_AMDGPU_FMED3*//*Label 42*/ GIMT_Encode4(23694),
1142 /* 21870 */ // Label 0: @21870
1143 /* 21870 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(21904), // Rule ID 52 //
1144 /* 21875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
1145 /* 21878 */ // MIs[0] dst
1146 /* 21878 */ // No operand predicates
1147 /* 21878 */ // MIs[0] __add_sub_reg_match_0.tmp
1148 /* 21878 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1149 /* 21882 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1150 /* 21886 */ // MIs[1] src
1151 /* 21886 */ // No operand predicates
1152 /* 21886 */ // MIs[1] __add_sub_reg_match_0.x
1153 /* 21886 */ // No operand predicates
1154 /* 21886 */ // MIs[0] __add_sub_reg_match_0.x
1155 /* 21886 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
1156 /* 21891 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1157 /* 21896 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1158 /* 21898 */ // Combiner Rule #24: add_sub_reg @ [__add_sub_reg_match_0[1]]
1159 /* 21898 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1160 /* 21903 */ GIR_EraseRootFromParent_Done,
1161 /* 21904 */ // Label 44: @21904
1162 /* 21904 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(21938), // Rule ID 51 //
1163 /* 21909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
1164 /* 21912 */ // MIs[0] dst
1165 /* 21912 */ // No operand predicates
1166 /* 21912 */ // MIs[0] __add_sub_reg_match_0.x
1167 /* 21912 */ // No operand predicates
1168 /* 21912 */ // MIs[0] __add_sub_reg_match_0.tmp
1169 /* 21912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1170 /* 21916 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1171 /* 21920 */ // MIs[1] src
1172 /* 21920 */ // No operand predicates
1173 /* 21920 */ // MIs[1] __add_sub_reg_match_0.x
1174 /* 21920 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1175 /* 21925 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1176 /* 21930 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1177 /* 21932 */ // Combiner Rule #24: add_sub_reg @ [__add_sub_reg_match_0[0]]
1178 /* 21932 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1179 /* 21937 */ GIR_EraseRootFromParent_Done,
1180 /* 21938 */ // Label 45: @21938
1181 /* 21938 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(21961), // Rule ID 21 //
1182 /* 21943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1183 /* 21946 */ // MIs[0] dst
1184 /* 21946 */ // No operand predicates
1185 /* 21946 */ // MIs[0] lhs
1186 /* 21946 */ // No operand predicates
1187 /* 21946 */ // MIs[0] Operand 2
1188 /* 21946 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1189 /* 21950 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1190 /* 21955 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[1]]
1191 /* 21955 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1192 /* 21960 */ GIR_EraseRootFromParent_Done,
1193 /* 21961 */ // Label 46: @21961
1194 /* 21961 */ GIM_Reject,
1195 /* 21962 */ // Label 1: @21962
1196 /* 21962 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(22001), // Rule ID 32 //
1197 /* 21967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1198 /* 21970 */ // MIs[0] dst
1199 /* 21970 */ // No operand predicates
1200 /* 21970 */ // MIs[0] x
1201 /* 21970 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1202 /* 21974 */ // MIs[0] x
1203 /* 21974 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1204 /* 21979 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1205 /* 21982 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1206 /* 21992 */ // Combiner Rule #13: same_val_zero @ [__same_val_zero_match_0[0]]
1207 /* 21992 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1208 /* 21995 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1209 /* 21997 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1210 /* 22000 */ GIR_EraseRootFromParent_Done,
1211 /* 22001 */ // Label 47: @22001
1212 /* 22001 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(22024), // Rule ID 20 //
1213 /* 22006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1214 /* 22009 */ // MIs[0] dst
1215 /* 22009 */ // No operand predicates
1216 /* 22009 */ // MIs[0] lhs
1217 /* 22009 */ // No operand predicates
1218 /* 22009 */ // MIs[0] Operand 2
1219 /* 22009 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1220 /* 22013 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1221 /* 22018 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[0]]
1222 /* 22018 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1223 /* 22023 */ GIR_EraseRootFromParent_Done,
1224 /* 22024 */ // Label 48: @22024
1225 /* 22024 */ GIM_Reject,
1226 /* 22025 */ // Label 2: @22025
1227 /* 22025 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(22048), // Rule ID 42 //
1228 /* 22030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
1229 /* 22033 */ // MIs[0] dst
1230 /* 22033 */ // No operand predicates
1231 /* 22033 */ // MIs[0] lhs
1232 /* 22033 */ // No operand predicates
1233 /* 22033 */ // MIs[0] zero
1234 /* 22033 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1235 /* 22037 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1236 /* 22042 */ // Combiner Rule #15: binop_right_to_zero
1237 /* 22042 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1238 /* 22047 */ GIR_EraseRootFromParent_Done,
1239 /* 22048 */ // Label 49: @22048
1240 /* 22048 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(22071), // Rule ID 49 //
1241 /* 22053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1242 /* 22056 */ // MIs[0] dst
1243 /* 22056 */ // No operand predicates
1244 /* 22056 */ // MIs[0] x
1245 /* 22056 */ // No operand predicates
1246 /* 22056 */ // MIs[0] Operand 2
1247 /* 22056 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
1248 /* 22060 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1249 /* 22065 */ // Combiner Rule #22: right_identity_one_int
1250 /* 22065 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1251 /* 22070 */ GIR_EraseRootFromParent_Done,
1252 /* 22071 */ // Label 50: @22071
1253 /* 22071 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(22094), // Rule ID 41 //
1254 /* 22076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1255 /* 22079 */ // MIs[0] dst
1256 /* 22079 */ // No operand predicates
1257 /* 22079 */ // MIs[0] zero
1258 /* 22079 */ // No operand predicates
1259 /* 22079 */ // MIs[0] rhs
1260 /* 22079 */ // No operand predicates
1261 /* 22079 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1262 /* 22083 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1263 /* 22088 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
1264 /* 22088 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1265 /* 22093 */ GIR_EraseRootFromParent_Done,
1266 /* 22094 */ // Label 51: @22094
1267 /* 22094 */ GIM_Reject,
1268 /* 22095 */ // Label 3: @22095
1269 /* 22095 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(22118), // Rule ID 37 //
1270 /* 22100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1271 /* 22103 */ // MIs[0] dst
1272 /* 22103 */ // No operand predicates
1273 /* 22103 */ // MIs[0] zero
1274 /* 22103 */ // No operand predicates
1275 /* 22103 */ // MIs[0] rhs
1276 /* 22103 */ // No operand predicates
1277 /* 22103 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1278 /* 22107 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1279 /* 22112 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
1280 /* 22112 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1281 /* 22117 */ GIR_EraseRootFromParent_Done,
1282 /* 22118 */ // Label 52: @22118
1283 /* 22118 */ GIM_Reject,
1284 /* 22119 */ // Label 4: @22119
1285 /* 22119 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(22142), // Rule ID 38 //
1286 /* 22124 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1287 /* 22127 */ // MIs[0] dst
1288 /* 22127 */ // No operand predicates
1289 /* 22127 */ // MIs[0] zero
1290 /* 22127 */ // No operand predicates
1291 /* 22127 */ // MIs[0] rhs
1292 /* 22127 */ // No operand predicates
1293 /* 22127 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1294 /* 22131 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1295 /* 22136 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
1296 /* 22136 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1297 /* 22141 */ GIR_EraseRootFromParent_Done,
1298 /* 22142 */ // Label 53: @22142
1299 /* 22142 */ GIM_Reject,
1300 /* 22143 */ // Label 5: @22143
1301 /* 22143 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(22166), // Rule ID 39 //
1302 /* 22148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1303 /* 22151 */ // MIs[0] dst
1304 /* 22151 */ // No operand predicates
1305 /* 22151 */ // MIs[0] zero
1306 /* 22151 */ // No operand predicates
1307 /* 22151 */ // MIs[0] rhs
1308 /* 22151 */ // No operand predicates
1309 /* 22151 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1310 /* 22155 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1311 /* 22160 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
1312 /* 22160 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1313 /* 22165 */ GIR_EraseRootFromParent_Done,
1314 /* 22166 */ // Label 54: @22166
1315 /* 22166 */ GIM_Reject,
1316 /* 22167 */ // Label 6: @22167
1317 /* 22167 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(22190), // Rule ID 40 //
1318 /* 22172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1319 /* 22175 */ // MIs[0] dst
1320 /* 22175 */ // No operand predicates
1321 /* 22175 */ // MIs[0] zero
1322 /* 22175 */ // No operand predicates
1323 /* 22175 */ // MIs[0] rhs
1324 /* 22175 */ // No operand predicates
1325 /* 22175 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1326 /* 22179 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1327 /* 22184 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
1328 /* 22184 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1329 /* 22189 */ GIR_EraseRootFromParent_Done,
1330 /* 22190 */ // Label 55: @22190
1331 /* 22190 */ GIM_Reject,
1332 /* 22191 */ // Label 7: @22191
1333 /* 22191 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(22215), // Rule ID 30 //
1334 /* 22196 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1335 /* 22199 */ // MIs[0] dst
1336 /* 22199 */ // No operand predicates
1337 /* 22199 */ // MIs[0] src
1338 /* 22199 */ // No operand predicates
1339 /* 22199 */ // MIs[0] src
1340 /* 22199 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1341 /* 22204 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1342 /* 22209 */ // Combiner Rule #12: binop_same_val @ [__binop_same_val_match_0[0]]
1343 /* 22209 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1344 /* 22214 */ GIR_EraseRootFromParent_Done,
1345 /* 22215 */ // Label 56: @22215
1346 /* 22215 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(22226), // Rule ID 63 //
1347 /* 22220 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
1348 /* 22223 */ // MIs[0] dst
1349 /* 22223 */ // No operand predicates
1350 /* 22223 */ // MIs[0] src1
1351 /* 22223 */ // No operand predicates
1352 /* 22223 */ // MIs[0] src2
1353 /* 22223 */ // No operand predicates
1354 /* 22223 */ // Combiner Rule #35: redundant_and
1355 /* 22223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1356 /* 22226 */ // Label 57: @22226
1357 /* 22226 */ GIM_Reject,
1358 /* 22227 */ // Label 8: @22227
1359 /* 22227 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(22251), // Rule ID 31 //
1360 /* 22232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1361 /* 22235 */ // MIs[0] dst
1362 /* 22235 */ // No operand predicates
1363 /* 22235 */ // MIs[0] src
1364 /* 22235 */ // No operand predicates
1365 /* 22235 */ // MIs[0] src
1366 /* 22235 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1367 /* 22240 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1368 /* 22245 */ // Combiner Rule #12: binop_same_val @ [__binop_same_val_match_0[1]]
1369 /* 22245 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1370 /* 22250 */ GIR_EraseRootFromParent_Done,
1371 /* 22251 */ // Label 58: @22251
1372 /* 22251 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(22274), // Rule ID 22 //
1373 /* 22256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1374 /* 22259 */ // MIs[0] dst
1375 /* 22259 */ // No operand predicates
1376 /* 22259 */ // MIs[0] lhs
1377 /* 22259 */ // No operand predicates
1378 /* 22259 */ // MIs[0] Operand 2
1379 /* 22259 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1380 /* 22263 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1381 /* 22268 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[2]]
1382 /* 22268 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1383 /* 22273 */ GIR_EraseRootFromParent_Done,
1384 /* 22274 */ // Label 59: @22274
1385 /* 22274 */ GIM_Reject,
1386 /* 22275 */ // Label 9: @22275
1387 /* 22275 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(22314), // Rule ID 33 //
1388 /* 22280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1389 /* 22283 */ // MIs[0] dst
1390 /* 22283 */ // No operand predicates
1391 /* 22283 */ // MIs[0] x
1392 /* 22283 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1393 /* 22287 */ // MIs[0] x
1394 /* 22287 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1395 /* 22292 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1396 /* 22295 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1397 /* 22305 */ // Combiner Rule #13: same_val_zero @ [__same_val_zero_match_0[1]]
1398 /* 22305 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1399 /* 22308 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1400 /* 22310 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1401 /* 22313 */ GIR_EraseRootFromParent_Done,
1402 /* 22314 */ // Label 60: @22314
1403 /* 22314 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(22337), // Rule ID 23 //
1404 /* 22319 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1405 /* 22322 */ // MIs[0] dst
1406 /* 22322 */ // No operand predicates
1407 /* 22322 */ // MIs[0] lhs
1408 /* 22322 */ // No operand predicates
1409 /* 22322 */ // MIs[0] Operand 2
1410 /* 22322 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1411 /* 22326 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1412 /* 22331 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[3]]
1413 /* 22331 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1414 /* 22336 */ GIR_EraseRootFromParent_Done,
1415 /* 22337 */ // Label 61: @22337
1416 /* 22337 */ GIM_Reject,
1417 /* 22338 */ // Label 10: @22338
1418 /* 22338 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(22349), // Rule ID 0 //
1419 /* 22343 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
1420 /* 22346 */ // Combiner Rule #0: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
1421 /* 22346 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
1422 /* 22349 */ // Label 62: @22349
1423 /* 22349 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(22360), // Rule ID 1 //
1424 /* 22354 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
1425 /* 22357 */ // Combiner Rule #1: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
1426 /* 22357 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
1427 /* 22360 */ // Label 63: @22360
1428 /* 22360 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(22371), // Rule ID 2 //
1429 /* 22365 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
1430 /* 22368 */ // Combiner Rule #2: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
1431 /* 22368 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
1432 /* 22371 */ // Label 64: @22371
1433 /* 22371 */ GIM_Reject,
1434 /* 22372 */ // Label 11: @22372
1435 /* 22372 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(22386), // Rule ID 53 //
1436 /* 22377 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
1437 /* 22380 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
1438 /* 22383 */ // MIs[0] build_vector
1439 /* 22383 */ // No operand predicates
1440 /* 22383 */ // MIs[0] srcs
1441 /* 22383 */ // No operand predicates
1442 /* 22383 */ // Combiner Rule #25: buildvector_identity_fold_bv
1443 /* 22383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
1444 /* 22386 */ // Label 65: @22386
1445 /* 22386 */ GIM_Reject,
1446 /* 22387 */ // Label 12: @22387
1447 /* 22387 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(22401), // Rule ID 54 //
1448 /* 22392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
1449 /* 22395 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
1450 /* 22398 */ // MIs[0] build_vector
1451 /* 22398 */ // No operand predicates
1452 /* 22398 */ // MIs[0] srcs
1453 /* 22398 */ // No operand predicates
1454 /* 22398 */ // Combiner Rule #26: buildvector_identity_fold_bvt
1455 /* 22398 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
1456 /* 22401 */ // Label 66: @22401
1457 /* 22401 */ GIM_Reject,
1458 /* 22402 */ // Label 13: @22402
1459 /* 22402 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(22434), // Rule ID 44 //
1460 /* 22407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
1461 /* 22410 */ // MIs[0] dst
1462 /* 22410 */ // No operand predicates
1463 /* 22410 */ // MIs[0] t
1464 /* 22410 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1465 /* 22414 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1466 /* 22418 */ // MIs[1] ptr
1467 /* 22418 */ // No operand predicates
1468 /* 22418 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
1469 /* 22422 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1470 /* 22424 */ // Combiner Rule #17: i2p_to_p2i_same_size
1471 /* 22424 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1472 /* 22427 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1473 /* 22429 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
1474 /* 22433 */ GIR_EraseRootFromParent_Done,
1475 /* 22434 */ // Label 67: @22434
1476 /* 22434 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(22466), // Rule ID 45 //
1477 /* 22439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
1478 /* 22442 */ // MIs[0] dst
1479 /* 22442 */ // No operand predicates
1480 /* 22442 */ // MIs[0] t
1481 /* 22442 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1482 /* 22446 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1483 /* 22450 */ // MIs[1] ptr
1484 /* 22450 */ // No operand predicates
1485 /* 22450 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
1486 /* 22454 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1487 /* 22456 */ // Combiner Rule #18: i2p_to_p2i_zext
1488 /* 22456 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
1489 /* 22459 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1490 /* 22461 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
1491 /* 22465 */ GIR_EraseRootFromParent_Done,
1492 /* 22466 */ // Label 68: @22466
1493 /* 22466 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(22498), // Rule ID 46 //
1494 /* 22471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
1495 /* 22474 */ // MIs[0] dst
1496 /* 22474 */ // No operand predicates
1497 /* 22474 */ // MIs[0] t
1498 /* 22474 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1499 /* 22478 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1500 /* 22482 */ // MIs[1] ptr
1501 /* 22482 */ // No operand predicates
1502 /* 22482 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
1503 /* 22486 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1504 /* 22488 */ // Combiner Rule #19: i2p_to_p2i_trunc
1505 /* 22488 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC),
1506 /* 22491 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1507 /* 22493 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
1508 /* 22497 */ GIR_EraseRootFromParent_Done,
1509 /* 22498 */ // Label 69: @22498
1510 /* 22498 */ GIM_Reject,
1511 /* 22499 */ // Label 14: @22499
1512 /* 22499 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(22532), // Rule ID 43 //
1513 /* 22504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
1514 /* 22507 */ // MIs[0] dst
1515 /* 22507 */ // No operand predicates
1516 /* 22507 */ // MIs[0] mid
1517 /* 22507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1518 /* 22511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
1519 /* 22515 */ // MIs[1] x
1520 /* 22515 */ // No operand predicates
1521 /* 22515 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
1522 /* 22519 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1523 /* 22524 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1524 /* 22526 */ // Combiner Rule #16: p2i_to_i2p
1525 /* 22526 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1526 /* 22531 */ GIR_EraseRootFromParent_Done,
1527 /* 22532 */ // Label 70: @22532
1528 /* 22532 */ GIM_Reject,
1529 /* 22533 */ // Label 15: @22533
1530 /* 22533 */ GIM_Try, /*On fail goto*//*Label 71*/ GIMT_Encode4(22566), // Rule ID 57 //
1531 /* 22538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
1532 /* 22541 */ // MIs[0] dst
1533 /* 22541 */ // No operand predicates
1534 /* 22541 */ // MIs[0] src1
1535 /* 22541 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1536 /* 22545 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1537 /* 22549 */ // MIs[1] src0
1538 /* 22549 */ // No operand predicates
1539 /* 22549 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
1540 /* 22553 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1541 /* 22558 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1542 /* 22560 */ // Combiner Rule #29: bitcast_bitcast_fold
1543 /* 22560 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1544 /* 22565 */ GIR_EraseRootFromParent_Done,
1545 /* 22566 */ // Label 71: @22566
1546 /* 22566 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(22598), // Rule ID 58 //
1547 /* 22571 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1548 /* 22574 */ // MIs[0] dst
1549 /* 22574 */ // No operand predicates
1550 /* 22574 */ // MIs[0] src1
1551 /* 22574 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1552 /* 22578 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1553 /* 22582 */ // MIs[1] src0
1554 /* 22582 */ // No operand predicates
1555 /* 22582 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
1556 /* 22586 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1557 /* 22588 */ // Combiner Rule #30: bitcast_bitcast_to_bitcast
1558 /* 22588 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
1559 /* 22591 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1560 /* 22593 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
1561 /* 22597 */ GIR_EraseRootFromParent_Done,
1562 /* 22598 */ // Label 72: @22598
1563 /* 22598 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 73*/ GIMT_Encode4(22611), GIMT_Encode2(GIFBS_anonymous_55725), // Rule ID 82 //
1564 /* 22605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
1565 /* 22608 */ // MIs[0] dst
1566 /* 22608 */ // No operand predicates
1567 /* 22608 */ // MIs[0] src
1568 /* 22608 */ // No operand predicates
1569 /* 22608 */ // Combiner Rule #52: d16_load
1570 /* 22608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1571 /* 22611 */ // Label 73: @22611
1572 /* 22611 */ GIM_Reject,
1573 /* 22612 */ // Label 16: @22612
1574 /* 22612 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(22633), // Rule ID 74 //
1575 /* 22617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
1576 /* 22620 */ // MIs[0] root
1577 /* 22620 */ // No operand predicates
1578 /* 22620 */ // MIs[0] second
1579 /* 22620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1580 /* 22624 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1581 /* 22628 */ // MIs[1] src
1582 /* 22628 */ // No operand predicates
1583 /* 22628 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1584 /* 22630 */ // Combiner Rule #44: anyext_of_anyext
1585 /* 22630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1586 /* 22633 */ // Label 74: @22633
1587 /* 22633 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(22654), // Rule ID 76 //
1588 /* 22638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
1589 /* 22641 */ // MIs[0] root
1590 /* 22641 */ // No operand predicates
1591 /* 22641 */ // MIs[0] second
1592 /* 22641 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1593 /* 22645 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1594 /* 22649 */ // MIs[1] src
1595 /* 22649 */ // No operand predicates
1596 /* 22649 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1597 /* 22651 */ // Combiner Rule #46: anyext_of_sext
1598 /* 22651 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1599 /* 22654 */ // Label 75: @22654
1600 /* 22654 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(22675), // Rule ID 75 //
1601 /* 22659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
1602 /* 22662 */ // MIs[0] root
1603 /* 22662 */ // No operand predicates
1604 /* 22662 */ // MIs[0] second
1605 /* 22662 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1606 /* 22666 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1607 /* 22670 */ // MIs[1] src
1608 /* 22670 */ // No operand predicates
1609 /* 22670 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1610 /* 22672 */ // Combiner Rule #45: anyext_of_zext
1611 /* 22672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1612 /* 22675 */ // Label 76: @22675
1613 /* 22675 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(22686), // Rule ID 47 //
1614 /* 22680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
1615 /* 22683 */ // MIs[0] dst
1616 /* 22683 */ // No operand predicates
1617 /* 22683 */ // MIs[0] src
1618 /* 22683 */ // No operand predicates
1619 /* 22683 */ // Combiner Rule #20: anyext_trunc_fold
1620 /* 22683 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
1621 /* 22686 */ // Label 77: @22686
1622 /* 22686 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(22697), // Rule ID 66 //
1623 /* 22691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1624 /* 22694 */ // MIs[0] dst
1625 /* 22694 */ // No operand predicates
1626 /* 22694 */ // MIs[0] d.src
1627 /* 22694 */ // No operand predicates
1628 /* 22694 */ // Combiner Rule #36: constant_fold_cast_op @ [d[2]]
1629 /* 22694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1630 /* 22697 */ // Label 78: @22697
1631 /* 22697 */ GIM_Reject,
1632 /* 22698 */ // Label 17: @22698
1633 /* 22698 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(22719), // Rule ID 69 //
1634 /* 22703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
1635 /* 22706 */ // MIs[0] root
1636 /* 22706 */ // No operand predicates
1637 /* 22706 */ // MIs[0] ext
1638 /* 22706 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1639 /* 22710 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1640 /* 22714 */ // MIs[1] src
1641 /* 22714 */ // No operand predicates
1642 /* 22714 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1643 /* 22716 */ // Combiner Rule #39: truncate_of_anyext
1644 /* 22716 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1645 /* 22719 */ // Label 79: @22719
1646 /* 22719 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(22740), // Rule ID 68 //
1647 /* 22724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
1648 /* 22727 */ // MIs[0] root
1649 /* 22727 */ // No operand predicates
1650 /* 22727 */ // MIs[0] ext
1651 /* 22727 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1652 /* 22731 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1653 /* 22735 */ // MIs[1] src
1654 /* 22735 */ // No operand predicates
1655 /* 22735 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1656 /* 22737 */ // Combiner Rule #38: truncate_of_sext
1657 /* 22737 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1658 /* 22740 */ // Label 80: @22740
1659 /* 22740 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(22761), // Rule ID 67 //
1660 /* 22745 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
1661 /* 22748 */ // MIs[0] root
1662 /* 22748 */ // No operand predicates
1663 /* 22748 */ // MIs[0] ext
1664 /* 22748 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1665 /* 22752 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1666 /* 22756 */ // MIs[1] src
1667 /* 22756 */ // No operand predicates
1668 /* 22756 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1669 /* 22758 */ // Combiner Rule #37: truncate_of_zext
1670 /* 22758 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1671 /* 22761 */ // Label 81: @22761
1672 /* 22761 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(22772), // Rule ID 55 //
1673 /* 22766 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
1674 /* 22769 */ // MIs[0] dst
1675 /* 22769 */ // No operand predicates
1676 /* 22769 */ // MIs[0] src
1677 /* 22769 */ // No operand predicates
1678 /* 22769 */ // Combiner Rule #27: trunc_buildvector_fold
1679 /* 22769 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
1680 /* 22772 */ // Label 82: @22772
1681 /* 22772 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(22783), // Rule ID 56 //
1682 /* 22777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
1683 /* 22780 */ // MIs[0] dst
1684 /* 22780 */ // No operand predicates
1685 /* 22780 */ // MIs[0] src
1686 /* 22780 */ // No operand predicates
1687 /* 22780 */ // Combiner Rule #28: trunc_lshr_buildvector_fold
1688 /* 22780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
1689 /* 22783 */ // Label 83: @22783
1690 /* 22783 */ GIM_Reject,
1691 /* 22784 */ // Label 18: @22784
1692 /* 22784 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(22805), // Rule ID 73 //
1693 /* 22789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
1694 /* 22792 */ // MIs[0] root
1695 /* 22792 */ // No operand predicates
1696 /* 22792 */ // MIs[0] second
1697 /* 22792 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1698 /* 22796 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1699 /* 22800 */ // MIs[1] src
1700 /* 22800 */ // No operand predicates
1701 /* 22800 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1702 /* 22802 */ // Combiner Rule #43: sext_of_anyext
1703 /* 22802 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1704 /* 22805 */ // Label 84: @22805
1705 /* 22805 */ GIM_Try, /*On fail goto*//*Label 85*/ GIMT_Encode4(22826), // Rule ID 72 //
1706 /* 22810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
1707 /* 22813 */ // MIs[0] root
1708 /* 22813 */ // No operand predicates
1709 /* 22813 */ // MIs[0] second
1710 /* 22813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1711 /* 22817 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1712 /* 22821 */ // MIs[1] src
1713 /* 22821 */ // No operand predicates
1714 /* 22821 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1715 /* 22823 */ // Combiner Rule #42: sext_of_sext
1716 /* 22823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1717 /* 22826 */ // Label 85: @22826
1718 /* 22826 */ GIM_Try, /*On fail goto*//*Label 86*/ GIMT_Encode4(22847), // Rule ID 78 //
1719 /* 22831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
1720 /* 22834 */ // MIs[0] root
1721 /* 22834 */ // No operand predicates
1722 /* 22834 */ // MIs[0] src
1723 /* 22834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1724 /* 22838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
1725 /* 22842 */ // MIs[1] x
1726 /* 22842 */ // No operand predicates
1727 /* 22842 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1728 /* 22844 */ // Combiner Rule #48: sext_trunc
1729 /* 22844 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1730 /* 22847 */ // Label 86: @22847
1731 /* 22847 */ GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(22858), // Rule ID 65 //
1732 /* 22852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1733 /* 22855 */ // MIs[0] dst
1734 /* 22855 */ // No operand predicates
1735 /* 22855 */ // MIs[0] d.src
1736 /* 22855 */ // No operand predicates
1737 /* 22855 */ // Combiner Rule #36: constant_fold_cast_op @ [d[1]]
1738 /* 22855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1739 /* 22858 */ // Label 87: @22858
1740 /* 22858 */ GIM_Reject,
1741 /* 22859 */ // Label 19: @22859
1742 /* 22859 */ GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(22880), // Rule ID 77 //
1743 /* 22864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
1744 /* 22867 */ // MIs[0] dst
1745 /* 22867 */ // No operand predicates
1746 /* 22867 */ // MIs[0] x
1747 /* 22867 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1748 /* 22871 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
1749 /* 22875 */ // MIs[1] src
1750 /* 22875 */ // No operand predicates
1751 /* 22875 */ // MIs[1] a
1752 /* 22875 */ // No operand predicates
1753 /* 22875 */ // MIs[0] b
1754 /* 22875 */ // No operand predicates
1755 /* 22875 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1756 /* 22877 */ // Combiner Rule #47: sext_inreg_of_sext_inreg
1757 /* 22877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1758 /* 22880 */ // Label 88: @22880
1759 /* 22880 */ GIM_Reject,
1760 /* 22881 */ // Label 20: @22881
1761 /* 22881 */ GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(22902), // Rule ID 71 //
1762 /* 22886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
1763 /* 22889 */ // MIs[0] root
1764 /* 22889 */ // No operand predicates
1765 /* 22889 */ // MIs[0] second
1766 /* 22889 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1767 /* 22893 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1768 /* 22897 */ // MIs[1] src
1769 /* 22897 */ // No operand predicates
1770 /* 22897 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1771 /* 22899 */ // Combiner Rule #41: zext_of_anyext
1772 /* 22899 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1773 /* 22902 */ // Label 89: @22902
1774 /* 22902 */ GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(22923), // Rule ID 70 //
1775 /* 22907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
1776 /* 22910 */ // MIs[0] root
1777 /* 22910 */ // No operand predicates
1778 /* 22910 */ // MIs[0] second
1779 /* 22910 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1780 /* 22914 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1781 /* 22918 */ // MIs[1] src
1782 /* 22918 */ // No operand predicates
1783 /* 22918 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1784 /* 22920 */ // Combiner Rule #40: zext_of_zext
1785 /* 22920 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1786 /* 22923 */ // Label 90: @22923
1787 /* 22923 */ GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(22934), // Rule ID 3 //
1788 /* 22928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
1789 /* 22931 */ // MIs[0] dst
1790 /* 22931 */ // No operand predicates
1791 /* 22931 */ // MIs[0] src
1792 /* 22931 */ // No operand predicates
1793 /* 22931 */ // Combiner Rule #3: zext_trunc_fold
1794 /* 22931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
1795 /* 22934 */ // Label 91: @22934
1796 /* 22934 */ GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(22945), // Rule ID 64 //
1797 /* 22939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1798 /* 22942 */ // MIs[0] dst
1799 /* 22942 */ // No operand predicates
1800 /* 22942 */ // MIs[0] d.src
1801 /* 22942 */ // No operand predicates
1802 /* 22942 */ // Combiner Rule #36: constant_fold_cast_op @ [d[0]]
1803 /* 22942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1804 /* 22945 */ // Label 92: @22945
1805 /* 22945 */ GIM_Reject,
1806 /* 22946 */ // Label 21: @22946
1807 /* 22946 */ GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(22967), // Rule ID 81 //
1808 /* 22951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
1809 /* 22954 */ // MIs[0] dst
1810 /* 22954 */ // No operand predicates
1811 /* 22954 */ // MIs[0] src
1812 /* 22954 */ // No operand predicates
1813 /* 22954 */ // MIs[0] amt
1814 /* 22954 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1815 /* 22958 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1816 /* 22962 */ // MIs[1] amtsrc
1817 /* 22962 */ // No operand predicates
1818 /* 22962 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1819 /* 22964 */ // Combiner Rule #51: canonicalize_zext_shl
1820 /* 22964 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1821 /* 22967 */ // Label 93: @22967
1822 /* 22967 */ GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(22990), // Rule ID 24 //
1823 /* 22972 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1824 /* 22975 */ // MIs[0] dst
1825 /* 22975 */ // No operand predicates
1826 /* 22975 */ // MIs[0] lhs
1827 /* 22975 */ // No operand predicates
1828 /* 22975 */ // MIs[0] Operand 2
1829 /* 22975 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1830 /* 22979 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1831 /* 22984 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[4]]
1832 /* 22984 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1833 /* 22989 */ GIR_EraseRootFromParent_Done,
1834 /* 22990 */ // Label 94: @22990
1835 /* 22990 */ GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(23013), // Rule ID 34 //
1836 /* 22995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1837 /* 22998 */ // MIs[0] dst
1838 /* 22998 */ // No operand predicates
1839 /* 22998 */ // MIs[0] zero
1840 /* 22998 */ // No operand predicates
1841 /* 22998 */ // MIs[0] rhs
1842 /* 22998 */ // No operand predicates
1843 /* 22998 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1844 /* 23002 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1845 /* 23007 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
1846 /* 23007 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1847 /* 23012 */ GIR_EraseRootFromParent_Done,
1848 /* 23013 */ // Label 95: @23013
1849 /* 23013 */ GIM_Reject,
1850 /* 23014 */ // Label 22: @23014
1851 /* 23014 */ GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(23035), // Rule ID 79 //
1852 /* 23019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
1853 /* 23022 */ // MIs[0] dst
1854 /* 23022 */ // No operand predicates
1855 /* 23022 */ // MIs[0] src
1856 /* 23022 */ // No operand predicates
1857 /* 23022 */ // MIs[0] amt
1858 /* 23022 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1859 /* 23026 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1860 /* 23030 */ // MIs[1] amtsrc
1861 /* 23030 */ // No operand predicates
1862 /* 23030 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1863 /* 23032 */ // Combiner Rule #49: canonicalize_zext_lshr
1864 /* 23032 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1865 /* 23035 */ // Label 96: @23035
1866 /* 23035 */ GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(23058), // Rule ID 26 //
1867 /* 23040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1868 /* 23043 */ // MIs[0] dst
1869 /* 23043 */ // No operand predicates
1870 /* 23043 */ // MIs[0] lhs
1871 /* 23043 */ // No operand predicates
1872 /* 23043 */ // MIs[0] Operand 2
1873 /* 23043 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1874 /* 23047 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1875 /* 23052 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[6]]
1876 /* 23052 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1877 /* 23057 */ GIR_EraseRootFromParent_Done,
1878 /* 23058 */ // Label 97: @23058
1879 /* 23058 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(23081), // Rule ID 35 //
1880 /* 23063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1881 /* 23066 */ // MIs[0] dst
1882 /* 23066 */ // No operand predicates
1883 /* 23066 */ // MIs[0] zero
1884 /* 23066 */ // No operand predicates
1885 /* 23066 */ // MIs[0] rhs
1886 /* 23066 */ // No operand predicates
1887 /* 23066 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1888 /* 23070 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1889 /* 23075 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
1890 /* 23075 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1891 /* 23080 */ GIR_EraseRootFromParent_Done,
1892 /* 23081 */ // Label 98: @23081
1893 /* 23081 */ GIM_Reject,
1894 /* 23082 */ // Label 23: @23082
1895 /* 23082 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(23103), // Rule ID 80 //
1896 /* 23087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
1897 /* 23090 */ // MIs[0] dst
1898 /* 23090 */ // No operand predicates
1899 /* 23090 */ // MIs[0] src
1900 /* 23090 */ // No operand predicates
1901 /* 23090 */ // MIs[0] amt
1902 /* 23090 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1903 /* 23094 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1904 /* 23098 */ // MIs[1] amtsrc
1905 /* 23098 */ // No operand predicates
1906 /* 23098 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1907 /* 23100 */ // Combiner Rule #50: canonicalize_zext_ashr
1908 /* 23100 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1909 /* 23103 */ // Label 99: @23103
1910 /* 23103 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(23126), // Rule ID 25 //
1911 /* 23108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1912 /* 23111 */ // MIs[0] dst
1913 /* 23111 */ // No operand predicates
1914 /* 23111 */ // MIs[0] lhs
1915 /* 23111 */ // No operand predicates
1916 /* 23111 */ // MIs[0] Operand 2
1917 /* 23111 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1918 /* 23115 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1919 /* 23120 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[5]]
1920 /* 23120 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1921 /* 23125 */ GIR_EraseRootFromParent_Done,
1922 /* 23126 */ // Label 100: @23126
1923 /* 23126 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(23149), // Rule ID 36 //
1924 /* 23131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1925 /* 23134 */ // MIs[0] dst
1926 /* 23134 */ // No operand predicates
1927 /* 23134 */ // MIs[0] zero
1928 /* 23134 */ // No operand predicates
1929 /* 23134 */ // MIs[0] rhs
1930 /* 23134 */ // No operand predicates
1931 /* 23134 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1932 /* 23138 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1933 /* 23143 */ // Combiner Rule #14: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
1934 /* 23143 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1935 /* 23148 */ GIR_EraseRootFromParent_Done,
1936 /* 23149 */ // Label 101: @23149
1937 /* 23149 */ GIM_Reject,
1938 /* 23150 */ // Label 24: @23150
1939 /* 23150 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(23173), // Rule ID 29 //
1940 /* 23155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1941 /* 23158 */ // MIs[0] dst
1942 /* 23158 */ // No operand predicates
1943 /* 23158 */ // MIs[0] lhs
1944 /* 23158 */ // No operand predicates
1945 /* 23158 */ // MIs[0] Operand 2
1946 /* 23158 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1947 /* 23162 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1948 /* 23167 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[9]]
1949 /* 23167 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1950 /* 23172 */ GIR_EraseRootFromParent_Done,
1951 /* 23173 */ // Label 102: @23173
1952 /* 23173 */ GIM_Reject,
1953 /* 23174 */ // Label 25: @23174
1954 /* 23174 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(23197), // Rule ID 28 //
1955 /* 23179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1956 /* 23182 */ // MIs[0] dst
1957 /* 23182 */ // No operand predicates
1958 /* 23182 */ // MIs[0] lhs
1959 /* 23182 */ // No operand predicates
1960 /* 23182 */ // MIs[0] Operand 2
1961 /* 23182 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1962 /* 23186 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1963 /* 23191 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[8]]
1964 /* 23191 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1965 /* 23196 */ GIR_EraseRootFromParent_Done,
1966 /* 23197 */ // Label 103: @23197
1967 /* 23197 */ GIM_Reject,
1968 /* 23198 */ // Label 26: @23198
1969 /* 23198 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(23222), // Rule ID 18 //
1970 /* 23203 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
1971 /* 23206 */ // MIs[0] dst
1972 /* 23206 */ // No operand predicates
1973 /* 23206 */ // MIs[0] cond
1974 /* 23206 */ // No operand predicates
1975 /* 23206 */ // MIs[0] x
1976 /* 23206 */ // No operand predicates
1977 /* 23206 */ // MIs[0] x
1978 /* 23206 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
1979 /* 23211 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1980 /* 23216 */ // Combiner Rule #9: select_same_val_trivial
1981 /* 23216 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1982 /* 23221 */ GIR_EraseRootFromParent_Done,
1983 /* 23222 */ // Label 104: @23222
1984 /* 23222 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(23245), // Rule ID 19 //
1985 /* 23227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1986 /* 23230 */ // MIs[0] dst
1987 /* 23230 */ // No operand predicates
1988 /* 23230 */ // MIs[0] cond
1989 /* 23230 */ // No operand predicates
1990 /* 23230 */ // MIs[0] tval
1991 /* 23230 */ // No operand predicates
1992 /* 23230 */ // MIs[0] fval
1993 /* 23230 */ // No operand predicates
1994 /* 23230 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
1995 /* 23234 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1996 /* 23239 */ // Combiner Rule #10: select_same_val_equiv
1997 /* 23239 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1998 /* 23244 */ GIR_EraseRootFromParent_Done,
1999 /* 23245 */ // Label 105: @23245
2000 /* 23245 */ GIM_Reject,
2001 /* 23246 */ // Label 27: @23246
2002 /* 23246 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(23269), // Rule ID 60 //
2003 /* 23251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
2004 /* 23254 */ // MIs[0] dst
2005 /* 23254 */ // No operand predicates
2006 /* 23254 */ // MIs[0] x
2007 /* 23254 */ // No operand predicates
2008 /* 23254 */ // MIs[0] y
2009 /* 23254 */ // No operand predicates
2010 /* 23254 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
2011 /* 23258 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2012 /* 23263 */ // Combiner Rule #32: right_identity_neg_zero_fp
2013 /* 23263 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2014 /* 23268 */ GIR_EraseRootFromParent_Done,
2015 /* 23269 */ // Label 106: @23269
2016 /* 23269 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(23298), // Rule ID 61 //
2017 /* 23274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
2018 /* 23277 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
2019 /* 23283 */ // MIs[0] dst
2020 /* 23283 */ // No operand predicates
2021 /* 23283 */ // MIs[0] x
2022 /* 23283 */ // No operand predicates
2023 /* 23283 */ // MIs[0] y
2024 /* 23283 */ // No operand predicates
2025 /* 23283 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2026 /* 23287 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2027 /* 23292 */ // Combiner Rule #33: right_identity_neg_zero_fp_nsz
2028 /* 23292 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2029 /* 23297 */ GIR_EraseRootFromParent_Done,
2030 /* 23298 */ // Label 107: @23298
2031 /* 23298 */ GIM_Reject,
2032 /* 23299 */ // Label 28: @23299
2033 /* 23299 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(23322), // Rule ID 50 //
2034 /* 23304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
2035 /* 23307 */ // MIs[0] dst
2036 /* 23307 */ // No operand predicates
2037 /* 23307 */ // MIs[0] x
2038 /* 23307 */ // No operand predicates
2039 /* 23307 */ // MIs[0] y
2040 /* 23307 */ // No operand predicates
2041 /* 23307 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
2042 /* 23311 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2043 /* 23316 */ // Combiner Rule #23: right_identity_one_fp
2044 /* 23316 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2045 /* 23321 */ GIR_EraseRootFromParent_Done,
2046 /* 23322 */ // Label 108: @23322
2047 /* 23322 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(23342), // Rule ID 62 //
2048 /* 23327 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
2049 /* 23330 */ // MIs[0] dst
2050 /* 23330 */ // No operand predicates
2051 /* 23330 */ // MIs[0] x
2052 /* 23330 */ // No operand predicates
2053 /* 23330 */ // MIs[0] y
2054 /* 23330 */ // No operand predicates
2055 /* 23330 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
2056 /* 23334 */ // Combiner Rule #34: right_identity_neg_one_fp
2057 /* 23334 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
2058 /* 23337 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
2059 /* 23339 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
2060 /* 23341 */ GIR_EraseRootFromParent_Done,
2061 /* 23342 */ // Label 109: @23342
2062 /* 23342 */ GIM_Reject,
2063 /* 23343 */ // Label 29: @23343
2064 /* 23343 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(23372), // Rule ID 48 //
2065 /* 23348 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
2066 /* 23351 */ // MIs[0] dst
2067 /* 23351 */ // No operand predicates
2068 /* 23351 */ // MIs[0] t
2069 /* 23351 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2070 /* 23355 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
2071 /* 23359 */ // MIs[1] src
2072 /* 23359 */ // No operand predicates
2073 /* 23359 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2074 /* 23364 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
2075 /* 23366 */ // Combiner Rule #21: fneg_fneg_fold
2076 /* 23366 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2077 /* 23371 */ GIR_EraseRootFromParent_Done,
2078 /* 23372 */ // Label 110: @23372
2079 /* 23372 */ GIM_Reject,
2080 /* 23373 */ // Label 30: @23373
2081 /* 23373 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(23406), // Rule ID 59 //
2082 /* 23378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
2083 /* 23381 */ // MIs[0] dst
2084 /* 23381 */ // No operand predicates
2085 /* 23381 */ // MIs[0] src1
2086 /* 23381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2087 /* 23385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
2088 /* 23389 */ // MIs[1] src0
2089 /* 23389 */ // No operand predicates
2090 /* 23389 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
2091 /* 23393 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2092 /* 23398 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
2093 /* 23400 */ // Combiner Rule #31: fptrunc_fpext_fold
2094 /* 23400 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2095 /* 23405 */ GIR_EraseRootFromParent_Done,
2096 /* 23406 */ // Label 111: @23406
2097 /* 23406 */ GIM_Reject,
2098 /* 23407 */ // Label 31: @23407
2099 /* 23407 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(23418), // Rule ID 10 //
2100 /* 23412 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2101 /* 23415 */ // MIs[0] dst
2102 /* 23415 */ // No operand predicates
2103 /* 23415 */ // MIs[0] min_or_max.lhs
2104 /* 23415 */ // No operand predicates
2105 /* 23415 */ // MIs[0] min_or_max.rhs
2106 /* 23415 */ // No operand predicates
2107 /* 23415 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[1]]
2108 /* 23415 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2109 /* 23418 */ // Label 112: @23418
2110 /* 23418 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(23429), // Rule ID 14 //
2111 /* 23423 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2112 /* 23426 */ // MIs[0] dst
2113 /* 23426 */ // No operand predicates
2114 /* 23426 */ // MIs[0] min_or_max.lhs
2115 /* 23426 */ // No operand predicates
2116 /* 23426 */ // MIs[0] min_or_max.rhs
2117 /* 23426 */ // No operand predicates
2118 /* 23426 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[1]]
2119 /* 23426 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2120 /* 23429 */ // Label 113: @23429
2121 /* 23429 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(23440), // Rule ID 88 //
2122 /* 23434 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
2123 /* 23437 */ // MIs[0] dst
2124 /* 23437 */ // No operand predicates
2125 /* 23437 */ // MIs[0] lhs
2126 /* 23437 */ // No operand predicates
2127 /* 23437 */ // MIs[0] rhs
2128 /* 23437 */ // No operand predicates
2129 /* 23437 */ // Combiner Rule #58: fmin_to_minmax3
2130 /* 23437 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2131 /* 23440 */ // Label 114: @23440
2132 /* 23440 */ GIM_Reject,
2133 /* 23441 */ // Label 32: @23441
2134 /* 23441 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(23452), // Rule ID 9 //
2135 /* 23446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2136 /* 23449 */ // MIs[0] dst
2137 /* 23449 */ // No operand predicates
2138 /* 23449 */ // MIs[0] min_or_max.lhs
2139 /* 23449 */ // No operand predicates
2140 /* 23449 */ // MIs[0] min_or_max.rhs
2141 /* 23449 */ // No operand predicates
2142 /* 23449 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[0]]
2143 /* 23449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2144 /* 23452 */ // Label 115: @23452
2145 /* 23452 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(23463), // Rule ID 13 //
2146 /* 23457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2147 /* 23460 */ // MIs[0] dst
2148 /* 23460 */ // No operand predicates
2149 /* 23460 */ // MIs[0] min_or_max.lhs
2150 /* 23460 */ // No operand predicates
2151 /* 23460 */ // MIs[0] min_or_max.rhs
2152 /* 23460 */ // No operand predicates
2153 /* 23460 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[0]]
2154 /* 23460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2155 /* 23463 */ // Label 116: @23463
2156 /* 23463 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(23474), // Rule ID 87 //
2157 /* 23468 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
2158 /* 23471 */ // MIs[0] dst
2159 /* 23471 */ // No operand predicates
2160 /* 23471 */ // MIs[0] lhs
2161 /* 23471 */ // No operand predicates
2162 /* 23471 */ // MIs[0] rhs
2163 /* 23471 */ // No operand predicates
2164 /* 23471 */ // Combiner Rule #57: fmax_to_minmax3
2165 /* 23471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2166 /* 23474 */ // Label 117: @23474
2167 /* 23474 */ GIM_Reject,
2168 /* 23475 */ // Label 33: @23475
2169 /* 23475 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(23486), // Rule ID 12 //
2170 /* 23480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2171 /* 23483 */ // MIs[0] dst
2172 /* 23483 */ // No operand predicates
2173 /* 23483 */ // MIs[0] min_or_max.lhs
2174 /* 23483 */ // No operand predicates
2175 /* 23483 */ // MIs[0] min_or_max.rhs
2176 /* 23483 */ // No operand predicates
2177 /* 23483 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[3]]
2178 /* 23483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2179 /* 23486 */ // Label 118: @23486
2180 /* 23486 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(23497), // Rule ID 16 //
2181 /* 23491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2182 /* 23494 */ // MIs[0] dst
2183 /* 23494 */ // No operand predicates
2184 /* 23494 */ // MIs[0] min_or_max.lhs
2185 /* 23494 */ // No operand predicates
2186 /* 23494 */ // MIs[0] min_or_max.rhs
2187 /* 23494 */ // No operand predicates
2188 /* 23494 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[3]]
2189 /* 23494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2190 /* 23497 */ // Label 119: @23497
2191 /* 23497 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(23508), // Rule ID 92 //
2192 /* 23502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
2193 /* 23505 */ // MIs[0] dst
2194 /* 23505 */ // No operand predicates
2195 /* 23505 */ // MIs[0] lhs
2196 /* 23505 */ // No operand predicates
2197 /* 23505 */ // MIs[0] rhs
2198 /* 23505 */ // No operand predicates
2199 /* 23505 */ // Combiner Rule #62: fmin_ieee_to_minmax3
2200 /* 23505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2201 /* 23508 */ // Label 120: @23508
2202 /* 23508 */ GIM_Reject,
2203 /* 23509 */ // Label 34: @23509
2204 /* 23509 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(23520), // Rule ID 11 //
2205 /* 23514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2206 /* 23517 */ // MIs[0] dst
2207 /* 23517 */ // No operand predicates
2208 /* 23517 */ // MIs[0] min_or_max.lhs
2209 /* 23517 */ // No operand predicates
2210 /* 23517 */ // MIs[0] min_or_max.rhs
2211 /* 23517 */ // No operand predicates
2212 /* 23517 */ // Combiner Rule #6: fp_minmax_to_clamp @ [min_or_max[2]]
2213 /* 23517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2214 /* 23520 */ // Label 121: @23520
2215 /* 23520 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(23531), // Rule ID 15 //
2216 /* 23525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2217 /* 23528 */ // MIs[0] dst
2218 /* 23528 */ // No operand predicates
2219 /* 23528 */ // MIs[0] min_or_max.lhs
2220 /* 23528 */ // No operand predicates
2221 /* 23528 */ // MIs[0] min_or_max.rhs
2222 /* 23528 */ // No operand predicates
2223 /* 23528 */ // Combiner Rule #7: fp_minmax_to_med3 @ [min_or_max[2]]
2224 /* 23528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2225 /* 23531 */ // Label 122: @23531
2226 /* 23531 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(23542), // Rule ID 91 //
2227 /* 23536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
2228 /* 23539 */ // MIs[0] dst
2229 /* 23539 */ // No operand predicates
2230 /* 23539 */ // MIs[0] lhs
2231 /* 23539 */ // No operand predicates
2232 /* 23539 */ // MIs[0] rhs
2233 /* 23539 */ // No operand predicates
2234 /* 23539 */ // Combiner Rule #61: fmax_ieee_to_minmax3
2235 /* 23539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2236 /* 23542 */ // Label 123: @23542
2237 /* 23542 */ GIM_Reject,
2238 /* 23543 */ // Label 35: @23543
2239 /* 23543 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(23554), // Rule ID 90 //
2240 /* 23548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
2241 /* 23551 */ // MIs[0] dst
2242 /* 23551 */ // No operand predicates
2243 /* 23551 */ // MIs[0] lhs
2244 /* 23551 */ // No operand predicates
2245 /* 23551 */ // MIs[0] rhs
2246 /* 23551 */ // No operand predicates
2247 /* 23551 */ // Combiner Rule #60: fminimum_to_minmax3
2248 /* 23551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2249 /* 23554 */ // Label 124: @23554
2250 /* 23554 */ GIM_Reject,
2251 /* 23555 */ // Label 36: @23555
2252 /* 23555 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(23566), // Rule ID 89 //
2253 /* 23560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
2254 /* 23563 */ // MIs[0] dst
2255 /* 23563 */ // No operand predicates
2256 /* 23563 */ // MIs[0] lhs
2257 /* 23563 */ // No operand predicates
2258 /* 23563 */ // MIs[0] rhs
2259 /* 23563 */ // No operand predicates
2260 /* 23563 */ // Combiner Rule #59: fmaximum_to_minmax3
2261 /* 23563 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2262 /* 23566 */ // Label 125: @23566
2263 /* 23566 */ GIM_Reject,
2264 /* 23567 */ // Label 37: @23567
2265 /* 23567 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(23590), // Rule ID 27 //
2266 /* 23572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
2267 /* 23575 */ // MIs[0] dst
2268 /* 23575 */ // No operand predicates
2269 /* 23575 */ // MIs[0] lhs
2270 /* 23575 */ // No operand predicates
2271 /* 23575 */ // MIs[0] Operand 2
2272 /* 23575 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2273 /* 23579 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2274 /* 23584 */ // Combiner Rule #11: right_identity_zero @ [__right_identity_zero_match_0[7]]
2275 /* 23584 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2276 /* 23589 */ GIR_EraseRootFromParent_Done,
2277 /* 23590 */ // Label 126: @23590
2278 /* 23590 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(23601), // Rule ID 8 //
2279 /* 23595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
2280 /* 23598 */ // MIs[0] dst
2281 /* 23598 */ // No operand predicates
2282 /* 23598 */ // MIs[0] base
2283 /* 23598 */ // No operand predicates
2284 /* 23598 */ // MIs[0] offset
2285 /* 23598 */ // No operand predicates
2286 /* 23598 */ // Combiner Rule #5: ptr_add_immed_chain
2287 /* 23598 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
2288 /* 23601 */ // Label 127: @23601
2289 /* 23601 */ GIM_Reject,
2290 /* 23602 */ // Label 38: @23602
2291 /* 23602 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(23613), // Rule ID 5 //
2292 /* 23607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2293 /* 23610 */ // MIs[0] dst
2294 /* 23610 */ // No operand predicates
2295 /* 23610 */ // MIs[0] min_or_max.lhs
2296 /* 23610 */ // No operand predicates
2297 /* 23610 */ // MIs[0] min_or_max.rhs
2298 /* 23610 */ // No operand predicates
2299 /* 23610 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[1]]
2300 /* 23610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2301 /* 23613 */ // Label 128: @23613
2302 /* 23613 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(23624), // Rule ID 84 //
2303 /* 23618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
2304 /* 23621 */ // MIs[0] dst
2305 /* 23621 */ // No operand predicates
2306 /* 23621 */ // MIs[0] lhs
2307 /* 23621 */ // No operand predicates
2308 /* 23621 */ // MIs[0] rhs
2309 /* 23621 */ // No operand predicates
2310 /* 23621 */ // Combiner Rule #54: smin_to_minmax3
2311 /* 23621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2312 /* 23624 */ // Label 129: @23624
2313 /* 23624 */ GIM_Reject,
2314 /* 23625 */ // Label 39: @23625
2315 /* 23625 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(23636), // Rule ID 4 //
2316 /* 23630 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2317 /* 23633 */ // MIs[0] dst
2318 /* 23633 */ // No operand predicates
2319 /* 23633 */ // MIs[0] min_or_max.lhs
2320 /* 23633 */ // No operand predicates
2321 /* 23633 */ // MIs[0] min_or_max.rhs
2322 /* 23633 */ // No operand predicates
2323 /* 23633 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[0]]
2324 /* 23633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2325 /* 23636 */ // Label 130: @23636
2326 /* 23636 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(23647), // Rule ID 83 //
2327 /* 23641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
2328 /* 23644 */ // MIs[0] dst
2329 /* 23644 */ // No operand predicates
2330 /* 23644 */ // MIs[0] lhs
2331 /* 23644 */ // No operand predicates
2332 /* 23644 */ // MIs[0] rhs
2333 /* 23644 */ // No operand predicates
2334 /* 23644 */ // Combiner Rule #53: smax_to_minmax3
2335 /* 23644 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2336 /* 23647 */ // Label 131: @23647
2337 /* 23647 */ GIM_Reject,
2338 /* 23648 */ // Label 40: @23648
2339 /* 23648 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(23659), // Rule ID 7 //
2340 /* 23653 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2341 /* 23656 */ // MIs[0] dst
2342 /* 23656 */ // No operand predicates
2343 /* 23656 */ // MIs[0] min_or_max.lhs
2344 /* 23656 */ // No operand predicates
2345 /* 23656 */ // MIs[0] min_or_max.rhs
2346 /* 23656 */ // No operand predicates
2347 /* 23656 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[3]]
2348 /* 23656 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2349 /* 23659 */ // Label 132: @23659
2350 /* 23659 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(23670), // Rule ID 86 //
2351 /* 23664 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
2352 /* 23667 */ // MIs[0] dst
2353 /* 23667 */ // No operand predicates
2354 /* 23667 */ // MIs[0] lhs
2355 /* 23667 */ // No operand predicates
2356 /* 23667 */ // MIs[0] rhs
2357 /* 23667 */ // No operand predicates
2358 /* 23667 */ // Combiner Rule #56: umin_to_minmax3
2359 /* 23667 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2360 /* 23670 */ // Label 133: @23670
2361 /* 23670 */ GIM_Reject,
2362 /* 23671 */ // Label 41: @23671
2363 /* 23671 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(23682), // Rule ID 6 //
2364 /* 23676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2365 /* 23679 */ // MIs[0] dst
2366 /* 23679 */ // No operand predicates
2367 /* 23679 */ // MIs[0] min_or_max.lhs
2368 /* 23679 */ // No operand predicates
2369 /* 23679 */ // MIs[0] min_or_max.rhs
2370 /* 23679 */ // No operand predicates
2371 /* 23679 */ // Combiner Rule #4: int_minmax_to_med3 @ [min_or_max[2]]
2372 /* 23679 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2373 /* 23682 */ // Label 134: @23682
2374 /* 23682 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(23693), // Rule ID 85 //
2375 /* 23687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
2376 /* 23690 */ // MIs[0] dst
2377 /* 23690 */ // No operand predicates
2378 /* 23690 */ // MIs[0] lhs
2379 /* 23690 */ // No operand predicates
2380 /* 23690 */ // MIs[0] rhs
2381 /* 23690 */ // No operand predicates
2382 /* 23690 */ // Combiner Rule #55: umax_to_minmax3
2383 /* 23690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
2384 /* 23693 */ // Label 135: @23693
2385 /* 23693 */ GIM_Reject,
2386 /* 23694 */ // Label 42: @23694
2387 /* 23694 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(23705), // Rule ID 17 //
2388 /* 23699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2389 /* 23702 */ // MIs[0] dst
2390 /* 23702 */ // No operand predicates
2391 /* 23702 */ // MIs[0] src0
2392 /* 23702 */ // No operand predicates
2393 /* 23702 */ // MIs[0] src1
2394 /* 23702 */ // No operand predicates
2395 /* 23702 */ // MIs[0] src2
2396 /* 23702 */ // No operand predicates
2397 /* 23702 */ // Combiner Rule #8: fmed3_intrinsic_to_clamp
2398 /* 23702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
2399 /* 23705 */ // Label 136: @23705
2400 /* 23705 */ GIM_Reject,
2401 /* 23706 */ // Label 43: @23706
2402 /* 23706 */ GIM_Reject,
2403 /* 23707 */ }; // Size: 23707 bytes
2404 return MatchTable0;
2405}
2406#undef GIMT_Encode2
2407#undef GIMT_Encode4
2408#undef GIMT_Encode8
2409
2410
2411#endif // GET_GICOMBINER_IMPL
2412
2413#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
2414
2415AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
2416AvailableFunctionFeatures()
2417
2418#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
2419
2420#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
2421
2422, State(0),
2423ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
2424
2425#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
2426
2427