1 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
2 | |* *| |
3 | |* AMDGPUPostLegalizerCombinerImpl Combiner Match Table *| |
4 | |* *| |
5 | |* Automatically generated file, do not edit! *| |
6 | |* *| |
7 | \*===----------------------------------------------------------------------===*/ |
8 | |
9 | #ifdef GET_GICOMBINER_DEPS |
10 | #include "llvm/ADT/SparseBitVector.h" |
11 | namespace llvm { |
12 | extern cl::OptionCategory GICombinerOptionCategory; |
13 | } // end namespace llvm |
14 | #endif // ifdef GET_GICOMBINER_DEPS |
15 | |
16 | #ifdef GET_GICOMBINER_TYPES |
17 | struct AMDGPUPostLegalizerCombinerImplRuleConfig { |
18 | SparseBitVector<> DisabledRules; |
19 | |
20 | bool isRuleEnabled(unsigned RuleID) const; |
21 | bool parseCommandLineOption(); |
22 | bool setRuleEnabled(StringRef RuleIdentifier); |
23 | bool setRuleDisabled(StringRef RuleIdentifier); |
24 | }; |
25 | |
26 | static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) { |
27 | uint64_t I; |
28 | // getAtInteger(...) returns false on success |
29 | bool Parsed = !RuleIdentifier.getAsInteger(Radix: 0, Result&: I); |
30 | if (Parsed) |
31 | return I; |
32 | |
33 | #ifndef NDEBUG |
34 | switch (RuleIdentifier.size()) { |
35 | default: break; |
36 | case 7: // 1 string to match. |
37 | if (memcmp(RuleIdentifier.data()+0, "smulu64" , 7) != 0) |
38 | break; |
39 | return 198; // "smulu64" |
40 | case 9: // 5 strings to match. |
41 | switch (RuleIdentifier[0]) { |
42 | default: break; |
43 | case 'c': // 1 string to match. |
44 | if (memcmp(RuleIdentifier.data()+1, "opy_prop" , 8) != 0) |
45 | break; |
46 | return 8; // "copy_prop" |
47 | case 'm': // 3 strings to match. |
48 | switch (RuleIdentifier[1]) { |
49 | default: break; |
50 | case 'a': // 1 string to match. |
51 | if (memcmp(RuleIdentifier.data()+2, "tch_ors" , 7) != 0) |
52 | break; |
53 | return 180; // "match_ors" |
54 | case 'u': // 2 strings to match. |
55 | if (memcmp(RuleIdentifier.data()+2, "lo_by_" , 6) != 0) |
56 | break; |
57 | switch (RuleIdentifier[8]) { |
58 | default: break; |
59 | case '0': // 1 string to match. |
60 | return 130; // "mulo_by_0" |
61 | case '2': // 1 string to match. |
62 | return 129; // "mulo_by_2" |
63 | } |
64 | break; |
65 | } |
66 | break; |
67 | case 'n': // 1 string to match. |
68 | if (memcmp(RuleIdentifier.data()+1, "neg_zext" , 8) != 0) |
69 | break; |
70 | return 187; // "nneg_zext" |
71 | } |
72 | break; |
73 | case 10: // 6 strings to match. |
74 | switch (RuleIdentifier[0]) { |
75 | default: break; |
76 | case 'i': // 1 string to match. |
77 | if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i" , 9) != 0) |
78 | break; |
79 | return 74; // "i2p_to_p2i" |
80 | case 'm': // 2 strings to match. |
81 | switch (RuleIdentifier[1]) { |
82 | default: break; |
83 | case 'a': // 1 string to match. |
84 | if (memcmp(RuleIdentifier.data()+2, "tch_ands" , 8) != 0) |
85 | break; |
86 | return 179; // "match_ands" |
87 | case 'u': // 1 string to match. |
88 | if (memcmp(RuleIdentifier.data()+2, "l_to_shl" , 8) != 0) |
89 | break; |
90 | return 9; // "mul_to_shl" |
91 | } |
92 | break; |
93 | case 'p': // 1 string to match. |
94 | if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p" , 9) != 0) |
95 | break; |
96 | return 73; // "p2i_to_i2p" |
97 | case 's': // 1 string to match. |
98 | if (memcmp(RuleIdentifier.data()+1, "ext_trunc" , 9) != 0) |
99 | break; |
100 | return 185; // "sext_trunc" |
101 | case 'z': // 1 string to match. |
102 | if (memcmp(RuleIdentifier.data()+1, "ext_trunc" , 9) != 0) |
103 | break; |
104 | return 186; // "zext_trunc" |
105 | } |
106 | break; |
107 | case 11: // 5 strings to match. |
108 | switch (RuleIdentifier[0]) { |
109 | default: break; |
110 | case 'a': // 1 string to match. |
111 | if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg" , 10) != 0) |
112 | break; |
113 | return 79; // "add_sub_reg" |
114 | case 'm': // 1 string to match. |
115 | if (memcmp(RuleIdentifier.data()+1, "atch_addos" , 10) != 0) |
116 | break; |
117 | return 184; // "match_addos" |
118 | case 's': // 1 string to match. |
119 | if (memcmp(RuleIdentifier.data()+1, "ub_add_reg" , 10) != 0) |
120 | break; |
121 | return 173; // "sub_add_reg" |
122 | case 't': // 1 string to match. |
123 | if (memcmp(RuleIdentifier.data()+1, "runc_shift" , 10) != 0) |
124 | break; |
125 | return 119; // "trunc_shift" |
126 | case 'u': // 1 string to match. |
127 | if (memcmp(RuleIdentifier.data()+1, "nmerge_cst" , 10) != 0) |
128 | break; |
129 | return 114; // "unmerge_cst" |
130 | } |
131 | break; |
132 | case 12: // 10 strings to match. |
133 | switch (RuleIdentifier[0]) { |
134 | default: break; |
135 | case 'A': // 1 string to match. |
136 | if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB" , 11) != 0) |
137 | break; |
138 | return 2; // "APlusBMinusB" |
139 | case 'B': // 1 string to match. |
140 | if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA" , 11) != 0) |
141 | break; |
142 | return 3; // "BMinusAPlusA" |
143 | case 'a': // 1 string to match. |
144 | if (memcmp(RuleIdentifier.data()+1, "dde_to_addo" , 11) != 0) |
145 | break; |
146 | return 131; // "adde_to_addo" |
147 | case 'e': // 1 string to match. |
148 | if (memcmp(RuleIdentifier.data()+1, "xt_ext_fold" , 11) != 0) |
149 | break; |
150 | return 110; // "ext_ext_fold" |
151 | case 'f': // 1 string to match. |
152 | if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg" , 11) != 0) |
153 | break; |
154 | return 176; // "fsub_to_fneg" |
155 | case 'm': // 1 string to match. |
156 | if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr" , 11) != 0) |
157 | break; |
158 | return 161; // "mulh_to_lshr" |
159 | case 'n': // 1 string to match. |
160 | if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold" , 11) != 0) |
161 | break; |
162 | return 111; // "not_cmp_fold" |
163 | case 'r': // 1 string to match. |
164 | if (memcmp(RuleIdentifier.data()+1, "edundant_or" , 11) != 0) |
165 | break; |
166 | return 104; // "redundant_or" |
167 | case 's': // 1 string to match. |
168 | if (memcmp(RuleIdentifier.data()+1, "div_by_pow2" , 11) != 0) |
169 | break; |
170 | return 159; // "sdiv_by_pow2" |
171 | case 'u': // 1 string to match. |
172 | if (memcmp(RuleIdentifier.data()+1, "div_by_pow2" , 11) != 0) |
173 | break; |
174 | return 160; // "udiv_by_pow2" |
175 | } |
176 | break; |
177 | case 13: // 14 strings to match. |
178 | switch (RuleIdentifier[0]) { |
179 | default: break; |
180 | case 'a': // 1 string to match. |
181 | if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale" , 12) != 0) |
182 | break; |
183 | return 44; // "add_of_vscale" |
184 | case 'c': // 1 string to match. |
185 | if (memcmp(RuleIdentifier.data()+1, "ommute_shift" , 12) != 0) |
186 | break; |
187 | return 147; // "commute_shift" |
188 | case 'f': // 1 string to match. |
189 | if (memcmp(RuleIdentifier.data()+1, "oldable_fneg" , 12) != 0) |
190 | break; |
191 | return 194; // "foldable_fneg" |
192 | case 'l': // 1 string to match. |
193 | if (memcmp(RuleIdentifier.data()+1, "oad_and_mask" , 12) != 0) |
194 | break; |
195 | return 54; // "load_and_mask" |
196 | case 'm': // 3 strings to match. |
197 | switch (RuleIdentifier[1]) { |
198 | default: break; |
199 | case 'a': // 1 string to match. |
200 | if (memcmp(RuleIdentifier.data()+2, "tch_selects" , 11) != 0) |
201 | break; |
202 | return 101; // "match_selects" |
203 | case 'e': // 1 string to match. |
204 | if (memcmp(RuleIdentifier.data()+2, "rge_unmerge" , 11) != 0) |
205 | break; |
206 | return 117; // "merge_unmerge" |
207 | case 'u': // 1 string to match. |
208 | if (memcmp(RuleIdentifier.data()+2, "l_of_vscale" , 11) != 0) |
209 | break; |
210 | return 45; // "mul_of_vscale" |
211 | } |
212 | break; |
213 | case 'r': // 1 string to match. |
214 | if (memcmp(RuleIdentifier.data()+1, "edundant_and" , 12) != 0) |
215 | break; |
216 | return 102; // "redundant_and" |
217 | case 's': // 3 strings to match. |
218 | switch (RuleIdentifier[1]) { |
219 | default: break; |
220 | case 'd': // 1 string to match. |
221 | if (memcmp(RuleIdentifier.data()+2, "iv_by_const" , 11) != 0) |
222 | break; |
223 | return 158; // "sdiv_by_const" |
224 | case 'h': // 1 string to match. |
225 | if (memcmp(RuleIdentifier.data()+2, "l_of_vscale" , 11) != 0) |
226 | break; |
227 | return 46; // "shl_of_vscale" |
228 | case 'u': // 1 string to match. |
229 | if (memcmp(RuleIdentifier.data()+2, "b_of_vscale" , 11) != 0) |
230 | break; |
231 | return 47; // "sub_of_vscale" |
232 | } |
233 | break; |
234 | case 'u': // 3 strings to match. |
235 | switch (RuleIdentifier[1]) { |
236 | default: break; |
237 | case 'd': // 1 string to match. |
238 | if (memcmp(RuleIdentifier.data()+2, "iv_by_const" , 11) != 0) |
239 | break; |
240 | return 157; // "udiv_by_const" |
241 | case 'n': // 2 strings to match. |
242 | if (memcmp(RuleIdentifier.data()+2, "merge_" , 6) != 0) |
243 | break; |
244 | switch (RuleIdentifier[8]) { |
245 | default: break; |
246 | case 'm': // 1 string to match. |
247 | if (memcmp(RuleIdentifier.data()+9, "erge" , 4) != 0) |
248 | break; |
249 | return 113; // "unmerge_merge" |
250 | case 'u': // 1 string to match. |
251 | if (memcmp(RuleIdentifier.data()+9, "ndef" , 4) != 0) |
252 | break; |
253 | return 66; // "unmerge_undef" |
254 | } |
255 | break; |
256 | } |
257 | break; |
258 | } |
259 | break; |
260 | case 14: // 10 strings to match. |
261 | switch (RuleIdentifier[0]) { |
262 | default: break; |
263 | case 'b': // 2 strings to match. |
264 | if (RuleIdentifier[1] != 'i') |
265 | break; |
266 | switch (RuleIdentifier[2]) { |
267 | default: break; |
268 | case 'n': // 1 string to match. |
269 | if (memcmp(RuleIdentifier.data()+3, "op_same_val" , 11) != 0) |
270 | break; |
271 | return 70; // "binop_same_val" |
272 | case 't': // 1 string to match. |
273 | if (memcmp(RuleIdentifier.data()+3, "reverse_shl" , 11) != 0) |
274 | break; |
275 | return 145; // "bitreverse_shl" |
276 | } |
277 | break; |
278 | case 'c': // 1 string to match. |
279 | if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN" , 13) != 0) |
280 | break; |
281 | return 192; // "cvt_f32_ubyteN" |
282 | case 'f': // 2 strings to match. |
283 | switch (RuleIdentifier[1]) { |
284 | default: break; |
285 | case 'a': // 1 string to match. |
286 | if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold" , 12) != 0) |
287 | break; |
288 | return 156; // "fabs_fneg_fold" |
289 | case 'n': // 1 string to match. |
290 | if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold" , 12) != 0) |
291 | break; |
292 | return 76; // "fneg_fneg_fold" |
293 | } |
294 | break; |
295 | case 'm': // 1 string to match. |
296 | if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one" , 13) != 0) |
297 | break; |
298 | return 11; // "mul_by_neg_one" |
299 | case 'r': // 1 string to match. |
300 | if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd" , 13) != 0) |
301 | break; |
302 | return 91; // "reassoc_ptradd" |
303 | case 's': // 1 string to match. |
304 | if (memcmp(RuleIdentifier.data()+1, "hifts_too_big" , 13) != 0) |
305 | break; |
306 | return 90; // "shifts_too_big" |
307 | case 't': // 1 string to match. |
308 | if (memcmp(RuleIdentifier.data()+1, "runc_ext_fold" , 13) != 0) |
309 | break; |
310 | return 118; // "trunc_ext_fold" |
311 | case 'u': // 1 string to match. |
312 | if (memcmp(RuleIdentifier.data()+1, "char_to_float" , 13) != 0) |
313 | break; |
314 | return 191; // "uchar_to_float" |
315 | } |
316 | break; |
317 | case 15: // 10 strings to match. |
318 | switch (RuleIdentifier[0]) { |
319 | default: break; |
320 | case 'A': // 1 string to match. |
321 | if (memcmp(RuleIdentifier.data()+1, "PlusZeroMinusB" , 14) != 0) |
322 | break; |
323 | return 1; // "APlusZeroMinusB" |
324 | case 'Z': // 1 string to match. |
325 | if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB" , 14) != 0) |
326 | break; |
327 | return 0; // "ZeroMinusAPlusB" |
328 | case 'b': // 1 string to match. |
329 | if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr" , 14) != 0) |
330 | break; |
331 | return 146; // "bitreverse_lshr" |
332 | case 'e': // 1 string to match. |
333 | if (memcmp(RuleIdentifier.data()+1, "xtending_loads" , 14) != 0) |
334 | break; |
335 | return 53; // "extending_loads" |
336 | case 'i': // 1 string to match. |
337 | if (memcmp(RuleIdentifier.data()+1, "dempotent_prop" , 14) != 0) |
338 | break; |
339 | return 12; // "idempotent_prop" |
340 | case 'l': // 1 string to match. |
341 | if (memcmp(RuleIdentifier.data()+1, "oad_or_combine" , 14) != 0) |
342 | break; |
343 | return 138; // "load_or_combine" |
344 | case 'o': // 1 string to match. |
345 | if (memcmp(RuleIdentifier.data()+1, "verlapping_and" , 14) != 0) |
346 | break; |
347 | return 128; // "overlapping_and" |
348 | case 'r': // 1 string to match. |
349 | if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq" , 14) != 0) |
350 | break; |
351 | return 195; // "rcp_sqrt_to_rsq" |
352 | case 's': // 1 string to match. |
353 | if (memcmp(RuleIdentifier.data()+1, "elect_same_val" , 14) != 0) |
354 | break; |
355 | return 68; // "select_same_val" |
356 | case 'z': // 1 string to match. |
357 | if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold" , 14) != 0) |
358 | break; |
359 | return 106; // "zext_trunc_fold" |
360 | } |
361 | break; |
362 | case 16: // 3 strings to match. |
363 | switch (RuleIdentifier[0]) { |
364 | default: break; |
365 | case 's': // 2 strings to match. |
366 | if (memcmp(RuleIdentifier.data()+1, "elect_" , 6) != 0) |
367 | break; |
368 | switch (RuleIdentifier[7]) { |
369 | default: break; |
370 | case 't': // 1 string to match. |
371 | if (memcmp(RuleIdentifier.data()+8, "o_minmax" , 8) != 0) |
372 | break; |
373 | return 174; // "select_to_minmax" |
374 | case 'u': // 1 string to match. |
375 | if (memcmp(RuleIdentifier.data()+8, "ndef_cmp" , 8) != 0) |
376 | break; |
377 | return 98; // "select_undef_cmp" |
378 | } |
379 | break; |
380 | case 'u': // 1 string to match. |
381 | if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero" , 15) != 0) |
382 | break; |
383 | return 56; // "undef_to_fp_zero" |
384 | } |
385 | break; |
386 | case 17: // 12 strings to match. |
387 | switch (RuleIdentifier[0]) { |
388 | default: break; |
389 | case 'A': // 2 strings to match. |
390 | if (memcmp(RuleIdentifier.data()+1, "PlusBMinus" , 10) != 0) |
391 | break; |
392 | switch (RuleIdentifier[11]) { |
393 | default: break; |
394 | case 'A': // 1 string to match. |
395 | if (memcmp(RuleIdentifier.data()+12, "plusC" , 5) != 0) |
396 | break; |
397 | return 6; // "APlusBMinusAplusC" |
398 | case 'C': // 1 string to match. |
399 | if (memcmp(RuleIdentifier.data()+12, "PlusA" , 5) != 0) |
400 | break; |
401 | return 7; // "APlusBMinusCPlusA" |
402 | } |
403 | break; |
404 | case 'a': // 2 strings to match. |
405 | switch (RuleIdentifier[1]) { |
406 | default: break; |
407 | case 'd': // 1 string to match. |
408 | if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd" , 15) != 0) |
409 | break; |
410 | return 10; // "add_p2i_to_ptradd" |
411 | case 'n': // 1 string to match. |
412 | if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold" , 15) != 0) |
413 | break; |
414 | return 75; // "anyext_trunc_fold" |
415 | } |
416 | break; |
417 | case 'c': // 1 string to match. |
418 | if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fma" , 16) != 0) |
419 | break; |
420 | return 154; // "constant_fold_fma" |
421 | case 'd': // 1 string to match. |
422 | if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem" , 16) != 0) |
423 | break; |
424 | return 139; // "div_rem_to_divrem" |
425 | case 'e': // 1 string to match. |
426 | if (memcmp(RuleIdentifier.data()+1, "rase_undef_store" , 16) != 0) |
427 | break; |
428 | return 65; // "erase_undef_store" |
429 | case 'p': // 1 string to match. |
430 | if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero" , 16) != 0) |
431 | break; |
432 | return 135; // "ptr_add_with_zero" |
433 | case 's': // 2 strings to match. |
434 | switch (RuleIdentifier[1]) { |
435 | default: break; |
436 | case 'e': // 1 string to match. |
437 | if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax" , 15) != 0) |
438 | break; |
439 | return 100; // "select_to_iminmax" |
440 | case 'h': // 1 string to match. |
441 | if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain" , 15) != 0) |
442 | break; |
443 | return 136; // "shift_immed_chain" |
444 | } |
445 | break; |
446 | case 'u': // 2 strings to match. |
447 | switch (RuleIdentifier[1]) { |
448 | default: break; |
449 | case 'n': // 1 string to match. |
450 | if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero" , 15) != 0) |
451 | break; |
452 | return 57; // "undef_to_int_zero" |
453 | case 'r': // 1 string to match. |
454 | if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask" , 15) != 0) |
455 | break; |
456 | return 105; // "urem_pow2_to_mask" |
457 | } |
458 | break; |
459 | } |
460 | break; |
461 | case 18: // 9 strings to match. |
462 | switch (RuleIdentifier[0]) { |
463 | default: break; |
464 | case 'A': // 2 strings to match. |
465 | if (memcmp(RuleIdentifier.data()+1, "MinusBPlus" , 10) != 0) |
466 | break; |
467 | switch (RuleIdentifier[11]) { |
468 | default: break; |
469 | case 'B': // 1 string to match. |
470 | if (memcmp(RuleIdentifier.data()+12, "MinusC" , 6) != 0) |
471 | break; |
472 | return 5; // "AMinusBPlusBMinusC" |
473 | case 'C': // 1 string to match. |
474 | if (memcmp(RuleIdentifier.data()+12, "MinusA" , 6) != 0) |
475 | break; |
476 | return 4; // "AMinusBPlusCMinusA" |
477 | } |
478 | break; |
479 | case 'b': // 1 string to match. |
480 | if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero" , 17) != 0) |
481 | break; |
482 | return 71; // "binop_left_to_zero" |
483 | case 'c': // 3 strings to match. |
484 | if (RuleIdentifier[1] != 'o') |
485 | break; |
486 | switch (RuleIdentifier[2]) { |
487 | default: break; |
488 | case 'm': // 1 string to match. |
489 | if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan" , 15) != 0) |
490 | break; |
491 | return 132; // "combine_minmax_nan" |
492 | case 'n': // 2 strings to match. |
493 | if (memcmp(RuleIdentifier.data()+3, "stant_fold_f" , 12) != 0) |
494 | break; |
495 | switch (RuleIdentifier[15]) { |
496 | default: break; |
497 | case 'a': // 1 string to match. |
498 | if (memcmp(RuleIdentifier.data()+16, "bs" , 2) != 0) |
499 | break; |
500 | return 121; // "constant_fold_fabs" |
501 | case 'n': // 1 string to match. |
502 | if (memcmp(RuleIdentifier.data()+16, "eg" , 2) != 0) |
503 | break; |
504 | return 120; // "constant_fold_fneg" |
505 | } |
506 | break; |
507 | } |
508 | break; |
509 | case 'e': // 1 string to match. |
510 | if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi" , 17) != 0) |
511 | break; |
512 | return 133; // "expand_const_fpowi" |
513 | case 'f': // 1 string to match. |
514 | if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold" , 17) != 0) |
515 | break; |
516 | return 84; // "fptrunc_fpext_fold" |
517 | case 's': // 1 string to match. |
518 | if (memcmp(RuleIdentifier.data()+1, "ext_inreg_of_load" , 17) != 0) |
519 | break; |
520 | return 95; // "sext_inreg_of_load" |
521 | } |
522 | break; |
523 | case 19: // 12 strings to match. |
524 | switch (RuleIdentifier[0]) { |
525 | default: break; |
526 | case 'b': // 1 string to match. |
527 | if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero" , 18) != 0) |
528 | break; |
529 | return 72; // "binop_right_to_zero" |
530 | case 'c': // 4 strings to match. |
531 | if (memcmp(RuleIdentifier.data()+1, "onst" , 4) != 0) |
532 | break; |
533 | switch (RuleIdentifier[5]) { |
534 | default: break; |
535 | case '_': // 1 string to match. |
536 | if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p" , 13) != 0) |
537 | break; |
538 | return 127; // "const_ptradd_to_i2p" |
539 | case 'a': // 3 strings to match. |
540 | if (memcmp(RuleIdentifier.data()+6, "nt_fold_" , 8) != 0) |
541 | break; |
542 | switch (RuleIdentifier[14]) { |
543 | default: break; |
544 | case 'b': // 1 string to match. |
545 | if (memcmp(RuleIdentifier.data()+15, "inop" , 4) != 0) |
546 | break; |
547 | return 152; // "constant_fold_binop" |
548 | case 'f': // 2 strings to match. |
549 | switch (RuleIdentifier[15]) { |
550 | default: break; |
551 | case 'l': // 1 string to match. |
552 | if (memcmp(RuleIdentifier.data()+16, "og2" , 3) != 0) |
553 | break; |
554 | return 123; // "constant_fold_flog2" |
555 | case 's': // 1 string to match. |
556 | if (memcmp(RuleIdentifier.data()+16, "qrt" , 3) != 0) |
557 | break; |
558 | return 122; // "constant_fold_fsqrt" |
559 | } |
560 | break; |
561 | } |
562 | break; |
563 | } |
564 | break; |
565 | case 'e': // 1 string to match. |
566 | if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis" , 18) != 0) |
567 | break; |
568 | return 87; // "extend_through_phis" |
569 | case 'p': // 1 string to match. |
570 | if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain" , 18) != 0) |
571 | break; |
572 | return 93; // "ptr_add_immed_chain" |
573 | case 'r': // 2 strings to match. |
574 | switch (RuleIdentifier[1]) { |
575 | default: break; |
576 | case 'e': // 1 string to match. |
577 | if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops" , 17) != 0) |
578 | break; |
579 | return 92; // "reassoc_comm_binops" |
580 | case 'i': // 1 string to match. |
581 | if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero" , 17) != 0) |
582 | break; |
583 | return 69; // "right_identity_zero" |
584 | } |
585 | break; |
586 | case 's': // 2 strings to match. |
587 | switch (RuleIdentifier[1]) { |
588 | default: break; |
589 | case 'e': // 1 string to match. |
590 | if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp" , 17) != 0) |
591 | break; |
592 | return 99; // "select_constant_cmp" |
593 | case 'i': // 1 string to match. |
594 | if (memcmp(RuleIdentifier.data()+2, "mplify_add_to_sub" , 17) != 0) |
595 | break; |
596 | return 88; // "simplify_add_to_sub" |
597 | } |
598 | break; |
599 | case 'u': // 1 string to match. |
600 | if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero" , 18) != 0) |
601 | break; |
602 | return 61; // "unary_undef_to_zero" |
603 | } |
604 | break; |
605 | case 20: // 6 strings to match. |
606 | switch (RuleIdentifier[0]) { |
607 | default: break; |
608 | case 'a': // 1 string to match. |
609 | if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask" , 19) != 0) |
610 | break; |
611 | return 163; // "and_or_disjoint_mask" |
612 | case 'b': // 1 string to match. |
613 | if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold" , 19) != 0) |
614 | break; |
615 | return 83; // "bitcast_bitcast_fold" |
616 | case 'r': // 3 strings to match. |
617 | if (RuleIdentifier[1] != 'e') |
618 | break; |
619 | switch (RuleIdentifier[2]) { |
620 | default: break; |
621 | case 'd': // 2 strings to match. |
622 | if (RuleIdentifier[3] != 'u') |
623 | break; |
624 | switch (RuleIdentifier[4]) { |
625 | default: break; |
626 | case 'c': // 1 string to match. |
627 | if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend" , 15) != 0) |
628 | break; |
629 | return 96; // "reduce_shl_of_extend" |
630 | case 'n': // 1 string to match. |
631 | if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg" , 15) != 0) |
632 | break; |
633 | return 103; // "redundant_sext_inreg" |
634 | } |
635 | break; |
636 | case 'm': // 1 string to match. |
637 | if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize" , 17) != 0) |
638 | break; |
639 | return 193; // "remove_fcanonicalize" |
640 | } |
641 | break; |
642 | case 'u': // 1 string to match. |
643 | if (memcmp(RuleIdentifier.data()+1, "nmerge_zext_to_zext" , 19) != 0) |
644 | break; |
645 | return 116; // "unmerge_zext_to_zext" |
646 | } |
647 | break; |
648 | case 21: // 9 strings to match. |
649 | switch (RuleIdentifier[0]) { |
650 | default: break; |
651 | case 'c': // 3 strings to match. |
652 | if (RuleIdentifier[1] != 'o') |
653 | break; |
654 | switch (RuleIdentifier[2]) { |
655 | default: break; |
656 | case 'm': // 1 string to match. |
657 | if (memcmp(RuleIdentifier.data()+3, "bine_concat_vector" , 18) != 0) |
658 | break; |
659 | return 181; // "combine_concat_vector" |
660 | case 'n': // 2 strings to match. |
661 | if (memcmp(RuleIdentifier.data()+3, "stant_fold_" , 11) != 0) |
662 | break; |
663 | switch (RuleIdentifier[14]) { |
664 | default: break; |
665 | case 'c': // 1 string to match. |
666 | if (memcmp(RuleIdentifier.data()+15, "ast_op" , 6) != 0) |
667 | break; |
668 | return 155; // "constant_fold_cast_op" |
669 | case 'f': // 1 string to match. |
670 | if (memcmp(RuleIdentifier.data()+15, "ptrunc" , 6) != 0) |
671 | break; |
672 | return 124; // "constant_fold_fptrunc" |
673 | } |
674 | break; |
675 | } |
676 | break; |
677 | case 'e': // 1 string to match. |
678 | if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3" , 20) != 0) |
679 | break; |
680 | return 190; // "expand_promoted_fmed3" |
681 | case 'i': // 1 string to match. |
682 | if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob" , 20) != 0) |
683 | break; |
684 | return 18; // "insert_vector_elt_oob" |
685 | case 'r': // 1 string to match. |
686 | if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp" , 20) != 0) |
687 | break; |
688 | return 78; // "right_identity_one_fp" |
689 | case 's': // 1 string to match. |
690 | if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg" , 20) != 0) |
691 | break; |
692 | return 197; // "sign_extension_in_reg" |
693 | case 'u': // 2 strings to match. |
694 | if (RuleIdentifier[1] != 'n') |
695 | break; |
696 | switch (RuleIdentifier[2]) { |
697 | default: break; |
698 | case 'd': // 1 string to match. |
699 | if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one" , 18) != 0) |
700 | break; |
701 | return 58; // "undef_to_negative_one" |
702 | case 'm': // 1 string to match. |
703 | if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc" , 18) != 0) |
704 | break; |
705 | return 115; // "unmerge_dead_to_trunc" |
706 | } |
707 | break; |
708 | } |
709 | break; |
710 | case 22: // 12 strings to match. |
711 | switch (RuleIdentifier[0]) { |
712 | default: break; |
713 | case 'c': // 2 strings to match. |
714 | if (RuleIdentifier[1] != 'o') |
715 | break; |
716 | switch (RuleIdentifier[2]) { |
717 | default: break; |
718 | case 'm': // 1 string to match. |
719 | if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat" , 19) != 0) |
720 | break; |
721 | return 188; // "combine_shuffle_concat" |
722 | case 'n': // 1 string to match. |
723 | if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop" , 19) != 0) |
724 | break; |
725 | return 153; // "constant_fold_fp_binop" |
726 | } |
727 | break; |
728 | case 'f': // 4 strings to match. |
729 | switch (RuleIdentifier[1]) { |
730 | default: break; |
731 | case 'o': // 1 string to match. |
732 | if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select" , 20) != 0) |
733 | break; |
734 | return 172; // "fold_binop_into_select" |
735 | case 'u': // 3 strings to match. |
736 | if (memcmp(RuleIdentifier.data()+2, "nnel_shift_" , 11) != 0) |
737 | break; |
738 | switch (RuleIdentifier[13]) { |
739 | default: break; |
740 | case 'l': // 1 string to match. |
741 | if (memcmp(RuleIdentifier.data()+14, "eft_zero" , 8) != 0) |
742 | break; |
743 | return 143; // "funnel_shift_left_zero" |
744 | case 'o': // 1 string to match. |
745 | if (memcmp(RuleIdentifier.data()+14, "vershift" , 8) != 0) |
746 | break; |
747 | return 144; // "funnel_shift_overshift" |
748 | case 't': // 1 string to match. |
749 | if (memcmp(RuleIdentifier.data()+14, "o_rotate" , 8) != 0) |
750 | break; |
751 | return 141; // "funnel_shift_to_rotate" |
752 | } |
753 | break; |
754 | } |
755 | break; |
756 | case 'i': // 1 string to match. |
757 | if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits" , 21) != 0) |
758 | break; |
759 | return 108; // "icmp_to_lhs_known_bits" |
760 | case 'p': // 1 string to match. |
761 | if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op" , 21) != 0) |
762 | break; |
763 | return 62; // "propagate_undef_any_op" |
764 | case 'r': // 2 strings to match. |
765 | switch (RuleIdentifier[1]) { |
766 | default: break; |
767 | case 'e': // 1 string to match. |
768 | if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands" , 20) != 0) |
769 | break; |
770 | return 162; // "redundant_neg_operands" |
771 | case 'i': // 1 string to match. |
772 | if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int" , 20) != 0) |
773 | break; |
774 | return 77; // "right_identity_one_int" |
775 | } |
776 | break; |
777 | case 's': // 1 string to match. |
778 | if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg" , 21) != 0) |
779 | break; |
780 | return 94; // "shl_ashr_to_sext_inreg" |
781 | case 't': // 1 string to match. |
782 | if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold" , 21) != 0) |
783 | break; |
784 | return 81; // "trunc_buildvector_fold" |
785 | } |
786 | break; |
787 | case 23: // 5 strings to match. |
788 | switch (RuleIdentifier[0]) { |
789 | default: break; |
790 | case 'f': // 2 strings to match. |
791 | switch (RuleIdentifier[1]) { |
792 | default: break; |
793 | case 'd': // 1 string to match. |
794 | if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16" , 21) != 0) |
795 | break; |
796 | return 196; // "fdiv_by_sqrt_to_rsq_f16" |
797 | case 'u': // 1 string to match. |
798 | if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero" , 21) != 0) |
799 | break; |
800 | return 142; // "funnel_shift_right_zero" |
801 | } |
802 | break; |
803 | case 'i': // 2 strings to match. |
804 | if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_" , 20) != 0) |
805 | break; |
806 | switch (RuleIdentifier[21]) { |
807 | default: break; |
808 | case 's': // 1 string to match. |
809 | if (RuleIdentifier[22] != 'i') |
810 | break; |
811 | return 125; // "itof_const_zero_fold_si" |
812 | case 'u': // 1 string to match. |
813 | if (RuleIdentifier[22] != 'i') |
814 | break; |
815 | return 126; // "itof_const_zero_fold_ui" |
816 | } |
817 | break; |
818 | case 'p': // 1 string to match. |
819 | if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops" , 22) != 0) |
820 | break; |
821 | return 63; // "propagate_undef_all_ops" |
822 | } |
823 | break; |
824 | case 24: // 5 strings to match. |
825 | switch (RuleIdentifier[0]) { |
826 | default: break; |
827 | case 'b': // 1 string to match. |
828 | if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero" , 23) != 0) |
829 | break; |
830 | return 59; // "binop_left_undef_to_zero" |
831 | case 'm': // 1 string to match. |
832 | if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element" , 23) != 0) |
833 | break; |
834 | return 17; // "match_extract_of_element" |
835 | case 'n': // 1 string to match. |
836 | if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and" , 23) != 0) |
837 | break; |
838 | return 97; // "narrow_binop_feeding_and" |
839 | case 's': // 1 string to match. |
840 | if (memcmp(RuleIdentifier.data()+1, "ext_inreg_to_zext_inreg" , 23) != 0) |
841 | break; |
842 | return 109; // "sext_inreg_to_zext_inreg" |
843 | case 'x': // 1 string to match. |
844 | if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg" , 23) != 0) |
845 | break; |
846 | return 134; // "xor_of_and_with_same_reg" |
847 | } |
848 | break; |
849 | case 25: // 5 strings to match. |
850 | switch (RuleIdentifier[0]) { |
851 | default: break; |
852 | case 'b': // 3 strings to match. |
853 | switch (RuleIdentifier[1]) { |
854 | default: break; |
855 | case 'i': // 2 strings to match. |
856 | if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_" , 20) != 0) |
857 | break; |
858 | switch (RuleIdentifier[22]) { |
859 | default: break; |
860 | case 'a': // 1 string to match. |
861 | if (memcmp(RuleIdentifier.data()+23, "nd" , 2) != 0) |
862 | break; |
863 | return 149; // "bitfield_extract_from_and" |
864 | case 's': // 1 string to match. |
865 | if (memcmp(RuleIdentifier.data()+23, "hr" , 2) != 0) |
866 | break; |
867 | return 150; // "bitfield_extract_from_shr" |
868 | } |
869 | break; |
870 | case 'u': // 1 string to match. |
871 | if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold" , 23) != 0) |
872 | break; |
873 | return 80; // "buildvector_identity_fold" |
874 | } |
875 | break; |
876 | case 'e': // 1 string to match. |
877 | if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec" , 24) != 0) |
878 | break; |
879 | return 51; // "extract_vec_elt_build_vec" |
880 | case 'r': // 1 string to match. |
881 | if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp" , 24) != 0) |
882 | break; |
883 | return 86; // "right_identity_neg_one_fp" |
884 | } |
885 | break; |
886 | case 26: // 4 strings to match. |
887 | switch (RuleIdentifier[0]) { |
888 | default: break; |
889 | case 'b': // 1 string to match. |
890 | if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef" , 25) != 0) |
891 | break; |
892 | return 60; // "binop_right_undef_to_undef" |
893 | case 'c': // 1 string to match. |
894 | if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs" , 25) != 0) |
895 | break; |
896 | return 178; // "commute_fp_constant_to_rhs" |
897 | case 'f': // 1 string to match. |
898 | if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift" , 25) != 0) |
899 | break; |
900 | return 140; // "funnel_shift_from_or_shift" |
901 | case 'r': // 1 string to match. |
902 | if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp" , 25) != 0) |
903 | break; |
904 | return 85; // "right_identity_neg_zero_fp" |
905 | } |
906 | break; |
907 | case 27: // 4 strings to match. |
908 | switch (RuleIdentifier[0]) { |
909 | default: break; |
910 | case 'c': // 1 string to match. |
911 | if (memcmp(RuleIdentifier.data()+1, "ommute_int_constant_to_rhs" , 26) != 0) |
912 | break; |
913 | return 177; // "commute_int_constant_to_rhs" |
914 | case 'd': // 1 string to match. |
915 | if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine" , 26) != 0) |
916 | break; |
917 | return 183; // "double_icmp_zero_or_combine" |
918 | case 'r': // 1 string to match. |
919 | if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality" , 26) != 0) |
920 | break; |
921 | return 175; // "redundant_binop_in_equality" |
922 | case 't': // 1 string to match. |
923 | if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold" , 26) != 0) |
924 | break; |
925 | return 82; // "trunc_lshr_buildvector_fold" |
926 | } |
927 | break; |
928 | case 28: // 4 strings to match. |
929 | switch (RuleIdentifier[0]) { |
930 | default: break; |
931 | case 'd': // 1 string to match. |
932 | if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine" , 27) != 0) |
933 | break; |
934 | return 182; // "double_icmp_zero_and_combine" |
935 | case 'o': // 1 string to match. |
936 | if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond" , 27) != 0) |
937 | break; |
938 | return 112; // "opt_brcond_by_inverting_cond" |
939 | case 'p': // 1 string to match. |
940 | if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask" , 27) != 0) |
941 | break; |
942 | return 64; // "propagate_undef_shuffle_mask" |
943 | case 's': // 1 string to match. |
944 | if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain" , 27) != 0) |
945 | break; |
946 | return 137; // "shift_of_shifted_logic_chain" |
947 | } |
948 | break; |
949 | case 29: // 3 strings to match. |
950 | switch (RuleIdentifier[0]) { |
951 | default: break; |
952 | case 'b': // 1 string to match. |
953 | if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and" , 28) != 0) |
954 | break; |
955 | return 151; // "bitfield_extract_from_shr_and" |
956 | case 'c': // 1 string to match. |
957 | if (memcmp(RuleIdentifier.data()+1, "ombine_extracted_vector_load" , 28) != 0) |
958 | break; |
959 | return 55; // "combine_extracted_vector_load" |
960 | case 'i': // 1 string to match. |
961 | if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits" , 28) != 0) |
962 | break; |
963 | return 107; // "icmp_to_true_false_known_bits" |
964 | } |
965 | break; |
966 | case 30: // 1 string to match. |
967 | if (memcmp(RuleIdentifier.data()+0, "freeze_of_non_undef_non_poison" , 30) != 0) |
968 | break; |
969 | return 48; // "freeze_of_non_undef_non_poison" |
970 | case 31: // 3 strings to match. |
971 | switch (RuleIdentifier[0]) { |
972 | default: break; |
973 | case 'f': // 1 string to match. |
974 | if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy" , 30) != 0) |
975 | break; |
976 | return 189; // "fcmp_select_to_fmin_fmax_legacy" |
977 | case 'i': // 2 strings to match. |
978 | if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_" , 21) != 0) |
979 | break; |
980 | switch (RuleIdentifier[22]) { |
981 | default: break; |
982 | case 'e': // 1 string to match. |
983 | if (memcmp(RuleIdentifier.data()+23, "lt_undef" , 8) != 0) |
984 | break; |
985 | return 16; // "insert_vector_element_elt_undef" |
986 | case 'i': // 1 string to match. |
987 | if (memcmp(RuleIdentifier.data()+23, "dx_undef" , 8) != 0) |
988 | break; |
989 | return 15; // "insert_vector_element_idx_undef" |
990 | } |
991 | break; |
992 | } |
993 | break; |
994 | case 32: // 4 strings to match. |
995 | switch (RuleIdentifier[0]) { |
996 | default: break; |
997 | case 'b': // 1 string to match. |
998 | if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg" , 31) != 0) |
999 | break; |
1000 | return 148; // "bitfield_extract_from_sext_inreg" |
1001 | case 'c': // 2 strings to match. |
1002 | if (memcmp(RuleIdentifier.data()+1, "ombine_f" , 8) != 0) |
1003 | break; |
1004 | switch (RuleIdentifier[9]) { |
1005 | default: break; |
1006 | case 'a': // 1 string to match. |
1007 | if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma" , 22) != 0) |
1008 | break; |
1009 | return 164; // "combine_fadd_fmul_to_fmad_or_fma" |
1010 | case 's': // 1 string to match. |
1011 | if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma" , 22) != 0) |
1012 | break; |
1013 | return 168; // "combine_fsub_fmul_to_fmad_or_fma" |
1014 | } |
1015 | break; |
1016 | case 'e': // 1 string to match. |
1017 | if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const" , 31) != 0) |
1018 | break; |
1019 | return 19; // "extract_vector_element_not_const" |
1020 | } |
1021 | break; |
1022 | case 34: // 1 string to match. |
1023 | if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector" , 34) != 0) |
1024 | break; |
1025 | return 52; // "extract_all_elts_from_build_vector" |
1026 | case 36: // 11 strings to match. |
1027 | switch (RuleIdentifier[0]) { |
1028 | default: break; |
1029 | case 'c': // 2 strings to match. |
1030 | if (memcmp(RuleIdentifier.data()+1, "ombine_" , 7) != 0) |
1031 | break; |
1032 | switch (RuleIdentifier[8]) { |
1033 | default: break; |
1034 | case 'f': // 1 string to match. |
1035 | if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma" , 27) != 0) |
1036 | break; |
1037 | return 166; // "combine_fadd_fma_fmul_to_fmad_or_fma" |
1038 | case 'i': // 1 string to match. |
1039 | if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector" , 27) != 0) |
1040 | break; |
1041 | return 50; // "combine_insert_vec_elts_build_vector" |
1042 | } |
1043 | break; |
1044 | case 'e': // 7 strings to match. |
1045 | if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector" , 34) != 0) |
1046 | break; |
1047 | switch (RuleIdentifier[35]) { |
1048 | default: break; |
1049 | case '2': // 1 string to match. |
1050 | return 21; // "extract_vector_element_build_vector2" |
1051 | case '3': // 1 string to match. |
1052 | return 22; // "extract_vector_element_build_vector3" |
1053 | case '4': // 1 string to match. |
1054 | return 23; // "extract_vector_element_build_vector4" |
1055 | case '5': // 1 string to match. |
1056 | return 24; // "extract_vector_element_build_vector5" |
1057 | case '7': // 1 string to match. |
1058 | return 25; // "extract_vector_element_build_vector7" |
1059 | case '8': // 1 string to match. |
1060 | return 26; // "extract_vector_element_build_vector8" |
1061 | case '9': // 1 string to match. |
1062 | return 27; // "extract_vector_element_build_vector9" |
1063 | } |
1064 | break; |
1065 | case 'i': // 1 string to match. |
1066 | if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds" , 35) != 0) |
1067 | break; |
1068 | return 67; // "insert_extract_vec_elt_out_of_bounds" |
1069 | case 'm': // 1 string to match. |
1070 | if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index" , 35) != 0) |
1071 | break; |
1072 | return 14; // "match_extract_of_element_undef_index" |
1073 | } |
1074 | break; |
1075 | case 37: // 11 strings to match. |
1076 | switch (RuleIdentifier[0]) { |
1077 | default: break; |
1078 | case 'c': // 1 string to match. |
1079 | if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma" , 36) != 0) |
1080 | break; |
1081 | return 169; // "combine_fsub_fneg_fmul_to_fmad_or_fma" |
1082 | case 'e': // 8 strings to match. |
1083 | if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_" , 22) != 0) |
1084 | break; |
1085 | switch (RuleIdentifier[23]) { |
1086 | default: break; |
1087 | case 'b': // 7 strings to match. |
1088 | if (memcmp(RuleIdentifier.data()+24, "uild_vector1" , 12) != 0) |
1089 | break; |
1090 | switch (RuleIdentifier[36]) { |
1091 | default: break; |
1092 | case '0': // 1 string to match. |
1093 | return 28; // "extract_vector_element_build_vector10" |
1094 | case '1': // 1 string to match. |
1095 | return 29; // "extract_vector_element_build_vector11" |
1096 | case '2': // 1 string to match. |
1097 | return 30; // "extract_vector_element_build_vector12" |
1098 | case '3': // 1 string to match. |
1099 | return 31; // "extract_vector_element_build_vector13" |
1100 | case '4': // 1 string to match. |
1101 | return 32; // "extract_vector_element_build_vector14" |
1102 | case '5': // 1 string to match. |
1103 | return 33; // "extract_vector_element_build_vector15" |
1104 | case '6': // 1 string to match. |
1105 | return 34; // "extract_vector_element_build_vector16" |
1106 | } |
1107 | break; |
1108 | case 's': // 1 string to match. |
1109 | if (memcmp(RuleIdentifier.data()+24, "huffle_vector" , 13) != 0) |
1110 | break; |
1111 | return 42; // "extract_vector_element_shuffle_vector" |
1112 | } |
1113 | break; |
1114 | case 'h': // 1 string to match. |
1115 | if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands" , 36) != 0) |
1116 | break; |
1117 | return 89; // "hoist_logic_op_with_same_opcode_hands" |
1118 | case 'm': // 1 string to match. |
1119 | if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector" , 36) != 0) |
1120 | break; |
1121 | return 13; // "match_extract_of_element_undef_vector" |
1122 | } |
1123 | break; |
1124 | case 38: // 2 strings to match. |
1125 | if (memcmp(RuleIdentifier.data()+0, "combine_f" , 9) != 0) |
1126 | break; |
1127 | switch (RuleIdentifier[9]) { |
1128 | default: break; |
1129 | case 'a': // 1 string to match. |
1130 | if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma" , 28) != 0) |
1131 | break; |
1132 | return 165; // "combine_fadd_fpext_fmul_to_fmad_or_fma" |
1133 | case 's': // 1 string to match. |
1134 | if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma" , 28) != 0) |
1135 | break; |
1136 | return 170; // "combine_fsub_fpext_fmul_to_fmad_or_fma" |
1137 | } |
1138 | break; |
1139 | case 40: // 1 string to match. |
1140 | if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices" , 40) != 0) |
1141 | break; |
1142 | return 20; // "extract_vector_element_different_indices" |
1143 | case 42: // 8 strings to match. |
1144 | switch (RuleIdentifier[0]) { |
1145 | default: break; |
1146 | case 'c': // 1 string to match. |
1147 | if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma" , 41) != 0) |
1148 | break; |
1149 | return 167; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma" |
1150 | case 'e': // 7 strings to match. |
1151 | if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc" , 40) != 0) |
1152 | break; |
1153 | switch (RuleIdentifier[41]) { |
1154 | default: break; |
1155 | case '2': // 1 string to match. |
1156 | return 35; // "extract_vector_element_build_vector_trunc2" |
1157 | case '3': // 1 string to match. |
1158 | return 36; // "extract_vector_element_build_vector_trunc3" |
1159 | case '4': // 1 string to match. |
1160 | return 37; // "extract_vector_element_build_vector_trunc4" |
1161 | case '5': // 1 string to match. |
1162 | return 38; // "extract_vector_element_build_vector_trunc5" |
1163 | case '6': // 1 string to match. |
1164 | return 39; // "extract_vector_element_build_vector_trunc6" |
1165 | case '7': // 1 string to match. |
1166 | return 40; // "extract_vector_element_build_vector_trunc7" |
1167 | case '8': // 1 string to match. |
1168 | return 41; // "extract_vector_element_build_vector_trunc8" |
1169 | } |
1170 | break; |
1171 | } |
1172 | break; |
1173 | case 43: // 1 string to match. |
1174 | if (memcmp(RuleIdentifier.data()+0, "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma" , 43) != 0) |
1175 | break; |
1176 | return 171; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma" |
1177 | case 44: // 1 string to match. |
1178 | if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element" , 44) != 0) |
1179 | break; |
1180 | return 43; // "insert_vector_element_extract_vector_element" |
1181 | case 46: // 1 string to match. |
1182 | if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating" , 46) != 0) |
1183 | break; |
1184 | return 49; // "push_freeze_to_prevent_poison_from_propagating" |
1185 | } |
1186 | #endif // ifndef NDEBUG |
1187 | |
1188 | return std::nullopt; |
1189 | } |
1190 | static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) { |
1191 | std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-'); |
1192 | if (!RangePair.second.empty()) { |
1193 | const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first); |
1194 | const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second); |
1195 | if (!First || !Last) |
1196 | return std::nullopt; |
1197 | if (First >= Last) |
1198 | report_fatal_error(reason: "Beginning of range should be before end of range" ); |
1199 | return {{*First, *Last + 1}}; |
1200 | } |
1201 | if (RangePair.first == "*" ) { |
1202 | return {{0, 199}}; |
1203 | } |
1204 | const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first); |
1205 | if (!I) |
1206 | return std::nullopt; |
1207 | return {{*I, *I + 1}}; |
1208 | } |
1209 | |
1210 | bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) { |
1211 | auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier); |
1212 | if (!MaybeRange) |
1213 | return false; |
1214 | for (auto I = MaybeRange->first; I < MaybeRange->second; ++I) |
1215 | DisabledRules.reset(Idx: I); |
1216 | return true; |
1217 | } |
1218 | |
1219 | bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) { |
1220 | auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier); |
1221 | if (!MaybeRange) |
1222 | return false; |
1223 | for (auto I = MaybeRange->first; I < MaybeRange->second; ++I) |
1224 | DisabledRules.set(I); |
1225 | return true; |
1226 | } |
1227 | |
1228 | static std::vector<std::string> AMDGPUPostLegalizerCombinerOption; |
1229 | static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption( |
1230 | "amdgpupostlegalizercombiner-disable-rule" , |
1231 | cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass" ), |
1232 | cl::CommaSeparated, |
1233 | cl::Hidden, |
1234 | cl::cat(GICombinerOptionCategory), |
1235 | cl::callback(CB: [](const std::string &Str) { |
1236 | AMDGPUPostLegalizerCombinerOption.push_back(x: Str); |
1237 | })); |
1238 | static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption( |
1239 | "amdgpupostlegalizercombiner-only-enable-rule" , |
1240 | cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones" ), |
1241 | cl::Hidden, |
1242 | cl::cat(GICombinerOptionCategory), |
1243 | cl::callback(CB: [](const std::string &CommaSeparatedArg) { |
1244 | StringRef Str = CommaSeparatedArg; |
1245 | AMDGPUPostLegalizerCombinerOption.push_back(x: "*" ); |
1246 | do { |
1247 | auto X = Str.split(Separator: "," ); |
1248 | AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str()); |
1249 | Str = X.second; |
1250 | } while (!Str.empty()); |
1251 | })); |
1252 | |
1253 | |
1254 | bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const { |
1255 | return !DisabledRules.test(Idx: RuleID); |
1256 | } |
1257 | bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() { |
1258 | for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) { |
1259 | bool Enabled = Identifier.consume_front(Prefix: "!" ); |
1260 | if (Enabled && !setRuleEnabled(Identifier)) |
1261 | return false; |
1262 | if (!Enabled && !setRuleDisabled(Identifier)) |
1263 | return false; |
1264 | } |
1265 | return true; |
1266 | } |
1267 | |
1268 | #endif // ifdef GET_GICOMBINER_TYPES |
1269 | |
1270 | #ifdef GET_GICOMBINER_TYPES |
1271 | const unsigned MAX_SUBTARGET_PREDICATES = 3; |
1272 | using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>; |
1273 | #endif // ifdef GET_GICOMBINER_TYPES |
1274 | |
1275 | #ifdef GET_GICOMBINER_CLASS_MEMBERS |
1276 | PredicateBitset AvailableModuleFeatures; |
1277 | mutable PredicateBitset AvailableFunctionFeatures; |
1278 | PredicateBitset getAvailableFeatures() const { |
1279 | return AvailableModuleFeatures | AvailableFunctionFeatures; |
1280 | } |
1281 | PredicateBitset |
1282 | computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const; |
1283 | PredicateBitset |
1284 | computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, |
1285 | const MachineFunction *MF) const; |
1286 | void setupGeneratedPerFunctionState(MachineFunction &MF) override; |
1287 | #endif // ifdef GET_GICOMBINER_CLASS_MEMBERS |
1288 | #ifdef GET_GICOMBINER_CLASS_MEMBERS |
1289 | mutable MatcherState State; |
1290 | typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const; |
1291 | typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const; |
1292 | const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo; |
1293 | static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[]; |
1294 | static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[]; |
1295 | bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override; |
1296 | bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override; |
1297 | bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override; |
1298 | const uint8_t *getMatchTable() const override; |
1299 | bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override; |
1300 | bool testSimplePredicate(unsigned PredicateID) const override; |
1301 | bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override; |
1302 | #endif // ifdef GET_GICOMBINER_CLASS_MEMBERS |
1303 | |
1304 | #ifdef GET_GICOMBINER_IMPL |
1305 | // LLT Objects. |
1306 | enum { |
1307 | GILLT_s16, |
1308 | GILLT_s32, |
1309 | }; |
1310 | const static size_t NumTypeObjects = 2; |
1311 | const static LLT TypeObjects[] = { |
1312 | LLT::scalar(16), |
1313 | LLT::scalar(32), |
1314 | }; |
1315 | |
1316 | // Bits for subtarget features that participate in instruction matching. |
1317 | enum SubtargetFeatureBits : uint8_t { |
1318 | Feature_Has16BitInstsBit = 1, |
1319 | Feature_NotHasMed3_16Bit = 2, |
1320 | Feature_HasFminFmaxLegacyBit = 0, |
1321 | }; |
1322 | |
1323 | PredicateBitset AMDGPUPostLegalizerCombinerImpl:: |
1324 | computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const { |
1325 | PredicateBitset Features{}; |
1326 | if (Subtarget->has16BitInsts()) |
1327 | Features.set(Feature_Has16BitInstsBit); |
1328 | if (!Subtarget->hasMed3_16()) |
1329 | Features.set(Feature_NotHasMed3_16Bit); |
1330 | if (Subtarget->hasFminFmaxLegacy()) |
1331 | Features.set(Feature_HasFminFmaxLegacyBit); |
1332 | return Features; |
1333 | } |
1334 | |
1335 | void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) { |
1336 | AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF); |
1337 | } |
1338 | PredicateBitset AMDGPUPostLegalizerCombinerImpl:: |
1339 | computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const { |
1340 | PredicateBitset Features{}; |
1341 | return Features; |
1342 | } |
1343 | |
1344 | // Feature bitsets. |
1345 | enum { |
1346 | GIFBS_Invalid, |
1347 | GIFBS_HasFminFmaxLegacy, |
1348 | GIFBS_Has16BitInsts_NotHasMed3_16, |
1349 | }; |
1350 | constexpr static PredicateBitset FeatureBitsets[] { |
1351 | {}, // GIFBS_Invalid |
1352 | {Feature_HasFminFmaxLegacyBit, }, |
1353 | {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, }, |
1354 | }; |
1355 | |
1356 | // ComplexPattern predicates. |
1357 | enum { |
1358 | GICP_Invalid, |
1359 | }; |
1360 | // See constructor for table contents |
1361 | |
1362 | AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn |
1363 | AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = { |
1364 | nullptr, // GICP_Invalid |
1365 | }; |
1366 | |
1367 | enum { |
1368 | GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1, |
1369 | GICXXPred_MI_Predicate_GICombiner1, |
1370 | GICXXPred_MI_Predicate_GICombiner2, |
1371 | GICXXPred_MI_Predicate_GICombiner3, |
1372 | GICXXPred_MI_Predicate_GICombiner4, |
1373 | GICXXPred_MI_Predicate_GICombiner5, |
1374 | GICXXPred_MI_Predicate_GICombiner6, |
1375 | GICXXPred_MI_Predicate_GICombiner7, |
1376 | GICXXPred_MI_Predicate_GICombiner8, |
1377 | }; |
1378 | bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const { |
1379 | switch (PredicateID) { |
1380 | case GICXXPred_MI_Predicate_GICombiner0: { |
1381 | return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI); |
1382 | } |
1383 | case GICXXPred_MI_Predicate_GICombiner1: { |
1384 | return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI); |
1385 | } |
1386 | case GICXXPred_MI_Predicate_GICombiner2: { |
1387 | return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0); |
1388 | } |
1389 | case GICXXPred_MI_Predicate_GICombiner3: { |
1390 | return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0); |
1391 | } |
1392 | case GICXXPred_MI_Predicate_GICombiner4: { |
1393 | return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0); |
1394 | } |
1395 | case GICXXPred_MI_Predicate_GICombiner5: { |
1396 | return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR, |
1397 | {MRI.getType(State.MIs[2]->getOperand(1).getReg()), |
1398 | MRI.getType(State.MIs[1]->getOperand(2).getReg())}}); |
1399 | } |
1400 | case GICXXPred_MI_Predicate_GICombiner6: { |
1401 | return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL, |
1402 | {MRI.getType(State.MIs[2]->getOperand(1).getReg()), |
1403 | MRI.getType(State.MIs[1]->getOperand(2).getReg())}}); |
1404 | } |
1405 | case GICXXPred_MI_Predicate_GICombiner7: { |
1406 | return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ && |
1407 | !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() && |
1408 | (MRI.getType(State.MIs[1]->getOperand(2).getReg()) == |
1409 | MRI.getType(State.MIs[2]->getOperand(2).getReg())); |
1410 | } |
1411 | case GICXXPred_MI_Predicate_GICombiner8: { |
1412 | return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE && |
1413 | !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() && |
1414 | (MRI.getType(State.MIs[1]->getOperand(2).getReg()) == |
1415 | MRI.getType(State.MIs[2]->getOperand(2).getReg())); |
1416 | } |
1417 | } |
1418 | llvm_unreachable("Unknown predicate" ); |
1419 | return false; |
1420 | } |
1421 | bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const { |
1422 | llvm_unreachable("Unknown predicate" ); |
1423 | return false; |
1424 | } |
1425 | bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const { |
1426 | llvm_unreachable("Unknown predicate" ); |
1427 | return false; |
1428 | } |
1429 | bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const { |
1430 | llvm_unreachable("Unknown predicate" ); |
1431 | return false; |
1432 | } |
1433 | enum { |
1434 | GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1, |
1435 | GICXXPred_Simple_IsRule1Enabled, |
1436 | GICXXPred_Simple_IsRule2Enabled, |
1437 | GICXXPred_Simple_IsRule3Enabled, |
1438 | GICXXPred_Simple_IsRule4Enabled, |
1439 | GICXXPred_Simple_IsRule5Enabled, |
1440 | GICXXPred_Simple_IsRule6Enabled, |
1441 | GICXXPred_Simple_IsRule7Enabled, |
1442 | GICXXPred_Simple_IsRule8Enabled, |
1443 | GICXXPred_Simple_IsRule9Enabled, |
1444 | GICXXPred_Simple_IsRule10Enabled, |
1445 | GICXXPred_Simple_IsRule11Enabled, |
1446 | GICXXPred_Simple_IsRule12Enabled, |
1447 | GICXXPred_Simple_IsRule13Enabled, |
1448 | GICXXPred_Simple_IsRule14Enabled, |
1449 | GICXXPred_Simple_IsRule15Enabled, |
1450 | GICXXPred_Simple_IsRule16Enabled, |
1451 | GICXXPred_Simple_IsRule17Enabled, |
1452 | GICXXPred_Simple_IsRule18Enabled, |
1453 | GICXXPred_Simple_IsRule19Enabled, |
1454 | GICXXPred_Simple_IsRule20Enabled, |
1455 | GICXXPred_Simple_IsRule21Enabled, |
1456 | GICXXPred_Simple_IsRule22Enabled, |
1457 | GICXXPred_Simple_IsRule23Enabled, |
1458 | GICXXPred_Simple_IsRule24Enabled, |
1459 | GICXXPred_Simple_IsRule25Enabled, |
1460 | GICXXPred_Simple_IsRule26Enabled, |
1461 | GICXXPred_Simple_IsRule27Enabled, |
1462 | GICXXPred_Simple_IsRule28Enabled, |
1463 | GICXXPred_Simple_IsRule29Enabled, |
1464 | GICXXPred_Simple_IsRule30Enabled, |
1465 | GICXXPred_Simple_IsRule31Enabled, |
1466 | GICXXPred_Simple_IsRule32Enabled, |
1467 | GICXXPred_Simple_IsRule33Enabled, |
1468 | GICXXPred_Simple_IsRule34Enabled, |
1469 | GICXXPred_Simple_IsRule35Enabled, |
1470 | GICXXPred_Simple_IsRule36Enabled, |
1471 | GICXXPred_Simple_IsRule37Enabled, |
1472 | GICXXPred_Simple_IsRule38Enabled, |
1473 | GICXXPred_Simple_IsRule39Enabled, |
1474 | GICXXPred_Simple_IsRule40Enabled, |
1475 | GICXXPred_Simple_IsRule41Enabled, |
1476 | GICXXPred_Simple_IsRule42Enabled, |
1477 | GICXXPred_Simple_IsRule43Enabled, |
1478 | GICXXPred_Simple_IsRule44Enabled, |
1479 | GICXXPred_Simple_IsRule45Enabled, |
1480 | GICXXPred_Simple_IsRule46Enabled, |
1481 | GICXXPred_Simple_IsRule47Enabled, |
1482 | GICXXPred_Simple_IsRule48Enabled, |
1483 | GICXXPred_Simple_IsRule49Enabled, |
1484 | GICXXPred_Simple_IsRule50Enabled, |
1485 | GICXXPred_Simple_IsRule51Enabled, |
1486 | GICXXPred_Simple_IsRule52Enabled, |
1487 | GICXXPred_Simple_IsRule53Enabled, |
1488 | GICXXPred_Simple_IsRule54Enabled, |
1489 | GICXXPred_Simple_IsRule55Enabled, |
1490 | GICXXPred_Simple_IsRule56Enabled, |
1491 | GICXXPred_Simple_IsRule57Enabled, |
1492 | GICXXPred_Simple_IsRule58Enabled, |
1493 | GICXXPred_Simple_IsRule59Enabled, |
1494 | GICXXPred_Simple_IsRule60Enabled, |
1495 | GICXXPred_Simple_IsRule61Enabled, |
1496 | GICXXPred_Simple_IsRule62Enabled, |
1497 | GICXXPred_Simple_IsRule63Enabled, |
1498 | GICXXPred_Simple_IsRule64Enabled, |
1499 | GICXXPred_Simple_IsRule65Enabled, |
1500 | GICXXPred_Simple_IsRule66Enabled, |
1501 | GICXXPred_Simple_IsRule67Enabled, |
1502 | GICXXPred_Simple_IsRule68Enabled, |
1503 | GICXXPred_Simple_IsRule69Enabled, |
1504 | GICXXPred_Simple_IsRule70Enabled, |
1505 | GICXXPred_Simple_IsRule71Enabled, |
1506 | GICXXPred_Simple_IsRule72Enabled, |
1507 | GICXXPred_Simple_IsRule73Enabled, |
1508 | GICXXPred_Simple_IsRule74Enabled, |
1509 | GICXXPred_Simple_IsRule75Enabled, |
1510 | GICXXPred_Simple_IsRule76Enabled, |
1511 | GICXXPred_Simple_IsRule77Enabled, |
1512 | GICXXPred_Simple_IsRule78Enabled, |
1513 | GICXXPred_Simple_IsRule79Enabled, |
1514 | GICXXPred_Simple_IsRule80Enabled, |
1515 | GICXXPred_Simple_IsRule81Enabled, |
1516 | GICXXPred_Simple_IsRule82Enabled, |
1517 | GICXXPred_Simple_IsRule83Enabled, |
1518 | GICXXPred_Simple_IsRule84Enabled, |
1519 | GICXXPred_Simple_IsRule85Enabled, |
1520 | GICXXPred_Simple_IsRule86Enabled, |
1521 | GICXXPred_Simple_IsRule87Enabled, |
1522 | GICXXPred_Simple_IsRule88Enabled, |
1523 | GICXXPred_Simple_IsRule89Enabled, |
1524 | GICXXPred_Simple_IsRule90Enabled, |
1525 | GICXXPred_Simple_IsRule91Enabled, |
1526 | GICXXPred_Simple_IsRule92Enabled, |
1527 | GICXXPred_Simple_IsRule93Enabled, |
1528 | GICXXPred_Simple_IsRule94Enabled, |
1529 | GICXXPred_Simple_IsRule95Enabled, |
1530 | GICXXPred_Simple_IsRule96Enabled, |
1531 | GICXXPred_Simple_IsRule97Enabled, |
1532 | GICXXPred_Simple_IsRule98Enabled, |
1533 | GICXXPred_Simple_IsRule99Enabled, |
1534 | GICXXPred_Simple_IsRule100Enabled, |
1535 | GICXXPred_Simple_IsRule101Enabled, |
1536 | GICXXPred_Simple_IsRule102Enabled, |
1537 | GICXXPred_Simple_IsRule103Enabled, |
1538 | GICXXPred_Simple_IsRule104Enabled, |
1539 | GICXXPred_Simple_IsRule105Enabled, |
1540 | GICXXPred_Simple_IsRule106Enabled, |
1541 | GICXXPred_Simple_IsRule107Enabled, |
1542 | GICXXPred_Simple_IsRule108Enabled, |
1543 | GICXXPred_Simple_IsRule109Enabled, |
1544 | GICXXPred_Simple_IsRule110Enabled, |
1545 | GICXXPred_Simple_IsRule111Enabled, |
1546 | GICXXPred_Simple_IsRule112Enabled, |
1547 | GICXXPred_Simple_IsRule113Enabled, |
1548 | GICXXPred_Simple_IsRule114Enabled, |
1549 | GICXXPred_Simple_IsRule115Enabled, |
1550 | GICXXPred_Simple_IsRule116Enabled, |
1551 | GICXXPred_Simple_IsRule117Enabled, |
1552 | GICXXPred_Simple_IsRule118Enabled, |
1553 | GICXXPred_Simple_IsRule119Enabled, |
1554 | GICXXPred_Simple_IsRule120Enabled, |
1555 | GICXXPred_Simple_IsRule121Enabled, |
1556 | GICXXPred_Simple_IsRule122Enabled, |
1557 | GICXXPred_Simple_IsRule123Enabled, |
1558 | GICXXPred_Simple_IsRule124Enabled, |
1559 | GICXXPred_Simple_IsRule125Enabled, |
1560 | GICXXPred_Simple_IsRule126Enabled, |
1561 | GICXXPred_Simple_IsRule127Enabled, |
1562 | GICXXPred_Simple_IsRule128Enabled, |
1563 | GICXXPred_Simple_IsRule129Enabled, |
1564 | GICXXPred_Simple_IsRule130Enabled, |
1565 | GICXXPred_Simple_IsRule131Enabled, |
1566 | GICXXPred_Simple_IsRule132Enabled, |
1567 | GICXXPred_Simple_IsRule133Enabled, |
1568 | GICXXPred_Simple_IsRule134Enabled, |
1569 | GICXXPred_Simple_IsRule135Enabled, |
1570 | GICXXPred_Simple_IsRule136Enabled, |
1571 | GICXXPred_Simple_IsRule137Enabled, |
1572 | GICXXPred_Simple_IsRule138Enabled, |
1573 | GICXXPred_Simple_IsRule139Enabled, |
1574 | GICXXPred_Simple_IsRule140Enabled, |
1575 | GICXXPred_Simple_IsRule141Enabled, |
1576 | GICXXPred_Simple_IsRule142Enabled, |
1577 | GICXXPred_Simple_IsRule143Enabled, |
1578 | GICXXPred_Simple_IsRule144Enabled, |
1579 | GICXXPred_Simple_IsRule145Enabled, |
1580 | GICXXPred_Simple_IsRule146Enabled, |
1581 | GICXXPred_Simple_IsRule147Enabled, |
1582 | GICXXPred_Simple_IsRule148Enabled, |
1583 | GICXXPred_Simple_IsRule149Enabled, |
1584 | GICXXPred_Simple_IsRule150Enabled, |
1585 | GICXXPred_Simple_IsRule151Enabled, |
1586 | GICXXPred_Simple_IsRule152Enabled, |
1587 | GICXXPred_Simple_IsRule153Enabled, |
1588 | GICXXPred_Simple_IsRule154Enabled, |
1589 | GICXXPred_Simple_IsRule155Enabled, |
1590 | GICXXPred_Simple_IsRule156Enabled, |
1591 | GICXXPred_Simple_IsRule157Enabled, |
1592 | GICXXPred_Simple_IsRule158Enabled, |
1593 | GICXXPred_Simple_IsRule159Enabled, |
1594 | GICXXPred_Simple_IsRule160Enabled, |
1595 | GICXXPred_Simple_IsRule161Enabled, |
1596 | GICXXPred_Simple_IsRule162Enabled, |
1597 | GICXXPred_Simple_IsRule163Enabled, |
1598 | GICXXPred_Simple_IsRule164Enabled, |
1599 | GICXXPred_Simple_IsRule165Enabled, |
1600 | GICXXPred_Simple_IsRule166Enabled, |
1601 | GICXXPred_Simple_IsRule167Enabled, |
1602 | GICXXPred_Simple_IsRule168Enabled, |
1603 | GICXXPred_Simple_IsRule169Enabled, |
1604 | GICXXPred_Simple_IsRule170Enabled, |
1605 | GICXXPred_Simple_IsRule171Enabled, |
1606 | GICXXPred_Simple_IsRule172Enabled, |
1607 | GICXXPred_Simple_IsRule173Enabled, |
1608 | GICXXPred_Simple_IsRule174Enabled, |
1609 | GICXXPred_Simple_IsRule175Enabled, |
1610 | GICXXPred_Simple_IsRule176Enabled, |
1611 | GICXXPred_Simple_IsRule177Enabled, |
1612 | GICXXPred_Simple_IsRule178Enabled, |
1613 | GICXXPred_Simple_IsRule179Enabled, |
1614 | GICXXPred_Simple_IsRule180Enabled, |
1615 | GICXXPred_Simple_IsRule181Enabled, |
1616 | GICXXPred_Simple_IsRule182Enabled, |
1617 | GICXXPred_Simple_IsRule183Enabled, |
1618 | GICXXPred_Simple_IsRule184Enabled, |
1619 | GICXXPred_Simple_IsRule185Enabled, |
1620 | GICXXPred_Simple_IsRule186Enabled, |
1621 | GICXXPred_Simple_IsRule187Enabled, |
1622 | GICXXPred_Simple_IsRule188Enabled, |
1623 | GICXXPred_Simple_IsRule189Enabled, |
1624 | GICXXPred_Simple_IsRule190Enabled, |
1625 | GICXXPred_Simple_IsRule191Enabled, |
1626 | GICXXPred_Simple_IsRule192Enabled, |
1627 | GICXXPred_Simple_IsRule193Enabled, |
1628 | GICXXPred_Simple_IsRule194Enabled, |
1629 | GICXXPred_Simple_IsRule195Enabled, |
1630 | GICXXPred_Simple_IsRule196Enabled, |
1631 | GICXXPred_Simple_IsRule197Enabled, |
1632 | GICXXPred_Simple_IsRule198Enabled, |
1633 | }; |
1634 | |
1635 | bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const { |
1636 | return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1); |
1637 | } |
1638 | // Custom renderers. |
1639 | enum { |
1640 | GICR_Invalid, |
1641 | }; |
1642 | AMDGPUPostLegalizerCombinerImpl::CustomRendererFn |
1643 | AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = { |
1644 | nullptr, // GICR_Invalid |
1645 | }; |
1646 | |
1647 | bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const { |
1648 | const TargetSubtargetInfo &ST = MF.getSubtarget(); |
1649 | const PredicateBitset AvailableFeatures = getAvailableFeatures(); |
1650 | B.setInstrAndDebugLoc(I); |
1651 | State.MIs.clear(); |
1652 | State.MIs.push_back(&I); |
1653 | if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) { |
1654 | return true; |
1655 | } |
1656 | |
1657 | return false; |
1658 | } |
1659 | |
1660 | enum { |
1661 | GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1, |
1662 | GICXXCustomAction_GICombiner1, |
1663 | GICXXCustomAction_GICombiner2, |
1664 | GICXXCustomAction_GICombiner3, |
1665 | GICXXCustomAction_GICombiner4, |
1666 | GICXXCustomAction_GICombiner5, |
1667 | GICXXCustomAction_GICombiner6, |
1668 | GICXXCustomAction_GICombiner7, |
1669 | GICXXCustomAction_GICombiner8, |
1670 | GICXXCustomAction_GICombiner9, |
1671 | GICXXCustomAction_GICombiner10, |
1672 | GICXXCustomAction_GICombiner11, |
1673 | GICXXCustomAction_GICombiner12, |
1674 | GICXXCustomAction_GICombiner13, |
1675 | GICXXCustomAction_GICombiner14, |
1676 | GICXXCustomAction_GICombiner15, |
1677 | GICXXCustomAction_GICombiner16, |
1678 | GICXXCustomAction_GICombiner17, |
1679 | GICXXCustomAction_GICombiner18, |
1680 | GICXXCustomAction_GICombiner19, |
1681 | GICXXCustomAction_GICombiner20, |
1682 | GICXXCustomAction_GICombiner21, |
1683 | GICXXCustomAction_GICombiner22, |
1684 | GICXXCustomAction_GICombiner23, |
1685 | GICXXCustomAction_GICombiner24, |
1686 | GICXXCustomAction_GICombiner25, |
1687 | GICXXCustomAction_GICombiner26, |
1688 | GICXXCustomAction_GICombiner27, |
1689 | GICXXCustomAction_GICombiner28, |
1690 | GICXXCustomAction_GICombiner29, |
1691 | GICXXCustomAction_GICombiner30, |
1692 | GICXXCustomAction_GICombiner31, |
1693 | GICXXCustomAction_GICombiner32, |
1694 | GICXXCustomAction_GICombiner33, |
1695 | GICXXCustomAction_GICombiner34, |
1696 | GICXXCustomAction_GICombiner35, |
1697 | GICXXCustomAction_GICombiner36, |
1698 | GICXXCustomAction_GICombiner37, |
1699 | GICXXCustomAction_GICombiner38, |
1700 | GICXXCustomAction_GICombiner39, |
1701 | GICXXCustomAction_GICombiner40, |
1702 | GICXXCustomAction_GICombiner41, |
1703 | GICXXCustomAction_GICombiner42, |
1704 | GICXXCustomAction_GICombiner43, |
1705 | GICXXCustomAction_GICombiner44, |
1706 | GICXXCustomAction_GICombiner45, |
1707 | GICXXCustomAction_GICombiner46, |
1708 | GICXXCustomAction_GICombiner47, |
1709 | GICXXCustomAction_GICombiner48, |
1710 | GICXXCustomAction_GICombiner49, |
1711 | GICXXCustomAction_GICombiner50, |
1712 | GICXXCustomAction_GICombiner51, |
1713 | GICXXCustomAction_GICombiner52, |
1714 | GICXXCustomAction_GICombiner53, |
1715 | GICXXCustomAction_GICombiner54, |
1716 | GICXXCustomAction_GICombiner55, |
1717 | GICXXCustomAction_GICombiner56, |
1718 | GICXXCustomAction_GICombiner57, |
1719 | GICXXCustomAction_GICombiner58, |
1720 | GICXXCustomAction_GICombiner59, |
1721 | GICXXCustomAction_GICombiner60, |
1722 | GICXXCustomAction_GICombiner61, |
1723 | GICXXCustomAction_GICombiner62, |
1724 | GICXXCustomAction_GICombiner63, |
1725 | GICXXCustomAction_GICombiner64, |
1726 | GICXXCustomAction_GICombiner65, |
1727 | GICXXCustomAction_GICombiner66, |
1728 | GICXXCustomAction_GICombiner67, |
1729 | GICXXCustomAction_GICombiner68, |
1730 | GICXXCustomAction_GICombiner69, |
1731 | GICXXCustomAction_GICombiner70, |
1732 | GICXXCustomAction_GICombiner71, |
1733 | GICXXCustomAction_GICombiner72, |
1734 | GICXXCustomAction_GICombiner73, |
1735 | GICXXCustomAction_GICombiner74, |
1736 | GICXXCustomAction_GICombiner75, |
1737 | GICXXCustomAction_GICombiner76, |
1738 | GICXXCustomAction_GICombiner77, |
1739 | GICXXCustomAction_GICombiner78, |
1740 | GICXXCustomAction_GICombiner79, |
1741 | GICXXCustomAction_GICombiner80, |
1742 | GICXXCustomAction_GICombiner81, |
1743 | GICXXCustomAction_GICombiner82, |
1744 | GICXXCustomAction_GICombiner83, |
1745 | GICXXCustomAction_GICombiner84, |
1746 | GICXXCustomAction_GICombiner85, |
1747 | GICXXCustomAction_GICombiner86, |
1748 | GICXXCustomAction_GICombiner87, |
1749 | GICXXCustomAction_GICombiner88, |
1750 | GICXXCustomAction_GICombiner89, |
1751 | GICXXCustomAction_GICombiner90, |
1752 | GICXXCustomAction_GICombiner91, |
1753 | GICXXCustomAction_GICombiner92, |
1754 | GICXXCustomAction_GICombiner93, |
1755 | GICXXCustomAction_GICombiner94, |
1756 | GICXXCustomAction_GICombiner95, |
1757 | GICXXCustomAction_GICombiner96, |
1758 | GICXXCustomAction_GICombiner97, |
1759 | GICXXCustomAction_GICombiner98, |
1760 | GICXXCustomAction_GICombiner99, |
1761 | GICXXCustomAction_GICombiner100, |
1762 | GICXXCustomAction_GICombiner101, |
1763 | GICXXCustomAction_GICombiner102, |
1764 | GICXXCustomAction_GICombiner103, |
1765 | GICXXCustomAction_GICombiner104, |
1766 | GICXXCustomAction_GICombiner105, |
1767 | GICXXCustomAction_GICombiner106, |
1768 | GICXXCustomAction_GICombiner107, |
1769 | GICXXCustomAction_GICombiner108, |
1770 | GICXXCustomAction_GICombiner109, |
1771 | GICXXCustomAction_GICombiner110, |
1772 | GICXXCustomAction_GICombiner111, |
1773 | GICXXCustomAction_GICombiner112, |
1774 | GICXXCustomAction_GICombiner113, |
1775 | GICXXCustomAction_GICombiner114, |
1776 | GICXXCustomAction_GICombiner115, |
1777 | GICXXCustomAction_GICombiner116, |
1778 | GICXXCustomAction_GICombiner117, |
1779 | GICXXCustomAction_GICombiner118, |
1780 | GICXXCustomAction_GICombiner119, |
1781 | GICXXCustomAction_GICombiner120, |
1782 | GICXXCustomAction_GICombiner121, |
1783 | GICXXCustomAction_GICombiner122, |
1784 | GICXXCustomAction_GICombiner123, |
1785 | GICXXCustomAction_GICombiner124, |
1786 | GICXXCustomAction_GICombiner125, |
1787 | GICXXCustomAction_GICombiner126, |
1788 | GICXXCustomAction_GICombiner127, |
1789 | GICXXCustomAction_GICombiner128, |
1790 | GICXXCustomAction_GICombiner129, |
1791 | GICXXCustomAction_GICombiner130, |
1792 | GICXXCustomAction_GICombiner131, |
1793 | GICXXCustomAction_GICombiner132, |
1794 | GICXXCustomAction_GICombiner133, |
1795 | GICXXCustomAction_GICombiner134, |
1796 | GICXXCustomAction_GICombiner135, |
1797 | GICXXCustomAction_GICombiner136, |
1798 | GICXXCustomAction_GICombiner137, |
1799 | GICXXCustomAction_GICombiner138, |
1800 | }; |
1801 | bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const { |
1802 | Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]); |
1803 | switch(ApplyID) { |
1804 | case GICXXCustomAction_GICombiner0:{ |
1805 | // Match Patterns |
1806 | if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) { |
1807 | return false; |
1808 | } |
1809 | // Apply Patterns |
1810 | Helper.applyCombineCopy(*State.MIs[0]); |
1811 | return true; |
1812 | } |
1813 | case GICXXCustomAction_GICombiner1:{ |
1814 | unsigned GIMatchData_matchinfo; |
1815 | // Match Patterns |
1816 | if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1817 | return false; |
1818 | } |
1819 | // Apply Patterns |
1820 | Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo); |
1821 | return true; |
1822 | } |
1823 | case GICXXCustomAction_GICombiner2:{ |
1824 | std::pair<Register, bool> GIMatchData_info; |
1825 | // Match Patterns |
1826 | if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) { |
1827 | return false; |
1828 | } |
1829 | // Apply Patterns |
1830 | Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info); |
1831 | return true; |
1832 | } |
1833 | case GICXXCustomAction_GICombiner3:{ |
1834 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1835 | // Match Patterns |
1836 | if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1837 | return false; |
1838 | } |
1839 | // Apply Patterns |
1840 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
1841 | return true; |
1842 | } |
1843 | case GICXXCustomAction_GICombiner4:{ |
1844 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1845 | // Match Patterns |
1846 | if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1847 | return false; |
1848 | } |
1849 | // Apply Patterns |
1850 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
1851 | return true; |
1852 | } |
1853 | case GICXXCustomAction_GICombiner5:{ |
1854 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1855 | // Match Patterns |
1856 | if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1857 | return false; |
1858 | } |
1859 | // Apply Patterns |
1860 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1861 | return true; |
1862 | } |
1863 | case GICXXCustomAction_GICombiner6:{ |
1864 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1865 | // Match Patterns |
1866 | if(![&](){return Helper.matchExtractVectorElementWithBuildVector(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1867 | return false; |
1868 | } |
1869 | // Apply Patterns |
1870 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1871 | return true; |
1872 | } |
1873 | case GICXXCustomAction_GICombiner7:{ |
1874 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1875 | // Match Patterns |
1876 | if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1877 | return false; |
1878 | } |
1879 | // Apply Patterns |
1880 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1881 | return true; |
1882 | } |
1883 | case GICXXCustomAction_GICombiner8:{ |
1884 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1885 | // Match Patterns |
1886 | if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1887 | return false; |
1888 | } |
1889 | // Apply Patterns |
1890 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1891 | return true; |
1892 | } |
1893 | case GICXXCustomAction_GICombiner9:{ |
1894 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1895 | // Match Patterns |
1896 | if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1897 | return false; |
1898 | } |
1899 | // Apply Patterns |
1900 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1901 | return true; |
1902 | } |
1903 | case GICXXCustomAction_GICombiner10:{ |
1904 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1905 | // Match Patterns |
1906 | if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1907 | return false; |
1908 | } |
1909 | // Apply Patterns |
1910 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1911 | return true; |
1912 | } |
1913 | case GICXXCustomAction_GICombiner11:{ |
1914 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1915 | // Match Patterns |
1916 | if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1917 | return false; |
1918 | } |
1919 | // Apply Patterns |
1920 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1921 | return true; |
1922 | } |
1923 | case GICXXCustomAction_GICombiner12:{ |
1924 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1925 | // Match Patterns |
1926 | if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
1927 | return false; |
1928 | } |
1929 | // Apply Patterns |
1930 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
1931 | return true; |
1932 | } |
1933 | case GICXXCustomAction_GICombiner13:{ |
1934 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1935 | // Match Patterns |
1936 | if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1937 | return false; |
1938 | } |
1939 | // Apply Patterns |
1940 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
1941 | return true; |
1942 | } |
1943 | case GICXXCustomAction_GICombiner14:{ |
1944 | SmallVector<Register, 4> GIMatchData_info; |
1945 | // Match Patterns |
1946 | if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) { |
1947 | return false; |
1948 | } |
1949 | // Apply Patterns |
1950 | Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info); |
1951 | return true; |
1952 | } |
1953 | case GICXXCustomAction_GICombiner15:{ |
1954 | Register GIMatchData_matchinfo; |
1955 | // Match Patterns |
1956 | if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1957 | return false; |
1958 | } |
1959 | // Apply Patterns |
1960 | Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo); |
1961 | return true; |
1962 | } |
1963 | case GICXXCustomAction_GICombiner16:{ |
1964 | SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo; |
1965 | // Match Patterns |
1966 | if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1967 | return false; |
1968 | } |
1969 | // Apply Patterns |
1970 | Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo); |
1971 | return true; |
1972 | } |
1973 | case GICXXCustomAction_GICombiner17:{ |
1974 | PreferredTuple GIMatchData_matchinfo; |
1975 | // Match Patterns |
1976 | if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1977 | return false; |
1978 | } |
1979 | // Apply Patterns |
1980 | Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo); |
1981 | return true; |
1982 | } |
1983 | case GICXXCustomAction_GICombiner18:{ |
1984 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1985 | // Match Patterns |
1986 | if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1987 | return false; |
1988 | } |
1989 | // Apply Patterns |
1990 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
1991 | return true; |
1992 | } |
1993 | case GICXXCustomAction_GICombiner19:{ |
1994 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
1995 | // Match Patterns |
1996 | if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) { |
1997 | return false; |
1998 | } |
1999 | // Apply Patterns |
2000 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2001 | return true; |
2002 | } |
2003 | case GICXXCustomAction_GICombiner20:{ |
2004 | // Match Patterns |
2005 | if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) { |
2006 | return false; |
2007 | } |
2008 | // Apply Patterns |
2009 | Helper.replaceInstWithFConstant(*State.MIs[0], 0.0); |
2010 | return true; |
2011 | } |
2012 | case GICXXCustomAction_GICombiner21:{ |
2013 | // Match Patterns |
2014 | if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) { |
2015 | return false; |
2016 | } |
2017 | // Apply Patterns |
2018 | Helper.replaceInstWithConstant(*State.MIs[0], 0); |
2019 | return true; |
2020 | } |
2021 | case GICXXCustomAction_GICombiner22:{ |
2022 | // Match Patterns |
2023 | if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) { |
2024 | return false; |
2025 | } |
2026 | // Apply Patterns |
2027 | Helper.replaceInstWithConstant(*State.MIs[0], -1); |
2028 | return true; |
2029 | } |
2030 | case GICXXCustomAction_GICombiner23:{ |
2031 | // Match Patterns |
2032 | if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) { |
2033 | return false; |
2034 | } |
2035 | // Apply Patterns |
2036 | Helper.replaceInstWithConstant(*State.MIs[0], 0); |
2037 | return true; |
2038 | } |
2039 | case GICXXCustomAction_GICombiner24:{ |
2040 | // Match Patterns |
2041 | if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) { |
2042 | return false; |
2043 | } |
2044 | // Apply Patterns |
2045 | Helper.replaceInstWithUndef(*State.MIs[0]); |
2046 | return true; |
2047 | } |
2048 | case GICXXCustomAction_GICombiner25:{ |
2049 | // Match Patterns |
2050 | if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) { |
2051 | return false; |
2052 | } |
2053 | // Apply Patterns |
2054 | Helper.replaceInstWithUndef(*State.MIs[0]); |
2055 | return true; |
2056 | } |
2057 | case GICXXCustomAction_GICombiner26:{ |
2058 | // Match Patterns |
2059 | if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) { |
2060 | return false; |
2061 | } |
2062 | // Apply Patterns |
2063 | Helper.replaceInstWithUndef(*State.MIs[0]); |
2064 | return true; |
2065 | } |
2066 | case GICXXCustomAction_GICombiner27:{ |
2067 | // Match Patterns |
2068 | if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) { |
2069 | return false; |
2070 | } |
2071 | // Apply Patterns |
2072 | Helper.replaceInstWithUndef(*State.MIs[0]); |
2073 | return true; |
2074 | } |
2075 | case GICXXCustomAction_GICombiner28:{ |
2076 | // Match Patterns |
2077 | if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) { |
2078 | return false; |
2079 | } |
2080 | // Apply Patterns |
2081 | Helper.eraseInst(*State.MIs[0]); |
2082 | return true; |
2083 | } |
2084 | case GICXXCustomAction_GICombiner29:{ |
2085 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2086 | // Match Patterns |
2087 | if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) { |
2088 | return false; |
2089 | } |
2090 | // Apply Patterns |
2091 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2092 | return true; |
2093 | } |
2094 | case GICXXCustomAction_GICombiner30:{ |
2095 | // Match Patterns |
2096 | if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) { |
2097 | return false; |
2098 | } |
2099 | // Apply Patterns |
2100 | Helper.replaceInstWithUndef(*State.MIs[0]); |
2101 | return true; |
2102 | } |
2103 | case GICXXCustomAction_GICombiner31:{ |
2104 | // Match Patterns |
2105 | if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) { |
2106 | return false; |
2107 | } |
2108 | // Apply Patterns |
2109 | Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2); |
2110 | return true; |
2111 | } |
2112 | case GICXXCustomAction_GICombiner32:{ |
2113 | // Match Patterns |
2114 | if(![&](){return Helper.matchOperandIsZero(*State.MIs[0], 1);}()) { |
2115 | return false; |
2116 | } |
2117 | // Apply Patterns |
2118 | Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1); |
2119 | return true; |
2120 | } |
2121 | case GICXXCustomAction_GICombiner33:{ |
2122 | Register GIMatchData_info; |
2123 | // Match Patterns |
2124 | if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) { |
2125 | return false; |
2126 | } |
2127 | // Apply Patterns |
2128 | Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info); |
2129 | return true; |
2130 | } |
2131 | case GICXXCustomAction_GICombiner34:{ |
2132 | Register GIMatchData_info; |
2133 | // Match Patterns |
2134 | if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) { |
2135 | return false; |
2136 | } |
2137 | // Apply Patterns |
2138 | Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info); |
2139 | return true; |
2140 | } |
2141 | case GICXXCustomAction_GICombiner35:{ |
2142 | Register GIMatchData_matchinfo; |
2143 | // Match Patterns |
2144 | if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2145 | return false; |
2146 | } |
2147 | // Apply Patterns |
2148 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2149 | return true; |
2150 | } |
2151 | case GICXXCustomAction_GICombiner36:{ |
2152 | Register GIMatchData_matchinfo; |
2153 | // Match Patterns |
2154 | if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2155 | return false; |
2156 | } |
2157 | // Apply Patterns |
2158 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2159 | return true; |
2160 | } |
2161 | case GICXXCustomAction_GICombiner37:{ |
2162 | Register GIMatchData_matchinfo; |
2163 | // Match Patterns |
2164 | if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2165 | return false; |
2166 | } |
2167 | // Apply Patterns |
2168 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2169 | return true; |
2170 | } |
2171 | case GICXXCustomAction_GICombiner38:{ |
2172 | Register GIMatchData_matchinfo; |
2173 | // Match Patterns |
2174 | if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2175 | return false; |
2176 | } |
2177 | // Apply Patterns |
2178 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2179 | return true; |
2180 | } |
2181 | case GICXXCustomAction_GICombiner39:{ |
2182 | // Match Patterns |
2183 | if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) { |
2184 | return false; |
2185 | } |
2186 | // Apply Patterns |
2187 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg()); |
2188 | return true; |
2189 | } |
2190 | case GICXXCustomAction_GICombiner40:{ |
2191 | MachineInstr* GIMatchData_matchinfo; |
2192 | // Match Patterns |
2193 | if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2194 | return false; |
2195 | } |
2196 | // Apply Patterns |
2197 | Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo); |
2198 | return true; |
2199 | } |
2200 | case GICXXCustomAction_GICombiner41:{ |
2201 | std::tuple<Register, Register> GIMatchData_info; |
2202 | // Match Patterns |
2203 | if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) { |
2204 | return false; |
2205 | } |
2206 | // Apply Patterns |
2207 | Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info); |
2208 | return true; |
2209 | } |
2210 | case GICXXCustomAction_GICombiner42:{ |
2211 | InstructionStepsMatchInfo GIMatchData_info; |
2212 | // Match Patterns |
2213 | if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) { |
2214 | return false; |
2215 | } |
2216 | // Apply Patterns |
2217 | Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info); |
2218 | return true; |
2219 | } |
2220 | case GICXXCustomAction_GICombiner43:{ |
2221 | // Match Patterns |
2222 | if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0]);}()) { |
2223 | return false; |
2224 | } |
2225 | // Apply Patterns |
2226 | Helper.replaceInstWithUndef(*State.MIs[0]); |
2227 | return true; |
2228 | } |
2229 | case GICXXCustomAction_GICombiner44:{ |
2230 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2231 | // Match Patterns |
2232 | if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2233 | return false; |
2234 | } |
2235 | // Apply Patterns |
2236 | Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo); |
2237 | return true; |
2238 | } |
2239 | case GICXXCustomAction_GICombiner45:{ |
2240 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2241 | // Match Patterns |
2242 | if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2243 | return false; |
2244 | } |
2245 | // Apply Patterns |
2246 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2247 | return true; |
2248 | } |
2249 | case GICXXCustomAction_GICombiner46:{ |
2250 | PtrAddChain GIMatchData_matchinfo; |
2251 | // Match Patterns |
2252 | if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2253 | return false; |
2254 | } |
2255 | // Apply Patterns |
2256 | Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo); |
2257 | return true; |
2258 | } |
2259 | case GICXXCustomAction_GICombiner47:{ |
2260 | std::tuple<Register, int64_t> GIMatchData_info; |
2261 | // Match Patterns |
2262 | if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) { |
2263 | return false; |
2264 | } |
2265 | // Apply Patterns |
2266 | Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info); |
2267 | return true; |
2268 | } |
2269 | case GICXXCustomAction_GICombiner48:{ |
2270 | std::tuple<Register, unsigned> GIMatchData_matchinfo; |
2271 | // Match Patterns |
2272 | if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2273 | return false; |
2274 | } |
2275 | // Apply Patterns |
2276 | Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo); |
2277 | return true; |
2278 | } |
2279 | case GICXXCustomAction_GICombiner49:{ |
2280 | RegisterImmPair GIMatchData_matchinfo; |
2281 | // Match Patterns |
2282 | if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2283 | return false; |
2284 | } |
2285 | // Apply Patterns |
2286 | Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo); |
2287 | return true; |
2288 | } |
2289 | case GICXXCustomAction_GICombiner50:{ |
2290 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2291 | // Match Patterns |
2292 | if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2293 | return false; |
2294 | } |
2295 | // Apply Patterns |
2296 | Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo); |
2297 | return true; |
2298 | } |
2299 | case GICXXCustomAction_GICombiner51:{ |
2300 | unsigned GIMatchData_matchinfo; |
2301 | // Match Patterns |
2302 | if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2303 | return false; |
2304 | } |
2305 | // Apply Patterns |
2306 | Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo); |
2307 | return true; |
2308 | } |
2309 | case GICXXCustomAction_GICombiner52:{ |
2310 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2311 | // Match Patterns |
2312 | if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) { |
2313 | return false; |
2314 | } |
2315 | // Apply Patterns |
2316 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info); |
2317 | return true; |
2318 | } |
2319 | case GICXXCustomAction_GICombiner53:{ |
2320 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2321 | // Match Patterns |
2322 | if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2323 | return false; |
2324 | } |
2325 | // Apply Patterns |
2326 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2327 | return true; |
2328 | } |
2329 | case GICXXCustomAction_GICombiner54:{ |
2330 | Register GIMatchData_matchinfo; |
2331 | // Match Patterns |
2332 | if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2333 | return false; |
2334 | } |
2335 | // Apply Patterns |
2336 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2337 | return true; |
2338 | } |
2339 | case GICXXCustomAction_GICombiner55:{ |
2340 | // Match Patterns |
2341 | if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) { |
2342 | return false; |
2343 | } |
2344 | // Apply Patterns |
2345 | Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1); |
2346 | return true; |
2347 | } |
2348 | case GICXXCustomAction_GICombiner56:{ |
2349 | Register GIMatchData_matchinfo; |
2350 | // Match Patterns |
2351 | if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2352 | return false; |
2353 | } |
2354 | // Apply Patterns |
2355 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2356 | return true; |
2357 | } |
2358 | case GICXXCustomAction_GICombiner57:{ |
2359 | // Match Patterns |
2360 | if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) { |
2361 | return false; |
2362 | } |
2363 | // Apply Patterns |
2364 | Helper.applySimplifyURemByPow2(*State.MIs[0]); |
2365 | return true; |
2366 | } |
2367 | case GICXXCustomAction_GICombiner58:{ |
2368 | Register GIMatchData_matchinfo; |
2369 | // Match Patterns |
2370 | if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2371 | return false; |
2372 | } |
2373 | // Apply Patterns |
2374 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2375 | return true; |
2376 | } |
2377 | case GICXXCustomAction_GICombiner59:{ |
2378 | int64_t GIMatchData_matchinfo; |
2379 | // Match Patterns |
2380 | if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2381 | return false; |
2382 | } |
2383 | // Apply Patterns |
2384 | Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo); |
2385 | return true; |
2386 | } |
2387 | case GICXXCustomAction_GICombiner60:{ |
2388 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2389 | // Match Patterns |
2390 | if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) { |
2391 | return false; |
2392 | } |
2393 | // Apply Patterns |
2394 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2395 | return true; |
2396 | } |
2397 | case GICXXCustomAction_GICombiner61:{ |
2398 | // Match Patterns |
2399 | if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits(); |
2400 | return Helper.getKnownBits()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(), |
2401 | APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) { |
2402 | return false; |
2403 | } |
2404 | // Apply Patterns |
2405 | Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]); |
2406 | Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm()); |
2407 | State.MIs[0]->eraseFromParent(); |
2408 | return true; |
2409 | } |
2410 | case GICXXCustomAction_GICombiner62:{ |
2411 | std::tuple<Register, unsigned> GIMatchData_matchinfo; |
2412 | // Match Patterns |
2413 | if(![&](){return Helper.matchCombineExtOfExt(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2414 | return false; |
2415 | } |
2416 | // Apply Patterns |
2417 | Helper.applyCombineExtOfExt(*State.MIs[0], GIMatchData_matchinfo); |
2418 | return true; |
2419 | } |
2420 | case GICXXCustomAction_GICombiner63:{ |
2421 | SmallVector<Register, 4> GIMatchData_info; |
2422 | // Match Patterns |
2423 | if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) { |
2424 | return false; |
2425 | } |
2426 | // Apply Patterns |
2427 | Helper.applyNotCmp(*State.MIs[0], GIMatchData_info); |
2428 | return true; |
2429 | } |
2430 | case GICXXCustomAction_GICombiner64:{ |
2431 | MachineInstr * GIMatchData_matchinfo; |
2432 | // Match Patterns |
2433 | if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2434 | return false; |
2435 | } |
2436 | // Apply Patterns |
2437 | Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo); |
2438 | return true; |
2439 | } |
2440 | case GICXXCustomAction_GICombiner65:{ |
2441 | SmallVector<Register, 8> GIMatchData_info; |
2442 | // Match Patterns |
2443 | if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) { |
2444 | return false; |
2445 | } |
2446 | // Apply Patterns |
2447 | Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info); |
2448 | return true; |
2449 | } |
2450 | case GICXXCustomAction_GICombiner66:{ |
2451 | SmallVector<APInt, 8> GIMatchData_info; |
2452 | // Match Patterns |
2453 | if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) { |
2454 | return false; |
2455 | } |
2456 | // Apply Patterns |
2457 | Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info); |
2458 | return true; |
2459 | } |
2460 | case GICXXCustomAction_GICombiner67:{ |
2461 | // Match Patterns |
2462 | if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) { |
2463 | return false; |
2464 | } |
2465 | // Apply Patterns |
2466 | Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]); |
2467 | return true; |
2468 | } |
2469 | case GICXXCustomAction_GICombiner68:{ |
2470 | // Match Patterns |
2471 | if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) { |
2472 | return false; |
2473 | } |
2474 | // Apply Patterns |
2475 | Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]); |
2476 | return true; |
2477 | } |
2478 | case GICXXCustomAction_GICombiner69:{ |
2479 | Register GIMatchData_matchinfo; |
2480 | // Match Patterns |
2481 | if(![&](){return Helper.matchCombineMergeUnmerge(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2482 | return false; |
2483 | } |
2484 | // Apply Patterns |
2485 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
2486 | return true; |
2487 | } |
2488 | case GICXXCustomAction_GICombiner70:{ |
2489 | std::pair<Register, unsigned> GIMatchData_matchinfo; |
2490 | // Match Patterns |
2491 | if(![&](){return Helper.matchCombineTruncOfExt(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2492 | return false; |
2493 | } |
2494 | // Apply Patterns |
2495 | Helper.applyCombineTruncOfExt(*State.MIs[0], GIMatchData_matchinfo); |
2496 | return true; |
2497 | } |
2498 | case GICXXCustomAction_GICombiner71:{ |
2499 | std::pair<MachineInstr*, LLT> GIMatchData_matchinfo; |
2500 | // Match Patterns |
2501 | if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2502 | return false; |
2503 | } |
2504 | // Apply Patterns |
2505 | Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo); |
2506 | return true; |
2507 | } |
2508 | case GICXXCustomAction_GICombiner72:{ |
2509 | // Apply Patterns |
2510 | Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm()); |
2511 | return true; |
2512 | } |
2513 | case GICXXCustomAction_GICombiner73:{ |
2514 | // Apply Patterns |
2515 | Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0); |
2516 | return true; |
2517 | } |
2518 | case GICXXCustomAction_GICombiner74:{ |
2519 | APInt GIMatchData_info; |
2520 | // Match Patterns |
2521 | if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) { |
2522 | return false; |
2523 | } |
2524 | // Apply Patterns |
2525 | Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info); |
2526 | return true; |
2527 | } |
2528 | case GICXXCustomAction_GICombiner75:{ |
2529 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2530 | // Match Patterns |
2531 | if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) { |
2532 | return false; |
2533 | } |
2534 | // Apply Patterns |
2535 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2536 | return true; |
2537 | } |
2538 | case GICXXCustomAction_GICombiner76:{ |
2539 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2540 | // Match Patterns |
2541 | if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2542 | return false; |
2543 | } |
2544 | // Apply Patterns |
2545 | Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo); |
2546 | return true; |
2547 | } |
2548 | case GICXXCustomAction_GICombiner77:{ |
2549 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2550 | // Match Patterns |
2551 | if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2552 | return false; |
2553 | } |
2554 | // Apply Patterns |
2555 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2556 | return true; |
2557 | } |
2558 | case GICXXCustomAction_GICombiner78:{ |
2559 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2560 | // Match Patterns |
2561 | if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2562 | return false; |
2563 | } |
2564 | // Apply Patterns |
2565 | Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo); |
2566 | return true; |
2567 | } |
2568 | case GICXXCustomAction_GICombiner79:{ |
2569 | unsigned GIMatchData_info; |
2570 | // Match Patterns |
2571 | if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) { |
2572 | return false; |
2573 | } |
2574 | // Apply Patterns |
2575 | Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info); |
2576 | return true; |
2577 | } |
2578 | case GICXXCustomAction_GICombiner80:{ |
2579 | // Match Patterns |
2580 | if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) { |
2581 | return false; |
2582 | } |
2583 | // Apply Patterns |
2584 | Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue()); |
2585 | return true; |
2586 | } |
2587 | case GICXXCustomAction_GICombiner81:{ |
2588 | std::pair<Register, Register> GIMatchData_matchinfo; |
2589 | // Match Patterns |
2590 | if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2591 | return false; |
2592 | } |
2593 | // Apply Patterns |
2594 | Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo); |
2595 | return true; |
2596 | } |
2597 | case GICXXCustomAction_GICombiner82:{ |
2598 | // Match Patterns |
2599 | if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) { |
2600 | return false; |
2601 | } |
2602 | // Apply Patterns |
2603 | Helper.applyPtrAddZero(*State.MIs[0]); |
2604 | return true; |
2605 | } |
2606 | case GICXXCustomAction_GICombiner83:{ |
2607 | RegisterImmPair GIMatchData_matchinfo; |
2608 | // Match Patterns |
2609 | if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2610 | return false; |
2611 | } |
2612 | // Apply Patterns |
2613 | Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo); |
2614 | return true; |
2615 | } |
2616 | case GICXXCustomAction_GICombiner84:{ |
2617 | ShiftOfShiftedLogic GIMatchData_matchinfo; |
2618 | // Match Patterns |
2619 | if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2620 | return false; |
2621 | } |
2622 | // Apply Patterns |
2623 | Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo); |
2624 | return true; |
2625 | } |
2626 | case GICXXCustomAction_GICombiner85:{ |
2627 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2628 | // Match Patterns |
2629 | if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) { |
2630 | return false; |
2631 | } |
2632 | // Apply Patterns |
2633 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2634 | return true; |
2635 | } |
2636 | case GICXXCustomAction_GICombiner86:{ |
2637 | MachineInstr * GIMatchData_matchinfo; |
2638 | // Match Patterns |
2639 | if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2640 | return false; |
2641 | } |
2642 | // Apply Patterns |
2643 | Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo); |
2644 | return true; |
2645 | } |
2646 | case GICXXCustomAction_GICombiner87:{ |
2647 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2648 | // Match Patterns |
2649 | if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], GIMatchData_info);}()) { |
2650 | return false; |
2651 | } |
2652 | // Apply Patterns |
2653 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2654 | return true; |
2655 | } |
2656 | case GICXXCustomAction_GICombiner88:{ |
2657 | // Match Patterns |
2658 | if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) { |
2659 | return false; |
2660 | } |
2661 | // Apply Patterns |
2662 | Helper.applyFunnelShiftToRotate(*State.MIs[0]); |
2663 | return true; |
2664 | } |
2665 | case GICXXCustomAction_GICombiner89:{ |
2666 | // Match Patterns |
2667 | if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) { |
2668 | return false; |
2669 | } |
2670 | // Apply Patterns |
2671 | Helper.applyFunnelShiftConstantModulo(*State.MIs[0]); |
2672 | return true; |
2673 | } |
2674 | case GICXXCustomAction_GICombiner90:{ |
2675 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2676 | // Match Patterns |
2677 | if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2678 | return false; |
2679 | } |
2680 | // Apply Patterns |
2681 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2682 | return true; |
2683 | } |
2684 | case GICXXCustomAction_GICombiner91:{ |
2685 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2686 | // Match Patterns |
2687 | if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) { |
2688 | return false; |
2689 | } |
2690 | // Apply Patterns |
2691 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2692 | return true; |
2693 | } |
2694 | case GICXXCustomAction_GICombiner92:{ |
2695 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2696 | // Match Patterns |
2697 | if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) { |
2698 | return false; |
2699 | } |
2700 | // Apply Patterns |
2701 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2702 | return true; |
2703 | } |
2704 | case GICXXCustomAction_GICombiner93:{ |
2705 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2706 | // Match Patterns |
2707 | if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) { |
2708 | return false; |
2709 | } |
2710 | // Apply Patterns |
2711 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2712 | return true; |
2713 | } |
2714 | case GICXXCustomAction_GICombiner94:{ |
2715 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2716 | // Match Patterns |
2717 | if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) { |
2718 | return false; |
2719 | } |
2720 | // Apply Patterns |
2721 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2722 | return true; |
2723 | } |
2724 | case GICXXCustomAction_GICombiner95:{ |
2725 | APInt GIMatchData_matchinfo; |
2726 | // Match Patterns |
2727 | if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2728 | return false; |
2729 | } |
2730 | // Apply Patterns |
2731 | Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo); |
2732 | return true; |
2733 | } |
2734 | case GICXXCustomAction_GICombiner96:{ |
2735 | ConstantFP* GIMatchData_matchinfo; |
2736 | // Match Patterns |
2737 | if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2738 | return false; |
2739 | } |
2740 | // Apply Patterns |
2741 | Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo); |
2742 | return true; |
2743 | } |
2744 | case GICXXCustomAction_GICombiner97:{ |
2745 | ConstantFP* GIMatchData_matchinfo; |
2746 | // Match Patterns |
2747 | if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2748 | return false; |
2749 | } |
2750 | // Apply Patterns |
2751 | Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo); |
2752 | return true; |
2753 | } |
2754 | case GICXXCustomAction_GICombiner98:{ |
2755 | APInt GIMatchData_matchinfo; |
2756 | // Match Patterns |
2757 | if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2758 | return false; |
2759 | } |
2760 | // Apply Patterns |
2761 | Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo); |
2762 | return true; |
2763 | } |
2764 | case GICXXCustomAction_GICombiner99:{ |
2765 | // Match Patterns |
2766 | if(![&](){return Helper.matchUDivByConst(*State.MIs[0]);}()) { |
2767 | return false; |
2768 | } |
2769 | // Apply Patterns |
2770 | Helper.applyUDivByConst(*State.MIs[0]); |
2771 | return true; |
2772 | } |
2773 | case GICXXCustomAction_GICombiner100:{ |
2774 | // Match Patterns |
2775 | if(![&](){return Helper.matchSDivByConst(*State.MIs[0]);}()) { |
2776 | return false; |
2777 | } |
2778 | // Apply Patterns |
2779 | Helper.applySDivByConst(*State.MIs[0]); |
2780 | return true; |
2781 | } |
2782 | case GICXXCustomAction_GICombiner101:{ |
2783 | // Match Patterns |
2784 | if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) { |
2785 | return false; |
2786 | } |
2787 | // Apply Patterns |
2788 | Helper.applySDivByPow2(*State.MIs[0]); |
2789 | return true; |
2790 | } |
2791 | case GICXXCustomAction_GICombiner102:{ |
2792 | // Match Patterns |
2793 | if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) { |
2794 | return false; |
2795 | } |
2796 | // Apply Patterns |
2797 | Helper.applyUDivByPow2(*State.MIs[0]); |
2798 | return true; |
2799 | } |
2800 | case GICXXCustomAction_GICombiner103:{ |
2801 | // Match Patterns |
2802 | if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) { |
2803 | return false; |
2804 | } |
2805 | // Apply Patterns |
2806 | Helper.applyUMulHToLShr(*State.MIs[0]); |
2807 | return true; |
2808 | } |
2809 | case GICXXCustomAction_GICombiner104:{ |
2810 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2811 | // Match Patterns |
2812 | if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2813 | return false; |
2814 | } |
2815 | // Apply Patterns |
2816 | Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo); |
2817 | return true; |
2818 | } |
2819 | case GICXXCustomAction_GICombiner105:{ |
2820 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2821 | // Match Patterns |
2822 | if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) { |
2823 | return false; |
2824 | } |
2825 | // Apply Patterns |
2826 | Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info); |
2827 | return true; |
2828 | } |
2829 | case GICXXCustomAction_GICombiner106:{ |
2830 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2831 | // Match Patterns |
2832 | if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0], |
2833 | GIMatchData_info);}()) { |
2834 | return false; |
2835 | } |
2836 | // Apply Patterns |
2837 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2838 | return true; |
2839 | } |
2840 | case GICXXCustomAction_GICombiner107:{ |
2841 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2842 | // Match Patterns |
2843 | if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0], |
2844 | GIMatchData_info);}()) { |
2845 | return false; |
2846 | } |
2847 | // Apply Patterns |
2848 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2849 | return true; |
2850 | } |
2851 | case GICXXCustomAction_GICombiner108:{ |
2852 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2853 | // Match Patterns |
2854 | if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0], |
2855 | GIMatchData_info);}()) { |
2856 | return false; |
2857 | } |
2858 | // Apply Patterns |
2859 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2860 | return true; |
2861 | } |
2862 | case GICXXCustomAction_GICombiner109:{ |
2863 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2864 | // Match Patterns |
2865 | if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive( |
2866 | *State.MIs[0], GIMatchData_info);}()) { |
2867 | return false; |
2868 | } |
2869 | // Apply Patterns |
2870 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2871 | return true; |
2872 | } |
2873 | case GICXXCustomAction_GICombiner110:{ |
2874 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2875 | // Match Patterns |
2876 | if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0], |
2877 | GIMatchData_info);}()) { |
2878 | return false; |
2879 | } |
2880 | // Apply Patterns |
2881 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2882 | return true; |
2883 | } |
2884 | case GICXXCustomAction_GICombiner111:{ |
2885 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2886 | // Match Patterns |
2887 | if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0], |
2888 | GIMatchData_info);}()) { |
2889 | return false; |
2890 | } |
2891 | // Apply Patterns |
2892 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2893 | return true; |
2894 | } |
2895 | case GICXXCustomAction_GICombiner112:{ |
2896 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2897 | // Match Patterns |
2898 | if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0], |
2899 | GIMatchData_info);}()) { |
2900 | return false; |
2901 | } |
2902 | // Apply Patterns |
2903 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2904 | return true; |
2905 | } |
2906 | case GICXXCustomAction_GICombiner113:{ |
2907 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2908 | // Match Patterns |
2909 | if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA( |
2910 | *State.MIs[0], GIMatchData_info);}()) { |
2911 | return false; |
2912 | } |
2913 | // Apply Patterns |
2914 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2915 | return true; |
2916 | } |
2917 | case GICXXCustomAction_GICombiner114:{ |
2918 | unsigned GIMatchData_select_op_no; |
2919 | // Match Patterns |
2920 | if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) { |
2921 | return false; |
2922 | } |
2923 | // Apply Patterns |
2924 | Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no); |
2925 | return true; |
2926 | } |
2927 | case GICXXCustomAction_GICombiner115:{ |
2928 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2929 | // Match Patterns |
2930 | if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2931 | return false; |
2932 | } |
2933 | // Apply Patterns |
2934 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2935 | return true; |
2936 | } |
2937 | case GICXXCustomAction_GICombiner116:{ |
2938 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2939 | // Match Patterns |
2940 | if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) { |
2941 | return false; |
2942 | } |
2943 | // Apply Patterns |
2944 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2945 | return true; |
2946 | } |
2947 | case GICXXCustomAction_GICombiner117:{ |
2948 | std::function<void(MachineIRBuilder &)> GIMatchData_info; |
2949 | // Match Patterns |
2950 | if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) { |
2951 | return false; |
2952 | } |
2953 | // Apply Patterns |
2954 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_info); |
2955 | return true; |
2956 | } |
2957 | case GICXXCustomAction_GICombiner118:{ |
2958 | Register GIMatchData_matchinfo; |
2959 | // Match Patterns |
2960 | if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2961 | return false; |
2962 | } |
2963 | // Apply Patterns |
2964 | Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo); |
2965 | return true; |
2966 | } |
2967 | case GICXXCustomAction_GICombiner119:{ |
2968 | // Match Patterns |
2969 | if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) { |
2970 | return false; |
2971 | } |
2972 | // Apply Patterns |
2973 | Helper.applyCommuteBinOpOperands(*State.MIs[0]); |
2974 | return true; |
2975 | } |
2976 | case GICXXCustomAction_GICombiner120:{ |
2977 | // Match Patterns |
2978 | if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) { |
2979 | return false; |
2980 | } |
2981 | // Apply Patterns |
2982 | Helper.applyCommuteBinOpOperands(*State.MIs[0]); |
2983 | return true; |
2984 | } |
2985 | case GICXXCustomAction_GICombiner121:{ |
2986 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2987 | // Match Patterns |
2988 | if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2989 | return false; |
2990 | } |
2991 | // Apply Patterns |
2992 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
2993 | return true; |
2994 | } |
2995 | case GICXXCustomAction_GICombiner122:{ |
2996 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
2997 | // Match Patterns |
2998 | if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) { |
2999 | return false; |
3000 | } |
3001 | // Apply Patterns |
3002 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
3003 | return true; |
3004 | } |
3005 | case GICXXCustomAction_GICombiner123:{ |
3006 | SmallVector<Register> GIMatchData_matchinfo; |
3007 | // Match Patterns |
3008 | if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3009 | return false; |
3010 | } |
3011 | // Apply Patterns |
3012 | Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo); |
3013 | return true; |
3014 | } |
3015 | case GICXXCustomAction_GICombiner124:{ |
3016 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
3017 | // Match Patterns |
3018 | if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3019 | return false; |
3020 | } |
3021 | // Apply Patterns |
3022 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
3023 | return true; |
3024 | } |
3025 | case GICXXCustomAction_GICombiner125:{ |
3026 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
3027 | // Match Patterns |
3028 | if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
3029 | return false; |
3030 | } |
3031 | // Apply Patterns |
3032 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
3033 | return true; |
3034 | } |
3035 | case GICXXCustomAction_GICombiner126:{ |
3036 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
3037 | // Match Patterns |
3038 | if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
3039 | return false; |
3040 | } |
3041 | // Apply Patterns |
3042 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
3043 | return true; |
3044 | } |
3045 | case GICXXCustomAction_GICombiner127:{ |
3046 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
3047 | // Match Patterns |
3048 | if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) { |
3049 | return false; |
3050 | } |
3051 | // Apply Patterns |
3052 | Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo); |
3053 | return true; |
3054 | } |
3055 | case GICXXCustomAction_GICombiner128:{ |
3056 | SmallVector<Register> GIMatchData_matchinfo; |
3057 | // Match Patterns |
3058 | if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3059 | return false; |
3060 | } |
3061 | // Apply Patterns |
3062 | Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo); |
3063 | return true; |
3064 | } |
3065 | case GICXXCustomAction_GICombiner129:{ |
3066 | FMinFMaxLegacyInfo GIMatchData_matchinfo; |
3067 | // Match Patterns |
3068 | if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) { |
3069 | return false; |
3070 | } |
3071 | // Apply Patterns |
3072 | applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo); |
3073 | return true; |
3074 | } |
3075 | case GICXXCustomAction_GICombiner130:{ |
3076 | // Match Patterns |
3077 | if(![&](){return Helper.matchExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());}()) { |
3078 | return false; |
3079 | } |
3080 | // Apply Patterns |
3081 | Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg()); |
3082 | return true; |
3083 | } |
3084 | case GICXXCustomAction_GICombiner131:{ |
3085 | // Match Patterns |
3086 | if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) { |
3087 | return false; |
3088 | } |
3089 | // Apply Patterns |
3090 | applyUCharToFloat(*State.MIs[0]); |
3091 | return true; |
3092 | } |
3093 | case GICXXCustomAction_GICombiner132:{ |
3094 | CvtF32UByteMatchInfo GIMatchData_matchinfo; |
3095 | // Match Patterns |
3096 | if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3097 | return false; |
3098 | } |
3099 | // Apply Patterns |
3100 | applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo); |
3101 | return true; |
3102 | } |
3103 | case GICXXCustomAction_GICombiner133:{ |
3104 | Register GIMatchData_matchinfo; |
3105 | // Match Patterns |
3106 | if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3107 | return false; |
3108 | } |
3109 | // Apply Patterns |
3110 | Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo); |
3111 | return true; |
3112 | } |
3113 | case GICXXCustomAction_GICombiner134:{ |
3114 | MachineInstr * GIMatchData_matchinfo; |
3115 | // Match Patterns |
3116 | if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3117 | return false; |
3118 | } |
3119 | // Apply Patterns |
3120 | Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo); |
3121 | return true; |
3122 | } |
3123 | case GICXXCustomAction_GICombiner135:{ |
3124 | std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo; |
3125 | // Match Patterns |
3126 | if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3127 | return false; |
3128 | } |
3129 | // Apply Patterns |
3130 | Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo); |
3131 | return true; |
3132 | } |
3133 | case GICXXCustomAction_GICombiner136:{ |
3134 | // Match Patterns |
3135 | if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) { |
3136 | return false; |
3137 | } |
3138 | // Apply Patterns |
3139 | applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg()); |
3140 | return true; |
3141 | } |
3142 | case GICXXCustomAction_GICombiner137:{ |
3143 | std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo; |
3144 | // Match Patterns |
3145 | if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3146 | return false; |
3147 | } |
3148 | // Apply Patterns |
3149 | applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo); |
3150 | return true; |
3151 | } |
3152 | case GICXXCustomAction_GICombiner138:{ |
3153 | unsigned GIMatchData_matchinfo; |
3154 | // Match Patterns |
3155 | if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) { |
3156 | return false; |
3157 | } |
3158 | // Apply Patterns |
3159 | Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo); |
3160 | return true; |
3161 | } |
3162 | } |
3163 | llvm_unreachable("Unknown Apply Action" ); |
3164 | } |
3165 | #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ |
3166 | #define GIMT_Encode2(Val) uint8_t(Val), uint8_t((uint16_t)Val >> 8) |
3167 | #define GIMT_Encode4(Val) uint8_t(Val), uint8_t((uint32_t)Val >> 8), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 24) |
3168 | #define GIMT_Encode8(Val) uint8_t(Val), uint8_t((uint64_t)Val >> 8), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_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) |
3169 | #else |
3170 | #define GIMT_Encode2(Val) uint8_t((uint16_t)Val >> 8), uint8_t(Val) |
3171 | #define GIMT_Encode4(Val) uint8_t((uint32_t)Val >> 24), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 8), uint8_t(Val) |
3172 | #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((uint64_t)Val >> 24), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 8), uint8_t(Val) |
3173 | #endif |
3174 | const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const { |
3175 | constexpr static uint8_t MatchTable0[] = { |
3176 | GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(19), GIMT_Encode2(3625), /*)*//*default:*//*Label 97*/ GIMT_Encode4(19844), |
3177 | /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(14434), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3178 | /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(14446), |
3179 | /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(14966), |
3180 | /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(15061), |
3181 | /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(15238), |
3182 | /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(15300), |
3183 | /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(15373), |
3184 | /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(15407), GIMT_Encode4(0), GIMT_Encode4(0), |
3185 | /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(15463), |
3186 | /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(15744), |
3187 | /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(15989), GIMT_Encode4(0), |
3188 | /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(16090), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3189 | /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(16102), GIMT_Encode4(0), |
3190 | /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(16158), |
3191 | /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(16170), |
3192 | /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(16193), |
3193 | /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(16205), |
3194 | /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(16217), |
3195 | /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(16239), |
3196 | /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(16251), |
3197 | /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(16273), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3198 | /*TargetOpcode::G_LOAD*//*Label 21*/ GIMT_Encode4(16337), |
3199 | /*TargetOpcode::G_SEXTLOAD*//*Label 22*/ GIMT_Encode4(16349), |
3200 | /*TargetOpcode::G_ZEXTLOAD*//*Label 23*/ GIMT_Encode4(16361), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3201 | /*TargetOpcode::G_STORE*//*Label 24*/ GIMT_Encode4(16373), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3202 | /*TargetOpcode::G_INTRINSIC*//*Label 25*/ GIMT_Encode4(16385), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3203 | /*TargetOpcode::G_ANYEXT*//*Label 26*/ GIMT_Encode4(16397), |
3204 | /*TargetOpcode::G_TRUNC*//*Label 27*/ GIMT_Encode4(16431), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3205 | /*TargetOpcode::G_SEXT*//*Label 28*/ GIMT_Encode4(16487), |
3206 | /*TargetOpcode::G_SEXT_INREG*//*Label 29*/ GIMT_Encode4(16537), |
3207 | /*TargetOpcode::G_ZEXT*//*Label 30*/ GIMT_Encode4(16593), |
3208 | /*TargetOpcode::G_SHL*//*Label 31*/ GIMT_Encode4(16671), |
3209 | /*TargetOpcode::G_LSHR*//*Label 32*/ GIMT_Encode4(16829), |
3210 | /*TargetOpcode::G_ASHR*//*Label 33*/ GIMT_Encode4(16941), |
3211 | /*TargetOpcode::G_FSHL*//*Label 34*/ GIMT_Encode4(17064), |
3212 | /*TargetOpcode::G_FSHR*//*Label 35*/ GIMT_Encode4(17107), |
3213 | /*TargetOpcode::G_ROTR*//*Label 36*/ GIMT_Encode4(17150), |
3214 | /*TargetOpcode::G_ROTL*//*Label 37*/ GIMT_Encode4(17174), |
3215 | /*TargetOpcode::G_ICMP*//*Label 38*/ GIMT_Encode4(17198), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3216 | /*TargetOpcode::G_SELECT*//*Label 39*/ GIMT_Encode4(17232), |
3217 | /*TargetOpcode::G_UADDO*//*Label 40*/ GIMT_Encode4(17354), |
3218 | /*TargetOpcode::G_UADDE*//*Label 41*/ GIMT_Encode4(17377), GIMT_Encode4(0), |
3219 | /*TargetOpcode::G_USUBE*//*Label 42*/ GIMT_Encode4(17389), |
3220 | /*TargetOpcode::G_SADDO*//*Label 43*/ GIMT_Encode4(17401), |
3221 | /*TargetOpcode::G_SADDE*//*Label 44*/ GIMT_Encode4(17424), GIMT_Encode4(0), |
3222 | /*TargetOpcode::G_SSUBE*//*Label 45*/ GIMT_Encode4(17436), |
3223 | /*TargetOpcode::G_UMULO*//*Label 46*/ GIMT_Encode4(17448), |
3224 | /*TargetOpcode::G_SMULO*//*Label 47*/ GIMT_Encode4(17482), |
3225 | /*TargetOpcode::G_UMULH*//*Label 48*/ GIMT_Encode4(17516), |
3226 | /*TargetOpcode::G_SMULH*//*Label 49*/ GIMT_Encode4(17539), |
3227 | /*TargetOpcode::G_UADDSAT*//*Label 50*/ GIMT_Encode4(17551), |
3228 | /*TargetOpcode::G_SADDSAT*//*Label 51*/ GIMT_Encode4(17563), GIMT_Encode4(0), GIMT_Encode4(0), |
3229 | /*TargetOpcode::G_USHLSAT*//*Label 52*/ GIMT_Encode4(17575), |
3230 | /*TargetOpcode::G_SSHLSAT*//*Label 53*/ GIMT_Encode4(17598), |
3231 | /*TargetOpcode::G_SMULFIX*//*Label 54*/ GIMT_Encode4(17621), |
3232 | /*TargetOpcode::G_UMULFIX*//*Label 55*/ GIMT_Encode4(17633), |
3233 | /*TargetOpcode::G_SMULFIXSAT*//*Label 56*/ GIMT_Encode4(17645), |
3234 | /*TargetOpcode::G_UMULFIXSAT*//*Label 57*/ GIMT_Encode4(17657), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3235 | /*TargetOpcode::G_FADD*//*Label 58*/ GIMT_Encode4(17669), |
3236 | /*TargetOpcode::G_FSUB*//*Label 59*/ GIMT_Encode4(17781), |
3237 | /*TargetOpcode::G_FMUL*//*Label 60*/ GIMT_Encode4(17870), |
3238 | /*TargetOpcode::G_FMA*//*Label 61*/ GIMT_Encode4(17958), |
3239 | /*TargetOpcode::G_FMAD*//*Label 62*/ GIMT_Encode4(17981), |
3240 | /*TargetOpcode::G_FDIV*//*Label 63*/ GIMT_Encode4(18004), |
3241 | /*TargetOpcode::G_FREM*//*Label 64*/ GIMT_Encode4(18077), GIMT_Encode4(0), |
3242 | /*TargetOpcode::G_FPOWI*//*Label 65*/ GIMT_Encode4(18089), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3243 | /*TargetOpcode::G_FLOG2*//*Label 66*/ GIMT_Encode4(18111), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3244 | /*TargetOpcode::G_FNEG*//*Label 67*/ GIMT_Encode4(18133), GIMT_Encode4(0), |
3245 | /*TargetOpcode::G_FPTRUNC*//*Label 68*/ GIMT_Encode4(18195), |
3246 | /*TargetOpcode::G_FPTOSI*//*Label 69*/ GIMT_Encode4(18262), |
3247 | /*TargetOpcode::G_FPTOUI*//*Label 70*/ GIMT_Encode4(18274), |
3248 | /*TargetOpcode::G_SITOFP*//*Label 71*/ GIMT_Encode4(18286), |
3249 | /*TargetOpcode::G_UITOFP*//*Label 72*/ GIMT_Encode4(18324), |
3250 | /*TargetOpcode::G_FABS*//*Label 73*/ GIMT_Encode4(18362), GIMT_Encode4(0), GIMT_Encode4(0), |
3251 | /*TargetOpcode::G_FCANONICALIZE*//*Label 74*/ GIMT_Encode4(18441), |
3252 | /*TargetOpcode::G_FMINNUM*//*Label 75*/ GIMT_Encode4(18482), |
3253 | /*TargetOpcode::G_FMAXNUM*//*Label 76*/ GIMT_Encode4(18516), |
3254 | /*TargetOpcode::G_FMINNUM_IEEE*//*Label 77*/ GIMT_Encode4(18550), |
3255 | /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 78*/ GIMT_Encode4(18562), |
3256 | /*TargetOpcode::G_FMINIMUM*//*Label 79*/ GIMT_Encode4(18574), |
3257 | /*TargetOpcode::G_FMAXIMUM*//*Label 80*/ GIMT_Encode4(18608), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3258 | /*TargetOpcode::G_PTR_ADD*//*Label 81*/ GIMT_Encode4(18642), GIMT_Encode4(0), |
3259 | /*TargetOpcode::G_SMIN*//*Label 82*/ GIMT_Encode4(18721), |
3260 | /*TargetOpcode::G_SMAX*//*Label 83*/ GIMT_Encode4(18744), |
3261 | /*TargetOpcode::G_UMIN*//*Label 84*/ GIMT_Encode4(18767), |
3262 | /*TargetOpcode::G_UMAX*//*Label 85*/ GIMT_Encode4(18790), |
3263 | /*TargetOpcode::G_ABS*//*Label 86*/ GIMT_Encode4(18813), GIMT_Encode4(0), GIMT_Encode4(0), |
3264 | /*TargetOpcode::G_BR*//*Label 87*/ GIMT_Encode4(18825), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3265 | /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 88*/ GIMT_Encode4(18837), |
3266 | /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 89*/ GIMT_Encode4(18967), |
3267 | /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 90*/ GIMT_Encode4(19640), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3268 | /*TargetOpcode::G_BITREVERSE*//*Label 91*/ GIMT_Encode4(19674), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3269 | /*TargetOpcode::G_FSQRT*//*Label 92*/ GIMT_Encode4(19763), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), |
3270 | /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 93*/ GIMT_Encode4(19796), |
3271 | /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 94*/ GIMT_Encode4(19808), |
3272 | /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 95*/ GIMT_Encode4(19820), |
3273 | /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 96*/ GIMT_Encode4(19832), |
3274 | // Label 0: @14434 |
3275 | GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(14445), // Rule ID 8 // |
3276 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled), |
3277 | // MIs[0] d |
3278 | // No operand predicates |
3279 | // MIs[0] s |
3280 | // No operand predicates |
3281 | // Combiner Rule #8: copy_prop |
3282 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0), |
3283 | // Label 98: @14445 |
3284 | GIM_Reject, |
3285 | // Label 1: @14446 |
3286 | GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(14457), // Rule ID 10 // |
3287 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled), |
3288 | // Combiner Rule #10: add_p2i_to_ptradd; wip_match_opcode 'G_ADD' |
3289 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2), |
3290 | // Label 99: @14457 |
3291 | GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(14468), // Rule ID 72 // |
3292 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled), |
3293 | // Combiner Rule #62: propagate_undef_any_op; wip_match_opcode 'G_ADD' |
3294 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25), |
3295 | // Label 100: @14468 |
3296 | GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(14479), // Rule ID 119 // |
3297 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled), |
3298 | // Combiner Rule #88: simplify_add_to_sub; wip_match_opcode 'G_ADD' |
3299 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41), |
3300 | // Label 101: @14479 |
3301 | GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(14490), // Rule ID 212 // |
3302 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
3303 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_ADD' |
3304 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
3305 | // Label 102: @14490 |
3306 | GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(14501), // Rule ID 251 // |
3307 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3308 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_ADD' |
3309 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3310 | // Label 103: @14501 |
3311 | GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(14512), // Rule ID 281 // |
3312 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
3313 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD' |
3314 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
3315 | // Label 104: @14512 |
3316 | GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(14546), // Rule ID 0 // |
3317 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled), |
3318 | // MIs[0] root |
3319 | // No operand predicates |
3320 | // MIs[0] sub |
3321 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3322 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3323 | // MIs[1] Operand 1 |
3324 | GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0, |
3325 | // MIs[1] A |
3326 | // No operand predicates |
3327 | // MIs[0] B |
3328 | // No operand predicates |
3329 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3330 | // Combiner Rule #0: ZeroMinusAPlusB |
3331 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3332 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
3333 | GIR_RootToRootCopy, /*OpIdx*/2, // B |
3334 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A |
3335 | GIR_EraseRootFromParent_Done, |
3336 | // Label 105: @14546 |
3337 | GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(14580), // Rule ID 3 // |
3338 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled), |
3339 | // MIs[0] root |
3340 | // No operand predicates |
3341 | // MIs[0] sub |
3342 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3343 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3344 | // MIs[1] B |
3345 | // No operand predicates |
3346 | // MIs[1] A |
3347 | // No operand predicates |
3348 | // MIs[0] A |
3349 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2, |
3350 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3351 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3352 | // Combiner Rule #3: BMinusAPlusA |
3353 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3354 | GIR_EraseRootFromParent_Done, |
3355 | // Label 106: @14580 |
3356 | GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(14614), // Rule ID 109 // |
3357 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled), |
3358 | // MIs[0] dst |
3359 | // No operand predicates |
3360 | // MIs[0] __add_sub_reg_match_0.tmp |
3361 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3362 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3363 | // MIs[1] src |
3364 | // No operand predicates |
3365 | // MIs[1] __add_sub_reg_match_0.x |
3366 | // No operand predicates |
3367 | // MIs[0] __add_sub_reg_match_0.x |
3368 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2, |
3369 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3370 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3371 | // Combiner Rule #79: add_sub_reg @ [__add_sub_reg_match_0[1]] |
3372 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3373 | GIR_EraseRootFromParent_Done, |
3374 | // Label 107: @14614 |
3375 | GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(14659), // Rule ID 5 // |
3376 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled), |
3377 | // MIs[0] root |
3378 | // No operand predicates |
3379 | // MIs[0] sub1 |
3380 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3381 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3382 | // MIs[1] A |
3383 | // No operand predicates |
3384 | // MIs[1] B |
3385 | // No operand predicates |
3386 | // MIs[0] sub2 |
3387 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
3388 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB), |
3389 | // MIs[2] B |
3390 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2, |
3391 | // MIs[2] C |
3392 | // No operand predicates |
3393 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3394 | // Combiner Rule #5: AMinusBPlusBMinusC |
3395 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3396 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
3397 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A |
3398 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C |
3399 | GIR_EraseRootFromParent_Done, |
3400 | // Label 108: @14659 |
3401 | GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(14704), // Rule ID 4 // |
3402 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled), |
3403 | // MIs[0] root |
3404 | // No operand predicates |
3405 | // MIs[0] sub1 |
3406 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3407 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3408 | // MIs[1] A |
3409 | // No operand predicates |
3410 | // MIs[1] B |
3411 | // No operand predicates |
3412 | // MIs[0] sub2 |
3413 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
3414 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB), |
3415 | // MIs[2] C |
3416 | // No operand predicates |
3417 | // MIs[2] A |
3418 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1, |
3419 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3420 | // Combiner Rule #4: AMinusBPlusCMinusA |
3421 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3422 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
3423 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C |
3424 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B |
3425 | GIR_EraseRootFromParent_Done, |
3426 | // Label 109: @14704 |
3427 | GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(14739), // Rule ID 46 // |
3428 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled), |
3429 | GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap), |
3430 | // MIs[0] root |
3431 | // No operand predicates |
3432 | // MIs[0] left |
3433 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3434 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE), |
3435 | // MIs[1] imm1 |
3436 | // No operand predicates |
3437 | // MIs[0] right |
3438 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
3439 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE), |
3440 | // MIs[2] imm2 |
3441 | // No operand predicates |
3442 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3443 | // Combiner Rule #44: add_of_vscale |
3444 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9), |
3445 | // Label 110: @14739 |
3446 | GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(14773), // Rule ID 1 // |
3447 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled), |
3448 | // MIs[0] root |
3449 | // No operand predicates |
3450 | // MIs[0] A |
3451 | // No operand predicates |
3452 | // MIs[0] sub |
3453 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
3454 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3455 | // MIs[1] Operand 1 |
3456 | GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0, |
3457 | // MIs[1] B |
3458 | // No operand predicates |
3459 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3460 | // Combiner Rule #1: APlusZeroMinusB |
3461 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3462 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
3463 | GIR_RootToRootCopy, /*OpIdx*/1, // A |
3464 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B |
3465 | GIR_EraseRootFromParent_Done, |
3466 | // Label 111: @14773 |
3467 | GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(14807), // Rule ID 2 // |
3468 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled), |
3469 | // MIs[0] root |
3470 | // No operand predicates |
3471 | // MIs[0] A |
3472 | // No operand predicates |
3473 | // MIs[0] sub |
3474 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
3475 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3476 | // MIs[1] B |
3477 | // No operand predicates |
3478 | // MIs[1] A |
3479 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1, |
3480 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3481 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3482 | // Combiner Rule #2: APlusBMinusB |
3483 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3484 | GIR_EraseRootFromParent_Done, |
3485 | // Label 112: @14807 |
3486 | GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(14841), // Rule ID 108 // |
3487 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled), |
3488 | // MIs[0] dst |
3489 | // No operand predicates |
3490 | // MIs[0] __add_sub_reg_match_0.x |
3491 | // No operand predicates |
3492 | // MIs[0] __add_sub_reg_match_0.tmp |
3493 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
3494 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3495 | // MIs[1] src |
3496 | // No operand predicates |
3497 | // MIs[1] __add_sub_reg_match_0.x |
3498 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1, |
3499 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3500 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3501 | // Combiner Rule #79: add_sub_reg @ [__add_sub_reg_match_0[0]] |
3502 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
3503 | GIR_EraseRootFromParent_Done, |
3504 | // Label 113: @14841 |
3505 | GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(14886), // Rule ID 6 // |
3506 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled), |
3507 | // MIs[0] root |
3508 | // No operand predicates |
3509 | // MIs[0] A |
3510 | // No operand predicates |
3511 | // MIs[0] sub1 |
3512 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
3513 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3514 | // MIs[1] B |
3515 | // No operand predicates |
3516 | // MIs[1] add1 |
3517 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2] |
3518 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD), |
3519 | // MIs[2] A |
3520 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1, |
3521 | // MIs[2] C |
3522 | // No operand predicates |
3523 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3524 | // Combiner Rule #6: APlusBMinusAplusC |
3525 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3526 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
3527 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B |
3528 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C |
3529 | GIR_EraseRootFromParent_Done, |
3530 | // Label 114: @14886 |
3531 | GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(14931), // Rule ID 7 // |
3532 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled), |
3533 | // MIs[0] root |
3534 | // No operand predicates |
3535 | // MIs[0] A |
3536 | // No operand predicates |
3537 | // MIs[0] sub1 |
3538 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
3539 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB), |
3540 | // MIs[1] B |
3541 | // No operand predicates |
3542 | // MIs[1] add1 |
3543 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2] |
3544 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD), |
3545 | // MIs[2] C |
3546 | // No operand predicates |
3547 | // MIs[2] A |
3548 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1, |
3549 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3550 | // Combiner Rule #7: APlusBMinusCPlusA |
3551 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3552 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
3553 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B |
3554 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C |
3555 | GIR_EraseRootFromParent_Done, |
3556 | // Label 115: @14931 |
3557 | GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(14954), // Rule ID 86 // |
3558 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
3559 | // MIs[0] dst |
3560 | // No operand predicates |
3561 | // MIs[0] lhs |
3562 | // No operand predicates |
3563 | // MIs[0] Operand 2 |
3564 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
3565 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3566 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[1]] |
3567 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3568 | GIR_EraseRootFromParent_Done, |
3569 | // Label 116: @14954 |
3570 | GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(14965), // Rule ID 127 // |
3571 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled), |
3572 | // MIs[0] root |
3573 | // No operand predicates |
3574 | // MIs[0] src1 |
3575 | // No operand predicates |
3576 | // MIs[0] src2 |
3577 | // No operand predicates |
3578 | // Combiner Rule #92: reassoc_comm_binops |
3579 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45), |
3580 | // Label 117: @14965 |
3581 | GIM_Reject, |
3582 | // Label 2: @14966 |
3583 | GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(14977), // Rule ID 75 // |
3584 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled), |
3585 | // Combiner Rule #62: propagate_undef_any_op; wip_match_opcode 'G_SUB' |
3586 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25), |
3587 | // Label 118: @14977 |
3588 | GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(14988), // Rule ID 213 // |
3589 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
3590 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_SUB' |
3591 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
3592 | // Label 119: @14988 |
3593 | GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(14999), // Rule ID 252 // |
3594 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3595 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_SUB' |
3596 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3597 | // Label 120: @14999 |
3598 | GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(15010), // Rule ID 277 // |
3599 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled), |
3600 | // Combiner Rule #173: sub_add_reg; wip_match_opcode 'G_SUB' |
3601 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115), |
3602 | // Label 121: @15010 |
3603 | GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(15037), // Rule ID 49 // |
3604 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled), |
3605 | GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap), |
3606 | // MIs[0] root |
3607 | // No operand predicates |
3608 | // MIs[0] x |
3609 | // No operand predicates |
3610 | // MIs[0] right |
3611 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
3612 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE), |
3613 | // MIs[1] imm |
3614 | // No operand predicates |
3615 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
3616 | // Combiner Rule #47: sub_of_vscale |
3617 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12), |
3618 | // Label 122: @15037 |
3619 | GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(15060), // Rule ID 85 // |
3620 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
3621 | // MIs[0] dst |
3622 | // No operand predicates |
3623 | // MIs[0] lhs |
3624 | // No operand predicates |
3625 | // MIs[0] Operand 2 |
3626 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
3627 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3628 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[0]] |
3629 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3630 | GIR_EraseRootFromParent_Done, |
3631 | // Label 123: @15060 |
3632 | GIM_Reject, |
3633 | // Label 3: @15061 |
3634 | GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(15072), // Rule ID 63 // |
3635 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled), |
3636 | // Combiner Rule #57: undef_to_int_zero; wip_match_opcode 'G_MUL' |
3637 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21), |
3638 | // Label 124: @15072 |
3639 | GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(15083), // Rule ID 214 // |
3640 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
3641 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_MUL' |
3642 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
3643 | // Label 125: @15083 |
3644 | GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(15094), // Rule ID 282 // |
3645 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
3646 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL' |
3647 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
3648 | // Label 126: @15094 |
3649 | GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(15105), // Rule ID 335 // |
3650 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled), |
3651 | // Combiner Rule #198: smulu64; wip_match_opcode 'G_MUL' |
3652 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138), |
3653 | // Label 127: @15105 |
3654 | GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(15145), // Rule ID 11 // |
3655 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled), |
3656 | // MIs[0] dst |
3657 | GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/uint8_t(-1), |
3658 | // MIs[0] x |
3659 | // No operand predicates |
3660 | // MIs[0] Operand 2 |
3661 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1), |
3662 | GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1), |
3663 | GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0), |
3664 | // Combiner Rule #11: mul_by_neg_one |
3665 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB), |
3666 | GIR_RootToRootCopy, /*OpIdx*/0, // dst |
3667 | GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0, |
3668 | GIR_RootToRootCopy, /*OpIdx*/1, // x |
3669 | GIR_EraseRootFromParent_Done, |
3670 | // Label 128: @15145 |
3671 | GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(15180), // Rule ID 47 // |
3672 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled), |
3673 | GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap), |
3674 | // MIs[0] root |
3675 | // No operand predicates |
3676 | // MIs[0] left |
3677 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3678 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE), |
3679 | // MIs[1] scale |
3680 | // No operand predicates |
3681 | // MIs[0] x |
3682 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
3683 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT), |
3684 | // MIs[2] imm1 |
3685 | // No operand predicates |
3686 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3687 | // Combiner Rule #45: mul_of_vscale |
3688 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10), |
3689 | // Label 129: @15180 |
3690 | GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(15203), // Rule ID 101 // |
3691 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled), |
3692 | // MIs[0] dst |
3693 | // No operand predicates |
3694 | // MIs[0] lhs |
3695 | // No operand predicates |
3696 | // MIs[0] zero |
3697 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
3698 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2, |
3699 | // Combiner Rule #72: binop_right_to_zero |
3700 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2, |
3701 | GIR_EraseRootFromParent_Done, |
3702 | // Label 130: @15203 |
3703 | GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(15226), // Rule ID 106 // |
3704 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled), |
3705 | // MIs[0] dst |
3706 | // No operand predicates |
3707 | // MIs[0] x |
3708 | // No operand predicates |
3709 | // MIs[0] Operand 2 |
3710 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1, |
3711 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3712 | // Combiner Rule #77: right_identity_one_int |
3713 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3714 | GIR_EraseRootFromParent_Done, |
3715 | // Label 131: @15226 |
3716 | GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(15237), // Rule ID 9 // |
3717 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled), |
3718 | // MIs[0] d |
3719 | // No operand predicates |
3720 | // MIs[0] op1 |
3721 | // No operand predicates |
3722 | // MIs[0] op2 |
3723 | // No operand predicates |
3724 | // Combiner Rule #9: mul_to_shl |
3725 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1), |
3726 | // Label 132: @15237 |
3727 | GIM_Reject, |
3728 | // Label 4: @15238 |
3729 | GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(15249), // Rule ID 97 // |
3730 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled), |
3731 | // Combiner Rule #71: binop_left_to_zero; wip_match_opcode 'G_SDIV' |
3732 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32), |
3733 | // Label 133: @15249 |
3734 | GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(15260), // Rule ID 192 // |
3735 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled), |
3736 | // Combiner Rule #139: div_rem_to_divrem; wip_match_opcode 'G_SDIV' |
3737 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86), |
3738 | // Label 134: @15260 |
3739 | GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(15271), // Rule ID 232 // |
3740 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled), |
3741 | // Combiner Rule #158: sdiv_by_const; wip_match_opcode 'G_SDIV' |
3742 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100), |
3743 | // Label 135: @15271 |
3744 | GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(15282), // Rule ID 257 // |
3745 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3746 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_SDIV' |
3747 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3748 | // Label 136: @15282 |
3749 | GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(15299), // Rule ID 233 // |
3750 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled), |
3751 | GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact), |
3752 | // MIs[0] dst |
3753 | // No operand predicates |
3754 | // MIs[0] x |
3755 | // No operand predicates |
3756 | // MIs[0] y |
3757 | // No operand predicates |
3758 | // Combiner Rule #159: sdiv_by_pow2 |
3759 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101), |
3760 | // Label 137: @15299 |
3761 | GIM_Reject, |
3762 | // Label 5: @15300 |
3763 | GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(15311), // Rule ID 66 // |
3764 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled), |
3765 | // Combiner Rule #59: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV' |
3766 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23), |
3767 | // Label 138: @15311 |
3768 | GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(15322), // Rule ID 98 // |
3769 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled), |
3770 | // Combiner Rule #71: binop_left_to_zero; wip_match_opcode 'G_UDIV' |
3771 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32), |
3772 | // Label 139: @15322 |
3773 | GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(15333), // Rule ID 193 // |
3774 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled), |
3775 | // Combiner Rule #139: div_rem_to_divrem; wip_match_opcode 'G_UDIV' |
3776 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86), |
3777 | // Label 140: @15333 |
3778 | GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(15344), // Rule ID 231 // |
3779 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled), |
3780 | // Combiner Rule #157: udiv_by_const; wip_match_opcode 'G_UDIV' |
3781 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99), |
3782 | // Label 141: @15344 |
3783 | GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(15355), // Rule ID 259 // |
3784 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3785 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_UDIV' |
3786 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3787 | // Label 142: @15355 |
3788 | GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(15372), // Rule ID 234 // |
3789 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled), |
3790 | GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact), |
3791 | // MIs[0] dst |
3792 | // No operand predicates |
3793 | // MIs[0] x |
3794 | // No operand predicates |
3795 | // MIs[0] y |
3796 | // No operand predicates |
3797 | // Combiner Rule #160: udiv_by_pow2 |
3798 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102), |
3799 | // Label 143: @15372 |
3800 | GIM_Reject, |
3801 | // Label 6: @15373 |
3802 | GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(15384), // Rule ID 99 // |
3803 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled), |
3804 | // Combiner Rule #71: binop_left_to_zero; wip_match_opcode 'G_SREM' |
3805 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32), |
3806 | // Label 144: @15384 |
3807 | GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(15395), // Rule ID 194 // |
3808 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled), |
3809 | // Combiner Rule #139: div_rem_to_divrem; wip_match_opcode 'G_SREM' |
3810 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86), |
3811 | // Label 145: @15395 |
3812 | GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(15406), // Rule ID 258 // |
3813 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3814 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_SREM' |
3815 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3816 | // Label 146: @15406 |
3817 | GIM_Reject, |
3818 | // Label 7: @15407 |
3819 | GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(15418), // Rule ID 67 // |
3820 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled), |
3821 | // Combiner Rule #59: binop_left_undef_to_zero; wip_match_opcode 'G_UREM' |
3822 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23), |
3823 | // Label 147: @15418 |
3824 | GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(15429), // Rule ID 100 // |
3825 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled), |
3826 | // Combiner Rule #71: binop_left_to_zero; wip_match_opcode 'G_UREM' |
3827 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32), |
3828 | // Label 148: @15429 |
3829 | GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(15440), // Rule ID 140 // |
3830 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled), |
3831 | // Combiner Rule #105: urem_pow2_to_mask; wip_match_opcode 'G_UREM' |
3832 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57), |
3833 | // Label 149: @15440 |
3834 | GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(15451), // Rule ID 195 // |
3835 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled), |
3836 | // Combiner Rule #139: div_rem_to_divrem; wip_match_opcode 'G_UREM' |
3837 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86), |
3838 | // Label 150: @15451 |
3839 | GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(15462), // Rule ID 260 // |
3840 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3841 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_UREM' |
3842 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3843 | // Label 151: @15462 |
3844 | GIM_Reject, |
3845 | // Label 8: @15463 |
3846 | GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(15474), // Rule ID 58 // |
3847 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled), |
3848 | // Combiner Rule #54: load_and_mask; wip_match_opcode 'G_AND' |
3849 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18), |
3850 | // Label 152: @15474 |
3851 | GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(15485), // Rule ID 62 // |
3852 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled), |
3853 | // Combiner Rule #57: undef_to_int_zero; wip_match_opcode 'G_AND' |
3854 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21), |
3855 | // Label 153: @15485 |
3856 | GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(15496), // Rule ID 120 // |
3857 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled), |
3858 | // Combiner Rule #89: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND' |
3859 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42), |
3860 | // Label 154: @15496 |
3861 | GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(15507), // Rule ID 132 // |
3862 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled), |
3863 | // Combiner Rule #97: narrow_binop_feeding_and; wip_match_opcode 'G_AND' |
3864 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50), |
3865 | // Label 155: @15507 |
3866 | GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(15518), // Rule ID 137 // |
3867 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled), |
3868 | // Combiner Rule #102: redundant_and; wip_match_opcode 'G_AND' |
3869 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54), |
3870 | // Label 156: @15518 |
3871 | GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(15529), // Rule ID 165 // |
3872 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled), |
3873 | // Combiner Rule #128: overlapping_and; wip_match_opcode 'G_AND' |
3874 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75), |
3875 | // Label 157: @15529 |
3876 | GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(15540), // Rule ID 215 // |
3877 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
3878 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_AND' |
3879 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
3880 | // Label 158: @15540 |
3881 | GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(15551), // Rule ID 242 // |
3882 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled), |
3883 | // Combiner Rule #163: and_or_disjoint_mask; wip_match_opcode 'G_AND' |
3884 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105), |
3885 | // Label 159: @15551 |
3886 | GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(15562), // Rule ID 254 // |
3887 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
3888 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_AND' |
3889 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
3890 | // Label 160: @15562 |
3891 | GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(15573), // Rule ID 283 // |
3892 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
3893 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_AND' |
3894 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
3895 | // Label 161: @15573 |
3896 | GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(15584), // Rule ID 310 // |
3897 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled), |
3898 | // Combiner Rule #179: match_ands; wip_match_opcode 'G_AND' |
3899 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121), |
3900 | // Label 162: @15584 |
3901 | GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(15682), // Rule ID 313 // |
3902 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled), |
3903 | // MIs[0] root |
3904 | // No operand predicates |
3905 | // MIs[0] d1 |
3906 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3907 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP), |
3908 | // MIs[1] p |
3909 | // No operand predicates |
3910 | // MIs[1] s1 |
3911 | GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/uint8_t(-1), |
3912 | // MIs[1] Operand 3 |
3913 | GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0, |
3914 | // MIs[0] d2 |
3915 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
3916 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP), |
3917 | // MIs[2] p |
3918 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1, |
3919 | // MIs[2] s2 |
3920 | // No operand predicates |
3921 | // MIs[2] Operand 3 |
3922 | GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0, |
3923 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7), |
3924 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
3925 | GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/uint8_t(-1), |
3926 | GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0), |
3927 | GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1), |
3928 | // Combiner Rule #182: double_icmp_zero_and_combine |
3929 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR), |
3930 | GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define), |
3931 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1 |
3932 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2 |
3933 | GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP), |
3934 | GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root |
3935 | GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p |
3936 | GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0, |
3937 | GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1, |
3938 | GIR_EraseRootFromParent_Done, |
3939 | // Label 163: @15682 |
3940 | GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(15719), // Rule ID 207 // |
3941 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled), |
3942 | // MIs[0] root |
3943 | // No operand predicates |
3944 | // MIs[0] shift |
3945 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
3946 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR), |
3947 | // MIs[1] x |
3948 | // No operand predicates |
3949 | // MIs[1] lsb |
3950 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2] |
3951 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT), |
3952 | // MIs[2] imm1 |
3953 | // No operand predicates |
3954 | // MIs[0] mask |
3955 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3] |
3956 | GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT), |
3957 | // MIs[3] imm2 |
3958 | // No operand predicates |
3959 | GIM_CheckIsSafeToFold, /*NumInsns*/3, |
3960 | // Combiner Rule #149: bitfield_extract_from_and |
3961 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92), |
3962 | // Label 164: @15719 |
3963 | GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(15743), // Rule ID 95 // |
3964 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled), |
3965 | // MIs[0] dst |
3966 | // No operand predicates |
3967 | // MIs[0] src |
3968 | // No operand predicates |
3969 | // MIs[0] src |
3970 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1, |
3971 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3972 | // Combiner Rule #70: binop_same_val @ [__binop_same_val_match_0[0]] |
3973 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
3974 | GIR_EraseRootFromParent_Done, |
3975 | // Label 165: @15743 |
3976 | GIM_Reject, |
3977 | // Label 9: @15744 |
3978 | GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(15755), // Rule ID 64 // |
3979 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled), |
3980 | // Combiner Rule #58: undef_to_negative_one; wip_match_opcode 'G_OR' |
3981 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22), |
3982 | // Label 166: @15755 |
3983 | GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(15766), // Rule ID 121 // |
3984 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled), |
3985 | // Combiner Rule #89: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR' |
3986 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42), |
3987 | // Label 167: @15766 |
3988 | GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(15777), // Rule ID 139 // |
3989 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled), |
3990 | // Combiner Rule #104: redundant_or; wip_match_opcode 'G_OR' |
3991 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56), |
3992 | // Label 168: @15777 |
3993 | GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(15788), // Rule ID 191 // |
3994 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled), |
3995 | // Combiner Rule #138: load_or_combine; wip_match_opcode 'G_OR' |
3996 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85), |
3997 | // Label 169: @15788 |
3998 | GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(15799), // Rule ID 196 // |
3999 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled), |
4000 | // Combiner Rule #140: funnel_shift_from_or_shift; wip_match_opcode 'G_OR' |
4001 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87), |
4002 | // Label 170: @15799 |
4003 | GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(15810), // Rule ID 216 // |
4004 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
4005 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_OR' |
4006 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
4007 | // Label 171: @15810 |
4008 | GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(15821), // Rule ID 255 // |
4009 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
4010 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_OR' |
4011 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
4012 | // Label 172: @15821 |
4013 | GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(15832), // Rule ID 284 // |
4014 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4015 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_OR' |
4016 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4017 | // Label 173: @15832 |
4018 | GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(15843), // Rule ID 311 // |
4019 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled), |
4020 | // Combiner Rule #180: match_ors; wip_match_opcode 'G_OR' |
4021 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122), |
4022 | // Label 174: @15843 |
4023 | GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(15941), // Rule ID 314 // |
4024 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled), |
4025 | // MIs[0] root |
4026 | // No operand predicates |
4027 | // MIs[0] d1 |
4028 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4029 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP), |
4030 | // MIs[1] p |
4031 | // No operand predicates |
4032 | // MIs[1] s1 |
4033 | GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/uint8_t(-1), |
4034 | // MIs[1] Operand 3 |
4035 | GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0, |
4036 | // MIs[0] d2 |
4037 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
4038 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP), |
4039 | // MIs[2] p |
4040 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1, |
4041 | // MIs[2] s2 |
4042 | // No operand predicates |
4043 | // MIs[2] Operand 3 |
4044 | GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0, |
4045 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8), |
4046 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
4047 | GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/uint8_t(-1), |
4048 | GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0), |
4049 | GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1), |
4050 | // Combiner Rule #183: double_icmp_zero_or_combine |
4051 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR), |
4052 | GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define), |
4053 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1 |
4054 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2 |
4055 | GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP), |
4056 | GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root |
4057 | GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p |
4058 | GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0, |
4059 | GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1, |
4060 | GIR_EraseRootFromParent_Done, |
4061 | // Label 175: @15941 |
4062 | GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(15965), // Rule ID 96 // |
4063 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled), |
4064 | // MIs[0] dst |
4065 | // No operand predicates |
4066 | // MIs[0] src |
4067 | // No operand predicates |
4068 | // MIs[0] src |
4069 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1, |
4070 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4071 | // Combiner Rule #70: binop_same_val @ [__binop_same_val_match_0[1]] |
4072 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4073 | GIR_EraseRootFromParent_Done, |
4074 | // Label 176: @15965 |
4075 | GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(15988), // Rule ID 87 // |
4076 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4077 | // MIs[0] dst |
4078 | // No operand predicates |
4079 | // MIs[0] lhs |
4080 | // No operand predicates |
4081 | // MIs[0] Operand 2 |
4082 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4083 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4084 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[2]] |
4085 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4086 | GIR_EraseRootFromParent_Done, |
4087 | // Label 177: @15988 |
4088 | GIM_Reject, |
4089 | // Label 10: @15989 |
4090 | GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(16000), // Rule ID 76 // |
4091 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled), |
4092 | // Combiner Rule #62: propagate_undef_any_op; wip_match_opcode 'G_XOR' |
4093 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25), |
4094 | // Label 178: @16000 |
4095 | GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(16011), // Rule ID 122 // |
4096 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled), |
4097 | // Combiner Rule #89: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR' |
4098 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42), |
4099 | // Label 179: @16011 |
4100 | GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(16022), // Rule ID 148 // |
4101 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled), |
4102 | // Combiner Rule #111: not_cmp_fold; wip_match_opcode 'G_XOR' |
4103 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63), |
4104 | // Label 180: @16022 |
4105 | GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(16033), // Rule ID 179 // |
4106 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled), |
4107 | // Combiner Rule #134: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR' |
4108 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81), |
4109 | // Label 181: @16033 |
4110 | GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(16044), // Rule ID 217 // |
4111 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
4112 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_XOR' |
4113 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
4114 | // Label 182: @16044 |
4115 | GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(16055), // Rule ID 256 // |
4116 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
4117 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_XOR' |
4118 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
4119 | // Label 183: @16055 |
4120 | GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(16066), // Rule ID 285 // |
4121 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4122 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR' |
4123 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4124 | // Label 184: @16066 |
4125 | GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(16089), // Rule ID 88 // |
4126 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4127 | // MIs[0] dst |
4128 | // No operand predicates |
4129 | // MIs[0] lhs |
4130 | // No operand predicates |
4131 | // MIs[0] Operand 2 |
4132 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4133 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4134 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[3]] |
4135 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4136 | GIR_EraseRootFromParent_Done, |
4137 | // Label 185: @16089 |
4138 | GIM_Reject, |
4139 | // Label 11: @16090 |
4140 | GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(16101), // Rule ID 118 // |
4141 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled), |
4142 | // Combiner Rule #87: extend_through_phis; wip_match_opcode 'G_PHI' |
4143 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40), |
4144 | // Label 186: @16101 |
4145 | GIM_Reject, |
4146 | // Label 12: @16102 |
4147 | GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(16113), // Rule ID 81 // |
4148 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled), |
4149 | // Combiner Rule #66: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES' |
4150 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29), |
4151 | // Label 187: @16113 |
4152 | GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(16124), // Rule ID 150 // |
4153 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled), |
4154 | // Combiner Rule #113: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES' |
4155 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65), |
4156 | // Label 188: @16124 |
4157 | GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(16135), // Rule ID 151 // |
4158 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled), |
4159 | // Combiner Rule #114: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES' |
4160 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66), |
4161 | // Label 189: @16135 |
4162 | GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(16146), // Rule ID 152 // |
4163 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled), |
4164 | // Combiner Rule #115: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES' |
4165 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67), |
4166 | // Label 190: @16146 |
4167 | GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(16157), // Rule ID 153 // |
4168 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled), |
4169 | // Combiner Rule #116: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES' |
4170 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68), |
4171 | // Label 191: @16157 |
4172 | GIM_Reject, |
4173 | // Label 13: @16158 |
4174 | GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(16169), // Rule ID 154 // |
4175 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled), |
4176 | // Combiner Rule #117: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES' |
4177 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69), |
4178 | // Label 192: @16169 |
4179 | GIM_Reject, |
4180 | // Label 14: @16170 |
4181 | GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(16181), // Rule ID 54 // |
4182 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled), |
4183 | // Combiner Rule #52: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR' |
4184 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16), |
4185 | // Label 193: @16181 |
4186 | GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(16192), // Rule ID 111 // |
4187 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled), |
4188 | // Combiner Rule #80: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR' |
4189 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36), |
4190 | // Label 194: @16192 |
4191 | GIM_Reject, |
4192 | // Label 15: @16193 |
4193 | GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(16204), // Rule ID 110 // |
4194 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled), |
4195 | // Combiner Rule #80: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC' |
4196 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36), |
4197 | // Label 195: @16204 |
4198 | GIM_Reject, |
4199 | // Label 16: @16205 |
4200 | GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(16216), // Rule ID 312 // |
4201 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled), |
4202 | // Combiner Rule #181: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS' |
4203 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123), |
4204 | // Label 196: @16216 |
4205 | GIM_Reject, |
4206 | // Label 17: @16217 |
4207 | GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(16238), // Rule ID 103 // |
4208 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled), |
4209 | // MIs[0] dst |
4210 | // No operand predicates |
4211 | // MIs[0] t |
4212 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4213 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR), |
4214 | // MIs[1] ptr |
4215 | // No operand predicates |
4216 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4217 | // Combiner Rule #74: i2p_to_p2i |
4218 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34), |
4219 | // Label 197: @16238 |
4220 | GIM_Reject, |
4221 | // Label 18: @16239 |
4222 | GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(16250), // Rule ID 102 // |
4223 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled), |
4224 | // Combiner Rule #73: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR' |
4225 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33), |
4226 | // Label 198: @16250 |
4227 | GIM_Reject, |
4228 | // Label 19: @16251 |
4229 | GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(16272), // Rule ID 114 // |
4230 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled), |
4231 | // MIs[0] dst |
4232 | // No operand predicates |
4233 | // MIs[0] src1 |
4234 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4235 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST), |
4236 | // MIs[1] src0 |
4237 | // No operand predicates |
4238 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4239 | // Combiner Rule #83: bitcast_bitcast_fold |
4240 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39), |
4241 | // Label 199: @16272 |
4242 | GIM_Reject, |
4243 | // Label 20: @16273 |
4244 | GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(16302), // Rule ID 12 // |
4245 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled), |
4246 | // MIs[0] dst |
4247 | // No operand predicates |
4248 | // MIs[0] src |
4249 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4250 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE), |
4251 | // MIs[1] __idempotent_prop_match_0.x |
4252 | // No operand predicates |
4253 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4254 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4255 | // Combiner Rule #12: idempotent_prop @ [__idempotent_prop_match_0[0]] |
4256 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4257 | GIR_EraseRootFromParent_Done, |
4258 | // Label 200: @16302 |
4259 | GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(16325), // Rule ID 50 // |
4260 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled), |
4261 | // MIs[0] root |
4262 | // No operand predicates |
4263 | // MIs[0] src |
4264 | // No operand predicates |
4265 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1), |
4266 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4267 | // Combiner Rule #48: freeze_of_non_undef_non_poison |
4268 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4269 | GIR_EraseRootFromParent_Done, |
4270 | // Label 201: @16325 |
4271 | GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(16336), // Rule ID 51 // |
4272 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled), |
4273 | // MIs[0] dst |
4274 | // No operand predicates |
4275 | // MIs[0] src |
4276 | // No operand predicates |
4277 | // Combiner Rule #49: push_freeze_to_prevent_poison_from_propagating |
4278 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13), |
4279 | // Label 202: @16336 |
4280 | GIM_Reject, |
4281 | // Label 21: @16337 |
4282 | GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(16348), // Rule ID 55 // |
4283 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled), |
4284 | // Combiner Rule #53: extending_loads; wip_match_opcode 'G_LOAD' |
4285 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17), |
4286 | // Label 203: @16348 |
4287 | GIM_Reject, |
4288 | // Label 22: @16349 |
4289 | GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(16360), // Rule ID 56 // |
4290 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled), |
4291 | // Combiner Rule #53: extending_loads; wip_match_opcode 'G_SEXTLOAD' |
4292 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17), |
4293 | // Label 204: @16360 |
4294 | GIM_Reject, |
4295 | // Label 23: @16361 |
4296 | GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(16372), // Rule ID 57 // |
4297 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled), |
4298 | // Combiner Rule #53: extending_loads; wip_match_opcode 'G_ZEXTLOAD' |
4299 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17), |
4300 | // Label 205: @16372 |
4301 | GIM_Reject, |
4302 | // Label 24: @16373 |
4303 | GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(16384), // Rule ID 80 // |
4304 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled), |
4305 | // Combiner Rule #65: erase_undef_store; wip_match_opcode 'G_STORE' |
4306 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28), |
4307 | // Label 206: @16384 |
4308 | GIM_Reject, |
4309 | // Label 25: @16385 |
4310 | GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(16396), // Rule ID 331 // |
4311 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled), |
4312 | // Combiner Rule #195: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC' |
4313 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135), |
4314 | // Label 207: @16396 |
4315 | GIM_Reject, |
4316 | // Label 26: @16397 |
4317 | GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(16408), // Rule ID 104 // |
4318 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled), |
4319 | // Combiner Rule #75: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT' |
4320 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35), |
4321 | // Label 208: @16408 |
4322 | GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(16419), // Rule ID 145 // |
4323 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled), |
4324 | // Combiner Rule #110: ext_ext_fold; wip_match_opcode 'G_ANYEXT' |
4325 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62), |
4326 | // Label 209: @16419 |
4327 | GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(16430), // Rule ID 229 // |
4328 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled), |
4329 | // Combiner Rule #155: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT' |
4330 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98), |
4331 | // Label 210: @16430 |
4332 | GIM_Reject, |
4333 | // Label 27: @16431 |
4334 | GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(16442), // Rule ID 77 // |
4335 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled), |
4336 | // Combiner Rule #62: propagate_undef_any_op; wip_match_opcode 'G_TRUNC' |
4337 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25), |
4338 | // Label 211: @16442 |
4339 | GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(16453), // Rule ID 112 // |
4340 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled), |
4341 | // Combiner Rule #81: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC' |
4342 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37), |
4343 | // Label 212: @16453 |
4344 | GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(16464), // Rule ID 113 // |
4345 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled), |
4346 | // Combiner Rule #82: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC' |
4347 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38), |
4348 | // Label 213: @16464 |
4349 | GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(16475), // Rule ID 155 // |
4350 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled), |
4351 | // Combiner Rule #118: trunc_ext_fold; wip_match_opcode 'G_TRUNC' |
4352 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70), |
4353 | // Label 214: @16475 |
4354 | GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(16486), // Rule ID 156 // |
4355 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled), |
4356 | // Combiner Rule #119: trunc_shift; wip_match_opcode 'G_TRUNC' |
4357 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71), |
4358 | // Label 215: @16486 |
4359 | GIM_Reject, |
4360 | // Label 28: @16487 |
4361 | GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(16498), // Rule ID 146 // |
4362 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled), |
4363 | // Combiner Rule #110: ext_ext_fold; wip_match_opcode 'G_SEXT' |
4364 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62), |
4365 | // Label 216: @16498 |
4366 | GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(16509), // Rule ID 228 // |
4367 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled), |
4368 | // Combiner Rule #155: constant_fold_cast_op; wip_match_opcode 'G_SEXT' |
4369 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98), |
4370 | // Label 217: @16509 |
4371 | GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(16536), // Rule ID 317 // |
4372 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled), |
4373 | // MIs[0] root |
4374 | // No operand predicates |
4375 | // MIs[0] src |
4376 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4377 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC), |
4378 | GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoSWrap), |
4379 | // MIs[1] x |
4380 | // No operand predicates |
4381 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4382 | // Combiner Rule #185: sext_trunc |
4383 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125), |
4384 | // Label 218: @16536 |
4385 | GIM_Reject, |
4386 | // Label 29: @16537 |
4387 | GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(16548), // Rule ID 130 // |
4388 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled), |
4389 | // Combiner Rule #95: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG' |
4390 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48), |
4391 | // Label 219: @16548 |
4392 | GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(16559), // Rule ID 138 // |
4393 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled), |
4394 | // Combiner Rule #103: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG' |
4395 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55), |
4396 | // Label 220: @16559 |
4397 | GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(16570), // Rule ID 206 // |
4398 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled), |
4399 | // Combiner Rule #148: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG' |
4400 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91), |
4401 | // Label 221: @16570 |
4402 | GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(16581), // Rule ID 334 // |
4403 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled), |
4404 | // Combiner Rule #197: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG' |
4405 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137), |
4406 | // Label 222: @16581 |
4407 | GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(16592), // Rule ID 144 // |
4408 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled), |
4409 | // MIs[0] dst |
4410 | // No operand predicates |
4411 | // MIs[0] src |
4412 | // No operand predicates |
4413 | // MIs[0] imm |
4414 | // No operand predicates |
4415 | // Combiner Rule #109: sext_inreg_to_zext_inreg |
4416 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61), |
4417 | // Label 223: @16592 |
4418 | GIM_Reject, |
4419 | // Label 30: @16593 |
4420 | GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(16604), // Rule ID 141 // |
4421 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled), |
4422 | // Combiner Rule #106: zext_trunc_fold; wip_match_opcode 'G_ZEXT' |
4423 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58), |
4424 | // Label 224: @16604 |
4425 | GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(16615), // Rule ID 147 // |
4426 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled), |
4427 | // Combiner Rule #110: ext_ext_fold; wip_match_opcode 'G_ZEXT' |
4428 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62), |
4429 | // Label 225: @16615 |
4430 | GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(16626), // Rule ID 227 // |
4431 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled), |
4432 | // Combiner Rule #155: constant_fold_cast_op; wip_match_opcode 'G_ZEXT' |
4433 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98), |
4434 | // Label 226: @16626 |
4435 | GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(16653), // Rule ID 318 // |
4436 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled), |
4437 | // MIs[0] root |
4438 | // No operand predicates |
4439 | // MIs[0] src |
4440 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4441 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC), |
4442 | GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap), |
4443 | // MIs[1] x |
4444 | // No operand predicates |
4445 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4446 | // Combiner Rule #186: zext_trunc |
4447 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126), |
4448 | // Label 227: @16653 |
4449 | GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(16670), // Rule ID 319 // |
4450 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled), |
4451 | GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg), |
4452 | // MIs[0] root |
4453 | // No operand predicates |
4454 | // MIs[0] x |
4455 | // No operand predicates |
4456 | // Combiner Rule #187: nneg_zext |
4457 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127), |
4458 | // Label 228: @16670 |
4459 | GIM_Reject, |
4460 | // Label 31: @16671 |
4461 | GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(16682), // Rule ID 65 // |
4462 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled), |
4463 | // Combiner Rule #59: binop_left_undef_to_zero; wip_match_opcode 'G_SHL' |
4464 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23), |
4465 | // Label 229: @16682 |
4466 | GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(16693), // Rule ID 68 // |
4467 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled), |
4468 | // Combiner Rule #60: binop_right_undef_to_undef; wip_match_opcode 'G_SHL' |
4469 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24), |
4470 | // Label 230: @16693 |
4471 | GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(16704), // Rule ID 123 // |
4472 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled), |
4473 | // Combiner Rule #90: shifts_too_big; wip_match_opcode 'G_SHL' |
4474 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43), |
4475 | // Label 231: @16704 |
4476 | GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(16715), // Rule ID 181 // |
4477 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled), |
4478 | // Combiner Rule #136: shift_immed_chain; wip_match_opcode 'G_SHL' |
4479 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83), |
4480 | // Label 232: @16715 |
4481 | GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(16726), // Rule ID 186 // |
4482 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled), |
4483 | // Combiner Rule #137: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL' |
4484 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84), |
4485 | // Label 233: @16726 |
4486 | GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(16737), // Rule ID 205 // |
4487 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled), |
4488 | // Combiner Rule #147: commute_shift; wip_match_opcode 'G_SHL' |
4489 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90), |
4490 | // Label 234: @16737 |
4491 | GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(16748), // Rule ID 218 // |
4492 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
4493 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_SHL' |
4494 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
4495 | // Label 235: @16748 |
4496 | GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(16759), // Rule ID 263 // |
4497 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
4498 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_SHL' |
4499 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
4500 | // Label 236: @16759 |
4501 | GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(16794), // Rule ID 48 // |
4502 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled), |
4503 | GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap), |
4504 | // MIs[0] root |
4505 | // No operand predicates |
4506 | // MIs[0] left |
4507 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4508 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE), |
4509 | // MIs[1] imm |
4510 | // No operand predicates |
4511 | // MIs[0] x |
4512 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2] |
4513 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT), |
4514 | // MIs[2] imm1 |
4515 | // No operand predicates |
4516 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
4517 | // Combiner Rule #46: shl_of_vscale |
4518 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11), |
4519 | // Label 237: @16794 |
4520 | GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(16817), // Rule ID 89 // |
4521 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4522 | // MIs[0] dst |
4523 | // No operand predicates |
4524 | // MIs[0] lhs |
4525 | // No operand predicates |
4526 | // MIs[0] Operand 2 |
4527 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4528 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4529 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[4]] |
4530 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4531 | GIR_EraseRootFromParent_Done, |
4532 | // Label 238: @16817 |
4533 | GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(16828), // Rule ID 131 // |
4534 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled), |
4535 | // MIs[0] dst |
4536 | // No operand predicates |
4537 | // MIs[0] src0 |
4538 | // No operand predicates |
4539 | // MIs[0] src1 |
4540 | // No operand predicates |
4541 | // Combiner Rule #96: reduce_shl_of_extend |
4542 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49), |
4543 | // Label 239: @16828 |
4544 | GIM_Reject, |
4545 | // Label 32: @16829 |
4546 | GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(16840), // Rule ID 70 // |
4547 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled), |
4548 | // Combiner Rule #60: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR' |
4549 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24), |
4550 | // Label 240: @16840 |
4551 | GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(16851), // Rule ID 125 // |
4552 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled), |
4553 | // Combiner Rule #90: shifts_too_big; wip_match_opcode 'G_LSHR' |
4554 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43), |
4555 | // Label 241: @16851 |
4556 | GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(16862), // Rule ID 183 // |
4557 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled), |
4558 | // Combiner Rule #136: shift_immed_chain; wip_match_opcode 'G_LSHR' |
4559 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83), |
4560 | // Label 242: @16862 |
4561 | GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(16873), // Rule ID 188 // |
4562 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled), |
4563 | // Combiner Rule #137: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR' |
4564 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84), |
4565 | // Label 243: @16873 |
4566 | GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(16884), // Rule ID 209 // |
4567 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled), |
4568 | // Combiner Rule #150: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR' |
4569 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93), |
4570 | // Label 244: @16884 |
4571 | GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(16895), // Rule ID 211 // |
4572 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled), |
4573 | // Combiner Rule #151: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR' |
4574 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94), |
4575 | // Label 245: @16895 |
4576 | GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(16906), // Rule ID 219 // |
4577 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
4578 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_LSHR' |
4579 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
4580 | // Label 246: @16906 |
4581 | GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(16917), // Rule ID 261 // |
4582 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
4583 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_LSHR' |
4584 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
4585 | // Label 247: @16917 |
4586 | GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(16940), // Rule ID 91 // |
4587 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4588 | // MIs[0] dst |
4589 | // No operand predicates |
4590 | // MIs[0] lhs |
4591 | // No operand predicates |
4592 | // MIs[0] Operand 2 |
4593 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4594 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4595 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[6]] |
4596 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4597 | GIR_EraseRootFromParent_Done, |
4598 | // Label 248: @16940 |
4599 | GIM_Reject, |
4600 | // Label 33: @16941 |
4601 | GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(16952), // Rule ID 69 // |
4602 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled), |
4603 | // Combiner Rule #60: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR' |
4604 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24), |
4605 | // Label 249: @16952 |
4606 | GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(16963), // Rule ID 124 // |
4607 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled), |
4608 | // Combiner Rule #90: shifts_too_big; wip_match_opcode 'G_ASHR' |
4609 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43), |
4610 | // Label 250: @16963 |
4611 | GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(16974), // Rule ID 129 // |
4612 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled), |
4613 | // Combiner Rule #94: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR' |
4614 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47), |
4615 | // Label 251: @16974 |
4616 | GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(16985), // Rule ID 182 // |
4617 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled), |
4618 | // Combiner Rule #136: shift_immed_chain; wip_match_opcode 'G_ASHR' |
4619 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83), |
4620 | // Label 252: @16985 |
4621 | GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(16996), // Rule ID 187 // |
4622 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled), |
4623 | // Combiner Rule #137: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR' |
4624 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84), |
4625 | // Label 253: @16996 |
4626 | GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(17007), // Rule ID 208 // |
4627 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled), |
4628 | // Combiner Rule #150: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR' |
4629 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93), |
4630 | // Label 254: @17007 |
4631 | GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(17018), // Rule ID 210 // |
4632 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled), |
4633 | // Combiner Rule #151: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR' |
4634 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94), |
4635 | // Label 255: @17018 |
4636 | GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(17029), // Rule ID 220 // |
4637 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled), |
4638 | // Combiner Rule #152: constant_fold_binop; wip_match_opcode 'G_ASHR' |
4639 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95), |
4640 | // Label 256: @17029 |
4641 | GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(17040), // Rule ID 262 // |
4642 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
4643 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_ASHR' |
4644 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
4645 | // Label 257: @17040 |
4646 | GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(17063), // Rule ID 90 // |
4647 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4648 | // MIs[0] dst |
4649 | // No operand predicates |
4650 | // MIs[0] lhs |
4651 | // No operand predicates |
4652 | // MIs[0] Operand 2 |
4653 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4654 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4655 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[5]] |
4656 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4657 | GIR_EraseRootFromParent_Done, |
4658 | // Label 258: @17063 |
4659 | GIM_Reject, |
4660 | // Label 34: @17064 |
4661 | GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(17075), // Rule ID 197 // |
4662 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled), |
4663 | // Combiner Rule #141: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL' |
4664 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88), |
4665 | // Label 259: @17075 |
4666 | GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(17086), // Rule ID 201 // |
4667 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled), |
4668 | // Combiner Rule #144: funnel_shift_overshift; wip_match_opcode 'G_FSHL' |
4669 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89), |
4670 | // Label 260: @17086 |
4671 | GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(17106), // Rule ID 200 // |
4672 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled), |
4673 | // MIs[0] x |
4674 | // No operand predicates |
4675 | // MIs[0] y |
4676 | // No operand predicates |
4677 | // MIs[0] z |
4678 | // No operand predicates |
4679 | // MIs[0] Operand 3 |
4680 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0, |
4681 | // Combiner Rule #143: funnel_shift_left_zero |
4682 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY), |
4683 | GIR_RootToRootCopy, /*OpIdx*/0, // x |
4684 | GIR_RootToRootCopy, /*OpIdx*/1, // y |
4685 | GIR_EraseRootFromParent_Done, |
4686 | // Label 261: @17106 |
4687 | GIM_Reject, |
4688 | // Label 35: @17107 |
4689 | GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(17118), // Rule ID 198 // |
4690 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled), |
4691 | // Combiner Rule #141: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR' |
4692 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88), |
4693 | // Label 262: @17118 |
4694 | GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(17129), // Rule ID 202 // |
4695 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled), |
4696 | // Combiner Rule #144: funnel_shift_overshift; wip_match_opcode 'G_FSHR' |
4697 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89), |
4698 | // Label 263: @17129 |
4699 | GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(17149), // Rule ID 199 // |
4700 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled), |
4701 | // MIs[0] x |
4702 | // No operand predicates |
4703 | // MIs[0] y |
4704 | // No operand predicates |
4705 | // MIs[0] z |
4706 | // No operand predicates |
4707 | // MIs[0] Operand 3 |
4708 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0, |
4709 | // Combiner Rule #142: funnel_shift_right_zero |
4710 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY), |
4711 | GIR_RootToRootCopy, /*OpIdx*/0, // x |
4712 | GIR_RootToRootCopy, /*OpIdx*/2, // z |
4713 | GIR_EraseRootFromParent_Done, |
4714 | // Label 264: @17149 |
4715 | GIM_Reject, |
4716 | // Label 36: @17150 |
4717 | GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(17173), // Rule ID 94 // |
4718 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4719 | // MIs[0] dst |
4720 | // No operand predicates |
4721 | // MIs[0] lhs |
4722 | // No operand predicates |
4723 | // MIs[0] Operand 2 |
4724 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4725 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4726 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[9]] |
4727 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4728 | GIR_EraseRootFromParent_Done, |
4729 | // Label 265: @17173 |
4730 | GIM_Reject, |
4731 | // Label 37: @17174 |
4732 | GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(17197), // Rule ID 93 // |
4733 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
4734 | // MIs[0] dst |
4735 | // No operand predicates |
4736 | // MIs[0] lhs |
4737 | // No operand predicates |
4738 | // MIs[0] Operand 2 |
4739 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
4740 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4741 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[8]] |
4742 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
4743 | GIR_EraseRootFromParent_Done, |
4744 | // Label 266: @17197 |
4745 | GIM_Reject, |
4746 | // Label 38: @17198 |
4747 | GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(17209), // Rule ID 142 // |
4748 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled), |
4749 | // Combiner Rule #107: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP' |
4750 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59), |
4751 | // Label 267: @17209 |
4752 | GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(17220), // Rule ID 143 // |
4753 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled), |
4754 | // Combiner Rule #108: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP' |
4755 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60), |
4756 | // Label 268: @17220 |
4757 | GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(17231), // Rule ID 279 // |
4758 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled), |
4759 | // Combiner Rule #175: redundant_binop_in_equality; wip_match_opcode 'G_ICMP' |
4760 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117), |
4761 | // Label 269: @17231 |
4762 | GIM_Reject, |
4763 | // Label 39: @17232 |
4764 | GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(17243), // Rule ID 84 // |
4765 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled), |
4766 | // Combiner Rule #68: select_same_val; wip_match_opcode 'G_SELECT' |
4767 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31), |
4768 | // Label 270: @17243 |
4769 | GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(17254), // Rule ID 134 // |
4770 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled), |
4771 | // Combiner Rule #99: select_constant_cmp; wip_match_opcode 'G_SELECT' |
4772 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51), |
4773 | // Label 271: @17254 |
4774 | GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(17265), // Rule ID 136 // |
4775 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled), |
4776 | // Combiner Rule #101: match_selects; wip_match_opcode 'G_SELECT' |
4777 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53), |
4778 | // Label 272: @17265 |
4779 | GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(17276), // Rule ID 278 // |
4780 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled), |
4781 | // Combiner Rule #174: select_to_minmax; wip_match_opcode 'G_SELECT' |
4782 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116), |
4783 | // Label 273: @17276 |
4784 | GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(17303), // Rule ID 321 // |
4785 | GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy), |
4786 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled), |
4787 | GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32, |
4788 | // MIs[0] cond |
4789 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4790 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP), |
4791 | // MIs[1] pred |
4792 | // No operand predicates |
4793 | // MIs[1] lhs |
4794 | // No operand predicates |
4795 | // MIs[1] rhs |
4796 | // No operand predicates |
4797 | // MIs[0] true |
4798 | // No operand predicates |
4799 | // MIs[0] false |
4800 | // No operand predicates |
4801 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4802 | // Combiner Rule #189: fcmp_select_to_fmin_fmax_legacy |
4803 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129), |
4804 | // Label 274: @17303 |
4805 | GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(17324), // Rule ID 135 // |
4806 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled), |
4807 | // MIs[0] root |
4808 | // No operand predicates |
4809 | // MIs[0] tst |
4810 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4811 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP), |
4812 | // MIs[1] tst1 |
4813 | // No operand predicates |
4814 | // MIs[1] a |
4815 | // No operand predicates |
4816 | // MIs[1] b |
4817 | // No operand predicates |
4818 | // MIs[0] x |
4819 | // No operand predicates |
4820 | // MIs[0] y |
4821 | // No operand predicates |
4822 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4823 | // Combiner Rule #100: select_to_iminmax |
4824 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52), |
4825 | // Label 275: @17324 |
4826 | GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(17353), // Rule ID 133 // |
4827 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled), |
4828 | // MIs[0] dst |
4829 | // No operand predicates |
4830 | // MIs[0] undef |
4831 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
4832 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
4833 | // MIs[0] x |
4834 | // No operand predicates |
4835 | // MIs[0] y |
4836 | // No operand predicates |
4837 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3, |
4838 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
4839 | // Combiner Rule #98: select_undef_cmp |
4840 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3, |
4841 | GIR_EraseRootFromParent_Done, |
4842 | // Label 276: @17353 |
4843 | GIM_Reject, |
4844 | // Label 40: @17354 |
4845 | GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(17365), // Rule ID 290 // |
4846 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4847 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO' |
4848 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4849 | // Label 277: @17365 |
4850 | GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(17376), // Rule ID 316 // |
4851 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled), |
4852 | // Combiner Rule #184: match_addos; wip_match_opcode 'G_UADDO' |
4853 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124), |
4854 | // Label 278: @17376 |
4855 | GIM_Reject, |
4856 | // Label 41: @17377 |
4857 | GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(17388), // Rule ID 170 // |
4858 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled), |
4859 | // Combiner Rule #131: adde_to_addo; wip_match_opcode 'G_UADDE' |
4860 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78), |
4861 | // Label 279: @17388 |
4862 | GIM_Reject, |
4863 | // Label 42: @17389 |
4864 | GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(17400), // Rule ID 172 // |
4865 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled), |
4866 | // Combiner Rule #131: adde_to_addo; wip_match_opcode 'G_USUBE' |
4867 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78), |
4868 | // Label 280: @17400 |
4869 | GIM_Reject, |
4870 | // Label 43: @17401 |
4871 | GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(17412), // Rule ID 291 // |
4872 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4873 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO' |
4874 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4875 | // Label 281: @17412 |
4876 | GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(17423), // Rule ID 315 // |
4877 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled), |
4878 | // Combiner Rule #184: match_addos; wip_match_opcode 'G_SADDO' |
4879 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124), |
4880 | // Label 282: @17423 |
4881 | GIM_Reject, |
4882 | // Label 44: @17424 |
4883 | GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(17435), // Rule ID 171 // |
4884 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled), |
4885 | // Combiner Rule #131: adde_to_addo; wip_match_opcode 'G_SADDE' |
4886 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78), |
4887 | // Label 283: @17435 |
4888 | GIM_Reject, |
4889 | // Label 45: @17436 |
4890 | GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(17447), // Rule ID 173 // |
4891 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled), |
4892 | // Combiner Rule #131: adde_to_addo; wip_match_opcode 'G_SSUBE' |
4893 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78), |
4894 | // Label 284: @17447 |
4895 | GIM_Reject, |
4896 | // Label 46: @17448 |
4897 | GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(17459), // Rule ID 166 // |
4898 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled), |
4899 | // Combiner Rule #129: mulo_by_2; wip_match_opcode 'G_UMULO' |
4900 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76), |
4901 | // Label 285: @17459 |
4902 | GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(17470), // Rule ID 168 // |
4903 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled), |
4904 | // Combiner Rule #130: mulo_by_0; wip_match_opcode 'G_UMULO' |
4905 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77), |
4906 | // Label 286: @17470 |
4907 | GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(17481), // Rule ID 292 // |
4908 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4909 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO' |
4910 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4911 | // Label 287: @17481 |
4912 | GIM_Reject, |
4913 | // Label 47: @17482 |
4914 | GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(17493), // Rule ID 167 // |
4915 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled), |
4916 | // Combiner Rule #129: mulo_by_2; wip_match_opcode 'G_SMULO' |
4917 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76), |
4918 | // Label 288: @17493 |
4919 | GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(17504), // Rule ID 169 // |
4920 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled), |
4921 | // Combiner Rule #130: mulo_by_0; wip_match_opcode 'G_SMULO' |
4922 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77), |
4923 | // Label 289: @17504 |
4924 | GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(17515), // Rule ID 293 // |
4925 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4926 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO' |
4927 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4928 | // Label 290: @17515 |
4929 | GIM_Reject, |
4930 | // Label 48: @17516 |
4931 | GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(17527), // Rule ID 235 // |
4932 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled), |
4933 | // Combiner Rule #161: mulh_to_lshr; wip_match_opcode 'G_UMULH' |
4934 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103), |
4935 | // Label 291: @17527 |
4936 | GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(17538), // Rule ID 294 // |
4937 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4938 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH' |
4939 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4940 | // Label 292: @17538 |
4941 | GIM_Reject, |
4942 | // Label 49: @17539 |
4943 | GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(17550), // Rule ID 295 // |
4944 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4945 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH' |
4946 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4947 | // Label 293: @17550 |
4948 | GIM_Reject, |
4949 | // Label 50: @17551 |
4950 | GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(17562), // Rule ID 296 // |
4951 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4952 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT' |
4953 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4954 | // Label 294: @17562 |
4955 | GIM_Reject, |
4956 | // Label 51: @17563 |
4957 | GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(17574), // Rule ID 297 // |
4958 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4959 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT' |
4960 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4961 | // Label 295: @17574 |
4962 | GIM_Reject, |
4963 | // Label 52: @17575 |
4964 | GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(17586), // Rule ID 185 // |
4965 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled), |
4966 | // Combiner Rule #136: shift_immed_chain; wip_match_opcode 'G_USHLSAT' |
4967 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83), |
4968 | // Label 296: @17586 |
4969 | GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(17597), // Rule ID 189 // |
4970 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled), |
4971 | // Combiner Rule #137: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT' |
4972 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84), |
4973 | // Label 297: @17597 |
4974 | GIM_Reject, |
4975 | // Label 53: @17598 |
4976 | GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(17609), // Rule ID 184 // |
4977 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled), |
4978 | // Combiner Rule #136: shift_immed_chain; wip_match_opcode 'G_SSHLSAT' |
4979 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83), |
4980 | // Label 298: @17609 |
4981 | GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(17620), // Rule ID 190 // |
4982 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled), |
4983 | // Combiner Rule #137: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT' |
4984 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84), |
4985 | // Label 299: @17620 |
4986 | GIM_Reject, |
4987 | // Label 54: @17621 |
4988 | GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(17632), // Rule ID 298 // |
4989 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4990 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX' |
4991 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4992 | // Label 300: @17632 |
4993 | GIM_Reject, |
4994 | // Label 55: @17633 |
4995 | GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(17644), // Rule ID 299 // |
4996 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
4997 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX' |
4998 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
4999 | // Label 301: @17644 |
5000 | GIM_Reject, |
5001 | // Label 56: @17645 |
5002 | GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(17656), // Rule ID 300 // |
5003 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
5004 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT' |
5005 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
5006 | // Label 302: @17656 |
5007 | GIM_Reject, |
5008 | // Label 57: @17657 |
5009 | GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(17668), // Rule ID 301 // |
5010 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
5011 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT' |
5012 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
5013 | // Label 303: @17668 |
5014 | GIM_Reject, |
5015 | // Label 58: @17669 |
5016 | GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(17680), // Rule ID 221 // |
5017 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled), |
5018 | // Combiner Rule #153: constant_fold_fp_binop; wip_match_opcode 'G_FADD' |
5019 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96), |
5020 | // Label 304: @17680 |
5021 | GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(17691), // Rule ID 236 // |
5022 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled), |
5023 | // Combiner Rule #162: redundant_neg_operands; wip_match_opcode 'G_FADD' |
5024 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104), |
5025 | // Label 305: @17691 |
5026 | GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(17702), // Rule ID 243 // |
5027 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled), |
5028 | // Combiner Rule #164: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD' |
5029 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106), |
5030 | // Label 306: @17702 |
5031 | GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(17713), // Rule ID 244 // |
5032 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled), |
5033 | // Combiner Rule #165: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD' |
5034 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107), |
5035 | // Label 307: @17713 |
5036 | GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(17724), // Rule ID 245 // |
5037 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled), |
5038 | // Combiner Rule #166: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD' |
5039 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108), |
5040 | // Label 308: @17724 |
5041 | GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(17735), // Rule ID 246 // |
5042 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled), |
5043 | // Combiner Rule #167: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD' |
5044 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109), |
5045 | // Label 309: @17735 |
5046 | GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(17746), // Rule ID 269 // |
5047 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5048 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FADD' |
5049 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5050 | // Label 310: @17746 |
5051 | GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(17757), // Rule ID 302 // |
5052 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5053 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD' |
5054 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5055 | // Label 311: @17757 |
5056 | GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(17780), // Rule ID 116 // |
5057 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled), |
5058 | // MIs[0] dst |
5059 | // No operand predicates |
5060 | // MIs[0] x |
5061 | // No operand predicates |
5062 | // MIs[0] y |
5063 | // No operand predicates |
5064 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3), |
5065 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5066 | // Combiner Rule #85: right_identity_neg_zero_fp |
5067 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5068 | GIR_EraseRootFromParent_Done, |
5069 | // Label 312: @17780 |
5070 | GIM_Reject, |
5071 | // Label 59: @17781 |
5072 | GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(17792), // Rule ID 222 // |
5073 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled), |
5074 | // Combiner Rule #153: constant_fold_fp_binop; wip_match_opcode 'G_FSUB' |
5075 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96), |
5076 | // Label 313: @17792 |
5077 | GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(17803), // Rule ID 237 // |
5078 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled), |
5079 | // Combiner Rule #162: redundant_neg_operands; wip_match_opcode 'G_FSUB' |
5080 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104), |
5081 | // Label 314: @17803 |
5082 | GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(17814), // Rule ID 247 // |
5083 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled), |
5084 | // Combiner Rule #168: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB' |
5085 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110), |
5086 | // Label 315: @17814 |
5087 | GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(17825), // Rule ID 248 // |
5088 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled), |
5089 | // Combiner Rule #169: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB' |
5090 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111), |
5091 | // Label 316: @17825 |
5092 | GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(17836), // Rule ID 249 // |
5093 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled), |
5094 | // Combiner Rule #170: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB' |
5095 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112), |
5096 | // Label 317: @17836 |
5097 | GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(17847), // Rule ID 250 // |
5098 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled), |
5099 | // Combiner Rule #171: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB' |
5100 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113), |
5101 | // Label 318: @17847 |
5102 | GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(17858), // Rule ID 270 // |
5103 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5104 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FSUB' |
5105 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5106 | // Label 319: @17858 |
5107 | GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(17869), // Rule ID 280 // |
5108 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled), |
5109 | // Combiner Rule #176: fsub_to_fneg; wip_match_opcode 'G_FSUB' |
5110 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118), |
5111 | // Label 320: @17869 |
5112 | GIM_Reject, |
5113 | // Label 60: @17870 |
5114 | GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(17881), // Rule ID 223 // |
5115 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled), |
5116 | // Combiner Rule #153: constant_fold_fp_binop; wip_match_opcode 'G_FMUL' |
5117 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96), |
5118 | // Label 321: @17881 |
5119 | GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(17892), // Rule ID 238 // |
5120 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled), |
5121 | // Combiner Rule #162: redundant_neg_operands; wip_match_opcode 'G_FMUL' |
5122 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104), |
5123 | // Label 322: @17892 |
5124 | GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(17903), // Rule ID 268 // |
5125 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5126 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FMUL' |
5127 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5128 | // Label 323: @17903 |
5129 | GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(17914), // Rule ID 303 // |
5130 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5131 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL' |
5132 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5133 | // Label 324: @17914 |
5134 | GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(17937), // Rule ID 107 // |
5135 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled), |
5136 | // MIs[0] dst |
5137 | // No operand predicates |
5138 | // MIs[0] x |
5139 | // No operand predicates |
5140 | // MIs[0] y |
5141 | // No operand predicates |
5142 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2), |
5143 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5144 | // Combiner Rule #78: right_identity_one_fp |
5145 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5146 | GIR_EraseRootFromParent_Done, |
5147 | // Label 325: @17937 |
5148 | GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(17957), // Rule ID 117 // |
5149 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled), |
5150 | // MIs[0] dst |
5151 | // No operand predicates |
5152 | // MIs[0] x |
5153 | // No operand predicates |
5154 | // MIs[0] y |
5155 | // No operand predicates |
5156 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4), |
5157 | // Combiner Rule #86: right_identity_neg_one_fp |
5158 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG), |
5159 | GIR_RootToRootCopy, /*OpIdx*/0, // dst |
5160 | GIR_RootToRootCopy, /*OpIdx*/1, // x |
5161 | GIR_EraseRootFromParent_Done, |
5162 | // Label 326: @17957 |
5163 | GIM_Reject, |
5164 | // Label 61: @17958 |
5165 | GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(17969), // Rule ID 226 // |
5166 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled), |
5167 | // Combiner Rule #154: constant_fold_fma; wip_match_opcode 'G_FMA' |
5168 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97), |
5169 | // Label 327: @17969 |
5170 | GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(17980), // Rule ID 241 // |
5171 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled), |
5172 | // Combiner Rule #162: redundant_neg_operands; wip_match_opcode 'G_FMA' |
5173 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104), |
5174 | // Label 328: @17980 |
5175 | GIM_Reject, |
5176 | // Label 62: @17981 |
5177 | GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(17992), // Rule ID 225 // |
5178 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled), |
5179 | // Combiner Rule #154: constant_fold_fma; wip_match_opcode 'G_FMAD' |
5180 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97), |
5181 | // Label 329: @17992 |
5182 | GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(18003), // Rule ID 240 // |
5183 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled), |
5184 | // Combiner Rule #162: redundant_neg_operands; wip_match_opcode 'G_FMAD' |
5185 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104), |
5186 | // Label 330: @18003 |
5187 | GIM_Reject, |
5188 | // Label 63: @18004 |
5189 | GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(18015), // Rule ID 224 // |
5190 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled), |
5191 | // Combiner Rule #153: constant_fold_fp_binop; wip_match_opcode 'G_FDIV' |
5192 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96), |
5193 | // Label 331: @18015 |
5194 | GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(18026), // Rule ID 239 // |
5195 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled), |
5196 | // Combiner Rule #162: redundant_neg_operands; wip_match_opcode 'G_FDIV' |
5197 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104), |
5198 | // Label 332: @18026 |
5199 | GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(18037), // Rule ID 271 // |
5200 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5201 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FDIV' |
5202 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5203 | // Label 333: @18037 |
5204 | GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(18076), // Rule ID 333 // |
5205 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled), |
5206 | GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16, |
5207 | GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16, |
5208 | GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract), |
5209 | // MIs[0] y |
5210 | // No operand predicates |
5211 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
5212 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT), |
5213 | GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract), |
5214 | // MIs[1] x |
5215 | // No operand predicates |
5216 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5217 | // Combiner Rule #196: fdiv_by_sqrt_to_rsq_f16 |
5218 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136), |
5219 | // Label 334: @18076 |
5220 | GIM_Reject, |
5221 | // Label 64: @18077 |
5222 | GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(18088), // Rule ID 272 // |
5223 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5224 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FREM' |
5225 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5226 | // Label 335: @18088 |
5227 | GIM_Reject, |
5228 | // Label 65: @18089 |
5229 | GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(18110), // Rule ID 178 // |
5230 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled), |
5231 | // MIs[0] dst |
5232 | // No operand predicates |
5233 | // MIs[0] float |
5234 | // No operand predicates |
5235 | // MIs[0] int |
5236 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
5237 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT), |
5238 | // MIs[1] imm |
5239 | // No operand predicates |
5240 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5241 | // Combiner Rule #133: expand_const_fpowi |
5242 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80), |
5243 | // Label 336: @18110 |
5244 | GIM_Reject, |
5245 | // Label 66: @18111 |
5246 | GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(18132), // Rule ID 160 // |
5247 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled), |
5248 | // MIs[0] dst |
5249 | // No operand predicates |
5250 | // MIs[0] src0 |
5251 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5252 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT), |
5253 | // MIs[1] cst |
5254 | // No operand predicates |
5255 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5256 | // Combiner Rule #123: constant_fold_flog2 |
5257 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72), |
5258 | // Label 337: @18132 |
5259 | GIM_Reject, |
5260 | // Label 67: @18133 |
5261 | GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(18144), // Rule ID 330 // |
5262 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled), |
5263 | // Combiner Rule #194: foldable_fneg; wip_match_opcode 'G_FNEG' |
5264 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134), |
5265 | // Label 338: @18144 |
5266 | GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(18165), // Rule ID 157 // |
5267 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled), |
5268 | // MIs[0] dst |
5269 | // No operand predicates |
5270 | // MIs[0] src0 |
5271 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5272 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT), |
5273 | // MIs[1] cst |
5274 | // No operand predicates |
5275 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5276 | // Combiner Rule #120: constant_fold_fneg |
5277 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72), |
5278 | // Label 339: @18165 |
5279 | GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(18194), // Rule ID 105 // |
5280 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled), |
5281 | // MIs[0] dst |
5282 | // No operand predicates |
5283 | // MIs[0] t |
5284 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5285 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG), |
5286 | // MIs[1] src |
5287 | // No operand predicates |
5288 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
5289 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5290 | // Combiner Rule #76: fneg_fneg_fold |
5291 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1, |
5292 | GIR_EraseRootFromParent_Done, |
5293 | // Label 340: @18194 |
5294 | GIM_Reject, |
5295 | // Label 68: @18195 |
5296 | GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(18219), // Rule ID 322 // |
5297 | GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16), |
5298 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled), |
5299 | // MIs[0] fptrunc_dst |
5300 | // No operand predicates |
5301 | // MIs[0] fmed3_dst |
5302 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5303 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3), |
5304 | // MIs[1] src0 |
5305 | // No operand predicates |
5306 | // MIs[1] src1 |
5307 | // No operand predicates |
5308 | // MIs[1] src2 |
5309 | // No operand predicates |
5310 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5311 | // Combiner Rule #190: expand_promoted_fmed3 |
5312 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130), |
5313 | // Label 341: @18219 |
5314 | GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(18240), // Rule ID 161 // |
5315 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled), |
5316 | // MIs[0] dst |
5317 | // No operand predicates |
5318 | // MIs[0] src0 |
5319 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5320 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT), |
5321 | // MIs[1] cst |
5322 | // No operand predicates |
5323 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5324 | // Combiner Rule #124: constant_fold_fptrunc |
5325 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72), |
5326 | // Label 342: @18240 |
5327 | GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(18261), // Rule ID 115 // |
5328 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled), |
5329 | // MIs[0] dst |
5330 | // No operand predicates |
5331 | // MIs[0] src1 |
5332 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5333 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT), |
5334 | // MIs[1] src0 |
5335 | // No operand predicates |
5336 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5337 | // Combiner Rule #84: fptrunc_fpext_fold |
5338 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39), |
5339 | // Label 343: @18261 |
5340 | GIM_Reject, |
5341 | // Label 69: @18262 |
5342 | GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(18273), // Rule ID 73 // |
5343 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled), |
5344 | // Combiner Rule #62: propagate_undef_any_op; wip_match_opcode 'G_FPTOSI' |
5345 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25), |
5346 | // Label 344: @18273 |
5347 | GIM_Reject, |
5348 | // Label 70: @18274 |
5349 | GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(18285), // Rule ID 74 // |
5350 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled), |
5351 | // Combiner Rule #62: propagate_undef_any_op; wip_match_opcode 'G_FPTOUI' |
5352 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25), |
5353 | // Label 345: @18285 |
5354 | GIM_Reject, |
5355 | // Label 71: @18286 |
5356 | GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(18297), // Rule ID 61 // |
5357 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled), |
5358 | // Combiner Rule #56: undef_to_fp_zero; wip_match_opcode 'G_SITOFP' |
5359 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20), |
5360 | // Label 346: @18297 |
5361 | GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(18308), // Rule ID 324 // |
5362 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled), |
5363 | // Combiner Rule #191: uchar_to_float; wip_match_opcode 'G_SITOFP' |
5364 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131), |
5365 | // Label 347: @18308 |
5366 | GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(18323), // Rule ID 162 // |
5367 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled), |
5368 | // MIs[0] dst |
5369 | // No operand predicates |
5370 | // MIs[0] Operand 1 |
5371 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0, |
5372 | // Combiner Rule #125: itof_const_zero_fold_si |
5373 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73), |
5374 | // Label 348: @18323 |
5375 | GIM_Reject, |
5376 | // Label 72: @18324 |
5377 | GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(18335), // Rule ID 60 // |
5378 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled), |
5379 | // Combiner Rule #56: undef_to_fp_zero; wip_match_opcode 'G_UITOFP' |
5380 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20), |
5381 | // Label 349: @18335 |
5382 | GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(18346), // Rule ID 323 // |
5383 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled), |
5384 | // Combiner Rule #191: uchar_to_float; wip_match_opcode 'G_UITOFP' |
5385 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131), |
5386 | // Label 350: @18346 |
5387 | GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(18361), // Rule ID 163 // |
5388 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled), |
5389 | // MIs[0] dst |
5390 | // No operand predicates |
5391 | // MIs[0] Operand 1 |
5392 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0, |
5393 | // Combiner Rule #126: itof_const_zero_fold_ui |
5394 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73), |
5395 | // Label 351: @18361 |
5396 | GIM_Reject, |
5397 | // Label 73: @18362 |
5398 | GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(18391), // Rule ID 13 // |
5399 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled), |
5400 | // MIs[0] dst |
5401 | // No operand predicates |
5402 | // MIs[0] src |
5403 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5404 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS), |
5405 | // MIs[1] __idempotent_prop_match_0.x |
5406 | // No operand predicates |
5407 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5408 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5409 | // Combiner Rule #12: idempotent_prop @ [__idempotent_prop_match_0[1]] |
5410 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5411 | GIR_EraseRootFromParent_Done, |
5412 | // Label 352: @18391 |
5413 | GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(18412), // Rule ID 158 // |
5414 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled), |
5415 | // MIs[0] dst |
5416 | // No operand predicates |
5417 | // MIs[0] src0 |
5418 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5419 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT), |
5420 | // MIs[1] cst |
5421 | // No operand predicates |
5422 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5423 | // Combiner Rule #121: constant_fold_fabs |
5424 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72), |
5425 | // Label 353: @18412 |
5426 | GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(18440), // Rule ID 230 // |
5427 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled), |
5428 | // MIs[0] dst |
5429 | // No operand predicates |
5430 | // MIs[0] tmp |
5431 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5432 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG), |
5433 | // MIs[1] x |
5434 | // No operand predicates |
5435 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5436 | // Combiner Rule #156: fabs_fneg_fold |
5437 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS), |
5438 | GIR_RootToRootCopy, /*OpIdx*/0, // dst |
5439 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x |
5440 | GIR_EraseRootFromParent_Done, |
5441 | // Label 354: @18440 |
5442 | GIM_Reject, |
5443 | // Label 74: @18441 |
5444 | GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(18452), // Rule ID 329 // |
5445 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled), |
5446 | // Combiner Rule #193: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE' |
5447 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133), |
5448 | // Label 355: @18452 |
5449 | GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(18481), // Rule ID 14 // |
5450 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled), |
5451 | // MIs[0] dst |
5452 | // No operand predicates |
5453 | // MIs[0] src |
5454 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5455 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE), |
5456 | // MIs[1] __idempotent_prop_match_0.x |
5457 | // No operand predicates |
5458 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5459 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5460 | // Combiner Rule #12: idempotent_prop @ [__idempotent_prop_match_0[2]] |
5461 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5462 | GIR_EraseRootFromParent_Done, |
5463 | // Label 356: @18481 |
5464 | GIM_Reject, |
5465 | // Label 75: @18482 |
5466 | GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(18493), // Rule ID 174 // |
5467 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled), |
5468 | // Combiner Rule #132: combine_minmax_nan; wip_match_opcode 'G_FMINNUM' |
5469 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79), |
5470 | // Label 357: @18493 |
5471 | GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(18504), // Rule ID 273 // |
5472 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5473 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FMINNUM' |
5474 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5475 | // Label 358: @18504 |
5476 | GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(18515), // Rule ID 304 // |
5477 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5478 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM' |
5479 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5480 | // Label 359: @18515 |
5481 | GIM_Reject, |
5482 | // Label 76: @18516 |
5483 | GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(18527), // Rule ID 175 // |
5484 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled), |
5485 | // Combiner Rule #132: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM' |
5486 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79), |
5487 | // Label 360: @18527 |
5488 | GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(18538), // Rule ID 274 // |
5489 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5490 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM' |
5491 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5492 | // Label 361: @18538 |
5493 | GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(18549), // Rule ID 305 // |
5494 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5495 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM' |
5496 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5497 | // Label 362: @18549 |
5498 | GIM_Reject, |
5499 | // Label 77: @18550 |
5500 | GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(18561), // Rule ID 306 // |
5501 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5502 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE' |
5503 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5504 | // Label 363: @18561 |
5505 | GIM_Reject, |
5506 | // Label 78: @18562 |
5507 | GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(18573), // Rule ID 307 // |
5508 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5509 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE' |
5510 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5511 | // Label 364: @18573 |
5512 | GIM_Reject, |
5513 | // Label 79: @18574 |
5514 | GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(18585), // Rule ID 176 // |
5515 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled), |
5516 | // Combiner Rule #132: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM' |
5517 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79), |
5518 | // Label 365: @18585 |
5519 | GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(18596), // Rule ID 275 // |
5520 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5521 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM' |
5522 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5523 | // Label 366: @18596 |
5524 | GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(18607), // Rule ID 308 // |
5525 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5526 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM' |
5527 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5528 | // Label 367: @18607 |
5529 | GIM_Reject, |
5530 | // Label 80: @18608 |
5531 | GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(18619), // Rule ID 177 // |
5532 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled), |
5533 | // Combiner Rule #132: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM' |
5534 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79), |
5535 | // Label 368: @18619 |
5536 | GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(18630), // Rule ID 276 // |
5537 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5538 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM' |
5539 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5540 | // Label 369: @18630 |
5541 | GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(18641), // Rule ID 309 // |
5542 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled), |
5543 | // Combiner Rule #178: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM' |
5544 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120), |
5545 | // Label 370: @18641 |
5546 | GIM_Reject, |
5547 | // Label 81: @18642 |
5548 | GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(18653), // Rule ID 126 // |
5549 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled), |
5550 | // Combiner Rule #91: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD' |
5551 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44), |
5552 | // Label 371: @18653 |
5553 | GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(18664), // Rule ID 128 // |
5554 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled), |
5555 | // Combiner Rule #93: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD' |
5556 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46), |
5557 | // Label 372: @18664 |
5558 | GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(18675), // Rule ID 164 // |
5559 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled), |
5560 | // Combiner Rule #127: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD' |
5561 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74), |
5562 | // Label 373: @18675 |
5563 | GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(18686), // Rule ID 180 // |
5564 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled), |
5565 | // Combiner Rule #135: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD' |
5566 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82), |
5567 | // Label 374: @18686 |
5568 | GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(18697), // Rule ID 253 // |
5569 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5570 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD' |
5571 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5572 | // Label 375: @18697 |
5573 | GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(18720), // Rule ID 92 // |
5574 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled), |
5575 | // MIs[0] dst |
5576 | // No operand predicates |
5577 | // MIs[0] lhs |
5578 | // No operand predicates |
5579 | // MIs[0] Operand 2 |
5580 | GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0, |
5581 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5582 | // Combiner Rule #69: right_identity_zero @ [__right_identity_zero_match_0[7]] |
5583 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5584 | GIR_EraseRootFromParent_Done, |
5585 | // Label 376: @18720 |
5586 | GIM_Reject, |
5587 | // Label 82: @18721 |
5588 | GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(18732), // Rule ID 264 // |
5589 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5590 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_SMIN' |
5591 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5592 | // Label 377: @18732 |
5593 | GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(18743), // Rule ID 286 // |
5594 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
5595 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN' |
5596 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
5597 | // Label 378: @18743 |
5598 | GIM_Reject, |
5599 | // Label 83: @18744 |
5600 | GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(18755), // Rule ID 265 // |
5601 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5602 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_SMAX' |
5603 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5604 | // Label 379: @18755 |
5605 | GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(18766), // Rule ID 287 // |
5606 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
5607 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX' |
5608 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
5609 | // Label 380: @18766 |
5610 | GIM_Reject, |
5611 | // Label 84: @18767 |
5612 | GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(18778), // Rule ID 266 // |
5613 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5614 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_UMIN' |
5615 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5616 | // Label 381: @18778 |
5617 | GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(18789), // Rule ID 288 // |
5618 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
5619 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN' |
5620 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
5621 | // Label 382: @18789 |
5622 | GIM_Reject, |
5623 | // Label 85: @18790 |
5624 | GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(18801), // Rule ID 267 // |
5625 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled), |
5626 | // Combiner Rule #172: fold_binop_into_select; wip_match_opcode 'G_UMAX' |
5627 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114), |
5628 | // Label 383: @18801 |
5629 | GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(18812), // Rule ID 289 // |
5630 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled), |
5631 | // Combiner Rule #177: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX' |
5632 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119), |
5633 | // Label 384: @18812 |
5634 | GIM_Reject, |
5635 | // Label 86: @18813 |
5636 | GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(18824), // Rule ID 71 // |
5637 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled), |
5638 | // Combiner Rule #61: unary_undef_to_zero; wip_match_opcode 'G_ABS' |
5639 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23), |
5640 | // Label 385: @18824 |
5641 | GIM_Reject, |
5642 | // Label 87: @18825 |
5643 | GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(18836), // Rule ID 149 // |
5644 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled), |
5645 | // Combiner Rule #112: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR' |
5646 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64), |
5647 | // Label 386: @18836 |
5648 | GIM_Reject, |
5649 | // Label 88: @18837 |
5650 | GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(18848), // Rule ID 20 // |
5651 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled), |
5652 | // Combiner Rule #18: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT' |
5653 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4), |
5654 | // Label 387: @18848 |
5655 | GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(18859), // Rule ID 52 // |
5656 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled), |
5657 | // Combiner Rule #50: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT' |
5658 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14), |
5659 | // Label 388: @18859 |
5660 | GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(18870), // Rule ID 82 // |
5661 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled), |
5662 | // Combiner Rule #67: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT' |
5663 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30), |
5664 | // Label 389: @18870 |
5665 | GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(18909), // Rule ID 45 // |
5666 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled), |
5667 | // MIs[0] root |
5668 | // No operand predicates |
5669 | // MIs[0] src |
5670 | // No operand predicates |
5671 | // MIs[0] elt |
5672 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
5673 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT), |
5674 | // MIs[1] src |
5675 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1, |
5676 | // MIs[1] idx |
5677 | // No operand predicates |
5678 | // MIs[0] idx |
5679 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2, |
5680 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5681 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5682 | // Combiner Rule #43: insert_vector_element_extract_vector_element |
5683 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5684 | GIR_EraseRootFromParent_Done, |
5685 | // Label 390: @18909 |
5686 | GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(18942), // Rule ID 18 // |
5687 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled), |
5688 | // MIs[0] root |
5689 | // No operand predicates |
5690 | // MIs[0] src |
5691 | // No operand predicates |
5692 | // MIs[0] elt |
5693 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
5694 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
5695 | // MIs[0] idx |
5696 | // No operand predicates |
5697 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0), |
5698 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5699 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5700 | // Combiner Rule #16: insert_vector_element_elt_undef |
5701 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1, |
5702 | GIR_EraseRootFromParent_Done, |
5703 | // Label 391: @18942 |
5704 | GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(18966), // Rule ID 17 // |
5705 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled), |
5706 | // MIs[0] root |
5707 | // No operand predicates |
5708 | // MIs[0] src |
5709 | // No operand predicates |
5710 | // MIs[0] elt |
5711 | // No operand predicates |
5712 | // MIs[0] idx |
5713 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1] |
5714 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
5715 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5716 | // Combiner Rule #15: insert_vector_element_idx_undef |
5717 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
5718 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
5719 | GIR_EraseRootFromParent_Done, |
5720 | // Label 392: @18966 |
5721 | GIM_Reject, |
5722 | // Label 89: @18967 |
5723 | GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(18978), // Rule ID 19 // |
5724 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled), |
5725 | // Combiner Rule #17: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT' |
5726 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3), |
5727 | // Label 393: @18978 |
5728 | GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(18989), // Rule ID 53 // |
5729 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled), |
5730 | // Combiner Rule #51: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT' |
5731 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15), |
5732 | // Label 394: @18989 |
5733 | GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(19000), // Rule ID 59 // |
5734 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled), |
5735 | // Combiner Rule #55: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT' |
5736 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19), |
5737 | // Label 395: @19000 |
5738 | GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(19011), // Rule ID 83 // |
5739 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled), |
5740 | // Combiner Rule #67: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT' |
5741 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30), |
5742 | // Label 396: @19011 |
5743 | GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(19035), // Rule ID 36 // |
5744 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled), |
5745 | // MIs[0] root |
5746 | // No operand predicates |
5747 | // MIs[0] src |
5748 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5749 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5750 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/17, |
5751 | // MIs[1] x |
5752 | // No operand predicates |
5753 | // MIs[1] y |
5754 | // No operand predicates |
5755 | // MIs[1] z |
5756 | // No operand predicates |
5757 | // MIs[1] a |
5758 | // No operand predicates |
5759 | // MIs[1] b |
5760 | // No operand predicates |
5761 | // MIs[1] c |
5762 | // No operand predicates |
5763 | // MIs[1] d |
5764 | // No operand predicates |
5765 | // MIs[1] e |
5766 | // No operand predicates |
5767 | // MIs[1] f |
5768 | // No operand predicates |
5769 | // MIs[1] g |
5770 | // No operand predicates |
5771 | // MIs[1] h |
5772 | // No operand predicates |
5773 | // MIs[1] i |
5774 | // No operand predicates |
5775 | // MIs[1] j |
5776 | // No operand predicates |
5777 | // MIs[1] k |
5778 | // No operand predicates |
5779 | // MIs[1] l |
5780 | // No operand predicates |
5781 | // MIs[1] m |
5782 | // No operand predicates |
5783 | // MIs[0] idx |
5784 | // No operand predicates |
5785 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5786 | // Combiner Rule #34: extract_vector_element_build_vector16 |
5787 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
5788 | // Label 397: @19035 |
5789 | GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(19059), // Rule ID 35 // |
5790 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled), |
5791 | // MIs[0] root |
5792 | // No operand predicates |
5793 | // MIs[0] src |
5794 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5795 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5796 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/16, |
5797 | // MIs[1] x |
5798 | // No operand predicates |
5799 | // MIs[1] y |
5800 | // No operand predicates |
5801 | // MIs[1] z |
5802 | // No operand predicates |
5803 | // MIs[1] a |
5804 | // No operand predicates |
5805 | // MIs[1] b |
5806 | // No operand predicates |
5807 | // MIs[1] c |
5808 | // No operand predicates |
5809 | // MIs[1] d |
5810 | // No operand predicates |
5811 | // MIs[1] e |
5812 | // No operand predicates |
5813 | // MIs[1] f |
5814 | // No operand predicates |
5815 | // MIs[1] g |
5816 | // No operand predicates |
5817 | // MIs[1] h |
5818 | // No operand predicates |
5819 | // MIs[1] i |
5820 | // No operand predicates |
5821 | // MIs[1] j |
5822 | // No operand predicates |
5823 | // MIs[1] k |
5824 | // No operand predicates |
5825 | // MIs[1] l |
5826 | // No operand predicates |
5827 | // MIs[0] idx |
5828 | // No operand predicates |
5829 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5830 | // Combiner Rule #33: extract_vector_element_build_vector15 |
5831 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
5832 | // Label 398: @19059 |
5833 | GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(19083), // Rule ID 34 // |
5834 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled), |
5835 | // MIs[0] root |
5836 | // No operand predicates |
5837 | // MIs[0] src |
5838 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5839 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5840 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/15, |
5841 | // MIs[1] x |
5842 | // No operand predicates |
5843 | // MIs[1] y |
5844 | // No operand predicates |
5845 | // MIs[1] z |
5846 | // No operand predicates |
5847 | // MIs[1] a |
5848 | // No operand predicates |
5849 | // MIs[1] b |
5850 | // No operand predicates |
5851 | // MIs[1] c |
5852 | // No operand predicates |
5853 | // MIs[1] d |
5854 | // No operand predicates |
5855 | // MIs[1] e |
5856 | // No operand predicates |
5857 | // MIs[1] f |
5858 | // No operand predicates |
5859 | // MIs[1] g |
5860 | // No operand predicates |
5861 | // MIs[1] h |
5862 | // No operand predicates |
5863 | // MIs[1] i |
5864 | // No operand predicates |
5865 | // MIs[1] j |
5866 | // No operand predicates |
5867 | // MIs[1] k |
5868 | // No operand predicates |
5869 | // MIs[0] idx |
5870 | // No operand predicates |
5871 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5872 | // Combiner Rule #32: extract_vector_element_build_vector14 |
5873 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
5874 | // Label 399: @19083 |
5875 | GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(19107), // Rule ID 33 // |
5876 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled), |
5877 | // MIs[0] root |
5878 | // No operand predicates |
5879 | // MIs[0] src |
5880 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5881 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5882 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/14, |
5883 | // MIs[1] x |
5884 | // No operand predicates |
5885 | // MIs[1] y |
5886 | // No operand predicates |
5887 | // MIs[1] z |
5888 | // No operand predicates |
5889 | // MIs[1] a |
5890 | // No operand predicates |
5891 | // MIs[1] b |
5892 | // No operand predicates |
5893 | // MIs[1] c |
5894 | // No operand predicates |
5895 | // MIs[1] d |
5896 | // No operand predicates |
5897 | // MIs[1] e |
5898 | // No operand predicates |
5899 | // MIs[1] f |
5900 | // No operand predicates |
5901 | // MIs[1] g |
5902 | // No operand predicates |
5903 | // MIs[1] h |
5904 | // No operand predicates |
5905 | // MIs[1] i |
5906 | // No operand predicates |
5907 | // MIs[1] j |
5908 | // No operand predicates |
5909 | // MIs[0] idx |
5910 | // No operand predicates |
5911 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5912 | // Combiner Rule #31: extract_vector_element_build_vector13 |
5913 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
5914 | // Label 400: @19107 |
5915 | GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(19131), // Rule ID 32 // |
5916 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled), |
5917 | // MIs[0] root |
5918 | // No operand predicates |
5919 | // MIs[0] src |
5920 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5921 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5922 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/13, |
5923 | // MIs[1] x |
5924 | // No operand predicates |
5925 | // MIs[1] y |
5926 | // No operand predicates |
5927 | // MIs[1] z |
5928 | // No operand predicates |
5929 | // MIs[1] a |
5930 | // No operand predicates |
5931 | // MIs[1] b |
5932 | // No operand predicates |
5933 | // MIs[1] c |
5934 | // No operand predicates |
5935 | // MIs[1] d |
5936 | // No operand predicates |
5937 | // MIs[1] e |
5938 | // No operand predicates |
5939 | // MIs[1] f |
5940 | // No operand predicates |
5941 | // MIs[1] g |
5942 | // No operand predicates |
5943 | // MIs[1] h |
5944 | // No operand predicates |
5945 | // MIs[1] i |
5946 | // No operand predicates |
5947 | // MIs[0] idx |
5948 | // No operand predicates |
5949 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5950 | // Combiner Rule #30: extract_vector_element_build_vector12 |
5951 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
5952 | // Label 401: @19131 |
5953 | GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(19155), // Rule ID 31 // |
5954 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled), |
5955 | // MIs[0] root |
5956 | // No operand predicates |
5957 | // MIs[0] src |
5958 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5959 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5960 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/12, |
5961 | // MIs[1] x |
5962 | // No operand predicates |
5963 | // MIs[1] y |
5964 | // No operand predicates |
5965 | // MIs[1] z |
5966 | // No operand predicates |
5967 | // MIs[1] a |
5968 | // No operand predicates |
5969 | // MIs[1] b |
5970 | // No operand predicates |
5971 | // MIs[1] c |
5972 | // No operand predicates |
5973 | // MIs[1] d |
5974 | // No operand predicates |
5975 | // MIs[1] e |
5976 | // No operand predicates |
5977 | // MIs[1] f |
5978 | // No operand predicates |
5979 | // MIs[1] g |
5980 | // No operand predicates |
5981 | // MIs[1] h |
5982 | // No operand predicates |
5983 | // MIs[0] idx |
5984 | // No operand predicates |
5985 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
5986 | // Combiner Rule #29: extract_vector_element_build_vector11 |
5987 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
5988 | // Label 402: @19155 |
5989 | GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(19179), // Rule ID 30 // |
5990 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled), |
5991 | // MIs[0] root |
5992 | // No operand predicates |
5993 | // MIs[0] src |
5994 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
5995 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
5996 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/11, |
5997 | // MIs[1] x |
5998 | // No operand predicates |
5999 | // MIs[1] y |
6000 | // No operand predicates |
6001 | // MIs[1] z |
6002 | // No operand predicates |
6003 | // MIs[1] a |
6004 | // No operand predicates |
6005 | // MIs[1] b |
6006 | // No operand predicates |
6007 | // MIs[1] c |
6008 | // No operand predicates |
6009 | // MIs[1] d |
6010 | // No operand predicates |
6011 | // MIs[1] e |
6012 | // No operand predicates |
6013 | // MIs[1] f |
6014 | // No operand predicates |
6015 | // MIs[1] g |
6016 | // No operand predicates |
6017 | // MIs[0] idx |
6018 | // No operand predicates |
6019 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6020 | // Combiner Rule #28: extract_vector_element_build_vector10 |
6021 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6022 | // Label 403: @19179 |
6023 | GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(19203), // Rule ID 29 // |
6024 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled), |
6025 | // MIs[0] root |
6026 | // No operand predicates |
6027 | // MIs[0] src |
6028 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6029 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6030 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/10, |
6031 | // MIs[1] x |
6032 | // No operand predicates |
6033 | // MIs[1] y |
6034 | // No operand predicates |
6035 | // MIs[1] z |
6036 | // No operand predicates |
6037 | // MIs[1] a |
6038 | // No operand predicates |
6039 | // MIs[1] b |
6040 | // No operand predicates |
6041 | // MIs[1] c |
6042 | // No operand predicates |
6043 | // MIs[1] d |
6044 | // No operand predicates |
6045 | // MIs[1] e |
6046 | // No operand predicates |
6047 | // MIs[1] f |
6048 | // No operand predicates |
6049 | // MIs[0] idx |
6050 | // No operand predicates |
6051 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6052 | // Combiner Rule #27: extract_vector_element_build_vector9 |
6053 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6054 | // Label 404: @19203 |
6055 | GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(19227), // Rule ID 28 // |
6056 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled), |
6057 | // MIs[0] root |
6058 | // No operand predicates |
6059 | // MIs[0] src |
6060 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6061 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6062 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/9, |
6063 | // MIs[1] x |
6064 | // No operand predicates |
6065 | // MIs[1] y |
6066 | // No operand predicates |
6067 | // MIs[1] z |
6068 | // No operand predicates |
6069 | // MIs[1] a |
6070 | // No operand predicates |
6071 | // MIs[1] b |
6072 | // No operand predicates |
6073 | // MIs[1] c |
6074 | // No operand predicates |
6075 | // MIs[1] d |
6076 | // No operand predicates |
6077 | // MIs[1] e |
6078 | // No operand predicates |
6079 | // MIs[0] idx |
6080 | // No operand predicates |
6081 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6082 | // Combiner Rule #26: extract_vector_element_build_vector8 |
6083 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6084 | // Label 405: @19227 |
6085 | GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(19251), // Rule ID 43 // |
6086 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled), |
6087 | // MIs[0] root |
6088 | // No operand predicates |
6089 | // MIs[0] src |
6090 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6091 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6092 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/9, |
6093 | // MIs[1] x |
6094 | // No operand predicates |
6095 | // MIs[1] y |
6096 | // No operand predicates |
6097 | // MIs[1] z |
6098 | // No operand predicates |
6099 | // MIs[1] a |
6100 | // No operand predicates |
6101 | // MIs[1] b |
6102 | // No operand predicates |
6103 | // MIs[1] c |
6104 | // No operand predicates |
6105 | // MIs[1] d |
6106 | // No operand predicates |
6107 | // MIs[1] e |
6108 | // No operand predicates |
6109 | // MIs[0] idx |
6110 | // No operand predicates |
6111 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6112 | // Combiner Rule #41: extract_vector_element_build_vector_trunc8 |
6113 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6114 | // Label 406: @19251 |
6115 | GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(19275), // Rule ID 27 // |
6116 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled), |
6117 | // MIs[0] root |
6118 | // No operand predicates |
6119 | // MIs[0] src |
6120 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6121 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6122 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/8, |
6123 | // MIs[1] x |
6124 | // No operand predicates |
6125 | // MIs[1] y |
6126 | // No operand predicates |
6127 | // MIs[1] z |
6128 | // No operand predicates |
6129 | // MIs[1] a |
6130 | // No operand predicates |
6131 | // MIs[1] b |
6132 | // No operand predicates |
6133 | // MIs[1] c |
6134 | // No operand predicates |
6135 | // MIs[1] d |
6136 | // No operand predicates |
6137 | // MIs[0] idx |
6138 | // No operand predicates |
6139 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6140 | // Combiner Rule #25: extract_vector_element_build_vector7 |
6141 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6142 | // Label 407: @19275 |
6143 | GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(19299), // Rule ID 42 // |
6144 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled), |
6145 | // MIs[0] root |
6146 | // No operand predicates |
6147 | // MIs[0] src |
6148 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6149 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6150 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/8, |
6151 | // MIs[1] x |
6152 | // No operand predicates |
6153 | // MIs[1] y |
6154 | // No operand predicates |
6155 | // MIs[1] z |
6156 | // No operand predicates |
6157 | // MIs[1] a |
6158 | // No operand predicates |
6159 | // MIs[1] b |
6160 | // No operand predicates |
6161 | // MIs[1] c |
6162 | // No operand predicates |
6163 | // MIs[1] d |
6164 | // No operand predicates |
6165 | // MIs[0] idx |
6166 | // No operand predicates |
6167 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6168 | // Combiner Rule #40: extract_vector_element_build_vector_trunc7 |
6169 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6170 | // Label 408: @19299 |
6171 | GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(19323), // Rule ID 41 // |
6172 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled), |
6173 | // MIs[0] root |
6174 | // No operand predicates |
6175 | // MIs[0] src |
6176 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6177 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6178 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/7, |
6179 | // MIs[1] x |
6180 | // No operand predicates |
6181 | // MIs[1] y |
6182 | // No operand predicates |
6183 | // MIs[1] z |
6184 | // No operand predicates |
6185 | // MIs[1] a |
6186 | // No operand predicates |
6187 | // MIs[1] b |
6188 | // No operand predicates |
6189 | // MIs[1] c |
6190 | // No operand predicates |
6191 | // MIs[0] idx |
6192 | // No operand predicates |
6193 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6194 | // Combiner Rule #39: extract_vector_element_build_vector_trunc6 |
6195 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6196 | // Label 409: @19323 |
6197 | GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(19347), // Rule ID 26 // |
6198 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled), |
6199 | // MIs[0] root |
6200 | // No operand predicates |
6201 | // MIs[0] src |
6202 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6203 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6204 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/6, |
6205 | // MIs[1] x |
6206 | // No operand predicates |
6207 | // MIs[1] y |
6208 | // No operand predicates |
6209 | // MIs[1] z |
6210 | // No operand predicates |
6211 | // MIs[1] a |
6212 | // No operand predicates |
6213 | // MIs[1] b |
6214 | // No operand predicates |
6215 | // MIs[0] idx |
6216 | // No operand predicates |
6217 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6218 | // Combiner Rule #24: extract_vector_element_build_vector5 |
6219 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6220 | // Label 410: @19347 |
6221 | GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(19371), // Rule ID 40 // |
6222 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled), |
6223 | // MIs[0] root |
6224 | // No operand predicates |
6225 | // MIs[0] src |
6226 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6227 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6228 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/6, |
6229 | // MIs[1] x |
6230 | // No operand predicates |
6231 | // MIs[1] y |
6232 | // No operand predicates |
6233 | // MIs[1] z |
6234 | // No operand predicates |
6235 | // MIs[1] a |
6236 | // No operand predicates |
6237 | // MIs[1] b |
6238 | // No operand predicates |
6239 | // MIs[0] idx |
6240 | // No operand predicates |
6241 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6242 | // Combiner Rule #38: extract_vector_element_build_vector_trunc5 |
6243 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6244 | // Label 411: @19371 |
6245 | GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(19395), // Rule ID 25 // |
6246 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled), |
6247 | // MIs[0] root |
6248 | // No operand predicates |
6249 | // MIs[0] src |
6250 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6251 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6252 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/5, |
6253 | // MIs[1] x |
6254 | // No operand predicates |
6255 | // MIs[1] y |
6256 | // No operand predicates |
6257 | // MIs[1] z |
6258 | // No operand predicates |
6259 | // MIs[1] a |
6260 | // No operand predicates |
6261 | // MIs[0] idx |
6262 | // No operand predicates |
6263 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6264 | // Combiner Rule #23: extract_vector_element_build_vector4 |
6265 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6266 | // Label 412: @19395 |
6267 | GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(19419), // Rule ID 39 // |
6268 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled), |
6269 | // MIs[0] root |
6270 | // No operand predicates |
6271 | // MIs[0] src |
6272 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6273 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6274 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/5, |
6275 | // MIs[1] x |
6276 | // No operand predicates |
6277 | // MIs[1] y |
6278 | // No operand predicates |
6279 | // MIs[1] z |
6280 | // No operand predicates |
6281 | // MIs[1] a |
6282 | // No operand predicates |
6283 | // MIs[0] idx |
6284 | // No operand predicates |
6285 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6286 | // Combiner Rule #37: extract_vector_element_build_vector_trunc4 |
6287 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6288 | // Label 413: @19419 |
6289 | GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(19443), // Rule ID 24 // |
6290 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled), |
6291 | // MIs[0] root |
6292 | // No operand predicates |
6293 | // MIs[0] src |
6294 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6295 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6296 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/4, |
6297 | // MIs[1] x |
6298 | // No operand predicates |
6299 | // MIs[1] y |
6300 | // No operand predicates |
6301 | // MIs[1] z |
6302 | // No operand predicates |
6303 | // MIs[0] idx |
6304 | // No operand predicates |
6305 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6306 | // Combiner Rule #22: extract_vector_element_build_vector3 |
6307 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6308 | // Label 414: @19443 |
6309 | GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(19467), // Rule ID 38 // |
6310 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled), |
6311 | // MIs[0] root |
6312 | // No operand predicates |
6313 | // MIs[0] src |
6314 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6315 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6316 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/4, |
6317 | // MIs[1] x |
6318 | // No operand predicates |
6319 | // MIs[1] y |
6320 | // No operand predicates |
6321 | // MIs[1] z |
6322 | // No operand predicates |
6323 | // MIs[0] idx |
6324 | // No operand predicates |
6325 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6326 | // Combiner Rule #36: extract_vector_element_build_vector_trunc3 |
6327 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6328 | // Label 415: @19467 |
6329 | GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(19501), // Rule ID 21 // |
6330 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled), |
6331 | // MIs[0] root |
6332 | // No operand predicates |
6333 | // MIs[0] src |
6334 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6335 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT), |
6336 | // MIs[1] x |
6337 | // No operand predicates |
6338 | // MIs[1] value |
6339 | // No operand predicates |
6340 | // MIs[1] idx |
6341 | // No operand predicates |
6342 | // MIs[0] idx |
6343 | GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3, |
6344 | GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2, |
6345 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6346 | // Combiner Rule #19: extract_vector_element_not_const |
6347 | GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2, |
6348 | GIR_EraseRootFromParent_Done, |
6349 | // Label 416: @19501 |
6350 | GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(19522), // Rule ID 22 // |
6351 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled), |
6352 | // MIs[0] root |
6353 | // No operand predicates |
6354 | // MIs[0] src |
6355 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6356 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT), |
6357 | // MIs[1] x |
6358 | // No operand predicates |
6359 | // MIs[1] value |
6360 | // No operand predicates |
6361 | // MIs[1] idx2 |
6362 | // No operand predicates |
6363 | // MIs[0] idx1 |
6364 | // No operand predicates |
6365 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6366 | // Combiner Rule #20: extract_vector_element_different_indices |
6367 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5), |
6368 | // Label 417: @19522 |
6369 | GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(19543), // Rule ID 44 // |
6370 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled), |
6371 | // MIs[0] root |
6372 | // No operand predicates |
6373 | // MIs[0] src |
6374 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6375 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR), |
6376 | // MIs[1] src1 |
6377 | // No operand predicates |
6378 | // MIs[1] src2 |
6379 | // No operand predicates |
6380 | // MIs[1] mask |
6381 | // No operand predicates |
6382 | // MIs[0] idx |
6383 | // No operand predicates |
6384 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6385 | // Combiner Rule #42: extract_vector_element_shuffle_vector |
6386 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8), |
6387 | // Label 418: @19543 |
6388 | GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(19567), // Rule ID 23 // |
6389 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled), |
6390 | // MIs[0] root |
6391 | // No operand predicates |
6392 | // MIs[0] src |
6393 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6394 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR), |
6395 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/3, |
6396 | // MIs[1] x |
6397 | // No operand predicates |
6398 | // MIs[1] y |
6399 | // No operand predicates |
6400 | // MIs[0] idx |
6401 | // No operand predicates |
6402 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6403 | // Combiner Rule #21: extract_vector_element_build_vector2 |
6404 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6), |
6405 | // Label 419: @19567 |
6406 | GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(19591), // Rule ID 37 // |
6407 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled), |
6408 | // MIs[0] root |
6409 | // No operand predicates |
6410 | // MIs[0] src |
6411 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6412 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC), |
6413 | GIM_CheckNumOperands, /*MI*/1, /*Expected*/3, |
6414 | // MIs[1] x |
6415 | // No operand predicates |
6416 | // MIs[1] y |
6417 | // No operand predicates |
6418 | // MIs[0] idx |
6419 | // No operand predicates |
6420 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6421 | // Combiner Rule #35: extract_vector_element_build_vector_trunc2 |
6422 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7), |
6423 | // Label 420: @19591 |
6424 | GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(19615), // Rule ID 15 // |
6425 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled), |
6426 | // MIs[0] root |
6427 | // No operand predicates |
6428 | // MIs[0] vector |
6429 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6430 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
6431 | // MIs[0] idx |
6432 | // No operand predicates |
6433 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6434 | // Combiner Rule #13: match_extract_of_element_undef_vector |
6435 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
6436 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
6437 | GIR_EraseRootFromParent_Done, |
6438 | // Label 421: @19615 |
6439 | GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(19639), // Rule ID 16 // |
6440 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled), |
6441 | // MIs[0] root |
6442 | // No operand predicates |
6443 | // MIs[0] vector |
6444 | // No operand predicates |
6445 | // MIs[0] idx |
6446 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1] |
6447 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
6448 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6449 | // Combiner Rule #14: match_extract_of_element_undef_index |
6450 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF), |
6451 | GIR_RootToRootCopy, /*OpIdx*/0, // root |
6452 | GIR_EraseRootFromParent_Done, |
6453 | // Label 422: @19639 |
6454 | GIM_Reject, |
6455 | // Label 90: @19640 |
6456 | GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(19651), // Rule ID 78 // |
6457 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled), |
6458 | // Combiner Rule #63: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR' |
6459 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26), |
6460 | // Label 423: @19651 |
6461 | GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(19662), // Rule ID 79 // |
6462 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled), |
6463 | // Combiner Rule #64: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR' |
6464 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27), |
6465 | // Label 424: @19662 |
6466 | GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(19673), // Rule ID 320 // |
6467 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled), |
6468 | // Combiner Rule #188: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR' |
6469 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128), |
6470 | // Label 425: @19673 |
6471 | GIM_Reject, |
6472 | // Label 91: @19674 |
6473 | GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(19718), // Rule ID 204 // |
6474 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled), |
6475 | // MIs[0] d |
6476 | // No operand predicates |
6477 | // MIs[0] src |
6478 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6479 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR), |
6480 | // MIs[1] rev |
6481 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2] |
6482 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE), |
6483 | // MIs[2] val |
6484 | // No operand predicates |
6485 | // MIs[1] amt |
6486 | // No operand predicates |
6487 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6), |
6488 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
6489 | // Combiner Rule #146: bitreverse_lshr |
6490 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL), |
6491 | GIR_RootToRootCopy, /*OpIdx*/0, // d |
6492 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val |
6493 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt |
6494 | GIR_EraseRootFromParent_Done, |
6495 | // Label 426: @19718 |
6496 | GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(19762), // Rule ID 203 // |
6497 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled), |
6498 | // MIs[0] d |
6499 | // No operand predicates |
6500 | // MIs[0] src |
6501 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6502 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL), |
6503 | // MIs[1] rev |
6504 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2] |
6505 | GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE), |
6506 | // MIs[2] val |
6507 | // No operand predicates |
6508 | // MIs[1] amt |
6509 | // No operand predicates |
6510 | GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5), |
6511 | GIM_CheckIsSafeToFold, /*NumInsns*/2, |
6512 | // Combiner Rule #145: bitreverse_shl |
6513 | GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR), |
6514 | GIR_RootToRootCopy, /*OpIdx*/0, // d |
6515 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val |
6516 | GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt |
6517 | GIR_EraseRootFromParent_Done, |
6518 | // Label 427: @19762 |
6519 | GIM_Reject, |
6520 | // Label 92: @19763 |
6521 | GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(19774), // Rule ID 332 // |
6522 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled), |
6523 | // Combiner Rule #195: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT' |
6524 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135), |
6525 | // Label 428: @19774 |
6526 | GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(19795), // Rule ID 159 // |
6527 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled), |
6528 | // MIs[0] dst |
6529 | // No operand predicates |
6530 | // MIs[0] src0 |
6531 | GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1] |
6532 | GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT), |
6533 | // MIs[1] cst |
6534 | // No operand predicates |
6535 | GIM_CheckIsSafeToFold, /*NumInsns*/1, |
6536 | // Combiner Rule #122: constant_fold_fsqrt |
6537 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72), |
6538 | // Label 429: @19795 |
6539 | GIM_Reject, |
6540 | // Label 93: @19796 |
6541 | GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(19807), // Rule ID 325 // |
6542 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled), |
6543 | // Combiner Rule #192: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0' |
6544 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132), |
6545 | // Label 430: @19807 |
6546 | GIM_Reject, |
6547 | // Label 94: @19808 |
6548 | GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(19819), // Rule ID 326 // |
6549 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled), |
6550 | // Combiner Rule #192: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1' |
6551 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132), |
6552 | // Label 431: @19819 |
6553 | GIM_Reject, |
6554 | // Label 95: @19820 |
6555 | GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(19831), // Rule ID 327 // |
6556 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled), |
6557 | // Combiner Rule #192: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2' |
6558 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132), |
6559 | // Label 432: @19831 |
6560 | GIM_Reject, |
6561 | // Label 96: @19832 |
6562 | GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(19843), // Rule ID 328 // |
6563 | GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled), |
6564 | // Combiner Rule #192: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3' |
6565 | GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132), |
6566 | // Label 433: @19843 |
6567 | GIM_Reject, |
6568 | // Label 97: @19844 |
6569 | GIM_Reject, |
6570 | }; // Size: 19845 bytes |
6571 | return MatchTable0; |
6572 | } |
6573 | #undef GIMT_Encode2 |
6574 | #undef GIMT_Encode4 |
6575 | #undef GIMT_Encode8 |
6576 | |
6577 | #endif // ifdef GET_GICOMBINER_IMPL |
6578 | |
6579 | #ifdef GET_GICOMBINER_CONSTRUCTOR_INITS |
6580 | AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)), |
6581 | AvailableFunctionFeatures() |
6582 | #endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS |
6583 | #ifdef GET_GICOMBINER_CONSTRUCTOR_INITS |
6584 | , State(0), |
6585 | ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers) |
6586 | #endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS |
6587 | |
6588 | |