1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* DAG Instruction Selector for the BPF target *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9// *** NOTE: This file is #included into the middle of the target
10// *** instruction selector class. These functions are really methods.
11
12// If GET_DAGISEL_DECL is #defined with any value, only function
13// declarations will be included when this file is included.
14// If GET_DAGISEL_BODY is #defined, its value should be the name of
15// the instruction selector class. Function bodies will be emitted
16// and each function's name will be qualified with the name of the
17// class.
18//
19// When neither of the GET_DAGISEL* macros is defined, the functions
20// are emitted inline.
21
22#if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
23#error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
24#endif
25
26#ifdef GET_DAGISEL_BODY
27#define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
28#define LOCAL_DAGISEL_STRINGIZE_(X) #X
29static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
30 "GET_DAGISEL_BODY is empty: it should be defined with the class name");
31#undef LOCAL_DAGISEL_STRINGIZE_
32#undef LOCAL_DAGISEL_STRINGIZE
33#endif
34
35#if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
36#define DAGISEL_INLINE 1
37#else
38#define DAGISEL_INLINE 0
39#endif
40
41#if !DAGISEL_INLINE
42#define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
43#else
44#define DAGISEL_CLASS_COLONCOLON
45#endif
46
47#ifdef GET_DAGISEL_DECL
48void SelectCode(SDNode *N);
49#endif
50#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
51void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
52{
53 // Some target values are emitted as 2 bytes, TARGET_VAL handles
54 // this. Coverage indexes are emitted as 4 bytes,
55 // COVERAGE_IDX_VAL handles this.
56 #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
57 #define COVERAGE_IDX_VAL(X) X & 255, (unsigned(X) >> 8) & 255, (unsigned(X) >> 16) & 255, (unsigned(X) >> 24) & 255
58 static const unsigned char MatcherTable[] = {
59 OPC_SwitchOpcode , 108|128,2, TARGET_VAL(ISD::STORE),
60 OPC_RecordMemRef,
61 OPC_RecordNode,
62 OPC_RecordChild1,
63 OPC_Scope, 29|128,1,
64 OPC_MoveChild1,
65 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
66 OPC_SwitchType , 81, 8,
67 OPC_Scope, 21,
68 OPC_CheckPredicate0,
69 OPC_MoveParent,
70 OPC_RecordChild2,
71 OPC_CheckChild2TypeI64,
72 OPC_CheckPredicate, 11,
73 OPC_CheckPredicate, 13,
74 OPC_CheckPatternPredicate6,
75 OPC_CheckComplexPat0, /*#*/2,
76 OPC_EmitMergeInputChains1_0,
77 OPC_EmitConvertToTarget1,
78 OPC_MorphNodeTo0, TARGET_VAL(BPF::STD_imm), 0|OPFL_Chain|OPFL_MemRefs,
79 3, 5, 3, 4,
80 56,
81 OPC_CheckPredicate, 34,
82 OPC_MoveParent,
83 OPC_RecordChild2,
84 OPC_CheckChild2TypeI64,
85 OPC_CheckPredicate, 11,
86 OPC_CheckPredicate, 12,
87 OPC_Scope, 14,
88 OPC_CheckPredicate1,
89 OPC_CheckPatternPredicate6,
90 OPC_CheckComplexPat0, /*#*/2,
91 OPC_EmitMergeInputChains1_0,
92 OPC_EmitConvertToTarget1,
93 OPC_MorphNodeTo0, TARGET_VAL(BPF::STW_imm), 0|OPFL_Chain|OPFL_MemRefs,
94 3, 5, 3, 4,
95 14,
96 OPC_CheckPredicate2,
97 OPC_CheckPatternPredicate6,
98 OPC_CheckComplexPat0, /*#*/2,
99 OPC_EmitMergeInputChains1_0,
100 OPC_EmitConvertToTarget1,
101 OPC_MorphNodeTo0, TARGET_VAL(BPF::STH_imm), 0|OPFL_Chain|OPFL_MemRefs,
102 3, 5, 3, 4,
103 14,
104 OPC_CheckPredicate3,
105 OPC_CheckPatternPredicate6,
106 OPC_CheckComplexPat0, /*#*/2,
107 OPC_EmitMergeInputChains1_0,
108 OPC_EmitConvertToTarget1,
109 OPC_MorphNodeTo0, TARGET_VAL(BPF::STB_imm), 0|OPFL_Chain|OPFL_MemRefs,
110 3, 5, 3, 4,
111 0,
112 0,
113 66, 7,
114 OPC_MoveParent,
115 OPC_RecordChild2,
116 OPC_CheckChild2TypeI64,
117 OPC_CheckPredicate, 11,
118 OPC_Scope, 17,
119 OPC_CheckPredicate, 13,
120 OPC_CheckPatternPredicate7,
121 OPC_CheckComplexPat0, /*#*/2,
122 OPC_EmitMergeInputChains1_0,
123 OPC_EmitNodeXForm, 0, 1,
124 OPC_MorphNodeTo0, TARGET_VAL(BPF::STW_imm), 0|OPFL_Chain|OPFL_MemRefs,
125 3, 5, 3, 4,
126 40,
127 OPC_CheckPredicate, 12,
128 OPC_Scope, 17,
129 OPC_CheckPredicate2,
130 OPC_CheckPatternPredicate7,
131 OPC_CheckComplexPat0, /*#*/2,
132 OPC_EmitMergeInputChains1_0,
133 OPC_EmitConvertToTarget1,
134 OPC_EmitNodeXForm, 0, 5,
135 OPC_MorphNodeTo0, TARGET_VAL(BPF::STH_imm), 0|OPFL_Chain|OPFL_MemRefs,
136 3, 6, 3, 4,
137 17,
138 OPC_CheckPredicate3,
139 OPC_CheckPatternPredicate7,
140 OPC_CheckComplexPat0, /*#*/2,
141 OPC_EmitMergeInputChains1_0,
142 OPC_EmitConvertToTarget1,
143 OPC_EmitNodeXForm, 0, 5,
144 OPC_MorphNodeTo0, TARGET_VAL(BPF::STB_imm), 0|OPFL_Chain|OPFL_MemRefs,
145 3, 6, 3, 4,
146 0,
147 0,
148 0,
149 14|128,1,
150 OPC_CheckChild1TypeI64,
151 OPC_RecordChild2,
152 OPC_CheckChild2TypeI64,
153 OPC_CheckPredicate, 11,
154 OPC_Scope, 46,
155 OPC_CheckPredicate, 12,
156 OPC_Scope, 13,
157 OPC_CheckPredicate1,
158 OPC_CheckPatternPredicate2,
159 OPC_CheckComplexPat0, /*#*/2,
160 OPC_EmitMergeInputChains1_0,
161 OPC_MorphNodeTo0, TARGET_VAL(BPF::STW), 0|OPFL_Chain|OPFL_MemRefs,
162 3, 1, 3, 4,
163 13,
164 OPC_CheckPredicate2,
165 OPC_CheckPatternPredicate2,
166 OPC_CheckComplexPat0, /*#*/2,
167 OPC_EmitMergeInputChains1_0,
168 OPC_MorphNodeTo0, TARGET_VAL(BPF::STH), 0|OPFL_Chain|OPFL_MemRefs,
169 3, 1, 3, 4,
170 13,
171 OPC_CheckPredicate3,
172 OPC_CheckPatternPredicate2,
173 OPC_CheckComplexPat0, /*#*/2,
174 OPC_EmitMergeInputChains1_0,
175 OPC_MorphNodeTo0, TARGET_VAL(BPF::STB), 0|OPFL_Chain|OPFL_MemRefs,
176 3, 1, 3, 4,
177 0,
178 13,
179 OPC_CheckPredicate, 13,
180 OPC_CheckComplexPat0, /*#*/2,
181 OPC_EmitMergeInputChains1_0,
182 OPC_MorphNodeTo0, TARGET_VAL(BPF::STD), 0|OPFL_Chain|OPFL_MemRefs,
183 3, 1, 3, 4,
184 73,
185 OPC_CheckPredicate, 12,
186 OPC_Scope, 22,
187 OPC_CheckPredicate3,
188 OPC_CheckPatternPredicate0,
189 OPC_CheckComplexPat0, /*#*/2,
190 OPC_EmitMergeInputChains1_0,
191 OPC_EmitStringInteger32, BPF::sub_32,
192 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
193 7, 2, 1, 5,
194 OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
195 3, 6, 3, 4,
196 22,
197 OPC_CheckPredicate2,
198 OPC_CheckPatternPredicate0,
199 OPC_CheckComplexPat0, /*#*/2,
200 OPC_EmitMergeInputChains1_0,
201 OPC_EmitStringInteger32, BPF::sub_32,
202 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
203 7, 2, 1, 5,
204 OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
205 3, 6, 3, 4,
206 22,
207 OPC_CheckPredicate1,
208 OPC_CheckPatternPredicate0,
209 OPC_CheckComplexPat0, /*#*/2,
210 OPC_EmitMergeInputChains1_0,
211 OPC_EmitStringInteger32, BPF::sub_32,
212 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
213 7, 2, 1, 5,
214 OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
215 3, 6, 3, 4,
216 0,
217 0,
218 55,
219 OPC_CheckChild1TypeI32,
220 OPC_RecordChild2,
221 OPC_CheckChild2TypeI64,
222 OPC_CheckPredicate, 11,
223 OPC_Scope, 14,
224 OPC_CheckPredicate, 13,
225 OPC_CheckPatternPredicate0,
226 OPC_CheckComplexPat0, /*#*/2,
227 OPC_EmitMergeInputChains1_0,
228 OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
229 3, 1, 3, 4,
230 32,
231 OPC_CheckPredicate, 12,
232 OPC_Scope, 13,
233 OPC_CheckPredicate2,
234 OPC_CheckPatternPredicate0,
235 OPC_CheckComplexPat0, /*#*/2,
236 OPC_EmitMergeInputChains1_0,
237 OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
238 3, 1, 3, 4,
239 13,
240 OPC_CheckPredicate3,
241 OPC_CheckPatternPredicate0,
242 OPC_CheckComplexPat0, /*#*/2,
243 OPC_EmitMergeInputChains1_0,
244 OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
245 3, 1, 3, 4,
246 0,
247 0,
248 0,
249 2|128,1, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
250 OPC_RecordNode,
251 OPC_Scope, 24,
252 OPC_CheckChild1Integer, 116|128,61,
253 OPC_RecordChild2,
254 OPC_MoveChild2,
255 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
256 OPC_MoveSibling3,
257 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
258 OPC_RecordNode,
259 OPC_MoveParent,
260 OPC_EmitMergeInputChains1_0,
261 OPC_EmitConvertToTarget1,
262 OPC_EmitConvertToTarget2,
263 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_pseudo),
264 8, 2, 3, 4,
265 33,
266 OPC_CheckChild1Integer, 102|128,61,
267 OPC_RecordChild2,
268 OPC_CheckChild2TypeI64,
269 OPC_RecordChild3,
270 OPC_Scope, 15,
271 OPC_MoveChild3,
272 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
273 OPC_CheckPredicate0,
274 OPC_MoveParent,
275 OPC_EmitMergeInputChains1_0,
276 OPC_EmitConvertToTarget2,
277 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_ABS_B),
278 8, 2, 1, 3,
279 8,
280 OPC_EmitMergeInputChains1_0,
281 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_IND_B),
282 8, 2, 1, 2,
283 0,
284 33,
285 OPC_CheckChild1Integer, 104|128,61,
286 OPC_RecordChild2,
287 OPC_CheckChild2TypeI64,
288 OPC_RecordChild3,
289 OPC_Scope, 15,
290 OPC_MoveChild3,
291 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
292 OPC_CheckPredicate0,
293 OPC_MoveParent,
294 OPC_EmitMergeInputChains1_0,
295 OPC_EmitConvertToTarget2,
296 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_ABS_H),
297 8, 2, 1, 3,
298 8,
299 OPC_EmitMergeInputChains1_0,
300 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_IND_H),
301 8, 2, 1, 2,
302 0,
303 33,
304 OPC_CheckChild1Integer, 106|128,61,
305 OPC_RecordChild2,
306 OPC_CheckChild2TypeI64,
307 OPC_RecordChild3,
308 OPC_Scope, 15,
309 OPC_MoveChild3,
310 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
311 OPC_CheckPredicate0,
312 OPC_MoveParent,
313 OPC_EmitMergeInputChains1_0,
314 OPC_EmitConvertToTarget2,
315 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_ABS_W),
316 8, 2, 1, 3,
317 8,
318 OPC_EmitMergeInputChains1_0,
319 OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_IND_W),
320 8, 2, 1, 2,
321 0,
322 0,
323 13|128,1, TARGET_VAL(ISD::ATOMIC_STORE),
324 OPC_RecordMemRef,
325 OPC_RecordNode,
326 OPC_RecordChild1,
327 OPC_Scope, 36,
328 OPC_CheckChild1TypeI64,
329 OPC_RecordChild2,
330 OPC_CheckChild2TypeI64,
331 OPC_CheckPredicate, 9,
332 OPC_Scope, 14,
333 OPC_CheckPredicate, 14,
334 OPC_CheckPatternPredicate1,
335 OPC_CheckComplexPat0, /*#*/2,
336 OPC_EmitMergeInputChains1_0,
337 OPC_MorphNodeTo0, TARGET_VAL(BPF::STD), 0|OPFL_Chain|OPFL_MemRefs,
338 3, 1, 3, 4,
339 13,
340 OPC_CheckPredicate5,
341 OPC_CheckPatternPredicate1,
342 OPC_CheckComplexPat0, /*#*/2,
343 OPC_EmitMergeInputChains1_0,
344 OPC_MorphNodeTo0, TARGET_VAL(BPF::STDREL), 0|OPFL_Chain|OPFL_MemRefs,
345 3, 1, 3, 4,
346 0,
347 98,
348 OPC_CheckChild1TypeI32,
349 OPC_RecordChild2,
350 OPC_CheckChild2TypeI64,
351 OPC_Scope, 15,
352 OPC_CheckPredicate1,
353 OPC_CheckPredicate, 14,
354 OPC_CheckPatternPredicate1,
355 OPC_CheckComplexPat0, /*#*/2,
356 OPC_EmitMergeInputChains1_0,
357 OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
358 3, 1, 3, 4,
359 15,
360 OPC_CheckPredicate2,
361 OPC_CheckPredicate, 14,
362 OPC_CheckPatternPredicate1,
363 OPC_CheckComplexPat0, /*#*/2,
364 OPC_EmitMergeInputChains1_0,
365 OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
366 3, 1, 3, 4,
367 15,
368 OPC_CheckPredicate3,
369 OPC_CheckPredicate, 14,
370 OPC_CheckPatternPredicate1,
371 OPC_CheckComplexPat0, /*#*/2,
372 OPC_EmitMergeInputChains1_0,
373 OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
374 3, 1, 3, 4,
375 14,
376 OPC_CheckPredicate1,
377 OPC_CheckPredicate5,
378 OPC_CheckPatternPredicate1,
379 OPC_CheckComplexPat0, /*#*/2,
380 OPC_EmitMergeInputChains1_0,
381 OPC_MorphNodeTo0, TARGET_VAL(BPF::STWREL32), 0|OPFL_Chain|OPFL_MemRefs,
382 3, 1, 3, 4,
383 14,
384 OPC_CheckPredicate2,
385 OPC_CheckPredicate5,
386 OPC_CheckPatternPredicate1,
387 OPC_CheckComplexPat0, /*#*/2,
388 OPC_EmitMergeInputChains1_0,
389 OPC_MorphNodeTo0, TARGET_VAL(BPF::STHREL32), 0|OPFL_Chain|OPFL_MemRefs,
390 3, 1, 3, 4,
391 14,
392 OPC_CheckPredicate3,
393 OPC_CheckPredicate5,
394 OPC_CheckPatternPredicate1,
395 OPC_CheckComplexPat0, /*#*/2,
396 OPC_EmitMergeInputChains1_0,
397 OPC_MorphNodeTo0, TARGET_VAL(BPF::STBREL32), 0|OPFL_Chain|OPFL_MemRefs,
398 3, 1, 3, 4,
399 0,
400 0,
401 87|128,3, TARGET_VAL(ISD::LOAD),
402 OPC_RecordMemRef,
403 OPC_RecordNode,
404 OPC_RecordChild1,
405 OPC_CheckChild1TypeI64,
406 OPC_CheckPredicate, 35,
407 OPC_SwitchType , 67|128,2, 8,
408 OPC_Scope, 46,
409 OPC_CheckPredicate, 27,
410 OPC_Scope, 13,
411 OPC_CheckPredicate1,
412 OPC_CheckPatternPredicate2,
413 OPC_CheckComplexPat0, /*#*/1,
414 OPC_EmitMergeInputChains1_0,
415 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
416 8, 2, 2, 3,
417 13,
418 OPC_CheckPredicate2,
419 OPC_CheckPatternPredicate2,
420 OPC_CheckComplexPat0, /*#*/1,
421 OPC_EmitMergeInputChains1_0,
422 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
423 8, 2, 2, 3,
424 13,
425 OPC_CheckPredicate3,
426 OPC_CheckPatternPredicate2,
427 OPC_CheckComplexPat0, /*#*/1,
428 OPC_EmitMergeInputChains1_0,
429 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
430 8, 2, 2, 3,
431 0,
432 46,
433 OPC_CheckPredicate, 31,
434 OPC_Scope, 13,
435 OPC_CheckPredicate1,
436 OPC_CheckPatternPredicate5,
437 OPC_CheckComplexPat0, /*#*/1,
438 OPC_EmitMergeInputChains1_0,
439 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDWSX), 0|OPFL_Chain|OPFL_MemRefs,
440 8, 2, 2, 3,
441 13,
442 OPC_CheckPredicate2,
443 OPC_CheckPatternPredicate5,
444 OPC_CheckComplexPat0, /*#*/1,
445 OPC_EmitMergeInputChains1_0,
446 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDHSX), 0|OPFL_Chain|OPFL_MemRefs,
447 8, 2, 2, 3,
448 13,
449 OPC_CheckPredicate3,
450 OPC_CheckPatternPredicate5,
451 OPC_CheckComplexPat0, /*#*/1,
452 OPC_EmitMergeInputChains1_0,
453 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDBSX), 0|OPFL_Chain|OPFL_MemRefs,
454 8, 2, 2, 3,
455 0,
456 13,
457 OPC_CheckPredicate, 32,
458 OPC_CheckComplexPat0, /*#*/1,
459 OPC_EmitMergeInputChains1_0,
460 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDD), 0|OPFL_Chain|OPFL_MemRefs,
461 8, 2, 2, 3,
462 46,
463 OPC_CheckPredicate, 28,
464 OPC_Scope, 13,
465 OPC_CheckPredicate3,
466 OPC_CheckPatternPredicate2,
467 OPC_CheckComplexPat0, /*#*/1,
468 OPC_EmitMergeInputChains1_0,
469 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
470 8, 2, 2, 3,
471 13,
472 OPC_CheckPredicate2,
473 OPC_CheckPatternPredicate2,
474 OPC_CheckComplexPat0, /*#*/1,
475 OPC_EmitMergeInputChains1_0,
476 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
477 8, 2, 2, 3,
478 13,
479 OPC_CheckPredicate1,
480 OPC_CheckPatternPredicate2,
481 OPC_CheckComplexPat0, /*#*/1,
482 OPC_EmitMergeInputChains1_0,
483 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
484 8, 2, 2, 3,
485 0,
486 82,
487 OPC_CheckPredicate, 27,
488 OPC_Scope, 25,
489 OPC_CheckPredicate3,
490 OPC_CheckPatternPredicate0,
491 OPC_CheckComplexPat0, /*#*/1,
492 OPC_EmitMergeInputChains1_0,
493 OPC_EmitInteger64, 0,
494 OPC_EmitNode1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
495 7, 2, 2, 3,
496 OPC_EmitStringInteger32, BPF::sub_32,
497 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
498 8, 3, 4, 5, 6,
499 25,
500 OPC_CheckPredicate2,
501 OPC_CheckPatternPredicate0,
502 OPC_CheckComplexPat0, /*#*/1,
503 OPC_EmitMergeInputChains1_0,
504 OPC_EmitInteger64, 0,
505 OPC_EmitNode1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
506 7, 2, 2, 3,
507 OPC_EmitStringInteger32, BPF::sub_32,
508 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
509 8, 3, 4, 5, 6,
510 25,
511 OPC_CheckPredicate1,
512 OPC_CheckPatternPredicate0,
513 OPC_CheckComplexPat0, /*#*/1,
514 OPC_EmitMergeInputChains1_0,
515 OPC_EmitInteger64, 0,
516 OPC_EmitNode1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
517 7, 2, 2, 3,
518 OPC_EmitStringInteger32, BPF::sub_32,
519 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
520 8, 3, 4, 5, 6,
521 0,
522 82,
523 OPC_CheckPredicate, 28,
524 OPC_Scope, 25,
525 OPC_CheckPredicate3,
526 OPC_CheckPatternPredicate0,
527 OPC_CheckComplexPat0, /*#*/1,
528 OPC_EmitMergeInputChains1_0,
529 OPC_EmitInteger64, 0,
530 OPC_EmitNode1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
531 7, 2, 2, 3,
532 OPC_EmitStringInteger32, BPF::sub_32,
533 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
534 8, 3, 4, 5, 6,
535 25,
536 OPC_CheckPredicate2,
537 OPC_CheckPatternPredicate0,
538 OPC_CheckComplexPat0, /*#*/1,
539 OPC_EmitMergeInputChains1_0,
540 OPC_EmitInteger64, 0,
541 OPC_EmitNode1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
542 7, 2, 2, 3,
543 OPC_EmitStringInteger32, BPF::sub_32,
544 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
545 8, 3, 4, 5, 6,
546 25,
547 OPC_CheckPredicate1,
548 OPC_CheckPatternPredicate0,
549 OPC_CheckComplexPat0, /*#*/1,
550 OPC_EmitMergeInputChains1_0,
551 OPC_EmitInteger64, 0,
552 OPC_EmitNode1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
553 7, 2, 2, 3,
554 OPC_EmitStringInteger32, BPF::sub_32,
555 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
556 8, 3, 4, 5, 6,
557 0,
558 0,
559 6|128,1, 7,
560 OPC_Scope, 14,
561 OPC_CheckPredicate, 32,
562 OPC_CheckPatternPredicate0,
563 OPC_CheckComplexPat0, /*#*/1,
564 OPC_EmitMergeInputChains1_0,
565 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
566 7, 2, 2, 3,
567 32,
568 OPC_CheckPredicate, 27,
569 OPC_Scope, 13,
570 OPC_CheckPredicate2,
571 OPC_CheckPatternPredicate0,
572 OPC_CheckComplexPat0, /*#*/1,
573 OPC_EmitMergeInputChains1_0,
574 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
575 7, 2, 2, 3,
576 13,
577 OPC_CheckPredicate3,
578 OPC_CheckPatternPredicate0,
579 OPC_CheckComplexPat0, /*#*/1,
580 OPC_EmitMergeInputChains1_0,
581 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
582 7, 2, 2, 3,
583 0,
584 32,
585 OPC_CheckPredicate, 28,
586 OPC_Scope, 13,
587 OPC_CheckPredicate3,
588 OPC_CheckPatternPredicate0,
589 OPC_CheckComplexPat0, /*#*/1,
590 OPC_EmitMergeInputChains1_0,
591 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
592 7, 2, 2, 3,
593 13,
594 OPC_CheckPredicate2,
595 OPC_CheckPatternPredicate0,
596 OPC_CheckComplexPat0, /*#*/1,
597 OPC_EmitMergeInputChains1_0,
598 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
599 7, 2, 2, 3,
600 0,
601 50,
602 OPC_CheckPredicate, 31,
603 OPC_Scope, 22,
604 OPC_CheckPredicate3,
605 OPC_CheckPatternPredicate5,
606 OPC_CheckComplexPat0, /*#*/1,
607 OPC_EmitMergeInputChains1_0,
608 OPC_EmitNode1, TARGET_VAL(BPF::LDBSX), 0|OPFL_Chain|OPFL_MemRefs,
609 8, 2, 2, 3,
610 OPC_EmitStringInteger32, BPF::sub_32,
611 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
612 7, 2, 4, 5,
613 22,
614 OPC_CheckPredicate2,
615 OPC_CheckPatternPredicate5,
616 OPC_CheckComplexPat0, /*#*/1,
617 OPC_EmitMergeInputChains1_0,
618 OPC_EmitNode1, TARGET_VAL(BPF::LDHSX), 0|OPFL_Chain|OPFL_MemRefs,
619 8, 2, 2, 3,
620 OPC_EmitStringInteger32, BPF::sub_32,
621 OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
622 7, 2, 4, 5,
623 0,
624 0,
625 0,
626 101|128,1, TARGET_VAL(ISD::ATOMIC_LOAD),
627 OPC_RecordMemRef,
628 OPC_RecordNode,
629 OPC_RecordChild1,
630 OPC_CheckChild1TypeI64,
631 OPC_Scope, 56,
632 OPC_CheckPredicate, 33,
633 OPC_SwitchType , 33, 8,
634 OPC_CheckPredicate, 9,
635 OPC_Scope, 14,
636 OPC_CheckPredicate, 10,
637 OPC_CheckPatternPredicate1,
638 OPC_CheckComplexPat0, /*#*/1,
639 OPC_EmitMergeInputChains1_0,
640 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDD), 0|OPFL_Chain|OPFL_MemRefs,
641 8, 2, 2, 3,
642 13,
643 OPC_CheckPredicate4,
644 OPC_CheckPatternPredicate1,
645 OPC_CheckComplexPat0, /*#*/1,
646 OPC_EmitMergeInputChains1_0,
647 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDDACQ), 0|OPFL_Chain|OPFL_MemRefs,
648 8, 2, 2, 3,
649 0,
650 15, 7,
651 OPC_CheckPredicate1,
652 OPC_CheckPredicate, 10,
653 OPC_CheckPatternPredicate1,
654 OPC_CheckComplexPat0, /*#*/1,
655 OPC_EmitMergeInputChains1_0,
656 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
657 7, 2, 2, 3,
658 0,
659 18,
660 OPC_CheckPredicate, 15,
661 OPC_CheckPredicate2,
662 OPC_CheckPredicate, 10,
663 OPC_CheckTypeI32,
664 OPC_CheckPatternPredicate1,
665 OPC_CheckComplexPat0, /*#*/1,
666 OPC_EmitMergeInputChains1_0,
667 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
668 7, 2, 2, 3,
669 18,
670 OPC_CheckPredicate, 16,
671 OPC_CheckPredicate2,
672 OPC_CheckPredicate, 10,
673 OPC_CheckTypeI32,
674 OPC_CheckPatternPredicate1,
675 OPC_CheckComplexPat0, /*#*/1,
676 OPC_EmitMergeInputChains1_0,
677 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
678 7, 2, 2, 3,
679 18,
680 OPC_CheckPredicate, 15,
681 OPC_CheckPredicate3,
682 OPC_CheckPredicate, 10,
683 OPC_CheckTypeI32,
684 OPC_CheckPatternPredicate1,
685 OPC_CheckComplexPat0, /*#*/1,
686 OPC_EmitMergeInputChains1_0,
687 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
688 7, 2, 2, 3,
689 18,
690 OPC_CheckPredicate, 16,
691 OPC_CheckPredicate3,
692 OPC_CheckPredicate, 10,
693 OPC_CheckTypeI32,
694 OPC_CheckPatternPredicate1,
695 OPC_CheckComplexPat0, /*#*/1,
696 OPC_EmitMergeInputChains1_0,
697 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
698 7, 2, 2, 3,
699 17,
700 OPC_CheckPredicate, 33,
701 OPC_CheckPredicate1,
702 OPC_CheckPredicate4,
703 OPC_CheckTypeI32,
704 OPC_CheckPatternPredicate1,
705 OPC_CheckComplexPat0, /*#*/1,
706 OPC_EmitMergeInputChains1_0,
707 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDWACQ32), 0|OPFL_Chain|OPFL_MemRefs,
708 7, 2, 2, 3,
709 17,
710 OPC_CheckPredicate, 15,
711 OPC_CheckPredicate2,
712 OPC_CheckPredicate4,
713 OPC_CheckTypeI32,
714 OPC_CheckPatternPredicate1,
715 OPC_CheckComplexPat0, /*#*/1,
716 OPC_EmitMergeInputChains1_0,
717 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDHACQ32), 0|OPFL_Chain|OPFL_MemRefs,
718 7, 2, 2, 3,
719 17,
720 OPC_CheckPredicate, 16,
721 OPC_CheckPredicate2,
722 OPC_CheckPredicate4,
723 OPC_CheckTypeI32,
724 OPC_CheckPatternPredicate1,
725 OPC_CheckComplexPat0, /*#*/1,
726 OPC_EmitMergeInputChains1_0,
727 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDHACQ32), 0|OPFL_Chain|OPFL_MemRefs,
728 7, 2, 2, 3,
729 17,
730 OPC_CheckPredicate, 15,
731 OPC_CheckPredicate3,
732 OPC_CheckPredicate4,
733 OPC_CheckTypeI32,
734 OPC_CheckPatternPredicate1,
735 OPC_CheckComplexPat0, /*#*/1,
736 OPC_EmitMergeInputChains1_0,
737 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDBACQ32), 0|OPFL_Chain|OPFL_MemRefs,
738 7, 2, 2, 3,
739 17,
740 OPC_CheckPredicate, 16,
741 OPC_CheckPredicate3,
742 OPC_CheckPredicate4,
743 OPC_CheckTypeI32,
744 OPC_CheckPatternPredicate1,
745 OPC_CheckComplexPat0, /*#*/1,
746 OPC_EmitMergeInputChains1_0,
747 OPC_MorphNodeTo1, TARGET_VAL(BPF::LDBACQ32), 0|OPFL_Chain|OPFL_MemRefs,
748 7, 2, 2, 3,
749 0,
750 74|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),
751 OPC_RecordMemRef,
752 OPC_RecordNode,
753 OPC_RecordChild1,
754 OPC_CheckChild1TypeI64,
755 OPC_RecordChild2,
756 OPC_SwitchType , 112, 8,
757 OPC_Scope, 14,
758 OPC_CheckPredicate1,
759 OPC_CheckPatternPredicate2,
760 OPC_CheckComplexPat0, /*#*/1,
761 OPC_EmitMergeInputChains1_0,
762 OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDW), 0|OPFL_Chain|OPFL_MemRefs,
763 8, 3, 3, 4, 2,
764 94,
765 OPC_CheckPredicate, 9,
766 OPC_Scope, 13,
767 OPC_CheckPatternPredicate2,
768 OPC_CheckComplexPat0, /*#*/1,
769 OPC_EmitMergeInputChains1_0,
770 OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDD), 0|OPFL_Chain|OPFL_MemRefs,
771 8, 3, 3, 4, 2,
772 14,
773 OPC_CheckPredicate6,
774 OPC_CheckPatternPredicate0,
775 OPC_CheckComplexPat0, /*#*/1,
776 OPC_EmitMergeInputChains1_0,
777 OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDD), 0|OPFL_Chain|OPFL_MemRefs,
778 8, 3, 3, 4, 2,
779 14,
780 OPC_CheckPredicate4,
781 OPC_CheckPatternPredicate0,
782 OPC_CheckComplexPat0, /*#*/1,
783 OPC_EmitMergeInputChains1_0,
784 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
785 8, 3, 3, 4, 2,
786 14,
787 OPC_CheckPredicate5,
788 OPC_CheckPatternPredicate0,
789 OPC_CheckComplexPat0, /*#*/1,
790 OPC_EmitMergeInputChains1_0,
791 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
792 8, 3, 3, 4, 2,
793 14,
794 OPC_CheckPredicate7,
795 OPC_CheckPatternPredicate0,
796 OPC_CheckComplexPat0, /*#*/1,
797 OPC_EmitMergeInputChains1_0,
798 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
799 8, 3, 3, 4, 2,
800 15,
801 OPC_CheckPredicate, 8,
802 OPC_CheckPatternPredicate0,
803 OPC_CheckComplexPat0, /*#*/1,
804 OPC_EmitMergeInputChains1_0,
805 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
806 8, 3, 3, 4, 2,
807 0,
808 0,
809 79, 7,
810 OPC_CheckPredicate1,
811 OPC_Scope, 14,
812 OPC_CheckPredicate6,
813 OPC_CheckPatternPredicate0,
814 OPC_CheckComplexPat0, /*#*/1,
815 OPC_EmitMergeInputChains1_0,
816 OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDW32), 0|OPFL_Chain|OPFL_MemRefs,
817 7, 3, 3, 4, 2,
818 14,
819 OPC_CheckPredicate4,
820 OPC_CheckPatternPredicate0,
821 OPC_CheckComplexPat0, /*#*/1,
822 OPC_EmitMergeInputChains1_0,
823 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
824 7, 3, 3, 4, 2,
825 14,
826 OPC_CheckPredicate5,
827 OPC_CheckPatternPredicate0,
828 OPC_CheckComplexPat0, /*#*/1,
829 OPC_EmitMergeInputChains1_0,
830 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
831 7, 3, 3, 4, 2,
832 14,
833 OPC_CheckPredicate7,
834 OPC_CheckPatternPredicate0,
835 OPC_CheckComplexPat0, /*#*/1,
836 OPC_EmitMergeInputChains1_0,
837 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
838 7, 3, 3, 4, 2,
839 15,
840 OPC_CheckPredicate, 8,
841 OPC_CheckPatternPredicate0,
842 OPC_CheckComplexPat0, /*#*/1,
843 OPC_EmitMergeInputChains1_0,
844 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
845 7, 3, 3, 4, 2,
846 0,
847 0,
848 57|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_AND),
849 OPC_RecordMemRef,
850 OPC_RecordNode,
851 OPC_RecordChild1,
852 OPC_CheckChild1TypeI64,
853 OPC_RecordChild2,
854 OPC_SwitchType , 79, 7,
855 OPC_CheckPredicate1,
856 OPC_Scope, 14,
857 OPC_CheckPredicate6,
858 OPC_CheckPatternPredicate0,
859 OPC_CheckComplexPat0, /*#*/1,
860 OPC_EmitMergeInputChains1_0,
861 OPC_MorphNodeTo1, TARGET_VAL(BPF::XANDW32), 0|OPFL_Chain|OPFL_MemRefs,
862 7, 3, 3, 4, 2,
863 14,
864 OPC_CheckPredicate4,
865 OPC_CheckPatternPredicate0,
866 OPC_CheckComplexPat0, /*#*/1,
867 OPC_EmitMergeInputChains1_0,
868 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
869 7, 3, 3, 4, 2,
870 14,
871 OPC_CheckPredicate5,
872 OPC_CheckPatternPredicate0,
873 OPC_CheckComplexPat0, /*#*/1,
874 OPC_EmitMergeInputChains1_0,
875 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
876 7, 3, 3, 4, 2,
877 14,
878 OPC_CheckPredicate7,
879 OPC_CheckPatternPredicate0,
880 OPC_CheckComplexPat0, /*#*/1,
881 OPC_EmitMergeInputChains1_0,
882 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
883 7, 3, 3, 4, 2,
884 15,
885 OPC_CheckPredicate, 8,
886 OPC_CheckPatternPredicate0,
887 OPC_CheckComplexPat0, /*#*/1,
888 OPC_EmitMergeInputChains1_0,
889 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
890 7, 3, 3, 4, 2,
891 0,
892 95, 8,
893 OPC_CheckPredicate, 9,
894 OPC_Scope, 33,
895 OPC_CheckPredicate6,
896 OPC_Scope, 14,
897 OPC_CheckPredicate, 29,
898 OPC_CheckComplexPat0, /*#*/1,
899 OPC_EmitMergeInputChains1_0,
900 OPC_MorphNodeTo1, TARGET_VAL(BPF::XANDD), 0|OPFL_Chain|OPFL_MemRefs,
901 8, 3, 3, 4, 2,
902 14,
903 OPC_CheckPredicate, 30,
904 OPC_CheckComplexPat0, /*#*/1,
905 OPC_EmitMergeInputChains1_0,
906 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
907 8, 3, 3, 4, 2,
908 0,
909 13,
910 OPC_CheckPredicate4,
911 OPC_CheckComplexPat0, /*#*/1,
912 OPC_EmitMergeInputChains1_0,
913 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
914 8, 3, 3, 4, 2,
915 13,
916 OPC_CheckPredicate5,
917 OPC_CheckComplexPat0, /*#*/1,
918 OPC_EmitMergeInputChains1_0,
919 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
920 8, 3, 3, 4, 2,
921 13,
922 OPC_CheckPredicate7,
923 OPC_CheckComplexPat0, /*#*/1,
924 OPC_EmitMergeInputChains1_0,
925 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
926 8, 3, 3, 4, 2,
927 14,
928 OPC_CheckPredicate, 8,
929 OPC_CheckComplexPat0, /*#*/1,
930 OPC_EmitMergeInputChains1_0,
931 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
932 8, 3, 3, 4, 2,
933 0,
934 0,
935 57|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_OR),
936 OPC_RecordMemRef,
937 OPC_RecordNode,
938 OPC_RecordChild1,
939 OPC_CheckChild1TypeI64,
940 OPC_RecordChild2,
941 OPC_SwitchType , 79, 7,
942 OPC_CheckPredicate1,
943 OPC_Scope, 14,
944 OPC_CheckPredicate6,
945 OPC_CheckPatternPredicate0,
946 OPC_CheckComplexPat0, /*#*/1,
947 OPC_EmitMergeInputChains1_0,
948 OPC_MorphNodeTo1, TARGET_VAL(BPF::XORW32), 0|OPFL_Chain|OPFL_MemRefs,
949 7, 3, 3, 4, 2,
950 14,
951 OPC_CheckPredicate4,
952 OPC_CheckPatternPredicate0,
953 OPC_CheckComplexPat0, /*#*/1,
954 OPC_EmitMergeInputChains1_0,
955 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
956 7, 3, 3, 4, 2,
957 14,
958 OPC_CheckPredicate5,
959 OPC_CheckPatternPredicate0,
960 OPC_CheckComplexPat0, /*#*/1,
961 OPC_EmitMergeInputChains1_0,
962 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
963 7, 3, 3, 4, 2,
964 14,
965 OPC_CheckPredicate7,
966 OPC_CheckPatternPredicate0,
967 OPC_CheckComplexPat0, /*#*/1,
968 OPC_EmitMergeInputChains1_0,
969 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
970 7, 3, 3, 4, 2,
971 15,
972 OPC_CheckPredicate, 8,
973 OPC_CheckPatternPredicate0,
974 OPC_CheckComplexPat0, /*#*/1,
975 OPC_EmitMergeInputChains1_0,
976 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
977 7, 3, 3, 4, 2,
978 0,
979 95, 8,
980 OPC_CheckPredicate, 9,
981 OPC_Scope, 33,
982 OPC_CheckPredicate6,
983 OPC_Scope, 14,
984 OPC_CheckPredicate, 29,
985 OPC_CheckComplexPat0, /*#*/1,
986 OPC_EmitMergeInputChains1_0,
987 OPC_MorphNodeTo1, TARGET_VAL(BPF::XORD), 0|OPFL_Chain|OPFL_MemRefs,
988 8, 3, 3, 4, 2,
989 14,
990 OPC_CheckPredicate, 30,
991 OPC_CheckComplexPat0, /*#*/1,
992 OPC_EmitMergeInputChains1_0,
993 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
994 8, 3, 3, 4, 2,
995 0,
996 13,
997 OPC_CheckPredicate4,
998 OPC_CheckComplexPat0, /*#*/1,
999 OPC_EmitMergeInputChains1_0,
1000 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
1001 8, 3, 3, 4, 2,
1002 13,
1003 OPC_CheckPredicate5,
1004 OPC_CheckComplexPat0, /*#*/1,
1005 OPC_EmitMergeInputChains1_0,
1006 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
1007 8, 3, 3, 4, 2,
1008 13,
1009 OPC_CheckPredicate7,
1010 OPC_CheckComplexPat0, /*#*/1,
1011 OPC_EmitMergeInputChains1_0,
1012 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
1013 8, 3, 3, 4, 2,
1014 14,
1015 OPC_CheckPredicate, 8,
1016 OPC_CheckComplexPat0, /*#*/1,
1017 OPC_EmitMergeInputChains1_0,
1018 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
1019 8, 3, 3, 4, 2,
1020 0,
1021 0,
1022 57|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),
1023 OPC_RecordMemRef,
1024 OPC_RecordNode,
1025 OPC_RecordChild1,
1026 OPC_CheckChild1TypeI64,
1027 OPC_RecordChild2,
1028 OPC_SwitchType , 79, 7,
1029 OPC_CheckPredicate1,
1030 OPC_Scope, 14,
1031 OPC_CheckPredicate6,
1032 OPC_CheckPatternPredicate0,
1033 OPC_CheckComplexPat0, /*#*/1,
1034 OPC_EmitMergeInputChains1_0,
1035 OPC_MorphNodeTo1, TARGET_VAL(BPF::XXORW32), 0|OPFL_Chain|OPFL_MemRefs,
1036 7, 3, 3, 4, 2,
1037 14,
1038 OPC_CheckPredicate4,
1039 OPC_CheckPatternPredicate0,
1040 OPC_CheckComplexPat0, /*#*/1,
1041 OPC_EmitMergeInputChains1_0,
1042 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
1043 7, 3, 3, 4, 2,
1044 14,
1045 OPC_CheckPredicate5,
1046 OPC_CheckPatternPredicate0,
1047 OPC_CheckComplexPat0, /*#*/1,
1048 OPC_EmitMergeInputChains1_0,
1049 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
1050 7, 3, 3, 4, 2,
1051 14,
1052 OPC_CheckPredicate7,
1053 OPC_CheckPatternPredicate0,
1054 OPC_CheckComplexPat0, /*#*/1,
1055 OPC_EmitMergeInputChains1_0,
1056 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
1057 7, 3, 3, 4, 2,
1058 15,
1059 OPC_CheckPredicate, 8,
1060 OPC_CheckPatternPredicate0,
1061 OPC_CheckComplexPat0, /*#*/1,
1062 OPC_EmitMergeInputChains1_0,
1063 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
1064 7, 3, 3, 4, 2,
1065 0,
1066 95, 8,
1067 OPC_CheckPredicate, 9,
1068 OPC_Scope, 33,
1069 OPC_CheckPredicate6,
1070 OPC_Scope, 14,
1071 OPC_CheckPredicate, 29,
1072 OPC_CheckComplexPat0, /*#*/1,
1073 OPC_EmitMergeInputChains1_0,
1074 OPC_MorphNodeTo1, TARGET_VAL(BPF::XXORD), 0|OPFL_Chain|OPFL_MemRefs,
1075 8, 3, 3, 4, 2,
1076 14,
1077 OPC_CheckPredicate, 30,
1078 OPC_CheckComplexPat0, /*#*/1,
1079 OPC_EmitMergeInputChains1_0,
1080 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
1081 8, 3, 3, 4, 2,
1082 0,
1083 13,
1084 OPC_CheckPredicate4,
1085 OPC_CheckComplexPat0, /*#*/1,
1086 OPC_EmitMergeInputChains1_0,
1087 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
1088 8, 3, 3, 4, 2,
1089 13,
1090 OPC_CheckPredicate5,
1091 OPC_CheckComplexPat0, /*#*/1,
1092 OPC_EmitMergeInputChains1_0,
1093 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
1094 8, 3, 3, 4, 2,
1095 13,
1096 OPC_CheckPredicate7,
1097 OPC_CheckComplexPat0, /*#*/1,
1098 OPC_EmitMergeInputChains1_0,
1099 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
1100 8, 3, 3, 4, 2,
1101 14,
1102 OPC_CheckPredicate, 8,
1103 OPC_CheckComplexPat0, /*#*/1,
1104 OPC_EmitMergeInputChains1_0,
1105 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
1106 8, 3, 3, 4, 2,
1107 0,
1108 0,
1109 39, TARGET_VAL(ISD::ATOMIC_SWAP),
1110 OPC_RecordMemRef,
1111 OPC_RecordNode,
1112 OPC_RecordChild1,
1113 OPC_CheckChild1TypeI64,
1114 OPC_RecordChild2,
1115 OPC_SwitchType , 14, 7,
1116 OPC_CheckPredicate1,
1117 OPC_CheckPatternPredicate0,
1118 OPC_CheckComplexPat0, /*#*/1,
1119 OPC_EmitMergeInputChains1_0,
1120 OPC_MorphNodeTo1, TARGET_VAL(BPF::XCHGW32), 0|OPFL_Chain|OPFL_MemRefs,
1121 7, 3, 3, 4, 2,
1122 14, 8,
1123 OPC_CheckPredicate, 9,
1124 OPC_CheckComplexPat0, /*#*/1,
1125 OPC_EmitMergeInputChains1_0,
1126 OPC_MorphNodeTo1, TARGET_VAL(BPF::XCHGD), 0|OPFL_Chain|OPFL_MemRefs,
1127 8, 3, 3, 4, 2,
1128 0,
1129 44, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
1130 OPC_RecordMemRef,
1131 OPC_RecordNode,
1132 OPC_RecordChild1,
1133 OPC_CheckChild1TypeI64,
1134 OPC_RecordChild2,
1135 OPC_RecordChild3,
1136 OPC_SwitchType , 16, 7,
1137 OPC_CheckPredicate1,
1138 OPC_CheckPatternPredicate0,
1139 OPC_CheckComplexPat0, /*#*/1,
1140 OPC_EmitMergeInputChains1_0,
1141 OPC_EmitCopyToReg2, BPF::W0,
1142 OPC_MorphNodeTo1, TARGET_VAL(BPF::CMPXCHGW32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
1143 7, 3, 4, 5, 3,
1144 16, 8,
1145 OPC_CheckPredicate, 9,
1146 OPC_CheckComplexPat0, /*#*/1,
1147 OPC_EmitMergeInputChains1_0,
1148 OPC_EmitCopyToReg2, BPF::R0,
1149 OPC_MorphNodeTo1, TARGET_VAL(BPF::CMPXCHGD), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
1150 8, 3, 4, 5, 3,
1151 0,
1152 97|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),
1153 OPC_RecordMemRef,
1154 OPC_RecordNode,
1155 OPC_RecordChild1,
1156 OPC_CheckChild1TypeI64,
1157 OPC_RecordChild2,
1158 OPC_SwitchType , 109, 7,
1159 OPC_CheckPredicate1,
1160 OPC_Scope, 20,
1161 OPC_CheckPredicate6,
1162 OPC_CheckPatternPredicate0,
1163 OPC_CheckComplexPat0, /*#*/1,
1164 OPC_EmitMergeInputChains1_0,
1165 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
1166 7, 1, 2,
1167 OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDW32), 0|OPFL_Chain|OPFL_MemRefs,
1168 7, 3, 3, 4, 5,
1169 20,
1170 OPC_CheckPredicate4,
1171 OPC_CheckPatternPredicate0,
1172 OPC_CheckComplexPat0, /*#*/1,
1173 OPC_EmitMergeInputChains1_0,
1174 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
1175 7, 1, 2,
1176 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
1177 7, 3, 3, 4, 5,
1178 20,
1179 OPC_CheckPredicate5,
1180 OPC_CheckPatternPredicate0,
1181 OPC_CheckComplexPat0, /*#*/1,
1182 OPC_EmitMergeInputChains1_0,
1183 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
1184 7, 1, 2,
1185 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
1186 7, 3, 3, 4, 5,
1187 20,
1188 OPC_CheckPredicate7,
1189 OPC_CheckPatternPredicate0,
1190 OPC_CheckComplexPat0, /*#*/1,
1191 OPC_EmitMergeInputChains1_0,
1192 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
1193 7, 1, 2,
1194 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
1195 7, 3, 3, 4, 5,
1196 21,
1197 OPC_CheckPredicate, 8,
1198 OPC_CheckPatternPredicate0,
1199 OPC_CheckComplexPat0, /*#*/1,
1200 OPC_EmitMergeInputChains1_0,
1201 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
1202 7, 1, 2,
1203 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
1204 7, 3, 3, 4, 5,
1205 0,
1206 105, 8,
1207 OPC_CheckPredicate, 9,
1208 OPC_Scope, 19,
1209 OPC_CheckPredicate6,
1210 OPC_CheckComplexPat0, /*#*/1,
1211 OPC_EmitMergeInputChains1_0,
1212 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
1213 8, 1, 2,
1214 OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDD), 0|OPFL_Chain|OPFL_MemRefs,
1215 8, 3, 3, 4, 5,
1216 19,
1217 OPC_CheckPredicate4,
1218 OPC_CheckComplexPat0, /*#*/1,
1219 OPC_EmitMergeInputChains1_0,
1220 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
1221 8, 1, 2,
1222 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
1223 8, 3, 3, 4, 5,
1224 19,
1225 OPC_CheckPredicate5,
1226 OPC_CheckComplexPat0, /*#*/1,
1227 OPC_EmitMergeInputChains1_0,
1228 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
1229 8, 1, 2,
1230 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
1231 8, 3, 3, 4, 5,
1232 19,
1233 OPC_CheckPredicate7,
1234 OPC_CheckComplexPat0, /*#*/1,
1235 OPC_EmitMergeInputChains1_0,
1236 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
1237 8, 1, 2,
1238 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
1239 8, 3, 3, 4, 5,
1240 20,
1241 OPC_CheckPredicate, 8,
1242 OPC_CheckComplexPat0, /*#*/1,
1243 OPC_EmitMergeInputChains1_0,
1244 OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
1245 8, 1, 2,
1246 OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
1247 8, 3, 3, 4, 5,
1248 0,
1249 0,
1250 127|128,6, TARGET_VAL(BPFISD::BR_CC),
1251 OPC_RecordNode,
1252 OPC_CaptureGlueInput,
1253 OPC_RecordChild1,
1254 OPC_Scope, 59|128,3,
1255 OPC_CheckChild1TypeI64,
1256 OPC_RecordChild2,
1257 OPC_Scope, 74|128,1,
1258 OPC_MoveChild2,
1259 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1260 OPC_CheckPredicate0,
1261 OPC_MoveSibling3,
1262 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1263 OPC_CheckTypeI64,
1264 OPC_Scope, 18,
1265 OPC_CheckPredicate, 17,
1266 OPC_MoveSibling4,
1267 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1268 OPC_RecordNode,
1269 OPC_MoveParent,
1270 OPC_EmitMergeInputChains1_0,
1271 OPC_EmitConvertToTarget2,
1272 OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1273 3, 1, 4, 3,
1274 18,
1275 OPC_CheckPredicate, 18,
1276 OPC_MoveSibling4,
1277 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1278 OPC_RecordNode,
1279 OPC_MoveParent,
1280 OPC_EmitMergeInputChains1_0,
1281 OPC_EmitConvertToTarget2,
1282 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1283 3, 1, 4, 3,
1284 18,
1285 OPC_CheckPredicate, 19,
1286 OPC_MoveSibling4,
1287 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1288 OPC_RecordNode,
1289 OPC_MoveParent,
1290 OPC_EmitMergeInputChains1_0,
1291 OPC_EmitConvertToTarget2,
1292 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1293 3, 1, 4, 3,
1294 18,
1295 OPC_CheckPredicate, 20,
1296 OPC_MoveSibling4,
1297 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1298 OPC_RecordNode,
1299 OPC_MoveParent,
1300 OPC_EmitMergeInputChains1_0,
1301 OPC_EmitConvertToTarget2,
1302 OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1303 3, 1, 4, 3,
1304 18,
1305 OPC_CheckPredicate, 21,
1306 OPC_MoveSibling4,
1307 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1308 OPC_RecordNode,
1309 OPC_MoveParent,
1310 OPC_EmitMergeInputChains1_0,
1311 OPC_EmitConvertToTarget2,
1312 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1313 3, 1, 4, 3,
1314 18,
1315 OPC_CheckPredicate, 22,
1316 OPC_MoveSibling4,
1317 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1318 OPC_RecordNode,
1319 OPC_MoveParent,
1320 OPC_EmitMergeInputChains1_0,
1321 OPC_EmitConvertToTarget2,
1322 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1323 3, 1, 4, 3,
1324 18,
1325 OPC_CheckPredicate, 23,
1326 OPC_MoveSibling4,
1327 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1328 OPC_RecordNode,
1329 OPC_MoveParent,
1330 OPC_EmitMergeInputChains1_0,
1331 OPC_EmitConvertToTarget2,
1332 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1333 3, 1, 4, 3,
1334 18,
1335 OPC_CheckPredicate, 24,
1336 OPC_MoveSibling4,
1337 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1338 OPC_RecordNode,
1339 OPC_MoveParent,
1340 OPC_EmitMergeInputChains1_0,
1341 OPC_EmitConvertToTarget2,
1342 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1343 3, 1, 4, 3,
1344 18,
1345 OPC_CheckPredicate, 25,
1346 OPC_MoveSibling4,
1347 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1348 OPC_RecordNode,
1349 OPC_MoveParent,
1350 OPC_EmitMergeInputChains1_0,
1351 OPC_EmitConvertToTarget2,
1352 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1353 3, 1, 4, 3,
1354 18,
1355 OPC_CheckPredicate, 26,
1356 OPC_MoveSibling4,
1357 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1358 OPC_RecordNode,
1359 OPC_MoveParent,
1360 OPC_EmitMergeInputChains1_0,
1361 OPC_EmitConvertToTarget2,
1362 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1363 3, 1, 4, 3,
1364 0,
1365 59|128,1,
1366 OPC_MoveChild3,
1367 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1368 OPC_CheckTypeI64,
1369 OPC_Scope, 17,
1370 OPC_CheckPredicate, 17,
1371 OPC_MoveSibling4,
1372 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1373 OPC_RecordNode,
1374 OPC_MoveParent,
1375 OPC_EmitMergeInputChains1_0,
1376 OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1377 3, 1, 2, 3,
1378 17,
1379 OPC_CheckPredicate, 18,
1380 OPC_MoveSibling4,
1381 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1382 OPC_RecordNode,
1383 OPC_MoveParent,
1384 OPC_EmitMergeInputChains1_0,
1385 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1386 3, 1, 2, 3,
1387 17,
1388 OPC_CheckPredicate, 19,
1389 OPC_MoveSibling4,
1390 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1391 OPC_RecordNode,
1392 OPC_MoveParent,
1393 OPC_EmitMergeInputChains1_0,
1394 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1395 3, 1, 2, 3,
1396 17,
1397 OPC_CheckPredicate, 20,
1398 OPC_MoveSibling4,
1399 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1400 OPC_RecordNode,
1401 OPC_MoveParent,
1402 OPC_EmitMergeInputChains1_0,
1403 OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1404 3, 1, 2, 3,
1405 17,
1406 OPC_CheckPredicate, 21,
1407 OPC_MoveSibling4,
1408 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1409 OPC_RecordNode,
1410 OPC_MoveParent,
1411 OPC_EmitMergeInputChains1_0,
1412 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1413 3, 1, 2, 3,
1414 17,
1415 OPC_CheckPredicate, 22,
1416 OPC_MoveSibling4,
1417 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1418 OPC_RecordNode,
1419 OPC_MoveParent,
1420 OPC_EmitMergeInputChains1_0,
1421 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1422 3, 1, 2, 3,
1423 17,
1424 OPC_CheckPredicate, 23,
1425 OPC_MoveSibling4,
1426 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1427 OPC_RecordNode,
1428 OPC_MoveParent,
1429 OPC_EmitMergeInputChains1_0,
1430 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1431 3, 1, 2, 3,
1432 17,
1433 OPC_CheckPredicate, 24,
1434 OPC_MoveSibling4,
1435 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1436 OPC_RecordNode,
1437 OPC_MoveParent,
1438 OPC_EmitMergeInputChains1_0,
1439 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1440 3, 1, 2, 3,
1441 17,
1442 OPC_CheckPredicate, 25,
1443 OPC_MoveSibling4,
1444 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1445 OPC_RecordNode,
1446 OPC_MoveParent,
1447 OPC_EmitMergeInputChains1_0,
1448 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1449 3, 1, 2, 3,
1450 17,
1451 OPC_CheckPredicate, 26,
1452 OPC_MoveSibling4,
1453 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1454 OPC_RecordNode,
1455 OPC_MoveParent,
1456 OPC_EmitMergeInputChains1_0,
1457 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1458 3, 1, 2, 3,
1459 0,
1460 25,
1461 OPC_MoveChild2,
1462 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1463 OPC_CheckPredicate0,
1464 OPC_MoveSibling3,
1465 OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
1466 OPC_MoveSibling4,
1467 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1468 OPC_RecordNode,
1469 OPC_MoveParent,
1470 OPC_EmitMergeInputChains1_0,
1471 OPC_EmitConvertToTarget2,
1472 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSET_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1473 3, 1, 4, 3,
1474 19,
1475 OPC_MoveChild3,
1476 OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
1477 OPC_MoveSibling4,
1478 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1479 OPC_RecordNode,
1480 OPC_MoveParent,
1481 OPC_EmitMergeInputChains1_0,
1482 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSET_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1483 3, 1, 2, 3,
1484 0,
1485 59|128,3,
1486 OPC_CheckChild1TypeI32,
1487 OPC_RecordChild2,
1488 OPC_Scope, 74|128,1,
1489 OPC_MoveChild2,
1490 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1491 OPC_CheckPredicate0,
1492 OPC_MoveSibling3,
1493 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1494 OPC_CheckTypeI32,
1495 OPC_Scope, 18,
1496 OPC_CheckPredicate, 17,
1497 OPC_MoveSibling4,
1498 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1499 OPC_RecordNode,
1500 OPC_MoveParent,
1501 OPC_EmitMergeInputChains1_0,
1502 OPC_EmitConvertToTarget2,
1503 OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1504 3, 1, 4, 3,
1505 18,
1506 OPC_CheckPredicate, 18,
1507 OPC_MoveSibling4,
1508 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1509 OPC_RecordNode,
1510 OPC_MoveParent,
1511 OPC_EmitMergeInputChains1_0,
1512 OPC_EmitConvertToTarget2,
1513 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1514 3, 1, 4, 3,
1515 18,
1516 OPC_CheckPredicate, 19,
1517 OPC_MoveSibling4,
1518 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1519 OPC_RecordNode,
1520 OPC_MoveParent,
1521 OPC_EmitMergeInputChains1_0,
1522 OPC_EmitConvertToTarget2,
1523 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1524 3, 1, 4, 3,
1525 18,
1526 OPC_CheckPredicate, 20,
1527 OPC_MoveSibling4,
1528 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1529 OPC_RecordNode,
1530 OPC_MoveParent,
1531 OPC_EmitMergeInputChains1_0,
1532 OPC_EmitConvertToTarget2,
1533 OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1534 3, 1, 4, 3,
1535 18,
1536 OPC_CheckPredicate, 21,
1537 OPC_MoveSibling4,
1538 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1539 OPC_RecordNode,
1540 OPC_MoveParent,
1541 OPC_EmitMergeInputChains1_0,
1542 OPC_EmitConvertToTarget2,
1543 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1544 3, 1, 4, 3,
1545 18,
1546 OPC_CheckPredicate, 22,
1547 OPC_MoveSibling4,
1548 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1549 OPC_RecordNode,
1550 OPC_MoveParent,
1551 OPC_EmitMergeInputChains1_0,
1552 OPC_EmitConvertToTarget2,
1553 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1554 3, 1, 4, 3,
1555 18,
1556 OPC_CheckPredicate, 23,
1557 OPC_MoveSibling4,
1558 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1559 OPC_RecordNode,
1560 OPC_MoveParent,
1561 OPC_EmitMergeInputChains1_0,
1562 OPC_EmitConvertToTarget2,
1563 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1564 3, 1, 4, 3,
1565 18,
1566 OPC_CheckPredicate, 24,
1567 OPC_MoveSibling4,
1568 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1569 OPC_RecordNode,
1570 OPC_MoveParent,
1571 OPC_EmitMergeInputChains1_0,
1572 OPC_EmitConvertToTarget2,
1573 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1574 3, 1, 4, 3,
1575 18,
1576 OPC_CheckPredicate, 25,
1577 OPC_MoveSibling4,
1578 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1579 OPC_RecordNode,
1580 OPC_MoveParent,
1581 OPC_EmitMergeInputChains1_0,
1582 OPC_EmitConvertToTarget2,
1583 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1584 3, 1, 4, 3,
1585 18,
1586 OPC_CheckPredicate, 26,
1587 OPC_MoveSibling4,
1588 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1589 OPC_RecordNode,
1590 OPC_MoveParent,
1591 OPC_EmitMergeInputChains1_0,
1592 OPC_EmitConvertToTarget2,
1593 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1594 3, 1, 4, 3,
1595 0,
1596 59|128,1,
1597 OPC_MoveChild3,
1598 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1599 OPC_CheckTypeI32,
1600 OPC_Scope, 17,
1601 OPC_CheckPredicate, 17,
1602 OPC_MoveSibling4,
1603 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1604 OPC_RecordNode,
1605 OPC_MoveParent,
1606 OPC_EmitMergeInputChains1_0,
1607 OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1608 3, 1, 2, 3,
1609 17,
1610 OPC_CheckPredicate, 18,
1611 OPC_MoveSibling4,
1612 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1613 OPC_RecordNode,
1614 OPC_MoveParent,
1615 OPC_EmitMergeInputChains1_0,
1616 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1617 3, 1, 2, 3,
1618 17,
1619 OPC_CheckPredicate, 19,
1620 OPC_MoveSibling4,
1621 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1622 OPC_RecordNode,
1623 OPC_MoveParent,
1624 OPC_EmitMergeInputChains1_0,
1625 OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1626 3, 1, 2, 3,
1627 17,
1628 OPC_CheckPredicate, 20,
1629 OPC_MoveSibling4,
1630 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1631 OPC_RecordNode,
1632 OPC_MoveParent,
1633 OPC_EmitMergeInputChains1_0,
1634 OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1635 3, 1, 2, 3,
1636 17,
1637 OPC_CheckPredicate, 21,
1638 OPC_MoveSibling4,
1639 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1640 OPC_RecordNode,
1641 OPC_MoveParent,
1642 OPC_EmitMergeInputChains1_0,
1643 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1644 3, 1, 2, 3,
1645 17,
1646 OPC_CheckPredicate, 22,
1647 OPC_MoveSibling4,
1648 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1649 OPC_RecordNode,
1650 OPC_MoveParent,
1651 OPC_EmitMergeInputChains1_0,
1652 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1653 3, 1, 2, 3,
1654 17,
1655 OPC_CheckPredicate, 23,
1656 OPC_MoveSibling4,
1657 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1658 OPC_RecordNode,
1659 OPC_MoveParent,
1660 OPC_EmitMergeInputChains1_0,
1661 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1662 3, 1, 2, 3,
1663 17,
1664 OPC_CheckPredicate, 24,
1665 OPC_MoveSibling4,
1666 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1667 OPC_RecordNode,
1668 OPC_MoveParent,
1669 OPC_EmitMergeInputChains1_0,
1670 OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1671 3, 1, 2, 3,
1672 17,
1673 OPC_CheckPredicate, 25,
1674 OPC_MoveSibling4,
1675 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1676 OPC_RecordNode,
1677 OPC_MoveParent,
1678 OPC_EmitMergeInputChains1_0,
1679 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1680 3, 1, 2, 3,
1681 17,
1682 OPC_CheckPredicate, 26,
1683 OPC_MoveSibling4,
1684 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1685 OPC_RecordNode,
1686 OPC_MoveParent,
1687 OPC_EmitMergeInputChains1_0,
1688 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1689 3, 1, 2, 3,
1690 0,
1691 25,
1692 OPC_MoveChild2,
1693 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1694 OPC_CheckPredicate0,
1695 OPC_MoveSibling3,
1696 OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
1697 OPC_MoveSibling4,
1698 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1699 OPC_RecordNode,
1700 OPC_MoveParent,
1701 OPC_EmitMergeInputChains1_0,
1702 OPC_EmitConvertToTarget2,
1703 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSET_ri_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1704 3, 1, 4, 3,
1705 19,
1706 OPC_MoveChild3,
1707 OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
1708 OPC_MoveSibling4,
1709 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1710 OPC_RecordNode,
1711 OPC_MoveParent,
1712 OPC_EmitMergeInputChains1_0,
1713 OPC_MorphNodeTo0, TARGET_VAL(BPF::JSET_rr_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1714 3, 1, 2, 3,
1715 0,
1716 0,
1717 8|128,1, TARGET_VAL(ISD::SRL),
1718 OPC_Scope, 75,
1719 OPC_MoveChild0,
1720 OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
1721 OPC_RecordChild0,
1722 OPC_MoveParent,
1723 OPC_CheckTypeI64,
1724 OPC_Scope, 32,
1725 OPC_CheckChild1Integer, 96,
1726 OPC_CheckChild1TypeI64,
1727 OPC_Scope, 8,
1728 OPC_CheckPatternPredicate, 8,
1729 OPC_MorphNodeTo1None, TARGET_VAL(BPF::BSWAP16),
1730 8, 1, 0,
1731 8,
1732 OPC_CheckPatternPredicate, 9,
1733 OPC_MorphNodeTo1None, TARGET_VAL(BPF::BE16),
1734 8, 1, 0,
1735 8,
1736 OPC_CheckPatternPredicate, 10,
1737 OPC_MorphNodeTo1None, TARGET_VAL(BPF::LE16),
1738 8, 1, 0,
1739 0,
1740 32,
1741 OPC_CheckChild1Integer, 64,
1742 OPC_CheckChild1TypeI64,
1743 OPC_Scope, 8,
1744 OPC_CheckPatternPredicate, 8,
1745 OPC_MorphNodeTo1None, TARGET_VAL(BPF::BSWAP32),
1746 8, 1, 0,
1747 8,
1748 OPC_CheckPatternPredicate, 9,
1749 OPC_MorphNodeTo1None, TARGET_VAL(BPF::BE32),
1750 8, 1, 0,
1751 8,
1752 OPC_CheckPatternPredicate, 10,
1753 OPC_MorphNodeTo1None, TARGET_VAL(BPF::LE32),
1754 8, 1, 0,
1755 0,
1756 0,
1757 57,
1758 OPC_RecordChild0,
1759 OPC_RecordChild1,
1760 OPC_Scope, 32,
1761 OPC_MoveChild1,
1762 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1763 OPC_SwitchType , 11, 8,
1764 OPC_CheckPredicate0,
1765 OPC_MoveParent,
1766 OPC_CheckTypeI64,
1767 OPC_EmitConvertToTarget1,
1768 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_ri),
1769 8, 2, 0, 2,
1770 11, 7,
1771 OPC_CheckPredicate0,
1772 OPC_MoveParent,
1773 OPC_CheckTypeI32,
1774 OPC_EmitConvertToTarget1,
1775 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_ri_32),
1776 7, 2, 0, 2,
1777 0,
1778 9,
1779 OPC_CheckChild1TypeI64,
1780 OPC_CheckTypeI64,
1781 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_rr),
1782 8, 2, 0, 1,
1783 9,
1784 OPC_CheckChild1TypeI32,
1785 OPC_CheckTypeI32,
1786 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_rr_32),
1787 7, 2, 0, 1,
1788 0,
1789 0,
1790 51|128,1, TARGET_VAL(BPFISD::SELECT_CC),
1791 OPC_RecordChild0,
1792 OPC_Scope, 87,
1793 OPC_CheckChild0TypeI64,
1794 OPC_RecordChild1,
1795 OPC_Scope, 44,
1796 OPC_MoveChild1,
1797 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1798 OPC_CheckPredicate0,
1799 OPC_MoveSibling2,
1800 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1801 OPC_RecordNode,
1802 OPC_CheckTypeI64,
1803 OPC_MoveParent,
1804 OPC_RecordChild3,
1805 OPC_RecordChild4,
1806 OPC_SwitchType , 12, 8,
1807 OPC_EmitConvertToTarget1,
1808 OPC_EmitConvertToTarget2,
1809 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri),
1810 8, 5, 0, 5, 6, 3, 4,
1811 12, 7,
1812 OPC_EmitConvertToTarget1,
1813 OPC_EmitConvertToTarget2,
1814 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri_64_32),
1815 7, 5, 0, 5, 6, 3, 4,
1816 0,
1817 37,
1818 OPC_RecordChild2,
1819 OPC_MoveChild2,
1820 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1821 OPC_CheckTypeI64,
1822 OPC_MoveParent,
1823 OPC_RecordChild3,
1824 OPC_RecordChild4,
1825 OPC_SwitchType , 11, 8,
1826 OPC_EmitConvertToTarget2,
1827 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select),
1828 8, 5, 0, 1, 5, 3, 4,
1829 11, 7,
1830 OPC_EmitConvertToTarget2,
1831 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_64_32),
1832 7, 5, 0, 1, 5, 3, 4,
1833 0,
1834 0,
1835 87,
1836 OPC_CheckChild0TypeI32,
1837 OPC_RecordChild1,
1838 OPC_Scope, 44,
1839 OPC_MoveChild1,
1840 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1841 OPC_CheckPredicate0,
1842 OPC_MoveSibling2,
1843 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1844 OPC_RecordNode,
1845 OPC_CheckTypeI32,
1846 OPC_MoveParent,
1847 OPC_RecordChild3,
1848 OPC_RecordChild4,
1849 OPC_SwitchType , 12, 7,
1850 OPC_EmitConvertToTarget1,
1851 OPC_EmitConvertToTarget2,
1852 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri_32),
1853 7, 5, 0, 5, 6, 3, 4,
1854 12, 8,
1855 OPC_EmitConvertToTarget1,
1856 OPC_EmitConvertToTarget2,
1857 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri_32_64),
1858 8, 5, 0, 5, 6, 3, 4,
1859 0,
1860 37,
1861 OPC_RecordChild2,
1862 OPC_MoveChild2,
1863 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1864 OPC_CheckTypeI32,
1865 OPC_MoveParent,
1866 OPC_RecordChild3,
1867 OPC_RecordChild4,
1868 OPC_SwitchType , 11, 7,
1869 OPC_EmitConvertToTarget2,
1870 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_32),
1871 7, 5, 0, 1, 5, 3, 4,
1872 11, 8,
1873 OPC_EmitConvertToTarget2,
1874 OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_32_64),
1875 8, 5, 0, 1, 5, 3, 4,
1876 0,
1877 0,
1878 0,
1879 68, TARGET_VAL(ISD::ADD),
1880 OPC_Scope, 11,
1881 OPC_RecordNode,
1882 OPC_CheckTypeI64,
1883 OPC_CheckComplexPat1, /*#*/0,
1884 OPC_MorphNodeTo1None, TARGET_VAL(BPF::FI_ri),
1885 8, 2, 1, 2,
1886 53,
1887 OPC_RecordChild0,
1888 OPC_RecordChild1,
1889 OPC_Scope, 30,
1890 OPC_MoveChild1,
1891 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1892 OPC_Scope, 11,
1893 OPC_CheckPredicate0,
1894 OPC_MoveParent,
1895 OPC_CheckTypeI64,
1896 OPC_EmitConvertToTarget1,
1897 OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_ri),
1898 8, 2, 0, 2,
1899 11,
1900 OPC_CheckPredicate0,
1901 OPC_MoveParent,
1902 OPC_CheckTypeI32,
1903 OPC_EmitConvertToTarget1,
1904 OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_ri_32),
1905 7, 2, 0, 2,
1906 0,
1907 8,
1908 OPC_CheckTypeI64,
1909 OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_rr),
1910 8, 2, 0, 1,
1911 8,
1912 OPC_CheckTypeI32,
1913 OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_rr_32),
1914 7, 2, 0, 1,
1915 0,
1916 0,
1917 68, TARGET_VAL(ISD::OR),
1918 OPC_Scope, 11,
1919 OPC_RecordNode,
1920 OPC_CheckTypeI64,
1921 OPC_CheckComplexPat1, /*#*/0,
1922 OPC_MorphNodeTo1None, TARGET_VAL(BPF::FI_ri),
1923 8, 2, 1, 2,
1924 53,
1925 OPC_RecordChild0,
1926 OPC_RecordChild1,
1927 OPC_Scope, 30,
1928 OPC_MoveChild1,
1929 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1930 OPC_Scope, 11,
1931 OPC_CheckPredicate0,
1932 OPC_MoveParent,
1933 OPC_CheckTypeI64,
1934 OPC_EmitConvertToTarget1,
1935 OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_ri),
1936 8, 2, 0, 2,
1937 11,
1938 OPC_CheckPredicate0,
1939 OPC_MoveParent,
1940 OPC_CheckTypeI32,
1941 OPC_EmitConvertToTarget1,
1942 OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_ri_32),
1943 7, 2, 0, 2,
1944 0,
1945 8,
1946 OPC_CheckTypeI64,
1947 OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_rr),
1948 8, 2, 0, 1,
1949 8,
1950 OPC_CheckTypeI32,
1951 OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_rr_32),
1952 7, 2, 0, 1,
1953 0,
1954 0,
1955 21, TARGET_VAL(ISD::CALLSEQ_START),
1956 OPC_RecordNode,
1957 OPC_RecordChild1,
1958 OPC_MoveChild1,
1959 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1960 OPC_MoveSibling2,
1961 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1962 OPC_RecordNode,
1963 OPC_MoveParent,
1964 OPC_EmitMergeInputChains1_0,
1965 OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
1966 8, 2, 1, 2,
1967 22, TARGET_VAL(ISD::CALLSEQ_END),
1968 OPC_RecordNode,
1969 OPC_CaptureGlueInput,
1970 OPC_RecordChild1,
1971 OPC_MoveChild1,
1972 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1973 OPC_MoveSibling2,
1974 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1975 OPC_RecordNode,
1976 OPC_MoveParent,
1977 OPC_EmitMergeInputChains1_0,
1978 OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1979 8, 2, 1, 2,
1980 27, TARGET_VAL(BPFISD::MEMCPY),
1981 OPC_RecordNode,
1982 OPC_CaptureGlueInput,
1983 OPC_RecordChild1,
1984 OPC_RecordChild2,
1985 OPC_RecordChild3,
1986 OPC_MoveChild3,
1987 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1988 OPC_MoveSibling4,
1989 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1990 OPC_RecordNode,
1991 OPC_MoveParent,
1992 OPC_EmitMergeInputChains1_0,
1993 OPC_EmitConvertToTarget3,
1994 OPC_EmitConvertToTarget4,
1995 OPC_MorphNodeTo0, TARGET_VAL(BPF::MEMCPY), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1996 4, 1, 2, 5, 6,
1997 78, TARGET_VAL(ISD::SUB),
1998 OPC_Scope, 21,
1999 OPC_CheckChild0Integer, 0,
2000 OPC_RecordChild1,
2001 OPC_SwitchType , 6, 8,
2002 OPC_MorphNodeTo1None, TARGET_VAL(BPF::NEG_64),
2003 8, 1, 0,
2004 6, 7,
2005 OPC_MorphNodeTo1None, TARGET_VAL(BPF::NEG_32),
2006 7, 1, 0,
2007 0,
2008 53,
2009 OPC_RecordChild0,
2010 OPC_RecordChild1,
2011 OPC_Scope, 30,
2012 OPC_MoveChild1,
2013 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2014 OPC_Scope, 11,
2015 OPC_CheckPredicate0,
2016 OPC_MoveParent,
2017 OPC_CheckTypeI64,
2018 OPC_EmitConvertToTarget1,
2019 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_ri),
2020 8, 2, 0, 2,
2021 11,
2022 OPC_CheckPredicate0,
2023 OPC_MoveParent,
2024 OPC_CheckTypeI32,
2025 OPC_EmitConvertToTarget1,
2026 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_ri_32),
2027 7, 2, 0, 2,
2028 0,
2029 8,
2030 OPC_CheckTypeI64,
2031 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_rr),
2032 8, 2, 0, 1,
2033 8,
2034 OPC_CheckTypeI32,
2035 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_rr_32),
2036 7, 2, 0, 1,
2037 0,
2038 0,
2039 83, TARGET_VAL(ISD::AND),
2040 OPC_Scope, 26,
2041 OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15,
2042 OPC_RecordChild0,
2043 OPC_CheckTypeI64,
2044 OPC_EmitInteger64, 64,
2045 OPC_EmitNode1None, TARGET_VAL(BPF::SLL_ri),
2046 8, 2, 0, 1,
2047 OPC_EmitInteger64, 64,
2048 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_ri),
2049 8, 2, 2, 3,
2050 53,
2051 OPC_RecordChild0,
2052 OPC_RecordChild1,
2053 OPC_Scope, 30,
2054 OPC_MoveChild1,
2055 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2056 OPC_Scope, 11,
2057 OPC_CheckPredicate0,
2058 OPC_MoveParent,
2059 OPC_CheckTypeI64,
2060 OPC_EmitConvertToTarget1,
2061 OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_ri),
2062 8, 2, 0, 2,
2063 11,
2064 OPC_CheckPredicate0,
2065 OPC_MoveParent,
2066 OPC_CheckTypeI32,
2067 OPC_EmitConvertToTarget1,
2068 OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_ri_32),
2069 7, 2, 0, 2,
2070 0,
2071 8,
2072 OPC_CheckTypeI64,
2073 OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_rr),
2074 8, 2, 0, 1,
2075 8,
2076 OPC_CheckTypeI32,
2077 OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_rr_32),
2078 7, 2, 0, 1,
2079 0,
2080 0,
2081 57, TARGET_VAL(ISD::SHL),
2082 OPC_RecordChild0,
2083 OPC_RecordChild1,
2084 OPC_Scope, 32,
2085 OPC_MoveChild1,
2086 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2087 OPC_SwitchType , 11, 8,
2088 OPC_CheckPredicate0,
2089 OPC_MoveParent,
2090 OPC_CheckTypeI64,
2091 OPC_EmitConvertToTarget1,
2092 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_ri),
2093 8, 2, 0, 2,
2094 11, 7,
2095 OPC_CheckPredicate0,
2096 OPC_MoveParent,
2097 OPC_CheckTypeI32,
2098 OPC_EmitConvertToTarget1,
2099 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_ri_32),
2100 7, 2, 0, 2,
2101 0,
2102 9,
2103 OPC_CheckChild1TypeI64,
2104 OPC_CheckTypeI64,
2105 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_rr),
2106 8, 2, 0, 1,
2107 9,
2108 OPC_CheckChild1TypeI32,
2109 OPC_CheckTypeI32,
2110 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_rr_32),
2111 7, 2, 0, 1,
2112 0,
2113 53, TARGET_VAL(ISD::XOR),
2114 OPC_RecordChild0,
2115 OPC_RecordChild1,
2116 OPC_Scope, 30,
2117 OPC_MoveChild1,
2118 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2119 OPC_Scope, 11,
2120 OPC_CheckPredicate0,
2121 OPC_MoveParent,
2122 OPC_CheckTypeI64,
2123 OPC_EmitConvertToTarget1,
2124 OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_ri),
2125 8, 2, 0, 2,
2126 11,
2127 OPC_CheckPredicate0,
2128 OPC_MoveParent,
2129 OPC_CheckTypeI32,
2130 OPC_EmitConvertToTarget1,
2131 OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_ri_32),
2132 7, 2, 0, 2,
2133 0,
2134 8,
2135 OPC_CheckTypeI64,
2136 OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_rr),
2137 8, 2, 0, 1,
2138 8,
2139 OPC_CheckTypeI32,
2140 OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_rr_32),
2141 7, 2, 0, 1,
2142 0,
2143 57, TARGET_VAL(ISD::SRA),
2144 OPC_RecordChild0,
2145 OPC_RecordChild1,
2146 OPC_Scope, 32,
2147 OPC_MoveChild1,
2148 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2149 OPC_SwitchType , 11, 8,
2150 OPC_CheckPredicate0,
2151 OPC_MoveParent,
2152 OPC_CheckTypeI64,
2153 OPC_EmitConvertToTarget1,
2154 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_ri),
2155 8, 2, 0, 2,
2156 11, 7,
2157 OPC_CheckPredicate0,
2158 OPC_MoveParent,
2159 OPC_CheckTypeI32,
2160 OPC_EmitConvertToTarget1,
2161 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_ri_32),
2162 7, 2, 0, 2,
2163 0,
2164 9,
2165 OPC_CheckChild1TypeI64,
2166 OPC_CheckTypeI64,
2167 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_rr),
2168 8, 2, 0, 1,
2169 9,
2170 OPC_CheckChild1TypeI32,
2171 OPC_CheckTypeI32,
2172 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_rr_32),
2173 7, 2, 0, 1,
2174 0,
2175 53, TARGET_VAL(ISD::MUL),
2176 OPC_RecordChild0,
2177 OPC_RecordChild1,
2178 OPC_Scope, 30,
2179 OPC_MoveChild1,
2180 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2181 OPC_Scope, 11,
2182 OPC_CheckPredicate0,
2183 OPC_MoveParent,
2184 OPC_CheckTypeI64,
2185 OPC_EmitConvertToTarget1,
2186 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_ri),
2187 8, 2, 0, 2,
2188 11,
2189 OPC_CheckPredicate0,
2190 OPC_MoveParent,
2191 OPC_CheckTypeI32,
2192 OPC_EmitConvertToTarget1,
2193 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_ri_32),
2194 7, 2, 0, 2,
2195 0,
2196 8,
2197 OPC_CheckTypeI64,
2198 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_rr),
2199 8, 2, 0, 1,
2200 8,
2201 OPC_CheckTypeI32,
2202 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_rr_32),
2203 7, 2, 0, 1,
2204 0,
2205 53, TARGET_VAL(ISD::UDIV),
2206 OPC_RecordChild0,
2207 OPC_RecordChild1,
2208 OPC_Scope, 30,
2209 OPC_MoveChild1,
2210 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2211 OPC_Scope, 11,
2212 OPC_CheckPredicate0,
2213 OPC_MoveParent,
2214 OPC_CheckTypeI64,
2215 OPC_EmitConvertToTarget1,
2216 OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_ri),
2217 8, 2, 0, 2,
2218 11,
2219 OPC_CheckPredicate0,
2220 OPC_MoveParent,
2221 OPC_CheckTypeI32,
2222 OPC_EmitConvertToTarget1,
2223 OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_ri_32),
2224 7, 2, 0, 2,
2225 0,
2226 8,
2227 OPC_CheckTypeI64,
2228 OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_rr),
2229 8, 2, 0, 1,
2230 8,
2231 OPC_CheckTypeI32,
2232 OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_rr_32),
2233 7, 2, 0, 1,
2234 0,
2235 53, TARGET_VAL(ISD::UREM),
2236 OPC_RecordChild0,
2237 OPC_RecordChild1,
2238 OPC_Scope, 30,
2239 OPC_MoveChild1,
2240 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2241 OPC_Scope, 11,
2242 OPC_CheckPredicate0,
2243 OPC_MoveParent,
2244 OPC_CheckTypeI64,
2245 OPC_EmitConvertToTarget1,
2246 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_ri),
2247 8, 2, 0, 2,
2248 11,
2249 OPC_CheckPredicate0,
2250 OPC_MoveParent,
2251 OPC_CheckTypeI32,
2252 OPC_EmitConvertToTarget1,
2253 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_ri_32),
2254 7, 2, 0, 2,
2255 0,
2256 8,
2257 OPC_CheckTypeI64,
2258 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_rr),
2259 8, 2, 0, 1,
2260 8,
2261 OPC_CheckTypeI32,
2262 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_rr_32),
2263 7, 2, 0, 1,
2264 0,
2265 57, TARGET_VAL(ISD::SDIV),
2266 OPC_RecordChild0,
2267 OPC_RecordChild1,
2268 OPC_Scope, 32,
2269 OPC_MoveChild1,
2270 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2271 OPC_Scope, 12,
2272 OPC_CheckPredicate0,
2273 OPC_MoveParent,
2274 OPC_CheckTypeI64,
2275 OPC_CheckPatternPredicate3,
2276 OPC_EmitConvertToTarget1,
2277 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_ri),
2278 8, 2, 0, 2,
2279 12,
2280 OPC_CheckPredicate0,
2281 OPC_MoveParent,
2282 OPC_CheckTypeI32,
2283 OPC_CheckPatternPredicate3,
2284 OPC_EmitConvertToTarget1,
2285 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_ri_32),
2286 7, 2, 0, 2,
2287 0,
2288 9,
2289 OPC_CheckTypeI64,
2290 OPC_CheckPatternPredicate3,
2291 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_rr),
2292 8, 2, 0, 1,
2293 9,
2294 OPC_CheckTypeI32,
2295 OPC_CheckPatternPredicate3,
2296 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_rr_32),
2297 7, 2, 0, 1,
2298 0,
2299 57, TARGET_VAL(ISD::SREM),
2300 OPC_RecordChild0,
2301 OPC_RecordChild1,
2302 OPC_Scope, 32,
2303 OPC_MoveChild1,
2304 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2305 OPC_Scope, 12,
2306 OPC_CheckPredicate0,
2307 OPC_MoveParent,
2308 OPC_CheckTypeI64,
2309 OPC_CheckPatternPredicate3,
2310 OPC_EmitConvertToTarget1,
2311 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_ri),
2312 8, 2, 0, 2,
2313 12,
2314 OPC_CheckPredicate0,
2315 OPC_MoveParent,
2316 OPC_CheckTypeI32,
2317 OPC_CheckPatternPredicate3,
2318 OPC_EmitConvertToTarget1,
2319 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_ri_32),
2320 7, 2, 0, 2,
2321 0,
2322 9,
2323 OPC_CheckTypeI64,
2324 OPC_CheckPatternPredicate3,
2325 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_rr),
2326 8, 2, 0, 1,
2327 9,
2328 OPC_CheckTypeI32,
2329 OPC_CheckPatternPredicate3,
2330 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_rr_32),
2331 7, 2, 0, 1,
2332 0,
2333 26, TARGET_VAL(BPFISD::Wrapper),
2334 OPC_RecordChild0,
2335 OPC_MoveChild0,
2336 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
2337 OPC_MoveParent,
2338 OPC_CheckTypeI64,
2339 OPC_MorphNodeTo1None, TARGET_VAL(BPF::LD_imm64),
2340 8, 1, 0,
2341 8, TARGET_VAL(ISD::TargetConstantPool),
2342 OPC_MoveParent,
2343 OPC_CheckTypeI64,
2344 OPC_MorphNodeTo1None, TARGET_VAL(BPF::LD_imm64),
2345 8, 1, 0,
2346 0,
2347 52, TARGET_VAL(BPFISD::CALL),
2348 OPC_RecordNode,
2349 OPC_CaptureGlueInput,
2350 OPC_RecordChild1,
2351 OPC_Scope, 37,
2352 OPC_MoveChild1,
2353 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
2354 OPC_MoveParent,
2355 OPC_EmitMergeInputChains1_0,
2356 OPC_MorphNodeTo0, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
2357 1, 1,
2358 8, TARGET_VAL(ISD::TargetExternalSymbol),
2359 OPC_MoveParent,
2360 OPC_EmitMergeInputChains1_0,
2361 OPC_MorphNodeTo0, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
2362 1, 1,
2363 9, TARGET_VAL(ISD::Constant),
2364 OPC_MoveParent,
2365 OPC_EmitMergeInputChains1_0,
2366 OPC_EmitConvertToTarget1,
2367 OPC_MorphNodeTo0, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
2368 1, 2,
2369 0,
2370 8,
2371 OPC_CheckChild1TypeI64,
2372 OPC_EmitMergeInputChains1_0,
2373 OPC_MorphNodeTo0, TARGET_VAL(BPF::JALX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
2374 1, 1,
2375 0,
2376 34, TARGET_VAL(ISD::Constant),
2377 OPC_RecordNode,
2378 OPC_SwitchType , 19, 8,
2379 OPC_Scope, 8,
2380 OPC_CheckPredicate0,
2381 OPC_EmitConvertToTarget0,
2382 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOV_ri),
2383 8, 1, 1,
2384 7,
2385 OPC_EmitConvertToTarget0,
2386 OPC_MorphNodeTo1None, TARGET_VAL(BPF::LD_imm64),
2387 8, 1, 1,
2388 0,
2389 8, 7,
2390 OPC_CheckPredicate0,
2391 OPC_EmitConvertToTarget0,
2392 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOV_ri_32),
2393 7, 1, 1,
2394 0,
2395 63, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
2396 OPC_RecordChild0,
2397 OPC_MoveChild1,
2398 OPC_Scope, 23,
2399 OPC_CheckValueType, 5,
2400 OPC_MoveParent,
2401 OPC_SwitchType , 7, 8,
2402 OPC_CheckPatternPredicate4,
2403 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_8),
2404 8, 1, 0,
2405 7, 7,
2406 OPC_CheckPatternPredicate4,
2407 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32_8),
2408 7, 1, 0,
2409 0,
2410 23,
2411 OPC_CheckValueType, 6,
2412 OPC_MoveParent,
2413 OPC_SwitchType , 7, 8,
2414 OPC_CheckPatternPredicate4,
2415 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_16),
2416 8, 1, 0,
2417 7, 7,
2418 OPC_CheckPatternPredicate4,
2419 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32_16),
2420 7, 1, 0,
2421 0,
2422 10,
2423 OPC_CheckValueType, 7,
2424 OPC_MoveParent,
2425 OPC_CheckPatternPredicate4,
2426 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32),
2427 8, 1, 0,
2428 0,
2429 18, TARGET_VAL(ISD::ADDRSPACECAST),
2430 OPC_RecordNode,
2431 OPC_RecordChild0,
2432 OPC_CheckChild0TypeI64,
2433 OPC_CheckTypeI64,
2434 OPC_EmitNodeXForm, 1, 0,
2435 OPC_EmitNodeXForm, 2, 0,
2436 OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADDR_SPACE_CAST),
2437 8, 3, 1, 2, 3,
2438 13, TARGET_VAL(ISD::BR),
2439 OPC_RecordNode,
2440 OPC_RecordChild1,
2441 OPC_MoveChild1,
2442 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2443 OPC_MoveParent,
2444 OPC_EmitMergeInputChains1_0,
2445 OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JMP),
2446 1, 1,
2447 8, TARGET_VAL(BPFISD::RET_GLUE),
2448 OPC_RecordNode,
2449 OPC_CaptureGlueInput,
2450 OPC_EmitMergeInputChains1_0,
2451 OPC_MorphNodeTo0, TARGET_VAL(BPF::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
2452 0,
2453 31, TARGET_VAL(ISD::BSWAP),
2454 OPC_RecordChild0,
2455 OPC_CheckTypeI64,
2456 OPC_Scope, 8,
2457 OPC_CheckPatternPredicate, 8,
2458 OPC_MorphNodeTo1None, TARGET_VAL(BPF::BSWAP64),
2459 8, 1, 0,
2460 8,
2461 OPC_CheckPatternPredicate, 9,
2462 OPC_MorphNodeTo1None, TARGET_VAL(BPF::BE64),
2463 8, 1, 0,
2464 8,
2465 OPC_CheckPatternPredicate, 10,
2466 OPC_MorphNodeTo1None, TARGET_VAL(BPF::LE64),
2467 8, 1, 0,
2468 0,
2469 7, TARGET_VAL(ISD::ZERO_EXTEND),
2470 OPC_RecordChild0,
2471 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOV_32_64),
2472 8, 1, 0,
2473 10, TARGET_VAL(ISD::TRUNCATE),
2474 OPC_RecordChild0,
2475 OPC_EmitStringInteger32, BPF::sub_32,
2476 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
2477 7, 2, 0, 1,
2478 44, TARGET_VAL(ISD::SIGN_EXTEND),
2479 OPC_RecordChild0,
2480 OPC_Scope, 13,
2481 OPC_CheckPatternPredicate4,
2482 OPC_EmitNode1None, TARGET_VAL(BPF::MOV_32_64),
2483 8, 1, 0,
2484 OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32),
2485 8, 1, 1,
2486 26,
2487 OPC_CheckPatternPredicate, 11,
2488 OPC_EmitNode1None, TARGET_VAL(BPF::MOV_32_64),
2489 8, 1, 0,
2490 OPC_EmitInteger64, 64,
2491 OPC_EmitNode1None, TARGET_VAL(BPF::SLL_ri),
2492 8, 2, 1, 2,
2493 OPC_EmitInteger64, 64,
2494 OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_ri),
2495 8, 2, 3, 4,
2496 0,
2497 16, TARGET_VAL(ISD::ANY_EXTEND),
2498 OPC_RecordChild0,
2499 OPC_EmitNode1None, TARGET_VAL(TargetOpcode::IMPLICIT_DEF),
2500 8, 0,
2501 OPC_EmitStringInteger32, BPF::sub_32,
2502 OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
2503 8, 3, 1, 0, 2,
2504 0,
2505 0
2506 }; // Total Array size is 4881 bytes
2507
2508 #undef COVERAGE_IDX_VAL
2509 #undef TARGET_VAL
2510 SelectCodeCommon(NodeToMatch: N, MatcherTable, TableSize: sizeof(MatcherTable));
2511}
2512#endif // GET_DAGISEL_BODY
2513
2514#ifdef GET_DAGISEL_DECL
2515bool CheckPatternPredicate(unsigned PredNo) const override;
2516#endif
2517#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2518bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
2519#if DAGISEL_INLINE
2520 override
2521#endif
2522{
2523 switch (PredNo) {
2524 default: llvm_unreachable("Invalid predicate in table?");
2525 case 0: return (Subtarget->getHasAlu32());
2526 case 1: return (Subtarget->hasLoadAcqStoreRel());
2527 case 2: return (!Subtarget->getHasAlu32());
2528 case 3: return (Subtarget->hasSdivSmod());
2529 case 4: return (Subtarget->hasMovsx());
2530 case 5: return (Subtarget->hasLdsx());
2531 case 6: return (Subtarget->hasStoreImm());
2532 case 7: return (Subtarget->getHasAlu32()) && (Subtarget->hasStoreImm());
2533 case 8: return (Subtarget->hasBswap());
2534 case 9: return (Subtarget->isLittleEndian());
2535 case 10: return (!Subtarget->isLittleEndian());
2536 case 11: return (!Subtarget->hasMovsx());
2537 }
2538}
2539#endif // GET_DAGISEL_BODY
2540
2541#ifdef GET_DAGISEL_DECL
2542bool CheckNodePredicate(SDValue Op, unsigned PredNo) const override;
2543#endif
2544#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2545bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDValue Op, unsigned PredNo) const
2546#if DAGISEL_INLINE
2547 override
2548#endif
2549{
2550 switch (PredNo) {
2551 default: llvm_unreachable("Invalid predicate in table?");
2552 case 0: {
2553 // Predicate_i32immSExt32
2554 // Predicate_i64immSExt32
2555 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2556 (void)N;
2557return isInt<32>(x: N->getSExtValue());
2558 }
2559 case 1: {
2560 // Predicate_atomic_cmp_swap_i32
2561 // Predicate_atomic_load_add_i32
2562 // Predicate_atomic_load_and_i32
2563 // Predicate_atomic_load_nonext_32
2564 // Predicate_atomic_load_or_i32
2565 // Predicate_atomic_load_sub_i32
2566 // Predicate_atomic_load_xor_i32
2567 // Predicate_atomic_store_32
2568 // Predicate_atomic_swap_i32
2569 // Predicate_extloadi32
2570 // Predicate_sextloadi32
2571 // Predicate_truncstorei32
2572 // Predicate_zextloadi32
2573 SDNode *N = Op.getNode();
2574 (void)N;
2575if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i32) return false;
2576return true;
2577
2578 }
2579 case 2: {
2580 // Predicate_atomic_load_aext_16
2581 // Predicate_atomic_load_zext_16
2582 // Predicate_atomic_store_16
2583 // Predicate_extloadi16
2584 // Predicate_sextloadi16
2585 // Predicate_truncstorei16
2586 // Predicate_zextloadi16
2587 SDNode *N = Op.getNode();
2588 (void)N;
2589if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
2590return true;
2591
2592 }
2593 case 3: {
2594 // Predicate_atomic_load_aext_8
2595 // Predicate_atomic_load_zext_8
2596 // Predicate_atomic_store_8
2597 // Predicate_extloadi8
2598 // Predicate_sextloadi8
2599 // Predicate_truncstorei8
2600 // Predicate_zextloadi8
2601 SDNode *N = Op.getNode();
2602 (void)N;
2603if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
2604return true;
2605
2606 }
2607 case 4: {
2608 // Predicate_anonymous_8682
2609 // Predicate_anonymous_8771
2610 // Predicate_anonymous_8772
2611 // Predicate_anonymous_8773
2612 // Predicate_atomic_load_add_i32_acquire
2613 // Predicate_atomic_load_add_i64_acquire
2614 // Predicate_atomic_load_and_i32_acquire
2615 // Predicate_atomic_load_and_i64_acquire
2616 // Predicate_atomic_load_or_i32_acquire
2617 // Predicate_atomic_load_or_i64_acquire
2618 // Predicate_atomic_load_sub_i32_acquire
2619 // Predicate_atomic_load_sub_i64_acquire
2620 // Predicate_atomic_load_xor_i32_acquire
2621 // Predicate_atomic_load_xor_i64_acquire
2622 SDNode *N = Op.getNode();
2623 (void)N;
2624if (cast<AtomicSDNode>(Val: N)->getMergedOrdering() != AtomicOrdering::Acquire) return false;
2625return true;
2626
2627 }
2628 case 5: {
2629 // Predicate_anonymous_8678
2630 // Predicate_anonymous_8783
2631 // Predicate_anonymous_8784
2632 // Predicate_anonymous_8785
2633 // Predicate_atomic_load_add_i32_release
2634 // Predicate_atomic_load_add_i64_release
2635 // Predicate_atomic_load_and_i32_release
2636 // Predicate_atomic_load_and_i64_release
2637 // Predicate_atomic_load_or_i32_release
2638 // Predicate_atomic_load_or_i64_release
2639 // Predicate_atomic_load_sub_i32_release
2640 // Predicate_atomic_load_sub_i64_release
2641 // Predicate_atomic_load_xor_i32_release
2642 // Predicate_atomic_load_xor_i64_release
2643 SDNode *N = Op.getNode();
2644 (void)N;
2645if (cast<AtomicSDNode>(Val: N)->getMergedOrdering() != AtomicOrdering::Release) return false;
2646return true;
2647
2648 }
2649 case 6: {
2650 // Predicate_atomic_load_add_i32_monotonic
2651 // Predicate_atomic_load_add_i64_monotonic
2652 // Predicate_atomic_load_and_i32_monotonic
2653 // Predicate_atomic_load_and_i64_monotonic
2654 // Predicate_atomic_load_or_i32_monotonic
2655 // Predicate_atomic_load_or_i64_monotonic
2656 // Predicate_atomic_load_sub_i32_monotonic
2657 // Predicate_atomic_load_sub_i64_monotonic
2658 // Predicate_atomic_load_xor_i32_monotonic
2659 // Predicate_atomic_load_xor_i64_monotonic
2660 SDNode *N = Op.getNode();
2661 (void)N;
2662if (cast<AtomicSDNode>(Val: N)->getMergedOrdering() != AtomicOrdering::Monotonic) return false;
2663return true;
2664
2665 }
2666 case 7: {
2667 // Predicate_atomic_load_add_i32_acq_rel
2668 // Predicate_atomic_load_add_i64_acq_rel
2669 // Predicate_atomic_load_and_i32_acq_rel
2670 // Predicate_atomic_load_and_i64_acq_rel
2671 // Predicate_atomic_load_or_i32_acq_rel
2672 // Predicate_atomic_load_or_i64_acq_rel
2673 // Predicate_atomic_load_sub_i32_acq_rel
2674 // Predicate_atomic_load_sub_i64_acq_rel
2675 // Predicate_atomic_load_xor_i32_acq_rel
2676 // Predicate_atomic_load_xor_i64_acq_rel
2677 SDNode *N = Op.getNode();
2678 (void)N;
2679if (cast<AtomicSDNode>(Val: N)->getMergedOrdering() != AtomicOrdering::AcquireRelease) return false;
2680return true;
2681
2682 }
2683 case 8: {
2684 // Predicate_atomic_load_add_i32_seq_cst
2685 // Predicate_atomic_load_add_i64_seq_cst
2686 // Predicate_atomic_load_and_i32_seq_cst
2687 // Predicate_atomic_load_and_i64_seq_cst
2688 // Predicate_atomic_load_or_i32_seq_cst
2689 // Predicate_atomic_load_or_i64_seq_cst
2690 // Predicate_atomic_load_sub_i32_seq_cst
2691 // Predicate_atomic_load_sub_i64_seq_cst
2692 // Predicate_atomic_load_xor_i32_seq_cst
2693 // Predicate_atomic_load_xor_i64_seq_cst
2694 SDNode *N = Op.getNode();
2695 (void)N;
2696if (cast<AtomicSDNode>(Val: N)->getMergedOrdering() != AtomicOrdering::SequentiallyConsistent) return false;
2697return true;
2698
2699 }
2700 case 9: {
2701 // Predicate_atomic_cmp_swap_i64
2702 // Predicate_atomic_load_add_i64
2703 // Predicate_atomic_load_and_i64
2704 // Predicate_atomic_load_nonext_64
2705 // Predicate_atomic_load_or_i64
2706 // Predicate_atomic_load_sub_i64
2707 // Predicate_atomic_load_xor_i64
2708 // Predicate_atomic_store_64
2709 // Predicate_atomic_swap_i64
2710 SDNode *N = Op.getNode();
2711 (void)N;
2712if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i64) return false;
2713return true;
2714
2715 }
2716 case 10: {
2717 // Predicate_anonymous_8681
2718 // Predicate_anonymous_8768
2719 // Predicate_anonymous_8769
2720 // Predicate_anonymous_8770
2721 SDNode *N = Op.getNode();
2722 (void)N;
2723if (isAcquireOrStronger(AO: cast<AtomicSDNode>(Val: N)->getMergedOrdering())) return false;
2724return true;
2725
2726 }
2727 case 11: {
2728 // Predicate_unindexedstore
2729 SDNode *N = Op.getNode();
2730 (void)N;
2731if (cast<StoreSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
2732return true;
2733
2734 }
2735 case 12: {
2736 // Predicate_truncstore
2737 SDNode *N = Op.getNode();
2738 (void)N;
2739 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
2740return true;
2741
2742 }
2743 case 13: {
2744 // Predicate_store
2745 SDNode *N = Op.getNode();
2746 (void)N;
2747 if (cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
2748return true;
2749
2750 }
2751 case 14: {
2752 // Predicate_anonymous_8677
2753 // Predicate_anonymous_8780
2754 // Predicate_anonymous_8781
2755 // Predicate_anonymous_8782
2756 SDNode *N = Op.getNode();
2757 (void)N;
2758if (isReleaseOrStronger(AO: cast<AtomicSDNode>(Val: N)->getMergedOrdering())) return false;
2759return true;
2760
2761 }
2762 case 15: {
2763 // Predicate_atomic_load_aext
2764 SDNode *N = Op.getNode();
2765 (void)N;
2766if (cast<AtomicSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
2767return true;
2768
2769 }
2770 case 16: {
2771 // Predicate_atomic_load_zext
2772 SDNode *N = Op.getNode();
2773 (void)N;
2774if (cast<AtomicSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
2775return true;
2776
2777 }
2778 case 17: {
2779 // Predicate_BPF_CC_EQ
2780 // Predicate_BPF_CC_EQ_32
2781 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2782 (void)N;
2783return (N->getZExtValue() == ISD::SETEQ);
2784 }
2785 case 18: {
2786 // Predicate_BPF_CC_GTU
2787 // Predicate_BPF_CC_GTU_32
2788 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2789 (void)N;
2790return (N->getZExtValue() == ISD::SETUGT);
2791 }
2792 case 19: {
2793 // Predicate_BPF_CC_GEU
2794 // Predicate_BPF_CC_GEU_32
2795 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2796 (void)N;
2797return (N->getZExtValue() == ISD::SETUGE);
2798 }
2799 case 20: {
2800 // Predicate_BPF_CC_NE
2801 // Predicate_BPF_CC_NE_32
2802 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2803 (void)N;
2804return (N->getZExtValue() == ISD::SETNE);
2805 }
2806 case 21: {
2807 // Predicate_BPF_CC_GT
2808 // Predicate_BPF_CC_GT_32
2809 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2810 (void)N;
2811return (N->getZExtValue() == ISD::SETGT);
2812 }
2813 case 22: {
2814 // Predicate_BPF_CC_GE
2815 // Predicate_BPF_CC_GE_32
2816 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2817 (void)N;
2818return (N->getZExtValue() == ISD::SETGE);
2819 }
2820 case 23: {
2821 // Predicate_BPF_CC_LTU
2822 // Predicate_BPF_CC_LTU_32
2823 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2824 (void)N;
2825return (N->getZExtValue() == ISD::SETULT);
2826 }
2827 case 24: {
2828 // Predicate_BPF_CC_LEU
2829 // Predicate_BPF_CC_LEU_32
2830 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2831 (void)N;
2832return (N->getZExtValue() == ISD::SETULE);
2833 }
2834 case 25: {
2835 // Predicate_BPF_CC_LT
2836 // Predicate_BPF_CC_LT_32
2837 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2838 (void)N;
2839return (N->getZExtValue() == ISD::SETLT);
2840 }
2841 case 26: {
2842 // Predicate_BPF_CC_LE
2843 // Predicate_BPF_CC_LE_32
2844 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2845 (void)N;
2846return (N->getZExtValue() == ISD::SETLE);
2847 }
2848 case 27: {
2849 // Predicate_zextload
2850 SDNode *N = Op.getNode();
2851 (void)N;
2852if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
2853return true;
2854
2855 }
2856 case 28: {
2857 // Predicate_extload
2858 SDNode *N = Op.getNode();
2859 (void)N;
2860if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
2861return true;
2862
2863 }
2864 case 29: {
2865 // Predicate_atomic_load_and_i64_monotonic_nu
2866 // Predicate_atomic_load_or_i64_monotonic_nu
2867 // Predicate_atomic_load_xor_i64_monotonic_nu
2868 SDNode *N = Op.getNode();
2869 (void)N;
2870 return SDValue(N, 0).use_empty();
2871 }
2872 case 30: {
2873 // Predicate_atomic_load_and_i64_monotonic_hu
2874 // Predicate_atomic_load_or_i64_monotonic_hu
2875 // Predicate_atomic_load_xor_i64_monotonic_hu
2876 SDNode *N = Op.getNode();
2877 (void)N;
2878 return !SDValue(N, 0).use_empty();
2879 }
2880 case 31: {
2881 // Predicate_sextload
2882 SDNode *N = Op.getNode();
2883 (void)N;
2884if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::SEXTLOAD) return false;
2885return true;
2886
2887 }
2888 case 32: {
2889 // Predicate_load
2890 SDNode *N = Op.getNode();
2891 (void)N;
2892if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
2893return true;
2894
2895 }
2896 case 33: {
2897 // Predicate_atomic_load_nonext
2898 SDNode *N = Op.getNode();
2899 (void)N;
2900if (cast<AtomicSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
2901return true;
2902
2903 }
2904 case 34: {
2905 // Predicate_i64immZExt32
2906 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2907 (void)N;
2908return isUInt<32>(x: N->getZExtValue());
2909 }
2910 case 35: {
2911 // Predicate_unindexedload
2912 SDNode *N = Op.getNode();
2913 (void)N;
2914if (cast<LoadSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
2915return true;
2916
2917 }
2918 }
2919}
2920#endif // GET_DAGISEL_BODY
2921
2922#ifdef GET_DAGISEL_DECL
2923bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
2924 SDValue N, unsigned PatternNo,
2925 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
2926#endif
2927#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2928bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
2929 SDValue N, unsigned PatternNo,
2930 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
2931#if DAGISEL_INLINE
2932 override
2933#endif
2934{
2935 unsigned NextRes = Result.size();
2936 switch (PatternNo) {
2937 default: llvm_unreachable("Invalid pattern # in table?");
2938 case 0:
2939 Result.resize(N: NextRes+2);
2940 return SelectAddr(Addr: N, Base&: Result[NextRes+0].first, Offset&: Result[NextRes+1].first);
2941 case 1:
2942 Result.resize(N: NextRes+2);
2943 return SelectFIAddr(Addr: N, Base&: Result[NextRes+0].first, Offset&: Result[NextRes+1].first);
2944 }
2945}
2946#endif // GET_DAGISEL_BODY
2947
2948#ifdef GET_DAGISEL_DECL
2949SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
2950#endif
2951#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2952SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
2953#if DAGISEL_INLINE
2954 override
2955#endif
2956{
2957 switch (XFormNo) {
2958 default: llvm_unreachable("Invalid xform # in table?");
2959 case 0: {
2960 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
2961
2962 return CurDAG->getTargetConstant(Val: N->getZExtValue(), DL: SDLoc(N), VT: MVT::i64);
2963
2964 }
2965 case 1: {
2966 SDNode *N = V.getNode();
2967
2968 return CurDAG->getTargetConstant(
2969 Val: cast<AddrSpaceCastSDNode>(Val: N)->getDestAddressSpace(),
2970 DL: SDLoc(N), VT: MVT::i64);
2971
2972 }
2973 case 2: {
2974 SDNode *N = V.getNode();
2975
2976 return CurDAG->getTargetConstant(
2977 Val: cast<AddrSpaceCastSDNode>(Val: N)->getSrcAddressSpace(),
2978 DL: SDLoc(N), VT: MVT::i64);
2979
2980 }
2981 }
2982}
2983#endif // GET_DAGISEL_BODY
2984
2985
2986#ifdef DAGISEL_INLINE
2987#undef DAGISEL_INLINE
2988#endif
2989#ifdef DAGISEL_CLASS_COLONCOLON
2990#undef DAGISEL_CLASS_COLONCOLON
2991#endif
2992#ifdef GET_DAGISEL_DECL
2993#undef GET_DAGISEL_DECL
2994#endif
2995#ifdef GET_DAGISEL_BODY
2996#undef GET_DAGISEL_BODY
2997#endif
2998