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