1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* DAG Instruction Selector for the XCore 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 , 42|128,1, TARGET_VAL(ISD::ADD),
60 OPC_Scope, 16,
61 OPC_MoveChild0,
62 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
63 OPC_CheckChild0Integer, 2,
64 OPC_RecordChild1,
65 OPC_MoveParent,
66 OPC_CheckChild1Integer, 3,
67 OPC_MorphNodeTo1None, TARGET_VAL(XCore::MKMSK_2r),
68 7, 1, 0,
69 30,
70 OPC_RecordChild0,
71 OPC_MoveChild1,
72 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
73 OPC_RecordChild0,
74 OPC_Scope, 10,
75 OPC_CheckChild1Integer, 4,
76 OPC_MoveParent,
77 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWF_l3r),
78 7, 2, 0, 1,
79 10,
80 OPC_CheckChild1Integer, 2,
81 OPC_MoveParent,
82 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDA16F_l3r),
83 7, 2, 0, 1,
84 0,
85 31,
86 OPC_MoveChild0,
87 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
88 OPC_RecordChild0,
89 OPC_Scope, 11,
90 OPC_CheckChild1Integer, 4,
91 OPC_MoveParent,
92 OPC_RecordChild1,
93 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWF_l3r),
94 7, 2, 1, 0,
95 11,
96 OPC_CheckChild1Integer, 2,
97 OPC_MoveParent,
98 OPC_RecordChild1,
99 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDA16F_l3r),
100 7, 2, 1, 0,
101 0,
102 11,
103 OPC_RecordNode,
104 OPC_CheckTypeI32,
105 OPC_CheckComplexPat0, /*#*/0,
106 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWFI),
107 7, 2, 1, 2,
108 75,
109 OPC_RecordChild0,
110 OPC_RecordChild1,
111 OPC_Scope, 62,
112 OPC_MoveChild1,
113 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
114 OPC_Scope, 10,
115 OPC_CheckPredicate3,
116 OPC_MoveParent,
117 OPC_EmitConvertToTarget1,
118 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ADD_2rus),
119 7, 2, 0, 2,
120 14,
121 OPC_CheckPredicate, 10,
122 OPC_MoveParent,
123 OPC_EmitConvertToTarget1,
124 OPC_EmitNodeXForm, 0, 2,
125 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWF_l2rus),
126 7, 2, 0, 3,
127 14,
128 OPC_CheckPredicate, 15,
129 OPC_MoveParent,
130 OPC_EmitConvertToTarget1,
131 OPC_EmitNodeXForm, 1, 2,
132 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SUB_2rus),
133 7, 2, 0, 3,
134 14,
135 OPC_CheckPredicate, 16,
136 OPC_MoveParent,
137 OPC_EmitConvertToTarget1,
138 OPC_EmitNodeXForm, 2, 2,
139 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWB_l2rus),
140 7, 2, 0, 3,
141 0,
142 7,
143 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ADD_3r),
144 7, 2, 0, 1,
145 0,
146 0,
147 1|128,3, TARGET_VAL(ISD::LOAD),
148 OPC_RecordMemRef,
149 OPC_RecordNode,
150 OPC_Scope, 1|128,1,
151 OPC_MoveChild1,
152 OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
153 OPC_Scope, 60,
154 OPC_RecordChild0,
155 OPC_MoveChild1,
156 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
157 OPC_RecordChild0,
158 OPC_Scope, 34,
159 OPC_CheckChild1Integer, 2,
160 OPC_MoveParent,
161 OPC_MoveParent,
162 OPC_CheckPredicate0,
163 OPC_CheckTypeI32,
164 OPC_Scope, 12,
165 OPC_CheckPredicate, 13,
166 OPC_CheckPredicate1,
167 OPC_EmitMergeInputChains1_0,
168 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD16S_3r), 0|OPFL_Chain|OPFL_MemRefs,
169 7, 2, 1, 2,
170 12,
171 OPC_CheckPredicate, 11,
172 OPC_CheckPredicate1,
173 OPC_EmitMergeInputChains1_0,
174 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD16S_3r), 0|OPFL_Chain|OPFL_MemRefs,
175 7, 2, 1, 2,
176 0,
177 16,
178 OPC_CheckChild1Integer, 4,
179 OPC_MoveParent,
180 OPC_MoveParent,
181 OPC_CheckPredicate0,
182 OPC_CheckPredicate4,
183 OPC_CheckTypeI32,
184 OPC_EmitMergeInputChains1_0,
185 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDW_3r), 0|OPFL_Chain|OPFL_MemRefs,
186 7, 2, 1, 2,
187 0,
188 61,
189 OPC_MoveChild0,
190 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
191 OPC_RecordChild0,
192 OPC_Scope, 35,
193 OPC_CheckChild1Integer, 2,
194 OPC_MoveParent,
195 OPC_RecordChild1,
196 OPC_MoveParent,
197 OPC_CheckPredicate0,
198 OPC_CheckTypeI32,
199 OPC_Scope, 12,
200 OPC_CheckPredicate, 13,
201 OPC_CheckPredicate1,
202 OPC_EmitMergeInputChains1_0,
203 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD16S_3r), 0|OPFL_Chain|OPFL_MemRefs,
204 7, 2, 2, 1,
205 12,
206 OPC_CheckPredicate, 11,
207 OPC_CheckPredicate1,
208 OPC_EmitMergeInputChains1_0,
209 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD16S_3r), 0|OPFL_Chain|OPFL_MemRefs,
210 7, 2, 2, 1,
211 0,
212 17,
213 OPC_CheckChild1Integer, 4,
214 OPC_MoveParent,
215 OPC_RecordChild1,
216 OPC_MoveParent,
217 OPC_CheckPredicate0,
218 OPC_CheckPredicate4,
219 OPC_CheckTypeI32,
220 OPC_EmitMergeInputChains1_0,
221 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDW_3r), 0|OPFL_Chain|OPFL_MemRefs,
222 7, 2, 2, 1,
223 0,
224 0,
225 16,
226 OPC_RecordChild1,
227 OPC_CheckChild1TypeI32,
228 OPC_CheckPredicate0,
229 OPC_CheckPredicate4,
230 OPC_CheckTypeI32,
231 OPC_CheckComplexPat0, /*#*/1,
232 OPC_EmitMergeInputChains1_0,
233 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDWFI), 0|OPFL_Chain|OPFL_MemRefs,
234 7, 2, 2, 3,
235 127,
236 OPC_MoveChild1,
237 OPC_SwitchOpcode , 61, TARGET_VAL(ISD::ADD),
238 OPC_RecordChild0,
239 OPC_RecordChild1,
240 OPC_Scope, 24,
241 OPC_MoveChild1,
242 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
243 OPC_CheckPredicate, 10,
244 OPC_MoveParent,
245 OPC_MoveParent,
246 OPC_CheckPredicate0,
247 OPC_CheckPredicate4,
248 OPC_CheckTypeI32,
249 OPC_EmitMergeInputChains1_0,
250 OPC_EmitConvertToTarget2,
251 OPC_EmitNodeXForm, 0, 3,
252 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDW_2rus), 0|OPFL_Chain|OPFL_MemRefs,
253 7, 2, 1, 4,
254 31,
255 OPC_MoveParent,
256 OPC_CheckPredicate0,
257 OPC_CheckTypeI32,
258 OPC_Scope, 12,
259 OPC_CheckPredicate, 14,
260 OPC_CheckPredicate7,
261 OPC_EmitMergeInputChains1_0,
262 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD8U_3r), 0|OPFL_Chain|OPFL_MemRefs,
263 7, 2, 1, 2,
264 12,
265 OPC_CheckPredicate, 11,
266 OPC_CheckPredicate7,
267 OPC_EmitMergeInputChains1_0,
268 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD8U_3r), 0|OPFL_Chain|OPFL_MemRefs,
269 7, 2, 1, 2,
270 0,
271 0,
272 18, TARGET_VAL(XCoreISD::DPRelativeWrapper),
273 OPC_RecordChild0,
274 OPC_MoveChild0,
275 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
276 OPC_MoveParent,
277 OPC_MoveParent,
278 OPC_CheckPredicate0,
279 OPC_CheckPredicate4,
280 OPC_CheckTypeI32,
281 OPC_EmitMergeInputChains1_0,
282 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDWDP_lru6), 0|OPFL_Chain|OPFL_MemRefs,
283 7, 1, 1,
284 36, TARGET_VAL(XCoreISD::CPRelativeWrapper),
285 OPC_RecordChild0,
286 OPC_MoveChild0,
287 OPC_SwitchOpcode , 13, TARGET_VAL(ISD::TargetGlobalAddress),
288 OPC_MoveParent,
289 OPC_MoveParent,
290 OPC_CheckPredicate0,
291 OPC_CheckPredicate4,
292 OPC_CheckTypeI32,
293 OPC_EmitMergeInputChains1_0,
294 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDWCP_lru6), 0|OPFL_Chain|OPFL_MemRefs,
295 7, 1, 1,
296 13, TARGET_VAL(ISD::TargetConstantPool),
297 OPC_MoveParent,
298 OPC_MoveParent,
299 OPC_CheckPredicate0,
300 OPC_CheckPredicate4,
301 OPC_CheckTypeI32,
302 OPC_EmitMergeInputChains1_0,
303 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDWCP_lru6), 0|OPFL_Chain|OPFL_MemRefs,
304 7, 1, 1,
305 0,
306 0,
307 104,
308 OPC_RecordChild1,
309 OPC_CheckChild1TypeI32,
310 OPC_CheckPredicate0,
311 OPC_CheckTypeI32,
312 OPC_Scope, 12,
313 OPC_CheckPredicate4,
314 OPC_EmitMergeInputChains1_0,
315 OPC_EmitInteger32, 0,
316 OPC_MorphNodeTo1, TARGET_VAL(XCore::LDW_2rus), 0|OPFL_Chain|OPFL_MemRefs,
317 7, 2, 1, 2,
318 20,
319 OPC_CheckPredicate, 14,
320 OPC_CheckPredicate7,
321 OPC_EmitMergeInputChains1_0,
322 OPC_EmitInteger32, 0,
323 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
324 7, 1, 2,
325 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD8U_3r), 0|OPFL_Chain|OPFL_MemRefs,
326 7, 2, 1, 3,
327 20,
328 OPC_CheckPredicate, 13,
329 OPC_CheckPredicate1,
330 OPC_EmitMergeInputChains1_0,
331 OPC_EmitInteger32, 0,
332 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
333 7, 1, 2,
334 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD16S_3r), 0|OPFL_Chain|OPFL_MemRefs,
335 7, 2, 1, 3,
336 42,
337 OPC_CheckPredicate, 11,
338 OPC_Scope, 18,
339 OPC_CheckPredicate7,
340 OPC_EmitMergeInputChains1_0,
341 OPC_EmitInteger32, 0,
342 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
343 7, 1, 2,
344 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD8U_3r), 0|OPFL_Chain|OPFL_MemRefs,
345 7, 2, 1, 3,
346 18,
347 OPC_CheckPredicate1,
348 OPC_EmitMergeInputChains1_0,
349 OPC_EmitInteger32, 0,
350 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
351 7, 1, 2,
352 OPC_MorphNodeTo1, TARGET_VAL(XCore::LD16S_3r), 0|OPFL_Chain|OPFL_MemRefs,
353 7, 2, 1, 3,
354 0,
355 0,
356 0,
357 126|128,1, TARGET_VAL(ISD::STORE),
358 OPC_RecordMemRef,
359 OPC_RecordNode,
360 OPC_RecordChild1,
361 OPC_CheckChild1TypeI32,
362 OPC_Scope, 95,
363 OPC_MoveChild2,
364 OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
365 OPC_Scope, 43,
366 OPC_RecordChild0,
367 OPC_MoveChild1,
368 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
369 OPC_RecordChild0,
370 OPC_Scope, 17,
371 OPC_CheckChild1Integer, 2,
372 OPC_MoveParent,
373 OPC_MoveParent,
374 OPC_CheckPredicate2,
375 OPC_CheckPredicate, 12,
376 OPC_CheckPredicate1,
377 OPC_EmitMergeInputChains1_0,
378 OPC_MorphNodeTo0, TARGET_VAL(XCore::ST16_l3r), 0|OPFL_Chain|OPFL_MemRefs,
379 3, 1, 2, 3,
380 16,
381 OPC_CheckChild1Integer, 4,
382 OPC_MoveParent,
383 OPC_MoveParent,
384 OPC_CheckPredicate2,
385 OPC_CheckPredicate, 8,
386 OPC_EmitMergeInputChains1_0,
387 OPC_MorphNodeTo0, TARGET_VAL(XCore::STW_l3r), 0|OPFL_Chain|OPFL_MemRefs,
388 3, 1, 2, 3,
389 0,
390 44,
391 OPC_MoveChild0,
392 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
393 OPC_RecordChild0,
394 OPC_Scope, 18,
395 OPC_CheckChild1Integer, 2,
396 OPC_MoveParent,
397 OPC_RecordChild1,
398 OPC_MoveParent,
399 OPC_CheckPredicate2,
400 OPC_CheckPredicate, 12,
401 OPC_CheckPredicate1,
402 OPC_EmitMergeInputChains1_0,
403 OPC_MorphNodeTo0, TARGET_VAL(XCore::ST16_l3r), 0|OPFL_Chain|OPFL_MemRefs,
404 3, 1, 3, 2,
405 17,
406 OPC_CheckChild1Integer, 4,
407 OPC_MoveParent,
408 OPC_RecordChild1,
409 OPC_MoveParent,
410 OPC_CheckPredicate2,
411 OPC_CheckPredicate, 8,
412 OPC_EmitMergeInputChains1_0,
413 OPC_MorphNodeTo0, TARGET_VAL(XCore::STW_l3r), 0|OPFL_Chain|OPFL_MemRefs,
414 3, 1, 3, 2,
415 0,
416 0,
417 16,
418 OPC_RecordChild2,
419 OPC_CheckChild2TypeI32,
420 OPC_CheckPredicate2,
421 OPC_CheckPredicate, 8,
422 OPC_CheckComplexPat0, /*#*/2,
423 OPC_EmitMergeInputChains1_0,
424 OPC_MorphNodeTo0, TARGET_VAL(XCore::STWFI), 0|OPFL_Chain|OPFL_MemRefs,
425 3, 1, 3, 4,
426 71,
427 OPC_MoveChild2,
428 OPC_SwitchOpcode , 44, TARGET_VAL(ISD::ADD),
429 OPC_RecordChild0,
430 OPC_RecordChild1,
431 OPC_Scope, 24,
432 OPC_MoveChild1,
433 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
434 OPC_CheckPredicate, 10,
435 OPC_MoveParent,
436 OPC_MoveParent,
437 OPC_CheckPredicate2,
438 OPC_CheckPredicate, 8,
439 OPC_EmitMergeInputChains1_0,
440 OPC_EmitConvertToTarget3,
441 OPC_EmitNodeXForm, 0, 4,
442 OPC_MorphNodeTo0, TARGET_VAL(XCore::STW_2rus), 0|OPFL_Chain|OPFL_MemRefs,
443 3, 1, 2, 5,
444 14,
445 OPC_MoveParent,
446 OPC_CheckPredicate2,
447 OPC_CheckPredicate, 12,
448 OPC_CheckPredicate7,
449 OPC_EmitMergeInputChains1_0,
450 OPC_MorphNodeTo0, TARGET_VAL(XCore::ST8_l3r), 0|OPFL_Chain|OPFL_MemRefs,
451 3, 1, 2, 3,
452 0,
453 18, TARGET_VAL(XCoreISD::DPRelativeWrapper),
454 OPC_RecordChild0,
455 OPC_MoveChild0,
456 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
457 OPC_MoveParent,
458 OPC_MoveParent,
459 OPC_CheckPredicate2,
460 OPC_CheckPredicate, 8,
461 OPC_EmitMergeInputChains1_0,
462 OPC_MorphNodeTo0, TARGET_VAL(XCore::STWDP_lru6), 0|OPFL_Chain|OPFL_MemRefs,
463 2, 1, 2,
464 0,
465 62,
466 OPC_RecordChild2,
467 OPC_CheckChild2TypeI32,
468 OPC_CheckPredicate2,
469 OPC_Scope, 13,
470 OPC_CheckPredicate, 8,
471 OPC_EmitMergeInputChains1_0,
472 OPC_EmitInteger32, 0,
473 OPC_MorphNodeTo0, TARGET_VAL(XCore::STW_2rus), 0|OPFL_Chain|OPFL_MemRefs,
474 3, 1, 2, 3,
475 42,
476 OPC_CheckPredicate, 12,
477 OPC_Scope, 18,
478 OPC_CheckPredicate7,
479 OPC_EmitMergeInputChains1_0,
480 OPC_EmitInteger32, 0,
481 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
482 7, 1, 3,
483 OPC_MorphNodeTo0, TARGET_VAL(XCore::ST8_l3r), 0|OPFL_Chain|OPFL_MemRefs,
484 3, 1, 2, 4,
485 18,
486 OPC_CheckPredicate1,
487 OPC_EmitMergeInputChains1_0,
488 OPC_EmitInteger32, 0,
489 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
490 7, 1, 3,
491 OPC_MorphNodeTo0, TARGET_VAL(XCore::ST16_l3r), 0|OPFL_Chain|OPFL_MemRefs,
492 3, 1, 2, 4,
493 0,
494 0,
495 0,
496 74, TARGET_VAL(ISD::SRA),
497 OPC_Scope, 27,
498 OPC_MoveChild0,
499 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
500 OPC_RecordChild0,
501 OPC_RecordChild1,
502 OPC_MoveChild1,
503 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
504 OPC_CheckPredicate, 17,
505 OPC_MoveParent,
506 OPC_MoveParent,
507 OPC_CheckChild1Same, 1,
508 OPC_EmitConvertToTarget1,
509 OPC_EmitNodeXForm, 3, 2,
510 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SEXT_rus),
511 7, 2, 0, 3,
512 43,
513 OPC_RecordChild0,
514 OPC_Scope, 11,
515 OPC_CheckChild1Integer, 62,
516 OPC_EmitInteger32, 64,
517 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ASHR_l2rus),
518 7, 2, 0, 1,
519 27,
520 OPC_RecordChild1,
521 OPC_Scope, 15,
522 OPC_MoveChild1,
523 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
524 OPC_CheckPredicate, 9,
525 OPC_MoveParent,
526 OPC_EmitConvertToTarget1,
527 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ASHR_l2rus),
528 7, 2, 0, 2,
529 7,
530 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ASHR_l3r),
531 7, 2, 0, 1,
532 0,
533 0,
534 0,
535 31|128,4, TARGET_VAL(ISD::INTRINSIC_VOID),
536 OPC_RecordNode,
537 OPC_Scope, 46,
538 OPC_CheckChild1Integer, 26|128,108|128,1,
539 OPC_RecordChild2,
540 OPC_CheckChild2TypeI32,
541 OPC_RecordChild3,
542 OPC_Scope, 28,
543 OPC_MoveChild3,
544 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
545 OPC_Scope, 10,
546 OPC_CheckPredicate5,
547 OPC_MoveParent,
548 OPC_EmitMergeInputChains1_0,
549 OPC_EmitConvertToTarget2,
550 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETC_ru6),
551 2, 1, 3,
552 10,
553 OPC_CheckPredicate6,
554 OPC_MoveParent,
555 OPC_EmitMergeInputChains1_0,
556 OPC_EmitConvertToTarget2,
557 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETC_lru6),
558 2, 1, 3,
559 0,
560 7,
561 OPC_EmitMergeInputChains1_0,
562 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETC_l2r),
563 2, 1, 2,
564 0,
565 31,
566 OPC_CheckChild1Integer, 42|128,108|128,1,
567 OPC_RecordChild2,
568 OPC_MoveChild2,
569 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
570 OPC_Scope, 9,
571 OPC_CheckPredicate5,
572 OPC_MoveParent,
573 OPC_EmitMergeInputChains1_0,
574 OPC_EmitConvertToTarget1,
575 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETSR_u6),
576 1, 2,
577 9,
578 OPC_CheckPredicate6,
579 OPC_MoveParent,
580 OPC_EmitMergeInputChains1_0,
581 OPC_EmitConvertToTarget1,
582 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETSR_lu6),
583 1, 2,
584 0,
585 31,
586 OPC_CheckChild1Integer, 94|128,107|128,1,
587 OPC_RecordChild2,
588 OPC_MoveChild2,
589 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
590 OPC_Scope, 9,
591 OPC_CheckPredicate5,
592 OPC_MoveParent,
593 OPC_EmitMergeInputChains1_0,
594 OPC_EmitConvertToTarget1,
595 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::CLRSR_u6),
596 1, 2,
597 9,
598 OPC_CheckPredicate6,
599 OPC_MoveParent,
600 OPC_EmitMergeInputChains1_0,
601 OPC_EmitConvertToTarget1,
602 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::CLRSR_lu6),
603 1, 2,
604 0,
605 32,
606 OPC_CheckChild1Integer, 18|128,108|128,1,
607 OPC_RecordChild2,
608 OPC_CheckChild2TypeI32,
609 OPC_RecordChild3,
610 OPC_Scope, 14,
611 OPC_MoveChild3,
612 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
613 OPC_CheckPredicate3,
614 OPC_MoveParent,
615 OPC_EmitMergeInputChains1_0,
616 OPC_EmitConvertToTarget2,
617 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::OUTCT_rus),
618 2, 1, 3,
619 7,
620 OPC_EmitMergeInputChains1_0,
621 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::OUTCT_2r),
622 2, 1, 2,
623 0,
624 32,
625 OPC_CheckChild1Integer, 88|128,107|128,1,
626 OPC_RecordChild2,
627 OPC_CheckChild2TypeI32,
628 OPC_RecordChild3,
629 OPC_Scope, 14,
630 OPC_MoveChild3,
631 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
632 OPC_CheckPredicate3,
633 OPC_MoveParent,
634 OPC_EmitMergeInputChains1_0,
635 OPC_EmitConvertToTarget2,
636 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::CHKCT_rus),
637 2, 1, 3,
638 7,
639 OPC_EmitMergeInputChains1_0,
640 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::CHKCT_2r),
641 2, 1, 2,
642 0,
643 14,
644 OPC_CheckChild1Integer, 38|128,108|128,1,
645 OPC_RecordChild2,
646 OPC_CheckChild2TypeI32,
647 OPC_RecordChild3,
648 OPC_EmitMergeInputChains1_0,
649 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETPT_2r),
650 2, 1, 2,
651 14,
652 OPC_CheckChild1Integer, 22|128,108|128,1,
653 OPC_RecordChild2,
654 OPC_CheckChild2TypeI32,
655 OPC_RecordChild3,
656 OPC_EmitMergeInputChains1_0,
657 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::OUTT_2r),
658 2, 1, 2,
659 14,
660 OPC_CheckChild1Integer, 16|128,108|128,1,
661 OPC_RecordChild2,
662 OPC_CheckChild2TypeI32,
663 OPC_RecordChild3,
664 OPC_EmitMergeInputChains1_0,
665 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::OUT_2r),
666 2, 1, 2,
667 14,
668 OPC_CheckChild1Integer, 30|128,108|128,1,
669 OPC_RecordChild2,
670 OPC_CheckChild2TypeI32,
671 OPC_RecordChild3,
672 OPC_EmitMergeInputChains1_0,
673 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETD_2r),
674 2, 1, 2,
675 14,
676 OPC_CheckChild1Integer, 36|128,108|128,1,
677 OPC_RecordChild2,
678 OPC_CheckChild2TypeI32,
679 OPC_RecordChild3,
680 OPC_EmitMergeInputChains1_0,
681 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETPSC_2r),
682 2, 1, 2,
683 15,
684 OPC_CheckChild1Integer, 6|128,108|128,1,
685 OPC_RecordChild2,
686 OPC_CheckChild2TypeI32,
687 OPC_RecordChild3,
688 OPC_CheckChild3TypeI32,
689 OPC_EmitMergeInputChains1_0,
690 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::INITSP_2r),
691 2, 2, 1,
692 15,
693 OPC_CheckChild1Integer, 4|128,108|128,1,
694 OPC_RecordChild2,
695 OPC_CheckChild2TypeI32,
696 OPC_RecordChild3,
697 OPC_CheckChild3TypeI32,
698 OPC_EmitMergeInputChains1_0,
699 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::INITPC_2r),
700 2, 2, 1,
701 15,
702 OPC_CheckChild1Integer, 126|128,107|128,1,
703 OPC_RecordChild2,
704 OPC_CheckChild2TypeI32,
705 OPC_RecordChild3,
706 OPC_CheckChild3TypeI32,
707 OPC_EmitMergeInputChains1_0,
708 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::INITCP_2r),
709 2, 2, 1,
710 15,
711 OPC_CheckChild1Integer, 0|128,108|128,1,
712 OPC_RecordChild2,
713 OPC_CheckChild2TypeI32,
714 OPC_RecordChild3,
715 OPC_CheckChild3TypeI32,
716 OPC_EmitMergeInputChains1_0,
717 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::INITDP_2r),
718 2, 2, 1,
719 14,
720 OPC_CheckChild1Integer, 44|128,108|128,1,
721 OPC_RecordChild2,
722 OPC_CheckChild2TypeI32,
723 OPC_RecordChild3,
724 OPC_EmitMergeInputChains1_0,
725 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETTW_l2r),
726 2, 1, 2,
727 13,
728 OPC_CheckChild1Integer, 34|128,108|128,1,
729 OPC_RecordChild2,
730 OPC_RecordChild3,
731 OPC_EmitMergeInputChains1_0,
732 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETPS_l2r),
733 2, 1, 2,
734 15,
735 OPC_CheckChild1Integer, 2|128,108|128,1,
736 OPC_RecordChild2,
737 OPC_CheckChild2TypeI32,
738 OPC_RecordChild3,
739 OPC_CheckChild3TypeI32,
740 OPC_EmitMergeInputChains1_0,
741 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::INITLR_l2r),
742 2, 2, 1,
743 15,
744 OPC_CheckChild1Integer, 28|128,108|128,1,
745 OPC_RecordChild2,
746 OPC_CheckChild2TypeI32,
747 OPC_RecordChild3,
748 OPC_CheckChild3TypeI32,
749 OPC_EmitMergeInputChains1_0,
750 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETCLK_l2r),
751 2, 1, 2,
752 15,
753 OPC_CheckChild1Integer, 40|128,108|128,1,
754 OPC_RecordChild2,
755 OPC_CheckChild2TypeI32,
756 OPC_RecordChild3,
757 OPC_CheckChild3TypeI32,
758 OPC_EmitMergeInputChains1_0,
759 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SETRDY_l2r),
760 2, 1, 2,
761 12,
762 OPC_CheckChild1Integer, 14|128,108|128,1,
763 OPC_RecordChild2,
764 OPC_CheckChild2TypeI32,
765 OPC_EmitMergeInputChains1_0,
766 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::MSYNC_1r),
767 1, 1,
768 12,
769 OPC_CheckChild1Integer, 12|128,108|128,1,
770 OPC_RecordChild2,
771 OPC_CheckChild2TypeI32,
772 OPC_EmitMergeInputChains1_0,
773 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::MJOIN_1r),
774 1, 1,
775 12,
776 OPC_CheckChild1Integer, 52|128,108|128,1,
777 OPC_RecordChild2,
778 OPC_CheckChild2TypeI32,
779 OPC_EmitMergeInputChains1_0,
780 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SYNCR_1r),
781 1, 1,
782 12,
783 OPC_CheckChild1Integer, 106|128,107|128,1,
784 OPC_RecordChild2,
785 OPC_CheckChild2TypeI32,
786 OPC_EmitMergeInputChains1_0,
787 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::FREER_1r),
788 1, 1,
789 17,
790 OPC_CheckChild1Integer, 46|128,108|128,1,
791 OPC_RecordChild2,
792 OPC_CheckChild2TypeI32,
793 OPC_RecordChild3,
794 OPC_CheckChild3TypeI32,
795 OPC_EmitMergeInputChains1_0,
796 OPC_EmitCopyToReg2, XCore::R11,
797 OPC_MorphNodeTo0, TARGET_VAL(XCore::SETV_1r), 0|OPFL_Chain|OPFL_GlueInput,
798 1, 1,
799 17,
800 OPC_CheckChild1Integer, 32|128,108|128,1,
801 OPC_RecordChild2,
802 OPC_CheckChild2TypeI32,
803 OPC_RecordChild3,
804 OPC_CheckChild3TypeI32,
805 OPC_EmitMergeInputChains1_0,
806 OPC_EmitCopyToReg2, XCore::R11,
807 OPC_MorphNodeTo0, TARGET_VAL(XCore::SETEV_1r), 0|OPFL_Chain|OPFL_GlueInput,
808 1, 1,
809 12,
810 OPC_CheckChild1Integer, 100|128,107|128,1,
811 OPC_RecordChild2,
812 OPC_CheckChild2TypeI32,
813 OPC_EmitMergeInputChains1_0,
814 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::EDU_1r),
815 1, 1,
816 12,
817 OPC_CheckChild1Integer, 102|128,107|128,1,
818 OPC_RecordChild2,
819 OPC_CheckChild2TypeI32,
820 OPC_EmitMergeInputChains1_0,
821 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::EEU_1r),
822 1, 1,
823 12,
824 OPC_CheckChild1Integer, 92|128,107|128,1,
825 OPC_RecordChild2,
826 OPC_CheckChild2TypeI32,
827 OPC_EmitMergeInputChains1_0,
828 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::CLRPT_1R),
829 1, 1,
830 9,
831 OPC_CheckChild1Integer, 90|128,107|128,1,
832 OPC_EmitMergeInputChains1_0,
833 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::CLRE_0R),
834 0,
835 9,
836 OPC_CheckChild1Integer, 50|128,108|128,1,
837 OPC_EmitMergeInputChains1_0,
838 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::SSYNC_0r),
839 0,
840 0,
841 106, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
842 OPC_Scope, 32,
843 OPC_CheckChild0Integer, 48|128,108|128,1,
844 OPC_RecordChild1,
845 OPC_RecordChild2,
846 OPC_Scope, 15,
847 OPC_MoveChild2,
848 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
849 OPC_CheckPredicate, 9,
850 OPC_MoveParent,
851 OPC_EmitConvertToTarget1,
852 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SEXT_rus),
853 7, 2, 0, 2,
854 7,
855 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SEXT_2r),
856 7, 2, 0, 1,
857 0,
858 32,
859 OPC_CheckChild0Integer, 60|128,108|128,1,
860 OPC_RecordChild1,
861 OPC_RecordChild2,
862 OPC_Scope, 15,
863 OPC_MoveChild2,
864 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
865 OPC_CheckPredicate, 9,
866 OPC_MoveParent,
867 OPC_EmitConvertToTarget1,
868 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ZEXT_rus),
869 7, 2, 0, 2,
870 7,
871 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ZEXT_2r),
872 7, 2, 0, 1,
873 0,
874 15,
875 OPC_CheckChild0Integer, 96|128,107|128,1,
876 OPC_RecordChild1,
877 OPC_RecordChild2,
878 OPC_RecordChild3,
879 OPC_MorphNodeTo1None, TARGET_VAL(XCore::CRC_l3r),
880 7, 3, 0, 1, 2,
881 11,
882 OPC_CheckChild0Integer, 84|128,107|128,1,
883 OPC_RecordChild1,
884 OPC_MorphNodeTo1None, TARGET_VAL(XCore::BITREV_l2r),
885 7, 1, 0,
886 9,
887 OPC_CheckChild0Integer, 112|128,107|128,1,
888 OPC_MorphNodeTo1None, TARGET_VAL(XCore::GETID_0R),
889 7, 0,
890 0,
891 90|128,1, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
892 OPC_RecordNode,
893 OPC_Scope, 20,
894 OPC_CheckChild1Integer, 116|128,107|128,1,
895 OPC_RecordChild2,
896 OPC_MoveChild2,
897 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
898 OPC_CheckPredicate3,
899 OPC_MoveParent,
900 OPC_CheckTypeI32,
901 OPC_EmitMergeInputChains1_0,
902 OPC_EmitConvertToTarget1,
903 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::GETR_rus),
904 7, 1, 2,
905 13,
906 OPC_CheckChild1Integer, 120|128,107|128,1,
907 OPC_RecordChild2,
908 OPC_CheckChild2TypeI32,
909 OPC_EmitMergeInputChains1_0,
910 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::GETTS_2r),
911 7, 1, 1,
912 15,
913 OPC_CheckChild1Integer, 20|128,108|128,1,
914 OPC_RecordChild2,
915 OPC_CheckChild2TypeI32,
916 OPC_RecordChild3,
917 OPC_EmitMergeInputChains1_0,
918 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::OUTSHR_2r),
919 7, 2, 2, 1,
920 13,
921 OPC_CheckChild1Integer, 124|128,107|128,1,
922 OPC_RecordChild2,
923 OPC_CheckChild2TypeI32,
924 OPC_EmitMergeInputChains1_0,
925 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::INCT_2r),
926 7, 1, 1,
927 13,
928 OPC_CheckChild1Integer, 10|128,108|128,1,
929 OPC_RecordChild2,
930 OPC_CheckChild2TypeI32,
931 OPC_EmitMergeInputChains1_0,
932 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::INT_2r),
933 7, 1, 1,
934 13,
935 OPC_CheckChild1Integer, 122|128,107|128,1,
936 OPC_RecordChild2,
937 OPC_CheckChild2TypeI32,
938 OPC_EmitMergeInputChains1_0,
939 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::IN_2r),
940 7, 1, 1,
941 15,
942 OPC_CheckChild1Integer, 8|128,108|128,1,
943 OPC_RecordChild2,
944 OPC_CheckChild2TypeI32,
945 OPC_RecordChild3,
946 OPC_EmitMergeInputChains1_0,
947 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::INSHR_2r),
948 7, 2, 2, 1,
949 13,
950 OPC_CheckChild1Integer, 54|128,108|128,1,
951 OPC_RecordChild2,
952 OPC_CheckChild2TypeI32,
953 OPC_EmitMergeInputChains1_0,
954 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::TESTCT_2r),
955 7, 1, 1,
956 13,
957 OPC_CheckChild1Integer, 56|128,108|128,1,
958 OPC_RecordChild2,
959 OPC_CheckChild2TypeI32,
960 OPC_EmitMergeInputChains1_0,
961 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::TESTWCT_2r),
962 7, 1, 1,
963 14,
964 OPC_CheckChild1Integer, 118|128,107|128,1,
965 OPC_RecordChild2,
966 OPC_CheckChild2TypeI32,
967 OPC_CheckTypeI32,
968 OPC_EmitMergeInputChains1_0,
969 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::GETST_2r),
970 7, 1, 1,
971 13,
972 OPC_CheckChild1Integer, 24|128,108|128,1,
973 OPC_RecordChild2,
974 OPC_CheckChild2TypeI32,
975 OPC_EmitMergeInputChains1_0,
976 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::PEEK_2r),
977 7, 1, 1,
978 13,
979 OPC_CheckChild1Integer, 104|128,107|128,1,
980 OPC_RecordChild2,
981 OPC_CheckChild2TypeI32,
982 OPC_EmitMergeInputChains1_0,
983 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::ENDIN_2r),
984 7, 1, 1,
985 12,
986 OPC_CheckChild1Integer, 114|128,107|128,1,
987 OPC_RecordChild2,
988 OPC_EmitMergeInputChains1_0,
989 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::GETPS_l2r),
990 7, 1, 1,
991 10,
992 OPC_CheckChild1Integer, 108|128,107|128,1,
993 OPC_EmitMergeInputChains1_0,
994 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::GETED_0R),
995 7, 0,
996 10,
997 OPC_CheckChild1Integer, 110|128,107|128,1,
998 OPC_EmitMergeInputChains1_0,
999 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::GETET_0R),
1000 7, 0,
1001 0,
1002 89, TARGET_VAL(ISD::SUB),
1003 OPC_Scope, 30,
1004 OPC_RecordChild0,
1005 OPC_MoveChild1,
1006 OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
1007 OPC_RecordChild0,
1008 OPC_Scope, 10,
1009 OPC_CheckChild1Integer, 4,
1010 OPC_MoveParent,
1011 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWB_l3r),
1012 7, 2, 0, 1,
1013 10,
1014 OPC_CheckChild1Integer, 2,
1015 OPC_MoveParent,
1016 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDA16B_l3r),
1017 7, 2, 0, 1,
1018 0,
1019 9,
1020 OPC_CheckChild0Integer, 0,
1021 OPC_RecordChild1,
1022 OPC_MorphNodeTo1None, TARGET_VAL(XCore::NEG),
1023 7, 1, 0,
1024 45,
1025 OPC_RecordChild0,
1026 OPC_RecordChild1,
1027 OPC_Scope, 32,
1028 OPC_MoveChild1,
1029 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1030 OPC_Scope, 10,
1031 OPC_CheckPredicate3,
1032 OPC_MoveParent,
1033 OPC_EmitConvertToTarget1,
1034 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SUB_2rus),
1035 7, 2, 0, 2,
1036 14,
1037 OPC_CheckPredicate, 10,
1038 OPC_MoveParent,
1039 OPC_EmitConvertToTarget1,
1040 OPC_EmitNodeXForm, 0, 2,
1041 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWB_l2rus),
1042 7, 2, 0, 3,
1043 0,
1044 7,
1045 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SUB_3r),
1046 7, 2, 0, 1,
1047 0,
1048 0,
1049 68, TARGET_VAL(ISD::AND),
1050 OPC_Scope, 16,
1051 OPC_RecordChild0,
1052 OPC_MoveChild1,
1053 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1054 OPC_RecordChild0,
1055 OPC_CheckChild1Integer, 3,
1056 OPC_MoveParent,
1057 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ANDNOT_2r),
1058 7, 2, 0, 1,
1059 16,
1060 OPC_MoveChild0,
1061 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
1062 OPC_RecordChild0,
1063 OPC_CheckChild1Integer, 3,
1064 OPC_MoveParent,
1065 OPC_RecordChild1,
1066 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ANDNOT_2r),
1067 7, 2, 1, 0,
1068 31,
1069 OPC_RecordChild0,
1070 OPC_RecordChild1,
1071 OPC_Scope, 18,
1072 OPC_MoveChild1,
1073 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1074 OPC_CheckPredicate, 18,
1075 OPC_MoveParent,
1076 OPC_EmitConvertToTarget1,
1077 OPC_EmitNodeXForm, 4, 2,
1078 OPC_MorphNodeTo1None, TARGET_VAL(XCore::ZEXT_rus),
1079 7, 2, 0, 3,
1080 7,
1081 OPC_MorphNodeTo1None, TARGET_VAL(XCore::AND_3r),
1082 7, 2, 0, 1,
1083 0,
1084 0,
1085 32, TARGET_VAL(ISD::BRIND),
1086 OPC_RecordNode,
1087 OPC_Scope, 19,
1088 OPC_MoveChild1,
1089 OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
1090 OPC_RecordNode,
1091 OPC_CheckFoldableChainNode,
1092 OPC_CheckChild1Integer, 58|128,108|128,1,
1093 OPC_MoveParent,
1094 OPC_EmitMergeInputChains, 2, 0, 1,
1095 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::WAITEU_0R),
1096 0,
1097 8,
1098 OPC_RecordChild1,
1099 OPC_CheckChild1TypeI32,
1100 OPC_EmitMergeInputChains1_0,
1101 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BAU_1r),
1102 1, 1,
1103 0,
1104 11|128,2, TARGET_VAL(ISD::BRCOND),
1105 OPC_RecordNode,
1106 OPC_Scope, 119|128,1,
1107 OPC_MoveChild1,
1108 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
1109 OPC_RecordChild0,
1110 OPC_Scope, 61,
1111 OPC_CheckChild1Integer, 0,
1112 OPC_Scope, 15,
1113 OPC_CheckChild2CondCode, ISD::SETNE,
1114 OPC_MoveSibling2,
1115 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1116 OPC_RecordNode,
1117 OPC_MoveParent,
1118 OPC_EmitMergeInputChains1_0,
1119 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFT_lru6),
1120 2, 1, 2,
1121 15,
1122 OPC_CheckChild2CondCode, ISD::SETEQ,
1123 OPC_MoveSibling2,
1124 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1125 OPC_RecordNode,
1126 OPC_MoveParent,
1127 OPC_EmitMergeInputChains1_0,
1128 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1129 2, 1, 2,
1130 24,
1131 OPC_CheckChild2CondCode, ISD::SETLT,
1132 OPC_MoveSibling2,
1133 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1134 OPC_RecordNode,
1135 OPC_MoveParent,
1136 OPC_EmitMergeInputChains1_0,
1137 OPC_EmitInteger32, 64,
1138 OPC_EmitNode1None, TARGET_VAL(XCore::ASHR_l2rus),
1139 7, 2, 1, 3,
1140 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFT_lru6),
1141 2, 4, 2,
1142 0,
1143 26,
1144 OPC_CheckChild1Integer, 3,
1145 OPC_CheckChild2CondCode, ISD::SETGT,
1146 OPC_MoveSibling2,
1147 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1148 OPC_RecordNode,
1149 OPC_MoveParent,
1150 OPC_EmitMergeInputChains1_0,
1151 OPC_EmitInteger32, 64,
1152 OPC_EmitNode1None, TARGET_VAL(XCore::ASHR_l2rus),
1153 7, 2, 1, 3,
1154 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1155 2, 4, 2,
1156 30,
1157 OPC_RecordChild1,
1158 OPC_MoveChild1,
1159 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1160 OPC_CheckPredicate3,
1161 OPC_MoveParent,
1162 OPC_CheckChild2CondCode, ISD::SETNE,
1163 OPC_MoveSibling2,
1164 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1165 OPC_RecordNode,
1166 OPC_MoveParent,
1167 OPC_EmitMergeInputChains1_0,
1168 OPC_EmitConvertToTarget2,
1169 OPC_EmitNode1None, TARGET_VAL(XCore::EQ_2rus),
1170 7, 2, 1, 4,
1171 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1172 2, 5, 3,
1173 119,
1174 OPC_CheckChild0TypeI32,
1175 OPC_RecordChild1,
1176 OPC_Scope, 22,
1177 OPC_CheckChild2CondCode, ISD::SETLE,
1178 OPC_MoveSibling2,
1179 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1180 OPC_RecordNode,
1181 OPC_MoveParent,
1182 OPC_EmitMergeInputChains1_0,
1183 OPC_EmitNode1None, TARGET_VAL(XCore::LSS_3r),
1184 7, 2, 2, 1,
1185 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1186 2, 4, 3,
1187 22,
1188 OPC_CheckChild2CondCode, ISD::SETULE,
1189 OPC_MoveSibling2,
1190 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1191 OPC_RecordNode,
1192 OPC_MoveParent,
1193 OPC_EmitMergeInputChains1_0,
1194 OPC_EmitNode1None, TARGET_VAL(XCore::LSU_3r),
1195 7, 2, 2, 1,
1196 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1197 2, 4, 3,
1198 22,
1199 OPC_CheckChild2CondCode, ISD::SETGE,
1200 OPC_MoveSibling2,
1201 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1202 OPC_RecordNode,
1203 OPC_MoveParent,
1204 OPC_EmitMergeInputChains1_0,
1205 OPC_EmitNode1None, TARGET_VAL(XCore::LSS_3r),
1206 7, 2, 1, 2,
1207 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1208 2, 4, 3,
1209 22,
1210 OPC_CheckChild2CondCode, ISD::SETUGE,
1211 OPC_MoveSibling2,
1212 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1213 OPC_RecordNode,
1214 OPC_MoveParent,
1215 OPC_EmitMergeInputChains1_0,
1216 OPC_EmitNode1None, TARGET_VAL(XCore::LSU_3r),
1217 7, 2, 1, 2,
1218 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1219 2, 4, 3,
1220 22,
1221 OPC_CheckChild2CondCode, ISD::SETNE,
1222 OPC_MoveSibling2,
1223 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1224 OPC_RecordNode,
1225 OPC_MoveParent,
1226 OPC_EmitMergeInputChains1_0,
1227 OPC_EmitNode1None, TARGET_VAL(XCore::EQ_3r),
1228 7, 2, 1, 2,
1229 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFF_lru6),
1230 2, 4, 3,
1231 0,
1232 0,
1233 14,
1234 OPC_RecordChild1,
1235 OPC_RecordChild2,
1236 OPC_MoveChild2,
1237 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1238 OPC_MoveParent,
1239 OPC_EmitMergeInputChains1_0,
1240 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFT_lru6),
1241 2, 1, 2,
1242 0,
1243 126|128,1, TARGET_VAL(ISD::SELECT),
1244 OPC_Scope, 109|128,1,
1245 OPC_MoveChild0,
1246 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
1247 OPC_RecordChild0,
1248 OPC_Scope, 58,
1249 OPC_CheckChild1Integer, 0,
1250 OPC_Scope, 14,
1251 OPC_CheckChild2CondCode, ISD::SETNE,
1252 OPC_MoveParent,
1253 OPC_RecordChild1,
1254 OPC_RecordChild2,
1255 OPC_CheckTypeI32,
1256 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1257 7, 3, 0, 1, 2,
1258 14,
1259 OPC_CheckChild2CondCode, ISD::SETEQ,
1260 OPC_MoveParent,
1261 OPC_RecordChild1,
1262 OPC_RecordChild2,
1263 OPC_CheckTypeI32,
1264 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1265 7, 3, 0, 2, 1,
1266 23,
1267 OPC_CheckChild2CondCode, ISD::SETLT,
1268 OPC_MoveParent,
1269 OPC_RecordChild1,
1270 OPC_RecordChild2,
1271 OPC_CheckTypeI32,
1272 OPC_EmitInteger32, 64,
1273 OPC_EmitNode1None, TARGET_VAL(XCore::ASHR_l2rus),
1274 7, 2, 0, 3,
1275 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1276 7, 3, 4, 1, 2,
1277 0,
1278 25,
1279 OPC_CheckChild1Integer, 3,
1280 OPC_CheckChild2CondCode, ISD::SETGT,
1281 OPC_MoveParent,
1282 OPC_RecordChild1,
1283 OPC_RecordChild2,
1284 OPC_CheckTypeI32,
1285 OPC_EmitInteger32, 64,
1286 OPC_EmitNode1None, TARGET_VAL(XCore::ASHR_l2rus),
1287 7, 2, 0, 3,
1288 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1289 7, 3, 4, 2, 1,
1290 29,
1291 OPC_RecordChild1,
1292 OPC_MoveChild1,
1293 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1294 OPC_CheckPredicate3,
1295 OPC_MoveParent,
1296 OPC_CheckChild2CondCode, ISD::SETNE,
1297 OPC_MoveParent,
1298 OPC_RecordChild1,
1299 OPC_RecordChild2,
1300 OPC_CheckTypeI32,
1301 OPC_EmitConvertToTarget1,
1302 OPC_EmitNode1None, TARGET_VAL(XCore::EQ_2rus),
1303 7, 2, 0, 4,
1304 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1305 7, 3, 5, 3, 2,
1306 114,
1307 OPC_CheckChild0TypeI32,
1308 OPC_RecordChild1,
1309 OPC_Scope, 21,
1310 OPC_CheckChild2CondCode, ISD::SETLE,
1311 OPC_MoveParent,
1312 OPC_RecordChild1,
1313 OPC_RecordChild2,
1314 OPC_CheckTypeI32,
1315 OPC_EmitNode1None, TARGET_VAL(XCore::LSS_3r),
1316 7, 2, 1, 0,
1317 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1318 7, 3, 4, 3, 2,
1319 21,
1320 OPC_CheckChild2CondCode, ISD::SETULE,
1321 OPC_MoveParent,
1322 OPC_RecordChild1,
1323 OPC_RecordChild2,
1324 OPC_CheckTypeI32,
1325 OPC_EmitNode1None, TARGET_VAL(XCore::LSU_3r),
1326 7, 2, 1, 0,
1327 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1328 7, 3, 4, 3, 2,
1329 21,
1330 OPC_CheckChild2CondCode, ISD::SETGE,
1331 OPC_MoveParent,
1332 OPC_RecordChild1,
1333 OPC_RecordChild2,
1334 OPC_CheckTypeI32,
1335 OPC_EmitNode1None, TARGET_VAL(XCore::LSS_3r),
1336 7, 2, 0, 1,
1337 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1338 7, 3, 4, 3, 2,
1339 21,
1340 OPC_CheckChild2CondCode, ISD::SETUGE,
1341 OPC_MoveParent,
1342 OPC_RecordChild1,
1343 OPC_RecordChild2,
1344 OPC_CheckTypeI32,
1345 OPC_EmitNode1None, TARGET_VAL(XCore::LSU_3r),
1346 7, 2, 0, 1,
1347 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1348 7, 3, 4, 3, 2,
1349 21,
1350 OPC_CheckChild2CondCode, ISD::SETNE,
1351 OPC_MoveParent,
1352 OPC_RecordChild1,
1353 OPC_RecordChild2,
1354 OPC_CheckTypeI32,
1355 OPC_EmitNode1None, TARGET_VAL(XCore::EQ_3r),
1356 7, 2, 0, 1,
1357 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1358 7, 3, 4, 3, 2,
1359 0,
1360 0,
1361 12,
1362 OPC_RecordChild0,
1363 OPC_RecordChild1,
1364 OPC_RecordChild2,
1365 OPC_CheckTypeI32,
1366 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SELECT_CC),
1367 7, 3, 0, 1, 2,
1368 0,
1369 21, TARGET_VAL(ISD::CALLSEQ_START),
1370 OPC_RecordNode,
1371 OPC_RecordChild1,
1372 OPC_MoveChild1,
1373 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1374 OPC_MoveSibling2,
1375 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1376 OPC_RecordNode,
1377 OPC_MoveParent,
1378 OPC_EmitMergeInputChains1_0,
1379 OPC_MorphNodeTo1, TARGET_VAL(XCore::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
1380 7, 2, 1, 2,
1381 22, TARGET_VAL(ISD::CALLSEQ_END),
1382 OPC_RecordNode,
1383 OPC_CaptureGlueInput,
1384 OPC_RecordChild1,
1385 OPC_MoveChild1,
1386 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1387 OPC_MoveSibling2,
1388 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1389 OPC_RecordNode,
1390 OPC_MoveParent,
1391 OPC_EmitMergeInputChains1_0,
1392 OPC_MorphNodeTo1, TARGET_VAL(XCore::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1393 7, 2, 1, 2,
1394 11, TARGET_VAL(ISD::FrameIndex),
1395 OPC_RecordNode,
1396 OPC_CheckTypeI32,
1397 OPC_CheckComplexPat0, /*#*/0,
1398 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWFI),
1399 7, 2, 1, 2,
1400 21, TARGET_VAL(ISD::XOR),
1401 OPC_RecordChild0,
1402 OPC_Scope, 8,
1403 OPC_CheckChild1Integer, 3,
1404 OPC_MorphNodeTo1None, TARGET_VAL(XCore::NOT),
1405 7, 1, 0,
1406 8,
1407 OPC_RecordChild1,
1408 OPC_MorphNodeTo1None, TARGET_VAL(XCore::XOR_l3r),
1409 7, 2, 0, 1,
1410 0,
1411 42, TARGET_VAL(ISD::MUL),
1412 OPC_RecordChild0,
1413 OPC_Scope, 9,
1414 OPC_CheckChild1Integer, 6,
1415 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDA16F_l3r),
1416 7, 2, 0, 0,
1417 9,
1418 OPC_CheckChild1Integer, 10,
1419 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWF_l3r),
1420 7, 2, 0, 0,
1421 9,
1422 OPC_CheckChild1Integer, 7,
1423 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWB_l3r),
1424 7, 2, 0, 0,
1425 8,
1426 OPC_RecordChild1,
1427 OPC_MorphNodeTo1None, TARGET_VAL(XCore::MUL_l3r),
1428 7, 2, 0, 1,
1429 0,
1430 90|128,1, TARGET_VAL(ISD::SETCC),
1431 OPC_RecordChild0,
1432 OPC_Scope, 22,
1433 OPC_CheckChild1Integer, 3,
1434 OPC_CheckChild2CondCode, ISD::SETGT,
1435 OPC_EmitInteger32, 64,
1436 OPC_EmitNode1None, TARGET_VAL(XCore::ASHR_l2rus),
1437 7, 2, 0, 1,
1438 OPC_EmitInteger32, 0,
1439 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1440 7, 2, 2, 3,
1441 40,
1442 OPC_RecordChild1,
1443 OPC_MoveChild1,
1444 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1445 OPC_CheckPredicate3,
1446 OPC_MoveParent,
1447 OPC_Scope, 10,
1448 OPC_CheckChild2CondCode, ISD::SETEQ,
1449 OPC_EmitConvertToTarget1,
1450 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1451 7, 2, 0, 2,
1452 19,
1453 OPC_CheckChild2CondCode, ISD::SETNE,
1454 OPC_EmitConvertToTarget1,
1455 OPC_EmitNode1None, TARGET_VAL(XCore::EQ_2rus),
1456 7, 2, 0, 2,
1457 OPC_EmitInteger32, 0,
1458 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1459 7, 2, 3, 4,
1460 0,
1461 21|128,1,
1462 OPC_CheckChild0TypeI32,
1463 OPC_RecordChild1,
1464 OPC_Scope, 9,
1465 OPC_CheckChild2CondCode, ISD::SETGT,
1466 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LSS_3r),
1467 7, 2, 1, 0,
1468 9,
1469 OPC_CheckChild2CondCode, ISD::SETUGT,
1470 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LSU_3r),
1471 7, 2, 1, 0,
1472 9,
1473 OPC_CheckChild2CondCode, ISD::SETLT,
1474 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LSS_3r),
1475 7, 2, 0, 1,
1476 9,
1477 OPC_CheckChild2CondCode, ISD::SETULT,
1478 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LSU_3r),
1479 7, 2, 0, 1,
1480 9,
1481 OPC_CheckChild2CondCode, ISD::SETEQ,
1482 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_3r),
1483 7, 2, 0, 1,
1484 18,
1485 OPC_CheckChild2CondCode, ISD::SETLE,
1486 OPC_EmitNode1None, TARGET_VAL(XCore::LSS_3r),
1487 7, 2, 1, 0,
1488 OPC_EmitInteger32, 0,
1489 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1490 7, 2, 2, 3,
1491 18,
1492 OPC_CheckChild2CondCode, ISD::SETULE,
1493 OPC_EmitNode1None, TARGET_VAL(XCore::LSU_3r),
1494 7, 2, 1, 0,
1495 OPC_EmitInteger32, 0,
1496 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1497 7, 2, 2, 3,
1498 18,
1499 OPC_CheckChild2CondCode, ISD::SETGE,
1500 OPC_EmitNode1None, TARGET_VAL(XCore::LSS_3r),
1501 7, 2, 0, 1,
1502 OPC_EmitInteger32, 0,
1503 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1504 7, 2, 2, 3,
1505 18,
1506 OPC_CheckChild2CondCode, ISD::SETUGE,
1507 OPC_EmitNode1None, TARGET_VAL(XCore::LSU_3r),
1508 7, 2, 0, 1,
1509 OPC_EmitInteger32, 0,
1510 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1511 7, 2, 2, 3,
1512 18,
1513 OPC_CheckChild2CondCode, ISD::SETNE,
1514 OPC_EmitNode1None, TARGET_VAL(XCore::EQ_3r),
1515 7, 2, 0, 1,
1516 OPC_EmitInteger32, 0,
1517 OPC_MorphNodeTo1None, TARGET_VAL(XCore::EQ_2rus),
1518 7, 2, 2, 3,
1519 0,
1520 0,
1521 28, TARGET_VAL(ISD::SHL),
1522 OPC_RecordChild0,
1523 OPC_RecordChild1,
1524 OPC_Scope, 15,
1525 OPC_MoveChild1,
1526 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1527 OPC_CheckPredicate, 9,
1528 OPC_MoveParent,
1529 OPC_EmitConvertToTarget1,
1530 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SHL_2rus),
1531 7, 2, 0, 2,
1532 7,
1533 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SHL_3r),
1534 7, 2, 0, 1,
1535 0,
1536 28, TARGET_VAL(ISD::SRL),
1537 OPC_RecordChild0,
1538 OPC_RecordChild1,
1539 OPC_Scope, 15,
1540 OPC_MoveChild1,
1541 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1542 OPC_CheckPredicate, 9,
1543 OPC_MoveParent,
1544 OPC_EmitConvertToTarget1,
1545 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SHR_2rus),
1546 7, 2, 0, 2,
1547 7,
1548 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SHR_3r),
1549 7, 2, 0, 1,
1550 0,
1551 32, TARGET_VAL(XCoreISD::STWSP),
1552 OPC_RecordNode,
1553 OPC_RecordChild1,
1554 OPC_CheckChild1TypeI32,
1555 OPC_RecordChild2,
1556 OPC_MoveChild2,
1557 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1558 OPC_Scope, 10,
1559 OPC_CheckPredicate5,
1560 OPC_MoveParent,
1561 OPC_EmitMergeInputChains1_0,
1562 OPC_EmitConvertToTarget2,
1563 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::STWSP_ru6),
1564 2, 1, 3,
1565 10,
1566 OPC_CheckPredicate6,
1567 OPC_MoveParent,
1568 OPC_EmitMergeInputChains1_0,
1569 OPC_EmitConvertToTarget2,
1570 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::STWSP_lru6),
1571 2, 1, 3,
1572 0,
1573 32, TARGET_VAL(XCoreISD::LDWSP),
1574 OPC_RecordNode,
1575 OPC_RecordChild1,
1576 OPC_MoveChild1,
1577 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1578 OPC_Scope, 11,
1579 OPC_CheckPredicate5,
1580 OPC_MoveParent,
1581 OPC_CheckTypeI32,
1582 OPC_EmitMergeInputChains1_0,
1583 OPC_EmitConvertToTarget1,
1584 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::LDWSP_ru6),
1585 7, 1, 2,
1586 11,
1587 OPC_CheckPredicate6,
1588 OPC_MoveParent,
1589 OPC_CheckTypeI32,
1590 OPC_EmitMergeInputChains1_0,
1591 OPC_EmitConvertToTarget1,
1592 OPC_MorphNodeTo1Chain, TARGET_VAL(XCore::LDWSP_lru6),
1593 7, 1, 2,
1594 0,
1595 33, TARGET_VAL(XCoreISD::RETSP),
1596 OPC_RecordNode,
1597 OPC_CaptureGlueInput,
1598 OPC_RecordChild1,
1599 OPC_MoveChild1,
1600 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1601 OPC_Scope, 11,
1602 OPC_CheckPredicate5,
1603 OPC_MoveParent,
1604 OPC_EmitMergeInputChains1_0,
1605 OPC_EmitConvertToTarget1,
1606 OPC_MorphNodeTo1, TARGET_VAL(XCore::RETSP_u6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
1607 7, 1, 2,
1608 11,
1609 OPC_CheckPredicate6,
1610 OPC_MoveParent,
1611 OPC_EmitMergeInputChains1_0,
1612 OPC_EmitConvertToTarget1,
1613 OPC_MorphNodeTo1, TARGET_VAL(XCore::RETSP_lu6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
1614 7, 1, 2,
1615 0,
1616 13, TARGET_VAL(XCoreISD::DPRelativeWrapper),
1617 OPC_RecordChild0,
1618 OPC_MoveChild0,
1619 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1620 OPC_MoveParent,
1621 OPC_CheckTypeI32,
1622 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWDP_lru6),
1623 7, 1, 0,
1624 26, TARGET_VAL(XCoreISD::CPRelativeWrapper),
1625 OPC_RecordChild0,
1626 OPC_MoveChild0,
1627 OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
1628 OPC_MoveParent,
1629 OPC_CheckTypeI32,
1630 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWCP_lu6),
1631 7, 1, 0,
1632 8, TARGET_VAL(ISD::TargetConstantPool),
1633 OPC_MoveParent,
1634 OPC_CheckTypeI32,
1635 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAWCP_lu6),
1636 7, 1, 0,
1637 0,
1638 36, TARGET_VAL(XCoreISD::PCRelativeWrapper),
1639 OPC_RecordChild0,
1640 OPC_MoveChild0,
1641 OPC_SwitchOpcode , 18, TARGET_VAL(ISD::TargetGlobalAddress),
1642 OPC_MoveParent,
1643 OPC_CheckTypeI32,
1644 OPC_Scope, 6,
1645 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAPF_lu10),
1646 7, 1, 0,
1647 6,
1648 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAPB_lu10),
1649 7, 1, 0,
1650 0,
1651 8, TARGET_VAL(ISD::TargetBlockAddress),
1652 OPC_MoveParent,
1653 OPC_CheckTypeI32,
1654 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDAPF_lu10_ba),
1655 7, 1, 0,
1656 0,
1657 43, TARGET_VAL(XCoreISD::BL),
1658 OPC_RecordNode,
1659 OPC_CaptureGlueInput,
1660 OPC_RecordChild1,
1661 OPC_Scope, 27,
1662 OPC_MoveChild1,
1663 OPC_SwitchOpcode , 9, TARGET_VAL(ISD::TargetGlobalAddress),
1664 OPC_MoveParent,
1665 OPC_EmitMergeInputChains1_0,
1666 OPC_MorphNodeTo1, TARGET_VAL(XCore::BLRF_lu10), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1667 7, 1, 1,
1668 9, TARGET_VAL(ISD::TargetExternalSymbol),
1669 OPC_MoveParent,
1670 OPC_EmitMergeInputChains1_0,
1671 OPC_MorphNodeTo1, TARGET_VAL(XCore::BLRF_lu10), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1672 7, 1, 1,
1673 0,
1674 9,
1675 OPC_CheckChild1TypeI32,
1676 OPC_EmitMergeInputChains1_0,
1677 OPC_MorphNodeTo1, TARGET_VAL(XCore::BLA_1r), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1678 7, 1, 1,
1679 0,
1680 15, TARGET_VAL(XCoreISD::BR_JT),
1681 OPC_RecordNode,
1682 OPC_RecordChild1,
1683 OPC_MoveChild1,
1684 OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
1685 OPC_MoveParent,
1686 OPC_RecordChild2,
1687 OPC_EmitMergeInputChains1_0,
1688 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BR_JT),
1689 2, 1, 2,
1690 15, TARGET_VAL(XCoreISD::BR_JT32),
1691 OPC_RecordNode,
1692 OPC_RecordChild1,
1693 OPC_MoveChild1,
1694 OPC_CheckOpcode, TARGET_VAL(ISD::TargetJumpTable),
1695 OPC_MoveParent,
1696 OPC_RecordChild2,
1697 OPC_EmitMergeInputChains1_0,
1698 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BR_JT32),
1699 2, 1, 2,
1700 21, TARGET_VAL(ISD::Constant),
1701 OPC_RecordNode,
1702 OPC_Scope, 8,
1703 OPC_CheckPredicate5,
1704 OPC_EmitConvertToTarget0,
1705 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDC_ru6),
1706 7, 1, 1,
1707 8,
1708 OPC_CheckPredicate6,
1709 OPC_EmitConvertToTarget0,
1710 OPC_MorphNodeTo1None, TARGET_VAL(XCore::LDC_lru6),
1711 7, 1, 1,
1712 0,
1713 5, TARGET_VAL(XCoreISD::FRAME_TO_ARGS_OFFSET),
1714 OPC_MorphNodeTo1None, TARGET_VAL(XCore::FRAME_TO_ARGS_OFFSET),
1715 7, 0,
1716 13, TARGET_VAL(XCoreISD::EH_RETURN),
1717 OPC_RecordNode,
1718 OPC_CaptureGlueInput,
1719 OPC_RecordChild1,
1720 OPC_CheckChild1TypeI32,
1721 OPC_RecordChild2,
1722 OPC_EmitMergeInputChains1_0,
1723 OPC_MorphNodeTo0, TARGET_VAL(XCore::EH_RETURN), 0|OPFL_Chain|OPFL_GlueInput,
1724 2, 1, 2,
1725 9, TARGET_VAL(ISD::OR),
1726 OPC_RecordChild0,
1727 OPC_RecordChild1,
1728 OPC_MorphNodeTo1None, TARGET_VAL(XCore::OR_3r),
1729 7, 2, 0, 1,
1730 9, TARGET_VAL(ISD::SDIV),
1731 OPC_RecordChild0,
1732 OPC_RecordChild1,
1733 OPC_MorphNodeTo1None, TARGET_VAL(XCore::DIVS_l3r),
1734 7, 2, 0, 1,
1735 9, TARGET_VAL(ISD::UDIV),
1736 OPC_RecordChild0,
1737 OPC_RecordChild1,
1738 OPC_MorphNodeTo1None, TARGET_VAL(XCore::DIVU_l3r),
1739 7, 2, 0, 1,
1740 9, TARGET_VAL(ISD::SREM),
1741 OPC_RecordChild0,
1742 OPC_RecordChild1,
1743 OPC_MorphNodeTo1None, TARGET_VAL(XCore::REMS_l3r),
1744 7, 2, 0, 1,
1745 9, TARGET_VAL(ISD::UREM),
1746 OPC_RecordChild0,
1747 OPC_RecordChild1,
1748 OPC_MorphNodeTo1None, TARGET_VAL(XCore::REMU_l3r),
1749 7, 2, 0, 1,
1750 14, TARGET_VAL(XCoreISD::MACCU),
1751 OPC_RecordChild0,
1752 OPC_RecordChild1,
1753 OPC_RecordChild2,
1754 OPC_RecordChild3,
1755 OPC_MorphNodeTo2None, TARGET_VAL(XCore::MACCU_l4r),
1756 7, 7, 4, 0, 1, 2, 3,
1757 14, TARGET_VAL(XCoreISD::MACCS),
1758 OPC_RecordChild0,
1759 OPC_RecordChild1,
1760 OPC_RecordChild2,
1761 OPC_RecordChild3,
1762 OPC_MorphNodeTo2None, TARGET_VAL(XCore::MACCS_l4r),
1763 7, 7, 4, 0, 1, 2, 3,
1764 12, TARGET_VAL(XCoreISD::CRC8),
1765 OPC_RecordChild0,
1766 OPC_RecordChild1,
1767 OPC_RecordChild2,
1768 OPC_MorphNodeTo2None, TARGET_VAL(XCore::CRC8_l4r),
1769 7, 7, 3, 0, 1, 2,
1770 12, TARGET_VAL(XCoreISD::LADD),
1771 OPC_RecordChild0,
1772 OPC_RecordChild1,
1773 OPC_RecordChild2,
1774 OPC_MorphNodeTo2None, TARGET_VAL(XCore::LADD_l5r),
1775 7, 7, 3, 0, 1, 2,
1776 12, TARGET_VAL(XCoreISD::LSUB),
1777 OPC_RecordChild0,
1778 OPC_RecordChild1,
1779 OPC_RecordChild2,
1780 OPC_MorphNodeTo2None, TARGET_VAL(XCore::LSUB_l5r),
1781 7, 7, 3, 0, 1, 2,
1782 14, TARGET_VAL(XCoreISD::LMUL),
1783 OPC_RecordChild0,
1784 OPC_RecordChild1,
1785 OPC_RecordChild2,
1786 OPC_RecordChild3,
1787 OPC_MorphNodeTo2None, TARGET_VAL(XCore::LMUL_l6r),
1788 7, 7, 4, 0, 1, 2, 3,
1789 7, TARGET_VAL(ISD::BSWAP),
1790 OPC_RecordChild0,
1791 OPC_MorphNodeTo1None, TARGET_VAL(XCore::BYTEREV_l2r),
1792 7, 1, 0,
1793 7, TARGET_VAL(ISD::CTLZ),
1794 OPC_RecordChild0,
1795 OPC_MorphNodeTo1None, TARGET_VAL(XCore::CLZ_l2r),
1796 7, 1, 0,
1797 43, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
1798 OPC_RecordChild0,
1799 OPC_MoveChild1,
1800 OPC_Scope, 12,
1801 OPC_CheckValueType, 2,
1802 OPC_MoveParent,
1803 OPC_EmitInteger32, 2,
1804 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SEXT_rus),
1805 7, 2, 0, 1,
1806 12,
1807 OPC_CheckValueType, 5,
1808 OPC_MoveParent,
1809 OPC_EmitInteger32, 16,
1810 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SEXT_rus),
1811 7, 2, 0, 1,
1812 12,
1813 OPC_CheckValueType, 6,
1814 OPC_MoveParent,
1815 OPC_EmitInteger32, 32,
1816 OPC_MorphNodeTo1None, TARGET_VAL(XCore::SEXT_rus),
1817 7, 2, 0, 1,
1818 0,
1819 7, TARGET_VAL(ISD::BITREVERSE),
1820 OPC_RecordChild0,
1821 OPC_MorphNodeTo1None, TARGET_VAL(XCore::BITREV_l2r),
1822 7, 1, 0,
1823 13, TARGET_VAL(ISD::BR),
1824 OPC_RecordNode,
1825 OPC_RecordChild1,
1826 OPC_MoveChild1,
1827 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1828 OPC_MoveParent,
1829 OPC_EmitMergeInputChains1_0,
1830 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::BRFU_lu6),
1831 1, 1,
1832 13, TARGET_VAL(ISD::CTTZ),
1833 OPC_RecordChild0,
1834 OPC_EmitNode1None, TARGET_VAL(XCore::BITREV_l2r),
1835 7, 1, 0,
1836 OPC_MorphNodeTo1None, TARGET_VAL(XCore::CLZ_l2r),
1837 7, 1, 1,
1838 15, TARGET_VAL(ISD::TRAP),
1839 OPC_RecordNode,
1840 OPC_EmitMergeInputChains1_0,
1841 OPC_EmitInteger32, 0,
1842 OPC_EmitNode1None, TARGET_VAL(XCore::LDC_ru6),
1843 7, 1, 1,
1844 OPC_MorphNodeTo0Chain, TARGET_VAL(XCore::ECALLF_1r),
1845 1, 2,
1846 0,
1847 0
1848 }; // Total Array size is 3524 bytes
1849
1850 #undef COVERAGE_IDX_VAL
1851 #undef TARGET_VAL
1852 SelectCodeCommon(NodeToMatch: N, MatcherTable, TableSize: sizeof(MatcherTable));
1853}
1854#endif // GET_DAGISEL_BODY
1855
1856#ifdef GET_DAGISEL_DECL
1857bool CheckNodePredicate(SDValue Op, unsigned PredNo) const override;
1858#endif
1859#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
1860bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDValue Op, unsigned PredNo) const
1861#if DAGISEL_INLINE
1862 override
1863#endif
1864{
1865 switch (PredNo) {
1866 default: llvm_unreachable("Invalid predicate in table?");
1867 case 0: {
1868 // Predicate_unindexedload
1869 SDNode *N = Op.getNode();
1870 (void)N;
1871if (cast<LoadSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
1872return true;
1873
1874 }
1875 case 1: {
1876 // Predicate_extloadi16
1877 // Predicate_sextloadi16
1878 // Predicate_truncstorei16
1879 SDNode *N = Op.getNode();
1880 (void)N;
1881if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
1882return true;
1883
1884 }
1885 case 2: {
1886 // Predicate_unindexedstore
1887 SDNode *N = Op.getNode();
1888 (void)N;
1889if (cast<StoreSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
1890return true;
1891
1892 }
1893 case 3: {
1894 // Predicate_immUs
1895 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
1896 (void)N;
1897
1898 return (uint32_t)N->getZExtValue() <= 11;
1899
1900 }
1901 case 4: {
1902 // Predicate_load
1903 SDNode *N = Op.getNode();
1904 (void)N;
1905if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
1906return true;
1907
1908 }
1909 case 5: {
1910 // Predicate_immU6
1911 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
1912 (void)N;
1913
1914 return (uint32_t)N->getZExtValue() < (1 << 6);
1915
1916 }
1917 case 6: {
1918 // Predicate_immU16
1919 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
1920 (void)N;
1921
1922 return (uint32_t)N->getZExtValue() < (1 << 16);
1923
1924 }
1925 case 7: {
1926 // Predicate_extloadi8
1927 // Predicate_truncstorei8
1928 // Predicate_zextloadi8
1929 SDNode *N = Op.getNode();
1930 (void)N;
1931if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
1932return true;
1933
1934 }
1935 case 8: {
1936 // Predicate_store
1937 SDNode *N = Op.getNode();
1938 (void)N;
1939 if (cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
1940return true;
1941
1942 }
1943 case 9: {
1944 // Predicate_immBitp
1945 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
1946 (void)N;
1947
1948 uint32_t value = (uint32_t)N->getZExtValue();
1949 return (value >= 1 && value <= 8)
1950 || value == 16
1951 || value == 24
1952 || value == 32;
1953
1954 }
1955 case 10: {
1956 // Predicate_immUs4
1957 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
1958 (void)N;
1959
1960 uint32_t value = (uint32_t)N->getZExtValue();
1961 return value%4 == 0 && value/4 <= 11;
1962
1963 }
1964 case 11: {
1965 // Predicate_extload
1966 SDNode *N = Op.getNode();
1967 (void)N;
1968if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
1969return true;
1970
1971 }
1972 case 12: {
1973 // Predicate_truncstore
1974 SDNode *N = Op.getNode();
1975 (void)N;
1976 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
1977return true;
1978
1979 }
1980 case 13: {
1981 // Predicate_sextload
1982 SDNode *N = Op.getNode();
1983 (void)N;
1984if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::SEXTLOAD) return false;
1985return true;
1986
1987 }
1988 case 14: {
1989 // Predicate_zextload
1990 SDNode *N = Op.getNode();
1991 (void)N;
1992if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
1993return true;
1994
1995 }
1996 case 15: {
1997 // Predicate_immUsNeg
1998 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
1999 (void)N;
2000
2001 return -((uint32_t)N->getZExtValue()) <= 11;
2002
2003 }
2004 case 16: {
2005 // Predicate_immUs4Neg
2006 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2007 (void)N;
2008
2009 uint32_t value = (uint32_t)N->getZExtValue();
2010 return (-value)%4 == 0 && (-value)/4 <= 11;
2011
2012 }
2013 case 17: {
2014 // Predicate_immBpwSubBitp
2015 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2016 (void)N;
2017
2018 uint32_t value = (uint32_t)N->getZExtValue();
2019 return (value >= 24 && value <= 31)
2020 || value == 16
2021 || value == 8
2022 || value == 0;
2023
2024 }
2025 case 18: {
2026 // Predicate_immMskBitp
2027 auto *N = cast<ConstantSDNode>(Val: Op.getNode());
2028 (void)N;
2029 return immMskBitp(inN: N);
2030 }
2031 }
2032}
2033#endif // GET_DAGISEL_BODY
2034
2035#ifdef GET_DAGISEL_DECL
2036bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
2037 SDValue N, unsigned PatternNo,
2038 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
2039#endif
2040#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2041bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
2042 SDValue N, unsigned PatternNo,
2043 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
2044#if DAGISEL_INLINE
2045 override
2046#endif
2047{
2048 unsigned NextRes = Result.size();
2049 switch (PatternNo) {
2050 default: llvm_unreachable("Invalid pattern # in table?");
2051 case 0:
2052 Result.resize(N: NextRes+2);
2053 return SelectADDRspii(Addr: N, Base&: Result[NextRes+0].first, Offset&: Result[NextRes+1].first);
2054 }
2055}
2056#endif // GET_DAGISEL_BODY
2057
2058#ifdef GET_DAGISEL_DECL
2059SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
2060#endif
2061#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
2062SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
2063#if DAGISEL_INLINE
2064 override
2065#endif
2066{
2067 switch (XFormNo) {
2068 default: llvm_unreachable("Invalid xform # in table?");
2069 case 0: {
2070 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
2071
2072 // Transformation function: imm/4
2073 assert(N->getZExtValue() % 4 == 0);
2074 return getI32Imm(Imm: N->getZExtValue()/4, dl: SDLoc(N));
2075
2076 }
2077 case 1: {
2078 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
2079
2080 // Transformation function: -imm
2081 uint32_t value = N->getZExtValue();
2082 return getI32Imm(Imm: -value, dl: SDLoc(N));
2083
2084 }
2085 case 2: {
2086 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
2087
2088 // Transformation function: -imm/4
2089 uint32_t value = N->getZExtValue();
2090 assert(-value % 4 == 0);
2091 return getI32Imm(Imm: -value/4, dl: SDLoc(N));
2092
2093 }
2094 case 3: {
2095 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
2096
2097 // Transformation function: 32-imm
2098 uint32_t value = N->getZExtValue();
2099 return getI32Imm(Imm: 32 - value, dl: SDLoc(N));
2100
2101 }
2102 case 4: {
2103 ConstantSDNode *N = cast<ConstantSDNode>(Val: V.getNode());
2104
2105 // Transformation function: get the size of a mask
2106 assert(isMask_32(N->getZExtValue()));
2107 // look for the first non-zero bit
2108 return getI32Imm(Imm: llvm::bit_width(Value: (uint32_t)N->getZExtValue()),
2109 dl: SDLoc(N));
2110
2111 }
2112 }
2113}
2114#endif // GET_DAGISEL_BODY
2115
2116
2117#ifdef DAGISEL_INLINE
2118#undef DAGISEL_INLINE
2119#endif
2120#ifdef DAGISEL_CLASS_COLONCOLON
2121#undef DAGISEL_CLASS_COLONCOLON
2122#endif
2123#ifdef GET_DAGISEL_DECL
2124#undef GET_DAGISEL_DECL
2125#endif
2126#ifdef GET_DAGISEL_BODY
2127#undef GET_DAGISEL_BODY
2128#endif
2129