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_52149Bit = 0,
583};
584
585PredicateBitset AMDGPURegBankCombinerImpl::
586computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
587 PredicateBitset Features{};
588 if (Subtarget->d16PreservesUnusedBits())
589 Features.set(Feature_anonymous_52149Bit);
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_52149,
606};
607constexpr static PredicateBitset FeatureBitsets[] {
608 {}, // GIFBS_Invalid
609 {Feature_anonymous_52149Bit, },
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(4145), /*)*//*default:*//*Label 43*/ GIMT_Encode4(18179),
1097 /* 10 */ /*TargetOpcode::G_ADD*//*Label 0*/ GIMT_Encode4(16370),
1098 /* 14 */ /*TargetOpcode::G_SUB*//*Label 1*/ GIMT_Encode4(16462),
1099 /* 18 */ /*TargetOpcode::G_MUL*//*Label 2*/ GIMT_Encode4(16525),
1100 /* 22 */ /*TargetOpcode::G_SDIV*//*Label 3*/ GIMT_Encode4(16612),
1101 /* 26 */ /*TargetOpcode::G_UDIV*//*Label 4*/ GIMT_Encode4(16653),
1102 /* 30 */ /*TargetOpcode::G_SREM*//*Label 5*/ GIMT_Encode4(16694),
1103 /* 34 */ /*TargetOpcode::G_UREM*//*Label 6*/ GIMT_Encode4(16735), GIMT_Encode4(0), GIMT_Encode4(0),
1104 /* 46 */ /*TargetOpcode::G_AND*//*Label 7*/ GIMT_Encode4(16776),
1105 /* 50 */ /*TargetOpcode::G_OR*//*Label 8*/ GIMT_Encode4(16812),
1106 /* 54 */ /*TargetOpcode::G_XOR*//*Label 9*/ GIMT_Encode4(16860), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(16923), GIMT_Encode4(0), GIMT_Encode4(0),
1108 /* 122 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 11*/ GIMT_Encode4(16957),
1109 /* 126 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 12*/ GIMT_Encode4(16969), GIMT_Encode4(0),
1110 /* 134 */ /*TargetOpcode::G_PTRTOINT*//*Label 13*/ GIMT_Encode4(16981),
1111 /* 138 */ /*TargetOpcode::G_INTTOPTR*//*Label 14*/ GIMT_Encode4(17003),
1112 /* 142 */ /*TargetOpcode::G_BITCAST*//*Label 15*/ GIMT_Encode4(17015), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(17082),
1114 /* 366 */ /*TargetOpcode::G_TRUNC*//*Label 17*/ GIMT_Encode4(17168), 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(17254),
1116 /* 402 */ /*TargetOpcode::G_SEXT_INREG*//*Label 19*/ GIMT_Encode4(17329),
1117 /* 406 */ /*TargetOpcode::G_ZEXT*//*Label 20*/ GIMT_Encode4(17351),
1118 /* 410 */ /*TargetOpcode::G_SHL*//*Label 21*/ GIMT_Encode4(17416),
1119 /* 414 */ /*TargetOpcode::G_LSHR*//*Label 22*/ GIMT_Encode4(17501),
1120 /* 418 */ /*TargetOpcode::G_ASHR*//*Label 23*/ GIMT_Encode4(17586), GIMT_Encode4(0), GIMT_Encode4(0),
1121 /* 430 */ /*TargetOpcode::G_ROTR*//*Label 24*/ GIMT_Encode4(17671),
1122 /* 434 */ /*TargetOpcode::G_ROTL*//*Label 25*/ GIMT_Encode4(17695), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
1123 /* 454 */ /*TargetOpcode::G_SELECT*//*Label 26*/ GIMT_Encode4(17719), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(17731), GIMT_Encode4(0),
1125 /* 570 */ /*TargetOpcode::G_FMUL*//*Label 28*/ GIMT_Encode4(17784), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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(17828), GIMT_Encode4(0),
1127 /* 642 */ /*TargetOpcode::G_FPTRUNC*//*Label 30*/ GIMT_Encode4(17858), GIMT_Encode4(0), GIMT_Encode4(0), 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(17880),
1129 /* 690 */ /*TargetOpcode::G_FMAXNUM*//*Label 32*/ GIMT_Encode4(17914),
1130 /* 694 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 33*/ GIMT_Encode4(17948),
1131 /* 698 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 34*/ GIMT_Encode4(17982),
1132 /* 702 */ /*TargetOpcode::G_FMINIMUM*//*Label 35*/ GIMT_Encode4(18016),
1133 /* 706 */ /*TargetOpcode::G_FMAXIMUM*//*Label 36*/ GIMT_Encode4(18028), GIMT_Encode4(0), GIMT_Encode4(0), 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(18040), GIMT_Encode4(0),
1135 /* 758 */ /*TargetOpcode::G_SMIN*//*Label 38*/ GIMT_Encode4(18075),
1136 /* 762 */ /*TargetOpcode::G_SMAX*//*Label 39*/ GIMT_Encode4(18098),
1137 /* 766 */ /*TargetOpcode::G_UMIN*//*Label 40*/ GIMT_Encode4(18121),
1138 /* 770 */ /*TargetOpcode::G_UMAX*//*Label 41*/ GIMT_Encode4(18144), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), 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 /* 16366 */ /*AMDGPU::G_AMDGPU_FMED3*//*Label 42*/ GIMT_Encode4(18167),
1140 /* 16370 */ // Label 0: @16370
1141 /* 16370 */ GIM_Try, /*On fail goto*//*Label 44*/ GIMT_Encode4(16404), // Rule ID 49 //
1142 /* 16375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
1143 /* 16378 */ // MIs[0] dst
1144 /* 16378 */ // No operand predicates
1145 /* 16378 */ // MIs[0] __add_sub_reg_match_0.tmp
1146 /* 16378 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1147 /* 16382 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1148 /* 16386 */ // MIs[1] src
1149 /* 16386 */ // No operand predicates
1150 /* 16386 */ // MIs[1] __add_sub_reg_match_0.x
1151 /* 16386 */ // No operand predicates
1152 /* 16386 */ // MIs[0] __add_sub_reg_match_0.x
1153 /* 16386 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
1154 /* 16391 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1155 /* 16396 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1156 /* 16398 */ // Combiner Rule #21: add_sub_reg @ [__add_sub_reg_match_0[1]]
1157 /* 16398 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1158 /* 16403 */ GIR_EraseRootFromParent_Done,
1159 /* 16404 */ // Label 44: @16404
1160 /* 16404 */ GIM_Try, /*On fail goto*//*Label 45*/ GIMT_Encode4(16438), // Rule ID 48 //
1161 /* 16409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
1162 /* 16412 */ // MIs[0] dst
1163 /* 16412 */ // No operand predicates
1164 /* 16412 */ // MIs[0] __add_sub_reg_match_0.x
1165 /* 16412 */ // No operand predicates
1166 /* 16412 */ // MIs[0] __add_sub_reg_match_0.tmp
1167 /* 16412 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1168 /* 16416 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
1169 /* 16420 */ // MIs[1] src
1170 /* 16420 */ // No operand predicates
1171 /* 16420 */ // MIs[1] __add_sub_reg_match_0.x
1172 /* 16420 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1173 /* 16425 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1174 /* 16430 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1175 /* 16432 */ // Combiner Rule #21: add_sub_reg @ [__add_sub_reg_match_0[0]]
1176 /* 16432 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1177 /* 16437 */ GIR_EraseRootFromParent_Done,
1178 /* 16438 */ // Label 45: @16438
1179 /* 16438 */ GIM_Try, /*On fail goto*//*Label 46*/ GIMT_Encode4(16461), // Rule ID 20 //
1180 /* 16443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1181 /* 16446 */ // MIs[0] dst
1182 /* 16446 */ // No operand predicates
1183 /* 16446 */ // MIs[0] lhs
1184 /* 16446 */ // No operand predicates
1185 /* 16446 */ // MIs[0] Operand 2
1186 /* 16446 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1187 /* 16450 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1188 /* 16455 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[1]]
1189 /* 16455 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1190 /* 16460 */ GIR_EraseRootFromParent_Done,
1191 /* 16461 */ // Label 46: @16461
1192 /* 16461 */ GIM_Reject,
1193 /* 16462 */ // Label 1: @16462
1194 /* 16462 */ GIM_Try, /*On fail goto*//*Label 47*/ GIMT_Encode4(16501), // Rule ID 31 //
1195 /* 16467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1196 /* 16470 */ // MIs[0] dst
1197 /* 16470 */ // No operand predicates
1198 /* 16470 */ // MIs[0] x
1199 /* 16470 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1200 /* 16474 */ // MIs[0] x
1201 /* 16474 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1202 /* 16479 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1203 /* 16482 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1204 /* 16492 */ // Combiner Rule #12: same_val_zero @ [__same_val_zero_match_0[0]]
1205 /* 16492 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1206 /* 16495 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1207 /* 16497 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1208 /* 16500 */ GIR_EraseRootFromParent_Done,
1209 /* 16501 */ // Label 47: @16501
1210 /* 16501 */ GIM_Try, /*On fail goto*//*Label 48*/ GIMT_Encode4(16524), // Rule ID 19 //
1211 /* 16506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1212 /* 16509 */ // MIs[0] dst
1213 /* 16509 */ // No operand predicates
1214 /* 16509 */ // MIs[0] lhs
1215 /* 16509 */ // No operand predicates
1216 /* 16509 */ // MIs[0] Operand 2
1217 /* 16509 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1218 /* 16513 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1219 /* 16518 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[0]]
1220 /* 16518 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1221 /* 16523 */ GIR_EraseRootFromParent_Done,
1222 /* 16524 */ // Label 48: @16524
1223 /* 16524 */ GIM_Reject,
1224 /* 16525 */ // Label 2: @16525
1225 /* 16525 */ GIM_Try, /*On fail goto*//*Label 49*/ GIMT_Encode4(16565), // Rule ID 40 //
1226 /* 16530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1227 /* 16533 */ // MIs[0] dst
1228 /* 16533 */ // No operand predicates
1229 /* 16533 */ // MIs[0] zero
1230 /* 16533 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1231 /* 16537 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1232 /* 16541 */ // MIs[1] Operand 1
1233 /* 16541 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1234 /* 16552 */ // MIs[0] rhs
1235 /* 16552 */ // No operand predicates
1236 /* 16552 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1237 /* 16557 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1238 /* 16559 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
1239 /* 16559 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1240 /* 16564 */ GIR_EraseRootFromParent_Done,
1241 /* 16565 */ // Label 49: @16565
1242 /* 16565 */ GIM_Try, /*On fail goto*//*Label 50*/ GIMT_Encode4(16588), // Rule ID 41 //
1243 /* 16570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
1244 /* 16573 */ // MIs[0] dst
1245 /* 16573 */ // No operand predicates
1246 /* 16573 */ // MIs[0] lhs
1247 /* 16573 */ // No operand predicates
1248 /* 16573 */ // MIs[0] zero
1249 /* 16573 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1250 /* 16577 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1251 /* 16582 */ // Combiner Rule #14: binop_right_to_zero
1252 /* 16582 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
1253 /* 16587 */ GIR_EraseRootFromParent_Done,
1254 /* 16588 */ // Label 50: @16588
1255 /* 16588 */ GIM_Try, /*On fail goto*//*Label 51*/ GIMT_Encode4(16611), // Rule ID 46 //
1256 /* 16593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
1257 /* 16596 */ // MIs[0] dst
1258 /* 16596 */ // No operand predicates
1259 /* 16596 */ // MIs[0] x
1260 /* 16596 */ // No operand predicates
1261 /* 16596 */ // MIs[0] Operand 2
1262 /* 16596 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
1263 /* 16600 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1264 /* 16605 */ // Combiner Rule #19: right_identity_one_int
1265 /* 16605 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1266 /* 16610 */ GIR_EraseRootFromParent_Done,
1267 /* 16611 */ // Label 51: @16611
1268 /* 16611 */ GIM_Reject,
1269 /* 16612 */ // Label 3: @16612
1270 /* 16612 */ GIM_Try, /*On fail goto*//*Label 52*/ GIMT_Encode4(16652), // Rule ID 36 //
1271 /* 16617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1272 /* 16620 */ // MIs[0] dst
1273 /* 16620 */ // No operand predicates
1274 /* 16620 */ // MIs[0] zero
1275 /* 16620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1276 /* 16624 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1277 /* 16628 */ // MIs[1] Operand 1
1278 /* 16628 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1279 /* 16639 */ // MIs[0] rhs
1280 /* 16639 */ // No operand predicates
1281 /* 16639 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1282 /* 16644 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1283 /* 16646 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
1284 /* 16646 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1285 /* 16651 */ GIR_EraseRootFromParent_Done,
1286 /* 16652 */ // Label 52: @16652
1287 /* 16652 */ GIM_Reject,
1288 /* 16653 */ // Label 4: @16653
1289 /* 16653 */ GIM_Try, /*On fail goto*//*Label 53*/ GIMT_Encode4(16693), // Rule ID 37 //
1290 /* 16658 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1291 /* 16661 */ // MIs[0] dst
1292 /* 16661 */ // No operand predicates
1293 /* 16661 */ // MIs[0] zero
1294 /* 16661 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1295 /* 16665 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1296 /* 16669 */ // MIs[1] Operand 1
1297 /* 16669 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1298 /* 16680 */ // MIs[0] rhs
1299 /* 16680 */ // No operand predicates
1300 /* 16680 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1301 /* 16685 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1302 /* 16687 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
1303 /* 16687 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1304 /* 16692 */ GIR_EraseRootFromParent_Done,
1305 /* 16693 */ // Label 53: @16693
1306 /* 16693 */ GIM_Reject,
1307 /* 16694 */ // Label 5: @16694
1308 /* 16694 */ GIM_Try, /*On fail goto*//*Label 54*/ GIMT_Encode4(16734), // Rule ID 38 //
1309 /* 16699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1310 /* 16702 */ // MIs[0] dst
1311 /* 16702 */ // No operand predicates
1312 /* 16702 */ // MIs[0] zero
1313 /* 16702 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1314 /* 16706 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1315 /* 16710 */ // MIs[1] Operand 1
1316 /* 16710 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1317 /* 16721 */ // MIs[0] rhs
1318 /* 16721 */ // No operand predicates
1319 /* 16721 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1320 /* 16726 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1321 /* 16728 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
1322 /* 16728 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1323 /* 16733 */ GIR_EraseRootFromParent_Done,
1324 /* 16734 */ // Label 54: @16734
1325 /* 16734 */ GIM_Reject,
1326 /* 16735 */ // Label 6: @16735
1327 /* 16735 */ GIM_Try, /*On fail goto*//*Label 55*/ GIMT_Encode4(16775), // Rule ID 39 //
1328 /* 16740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1329 /* 16743 */ // MIs[0] dst
1330 /* 16743 */ // No operand predicates
1331 /* 16743 */ // MIs[0] zero
1332 /* 16743 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1333 /* 16747 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1334 /* 16751 */ // MIs[1] Operand 1
1335 /* 16751 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1336 /* 16762 */ // MIs[0] rhs
1337 /* 16762 */ // No operand predicates
1338 /* 16762 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1339 /* 16767 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1340 /* 16769 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
1341 /* 16769 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1342 /* 16774 */ GIR_EraseRootFromParent_Done,
1343 /* 16775 */ // Label 55: @16775
1344 /* 16775 */ GIM_Reject,
1345 /* 16776 */ // Label 7: @16776
1346 /* 16776 */ GIM_Try, /*On fail goto*//*Label 56*/ GIMT_Encode4(16787), // Rule ID 60 //
1347 /* 16781 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
1348 /* 16784 */ // Combiner Rule #31: redundant_and; wip_match_opcode 'G_AND'
1349 /* 16784 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
1350 /* 16787 */ // Label 56: @16787
1351 /* 16787 */ GIM_Try, /*On fail goto*//*Label 57*/ GIMT_Encode4(16811), // Rule ID 29 //
1352 /* 16792 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1353 /* 16795 */ // MIs[0] dst
1354 /* 16795 */ // No operand predicates
1355 /* 16795 */ // MIs[0] src
1356 /* 16795 */ // No operand predicates
1357 /* 16795 */ // MIs[0] src
1358 /* 16795 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1359 /* 16800 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1360 /* 16805 */ // Combiner Rule #11: binop_same_val @ [__binop_same_val_match_0[0]]
1361 /* 16805 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1362 /* 16810 */ GIR_EraseRootFromParent_Done,
1363 /* 16811 */ // Label 57: @16811
1364 /* 16811 */ GIM_Reject,
1365 /* 16812 */ // Label 8: @16812
1366 /* 16812 */ GIM_Try, /*On fail goto*//*Label 58*/ GIMT_Encode4(16836), // Rule ID 30 //
1367 /* 16817 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
1368 /* 16820 */ // MIs[0] dst
1369 /* 16820 */ // No operand predicates
1370 /* 16820 */ // MIs[0] src
1371 /* 16820 */ // No operand predicates
1372 /* 16820 */ // MIs[0] src
1373 /* 16820 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1374 /* 16825 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1375 /* 16830 */ // Combiner Rule #11: binop_same_val @ [__binop_same_val_match_0[1]]
1376 /* 16830 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1377 /* 16835 */ GIR_EraseRootFromParent_Done,
1378 /* 16836 */ // Label 58: @16836
1379 /* 16836 */ GIM_Try, /*On fail goto*//*Label 59*/ GIMT_Encode4(16859), // Rule ID 21 //
1380 /* 16841 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1381 /* 16844 */ // MIs[0] dst
1382 /* 16844 */ // No operand predicates
1383 /* 16844 */ // MIs[0] lhs
1384 /* 16844 */ // No operand predicates
1385 /* 16844 */ // MIs[0] Operand 2
1386 /* 16844 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1387 /* 16848 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1388 /* 16853 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[2]]
1389 /* 16853 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1390 /* 16858 */ GIR_EraseRootFromParent_Done,
1391 /* 16859 */ // Label 59: @16859
1392 /* 16859 */ GIM_Reject,
1393 /* 16860 */ // Label 9: @16860
1394 /* 16860 */ GIM_Try, /*On fail goto*//*Label 60*/ GIMT_Encode4(16899), // Rule ID 32 //
1395 /* 16865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
1396 /* 16868 */ // MIs[0] dst
1397 /* 16868 */ // No operand predicates
1398 /* 16868 */ // MIs[0] x
1399 /* 16868 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
1400 /* 16872 */ // MIs[0] x
1401 /* 16872 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
1402 /* 16877 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
1403 /* 16880 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
1404 /* 16890 */ // Combiner Rule #12: same_val_zero @ [__same_val_zero_match_0[1]]
1405 /* 16890 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1406 /* 16893 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1407 /* 16895 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
1408 /* 16898 */ GIR_EraseRootFromParent_Done,
1409 /* 16899 */ // Label 60: @16899
1410 /* 16899 */ GIM_Try, /*On fail goto*//*Label 61*/ GIMT_Encode4(16922), // Rule ID 22 //
1411 /* 16904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1412 /* 16907 */ // MIs[0] dst
1413 /* 16907 */ // No operand predicates
1414 /* 16907 */ // MIs[0] lhs
1415 /* 16907 */ // No operand predicates
1416 /* 16907 */ // MIs[0] Operand 2
1417 /* 16907 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1418 /* 16911 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1419 /* 16916 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[3]]
1420 /* 16916 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1421 /* 16921 */ GIR_EraseRootFromParent_Done,
1422 /* 16922 */ // Label 61: @16922
1423 /* 16922 */ GIM_Reject,
1424 /* 16923 */ // Label 10: @16923
1425 /* 16923 */ GIM_Try, /*On fail goto*//*Label 62*/ GIMT_Encode4(16934), // Rule ID 0 //
1426 /* 16928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
1427 /* 16931 */ // Combiner Rule #0: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
1428 /* 16931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
1429 /* 16934 */ // Label 62: @16934
1430 /* 16934 */ GIM_Try, /*On fail goto*//*Label 63*/ GIMT_Encode4(16945), // Rule ID 1 //
1431 /* 16939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
1432 /* 16942 */ // Combiner Rule #1: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
1433 /* 16942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
1434 /* 16945 */ // Label 63: @16945
1435 /* 16945 */ GIM_Try, /*On fail goto*//*Label 64*/ GIMT_Encode4(16956), // Rule ID 2 //
1436 /* 16950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
1437 /* 16953 */ // Combiner Rule #2: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
1438 /* 16953 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
1439 /* 16956 */ // Label 64: @16956
1440 /* 16956 */ GIM_Reject,
1441 /* 16957 */ // Label 11: @16957
1442 /* 16957 */ GIM_Try, /*On fail goto*//*Label 65*/ GIMT_Encode4(16968), // Rule ID 51 //
1443 /* 16962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1444 /* 16965 */ // Combiner Rule #22: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
1445 /* 16965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1446 /* 16968 */ // Label 65: @16968
1447 /* 16968 */ GIM_Reject,
1448 /* 16969 */ // Label 12: @16969
1449 /* 16969 */ GIM_Try, /*On fail goto*//*Label 66*/ GIMT_Encode4(16980), // Rule ID 50 //
1450 /* 16974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
1451 /* 16977 */ // Combiner Rule #22: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
1452 /* 16977 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
1453 /* 16980 */ // Label 66: @16980
1454 /* 16980 */ GIM_Reject,
1455 /* 16981 */ // Label 13: @16981
1456 /* 16981 */ GIM_Try, /*On fail goto*//*Label 67*/ GIMT_Encode4(17002), // Rule ID 43 //
1457 /* 16986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
1458 /* 16989 */ // MIs[0] dst
1459 /* 16989 */ // No operand predicates
1460 /* 16989 */ // MIs[0] t
1461 /* 16989 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1462 /* 16993 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
1463 /* 16997 */ // MIs[1] ptr
1464 /* 16997 */ // No operand predicates
1465 /* 16997 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1466 /* 16999 */ // Combiner Rule #16: i2p_to_p2i
1467 /* 16999 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
1468 /* 17002 */ // Label 67: @17002
1469 /* 17002 */ GIM_Reject,
1470 /* 17003 */ // Label 14: @17003
1471 /* 17003 */ GIM_Try, /*On fail goto*//*Label 68*/ GIMT_Encode4(17014), // Rule ID 42 //
1472 /* 17008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
1473 /* 17011 */ // Combiner Rule #15: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
1474 /* 17011 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
1475 /* 17014 */ // Label 68: @17014
1476 /* 17014 */ GIM_Reject,
1477 /* 17015 */ // Label 15: @17015
1478 /* 17015 */ GIM_Try, /*On fail goto*//*Label 69*/ GIMT_Encode4(17047), // Rule ID 55 //
1479 /* 17020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
1480 /* 17023 */ // MIs[0] dst
1481 /* 17023 */ // No operand predicates
1482 /* 17023 */ // MIs[0] src1
1483 /* 17023 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1484 /* 17027 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1485 /* 17031 */ // MIs[1] src0
1486 /* 17031 */ // No operand predicates
1487 /* 17031 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
1488 /* 17035 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1489 /* 17037 */ // Combiner Rule #26: bitcast_bitcast_to_bitcast
1490 /* 17037 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
1491 /* 17040 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1492 /* 17042 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
1493 /* 17046 */ GIR_EraseRootFromParent_Done,
1494 /* 17047 */ // Label 69: @17047
1495 /* 17047 */ GIM_Try, /*On fail goto*//*Label 70*/ GIMT_Encode4(17068), // Rule ID 54 //
1496 /* 17052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
1497 /* 17055 */ // MIs[0] dst
1498 /* 17055 */ // No operand predicates
1499 /* 17055 */ // MIs[0] src1
1500 /* 17055 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1501 /* 17059 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
1502 /* 17063 */ // MIs[1] src0
1503 /* 17063 */ // No operand predicates
1504 /* 17063 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1505 /* 17065 */ // Combiner Rule #25: bitcast_bitcast_fold
1506 /* 17065 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1507 /* 17068 */ // Label 70: @17068
1508 /* 17068 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 71*/ GIMT_Encode4(17081), GIMT_Encode2(GIFBS_anonymous_52149), // Rule ID 79 //
1509 /* 17075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
1510 /* 17078 */ // MIs[0] dst
1511 /* 17078 */ // No operand predicates
1512 /* 17078 */ // MIs[0] src
1513 /* 17078 */ // No operand predicates
1514 /* 17078 */ // Combiner Rule #48: d16_load
1515 /* 17078 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
1516 /* 17081 */ // Label 71: @17081
1517 /* 17081 */ GIM_Reject,
1518 /* 17082 */ // Label 16: @17082
1519 /* 17082 */ GIM_Try, /*On fail goto*//*Label 72*/ GIMT_Encode4(17093), // Rule ID 44 //
1520 /* 17087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
1521 /* 17090 */ // Combiner Rule #17: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
1522 /* 17090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
1523 /* 17093 */ // Label 72: @17093
1524 /* 17093 */ GIM_Try, /*On fail goto*//*Label 73*/ GIMT_Encode4(17104), // Rule ID 63 //
1525 /* 17098 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1526 /* 17101 */ // Combiner Rule #32: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
1527 /* 17101 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1528 /* 17104 */ // Label 73: @17104
1529 /* 17104 */ GIM_Try, /*On fail goto*//*Label 74*/ GIMT_Encode4(17125), // Rule ID 71 //
1530 /* 17109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
1531 /* 17112 */ // MIs[0] root
1532 /* 17112 */ // No operand predicates
1533 /* 17112 */ // MIs[0] second
1534 /* 17112 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1535 /* 17116 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1536 /* 17120 */ // MIs[1] src
1537 /* 17120 */ // No operand predicates
1538 /* 17120 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1539 /* 17122 */ // Combiner Rule #40: anyext_of_anyext
1540 /* 17122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1541 /* 17125 */ // Label 74: @17125
1542 /* 17125 */ GIM_Try, /*On fail goto*//*Label 75*/ GIMT_Encode4(17146), // Rule ID 73 //
1543 /* 17130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
1544 /* 17133 */ // MIs[0] root
1545 /* 17133 */ // No operand predicates
1546 /* 17133 */ // MIs[0] second
1547 /* 17133 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1548 /* 17137 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1549 /* 17141 */ // MIs[1] src
1550 /* 17141 */ // No operand predicates
1551 /* 17141 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1552 /* 17143 */ // Combiner Rule #42: anyext_of_sext
1553 /* 17143 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1554 /* 17146 */ // Label 75: @17146
1555 /* 17146 */ GIM_Try, /*On fail goto*//*Label 76*/ GIMT_Encode4(17167), // Rule ID 72 //
1556 /* 17151 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
1557 /* 17154 */ // MIs[0] root
1558 /* 17154 */ // No operand predicates
1559 /* 17154 */ // MIs[0] second
1560 /* 17154 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1561 /* 17158 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1562 /* 17162 */ // MIs[1] src
1563 /* 17162 */ // No operand predicates
1564 /* 17162 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1565 /* 17164 */ // Combiner Rule #41: anyext_of_zext
1566 /* 17164 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1567 /* 17167 */ // Label 76: @17167
1568 /* 17167 */ GIM_Reject,
1569 /* 17168 */ // Label 17: @17168
1570 /* 17168 */ GIM_Try, /*On fail goto*//*Label 77*/ GIMT_Encode4(17179), // Rule ID 52 //
1571 /* 17173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
1572 /* 17176 */ // Combiner Rule #23: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
1573 /* 17176 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
1574 /* 17179 */ // Label 77: @17179
1575 /* 17179 */ GIM_Try, /*On fail goto*//*Label 78*/ GIMT_Encode4(17190), // Rule ID 53 //
1576 /* 17184 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
1577 /* 17187 */ // Combiner Rule #24: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
1578 /* 17187 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
1579 /* 17190 */ // Label 78: @17190
1580 /* 17190 */ GIM_Try, /*On fail goto*//*Label 79*/ GIMT_Encode4(17211), // Rule ID 66 //
1581 /* 17195 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
1582 /* 17198 */ // MIs[0] root
1583 /* 17198 */ // No operand predicates
1584 /* 17198 */ // MIs[0] ext
1585 /* 17198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1586 /* 17202 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1587 /* 17206 */ // MIs[1] src
1588 /* 17206 */ // No operand predicates
1589 /* 17206 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1590 /* 17208 */ // Combiner Rule #35: truncate_of_anyext
1591 /* 17208 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1592 /* 17211 */ // Label 79: @17211
1593 /* 17211 */ GIM_Try, /*On fail goto*//*Label 80*/ GIMT_Encode4(17232), // Rule ID 65 //
1594 /* 17216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
1595 /* 17219 */ // MIs[0] root
1596 /* 17219 */ // No operand predicates
1597 /* 17219 */ // MIs[0] ext
1598 /* 17219 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1599 /* 17223 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1600 /* 17227 */ // MIs[1] src
1601 /* 17227 */ // No operand predicates
1602 /* 17227 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1603 /* 17229 */ // Combiner Rule #34: truncate_of_sext
1604 /* 17229 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1605 /* 17232 */ // Label 80: @17232
1606 /* 17232 */ GIM_Try, /*On fail goto*//*Label 81*/ GIMT_Encode4(17253), // Rule ID 64 //
1607 /* 17237 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
1608 /* 17240 */ // MIs[0] root
1609 /* 17240 */ // No operand predicates
1610 /* 17240 */ // MIs[0] ext
1611 /* 17240 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1612 /* 17244 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1613 /* 17248 */ // MIs[1] src
1614 /* 17248 */ // No operand predicates
1615 /* 17248 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1616 /* 17250 */ // Combiner Rule #33: truncate_of_zext
1617 /* 17250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
1618 /* 17253 */ // Label 81: @17253
1619 /* 17253 */ GIM_Reject,
1620 /* 17254 */ // Label 18: @17254
1621 /* 17254 */ GIM_Try, /*On fail goto*//*Label 82*/ GIMT_Encode4(17265), // Rule ID 62 //
1622 /* 17259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1623 /* 17262 */ // Combiner Rule #32: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
1624 /* 17262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1625 /* 17265 */ // Label 82: @17265
1626 /* 17265 */ GIM_Try, /*On fail goto*//*Label 83*/ GIMT_Encode4(17286), // Rule ID 70 //
1627 /* 17270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
1628 /* 17273 */ // MIs[0] root
1629 /* 17273 */ // No operand predicates
1630 /* 17273 */ // MIs[0] second
1631 /* 17273 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1632 /* 17277 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1633 /* 17281 */ // MIs[1] src
1634 /* 17281 */ // No operand predicates
1635 /* 17281 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1636 /* 17283 */ // Combiner Rule #39: sext_of_anyext
1637 /* 17283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1638 /* 17286 */ // Label 83: @17286
1639 /* 17286 */ GIM_Try, /*On fail goto*//*Label 84*/ GIMT_Encode4(17307), // Rule ID 69 //
1640 /* 17291 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
1641 /* 17294 */ // MIs[0] root
1642 /* 17294 */ // No operand predicates
1643 /* 17294 */ // MIs[0] second
1644 /* 17294 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1645 /* 17298 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
1646 /* 17302 */ // MIs[1] src
1647 /* 17302 */ // No operand predicates
1648 /* 17302 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1649 /* 17304 */ // Combiner Rule #38: sext_of_sext
1650 /* 17304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1651 /* 17307 */ // Label 84: @17307
1652 /* 17307 */ GIM_Try, /*On fail goto*//*Label 85*/ GIMT_Encode4(17328), // Rule ID 75 //
1653 /* 17312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
1654 /* 17315 */ // MIs[0] root
1655 /* 17315 */ // No operand predicates
1656 /* 17315 */ // MIs[0] src
1657 /* 17315 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1658 /* 17319 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
1659 /* 17323 */ // MIs[1] x
1660 /* 17323 */ // No operand predicates
1661 /* 17323 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1662 /* 17325 */ // Combiner Rule #44: sext_trunc
1663 /* 17325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
1664 /* 17328 */ // Label 85: @17328
1665 /* 17328 */ GIM_Reject,
1666 /* 17329 */ // Label 19: @17329
1667 /* 17329 */ GIM_Try, /*On fail goto*//*Label 86*/ GIMT_Encode4(17350), // Rule ID 74 //
1668 /* 17334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
1669 /* 17337 */ // MIs[0] dst
1670 /* 17337 */ // No operand predicates
1671 /* 17337 */ // MIs[0] x
1672 /* 17337 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1673 /* 17341 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
1674 /* 17345 */ // MIs[1] src
1675 /* 17345 */ // No operand predicates
1676 /* 17345 */ // MIs[1] a
1677 /* 17345 */ // No operand predicates
1678 /* 17345 */ // MIs[0] b
1679 /* 17345 */ // No operand predicates
1680 /* 17345 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1681 /* 17347 */ // Combiner Rule #43: sext_inreg_of_sext_inreg
1682 /* 17347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
1683 /* 17350 */ // Label 86: @17350
1684 /* 17350 */ GIM_Reject,
1685 /* 17351 */ // Label 20: @17351
1686 /* 17351 */ GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(17362), // Rule ID 3 //
1687 /* 17356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
1688 /* 17359 */ // Combiner Rule #3: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
1689 /* 17359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
1690 /* 17362 */ // Label 87: @17362
1691 /* 17362 */ GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(17373), // Rule ID 61 //
1692 /* 17367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
1693 /* 17370 */ // Combiner Rule #32: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
1694 /* 17370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
1695 /* 17373 */ // Label 88: @17373
1696 /* 17373 */ GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(17394), // Rule ID 68 //
1697 /* 17378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
1698 /* 17381 */ // MIs[0] root
1699 /* 17381 */ // No operand predicates
1700 /* 17381 */ // MIs[0] second
1701 /* 17381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1702 /* 17385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
1703 /* 17389 */ // MIs[1] src
1704 /* 17389 */ // No operand predicates
1705 /* 17389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1706 /* 17391 */ // Combiner Rule #37: zext_of_anyext
1707 /* 17391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1708 /* 17394 */ // Label 89: @17394
1709 /* 17394 */ GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(17415), // Rule ID 67 //
1710 /* 17399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
1711 /* 17402 */ // MIs[0] root
1712 /* 17402 */ // No operand predicates
1713 /* 17402 */ // MIs[0] second
1714 /* 17402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1715 /* 17406 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1716 /* 17410 */ // MIs[1] src
1717 /* 17410 */ // No operand predicates
1718 /* 17410 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1719 /* 17412 */ // Combiner Rule #36: zext_of_zext
1720 /* 17412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
1721 /* 17415 */ // Label 90: @17415
1722 /* 17415 */ GIM_Reject,
1723 /* 17416 */ // Label 21: @17416
1724 /* 17416 */ GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(17456), // Rule ID 33 //
1725 /* 17421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1726 /* 17424 */ // MIs[0] dst
1727 /* 17424 */ // No operand predicates
1728 /* 17424 */ // MIs[0] zero
1729 /* 17424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1730 /* 17428 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1731 /* 17432 */ // MIs[1] Operand 1
1732 /* 17432 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1733 /* 17443 */ // MIs[0] rhs
1734 /* 17443 */ // No operand predicates
1735 /* 17443 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1736 /* 17448 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1737 /* 17450 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
1738 /* 17450 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1739 /* 17455 */ GIR_EraseRootFromParent_Done,
1740 /* 17456 */ // Label 91: @17456
1741 /* 17456 */ GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(17477), // Rule ID 78 //
1742 /* 17461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
1743 /* 17464 */ // MIs[0] dst
1744 /* 17464 */ // No operand predicates
1745 /* 17464 */ // MIs[0] src
1746 /* 17464 */ // No operand predicates
1747 /* 17464 */ // MIs[0] amt
1748 /* 17464 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1749 /* 17468 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1750 /* 17472 */ // MIs[1] amtsrc
1751 /* 17472 */ // No operand predicates
1752 /* 17472 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1753 /* 17474 */ // Combiner Rule #47: canonicalize_zext_shl
1754 /* 17474 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1755 /* 17477 */ // Label 92: @17477
1756 /* 17477 */ GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(17500), // Rule ID 23 //
1757 /* 17482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1758 /* 17485 */ // MIs[0] dst
1759 /* 17485 */ // No operand predicates
1760 /* 17485 */ // MIs[0] lhs
1761 /* 17485 */ // No operand predicates
1762 /* 17485 */ // MIs[0] Operand 2
1763 /* 17485 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1764 /* 17489 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1765 /* 17494 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[4]]
1766 /* 17494 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1767 /* 17499 */ GIR_EraseRootFromParent_Done,
1768 /* 17500 */ // Label 93: @17500
1769 /* 17500 */ GIM_Reject,
1770 /* 17501 */ // Label 22: @17501
1771 /* 17501 */ GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(17541), // Rule ID 34 //
1772 /* 17506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1773 /* 17509 */ // MIs[0] dst
1774 /* 17509 */ // No operand predicates
1775 /* 17509 */ // MIs[0] zero
1776 /* 17509 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1777 /* 17513 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1778 /* 17517 */ // MIs[1] Operand 1
1779 /* 17517 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1780 /* 17528 */ // MIs[0] rhs
1781 /* 17528 */ // No operand predicates
1782 /* 17528 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1783 /* 17533 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1784 /* 17535 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
1785 /* 17535 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1786 /* 17540 */ GIR_EraseRootFromParent_Done,
1787 /* 17541 */ // Label 94: @17541
1788 /* 17541 */ GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(17562), // Rule ID 76 //
1789 /* 17546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
1790 /* 17549 */ // MIs[0] dst
1791 /* 17549 */ // No operand predicates
1792 /* 17549 */ // MIs[0] src
1793 /* 17549 */ // No operand predicates
1794 /* 17549 */ // MIs[0] amt
1795 /* 17549 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1796 /* 17553 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1797 /* 17557 */ // MIs[1] amtsrc
1798 /* 17557 */ // No operand predicates
1799 /* 17557 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1800 /* 17559 */ // Combiner Rule #45: canonicalize_zext_lshr
1801 /* 17559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1802 /* 17562 */ // Label 95: @17562
1803 /* 17562 */ GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(17585), // Rule ID 25 //
1804 /* 17567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1805 /* 17570 */ // MIs[0] dst
1806 /* 17570 */ // No operand predicates
1807 /* 17570 */ // MIs[0] lhs
1808 /* 17570 */ // No operand predicates
1809 /* 17570 */ // MIs[0] Operand 2
1810 /* 17570 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1811 /* 17574 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1812 /* 17579 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[6]]
1813 /* 17579 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1814 /* 17584 */ GIR_EraseRootFromParent_Done,
1815 /* 17585 */ // Label 96: @17585
1816 /* 17585 */ GIM_Reject,
1817 /* 17586 */ // Label 23: @17586
1818 /* 17586 */ GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(17626), // Rule ID 35 //
1819 /* 17591 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
1820 /* 17594 */ // MIs[0] dst
1821 /* 17594 */ // No operand predicates
1822 /* 17594 */ // MIs[0] zero
1823 /* 17594 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1824 /* 17598 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
1825 /* 17602 */ // MIs[1] Operand 1
1826 /* 17602 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
1827 /* 17613 */ // MIs[0] rhs
1828 /* 17613 */ // No operand predicates
1829 /* 17613 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1830 /* 17618 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1831 /* 17620 */ // Combiner Rule #13: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
1832 /* 17620 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1833 /* 17625 */ GIR_EraseRootFromParent_Done,
1834 /* 17626 */ // Label 97: @17626
1835 /* 17626 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(17647), // Rule ID 77 //
1836 /* 17631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
1837 /* 17634 */ // MIs[0] dst
1838 /* 17634 */ // No operand predicates
1839 /* 17634 */ // MIs[0] src
1840 /* 17634 */ // No operand predicates
1841 /* 17634 */ // MIs[0] amt
1842 /* 17634 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
1843 /* 17638 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
1844 /* 17642 */ // MIs[1] amtsrc
1845 /* 17642 */ // No operand predicates
1846 /* 17642 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1847 /* 17644 */ // Combiner Rule #46: canonicalize_zext_ashr
1848 /* 17644 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
1849 /* 17647 */ // Label 98: @17647
1850 /* 17647 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(17670), // Rule ID 24 //
1851 /* 17652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1852 /* 17655 */ // MIs[0] dst
1853 /* 17655 */ // No operand predicates
1854 /* 17655 */ // MIs[0] lhs
1855 /* 17655 */ // No operand predicates
1856 /* 17655 */ // MIs[0] Operand 2
1857 /* 17655 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1858 /* 17659 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1859 /* 17664 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[5]]
1860 /* 17664 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1861 /* 17669 */ GIR_EraseRootFromParent_Done,
1862 /* 17670 */ // Label 99: @17670
1863 /* 17670 */ GIM_Reject,
1864 /* 17671 */ // Label 24: @17671
1865 /* 17671 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(17694), // Rule ID 28 //
1866 /* 17676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1867 /* 17679 */ // MIs[0] dst
1868 /* 17679 */ // No operand predicates
1869 /* 17679 */ // MIs[0] lhs
1870 /* 17679 */ // No operand predicates
1871 /* 17679 */ // MIs[0] Operand 2
1872 /* 17679 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1873 /* 17683 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1874 /* 17688 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[9]]
1875 /* 17688 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1876 /* 17693 */ GIR_EraseRootFromParent_Done,
1877 /* 17694 */ // Label 100: @17694
1878 /* 17694 */ GIM_Reject,
1879 /* 17695 */ // Label 25: @17695
1880 /* 17695 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(17718), // Rule ID 27 //
1881 /* 17700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
1882 /* 17703 */ // MIs[0] dst
1883 /* 17703 */ // No operand predicates
1884 /* 17703 */ // MIs[0] lhs
1885 /* 17703 */ // No operand predicates
1886 /* 17703 */ // MIs[0] Operand 2
1887 /* 17703 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
1888 /* 17707 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1889 /* 17712 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[8]]
1890 /* 17712 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1891 /* 17717 */ GIR_EraseRootFromParent_Done,
1892 /* 17718 */ // Label 101: @17718
1893 /* 17718 */ GIM_Reject,
1894 /* 17719 */ // Label 26: @17719
1895 /* 17719 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(17730), // Rule ID 18 //
1896 /* 17724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
1897 /* 17727 */ // Combiner Rule #9: select_same_val; wip_match_opcode 'G_SELECT'
1898 /* 17727 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
1899 /* 17730 */ // Label 102: @17730
1900 /* 17730 */ GIM_Reject,
1901 /* 17731 */ // Label 27: @17731
1902 /* 17731 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(17754), // Rule ID 57 //
1903 /* 17736 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
1904 /* 17739 */ // MIs[0] dst
1905 /* 17739 */ // No operand predicates
1906 /* 17739 */ // MIs[0] x
1907 /* 17739 */ // No operand predicates
1908 /* 17739 */ // MIs[0] y
1909 /* 17739 */ // No operand predicates
1910 /* 17739 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
1911 /* 17743 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1912 /* 17748 */ // Combiner Rule #28: right_identity_neg_zero_fp
1913 /* 17748 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1914 /* 17753 */ GIR_EraseRootFromParent_Done,
1915 /* 17754 */ // Label 103: @17754
1916 /* 17754 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(17783), // Rule ID 58 //
1917 /* 17759 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
1918 /* 17762 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
1919 /* 17768 */ // MIs[0] dst
1920 /* 17768 */ // No operand predicates
1921 /* 17768 */ // MIs[0] x
1922 /* 17768 */ // No operand predicates
1923 /* 17768 */ // MIs[0] y
1924 /* 17768 */ // No operand predicates
1925 /* 17768 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
1926 /* 17772 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1927 /* 17777 */ // Combiner Rule #29: right_identity_neg_zero_fp_nsz
1928 /* 17777 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1929 /* 17782 */ GIR_EraseRootFromParent_Done,
1930 /* 17783 */ // Label 104: @17783
1931 /* 17783 */ GIM_Reject,
1932 /* 17784 */ // Label 28: @17784
1933 /* 17784 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(17807), // Rule ID 47 //
1934 /* 17789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
1935 /* 17792 */ // MIs[0] dst
1936 /* 17792 */ // No operand predicates
1937 /* 17792 */ // MIs[0] x
1938 /* 17792 */ // No operand predicates
1939 /* 17792 */ // MIs[0] y
1940 /* 17792 */ // No operand predicates
1941 /* 17792 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
1942 /* 17796 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1943 /* 17801 */ // Combiner Rule #20: right_identity_one_fp
1944 /* 17801 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
1945 /* 17806 */ GIR_EraseRootFromParent_Done,
1946 /* 17807 */ // Label 105: @17807
1947 /* 17807 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(17827), // Rule ID 59 //
1948 /* 17812 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
1949 /* 17815 */ // MIs[0] dst
1950 /* 17815 */ // No operand predicates
1951 /* 17815 */ // MIs[0] x
1952 /* 17815 */ // No operand predicates
1953 /* 17815 */ // MIs[0] y
1954 /* 17815 */ // No operand predicates
1955 /* 17815 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
1956 /* 17819 */ // Combiner Rule #30: right_identity_neg_one_fp
1957 /* 17819 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
1958 /* 17822 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
1959 /* 17824 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
1960 /* 17826 */ GIR_EraseRootFromParent_Done,
1961 /* 17827 */ // Label 106: @17827
1962 /* 17827 */ GIM_Reject,
1963 /* 17828 */ // Label 29: @17828
1964 /* 17828 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(17857), // Rule ID 45 //
1965 /* 17833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
1966 /* 17836 */ // MIs[0] dst
1967 /* 17836 */ // No operand predicates
1968 /* 17836 */ // MIs[0] t
1969 /* 17836 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1970 /* 17840 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
1971 /* 17844 */ // MIs[1] src
1972 /* 17844 */ // No operand predicates
1973 /* 17844 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1974 /* 17849 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1975 /* 17851 */ // Combiner Rule #18: fneg_fneg_fold
1976 /* 17851 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
1977 /* 17856 */ GIR_EraseRootFromParent_Done,
1978 /* 17857 */ // Label 107: @17857
1979 /* 17857 */ GIM_Reject,
1980 /* 17858 */ // Label 30: @17858
1981 /* 17858 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(17879), // Rule ID 56 //
1982 /* 17863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
1983 /* 17866 */ // MIs[0] dst
1984 /* 17866 */ // No operand predicates
1985 /* 17866 */ // MIs[0] src1
1986 /* 17866 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
1987 /* 17870 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
1988 /* 17874 */ // MIs[1] src0
1989 /* 17874 */ // No operand predicates
1990 /* 17874 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
1991 /* 17876 */ // Combiner Rule #27: fptrunc_fpext_fold
1992 /* 17876 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
1993 /* 17879 */ // Label 108: @17879
1994 /* 17879 */ GIM_Reject,
1995 /* 17880 */ // Label 31: @17880
1996 /* 17880 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(17891), // Rule ID 10 //
1997 /* 17885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
1998 /* 17888 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMINNUM'
1999 /* 17888 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2000 /* 17891 */ // Label 109: @17891
2001 /* 17891 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(17902), // Rule ID 14 //
2002 /* 17896 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2003 /* 17899 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMINNUM'
2004 /* 17899 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2005 /* 17902 */ // Label 110: @17902
2006 /* 17902 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(17913), // Rule ID 85 //
2007 /* 17907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
2008 /* 17910 */ // MIs[0] dst
2009 /* 17910 */ // No operand predicates
2010 /* 17910 */ // MIs[0] lhs
2011 /* 17910 */ // No operand predicates
2012 /* 17910 */ // MIs[0] rhs
2013 /* 17910 */ // No operand predicates
2014 /* 17910 */ // Combiner Rule #54: fmin_to_minmax3
2015 /* 17910 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2016 /* 17913 */ // Label 111: @17913
2017 /* 17913 */ GIM_Reject,
2018 /* 17914 */ // Label 32: @17914
2019 /* 17914 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(17925), // Rule ID 9 //
2020 /* 17919 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2021 /* 17922 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMAXNUM'
2022 /* 17922 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2023 /* 17925 */ // Label 112: @17925
2024 /* 17925 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(17936), // Rule ID 13 //
2025 /* 17930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2026 /* 17933 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMAXNUM'
2027 /* 17933 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2028 /* 17936 */ // Label 113: @17936
2029 /* 17936 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(17947), // Rule ID 84 //
2030 /* 17941 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
2031 /* 17944 */ // MIs[0] dst
2032 /* 17944 */ // No operand predicates
2033 /* 17944 */ // MIs[0] lhs
2034 /* 17944 */ // No operand predicates
2035 /* 17944 */ // MIs[0] rhs
2036 /* 17944 */ // No operand predicates
2037 /* 17944 */ // Combiner Rule #53: fmax_to_minmax3
2038 /* 17944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2039 /* 17947 */ // Label 114: @17947
2040 /* 17947 */ GIM_Reject,
2041 /* 17948 */ // Label 33: @17948
2042 /* 17948 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(17959), // Rule ID 12 //
2043 /* 17953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2044 /* 17956 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMINNUM_IEEE'
2045 /* 17956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2046 /* 17959 */ // Label 115: @17959
2047 /* 17959 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(17970), // Rule ID 16 //
2048 /* 17964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2049 /* 17967 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMINNUM_IEEE'
2050 /* 17967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2051 /* 17970 */ // Label 116: @17970
2052 /* 17970 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(17981), // Rule ID 89 //
2053 /* 17975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
2054 /* 17978 */ // MIs[0] dst
2055 /* 17978 */ // No operand predicates
2056 /* 17978 */ // MIs[0] lhs
2057 /* 17978 */ // No operand predicates
2058 /* 17978 */ // MIs[0] rhs
2059 /* 17978 */ // No operand predicates
2060 /* 17978 */ // Combiner Rule #58: fmin_ieee_to_minmax3
2061 /* 17978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2062 /* 17981 */ // Label 117: @17981
2063 /* 17981 */ GIM_Reject,
2064 /* 17982 */ // Label 34: @17982
2065 /* 17982 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(17993), // Rule ID 11 //
2066 /* 17987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
2067 /* 17990 */ // Combiner Rule #6: fp_minmax_to_clamp; wip_match_opcode 'G_FMAXNUM_IEEE'
2068 /* 17990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
2069 /* 17993 */ // Label 118: @17993
2070 /* 17993 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(18004), // Rule ID 15 //
2071 /* 17998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2072 /* 18001 */ // Combiner Rule #7: fp_minmax_to_med3; wip_match_opcode 'G_FMAXNUM_IEEE'
2073 /* 18001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
2074 /* 18004 */ // Label 119: @18004
2075 /* 18004 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(18015), // Rule ID 88 //
2076 /* 18009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
2077 /* 18012 */ // MIs[0] dst
2078 /* 18012 */ // No operand predicates
2079 /* 18012 */ // MIs[0] lhs
2080 /* 18012 */ // No operand predicates
2081 /* 18012 */ // MIs[0] rhs
2082 /* 18012 */ // No operand predicates
2083 /* 18012 */ // Combiner Rule #57: fmax_ieee_to_minmax3
2084 /* 18012 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2085 /* 18015 */ // Label 120: @18015
2086 /* 18015 */ GIM_Reject,
2087 /* 18016 */ // Label 35: @18016
2088 /* 18016 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(18027), // Rule ID 87 //
2089 /* 18021 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
2090 /* 18024 */ // MIs[0] dst
2091 /* 18024 */ // No operand predicates
2092 /* 18024 */ // MIs[0] lhs
2093 /* 18024 */ // No operand predicates
2094 /* 18024 */ // MIs[0] rhs
2095 /* 18024 */ // No operand predicates
2096 /* 18024 */ // Combiner Rule #56: fminimum_to_minmax3
2097 /* 18024 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2098 /* 18027 */ // Label 121: @18027
2099 /* 18027 */ GIM_Reject,
2100 /* 18028 */ // Label 36: @18028
2101 /* 18028 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(18039), // Rule ID 86 //
2102 /* 18033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
2103 /* 18036 */ // MIs[0] dst
2104 /* 18036 */ // No operand predicates
2105 /* 18036 */ // MIs[0] lhs
2106 /* 18036 */ // No operand predicates
2107 /* 18036 */ // MIs[0] rhs
2108 /* 18036 */ // No operand predicates
2109 /* 18036 */ // Combiner Rule #55: fmaximum_to_minmax3
2110 /* 18036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2111 /* 18039 */ // Label 122: @18039
2112 /* 18039 */ GIM_Reject,
2113 /* 18040 */ // Label 37: @18040
2114 /* 18040 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(18051), // Rule ID 8 //
2115 /* 18045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
2116 /* 18048 */ // Combiner Rule #5: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
2117 /* 18048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
2118 /* 18051 */ // Label 123: @18051
2119 /* 18051 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(18074), // Rule ID 26 //
2120 /* 18056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
2121 /* 18059 */ // MIs[0] dst
2122 /* 18059 */ // No operand predicates
2123 /* 18059 */ // MIs[0] lhs
2124 /* 18059 */ // No operand predicates
2125 /* 18059 */ // MIs[0] Operand 2
2126 /* 18059 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2127 /* 18063 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2128 /* 18068 */ // Combiner Rule #10: right_identity_zero @ [__right_identity_zero_match_0[7]]
2129 /* 18068 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2130 /* 18073 */ GIR_EraseRootFromParent_Done,
2131 /* 18074 */ // Label 124: @18074
2132 /* 18074 */ GIM_Reject,
2133 /* 18075 */ // Label 38: @18075
2134 /* 18075 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(18086), // Rule ID 5 //
2135 /* 18080 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2136 /* 18083 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_SMIN'
2137 /* 18083 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2138 /* 18086 */ // Label 125: @18086
2139 /* 18086 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(18097), // Rule ID 81 //
2140 /* 18091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
2141 /* 18094 */ // MIs[0] dst
2142 /* 18094 */ // No operand predicates
2143 /* 18094 */ // MIs[0] lhs
2144 /* 18094 */ // No operand predicates
2145 /* 18094 */ // MIs[0] rhs
2146 /* 18094 */ // No operand predicates
2147 /* 18094 */ // Combiner Rule #50: smin_to_minmax3
2148 /* 18094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2149 /* 18097 */ // Label 126: @18097
2150 /* 18097 */ GIM_Reject,
2151 /* 18098 */ // Label 39: @18098
2152 /* 18098 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(18109), // Rule ID 4 //
2153 /* 18103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2154 /* 18106 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_SMAX'
2155 /* 18106 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2156 /* 18109 */ // Label 127: @18109
2157 /* 18109 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(18120), // Rule ID 80 //
2158 /* 18114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
2159 /* 18117 */ // MIs[0] dst
2160 /* 18117 */ // No operand predicates
2161 /* 18117 */ // MIs[0] lhs
2162 /* 18117 */ // No operand predicates
2163 /* 18117 */ // MIs[0] rhs
2164 /* 18117 */ // No operand predicates
2165 /* 18117 */ // Combiner Rule #49: smax_to_minmax3
2166 /* 18117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2167 /* 18120 */ // Label 128: @18120
2168 /* 18120 */ GIM_Reject,
2169 /* 18121 */ // Label 40: @18121
2170 /* 18121 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(18132), // Rule ID 7 //
2171 /* 18126 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2172 /* 18129 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_UMIN'
2173 /* 18129 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2174 /* 18132 */ // Label 129: @18132
2175 /* 18132 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(18143), // Rule ID 83 //
2176 /* 18137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
2177 /* 18140 */ // MIs[0] dst
2178 /* 18140 */ // No operand predicates
2179 /* 18140 */ // MIs[0] lhs
2180 /* 18140 */ // No operand predicates
2181 /* 18140 */ // MIs[0] rhs
2182 /* 18140 */ // No operand predicates
2183 /* 18140 */ // Combiner Rule #52: umin_to_minmax3
2184 /* 18140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2185 /* 18143 */ // Label 130: @18143
2186 /* 18143 */ GIM_Reject,
2187 /* 18144 */ // Label 41: @18144
2188 /* 18144 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(18155), // Rule ID 6 //
2189 /* 18149 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2190 /* 18152 */ // Combiner Rule #4: int_minmax_to_med3; wip_match_opcode 'G_UMAX'
2191 /* 18152 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
2192 /* 18155 */ // Label 131: @18155
2193 /* 18155 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(18166), // Rule ID 82 //
2194 /* 18160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
2195 /* 18163 */ // MIs[0] dst
2196 /* 18163 */ // No operand predicates
2197 /* 18163 */ // MIs[0] lhs
2198 /* 18163 */ // No operand predicates
2199 /* 18163 */ // MIs[0] rhs
2200 /* 18163 */ // No operand predicates
2201 /* 18163 */ // Combiner Rule #51: umax_to_minmax3
2202 /* 18163 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
2203 /* 18166 */ // Label 132: @18166
2204 /* 18166 */ GIM_Reject,
2205 /* 18167 */ // Label 42: @18167
2206 /* 18167 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(18178), // Rule ID 17 //
2207 /* 18172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2208 /* 18175 */ // Combiner Rule #8: fmed3_intrinsic_to_clamp; wip_match_opcode 'G_AMDGPU_FMED3'
2209 /* 18175 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
2210 /* 18178 */ // Label 133: @18178
2211 /* 18178 */ GIM_Reject,
2212 /* 18179 */ // Label 43: @18179
2213 /* 18179 */ GIM_Reject,
2214 /* 18180 */ }; // Size: 18180 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