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 48; // "d16_load"
45 case 10: // 3 strings to match.
46 switch (RuleIdentifier[0]) {
47 default: break;
48 case 'i': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
50 break;
51 return 16; // "i2p_to_p2i"
52 case 'p': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
54 break;
55 return 15; // "p2i_to_i2p"
56 case 's': // 1 string to match.
57 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
58 break;
59 return 44; // "sext_trunc"
60 }
61 break;
62 case 11: // 2 strings to match.
63 switch (RuleIdentifier[0]) {
64 default: break;
65 case 'a': // 1 string to match.
66 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
67 break;
68 return 21; // "add_sub_reg"
69 case 'u': // 1 string to match.
70 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
71 break;
72 return 1; // "unmerge_cst"
73 }
74 break;
75 case 12: // 2 strings to match.
76 switch (RuleIdentifier[0]) {
77 default: break;
78 case 's': // 1 string to match.
79 if (memcmp(RuleIdentifier.data()+1, "ext_of_sext", 11) != 0)
80 break;
81 return 38; // "sext_of_sext"
82 case 'z': // 1 string to match.
83 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
84 break;
85 return 36; // "zext_of_zext"
86 }
87 break;
88 case 13: // 4 strings to match.
89 switch (RuleIdentifier[0]) {
90 default: break;
91 case 'r': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
93 break;
94 return 31; // "redundant_and"
95 case 's': // 1 string to match.
96 if (memcmp(RuleIdentifier.data()+1, "ame_val_zero", 12) != 0)
97 break;
98 return 12; // "same_val_zero"
99 case 'u': // 2 strings to match.
100 if (memcmp(RuleIdentifier.data()+1, "nmerge_", 7) != 0)
101 break;
102 switch (RuleIdentifier[8]) {
103 default: break;
104 case 'm': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
106 break;
107 return 0; // "unmerge_merge"
108 case 'u': // 1 string to match.
109 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
110 break;
111 return 2; // "unmerge_undef"
112 }
113 break;
114 }
115 break;
116 case 14: // 6 strings to match.
117 switch (RuleIdentifier[0]) {
118 default: break;
119 case 'a': // 2 strings to match.
120 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
121 break;
122 switch (RuleIdentifier[10]) {
123 default: break;
124 case 's': // 1 string to match.
125 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
126 break;
127 return 42; // "anyext_of_sext"
128 case 'z': // 1 string to match.
129 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
130 break;
131 return 41; // "anyext_of_zext"
132 }
133 break;
134 case 'b': // 1 string to match.
135 if (memcmp(RuleIdentifier.data()+1, "inop_same_val", 13) != 0)
136 break;
137 return 11; // "binop_same_val"
138 case 'f': // 1 string to match.
139 if (memcmp(RuleIdentifier.data()+1, "neg_fneg_fold", 13) != 0)
140 break;
141 return 18; // "fneg_fneg_fold"
142 case 's': // 1 string to match.
143 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
144 break;
145 return 39; // "sext_of_anyext"
146 case 'z': // 1 string to match.
147 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
148 break;
149 return 37; // "zext_of_anyext"
150 }
151 break;
152 case 15: // 8 strings to match.
153 switch (RuleIdentifier[0]) {
154 default: break;
155 case 'f': // 2 strings to match.
156 if (RuleIdentifier[1] != 'm')
157 break;
158 switch (RuleIdentifier[2]) {
159 default: break;
160 case 'a': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
162 break;
163 return 53; // "fmax_to_minmax3"
164 case 'i': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
166 break;
167 return 54; // "fmin_to_minmax3"
168 }
169 break;
170 case 's': // 3 strings to match.
171 switch (RuleIdentifier[1]) {
172 default: break;
173 case 'e': // 1 string to match.
174 if (memcmp(RuleIdentifier.data()+2, "lect_same_val", 13) != 0)
175 break;
176 return 9; // "select_same_val"
177 case 'm': // 2 strings to match.
178 switch (RuleIdentifier[2]) {
179 default: break;
180 case 'a': // 1 string to match.
181 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
182 break;
183 return 49; // "smax_to_minmax3"
184 case 'i': // 1 string to match.
185 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
186 break;
187 return 50; // "smin_to_minmax3"
188 }
189 break;
190 }
191 break;
192 case 'u': // 2 strings to match.
193 if (RuleIdentifier[1] != 'm')
194 break;
195 switch (RuleIdentifier[2]) {
196 default: break;
197 case 'a': // 1 string to match.
198 if (memcmp(RuleIdentifier.data()+3, "x_to_minmax3", 12) != 0)
199 break;
200 return 51; // "umax_to_minmax3"
201 case 'i': // 1 string to match.
202 if (memcmp(RuleIdentifier.data()+3, "n_to_minmax3", 12) != 0)
203 break;
204 return 52; // "umin_to_minmax3"
205 }
206 break;
207 case 'z': // 1 string to match.
208 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
209 break;
210 return 3; // "zext_trunc_fold"
211 }
212 break;
213 case 16: // 3 strings to match.
214 switch (RuleIdentifier[0]) {
215 default: break;
216 case 'a': // 1 string to match.
217 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
218 break;
219 return 40; // "anyext_of_anyext"
220 case 't': // 2 strings to match.
221 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
222 break;
223 switch (RuleIdentifier[12]) {
224 default: break;
225 case 's': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
227 break;
228 return 34; // "truncate_of_sext"
229 case 'z': // 1 string to match.
230 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
231 break;
232 return 33; // "truncate_of_zext"
233 }
234 break;
235 }
236 break;
237 case 17: // 2 strings to match.
238 switch (RuleIdentifier[0]) {
239 default: break;
240 case 'a': // 1 string to match.
241 if (memcmp(RuleIdentifier.data()+1, "nyext_trunc_fold", 16) != 0)
242 break;
243 return 17; // "anyext_trunc_fold"
244 case 'f': // 1 string to match.
245 if (memcmp(RuleIdentifier.data()+1, "p_minmax_to_med3", 16) != 0)
246 break;
247 return 7; // "fp_minmax_to_med3"
248 }
249 break;
250 case 18: // 5 strings to match.
251 switch (RuleIdentifier[0]) {
252 default: break;
253 case 'b': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
255 break;
256 return 13; // "binop_left_to_zero"
257 case 'f': // 2 strings to match.
258 if (RuleIdentifier[1] != 'p')
259 break;
260 switch (RuleIdentifier[2]) {
261 default: break;
262 case '_': // 1 string to match.
263 if (memcmp(RuleIdentifier.data()+3, "minmax_to_clamp", 15) != 0)
264 break;
265 return 6; // "fp_minmax_to_clamp"
266 case 't': // 1 string to match.
267 if (memcmp(RuleIdentifier.data()+3, "runc_fpext_fold", 15) != 0)
268 break;
269 return 27; // "fptrunc_fpext_fold"
270 }
271 break;
272 case 'i': // 1 string to match.
273 if (memcmp(RuleIdentifier.data()+1, "nt_minmax_to_med3", 17) != 0)
274 break;
275 return 4; // "int_minmax_to_med3"
276 case 't': // 1 string to match.
277 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
278 break;
279 return 35; // "truncate_of_anyext"
280 }
281 break;
282 case 19: // 5 strings to match.
283 switch (RuleIdentifier[0]) {
284 default: break;
285 case 'b': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
287 break;
288 return 14; // "binop_right_to_zero"
289 case 'f': // 2 strings to match.
290 if (RuleIdentifier[1] != 'm')
291 break;
292 switch (RuleIdentifier[2]) {
293 default: break;
294 case 'a': // 1 string to match.
295 if (memcmp(RuleIdentifier.data()+3, "ximum_to_minmax3", 16) != 0)
296 break;
297 return 55; // "fmaximum_to_minmax3"
298 case 'i': // 1 string to match.
299 if (memcmp(RuleIdentifier.data()+3, "nimum_to_minmax3", 16) != 0)
300 break;
301 return 56; // "fminimum_to_minmax3"
302 }
303 break;
304 case 'p': // 1 string to match.
305 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
306 break;
307 return 5; // "ptr_add_immed_chain"
308 case 'r': // 1 string to match.
309 if (memcmp(RuleIdentifier.data()+1, "ight_identity_zero", 18) != 0)
310 break;
311 return 10; // "right_identity_zero"
312 }
313 break;
314 case 20: // 3 strings to match.
315 switch (RuleIdentifier[0]) {
316 default: break;
317 case 'b': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
319 break;
320 return 25; // "bitcast_bitcast_fold"
321 case 'f': // 2 strings to match.
322 if (RuleIdentifier[1] != 'm')
323 break;
324 switch (RuleIdentifier[2]) {
325 default: break;
326 case 'a': // 1 string to match.
327 if (memcmp(RuleIdentifier.data()+3, "x_ieee_to_minmax3", 17) != 0)
328 break;
329 return 57; // "fmax_ieee_to_minmax3"
330 case 'i': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+3, "n_ieee_to_minmax3", 17) != 0)
332 break;
333 return 58; // "fmin_ieee_to_minmax3"
334 }
335 break;
336 }
337 break;
338 case 21: // 3 strings to match.
339 switch (RuleIdentifier[0]) {
340 default: break;
341 case 'c': // 2 strings to match.
342 switch (RuleIdentifier[1]) {
343 default: break;
344 case 'a': // 1 string to match.
345 if (memcmp(RuleIdentifier.data()+2, "nonicalize_zext_shl", 19) != 0)
346 break;
347 return 47; // "canonicalize_zext_shl"
348 case 'o': // 1 string to match.
349 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_cast_op", 19) != 0)
350 break;
351 return 32; // "constant_fold_cast_op"
352 }
353 break;
354 case 'r': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
356 break;
357 return 20; // "right_identity_one_fp"
358 }
359 break;
360 case 22: // 4 strings to match.
361 switch (RuleIdentifier[0]) {
362 default: break;
363 case 'c': // 2 strings to match.
364 if (memcmp(RuleIdentifier.data()+1, "anonicalize_zext_", 17) != 0)
365 break;
366 switch (RuleIdentifier[18]) {
367 default: break;
368 case 'a': // 1 string to match.
369 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
370 break;
371 return 46; // "canonicalize_zext_ashr"
372 case 'l': // 1 string to match.
373 if (memcmp(RuleIdentifier.data()+19, "shr", 3) != 0)
374 break;
375 return 45; // "canonicalize_zext_lshr"
376 }
377 break;
378 case 'r': // 1 string to match.
379 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
380 break;
381 return 19; // "right_identity_one_int"
382 case 't': // 1 string to match.
383 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
384 break;
385 return 23; // "trunc_buildvector_fold"
386 }
387 break;
388 case 24: // 2 strings to match.
389 switch (RuleIdentifier[0]) {
390 default: break;
391 case 'f': // 1 string to match.
392 if (memcmp(RuleIdentifier.data()+1, "med3_intrinsic_to_clamp", 23) != 0)
393 break;
394 return 8; // "fmed3_intrinsic_to_clamp"
395 case 's': // 1 string to match.
396 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_of_sext_inreg", 23) != 0)
397 break;
398 return 43; // "sext_inreg_of_sext_inreg"
399 }
400 break;
401 case 25: // 2 strings to match.
402 switch (RuleIdentifier[0]) {
403 default: break;
404 case 'b': // 1 string to match.
405 if (memcmp(RuleIdentifier.data()+1, "uildvector_identity_fold", 24) != 0)
406 break;
407 return 22; // "buildvector_identity_fold"
408 case 'r': // 1 string to match.
409 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
410 break;
411 return 30; // "right_identity_neg_one_fp"
412 }
413 break;
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 26; // "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 28; // "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 24; // "trunc_lshr_buildvector_fold"
431 case 30: // 1 string to match.
432 if (memcmp(RuleIdentifier.data()+0, "right_identity_neg_zero_fp_nsz", 30) != 0)
433 break;
434 return 29; // "right_identity_neg_zero_fp_nsz"
435 }
436#endif // ifndef NDEBUG
437
438 return std::nullopt;
439}
440static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
441 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
442 if (!RangePair.second.empty()) {
443 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
444 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
445 if (!First || !Last)
446 return std::nullopt;
447 if (First >= Last)
448 report_fatal_error(reason: "Beginning of range should be before end of range");
449 return {{*First, *Last + 1}};
450 }
451 if (RangePair.first == "*") {
452 return {{0, 59}};
453 }
454 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
455 if (!I)
456 return std::nullopt;
457 return {{*I, *I + 1}};
458}
459
460bool AMDGPURegBankCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
461 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
462 if (!MaybeRange)
463 return false;
464 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
465 DisabledRules.reset(Idx: I);
466 return true;
467}
468
469bool AMDGPURegBankCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
470 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
471 if (!MaybeRange)
472 return false;
473 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
474 DisabledRules.set(I);
475 return true;
476}
477
478static std::vector<std::string> AMDGPURegBankCombinerOption;
479static cl::list<std::string> AMDGPURegBankCombinerDisableOption(
480 "amdgpuregbankcombiner-disable-rule",
481 cl::desc("Disable one or more combiner rules temporarily in the AMDGPURegBankCombiner pass"),
482 cl::CommaSeparated,
483 cl::Hidden,
484 cl::cat(GICombinerOptionCategory),
485 cl::callback(CB: [](const std::string &Str) {
486 AMDGPURegBankCombinerOption.push_back(x: Str);
487 }));
488static cl::list<std::string> AMDGPURegBankCombinerOnlyEnableOption(
489 "amdgpuregbankcombiner-only-enable-rule",
490 cl::desc("Disable all rules in the AMDGPURegBankCombiner pass then re-enable the specified ones"),
491 cl::Hidden,
492 cl::cat(GICombinerOptionCategory),
493 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
494 StringRef Str = CommaSeparatedArg;
495 AMDGPURegBankCombinerOption.push_back(x: "*");
496 do {
497 auto X = Str.split(Separator: ",");
498 AMDGPURegBankCombinerOption.push_back(x: ("!" + X.first).str());
499 Str = X.second;
500 } while (!Str.empty());
501 }));
502
503
504bool AMDGPURegBankCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
505 return !DisabledRules.test(Idx: RuleID);
506}
507bool AMDGPURegBankCombinerImplRuleConfig::parseCommandLineOption() {
508 for (StringRef Identifier : AMDGPURegBankCombinerOption) {
509 bool Enabled = Identifier.consume_front(Prefix: "!");
510 if (Enabled && !setRuleEnabled(Identifier))
511 return false;
512 if (!Enabled && !setRuleDisabled(Identifier))
513 return false;
514 }
515 return true;
516}
517
518
519#endif // GET_GICOMBINER_TYPES
520
521#ifdef GET_GICOMBINER_TYPES
522
523const unsigned MAX_SUBTARGET_PREDICATES = 1;
524using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
525
526#endif // GET_GICOMBINER_TYPES
527
528#ifdef GET_GICOMBINER_CLASS_MEMBERS
529
530 bool canMatchOpcode(unsigned Opc) const override;
531
532#endif // GET_GICOMBINER_CLASS_MEMBERS
533
534#ifdef GET_GICOMBINER_CLASS_MEMBERS
535
536PredicateBitset AvailableModuleFeatures;
537mutable PredicateBitset AvailableFunctionFeatures;
538PredicateBitset getAvailableFeatures() const {
539 return AvailableModuleFeatures | AvailableFunctionFeatures;
540}
541PredicateBitset
542computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
543PredicateBitset
544computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
545 const MachineFunction *MF) const;
546void setupGeneratedPerFunctionState(MachineFunction &MF) override;
547
548#endif // GET_GICOMBINER_CLASS_MEMBERS
549
550#ifdef GET_GICOMBINER_CLASS_MEMBERS
551
552 mutable MatcherState State;
553 typedef ComplexRendererFns(AMDGPURegBankCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
554 typedef void(AMDGPURegBankCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
555 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
556 static AMDGPURegBankCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
557 static AMDGPURegBankCombinerImpl::CustomRendererFn CustomRenderers[];
558 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
559 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
560 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
561 const uint8_t *getMatchTable() const override;
562 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
563 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
564 bool testSimplePredicate(unsigned PredicateID) const override;
565 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
566
567#endif // GET_GICOMBINER_CLASS_MEMBERS
568
569#ifdef GET_GICOMBINER_IMPL
570
571// LLT Objects.
572enum {
573 GILLT_s1,
574};
575const static size_t NumTypeObjects = 1;
576const static LLT TypeObjects[] = {
577 LLT::scalar(1),
578};
579
580// Bits for subtarget features that participate in instruction matching.
581enum SubtargetFeatureBits : uint8_t {
582 Feature_anonymous_52676Bit = 0,
583};
584
585PredicateBitset AMDGPURegBankCombinerImpl::
586computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
587 PredicateBitset Features{};
588 if (Subtarget->d16PreservesUnusedBits())
589 Features.set(Feature_anonymous_52676Bit);
590 return Features;
591}
592
593void AMDGPURegBankCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
594 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
595}
596PredicateBitset AMDGPURegBankCombinerImpl::
597computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
598 PredicateBitset Features{};
599 return Features;
600}
601
602// Feature bitsets.
603enum {
604 GIFBS_Invalid,
605 GIFBS_anonymous_52676,
606};
607constexpr static PredicateBitset FeatureBitsets[] {
608 {}, // GIFBS_Invalid
609 {Feature_anonymous_52676Bit, },
610};
611
612// ComplexPattern predicates.
613enum {
614 GICP_Invalid,
615};
616// See constructor for table contents
617
618AMDGPURegBankCombinerImpl::ComplexMatcherMemFn
619AMDGPURegBankCombinerImpl::ComplexPredicateFns[] = {
620 nullptr, // GICP_Invalid
621};
622
623enum {
624 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
625 GICXXPred_MI_Predicate_GICombiner1,
626 GICXXPred_MI_Predicate_GICombiner2,
627 GICXXPred_MI_Predicate_GICombiner3,
628 GICXXPred_MI_Predicate_GICombiner4,
629};
630bool AMDGPURegBankCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
631 switch (PredicateID) {
632 case GICXXPred_MI_Predicate_GICombiner0: {
633 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
634 }
635 case GICXXPred_MI_Predicate_GICombiner1: {
636 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
637 }
638 case GICXXPred_MI_Predicate_GICombiner2: {
639 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
640 }
641 case GICXXPred_MI_Predicate_GICombiner3: {
642 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
643 }
644 case GICXXPred_MI_Predicate_GICombiner4: {
645 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
646 }
647 }
648 llvm_unreachable("Unknown predicate");
649 return false;
650}
651bool AMDGPURegBankCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
652 llvm_unreachable("Unknown predicate");
653 return false;
654}
655bool AMDGPURegBankCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
656 llvm_unreachable("Unknown predicate");
657 return false;
658}
659bool AMDGPURegBankCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
660 llvm_unreachable("Unknown predicate");
661 return false;
662}
663bool AMDGPURegBankCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
664 llvm_unreachable("Unknown predicate");
665 return false;
666}
667enum {
668 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
669 GICXXPred_Simple_IsRule1Enabled,
670 GICXXPred_Simple_IsRule2Enabled,
671 GICXXPred_Simple_IsRule3Enabled,
672 GICXXPred_Simple_IsRule4Enabled,
673 GICXXPred_Simple_IsRule5Enabled,
674 GICXXPred_Simple_IsRule6Enabled,
675 GICXXPred_Simple_IsRule7Enabled,
676 GICXXPred_Simple_IsRule8Enabled,
677 GICXXPred_Simple_IsRule9Enabled,
678 GICXXPred_Simple_IsRule10Enabled,
679 GICXXPred_Simple_IsRule11Enabled,
680 GICXXPred_Simple_IsRule12Enabled,
681 GICXXPred_Simple_IsRule13Enabled,
682 GICXXPred_Simple_IsRule14Enabled,
683 GICXXPred_Simple_IsRule15Enabled,
684 GICXXPred_Simple_IsRule16Enabled,
685 GICXXPred_Simple_IsRule17Enabled,
686 GICXXPred_Simple_IsRule18Enabled,
687 GICXXPred_Simple_IsRule19Enabled,
688 GICXXPred_Simple_IsRule20Enabled,
689 GICXXPred_Simple_IsRule21Enabled,
690 GICXXPred_Simple_IsRule22Enabled,
691 GICXXPred_Simple_IsRule23Enabled,
692 GICXXPred_Simple_IsRule24Enabled,
693 GICXXPred_Simple_IsRule25Enabled,
694 GICXXPred_Simple_IsRule26Enabled,
695 GICXXPred_Simple_IsRule27Enabled,
696 GICXXPred_Simple_IsRule28Enabled,
697 GICXXPred_Simple_IsRule29Enabled,
698 GICXXPred_Simple_IsRule30Enabled,
699 GICXXPred_Simple_IsRule31Enabled,
700 GICXXPred_Simple_IsRule32Enabled,
701 GICXXPred_Simple_IsRule33Enabled,
702 GICXXPred_Simple_IsRule34Enabled,
703 GICXXPred_Simple_IsRule35Enabled,
704 GICXXPred_Simple_IsRule36Enabled,
705 GICXXPred_Simple_IsRule37Enabled,
706 GICXXPred_Simple_IsRule38Enabled,
707 GICXXPred_Simple_IsRule39Enabled,
708 GICXXPred_Simple_IsRule40Enabled,
709 GICXXPred_Simple_IsRule41Enabled,
710 GICXXPred_Simple_IsRule42Enabled,
711 GICXXPred_Simple_IsRule43Enabled,
712 GICXXPred_Simple_IsRule44Enabled,
713 GICXXPred_Simple_IsRule45Enabled,
714 GICXXPred_Simple_IsRule46Enabled,
715 GICXXPred_Simple_IsRule47Enabled,
716 GICXXPred_Simple_IsRule48Enabled,
717 GICXXPred_Simple_IsRule49Enabled,
718 GICXXPred_Simple_IsRule50Enabled,
719 GICXXPred_Simple_IsRule51Enabled,
720 GICXXPred_Simple_IsRule52Enabled,
721 GICXXPred_Simple_IsRule53Enabled,
722 GICXXPred_Simple_IsRule54Enabled,
723 GICXXPred_Simple_IsRule55Enabled,
724 GICXXPred_Simple_IsRule56Enabled,
725 GICXXPred_Simple_IsRule57Enabled,
726 GICXXPred_Simple_IsRule58Enabled,
727};
728
729bool AMDGPURegBankCombinerImpl::testSimplePredicate(unsigned Predicate) const {
730 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
731}
732// Custom renderers.
733enum {
734 GICR_Invalid,
735};
736AMDGPURegBankCombinerImpl::CustomRendererFn
737AMDGPURegBankCombinerImpl::CustomRenderers[] = {
738 nullptr, // GICR_Invalid
739};
740
741bool AMDGPURegBankCombinerImpl::canMatchOpcode(unsigned Opc) const {
742 switch (Opc) {
743 case TargetOpcode::G_ADD:
744 case TargetOpcode::G_AND:
745 case TargetOpcode::G_ASHR:
746 case TargetOpcode::G_FADD:
747 case TargetOpcode::G_FMAXIMUM:
748 case TargetOpcode::G_FMAXNUM:
749 case TargetOpcode::G_FMAXNUM_IEEE:
750 case TargetOpcode::G_FMINIMUM:
751 case TargetOpcode::G_FMINNUM:
752 case TargetOpcode::G_FMINNUM_IEEE:
753 case TargetOpcode::G_FMUL:
754 case TargetOpcode::G_LSHR:
755 case TargetOpcode::G_MUL:
756 case TargetOpcode::G_OR:
757 case TargetOpcode::G_PTR_ADD:
758 case TargetOpcode::G_ROTL:
759 case TargetOpcode::G_ROTR:
760 case TargetOpcode::G_SDIV:
761 case TargetOpcode::G_SEXT_INREG:
762 case TargetOpcode::G_SHL:
763 case TargetOpcode::G_SMAX:
764 case TargetOpcode::G_SMIN:
765 case TargetOpcode::G_SREM:
766 case TargetOpcode::G_SUB:
767 case TargetOpcode::G_UDIV:
768 case TargetOpcode::G_UMAX:
769 case TargetOpcode::G_UMIN:
770 case TargetOpcode::G_UREM:
771 case TargetOpcode::G_XOR:
772 case TargetOpcode::G_ANYEXT:
773 case TargetOpcode::G_BITCAST:
774 case TargetOpcode::G_FNEG:
775 case TargetOpcode::G_FPTRUNC:
776 case TargetOpcode::G_PTRTOINT:
777 case TargetOpcode::G_SEXT:
778 case TargetOpcode::G_TRUNC:
779 case TargetOpcode::G_ZEXT:
780 case AMDGPU::G_AMDGPU_FMED3:
781 case TargetOpcode::G_BUILD_VECTOR:
782 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
783 case TargetOpcode::G_INTTOPTR:
784 case TargetOpcode::G_SELECT:
785 case TargetOpcode::G_UNMERGE_VALUES:
786 return true;
787 default:
788 return false;
789 }
790}
791
792bool AMDGPURegBankCombinerImpl::tryCombineAll(MachineInstr &I) const {
793 const PredicateBitset AvailableFeatures = getAvailableFeatures();
794 State.MIs.clear();
795 State.MIs.push_back(&I);
796 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
797 return true;
798 }
799
800 return false;
801}
802
803enum {
804 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
805 GICXXCustomAction_GICombiner1,
806 GICXXCustomAction_GICombiner2,
807 GICXXCustomAction_GICombiner3,
808 GICXXCustomAction_GICombiner4,
809 GICXXCustomAction_GICombiner5,
810 GICXXCustomAction_GICombiner6,
811 GICXXCustomAction_GICombiner7,
812 GICXXCustomAction_GICombiner8,
813 GICXXCustomAction_GICombiner9,
814 GICXXCustomAction_GICombiner10,
815 GICXXCustomAction_GICombiner11,
816 GICXXCustomAction_GICombiner12,
817 GICXXCustomAction_GICombiner13,
818 GICXXCustomAction_GICombiner14,
819 GICXXCustomAction_GICombiner15,
820 GICXXCustomAction_GICombiner16,
821 GICXXCustomAction_GICombiner17,
822 GICXXCustomAction_GICombiner18,
823 GICXXCustomAction_GICombiner19,
824 GICXXCustomAction_GICombiner20,
825 GICXXCustomAction_GICombiner21,
826 GICXXCustomAction_GICombiner22,
827 GICXXCustomAction_GICombiner23,
828 GICXXCustomAction_GICombiner24,
829 GICXXCustomAction_GICombiner25,
830};
831bool AMDGPURegBankCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
832 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
833 switch(ApplyID) {
834 case GICXXCustomAction_GICombiner0:{
835 SmallVector<Register> GIMatchData_info;
836 // Match Patterns
837 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
838 return false;
839 }
840 // Apply Patterns
841 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
842 return true;
843 }
844 case GICXXCustomAction_GICombiner1:{
845 SmallVector<APInt, 8> GIMatchData_info;
846 // Match Patterns
847 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
848 return false;
849 }
850 // Apply Patterns
851 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
852 return true;
853 }
854 case GICXXCustomAction_GICombiner2:{
855 std::function<void(MachineIRBuilder &)> GIMatchData_info;
856 // Match Patterns
857 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
858 return false;
859 }
860 // Apply Patterns
861 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
862 return true;
863 }
864 case GICXXCustomAction_GICombiner3:{
865 Register GIMatchData_matchinfo;
866 // Match Patterns
867 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
868 return false;
869 }
870 // Apply Patterns
871 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
872 return true;
873 }
874 case GICXXCustomAction_GICombiner4:{
875 Med3MatchInfo GIMatchData_matchinfo;
876 // Match Patterns
877 if(![&](){return matchIntMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
878 return false;
879 }
880 // Apply Patterns
881 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
882 return true;
883 }
884 case GICXXCustomAction_GICombiner5:{
885 PtrAddChain GIMatchData_matchinfo;
886 // Match Patterns
887 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
888 return false;
889 }
890 // Apply Patterns
891 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
892 return true;
893 }
894 case GICXXCustomAction_GICombiner6:{
895 Register GIMatchData_matchinfo;
896 // Match Patterns
897 if(![&](){return matchFPMinMaxToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
898 return false;
899 }
900 // Apply Patterns
901 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
902 return true;
903 }
904 case GICXXCustomAction_GICombiner7:{
905 Med3MatchInfo GIMatchData_matchinfo;
906 // Match Patterns
907 if(![&](){return matchFPMinMaxToMed3(*State.MIs[0], GIMatchData_matchinfo);}()) {
908 return false;
909 }
910 // Apply Patterns
911 applyMed3(*State.MIs[0], GIMatchData_matchinfo);
912 return true;
913 }
914 case GICXXCustomAction_GICombiner8:{
915 Register GIMatchData_matchinfo;
916 // Match Patterns
917 if(![&](){return matchFPMed3ToClamp(*State.MIs[0], GIMatchData_matchinfo);}()) {
918 return false;
919 }
920 // Apply Patterns
921 applyClamp(*State.MIs[0], GIMatchData_matchinfo);
922 return true;
923 }
924 case GICXXCustomAction_GICombiner9:{
925 // Match Patterns
926 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
927 return false;
928 }
929 // Apply Patterns
930 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
931 return true;
932 }
933 case GICXXCustomAction_GICombiner10:{
934 Register GIMatchData_info;
935 // Match Patterns
936 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
937 return false;
938 }
939 // Apply Patterns
940 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
941 return true;
942 }
943 case GICXXCustomAction_GICombiner11:{
944 Register GIMatchData_info;
945 // Match Patterns
946 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
947 return false;
948 }
949 // Apply Patterns
950 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
951 return true;
952 }
953 case GICXXCustomAction_GICombiner12:{
954 Register GIMatchData_matchinfo;
955 // Match Patterns
956 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
957 return false;
958 }
959 // Apply Patterns
960 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
961 return true;
962 }
963 case GICXXCustomAction_GICombiner13:{
964 Register GIMatchData_matchinfo;
965 // Match Patterns
966 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
967 return false;
968 }
969 // Apply Patterns
970 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
971 return true;
972 }
973 case GICXXCustomAction_GICombiner14:{
974 Register GIMatchData_matchinfo;
975 // Match Patterns
976 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
977 return false;
978 }
979 // Apply Patterns
980 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
981 return true;
982 }
983 case GICXXCustomAction_GICombiner15:{
984 Register GIMatchData_matchinfo;
985 // Match Patterns
986 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
987 return false;
988 }
989 // Apply Patterns
990 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
991 return true;
992 }
993 case GICXXCustomAction_GICombiner16:{
994 // Match Patterns
995 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
996 return false;
997 }
998 // Apply Patterns
999 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
1000 return true;
1001 }
1002 case GICXXCustomAction_GICombiner17:{
1003 Register GIMatchData_matchinfo;
1004 // Match Patterns
1005 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
1006 return false;
1007 }
1008 // Apply Patterns
1009 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
1010 return true;
1011 }
1012 case GICXXCustomAction_GICombiner18:{
1013 APInt GIMatchData_matchinfo;
1014 // Match Patterns
1015 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
1016 return false;
1017 }
1018 // Apply Patterns
1019 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
1020 return true;
1021 }
1022 case GICXXCustomAction_GICombiner19:{
1023 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1024 // Match Patterns
1025 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1026 return false;
1027 }
1028 // Apply Patterns
1029 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1030 return true;
1031 }
1032 case GICXXCustomAction_GICombiner20:{
1033 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1034 // Match Patterns
1035 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1036 return false;
1037 }
1038 // Apply Patterns
1039 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1040 return true;
1041 }
1042 case GICXXCustomAction_GICombiner21:{
1043 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1044 // Match Patterns
1045 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
1046 return false;
1047 }
1048 // Apply Patterns
1049 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
1050 return true;
1051 }
1052 case GICXXCustomAction_GICombiner22:{
1053 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
1054 // Match Patterns
1055 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
1056 return false;
1057 }
1058 // Apply Patterns
1059 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
1060 return true;
1061 }
1062 case GICXXCustomAction_GICombiner23:{
1063 // Apply Patterns
1064 applyCanonicalizeZextShiftAmt(*State.MIs[0], *State.MIs[1]);
1065 return true;
1066 }
1067 case GICXXCustomAction_GICombiner24:{
1068 // Apply Patterns
1069 return combineD16Load(*State.MIs[0] );
1070 return true;
1071 }
1072 case GICXXCustomAction_GICombiner25:{
1073 MinMaxToMinMax3MatchInfo GIMatchData_matchinfo;
1074 // Match Patterns
1075 if(![&](){return matchMinMaxToMinMax3(*State.MIs[0], GIMatchData_matchinfo);}()) {
1076 return false;
1077 }
1078 // Apply Patterns
1079 applyMinMaxToMinMax3(*State.MIs[0], GIMatchData_matchinfo);
1080 return true;
1081 }
1082 }
1083 llvm_unreachable("Unknown Apply Action");
1084}
1085#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
1086#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
1087#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
1088#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)
1089#else
1090#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
1091#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
1092#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)
1093#endif
1094const uint8_t *AMDGPURegBankCombinerImpl::getMatchTable() const {
1095 constexpr static uint8_t MatchTable0[] = {
1096 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(55), GIMT_Encode2(4147), /*)*//*default:*//*Label 43*/ GIMT_Encode4(18187),
1097 /* 10 */ /*TargetOpcode::G_ADD*//*Label 0*/ GIMT_Encode4(16378),
1098 /* 14 */ /*TargetOpcode::G_SUB*//*Label 1*/ GIMT_Encode4(16470),
1099 /* 18 */ /*TargetOpcode::G_MUL*//*Label 2*/ GIMT_Encode4(16533),
1100 /* 22 */ /*TargetOpcode::G_SDIV*//*Label 3*/ GIMT_Encode4(16620),
1101 /* 26 */ /*TargetOpcode::G_UDIV*//*Label 4*/ GIMT_Encode4(16661),
1102 /* 30 */ /*TargetOpcode::G_SREM*//*Label 5*/ GIMT_Encode4(16702),
1103 /* 34 */ /*TargetOpcode::G_UREM*//*Label 6*/ GIMT_Encode4(16743), GIMT_Encode4(0), GIMT_Encode4(0),
1104 /* 46 */ /*TargetOpcode::G_AND*//*Label 7*/ GIMT_Encode4(16784),
1105 /* 50 */ /*TargetOpcode::G_OR*//*Label 8*/ GIMT_Encode4(16820),
1106 /* 54 */ /*TargetOpcode::G_XOR*//*Label 9*/ GIMT_Encode4(16868), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1107 /* 110 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 10*/ GIMT_Encode4(16931), GIMT_Encode4(0), GIMT_Encode4(0),
1108 /* 122 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 11*/ GIMT_Encode4(16965),
1109 /* 126 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 12*/ GIMT_Encode4(16977), GIMT_Encode4(0),
1110 /* 134 */ /*TargetOpcode::G_PTRTOINT*//*Label 13*/ GIMT_Encode4(16989),
1111 /* 138 */ /*TargetOpcode::G_INTTOPTR*//*Label 14*/ GIMT_Encode4(17011),
1112 /* 142 */ /*TargetOpcode::G_BITCAST*//*Label 15*/ GIMT_Encode4(17023), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1113 /* 362 */ /*TargetOpcode::G_ANYEXT*//*Label 16*/ GIMT_Encode4(17090),
1114 /* 366 */ /*TargetOpcode::G_TRUNC*//*Label 17*/ GIMT_Encode4(17176), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1115 /* 398 */ /*TargetOpcode::G_SEXT*//*Label 18*/ GIMT_Encode4(17262),
1116 /* 402 */ /*TargetOpcode::G_SEXT_INREG*//*Label 19*/ GIMT_Encode4(17337),
1117 /* 406 */ /*TargetOpcode::G_ZEXT*//*Label 20*/ GIMT_Encode4(17359),
1118 /* 410 */ /*TargetOpcode::G_SHL*//*Label 21*/ GIMT_Encode4(17424),
1119 /* 414 */ /*TargetOpcode::G_LSHR*//*Label 22*/ GIMT_Encode4(17509),
1120 /* 418 */ /*TargetOpcode::G_ASHR*//*Label 23*/ GIMT_Encode4(17594), GIMT_Encode4(0), GIMT_Encode4(0),
1121 /* 430 */ /*TargetOpcode::G_ROTR*//*Label 24*/ GIMT_Encode4(17679),
1122 /* 434 */ /*TargetOpcode::G_ROTL*//*Label 25*/ GIMT_Encode4(17703), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1123 /* 454 */ /*TargetOpcode::G_SELECT*//*Label 26*/ GIMT_Encode4(17727), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1124 /* 562 */ /*TargetOpcode::G_FADD*//*Label 27*/ GIMT_Encode4(17739), GIMT_Encode4(0),
1125 /* 570 */ /*TargetOpcode::G_FMUL*//*Label 28*/ GIMT_Encode4(17792), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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 /* 634 */ /*TargetOpcode::G_FNEG*//*Label 29*/ GIMT_Encode4(17836), GIMT_Encode4(0),
1127 /* 642 */ /*TargetOpcode::G_FPTRUNC*//*Label 30*/ GIMT_Encode4(17866), GIMT_Encode4(0), GIMT_Encode4(0), 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 /* 686 */ /*TargetOpcode::G_FMINNUM*//*Label 31*/ GIMT_Encode4(17888),
1129 /* 690 */ /*TargetOpcode::G_FMAXNUM*//*Label 32*/ GIMT_Encode4(17922),
1130 /* 694 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 33*/ GIMT_Encode4(17956),
1131 /* 698 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 34*/ GIMT_Encode4(17990),
1132 /* 702 */ /*TargetOpcode::G_FMINIMUM*//*Label 35*/ GIMT_Encode4(18024),
1133 /* 706 */ /*TargetOpcode::G_FMAXIMUM*//*Label 36*/ GIMT_Encode4(18036), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1134 /* 750 */ /*TargetOpcode::G_PTR_ADD*//*Label 37*/ GIMT_Encode4(18048), GIMT_Encode4(0),
1135 /* 758 */ /*TargetOpcode::G_SMIN*//*Label 38*/ GIMT_Encode4(18083),
1136 /* 762 */ /*TargetOpcode::G_SMAX*//*Label 39*/ GIMT_Encode4(18106),
1137 /* 766 */ /*TargetOpcode::G_UMIN*//*Label 40*/ GIMT_Encode4(18129),
1138 /* 770 */ /*TargetOpcode::G_UMAX*//*Label 41*/ GIMT_Encode4(18152), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1139 /* 16374 */ /*AMDGPU::G_AMDGPU_FMED3*//*Label 42*/ GIMT_Encode4(18175),
1140 /* 16378 */ // Label 0: @16378
1141 /* 16378 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(16412), // Rule ID 49 //
1142 /* 16383 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
1143 /* 16386 */ // MIs[0] dst
1144 /* 16386 */ // No operand predicates
1145 /* 16386 */ // MIs[0] __add_sub_reg_match_0.tmp
1146 /* 16386 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1147 /* 16390 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1148 /* 16394 */ // MIs[1] src
1149 /* 16394 */ // No operand predicates
1150 /* 16394 */ // MIs[1] __add_sub_reg_match_0.x
1151 /* 16394 */ // No operand predicates
1152 /* 16394 */ // MIs[0] __add_sub_reg_match_0.x
1153 /* 16394 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
1154 /* 16399 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1155 /* 16404 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1156 /* 16406 */ // Combiner Rule #21: add_sub_reg @ [__add_sub_reg_match_0[1]]
1157 /* 16406 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1158 /* 16411 */ GIR_EraseRootFromParent_Done,
1159 /* 16412 */ // Label 44: @16412
1160 /* 16412 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(16446), // Rule ID 48 //
1161 /* 16417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
1162 /* 16420 */ // MIs[0] dst
1163 /* 16420 */ // No operand predicates
1164 /* 16420 */ // MIs[0] __add_sub_reg_match_0.x
1165 /* 16420 */ // No operand predicates
1166 /* 16420 */ // MIs[0] __add_sub_reg_match_0.tmp
1167 /* 16420 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1168 /* 16424 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1169 /* 16428 */ // MIs[1] src
1170 /* 16428 */ // No operand predicates
1171 /* 16428 */ // MIs[1] __add_sub_reg_match_0.x
1172 /* 16428 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1173 /* 16433 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1174 /* 16438 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1175 /* 16440 */ // Combiner Rule #21: add_sub_reg @ [__add_sub_reg_match_0[0]]
1176 /* 16440 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1177 /* 16445 */ GIR_EraseRootFromParent_Done,
1178 /* 16446 */ // Label 45: @16446
1179 /* 16446 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(16469), // Rule ID 20 //
1180 /* 16451 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1181 /* 16454 */ // MIs[0] dst
1182 /* 16454 */ // No operand predicates
1183 /* 16454 */ // MIs[0] lhs
1184 /* 16454 */ // No operand predicates
1185 /* 16454 */ // MIs[0] Operand 2
1186 /* 16454 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1187 /* 16458 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1188 /* 16463 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[1]]
1189 /* 16463 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1190 /* 16468 */ GIR_EraseRootFromParent_Done,
1191 /* 16469 */ // Label 46: @16469
1192 /* 16469 */ GIM_Reject,
1193 /* 16470 */ // Label 1: @16470
1194 /* 16470 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(16509), // Rule ID 31 //
1195 /* 16475 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1196 /* 16478 */ // MIs[0] dst
1197 /* 16478 */ // No operand predicates
1198 /* 16478 */ // MIs[0] x
1199 /* 16478 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1200 /* 16482 */ // MIs[0] x
1201 /* 16482 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1202 /* 16487 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1203 /* 16490 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1204 /* 16500 */ // Combiner Rule #12: same_val_zero @ [__same_val_zero_match_0[0]]
1205 /* 16500 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1206 /* 16503 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1207 /* 16505 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1208 /* 16508 */ GIR_EraseRootFromParent_Done,
1209 /* 16509 */ // Label 47: @16509
1210 /* 16509 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(16532), // Rule ID 19 //
1211 /* 16514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1212 /* 16517 */ // MIs[0] dst
1213 /* 16517 */ // No operand predicates
1214 /* 16517 */ // MIs[0] lhs
1215 /* 16517 */ // No operand predicates
1216 /* 16517 */ // MIs[0] Operand 2
1217 /* 16517 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1218 /* 16521 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1219 /* 16526 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[0]]
1220 /* 16526 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1221 /* 16531 */ GIR_EraseRootFromParent_Done,
1222 /* 16532 */ // Label 48: @16532
1223 /* 16532 */ GIM_Reject,
1224 /* 16533 */ // Label 2: @16533
1225 /* 16533 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(16573), // Rule ID 40 //
1226 /* 16538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1227 /* 16541 */ // MIs[0] dst
1228 /* 16541 */ // No operand predicates
1229 /* 16541 */ // MIs[0] zero
1230 /* 16541 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1231 /* 16545 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1232 /* 16549 */ // MIs[1] Operand 1
1233 /* 16549 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1234 /* 16560 */ // MIs[0] rhs
1235 /* 16560 */ // No operand predicates
1236 /* 16560 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1237 /* 16565 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1238 /* 16567 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
1239 /* 16567 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1240 /* 16572 */ GIR_EraseRootFromParent_Done,
1241 /* 16573 */ // Label 49: @16573
1242 /* 16573 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(16596), // Rule ID 41 //
1243 /* 16578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1244 /* 16581 */ // MIs[0] dst
1245 /* 16581 */ // No operand predicates
1246 /* 16581 */ // MIs[0] lhs
1247 /* 16581 */ // No operand predicates
1248 /* 16581 */ // MIs[0] zero
1249 /* 16581 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1250 /* 16585 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1251 /* 16590 */ // Combiner Rule #14: binop_right_to_zero
1252 /* 16590 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1253 /* 16595 */ GIR_EraseRootFromParent_Done,
1254 /* 16596 */ // Label 50: @16596
1255 /* 16596 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(16619), // Rule ID 46 //
1256 /* 16601 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
1257 /* 16604 */ // MIs[0] dst
1258 /* 16604 */ // No operand predicates
1259 /* 16604 */ // MIs[0] x
1260 /* 16604 */ // No operand predicates
1261 /* 16604 */ // MIs[0] Operand 2
1262 /* 16604 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
1263 /* 16608 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1264 /* 16613 */ // Combiner Rule #19: right_identity_one_int
1265 /* 16613 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1266 /* 16618 */ GIR_EraseRootFromParent_Done,
1267 /* 16619 */ // Label 51: @16619
1268 /* 16619 */ GIM_Reject,
1269 /* 16620 */ // Label 3: @16620
1270 /* 16620 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(16660), // Rule ID 36 //
1271 /* 16625 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1272 /* 16628 */ // MIs[0] dst
1273 /* 16628 */ // No operand predicates
1274 /* 16628 */ // MIs[0] zero
1275 /* 16628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1276 /* 16632 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1277 /* 16636 */ // MIs[1] Operand 1
1278 /* 16636 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1279 /* 16647 */ // MIs[0] rhs
1280 /* 16647 */ // No operand predicates
1281 /* 16647 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1282 /* 16652 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1283 /* 16654 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
1284 /* 16654 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1285 /* 16659 */ GIR_EraseRootFromParent_Done,
1286 /* 16660 */ // Label 52: @16660
1287 /* 16660 */ GIM_Reject,
1288 /* 16661 */ // Label 4: @16661
1289 /* 16661 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(16701), // Rule ID 37 //
1290 /* 16666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1291 /* 16669 */ // MIs[0] dst
1292 /* 16669 */ // No operand predicates
1293 /* 16669 */ // MIs[0] zero
1294 /* 16669 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1295 /* 16673 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1296 /* 16677 */ // MIs[1] Operand 1
1297 /* 16677 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1298 /* 16688 */ // MIs[0] rhs
1299 /* 16688 */ // No operand predicates
1300 /* 16688 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1301 /* 16693 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1302 /* 16695 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
1303 /* 16695 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1304 /* 16700 */ GIR_EraseRootFromParent_Done,
1305 /* 16701 */ // Label 53: @16701
1306 /* 16701 */ GIM_Reject,
1307 /* 16702 */ // Label 5: @16702
1308 /* 16702 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(16742), // Rule ID 38 //
1309 /* 16707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1310 /* 16710 */ // MIs[0] dst
1311 /* 16710 */ // No operand predicates
1312 /* 16710 */ // MIs[0] zero
1313 /* 16710 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1314 /* 16714 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1315 /* 16718 */ // MIs[1] Operand 1
1316 /* 16718 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1317 /* 16729 */ // MIs[0] rhs
1318 /* 16729 */ // No operand predicates
1319 /* 16729 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1320 /* 16734 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1321 /* 16736 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
1322 /* 16736 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1323 /* 16741 */ GIR_EraseRootFromParent_Done,
1324 /* 16742 */ // Label 54: @16742
1325 /* 16742 */ GIM_Reject,
1326 /* 16743 */ // Label 6: @16743
1327 /* 16743 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(16783), // Rule ID 39 //
1328 /* 16748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1329 /* 16751 */ // MIs[0] dst
1330 /* 16751 */ // No operand predicates
1331 /* 16751 */ // MIs[0] zero
1332 /* 16751 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1333 /* 16755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1334 /* 16759 */ // MIs[1] Operand 1
1335 /* 16759 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1336 /* 16770 */ // MIs[0] rhs
1337 /* 16770 */ // No operand predicates
1338 /* 16770 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1339 /* 16775 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1340 /* 16777 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
1341 /* 16777 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1342 /* 16782 */ GIR_EraseRootFromParent_Done,
1343 /* 16783 */ // Label 55: @16783
1344 /* 16783 */ GIM_Reject,
1345 /* 16784 */ // Label 7: @16784
1346 /* 16784 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(16795), // Rule ID 60 //
1347 /* 16789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
1348 /* 16792 */ // Combiner Rule #31: redundant_and; wip_match_opcode 'G_AND'
1349 /* 16792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1350 /* 16795 */ // Label 56: @16795
1351 /* 16795 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(16819), // Rule ID 29 //
1352 /* 16800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1353 /* 16803 */ // MIs[0] dst
1354 /* 16803 */ // No operand predicates
1355 /* 16803 */ // MIs[0] src
1356 /* 16803 */ // No operand predicates
1357 /* 16803 */ // MIs[0] src
1358 /* 16803 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1359 /* 16808 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1360 /* 16813 */ // Combiner Rule #11: binop_same_val @ [__binop_same_val_match_0[0]]
1361 /* 16813 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1362 /* 16818 */ GIR_EraseRootFromParent_Done,
1363 /* 16819 */ // Label 57: @16819
1364 /* 16819 */ GIM_Reject,
1365 /* 16820 */ // Label 8: @16820
1366 /* 16820 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(16844), // Rule ID 30 //
1367 /* 16825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1368 /* 16828 */ // MIs[0] dst
1369 /* 16828 */ // No operand predicates
1370 /* 16828 */ // MIs[0] src
1371 /* 16828 */ // No operand predicates
1372 /* 16828 */ // MIs[0] src
1373 /* 16828 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1374 /* 16833 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1375 /* 16838 */ // Combiner Rule #11: binop_same_val @ [__binop_same_val_match_0[1]]
1376 /* 16838 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1377 /* 16843 */ GIR_EraseRootFromParent_Done,
1378 /* 16844 */ // Label 58: @16844
1379 /* 16844 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(16867), // Rule ID 21 //
1380 /* 16849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1381 /* 16852 */ // MIs[0] dst
1382 /* 16852 */ // No operand predicates
1383 /* 16852 */ // MIs[0] lhs
1384 /* 16852 */ // No operand predicates
1385 /* 16852 */ // MIs[0] Operand 2
1386 /* 16852 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1387 /* 16856 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1388 /* 16861 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[2]]
1389 /* 16861 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1390 /* 16866 */ GIR_EraseRootFromParent_Done,
1391 /* 16867 */ // Label 59: @16867
1392 /* 16867 */ GIM_Reject,
1393 /* 16868 */ // Label 9: @16868
1394 /* 16868 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(16907), // Rule ID 32 //
1395 /* 16873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1396 /* 16876 */ // MIs[0] dst
1397 /* 16876 */ // No operand predicates
1398 /* 16876 */ // MIs[0] x
1399 /* 16876 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1400 /* 16880 */ // MIs[0] x
1401 /* 16880 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1402 /* 16885 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1403 /* 16888 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1404 /* 16898 */ // Combiner Rule #12: same_val_zero @ [__same_val_zero_match_0[1]]
1405 /* 16898 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1406 /* 16901 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1407 /* 16903 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1408 /* 16906 */ GIR_EraseRootFromParent_Done,
1409 /* 16907 */ // Label 60: @16907
1410 /* 16907 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(16930), // Rule ID 22 //
1411 /* 16912 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1412 /* 16915 */ // MIs[0] dst
1413 /* 16915 */ // No operand predicates
1414 /* 16915 */ // MIs[0] lhs
1415 /* 16915 */ // No operand predicates
1416 /* 16915 */ // MIs[0] Operand 2
1417 /* 16915 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1418 /* 16919 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1419 /* 16924 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[3]]
1420 /* 16924 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1421 /* 16929 */ GIR_EraseRootFromParent_Done,
1422 /* 16930 */ // Label 61: @16930
1423 /* 16930 */ GIM_Reject,
1424 /* 16931 */ // Label 10: @16931
1425 /* 16931 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(16942), // Rule ID 0 //
1426 /* 16936 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
1427 /* 16939 */ // Combiner Rule #0: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
1428 /* 16939 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
1429 /* 16942 */ // Label 62: @16942
1430 /* 16942 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(16953), // Rule ID 1 //
1431 /* 16947 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
1432 /* 16950 */ // Combiner Rule #1: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
1433 /* 16950 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
1434 /* 16953 */ // Label 63: @16953
1435 /* 16953 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(16964), // Rule ID 2 //
1436 /* 16958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
1437 /* 16961 */ // Combiner Rule #2: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
1438 /* 16961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
1439 /* 16964 */ // Label 64: @16964
1440 /* 16964 */ GIM_Reject,
1441 /* 16965 */ // Label 11: @16965
1442 /* 16965 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(16976), // Rule ID 51 //
1443 /* 16970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1444 /* 16973 */ // Combiner Rule #22: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
1445 /* 16973 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1446 /* 16976 */ // Label 65: @16976
1447 /* 16976 */ GIM_Reject,
1448 /* 16977 */ // Label 12: @16977
1449 /* 16977 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(16988), // Rule ID 50 //
1450 /* 16982 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1451 /* 16985 */ // Combiner Rule #22: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
1452 /* 16985 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1453 /* 16988 */ // Label 66: @16988
1454 /* 16988 */ GIM_Reject,
1455 /* 16989 */ // Label 13: @16989
1456 /* 16989 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(17010), // Rule ID 43 //
1457 /* 16994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
1458 /* 16997 */ // MIs[0] dst
1459 /* 16997 */ // No operand predicates
1460 /* 16997 */ // MIs[0] t
1461 /* 16997 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1462 /* 17001 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1463 /* 17005 */ // MIs[1] ptr
1464 /* 17005 */ // No operand predicates
1465 /* 17005 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1466 /* 17007 */ // Combiner Rule #16: i2p_to_p2i
1467 /* 17007 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
1468 /* 17010 */ // Label 67: @17010
1469 /* 17010 */ GIM_Reject,
1470 /* 17011 */ // Label 14: @17011
1471 /* 17011 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(17022), // Rule ID 42 //
1472 /* 17016 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
1473 /* 17019 */ // Combiner Rule #15: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
1474 /* 17019 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
1475 /* 17022 */ // Label 68: @17022
1476 /* 17022 */ GIM_Reject,
1477 /* 17023 */ // Label 15: @17023
1478 /* 17023 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(17055), // Rule ID 55 //
1479 /* 17028 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
1480 /* 17031 */ // MIs[0] dst
1481 /* 17031 */ // No operand predicates
1482 /* 17031 */ // MIs[0] src1
1483 /* 17031 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1484 /* 17035 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1485 /* 17039 */ // MIs[1] src0
1486 /* 17039 */ // No operand predicates
1487 /* 17039 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1488 /* 17043 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1489 /* 17045 */ // Combiner Rule #26: bitcast_bitcast_to_bitcast
1490 /* 17045 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
1491 /* 17048 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1492 /* 17050 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
1493 /* 17054 */ GIR_EraseRootFromParent_Done,
1494 /* 17055 */ // Label 69: @17055
1495 /* 17055 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(17076), // Rule ID 54 //
1496 /* 17060 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
1497 /* 17063 */ // MIs[0] dst
1498 /* 17063 */ // No operand predicates
1499 /* 17063 */ // MIs[0] src1
1500 /* 17063 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1501 /* 17067 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1502 /* 17071 */ // MIs[1] src0
1503 /* 17071 */ // No operand predicates
1504 /* 17071 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1505 /* 17073 */ // Combiner Rule #25: bitcast_bitcast_fold
1506 /* 17073 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1507 /* 17076 */ // Label 70: @17076
1508 /* 17076 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 71*/ GIMT_Encode4(17089), GIMT_Encode2(GIFBS_anonymous_52676), // Rule ID 79 //
1509 /* 17083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
1510 /* 17086 */ // MIs[0] dst
1511 /* 17086 */ // No operand predicates
1512 /* 17086 */ // MIs[0] src
1513 /* 17086 */ // No operand predicates
1514 /* 17086 */ // Combiner Rule #48: d16_load
1515 /* 17086 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
1516 /* 17089 */ // Label 71: @17089
1517 /* 17089 */ GIM_Reject,
1518 /* 17090 */ // Label 16: @17090
1519 /* 17090 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(17101), // Rule ID 44 //
1520 /* 17095 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
1521 /* 17098 */ // Combiner Rule #17: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
1522 /* 17098 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
1523 /* 17101 */ // Label 72: @17101
1524 /* 17101 */ GIM_Try, /*On fail goto*//*Label 73*/ GIMT_Encode4(17112), // Rule ID 63 //
1525 /* 17106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1526 /* 17109 */ // Combiner Rule #32: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
1527 /* 17109 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1528 /* 17112 */ // Label 73: @17112
1529 /* 17112 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(17133), // Rule ID 71 //
1530 /* 17117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
1531 /* 17120 */ // MIs[0] root
1532 /* 17120 */ // No operand predicates
1533 /* 17120 */ // MIs[0] second
1534 /* 17120 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1535 /* 17124 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1536 /* 17128 */ // MIs[1] src
1537 /* 17128 */ // No operand predicates
1538 /* 17128 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1539 /* 17130 */ // Combiner Rule #40: anyext_of_anyext
1540 /* 17130 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1541 /* 17133 */ // Label 74: @17133
1542 /* 17133 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(17154), // Rule ID 73 //
1543 /* 17138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
1544 /* 17141 */ // MIs[0] root
1545 /* 17141 */ // No operand predicates
1546 /* 17141 */ // MIs[0] second
1547 /* 17141 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1548 /* 17145 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1549 /* 17149 */ // MIs[1] src
1550 /* 17149 */ // No operand predicates
1551 /* 17149 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1552 /* 17151 */ // Combiner Rule #42: anyext_of_sext
1553 /* 17151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1554 /* 17154 */ // Label 75: @17154
1555 /* 17154 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(17175), // Rule ID 72 //
1556 /* 17159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
1557 /* 17162 */ // MIs[0] root
1558 /* 17162 */ // No operand predicates
1559 /* 17162 */ // MIs[0] second
1560 /* 17162 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1561 /* 17166 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1562 /* 17170 */ // MIs[1] src
1563 /* 17170 */ // No operand predicates
1564 /* 17170 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1565 /* 17172 */ // Combiner Rule #41: anyext_of_zext
1566 /* 17172 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1567 /* 17175 */ // Label 76: @17175
1568 /* 17175 */ GIM_Reject,
1569 /* 17176 */ // Label 17: @17176
1570 /* 17176 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(17187), // Rule ID 52 //
1571 /* 17181 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
1572 /* 17184 */ // Combiner Rule #23: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
1573 /* 17184 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1574 /* 17187 */ // Label 77: @17187
1575 /* 17187 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(17198), // Rule ID 53 //
1576 /* 17192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
1577 /* 17195 */ // Combiner Rule #24: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
1578 /* 17195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1579 /* 17198 */ // Label 78: @17198
1580 /* 17198 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(17219), // Rule ID 66 //
1581 /* 17203 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
1582 /* 17206 */ // MIs[0] root
1583 /* 17206 */ // No operand predicates
1584 /* 17206 */ // MIs[0] ext
1585 /* 17206 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1586 /* 17210 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1587 /* 17214 */ // MIs[1] src
1588 /* 17214 */ // No operand predicates
1589 /* 17214 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1590 /* 17216 */ // Combiner Rule #35: truncate_of_anyext
1591 /* 17216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1592 /* 17219 */ // Label 79: @17219
1593 /* 17219 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(17240), // Rule ID 65 //
1594 /* 17224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
1595 /* 17227 */ // MIs[0] root
1596 /* 17227 */ // No operand predicates
1597 /* 17227 */ // MIs[0] ext
1598 /* 17227 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1599 /* 17231 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1600 /* 17235 */ // MIs[1] src
1601 /* 17235 */ // No operand predicates
1602 /* 17235 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1603 /* 17237 */ // Combiner Rule #34: truncate_of_sext
1604 /* 17237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1605 /* 17240 */ // Label 80: @17240
1606 /* 17240 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(17261), // Rule ID 64 //
1607 /* 17245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
1608 /* 17248 */ // MIs[0] root
1609 /* 17248 */ // No operand predicates
1610 /* 17248 */ // MIs[0] ext
1611 /* 17248 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1612 /* 17252 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1613 /* 17256 */ // MIs[1] src
1614 /* 17256 */ // No operand predicates
1615 /* 17256 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1616 /* 17258 */ // Combiner Rule #33: truncate_of_zext
1617 /* 17258 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1618 /* 17261 */ // Label 81: @17261
1619 /* 17261 */ GIM_Reject,
1620 /* 17262 */ // Label 18: @17262
1621 /* 17262 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(17273), // Rule ID 62 //
1622 /* 17267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1623 /* 17270 */ // Combiner Rule #32: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
1624 /* 17270 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1625 /* 17273 */ // Label 82: @17273
1626 /* 17273 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(17294), // Rule ID 70 //
1627 /* 17278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
1628 /* 17281 */ // MIs[0] root
1629 /* 17281 */ // No operand predicates
1630 /* 17281 */ // MIs[0] second
1631 /* 17281 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1632 /* 17285 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1633 /* 17289 */ // MIs[1] src
1634 /* 17289 */ // No operand predicates
1635 /* 17289 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1636 /* 17291 */ // Combiner Rule #39: sext_of_anyext
1637 /* 17291 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1638 /* 17294 */ // Label 83: @17294
1639 /* 17294 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(17315), // Rule ID 69 //
1640 /* 17299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
1641 /* 17302 */ // MIs[0] root
1642 /* 17302 */ // No operand predicates
1643 /* 17302 */ // MIs[0] second
1644 /* 17302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1645 /* 17306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1646 /* 17310 */ // MIs[1] src
1647 /* 17310 */ // No operand predicates
1648 /* 17310 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1649 /* 17312 */ // Combiner Rule #38: sext_of_sext
1650 /* 17312 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1651 /* 17315 */ // Label 84: @17315
1652 /* 17315 */ GIM_Try, /*On fail goto*//*Label 85*/ GIMT_Encode4(17336), // Rule ID 75 //
1653 /* 17320 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
1654 /* 17323 */ // MIs[0] root
1655 /* 17323 */ // No operand predicates
1656 /* 17323 */ // MIs[0] src
1657 /* 17323 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1658 /* 17327 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
1659 /* 17331 */ // MIs[1] x
1660 /* 17331 */ // No operand predicates
1661 /* 17331 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1662 /* 17333 */ // Combiner Rule #44: sext_trunc
1663 /* 17333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
1664 /* 17336 */ // Label 85: @17336
1665 /* 17336 */ GIM_Reject,
1666 /* 17337 */ // Label 19: @17337
1667 /* 17337 */ GIM_Try, /*On fail goto*//*Label 86*/ GIMT_Encode4(17358), // Rule ID 74 //
1668 /* 17342 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
1669 /* 17345 */ // MIs[0] dst
1670 /* 17345 */ // No operand predicates
1671 /* 17345 */ // MIs[0] x
1672 /* 17345 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1673 /* 17349 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
1674 /* 17353 */ // MIs[1] src
1675 /* 17353 */ // No operand predicates
1676 /* 17353 */ // MIs[1] a
1677 /* 17353 */ // No operand predicates
1678 /* 17353 */ // MIs[0] b
1679 /* 17353 */ // No operand predicates
1680 /* 17353 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1681 /* 17355 */ // Combiner Rule #43: sext_inreg_of_sext_inreg
1682 /* 17355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
1683 /* 17358 */ // Label 86: @17358
1684 /* 17358 */ GIM_Reject,
1685 /* 17359 */ // Label 20: @17359
1686 /* 17359 */ GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(17370), // Rule ID 3 //
1687 /* 17364 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
1688 /* 17367 */ // Combiner Rule #3: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
1689 /* 17367 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
1690 /* 17370 */ // Label 87: @17370
1691 /* 17370 */ GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(17381), // Rule ID 61 //
1692 /* 17375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1693 /* 17378 */ // Combiner Rule #32: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
1694 /* 17378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1695 /* 17381 */ // Label 88: @17381
1696 /* 17381 */ GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(17402), // Rule ID 68 //
1697 /* 17386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
1698 /* 17389 */ // MIs[0] root
1699 /* 17389 */ // No operand predicates
1700 /* 17389 */ // MIs[0] second
1701 /* 17389 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1702 /* 17393 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1703 /* 17397 */ // MIs[1] src
1704 /* 17397 */ // No operand predicates
1705 /* 17397 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1706 /* 17399 */ // Combiner Rule #37: zext_of_anyext
1707 /* 17399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1708 /* 17402 */ // Label 89: @17402
1709 /* 17402 */ GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(17423), // Rule ID 67 //
1710 /* 17407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1711 /* 17410 */ // MIs[0] root
1712 /* 17410 */ // No operand predicates
1713 /* 17410 */ // MIs[0] second
1714 /* 17410 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1715 /* 17414 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1716 /* 17418 */ // MIs[1] src
1717 /* 17418 */ // No operand predicates
1718 /* 17418 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1719 /* 17420 */ // Combiner Rule #36: zext_of_zext
1720 /* 17420 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1721 /* 17423 */ // Label 90: @17423
1722 /* 17423 */ GIM_Reject,
1723 /* 17424 */ // Label 21: @17424
1724 /* 17424 */ GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(17464), // Rule ID 33 //
1725 /* 17429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1726 /* 17432 */ // MIs[0] dst
1727 /* 17432 */ // No operand predicates
1728 /* 17432 */ // MIs[0] zero
1729 /* 17432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1730 /* 17436 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1731 /* 17440 */ // MIs[1] Operand 1
1732 /* 17440 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1733 /* 17451 */ // MIs[0] rhs
1734 /* 17451 */ // No operand predicates
1735 /* 17451 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1736 /* 17456 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1737 /* 17458 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
1738 /* 17458 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1739 /* 17463 */ GIR_EraseRootFromParent_Done,
1740 /* 17464 */ // Label 91: @17464
1741 /* 17464 */ GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(17485), // Rule ID 78 //
1742 /* 17469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
1743 /* 17472 */ // MIs[0] dst
1744 /* 17472 */ // No operand predicates
1745 /* 17472 */ // MIs[0] src
1746 /* 17472 */ // No operand predicates
1747 /* 17472 */ // MIs[0] amt
1748 /* 17472 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1749 /* 17476 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1750 /* 17480 */ // MIs[1] amtsrc
1751 /* 17480 */ // No operand predicates
1752 /* 17480 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1753 /* 17482 */ // Combiner Rule #47: canonicalize_zext_shl
1754 /* 17482 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1755 /* 17485 */ // Label 92: @17485
1756 /* 17485 */ GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(17508), // Rule ID 23 //
1757 /* 17490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1758 /* 17493 */ // MIs[0] dst
1759 /* 17493 */ // No operand predicates
1760 /* 17493 */ // MIs[0] lhs
1761 /* 17493 */ // No operand predicates
1762 /* 17493 */ // MIs[0] Operand 2
1763 /* 17493 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1764 /* 17497 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1765 /* 17502 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[4]]
1766 /* 17502 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1767 /* 17507 */ GIR_EraseRootFromParent_Done,
1768 /* 17508 */ // Label 93: @17508
1769 /* 17508 */ GIM_Reject,
1770 /* 17509 */ // Label 22: @17509
1771 /* 17509 */ GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(17549), // Rule ID 34 //
1772 /* 17514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1773 /* 17517 */ // MIs[0] dst
1774 /* 17517 */ // No operand predicates
1775 /* 17517 */ // MIs[0] zero
1776 /* 17517 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1777 /* 17521 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1778 /* 17525 */ // MIs[1] Operand 1
1779 /* 17525 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1780 /* 17536 */ // MIs[0] rhs
1781 /* 17536 */ // No operand predicates
1782 /* 17536 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1783 /* 17541 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1784 /* 17543 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
1785 /* 17543 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1786 /* 17548 */ GIR_EraseRootFromParent_Done,
1787 /* 17549 */ // Label 94: @17549
1788 /* 17549 */ GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(17570), // Rule ID 76 //
1789 /* 17554 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
1790 /* 17557 */ // MIs[0] dst
1791 /* 17557 */ // No operand predicates
1792 /* 17557 */ // MIs[0] src
1793 /* 17557 */ // No operand predicates
1794 /* 17557 */ // MIs[0] amt
1795 /* 17557 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1796 /* 17561 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1797 /* 17565 */ // MIs[1] amtsrc
1798 /* 17565 */ // No operand predicates
1799 /* 17565 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1800 /* 17567 */ // Combiner Rule #45: canonicalize_zext_lshr
1801 /* 17567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1802 /* 17570 */ // Label 95: @17570
1803 /* 17570 */ GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(17593), // Rule ID 25 //
1804 /* 17575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1805 /* 17578 */ // MIs[0] dst
1806 /* 17578 */ // No operand predicates
1807 /* 17578 */ // MIs[0] lhs
1808 /* 17578 */ // No operand predicates
1809 /* 17578 */ // MIs[0] Operand 2
1810 /* 17578 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1811 /* 17582 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1812 /* 17587 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[6]]
1813 /* 17587 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1814 /* 17592 */ GIR_EraseRootFromParent_Done,
1815 /* 17593 */ // Label 96: @17593
1816 /* 17593 */ GIM_Reject,
1817 /* 17594 */ // Label 23: @17594
1818 /* 17594 */ GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(17634), // Rule ID 35 //
1819 /* 17599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1820 /* 17602 */ // MIs[0] dst
1821 /* 17602 */ // No operand predicates
1822 /* 17602 */ // MIs[0] zero
1823 /* 17602 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1824 /* 17606 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1825 /* 17610 */ // MIs[1] Operand 1
1826 /* 17610 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1827 /* 17621 */ // MIs[0] rhs
1828 /* 17621 */ // No operand predicates
1829 /* 17621 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1830 /* 17626 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1831 /* 17628 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
1832 /* 17628 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1833 /* 17633 */ GIR_EraseRootFromParent_Done,
1834 /* 17634 */ // Label 97: @17634
1835 /* 17634 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(17655), // Rule ID 77 //
1836 /* 17639 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
1837 /* 17642 */ // MIs[0] dst
1838 /* 17642 */ // No operand predicates
1839 /* 17642 */ // MIs[0] src
1840 /* 17642 */ // No operand predicates
1841 /* 17642 */ // MIs[0] amt
1842 /* 17642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1843 /* 17646 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1844 /* 17650 */ // MIs[1] amtsrc
1845 /* 17650 */ // No operand predicates
1846 /* 17650 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1847 /* 17652 */ // Combiner Rule #46: canonicalize_zext_ashr
1848 /* 17652 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1849 /* 17655 */ // Label 98: @17655
1850 /* 17655 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(17678), // Rule ID 24 //
1851 /* 17660 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1852 /* 17663 */ // MIs[0] dst
1853 /* 17663 */ // No operand predicates
1854 /* 17663 */ // MIs[0] lhs
1855 /* 17663 */ // No operand predicates
1856 /* 17663 */ // MIs[0] Operand 2
1857 /* 17663 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1858 /* 17667 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1859 /* 17672 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[5]]
1860 /* 17672 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1861 /* 17677 */ GIR_EraseRootFromParent_Done,
1862 /* 17678 */ // Label 99: @17678
1863 /* 17678 */ GIM_Reject,
1864 /* 17679 */ // Label 24: @17679
1865 /* 17679 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(17702), // Rule ID 28 //
1866 /* 17684 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1867 /* 17687 */ // MIs[0] dst
1868 /* 17687 */ // No operand predicates
1869 /* 17687 */ // MIs[0] lhs
1870 /* 17687 */ // No operand predicates
1871 /* 17687 */ // MIs[0] Operand 2
1872 /* 17687 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1873 /* 17691 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1874 /* 17696 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[9]]
1875 /* 17696 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1876 /* 17701 */ GIR_EraseRootFromParent_Done,
1877 /* 17702 */ // Label 100: @17702
1878 /* 17702 */ GIM_Reject,
1879 /* 17703 */ // Label 25: @17703
1880 /* 17703 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(17726), // Rule ID 27 //
1881 /* 17708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1882 /* 17711 */ // MIs[0] dst
1883 /* 17711 */ // No operand predicates
1884 /* 17711 */ // MIs[0] lhs
1885 /* 17711 */ // No operand predicates
1886 /* 17711 */ // MIs[0] Operand 2
1887 /* 17711 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1888 /* 17715 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1889 /* 17720 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[8]]
1890 /* 17720 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1891 /* 17725 */ GIR_EraseRootFromParent_Done,
1892 /* 17726 */ // Label 101: @17726
1893 /* 17726 */ GIM_Reject,
1894 /* 17727 */ // Label 26: @17727
1895 /* 17727 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(17738), // Rule ID 18 //
1896 /* 17732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
1897 /* 17735 */ // Combiner Rule #9: select_same_val; wip_match_opcode 'G_SELECT'
1898 /* 17735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
1899 /* 17738 */ // Label 102: @17738
1900 /* 17738 */ GIM_Reject,
1901 /* 17739 */ // Label 27: @17739
1902 /* 17739 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(17762), // Rule ID 57 //
1903 /* 17744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
1904 /* 17747 */ // MIs[0] dst
1905 /* 17747 */ // No operand predicates
1906 /* 17747 */ // MIs[0] x
1907 /* 17747 */ // No operand predicates
1908 /* 17747 */ // MIs[0] y
1909 /* 17747 */ // No operand predicates
1910 /* 17747 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
1911 /* 17751 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1912 /* 17756 */ // Combiner Rule #28: right_identity_neg_zero_fp
1913 /* 17756 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1914 /* 17761 */ GIR_EraseRootFromParent_Done,
1915 /* 17762 */ // Label 103: @17762
1916 /* 17762 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(17791), // Rule ID 58 //
1917 /* 17767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
1918 /* 17770 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
1919 /* 17776 */ // MIs[0] dst
1920 /* 17776 */ // No operand predicates
1921 /* 17776 */ // MIs[0] x
1922 /* 17776 */ // No operand predicates
1923 /* 17776 */ // MIs[0] y
1924 /* 17776 */ // No operand predicates
1925 /* 17776 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
1926 /* 17780 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1927 /* 17785 */ // Combiner Rule #29: right_identity_neg_zero_fp_nsz
1928 /* 17785 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1929 /* 17790 */ GIR_EraseRootFromParent_Done,
1930 /* 17791 */ // Label 104: @17791
1931 /* 17791 */ GIM_Reject,
1932 /* 17792 */ // Label 28: @17792
1933 /* 17792 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(17815), // Rule ID 47 //
1934 /* 17797 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
1935 /* 17800 */ // MIs[0] dst
1936 /* 17800 */ // No operand predicates
1937 /* 17800 */ // MIs[0] x
1938 /* 17800 */ // No operand predicates
1939 /* 17800 */ // MIs[0] y
1940 /* 17800 */ // No operand predicates
1941 /* 17800 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
1942 /* 17804 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1943 /* 17809 */ // Combiner Rule #20: right_identity_one_fp
1944 /* 17809 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1945 /* 17814 */ GIR_EraseRootFromParent_Done,
1946 /* 17815 */ // Label 105: @17815
1947 /* 17815 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(17835), // Rule ID 59 //
1948 /* 17820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1949 /* 17823 */ // MIs[0] dst
1950 /* 17823 */ // No operand predicates
1951 /* 17823 */ // MIs[0] x
1952 /* 17823 */ // No operand predicates
1953 /* 17823 */ // MIs[0] y
1954 /* 17823 */ // No operand predicates
1955 /* 17823 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
1956 /* 17827 */ // Combiner Rule #30: right_identity_neg_one_fp
1957 /* 17827 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
1958 /* 17830 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1959 /* 17832 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
1960 /* 17834 */ GIR_EraseRootFromParent_Done,
1961 /* 17835 */ // Label 106: @17835
1962 /* 17835 */ GIM_Reject,
1963 /* 17836 */ // Label 29: @17836
1964 /* 17836 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(17865), // Rule ID 45 //
1965 /* 17841 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
1966 /* 17844 */ // MIs[0] dst
1967 /* 17844 */ // No operand predicates
1968 /* 17844 */ // MIs[0] t
1969 /* 17844 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1970 /* 17848 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
1971 /* 17852 */ // MIs[1] src
1972 /* 17852 */ // No operand predicates
1973 /* 17852 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1974 /* 17857 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1975 /* 17859 */ // Combiner Rule #18: fneg_fneg_fold
1976 /* 17859 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1977 /* 17864 */ GIR_EraseRootFromParent_Done,
1978 /* 17865 */ // Label 107: @17865
1979 /* 17865 */ GIM_Reject,
1980 /* 17866 */ // Label 30: @17866
1981 /* 17866 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(17887), // Rule ID 56 //
1982 /* 17871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
1983 /* 17874 */ // MIs[0] dst
1984 /* 17874 */ // No operand predicates
1985 /* 17874 */ // MIs[0] src1
1986 /* 17874 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1987 /* 17878 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
1988 /* 17882 */ // MIs[1] src0
1989 /* 17882 */ // No operand predicates
1990 /* 17882 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1991 /* 17884 */ // Combiner Rule #27: fptrunc_fpext_fold
1992 /* 17884 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1993 /* 17887 */ // Label 108: @17887
1994 /* 17887 */ GIM_Reject,
1995 /* 17888 */ // Label 31: @17888
1996 /* 17888 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(17899), // Rule ID 10 //
1997 /* 17893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
1998 /* 17896 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMINNUM'
1999 /* 17896 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2000 /* 17899 */ // Label 109: @17899
2001 /* 17899 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(17910), // Rule ID 14 //
2002 /* 17904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2003 /* 17907 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMINNUM'
2004 /* 17907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2005 /* 17910 */ // Label 110: @17910
2006 /* 17910 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(17921), // Rule ID 85 //
2007 /* 17915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
2008 /* 17918 */ // MIs[0] dst
2009 /* 17918 */ // No operand predicates
2010 /* 17918 */ // MIs[0] lhs
2011 /* 17918 */ // No operand predicates
2012 /* 17918 */ // MIs[0] rhs
2013 /* 17918 */ // No operand predicates
2014 /* 17918 */ // Combiner Rule #54: fmin_to_minmax3
2015 /* 17918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2016 /* 17921 */ // Label 111: @17921
2017 /* 17921 */ GIM_Reject,
2018 /* 17922 */ // Label 32: @17922
2019 /* 17922 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(17933), // Rule ID 9 //
2020 /* 17927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2021 /* 17930 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMAXNUM'
2022 /* 17930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2023 /* 17933 */ // Label 112: @17933
2024 /* 17933 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(17944), // Rule ID 13 //
2025 /* 17938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2026 /* 17941 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMAXNUM'
2027 /* 17941 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2028 /* 17944 */ // Label 113: @17944
2029 /* 17944 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(17955), // Rule ID 84 //
2030 /* 17949 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
2031 /* 17952 */ // MIs[0] dst
2032 /* 17952 */ // No operand predicates
2033 /* 17952 */ // MIs[0] lhs
2034 /* 17952 */ // No operand predicates
2035 /* 17952 */ // MIs[0] rhs
2036 /* 17952 */ // No operand predicates
2037 /* 17952 */ // Combiner Rule #53: fmax_to_minmax3
2038 /* 17952 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2039 /* 17955 */ // Label 114: @17955
2040 /* 17955 */ GIM_Reject,
2041 /* 17956 */ // Label 33: @17956
2042 /* 17956 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(17967), // Rule ID 12 //
2043 /* 17961 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2044 /* 17964 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMINNUM_IEEE'
2045 /* 17964 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2046 /* 17967 */ // Label 115: @17967
2047 /* 17967 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(17978), // Rule ID 16 //
2048 /* 17972 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2049 /* 17975 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMINNUM_IEEE'
2050 /* 17975 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2051 /* 17978 */ // Label 116: @17978
2052 /* 17978 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(17989), // Rule ID 89 //
2053 /* 17983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
2054 /* 17986 */ // MIs[0] dst
2055 /* 17986 */ // No operand predicates
2056 /* 17986 */ // MIs[0] lhs
2057 /* 17986 */ // No operand predicates
2058 /* 17986 */ // MIs[0] rhs
2059 /* 17986 */ // No operand predicates
2060 /* 17986 */ // Combiner Rule #58: fmin_ieee_to_minmax3
2061 /* 17986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2062 /* 17989 */ // Label 117: @17989
2063 /* 17989 */ GIM_Reject,
2064 /* 17990 */ // Label 34: @17990
2065 /* 17990 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(18001), // Rule ID 11 //
2066 /* 17995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2067 /* 17998 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMAXNUM_IEEE'
2068 /* 17998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2069 /* 18001 */ // Label 118: @18001
2070 /* 18001 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(18012), // Rule ID 15 //
2071 /* 18006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2072 /* 18009 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMAXNUM_IEEE'
2073 /* 18009 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2074 /* 18012 */ // Label 119: @18012
2075 /* 18012 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(18023), // Rule ID 88 //
2076 /* 18017 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
2077 /* 18020 */ // MIs[0] dst
2078 /* 18020 */ // No operand predicates
2079 /* 18020 */ // MIs[0] lhs
2080 /* 18020 */ // No operand predicates
2081 /* 18020 */ // MIs[0] rhs
2082 /* 18020 */ // No operand predicates
2083 /* 18020 */ // Combiner Rule #57: fmax_ieee_to_minmax3
2084 /* 18020 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2085 /* 18023 */ // Label 120: @18023
2086 /* 18023 */ GIM_Reject,
2087 /* 18024 */ // Label 35: @18024
2088 /* 18024 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(18035), // Rule ID 87 //
2089 /* 18029 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
2090 /* 18032 */ // MIs[0] dst
2091 /* 18032 */ // No operand predicates
2092 /* 18032 */ // MIs[0] lhs
2093 /* 18032 */ // No operand predicates
2094 /* 18032 */ // MIs[0] rhs
2095 /* 18032 */ // No operand predicates
2096 /* 18032 */ // Combiner Rule #56: fminimum_to_minmax3
2097 /* 18032 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2098 /* 18035 */ // Label 121: @18035
2099 /* 18035 */ GIM_Reject,
2100 /* 18036 */ // Label 36: @18036
2101 /* 18036 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(18047), // Rule ID 86 //
2102 /* 18041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
2103 /* 18044 */ // MIs[0] dst
2104 /* 18044 */ // No operand predicates
2105 /* 18044 */ // MIs[0] lhs
2106 /* 18044 */ // No operand predicates
2107 /* 18044 */ // MIs[0] rhs
2108 /* 18044 */ // No operand predicates
2109 /* 18044 */ // Combiner Rule #55: fmaximum_to_minmax3
2110 /* 18044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2111 /* 18047 */ // Label 122: @18047
2112 /* 18047 */ GIM_Reject,
2113 /* 18048 */ // Label 37: @18048
2114 /* 18048 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(18059), // Rule ID 8 //
2115 /* 18053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
2116 /* 18056 */ // Combiner Rule #5: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
2117 /* 18056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
2118 /* 18059 */ // Label 123: @18059
2119 /* 18059 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(18082), // Rule ID 26 //
2120 /* 18064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
2121 /* 18067 */ // MIs[0] dst
2122 /* 18067 */ // No operand predicates
2123 /* 18067 */ // MIs[0] lhs
2124 /* 18067 */ // No operand predicates
2125 /* 18067 */ // MIs[0] Operand 2
2126 /* 18067 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2127 /* 18071 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2128 /* 18076 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[7]]
2129 /* 18076 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2130 /* 18081 */ GIR_EraseRootFromParent_Done,
2131 /* 18082 */ // Label 124: @18082
2132 /* 18082 */ GIM_Reject,
2133 /* 18083 */ // Label 38: @18083
2134 /* 18083 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(18094), // Rule ID 5 //
2135 /* 18088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2136 /* 18091 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_SMIN'
2137 /* 18091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2138 /* 18094 */ // Label 125: @18094
2139 /* 18094 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(18105), // Rule ID 81 //
2140 /* 18099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
2141 /* 18102 */ // MIs[0] dst
2142 /* 18102 */ // No operand predicates
2143 /* 18102 */ // MIs[0] lhs
2144 /* 18102 */ // No operand predicates
2145 /* 18102 */ // MIs[0] rhs
2146 /* 18102 */ // No operand predicates
2147 /* 18102 */ // Combiner Rule #50: smin_to_minmax3
2148 /* 18102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2149 /* 18105 */ // Label 126: @18105
2150 /* 18105 */ GIM_Reject,
2151 /* 18106 */ // Label 39: @18106
2152 /* 18106 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(18117), // Rule ID 4 //
2153 /* 18111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2154 /* 18114 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_SMAX'
2155 /* 18114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2156 /* 18117 */ // Label 127: @18117
2157 /* 18117 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(18128), // Rule ID 80 //
2158 /* 18122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
2159 /* 18125 */ // MIs[0] dst
2160 /* 18125 */ // No operand predicates
2161 /* 18125 */ // MIs[0] lhs
2162 /* 18125 */ // No operand predicates
2163 /* 18125 */ // MIs[0] rhs
2164 /* 18125 */ // No operand predicates
2165 /* 18125 */ // Combiner Rule #49: smax_to_minmax3
2166 /* 18125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2167 /* 18128 */ // Label 128: @18128
2168 /* 18128 */ GIM_Reject,
2169 /* 18129 */ // Label 40: @18129
2170 /* 18129 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(18140), // Rule ID 7 //
2171 /* 18134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2172 /* 18137 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_UMIN'
2173 /* 18137 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2174 /* 18140 */ // Label 129: @18140
2175 /* 18140 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(18151), // Rule ID 83 //
2176 /* 18145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
2177 /* 18148 */ // MIs[0] dst
2178 /* 18148 */ // No operand predicates
2179 /* 18148 */ // MIs[0] lhs
2180 /* 18148 */ // No operand predicates
2181 /* 18148 */ // MIs[0] rhs
2182 /* 18148 */ // No operand predicates
2183 /* 18148 */ // Combiner Rule #52: umin_to_minmax3
2184 /* 18148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2185 /* 18151 */ // Label 130: @18151
2186 /* 18151 */ GIM_Reject,
2187 /* 18152 */ // Label 41: @18152
2188 /* 18152 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(18163), // Rule ID 6 //
2189 /* 18157 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2190 /* 18160 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_UMAX'
2191 /* 18160 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2192 /* 18163 */ // Label 131: @18163
2193 /* 18163 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(18174), // Rule ID 82 //
2194 /* 18168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
2195 /* 18171 */ // MIs[0] dst
2196 /* 18171 */ // No operand predicates
2197 /* 18171 */ // MIs[0] lhs
2198 /* 18171 */ // No operand predicates
2199 /* 18171 */ // MIs[0] rhs
2200 /* 18171 */ // No operand predicates
2201 /* 18171 */ // Combiner Rule #51: umax_to_minmax3
2202 /* 18171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2203 /* 18174 */ // Label 132: @18174
2204 /* 18174 */ GIM_Reject,
2205 /* 18175 */ // Label 42: @18175
2206 /* 18175 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(18186), // Rule ID 17 //
2207 /* 18180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2208 /* 18183 */ // Combiner Rule #8: fmed3_intrinsic_to_clamp; wip_match_opcode 'G_AMDGPU_FMED3'
2209 /* 18183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
2210 /* 18186 */ // Label 133: @18186
2211 /* 18186 */ GIM_Reject,
2212 /* 18187 */ // Label 43: @18187
2213 /* 18187 */ GIM_Reject,
2214 /* 18188 */ }; // Size: 18188 bytes
2215 return MatchTable0;
2216}
2217#undef GIMT_Encode2
2218#undef GIMT_Encode4
2219#undef GIMT_Encode8
2220
2221
2222#endif // GET_GICOMBINER_IMPL
2223
2224#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
2225
2226AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
2227AvailableFunctionFeatures()
2228
2229#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
2230
2231#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
2232
2233, State(0),
2234ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
2235
2236#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
2237
2238