1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* DAG Instruction Selector for the WebAssembly 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.
55 #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
56 static const unsigned char MatcherTable[] = {
57 OPC_SwitchOpcode , 44|128,9, TARGET_VAL(ISD::ZERO_EXTEND),
58 OPC_Scope, 32|128,9,
59 OPC_MoveChild0,
60 OPC_SwitchOpcode , 124, TARGET_VAL(ISD::AssertZext),
61 OPC_MoveChild0,
62 OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
63 OPC_RecordMemRef,
64 OPC_RecordNode,
65 OPC_CheckFoldableChainNode,
66 OPC_RecordChild1,
67 OPC_Scope, 56,
68 OPC_CheckChild1TypeI32,
69 OPC_MoveChild2,
70 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
71 OPC_RecordChild0,
72 OPC_MoveSibling3,
73 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
74 OPC_RecordChild0,
75 OPC_MoveParent,
76 OPC_Scope, 20,
77 OPC_CheckPredicate1,
78 OPC_MoveParent,
79 OPC_MoveParent,
80 OPC_CheckPatternPredicate1,
81 OPC_CheckComplexPat0, /*#*/1,
82 OPC_EmitMergeInputChains1_0,
83 OPC_EmitInteger32, 0,
84 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
85 MVT::i64, 5, 6, 4, 5, 2, 3,
86 20,
87 OPC_CheckPredicate2,
88 OPC_MoveParent,
89 OPC_MoveParent,
90 OPC_CheckPatternPredicate1,
91 OPC_CheckComplexPat0, /*#*/1,
92 OPC_EmitMergeInputChains1_0,
93 OPC_EmitInteger32, 0,
94 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
95 MVT::i64, 5, 6, 4, 5, 2, 3,
96 0,
97 56,
98 OPC_CheckChild1TypeI64,
99 OPC_MoveChild2,
100 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
101 OPC_RecordChild0,
102 OPC_MoveSibling3,
103 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
104 OPC_RecordChild0,
105 OPC_MoveParent,
106 OPC_Scope, 20,
107 OPC_CheckPredicate1,
108 OPC_MoveParent,
109 OPC_MoveParent,
110 OPC_CheckPatternPredicate2,
111 OPC_CheckComplexPat1, /*#*/1,
112 OPC_EmitMergeInputChains1_0,
113 OPC_EmitInteger32, 0,
114 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
115 MVT::i64, 5, 6, 4, 5, 2, 3,
116 20,
117 OPC_CheckPredicate2,
118 OPC_MoveParent,
119 OPC_MoveParent,
120 OPC_CheckPatternPredicate2,
121 OPC_CheckComplexPat1, /*#*/1,
122 OPC_EmitMergeInputChains1_0,
123 OPC_EmitInteger32, 0,
124 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
125 MVT::i64, 5, 6, 4, 5, 2, 3,
126 0,
127 0,
128 69, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
129 OPC_RecordMemRef,
130 OPC_RecordNode,
131 OPC_RecordChild1,
132 OPC_Scope, 31,
133 OPC_CheckChild1TypeI32,
134 OPC_MoveChild2,
135 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
136 OPC_RecordChild0,
137 OPC_MoveSibling3,
138 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
139 OPC_RecordChild0,
140 OPC_MoveParent,
141 OPC_CheckPredicate3,
142 OPC_MoveParent,
143 OPC_CheckPatternPredicate1,
144 OPC_CheckComplexPat0, /*#*/1,
145 OPC_EmitMergeInputChains1_0,
146 OPC_EmitInteger32, 0,
147 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_CMPXCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
148 MVT::i64, 5, 6, 4, 5, 2, 3,
149 31,
150 OPC_CheckChild1TypeI64,
151 OPC_MoveChild2,
152 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
153 OPC_RecordChild0,
154 OPC_MoveSibling3,
155 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
156 OPC_RecordChild0,
157 OPC_MoveParent,
158 OPC_CheckPredicate3,
159 OPC_MoveParent,
160 OPC_CheckPatternPredicate2,
161 OPC_CheckComplexPat1, /*#*/1,
162 OPC_EmitMergeInputChains1_0,
163 OPC_EmitInteger32, 0,
164 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_CMPXCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
165 MVT::i64, 5, 6, 4, 5, 2, 3,
166 0,
167 11|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),
168 OPC_RecordMemRef,
169 OPC_RecordNode,
170 OPC_RecordChild1,
171 OPC_Scope, 66,
172 OPC_CheckChild1TypeI32,
173 OPC_MoveChild2,
174 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
175 OPC_RecordChild0,
176 OPC_MoveParent,
177 OPC_Scope, 18,
178 OPC_CheckPredicate1,
179 OPC_MoveParent,
180 OPC_CheckPatternPredicate1,
181 OPC_CheckComplexPat0, /*#*/1,
182 OPC_EmitMergeInputChains1_0,
183 OPC_EmitInteger32, 0,
184 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
185 MVT::i64, 4, 5, 3, 4, 2,
186 18,
187 OPC_CheckPredicate2,
188 OPC_MoveParent,
189 OPC_CheckPatternPredicate1,
190 OPC_CheckComplexPat0, /*#*/1,
191 OPC_EmitMergeInputChains1_0,
192 OPC_EmitInteger32, 0,
193 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
194 MVT::i64, 4, 5, 3, 4, 2,
195 18,
196 OPC_CheckPredicate3,
197 OPC_MoveParent,
198 OPC_CheckPatternPredicate1,
199 OPC_CheckComplexPat0, /*#*/1,
200 OPC_EmitMergeInputChains1_0,
201 OPC_EmitInteger32, 0,
202 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_ADD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
203 MVT::i64, 4, 5, 3, 4, 2,
204 0,
205 66,
206 OPC_CheckChild1TypeI64,
207 OPC_MoveChild2,
208 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
209 OPC_RecordChild0,
210 OPC_MoveParent,
211 OPC_Scope, 18,
212 OPC_CheckPredicate1,
213 OPC_MoveParent,
214 OPC_CheckPatternPredicate2,
215 OPC_CheckComplexPat1, /*#*/1,
216 OPC_EmitMergeInputChains1_0,
217 OPC_EmitInteger32, 0,
218 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
219 MVT::i64, 4, 5, 3, 4, 2,
220 18,
221 OPC_CheckPredicate2,
222 OPC_MoveParent,
223 OPC_CheckPatternPredicate2,
224 OPC_CheckComplexPat1, /*#*/1,
225 OPC_EmitMergeInputChains1_0,
226 OPC_EmitInteger32, 0,
227 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
228 MVT::i64, 4, 5, 3, 4, 2,
229 18,
230 OPC_CheckPredicate3,
231 OPC_MoveParent,
232 OPC_CheckPatternPredicate2,
233 OPC_CheckComplexPat1, /*#*/1,
234 OPC_EmitMergeInputChains1_0,
235 OPC_EmitInteger32, 0,
236 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_ADD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
237 MVT::i64, 4, 5, 3, 4, 2,
238 0,
239 0,
240 11|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),
241 OPC_RecordMemRef,
242 OPC_RecordNode,
243 OPC_RecordChild1,
244 OPC_Scope, 66,
245 OPC_CheckChild1TypeI32,
246 OPC_MoveChild2,
247 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
248 OPC_RecordChild0,
249 OPC_MoveParent,
250 OPC_Scope, 18,
251 OPC_CheckPredicate1,
252 OPC_MoveParent,
253 OPC_CheckPatternPredicate1,
254 OPC_CheckComplexPat0, /*#*/1,
255 OPC_EmitMergeInputChains1_0,
256 OPC_EmitInteger32, 0,
257 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
258 MVT::i64, 4, 5, 3, 4, 2,
259 18,
260 OPC_CheckPredicate2,
261 OPC_MoveParent,
262 OPC_CheckPatternPredicate1,
263 OPC_CheckComplexPat0, /*#*/1,
264 OPC_EmitMergeInputChains1_0,
265 OPC_EmitInteger32, 0,
266 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
267 MVT::i64, 4, 5, 3, 4, 2,
268 18,
269 OPC_CheckPredicate3,
270 OPC_MoveParent,
271 OPC_CheckPatternPredicate1,
272 OPC_CheckComplexPat0, /*#*/1,
273 OPC_EmitMergeInputChains1_0,
274 OPC_EmitInteger32, 0,
275 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_SUB_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
276 MVT::i64, 4, 5, 3, 4, 2,
277 0,
278 66,
279 OPC_CheckChild1TypeI64,
280 OPC_MoveChild2,
281 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
282 OPC_RecordChild0,
283 OPC_MoveParent,
284 OPC_Scope, 18,
285 OPC_CheckPredicate1,
286 OPC_MoveParent,
287 OPC_CheckPatternPredicate2,
288 OPC_CheckComplexPat1, /*#*/1,
289 OPC_EmitMergeInputChains1_0,
290 OPC_EmitInteger32, 0,
291 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
292 MVT::i64, 4, 5, 3, 4, 2,
293 18,
294 OPC_CheckPredicate2,
295 OPC_MoveParent,
296 OPC_CheckPatternPredicate2,
297 OPC_CheckComplexPat1, /*#*/1,
298 OPC_EmitMergeInputChains1_0,
299 OPC_EmitInteger32, 0,
300 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
301 MVT::i64, 4, 5, 3, 4, 2,
302 18,
303 OPC_CheckPredicate3,
304 OPC_MoveParent,
305 OPC_CheckPatternPredicate2,
306 OPC_CheckComplexPat1, /*#*/1,
307 OPC_EmitMergeInputChains1_0,
308 OPC_EmitInteger32, 0,
309 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_SUB_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
310 MVT::i64, 4, 5, 3, 4, 2,
311 0,
312 0,
313 11|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_AND),
314 OPC_RecordMemRef,
315 OPC_RecordNode,
316 OPC_RecordChild1,
317 OPC_Scope, 66,
318 OPC_CheckChild1TypeI32,
319 OPC_MoveChild2,
320 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
321 OPC_RecordChild0,
322 OPC_MoveParent,
323 OPC_Scope, 18,
324 OPC_CheckPredicate1,
325 OPC_MoveParent,
326 OPC_CheckPatternPredicate1,
327 OPC_CheckComplexPat0, /*#*/1,
328 OPC_EmitMergeInputChains1_0,
329 OPC_EmitInteger32, 0,
330 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
331 MVT::i64, 4, 5, 3, 4, 2,
332 18,
333 OPC_CheckPredicate2,
334 OPC_MoveParent,
335 OPC_CheckPatternPredicate1,
336 OPC_CheckComplexPat0, /*#*/1,
337 OPC_EmitMergeInputChains1_0,
338 OPC_EmitInteger32, 0,
339 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
340 MVT::i64, 4, 5, 3, 4, 2,
341 18,
342 OPC_CheckPredicate3,
343 OPC_MoveParent,
344 OPC_CheckPatternPredicate1,
345 OPC_CheckComplexPat0, /*#*/1,
346 OPC_EmitMergeInputChains1_0,
347 OPC_EmitInteger32, 0,
348 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_AND_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
349 MVT::i64, 4, 5, 3, 4, 2,
350 0,
351 66,
352 OPC_CheckChild1TypeI64,
353 OPC_MoveChild2,
354 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
355 OPC_RecordChild0,
356 OPC_MoveParent,
357 OPC_Scope, 18,
358 OPC_CheckPredicate1,
359 OPC_MoveParent,
360 OPC_CheckPatternPredicate2,
361 OPC_CheckComplexPat1, /*#*/1,
362 OPC_EmitMergeInputChains1_0,
363 OPC_EmitInteger32, 0,
364 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
365 MVT::i64, 4, 5, 3, 4, 2,
366 18,
367 OPC_CheckPredicate2,
368 OPC_MoveParent,
369 OPC_CheckPatternPredicate2,
370 OPC_CheckComplexPat1, /*#*/1,
371 OPC_EmitMergeInputChains1_0,
372 OPC_EmitInteger32, 0,
373 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
374 MVT::i64, 4, 5, 3, 4, 2,
375 18,
376 OPC_CheckPredicate3,
377 OPC_MoveParent,
378 OPC_CheckPatternPredicate2,
379 OPC_CheckComplexPat1, /*#*/1,
380 OPC_EmitMergeInputChains1_0,
381 OPC_EmitInteger32, 0,
382 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_AND_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
383 MVT::i64, 4, 5, 3, 4, 2,
384 0,
385 0,
386 11|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_OR),
387 OPC_RecordMemRef,
388 OPC_RecordNode,
389 OPC_RecordChild1,
390 OPC_Scope, 66,
391 OPC_CheckChild1TypeI32,
392 OPC_MoveChild2,
393 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
394 OPC_RecordChild0,
395 OPC_MoveParent,
396 OPC_Scope, 18,
397 OPC_CheckPredicate1,
398 OPC_MoveParent,
399 OPC_CheckPatternPredicate1,
400 OPC_CheckComplexPat0, /*#*/1,
401 OPC_EmitMergeInputChains1_0,
402 OPC_EmitInteger32, 0,
403 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
404 MVT::i64, 4, 5, 3, 4, 2,
405 18,
406 OPC_CheckPredicate2,
407 OPC_MoveParent,
408 OPC_CheckPatternPredicate1,
409 OPC_CheckComplexPat0, /*#*/1,
410 OPC_EmitMergeInputChains1_0,
411 OPC_EmitInteger32, 0,
412 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
413 MVT::i64, 4, 5, 3, 4, 2,
414 18,
415 OPC_CheckPredicate3,
416 OPC_MoveParent,
417 OPC_CheckPatternPredicate1,
418 OPC_CheckComplexPat0, /*#*/1,
419 OPC_EmitMergeInputChains1_0,
420 OPC_EmitInteger32, 0,
421 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_OR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
422 MVT::i64, 4, 5, 3, 4, 2,
423 0,
424 66,
425 OPC_CheckChild1TypeI64,
426 OPC_MoveChild2,
427 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
428 OPC_RecordChild0,
429 OPC_MoveParent,
430 OPC_Scope, 18,
431 OPC_CheckPredicate1,
432 OPC_MoveParent,
433 OPC_CheckPatternPredicate2,
434 OPC_CheckComplexPat1, /*#*/1,
435 OPC_EmitMergeInputChains1_0,
436 OPC_EmitInteger32, 0,
437 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
438 MVT::i64, 4, 5, 3, 4, 2,
439 18,
440 OPC_CheckPredicate2,
441 OPC_MoveParent,
442 OPC_CheckPatternPredicate2,
443 OPC_CheckComplexPat1, /*#*/1,
444 OPC_EmitMergeInputChains1_0,
445 OPC_EmitInteger32, 0,
446 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
447 MVT::i64, 4, 5, 3, 4, 2,
448 18,
449 OPC_CheckPredicate3,
450 OPC_MoveParent,
451 OPC_CheckPatternPredicate2,
452 OPC_CheckComplexPat1, /*#*/1,
453 OPC_EmitMergeInputChains1_0,
454 OPC_EmitInteger32, 0,
455 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_OR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
456 MVT::i64, 4, 5, 3, 4, 2,
457 0,
458 0,
459 11|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),
460 OPC_RecordMemRef,
461 OPC_RecordNode,
462 OPC_RecordChild1,
463 OPC_Scope, 66,
464 OPC_CheckChild1TypeI32,
465 OPC_MoveChild2,
466 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
467 OPC_RecordChild0,
468 OPC_MoveParent,
469 OPC_Scope, 18,
470 OPC_CheckPredicate1,
471 OPC_MoveParent,
472 OPC_CheckPatternPredicate1,
473 OPC_CheckComplexPat0, /*#*/1,
474 OPC_EmitMergeInputChains1_0,
475 OPC_EmitInteger32, 0,
476 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
477 MVT::i64, 4, 5, 3, 4, 2,
478 18,
479 OPC_CheckPredicate2,
480 OPC_MoveParent,
481 OPC_CheckPatternPredicate1,
482 OPC_CheckComplexPat0, /*#*/1,
483 OPC_EmitMergeInputChains1_0,
484 OPC_EmitInteger32, 0,
485 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
486 MVT::i64, 4, 5, 3, 4, 2,
487 18,
488 OPC_CheckPredicate3,
489 OPC_MoveParent,
490 OPC_CheckPatternPredicate1,
491 OPC_CheckComplexPat0, /*#*/1,
492 OPC_EmitMergeInputChains1_0,
493 OPC_EmitInteger32, 0,
494 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_XOR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
495 MVT::i64, 4, 5, 3, 4, 2,
496 0,
497 66,
498 OPC_CheckChild1TypeI64,
499 OPC_MoveChild2,
500 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
501 OPC_RecordChild0,
502 OPC_MoveParent,
503 OPC_Scope, 18,
504 OPC_CheckPredicate1,
505 OPC_MoveParent,
506 OPC_CheckPatternPredicate2,
507 OPC_CheckComplexPat1, /*#*/1,
508 OPC_EmitMergeInputChains1_0,
509 OPC_EmitInteger32, 0,
510 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
511 MVT::i64, 4, 5, 3, 4, 2,
512 18,
513 OPC_CheckPredicate2,
514 OPC_MoveParent,
515 OPC_CheckPatternPredicate2,
516 OPC_CheckComplexPat1, /*#*/1,
517 OPC_EmitMergeInputChains1_0,
518 OPC_EmitInteger32, 0,
519 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
520 MVT::i64, 4, 5, 3, 4, 2,
521 18,
522 OPC_CheckPredicate3,
523 OPC_MoveParent,
524 OPC_CheckPatternPredicate2,
525 OPC_CheckComplexPat1, /*#*/1,
526 OPC_EmitMergeInputChains1_0,
527 OPC_EmitInteger32, 0,
528 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_XOR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
529 MVT::i64, 4, 5, 3, 4, 2,
530 0,
531 0,
532 11|128,1, TARGET_VAL(ISD::ATOMIC_SWAP),
533 OPC_RecordMemRef,
534 OPC_RecordNode,
535 OPC_RecordChild1,
536 OPC_Scope, 66,
537 OPC_CheckChild1TypeI32,
538 OPC_MoveChild2,
539 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
540 OPC_RecordChild0,
541 OPC_MoveParent,
542 OPC_Scope, 18,
543 OPC_CheckPredicate1,
544 OPC_MoveParent,
545 OPC_CheckPatternPredicate1,
546 OPC_CheckComplexPat0, /*#*/1,
547 OPC_EmitMergeInputChains1_0,
548 OPC_EmitInteger32, 0,
549 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
550 MVT::i64, 4, 5, 3, 4, 2,
551 18,
552 OPC_CheckPredicate2,
553 OPC_MoveParent,
554 OPC_CheckPatternPredicate1,
555 OPC_CheckComplexPat0, /*#*/1,
556 OPC_EmitMergeInputChains1_0,
557 OPC_EmitInteger32, 0,
558 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
559 MVT::i64, 4, 5, 3, 4, 2,
560 18,
561 OPC_CheckPredicate3,
562 OPC_MoveParent,
563 OPC_CheckPatternPredicate1,
564 OPC_CheckComplexPat0, /*#*/1,
565 OPC_EmitMergeInputChains1_0,
566 OPC_EmitInteger32, 0,
567 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_XCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
568 MVT::i64, 4, 5, 3, 4, 2,
569 0,
570 66,
571 OPC_CheckChild1TypeI64,
572 OPC_MoveChild2,
573 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
574 OPC_RecordChild0,
575 OPC_MoveParent,
576 OPC_Scope, 18,
577 OPC_CheckPredicate1,
578 OPC_MoveParent,
579 OPC_CheckPatternPredicate2,
580 OPC_CheckComplexPat1, /*#*/1,
581 OPC_EmitMergeInputChains1_0,
582 OPC_EmitInteger32, 0,
583 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
584 MVT::i64, 4, 5, 3, 4, 2,
585 18,
586 OPC_CheckPredicate2,
587 OPC_MoveParent,
588 OPC_CheckPatternPredicate2,
589 OPC_CheckComplexPat1, /*#*/1,
590 OPC_EmitMergeInputChains1_0,
591 OPC_EmitInteger32, 0,
592 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
593 MVT::i64, 4, 5, 3, 4, 2,
594 18,
595 OPC_CheckPredicate3,
596 OPC_MoveParent,
597 OPC_CheckPatternPredicate2,
598 OPC_CheckComplexPat1, /*#*/1,
599 OPC_EmitMergeInputChains1_0,
600 OPC_EmitInteger32, 0,
601 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW32_U_XCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
602 MVT::i64, 4, 5, 3, 4, 2,
603 0,
604 0,
605 121, TARGET_VAL(ISD::ATOMIC_LOAD),
606 OPC_RecordMemRef,
607 OPC_RecordNode,
608 OPC_RecordChild1,
609 OPC_Scope, 57,
610 OPC_CheckChild1TypeI32,
611 OPC_Scope, 17,
612 OPC_CheckPredicate1,
613 OPC_MoveParent,
614 OPC_CheckPatternPredicate3,
615 OPC_CheckComplexPat0, /*#*/1,
616 OPC_EmitMergeInputChains1_0,
617 OPC_EmitInteger32, 0,
618 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD8_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
619 MVT::i64, 3, 4, 2, 3,
620 17,
621 OPC_CheckPredicate2,
622 OPC_MoveParent,
623 OPC_CheckPatternPredicate3,
624 OPC_CheckComplexPat0, /*#*/1,
625 OPC_EmitMergeInputChains1_0,
626 OPC_EmitInteger32, 0,
627 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD16_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
628 MVT::i64, 3, 4, 2, 3,
629 17,
630 OPC_CheckPredicate3,
631 OPC_MoveParent,
632 OPC_CheckPatternPredicate3,
633 OPC_CheckComplexPat0, /*#*/1,
634 OPC_EmitMergeInputChains1_0,
635 OPC_EmitInteger32, 0,
636 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD32_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
637 MVT::i64, 3, 4, 2, 3,
638 0,
639 57,
640 OPC_CheckChild1TypeI64,
641 OPC_Scope, 17,
642 OPC_CheckPredicate1,
643 OPC_MoveParent,
644 OPC_CheckPatternPredicate4,
645 OPC_CheckComplexPat1, /*#*/1,
646 OPC_EmitMergeInputChains1_0,
647 OPC_EmitInteger32, 0,
648 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD8_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
649 MVT::i64, 3, 4, 2, 3,
650 17,
651 OPC_CheckPredicate2,
652 OPC_MoveParent,
653 OPC_CheckPatternPredicate4,
654 OPC_CheckComplexPat1, /*#*/1,
655 OPC_EmitMergeInputChains1_0,
656 OPC_EmitInteger32, 0,
657 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD16_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
658 MVT::i64, 3, 4, 2, 3,
659 17,
660 OPC_CheckPredicate3,
661 OPC_MoveParent,
662 OPC_CheckPatternPredicate4,
663 OPC_CheckComplexPat1, /*#*/1,
664 OPC_EmitMergeInputChains1_0,
665 OPC_EmitInteger32, 0,
666 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD32_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
667 MVT::i64, 3, 4, 2, 3,
668 0,
669 0,
670 0,
671 7,
672 OPC_RecordChild0,
673 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_EXTEND_U_I32),
674 MVT::i64, 1, 0,
675 0,
676 86|128,6, TARGET_VAL(ISD::ANY_EXTEND),
677 OPC_Scope, 74|128,6,
678 OPC_MoveChild0,
679 OPC_SwitchOpcode , 124, TARGET_VAL(ISD::AssertZext),
680 OPC_MoveChild0,
681 OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
682 OPC_RecordMemRef,
683 OPC_RecordNode,
684 OPC_CheckFoldableChainNode,
685 OPC_RecordChild1,
686 OPC_Scope, 56,
687 OPC_CheckChild1TypeI32,
688 OPC_MoveChild2,
689 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
690 OPC_RecordChild0,
691 OPC_MoveSibling3,
692 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
693 OPC_RecordChild0,
694 OPC_MoveParent,
695 OPC_Scope, 20,
696 OPC_CheckPredicate1,
697 OPC_MoveParent,
698 OPC_MoveParent,
699 OPC_CheckPatternPredicate1,
700 OPC_CheckComplexPat0, /*#*/1,
701 OPC_EmitMergeInputChains1_0,
702 OPC_EmitInteger32, 0,
703 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
704 MVT::i64, 5, 6, 4, 5, 2, 3,
705 20,
706 OPC_CheckPredicate2,
707 OPC_MoveParent,
708 OPC_MoveParent,
709 OPC_CheckPatternPredicate1,
710 OPC_CheckComplexPat0, /*#*/1,
711 OPC_EmitMergeInputChains1_0,
712 OPC_EmitInteger32, 0,
713 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
714 MVT::i64, 5, 6, 4, 5, 2, 3,
715 0,
716 56,
717 OPC_CheckChild1TypeI64,
718 OPC_MoveChild2,
719 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
720 OPC_RecordChild0,
721 OPC_MoveSibling3,
722 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
723 OPC_RecordChild0,
724 OPC_MoveParent,
725 OPC_Scope, 20,
726 OPC_CheckPredicate1,
727 OPC_MoveParent,
728 OPC_MoveParent,
729 OPC_CheckPatternPredicate2,
730 OPC_CheckComplexPat1, /*#*/1,
731 OPC_EmitMergeInputChains1_0,
732 OPC_EmitInteger32, 0,
733 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
734 MVT::i64, 5, 6, 4, 5, 2, 3,
735 20,
736 OPC_CheckPredicate2,
737 OPC_MoveParent,
738 OPC_MoveParent,
739 OPC_CheckPatternPredicate2,
740 OPC_CheckComplexPat1, /*#*/1,
741 OPC_EmitMergeInputChains1_0,
742 OPC_EmitInteger32, 0,
743 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
744 MVT::i64, 5, 6, 4, 5, 2, 3,
745 0,
746 0,
747 101, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),
748 OPC_RecordMemRef,
749 OPC_RecordNode,
750 OPC_RecordChild1,
751 OPC_Scope, 47,
752 OPC_CheckChild1TypeI32,
753 OPC_MoveChild2,
754 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
755 OPC_RecordChild0,
756 OPC_MoveParent,
757 OPC_Scope, 18,
758 OPC_CheckPredicate1,
759 OPC_MoveParent,
760 OPC_CheckPatternPredicate1,
761 OPC_CheckComplexPat0, /*#*/1,
762 OPC_EmitMergeInputChains1_0,
763 OPC_EmitInteger32, 0,
764 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
765 MVT::i64, 4, 5, 3, 4, 2,
766 18,
767 OPC_CheckPredicate2,
768 OPC_MoveParent,
769 OPC_CheckPatternPredicate1,
770 OPC_CheckComplexPat0, /*#*/1,
771 OPC_EmitMergeInputChains1_0,
772 OPC_EmitInteger32, 0,
773 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
774 MVT::i64, 4, 5, 3, 4, 2,
775 0,
776 47,
777 OPC_CheckChild1TypeI64,
778 OPC_MoveChild2,
779 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
780 OPC_RecordChild0,
781 OPC_MoveParent,
782 OPC_Scope, 18,
783 OPC_CheckPredicate1,
784 OPC_MoveParent,
785 OPC_CheckPatternPredicate2,
786 OPC_CheckComplexPat1, /*#*/1,
787 OPC_EmitMergeInputChains1_0,
788 OPC_EmitInteger32, 0,
789 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
790 MVT::i64, 4, 5, 3, 4, 2,
791 18,
792 OPC_CheckPredicate2,
793 OPC_MoveParent,
794 OPC_CheckPatternPredicate2,
795 OPC_CheckComplexPat1, /*#*/1,
796 OPC_EmitMergeInputChains1_0,
797 OPC_EmitInteger32, 0,
798 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
799 MVT::i64, 4, 5, 3, 4, 2,
800 0,
801 0,
802 101, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),
803 OPC_RecordMemRef,
804 OPC_RecordNode,
805 OPC_RecordChild1,
806 OPC_Scope, 47,
807 OPC_CheckChild1TypeI32,
808 OPC_MoveChild2,
809 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
810 OPC_RecordChild0,
811 OPC_MoveParent,
812 OPC_Scope, 18,
813 OPC_CheckPredicate1,
814 OPC_MoveParent,
815 OPC_CheckPatternPredicate1,
816 OPC_CheckComplexPat0, /*#*/1,
817 OPC_EmitMergeInputChains1_0,
818 OPC_EmitInteger32, 0,
819 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
820 MVT::i64, 4, 5, 3, 4, 2,
821 18,
822 OPC_CheckPredicate2,
823 OPC_MoveParent,
824 OPC_CheckPatternPredicate1,
825 OPC_CheckComplexPat0, /*#*/1,
826 OPC_EmitMergeInputChains1_0,
827 OPC_EmitInteger32, 0,
828 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
829 MVT::i64, 4, 5, 3, 4, 2,
830 0,
831 47,
832 OPC_CheckChild1TypeI64,
833 OPC_MoveChild2,
834 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
835 OPC_RecordChild0,
836 OPC_MoveParent,
837 OPC_Scope, 18,
838 OPC_CheckPredicate1,
839 OPC_MoveParent,
840 OPC_CheckPatternPredicate2,
841 OPC_CheckComplexPat1, /*#*/1,
842 OPC_EmitMergeInputChains1_0,
843 OPC_EmitInteger32, 0,
844 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
845 MVT::i64, 4, 5, 3, 4, 2,
846 18,
847 OPC_CheckPredicate2,
848 OPC_MoveParent,
849 OPC_CheckPatternPredicate2,
850 OPC_CheckComplexPat1, /*#*/1,
851 OPC_EmitMergeInputChains1_0,
852 OPC_EmitInteger32, 0,
853 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
854 MVT::i64, 4, 5, 3, 4, 2,
855 0,
856 0,
857 101, TARGET_VAL(ISD::ATOMIC_LOAD_AND),
858 OPC_RecordMemRef,
859 OPC_RecordNode,
860 OPC_RecordChild1,
861 OPC_Scope, 47,
862 OPC_CheckChild1TypeI32,
863 OPC_MoveChild2,
864 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
865 OPC_RecordChild0,
866 OPC_MoveParent,
867 OPC_Scope, 18,
868 OPC_CheckPredicate1,
869 OPC_MoveParent,
870 OPC_CheckPatternPredicate1,
871 OPC_CheckComplexPat0, /*#*/1,
872 OPC_EmitMergeInputChains1_0,
873 OPC_EmitInteger32, 0,
874 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
875 MVT::i64, 4, 5, 3, 4, 2,
876 18,
877 OPC_CheckPredicate2,
878 OPC_MoveParent,
879 OPC_CheckPatternPredicate1,
880 OPC_CheckComplexPat0, /*#*/1,
881 OPC_EmitMergeInputChains1_0,
882 OPC_EmitInteger32, 0,
883 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
884 MVT::i64, 4, 5, 3, 4, 2,
885 0,
886 47,
887 OPC_CheckChild1TypeI64,
888 OPC_MoveChild2,
889 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
890 OPC_RecordChild0,
891 OPC_MoveParent,
892 OPC_Scope, 18,
893 OPC_CheckPredicate1,
894 OPC_MoveParent,
895 OPC_CheckPatternPredicate2,
896 OPC_CheckComplexPat1, /*#*/1,
897 OPC_EmitMergeInputChains1_0,
898 OPC_EmitInteger32, 0,
899 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
900 MVT::i64, 4, 5, 3, 4, 2,
901 18,
902 OPC_CheckPredicate2,
903 OPC_MoveParent,
904 OPC_CheckPatternPredicate2,
905 OPC_CheckComplexPat1, /*#*/1,
906 OPC_EmitMergeInputChains1_0,
907 OPC_EmitInteger32, 0,
908 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
909 MVT::i64, 4, 5, 3, 4, 2,
910 0,
911 0,
912 101, TARGET_VAL(ISD::ATOMIC_LOAD_OR),
913 OPC_RecordMemRef,
914 OPC_RecordNode,
915 OPC_RecordChild1,
916 OPC_Scope, 47,
917 OPC_CheckChild1TypeI32,
918 OPC_MoveChild2,
919 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
920 OPC_RecordChild0,
921 OPC_MoveParent,
922 OPC_Scope, 18,
923 OPC_CheckPredicate1,
924 OPC_MoveParent,
925 OPC_CheckPatternPredicate1,
926 OPC_CheckComplexPat0, /*#*/1,
927 OPC_EmitMergeInputChains1_0,
928 OPC_EmitInteger32, 0,
929 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
930 MVT::i64, 4, 5, 3, 4, 2,
931 18,
932 OPC_CheckPredicate2,
933 OPC_MoveParent,
934 OPC_CheckPatternPredicate1,
935 OPC_CheckComplexPat0, /*#*/1,
936 OPC_EmitMergeInputChains1_0,
937 OPC_EmitInteger32, 0,
938 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
939 MVT::i64, 4, 5, 3, 4, 2,
940 0,
941 47,
942 OPC_CheckChild1TypeI64,
943 OPC_MoveChild2,
944 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
945 OPC_RecordChild0,
946 OPC_MoveParent,
947 OPC_Scope, 18,
948 OPC_CheckPredicate1,
949 OPC_MoveParent,
950 OPC_CheckPatternPredicate2,
951 OPC_CheckComplexPat1, /*#*/1,
952 OPC_EmitMergeInputChains1_0,
953 OPC_EmitInteger32, 0,
954 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
955 MVT::i64, 4, 5, 3, 4, 2,
956 18,
957 OPC_CheckPredicate2,
958 OPC_MoveParent,
959 OPC_CheckPatternPredicate2,
960 OPC_CheckComplexPat1, /*#*/1,
961 OPC_EmitMergeInputChains1_0,
962 OPC_EmitInteger32, 0,
963 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
964 MVT::i64, 4, 5, 3, 4, 2,
965 0,
966 0,
967 101, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),
968 OPC_RecordMemRef,
969 OPC_RecordNode,
970 OPC_RecordChild1,
971 OPC_Scope, 47,
972 OPC_CheckChild1TypeI32,
973 OPC_MoveChild2,
974 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
975 OPC_RecordChild0,
976 OPC_MoveParent,
977 OPC_Scope, 18,
978 OPC_CheckPredicate1,
979 OPC_MoveParent,
980 OPC_CheckPatternPredicate1,
981 OPC_CheckComplexPat0, /*#*/1,
982 OPC_EmitMergeInputChains1_0,
983 OPC_EmitInteger32, 0,
984 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
985 MVT::i64, 4, 5, 3, 4, 2,
986 18,
987 OPC_CheckPredicate2,
988 OPC_MoveParent,
989 OPC_CheckPatternPredicate1,
990 OPC_CheckComplexPat0, /*#*/1,
991 OPC_EmitMergeInputChains1_0,
992 OPC_EmitInteger32, 0,
993 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
994 MVT::i64, 4, 5, 3, 4, 2,
995 0,
996 47,
997 OPC_CheckChild1TypeI64,
998 OPC_MoveChild2,
999 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
1000 OPC_RecordChild0,
1001 OPC_MoveParent,
1002 OPC_Scope, 18,
1003 OPC_CheckPredicate1,
1004 OPC_MoveParent,
1005 OPC_CheckPatternPredicate2,
1006 OPC_CheckComplexPat1, /*#*/1,
1007 OPC_EmitMergeInputChains1_0,
1008 OPC_EmitInteger32, 0,
1009 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1010 MVT::i64, 4, 5, 3, 4, 2,
1011 18,
1012 OPC_CheckPredicate2,
1013 OPC_MoveParent,
1014 OPC_CheckPatternPredicate2,
1015 OPC_CheckComplexPat1, /*#*/1,
1016 OPC_EmitMergeInputChains1_0,
1017 OPC_EmitInteger32, 0,
1018 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1019 MVT::i64, 4, 5, 3, 4, 2,
1020 0,
1021 0,
1022 101, TARGET_VAL(ISD::ATOMIC_SWAP),
1023 OPC_RecordMemRef,
1024 OPC_RecordNode,
1025 OPC_RecordChild1,
1026 OPC_Scope, 47,
1027 OPC_CheckChild1TypeI32,
1028 OPC_MoveChild2,
1029 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
1030 OPC_RecordChild0,
1031 OPC_MoveParent,
1032 OPC_Scope, 18,
1033 OPC_CheckPredicate1,
1034 OPC_MoveParent,
1035 OPC_CheckPatternPredicate1,
1036 OPC_CheckComplexPat0, /*#*/1,
1037 OPC_EmitMergeInputChains1_0,
1038 OPC_EmitInteger32, 0,
1039 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1040 MVT::i64, 4, 5, 3, 4, 2,
1041 18,
1042 OPC_CheckPredicate2,
1043 OPC_MoveParent,
1044 OPC_CheckPatternPredicate1,
1045 OPC_CheckComplexPat0, /*#*/1,
1046 OPC_EmitMergeInputChains1_0,
1047 OPC_EmitInteger32, 0,
1048 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1049 MVT::i64, 4, 5, 3, 4, 2,
1050 0,
1051 47,
1052 OPC_CheckChild1TypeI64,
1053 OPC_MoveChild2,
1054 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
1055 OPC_RecordChild0,
1056 OPC_MoveParent,
1057 OPC_Scope, 18,
1058 OPC_CheckPredicate1,
1059 OPC_MoveParent,
1060 OPC_CheckPatternPredicate2,
1061 OPC_CheckComplexPat1, /*#*/1,
1062 OPC_EmitMergeInputChains1_0,
1063 OPC_EmitInteger32, 0,
1064 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1065 MVT::i64, 4, 5, 3, 4, 2,
1066 18,
1067 OPC_CheckPredicate2,
1068 OPC_MoveParent,
1069 OPC_CheckPatternPredicate2,
1070 OPC_CheckComplexPat1, /*#*/1,
1071 OPC_EmitMergeInputChains1_0,
1072 OPC_EmitInteger32, 0,
1073 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1074 MVT::i64, 4, 5, 3, 4, 2,
1075 0,
1076 0,
1077 85, TARGET_VAL(ISD::ATOMIC_LOAD),
1078 OPC_RecordMemRef,
1079 OPC_RecordNode,
1080 OPC_RecordChild1,
1081 OPC_Scope, 39,
1082 OPC_CheckChild1TypeI32,
1083 OPC_Scope, 17,
1084 OPC_CheckPredicate1,
1085 OPC_MoveParent,
1086 OPC_CheckPatternPredicate3,
1087 OPC_CheckComplexPat0, /*#*/1,
1088 OPC_EmitMergeInputChains1_0,
1089 OPC_EmitInteger32, 0,
1090 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD8_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1091 MVT::i64, 3, 4, 2, 3,
1092 17,
1093 OPC_CheckPredicate2,
1094 OPC_MoveParent,
1095 OPC_CheckPatternPredicate3,
1096 OPC_CheckComplexPat0, /*#*/1,
1097 OPC_EmitMergeInputChains1_0,
1098 OPC_EmitInteger32, 0,
1099 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD16_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1100 MVT::i64, 3, 4, 2, 3,
1101 0,
1102 39,
1103 OPC_CheckChild1TypeI64,
1104 OPC_Scope, 17,
1105 OPC_CheckPredicate1,
1106 OPC_MoveParent,
1107 OPC_CheckPatternPredicate4,
1108 OPC_CheckComplexPat1, /*#*/1,
1109 OPC_EmitMergeInputChains1_0,
1110 OPC_EmitInteger32, 0,
1111 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD8_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1112 MVT::i64, 3, 4, 2, 3,
1113 17,
1114 OPC_CheckPredicate2,
1115 OPC_MoveParent,
1116 OPC_CheckPatternPredicate4,
1117 OPC_CheckComplexPat1, /*#*/1,
1118 OPC_EmitMergeInputChains1_0,
1119 OPC_EmitInteger32, 0,
1120 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD16_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1121 MVT::i64, 3, 4, 2, 3,
1122 0,
1123 0,
1124 0,
1125 7,
1126 OPC_RecordChild0,
1127 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_EXTEND_U_I32),
1128 MVT::i64, 1, 0,
1129 0,
1130 22|128,7, TARGET_VAL(ISD::STORE),
1131 OPC_RecordMemRef,
1132 OPC_RecordNode,
1133 OPC_Scope, 127|128,1,
1134 OPC_MoveChild1,
1135 OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
1136 OPC_RecordChild0,
1137 OPC_Scope, 64,
1138 OPC_CheckChild0Type, MVT::v16i8,
1139 OPC_RecordChild1,
1140 OPC_MoveChild1,
1141 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1142 OPC_CheckPredicate, 11,
1143 OPC_CheckTypeI32,
1144 OPC_MoveParent,
1145 OPC_CheckTypeI32,
1146 OPC_MoveParent,
1147 OPC_RecordChild2,
1148 OPC_Scope, 23,
1149 OPC_CheckChild2TypeI32,
1150 OPC_CheckPredicate4,
1151 OPC_CheckPredicate, 12,
1152 OPC_CheckPredicate, 19,
1153 OPC_CheckPatternPredicate3,
1154 OPC_CheckComplexPat0, /*#*/3,
1155 OPC_EmitMergeInputChains1_0,
1156 OPC_EmitInteger32, 0,
1157 OPC_EmitConvertToTarget2,
1158 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I8x16_A32), 0|OPFL_Chain|OPFL_MemRefs,
1159 5, 6, 4, 7, 5, 1,
1160 23,
1161 OPC_CheckChild2TypeI64,
1162 OPC_CheckPredicate4,
1163 OPC_CheckPredicate, 12,
1164 OPC_CheckPredicate, 19,
1165 OPC_CheckPatternPredicate4,
1166 OPC_CheckComplexPat1, /*#*/3,
1167 OPC_EmitMergeInputChains1_0,
1168 OPC_EmitInteger32, 0,
1169 OPC_EmitConvertToTarget2,
1170 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I8x16_A64), 0|OPFL_Chain|OPFL_MemRefs,
1171 5, 6, 4, 7, 5, 1,
1172 0,
1173 64,
1174 OPC_CheckChild0Type, MVT::v8i16,
1175 OPC_RecordChild1,
1176 OPC_MoveChild1,
1177 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1178 OPC_CheckPredicate, 16,
1179 OPC_CheckTypeI32,
1180 OPC_MoveParent,
1181 OPC_CheckTypeI32,
1182 OPC_MoveParent,
1183 OPC_RecordChild2,
1184 OPC_Scope, 23,
1185 OPC_CheckChild2TypeI32,
1186 OPC_CheckPredicate4,
1187 OPC_CheckPredicate, 12,
1188 OPC_CheckPredicate, 20,
1189 OPC_CheckPatternPredicate3,
1190 OPC_CheckComplexPat0, /*#*/3,
1191 OPC_EmitMergeInputChains1_0,
1192 OPC_EmitInteger32, 0,
1193 OPC_EmitConvertToTarget2,
1194 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I16x8_A32), 0|OPFL_Chain|OPFL_MemRefs,
1195 5, 6, 4, 7, 5, 1,
1196 23,
1197 OPC_CheckChild2TypeI64,
1198 OPC_CheckPredicate4,
1199 OPC_CheckPredicate, 12,
1200 OPC_CheckPredicate, 20,
1201 OPC_CheckPatternPredicate4,
1202 OPC_CheckComplexPat1, /*#*/3,
1203 OPC_EmitMergeInputChains1_0,
1204 OPC_EmitInteger32, 0,
1205 OPC_EmitConvertToTarget2,
1206 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I16x8_A64), 0|OPFL_Chain|OPFL_MemRefs,
1207 5, 6, 4, 7, 5, 1,
1208 0,
1209 58,
1210 OPC_CheckChild0Type, MVT::v4i32,
1211 OPC_RecordChild1,
1212 OPC_MoveChild1,
1213 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1214 OPC_CheckPredicate, 17,
1215 OPC_CheckTypeI32,
1216 OPC_MoveParent,
1217 OPC_CheckTypeI32,
1218 OPC_MoveParent,
1219 OPC_RecordChild2,
1220 OPC_Scope, 20,
1221 OPC_CheckChild2TypeI32,
1222 OPC_CheckPredicate4,
1223 OPC_CheckPredicate5,
1224 OPC_CheckPatternPredicate3,
1225 OPC_CheckComplexPat0, /*#*/3,
1226 OPC_EmitMergeInputChains1_0,
1227 OPC_EmitInteger32, 0,
1228 OPC_EmitConvertToTarget2,
1229 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
1230 5, 6, 4, 7, 5, 1,
1231 20,
1232 OPC_CheckChild2TypeI64,
1233 OPC_CheckPredicate4,
1234 OPC_CheckPredicate5,
1235 OPC_CheckPatternPredicate4,
1236 OPC_CheckComplexPat1, /*#*/3,
1237 OPC_EmitMergeInputChains1_0,
1238 OPC_EmitInteger32, 0,
1239 OPC_EmitConvertToTarget2,
1240 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
1241 5, 6, 4, 7, 5, 1,
1242 0,
1243 58,
1244 OPC_CheckChild0Type, MVT::v2i64,
1245 OPC_RecordChild1,
1246 OPC_MoveChild1,
1247 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1248 OPC_CheckPredicate, 18,
1249 OPC_CheckTypeI32,
1250 OPC_MoveParent,
1251 OPC_CheckTypeI64,
1252 OPC_MoveParent,
1253 OPC_RecordChild2,
1254 OPC_Scope, 20,
1255 OPC_CheckChild2TypeI32,
1256 OPC_CheckPredicate4,
1257 OPC_CheckPredicate5,
1258 OPC_CheckPatternPredicate3,
1259 OPC_CheckComplexPat0, /*#*/3,
1260 OPC_EmitMergeInputChains1_0,
1261 OPC_EmitInteger32, 0,
1262 OPC_EmitConvertToTarget2,
1263 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
1264 5, 6, 4, 7, 5, 1,
1265 20,
1266 OPC_CheckChild2TypeI64,
1267 OPC_CheckPredicate4,
1268 OPC_CheckPredicate5,
1269 OPC_CheckPatternPredicate4,
1270 OPC_CheckComplexPat1, /*#*/3,
1271 OPC_EmitMergeInputChains1_0,
1272 OPC_EmitInteger32, 0,
1273 OPC_EmitConvertToTarget2,
1274 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_LANE_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
1275 5, 6, 4, 7, 5, 1,
1276 0,
1277 0,
1278 15|128,5,
1279 OPC_RecordChild1,
1280 OPC_Scope, 2|128,1,
1281 OPC_CheckChild1TypeI32,
1282 OPC_RecordChild2,
1283 OPC_Scope, 62,
1284 OPC_CheckChild2TypeI32,
1285 OPC_CheckPredicate4,
1286 OPC_Scope, 16,
1287 OPC_CheckPredicate5,
1288 OPC_CheckPatternPredicate3,
1289 OPC_CheckComplexPat0, /*#*/2,
1290 OPC_EmitMergeInputChains1_0,
1291 OPC_EmitInteger32, 0,
1292 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
1293 4, 5, 3, 4, 1,
1294 40,
1295 OPC_CheckPredicate, 12,
1296 OPC_Scope, 17,
1297 OPC_CheckPredicate, 19,
1298 OPC_CheckPatternPredicate3,
1299 OPC_CheckComplexPat0, /*#*/2,
1300 OPC_EmitMergeInputChains1_0,
1301 OPC_EmitInteger32, 0,
1302 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE8_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
1303 4, 5, 3, 4, 1,
1304 17,
1305 OPC_CheckPredicate, 20,
1306 OPC_CheckPatternPredicate3,
1307 OPC_CheckComplexPat0, /*#*/2,
1308 OPC_EmitMergeInputChains1_0,
1309 OPC_EmitInteger32, 0,
1310 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE16_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
1311 4, 5, 3, 4, 1,
1312 0,
1313 0,
1314 62,
1315 OPC_CheckChild2TypeI64,
1316 OPC_CheckPredicate4,
1317 OPC_Scope, 16,
1318 OPC_CheckPredicate5,
1319 OPC_CheckPatternPredicate4,
1320 OPC_CheckComplexPat1, /*#*/2,
1321 OPC_EmitMergeInputChains1_0,
1322 OPC_EmitInteger32, 0,
1323 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
1324 4, 5, 3, 4, 1,
1325 40,
1326 OPC_CheckPredicate, 12,
1327 OPC_Scope, 17,
1328 OPC_CheckPredicate, 19,
1329 OPC_CheckPatternPredicate4,
1330 OPC_CheckComplexPat1, /*#*/2,
1331 OPC_EmitMergeInputChains1_0,
1332 OPC_EmitInteger32, 0,
1333 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE8_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
1334 4, 5, 3, 4, 1,
1335 17,
1336 OPC_CheckPredicate, 20,
1337 OPC_CheckPatternPredicate4,
1338 OPC_CheckComplexPat1, /*#*/2,
1339 OPC_EmitMergeInputChains1_0,
1340 OPC_EmitInteger32, 0,
1341 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE16_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
1342 4, 5, 3, 4, 1,
1343 0,
1344 0,
1345 0,
1346 38|128,1,
1347 OPC_CheckChild1TypeI64,
1348 OPC_RecordChild2,
1349 OPC_Scope, 80,
1350 OPC_CheckChild2TypeI32,
1351 OPC_CheckPredicate4,
1352 OPC_Scope, 16,
1353 OPC_CheckPredicate5,
1354 OPC_CheckPatternPredicate3,
1355 OPC_CheckComplexPat0, /*#*/2,
1356 OPC_EmitMergeInputChains1_0,
1357 OPC_EmitInteger32, 0,
1358 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1359 4, 5, 3, 4, 1,
1360 58,
1361 OPC_CheckPredicate, 12,
1362 OPC_Scope, 17,
1363 OPC_CheckPredicate, 19,
1364 OPC_CheckPatternPredicate3,
1365 OPC_CheckComplexPat0, /*#*/2,
1366 OPC_EmitMergeInputChains1_0,
1367 OPC_EmitInteger32, 0,
1368 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE8_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1369 4, 5, 3, 4, 1,
1370 17,
1371 OPC_CheckPredicate, 20,
1372 OPC_CheckPatternPredicate3,
1373 OPC_CheckComplexPat0, /*#*/2,
1374 OPC_EmitMergeInputChains1_0,
1375 OPC_EmitInteger32, 0,
1376 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE16_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1377 4, 5, 3, 4, 1,
1378 17,
1379 OPC_CheckPredicate, 25,
1380 OPC_CheckPatternPredicate3,
1381 OPC_CheckComplexPat0, /*#*/2,
1382 OPC_EmitMergeInputChains1_0,
1383 OPC_EmitInteger32, 0,
1384 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE32_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1385 4, 5, 3, 4, 1,
1386 0,
1387 0,
1388 80,
1389 OPC_CheckChild2TypeI64,
1390 OPC_CheckPredicate4,
1391 OPC_Scope, 16,
1392 OPC_CheckPredicate5,
1393 OPC_CheckPatternPredicate4,
1394 OPC_CheckComplexPat1, /*#*/2,
1395 OPC_EmitMergeInputChains1_0,
1396 OPC_EmitInteger32, 0,
1397 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1398 4, 5, 3, 4, 1,
1399 58,
1400 OPC_CheckPredicate, 12,
1401 OPC_Scope, 17,
1402 OPC_CheckPredicate, 19,
1403 OPC_CheckPatternPredicate4,
1404 OPC_CheckComplexPat1, /*#*/2,
1405 OPC_EmitMergeInputChains1_0,
1406 OPC_EmitInteger32, 0,
1407 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE8_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1408 4, 5, 3, 4, 1,
1409 17,
1410 OPC_CheckPredicate, 20,
1411 OPC_CheckPatternPredicate4,
1412 OPC_CheckComplexPat1, /*#*/2,
1413 OPC_EmitMergeInputChains1_0,
1414 OPC_EmitInteger32, 0,
1415 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE16_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1416 4, 5, 3, 4, 1,
1417 17,
1418 OPC_CheckPredicate, 25,
1419 OPC_CheckPatternPredicate4,
1420 OPC_CheckComplexPat1, /*#*/2,
1421 OPC_EmitMergeInputChains1_0,
1422 OPC_EmitInteger32, 0,
1423 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE32_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1424 4, 5, 3, 4, 1,
1425 0,
1426 0,
1427 0,
1428 43,
1429 OPC_CheckChild1Type, MVT::f32,
1430 OPC_RecordChild2,
1431 OPC_Scope, 18,
1432 OPC_CheckChild2TypeI32,
1433 OPC_CheckPredicate4,
1434 OPC_CheckPredicate5,
1435 OPC_CheckPatternPredicate3,
1436 OPC_CheckComplexPat0, /*#*/2,
1437 OPC_EmitMergeInputChains1_0,
1438 OPC_EmitInteger32, 0,
1439 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_F32_A32), 0|OPFL_Chain|OPFL_MemRefs,
1440 4, 5, 3, 4, 1,
1441 18,
1442 OPC_CheckChild2TypeI64,
1443 OPC_CheckPredicate4,
1444 OPC_CheckPredicate5,
1445 OPC_CheckPatternPredicate4,
1446 OPC_CheckComplexPat1, /*#*/2,
1447 OPC_EmitMergeInputChains1_0,
1448 OPC_EmitInteger32, 0,
1449 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_F32_A64), 0|OPFL_Chain|OPFL_MemRefs,
1450 4, 5, 3, 4, 1,
1451 0,
1452 43,
1453 OPC_CheckChild1Type, MVT::f64,
1454 OPC_RecordChild2,
1455 OPC_Scope, 18,
1456 OPC_CheckChild2TypeI32,
1457 OPC_CheckPredicate4,
1458 OPC_CheckPredicate5,
1459 OPC_CheckPatternPredicate3,
1460 OPC_CheckComplexPat0, /*#*/2,
1461 OPC_EmitMergeInputChains1_0,
1462 OPC_EmitInteger32, 0,
1463 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_F64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1464 4, 5, 3, 4, 1,
1465 18,
1466 OPC_CheckChild2TypeI64,
1467 OPC_CheckPredicate4,
1468 OPC_CheckPredicate5,
1469 OPC_CheckPatternPredicate4,
1470 OPC_CheckComplexPat1, /*#*/2,
1471 OPC_EmitMergeInputChains1_0,
1472 OPC_EmitInteger32, 0,
1473 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_F64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1474 4, 5, 3, 4, 1,
1475 0,
1476 43,
1477 OPC_CheckChild1Type, MVT::v16i8,
1478 OPC_RecordChild2,
1479 OPC_Scope, 18,
1480 OPC_CheckChild2TypeI32,
1481 OPC_CheckPredicate4,
1482 OPC_CheckPredicate5,
1483 OPC_CheckPatternPredicate3,
1484 OPC_CheckComplexPat0, /*#*/2,
1485 OPC_EmitMergeInputChains1_0,
1486 OPC_EmitInteger32, 0,
1487 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
1488 4, 5, 3, 4, 1,
1489 18,
1490 OPC_CheckChild2TypeI64,
1491 OPC_CheckPredicate4,
1492 OPC_CheckPredicate5,
1493 OPC_CheckPatternPredicate4,
1494 OPC_CheckComplexPat1, /*#*/2,
1495 OPC_EmitMergeInputChains1_0,
1496 OPC_EmitInteger32, 0,
1497 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
1498 4, 5, 3, 4, 1,
1499 0,
1500 43,
1501 OPC_CheckChild1Type, MVT::v8i16,
1502 OPC_RecordChild2,
1503 OPC_Scope, 18,
1504 OPC_CheckChild2TypeI32,
1505 OPC_CheckPredicate4,
1506 OPC_CheckPredicate5,
1507 OPC_CheckPatternPredicate3,
1508 OPC_CheckComplexPat0, /*#*/2,
1509 OPC_EmitMergeInputChains1_0,
1510 OPC_EmitInteger32, 0,
1511 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
1512 4, 5, 3, 4, 1,
1513 18,
1514 OPC_CheckChild2TypeI64,
1515 OPC_CheckPredicate4,
1516 OPC_CheckPredicate5,
1517 OPC_CheckPatternPredicate4,
1518 OPC_CheckComplexPat1, /*#*/2,
1519 OPC_EmitMergeInputChains1_0,
1520 OPC_EmitInteger32, 0,
1521 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
1522 4, 5, 3, 4, 1,
1523 0,
1524 43,
1525 OPC_CheckChild1Type, MVT::v4i32,
1526 OPC_RecordChild2,
1527 OPC_Scope, 18,
1528 OPC_CheckChild2TypeI32,
1529 OPC_CheckPredicate4,
1530 OPC_CheckPredicate5,
1531 OPC_CheckPatternPredicate3,
1532 OPC_CheckComplexPat0, /*#*/2,
1533 OPC_EmitMergeInputChains1_0,
1534 OPC_EmitInteger32, 0,
1535 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
1536 4, 5, 3, 4, 1,
1537 18,
1538 OPC_CheckChild2TypeI64,
1539 OPC_CheckPredicate4,
1540 OPC_CheckPredicate5,
1541 OPC_CheckPatternPredicate4,
1542 OPC_CheckComplexPat1, /*#*/2,
1543 OPC_EmitMergeInputChains1_0,
1544 OPC_EmitInteger32, 0,
1545 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
1546 4, 5, 3, 4, 1,
1547 0,
1548 43,
1549 OPC_CheckChild1Type, MVT::v2i64,
1550 OPC_RecordChild2,
1551 OPC_Scope, 18,
1552 OPC_CheckChild2TypeI32,
1553 OPC_CheckPredicate4,
1554 OPC_CheckPredicate5,
1555 OPC_CheckPatternPredicate3,
1556 OPC_CheckComplexPat0, /*#*/2,
1557 OPC_EmitMergeInputChains1_0,
1558 OPC_EmitInteger32, 0,
1559 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
1560 4, 5, 3, 4, 1,
1561 18,
1562 OPC_CheckChild2TypeI64,
1563 OPC_CheckPredicate4,
1564 OPC_CheckPredicate5,
1565 OPC_CheckPatternPredicate4,
1566 OPC_CheckComplexPat1, /*#*/2,
1567 OPC_EmitMergeInputChains1_0,
1568 OPC_EmitInteger32, 0,
1569 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
1570 4, 5, 3, 4, 1,
1571 0,
1572 43,
1573 OPC_CheckChild1Type, MVT::v4f32,
1574 OPC_RecordChild2,
1575 OPC_Scope, 18,
1576 OPC_CheckChild2TypeI32,
1577 OPC_CheckPredicate4,
1578 OPC_CheckPredicate5,
1579 OPC_CheckPatternPredicate3,
1580 OPC_CheckComplexPat0, /*#*/2,
1581 OPC_EmitMergeInputChains1_0,
1582 OPC_EmitInteger32, 0,
1583 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
1584 4, 5, 3, 4, 1,
1585 18,
1586 OPC_CheckChild2TypeI64,
1587 OPC_CheckPredicate4,
1588 OPC_CheckPredicate5,
1589 OPC_CheckPatternPredicate4,
1590 OPC_CheckComplexPat1, /*#*/2,
1591 OPC_EmitMergeInputChains1_0,
1592 OPC_EmitInteger32, 0,
1593 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
1594 4, 5, 3, 4, 1,
1595 0,
1596 43,
1597 OPC_CheckChild1Type, MVT::v2f64,
1598 OPC_RecordChild2,
1599 OPC_Scope, 18,
1600 OPC_CheckChild2TypeI32,
1601 OPC_CheckPredicate4,
1602 OPC_CheckPredicate5,
1603 OPC_CheckPatternPredicate3,
1604 OPC_CheckComplexPat0, /*#*/2,
1605 OPC_EmitMergeInputChains1_0,
1606 OPC_EmitInteger32, 0,
1607 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
1608 4, 5, 3, 4, 1,
1609 18,
1610 OPC_CheckChild2TypeI64,
1611 OPC_CheckPredicate4,
1612 OPC_CheckPredicate5,
1613 OPC_CheckPatternPredicate4,
1614 OPC_CheckComplexPat1, /*#*/2,
1615 OPC_EmitMergeInputChains1_0,
1616 OPC_EmitInteger32, 0,
1617 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
1618 4, 5, 3, 4, 1,
1619 0,
1620 0,
1621 0,
1622 22|128,2, TARGET_VAL(ISD::INTRINSIC_VOID),
1623 OPC_Scope, 40,
1624 OPC_RecordNode,
1625 OPC_CheckChild1Integer, 88|128,66|128,1,
1626 OPC_MoveChild2,
1627 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1628 OPC_RecordChild0,
1629 OPC_MoveChild0,
1630 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1631 OPC_MoveParent,
1632 OPC_MoveSibling3,
1633 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1634 OPC_RecordChild0,
1635 OPC_MoveChild0,
1636 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1637 OPC_MoveParent,
1638 OPC_MoveParent,
1639 OPC_RecordChild4,
1640 OPC_RecordChild5,
1641 OPC_RecordChild6,
1642 OPC_CheckPatternPredicate6,
1643 OPC_EmitMergeInputChains1_0,
1644 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_COPY),
1645 5, 1, 2, 3, 4, 5,
1646 44,
1647 OPC_RecordMemRef,
1648 OPC_RecordNode,
1649 OPC_CheckChild1Integer, 80|128,66|128,1,
1650 OPC_RecordChild2,
1651 OPC_RecordChild3,
1652 OPC_Scope, 16,
1653 OPC_CheckChild3TypeI32,
1654 OPC_CheckPatternPredicate3,
1655 OPC_CheckComplexPat0, /*#*/2,
1656 OPC_EmitMergeInputChains1_0,
1657 OPC_EmitInteger32, 0,
1658 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_F16_F32_A32), 0|OPFL_Chain|OPFL_MemRefs,
1659 4, 5, 3, 4, 1,
1660 16,
1661 OPC_CheckChild3TypeI64,
1662 OPC_CheckPatternPredicate4,
1663 OPC_CheckComplexPat1, /*#*/2,
1664 OPC_EmitMergeInputChains1_0,
1665 OPC_EmitInteger32, 0,
1666 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::STORE_F16_F32_A64), 0|OPFL_Chain|OPFL_MemRefs,
1667 4, 5, 3, 4, 1,
1668 0,
1669 60|128,1,
1670 OPC_RecordNode,
1671 OPC_Scope, 26,
1672 OPC_CheckChild1Integer, 112|128,66|128,1,
1673 OPC_MoveChild2,
1674 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1675 OPC_RecordChild0,
1676 OPC_MoveChild0,
1677 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1678 OPC_MoveParent,
1679 OPC_MoveParent,
1680 OPC_RecordChild3,
1681 OPC_RecordChild4,
1682 OPC_CheckPatternPredicate6,
1683 OPC_EmitMergeInputChains1_0,
1684 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_SET_FUNCREF),
1685 3, 1, 2, 3,
1686 28,
1687 OPC_CheckChild1Integer, 94|128,66|128,1,
1688 OPC_MoveChild2,
1689 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1690 OPC_RecordChild0,
1691 OPC_MoveChild0,
1692 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1693 OPC_MoveParent,
1694 OPC_MoveParent,
1695 OPC_RecordChild3,
1696 OPC_RecordChild4,
1697 OPC_RecordChild5,
1698 OPC_CheckPatternPredicate6,
1699 OPC_EmitMergeInputChains1_0,
1700 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_FILL_FUNCREF),
1701 4, 1, 2, 3, 4,
1702 26,
1703 OPC_CheckChild1Integer, 110|128,66|128,1,
1704 OPC_MoveChild2,
1705 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1706 OPC_RecordChild0,
1707 OPC_MoveChild0,
1708 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1709 OPC_MoveParent,
1710 OPC_MoveParent,
1711 OPC_RecordChild3,
1712 OPC_RecordChild4,
1713 OPC_CheckPatternPredicate6,
1714 OPC_EmitMergeInputChains1_0,
1715 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_SET_EXTERNREF),
1716 3, 1, 2, 3,
1717 28,
1718 OPC_CheckChild1Integer, 92|128,66|128,1,
1719 OPC_MoveChild2,
1720 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1721 OPC_RecordChild0,
1722 OPC_MoveChild0,
1723 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1724 OPC_MoveParent,
1725 OPC_MoveParent,
1726 OPC_RecordChild3,
1727 OPC_RecordChild4,
1728 OPC_RecordChild5,
1729 OPC_CheckPatternPredicate6,
1730 OPC_EmitMergeInputChains1_0,
1731 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_FILL_EXTERNREF),
1732 4, 1, 2, 3, 4,
1733 27,
1734 OPC_CheckChild1Integer, 108|128,66|128,1,
1735 OPC_MoveChild2,
1736 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1737 OPC_RecordChild0,
1738 OPC_MoveChild0,
1739 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1740 OPC_MoveParent,
1741 OPC_MoveParent,
1742 OPC_RecordChild3,
1743 OPC_RecordChild4,
1744 OPC_CheckPatternPredicate, 8,
1745 OPC_EmitMergeInputChains1_0,
1746 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_SET_EXNREF),
1747 3, 1, 2, 3,
1748 29,
1749 OPC_CheckChild1Integer, 90|128,66|128,1,
1750 OPC_MoveChild2,
1751 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1752 OPC_RecordChild0,
1753 OPC_MoveChild0,
1754 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1755 OPC_MoveParent,
1756 OPC_MoveParent,
1757 OPC_RecordChild3,
1758 OPC_RecordChild4,
1759 OPC_RecordChild5,
1760 OPC_CheckPatternPredicate, 8,
1761 OPC_EmitMergeInputChains1_0,
1762 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::TABLE_FILL_EXNREF),
1763 4, 1, 2, 3, 4,
1764 14,
1765 OPC_CheckChild1Integer, 74|128,66|128,1,
1766 OPC_CheckPatternPredicate, 16,
1767 OPC_EmitMergeInputChains1_0,
1768 OPC_EmitInteger32, 0,
1769 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::RETHROW),
1770 1, 1,
1771 0,
1772 0,
1773 78|128,3, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
1774 OPC_Scope, 22|128,1,
1775 OPC_RecordMemRef,
1776 OPC_RecordNode,
1777 OPC_Scope, 45,
1778 OPC_CheckChild1Integer, 14|128,66|128,1,
1779 OPC_RecordChild2,
1780 OPC_Scope, 18,
1781 OPC_CheckChild2TypeI32,
1782 OPC_RecordChild3,
1783 OPC_CheckPatternPredicate1,
1784 OPC_CheckComplexPat0, /*#*/1,
1785 OPC_EmitMergeInputChains1_0,
1786 OPC_EmitInteger32, 0,
1787 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::MEMORY_ATOMIC_NOTIFY_A32), 0|OPFL_Chain|OPFL_MemRefs,
1788 MVT::i32, 4, 5, 3, 4, 2,
1789 18,
1790 OPC_CheckChild2TypeI64,
1791 OPC_RecordChild3,
1792 OPC_CheckPatternPredicate2,
1793 OPC_CheckComplexPat1, /*#*/1,
1794 OPC_EmitMergeInputChains1_0,
1795 OPC_EmitInteger32, 0,
1796 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::MEMORY_ATOMIC_NOTIFY_A64), 0|OPFL_Chain|OPFL_MemRefs,
1797 MVT::i32, 4, 5, 3, 4, 2,
1798 0,
1799 49,
1800 OPC_CheckChild1Integer, 16|128,66|128,1,
1801 OPC_RecordChild2,
1802 OPC_Scope, 20,
1803 OPC_CheckChild2TypeI32,
1804 OPC_RecordChild3,
1805 OPC_RecordChild4,
1806 OPC_CheckPatternPredicate1,
1807 OPC_CheckComplexPat0, /*#*/1,
1808 OPC_EmitMergeInputChains1_0,
1809 OPC_EmitInteger32, 0,
1810 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::MEMORY_ATOMIC_WAIT32_A32), 0|OPFL_Chain|OPFL_MemRefs,
1811 MVT::i32, 5, 6, 4, 5, 2, 3,
1812 20,
1813 OPC_CheckChild2TypeI64,
1814 OPC_RecordChild3,
1815 OPC_RecordChild4,
1816 OPC_CheckPatternPredicate2,
1817 OPC_CheckComplexPat1, /*#*/1,
1818 OPC_EmitMergeInputChains1_0,
1819 OPC_EmitInteger32, 0,
1820 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::MEMORY_ATOMIC_WAIT32_A64), 0|OPFL_Chain|OPFL_MemRefs,
1821 MVT::i32, 5, 6, 4, 5, 2, 3,
1822 0,
1823 49,
1824 OPC_CheckChild1Integer, 18|128,66|128,1,
1825 OPC_RecordChild2,
1826 OPC_Scope, 20,
1827 OPC_CheckChild2TypeI32,
1828 OPC_RecordChild3,
1829 OPC_RecordChild4,
1830 OPC_CheckPatternPredicate1,
1831 OPC_CheckComplexPat0, /*#*/1,
1832 OPC_EmitMergeInputChains1_0,
1833 OPC_EmitInteger32, 0,
1834 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::MEMORY_ATOMIC_WAIT64_A32), 0|OPFL_Chain|OPFL_MemRefs,
1835 MVT::i32, 5, 6, 4, 5, 2, 3,
1836 20,
1837 OPC_CheckChild2TypeI64,
1838 OPC_RecordChild3,
1839 OPC_RecordChild4,
1840 OPC_CheckPatternPredicate2,
1841 OPC_CheckComplexPat1, /*#*/1,
1842 OPC_EmitMergeInputChains1_0,
1843 OPC_EmitInteger32, 0,
1844 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::MEMORY_ATOMIC_WAIT64_A64), 0|OPFL_Chain|OPFL_MemRefs,
1845 MVT::i32, 5, 6, 4, 5, 2, 3,
1846 0,
1847 0,
1848 6|128,2,
1849 OPC_RecordNode,
1850 OPC_Scope, 25,
1851 OPC_CheckChild1Integer, 100|128,66|128,1,
1852 OPC_MoveChild2,
1853 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1854 OPC_RecordChild0,
1855 OPC_MoveChild0,
1856 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1857 OPC_MoveParent,
1858 OPC_MoveParent,
1859 OPC_RecordChild3,
1860 OPC_CheckPatternPredicate6,
1861 OPC_EmitMergeInputChains1_0,
1862 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_GET_FUNCREF),
1863 MVT::funcref, 2, 1, 2,
1864 27,
1865 OPC_CheckChild1Integer, 106|128,66|128,1,
1866 OPC_MoveChild2,
1867 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1868 OPC_RecordChild0,
1869 OPC_MoveChild0,
1870 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1871 OPC_MoveParent,
1872 OPC_MoveParent,
1873 OPC_RecordChild3,
1874 OPC_RecordChild4,
1875 OPC_CheckPatternPredicate6,
1876 OPC_EmitMergeInputChains1_0,
1877 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_GROW_FUNCREF),
1878 MVT::i32, 3, 1, 2, 3,
1879 25,
1880 OPC_CheckChild1Integer, 98|128,66|128,1,
1881 OPC_MoveChild2,
1882 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1883 OPC_RecordChild0,
1884 OPC_MoveChild0,
1885 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1886 OPC_MoveParent,
1887 OPC_MoveParent,
1888 OPC_RecordChild3,
1889 OPC_CheckPatternPredicate6,
1890 OPC_EmitMergeInputChains1_0,
1891 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_GET_EXTERNREF),
1892 MVT::externref, 2, 1, 2,
1893 27,
1894 OPC_CheckChild1Integer, 104|128,66|128,1,
1895 OPC_MoveChild2,
1896 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1897 OPC_RecordChild0,
1898 OPC_MoveChild0,
1899 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1900 OPC_MoveParent,
1901 OPC_MoveParent,
1902 OPC_RecordChild3,
1903 OPC_RecordChild4,
1904 OPC_CheckPatternPredicate6,
1905 OPC_EmitMergeInputChains1_0,
1906 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_GROW_EXTERNREF),
1907 MVT::i32, 3, 1, 2, 3,
1908 26,
1909 OPC_CheckChild1Integer, 96|128,66|128,1,
1910 OPC_MoveChild2,
1911 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1912 OPC_RecordChild0,
1913 OPC_MoveChild0,
1914 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1915 OPC_MoveParent,
1916 OPC_MoveParent,
1917 OPC_RecordChild3,
1918 OPC_CheckPatternPredicate, 8,
1919 OPC_EmitMergeInputChains1_0,
1920 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_GET_EXNREF),
1921 MVT::exnref, 2, 1, 2,
1922 28,
1923 OPC_CheckChild1Integer, 102|128,66|128,1,
1924 OPC_MoveChild2,
1925 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1926 OPC_RecordChild0,
1927 OPC_MoveChild0,
1928 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1929 OPC_MoveParent,
1930 OPC_MoveParent,
1931 OPC_RecordChild3,
1932 OPC_RecordChild4,
1933 OPC_CheckPatternPredicate, 8,
1934 OPC_EmitMergeInputChains1_0,
1935 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_GROW_EXNREF),
1936 MVT::i32, 3, 1, 2, 3,
1937 23,
1938 OPC_CheckChild1Integer, 114|128,66|128,1,
1939 OPC_MoveChild2,
1940 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
1941 OPC_RecordChild0,
1942 OPC_MoveChild0,
1943 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1944 OPC_MoveParent,
1945 OPC_MoveParent,
1946 OPC_CheckPatternPredicate6,
1947 OPC_EmitMergeInputChains1_0,
1948 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::TABLE_SIZE),
1949 MVT::i32, 1, 1,
1950 32,
1951 OPC_CheckChild1Integer, 22|128,66|128,1,
1952 OPC_RecordChild2,
1953 OPC_MoveChild2,
1954 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1955 OPC_MoveParent,
1956 OPC_SwitchType , 8, MVT::i32,
1957 OPC_EmitMergeInputChains1_0,
1958 OPC_EmitConvertToTarget1,
1959 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::anonymous_8187MEMORY_SIZE_A32),
1960 MVT::i32, 1, 2,
1961 8, MVT::i64,
1962 OPC_EmitMergeInputChains1_0,
1963 OPC_EmitConvertToTarget1,
1964 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::anonymous_8188MEMORY_SIZE_A64),
1965 MVT::i64, 1, 2,
1966 0,
1967 37,
1968 OPC_CheckChild1Integer, 20|128,66|128,1,
1969 OPC_RecordChild2,
1970 OPC_MoveChild2,
1971 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1972 OPC_MoveParent,
1973 OPC_RecordChild3,
1974 OPC_SwitchType , 10, MVT::i32,
1975 OPC_CheckChild3TypeI32,
1976 OPC_EmitMergeInputChains1_0,
1977 OPC_EmitConvertToTarget1,
1978 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::anonymous_8187MEMORY_GROW_A32),
1979 MVT::i32, 2, 3, 2,
1980 10, MVT::i64,
1981 OPC_CheckChild3TypeI64,
1982 OPC_EmitMergeInputChains1_0,
1983 OPC_EmitConvertToTarget1,
1984 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::anonymous_8188MEMORY_GROW_A64),
1985 MVT::i64, 2, 3, 2,
1986 0,
1987 0,
1988 43,
1989 OPC_RecordMemRef,
1990 OPC_RecordNode,
1991 OPC_CheckChild1Integer, 10|128,66|128,1,
1992 OPC_RecordChild2,
1993 OPC_Scope, 16,
1994 OPC_CheckChild2TypeI32,
1995 OPC_CheckPatternPredicate3,
1996 OPC_CheckComplexPat0, /*#*/1,
1997 OPC_EmitMergeInputChains1_0,
1998 OPC_EmitInteger32, 0,
1999 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_F16_F32_A32), 0|OPFL_Chain|OPFL_MemRefs,
2000 MVT::f32, 3, 4, 2, 3,
2001 16,
2002 OPC_CheckChild2TypeI64,
2003 OPC_CheckPatternPredicate4,
2004 OPC_CheckComplexPat1, /*#*/1,
2005 OPC_EmitMergeInputChains1_0,
2006 OPC_EmitInteger32, 0,
2007 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_F16_F32_A64), 0|OPFL_Chain|OPFL_MemRefs,
2008 MVT::f32, 3, 4, 2, 3,
2009 0,
2010 0,
2011 29|128,2, TARGET_VAL(ISD::ATOMIC_STORE),
2012 OPC_RecordMemRef,
2013 OPC_RecordNode,
2014 OPC_Scope, 119,
2015 OPC_MoveChild1,
2016 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
2017 OPC_RecordChild0,
2018 OPC_MoveParent,
2019 OPC_RecordChild2,
2020 OPC_Scope, 54,
2021 OPC_CheckChild2TypeI32,
2022 OPC_Scope, 16,
2023 OPC_CheckPredicate1,
2024 OPC_CheckPatternPredicate1,
2025 OPC_CheckComplexPat0, /*#*/2,
2026 OPC_EmitMergeInputChains1_0,
2027 OPC_EmitInteger32, 0,
2028 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE8_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
2029 4, 5, 3, 4, 1,
2030 16,
2031 OPC_CheckPredicate2,
2032 OPC_CheckPatternPredicate1,
2033 OPC_CheckComplexPat0, /*#*/2,
2034 OPC_EmitMergeInputChains1_0,
2035 OPC_EmitInteger32, 0,
2036 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE16_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
2037 4, 5, 3, 4, 1,
2038 16,
2039 OPC_CheckPredicate3,
2040 OPC_CheckPatternPredicate1,
2041 OPC_CheckComplexPat0, /*#*/2,
2042 OPC_EmitMergeInputChains1_0,
2043 OPC_EmitInteger32, 0,
2044 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE32_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
2045 4, 5, 3, 4, 1,
2046 0,
2047 54,
2048 OPC_CheckChild2TypeI64,
2049 OPC_Scope, 16,
2050 OPC_CheckPredicate1,
2051 OPC_CheckPatternPredicate2,
2052 OPC_CheckComplexPat1, /*#*/2,
2053 OPC_EmitMergeInputChains1_0,
2054 OPC_EmitInteger32, 0,
2055 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE8_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
2056 4, 5, 3, 4, 1,
2057 16,
2058 OPC_CheckPredicate2,
2059 OPC_CheckPatternPredicate2,
2060 OPC_CheckComplexPat1, /*#*/2,
2061 OPC_EmitMergeInputChains1_0,
2062 OPC_EmitInteger32, 0,
2063 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE16_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
2064 4, 5, 3, 4, 1,
2065 16,
2066 OPC_CheckPredicate3,
2067 OPC_CheckPatternPredicate2,
2068 OPC_CheckComplexPat1, /*#*/2,
2069 OPC_EmitMergeInputChains1_0,
2070 OPC_EmitInteger32, 0,
2071 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE32_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
2072 4, 5, 3, 4, 1,
2073 0,
2074 0,
2075 31|128,1,
2076 OPC_RecordChild1,
2077 OPC_Scope, 114,
2078 OPC_CheckChild1TypeI32,
2079 OPC_RecordChild2,
2080 OPC_Scope, 54,
2081 OPC_CheckChild2TypeI32,
2082 OPC_Scope, 16,
2083 OPC_CheckPredicate3,
2084 OPC_CheckPatternPredicate1,
2085 OPC_CheckComplexPat0, /*#*/2,
2086 OPC_EmitMergeInputChains1_0,
2087 OPC_EmitInteger32, 0,
2088 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
2089 4, 5, 3, 4, 1,
2090 16,
2091 OPC_CheckPredicate1,
2092 OPC_CheckPatternPredicate1,
2093 OPC_CheckComplexPat0, /*#*/2,
2094 OPC_EmitMergeInputChains1_0,
2095 OPC_EmitInteger32, 0,
2096 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE8_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
2097 4, 5, 3, 4, 1,
2098 16,
2099 OPC_CheckPredicate2,
2100 OPC_CheckPatternPredicate1,
2101 OPC_CheckComplexPat0, /*#*/2,
2102 OPC_EmitMergeInputChains1_0,
2103 OPC_EmitInteger32, 0,
2104 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE16_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
2105 4, 5, 3, 4, 1,
2106 0,
2107 54,
2108 OPC_CheckChild2TypeI64,
2109 OPC_Scope, 16,
2110 OPC_CheckPredicate3,
2111 OPC_CheckPatternPredicate2,
2112 OPC_CheckComplexPat1, /*#*/2,
2113 OPC_EmitMergeInputChains1_0,
2114 OPC_EmitInteger32, 0,
2115 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
2116 4, 5, 3, 4, 1,
2117 16,
2118 OPC_CheckPredicate1,
2119 OPC_CheckPatternPredicate2,
2120 OPC_CheckComplexPat1, /*#*/2,
2121 OPC_EmitMergeInputChains1_0,
2122 OPC_EmitInteger32, 0,
2123 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE8_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
2124 4, 5, 3, 4, 1,
2125 16,
2126 OPC_CheckPredicate2,
2127 OPC_CheckPatternPredicate2,
2128 OPC_CheckComplexPat1, /*#*/2,
2129 OPC_EmitMergeInputChains1_0,
2130 OPC_EmitInteger32, 0,
2131 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE16_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
2132 4, 5, 3, 4, 1,
2133 0,
2134 0,
2135 40,
2136 OPC_CheckChild1TypeI64,
2137 OPC_RecordChild2,
2138 OPC_Scope, 17,
2139 OPC_CheckChild2TypeI32,
2140 OPC_CheckPredicate6,
2141 OPC_CheckPatternPredicate1,
2142 OPC_CheckComplexPat0, /*#*/2,
2143 OPC_EmitMergeInputChains1_0,
2144 OPC_EmitInteger32, 0,
2145 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
2146 4, 5, 3, 4, 1,
2147 17,
2148 OPC_CheckChild2TypeI64,
2149 OPC_CheckPredicate6,
2150 OPC_CheckPatternPredicate2,
2151 OPC_CheckComplexPat1, /*#*/2,
2152 OPC_EmitMergeInputChains1_0,
2153 OPC_EmitInteger32, 0,
2154 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::ATOMIC_STORE_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
2155 4, 5, 3, 4, 1,
2156 0,
2157 0,
2158 0,
2159 90|128,2, TARGET_VAL(ISD::AND),
2160 OPC_Scope, 118,
2161 OPC_MoveChild0,
2162 OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
2163 OPC_Scope, 55,
2164 OPC_CheckChild0Integer, 114|128,65|128,1,
2165 OPC_RecordChild1,
2166 OPC_Scope, 11,
2167 OPC_CheckChild1Type, MVT::v16i8,
2168 OPC_MoveParent,
2169 OPC_CheckChild1Integer, 2,
2170 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2171 MVT::i32, 1, 0,
2172 11,
2173 OPC_CheckChild1Type, MVT::v8i16,
2174 OPC_MoveParent,
2175 OPC_CheckChild1Integer, 2,
2176 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2177 MVT::i32, 1, 0,
2178 11,
2179 OPC_CheckChild1Type, MVT::v4i32,
2180 OPC_MoveParent,
2181 OPC_CheckChild1Integer, 2,
2182 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2183 MVT::i32, 1, 0,
2184 11,
2185 OPC_CheckChild1Type, MVT::v2i64,
2186 OPC_MoveParent,
2187 OPC_CheckChild1Integer, 2,
2188 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2189 MVT::i32, 1, 0,
2190 0,
2191 55,
2192 OPC_CheckChild0Integer, 112|128,65|128,1,
2193 OPC_RecordChild1,
2194 OPC_Scope, 11,
2195 OPC_CheckChild1Type, MVT::v16i8,
2196 OPC_MoveParent,
2197 OPC_CheckChild1Integer, 2,
2198 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I8x16),
2199 MVT::i32, 1, 0,
2200 11,
2201 OPC_CheckChild1Type, MVT::v8i16,
2202 OPC_MoveParent,
2203 OPC_CheckChild1Integer, 2,
2204 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I16x8),
2205 MVT::i32, 1, 0,
2206 11,
2207 OPC_CheckChild1Type, MVT::v4i32,
2208 OPC_MoveParent,
2209 OPC_CheckChild1Integer, 2,
2210 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I32x4),
2211 MVT::i32, 1, 0,
2212 11,
2213 OPC_CheckChild1Type, MVT::v2i64,
2214 OPC_MoveParent,
2215 OPC_CheckChild1Integer, 2,
2216 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I64x2),
2217 MVT::i32, 1, 0,
2218 0,
2219 0,
2220 29,
2221 OPC_CheckAndImm, 127|128,1,
2222 OPC_MoveChild0,
2223 OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
2224 OPC_RecordChild0,
2225 OPC_CheckChild0Type, MVT::v16i8,
2226 OPC_RecordChild1,
2227 OPC_MoveChild1,
2228 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2229 OPC_CheckPredicate, 11,
2230 OPC_CheckTypeI32,
2231 OPC_MoveParent,
2232 OPC_MoveParent,
2233 OPC_CheckTypeI32,
2234 OPC_EmitConvertToTarget1,
2235 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I8x16_u),
2236 MVT::i32, 2, 0, 2,
2237 30,
2238 OPC_CheckAndImm, 127|128,127|128,3,
2239 OPC_MoveChild0,
2240 OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
2241 OPC_RecordChild0,
2242 OPC_CheckChild0Type, MVT::v8i16,
2243 OPC_RecordChild1,
2244 OPC_MoveChild1,
2245 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2246 OPC_CheckPredicate, 16,
2247 OPC_CheckTypeI32,
2248 OPC_MoveParent,
2249 OPC_MoveParent,
2250 OPC_CheckTypeI32,
2251 OPC_EmitConvertToTarget1,
2252 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I16x8_u),
2253 MVT::i32, 2, 0, 2,
2254 73,
2255 OPC_RecordChild0,
2256 OPC_Scope, 21,
2257 OPC_RecordChild1,
2258 OPC_SwitchType , 7, MVT::i32,
2259 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AND_I32),
2260 MVT::i32, 2, 0, 1,
2261 7, MVT::i64,
2262 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AND_I64),
2263 MVT::i64, 2, 0, 1,
2264 0,
2265 47,
2266 OPC_MoveChild1,
2267 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
2268 OPC_RecordChild0,
2269 OPC_MoveChild1,
2270 OPC_CheckImmAllOnesV,
2271 OPC_MoveParent,
2272 OPC_MoveParent,
2273 OPC_SwitchType , 7, MVT::v16i8,
2274 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2275 MVT::v16i8, 2, 0, 1,
2276 7, MVT::v8i16,
2277 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2278 MVT::v8i16, 2, 0, 1,
2279 7, MVT::v4i32,
2280 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2281 MVT::v4i32, 2, 0, 1,
2282 7, MVT::v2i64,
2283 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2284 MVT::v2i64, 2, 0, 1,
2285 0,
2286 0,
2287 48,
2288 OPC_MoveChild0,
2289 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
2290 OPC_RecordChild0,
2291 OPC_MoveChild1,
2292 OPC_CheckImmAllOnesV,
2293 OPC_MoveParent,
2294 OPC_MoveParent,
2295 OPC_RecordChild1,
2296 OPC_SwitchType , 7, MVT::v16i8,
2297 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2298 MVT::v16i8, 2, 1, 0,
2299 7, MVT::v8i16,
2300 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2301 MVT::v8i16, 2, 1, 0,
2302 7, MVT::v4i32,
2303 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2304 MVT::v4i32, 2, 1, 0,
2305 7, MVT::v2i64,
2306 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANDNOT),
2307 MVT::v2i64, 2, 1, 0,
2308 0,
2309 40,
2310 OPC_RecordChild0,
2311 OPC_RecordChild1,
2312 OPC_SwitchType , 7, MVT::v16i8,
2313 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AND),
2314 MVT::v16i8, 2, 0, 1,
2315 7, MVT::v8i16,
2316 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AND),
2317 MVT::v8i16, 2, 0, 1,
2318 7, MVT::v4i32,
2319 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AND),
2320 MVT::v4i32, 2, 0, 1,
2321 7, MVT::v2i64,
2322 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AND),
2323 MVT::v2i64, 2, 0, 1,
2324 0,
2325 0,
2326 124|128,11, TARGET_VAL(ISD::SETCC),
2327 OPC_Scope, 126|128,1,
2328 OPC_MoveChild0,
2329 OPC_CheckOpcode, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
2330 OPC_Scope, 123,
2331 OPC_CheckChild0Integer, 114|128,65|128,1,
2332 OPC_RecordChild1,
2333 OPC_Scope, 28,
2334 OPC_CheckChild1Type, MVT::v16i8,
2335 OPC_MoveParent,
2336 OPC_CheckTypeI32,
2337 OPC_Scope, 10,
2338 OPC_CheckChild1Integer, 0,
2339 OPC_CheckChild2CondCode, ISD::SETNE,
2340 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2341 MVT::i32, 1, 0,
2342 10,
2343 OPC_CheckChild1Integer, 2,
2344 OPC_CheckChild2CondCode, ISD::SETEQ,
2345 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2346 MVT::i32, 1, 0,
2347 0,
2348 28,
2349 OPC_CheckChild1Type, MVT::v8i16,
2350 OPC_MoveParent,
2351 OPC_CheckTypeI32,
2352 OPC_Scope, 10,
2353 OPC_CheckChild1Integer, 0,
2354 OPC_CheckChild2CondCode, ISD::SETNE,
2355 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2356 MVT::i32, 1, 0,
2357 10,
2358 OPC_CheckChild1Integer, 2,
2359 OPC_CheckChild2CondCode, ISD::SETEQ,
2360 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2361 MVT::i32, 1, 0,
2362 0,
2363 28,
2364 OPC_CheckChild1Type, MVT::v4i32,
2365 OPC_MoveParent,
2366 OPC_CheckTypeI32,
2367 OPC_Scope, 10,
2368 OPC_CheckChild1Integer, 0,
2369 OPC_CheckChild2CondCode, ISD::SETNE,
2370 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2371 MVT::i32, 1, 0,
2372 10,
2373 OPC_CheckChild1Integer, 2,
2374 OPC_CheckChild2CondCode, ISD::SETEQ,
2375 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2376 MVT::i32, 1, 0,
2377 0,
2378 28,
2379 OPC_CheckChild1Type, MVT::v2i64,
2380 OPC_MoveParent,
2381 OPC_CheckTypeI32,
2382 OPC_Scope, 10,
2383 OPC_CheckChild1Integer, 0,
2384 OPC_CheckChild2CondCode, ISD::SETNE,
2385 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2386 MVT::i32, 1, 0,
2387 10,
2388 OPC_CheckChild1Integer, 2,
2389 OPC_CheckChild2CondCode, ISD::SETEQ,
2390 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
2391 MVT::i32, 1, 0,
2392 0,
2393 0,
2394 123,
2395 OPC_CheckChild0Integer, 112|128,65|128,1,
2396 OPC_RecordChild1,
2397 OPC_Scope, 28,
2398 OPC_CheckChild1Type, MVT::v16i8,
2399 OPC_MoveParent,
2400 OPC_CheckTypeI32,
2401 OPC_Scope, 10,
2402 OPC_CheckChild1Integer, 0,
2403 OPC_CheckChild2CondCode, ISD::SETNE,
2404 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I8x16),
2405 MVT::i32, 1, 0,
2406 10,
2407 OPC_CheckChild1Integer, 2,
2408 OPC_CheckChild2CondCode, ISD::SETEQ,
2409 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I8x16),
2410 MVT::i32, 1, 0,
2411 0,
2412 28,
2413 OPC_CheckChild1Type, MVT::v8i16,
2414 OPC_MoveParent,
2415 OPC_CheckTypeI32,
2416 OPC_Scope, 10,
2417 OPC_CheckChild1Integer, 0,
2418 OPC_CheckChild2CondCode, ISD::SETNE,
2419 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I16x8),
2420 MVT::i32, 1, 0,
2421 10,
2422 OPC_CheckChild1Integer, 2,
2423 OPC_CheckChild2CondCode, ISD::SETEQ,
2424 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I16x8),
2425 MVT::i32, 1, 0,
2426 0,
2427 28,
2428 OPC_CheckChild1Type, MVT::v4i32,
2429 OPC_MoveParent,
2430 OPC_CheckTypeI32,
2431 OPC_Scope, 10,
2432 OPC_CheckChild1Integer, 0,
2433 OPC_CheckChild2CondCode, ISD::SETNE,
2434 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I32x4),
2435 MVT::i32, 1, 0,
2436 10,
2437 OPC_CheckChild1Integer, 2,
2438 OPC_CheckChild2CondCode, ISD::SETEQ,
2439 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I32x4),
2440 MVT::i32, 1, 0,
2441 0,
2442 28,
2443 OPC_CheckChild1Type, MVT::v2i64,
2444 OPC_MoveParent,
2445 OPC_CheckTypeI32,
2446 OPC_Scope, 10,
2447 OPC_CheckChild1Integer, 0,
2448 OPC_CheckChild2CondCode, ISD::SETNE,
2449 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I64x2),
2450 MVT::i32, 1, 0,
2451 10,
2452 OPC_CheckChild1Integer, 2,
2453 OPC_CheckChild2CondCode, ISD::SETEQ,
2454 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I64x2),
2455 MVT::i32, 1, 0,
2456 0,
2457 0,
2458 0,
2459 120|128,9,
2460 OPC_RecordChild0,
2461 OPC_SwitchType , 108|128,3, MVT::i32,
2462 OPC_Scope, 118,
2463 OPC_CheckChild0TypeI32,
2464 OPC_Scope, 10,
2465 OPC_CheckChild1Integer, 0,
2466 OPC_CheckChild2CondCode, ISD::SETEQ,
2467 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQZ_I32),
2468 MVT::i32, 1, 0,
2469 103,
2470 OPC_RecordChild1,
2471 OPC_Scope, 9,
2472 OPC_CheckChild2CondCode, ISD::SETEQ,
2473 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_I32),
2474 MVT::i32, 2, 0, 1,
2475 9,
2476 OPC_CheckChild2CondCode, ISD::SETNE,
2477 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_I32),
2478 MVT::i32, 2, 0, 1,
2479 9,
2480 OPC_CheckChild2CondCode, ISD::SETLT,
2481 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_S_I32),
2482 MVT::i32, 2, 0, 1,
2483 9,
2484 OPC_CheckChild2CondCode, ISD::SETULT,
2485 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_U_I32),
2486 MVT::i32, 2, 0, 1,
2487 9,
2488 OPC_CheckChild2CondCode, ISD::SETGT,
2489 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_S_I32),
2490 MVT::i32, 2, 0, 1,
2491 9,
2492 OPC_CheckChild2CondCode, ISD::SETUGT,
2493 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_U_I32),
2494 MVT::i32, 2, 0, 1,
2495 9,
2496 OPC_CheckChild2CondCode, ISD::SETLE,
2497 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_S_I32),
2498 MVT::i32, 2, 0, 1,
2499 9,
2500 OPC_CheckChild2CondCode, ISD::SETULE,
2501 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_U_I32),
2502 MVT::i32, 2, 0, 1,
2503 9,
2504 OPC_CheckChild2CondCode, ISD::SETGE,
2505 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_S_I32),
2506 MVT::i32, 2, 0, 1,
2507 9,
2508 OPC_CheckChild2CondCode, ISD::SETUGE,
2509 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_U_I32),
2510 MVT::i32, 2, 0, 1,
2511 0,
2512 0,
2513 118,
2514 OPC_CheckChild0TypeI64,
2515 OPC_Scope, 10,
2516 OPC_CheckChild1Integer, 0,
2517 OPC_CheckChild2CondCode, ISD::SETEQ,
2518 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQZ_I64),
2519 MVT::i32, 1, 0,
2520 103,
2521 OPC_RecordChild1,
2522 OPC_Scope, 9,
2523 OPC_CheckChild2CondCode, ISD::SETEQ,
2524 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_I64),
2525 MVT::i32, 2, 0, 1,
2526 9,
2527 OPC_CheckChild2CondCode, ISD::SETNE,
2528 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_I64),
2529 MVT::i32, 2, 0, 1,
2530 9,
2531 OPC_CheckChild2CondCode, ISD::SETLT,
2532 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_S_I64),
2533 MVT::i32, 2, 0, 1,
2534 9,
2535 OPC_CheckChild2CondCode, ISD::SETULT,
2536 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_U_I64),
2537 MVT::i32, 2, 0, 1,
2538 9,
2539 OPC_CheckChild2CondCode, ISD::SETGT,
2540 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_S_I64),
2541 MVT::i32, 2, 0, 1,
2542 9,
2543 OPC_CheckChild2CondCode, ISD::SETUGT,
2544 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_U_I64),
2545 MVT::i32, 2, 0, 1,
2546 9,
2547 OPC_CheckChild2CondCode, ISD::SETLE,
2548 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_S_I64),
2549 MVT::i32, 2, 0, 1,
2550 9,
2551 OPC_CheckChild2CondCode, ISD::SETULE,
2552 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_U_I64),
2553 MVT::i32, 2, 0, 1,
2554 9,
2555 OPC_CheckChild2CondCode, ISD::SETGE,
2556 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_S_I64),
2557 MVT::i32, 2, 0, 1,
2558 9,
2559 OPC_CheckChild2CondCode, ISD::SETUGE,
2560 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_U_I64),
2561 MVT::i32, 2, 0, 1,
2562 0,
2563 0,
2564 125,
2565 OPC_CheckChild0Type, MVT::f32,
2566 OPC_RecordChild1,
2567 OPC_Scope, 9,
2568 OPC_CheckChild2CondCode, ISD::SETOEQ,
2569 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F32),
2570 MVT::i32, 2, 0, 1,
2571 9,
2572 OPC_CheckChild2CondCode, ISD::SETUNE,
2573 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F32),
2574 MVT::i32, 2, 0, 1,
2575 9,
2576 OPC_CheckChild2CondCode, ISD::SETOLT,
2577 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F32),
2578 MVT::i32, 2, 0, 1,
2579 9,
2580 OPC_CheckChild2CondCode, ISD::SETOLE,
2581 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F32),
2582 MVT::i32, 2, 0, 1,
2583 9,
2584 OPC_CheckChild2CondCode, ISD::SETOGT,
2585 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F32),
2586 MVT::i32, 2, 0, 1,
2587 9,
2588 OPC_CheckChild2CondCode, ISD::SETOGE,
2589 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F32),
2590 MVT::i32, 2, 0, 1,
2591 9,
2592 OPC_CheckChild2CondCode, ISD::SETEQ,
2593 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F32),
2594 MVT::i32, 2, 0, 1,
2595 9,
2596 OPC_CheckChild2CondCode, ISD::SETNE,
2597 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F32),
2598 MVT::i32, 2, 0, 1,
2599 9,
2600 OPC_CheckChild2CondCode, ISD::SETLT,
2601 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F32),
2602 MVT::i32, 2, 0, 1,
2603 9,
2604 OPC_CheckChild2CondCode, ISD::SETLE,
2605 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F32),
2606 MVT::i32, 2, 0, 1,
2607 9,
2608 OPC_CheckChild2CondCode, ISD::SETGT,
2609 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F32),
2610 MVT::i32, 2, 0, 1,
2611 9,
2612 OPC_CheckChild2CondCode, ISD::SETGE,
2613 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F32),
2614 MVT::i32, 2, 0, 1,
2615 0,
2616 125,
2617 OPC_CheckChild0Type, MVT::f64,
2618 OPC_RecordChild1,
2619 OPC_Scope, 9,
2620 OPC_CheckChild2CondCode, ISD::SETOEQ,
2621 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F64),
2622 MVT::i32, 2, 0, 1,
2623 9,
2624 OPC_CheckChild2CondCode, ISD::SETUNE,
2625 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F64),
2626 MVT::i32, 2, 0, 1,
2627 9,
2628 OPC_CheckChild2CondCode, ISD::SETOLT,
2629 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F64),
2630 MVT::i32, 2, 0, 1,
2631 9,
2632 OPC_CheckChild2CondCode, ISD::SETOLE,
2633 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F64),
2634 MVT::i32, 2, 0, 1,
2635 9,
2636 OPC_CheckChild2CondCode, ISD::SETOGT,
2637 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F64),
2638 MVT::i32, 2, 0, 1,
2639 9,
2640 OPC_CheckChild2CondCode, ISD::SETOGE,
2641 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F64),
2642 MVT::i32, 2, 0, 1,
2643 9,
2644 OPC_CheckChild2CondCode, ISD::SETEQ,
2645 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F64),
2646 MVT::i32, 2, 0, 1,
2647 9,
2648 OPC_CheckChild2CondCode, ISD::SETNE,
2649 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F64),
2650 MVT::i32, 2, 0, 1,
2651 9,
2652 OPC_CheckChild2CondCode, ISD::SETLT,
2653 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F64),
2654 MVT::i32, 2, 0, 1,
2655 9,
2656 OPC_CheckChild2CondCode, ISD::SETLE,
2657 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F64),
2658 MVT::i32, 2, 0, 1,
2659 9,
2660 OPC_CheckChild2CondCode, ISD::SETGT,
2661 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F64),
2662 MVT::i32, 2, 0, 1,
2663 9,
2664 OPC_CheckChild2CondCode, ISD::SETGE,
2665 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F64),
2666 MVT::i32, 2, 0, 1,
2667 0,
2668 0,
2669 115, MVT::v16i8,
2670 OPC_CheckChild0Type, MVT::v16i8,
2671 OPC_RecordChild1,
2672 OPC_Scope, 10,
2673 OPC_CheckChild2CondCode, ISD::SETEQ,
2674 OPC_CheckPatternPredicate0,
2675 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_I8x16),
2676 MVT::v16i8, 2, 0, 1,
2677 10,
2678 OPC_CheckChild2CondCode, ISD::SETNE,
2679 OPC_CheckPatternPredicate0,
2680 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_I8x16),
2681 MVT::v16i8, 2, 0, 1,
2682 10,
2683 OPC_CheckChild2CondCode, ISD::SETLT,
2684 OPC_CheckPatternPredicate0,
2685 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_S_I8x16),
2686 MVT::v16i8, 2, 0, 1,
2687 10,
2688 OPC_CheckChild2CondCode, ISD::SETULT,
2689 OPC_CheckPatternPredicate0,
2690 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_U_I8x16),
2691 MVT::v16i8, 2, 0, 1,
2692 10,
2693 OPC_CheckChild2CondCode, ISD::SETGT,
2694 OPC_CheckPatternPredicate0,
2695 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_S_I8x16),
2696 MVT::v16i8, 2, 0, 1,
2697 10,
2698 OPC_CheckChild2CondCode, ISD::SETUGT,
2699 OPC_CheckPatternPredicate0,
2700 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_U_I8x16),
2701 MVT::v16i8, 2, 0, 1,
2702 10,
2703 OPC_CheckChild2CondCode, ISD::SETLE,
2704 OPC_CheckPatternPredicate0,
2705 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_S_I8x16),
2706 MVT::v16i8, 2, 0, 1,
2707 10,
2708 OPC_CheckChild2CondCode, ISD::SETULE,
2709 OPC_CheckPatternPredicate0,
2710 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_U_I8x16),
2711 MVT::v16i8, 2, 0, 1,
2712 10,
2713 OPC_CheckChild2CondCode, ISD::SETGE,
2714 OPC_CheckPatternPredicate0,
2715 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_S_I8x16),
2716 MVT::v16i8, 2, 0, 1,
2717 10,
2718 OPC_CheckChild2CondCode, ISD::SETUGE,
2719 OPC_CheckPatternPredicate0,
2720 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_U_I8x16),
2721 MVT::v16i8, 2, 0, 1,
2722 0,
2723 62|128,1, MVT::v8i16,
2724 OPC_Scope, 115,
2725 OPC_CheckChild0Type, MVT::v8i16,
2726 OPC_RecordChild1,
2727 OPC_Scope, 10,
2728 OPC_CheckChild2CondCode, ISD::SETEQ,
2729 OPC_CheckPatternPredicate0,
2730 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_I16x8),
2731 MVT::v8i16, 2, 0, 1,
2732 10,
2733 OPC_CheckChild2CondCode, ISD::SETNE,
2734 OPC_CheckPatternPredicate0,
2735 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_I16x8),
2736 MVT::v8i16, 2, 0, 1,
2737 10,
2738 OPC_CheckChild2CondCode, ISD::SETLT,
2739 OPC_CheckPatternPredicate0,
2740 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_S_I16x8),
2741 MVT::v8i16, 2, 0, 1,
2742 10,
2743 OPC_CheckChild2CondCode, ISD::SETULT,
2744 OPC_CheckPatternPredicate0,
2745 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_U_I16x8),
2746 MVT::v8i16, 2, 0, 1,
2747 10,
2748 OPC_CheckChild2CondCode, ISD::SETGT,
2749 OPC_CheckPatternPredicate0,
2750 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_S_I16x8),
2751 MVT::v8i16, 2, 0, 1,
2752 10,
2753 OPC_CheckChild2CondCode, ISD::SETUGT,
2754 OPC_CheckPatternPredicate0,
2755 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_U_I16x8),
2756 MVT::v8i16, 2, 0, 1,
2757 10,
2758 OPC_CheckChild2CondCode, ISD::SETLE,
2759 OPC_CheckPatternPredicate0,
2760 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_S_I16x8),
2761 MVT::v8i16, 2, 0, 1,
2762 10,
2763 OPC_CheckChild2CondCode, ISD::SETULE,
2764 OPC_CheckPatternPredicate0,
2765 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_U_I16x8),
2766 MVT::v8i16, 2, 0, 1,
2767 10,
2768 OPC_CheckChild2CondCode, ISD::SETGE,
2769 OPC_CheckPatternPredicate0,
2770 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_S_I16x8),
2771 MVT::v8i16, 2, 0, 1,
2772 10,
2773 OPC_CheckChild2CondCode, ISD::SETUGE,
2774 OPC_CheckPatternPredicate0,
2775 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_U_I16x8),
2776 MVT::v8i16, 2, 0, 1,
2777 0,
2778 71,
2779 OPC_CheckChild0Type, MVT::v8f16,
2780 OPC_RecordChild1,
2781 OPC_Scope, 10,
2782 OPC_CheckChild2CondCode, ISD::SETOEQ,
2783 OPC_CheckPatternPredicate5,
2784 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F16x8),
2785 MVT::v8i16, 2, 0, 1,
2786 10,
2787 OPC_CheckChild2CondCode, ISD::SETUNE,
2788 OPC_CheckPatternPredicate5,
2789 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F16x8),
2790 MVT::v8i16, 2, 0, 1,
2791 10,
2792 OPC_CheckChild2CondCode, ISD::SETOLT,
2793 OPC_CheckPatternPredicate5,
2794 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F16x8),
2795 MVT::v8i16, 2, 0, 1,
2796 10,
2797 OPC_CheckChild2CondCode, ISD::SETOGT,
2798 OPC_CheckPatternPredicate5,
2799 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F16x8),
2800 MVT::v8i16, 2, 0, 1,
2801 10,
2802 OPC_CheckChild2CondCode, ISD::SETOLE,
2803 OPC_CheckPatternPredicate5,
2804 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F16x8),
2805 MVT::v8i16, 2, 0, 1,
2806 10,
2807 OPC_CheckChild2CondCode, ISD::SETOGE,
2808 OPC_CheckPatternPredicate5,
2809 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F16x8),
2810 MVT::v8i16, 2, 0, 1,
2811 0,
2812 0,
2813 123|128,1, MVT::v4i32,
2814 OPC_Scope, 115,
2815 OPC_CheckChild0Type, MVT::v4i32,
2816 OPC_RecordChild1,
2817 OPC_Scope, 10,
2818 OPC_CheckChild2CondCode, ISD::SETEQ,
2819 OPC_CheckPatternPredicate0,
2820 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_I32x4),
2821 MVT::v4i32, 2, 0, 1,
2822 10,
2823 OPC_CheckChild2CondCode, ISD::SETNE,
2824 OPC_CheckPatternPredicate0,
2825 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_I32x4),
2826 MVT::v4i32, 2, 0, 1,
2827 10,
2828 OPC_CheckChild2CondCode, ISD::SETLT,
2829 OPC_CheckPatternPredicate0,
2830 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_S_I32x4),
2831 MVT::v4i32, 2, 0, 1,
2832 10,
2833 OPC_CheckChild2CondCode, ISD::SETULT,
2834 OPC_CheckPatternPredicate0,
2835 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_U_I32x4),
2836 MVT::v4i32, 2, 0, 1,
2837 10,
2838 OPC_CheckChild2CondCode, ISD::SETGT,
2839 OPC_CheckPatternPredicate0,
2840 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_S_I32x4),
2841 MVT::v4i32, 2, 0, 1,
2842 10,
2843 OPC_CheckChild2CondCode, ISD::SETUGT,
2844 OPC_CheckPatternPredicate0,
2845 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_U_I32x4),
2846 MVT::v4i32, 2, 0, 1,
2847 10,
2848 OPC_CheckChild2CondCode, ISD::SETLE,
2849 OPC_CheckPatternPredicate0,
2850 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_S_I32x4),
2851 MVT::v4i32, 2, 0, 1,
2852 10,
2853 OPC_CheckChild2CondCode, ISD::SETULE,
2854 OPC_CheckPatternPredicate0,
2855 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_U_I32x4),
2856 MVT::v4i32, 2, 0, 1,
2857 10,
2858 OPC_CheckChild2CondCode, ISD::SETGE,
2859 OPC_CheckPatternPredicate0,
2860 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_S_I32x4),
2861 MVT::v4i32, 2, 0, 1,
2862 10,
2863 OPC_CheckChild2CondCode, ISD::SETUGE,
2864 OPC_CheckPatternPredicate0,
2865 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_U_I32x4),
2866 MVT::v4i32, 2, 0, 1,
2867 0,
2868 3|128,1,
2869 OPC_CheckChild0Type, MVT::v4f32,
2870 OPC_RecordChild1,
2871 OPC_Scope, 10,
2872 OPC_CheckChild2CondCode, ISD::SETOEQ,
2873 OPC_CheckPatternPredicate0,
2874 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F32x4),
2875 MVT::v4i32, 2, 0, 1,
2876 10,
2877 OPC_CheckChild2CondCode, ISD::SETUNE,
2878 OPC_CheckPatternPredicate0,
2879 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F32x4),
2880 MVT::v4i32, 2, 0, 1,
2881 10,
2882 OPC_CheckChild2CondCode, ISD::SETOLT,
2883 OPC_CheckPatternPredicate0,
2884 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F32x4),
2885 MVT::v4i32, 2, 0, 1,
2886 10,
2887 OPC_CheckChild2CondCode, ISD::SETOGT,
2888 OPC_CheckPatternPredicate0,
2889 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F32x4),
2890 MVT::v4i32, 2, 0, 1,
2891 10,
2892 OPC_CheckChild2CondCode, ISD::SETOLE,
2893 OPC_CheckPatternPredicate0,
2894 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F32x4),
2895 MVT::v4i32, 2, 0, 1,
2896 10,
2897 OPC_CheckChild2CondCode, ISD::SETOGE,
2898 OPC_CheckPatternPredicate0,
2899 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F32x4),
2900 MVT::v4i32, 2, 0, 1,
2901 9,
2902 OPC_CheckChild2CondCode, ISD::SETEQ,
2903 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F32x4),
2904 MVT::v4i32, 2, 0, 1,
2905 9,
2906 OPC_CheckChild2CondCode, ISD::SETNE,
2907 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F32x4),
2908 MVT::v4i32, 2, 0, 1,
2909 9,
2910 OPC_CheckChild2CondCode, ISD::SETLT,
2911 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F32x4),
2912 MVT::v4i32, 2, 0, 1,
2913 9,
2914 OPC_CheckChild2CondCode, ISD::SETGT,
2915 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F32x4),
2916 MVT::v4i32, 2, 0, 1,
2917 9,
2918 OPC_CheckChild2CondCode, ISD::SETLE,
2919 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F32x4),
2920 MVT::v4i32, 2, 0, 1,
2921 9,
2922 OPC_CheckChild2CondCode, ISD::SETGE,
2923 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F32x4),
2924 MVT::v4i32, 2, 0, 1,
2925 0,
2926 0,
2927 79|128,1, MVT::v2i64,
2928 OPC_Scope, 71,
2929 OPC_CheckChild0Type, MVT::v2i64,
2930 OPC_RecordChild1,
2931 OPC_Scope, 10,
2932 OPC_CheckChild2CondCode, ISD::SETEQ,
2933 OPC_CheckPatternPredicate0,
2934 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_I64x2),
2935 MVT::v2i64, 2, 0, 1,
2936 10,
2937 OPC_CheckChild2CondCode, ISD::SETNE,
2938 OPC_CheckPatternPredicate0,
2939 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_I64x2),
2940 MVT::v2i64, 2, 0, 1,
2941 10,
2942 OPC_CheckChild2CondCode, ISD::SETLT,
2943 OPC_CheckPatternPredicate0,
2944 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_S_I64x2),
2945 MVT::v2i64, 2, 0, 1,
2946 10,
2947 OPC_CheckChild2CondCode, ISD::SETGT,
2948 OPC_CheckPatternPredicate0,
2949 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_S_I64x2),
2950 MVT::v2i64, 2, 0, 1,
2951 10,
2952 OPC_CheckChild2CondCode, ISD::SETLE,
2953 OPC_CheckPatternPredicate0,
2954 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_S_I64x2),
2955 MVT::v2i64, 2, 0, 1,
2956 10,
2957 OPC_CheckChild2CondCode, ISD::SETGE,
2958 OPC_CheckPatternPredicate0,
2959 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_S_I64x2),
2960 MVT::v2i64, 2, 0, 1,
2961 0,
2962 3|128,1,
2963 OPC_CheckChild0Type, MVT::v2f64,
2964 OPC_RecordChild1,
2965 OPC_Scope, 10,
2966 OPC_CheckChild2CondCode, ISD::SETOEQ,
2967 OPC_CheckPatternPredicate0,
2968 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F64x2),
2969 MVT::v2i64, 2, 0, 1,
2970 10,
2971 OPC_CheckChild2CondCode, ISD::SETUNE,
2972 OPC_CheckPatternPredicate0,
2973 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F64x2),
2974 MVT::v2i64, 2, 0, 1,
2975 10,
2976 OPC_CheckChild2CondCode, ISD::SETOLT,
2977 OPC_CheckPatternPredicate0,
2978 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F64x2),
2979 MVT::v2i64, 2, 0, 1,
2980 10,
2981 OPC_CheckChild2CondCode, ISD::SETOGT,
2982 OPC_CheckPatternPredicate0,
2983 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F64x2),
2984 MVT::v2i64, 2, 0, 1,
2985 10,
2986 OPC_CheckChild2CondCode, ISD::SETOLE,
2987 OPC_CheckPatternPredicate0,
2988 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F64x2),
2989 MVT::v2i64, 2, 0, 1,
2990 10,
2991 OPC_CheckChild2CondCode, ISD::SETOGE,
2992 OPC_CheckPatternPredicate0,
2993 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F64x2),
2994 MVT::v2i64, 2, 0, 1,
2995 9,
2996 OPC_CheckChild2CondCode, ISD::SETEQ,
2997 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EQ_F64x2),
2998 MVT::v2i64, 2, 0, 1,
2999 9,
3000 OPC_CheckChild2CondCode, ISD::SETNE,
3001 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NE_F64x2),
3002 MVT::v2i64, 2, 0, 1,
3003 9,
3004 OPC_CheckChild2CondCode, ISD::SETLT,
3005 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LT_F64x2),
3006 MVT::v2i64, 2, 0, 1,
3007 9,
3008 OPC_CheckChild2CondCode, ISD::SETGT,
3009 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GT_F64x2),
3010 MVT::v2i64, 2, 0, 1,
3011 9,
3012 OPC_CheckChild2CondCode, ISD::SETLE,
3013 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LE_F64x2),
3014 MVT::v2i64, 2, 0, 1,
3015 9,
3016 OPC_CheckChild2CondCode, ISD::SETGE,
3017 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GE_F64x2),
3018 MVT::v2i64, 2, 0, 1,
3019 0,
3020 0,
3021 0,
3022 0,
3023 17|128,11, TARGET_VAL(ISD::LOAD),
3024 OPC_RecordMemRef,
3025 OPC_RecordNode,
3026 OPC_RecordChild1,
3027 OPC_Scope, 68|128,5,
3028 OPC_CheckChild1TypeI32,
3029 OPC_CheckPredicate, 9,
3030 OPC_Scope, 37,
3031 OPC_CheckPredicate7,
3032 OPC_SwitchType , 15, MVT::i32,
3033 OPC_CheckPatternPredicate3,
3034 OPC_CheckComplexPat0, /*#*/1,
3035 OPC_EmitMergeInputChains1_0,
3036 OPC_EmitInteger32, 0,
3037 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3038 MVT::i32, 3, 4, 2, 3,
3039 15, MVT::i64,
3040 OPC_CheckPatternPredicate3,
3041 OPC_CheckComplexPat0, /*#*/1,
3042 OPC_EmitMergeInputChains1_0,
3043 OPC_EmitInteger32, 0,
3044 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3045 MVT::i64, 3, 4, 2, 3,
3046 0,
3047 97,
3048 OPC_CheckPredicate, 13,
3049 OPC_SwitchType , 36, MVT::i32,
3050 OPC_Scope, 16,
3051 OPC_CheckPredicate1,
3052 OPC_CheckPatternPredicate3,
3053 OPC_CheckComplexPat0, /*#*/1,
3054 OPC_EmitMergeInputChains1_0,
3055 OPC_EmitInteger32, 0,
3056 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_S_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3057 MVT::i32, 3, 4, 2, 3,
3058 16,
3059 OPC_CheckPredicate2,
3060 OPC_CheckPatternPredicate3,
3061 OPC_CheckComplexPat0, /*#*/1,
3062 OPC_EmitMergeInputChains1_0,
3063 OPC_EmitInteger32, 0,
3064 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_S_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3065 MVT::i32, 3, 4, 2, 3,
3066 0,
3067 53, MVT::i64,
3068 OPC_Scope, 16,
3069 OPC_CheckPredicate1,
3070 OPC_CheckPatternPredicate3,
3071 OPC_CheckComplexPat0, /*#*/1,
3072 OPC_EmitMergeInputChains1_0,
3073 OPC_EmitInteger32, 0,
3074 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_S_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3075 MVT::i64, 3, 4, 2, 3,
3076 16,
3077 OPC_CheckPredicate2,
3078 OPC_CheckPatternPredicate3,
3079 OPC_CheckComplexPat0, /*#*/1,
3080 OPC_EmitMergeInputChains1_0,
3081 OPC_EmitInteger32, 0,
3082 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_S_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3083 MVT::i64, 3, 4, 2, 3,
3084 16,
3085 OPC_CheckPredicate3,
3086 OPC_CheckPatternPredicate3,
3087 OPC_CheckComplexPat0, /*#*/1,
3088 OPC_EmitMergeInputChains1_0,
3089 OPC_EmitInteger32, 0,
3090 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_S_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3091 MVT::i64, 3, 4, 2, 3,
3092 0,
3093 0,
3094 97,
3095 OPC_CheckPredicate, 14,
3096 OPC_SwitchType , 36, MVT::i32,
3097 OPC_Scope, 16,
3098 OPC_CheckPredicate1,
3099 OPC_CheckPatternPredicate3,
3100 OPC_CheckComplexPat0, /*#*/1,
3101 OPC_EmitMergeInputChains1_0,
3102 OPC_EmitInteger32, 0,
3103 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3104 MVT::i32, 3, 4, 2, 3,
3105 16,
3106 OPC_CheckPredicate2,
3107 OPC_CheckPatternPredicate3,
3108 OPC_CheckComplexPat0, /*#*/1,
3109 OPC_EmitMergeInputChains1_0,
3110 OPC_EmitInteger32, 0,
3111 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3112 MVT::i32, 3, 4, 2, 3,
3113 0,
3114 53, MVT::i64,
3115 OPC_Scope, 16,
3116 OPC_CheckPredicate1,
3117 OPC_CheckPatternPredicate3,
3118 OPC_CheckComplexPat0, /*#*/1,
3119 OPC_EmitMergeInputChains1_0,
3120 OPC_EmitInteger32, 0,
3121 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3122 MVT::i64, 3, 4, 2, 3,
3123 16,
3124 OPC_CheckPredicate2,
3125 OPC_CheckPatternPredicate3,
3126 OPC_CheckComplexPat0, /*#*/1,
3127 OPC_EmitMergeInputChains1_0,
3128 OPC_EmitInteger32, 0,
3129 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3130 MVT::i64, 3, 4, 2, 3,
3131 16,
3132 OPC_CheckPredicate3,
3133 OPC_CheckPatternPredicate3,
3134 OPC_CheckComplexPat0, /*#*/1,
3135 OPC_EmitMergeInputChains1_0,
3136 OPC_EmitInteger32, 0,
3137 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3138 MVT::i64, 3, 4, 2, 3,
3139 0,
3140 0,
3141 97,
3142 OPC_CheckPredicate, 10,
3143 OPC_SwitchType , 36, MVT::i32,
3144 OPC_Scope, 16,
3145 OPC_CheckPredicate1,
3146 OPC_CheckPatternPredicate3,
3147 OPC_CheckComplexPat0, /*#*/1,
3148 OPC_EmitMergeInputChains1_0,
3149 OPC_EmitInteger32, 0,
3150 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3151 MVT::i32, 3, 4, 2, 3,
3152 16,
3153 OPC_CheckPredicate2,
3154 OPC_CheckPatternPredicate3,
3155 OPC_CheckComplexPat0, /*#*/1,
3156 OPC_EmitMergeInputChains1_0,
3157 OPC_EmitInteger32, 0,
3158 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3159 MVT::i32, 3, 4, 2, 3,
3160 0,
3161 53, MVT::i64,
3162 OPC_Scope, 16,
3163 OPC_CheckPredicate1,
3164 OPC_CheckPatternPredicate3,
3165 OPC_CheckComplexPat0, /*#*/1,
3166 OPC_EmitMergeInputChains1_0,
3167 OPC_EmitInteger32, 0,
3168 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3169 MVT::i64, 3, 4, 2, 3,
3170 16,
3171 OPC_CheckPredicate2,
3172 OPC_CheckPatternPredicate3,
3173 OPC_CheckComplexPat0, /*#*/1,
3174 OPC_EmitMergeInputChains1_0,
3175 OPC_EmitInteger32, 0,
3176 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3177 MVT::i64, 3, 4, 2, 3,
3178 16,
3179 OPC_CheckPredicate3,
3180 OPC_CheckPatternPredicate3,
3181 OPC_CheckComplexPat0, /*#*/1,
3182 OPC_EmitMergeInputChains1_0,
3183 OPC_EmitInteger32, 0,
3184 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_U_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3185 MVT::i64, 3, 4, 2, 3,
3186 0,
3187 0,
3188 105,
3189 OPC_CheckPredicate7,
3190 OPC_SwitchType , 15, MVT::f32,
3191 OPC_CheckPatternPredicate3,
3192 OPC_CheckComplexPat0, /*#*/1,
3193 OPC_EmitMergeInputChains1_0,
3194 OPC_EmitInteger32, 0,
3195 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_F32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3196 MVT::f32, 3, 4, 2, 3,
3197 15, MVT::f64,
3198 OPC_CheckPatternPredicate3,
3199 OPC_CheckComplexPat0, /*#*/1,
3200 OPC_EmitMergeInputChains1_0,
3201 OPC_EmitInteger32, 0,
3202 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_F64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3203 MVT::f64, 3, 4, 2, 3,
3204 15, MVT::v16i8,
3205 OPC_CheckPatternPredicate3,
3206 OPC_CheckComplexPat0, /*#*/1,
3207 OPC_EmitMergeInputChains1_0,
3208 OPC_EmitInteger32, 0,
3209 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
3210 MVT::v16i8, 3, 4, 2, 3,
3211 15, MVT::v8i16,
3212 OPC_CheckPatternPredicate3,
3213 OPC_CheckComplexPat0, /*#*/1,
3214 OPC_EmitMergeInputChains1_0,
3215 OPC_EmitInteger32, 0,
3216 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
3217 MVT::v8i16, 3, 4, 2, 3,
3218 15, MVT::v4i32,
3219 OPC_CheckPatternPredicate3,
3220 OPC_CheckComplexPat0, /*#*/1,
3221 OPC_EmitMergeInputChains1_0,
3222 OPC_EmitInteger32, 0,
3223 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
3224 MVT::v4i32, 3, 4, 2, 3,
3225 15, MVT::v2i64,
3226 OPC_CheckPatternPredicate3,
3227 OPC_CheckComplexPat0, /*#*/1,
3228 OPC_EmitMergeInputChains1_0,
3229 OPC_EmitInteger32, 0,
3230 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
3231 MVT::v2i64, 3, 4, 2, 3,
3232 0,
3233 21,
3234 OPC_CheckPredicate, 13,
3235 OPC_CheckPredicate, 21,
3236 OPC_CheckType, MVT::v8i16,
3237 OPC_CheckPatternPredicate3,
3238 OPC_CheckComplexPat0, /*#*/1,
3239 OPC_EmitMergeInputChains1_0,
3240 OPC_EmitInteger32, 0,
3241 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_S_I16x8_A32), 0|OPFL_Chain|OPFL_MemRefs,
3242 MVT::v8i16, 3, 4, 2, 3,
3243 21,
3244 OPC_CheckPredicate, 14,
3245 OPC_CheckPredicate, 21,
3246 OPC_CheckType, MVT::v8i16,
3247 OPC_CheckPatternPredicate3,
3248 OPC_CheckComplexPat0, /*#*/1,
3249 OPC_EmitMergeInputChains1_0,
3250 OPC_EmitInteger32, 0,
3251 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I16x8_A32), 0|OPFL_Chain|OPFL_MemRefs,
3252 MVT::v8i16, 3, 4, 2, 3,
3253 21,
3254 OPC_CheckPredicate, 10,
3255 OPC_CheckPredicate, 21,
3256 OPC_CheckType, MVT::v8i16,
3257 OPC_CheckPatternPredicate3,
3258 OPC_CheckComplexPat0, /*#*/1,
3259 OPC_EmitMergeInputChains1_0,
3260 OPC_EmitInteger32, 0,
3261 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I16x8_A32), 0|OPFL_Chain|OPFL_MemRefs,
3262 MVT::v8i16, 3, 4, 2, 3,
3263 21,
3264 OPC_CheckPredicate, 13,
3265 OPC_CheckPredicate, 22,
3266 OPC_CheckType, MVT::v4i32,
3267 OPC_CheckPatternPredicate3,
3268 OPC_CheckComplexPat0, /*#*/1,
3269 OPC_EmitMergeInputChains1_0,
3270 OPC_EmitInteger32, 0,
3271 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_S_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
3272 MVT::v4i32, 3, 4, 2, 3,
3273 21,
3274 OPC_CheckPredicate, 14,
3275 OPC_CheckPredicate, 22,
3276 OPC_CheckType, MVT::v4i32,
3277 OPC_CheckPatternPredicate3,
3278 OPC_CheckComplexPat0, /*#*/1,
3279 OPC_EmitMergeInputChains1_0,
3280 OPC_EmitInteger32, 0,
3281 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
3282 MVT::v4i32, 3, 4, 2, 3,
3283 21,
3284 OPC_CheckPredicate, 10,
3285 OPC_CheckPredicate, 22,
3286 OPC_CheckType, MVT::v4i32,
3287 OPC_CheckPatternPredicate3,
3288 OPC_CheckComplexPat0, /*#*/1,
3289 OPC_EmitMergeInputChains1_0,
3290 OPC_EmitInteger32, 0,
3291 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
3292 MVT::v4i32, 3, 4, 2, 3,
3293 21,
3294 OPC_CheckPredicate, 13,
3295 OPC_CheckPredicate, 23,
3296 OPC_CheckType, MVT::v2i64,
3297 OPC_CheckPatternPredicate3,
3298 OPC_CheckComplexPat0, /*#*/1,
3299 OPC_EmitMergeInputChains1_0,
3300 OPC_EmitInteger32, 0,
3301 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_S_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
3302 MVT::v2i64, 3, 4, 2, 3,
3303 21,
3304 OPC_CheckPredicate, 14,
3305 OPC_CheckPredicate, 23,
3306 OPC_CheckType, MVT::v2i64,
3307 OPC_CheckPatternPredicate3,
3308 OPC_CheckComplexPat0, /*#*/1,
3309 OPC_EmitMergeInputChains1_0,
3310 OPC_EmitInteger32, 0,
3311 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
3312 MVT::v2i64, 3, 4, 2, 3,
3313 21,
3314 OPC_CheckPredicate, 10,
3315 OPC_CheckPredicate, 23,
3316 OPC_CheckType, MVT::v2i64,
3317 OPC_CheckPatternPredicate3,
3318 OPC_CheckComplexPat0, /*#*/1,
3319 OPC_EmitMergeInputChains1_0,
3320 OPC_EmitInteger32, 0,
3321 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
3322 MVT::v2i64, 3, 4, 2, 3,
3323 37,
3324 OPC_CheckPredicate7,
3325 OPC_SwitchType , 15, MVT::v4f32,
3326 OPC_CheckPatternPredicate3,
3327 OPC_CheckComplexPat0, /*#*/1,
3328 OPC_EmitMergeInputChains1_0,
3329 OPC_EmitInteger32, 0,
3330 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
3331 MVT::v4f32, 3, 4, 2, 3,
3332 15, MVT::v2f64,
3333 OPC_CheckPatternPredicate3,
3334 OPC_CheckComplexPat0, /*#*/1,
3335 OPC_EmitMergeInputChains1_0,
3336 OPC_EmitInteger32, 0,
3337 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A32), 0|OPFL_Chain|OPFL_MemRefs,
3338 MVT::v2f64, 3, 4, 2, 3,
3339 0,
3340 28,
3341 OPC_CheckPredicate, 10,
3342 OPC_CheckType, MVT::v2f64,
3343 OPC_CheckPatternPredicate3,
3344 OPC_EmitMergeInputChains1_0,
3345 OPC_EmitInteger32, 0,
3346 OPC_EmitInteger32, 0,
3347 OPC_EmitNode1, TARGET_VAL(WebAssembly::LOAD_ZERO_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
3348 MVT::v16i8, 3, 2, 3, 1,
3349 OPC_EmitNode1None, TARGET_VAL(WebAssembly::promote_low_F64x2),
3350 MVT::v2f64, 1, 4,
3351 OPC_CompleteMatch, 1, 5,
3352
3353 0,
3354 68|128,5,
3355 OPC_CheckChild1TypeI64,
3356 OPC_CheckPredicate, 9,
3357 OPC_Scope, 37,
3358 OPC_CheckPredicate7,
3359 OPC_SwitchType , 15, MVT::i32,
3360 OPC_CheckPatternPredicate4,
3361 OPC_CheckComplexPat1, /*#*/1,
3362 OPC_EmitMergeInputChains1_0,
3363 OPC_EmitInteger32, 0,
3364 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3365 MVT::i32, 3, 4, 2, 3,
3366 15, MVT::i64,
3367 OPC_CheckPatternPredicate4,
3368 OPC_CheckComplexPat1, /*#*/1,
3369 OPC_EmitMergeInputChains1_0,
3370 OPC_EmitInteger32, 0,
3371 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3372 MVT::i64, 3, 4, 2, 3,
3373 0,
3374 97,
3375 OPC_CheckPredicate, 13,
3376 OPC_SwitchType , 36, MVT::i32,
3377 OPC_Scope, 16,
3378 OPC_CheckPredicate1,
3379 OPC_CheckPatternPredicate4,
3380 OPC_CheckComplexPat1, /*#*/1,
3381 OPC_EmitMergeInputChains1_0,
3382 OPC_EmitInteger32, 0,
3383 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_S_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3384 MVT::i32, 3, 4, 2, 3,
3385 16,
3386 OPC_CheckPredicate2,
3387 OPC_CheckPatternPredicate4,
3388 OPC_CheckComplexPat1, /*#*/1,
3389 OPC_EmitMergeInputChains1_0,
3390 OPC_EmitInteger32, 0,
3391 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_S_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3392 MVT::i32, 3, 4, 2, 3,
3393 0,
3394 53, MVT::i64,
3395 OPC_Scope, 16,
3396 OPC_CheckPredicate1,
3397 OPC_CheckPatternPredicate4,
3398 OPC_CheckComplexPat1, /*#*/1,
3399 OPC_EmitMergeInputChains1_0,
3400 OPC_EmitInteger32, 0,
3401 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_S_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3402 MVT::i64, 3, 4, 2, 3,
3403 16,
3404 OPC_CheckPredicate2,
3405 OPC_CheckPatternPredicate4,
3406 OPC_CheckComplexPat1, /*#*/1,
3407 OPC_EmitMergeInputChains1_0,
3408 OPC_EmitInteger32, 0,
3409 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_S_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3410 MVT::i64, 3, 4, 2, 3,
3411 16,
3412 OPC_CheckPredicate3,
3413 OPC_CheckPatternPredicate4,
3414 OPC_CheckComplexPat1, /*#*/1,
3415 OPC_EmitMergeInputChains1_0,
3416 OPC_EmitInteger32, 0,
3417 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_S_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3418 MVT::i64, 3, 4, 2, 3,
3419 0,
3420 0,
3421 97,
3422 OPC_CheckPredicate, 14,
3423 OPC_SwitchType , 36, MVT::i32,
3424 OPC_Scope, 16,
3425 OPC_CheckPredicate1,
3426 OPC_CheckPatternPredicate4,
3427 OPC_CheckComplexPat1, /*#*/1,
3428 OPC_EmitMergeInputChains1_0,
3429 OPC_EmitInteger32, 0,
3430 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3431 MVT::i32, 3, 4, 2, 3,
3432 16,
3433 OPC_CheckPredicate2,
3434 OPC_CheckPatternPredicate4,
3435 OPC_CheckComplexPat1, /*#*/1,
3436 OPC_EmitMergeInputChains1_0,
3437 OPC_EmitInteger32, 0,
3438 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3439 MVT::i32, 3, 4, 2, 3,
3440 0,
3441 53, MVT::i64,
3442 OPC_Scope, 16,
3443 OPC_CheckPredicate1,
3444 OPC_CheckPatternPredicate4,
3445 OPC_CheckComplexPat1, /*#*/1,
3446 OPC_EmitMergeInputChains1_0,
3447 OPC_EmitInteger32, 0,
3448 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3449 MVT::i64, 3, 4, 2, 3,
3450 16,
3451 OPC_CheckPredicate2,
3452 OPC_CheckPatternPredicate4,
3453 OPC_CheckComplexPat1, /*#*/1,
3454 OPC_EmitMergeInputChains1_0,
3455 OPC_EmitInteger32, 0,
3456 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3457 MVT::i64, 3, 4, 2, 3,
3458 16,
3459 OPC_CheckPredicate3,
3460 OPC_CheckPatternPredicate4,
3461 OPC_CheckComplexPat1, /*#*/1,
3462 OPC_EmitMergeInputChains1_0,
3463 OPC_EmitInteger32, 0,
3464 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3465 MVT::i64, 3, 4, 2, 3,
3466 0,
3467 0,
3468 97,
3469 OPC_CheckPredicate, 10,
3470 OPC_SwitchType , 36, MVT::i32,
3471 OPC_Scope, 16,
3472 OPC_CheckPredicate1,
3473 OPC_CheckPatternPredicate4,
3474 OPC_CheckComplexPat1, /*#*/1,
3475 OPC_EmitMergeInputChains1_0,
3476 OPC_EmitInteger32, 0,
3477 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3478 MVT::i32, 3, 4, 2, 3,
3479 16,
3480 OPC_CheckPredicate2,
3481 OPC_CheckPatternPredicate4,
3482 OPC_CheckComplexPat1, /*#*/1,
3483 OPC_EmitMergeInputChains1_0,
3484 OPC_EmitInteger32, 0,
3485 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3486 MVT::i32, 3, 4, 2, 3,
3487 0,
3488 53, MVT::i64,
3489 OPC_Scope, 16,
3490 OPC_CheckPredicate1,
3491 OPC_CheckPatternPredicate4,
3492 OPC_CheckComplexPat1, /*#*/1,
3493 OPC_EmitMergeInputChains1_0,
3494 OPC_EmitInteger32, 0,
3495 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3496 MVT::i64, 3, 4, 2, 3,
3497 16,
3498 OPC_CheckPredicate2,
3499 OPC_CheckPatternPredicate4,
3500 OPC_CheckComplexPat1, /*#*/1,
3501 OPC_EmitMergeInputChains1_0,
3502 OPC_EmitInteger32, 0,
3503 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3504 MVT::i64, 3, 4, 2, 3,
3505 16,
3506 OPC_CheckPredicate3,
3507 OPC_CheckPatternPredicate4,
3508 OPC_CheckComplexPat1, /*#*/1,
3509 OPC_EmitMergeInputChains1_0,
3510 OPC_EmitInteger32, 0,
3511 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_U_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3512 MVT::i64, 3, 4, 2, 3,
3513 0,
3514 0,
3515 105,
3516 OPC_CheckPredicate7,
3517 OPC_SwitchType , 15, MVT::f32,
3518 OPC_CheckPatternPredicate4,
3519 OPC_CheckComplexPat1, /*#*/1,
3520 OPC_EmitMergeInputChains1_0,
3521 OPC_EmitInteger32, 0,
3522 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_F32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3523 MVT::f32, 3, 4, 2, 3,
3524 15, MVT::f64,
3525 OPC_CheckPatternPredicate4,
3526 OPC_CheckComplexPat1, /*#*/1,
3527 OPC_EmitMergeInputChains1_0,
3528 OPC_EmitInteger32, 0,
3529 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_F64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3530 MVT::f64, 3, 4, 2, 3,
3531 15, MVT::v16i8,
3532 OPC_CheckPatternPredicate4,
3533 OPC_CheckComplexPat1, /*#*/1,
3534 OPC_EmitMergeInputChains1_0,
3535 OPC_EmitInteger32, 0,
3536 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
3537 MVT::v16i8, 3, 4, 2, 3,
3538 15, MVT::v8i16,
3539 OPC_CheckPatternPredicate4,
3540 OPC_CheckComplexPat1, /*#*/1,
3541 OPC_EmitMergeInputChains1_0,
3542 OPC_EmitInteger32, 0,
3543 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
3544 MVT::v8i16, 3, 4, 2, 3,
3545 15, MVT::v4i32,
3546 OPC_CheckPatternPredicate4,
3547 OPC_CheckComplexPat1, /*#*/1,
3548 OPC_EmitMergeInputChains1_0,
3549 OPC_EmitInteger32, 0,
3550 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
3551 MVT::v4i32, 3, 4, 2, 3,
3552 15, MVT::v2i64,
3553 OPC_CheckPatternPredicate4,
3554 OPC_CheckComplexPat1, /*#*/1,
3555 OPC_EmitMergeInputChains1_0,
3556 OPC_EmitInteger32, 0,
3557 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
3558 MVT::v2i64, 3, 4, 2, 3,
3559 0,
3560 21,
3561 OPC_CheckPredicate, 13,
3562 OPC_CheckPredicate, 21,
3563 OPC_CheckType, MVT::v8i16,
3564 OPC_CheckPatternPredicate4,
3565 OPC_CheckComplexPat1, /*#*/1,
3566 OPC_EmitMergeInputChains1_0,
3567 OPC_EmitInteger32, 0,
3568 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_S_I16x8_A64), 0|OPFL_Chain|OPFL_MemRefs,
3569 MVT::v8i16, 3, 4, 2, 3,
3570 21,
3571 OPC_CheckPredicate, 14,
3572 OPC_CheckPredicate, 21,
3573 OPC_CheckType, MVT::v8i16,
3574 OPC_CheckPatternPredicate4,
3575 OPC_CheckComplexPat1, /*#*/1,
3576 OPC_EmitMergeInputChains1_0,
3577 OPC_EmitInteger32, 0,
3578 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I16x8_A64), 0|OPFL_Chain|OPFL_MemRefs,
3579 MVT::v8i16, 3, 4, 2, 3,
3580 21,
3581 OPC_CheckPredicate, 10,
3582 OPC_CheckPredicate, 21,
3583 OPC_CheckType, MVT::v8i16,
3584 OPC_CheckPatternPredicate4,
3585 OPC_CheckComplexPat1, /*#*/1,
3586 OPC_EmitMergeInputChains1_0,
3587 OPC_EmitInteger32, 0,
3588 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I16x8_A64), 0|OPFL_Chain|OPFL_MemRefs,
3589 MVT::v8i16, 3, 4, 2, 3,
3590 21,
3591 OPC_CheckPredicate, 13,
3592 OPC_CheckPredicate, 22,
3593 OPC_CheckType, MVT::v4i32,
3594 OPC_CheckPatternPredicate4,
3595 OPC_CheckComplexPat1, /*#*/1,
3596 OPC_EmitMergeInputChains1_0,
3597 OPC_EmitInteger32, 0,
3598 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_S_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
3599 MVT::v4i32, 3, 4, 2, 3,
3600 21,
3601 OPC_CheckPredicate, 14,
3602 OPC_CheckPredicate, 22,
3603 OPC_CheckType, MVT::v4i32,
3604 OPC_CheckPatternPredicate4,
3605 OPC_CheckComplexPat1, /*#*/1,
3606 OPC_EmitMergeInputChains1_0,
3607 OPC_EmitInteger32, 0,
3608 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
3609 MVT::v4i32, 3, 4, 2, 3,
3610 21,
3611 OPC_CheckPredicate, 10,
3612 OPC_CheckPredicate, 22,
3613 OPC_CheckType, MVT::v4i32,
3614 OPC_CheckPatternPredicate4,
3615 OPC_CheckComplexPat1, /*#*/1,
3616 OPC_EmitMergeInputChains1_0,
3617 OPC_EmitInteger32, 0,
3618 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
3619 MVT::v4i32, 3, 4, 2, 3,
3620 21,
3621 OPC_CheckPredicate, 13,
3622 OPC_CheckPredicate, 23,
3623 OPC_CheckType, MVT::v2i64,
3624 OPC_CheckPatternPredicate4,
3625 OPC_CheckComplexPat1, /*#*/1,
3626 OPC_EmitMergeInputChains1_0,
3627 OPC_EmitInteger32, 0,
3628 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_S_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
3629 MVT::v2i64, 3, 4, 2, 3,
3630 21,
3631 OPC_CheckPredicate, 14,
3632 OPC_CheckPredicate, 23,
3633 OPC_CheckType, MVT::v2i64,
3634 OPC_CheckPatternPredicate4,
3635 OPC_CheckComplexPat1, /*#*/1,
3636 OPC_EmitMergeInputChains1_0,
3637 OPC_EmitInteger32, 0,
3638 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
3639 MVT::v2i64, 3, 4, 2, 3,
3640 21,
3641 OPC_CheckPredicate, 10,
3642 OPC_CheckPredicate, 23,
3643 OPC_CheckType, MVT::v2i64,
3644 OPC_CheckPatternPredicate4,
3645 OPC_CheckComplexPat1, /*#*/1,
3646 OPC_EmitMergeInputChains1_0,
3647 OPC_EmitInteger32, 0,
3648 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_EXTEND_U_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
3649 MVT::v2i64, 3, 4, 2, 3,
3650 37,
3651 OPC_CheckPredicate7,
3652 OPC_SwitchType , 15, MVT::v4f32,
3653 OPC_CheckPatternPredicate4,
3654 OPC_CheckComplexPat1, /*#*/1,
3655 OPC_EmitMergeInputChains1_0,
3656 OPC_EmitInteger32, 0,
3657 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
3658 MVT::v4f32, 3, 4, 2, 3,
3659 15, MVT::v2f64,
3660 OPC_CheckPatternPredicate4,
3661 OPC_CheckComplexPat1, /*#*/1,
3662 OPC_EmitMergeInputChains1_0,
3663 OPC_EmitInteger32, 0,
3664 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_V128_A64), 0|OPFL_Chain|OPFL_MemRefs,
3665 MVT::v2f64, 3, 4, 2, 3,
3666 0,
3667 28,
3668 OPC_CheckPredicate, 10,
3669 OPC_CheckType, MVT::v2f64,
3670 OPC_CheckPatternPredicate4,
3671 OPC_EmitMergeInputChains1_0,
3672 OPC_EmitInteger32, 0,
3673 OPC_EmitInteger64, 0,
3674 OPC_EmitNode1, TARGET_VAL(WebAssembly::LOAD_ZERO_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
3675 MVT::v16i8, 3, 2, 3, 1,
3676 OPC_EmitNode1None, TARGET_VAL(WebAssembly::promote_low_F64x2),
3677 MVT::v2f64, 1, 4,
3678 OPC_CompleteMatch, 1, 5,
3679
3680 0,
3681 0,
3682 31|128,1, TARGET_VAL(ISD::ATOMIC_LOAD),
3683 OPC_RecordMemRef,
3684 OPC_RecordNode,
3685 OPC_RecordChild1,
3686 OPC_Scope, 76,
3687 OPC_CheckChild1TypeI32,
3688 OPC_SwitchType , 53, MVT::i32,
3689 OPC_Scope, 16,
3690 OPC_CheckPredicate3,
3691 OPC_CheckPatternPredicate3,
3692 OPC_CheckComplexPat0, /*#*/1,
3693 OPC_EmitMergeInputChains1_0,
3694 OPC_EmitInteger32, 0,
3695 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3696 MVT::i32, 3, 4, 2, 3,
3697 16,
3698 OPC_CheckPredicate1,
3699 OPC_CheckPatternPredicate3,
3700 OPC_CheckComplexPat0, /*#*/1,
3701 OPC_EmitMergeInputChains1_0,
3702 OPC_EmitInteger32, 0,
3703 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD8_U_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3704 MVT::i32, 3, 4, 2, 3,
3705 16,
3706 OPC_CheckPredicate2,
3707 OPC_CheckPatternPredicate3,
3708 OPC_CheckComplexPat0, /*#*/1,
3709 OPC_EmitMergeInputChains1_0,
3710 OPC_EmitInteger32, 0,
3711 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD16_U_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3712 MVT::i32, 3, 4, 2, 3,
3713 0,
3714 16, MVT::i64,
3715 OPC_CheckPredicate6,
3716 OPC_CheckPatternPredicate3,
3717 OPC_CheckComplexPat0, /*#*/1,
3718 OPC_EmitMergeInputChains1_0,
3719 OPC_EmitInteger32, 0,
3720 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3721 MVT::i64, 3, 4, 2, 3,
3722 0,
3723 76,
3724 OPC_CheckChild1TypeI64,
3725 OPC_SwitchType , 53, MVT::i32,
3726 OPC_Scope, 16,
3727 OPC_CheckPredicate3,
3728 OPC_CheckPatternPredicate4,
3729 OPC_CheckComplexPat1, /*#*/1,
3730 OPC_EmitMergeInputChains1_0,
3731 OPC_EmitInteger32, 0,
3732 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3733 MVT::i32, 3, 4, 2, 3,
3734 16,
3735 OPC_CheckPredicate1,
3736 OPC_CheckPatternPredicate4,
3737 OPC_CheckComplexPat1, /*#*/1,
3738 OPC_EmitMergeInputChains1_0,
3739 OPC_EmitInteger32, 0,
3740 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD8_U_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3741 MVT::i32, 3, 4, 2, 3,
3742 16,
3743 OPC_CheckPredicate2,
3744 OPC_CheckPatternPredicate4,
3745 OPC_CheckComplexPat1, /*#*/1,
3746 OPC_EmitMergeInputChains1_0,
3747 OPC_EmitInteger32, 0,
3748 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD16_U_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3749 MVT::i32, 3, 4, 2, 3,
3750 0,
3751 16, MVT::i64,
3752 OPC_CheckPredicate6,
3753 OPC_CheckPatternPredicate4,
3754 OPC_CheckComplexPat1, /*#*/1,
3755 OPC_EmitMergeInputChains1_0,
3756 OPC_EmitInteger32, 0,
3757 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_LOAD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3758 MVT::i64, 3, 4, 2, 3,
3759 0,
3760 0,
3761 113|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),
3762 OPC_RecordMemRef,
3763 OPC_RecordNode,
3764 OPC_RecordChild1,
3765 OPC_Scope, 117,
3766 OPC_CheckChild1TypeI32,
3767 OPC_RecordChild2,
3768 OPC_SwitchType , 92, MVT::i32,
3769 OPC_Scope, 17,
3770 OPC_CheckPredicate3,
3771 OPC_CheckPatternPredicate1,
3772 OPC_CheckComplexPat0, /*#*/1,
3773 OPC_EmitMergeInputChains1_0,
3774 OPC_EmitInteger32, 0,
3775 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_ADD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3776 MVT::i32, 4, 5, 3, 4, 2,
3777 17,
3778 OPC_CheckPredicate1,
3779 OPC_CheckPatternPredicate1,
3780 OPC_CheckComplexPat0, /*#*/1,
3781 OPC_EmitMergeInputChains1_0,
3782 OPC_EmitInteger32, 0,
3783 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3784 MVT::i32, 4, 5, 3, 4, 2,
3785 17,
3786 OPC_CheckPredicate2,
3787 OPC_CheckPatternPredicate1,
3788 OPC_CheckComplexPat0, /*#*/1,
3789 OPC_EmitMergeInputChains1_0,
3790 OPC_EmitInteger32, 0,
3791 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3792 MVT::i32, 4, 5, 3, 4, 2,
3793 17,
3794 OPC_CheckPredicate1,
3795 OPC_CheckPatternPredicate1,
3796 OPC_CheckComplexPat0, /*#*/1,
3797 OPC_EmitMergeInputChains1_0,
3798 OPC_EmitInteger32, 0,
3799 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3800 MVT::i32, 4, 5, 3, 4, 2,
3801 17,
3802 OPC_CheckPredicate2,
3803 OPC_CheckPatternPredicate1,
3804 OPC_CheckComplexPat0, /*#*/1,
3805 OPC_EmitMergeInputChains1_0,
3806 OPC_EmitInteger32, 0,
3807 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3808 MVT::i32, 4, 5, 3, 4, 2,
3809 0,
3810 17, MVT::i64,
3811 OPC_CheckPredicate6,
3812 OPC_CheckPatternPredicate1,
3813 OPC_CheckComplexPat0, /*#*/1,
3814 OPC_EmitMergeInputChains1_0,
3815 OPC_EmitInteger32, 0,
3816 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_ADD_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3817 MVT::i64, 4, 5, 3, 4, 2,
3818 0,
3819 117,
3820 OPC_CheckChild1TypeI64,
3821 OPC_RecordChild2,
3822 OPC_SwitchType , 92, MVT::i32,
3823 OPC_Scope, 17,
3824 OPC_CheckPredicate3,
3825 OPC_CheckPatternPredicate2,
3826 OPC_CheckComplexPat1, /*#*/1,
3827 OPC_EmitMergeInputChains1_0,
3828 OPC_EmitInteger32, 0,
3829 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_ADD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3830 MVT::i32, 4, 5, 3, 4, 2,
3831 17,
3832 OPC_CheckPredicate1,
3833 OPC_CheckPatternPredicate2,
3834 OPC_CheckComplexPat1, /*#*/1,
3835 OPC_EmitMergeInputChains1_0,
3836 OPC_EmitInteger32, 0,
3837 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3838 MVT::i32, 4, 5, 3, 4, 2,
3839 17,
3840 OPC_CheckPredicate2,
3841 OPC_CheckPatternPredicate2,
3842 OPC_CheckComplexPat1, /*#*/1,
3843 OPC_EmitMergeInputChains1_0,
3844 OPC_EmitInteger32, 0,
3845 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3846 MVT::i32, 4, 5, 3, 4, 2,
3847 17,
3848 OPC_CheckPredicate1,
3849 OPC_CheckPatternPredicate2,
3850 OPC_CheckComplexPat1, /*#*/1,
3851 OPC_EmitMergeInputChains1_0,
3852 OPC_EmitInteger32, 0,
3853 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_ADD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3854 MVT::i32, 4, 5, 3, 4, 2,
3855 17,
3856 OPC_CheckPredicate2,
3857 OPC_CheckPatternPredicate2,
3858 OPC_CheckComplexPat1, /*#*/1,
3859 OPC_EmitMergeInputChains1_0,
3860 OPC_EmitInteger32, 0,
3861 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_ADD_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3862 MVT::i32, 4, 5, 3, 4, 2,
3863 0,
3864 17, MVT::i64,
3865 OPC_CheckPredicate6,
3866 OPC_CheckPatternPredicate2,
3867 OPC_CheckComplexPat1, /*#*/1,
3868 OPC_EmitMergeInputChains1_0,
3869 OPC_EmitInteger32, 0,
3870 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_ADD_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3871 MVT::i64, 4, 5, 3, 4, 2,
3872 0,
3873 0,
3874 113|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),
3875 OPC_RecordMemRef,
3876 OPC_RecordNode,
3877 OPC_RecordChild1,
3878 OPC_Scope, 117,
3879 OPC_CheckChild1TypeI32,
3880 OPC_RecordChild2,
3881 OPC_SwitchType , 92, MVT::i32,
3882 OPC_Scope, 17,
3883 OPC_CheckPredicate3,
3884 OPC_CheckPatternPredicate1,
3885 OPC_CheckComplexPat0, /*#*/1,
3886 OPC_EmitMergeInputChains1_0,
3887 OPC_EmitInteger32, 0,
3888 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_SUB_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3889 MVT::i32, 4, 5, 3, 4, 2,
3890 17,
3891 OPC_CheckPredicate1,
3892 OPC_CheckPatternPredicate1,
3893 OPC_CheckComplexPat0, /*#*/1,
3894 OPC_EmitMergeInputChains1_0,
3895 OPC_EmitInteger32, 0,
3896 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3897 MVT::i32, 4, 5, 3, 4, 2,
3898 17,
3899 OPC_CheckPredicate2,
3900 OPC_CheckPatternPredicate1,
3901 OPC_CheckComplexPat0, /*#*/1,
3902 OPC_EmitMergeInputChains1_0,
3903 OPC_EmitInteger32, 0,
3904 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3905 MVT::i32, 4, 5, 3, 4, 2,
3906 17,
3907 OPC_CheckPredicate1,
3908 OPC_CheckPatternPredicate1,
3909 OPC_CheckComplexPat0, /*#*/1,
3910 OPC_EmitMergeInputChains1_0,
3911 OPC_EmitInteger32, 0,
3912 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3913 MVT::i32, 4, 5, 3, 4, 2,
3914 17,
3915 OPC_CheckPredicate2,
3916 OPC_CheckPatternPredicate1,
3917 OPC_CheckComplexPat0, /*#*/1,
3918 OPC_EmitMergeInputChains1_0,
3919 OPC_EmitInteger32, 0,
3920 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
3921 MVT::i32, 4, 5, 3, 4, 2,
3922 0,
3923 17, MVT::i64,
3924 OPC_CheckPredicate6,
3925 OPC_CheckPatternPredicate1,
3926 OPC_CheckComplexPat0, /*#*/1,
3927 OPC_EmitMergeInputChains1_0,
3928 OPC_EmitInteger32, 0,
3929 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_SUB_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
3930 MVT::i64, 4, 5, 3, 4, 2,
3931 0,
3932 117,
3933 OPC_CheckChild1TypeI64,
3934 OPC_RecordChild2,
3935 OPC_SwitchType , 92, MVT::i32,
3936 OPC_Scope, 17,
3937 OPC_CheckPredicate3,
3938 OPC_CheckPatternPredicate2,
3939 OPC_CheckComplexPat1, /*#*/1,
3940 OPC_EmitMergeInputChains1_0,
3941 OPC_EmitInteger32, 0,
3942 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_SUB_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3943 MVT::i32, 4, 5, 3, 4, 2,
3944 17,
3945 OPC_CheckPredicate1,
3946 OPC_CheckPatternPredicate2,
3947 OPC_CheckComplexPat1, /*#*/1,
3948 OPC_EmitMergeInputChains1_0,
3949 OPC_EmitInteger32, 0,
3950 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3951 MVT::i32, 4, 5, 3, 4, 2,
3952 17,
3953 OPC_CheckPredicate2,
3954 OPC_CheckPatternPredicate2,
3955 OPC_CheckComplexPat1, /*#*/1,
3956 OPC_EmitMergeInputChains1_0,
3957 OPC_EmitInteger32, 0,
3958 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3959 MVT::i32, 4, 5, 3, 4, 2,
3960 17,
3961 OPC_CheckPredicate1,
3962 OPC_CheckPatternPredicate2,
3963 OPC_CheckComplexPat1, /*#*/1,
3964 OPC_EmitMergeInputChains1_0,
3965 OPC_EmitInteger32, 0,
3966 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_SUB_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3967 MVT::i32, 4, 5, 3, 4, 2,
3968 17,
3969 OPC_CheckPredicate2,
3970 OPC_CheckPatternPredicate2,
3971 OPC_CheckComplexPat1, /*#*/1,
3972 OPC_EmitMergeInputChains1_0,
3973 OPC_EmitInteger32, 0,
3974 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_SUB_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
3975 MVT::i32, 4, 5, 3, 4, 2,
3976 0,
3977 17, MVT::i64,
3978 OPC_CheckPredicate6,
3979 OPC_CheckPatternPredicate2,
3980 OPC_CheckComplexPat1, /*#*/1,
3981 OPC_EmitMergeInputChains1_0,
3982 OPC_EmitInteger32, 0,
3983 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_SUB_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
3984 MVT::i64, 4, 5, 3, 4, 2,
3985 0,
3986 0,
3987 113|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_AND),
3988 OPC_RecordMemRef,
3989 OPC_RecordNode,
3990 OPC_RecordChild1,
3991 OPC_Scope, 117,
3992 OPC_CheckChild1TypeI32,
3993 OPC_RecordChild2,
3994 OPC_SwitchType , 92, MVT::i32,
3995 OPC_Scope, 17,
3996 OPC_CheckPredicate3,
3997 OPC_CheckPatternPredicate1,
3998 OPC_CheckComplexPat0, /*#*/1,
3999 OPC_EmitMergeInputChains1_0,
4000 OPC_EmitInteger32, 0,
4001 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_AND_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4002 MVT::i32, 4, 5, 3, 4, 2,
4003 17,
4004 OPC_CheckPredicate1,
4005 OPC_CheckPatternPredicate1,
4006 OPC_CheckComplexPat0, /*#*/1,
4007 OPC_EmitMergeInputChains1_0,
4008 OPC_EmitInteger32, 0,
4009 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4010 MVT::i32, 4, 5, 3, 4, 2,
4011 17,
4012 OPC_CheckPredicate2,
4013 OPC_CheckPatternPredicate1,
4014 OPC_CheckComplexPat0, /*#*/1,
4015 OPC_EmitMergeInputChains1_0,
4016 OPC_EmitInteger32, 0,
4017 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4018 MVT::i32, 4, 5, 3, 4, 2,
4019 17,
4020 OPC_CheckPredicate1,
4021 OPC_CheckPatternPredicate1,
4022 OPC_CheckComplexPat0, /*#*/1,
4023 OPC_EmitMergeInputChains1_0,
4024 OPC_EmitInteger32, 0,
4025 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4026 MVT::i32, 4, 5, 3, 4, 2,
4027 17,
4028 OPC_CheckPredicate2,
4029 OPC_CheckPatternPredicate1,
4030 OPC_CheckComplexPat0, /*#*/1,
4031 OPC_EmitMergeInputChains1_0,
4032 OPC_EmitInteger32, 0,
4033 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4034 MVT::i32, 4, 5, 3, 4, 2,
4035 0,
4036 17, MVT::i64,
4037 OPC_CheckPredicate6,
4038 OPC_CheckPatternPredicate1,
4039 OPC_CheckComplexPat0, /*#*/1,
4040 OPC_EmitMergeInputChains1_0,
4041 OPC_EmitInteger32, 0,
4042 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_AND_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
4043 MVT::i64, 4, 5, 3, 4, 2,
4044 0,
4045 117,
4046 OPC_CheckChild1TypeI64,
4047 OPC_RecordChild2,
4048 OPC_SwitchType , 92, MVT::i32,
4049 OPC_Scope, 17,
4050 OPC_CheckPredicate3,
4051 OPC_CheckPatternPredicate2,
4052 OPC_CheckComplexPat1, /*#*/1,
4053 OPC_EmitMergeInputChains1_0,
4054 OPC_EmitInteger32, 0,
4055 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_AND_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4056 MVT::i32, 4, 5, 3, 4, 2,
4057 17,
4058 OPC_CheckPredicate1,
4059 OPC_CheckPatternPredicate2,
4060 OPC_CheckComplexPat1, /*#*/1,
4061 OPC_EmitMergeInputChains1_0,
4062 OPC_EmitInteger32, 0,
4063 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4064 MVT::i32, 4, 5, 3, 4, 2,
4065 17,
4066 OPC_CheckPredicate2,
4067 OPC_CheckPatternPredicate2,
4068 OPC_CheckComplexPat1, /*#*/1,
4069 OPC_EmitMergeInputChains1_0,
4070 OPC_EmitInteger32, 0,
4071 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4072 MVT::i32, 4, 5, 3, 4, 2,
4073 17,
4074 OPC_CheckPredicate1,
4075 OPC_CheckPatternPredicate2,
4076 OPC_CheckComplexPat1, /*#*/1,
4077 OPC_EmitMergeInputChains1_0,
4078 OPC_EmitInteger32, 0,
4079 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_AND_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4080 MVT::i32, 4, 5, 3, 4, 2,
4081 17,
4082 OPC_CheckPredicate2,
4083 OPC_CheckPatternPredicate2,
4084 OPC_CheckComplexPat1, /*#*/1,
4085 OPC_EmitMergeInputChains1_0,
4086 OPC_EmitInteger32, 0,
4087 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_AND_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4088 MVT::i32, 4, 5, 3, 4, 2,
4089 0,
4090 17, MVT::i64,
4091 OPC_CheckPredicate6,
4092 OPC_CheckPatternPredicate2,
4093 OPC_CheckComplexPat1, /*#*/1,
4094 OPC_EmitMergeInputChains1_0,
4095 OPC_EmitInteger32, 0,
4096 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_AND_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
4097 MVT::i64, 4, 5, 3, 4, 2,
4098 0,
4099 0,
4100 113|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_OR),
4101 OPC_RecordMemRef,
4102 OPC_RecordNode,
4103 OPC_RecordChild1,
4104 OPC_Scope, 117,
4105 OPC_CheckChild1TypeI32,
4106 OPC_RecordChild2,
4107 OPC_SwitchType , 92, MVT::i32,
4108 OPC_Scope, 17,
4109 OPC_CheckPredicate3,
4110 OPC_CheckPatternPredicate1,
4111 OPC_CheckComplexPat0, /*#*/1,
4112 OPC_EmitMergeInputChains1_0,
4113 OPC_EmitInteger32, 0,
4114 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_OR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4115 MVT::i32, 4, 5, 3, 4, 2,
4116 17,
4117 OPC_CheckPredicate1,
4118 OPC_CheckPatternPredicate1,
4119 OPC_CheckComplexPat0, /*#*/1,
4120 OPC_EmitMergeInputChains1_0,
4121 OPC_EmitInteger32, 0,
4122 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4123 MVT::i32, 4, 5, 3, 4, 2,
4124 17,
4125 OPC_CheckPredicate2,
4126 OPC_CheckPatternPredicate1,
4127 OPC_CheckComplexPat0, /*#*/1,
4128 OPC_EmitMergeInputChains1_0,
4129 OPC_EmitInteger32, 0,
4130 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4131 MVT::i32, 4, 5, 3, 4, 2,
4132 17,
4133 OPC_CheckPredicate1,
4134 OPC_CheckPatternPredicate1,
4135 OPC_CheckComplexPat0, /*#*/1,
4136 OPC_EmitMergeInputChains1_0,
4137 OPC_EmitInteger32, 0,
4138 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4139 MVT::i32, 4, 5, 3, 4, 2,
4140 17,
4141 OPC_CheckPredicate2,
4142 OPC_CheckPatternPredicate1,
4143 OPC_CheckComplexPat0, /*#*/1,
4144 OPC_EmitMergeInputChains1_0,
4145 OPC_EmitInteger32, 0,
4146 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4147 MVT::i32, 4, 5, 3, 4, 2,
4148 0,
4149 17, MVT::i64,
4150 OPC_CheckPredicate6,
4151 OPC_CheckPatternPredicate1,
4152 OPC_CheckComplexPat0, /*#*/1,
4153 OPC_EmitMergeInputChains1_0,
4154 OPC_EmitInteger32, 0,
4155 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_OR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
4156 MVT::i64, 4, 5, 3, 4, 2,
4157 0,
4158 117,
4159 OPC_CheckChild1TypeI64,
4160 OPC_RecordChild2,
4161 OPC_SwitchType , 92, MVT::i32,
4162 OPC_Scope, 17,
4163 OPC_CheckPredicate3,
4164 OPC_CheckPatternPredicate2,
4165 OPC_CheckComplexPat1, /*#*/1,
4166 OPC_EmitMergeInputChains1_0,
4167 OPC_EmitInteger32, 0,
4168 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_OR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4169 MVT::i32, 4, 5, 3, 4, 2,
4170 17,
4171 OPC_CheckPredicate1,
4172 OPC_CheckPatternPredicate2,
4173 OPC_CheckComplexPat1, /*#*/1,
4174 OPC_EmitMergeInputChains1_0,
4175 OPC_EmitInteger32, 0,
4176 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4177 MVT::i32, 4, 5, 3, 4, 2,
4178 17,
4179 OPC_CheckPredicate2,
4180 OPC_CheckPatternPredicate2,
4181 OPC_CheckComplexPat1, /*#*/1,
4182 OPC_EmitMergeInputChains1_0,
4183 OPC_EmitInteger32, 0,
4184 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4185 MVT::i32, 4, 5, 3, 4, 2,
4186 17,
4187 OPC_CheckPredicate1,
4188 OPC_CheckPatternPredicate2,
4189 OPC_CheckComplexPat1, /*#*/1,
4190 OPC_EmitMergeInputChains1_0,
4191 OPC_EmitInteger32, 0,
4192 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_OR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4193 MVT::i32, 4, 5, 3, 4, 2,
4194 17,
4195 OPC_CheckPredicate2,
4196 OPC_CheckPatternPredicate2,
4197 OPC_CheckComplexPat1, /*#*/1,
4198 OPC_EmitMergeInputChains1_0,
4199 OPC_EmitInteger32, 0,
4200 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_OR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4201 MVT::i32, 4, 5, 3, 4, 2,
4202 0,
4203 17, MVT::i64,
4204 OPC_CheckPredicate6,
4205 OPC_CheckPatternPredicate2,
4206 OPC_CheckComplexPat1, /*#*/1,
4207 OPC_EmitMergeInputChains1_0,
4208 OPC_EmitInteger32, 0,
4209 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_OR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
4210 MVT::i64, 4, 5, 3, 4, 2,
4211 0,
4212 0,
4213 113|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),
4214 OPC_RecordMemRef,
4215 OPC_RecordNode,
4216 OPC_RecordChild1,
4217 OPC_Scope, 117,
4218 OPC_CheckChild1TypeI32,
4219 OPC_RecordChild2,
4220 OPC_SwitchType , 92, MVT::i32,
4221 OPC_Scope, 17,
4222 OPC_CheckPredicate3,
4223 OPC_CheckPatternPredicate1,
4224 OPC_CheckComplexPat0, /*#*/1,
4225 OPC_EmitMergeInputChains1_0,
4226 OPC_EmitInteger32, 0,
4227 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XOR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4228 MVT::i32, 4, 5, 3, 4, 2,
4229 17,
4230 OPC_CheckPredicate1,
4231 OPC_CheckPatternPredicate1,
4232 OPC_CheckComplexPat0, /*#*/1,
4233 OPC_EmitMergeInputChains1_0,
4234 OPC_EmitInteger32, 0,
4235 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4236 MVT::i32, 4, 5, 3, 4, 2,
4237 17,
4238 OPC_CheckPredicate2,
4239 OPC_CheckPatternPredicate1,
4240 OPC_CheckComplexPat0, /*#*/1,
4241 OPC_EmitMergeInputChains1_0,
4242 OPC_EmitInteger32, 0,
4243 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4244 MVT::i32, 4, 5, 3, 4, 2,
4245 17,
4246 OPC_CheckPredicate1,
4247 OPC_CheckPatternPredicate1,
4248 OPC_CheckComplexPat0, /*#*/1,
4249 OPC_EmitMergeInputChains1_0,
4250 OPC_EmitInteger32, 0,
4251 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4252 MVT::i32, 4, 5, 3, 4, 2,
4253 17,
4254 OPC_CheckPredicate2,
4255 OPC_CheckPatternPredicate1,
4256 OPC_CheckComplexPat0, /*#*/1,
4257 OPC_EmitMergeInputChains1_0,
4258 OPC_EmitInteger32, 0,
4259 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4260 MVT::i32, 4, 5, 3, 4, 2,
4261 0,
4262 17, MVT::i64,
4263 OPC_CheckPredicate6,
4264 OPC_CheckPatternPredicate1,
4265 OPC_CheckComplexPat0, /*#*/1,
4266 OPC_EmitMergeInputChains1_0,
4267 OPC_EmitInteger32, 0,
4268 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XOR_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
4269 MVT::i64, 4, 5, 3, 4, 2,
4270 0,
4271 117,
4272 OPC_CheckChild1TypeI64,
4273 OPC_RecordChild2,
4274 OPC_SwitchType , 92, MVT::i32,
4275 OPC_Scope, 17,
4276 OPC_CheckPredicate3,
4277 OPC_CheckPatternPredicate2,
4278 OPC_CheckComplexPat1, /*#*/1,
4279 OPC_EmitMergeInputChains1_0,
4280 OPC_EmitInteger32, 0,
4281 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XOR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4282 MVT::i32, 4, 5, 3, 4, 2,
4283 17,
4284 OPC_CheckPredicate1,
4285 OPC_CheckPatternPredicate2,
4286 OPC_CheckComplexPat1, /*#*/1,
4287 OPC_EmitMergeInputChains1_0,
4288 OPC_EmitInteger32, 0,
4289 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4290 MVT::i32, 4, 5, 3, 4, 2,
4291 17,
4292 OPC_CheckPredicate2,
4293 OPC_CheckPatternPredicate2,
4294 OPC_CheckComplexPat1, /*#*/1,
4295 OPC_EmitMergeInputChains1_0,
4296 OPC_EmitInteger32, 0,
4297 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4298 MVT::i32, 4, 5, 3, 4, 2,
4299 17,
4300 OPC_CheckPredicate1,
4301 OPC_CheckPatternPredicate2,
4302 OPC_CheckComplexPat1, /*#*/1,
4303 OPC_EmitMergeInputChains1_0,
4304 OPC_EmitInteger32, 0,
4305 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XOR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4306 MVT::i32, 4, 5, 3, 4, 2,
4307 17,
4308 OPC_CheckPredicate2,
4309 OPC_CheckPatternPredicate2,
4310 OPC_CheckComplexPat1, /*#*/1,
4311 OPC_EmitMergeInputChains1_0,
4312 OPC_EmitInteger32, 0,
4313 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XOR_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4314 MVT::i32, 4, 5, 3, 4, 2,
4315 0,
4316 17, MVT::i64,
4317 OPC_CheckPredicate6,
4318 OPC_CheckPatternPredicate2,
4319 OPC_CheckComplexPat1, /*#*/1,
4320 OPC_EmitMergeInputChains1_0,
4321 OPC_EmitInteger32, 0,
4322 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XOR_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
4323 MVT::i64, 4, 5, 3, 4, 2,
4324 0,
4325 0,
4326 113|128,1, TARGET_VAL(ISD::ATOMIC_SWAP),
4327 OPC_RecordMemRef,
4328 OPC_RecordNode,
4329 OPC_RecordChild1,
4330 OPC_Scope, 117,
4331 OPC_CheckChild1TypeI32,
4332 OPC_RecordChild2,
4333 OPC_SwitchType , 92, MVT::i32,
4334 OPC_Scope, 17,
4335 OPC_CheckPredicate3,
4336 OPC_CheckPatternPredicate1,
4337 OPC_CheckComplexPat0, /*#*/1,
4338 OPC_EmitMergeInputChains1_0,
4339 OPC_EmitInteger32, 0,
4340 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4341 MVT::i32, 4, 5, 3, 4, 2,
4342 17,
4343 OPC_CheckPredicate1,
4344 OPC_CheckPatternPredicate1,
4345 OPC_CheckComplexPat0, /*#*/1,
4346 OPC_EmitMergeInputChains1_0,
4347 OPC_EmitInteger32, 0,
4348 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4349 MVT::i32, 4, 5, 3, 4, 2,
4350 17,
4351 OPC_CheckPredicate2,
4352 OPC_CheckPatternPredicate1,
4353 OPC_CheckComplexPat0, /*#*/1,
4354 OPC_EmitMergeInputChains1_0,
4355 OPC_EmitInteger32, 0,
4356 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4357 MVT::i32, 4, 5, 3, 4, 2,
4358 17,
4359 OPC_CheckPredicate1,
4360 OPC_CheckPatternPredicate1,
4361 OPC_CheckComplexPat0, /*#*/1,
4362 OPC_EmitMergeInputChains1_0,
4363 OPC_EmitInteger32, 0,
4364 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4365 MVT::i32, 4, 5, 3, 4, 2,
4366 17,
4367 OPC_CheckPredicate2,
4368 OPC_CheckPatternPredicate1,
4369 OPC_CheckComplexPat0, /*#*/1,
4370 OPC_EmitMergeInputChains1_0,
4371 OPC_EmitInteger32, 0,
4372 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4373 MVT::i32, 4, 5, 3, 4, 2,
4374 0,
4375 17, MVT::i64,
4376 OPC_CheckPredicate6,
4377 OPC_CheckPatternPredicate1,
4378 OPC_CheckComplexPat0, /*#*/1,
4379 OPC_EmitMergeInputChains1_0,
4380 OPC_EmitInteger32, 0,
4381 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
4382 MVT::i64, 4, 5, 3, 4, 2,
4383 0,
4384 117,
4385 OPC_CheckChild1TypeI64,
4386 OPC_RecordChild2,
4387 OPC_SwitchType , 92, MVT::i32,
4388 OPC_Scope, 17,
4389 OPC_CheckPredicate3,
4390 OPC_CheckPatternPredicate2,
4391 OPC_CheckComplexPat1, /*#*/1,
4392 OPC_EmitMergeInputChains1_0,
4393 OPC_EmitInteger32, 0,
4394 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4395 MVT::i32, 4, 5, 3, 4, 2,
4396 17,
4397 OPC_CheckPredicate1,
4398 OPC_CheckPatternPredicate2,
4399 OPC_CheckComplexPat1, /*#*/1,
4400 OPC_EmitMergeInputChains1_0,
4401 OPC_EmitInteger32, 0,
4402 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4403 MVT::i32, 4, 5, 3, 4, 2,
4404 17,
4405 OPC_CheckPredicate2,
4406 OPC_CheckPatternPredicate2,
4407 OPC_CheckComplexPat1, /*#*/1,
4408 OPC_EmitMergeInputChains1_0,
4409 OPC_EmitInteger32, 0,
4410 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4411 MVT::i32, 4, 5, 3, 4, 2,
4412 17,
4413 OPC_CheckPredicate1,
4414 OPC_CheckPatternPredicate2,
4415 OPC_CheckComplexPat1, /*#*/1,
4416 OPC_EmitMergeInputChains1_0,
4417 OPC_EmitInteger32, 0,
4418 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_XCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4419 MVT::i32, 4, 5, 3, 4, 2,
4420 17,
4421 OPC_CheckPredicate2,
4422 OPC_CheckPatternPredicate2,
4423 OPC_CheckComplexPat1, /*#*/1,
4424 OPC_EmitMergeInputChains1_0,
4425 OPC_EmitInteger32, 0,
4426 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_XCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4427 MVT::i32, 4, 5, 3, 4, 2,
4428 0,
4429 17, MVT::i64,
4430 OPC_CheckPredicate6,
4431 OPC_CheckPatternPredicate2,
4432 OPC_CheckComplexPat1, /*#*/1,
4433 OPC_EmitMergeInputChains1_0,
4434 OPC_EmitInteger32, 0,
4435 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_XCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
4436 MVT::i64, 4, 5, 3, 4, 2,
4437 0,
4438 0,
4439 127|128,1, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
4440 OPC_RecordMemRef,
4441 OPC_RecordNode,
4442 OPC_RecordChild1,
4443 OPC_Scope, 124,
4444 OPC_CheckChild1TypeI32,
4445 OPC_RecordChild2,
4446 OPC_RecordChild3,
4447 OPC_SwitchType , 97, MVT::i32,
4448 OPC_Scope, 18,
4449 OPC_CheckPredicate3,
4450 OPC_CheckPatternPredicate1,
4451 OPC_CheckComplexPat0, /*#*/1,
4452 OPC_EmitMergeInputChains1_0,
4453 OPC_EmitInteger32, 0,
4454 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_CMPXCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4455 MVT::i32, 5, 6, 4, 5, 2, 3,
4456 18,
4457 OPC_CheckPredicate1,
4458 OPC_CheckPatternPredicate1,
4459 OPC_CheckComplexPat0, /*#*/1,
4460 OPC_EmitMergeInputChains1_0,
4461 OPC_EmitInteger32, 0,
4462 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4463 MVT::i32, 5, 6, 4, 5, 2, 3,
4464 18,
4465 OPC_CheckPredicate2,
4466 OPC_CheckPatternPredicate1,
4467 OPC_CheckComplexPat0, /*#*/1,
4468 OPC_EmitMergeInputChains1_0,
4469 OPC_EmitInteger32, 0,
4470 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4471 MVT::i32, 5, 6, 4, 5, 2, 3,
4472 18,
4473 OPC_CheckPredicate1,
4474 OPC_CheckPatternPredicate1,
4475 OPC_CheckComplexPat0, /*#*/1,
4476 OPC_EmitMergeInputChains1_0,
4477 OPC_EmitInteger32, 0,
4478 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4479 MVT::i32, 5, 6, 4, 5, 2, 3,
4480 18,
4481 OPC_CheckPredicate2,
4482 OPC_CheckPatternPredicate1,
4483 OPC_CheckComplexPat0, /*#*/1,
4484 OPC_EmitMergeInputChains1_0,
4485 OPC_EmitInteger32, 0,
4486 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I32_A32), 0|OPFL_Chain|OPFL_MemRefs,
4487 MVT::i32, 5, 6, 4, 5, 2, 3,
4488 0,
4489 18, MVT::i64,
4490 OPC_CheckPredicate6,
4491 OPC_CheckPatternPredicate1,
4492 OPC_CheckComplexPat0, /*#*/1,
4493 OPC_EmitMergeInputChains1_0,
4494 OPC_EmitInteger32, 0,
4495 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_CMPXCHG_I64_A32), 0|OPFL_Chain|OPFL_MemRefs,
4496 MVT::i64, 5, 6, 4, 5, 2, 3,
4497 0,
4498 124,
4499 OPC_CheckChild1TypeI64,
4500 OPC_RecordChild2,
4501 OPC_RecordChild3,
4502 OPC_SwitchType , 97, MVT::i32,
4503 OPC_Scope, 18,
4504 OPC_CheckPredicate3,
4505 OPC_CheckPatternPredicate2,
4506 OPC_CheckComplexPat1, /*#*/1,
4507 OPC_EmitMergeInputChains1_0,
4508 OPC_EmitInteger32, 0,
4509 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_CMPXCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4510 MVT::i32, 5, 6, 4, 5, 2, 3,
4511 18,
4512 OPC_CheckPredicate1,
4513 OPC_CheckPatternPredicate2,
4514 OPC_CheckComplexPat1, /*#*/1,
4515 OPC_EmitMergeInputChains1_0,
4516 OPC_EmitInteger32, 0,
4517 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4518 MVT::i32, 5, 6, 4, 5, 2, 3,
4519 18,
4520 OPC_CheckPredicate2,
4521 OPC_CheckPatternPredicate2,
4522 OPC_CheckComplexPat1, /*#*/1,
4523 OPC_EmitMergeInputChains1_0,
4524 OPC_EmitInteger32, 0,
4525 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4526 MVT::i32, 5, 6, 4, 5, 2, 3,
4527 18,
4528 OPC_CheckPredicate1,
4529 OPC_CheckPatternPredicate2,
4530 OPC_CheckComplexPat1, /*#*/1,
4531 OPC_EmitMergeInputChains1_0,
4532 OPC_EmitInteger32, 0,
4533 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW8_U_CMPXCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4534 MVT::i32, 5, 6, 4, 5, 2, 3,
4535 18,
4536 OPC_CheckPredicate2,
4537 OPC_CheckPatternPredicate2,
4538 OPC_CheckComplexPat1, /*#*/1,
4539 OPC_EmitMergeInputChains1_0,
4540 OPC_EmitInteger32, 0,
4541 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW16_U_CMPXCHG_I32_A64), 0|OPFL_Chain|OPFL_MemRefs,
4542 MVT::i32, 5, 6, 4, 5, 2, 3,
4543 0,
4544 18, MVT::i64,
4545 OPC_CheckPredicate6,
4546 OPC_CheckPatternPredicate2,
4547 OPC_CheckComplexPat1, /*#*/1,
4548 OPC_EmitMergeInputChains1_0,
4549 OPC_EmitInteger32, 0,
4550 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ATOMIC_RMW_CMPXCHG_I64_A64), 0|OPFL_Chain|OPFL_MemRefs,
4551 MVT::i64, 5, 6, 4, 5, 2, 3,
4552 0,
4553 0,
4554 89, TARGET_VAL(ISD::BRCOND),
4555 OPC_RecordNode,
4556 OPC_Scope, 69,
4557 OPC_MoveChild1,
4558 OPC_SwitchOpcode , 21, TARGET_VAL(ISD::XOR),
4559 OPC_RecordChild0,
4560 OPC_MoveChild0,
4561 OPC_CheckPredicate, 26,
4562 OPC_MoveParent,
4563 OPC_CheckChild1Integer, 2,
4564 OPC_CheckTypeI32,
4565 OPC_MoveSibling2,
4566 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
4567 OPC_RecordNode,
4568 OPC_MoveParent,
4569 OPC_EmitMergeInputChains1_0,
4570 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::BR_UNLESS),
4571 2, 2, 1,
4572 39, TARGET_VAL(ISD::SETCC),
4573 OPC_RecordChild0,
4574 OPC_CheckChild0TypeI32,
4575 OPC_CheckChild1Integer, 0,
4576 OPC_CheckTypeI32,
4577 OPC_Scope, 15,
4578 OPC_CheckChild2CondCode, ISD::SETNE,
4579 OPC_MoveSibling2,
4580 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
4581 OPC_RecordNode,
4582 OPC_MoveParent,
4583 OPC_EmitMergeInputChains1_0,
4584 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::BR_IF),
4585 2, 2, 1,
4586 15,
4587 OPC_CheckChild2CondCode, ISD::SETEQ,
4588 OPC_MoveSibling2,
4589 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
4590 OPC_RecordNode,
4591 OPC_MoveParent,
4592 OPC_EmitMergeInputChains1_0,
4593 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::BR_UNLESS),
4594 2, 2, 1,
4595 0,
4596 0,
4597 15,
4598 OPC_RecordChild1,
4599 OPC_CheckChild1TypeI32,
4600 OPC_RecordChild2,
4601 OPC_MoveChild2,
4602 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
4603 OPC_MoveParent,
4604 OPC_EmitMergeInputChains1_0,
4605 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::BR_IF),
4606 2, 2, 1,
4607 0,
4608 59, TARGET_VAL(ISD::SHL),
4609 OPC_RecordChild0,
4610 OPC_Scope, 31,
4611 OPC_MoveChild1,
4612 OPC_SwitchType , 12, MVT::i32,
4613 OPC_CheckAndImm, 31,
4614 OPC_RecordChild0,
4615 OPC_MoveParent,
4616 OPC_CheckTypeI32,
4617 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I32),
4618 MVT::i32, 2, 0, 1,
4619 12, MVT::i64,
4620 OPC_CheckAndImm, 63,
4621 OPC_RecordChild0,
4622 OPC_MoveParent,
4623 OPC_CheckTypeI64,
4624 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I64),
4625 MVT::i64, 2, 0, 1,
4626 0,
4627 23,
4628 OPC_RecordChild1,
4629 OPC_SwitchType , 8, MVT::i32,
4630 OPC_CheckChild1TypeI32,
4631 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I32),
4632 MVT::i32, 2, 0, 1,
4633 8, MVT::i64,
4634 OPC_CheckChild1TypeI64,
4635 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I64),
4636 MVT::i64, 2, 0, 1,
4637 0,
4638 0,
4639 59, TARGET_VAL(ISD::SRA),
4640 OPC_RecordChild0,
4641 OPC_Scope, 31,
4642 OPC_MoveChild1,
4643 OPC_SwitchType , 12, MVT::i32,
4644 OPC_CheckAndImm, 31,
4645 OPC_RecordChild0,
4646 OPC_MoveParent,
4647 OPC_CheckTypeI32,
4648 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I32),
4649 MVT::i32, 2, 0, 1,
4650 12, MVT::i64,
4651 OPC_CheckAndImm, 63,
4652 OPC_RecordChild0,
4653 OPC_MoveParent,
4654 OPC_CheckTypeI64,
4655 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I64),
4656 MVT::i64, 2, 0, 1,
4657 0,
4658 23,
4659 OPC_RecordChild1,
4660 OPC_SwitchType , 8, MVT::i32,
4661 OPC_CheckChild1TypeI32,
4662 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I32),
4663 MVT::i32, 2, 0, 1,
4664 8, MVT::i64,
4665 OPC_CheckChild1TypeI64,
4666 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I64),
4667 MVT::i64, 2, 0, 1,
4668 0,
4669 0,
4670 59, TARGET_VAL(ISD::SRL),
4671 OPC_RecordChild0,
4672 OPC_Scope, 31,
4673 OPC_MoveChild1,
4674 OPC_SwitchType , 12, MVT::i32,
4675 OPC_CheckAndImm, 31,
4676 OPC_RecordChild0,
4677 OPC_MoveParent,
4678 OPC_CheckTypeI32,
4679 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I32),
4680 MVT::i32, 2, 0, 1,
4681 12, MVT::i64,
4682 OPC_CheckAndImm, 63,
4683 OPC_RecordChild0,
4684 OPC_MoveParent,
4685 OPC_CheckTypeI64,
4686 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I64),
4687 MVT::i64, 2, 0, 1,
4688 0,
4689 23,
4690 OPC_RecordChild1,
4691 OPC_SwitchType , 8, MVT::i32,
4692 OPC_CheckChild1TypeI32,
4693 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I32),
4694 MVT::i32, 2, 0, 1,
4695 8, MVT::i64,
4696 OPC_CheckChild1TypeI64,
4697 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I64),
4698 MVT::i64, 2, 0, 1,
4699 0,
4700 0,
4701 59, TARGET_VAL(ISD::ROTL),
4702 OPC_RecordChild0,
4703 OPC_Scope, 31,
4704 OPC_MoveChild1,
4705 OPC_SwitchType , 12, MVT::i32,
4706 OPC_CheckAndImm, 31,
4707 OPC_RecordChild0,
4708 OPC_MoveParent,
4709 OPC_CheckTypeI32,
4710 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTL_I32),
4711 MVT::i32, 2, 0, 1,
4712 12, MVT::i64,
4713 OPC_CheckAndImm, 63,
4714 OPC_RecordChild0,
4715 OPC_MoveParent,
4716 OPC_CheckTypeI64,
4717 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTL_I64),
4718 MVT::i64, 2, 0, 1,
4719 0,
4720 23,
4721 OPC_RecordChild1,
4722 OPC_SwitchType , 8, MVT::i32,
4723 OPC_CheckChild1TypeI32,
4724 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTL_I32),
4725 MVT::i32, 2, 0, 1,
4726 8, MVT::i64,
4727 OPC_CheckChild1TypeI64,
4728 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTL_I64),
4729 MVT::i64, 2, 0, 1,
4730 0,
4731 0,
4732 59, TARGET_VAL(ISD::ROTR),
4733 OPC_RecordChild0,
4734 OPC_Scope, 31,
4735 OPC_MoveChild1,
4736 OPC_SwitchType , 12, MVT::i32,
4737 OPC_CheckAndImm, 31,
4738 OPC_RecordChild0,
4739 OPC_MoveParent,
4740 OPC_CheckTypeI32,
4741 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTR_I32),
4742 MVT::i32, 2, 0, 1,
4743 12, MVT::i64,
4744 OPC_CheckAndImm, 63,
4745 OPC_RecordChild0,
4746 OPC_MoveParent,
4747 OPC_CheckTypeI64,
4748 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTR_I64),
4749 MVT::i64, 2, 0, 1,
4750 0,
4751 23,
4752 OPC_RecordChild1,
4753 OPC_SwitchType , 8, MVT::i32,
4754 OPC_CheckChild1TypeI32,
4755 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTR_I32),
4756 MVT::i32, 2, 0, 1,
4757 8, MVT::i64,
4758 OPC_CheckChild1TypeI64,
4759 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ROTR_I64),
4760 MVT::i64, 2, 0, 1,
4761 0,
4762 0,
4763 23|128,4, TARGET_VAL(ISD::SELECT),
4764 OPC_Scope, 127,
4765 OPC_MoveChild0,
4766 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
4767 OPC_RecordChild0,
4768 OPC_CheckChild0TypeI32,
4769 OPC_CheckChild1Integer, 0,
4770 OPC_CheckTypeI32,
4771 OPC_Scope, 57,
4772 OPC_CheckChild2CondCode, ISD::SETNE,
4773 OPC_MoveParent,
4774 OPC_RecordChild1,
4775 OPC_RecordChild2,
4776 OPC_SwitchType , 8, MVT::i32,
4777 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_I32),
4778 MVT::i32, 3, 1, 2, 0,
4779 8, MVT::i64,
4780 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_I64),
4781 MVT::i64, 3, 1, 2, 0,
4782 8, MVT::funcref,
4783 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_FUNCREF),
4784 MVT::funcref, 3, 1, 2, 0,
4785 8, MVT::externref,
4786 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_EXTERNREF),
4787 MVT::externref, 3, 1, 2, 0,
4788 8, MVT::exnref,
4789 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_EXNREF),
4790 MVT::exnref, 3, 1, 2, 0,
4791 0,
4792 57,
4793 OPC_CheckChild2CondCode, ISD::SETEQ,
4794 OPC_MoveParent,
4795 OPC_RecordChild1,
4796 OPC_RecordChild2,
4797 OPC_SwitchType , 8, MVT::i32,
4798 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_I32),
4799 MVT::i32, 3, 2, 1, 0,
4800 8, MVT::i64,
4801 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_I64),
4802 MVT::i64, 3, 2, 1, 0,
4803 8, MVT::funcref,
4804 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_FUNCREF),
4805 MVT::funcref, 3, 2, 1, 0,
4806 8, MVT::externref,
4807 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_EXTERNREF),
4808 MVT::externref, 3, 2, 1, 0,
4809 8, MVT::exnref,
4810 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_EXNREF),
4811 MVT::exnref, 3, 2, 1, 0,
4812 0,
4813 0,
4814 59,
4815 OPC_RecordChild0,
4816 OPC_CheckChild0TypeI32,
4817 OPC_RecordChild1,
4818 OPC_RecordChild2,
4819 OPC_SwitchType , 8, MVT::i32,
4820 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_I32),
4821 MVT::i32, 3, 1, 2, 0,
4822 8, MVT::i64,
4823 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_I64),
4824 MVT::i64, 3, 1, 2, 0,
4825 9, MVT::funcref,
4826 OPC_CheckPatternPredicate6,
4827 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_FUNCREF),
4828 MVT::funcref, 3, 1, 2, 0,
4829 9, MVT::externref,
4830 OPC_CheckPatternPredicate6,
4831 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_EXTERNREF),
4832 MVT::externref, 3, 1, 2, 0,
4833 9, MVT::exnref,
4834 OPC_CheckPatternPredicate6,
4835 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_EXNREF),
4836 MVT::exnref, 3, 1, 2, 0,
4837 0,
4838 67,
4839 OPC_MoveChild0,
4840 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
4841 OPC_RecordChild0,
4842 OPC_CheckChild0TypeI32,
4843 OPC_CheckChild1Integer, 0,
4844 OPC_CheckTypeI32,
4845 OPC_Scope, 27,
4846 OPC_CheckChild2CondCode, ISD::SETNE,
4847 OPC_MoveParent,
4848 OPC_RecordChild1,
4849 OPC_RecordChild2,
4850 OPC_SwitchType , 8, MVT::f32,
4851 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_F32),
4852 MVT::f32, 3, 1, 2, 0,
4853 8, MVT::f64,
4854 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_F64),
4855 MVT::f64, 3, 1, 2, 0,
4856 0,
4857 27,
4858 OPC_CheckChild2CondCode, ISD::SETEQ,
4859 OPC_MoveParent,
4860 OPC_RecordChild1,
4861 OPC_RecordChild2,
4862 OPC_SwitchType , 8, MVT::f32,
4863 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_F32),
4864 MVT::f32, 3, 2, 1, 0,
4865 8, MVT::f64,
4866 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_F64),
4867 MVT::f64, 3, 2, 1, 0,
4868 0,
4869 0,
4870 26,
4871 OPC_RecordChild0,
4872 OPC_CheckChild0TypeI32,
4873 OPC_RecordChild1,
4874 OPC_RecordChild2,
4875 OPC_SwitchType , 8, MVT::f32,
4876 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_F32),
4877 MVT::f32, 3, 1, 2, 0,
4878 8, MVT::f64,
4879 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_F64),
4880 MVT::f64, 3, 1, 2, 0,
4881 0,
4882 107,
4883 OPC_MoveChild0,
4884 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
4885 OPC_RecordChild0,
4886 OPC_CheckChild0TypeI32,
4887 OPC_CheckChild1Integer, 0,
4888 OPC_CheckTypeI32,
4889 OPC_Scope, 47,
4890 OPC_CheckChild2CondCode, ISD::SETNE,
4891 OPC_MoveParent,
4892 OPC_RecordChild1,
4893 OPC_RecordChild2,
4894 OPC_SwitchType , 8, MVT::v16i8,
4895 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4896 MVT::v16i8, 3, 1, 2, 0,
4897 8, MVT::v8i16,
4898 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4899 MVT::v8i16, 3, 1, 2, 0,
4900 8, MVT::v4i32,
4901 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4902 MVT::v4i32, 3, 1, 2, 0,
4903 8, MVT::v2i64,
4904 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4905 MVT::v2i64, 3, 1, 2, 0,
4906 0,
4907 47,
4908 OPC_CheckChild2CondCode, ISD::SETEQ,
4909 OPC_MoveParent,
4910 OPC_RecordChild1,
4911 OPC_RecordChild2,
4912 OPC_SwitchType , 8, MVT::v16i8,
4913 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4914 MVT::v16i8, 3, 2, 1, 0,
4915 8, MVT::v8i16,
4916 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4917 MVT::v8i16, 3, 2, 1, 0,
4918 8, MVT::v4i32,
4919 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4920 MVT::v4i32, 3, 2, 1, 0,
4921 8, MVT::v2i64,
4922 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4923 MVT::v2i64, 3, 2, 1, 0,
4924 0,
4925 0,
4926 46,
4927 OPC_RecordChild0,
4928 OPC_CheckChild0TypeI32,
4929 OPC_RecordChild1,
4930 OPC_RecordChild2,
4931 OPC_SwitchType , 8, MVT::v16i8,
4932 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4933 MVT::v16i8, 3, 1, 2, 0,
4934 8, MVT::v8i16,
4935 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4936 MVT::v8i16, 3, 1, 2, 0,
4937 8, MVT::v4i32,
4938 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4939 MVT::v4i32, 3, 1, 2, 0,
4940 8, MVT::v2i64,
4941 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4942 MVT::v2i64, 3, 1, 2, 0,
4943 0,
4944 67,
4945 OPC_MoveChild0,
4946 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
4947 OPC_RecordChild0,
4948 OPC_CheckChild0TypeI32,
4949 OPC_CheckChild1Integer, 0,
4950 OPC_CheckTypeI32,
4951 OPC_Scope, 27,
4952 OPC_CheckChild2CondCode, ISD::SETNE,
4953 OPC_MoveParent,
4954 OPC_RecordChild1,
4955 OPC_RecordChild2,
4956 OPC_SwitchType , 8, MVT::v4f32,
4957 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4958 MVT::v4f32, 3, 1, 2, 0,
4959 8, MVT::v2f64,
4960 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4961 MVT::v2f64, 3, 1, 2, 0,
4962 0,
4963 27,
4964 OPC_CheckChild2CondCode, ISD::SETEQ,
4965 OPC_MoveParent,
4966 OPC_RecordChild1,
4967 OPC_RecordChild2,
4968 OPC_SwitchType , 8, MVT::v4f32,
4969 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4970 MVT::v4f32, 3, 2, 1, 0,
4971 8, MVT::v2f64,
4972 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4973 MVT::v2f64, 3, 2, 1, 0,
4974 0,
4975 0,
4976 26,
4977 OPC_RecordChild0,
4978 OPC_CheckChild0TypeI32,
4979 OPC_RecordChild1,
4980 OPC_RecordChild2,
4981 OPC_SwitchType , 8, MVT::v4f32,
4982 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4983 MVT::v4f32, 3, 1, 2, 0,
4984 8, MVT::v2f64,
4985 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SELECT_V128),
4986 MVT::v2f64, 3, 1, 2, 0,
4987 0,
4988 0,
4989 1|128,1, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
4990 OPC_Scope, 57,
4991 OPC_MoveChild0,
4992 OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
4993 OPC_RecordChild0,
4994 OPC_Scope, 24,
4995 OPC_CheckChild0Type, MVT::v16i8,
4996 OPC_RecordChild1,
4997 OPC_MoveChild1,
4998 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
4999 OPC_CheckPredicate, 11,
5000 OPC_CheckTypeI32,
5001 OPC_MoveParent,
5002 OPC_MoveSibling1,
5003 OPC_CheckValueType, MVT::i8,
5004 OPC_MoveParent,
5005 OPC_CheckTypeI32,
5006 OPC_EmitConvertToTarget1,
5007 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I8x16_s),
5008 MVT::i32, 2, 0, 2,
5009 24,
5010 OPC_CheckChild0Type, MVT::v8i16,
5011 OPC_RecordChild1,
5012 OPC_MoveChild1,
5013 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5014 OPC_CheckPredicate, 16,
5015 OPC_CheckTypeI32,
5016 OPC_MoveParent,
5017 OPC_MoveSibling1,
5018 OPC_CheckValueType, MVT::i16,
5019 OPC_MoveParent,
5020 OPC_CheckTypeI32,
5021 OPC_EmitConvertToTarget1,
5022 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I16x8_s),
5023 MVT::i32, 2, 0, 2,
5024 0,
5025 68,
5026 OPC_RecordChild0,
5027 OPC_MoveChild1,
5028 OPC_Scope, 25,
5029 OPC_CheckValueType, MVT::i8,
5030 OPC_MoveParent,
5031 OPC_SwitchType , 8, MVT::i32,
5032 OPC_CheckPatternPredicate, 11,
5033 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_EXTEND8_S_I32),
5034 MVT::i32, 1, 0,
5035 8, MVT::i64,
5036 OPC_CheckPatternPredicate, 11,
5037 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_EXTEND8_S_I64),
5038 MVT::i64, 1, 0,
5039 0,
5040 25,
5041 OPC_CheckValueType, MVT::i16,
5042 OPC_MoveParent,
5043 OPC_SwitchType , 8, MVT::i32,
5044 OPC_CheckPatternPredicate, 11,
5045 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_EXTEND16_S_I32),
5046 MVT::i32, 1, 0,
5047 8, MVT::i64,
5048 OPC_CheckPatternPredicate, 11,
5049 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_EXTEND16_S_I64),
5050 MVT::i64, 1, 0,
5051 0,
5052 11,
5053 OPC_CheckValueType, MVT::i32,
5054 OPC_MoveParent,
5055 OPC_CheckPatternPredicate, 11,
5056 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_EXTEND32_S_I64),
5057 MVT::i64, 1, 0,
5058 0,
5059 0,
5060 38|128,1, TARGET_VAL(WebAssemblyISD::GLOBAL_GET),
5061 OPC_RecordMemRef,
5062 OPC_RecordNode,
5063 OPC_MoveChild1,
5064 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5065 OPC_RecordChild0,
5066 OPC_MoveChild0,
5067 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5068 OPC_MoveParent,
5069 OPC_MoveParent,
5070 OPC_SwitchType , 8, MVT::i32,
5071 OPC_EmitMergeInputChains1_0,
5072 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_I32), 0|OPFL_Chain|OPFL_MemRefs,
5073 MVT::i32, 1, 1,
5074 8, MVT::i64,
5075 OPC_EmitMergeInputChains1_0,
5076 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_I64), 0|OPFL_Chain|OPFL_MemRefs,
5077 MVT::i64, 1, 1,
5078 9, MVT::funcref,
5079 OPC_CheckPatternPredicate6,
5080 OPC_EmitMergeInputChains1_0,
5081 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_FUNCREF), 0|OPFL_Chain|OPFL_MemRefs,
5082 MVT::funcref, 1, 1,
5083 9, MVT::externref,
5084 OPC_CheckPatternPredicate6,
5085 OPC_EmitMergeInputChains1_0,
5086 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_EXTERNREF), 0|OPFL_Chain|OPFL_MemRefs,
5087 MVT::externref, 1, 1,
5088 10, MVT::exnref,
5089 OPC_CheckPatternPredicate, 8,
5090 OPC_EmitMergeInputChains1_0,
5091 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_EXNREF), 0|OPFL_Chain|OPFL_MemRefs,
5092 MVT::exnref, 1, 1,
5093 8, MVT::f32,
5094 OPC_EmitMergeInputChains1_0,
5095 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_F32), 0|OPFL_Chain|OPFL_MemRefs,
5096 MVT::f32, 1, 1,
5097 8, MVT::f64,
5098 OPC_EmitMergeInputChains1_0,
5099 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_F64), 0|OPFL_Chain|OPFL_MemRefs,
5100 MVT::f64, 1, 1,
5101 9, MVT::v2i64,
5102 OPC_CheckPatternPredicate0,
5103 OPC_EmitMergeInputChains1_0,
5104 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5105 MVT::v2i64, 1, 1,
5106 9, MVT::v4i32,
5107 OPC_CheckPatternPredicate0,
5108 OPC_EmitMergeInputChains1_0,
5109 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5110 MVT::v4i32, 1, 1,
5111 9, MVT::v16i8,
5112 OPC_CheckPatternPredicate0,
5113 OPC_EmitMergeInputChains1_0,
5114 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5115 MVT::v16i8, 1, 1,
5116 9, MVT::v8i16,
5117 OPC_CheckPatternPredicate0,
5118 OPC_EmitMergeInputChains1_0,
5119 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5120 MVT::v8i16, 1, 1,
5121 9, MVT::v8f16,
5122 OPC_CheckPatternPredicate0,
5123 OPC_EmitMergeInputChains1_0,
5124 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5125 MVT::v8f16, 1, 1,
5126 9, MVT::v4f32,
5127 OPC_CheckPatternPredicate0,
5128 OPC_EmitMergeInputChains1_0,
5129 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5130 MVT::v4f32, 1, 1,
5131 9, MVT::v2f64,
5132 OPC_CheckPatternPredicate0,
5133 OPC_EmitMergeInputChains1_0,
5134 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::GLOBAL_GET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5135 MVT::v2f64, 1, 1,
5136 0,
5137 66|128,2, TARGET_VAL(WebAssemblyISD::GLOBAL_SET),
5138 OPC_RecordMemRef,
5139 OPC_RecordNode,
5140 OPC_RecordChild1,
5141 OPC_Scope, 20,
5142 OPC_CheckChild1TypeI32,
5143 OPC_MoveChild2,
5144 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5145 OPC_RecordChild0,
5146 OPC_MoveChild0,
5147 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5148 OPC_MoveParent,
5149 OPC_MoveParent,
5150 OPC_EmitMergeInputChains1_0,
5151 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_I32), 0|OPFL_Chain|OPFL_MemRefs,
5152 2, 2, 1,
5153 20,
5154 OPC_CheckChild1TypeI64,
5155 OPC_MoveChild2,
5156 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5157 OPC_RecordChild0,
5158 OPC_MoveChild0,
5159 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5160 OPC_MoveParent,
5161 OPC_MoveParent,
5162 OPC_EmitMergeInputChains1_0,
5163 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_I64), 0|OPFL_Chain|OPFL_MemRefs,
5164 2, 2, 1,
5165 21,
5166 OPC_CheckChild1Type, MVT::f32,
5167 OPC_MoveChild2,
5168 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5169 OPC_RecordChild0,
5170 OPC_MoveChild0,
5171 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5172 OPC_MoveParent,
5173 OPC_MoveParent,
5174 OPC_EmitMergeInputChains1_0,
5175 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_F32), 0|OPFL_Chain|OPFL_MemRefs,
5176 2, 2, 1,
5177 21,
5178 OPC_CheckChild1Type, MVT::f64,
5179 OPC_MoveChild2,
5180 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5181 OPC_RecordChild0,
5182 OPC_MoveChild0,
5183 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5184 OPC_MoveParent,
5185 OPC_MoveParent,
5186 OPC_EmitMergeInputChains1_0,
5187 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_F64), 0|OPFL_Chain|OPFL_MemRefs,
5188 2, 2, 1,
5189 22,
5190 OPC_CheckChild1Type, MVT::v8f16,
5191 OPC_MoveChild2,
5192 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5193 OPC_RecordChild0,
5194 OPC_MoveChild0,
5195 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5196 OPC_MoveParent,
5197 OPC_MoveParent,
5198 OPC_CheckPatternPredicate0,
5199 OPC_EmitMergeInputChains1_0,
5200 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5201 2, 2, 1,
5202 22,
5203 OPC_CheckChild1Type, MVT::v4f32,
5204 OPC_MoveChild2,
5205 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5206 OPC_RecordChild0,
5207 OPC_MoveChild0,
5208 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5209 OPC_MoveParent,
5210 OPC_MoveParent,
5211 OPC_CheckPatternPredicate0,
5212 OPC_EmitMergeInputChains1_0,
5213 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5214 2, 2, 1,
5215 22,
5216 OPC_CheckChild1Type, MVT::v2f64,
5217 OPC_MoveChild2,
5218 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5219 OPC_RecordChild0,
5220 OPC_MoveChild0,
5221 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5222 OPC_MoveParent,
5223 OPC_MoveParent,
5224 OPC_CheckPatternPredicate0,
5225 OPC_EmitMergeInputChains1_0,
5226 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5227 2, 2, 1,
5228 22,
5229 OPC_CheckChild1Type, MVT::v2i64,
5230 OPC_MoveChild2,
5231 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5232 OPC_RecordChild0,
5233 OPC_MoveChild0,
5234 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5235 OPC_MoveParent,
5236 OPC_MoveParent,
5237 OPC_CheckPatternPredicate0,
5238 OPC_EmitMergeInputChains1_0,
5239 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5240 2, 2, 1,
5241 22,
5242 OPC_CheckChild1Type, MVT::v4i32,
5243 OPC_MoveChild2,
5244 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5245 OPC_RecordChild0,
5246 OPC_MoveChild0,
5247 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5248 OPC_MoveParent,
5249 OPC_MoveParent,
5250 OPC_CheckPatternPredicate0,
5251 OPC_EmitMergeInputChains1_0,
5252 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5253 2, 2, 1,
5254 22,
5255 OPC_CheckChild1Type, MVT::v16i8,
5256 OPC_MoveChild2,
5257 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5258 OPC_RecordChild0,
5259 OPC_MoveChild0,
5260 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5261 OPC_MoveParent,
5262 OPC_MoveParent,
5263 OPC_CheckPatternPredicate0,
5264 OPC_EmitMergeInputChains1_0,
5265 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5266 2, 2, 1,
5267 22,
5268 OPC_CheckChild1Type, MVT::v8i16,
5269 OPC_MoveChild2,
5270 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5271 OPC_RecordChild0,
5272 OPC_MoveChild0,
5273 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5274 OPC_MoveParent,
5275 OPC_MoveParent,
5276 OPC_CheckPatternPredicate0,
5277 OPC_EmitMergeInputChains1_0,
5278 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_V128), 0|OPFL_Chain|OPFL_MemRefs,
5279 2, 2, 1,
5280 22,
5281 OPC_CheckChild1Type, MVT::funcref,
5282 OPC_MoveChild2,
5283 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5284 OPC_RecordChild0,
5285 OPC_MoveChild0,
5286 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5287 OPC_MoveParent,
5288 OPC_MoveParent,
5289 OPC_CheckPatternPredicate6,
5290 OPC_EmitMergeInputChains1_0,
5291 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_FUNCREF), 0|OPFL_Chain|OPFL_MemRefs,
5292 2, 2, 1,
5293 22,
5294 OPC_CheckChild1Type, MVT::externref,
5295 OPC_MoveChild2,
5296 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5297 OPC_RecordChild0,
5298 OPC_MoveChild0,
5299 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5300 OPC_MoveParent,
5301 OPC_MoveParent,
5302 OPC_CheckPatternPredicate6,
5303 OPC_EmitMergeInputChains1_0,
5304 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_EXTERNREF), 0|OPFL_Chain|OPFL_MemRefs,
5305 2, 2, 1,
5306 23,
5307 OPC_CheckChild1Type, MVT::exnref,
5308 OPC_MoveChild2,
5309 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5310 OPC_RecordChild0,
5311 OPC_MoveChild0,
5312 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5313 OPC_MoveParent,
5314 OPC_MoveParent,
5315 OPC_CheckPatternPredicate, 8,
5316 OPC_EmitMergeInputChains1_0,
5317 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::GLOBAL_SET_EXNREF), 0|OPFL_Chain|OPFL_MemRefs,
5318 2, 2, 1,
5319 0,
5320 21, TARGET_VAL(ISD::CALLSEQ_START),
5321 OPC_RecordNode,
5322 OPC_RecordChild1,
5323 OPC_MoveChild1,
5324 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
5325 OPC_MoveSibling2,
5326 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
5327 OPC_RecordNode,
5328 OPC_MoveParent,
5329 OPC_EmitMergeInputChains1_0,
5330 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
5331 MVT::i32, 2, 1, 2,
5332 22, TARGET_VAL(ISD::CALLSEQ_END),
5333 OPC_RecordNode,
5334 OPC_CaptureGlueInput,
5335 OPC_RecordChild1,
5336 OPC_MoveChild1,
5337 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
5338 OPC_MoveSibling2,
5339 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
5340 OPC_RecordNode,
5341 OPC_MoveParent,
5342 OPC_EmitMergeInputChains1_0,
5343 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
5344 MVT::i32, 2, 1, 2,
5345 57, TARGET_VAL(WebAssemblyISD::MEMORY_COPY),
5346 OPC_RecordNode,
5347 OPC_RecordChild1,
5348 OPC_MoveChild1,
5349 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5350 OPC_CheckTypeI32,
5351 OPC_MoveSibling2,
5352 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5353 OPC_RecordNode,
5354 OPC_CheckTypeI32,
5355 OPC_MoveParent,
5356 OPC_RecordChild3,
5357 OPC_Scope, 19,
5358 OPC_CheckChild3TypeI32,
5359 OPC_RecordChild4,
5360 OPC_CheckChild4TypeI32,
5361 OPC_RecordChild5,
5362 OPC_CheckChild5TypeI32,
5363 OPC_CheckPatternPredicate, 12,
5364 OPC_EmitMergeInputChains1_0,
5365 OPC_EmitConvertToTarget1,
5366 OPC_EmitConvertToTarget2,
5367 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::anonymous_8878MEMORY_COPY_A32),
5368 5, 6, 7, 3, 4, 5,
5369 19,
5370 OPC_CheckChild3TypeI64,
5371 OPC_RecordChild4,
5372 OPC_CheckChild4TypeI64,
5373 OPC_RecordChild5,
5374 OPC_CheckChild5TypeI64,
5375 OPC_CheckPatternPredicate, 12,
5376 OPC_EmitMergeInputChains1_0,
5377 OPC_EmitConvertToTarget1,
5378 OPC_EmitConvertToTarget2,
5379 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::anonymous_8879MEMORY_COPY_A64),
5380 5, 6, 7, 3, 4, 5,
5381 0,
5382 54, TARGET_VAL(WebAssemblyISD::TABLE_GET),
5383 OPC_RecordMemRef,
5384 OPC_RecordNode,
5385 OPC_MoveChild1,
5386 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5387 OPC_RecordChild0,
5388 OPC_MoveChild0,
5389 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5390 OPC_MoveParent,
5391 OPC_MoveParent,
5392 OPC_RecordChild2,
5393 OPC_CheckChild2TypeI32,
5394 OPC_SwitchType , 10, MVT::funcref,
5395 OPC_CheckPatternPredicate6,
5396 OPC_EmitMergeInputChains1_0,
5397 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::TABLE_GET_FUNCREF), 0|OPFL_Chain|OPFL_MemRefs,
5398 MVT::funcref, 2, 1, 2,
5399 10, MVT::externref,
5400 OPC_CheckPatternPredicate6,
5401 OPC_EmitMergeInputChains1_0,
5402 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::TABLE_GET_EXTERNREF), 0|OPFL_Chain|OPFL_MemRefs,
5403 MVT::externref, 2, 1, 2,
5404 11, MVT::exnref,
5405 OPC_CheckPatternPredicate, 8,
5406 OPC_EmitMergeInputChains1_0,
5407 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::TABLE_GET_EXNREF), 0|OPFL_Chain|OPFL_MemRefs,
5408 MVT::exnref, 2, 1, 2,
5409 0,
5410 83, TARGET_VAL(WebAssemblyISD::TABLE_SET),
5411 OPC_RecordMemRef,
5412 OPC_RecordNode,
5413 OPC_Scope, 56,
5414 OPC_MoveChild1,
5415 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::Wrapper),
5416 OPC_RecordChild0,
5417 OPC_MoveChild0,
5418 OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
5419 OPC_MoveParent,
5420 OPC_MoveParent,
5421 OPC_RecordChild2,
5422 OPC_CheckChild2TypeI32,
5423 OPC_RecordChild3,
5424 OPC_Scope, 12,
5425 OPC_CheckChild3Type, MVT::funcref,
5426 OPC_CheckPatternPredicate6,
5427 OPC_EmitMergeInputChains1_0,
5428 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::TABLE_SET_FUNCREF), 0|OPFL_Chain|OPFL_MemRefs,
5429 3, 1, 2, 3,
5430 12,
5431 OPC_CheckChild3Type, MVT::externref,
5432 OPC_CheckPatternPredicate6,
5433 OPC_EmitMergeInputChains1_0,
5434 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::TABLE_SET_EXTERNREF), 0|OPFL_Chain|OPFL_MemRefs,
5435 3, 1, 2, 3,
5436 13,
5437 OPC_CheckChild3Type, MVT::exnref,
5438 OPC_CheckPatternPredicate, 8,
5439 OPC_EmitMergeInputChains1_0,
5440 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::TABLE_SET_EXNREF), 0|OPFL_Chain|OPFL_MemRefs,
5441 3, 1, 2, 3,
5442 0,
5443 21,
5444 OPC_RecordChild1,
5445 OPC_MoveChild1,
5446 OPC_CheckOpcode, TARGET_VAL(ISD::MCSymbol),
5447 OPC_MoveParent,
5448 OPC_RecordChild2,
5449 OPC_CheckChild2TypeI32,
5450 OPC_RecordChild3,
5451 OPC_CheckChild3Type, MVT::funcref,
5452 OPC_CheckPatternPredicate6,
5453 OPC_EmitMergeInputChains1_0,
5454 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::TABLE_SET_FUNCREF), 0|OPFL_Chain|OPFL_MemRefs,
5455 3, 1, 2, 3,
5456 0,
5457 7|128,10, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
5458 OPC_Scope, 49,
5459 OPC_CheckChild0Integer, 0|128,67|128,1,
5460 OPC_RecordChild1,
5461 OPC_Scope, 20,
5462 OPC_CheckChild1Type, MVT::f32,
5463 OPC_SwitchType , 6, MVT::i32,
5464 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_S_F32),
5465 MVT::i32, 1, 0,
5466 6, MVT::i64,
5467 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_S_F32),
5468 MVT::i64, 1, 0,
5469 0,
5470 20,
5471 OPC_CheckChild1Type, MVT::f64,
5472 OPC_SwitchType , 6, MVT::i32,
5473 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_S_F64),
5474 MVT::i32, 1, 0,
5475 6, MVT::i64,
5476 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_S_F64),
5477 MVT::i64, 1, 0,
5478 0,
5479 0,
5480 49,
5481 OPC_CheckChild0Integer, 2|128,67|128,1,
5482 OPC_RecordChild1,
5483 OPC_Scope, 20,
5484 OPC_CheckChild1Type, MVT::f32,
5485 OPC_SwitchType , 6, MVT::i32,
5486 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_U_F32),
5487 MVT::i32, 1, 0,
5488 6, MVT::i64,
5489 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_U_F32),
5490 MVT::i64, 1, 0,
5491 0,
5492 20,
5493 OPC_CheckChild1Type, MVT::f64,
5494 OPC_SwitchType , 6, MVT::i32,
5495 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_U_F64),
5496 MVT::i32, 1, 0,
5497 6, MVT::i64,
5498 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_U_F64),
5499 MVT::i64, 1, 0,
5500 0,
5501 0,
5502 43,
5503 OPC_CheckChild0Integer, 114|128,65|128,1,
5504 OPC_RecordChild1,
5505 OPC_Scope, 8,
5506 OPC_CheckChild1Type, MVT::v16i8,
5507 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
5508 MVT::i32, 1, 0,
5509 8,
5510 OPC_CheckChild1Type, MVT::v8i16,
5511 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
5512 MVT::i32, 1, 0,
5513 8,
5514 OPC_CheckChild1Type, MVT::v4i32,
5515 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
5516 MVT::i32, 1, 0,
5517 8,
5518 OPC_CheckChild1Type, MVT::v2i64,
5519 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ANYTRUE),
5520 MVT::i32, 1, 0,
5521 0,
5522 47,
5523 OPC_CheckChild0Integer, 112|128,65|128,1,
5524 OPC_RecordChild1,
5525 OPC_Scope, 9,
5526 OPC_CheckChild1Type, MVT::v16i8,
5527 OPC_CheckPatternPredicate0,
5528 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I8x16),
5529 MVT::i32, 1, 0,
5530 9,
5531 OPC_CheckChild1Type, MVT::v8i16,
5532 OPC_CheckPatternPredicate0,
5533 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I16x8),
5534 MVT::i32, 1, 0,
5535 9,
5536 OPC_CheckChild1Type, MVT::v4i32,
5537 OPC_CheckPatternPredicate0,
5538 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I32x4),
5539 MVT::i32, 1, 0,
5540 9,
5541 OPC_CheckChild1Type, MVT::v2i64,
5542 OPC_CheckPatternPredicate0,
5543 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ALLTRUE_I64x2),
5544 MVT::i32, 1, 0,
5545 0,
5546 47,
5547 OPC_CheckChild0Integer, 118|128,65|128,1,
5548 OPC_RecordChild1,
5549 OPC_Scope, 9,
5550 OPC_CheckChild1Type, MVT::v16i8,
5551 OPC_CheckPatternPredicate0,
5552 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITMASK_I8x16),
5553 MVT::i32, 1, 0,
5554 9,
5555 OPC_CheckChild1Type, MVT::v8i16,
5556 OPC_CheckPatternPredicate0,
5557 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITMASK_I16x8),
5558 MVT::i32, 1, 0,
5559 9,
5560 OPC_CheckChild1Type, MVT::v4i32,
5561 OPC_CheckPatternPredicate0,
5562 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITMASK_I32x4),
5563 MVT::i32, 1, 0,
5564 9,
5565 OPC_CheckChild1Type, MVT::v2i64,
5566 OPC_CheckPatternPredicate0,
5567 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITMASK_I64x2),
5568 MVT::i32, 1, 0,
5569 0,
5570 10,
5571 OPC_CheckChild0Integer, 44|128,66|128,1,
5572 OPC_CheckPatternPredicate6,
5573 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REF_NULL_FUNCREF),
5574 MVT::funcref, 0,
5575 12,
5576 OPC_CheckChild0Integer, 38|128,66|128,1,
5577 OPC_RecordChild1,
5578 OPC_CheckPatternPredicate6,
5579 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REF_IS_NULL_FUNCREF),
5580 MVT::i32, 1, 0,
5581 10,
5582 OPC_CheckChild0Integer, 42|128,66|128,1,
5583 OPC_CheckPatternPredicate6,
5584 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REF_NULL_EXTERNREF),
5585 MVT::externref, 0,
5586 12,
5587 OPC_CheckChild0Integer, 36|128,66|128,1,
5588 OPC_RecordChild1,
5589 OPC_CheckPatternPredicate6,
5590 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REF_IS_NULL_EXTERNREF),
5591 MVT::i32, 1, 0,
5592 10,
5593 OPC_CheckChild0Integer, 40|128,66|128,1,
5594 OPC_CheckPatternPredicate6,
5595 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REF_NULL_EXNREF),
5596 MVT::exnref, 0,
5597 12,
5598 OPC_CheckChild0Integer, 34|128,66|128,1,
5599 OPC_RecordChild1,
5600 OPC_CheckPatternPredicate6,
5601 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REF_IS_NULL_EXNREF),
5602 MVT::i32, 1, 0,
5603 23,
5604 OPC_CheckChild0Integer, 2|128,66|128,1,
5605 OPC_RecordChild1,
5606 OPC_RecordChild2,
5607 OPC_MoveChild2,
5608 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5609 OPC_CheckPredicate, 11,
5610 OPC_MoveParent,
5611 OPC_CheckPatternPredicate, 17,
5612 OPC_EmitConvertToTarget1,
5613 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_F16x8),
5614 MVT::f32, 2, 0, 2,
5615 13,
5616 OPC_CheckChild0Integer, 86|128,66|128,1,
5617 OPC_RecordChild1,
5618 OPC_RecordChild2,
5619 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SWIZZLE),
5620 MVT::v16i8, 2, 0, 1,
5621 115,
5622 OPC_CheckChild0Integer, 120|128,65|128,1,
5623 OPC_RecordChild1,
5624 OPC_SwitchType , 16, MVT::v16i8,
5625 OPC_CheckChild1Type, MVT::v16i8,
5626 OPC_RecordChild2,
5627 OPC_CheckChild2Type, MVT::v16i8,
5628 OPC_RecordChild3,
5629 OPC_CheckChild3Type, MVT::v16i8,
5630 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
5631 MVT::v16i8, 3, 0, 1, 2,
5632 16, MVT::v8i16,
5633 OPC_CheckChild1Type, MVT::v8i16,
5634 OPC_RecordChild2,
5635 OPC_CheckChild2Type, MVT::v8i16,
5636 OPC_RecordChild3,
5637 OPC_CheckChild3Type, MVT::v8i16,
5638 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
5639 MVT::v8i16, 3, 0, 1, 2,
5640 16, MVT::v4i32,
5641 OPC_CheckChild1Type, MVT::v4i32,
5642 OPC_RecordChild2,
5643 OPC_CheckChild2Type, MVT::v4i32,
5644 OPC_RecordChild3,
5645 OPC_CheckChild3Type, MVT::v4i32,
5646 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
5647 MVT::v4i32, 3, 0, 1, 2,
5648 16, MVT::v2i64,
5649 OPC_CheckChild1Type, MVT::v2i64,
5650 OPC_RecordChild2,
5651 OPC_CheckChild2Type, MVT::v2i64,
5652 OPC_RecordChild3,
5653 OPC_CheckChild3Type, MVT::v2i64,
5654 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
5655 MVT::v2i64, 3, 0, 1, 2,
5656 16, MVT::v4f32,
5657 OPC_CheckChild1Type, MVT::v4f32,
5658 OPC_RecordChild2,
5659 OPC_CheckChild2Type, MVT::v4f32,
5660 OPC_RecordChild3,
5661 OPC_CheckChild3Type, MVT::v4f32,
5662 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
5663 MVT::v4f32, 3, 0, 1, 2,
5664 16, MVT::v2f64,
5665 OPC_CheckChild1Type, MVT::v2f64,
5666 OPC_RecordChild2,
5667 OPC_CheckChild2Type, MVT::v2f64,
5668 OPC_RecordChild3,
5669 OPC_CheckChild3Type, MVT::v2f64,
5670 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
5671 MVT::v2f64, 3, 0, 1, 2,
5672 0,
5673 37,
5674 OPC_CheckChild0Integer, 82|128,66|128,1,
5675 OPC_RecordChild1,
5676 OPC_SwitchType , 13, MVT::v16i8,
5677 OPC_CheckChild1Type, MVT::v16i8,
5678 OPC_RecordChild2,
5679 OPC_CheckChild2Type, MVT::v16i8,
5680 OPC_CheckPatternPredicate0,
5681 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_SAT_S_I8x16),
5682 MVT::v16i8, 2, 0, 1,
5683 13, MVT::v8i16,
5684 OPC_CheckChild1Type, MVT::v8i16,
5685 OPC_RecordChild2,
5686 OPC_CheckChild2Type, MVT::v8i16,
5687 OPC_CheckPatternPredicate0,
5688 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_SAT_S_I16x8),
5689 MVT::v8i16, 2, 0, 1,
5690 0,
5691 37,
5692 OPC_CheckChild0Integer, 84|128,66|128,1,
5693 OPC_RecordChild1,
5694 OPC_SwitchType , 13, MVT::v16i8,
5695 OPC_CheckChild1Type, MVT::v16i8,
5696 OPC_RecordChild2,
5697 OPC_CheckChild2Type, MVT::v16i8,
5698 OPC_CheckPatternPredicate0,
5699 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_SAT_U_I8x16),
5700 MVT::v16i8, 2, 0, 1,
5701 13, MVT::v8i16,
5702 OPC_CheckChild1Type, MVT::v8i16,
5703 OPC_RecordChild2,
5704 OPC_CheckChild2Type, MVT::v8i16,
5705 OPC_CheckPatternPredicate0,
5706 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_SAT_U_I16x8),
5707 MVT::v8i16, 2, 0, 1,
5708 0,
5709 37,
5710 OPC_CheckChild0Integer, 116|128,65|128,1,
5711 OPC_RecordChild1,
5712 OPC_SwitchType , 13, MVT::v16i8,
5713 OPC_CheckChild1Type, MVT::v16i8,
5714 OPC_RecordChild2,
5715 OPC_CheckChild2Type, MVT::v16i8,
5716 OPC_CheckPatternPredicate0,
5717 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AVGR_U_I8x16),
5718 MVT::v16i8, 2, 0, 1,
5719 13, MVT::v8i16,
5720 OPC_CheckChild1Type, MVT::v8i16,
5721 OPC_RecordChild2,
5722 OPC_CheckChild2Type, MVT::v8i16,
5723 OPC_CheckPatternPredicate0,
5724 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AVGR_U_I16x8),
5725 MVT::v8i16, 2, 0, 1,
5726 0,
5727 14,
5728 OPC_CheckChild0Integer, 124|128,65|128,1,
5729 OPC_RecordChild1,
5730 OPC_RecordChild2,
5731 OPC_CheckPatternPredicate0,
5732 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DOT),
5733 MVT::v4i32, 2, 0, 1,
5734 37,
5735 OPC_CheckChild0Integer, 24|128,66|128,1,
5736 OPC_RecordChild1,
5737 OPC_SwitchType , 13, MVT::v16i8,
5738 OPC_CheckChild1Type, MVT::v8i16,
5739 OPC_RecordChild2,
5740 OPC_CheckChild2Type, MVT::v8i16,
5741 OPC_CheckPatternPredicate0,
5742 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NARROW_S_I8x16),
5743 MVT::v16i8, 2, 0, 1,
5744 13, MVT::v8i16,
5745 OPC_CheckChild1Type, MVT::v4i32,
5746 OPC_RecordChild2,
5747 OPC_CheckChild2Type, MVT::v4i32,
5748 OPC_CheckPatternPredicate0,
5749 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NARROW_S_I16x8),
5750 MVT::v8i16, 2, 0, 1,
5751 0,
5752 37,
5753 OPC_CheckChild0Integer, 26|128,66|128,1,
5754 OPC_RecordChild1,
5755 OPC_SwitchType , 13, MVT::v16i8,
5756 OPC_CheckChild1Type, MVT::v8i16,
5757 OPC_RecordChild2,
5758 OPC_CheckChild2Type, MVT::v8i16,
5759 OPC_CheckPatternPredicate0,
5760 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NARROW_U_I8x16),
5761 MVT::v16i8, 2, 0, 1,
5762 13, MVT::v8i16,
5763 OPC_CheckChild1Type, MVT::v4i32,
5764 OPC_RecordChild2,
5765 OPC_CheckChild2Type, MVT::v4i32,
5766 OPC_CheckPatternPredicate0,
5767 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NARROW_U_I16x8),
5768 MVT::v8i16, 2, 0, 1,
5769 0,
5770 29,
5771 OPC_CheckChild0Integer, 126|128,65|128,1,
5772 OPC_RecordChild1,
5773 OPC_SwitchType , 9, MVT::v8i16,
5774 OPC_CheckChild1Type, MVT::v16i8,
5775 OPC_CheckPatternPredicate0,
5776 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_extadd_pairwise_signed_I16x8),
5777 MVT::v8i16, 1, 0,
5778 9, MVT::v4i32,
5779 OPC_CheckChild1Type, MVT::v8i16,
5780 OPC_CheckPatternPredicate0,
5781 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_extadd_pairwise_signed_I32x4),
5782 MVT::v4i32, 1, 0,
5783 0,
5784 29,
5785 OPC_CheckChild0Integer, 0|128,66|128,1,
5786 OPC_RecordChild1,
5787 OPC_SwitchType , 9, MVT::v8i16,
5788 OPC_CheckChild1Type, MVT::v16i8,
5789 OPC_CheckPatternPredicate0,
5790 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_extadd_pairwise_unsigned_I16x8),
5791 MVT::v8i16, 1, 0,
5792 9, MVT::v4i32,
5793 OPC_CheckChild1Type, MVT::v8i16,
5794 OPC_CheckPatternPredicate0,
5795 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_extadd_pairwise_unsigned_I32x4),
5796 MVT::v4i32, 1, 0,
5797 0,
5798 14,
5799 OPC_CheckChild0Integer, 32|128,66|128,1,
5800 OPC_RecordChild1,
5801 OPC_RecordChild2,
5802 OPC_CheckPatternPredicate0,
5803 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::Q15MULR_SAT_S_I16x8),
5804 MVT::v8i16, 2, 0, 1,
5805 14,
5806 OPC_CheckChild0Integer, 64|128,66|128,1,
5807 OPC_RecordChild1,
5808 OPC_RecordChild2,
5809 OPC_CheckPatternPredicate7,
5810 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::RELAXED_SWIZZLE),
5811 MVT::v16i8, 2, 0, 1,
5812 12,
5813 OPC_CheckChild0Integer, 66|128,66|128,1,
5814 OPC_RecordChild1,
5815 OPC_CheckPatternPredicate7,
5816 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_relaxed_trunc_signed_I32x4),
5817 MVT::v4i32, 1, 0,
5818 12,
5819 OPC_CheckChild0Integer, 70|128,66|128,1,
5820 OPC_RecordChild1,
5821 OPC_CheckPatternPredicate7,
5822 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_relaxed_trunc_unsigned_I32x4),
5823 MVT::v4i32, 1, 0,
5824 12,
5825 OPC_CheckChild0Integer, 68|128,66|128,1,
5826 OPC_RecordChild1,
5827 OPC_CheckPatternPredicate7,
5828 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_relaxed_trunc_signed_zero_I32x4),
5829 MVT::v4i32, 1, 0,
5830 12,
5831 OPC_CheckChild0Integer, 72|128,66|128,1,
5832 OPC_RecordChild1,
5833 OPC_CheckPatternPredicate7,
5834 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::int_wasm_relaxed_trunc_unsigned_zero_I32x4),
5835 MVT::v4i32, 1, 0,
5836 83,
5837 OPC_CheckChild0Integer, 52|128,66|128,1,
5838 OPC_RecordChild1,
5839 OPC_SwitchType , 17, MVT::v16i8,
5840 OPC_CheckChild1Type, MVT::v16i8,
5841 OPC_RecordChild2,
5842 OPC_CheckChild2Type, MVT::v16i8,
5843 OPC_RecordChild3,
5844 OPC_CheckChild3Type, MVT::v16i8,
5845 OPC_CheckPatternPredicate7,
5846 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LANESELECT_I8x16),
5847 MVT::v16i8, 3, 0, 1, 2,
5848 17, MVT::v8i16,
5849 OPC_CheckChild1Type, MVT::v8i16,
5850 OPC_RecordChild2,
5851 OPC_CheckChild2Type, MVT::v8i16,
5852 OPC_RecordChild3,
5853 OPC_CheckChild3Type, MVT::v8i16,
5854 OPC_CheckPatternPredicate7,
5855 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LANESELECT_I16x8),
5856 MVT::v8i16, 3, 0, 1, 2,
5857 17, MVT::v4i32,
5858 OPC_CheckChild1Type, MVT::v4i32,
5859 OPC_RecordChild2,
5860 OPC_CheckChild2Type, MVT::v4i32,
5861 OPC_RecordChild3,
5862 OPC_CheckChild3Type, MVT::v4i32,
5863 OPC_CheckPatternPredicate7,
5864 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LANESELECT_I32x4),
5865 MVT::v4i32, 3, 0, 1, 2,
5866 17, MVT::v2i64,
5867 OPC_CheckChild1Type, MVT::v2i64,
5868 OPC_RecordChild2,
5869 OPC_CheckChild2Type, MVT::v2i64,
5870 OPC_RecordChild3,
5871 OPC_CheckChild3Type, MVT::v2i64,
5872 OPC_CheckPatternPredicate7,
5873 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::LANESELECT_I64x2),
5874 MVT::v2i64, 3, 0, 1, 2,
5875 0,
5876 14,
5877 OPC_CheckChild0Integer, 62|128,66|128,1,
5878 OPC_RecordChild1,
5879 OPC_RecordChild2,
5880 OPC_CheckPatternPredicate7,
5881 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::RELAXED_Q15MULR_S_I16x8),
5882 MVT::v8i16, 2, 0, 1,
5883 14,
5884 OPC_CheckChild0Integer, 50|128,66|128,1,
5885 OPC_RecordChild1,
5886 OPC_RecordChild2,
5887 OPC_CheckPatternPredicate7,
5888 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::RELAXED_DOT),
5889 MVT::v8i16, 2, 0, 1,
5890 16,
5891 OPC_CheckChild0Integer, 48|128,66|128,1,
5892 OPC_RecordChild1,
5893 OPC_RecordChild2,
5894 OPC_RecordChild3,
5895 OPC_CheckPatternPredicate7,
5896 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::RELAXED_DOT_ADD),
5897 MVT::v4i32, 3, 0, 1, 2,
5898 13,
5899 OPC_CheckChild0Integer, 78|128,66|128,1,
5900 OPC_RecordChild1,
5901 OPC_CheckPatternPredicate, 17,
5902 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_F16x8),
5903 MVT::v8f16, 1, 0,
5904 49,
5905 OPC_CheckChild0Integer, 30|128,66|128,1,
5906 OPC_RecordChild1,
5907 OPC_SwitchType , 12, MVT::v4f32,
5908 OPC_CheckChild1Type, MVT::v4f32,
5909 OPC_RecordChild2,
5910 OPC_CheckChild2Type, MVT::v4f32,
5911 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F32x4),
5912 MVT::v4f32, 2, 0, 1,
5913 12, MVT::v2f64,
5914 OPC_CheckChild1Type, MVT::v2f64,
5915 OPC_RecordChild2,
5916 OPC_CheckChild2Type, MVT::v2f64,
5917 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F64x2),
5918 MVT::v2f64, 2, 0, 1,
5919 12, MVT::v8f16,
5920 OPC_CheckChild1Type, MVT::v8f16,
5921 OPC_RecordChild2,
5922 OPC_CheckChild2Type, MVT::v8f16,
5923 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F16x8),
5924 MVT::v8f16, 2, 0, 1,
5925 0,
5926 49,
5927 OPC_CheckChild0Integer, 28|128,66|128,1,
5928 OPC_RecordChild1,
5929 OPC_SwitchType , 12, MVT::v4f32,
5930 OPC_CheckChild1Type, MVT::v4f32,
5931 OPC_RecordChild2,
5932 OPC_CheckChild2Type, MVT::v4f32,
5933 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F32x4),
5934 MVT::v4f32, 2, 0, 1,
5935 12, MVT::v2f64,
5936 OPC_CheckChild1Type, MVT::v2f64,
5937 OPC_RecordChild2,
5938 OPC_CheckChild2Type, MVT::v2f64,
5939 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F64x2),
5940 MVT::v2f64, 2, 0, 1,
5941 12, MVT::v8f16,
5942 OPC_CheckChild1Type, MVT::v8f16,
5943 OPC_RecordChild2,
5944 OPC_CheckChild2Type, MVT::v8f16,
5945 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F16x8),
5946 MVT::v8f16, 2, 0, 1,
5947 0,
5948 66,
5949 OPC_CheckChild0Integer, 54|128,66|128,1,
5950 OPC_RecordChild1,
5951 OPC_SwitchType , 18, MVT::v4f32,
5952 OPC_CheckChild1Type, MVT::v4f32,
5953 OPC_RecordChild2,
5954 OPC_CheckChild2Type, MVT::v4f32,
5955 OPC_RecordChild3,
5956 OPC_CheckChild3Type, MVT::v4f32,
5957 OPC_CheckPatternPredicate, 13,
5958 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MADD_F32x4),
5959 MVT::v4f32, 3, 0, 1, 2,
5960 18, MVT::v2f64,
5961 OPC_CheckChild1Type, MVT::v2f64,
5962 OPC_RecordChild2,
5963 OPC_CheckChild2Type, MVT::v2f64,
5964 OPC_RecordChild3,
5965 OPC_CheckChild3Type, MVT::v2f64,
5966 OPC_CheckPatternPredicate, 13,
5967 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MADD_F64x2),
5968 MVT::v2f64, 3, 0, 1, 2,
5969 17, MVT::v8f16,
5970 OPC_CheckChild1Type, MVT::v8f16,
5971 OPC_RecordChild2,
5972 OPC_CheckChild2Type, MVT::v8f16,
5973 OPC_RecordChild3,
5974 OPC_CheckChild3Type, MVT::v8f16,
5975 OPC_CheckPatternPredicate5,
5976 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MADD_F16x8),
5977 MVT::v8f16, 3, 0, 1, 2,
5978 0,
5979 66,
5980 OPC_CheckChild0Integer, 60|128,66|128,1,
5981 OPC_RecordChild1,
5982 OPC_SwitchType , 18, MVT::v4f32,
5983 OPC_CheckChild1Type, MVT::v4f32,
5984 OPC_RecordChild2,
5985 OPC_CheckChild2Type, MVT::v4f32,
5986 OPC_RecordChild3,
5987 OPC_CheckChild3Type, MVT::v4f32,
5988 OPC_CheckPatternPredicate, 13,
5989 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NMADD_F32x4),
5990 MVT::v4f32, 3, 0, 1, 2,
5991 18, MVT::v2f64,
5992 OPC_CheckChild1Type, MVT::v2f64,
5993 OPC_RecordChild2,
5994 OPC_CheckChild2Type, MVT::v2f64,
5995 OPC_RecordChild3,
5996 OPC_CheckChild3Type, MVT::v2f64,
5997 OPC_CheckPatternPredicate, 13,
5998 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NMADD_F64x2),
5999 MVT::v2f64, 3, 0, 1, 2,
6000 17, MVT::v8f16,
6001 OPC_CheckChild1Type, MVT::v8f16,
6002 OPC_RecordChild2,
6003 OPC_CheckChild2Type, MVT::v8f16,
6004 OPC_RecordChild3,
6005 OPC_CheckChild3Type, MVT::v8f16,
6006 OPC_CheckPatternPredicate5,
6007 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NMADD_F16x8),
6008 MVT::v8f16, 3, 0, 1, 2,
6009 0,
6010 37,
6011 OPC_CheckChild0Integer, 58|128,66|128,1,
6012 OPC_RecordChild1,
6013 OPC_SwitchType , 13, MVT::v4f32,
6014 OPC_CheckChild1Type, MVT::v4f32,
6015 OPC_RecordChild2,
6016 OPC_CheckChild2Type, MVT::v4f32,
6017 OPC_CheckPatternPredicate7,
6018 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SIMD_RELAXED_FMIN_F32x4),
6019 MVT::v4f32, 2, 0, 1,
6020 13, MVT::v2f64,
6021 OPC_CheckChild1Type, MVT::v2f64,
6022 OPC_RecordChild2,
6023 OPC_CheckChild2Type, MVT::v2f64,
6024 OPC_CheckPatternPredicate7,
6025 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SIMD_RELAXED_FMIN_F64x2),
6026 MVT::v2f64, 2, 0, 1,
6027 0,
6028 37,
6029 OPC_CheckChild0Integer, 56|128,66|128,1,
6030 OPC_RecordChild1,
6031 OPC_SwitchType , 13, MVT::v4f32,
6032 OPC_CheckChild1Type, MVT::v4f32,
6033 OPC_RecordChild2,
6034 OPC_CheckChild2Type, MVT::v4f32,
6035 OPC_CheckPatternPredicate7,
6036 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SIMD_RELAXED_FMAX_F32x4),
6037 MVT::v4f32, 2, 0, 1,
6038 13, MVT::v2f64,
6039 OPC_CheckChild1Type, MVT::v2f64,
6040 OPC_RecordChild2,
6041 OPC_CheckChild2Type, MVT::v2f64,
6042 OPC_CheckPatternPredicate7,
6043 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SIMD_RELAXED_FMAX_F64x2),
6044 MVT::v2f64, 2, 0, 1,
6045 0,
6046 16,
6047 OPC_CheckChild0Integer, 46|128,66|128,1,
6048 OPC_RecordChild1,
6049 OPC_RecordChild2,
6050 OPC_RecordChild3,
6051 OPC_CheckPatternPredicate7,
6052 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::RELAXED_DOT_BFLOAT),
6053 MVT::v4f32, 3, 0, 1, 2,
6054 0,
6055 3|128,1, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
6056 OPC_RecordChild0,
6057 OPC_Scope, 20,
6058 OPC_CheckChild0Type, MVT::v16i8,
6059 OPC_RecordChild1,
6060 OPC_MoveChild1,
6061 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6062 OPC_CheckPredicate, 11,
6063 OPC_CheckTypeI32,
6064 OPC_MoveParent,
6065 OPC_CheckTypeI32,
6066 OPC_EmitConvertToTarget1,
6067 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I8x16_u),
6068 MVT::i32, 2, 0, 2,
6069 20,
6070 OPC_CheckChild0Type, MVT::v8i16,
6071 OPC_RecordChild1,
6072 OPC_MoveChild1,
6073 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6074 OPC_CheckPredicate, 16,
6075 OPC_CheckTypeI32,
6076 OPC_MoveParent,
6077 OPC_CheckTypeI32,
6078 OPC_EmitConvertToTarget1,
6079 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I16x8_u),
6080 MVT::i32, 2, 0, 2,
6081 20,
6082 OPC_CheckChild0Type, MVT::v4i32,
6083 OPC_RecordChild1,
6084 OPC_MoveChild1,
6085 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6086 OPC_CheckPredicate, 17,
6087 OPC_CheckTypeI32,
6088 OPC_MoveParent,
6089 OPC_CheckTypeI32,
6090 OPC_EmitConvertToTarget1,
6091 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I32x4),
6092 MVT::i32, 2, 0, 2,
6093 20,
6094 OPC_CheckChild0Type, MVT::v2i64,
6095 OPC_RecordChild1,
6096 OPC_MoveChild1,
6097 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6098 OPC_CheckPredicate, 18,
6099 OPC_CheckTypeI32,
6100 OPC_MoveParent,
6101 OPC_CheckTypeI64,
6102 OPC_EmitConvertToTarget1,
6103 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_I64x2),
6104 MVT::i64, 2, 0, 2,
6105 21,
6106 OPC_CheckChild0Type, MVT::v4f32,
6107 OPC_RecordChild1,
6108 OPC_MoveChild1,
6109 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6110 OPC_CheckPredicate, 17,
6111 OPC_CheckTypeI32,
6112 OPC_MoveParent,
6113 OPC_CheckType, MVT::f32,
6114 OPC_EmitConvertToTarget1,
6115 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_F32x4),
6116 MVT::f32, 2, 0, 2,
6117 21,
6118 OPC_CheckChild0Type, MVT::v2f64,
6119 OPC_RecordChild1,
6120 OPC_MoveChild1,
6121 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6122 OPC_CheckPredicate, 18,
6123 OPC_CheckTypeI32,
6124 OPC_MoveParent,
6125 OPC_CheckType, MVT::f64,
6126 OPC_EmitConvertToTarget1,
6127 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTRACT_LANE_F64x2),
6128 MVT::f64, 2, 0, 2,
6129 0,
6130 120, TARGET_VAL(WebAssemblyISD::ARGUMENT),
6131 OPC_RecordChild0,
6132 OPC_MoveChild0,
6133 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6134 OPC_MoveParent,
6135 OPC_SwitchType , 6, MVT::i32,
6136 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_i32),
6137 MVT::i32, 1, 0,
6138 6, MVT::i64,
6139 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_i64),
6140 MVT::i64, 1, 0,
6141 6, MVT::funcref,
6142 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_funcref),
6143 MVT::funcref, 1, 0,
6144 6, MVT::externref,
6145 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_externref),
6146 MVT::externref, 1, 0,
6147 6, MVT::exnref,
6148 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_exnref),
6149 MVT::exnref, 1, 0,
6150 6, MVT::f32,
6151 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_f32),
6152 MVT::f32, 1, 0,
6153 6, MVT::f64,
6154 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_f64),
6155 MVT::f64, 1, 0,
6156 6, MVT::v16i8,
6157 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v16i8),
6158 MVT::v16i8, 1, 0,
6159 6, MVT::v8i16,
6160 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v8i16),
6161 MVT::v8i16, 1, 0,
6162 6, MVT::v4i32,
6163 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v4i32),
6164 MVT::v4i32, 1, 0,
6165 6, MVT::v2i64,
6166 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v2i64),
6167 MVT::v2i64, 1, 0,
6168 6, MVT::v4f32,
6169 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v4f32),
6170 MVT::v4f32, 1, 0,
6171 6, MVT::v2f64,
6172 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v2f64),
6173 MVT::v2f64, 1, 0,
6174 6, MVT::v8f16,
6175 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ARGUMENT_v8f16),
6176 MVT::v8f16, 1, 0,
6177 0,
6178 18|128,1, TARGET_VAL(WebAssemblyISD::LOCAL_GET),
6179 OPC_RecordNode,
6180 OPC_RecordChild1,
6181 OPC_MoveChild1,
6182 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6183 OPC_MoveParent,
6184 OPC_SwitchType , 7, MVT::i32,
6185 OPC_EmitMergeInputChains1_0,
6186 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_I32),
6187 MVT::i32, 1, 1,
6188 7, MVT::i64,
6189 OPC_EmitMergeInputChains1_0,
6190 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_I64),
6191 MVT::i64, 1, 1,
6192 8, MVT::funcref,
6193 OPC_CheckPatternPredicate6,
6194 OPC_EmitMergeInputChains1_0,
6195 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_FUNCREF),
6196 MVT::funcref, 1, 1,
6197 8, MVT::externref,
6198 OPC_CheckPatternPredicate6,
6199 OPC_EmitMergeInputChains1_0,
6200 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_EXTERNREF),
6201 MVT::externref, 1, 1,
6202 9, MVT::exnref,
6203 OPC_CheckPatternPredicate, 8,
6204 OPC_EmitMergeInputChains1_0,
6205 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_EXNREF),
6206 MVT::exnref, 1, 1,
6207 7, MVT::f32,
6208 OPC_EmitMergeInputChains1_0,
6209 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_F32),
6210 MVT::f32, 1, 1,
6211 7, MVT::f64,
6212 OPC_EmitMergeInputChains1_0,
6213 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_F64),
6214 MVT::f64, 1, 1,
6215 8, MVT::v2i64,
6216 OPC_CheckPatternPredicate0,
6217 OPC_EmitMergeInputChains1_0,
6218 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6219 MVT::v2i64, 1, 1,
6220 8, MVT::v4i32,
6221 OPC_CheckPatternPredicate0,
6222 OPC_EmitMergeInputChains1_0,
6223 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6224 MVT::v4i32, 1, 1,
6225 8, MVT::v16i8,
6226 OPC_CheckPatternPredicate0,
6227 OPC_EmitMergeInputChains1_0,
6228 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6229 MVT::v16i8, 1, 1,
6230 8, MVT::v8i16,
6231 OPC_CheckPatternPredicate0,
6232 OPC_EmitMergeInputChains1_0,
6233 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6234 MVT::v8i16, 1, 1,
6235 8, MVT::v8f16,
6236 OPC_CheckPatternPredicate0,
6237 OPC_EmitMergeInputChains1_0,
6238 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6239 MVT::v8f16, 1, 1,
6240 8, MVT::v4f32,
6241 OPC_CheckPatternPredicate0,
6242 OPC_EmitMergeInputChains1_0,
6243 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6244 MVT::v4f32, 1, 1,
6245 8, MVT::v2f64,
6246 OPC_CheckPatternPredicate0,
6247 OPC_EmitMergeInputChains1_0,
6248 OPC_MorphNodeTo1Chain, TARGET_VAL(WebAssembly::LOCAL_GET_V128),
6249 MVT::v2f64, 1, 1,
6250 0,
6251 31|128,1, TARGET_VAL(WebAssemblyISD::LOCAL_SET),
6252 OPC_RecordNode,
6253 OPC_RecordChild1,
6254 OPC_MoveChild1,
6255 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6256 OPC_MoveParent,
6257 OPC_RecordChild2,
6258 OPC_Scope, 8,
6259 OPC_CheckChild2TypeI32,
6260 OPC_EmitMergeInputChains1_0,
6261 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_I32),
6262 2, 1, 2,
6263 8,
6264 OPC_CheckChild2TypeI64,
6265 OPC_EmitMergeInputChains1_0,
6266 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_I64),
6267 2, 1, 2,
6268 9,
6269 OPC_CheckChild2Type, MVT::f32,
6270 OPC_EmitMergeInputChains1_0,
6271 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_F32),
6272 2, 1, 2,
6273 9,
6274 OPC_CheckChild2Type, MVT::f64,
6275 OPC_EmitMergeInputChains1_0,
6276 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_F64),
6277 2, 1, 2,
6278 10,
6279 OPC_CheckChild2Type, MVT::v8f16,
6280 OPC_CheckPatternPredicate0,
6281 OPC_EmitMergeInputChains1_0,
6282 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6283 2, 1, 2,
6284 10,
6285 OPC_CheckChild2Type, MVT::v4f32,
6286 OPC_CheckPatternPredicate0,
6287 OPC_EmitMergeInputChains1_0,
6288 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6289 2, 1, 2,
6290 10,
6291 OPC_CheckChild2Type, MVT::v2f64,
6292 OPC_CheckPatternPredicate0,
6293 OPC_EmitMergeInputChains1_0,
6294 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6295 2, 1, 2,
6296 10,
6297 OPC_CheckChild2Type, MVT::v2i64,
6298 OPC_CheckPatternPredicate0,
6299 OPC_EmitMergeInputChains1_0,
6300 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6301 2, 1, 2,
6302 10,
6303 OPC_CheckChild2Type, MVT::v4i32,
6304 OPC_CheckPatternPredicate0,
6305 OPC_EmitMergeInputChains1_0,
6306 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6307 2, 1, 2,
6308 10,
6309 OPC_CheckChild2Type, MVT::v16i8,
6310 OPC_CheckPatternPredicate0,
6311 OPC_EmitMergeInputChains1_0,
6312 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6313 2, 1, 2,
6314 10,
6315 OPC_CheckChild2Type, MVT::v8i16,
6316 OPC_CheckPatternPredicate0,
6317 OPC_EmitMergeInputChains1_0,
6318 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_V128),
6319 2, 1, 2,
6320 10,
6321 OPC_CheckChild2Type, MVT::funcref,
6322 OPC_CheckPatternPredicate6,
6323 OPC_EmitMergeInputChains1_0,
6324 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_FUNCREF),
6325 2, 1, 2,
6326 10,
6327 OPC_CheckChild2Type, MVT::externref,
6328 OPC_CheckPatternPredicate6,
6329 OPC_EmitMergeInputChains1_0,
6330 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_EXTERNREF),
6331 2, 1, 2,
6332 11,
6333 OPC_CheckChild2Type, MVT::exnref,
6334 OPC_CheckPatternPredicate, 8,
6335 OPC_EmitMergeInputChains1_0,
6336 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::LOCAL_SET_EXNREF),
6337 2, 1, 2,
6338 0,
6339 0|128,1, TARGET_VAL(WebAssemblyISD::Wrapper),
6340 OPC_RecordChild0,
6341 OPC_MoveChild0,
6342 OPC_SwitchOpcode , 47, TARGET_VAL(ISD::TargetGlobalAddress),
6343 OPC_MoveParent,
6344 OPC_SwitchType , 20, MVT::i32,
6345 OPC_Scope, 8,
6346 OPC_CheckPatternPredicate, 18,
6347 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I32),
6348 MVT::i32, 1, 0,
6349 8,
6350 OPC_CheckPatternPredicate, 14,
6351 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GLOBAL_GET_I32),
6352 MVT::i32, 1, 0,
6353 0,
6354 20, MVT::i64,
6355 OPC_Scope, 8,
6356 OPC_CheckPatternPredicate, 19,
6357 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I64),
6358 MVT::i64, 1, 0,
6359 8,
6360 OPC_CheckPatternPredicate, 15,
6361 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GLOBAL_GET_I64),
6362 MVT::i64, 1, 0,
6363 0,
6364 0,
6365 21, TARGET_VAL(ISD::TargetGlobalTLSAddress),
6366 OPC_MoveParent,
6367 OPC_SwitchType , 7, MVT::i32,
6368 OPC_CheckPatternPredicate3,
6369 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GLOBAL_GET_I32),
6370 MVT::i32, 1, 0,
6371 7, MVT::i64,
6372 OPC_CheckPatternPredicate4,
6373 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GLOBAL_GET_I64),
6374 MVT::i64, 1, 0,
6375 0,
6376 47, TARGET_VAL(ISD::TargetExternalSymbol),
6377 OPC_MoveParent,
6378 OPC_SwitchType , 20, MVT::i32,
6379 OPC_Scope, 8,
6380 OPC_CheckPatternPredicate, 14,
6381 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GLOBAL_GET_I32),
6382 MVT::i32, 1, 0,
6383 8,
6384 OPC_CheckPatternPredicate, 18,
6385 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I32),
6386 MVT::i32, 1, 0,
6387 0,
6388 20, MVT::i64,
6389 OPC_Scope, 8,
6390 OPC_CheckPatternPredicate, 15,
6391 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::GLOBAL_GET_I64),
6392 MVT::i64, 1, 0,
6393 8,
6394 OPC_CheckPatternPredicate, 19,
6395 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I64),
6396 MVT::i64, 1, 0,
6397 0,
6398 0,
6399 0,
6400 80, TARGET_VAL(WebAssemblyISD::WrapperREL),
6401 OPC_RecordChild0,
6402 OPC_MoveChild0,
6403 OPC_SwitchOpcode , 23, TARGET_VAL(ISD::TargetGlobalAddress),
6404 OPC_MoveParent,
6405 OPC_SwitchType , 8, MVT::i32,
6406 OPC_CheckPatternPredicate, 14,
6407 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I32),
6408 MVT::i32, 1, 0,
6409 8, MVT::i64,
6410 OPC_CheckPatternPredicate, 15,
6411 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I64),
6412 MVT::i64, 1, 0,
6413 0,
6414 21, TARGET_VAL(ISD::TargetGlobalTLSAddress),
6415 OPC_MoveParent,
6416 OPC_SwitchType , 7, MVT::i32,
6417 OPC_CheckPatternPredicate3,
6418 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I32),
6419 MVT::i32, 1, 0,
6420 7, MVT::i64,
6421 OPC_CheckPatternPredicate4,
6422 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I64),
6423 MVT::i64, 1, 0,
6424 0,
6425 23, TARGET_VAL(ISD::TargetExternalSymbol),
6426 OPC_MoveParent,
6427 OPC_SwitchType , 8, MVT::i32,
6428 OPC_CheckPatternPredicate, 14,
6429 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I32),
6430 MVT::i32, 1, 0,
6431 8, MVT::i64,
6432 OPC_CheckPatternPredicate, 15,
6433 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I64),
6434 MVT::i64, 1, 0,
6435 0,
6436 0,
6437 47, TARGET_VAL(WebAssemblyISD::MEMORY_FILL),
6438 OPC_RecordNode,
6439 OPC_RecordChild1,
6440 OPC_MoveChild1,
6441 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6442 OPC_CheckTypeI32,
6443 OPC_MoveParent,
6444 OPC_RecordChild2,
6445 OPC_Scope, 17,
6446 OPC_CheckChild2TypeI32,
6447 OPC_RecordChild3,
6448 OPC_CheckChild3TypeI32,
6449 OPC_RecordChild4,
6450 OPC_CheckChild4TypeI32,
6451 OPC_CheckPatternPredicate, 12,
6452 OPC_EmitMergeInputChains1_0,
6453 OPC_EmitConvertToTarget1,
6454 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::anonymous_8878MEMORY_FILL_A32),
6455 4, 5, 2, 3, 4,
6456 17,
6457 OPC_CheckChild2TypeI64,
6458 OPC_RecordChild3,
6459 OPC_CheckChild3TypeI32,
6460 OPC_RecordChild4,
6461 OPC_CheckChild4TypeI64,
6462 OPC_CheckPatternPredicate, 12,
6463 OPC_EmitMergeInputChains1_0,
6464 OPC_EmitConvertToTarget1,
6465 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::anonymous_8879MEMORY_FILL_A64),
6466 4, 5, 2, 3, 4,
6467 0,
6468 21, TARGET_VAL(ISD::Constant),
6469 OPC_RecordNode,
6470 OPC_SwitchType , 7, MVT::i32,
6471 OPC_EmitConvertToTarget0,
6472 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I32),
6473 MVT::i32, 1, 1,
6474 7, MVT::i64,
6475 OPC_EmitConvertToTarget0,
6476 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_I64),
6477 MVT::i64, 1, 1,
6478 0,
6479 13, TARGET_VAL(ISD::BR),
6480 OPC_RecordNode,
6481 OPC_RecordChild1,
6482 OPC_MoveChild1,
6483 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
6484 OPC_MoveParent,
6485 OPC_EmitMergeInputChains1_0,
6486 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::BR),
6487 1, 1,
6488 22, TARGET_VAL(WebAssemblyISD::BR_TABLE),
6489 OPC_RecordNode,
6490 OPC_RecordChild1,
6491 OPC_Scope, 8,
6492 OPC_CheckChild1TypeI32,
6493 OPC_EmitMergeInputChains1_0,
6494 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::BR_TABLE_I32), 0|OPFL_Chain|OPFL_Variadic1,
6495 1, 1,
6496 8,
6497 OPC_CheckChild1TypeI64,
6498 OPC_EmitMergeInputChains1_0,
6499 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::BR_TABLE_I64), 0|OPFL_Chain|OPFL_Variadic1,
6500 1, 1,
6501 0,
6502 7, TARGET_VAL(WebAssemblyISD::RETURN),
6503 OPC_RecordNode,
6504 OPC_EmitMergeInputChains1_0,
6505 OPC_MorphNodeTo0, TARGET_VAL(WebAssembly::RETURN), 0|OPFL_Chain|OPFL_Variadic0,
6506 0,
6507 6, TARGET_VAL(ISD::TRAP),
6508 OPC_RecordNode,
6509 OPC_EmitMergeInputChains1_0,
6510 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::UNREACHABLE),
6511 0,
6512 6, TARGET_VAL(ISD::DEBUGTRAP),
6513 OPC_RecordNode,
6514 OPC_EmitMergeInputChains1_0,
6515 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::DEBUG_UNREACHABLE),
6516 0,
6517 8, TARGET_VAL(ISD::CLEANUPRET),
6518 OPC_RecordNode,
6519 OPC_CheckPatternPredicate, 16,
6520 OPC_EmitMergeInputChains1_0,
6521 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::CLEANUPRET),
6522 0,
6523 21, TARGET_VAL(ISD::CATCHRET),
6524 OPC_RecordNode,
6525 OPC_RecordChild1,
6526 OPC_MoveChild1,
6527 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
6528 OPC_MoveSibling2,
6529 OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
6530 OPC_RecordNode,
6531 OPC_MoveParent,
6532 OPC_CheckPatternPredicate, 16,
6533 OPC_EmitMergeInputChains1_0,
6534 OPC_MorphNodeTo0Chain, TARGET_VAL(WebAssembly::CATCHRET),
6535 2, 1, 2,
6536 62, TARGET_VAL(ISD::ADD),
6537 OPC_RecordChild0,
6538 OPC_RecordChild1,
6539 OPC_SwitchType , 7, MVT::i32,
6540 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_I32),
6541 MVT::i32, 2, 0, 1,
6542 7, MVT::i64,
6543 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_I64),
6544 MVT::i64, 2, 0, 1,
6545 8, MVT::v16i8,
6546 OPC_CheckPatternPredicate0,
6547 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_I8x16),
6548 MVT::v16i8, 2, 0, 1,
6549 8, MVT::v8i16,
6550 OPC_CheckPatternPredicate0,
6551 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_I16x8),
6552 MVT::v8i16, 2, 0, 1,
6553 8, MVT::v4i32,
6554 OPC_CheckPatternPredicate0,
6555 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_I32x4),
6556 MVT::v4i32, 2, 0, 1,
6557 8, MVT::v2i64,
6558 OPC_CheckPatternPredicate0,
6559 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_I64x2),
6560 MVT::v2i64, 2, 0, 1,
6561 0,
6562 113, TARGET_VAL(ISD::SUB),
6563 OPC_Scope, 22,
6564 OPC_RecordChild0,
6565 OPC_RecordChild1,
6566 OPC_SwitchType , 7, MVT::i32,
6567 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_I32),
6568 MVT::i32, 2, 0, 1,
6569 7, MVT::i64,
6570 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_I64),
6571 MVT::i64, 2, 0, 1,
6572 0,
6573 42,
6574 OPC_MoveChild0,
6575 OPC_CheckImmAllZerosV,
6576 OPC_MoveParent,
6577 OPC_RecordChild1,
6578 OPC_SwitchType , 7, MVT::v16i8,
6579 OPC_CheckPatternPredicate0,
6580 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_I8x16),
6581 MVT::v16i8, 1, 0,
6582 7, MVT::v8i16,
6583 OPC_CheckPatternPredicate0,
6584 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_I16x8),
6585 MVT::v8i16, 1, 0,
6586 7, MVT::v4i32,
6587 OPC_CheckPatternPredicate0,
6588 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_I32x4),
6589 MVT::v4i32, 1, 0,
6590 7, MVT::v2i64,
6591 OPC_CheckPatternPredicate0,
6592 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_I64x2),
6593 MVT::v2i64, 1, 0,
6594 0,
6595 44,
6596 OPC_RecordChild0,
6597 OPC_RecordChild1,
6598 OPC_SwitchType , 8, MVT::v16i8,
6599 OPC_CheckPatternPredicate0,
6600 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_I8x16),
6601 MVT::v16i8, 2, 0, 1,
6602 8, MVT::v8i16,
6603 OPC_CheckPatternPredicate0,
6604 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_I16x8),
6605 MVT::v8i16, 2, 0, 1,
6606 8, MVT::v4i32,
6607 OPC_CheckPatternPredicate0,
6608 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_I32x4),
6609 MVT::v4i32, 2, 0, 1,
6610 8, MVT::v2i64,
6611 OPC_CheckPatternPredicate0,
6612 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_I64x2),
6613 MVT::v2i64, 2, 0, 1,
6614 0,
6615 0,
6616 85|128,2, TARGET_VAL(ISD::MUL),
6617 OPC_Scope, 22,
6618 OPC_RecordChild0,
6619 OPC_RecordChild1,
6620 OPC_SwitchType , 7, MVT::i32,
6621 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_I32),
6622 MVT::i32, 2, 0, 1,
6623 7, MVT::i64,
6624 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_I64),
6625 MVT::i64, 2, 0, 1,
6626 0,
6627 23|128,2,
6628 OPC_MoveChild0,
6629 OPC_SwitchOpcode , 66, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_S),
6630 OPC_RecordChild0,
6631 OPC_Scope, 20,
6632 OPC_CheckChild0Type, MVT::v16i8,
6633 OPC_MoveSibling1,
6634 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_S),
6635 OPC_RecordChild0,
6636 OPC_CheckChild0Type, MVT::v16i8,
6637 OPC_MoveParent,
6638 OPC_CheckType, MVT::v8i16,
6639 OPC_CheckPatternPredicate0,
6640 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_LOW_S_I16x8),
6641 MVT::v8i16, 2, 0, 1,
6642 20,
6643 OPC_CheckChild0Type, MVT::v8i16,
6644 OPC_MoveSibling1,
6645 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_S),
6646 OPC_RecordChild0,
6647 OPC_CheckChild0Type, MVT::v8i16,
6648 OPC_MoveParent,
6649 OPC_CheckType, MVT::v4i32,
6650 OPC_CheckPatternPredicate0,
6651 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_LOW_S_I32x4),
6652 MVT::v4i32, 2, 0, 1,
6653 20,
6654 OPC_CheckChild0Type, MVT::v4i32,
6655 OPC_MoveSibling1,
6656 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_S),
6657 OPC_RecordChild0,
6658 OPC_CheckChild0Type, MVT::v4i32,
6659 OPC_MoveParent,
6660 OPC_CheckType, MVT::v2i64,
6661 OPC_CheckPatternPredicate0,
6662 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_LOW_S_I64x2),
6663 MVT::v2i64, 2, 0, 1,
6664 0,
6665 66, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_S),
6666 OPC_RecordChild0,
6667 OPC_Scope, 20,
6668 OPC_CheckChild0Type, MVT::v16i8,
6669 OPC_MoveSibling1,
6670 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_S),
6671 OPC_RecordChild0,
6672 OPC_CheckChild0Type, MVT::v16i8,
6673 OPC_MoveParent,
6674 OPC_CheckType, MVT::v8i16,
6675 OPC_CheckPatternPredicate0,
6676 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_HIGH_S_I16x8),
6677 MVT::v8i16, 2, 0, 1,
6678 20,
6679 OPC_CheckChild0Type, MVT::v8i16,
6680 OPC_MoveSibling1,
6681 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_S),
6682 OPC_RecordChild0,
6683 OPC_CheckChild0Type, MVT::v8i16,
6684 OPC_MoveParent,
6685 OPC_CheckType, MVT::v4i32,
6686 OPC_CheckPatternPredicate0,
6687 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_HIGH_S_I32x4),
6688 MVT::v4i32, 2, 0, 1,
6689 20,
6690 OPC_CheckChild0Type, MVT::v4i32,
6691 OPC_MoveSibling1,
6692 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_S),
6693 OPC_RecordChild0,
6694 OPC_CheckChild0Type, MVT::v4i32,
6695 OPC_MoveParent,
6696 OPC_CheckType, MVT::v2i64,
6697 OPC_CheckPatternPredicate0,
6698 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_HIGH_S_I64x2),
6699 MVT::v2i64, 2, 0, 1,
6700 0,
6701 66, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_U),
6702 OPC_RecordChild0,
6703 OPC_Scope, 20,
6704 OPC_CheckChild0Type, MVT::v16i8,
6705 OPC_MoveSibling1,
6706 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_U),
6707 OPC_RecordChild0,
6708 OPC_CheckChild0Type, MVT::v16i8,
6709 OPC_MoveParent,
6710 OPC_CheckType, MVT::v8i16,
6711 OPC_CheckPatternPredicate0,
6712 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_LOW_U_I16x8),
6713 MVT::v8i16, 2, 0, 1,
6714 20,
6715 OPC_CheckChild0Type, MVT::v8i16,
6716 OPC_MoveSibling1,
6717 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_U),
6718 OPC_RecordChild0,
6719 OPC_CheckChild0Type, MVT::v8i16,
6720 OPC_MoveParent,
6721 OPC_CheckType, MVT::v4i32,
6722 OPC_CheckPatternPredicate0,
6723 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_LOW_U_I32x4),
6724 MVT::v4i32, 2, 0, 1,
6725 20,
6726 OPC_CheckChild0Type, MVT::v4i32,
6727 OPC_MoveSibling1,
6728 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_U),
6729 OPC_RecordChild0,
6730 OPC_CheckChild0Type, MVT::v4i32,
6731 OPC_MoveParent,
6732 OPC_CheckType, MVT::v2i64,
6733 OPC_CheckPatternPredicate0,
6734 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_LOW_U_I64x2),
6735 MVT::v2i64, 2, 0, 1,
6736 0,
6737 66, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_U),
6738 OPC_RecordChild0,
6739 OPC_Scope, 20,
6740 OPC_CheckChild0Type, MVT::v16i8,
6741 OPC_MoveSibling1,
6742 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_U),
6743 OPC_RecordChild0,
6744 OPC_CheckChild0Type, MVT::v16i8,
6745 OPC_MoveParent,
6746 OPC_CheckType, MVT::v8i16,
6747 OPC_CheckPatternPredicate0,
6748 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_HIGH_U_I16x8),
6749 MVT::v8i16, 2, 0, 1,
6750 20,
6751 OPC_CheckChild0Type, MVT::v8i16,
6752 OPC_MoveSibling1,
6753 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_U),
6754 OPC_RecordChild0,
6755 OPC_CheckChild0Type, MVT::v8i16,
6756 OPC_MoveParent,
6757 OPC_CheckType, MVT::v4i32,
6758 OPC_CheckPatternPredicate0,
6759 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_HIGH_U_I32x4),
6760 MVT::v4i32, 2, 0, 1,
6761 20,
6762 OPC_CheckChild0Type, MVT::v4i32,
6763 OPC_MoveSibling1,
6764 OPC_CheckOpcode, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_U),
6765 OPC_RecordChild0,
6766 OPC_CheckChild0Type, MVT::v4i32,
6767 OPC_MoveParent,
6768 OPC_CheckType, MVT::v2i64,
6769 OPC_CheckPatternPredicate0,
6770 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::EXTMUL_HIGH_U_I64x2),
6771 MVT::v2i64, 2, 0, 1,
6772 0,
6773 0,
6774 34,
6775 OPC_RecordChild0,
6776 OPC_RecordChild1,
6777 OPC_SwitchType , 8, MVT::v8i16,
6778 OPC_CheckPatternPredicate0,
6779 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_I16x8),
6780 MVT::v8i16, 2, 0, 1,
6781 8, MVT::v4i32,
6782 OPC_CheckPatternPredicate0,
6783 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_I32x4),
6784 MVT::v4i32, 2, 0, 1,
6785 8, MVT::v2i64,
6786 OPC_CheckPatternPredicate0,
6787 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_I64x2),
6788 MVT::v2i64, 2, 0, 1,
6789 0,
6790 0,
6791 22, TARGET_VAL(ISD::SDIV),
6792 OPC_RecordChild0,
6793 OPC_RecordChild1,
6794 OPC_SwitchType , 7, MVT::i32,
6795 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_S_I32),
6796 MVT::i32, 2, 0, 1,
6797 7, MVT::i64,
6798 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_S_I64),
6799 MVT::i64, 2, 0, 1,
6800 0,
6801 22, TARGET_VAL(ISD::UDIV),
6802 OPC_RecordChild0,
6803 OPC_RecordChild1,
6804 OPC_SwitchType , 7, MVT::i32,
6805 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_U_I32),
6806 MVT::i32, 2, 0, 1,
6807 7, MVT::i64,
6808 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_U_I64),
6809 MVT::i64, 2, 0, 1,
6810 0,
6811 22, TARGET_VAL(ISD::SREM),
6812 OPC_RecordChild0,
6813 OPC_RecordChild1,
6814 OPC_SwitchType , 7, MVT::i32,
6815 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REM_S_I32),
6816 MVT::i32, 2, 0, 1,
6817 7, MVT::i64,
6818 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REM_S_I64),
6819 MVT::i64, 2, 0, 1,
6820 0,
6821 22, TARGET_VAL(ISD::UREM),
6822 OPC_RecordChild0,
6823 OPC_RecordChild1,
6824 OPC_SwitchType , 7, MVT::i32,
6825 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REM_U_I32),
6826 MVT::i32, 2, 0, 1,
6827 7, MVT::i64,
6828 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REM_U_I64),
6829 MVT::i64, 2, 0, 1,
6830 0,
6831 56|128,6, TARGET_VAL(ISD::OR),
6832 OPC_Scope, 22,
6833 OPC_RecordChild0,
6834 OPC_RecordChild1,
6835 OPC_SwitchType , 7, MVT::i32,
6836 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::OR_I32),
6837 MVT::i32, 2, 0, 1,
6838 7, MVT::i64,
6839 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::OR_I64),
6840 MVT::i64, 2, 0, 1,
6841 0,
6842 116|128,5,
6843 OPC_MoveChild0,
6844 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
6845 OPC_Scope, 4|128,1,
6846 OPC_RecordChild0,
6847 OPC_RecordChild1,
6848 OPC_MoveSibling1,
6849 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
6850 OPC_Scope, 54,
6851 OPC_MoveChild0,
6852 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6853 OPC_CheckChild0Same, 0,
6854 OPC_MoveChild1,
6855 OPC_CheckImmAllOnesV,
6856 OPC_MoveParent,
6857 OPC_MoveParent,
6858 OPC_RecordChild1,
6859 OPC_MoveParent,
6860 OPC_SwitchType , 8, MVT::v16i8,
6861 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6862 MVT::v16i8, 3, 1, 2, 0,
6863 8, MVT::v8i16,
6864 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6865 MVT::v8i16, 3, 1, 2, 0,
6866 8, MVT::v4i32,
6867 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6868 MVT::v4i32, 3, 1, 2, 0,
6869 8, MVT::v2i64,
6870 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6871 MVT::v2i64, 3, 1, 2, 0,
6872 0,
6873 22,
6874 OPC_RecordChild0,
6875 OPC_MoveChild1,
6876 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6877 OPC_CheckChild0Same, 0,
6878 OPC_MoveChild1,
6879 OPC_CheckImmAllOnesV,
6880 OPC_MoveParent,
6881 OPC_MoveParent,
6882 OPC_MoveParent,
6883 OPC_CheckType, MVT::v16i8,
6884 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6885 MVT::v16i8, 3, 1, 2, 0,
6886 22,
6887 OPC_MoveChild0,
6888 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6889 OPC_CheckChild0Same, 1,
6890 OPC_MoveChild1,
6891 OPC_CheckImmAllOnesV,
6892 OPC_MoveParent,
6893 OPC_MoveParent,
6894 OPC_RecordChild1,
6895 OPC_MoveParent,
6896 OPC_CheckType, MVT::v16i8,
6897 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6898 MVT::v16i8, 3, 0, 2, 1,
6899 22,
6900 OPC_RecordChild0,
6901 OPC_MoveChild1,
6902 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6903 OPC_CheckChild0Same, 1,
6904 OPC_MoveChild1,
6905 OPC_CheckImmAllOnesV,
6906 OPC_MoveParent,
6907 OPC_MoveParent,
6908 OPC_MoveParent,
6909 OPC_CheckType, MVT::v16i8,
6910 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6911 MVT::v16i8, 3, 0, 2, 1,
6912 0,
6913 46,
6914 OPC_MoveChild0,
6915 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6916 OPC_RecordChild0,
6917 OPC_MoveChild1,
6918 OPC_CheckImmAllOnesV,
6919 OPC_MoveParent,
6920 OPC_MoveParent,
6921 OPC_RecordChild1,
6922 OPC_MoveSibling1,
6923 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
6924 OPC_Scope, 14,
6925 OPC_CheckChild0Same, 0,
6926 OPC_RecordChild1,
6927 OPC_MoveParent,
6928 OPC_CheckType, MVT::v16i8,
6929 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6930 MVT::v16i8, 3, 2, 1, 0,
6931 14,
6932 OPC_RecordChild0,
6933 OPC_CheckChild1Same, 0,
6934 OPC_MoveParent,
6935 OPC_CheckType, MVT::v16i8,
6936 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6937 MVT::v16i8, 3, 2, 1, 0,
6938 0,
6939 126,
6940 OPC_RecordChild0,
6941 OPC_Scope, 45,
6942 OPC_MoveChild1,
6943 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6944 OPC_RecordChild0,
6945 OPC_MoveChild1,
6946 OPC_CheckImmAllOnesV,
6947 OPC_MoveParent,
6948 OPC_MoveParent,
6949 OPC_MoveSibling1,
6950 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
6951 OPC_Scope, 14,
6952 OPC_CheckChild0Same, 1,
6953 OPC_RecordChild1,
6954 OPC_MoveParent,
6955 OPC_CheckType, MVT::v16i8,
6956 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6957 MVT::v16i8, 3, 2, 0, 1,
6958 14,
6959 OPC_RecordChild0,
6960 OPC_CheckChild1Same, 1,
6961 OPC_MoveParent,
6962 OPC_CheckType, MVT::v16i8,
6963 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6964 MVT::v16i8, 3, 2, 0, 1,
6965 0,
6966 76,
6967 OPC_RecordChild1,
6968 OPC_MoveSibling1,
6969 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
6970 OPC_Scope, 22,
6971 OPC_RecordChild0,
6972 OPC_MoveChild1,
6973 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6974 OPC_CheckChild0Same, 0,
6975 OPC_MoveChild1,
6976 OPC_CheckImmAllOnesV,
6977 OPC_MoveParent,
6978 OPC_MoveParent,
6979 OPC_MoveParent,
6980 OPC_CheckType, MVT::v8i16,
6981 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6982 MVT::v8i16, 3, 1, 2, 0,
6983 22,
6984 OPC_MoveChild0,
6985 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
6986 OPC_CheckChild0Same, 1,
6987 OPC_MoveChild1,
6988 OPC_CheckImmAllOnesV,
6989 OPC_MoveParent,
6990 OPC_MoveParent,
6991 OPC_RecordChild1,
6992 OPC_MoveParent,
6993 OPC_CheckType, MVT::v8i16,
6994 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
6995 MVT::v8i16, 3, 0, 2, 1,
6996 22,
6997 OPC_RecordChild0,
6998 OPC_MoveChild1,
6999 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7000 OPC_CheckChild0Same, 1,
7001 OPC_MoveChild1,
7002 OPC_CheckImmAllOnesV,
7003 OPC_MoveParent,
7004 OPC_MoveParent,
7005 OPC_MoveParent,
7006 OPC_CheckType, MVT::v8i16,
7007 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7008 MVT::v8i16, 3, 0, 2, 1,
7009 0,
7010 0,
7011 46,
7012 OPC_MoveChild0,
7013 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7014 OPC_RecordChild0,
7015 OPC_MoveChild1,
7016 OPC_CheckImmAllOnesV,
7017 OPC_MoveParent,
7018 OPC_MoveParent,
7019 OPC_RecordChild1,
7020 OPC_MoveSibling1,
7021 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7022 OPC_Scope, 14,
7023 OPC_CheckChild0Same, 0,
7024 OPC_RecordChild1,
7025 OPC_MoveParent,
7026 OPC_CheckType, MVT::v8i16,
7027 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7028 MVT::v8i16, 3, 2, 1, 0,
7029 14,
7030 OPC_RecordChild0,
7031 OPC_CheckChild1Same, 0,
7032 OPC_MoveParent,
7033 OPC_CheckType, MVT::v8i16,
7034 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7035 MVT::v8i16, 3, 2, 1, 0,
7036 0,
7037 126,
7038 OPC_RecordChild0,
7039 OPC_Scope, 45,
7040 OPC_MoveChild1,
7041 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7042 OPC_RecordChild0,
7043 OPC_MoveChild1,
7044 OPC_CheckImmAllOnesV,
7045 OPC_MoveParent,
7046 OPC_MoveParent,
7047 OPC_MoveSibling1,
7048 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7049 OPC_Scope, 14,
7050 OPC_CheckChild0Same, 1,
7051 OPC_RecordChild1,
7052 OPC_MoveParent,
7053 OPC_CheckType, MVT::v8i16,
7054 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7055 MVT::v8i16, 3, 2, 0, 1,
7056 14,
7057 OPC_RecordChild0,
7058 OPC_CheckChild1Same, 1,
7059 OPC_MoveParent,
7060 OPC_CheckType, MVT::v8i16,
7061 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7062 MVT::v8i16, 3, 2, 0, 1,
7063 0,
7064 76,
7065 OPC_RecordChild1,
7066 OPC_MoveSibling1,
7067 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7068 OPC_Scope, 22,
7069 OPC_RecordChild0,
7070 OPC_MoveChild1,
7071 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7072 OPC_CheckChild0Same, 0,
7073 OPC_MoveChild1,
7074 OPC_CheckImmAllOnesV,
7075 OPC_MoveParent,
7076 OPC_MoveParent,
7077 OPC_MoveParent,
7078 OPC_CheckType, MVT::v4i32,
7079 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7080 MVT::v4i32, 3, 1, 2, 0,
7081 22,
7082 OPC_MoveChild0,
7083 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7084 OPC_CheckChild0Same, 1,
7085 OPC_MoveChild1,
7086 OPC_CheckImmAllOnesV,
7087 OPC_MoveParent,
7088 OPC_MoveParent,
7089 OPC_RecordChild1,
7090 OPC_MoveParent,
7091 OPC_CheckType, MVT::v4i32,
7092 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7093 MVT::v4i32, 3, 0, 2, 1,
7094 22,
7095 OPC_RecordChild0,
7096 OPC_MoveChild1,
7097 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7098 OPC_CheckChild0Same, 1,
7099 OPC_MoveChild1,
7100 OPC_CheckImmAllOnesV,
7101 OPC_MoveParent,
7102 OPC_MoveParent,
7103 OPC_MoveParent,
7104 OPC_CheckType, MVT::v4i32,
7105 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7106 MVT::v4i32, 3, 0, 2, 1,
7107 0,
7108 0,
7109 46,
7110 OPC_MoveChild0,
7111 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7112 OPC_RecordChild0,
7113 OPC_MoveChild1,
7114 OPC_CheckImmAllOnesV,
7115 OPC_MoveParent,
7116 OPC_MoveParent,
7117 OPC_RecordChild1,
7118 OPC_MoveSibling1,
7119 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7120 OPC_Scope, 14,
7121 OPC_CheckChild0Same, 0,
7122 OPC_RecordChild1,
7123 OPC_MoveParent,
7124 OPC_CheckType, MVT::v4i32,
7125 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7126 MVT::v4i32, 3, 2, 1, 0,
7127 14,
7128 OPC_RecordChild0,
7129 OPC_CheckChild1Same, 0,
7130 OPC_MoveParent,
7131 OPC_CheckType, MVT::v4i32,
7132 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7133 MVT::v4i32, 3, 2, 1, 0,
7134 0,
7135 126,
7136 OPC_RecordChild0,
7137 OPC_Scope, 45,
7138 OPC_MoveChild1,
7139 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7140 OPC_RecordChild0,
7141 OPC_MoveChild1,
7142 OPC_CheckImmAllOnesV,
7143 OPC_MoveParent,
7144 OPC_MoveParent,
7145 OPC_MoveSibling1,
7146 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7147 OPC_Scope, 14,
7148 OPC_CheckChild0Same, 1,
7149 OPC_RecordChild1,
7150 OPC_MoveParent,
7151 OPC_CheckType, MVT::v4i32,
7152 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7153 MVT::v4i32, 3, 2, 0, 1,
7154 14,
7155 OPC_RecordChild0,
7156 OPC_CheckChild1Same, 1,
7157 OPC_MoveParent,
7158 OPC_CheckType, MVT::v4i32,
7159 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7160 MVT::v4i32, 3, 2, 0, 1,
7161 0,
7162 76,
7163 OPC_RecordChild1,
7164 OPC_MoveSibling1,
7165 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7166 OPC_Scope, 22,
7167 OPC_RecordChild0,
7168 OPC_MoveChild1,
7169 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7170 OPC_CheckChild0Same, 0,
7171 OPC_MoveChild1,
7172 OPC_CheckImmAllOnesV,
7173 OPC_MoveParent,
7174 OPC_MoveParent,
7175 OPC_MoveParent,
7176 OPC_CheckType, MVT::v2i64,
7177 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7178 MVT::v2i64, 3, 1, 2, 0,
7179 22,
7180 OPC_MoveChild0,
7181 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7182 OPC_CheckChild0Same, 1,
7183 OPC_MoveChild1,
7184 OPC_CheckImmAllOnesV,
7185 OPC_MoveParent,
7186 OPC_MoveParent,
7187 OPC_RecordChild1,
7188 OPC_MoveParent,
7189 OPC_CheckType, MVT::v2i64,
7190 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7191 MVT::v2i64, 3, 0, 2, 1,
7192 22,
7193 OPC_RecordChild0,
7194 OPC_MoveChild1,
7195 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7196 OPC_CheckChild0Same, 1,
7197 OPC_MoveChild1,
7198 OPC_CheckImmAllOnesV,
7199 OPC_MoveParent,
7200 OPC_MoveParent,
7201 OPC_MoveParent,
7202 OPC_CheckType, MVT::v2i64,
7203 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7204 MVT::v2i64, 3, 0, 2, 1,
7205 0,
7206 0,
7207 46,
7208 OPC_MoveChild0,
7209 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7210 OPC_RecordChild0,
7211 OPC_MoveChild1,
7212 OPC_CheckImmAllOnesV,
7213 OPC_MoveParent,
7214 OPC_MoveParent,
7215 OPC_RecordChild1,
7216 OPC_MoveSibling1,
7217 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7218 OPC_Scope, 14,
7219 OPC_CheckChild0Same, 0,
7220 OPC_RecordChild1,
7221 OPC_MoveParent,
7222 OPC_CheckType, MVT::v2i64,
7223 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7224 MVT::v2i64, 3, 2, 1, 0,
7225 14,
7226 OPC_RecordChild0,
7227 OPC_CheckChild1Same, 0,
7228 OPC_MoveParent,
7229 OPC_CheckType, MVT::v2i64,
7230 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7231 MVT::v2i64, 3, 2, 1, 0,
7232 0,
7233 46,
7234 OPC_RecordChild0,
7235 OPC_MoveChild1,
7236 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7237 OPC_RecordChild0,
7238 OPC_MoveChild1,
7239 OPC_CheckImmAllOnesV,
7240 OPC_MoveParent,
7241 OPC_MoveParent,
7242 OPC_MoveSibling1,
7243 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7244 OPC_Scope, 14,
7245 OPC_CheckChild0Same, 1,
7246 OPC_RecordChild1,
7247 OPC_MoveParent,
7248 OPC_CheckType, MVT::v2i64,
7249 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7250 MVT::v2i64, 3, 2, 0, 1,
7251 14,
7252 OPC_RecordChild0,
7253 OPC_CheckChild1Same, 1,
7254 OPC_MoveParent,
7255 OPC_CheckType, MVT::v2i64,
7256 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7257 MVT::v2i64, 3, 2, 0, 1,
7258 0,
7259 0,
7260 40,
7261 OPC_RecordChild0,
7262 OPC_RecordChild1,
7263 OPC_SwitchType , 7, MVT::v16i8,
7264 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::OR),
7265 MVT::v16i8, 2, 0, 1,
7266 7, MVT::v8i16,
7267 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::OR),
7268 MVT::v8i16, 2, 0, 1,
7269 7, MVT::v4i32,
7270 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::OR),
7271 MVT::v4i32, 2, 0, 1,
7272 7, MVT::v2i64,
7273 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::OR),
7274 MVT::v2i64, 2, 0, 1,
7275 0,
7276 0,
7277 121|128,11, TARGET_VAL(ISD::XOR),
7278 OPC_Scope, 22,
7279 OPC_RecordChild0,
7280 OPC_RecordChild1,
7281 OPC_SwitchType , 7, MVT::i32,
7282 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::XOR_I32),
7283 MVT::i32, 2, 0, 1,
7284 7, MVT::i64,
7285 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::XOR_I64),
7286 MVT::i64, 2, 0, 1,
7287 0,
7288 121,
7289 OPC_MoveChild0,
7290 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7291 OPC_MoveChild0,
7292 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7293 OPC_RecordChild0,
7294 OPC_Scope, 71,
7295 OPC_RecordChild1,
7296 OPC_MoveSibling1,
7297 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7298 OPC_RecordChild0,
7299 OPC_MoveChild1,
7300 OPC_CheckImmAllOnesV,
7301 OPC_MoveParent,
7302 OPC_MoveParent,
7303 OPC_MoveParent,
7304 OPC_Scope, 44,
7305 OPC_CheckChild1Same, 1,
7306 OPC_SwitchType , 8, MVT::v16i8,
7307 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7308 MVT::v16i8, 3, 1, 0, 2,
7309 8, MVT::v8i16,
7310 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7311 MVT::v8i16, 3, 1, 0, 2,
7312 8, MVT::v4i32,
7313 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7314 MVT::v4i32, 3, 1, 0, 2,
7315 8, MVT::v2i64,
7316 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7317 MVT::v2i64, 3, 1, 0, 2,
7318 0,
7319 12,
7320 OPC_CheckChild1Same, 0,
7321 OPC_CheckType, MVT::v16i8,
7322 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7323 MVT::v16i8, 3, 0, 1, 2,
7324 0,
7325 37,
7326 OPC_MoveChild1,
7327 OPC_CheckImmAllOnesV,
7328 OPC_MoveParent,
7329 OPC_MoveSibling1,
7330 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7331 OPC_RecordChild0,
7332 OPC_RecordChild1,
7333 OPC_MoveParent,
7334 OPC_MoveParent,
7335 OPC_CheckType, MVT::v16i8,
7336 OPC_Scope, 10,
7337 OPC_CheckChild1Same, 2,
7338 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7339 MVT::v16i8, 3, 2, 1, 0,
7340 10,
7341 OPC_CheckChild1Same, 1,
7342 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7343 MVT::v16i8, 3, 1, 2, 0,
7344 0,
7345 0,
7346 102,
7347 OPC_RecordChild0,
7348 OPC_MoveChild1,
7349 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7350 OPC_MoveChild0,
7351 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7352 OPC_Scope, 23,
7353 OPC_RecordChild0,
7354 OPC_CheckChild1Same, 0,
7355 OPC_MoveSibling1,
7356 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7357 OPC_RecordChild0,
7358 OPC_MoveChild1,
7359 OPC_CheckImmAllOnesV,
7360 OPC_MoveParent,
7361 OPC_MoveParent,
7362 OPC_MoveParent,
7363 OPC_CheckType, MVT::v16i8,
7364 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7365 MVT::v16i8, 3, 0, 1, 2,
7366 23,
7367 OPC_CheckChild0Same, 0,
7368 OPC_RecordChild1,
7369 OPC_MoveSibling1,
7370 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7371 OPC_RecordChild0,
7372 OPC_MoveChild1,
7373 OPC_CheckImmAllOnesV,
7374 OPC_MoveParent,
7375 OPC_MoveParent,
7376 OPC_MoveParent,
7377 OPC_CheckType, MVT::v16i8,
7378 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7379 MVT::v16i8, 3, 0, 1, 2,
7380 42,
7381 OPC_RecordChild0,
7382 OPC_MoveChild1,
7383 OPC_CheckImmAllOnesV,
7384 OPC_MoveParent,
7385 OPC_MoveSibling1,
7386 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7387 OPC_Scope, 15,
7388 OPC_RecordChild0,
7389 OPC_CheckChild1Same, 0,
7390 OPC_MoveParent,
7391 OPC_MoveParent,
7392 OPC_CheckType, MVT::v16i8,
7393 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7394 MVT::v16i8, 3, 0, 2, 1,
7395 15,
7396 OPC_CheckChild0Same, 0,
7397 OPC_RecordChild1,
7398 OPC_MoveParent,
7399 OPC_MoveParent,
7400 OPC_CheckType, MVT::v16i8,
7401 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7402 MVT::v16i8, 3, 0, 2, 1,
7403 0,
7404 0,
7405 73,
7406 OPC_MoveChild0,
7407 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7408 OPC_MoveChild0,
7409 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7410 OPC_RecordChild0,
7411 OPC_Scope, 23,
7412 OPC_RecordChild1,
7413 OPC_MoveSibling1,
7414 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7415 OPC_RecordChild0,
7416 OPC_MoveChild1,
7417 OPC_CheckImmAllOnesV,
7418 OPC_MoveParent,
7419 OPC_MoveParent,
7420 OPC_MoveParent,
7421 OPC_CheckChild1Same, 0,
7422 OPC_CheckType, MVT::v8i16,
7423 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7424 MVT::v8i16, 3, 0, 1, 2,
7425 37,
7426 OPC_MoveChild1,
7427 OPC_CheckImmAllOnesV,
7428 OPC_MoveParent,
7429 OPC_MoveSibling1,
7430 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7431 OPC_RecordChild0,
7432 OPC_RecordChild1,
7433 OPC_MoveParent,
7434 OPC_MoveParent,
7435 OPC_CheckType, MVT::v8i16,
7436 OPC_Scope, 10,
7437 OPC_CheckChild1Same, 2,
7438 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7439 MVT::v8i16, 3, 2, 1, 0,
7440 10,
7441 OPC_CheckChild1Same, 1,
7442 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7443 MVT::v8i16, 3, 1, 2, 0,
7444 0,
7445 0,
7446 102,
7447 OPC_RecordChild0,
7448 OPC_MoveChild1,
7449 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7450 OPC_MoveChild0,
7451 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7452 OPC_Scope, 23,
7453 OPC_RecordChild0,
7454 OPC_CheckChild1Same, 0,
7455 OPC_MoveSibling1,
7456 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7457 OPC_RecordChild0,
7458 OPC_MoveChild1,
7459 OPC_CheckImmAllOnesV,
7460 OPC_MoveParent,
7461 OPC_MoveParent,
7462 OPC_MoveParent,
7463 OPC_CheckType, MVT::v8i16,
7464 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7465 MVT::v8i16, 3, 0, 1, 2,
7466 23,
7467 OPC_CheckChild0Same, 0,
7468 OPC_RecordChild1,
7469 OPC_MoveSibling1,
7470 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7471 OPC_RecordChild0,
7472 OPC_MoveChild1,
7473 OPC_CheckImmAllOnesV,
7474 OPC_MoveParent,
7475 OPC_MoveParent,
7476 OPC_MoveParent,
7477 OPC_CheckType, MVT::v8i16,
7478 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7479 MVT::v8i16, 3, 0, 1, 2,
7480 42,
7481 OPC_RecordChild0,
7482 OPC_MoveChild1,
7483 OPC_CheckImmAllOnesV,
7484 OPC_MoveParent,
7485 OPC_MoveSibling1,
7486 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7487 OPC_Scope, 15,
7488 OPC_RecordChild0,
7489 OPC_CheckChild1Same, 0,
7490 OPC_MoveParent,
7491 OPC_MoveParent,
7492 OPC_CheckType, MVT::v8i16,
7493 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7494 MVT::v8i16, 3, 0, 2, 1,
7495 15,
7496 OPC_CheckChild0Same, 0,
7497 OPC_RecordChild1,
7498 OPC_MoveParent,
7499 OPC_MoveParent,
7500 OPC_CheckType, MVT::v8i16,
7501 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7502 MVT::v8i16, 3, 0, 2, 1,
7503 0,
7504 0,
7505 73,
7506 OPC_MoveChild0,
7507 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7508 OPC_MoveChild0,
7509 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7510 OPC_RecordChild0,
7511 OPC_Scope, 23,
7512 OPC_RecordChild1,
7513 OPC_MoveSibling1,
7514 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7515 OPC_RecordChild0,
7516 OPC_MoveChild1,
7517 OPC_CheckImmAllOnesV,
7518 OPC_MoveParent,
7519 OPC_MoveParent,
7520 OPC_MoveParent,
7521 OPC_CheckChild1Same, 0,
7522 OPC_CheckType, MVT::v4i32,
7523 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7524 MVT::v4i32, 3, 0, 1, 2,
7525 37,
7526 OPC_MoveChild1,
7527 OPC_CheckImmAllOnesV,
7528 OPC_MoveParent,
7529 OPC_MoveSibling1,
7530 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7531 OPC_RecordChild0,
7532 OPC_RecordChild1,
7533 OPC_MoveParent,
7534 OPC_MoveParent,
7535 OPC_CheckType, MVT::v4i32,
7536 OPC_Scope, 10,
7537 OPC_CheckChild1Same, 2,
7538 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7539 MVT::v4i32, 3, 2, 1, 0,
7540 10,
7541 OPC_CheckChild1Same, 1,
7542 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7543 MVT::v4i32, 3, 1, 2, 0,
7544 0,
7545 0,
7546 102,
7547 OPC_RecordChild0,
7548 OPC_MoveChild1,
7549 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7550 OPC_MoveChild0,
7551 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7552 OPC_Scope, 23,
7553 OPC_RecordChild0,
7554 OPC_CheckChild1Same, 0,
7555 OPC_MoveSibling1,
7556 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7557 OPC_RecordChild0,
7558 OPC_MoveChild1,
7559 OPC_CheckImmAllOnesV,
7560 OPC_MoveParent,
7561 OPC_MoveParent,
7562 OPC_MoveParent,
7563 OPC_CheckType, MVT::v4i32,
7564 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7565 MVT::v4i32, 3, 0, 1, 2,
7566 23,
7567 OPC_CheckChild0Same, 0,
7568 OPC_RecordChild1,
7569 OPC_MoveSibling1,
7570 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7571 OPC_RecordChild0,
7572 OPC_MoveChild1,
7573 OPC_CheckImmAllOnesV,
7574 OPC_MoveParent,
7575 OPC_MoveParent,
7576 OPC_MoveParent,
7577 OPC_CheckType, MVT::v4i32,
7578 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7579 MVT::v4i32, 3, 0, 1, 2,
7580 42,
7581 OPC_RecordChild0,
7582 OPC_MoveChild1,
7583 OPC_CheckImmAllOnesV,
7584 OPC_MoveParent,
7585 OPC_MoveSibling1,
7586 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7587 OPC_Scope, 15,
7588 OPC_RecordChild0,
7589 OPC_CheckChild1Same, 0,
7590 OPC_MoveParent,
7591 OPC_MoveParent,
7592 OPC_CheckType, MVT::v4i32,
7593 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7594 MVT::v4i32, 3, 0, 2, 1,
7595 15,
7596 OPC_CheckChild0Same, 0,
7597 OPC_RecordChild1,
7598 OPC_MoveParent,
7599 OPC_MoveParent,
7600 OPC_CheckType, MVT::v4i32,
7601 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7602 MVT::v4i32, 3, 0, 2, 1,
7603 0,
7604 0,
7605 73,
7606 OPC_MoveChild0,
7607 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7608 OPC_MoveChild0,
7609 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7610 OPC_RecordChild0,
7611 OPC_Scope, 23,
7612 OPC_RecordChild1,
7613 OPC_MoveSibling1,
7614 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7615 OPC_RecordChild0,
7616 OPC_MoveChild1,
7617 OPC_CheckImmAllOnesV,
7618 OPC_MoveParent,
7619 OPC_MoveParent,
7620 OPC_MoveParent,
7621 OPC_CheckChild1Same, 0,
7622 OPC_CheckType, MVT::v2i64,
7623 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7624 MVT::v2i64, 3, 0, 1, 2,
7625 37,
7626 OPC_MoveChild1,
7627 OPC_CheckImmAllOnesV,
7628 OPC_MoveParent,
7629 OPC_MoveSibling1,
7630 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7631 OPC_RecordChild0,
7632 OPC_RecordChild1,
7633 OPC_MoveParent,
7634 OPC_MoveParent,
7635 OPC_CheckType, MVT::v2i64,
7636 OPC_Scope, 10,
7637 OPC_CheckChild1Same, 2,
7638 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7639 MVT::v2i64, 3, 2, 1, 0,
7640 10,
7641 OPC_CheckChild1Same, 1,
7642 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7643 MVT::v2i64, 3, 1, 2, 0,
7644 0,
7645 0,
7646 102,
7647 OPC_RecordChild0,
7648 OPC_MoveChild1,
7649 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7650 OPC_MoveChild0,
7651 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7652 OPC_Scope, 23,
7653 OPC_RecordChild0,
7654 OPC_CheckChild1Same, 0,
7655 OPC_MoveSibling1,
7656 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7657 OPC_RecordChild0,
7658 OPC_MoveChild1,
7659 OPC_CheckImmAllOnesV,
7660 OPC_MoveParent,
7661 OPC_MoveParent,
7662 OPC_MoveParent,
7663 OPC_CheckType, MVT::v2i64,
7664 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7665 MVT::v2i64, 3, 0, 1, 2,
7666 23,
7667 OPC_CheckChild0Same, 0,
7668 OPC_RecordChild1,
7669 OPC_MoveSibling1,
7670 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7671 OPC_RecordChild0,
7672 OPC_MoveChild1,
7673 OPC_CheckImmAllOnesV,
7674 OPC_MoveParent,
7675 OPC_MoveParent,
7676 OPC_MoveParent,
7677 OPC_CheckType, MVT::v2i64,
7678 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7679 MVT::v2i64, 3, 0, 1, 2,
7680 42,
7681 OPC_RecordChild0,
7682 OPC_MoveChild1,
7683 OPC_CheckImmAllOnesV,
7684 OPC_MoveParent,
7685 OPC_MoveSibling1,
7686 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7687 OPC_Scope, 15,
7688 OPC_RecordChild0,
7689 OPC_CheckChild1Same, 0,
7690 OPC_MoveParent,
7691 OPC_MoveParent,
7692 OPC_CheckType, MVT::v2i64,
7693 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7694 MVT::v2i64, 3, 0, 2, 1,
7695 15,
7696 OPC_CheckChild0Same, 0,
7697 OPC_RecordChild1,
7698 OPC_MoveParent,
7699 OPC_MoveParent,
7700 OPC_CheckType, MVT::v2i64,
7701 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7702 MVT::v2i64, 3, 0, 2, 1,
7703 0,
7704 0,
7705 112,
7706 OPC_MoveChild0,
7707 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7708 OPC_Scope, 69,
7709 OPC_MoveChild0,
7710 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7711 OPC_RecordChild0,
7712 OPC_RecordChild1,
7713 OPC_MoveParent,
7714 OPC_RecordChild1,
7715 OPC_MoveParent,
7716 OPC_Scope, 44,
7717 OPC_CheckChild1Same, 1,
7718 OPC_SwitchType , 8, MVT::v16i8,
7719 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7720 MVT::v16i8, 3, 0, 1, 2,
7721 8, MVT::v8i16,
7722 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7723 MVT::v8i16, 3, 0, 1, 2,
7724 8, MVT::v4i32,
7725 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7726 MVT::v4i32, 3, 0, 1, 2,
7727 8, MVT::v2i64,
7728 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7729 MVT::v2i64, 3, 0, 1, 2,
7730 0,
7731 12,
7732 OPC_CheckChild1Same, 0,
7733 OPC_CheckType, MVT::v16i8,
7734 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7735 MVT::v16i8, 3, 1, 0, 2,
7736 0,
7737 35,
7738 OPC_RecordChild0,
7739 OPC_MoveChild1,
7740 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7741 OPC_RecordChild0,
7742 OPC_RecordChild1,
7743 OPC_MoveParent,
7744 OPC_MoveParent,
7745 OPC_CheckType, MVT::v16i8,
7746 OPC_Scope, 10,
7747 OPC_CheckChild1Same, 2,
7748 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7749 MVT::v16i8, 3, 1, 2, 0,
7750 10,
7751 OPC_CheckChild1Same, 1,
7752 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7753 MVT::v16i8, 3, 2, 1, 0,
7754 0,
7755 0,
7756 88,
7757 OPC_RecordChild0,
7758 OPC_MoveChild1,
7759 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7760 OPC_Scope, 40,
7761 OPC_MoveChild0,
7762 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7763 OPC_Scope, 16,
7764 OPC_RecordChild0,
7765 OPC_CheckChild1Same, 0,
7766 OPC_MoveParent,
7767 OPC_RecordChild1,
7768 OPC_MoveParent,
7769 OPC_CheckType, MVT::v16i8,
7770 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7771 MVT::v16i8, 3, 1, 0, 2,
7772 16,
7773 OPC_CheckChild0Same, 0,
7774 OPC_RecordChild1,
7775 OPC_MoveParent,
7776 OPC_RecordChild1,
7777 OPC_MoveParent,
7778 OPC_CheckType, MVT::v16i8,
7779 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7780 MVT::v16i8, 3, 1, 0, 2,
7781 0,
7782 39,
7783 OPC_RecordChild0,
7784 OPC_MoveChild1,
7785 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7786 OPC_Scope, 15,
7787 OPC_RecordChild0,
7788 OPC_CheckChild1Same, 0,
7789 OPC_MoveParent,
7790 OPC_MoveParent,
7791 OPC_CheckType, MVT::v16i8,
7792 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7793 MVT::v16i8, 3, 2, 0, 1,
7794 15,
7795 OPC_CheckChild0Same, 0,
7796 OPC_RecordChild1,
7797 OPC_MoveParent,
7798 OPC_MoveParent,
7799 OPC_CheckType, MVT::v16i8,
7800 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7801 MVT::v16i8, 3, 2, 0, 1,
7802 0,
7803 0,
7804 64,
7805 OPC_MoveChild0,
7806 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7807 OPC_Scope, 21,
7808 OPC_MoveChild0,
7809 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7810 OPC_RecordChild0,
7811 OPC_RecordChild1,
7812 OPC_MoveParent,
7813 OPC_RecordChild1,
7814 OPC_MoveParent,
7815 OPC_CheckChild1Same, 0,
7816 OPC_CheckType, MVT::v8i16,
7817 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7818 MVT::v8i16, 3, 1, 0, 2,
7819 35,
7820 OPC_RecordChild0,
7821 OPC_MoveChild1,
7822 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7823 OPC_RecordChild0,
7824 OPC_RecordChild1,
7825 OPC_MoveParent,
7826 OPC_MoveParent,
7827 OPC_CheckType, MVT::v8i16,
7828 OPC_Scope, 10,
7829 OPC_CheckChild1Same, 2,
7830 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7831 MVT::v8i16, 3, 1, 2, 0,
7832 10,
7833 OPC_CheckChild1Same, 1,
7834 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7835 MVT::v8i16, 3, 2, 1, 0,
7836 0,
7837 0,
7838 88,
7839 OPC_RecordChild0,
7840 OPC_MoveChild1,
7841 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7842 OPC_Scope, 40,
7843 OPC_MoveChild0,
7844 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7845 OPC_Scope, 16,
7846 OPC_RecordChild0,
7847 OPC_CheckChild1Same, 0,
7848 OPC_MoveParent,
7849 OPC_RecordChild1,
7850 OPC_MoveParent,
7851 OPC_CheckType, MVT::v8i16,
7852 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7853 MVT::v8i16, 3, 1, 0, 2,
7854 16,
7855 OPC_CheckChild0Same, 0,
7856 OPC_RecordChild1,
7857 OPC_MoveParent,
7858 OPC_RecordChild1,
7859 OPC_MoveParent,
7860 OPC_CheckType, MVT::v8i16,
7861 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7862 MVT::v8i16, 3, 1, 0, 2,
7863 0,
7864 39,
7865 OPC_RecordChild0,
7866 OPC_MoveChild1,
7867 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7868 OPC_Scope, 15,
7869 OPC_RecordChild0,
7870 OPC_CheckChild1Same, 0,
7871 OPC_MoveParent,
7872 OPC_MoveParent,
7873 OPC_CheckType, MVT::v8i16,
7874 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7875 MVT::v8i16, 3, 2, 0, 1,
7876 15,
7877 OPC_CheckChild0Same, 0,
7878 OPC_RecordChild1,
7879 OPC_MoveParent,
7880 OPC_MoveParent,
7881 OPC_CheckType, MVT::v8i16,
7882 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7883 MVT::v8i16, 3, 2, 0, 1,
7884 0,
7885 0,
7886 64,
7887 OPC_MoveChild0,
7888 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7889 OPC_Scope, 21,
7890 OPC_MoveChild0,
7891 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7892 OPC_RecordChild0,
7893 OPC_RecordChild1,
7894 OPC_MoveParent,
7895 OPC_RecordChild1,
7896 OPC_MoveParent,
7897 OPC_CheckChild1Same, 0,
7898 OPC_CheckType, MVT::v4i32,
7899 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7900 MVT::v4i32, 3, 1, 0, 2,
7901 35,
7902 OPC_RecordChild0,
7903 OPC_MoveChild1,
7904 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7905 OPC_RecordChild0,
7906 OPC_RecordChild1,
7907 OPC_MoveParent,
7908 OPC_MoveParent,
7909 OPC_CheckType, MVT::v4i32,
7910 OPC_Scope, 10,
7911 OPC_CheckChild1Same, 2,
7912 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7913 MVT::v4i32, 3, 1, 2, 0,
7914 10,
7915 OPC_CheckChild1Same, 1,
7916 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7917 MVT::v4i32, 3, 2, 1, 0,
7918 0,
7919 0,
7920 88,
7921 OPC_RecordChild0,
7922 OPC_MoveChild1,
7923 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7924 OPC_Scope, 40,
7925 OPC_MoveChild0,
7926 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7927 OPC_Scope, 16,
7928 OPC_RecordChild0,
7929 OPC_CheckChild1Same, 0,
7930 OPC_MoveParent,
7931 OPC_RecordChild1,
7932 OPC_MoveParent,
7933 OPC_CheckType, MVT::v4i32,
7934 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7935 MVT::v4i32, 3, 1, 0, 2,
7936 16,
7937 OPC_CheckChild0Same, 0,
7938 OPC_RecordChild1,
7939 OPC_MoveParent,
7940 OPC_RecordChild1,
7941 OPC_MoveParent,
7942 OPC_CheckType, MVT::v4i32,
7943 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7944 MVT::v4i32, 3, 1, 0, 2,
7945 0,
7946 39,
7947 OPC_RecordChild0,
7948 OPC_MoveChild1,
7949 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7950 OPC_Scope, 15,
7951 OPC_RecordChild0,
7952 OPC_CheckChild1Same, 0,
7953 OPC_MoveParent,
7954 OPC_MoveParent,
7955 OPC_CheckType, MVT::v4i32,
7956 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7957 MVT::v4i32, 3, 2, 0, 1,
7958 15,
7959 OPC_CheckChild0Same, 0,
7960 OPC_RecordChild1,
7961 OPC_MoveParent,
7962 OPC_MoveParent,
7963 OPC_CheckType, MVT::v4i32,
7964 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7965 MVT::v4i32, 3, 2, 0, 1,
7966 0,
7967 0,
7968 64,
7969 OPC_MoveChild0,
7970 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
7971 OPC_Scope, 21,
7972 OPC_MoveChild0,
7973 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7974 OPC_RecordChild0,
7975 OPC_RecordChild1,
7976 OPC_MoveParent,
7977 OPC_RecordChild1,
7978 OPC_MoveParent,
7979 OPC_CheckChild1Same, 0,
7980 OPC_CheckType, MVT::v2i64,
7981 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7982 MVT::v2i64, 3, 1, 0, 2,
7983 35,
7984 OPC_RecordChild0,
7985 OPC_MoveChild1,
7986 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
7987 OPC_RecordChild0,
7988 OPC_RecordChild1,
7989 OPC_MoveParent,
7990 OPC_MoveParent,
7991 OPC_CheckType, MVT::v2i64,
7992 OPC_Scope, 10,
7993 OPC_CheckChild1Same, 2,
7994 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7995 MVT::v2i64, 3, 1, 2, 0,
7996 10,
7997 OPC_CheckChild1Same, 1,
7998 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
7999 MVT::v2i64, 3, 2, 1, 0,
8000 0,
8001 0,
8002 43|128,1,
8003 OPC_RecordChild0,
8004 OPC_Scope, 127,
8005 OPC_MoveChild1,
8006 OPC_Scope, 86,
8007 OPC_CheckOpcode, TARGET_VAL(ISD::AND),
8008 OPC_Scope, 40,
8009 OPC_MoveChild0,
8010 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
8011 OPC_Scope, 16,
8012 OPC_RecordChild0,
8013 OPC_CheckChild1Same, 0,
8014 OPC_MoveParent,
8015 OPC_RecordChild1,
8016 OPC_MoveParent,
8017 OPC_CheckType, MVT::v2i64,
8018 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
8019 MVT::v2i64, 3, 1, 0, 2,
8020 16,
8021 OPC_CheckChild0Same, 0,
8022 OPC_RecordChild1,
8023 OPC_MoveParent,
8024 OPC_RecordChild1,
8025 OPC_MoveParent,
8026 OPC_CheckType, MVT::v2i64,
8027 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
8028 MVT::v2i64, 3, 1, 0, 2,
8029 0,
8030 39,
8031 OPC_RecordChild0,
8032 OPC_MoveChild1,
8033 OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
8034 OPC_Scope, 15,
8035 OPC_RecordChild0,
8036 OPC_CheckChild1Same, 0,
8037 OPC_MoveParent,
8038 OPC_MoveParent,
8039 OPC_CheckType, MVT::v2i64,
8040 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
8041 MVT::v2i64, 3, 2, 0, 1,
8042 15,
8043 OPC_CheckChild0Same, 0,
8044 OPC_RecordChild1,
8045 OPC_MoveParent,
8046 OPC_MoveParent,
8047 OPC_CheckType, MVT::v2i64,
8048 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
8049 MVT::v2i64, 3, 2, 0, 1,
8050 0,
8051 0,
8052 36,
8053 OPC_CheckImmAllOnesV,
8054 OPC_MoveParent,
8055 OPC_SwitchType , 6, MVT::v16i8,
8056 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NOT),
8057 MVT::v16i8, 1, 0,
8058 6, MVT::v8i16,
8059 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NOT),
8060 MVT::v8i16, 1, 0,
8061 6, MVT::v4i32,
8062 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NOT),
8063 MVT::v4i32, 1, 0,
8064 6, MVT::v2i64,
8065 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NOT),
8066 MVT::v2i64, 1, 0,
8067 0,
8068 0,
8069 39,
8070 OPC_RecordChild1,
8071 OPC_SwitchType , 7, MVT::v16i8,
8072 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::XOR),
8073 MVT::v16i8, 2, 0, 1,
8074 7, MVT::v8i16,
8075 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::XOR),
8076 MVT::v8i16, 2, 0, 1,
8077 7, MVT::v4i32,
8078 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::XOR),
8079 MVT::v4i32, 2, 0, 1,
8080 7, MVT::v2i64,
8081 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::XOR),
8082 MVT::v2i64, 2, 0, 1,
8083 0,
8084 0,
8085 0,
8086 21, TARGET_VAL(ISD::CTLZ),
8087 OPC_RecordChild0,
8088 OPC_SwitchType , 7, MVT::i32,
8089 OPC_CheckChild0TypeI32,
8090 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CLZ_I32),
8091 MVT::i32, 1, 0,
8092 7, MVT::i64,
8093 OPC_CheckChild0TypeI64,
8094 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CLZ_I64),
8095 MVT::i64, 1, 0,
8096 0,
8097 21, TARGET_VAL(ISD::CTTZ),
8098 OPC_RecordChild0,
8099 OPC_SwitchType , 7, MVT::i32,
8100 OPC_CheckChild0TypeI32,
8101 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CTZ_I32),
8102 MVT::i32, 1, 0,
8103 7, MVT::i64,
8104 OPC_CheckChild0TypeI64,
8105 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CTZ_I64),
8106 MVT::i64, 1, 0,
8107 0,
8108 32, TARGET_VAL(ISD::CTPOP),
8109 OPC_RecordChild0,
8110 OPC_SwitchType , 7, MVT::i32,
8111 OPC_CheckChild0TypeI32,
8112 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::POPCNT_I32),
8113 MVT::i32, 1, 0,
8114 7, MVT::i64,
8115 OPC_CheckChild0TypeI64,
8116 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::POPCNT_I64),
8117 MVT::i64, 1, 0,
8118 9, MVT::v16i8,
8119 OPC_CheckChild0Type, MVT::v16i8,
8120 OPC_CheckPatternPredicate0,
8121 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::POPCNT_I8x16),
8122 MVT::v16i8, 1, 0,
8123 0,
8124 7, TARGET_VAL(ISD::TRUNCATE),
8125 OPC_RecordChild0,
8126 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_WRAP_I64),
8127 MVT::i32, 1, 0,
8128 7, TARGET_VAL(ISD::SIGN_EXTEND),
8129 OPC_RecordChild0,
8130 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_EXTEND_S_I32),
8131 MVT::i64, 1, 0,
8132 121, TARGET_VAL(ISD::FP_TO_SINT),
8133 OPC_RecordChild0,
8134 OPC_Scope, 48,
8135 OPC_CheckChild0Type, MVT::f32,
8136 OPC_SwitchType , 20, MVT::i32,
8137 OPC_Scope, 8,
8138 OPC_CheckPatternPredicate, 9,
8139 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_S_SAT_F32),
8140 MVT::i32, 1, 0,
8141 8,
8142 OPC_CheckPatternPredicate, 10,
8143 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_SINT_I32_F32),
8144 MVT::i32, 1, 0,
8145 0,
8146 20, MVT::i64,
8147 OPC_Scope, 8,
8148 OPC_CheckPatternPredicate, 9,
8149 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_S_SAT_F32),
8150 MVT::i64, 1, 0,
8151 8,
8152 OPC_CheckPatternPredicate, 10,
8153 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_SINT_I64_F32),
8154 MVT::i64, 1, 0,
8155 0,
8156 0,
8157 48,
8158 OPC_CheckChild0Type, MVT::f64,
8159 OPC_SwitchType , 20, MVT::i32,
8160 OPC_Scope, 8,
8161 OPC_CheckPatternPredicate, 9,
8162 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_S_SAT_F64),
8163 MVT::i32, 1, 0,
8164 8,
8165 OPC_CheckPatternPredicate, 10,
8166 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_SINT_I32_F64),
8167 MVT::i32, 1, 0,
8168 0,
8169 20, MVT::i64,
8170 OPC_Scope, 8,
8171 OPC_CheckPatternPredicate, 9,
8172 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_S_SAT_F64),
8173 MVT::i64, 1, 0,
8174 8,
8175 OPC_CheckPatternPredicate, 10,
8176 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_SINT_I64_F64),
8177 MVT::i64, 1, 0,
8178 0,
8179 0,
8180 9,
8181 OPC_CheckType, MVT::v4i32,
8182 OPC_CheckPatternPredicate0,
8183 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::fp_to_sint_I32x4),
8184 MVT::v4i32, 1, 0,
8185 9,
8186 OPC_CheckType, MVT::v8i16,
8187 OPC_CheckPatternPredicate5,
8188 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::fp_to_sint_I16x8),
8189 MVT::v8i16, 1, 0,
8190 0,
8191 121, TARGET_VAL(ISD::FP_TO_UINT),
8192 OPC_RecordChild0,
8193 OPC_Scope, 48,
8194 OPC_CheckChild0Type, MVT::f32,
8195 OPC_SwitchType , 20, MVT::i32,
8196 OPC_Scope, 8,
8197 OPC_CheckPatternPredicate, 9,
8198 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_U_SAT_F32),
8199 MVT::i32, 1, 0,
8200 8,
8201 OPC_CheckPatternPredicate, 10,
8202 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_UINT_I32_F32),
8203 MVT::i32, 1, 0,
8204 0,
8205 20, MVT::i64,
8206 OPC_Scope, 8,
8207 OPC_CheckPatternPredicate, 9,
8208 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_U_SAT_F32),
8209 MVT::i64, 1, 0,
8210 8,
8211 OPC_CheckPatternPredicate, 10,
8212 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_UINT_I64_F32),
8213 MVT::i64, 1, 0,
8214 0,
8215 0,
8216 48,
8217 OPC_CheckChild0Type, MVT::f64,
8218 OPC_SwitchType , 20, MVT::i32,
8219 OPC_Scope, 8,
8220 OPC_CheckPatternPredicate, 9,
8221 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_U_SAT_F64),
8222 MVT::i32, 1, 0,
8223 8,
8224 OPC_CheckPatternPredicate, 10,
8225 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_UINT_I32_F64),
8226 MVT::i32, 1, 0,
8227 0,
8228 20, MVT::i64,
8229 OPC_Scope, 8,
8230 OPC_CheckPatternPredicate, 9,
8231 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_U_SAT_F64),
8232 MVT::i64, 1, 0,
8233 8,
8234 OPC_CheckPatternPredicate, 10,
8235 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FP_TO_UINT_I64_F64),
8236 MVT::i64, 1, 0,
8237 0,
8238 0,
8239 9,
8240 OPC_CheckType, MVT::v4i32,
8241 OPC_CheckPatternPredicate0,
8242 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::fp_to_uint_I32x4),
8243 MVT::v4i32, 1, 0,
8244 9,
8245 OPC_CheckType, MVT::v8i16,
8246 OPC_CheckPatternPredicate5,
8247 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::fp_to_uint_I16x8),
8248 MVT::v8i16, 1, 0,
8249 0,
8250 72, TARGET_VAL(ISD::FP_TO_SINT_SAT),
8251 OPC_RecordChild0,
8252 OPC_Scope, 27,
8253 OPC_CheckChild0Type, MVT::f32,
8254 OPC_MoveChild1,
8255 OPC_Scope, 10,
8256 OPC_CheckValueType, MVT::i32,
8257 OPC_MoveParent,
8258 OPC_CheckTypeI32,
8259 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_S_SAT_F32),
8260 MVT::i32, 1, 0,
8261 10,
8262 OPC_CheckValueType, MVT::i64,
8263 OPC_MoveParent,
8264 OPC_CheckTypeI64,
8265 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_S_SAT_F32),
8266 MVT::i64, 1, 0,
8267 0,
8268 27,
8269 OPC_CheckChild0Type, MVT::f64,
8270 OPC_MoveChild1,
8271 OPC_Scope, 10,
8272 OPC_CheckValueType, MVT::i32,
8273 OPC_MoveParent,
8274 OPC_CheckTypeI32,
8275 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_S_SAT_F64),
8276 MVT::i32, 1, 0,
8277 10,
8278 OPC_CheckValueType, MVT::i64,
8279 OPC_MoveParent,
8280 OPC_CheckTypeI64,
8281 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_S_SAT_F64),
8282 MVT::i64, 1, 0,
8283 0,
8284 12,
8285 OPC_MoveChild1,
8286 OPC_CheckValueType, MVT::i32,
8287 OPC_MoveParent,
8288 OPC_CheckType, MVT::v4i32,
8289 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::fp_to_sint_I32x4),
8290 MVT::v4i32, 1, 0,
8291 0,
8292 72, TARGET_VAL(ISD::FP_TO_UINT_SAT),
8293 OPC_RecordChild0,
8294 OPC_Scope, 27,
8295 OPC_CheckChild0Type, MVT::f32,
8296 OPC_MoveChild1,
8297 OPC_Scope, 10,
8298 OPC_CheckValueType, MVT::i32,
8299 OPC_MoveParent,
8300 OPC_CheckTypeI32,
8301 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_U_SAT_F32),
8302 MVT::i32, 1, 0,
8303 10,
8304 OPC_CheckValueType, MVT::i64,
8305 OPC_MoveParent,
8306 OPC_CheckTypeI64,
8307 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_U_SAT_F32),
8308 MVT::i64, 1, 0,
8309 0,
8310 27,
8311 OPC_CheckChild0Type, MVT::f64,
8312 OPC_MoveChild1,
8313 OPC_Scope, 10,
8314 OPC_CheckValueType, MVT::i32,
8315 OPC_MoveParent,
8316 OPC_CheckTypeI32,
8317 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_TRUNC_U_SAT_F64),
8318 MVT::i32, 1, 0,
8319 10,
8320 OPC_CheckValueType, MVT::i64,
8321 OPC_MoveParent,
8322 OPC_CheckTypeI64,
8323 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_TRUNC_U_SAT_F64),
8324 MVT::i64, 1, 0,
8325 0,
8326 12,
8327 OPC_MoveChild1,
8328 OPC_CheckValueType, MVT::i32,
8329 OPC_MoveParent,
8330 OPC_CheckType, MVT::v4i32,
8331 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::fp_to_uint_I32x4),
8332 MVT::v4i32, 1, 0,
8333 0,
8334 95|128,1, TARGET_VAL(ISD::BITCAST),
8335 OPC_RecordChild0,
8336 OPC_Scope, 9,
8337 OPC_CheckChild0Type, MVT::f32,
8338 OPC_CheckTypeI32,
8339 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I32_REINTERPRET_F32),
8340 MVT::i32, 1, 0,
8341 9,
8342 OPC_CheckChild0Type, MVT::f64,
8343 OPC_CheckTypeI64,
8344 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::I64_REINTERPRET_F64),
8345 MVT::i64, 1, 0,
8346 9,
8347 OPC_CheckChild0TypeI32,
8348 OPC_CheckType, MVT::f32,
8349 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F32_REINTERPRET_I32),
8350 MVT::f32, 1, 0,
8351 9,
8352 OPC_CheckChild0TypeI64,
8353 OPC_CheckType, MVT::f64,
8354 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F64_REINTERPRET_I64),
8355 MVT::f64, 1, 0,
8356 29,
8357 OPC_CheckChild0Type, MVT::v8i16,
8358 OPC_SwitchType , 3, MVT::v16i8,
8359 OPC_CompleteMatch, 1, 0,
8360
8361 3, MVT::v4i32,
8362 OPC_CompleteMatch, 1, 0,
8363
8364 3, MVT::v2i64,
8365 OPC_CompleteMatch, 1, 0,
8366
8367 3, MVT::v4f32,
8368 OPC_CompleteMatch, 1, 0,
8369
8370 3, MVT::v2f64,
8371 OPC_CompleteMatch, 1, 0,
8372
8373 0,
8374 29,
8375 OPC_CheckChild0Type, MVT::v4i32,
8376 OPC_SwitchType , 3, MVT::v16i8,
8377 OPC_CompleteMatch, 1, 0,
8378
8379 3, MVT::v8i16,
8380 OPC_CompleteMatch, 1, 0,
8381
8382 3, MVT::v2i64,
8383 OPC_CompleteMatch, 1, 0,
8384
8385 3, MVT::v4f32,
8386 OPC_CompleteMatch, 1, 0,
8387
8388 3, MVT::v2f64,
8389 OPC_CompleteMatch, 1, 0,
8390
8391 0,
8392 29,
8393 OPC_CheckChild0Type, MVT::v2i64,
8394 OPC_SwitchType , 3, MVT::v16i8,
8395 OPC_CompleteMatch, 1, 0,
8396
8397 3, MVT::v8i16,
8398 OPC_CompleteMatch, 1, 0,
8399
8400 3, MVT::v4i32,
8401 OPC_CompleteMatch, 1, 0,
8402
8403 3, MVT::v4f32,
8404 OPC_CompleteMatch, 1, 0,
8405
8406 3, MVT::v2f64,
8407 OPC_CompleteMatch, 1, 0,
8408
8409 0,
8410 29,
8411 OPC_CheckChild0Type, MVT::v4f32,
8412 OPC_SwitchType , 3, MVT::v16i8,
8413 OPC_CompleteMatch, 1, 0,
8414
8415 3, MVT::v8i16,
8416 OPC_CompleteMatch, 1, 0,
8417
8418 3, MVT::v4i32,
8419 OPC_CompleteMatch, 1, 0,
8420
8421 3, MVT::v2i64,
8422 OPC_CompleteMatch, 1, 0,
8423
8424 3, MVT::v2f64,
8425 OPC_CompleteMatch, 1, 0,
8426
8427 0,
8428 29,
8429 OPC_CheckChild0Type, MVT::v2f64,
8430 OPC_SwitchType , 3, MVT::v16i8,
8431 OPC_CompleteMatch, 1, 0,
8432
8433 3, MVT::v8i16,
8434 OPC_CompleteMatch, 1, 0,
8435
8436 3, MVT::v4i32,
8437 OPC_CompleteMatch, 1, 0,
8438
8439 3, MVT::v2i64,
8440 OPC_CompleteMatch, 1, 0,
8441
8442 3, MVT::v4f32,
8443 OPC_CompleteMatch, 1, 0,
8444
8445 0,
8446 29,
8447 OPC_CheckChild0Type, MVT::v16i8,
8448 OPC_SwitchType , 3, MVT::v8i16,
8449 OPC_CompleteMatch, 1, 0,
8450
8451 3, MVT::v4i32,
8452 OPC_CompleteMatch, 1, 0,
8453
8454 3, MVT::v2i64,
8455 OPC_CompleteMatch, 1, 0,
8456
8457 3, MVT::v4f32,
8458 OPC_CompleteMatch, 1, 0,
8459
8460 3, MVT::v2f64,
8461 OPC_CompleteMatch, 1, 0,
8462
8463 0,
8464 0,
8465 21, TARGET_VAL(ISD::ConstantFP),
8466 OPC_RecordNode,
8467 OPC_SwitchType , 7, MVT::f32,
8468 OPC_EmitConvertToTarget0,
8469 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_F32),
8470 MVT::f32, 1, 1,
8471 7, MVT::f64,
8472 OPC_EmitConvertToTarget0,
8473 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_F64),
8474 MVT::f64, 1, 1,
8475 0,
8476 63, TARGET_VAL(ISD::SINT_TO_FP),
8477 OPC_RecordChild0,
8478 OPC_Scope, 19,
8479 OPC_CheckChild0TypeI32,
8480 OPC_SwitchType , 6, MVT::f32,
8481 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F32_CONVERT_S_I32),
8482 MVT::f32, 1, 0,
8483 6, MVT::f64,
8484 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F64_CONVERT_S_I32),
8485 MVT::f64, 1, 0,
8486 0,
8487 19,
8488 OPC_CheckChild0TypeI64,
8489 OPC_SwitchType , 6, MVT::f32,
8490 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F32_CONVERT_S_I64),
8491 MVT::f32, 1, 0,
8492 6, MVT::f64,
8493 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F64_CONVERT_S_I64),
8494 MVT::f64, 1, 0,
8495 0,
8496 9,
8497 OPC_CheckType, MVT::v4f32,
8498 OPC_CheckPatternPredicate0,
8499 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::sint_to_fp_F32x4),
8500 MVT::v4f32, 1, 0,
8501 9,
8502 OPC_CheckType, MVT::v8f16,
8503 OPC_CheckPatternPredicate5,
8504 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::sint_to_fp_F16x8),
8505 MVT::v8f16, 1, 0,
8506 0,
8507 63, TARGET_VAL(ISD::UINT_TO_FP),
8508 OPC_RecordChild0,
8509 OPC_Scope, 19,
8510 OPC_CheckChild0TypeI32,
8511 OPC_SwitchType , 6, MVT::f32,
8512 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F32_CONVERT_U_I32),
8513 MVT::f32, 1, 0,
8514 6, MVT::f64,
8515 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F64_CONVERT_U_I32),
8516 MVT::f64, 1, 0,
8517 0,
8518 19,
8519 OPC_CheckChild0TypeI64,
8520 OPC_SwitchType , 6, MVT::f32,
8521 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F32_CONVERT_U_I64),
8522 MVT::f32, 1, 0,
8523 6, MVT::f64,
8524 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F64_CONVERT_U_I64),
8525 MVT::f64, 1, 0,
8526 0,
8527 9,
8528 OPC_CheckType, MVT::v4f32,
8529 OPC_CheckPatternPredicate0,
8530 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::uint_to_fp_F32x4),
8531 MVT::v4f32, 1, 0,
8532 9,
8533 OPC_CheckType, MVT::v8f16,
8534 OPC_CheckPatternPredicate5,
8535 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::uint_to_fp_F16x8),
8536 MVT::v8f16, 1, 0,
8537 0,
8538 7, TARGET_VAL(ISD::FP_EXTEND),
8539 OPC_RecordChild0,
8540 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F64_PROMOTE_F32),
8541 MVT::f64, 1, 0,
8542 7, TARGET_VAL(ISD::FP_ROUND),
8543 OPC_RecordChild0,
8544 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::F32_DEMOTE_F64),
8545 MVT::f32, 1, 0,
8546 52, TARGET_VAL(ISD::FADD),
8547 OPC_RecordChild0,
8548 OPC_RecordChild1,
8549 OPC_SwitchType , 7, MVT::f32,
8550 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_F32),
8551 MVT::f32, 2, 0, 1,
8552 7, MVT::f64,
8553 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_F64),
8554 MVT::f64, 2, 0, 1,
8555 8, MVT::v4f32,
8556 OPC_CheckPatternPredicate0,
8557 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_F32x4),
8558 MVT::v4f32, 2, 0, 1,
8559 8, MVT::v2f64,
8560 OPC_CheckPatternPredicate0,
8561 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_F64x2),
8562 MVT::v2f64, 2, 0, 1,
8563 8, MVT::v8f16,
8564 OPC_CheckPatternPredicate5,
8565 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_F16x8),
8566 MVT::v8f16, 2, 0, 1,
8567 0,
8568 52, TARGET_VAL(ISD::FSUB),
8569 OPC_RecordChild0,
8570 OPC_RecordChild1,
8571 OPC_SwitchType , 7, MVT::f32,
8572 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_F32),
8573 MVT::f32, 2, 0, 1,
8574 7, MVT::f64,
8575 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_F64),
8576 MVT::f64, 2, 0, 1,
8577 8, MVT::v4f32,
8578 OPC_CheckPatternPredicate0,
8579 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_F32x4),
8580 MVT::v4f32, 2, 0, 1,
8581 8, MVT::v2f64,
8582 OPC_CheckPatternPredicate0,
8583 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_F64x2),
8584 MVT::v2f64, 2, 0, 1,
8585 8, MVT::v8f16,
8586 OPC_CheckPatternPredicate5,
8587 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SUB_F16x8),
8588 MVT::v8f16, 2, 0, 1,
8589 0,
8590 52, TARGET_VAL(ISD::FMUL),
8591 OPC_RecordChild0,
8592 OPC_RecordChild1,
8593 OPC_SwitchType , 7, MVT::f32,
8594 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_F32),
8595 MVT::f32, 2, 0, 1,
8596 7, MVT::f64,
8597 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_F64),
8598 MVT::f64, 2, 0, 1,
8599 8, MVT::v4f32,
8600 OPC_CheckPatternPredicate0,
8601 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_F32x4),
8602 MVT::v4f32, 2, 0, 1,
8603 8, MVT::v2f64,
8604 OPC_CheckPatternPredicate0,
8605 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_F64x2),
8606 MVT::v2f64, 2, 0, 1,
8607 8, MVT::v8f16,
8608 OPC_CheckPatternPredicate5,
8609 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MUL_F16x8),
8610 MVT::v8f16, 2, 0, 1,
8611 0,
8612 52, TARGET_VAL(ISD::FDIV),
8613 OPC_RecordChild0,
8614 OPC_RecordChild1,
8615 OPC_SwitchType , 7, MVT::f32,
8616 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_F32),
8617 MVT::f32, 2, 0, 1,
8618 7, MVT::f64,
8619 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_F64),
8620 MVT::f64, 2, 0, 1,
8621 8, MVT::v4f32,
8622 OPC_CheckPatternPredicate0,
8623 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_F32x4),
8624 MVT::v4f32, 2, 0, 1,
8625 8, MVT::v2f64,
8626 OPC_CheckPatternPredicate0,
8627 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_F64x2),
8628 MVT::v2f64, 2, 0, 1,
8629 8, MVT::v8f16,
8630 OPC_CheckPatternPredicate5,
8631 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::DIV_F16x8),
8632 MVT::v8f16, 2, 0, 1,
8633 0,
8634 46, TARGET_VAL(ISD::FSQRT),
8635 OPC_RecordChild0,
8636 OPC_SwitchType , 6, MVT::f32,
8637 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SQRT_F32),
8638 MVT::f32, 1, 0,
8639 6, MVT::f64,
8640 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SQRT_F64),
8641 MVT::f64, 1, 0,
8642 7, MVT::v4f32,
8643 OPC_CheckPatternPredicate0,
8644 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SQRT_F32x4),
8645 MVT::v4f32, 1, 0,
8646 7, MVT::v2f64,
8647 OPC_CheckPatternPredicate0,
8648 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SQRT_F64x2),
8649 MVT::v2f64, 1, 0,
8650 7, MVT::v8f16,
8651 OPC_CheckPatternPredicate5,
8652 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SQRT_F16x8),
8653 MVT::v8f16, 1, 0,
8654 0,
8655 46, TARGET_VAL(ISD::FABS),
8656 OPC_RecordChild0,
8657 OPC_SwitchType , 6, MVT::f32,
8658 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_F32),
8659 MVT::f32, 1, 0,
8660 6, MVT::f64,
8661 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_F64),
8662 MVT::f64, 1, 0,
8663 7, MVT::v4f32,
8664 OPC_CheckPatternPredicate0,
8665 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_F32x4),
8666 MVT::v4f32, 1, 0,
8667 7, MVT::v2f64,
8668 OPC_CheckPatternPredicate0,
8669 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_F64x2),
8670 MVT::v2f64, 1, 0,
8671 7, MVT::v8f16,
8672 OPC_CheckPatternPredicate5,
8673 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_F16x8),
8674 MVT::v8f16, 1, 0,
8675 0,
8676 46, TARGET_VAL(ISD::FNEG),
8677 OPC_RecordChild0,
8678 OPC_SwitchType , 6, MVT::f32,
8679 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_F32),
8680 MVT::f32, 1, 0,
8681 6, MVT::f64,
8682 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_F64),
8683 MVT::f64, 1, 0,
8684 7, MVT::v4f32,
8685 OPC_CheckPatternPredicate0,
8686 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_F32x4),
8687 MVT::v4f32, 1, 0,
8688 7, MVT::v2f64,
8689 OPC_CheckPatternPredicate0,
8690 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_F64x2),
8691 MVT::v2f64, 1, 0,
8692 7, MVT::v8f16,
8693 OPC_CheckPatternPredicate5,
8694 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEG_F16x8),
8695 MVT::v8f16, 1, 0,
8696 0,
8697 62, TARGET_VAL(ISD::FCOPYSIGN),
8698 OPC_RecordChild0,
8699 OPC_RecordChild1,
8700 OPC_Scope, 28,
8701 OPC_CheckChild1Type, MVT::f32,
8702 OPC_SwitchType , 7, MVT::f32,
8703 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::COPYSIGN_F32),
8704 MVT::f32, 2, 0, 1,
8705 13, MVT::f64,
8706 OPC_EmitNode1None, TARGET_VAL(WebAssembly::F64_PROMOTE_F32),
8707 MVT::f64, 1, 1,
8708 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::COPYSIGN_F64),
8709 MVT::f64, 2, 0, 2,
8710 0,
8711 28,
8712 OPC_CheckChild1Type, MVT::f64,
8713 OPC_SwitchType , 7, MVT::f64,
8714 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::COPYSIGN_F64),
8715 MVT::f64, 2, 0, 1,
8716 13, MVT::f32,
8717 OPC_EmitNode1None, TARGET_VAL(WebAssembly::F32_DEMOTE_F64),
8718 MVT::f32, 1, 1,
8719 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::COPYSIGN_F32),
8720 MVT::f32, 2, 0, 2,
8721 0,
8722 0,
8723 52, TARGET_VAL(ISD::FMINIMUM),
8724 OPC_RecordChild0,
8725 OPC_RecordChild1,
8726 OPC_SwitchType , 7, MVT::f32,
8727 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_F32),
8728 MVT::f32, 2, 0, 1,
8729 7, MVT::f64,
8730 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_F64),
8731 MVT::f64, 2, 0, 1,
8732 8, MVT::v4f32,
8733 OPC_CheckPatternPredicate0,
8734 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_F32x4),
8735 MVT::v4f32, 2, 0, 1,
8736 8, MVT::v2f64,
8737 OPC_CheckPatternPredicate0,
8738 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_F64x2),
8739 MVT::v2f64, 2, 0, 1,
8740 8, MVT::v8f16,
8741 OPC_CheckPatternPredicate5,
8742 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_F16x8),
8743 MVT::v8f16, 2, 0, 1,
8744 0,
8745 52, TARGET_VAL(ISD::FMAXIMUM),
8746 OPC_RecordChild0,
8747 OPC_RecordChild1,
8748 OPC_SwitchType , 7, MVT::f32,
8749 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_F32),
8750 MVT::f32, 2, 0, 1,
8751 7, MVT::f64,
8752 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_F64),
8753 MVT::f64, 2, 0, 1,
8754 8, MVT::v4f32,
8755 OPC_CheckPatternPredicate0,
8756 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_F32x4),
8757 MVT::v4f32, 2, 0, 1,
8758 8, MVT::v2f64,
8759 OPC_CheckPatternPredicate0,
8760 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_F64x2),
8761 MVT::v2f64, 2, 0, 1,
8762 8, MVT::v8f16,
8763 OPC_CheckPatternPredicate5,
8764 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_F16x8),
8765 MVT::v8f16, 2, 0, 1,
8766 0,
8767 46, TARGET_VAL(ISD::FCEIL),
8768 OPC_RecordChild0,
8769 OPC_SwitchType , 6, MVT::f32,
8770 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CEIL_F32),
8771 MVT::f32, 1, 0,
8772 6, MVT::f64,
8773 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CEIL_F64),
8774 MVT::f64, 1, 0,
8775 7, MVT::v4f32,
8776 OPC_CheckPatternPredicate0,
8777 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CEIL_F32x4),
8778 MVT::v4f32, 1, 0,
8779 7, MVT::v2f64,
8780 OPC_CheckPatternPredicate0,
8781 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CEIL_F64x2),
8782 MVT::v2f64, 1, 0,
8783 7, MVT::v8f16,
8784 OPC_CheckPatternPredicate5,
8785 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CEIL_F16x8),
8786 MVT::v8f16, 1, 0,
8787 0,
8788 46, TARGET_VAL(ISD::FFLOOR),
8789 OPC_RecordChild0,
8790 OPC_SwitchType , 6, MVT::f32,
8791 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FLOOR_F32),
8792 MVT::f32, 1, 0,
8793 6, MVT::f64,
8794 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FLOOR_F64),
8795 MVT::f64, 1, 0,
8796 7, MVT::v4f32,
8797 OPC_CheckPatternPredicate0,
8798 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FLOOR_F32x4),
8799 MVT::v4f32, 1, 0,
8800 7, MVT::v2f64,
8801 OPC_CheckPatternPredicate0,
8802 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FLOOR_F64x2),
8803 MVT::v2f64, 1, 0,
8804 7, MVT::v8f16,
8805 OPC_CheckPatternPredicate5,
8806 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::FLOOR_F16x8),
8807 MVT::v8f16, 1, 0,
8808 0,
8809 46, TARGET_VAL(ISD::FTRUNC),
8810 OPC_RecordChild0,
8811 OPC_SwitchType , 6, MVT::f32,
8812 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::TRUNC_F32),
8813 MVT::f32, 1, 0,
8814 6, MVT::f64,
8815 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::TRUNC_F64),
8816 MVT::f64, 1, 0,
8817 7, MVT::v4f32,
8818 OPC_CheckPatternPredicate0,
8819 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::TRUNC_F32x4),
8820 MVT::v4f32, 1, 0,
8821 7, MVT::v2f64,
8822 OPC_CheckPatternPredicate0,
8823 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::TRUNC_F64x2),
8824 MVT::v2f64, 1, 0,
8825 7, MVT::v8f16,
8826 OPC_CheckPatternPredicate5,
8827 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::TRUNC_F16x8),
8828 MVT::v8f16, 1, 0,
8829 0,
8830 46, TARGET_VAL(ISD::FNEARBYINT),
8831 OPC_RecordChild0,
8832 OPC_SwitchType , 6, MVT::f32,
8833 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F32),
8834 MVT::f32, 1, 0,
8835 6, MVT::f64,
8836 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F64),
8837 MVT::f64, 1, 0,
8838 7, MVT::v4f32,
8839 OPC_CheckPatternPredicate0,
8840 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F32x4),
8841 MVT::v4f32, 1, 0,
8842 7, MVT::v2f64,
8843 OPC_CheckPatternPredicate0,
8844 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F64x2),
8845 MVT::v2f64, 1, 0,
8846 7, MVT::v8f16,
8847 OPC_CheckPatternPredicate5,
8848 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F16x8),
8849 MVT::v8f16, 1, 0,
8850 0,
8851 43, TARGET_VAL(ISD::FRINT),
8852 OPC_RecordChild0,
8853 OPC_SwitchType , 6, MVT::f32,
8854 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F32),
8855 MVT::f32, 1, 0,
8856 6, MVT::f64,
8857 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F64),
8858 MVT::f64, 1, 0,
8859 6, MVT::v4f32,
8860 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F32x4),
8861 MVT::v4f32, 1, 0,
8862 6, MVT::v2f64,
8863 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F64x2),
8864 MVT::v2f64, 1, 0,
8865 6, MVT::v8f16,
8866 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F16x8),
8867 MVT::v8f16, 1, 0,
8868 0,
8869 43, TARGET_VAL(ISD::FROUNDEVEN),
8870 OPC_RecordChild0,
8871 OPC_SwitchType , 6, MVT::f32,
8872 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F32),
8873 MVT::f32, 1, 0,
8874 6, MVT::f64,
8875 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F64),
8876 MVT::f64, 1, 0,
8877 6, MVT::v4f32,
8878 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F32x4),
8879 MVT::v4f32, 1, 0,
8880 6, MVT::v2f64,
8881 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F64x2),
8882 MVT::v2f64, 1, 0,
8883 6, MVT::v8f16,
8884 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NEAREST_F16x8),
8885 MVT::v8f16, 1, 0,
8886 0,
8887 20|128,3, TARGET_VAL(ISD::BUILD_VECTOR),
8888 OPC_RecordChild0,
8889 OPC_MoveChild0,
8890 OPC_SwitchOpcode , 73|128,2, TARGET_VAL(ISD::Constant),
8891 OPC_SwitchType , 47|128,2, MVT::i32,
8892 OPC_Scope, 51|128,1,
8893 OPC_CheckPredicate, 8,
8894 OPC_MoveSibling1,
8895 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8896 OPC_RecordNode,
8897 OPC_CheckPredicate, 8,
8898 OPC_CheckTypeI32,
8899 OPC_MoveSibling2,
8900 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8901 OPC_RecordNode,
8902 OPC_CheckPredicate, 8,
8903 OPC_CheckTypeI32,
8904 OPC_MoveSibling3,
8905 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8906 OPC_RecordNode,
8907 OPC_CheckPredicate, 8,
8908 OPC_CheckTypeI32,
8909 OPC_MoveSibling4,
8910 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8911 OPC_RecordNode,
8912 OPC_CheckPredicate, 8,
8913 OPC_CheckTypeI32,
8914 OPC_MoveSibling5,
8915 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8916 OPC_RecordNode,
8917 OPC_CheckPredicate, 8,
8918 OPC_CheckTypeI32,
8919 OPC_MoveSibling6,
8920 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8921 OPC_RecordNode,
8922 OPC_CheckPredicate, 8,
8923 OPC_CheckTypeI32,
8924 OPC_MoveSibling7,
8925 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8926 OPC_RecordNode,
8927 OPC_CheckPredicate, 8,
8928 OPC_CheckTypeI32,
8929 OPC_MoveSibling, 8,
8930 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8931 OPC_RecordNode,
8932 OPC_CheckPredicate, 8,
8933 OPC_CheckTypeI32,
8934 OPC_MoveSibling, 9,
8935 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8936 OPC_RecordNode,
8937 OPC_CheckPredicate, 8,
8938 OPC_CheckTypeI32,
8939 OPC_MoveSibling, 10,
8940 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8941 OPC_RecordNode,
8942 OPC_CheckPredicate, 8,
8943 OPC_CheckTypeI32,
8944 OPC_MoveSibling, 11,
8945 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8946 OPC_RecordNode,
8947 OPC_CheckPredicate, 8,
8948 OPC_CheckTypeI32,
8949 OPC_MoveSibling, 12,
8950 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8951 OPC_RecordNode,
8952 OPC_CheckPredicate, 8,
8953 OPC_CheckTypeI32,
8954 OPC_MoveSibling, 13,
8955 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8956 OPC_RecordNode,
8957 OPC_CheckPredicate, 8,
8958 OPC_CheckTypeI32,
8959 OPC_MoveSibling, 14,
8960 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8961 OPC_RecordNode,
8962 OPC_CheckPredicate, 8,
8963 OPC_CheckTypeI32,
8964 OPC_MoveSibling, 15,
8965 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8966 OPC_RecordNode,
8967 OPC_CheckPredicate, 8,
8968 OPC_CheckTypeI32,
8969 OPC_MoveParent,
8970 OPC_CheckType, MVT::v16i8,
8971 OPC_CheckPatternPredicate0,
8972 OPC_EmitConvertToTarget0,
8973 OPC_EmitConvertToTarget1,
8974 OPC_EmitConvertToTarget2,
8975 OPC_EmitConvertToTarget3,
8976 OPC_EmitConvertToTarget4,
8977 OPC_EmitConvertToTarget5,
8978 OPC_EmitConvertToTarget6,
8979 OPC_EmitConvertToTarget7,
8980 OPC_EmitConvertToTarget, 8,
8981 OPC_EmitConvertToTarget, 9,
8982 OPC_EmitConvertToTarget, 10,
8983 OPC_EmitConvertToTarget, 11,
8984 OPC_EmitConvertToTarget, 12,
8985 OPC_EmitConvertToTarget, 13,
8986 OPC_EmitConvertToTarget, 14,
8987 OPC_EmitConvertToTarget, 15,
8988 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I8x16),
8989 MVT::v16i8, 16, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
8990 83,
8991 OPC_CheckPredicate, 15,
8992 OPC_MoveSibling1,
8993 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8994 OPC_RecordNode,
8995 OPC_CheckPredicate, 15,
8996 OPC_CheckTypeI32,
8997 OPC_MoveSibling2,
8998 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8999 OPC_RecordNode,
9000 OPC_CheckPredicate, 15,
9001 OPC_CheckTypeI32,
9002 OPC_MoveSibling3,
9003 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9004 OPC_RecordNode,
9005 OPC_CheckPredicate, 15,
9006 OPC_CheckTypeI32,
9007 OPC_MoveSibling4,
9008 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9009 OPC_RecordNode,
9010 OPC_CheckPredicate, 15,
9011 OPC_CheckTypeI32,
9012 OPC_MoveSibling5,
9013 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9014 OPC_RecordNode,
9015 OPC_CheckPredicate, 15,
9016 OPC_CheckTypeI32,
9017 OPC_MoveSibling6,
9018 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9019 OPC_RecordNode,
9020 OPC_CheckPredicate, 15,
9021 OPC_CheckTypeI32,
9022 OPC_MoveSibling7,
9023 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9024 OPC_RecordNode,
9025 OPC_CheckPredicate, 15,
9026 OPC_CheckTypeI32,
9027 OPC_MoveParent,
9028 OPC_CheckType, MVT::v8i16,
9029 OPC_CheckPatternPredicate0,
9030 OPC_EmitConvertToTarget0,
9031 OPC_EmitConvertToTarget1,
9032 OPC_EmitConvertToTarget2,
9033 OPC_EmitConvertToTarget3,
9034 OPC_EmitConvertToTarget4,
9035 OPC_EmitConvertToTarget5,
9036 OPC_EmitConvertToTarget6,
9037 OPC_EmitConvertToTarget7,
9038 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I16x8),
9039 MVT::v8i16, 8, 8, 9, 10, 11, 12, 13, 14, 15,
9040 35,
9041 OPC_MoveSibling1,
9042 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9043 OPC_RecordNode,
9044 OPC_CheckTypeI32,
9045 OPC_MoveSibling2,
9046 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9047 OPC_RecordNode,
9048 OPC_CheckTypeI32,
9049 OPC_MoveSibling3,
9050 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9051 OPC_RecordNode,
9052 OPC_CheckTypeI32,
9053 OPC_MoveParent,
9054 OPC_CheckType, MVT::v4i32,
9055 OPC_CheckPatternPredicate0,
9056 OPC_EmitConvertToTarget0,
9057 OPC_EmitConvertToTarget1,
9058 OPC_EmitConvertToTarget2,
9059 OPC_EmitConvertToTarget3,
9060 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I32x4),
9061 MVT::v4i32, 4, 4, 5, 6, 7,
9062 0,
9063 19, MVT::i64,
9064 OPC_MoveSibling1,
9065 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9066 OPC_RecordNode,
9067 OPC_CheckTypeI64,
9068 OPC_MoveParent,
9069 OPC_CheckType, MVT::v2i64,
9070 OPC_CheckPatternPredicate0,
9071 OPC_EmitConvertToTarget0,
9072 OPC_EmitConvertToTarget1,
9073 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I64x2),
9074 MVT::v2i64, 2, 2, 3,
9075 0,
9076 64, TARGET_VAL(ISD::ConstantFP),
9077 OPC_SwitchType , 38, MVT::f32,
9078 OPC_MoveSibling1,
9079 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
9080 OPC_RecordNode,
9081 OPC_CheckType, MVT::f32,
9082 OPC_MoveSibling2,
9083 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
9084 OPC_RecordNode,
9085 OPC_CheckType, MVT::f32,
9086 OPC_MoveSibling3,
9087 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
9088 OPC_RecordNode,
9089 OPC_CheckType, MVT::f32,
9090 OPC_MoveParent,
9091 OPC_CheckType, MVT::v4f32,
9092 OPC_CheckPatternPredicate0,
9093 OPC_EmitConvertToTarget0,
9094 OPC_EmitConvertToTarget1,
9095 OPC_EmitConvertToTarget2,
9096 OPC_EmitConvertToTarget3,
9097 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_F32x4),
9098 MVT::v4f32, 4, 4, 5, 6, 7,
9099 20, MVT::f64,
9100 OPC_MoveSibling1,
9101 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
9102 OPC_RecordNode,
9103 OPC_CheckType, MVT::f64,
9104 OPC_MoveParent,
9105 OPC_CheckType, MVT::v2f64,
9106 OPC_CheckPatternPredicate0,
9107 OPC_EmitConvertToTarget0,
9108 OPC_EmitConvertToTarget1,
9109 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_F64x2),
9110 MVT::v2f64, 2, 2, 3,
9111 0,
9112 0,
9113 1|128,16, TARGET_VAL(WebAssemblyISD::SHUFFLE),
9114 OPC_RecordChild0,
9115 OPC_Scope, 83|128,2,
9116 OPC_CheckChild0Type, MVT::v16i8,
9117 OPC_RecordChild1,
9118 OPC_CheckChild1Type, MVT::v16i8,
9119 OPC_RecordChild2,
9120 OPC_MoveChild2,
9121 OPC_SwitchOpcode , 41|128,1, TARGET_VAL(ISD::Constant),
9122 OPC_CheckPredicate0,
9123 OPC_CheckTypeI32,
9124 OPC_MoveSibling3,
9125 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9126 OPC_RecordNode,
9127 OPC_CheckPredicate0,
9128 OPC_CheckTypeI32,
9129 OPC_MoveSibling4,
9130 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9131 OPC_RecordNode,
9132 OPC_CheckPredicate0,
9133 OPC_CheckTypeI32,
9134 OPC_MoveSibling5,
9135 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9136 OPC_RecordNode,
9137 OPC_CheckPredicate0,
9138 OPC_CheckTypeI32,
9139 OPC_MoveSibling6,
9140 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9141 OPC_RecordNode,
9142 OPC_CheckPredicate0,
9143 OPC_CheckTypeI32,
9144 OPC_MoveSibling7,
9145 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9146 OPC_RecordNode,
9147 OPC_CheckPredicate0,
9148 OPC_CheckTypeI32,
9149 OPC_MoveSibling, 8,
9150 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9151 OPC_RecordNode,
9152 OPC_CheckPredicate0,
9153 OPC_CheckTypeI32,
9154 OPC_MoveSibling, 9,
9155 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9156 OPC_RecordNode,
9157 OPC_CheckPredicate0,
9158 OPC_CheckTypeI32,
9159 OPC_MoveSibling, 10,
9160 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9161 OPC_RecordNode,
9162 OPC_CheckPredicate0,
9163 OPC_CheckTypeI32,
9164 OPC_MoveSibling, 11,
9165 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9166 OPC_RecordNode,
9167 OPC_CheckPredicate0,
9168 OPC_CheckTypeI32,
9169 OPC_MoveSibling, 12,
9170 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9171 OPC_RecordNode,
9172 OPC_CheckPredicate0,
9173 OPC_CheckTypeI32,
9174 OPC_MoveSibling, 13,
9175 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9176 OPC_RecordNode,
9177 OPC_CheckPredicate0,
9178 OPC_CheckTypeI32,
9179 OPC_MoveSibling, 14,
9180 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9181 OPC_RecordNode,
9182 OPC_CheckPredicate0,
9183 OPC_CheckTypeI32,
9184 OPC_MoveSibling, 15,
9185 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9186 OPC_RecordNode,
9187 OPC_CheckPredicate0,
9188 OPC_CheckTypeI32,
9189 OPC_MoveSibling, 16,
9190 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9191 OPC_RecordNode,
9192 OPC_CheckPredicate0,
9193 OPC_CheckTypeI32,
9194 OPC_MoveSibling, 17,
9195 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9196 OPC_RecordNode,
9197 OPC_CheckPredicate0,
9198 OPC_CheckTypeI32,
9199 OPC_MoveParent,
9200 OPC_CheckType, MVT::v16i8,
9201 OPC_EmitConvertToTarget2,
9202 OPC_EmitConvertToTarget3,
9203 OPC_EmitConvertToTarget4,
9204 OPC_EmitConvertToTarget5,
9205 OPC_EmitConvertToTarget6,
9206 OPC_EmitConvertToTarget7,
9207 OPC_EmitConvertToTarget, 8,
9208 OPC_EmitConvertToTarget, 9,
9209 OPC_EmitConvertToTarget, 10,
9210 OPC_EmitConvertToTarget, 11,
9211 OPC_EmitConvertToTarget, 12,
9212 OPC_EmitConvertToTarget, 13,
9213 OPC_EmitConvertToTarget, 14,
9214 OPC_EmitConvertToTarget, 15,
9215 OPC_EmitConvertToTarget, 16,
9216 OPC_EmitConvertToTarget, 17,
9217 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9218 MVT::v16i8, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9219 25|128,1, TARGET_VAL(ISD::TargetConstant),
9220 OPC_CheckTypeI32,
9221 OPC_MoveSibling3,
9222 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9223 OPC_RecordNode,
9224 OPC_CheckTypeI32,
9225 OPC_MoveSibling4,
9226 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9227 OPC_RecordNode,
9228 OPC_CheckTypeI32,
9229 OPC_MoveSibling5,
9230 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9231 OPC_RecordNode,
9232 OPC_CheckTypeI32,
9233 OPC_MoveSibling6,
9234 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9235 OPC_RecordNode,
9236 OPC_CheckTypeI32,
9237 OPC_MoveSibling7,
9238 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9239 OPC_RecordNode,
9240 OPC_CheckTypeI32,
9241 OPC_MoveSibling, 8,
9242 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9243 OPC_RecordNode,
9244 OPC_CheckTypeI32,
9245 OPC_MoveSibling, 9,
9246 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9247 OPC_RecordNode,
9248 OPC_CheckTypeI32,
9249 OPC_MoveSibling, 10,
9250 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9251 OPC_RecordNode,
9252 OPC_CheckTypeI32,
9253 OPC_MoveSibling, 11,
9254 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9255 OPC_RecordNode,
9256 OPC_CheckTypeI32,
9257 OPC_MoveSibling, 12,
9258 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9259 OPC_RecordNode,
9260 OPC_CheckTypeI32,
9261 OPC_MoveSibling, 13,
9262 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9263 OPC_RecordNode,
9264 OPC_CheckTypeI32,
9265 OPC_MoveSibling, 14,
9266 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9267 OPC_RecordNode,
9268 OPC_CheckTypeI32,
9269 OPC_MoveSibling, 15,
9270 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9271 OPC_RecordNode,
9272 OPC_CheckTypeI32,
9273 OPC_MoveSibling, 16,
9274 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9275 OPC_RecordNode,
9276 OPC_CheckTypeI32,
9277 OPC_MoveSibling, 17,
9278 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9279 OPC_RecordNode,
9280 OPC_CheckTypeI32,
9281 OPC_MoveParent,
9282 OPC_CheckType, MVT::v16i8,
9283 OPC_EmitConvertToTarget2,
9284 OPC_EmitConvertToTarget3,
9285 OPC_EmitConvertToTarget4,
9286 OPC_EmitConvertToTarget5,
9287 OPC_EmitConvertToTarget6,
9288 OPC_EmitConvertToTarget7,
9289 OPC_EmitConvertToTarget, 8,
9290 OPC_EmitConvertToTarget, 9,
9291 OPC_EmitConvertToTarget, 10,
9292 OPC_EmitConvertToTarget, 11,
9293 OPC_EmitConvertToTarget, 12,
9294 OPC_EmitConvertToTarget, 13,
9295 OPC_EmitConvertToTarget, 14,
9296 OPC_EmitConvertToTarget, 15,
9297 OPC_EmitConvertToTarget, 16,
9298 OPC_EmitConvertToTarget, 17,
9299 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9300 MVT::v16i8, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9301 0,
9302 83|128,2,
9303 OPC_CheckChild0Type, MVT::v8i16,
9304 OPC_RecordChild1,
9305 OPC_CheckChild1Type, MVT::v8i16,
9306 OPC_RecordChild2,
9307 OPC_MoveChild2,
9308 OPC_SwitchOpcode , 41|128,1, TARGET_VAL(ISD::Constant),
9309 OPC_CheckPredicate0,
9310 OPC_CheckTypeI32,
9311 OPC_MoveSibling3,
9312 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9313 OPC_RecordNode,
9314 OPC_CheckPredicate0,
9315 OPC_CheckTypeI32,
9316 OPC_MoveSibling4,
9317 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9318 OPC_RecordNode,
9319 OPC_CheckPredicate0,
9320 OPC_CheckTypeI32,
9321 OPC_MoveSibling5,
9322 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9323 OPC_RecordNode,
9324 OPC_CheckPredicate0,
9325 OPC_CheckTypeI32,
9326 OPC_MoveSibling6,
9327 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9328 OPC_RecordNode,
9329 OPC_CheckPredicate0,
9330 OPC_CheckTypeI32,
9331 OPC_MoveSibling7,
9332 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9333 OPC_RecordNode,
9334 OPC_CheckPredicate0,
9335 OPC_CheckTypeI32,
9336 OPC_MoveSibling, 8,
9337 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9338 OPC_RecordNode,
9339 OPC_CheckPredicate0,
9340 OPC_CheckTypeI32,
9341 OPC_MoveSibling, 9,
9342 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9343 OPC_RecordNode,
9344 OPC_CheckPredicate0,
9345 OPC_CheckTypeI32,
9346 OPC_MoveSibling, 10,
9347 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9348 OPC_RecordNode,
9349 OPC_CheckPredicate0,
9350 OPC_CheckTypeI32,
9351 OPC_MoveSibling, 11,
9352 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9353 OPC_RecordNode,
9354 OPC_CheckPredicate0,
9355 OPC_CheckTypeI32,
9356 OPC_MoveSibling, 12,
9357 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9358 OPC_RecordNode,
9359 OPC_CheckPredicate0,
9360 OPC_CheckTypeI32,
9361 OPC_MoveSibling, 13,
9362 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9363 OPC_RecordNode,
9364 OPC_CheckPredicate0,
9365 OPC_CheckTypeI32,
9366 OPC_MoveSibling, 14,
9367 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9368 OPC_RecordNode,
9369 OPC_CheckPredicate0,
9370 OPC_CheckTypeI32,
9371 OPC_MoveSibling, 15,
9372 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9373 OPC_RecordNode,
9374 OPC_CheckPredicate0,
9375 OPC_CheckTypeI32,
9376 OPC_MoveSibling, 16,
9377 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9378 OPC_RecordNode,
9379 OPC_CheckPredicate0,
9380 OPC_CheckTypeI32,
9381 OPC_MoveSibling, 17,
9382 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9383 OPC_RecordNode,
9384 OPC_CheckPredicate0,
9385 OPC_CheckTypeI32,
9386 OPC_MoveParent,
9387 OPC_CheckType, MVT::v8i16,
9388 OPC_EmitConvertToTarget2,
9389 OPC_EmitConvertToTarget3,
9390 OPC_EmitConvertToTarget4,
9391 OPC_EmitConvertToTarget5,
9392 OPC_EmitConvertToTarget6,
9393 OPC_EmitConvertToTarget7,
9394 OPC_EmitConvertToTarget, 8,
9395 OPC_EmitConvertToTarget, 9,
9396 OPC_EmitConvertToTarget, 10,
9397 OPC_EmitConvertToTarget, 11,
9398 OPC_EmitConvertToTarget, 12,
9399 OPC_EmitConvertToTarget, 13,
9400 OPC_EmitConvertToTarget, 14,
9401 OPC_EmitConvertToTarget, 15,
9402 OPC_EmitConvertToTarget, 16,
9403 OPC_EmitConvertToTarget, 17,
9404 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9405 MVT::v8i16, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9406 25|128,1, TARGET_VAL(ISD::TargetConstant),
9407 OPC_CheckTypeI32,
9408 OPC_MoveSibling3,
9409 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9410 OPC_RecordNode,
9411 OPC_CheckTypeI32,
9412 OPC_MoveSibling4,
9413 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9414 OPC_RecordNode,
9415 OPC_CheckTypeI32,
9416 OPC_MoveSibling5,
9417 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9418 OPC_RecordNode,
9419 OPC_CheckTypeI32,
9420 OPC_MoveSibling6,
9421 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9422 OPC_RecordNode,
9423 OPC_CheckTypeI32,
9424 OPC_MoveSibling7,
9425 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9426 OPC_RecordNode,
9427 OPC_CheckTypeI32,
9428 OPC_MoveSibling, 8,
9429 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9430 OPC_RecordNode,
9431 OPC_CheckTypeI32,
9432 OPC_MoveSibling, 9,
9433 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9434 OPC_RecordNode,
9435 OPC_CheckTypeI32,
9436 OPC_MoveSibling, 10,
9437 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9438 OPC_RecordNode,
9439 OPC_CheckTypeI32,
9440 OPC_MoveSibling, 11,
9441 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9442 OPC_RecordNode,
9443 OPC_CheckTypeI32,
9444 OPC_MoveSibling, 12,
9445 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9446 OPC_RecordNode,
9447 OPC_CheckTypeI32,
9448 OPC_MoveSibling, 13,
9449 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9450 OPC_RecordNode,
9451 OPC_CheckTypeI32,
9452 OPC_MoveSibling, 14,
9453 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9454 OPC_RecordNode,
9455 OPC_CheckTypeI32,
9456 OPC_MoveSibling, 15,
9457 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9458 OPC_RecordNode,
9459 OPC_CheckTypeI32,
9460 OPC_MoveSibling, 16,
9461 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9462 OPC_RecordNode,
9463 OPC_CheckTypeI32,
9464 OPC_MoveSibling, 17,
9465 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9466 OPC_RecordNode,
9467 OPC_CheckTypeI32,
9468 OPC_MoveParent,
9469 OPC_CheckType, MVT::v8i16,
9470 OPC_EmitConvertToTarget2,
9471 OPC_EmitConvertToTarget3,
9472 OPC_EmitConvertToTarget4,
9473 OPC_EmitConvertToTarget5,
9474 OPC_EmitConvertToTarget6,
9475 OPC_EmitConvertToTarget7,
9476 OPC_EmitConvertToTarget, 8,
9477 OPC_EmitConvertToTarget, 9,
9478 OPC_EmitConvertToTarget, 10,
9479 OPC_EmitConvertToTarget, 11,
9480 OPC_EmitConvertToTarget, 12,
9481 OPC_EmitConvertToTarget, 13,
9482 OPC_EmitConvertToTarget, 14,
9483 OPC_EmitConvertToTarget, 15,
9484 OPC_EmitConvertToTarget, 16,
9485 OPC_EmitConvertToTarget, 17,
9486 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9487 MVT::v8i16, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9488 0,
9489 83|128,2,
9490 OPC_CheckChild0Type, MVT::v4i32,
9491 OPC_RecordChild1,
9492 OPC_CheckChild1Type, MVT::v4i32,
9493 OPC_RecordChild2,
9494 OPC_MoveChild2,
9495 OPC_SwitchOpcode , 41|128,1, TARGET_VAL(ISD::Constant),
9496 OPC_CheckPredicate0,
9497 OPC_CheckTypeI32,
9498 OPC_MoveSibling3,
9499 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9500 OPC_RecordNode,
9501 OPC_CheckPredicate0,
9502 OPC_CheckTypeI32,
9503 OPC_MoveSibling4,
9504 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9505 OPC_RecordNode,
9506 OPC_CheckPredicate0,
9507 OPC_CheckTypeI32,
9508 OPC_MoveSibling5,
9509 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9510 OPC_RecordNode,
9511 OPC_CheckPredicate0,
9512 OPC_CheckTypeI32,
9513 OPC_MoveSibling6,
9514 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9515 OPC_RecordNode,
9516 OPC_CheckPredicate0,
9517 OPC_CheckTypeI32,
9518 OPC_MoveSibling7,
9519 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9520 OPC_RecordNode,
9521 OPC_CheckPredicate0,
9522 OPC_CheckTypeI32,
9523 OPC_MoveSibling, 8,
9524 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9525 OPC_RecordNode,
9526 OPC_CheckPredicate0,
9527 OPC_CheckTypeI32,
9528 OPC_MoveSibling, 9,
9529 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9530 OPC_RecordNode,
9531 OPC_CheckPredicate0,
9532 OPC_CheckTypeI32,
9533 OPC_MoveSibling, 10,
9534 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9535 OPC_RecordNode,
9536 OPC_CheckPredicate0,
9537 OPC_CheckTypeI32,
9538 OPC_MoveSibling, 11,
9539 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9540 OPC_RecordNode,
9541 OPC_CheckPredicate0,
9542 OPC_CheckTypeI32,
9543 OPC_MoveSibling, 12,
9544 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9545 OPC_RecordNode,
9546 OPC_CheckPredicate0,
9547 OPC_CheckTypeI32,
9548 OPC_MoveSibling, 13,
9549 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9550 OPC_RecordNode,
9551 OPC_CheckPredicate0,
9552 OPC_CheckTypeI32,
9553 OPC_MoveSibling, 14,
9554 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9555 OPC_RecordNode,
9556 OPC_CheckPredicate0,
9557 OPC_CheckTypeI32,
9558 OPC_MoveSibling, 15,
9559 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9560 OPC_RecordNode,
9561 OPC_CheckPredicate0,
9562 OPC_CheckTypeI32,
9563 OPC_MoveSibling, 16,
9564 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9565 OPC_RecordNode,
9566 OPC_CheckPredicate0,
9567 OPC_CheckTypeI32,
9568 OPC_MoveSibling, 17,
9569 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9570 OPC_RecordNode,
9571 OPC_CheckPredicate0,
9572 OPC_CheckTypeI32,
9573 OPC_MoveParent,
9574 OPC_CheckType, MVT::v4i32,
9575 OPC_EmitConvertToTarget2,
9576 OPC_EmitConvertToTarget3,
9577 OPC_EmitConvertToTarget4,
9578 OPC_EmitConvertToTarget5,
9579 OPC_EmitConvertToTarget6,
9580 OPC_EmitConvertToTarget7,
9581 OPC_EmitConvertToTarget, 8,
9582 OPC_EmitConvertToTarget, 9,
9583 OPC_EmitConvertToTarget, 10,
9584 OPC_EmitConvertToTarget, 11,
9585 OPC_EmitConvertToTarget, 12,
9586 OPC_EmitConvertToTarget, 13,
9587 OPC_EmitConvertToTarget, 14,
9588 OPC_EmitConvertToTarget, 15,
9589 OPC_EmitConvertToTarget, 16,
9590 OPC_EmitConvertToTarget, 17,
9591 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9592 MVT::v4i32, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9593 25|128,1, TARGET_VAL(ISD::TargetConstant),
9594 OPC_CheckTypeI32,
9595 OPC_MoveSibling3,
9596 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9597 OPC_RecordNode,
9598 OPC_CheckTypeI32,
9599 OPC_MoveSibling4,
9600 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9601 OPC_RecordNode,
9602 OPC_CheckTypeI32,
9603 OPC_MoveSibling5,
9604 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9605 OPC_RecordNode,
9606 OPC_CheckTypeI32,
9607 OPC_MoveSibling6,
9608 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9609 OPC_RecordNode,
9610 OPC_CheckTypeI32,
9611 OPC_MoveSibling7,
9612 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9613 OPC_RecordNode,
9614 OPC_CheckTypeI32,
9615 OPC_MoveSibling, 8,
9616 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9617 OPC_RecordNode,
9618 OPC_CheckTypeI32,
9619 OPC_MoveSibling, 9,
9620 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9621 OPC_RecordNode,
9622 OPC_CheckTypeI32,
9623 OPC_MoveSibling, 10,
9624 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9625 OPC_RecordNode,
9626 OPC_CheckTypeI32,
9627 OPC_MoveSibling, 11,
9628 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9629 OPC_RecordNode,
9630 OPC_CheckTypeI32,
9631 OPC_MoveSibling, 12,
9632 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9633 OPC_RecordNode,
9634 OPC_CheckTypeI32,
9635 OPC_MoveSibling, 13,
9636 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9637 OPC_RecordNode,
9638 OPC_CheckTypeI32,
9639 OPC_MoveSibling, 14,
9640 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9641 OPC_RecordNode,
9642 OPC_CheckTypeI32,
9643 OPC_MoveSibling, 15,
9644 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9645 OPC_RecordNode,
9646 OPC_CheckTypeI32,
9647 OPC_MoveSibling, 16,
9648 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9649 OPC_RecordNode,
9650 OPC_CheckTypeI32,
9651 OPC_MoveSibling, 17,
9652 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9653 OPC_RecordNode,
9654 OPC_CheckTypeI32,
9655 OPC_MoveParent,
9656 OPC_CheckType, MVT::v4i32,
9657 OPC_EmitConvertToTarget2,
9658 OPC_EmitConvertToTarget3,
9659 OPC_EmitConvertToTarget4,
9660 OPC_EmitConvertToTarget5,
9661 OPC_EmitConvertToTarget6,
9662 OPC_EmitConvertToTarget7,
9663 OPC_EmitConvertToTarget, 8,
9664 OPC_EmitConvertToTarget, 9,
9665 OPC_EmitConvertToTarget, 10,
9666 OPC_EmitConvertToTarget, 11,
9667 OPC_EmitConvertToTarget, 12,
9668 OPC_EmitConvertToTarget, 13,
9669 OPC_EmitConvertToTarget, 14,
9670 OPC_EmitConvertToTarget, 15,
9671 OPC_EmitConvertToTarget, 16,
9672 OPC_EmitConvertToTarget, 17,
9673 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9674 MVT::v4i32, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9675 0,
9676 83|128,2,
9677 OPC_CheckChild0Type, MVT::v2i64,
9678 OPC_RecordChild1,
9679 OPC_CheckChild1Type, MVT::v2i64,
9680 OPC_RecordChild2,
9681 OPC_MoveChild2,
9682 OPC_SwitchOpcode , 41|128,1, TARGET_VAL(ISD::Constant),
9683 OPC_CheckPredicate0,
9684 OPC_CheckTypeI32,
9685 OPC_MoveSibling3,
9686 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9687 OPC_RecordNode,
9688 OPC_CheckPredicate0,
9689 OPC_CheckTypeI32,
9690 OPC_MoveSibling4,
9691 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9692 OPC_RecordNode,
9693 OPC_CheckPredicate0,
9694 OPC_CheckTypeI32,
9695 OPC_MoveSibling5,
9696 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9697 OPC_RecordNode,
9698 OPC_CheckPredicate0,
9699 OPC_CheckTypeI32,
9700 OPC_MoveSibling6,
9701 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9702 OPC_RecordNode,
9703 OPC_CheckPredicate0,
9704 OPC_CheckTypeI32,
9705 OPC_MoveSibling7,
9706 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9707 OPC_RecordNode,
9708 OPC_CheckPredicate0,
9709 OPC_CheckTypeI32,
9710 OPC_MoveSibling, 8,
9711 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9712 OPC_RecordNode,
9713 OPC_CheckPredicate0,
9714 OPC_CheckTypeI32,
9715 OPC_MoveSibling, 9,
9716 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9717 OPC_RecordNode,
9718 OPC_CheckPredicate0,
9719 OPC_CheckTypeI32,
9720 OPC_MoveSibling, 10,
9721 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9722 OPC_RecordNode,
9723 OPC_CheckPredicate0,
9724 OPC_CheckTypeI32,
9725 OPC_MoveSibling, 11,
9726 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9727 OPC_RecordNode,
9728 OPC_CheckPredicate0,
9729 OPC_CheckTypeI32,
9730 OPC_MoveSibling, 12,
9731 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9732 OPC_RecordNode,
9733 OPC_CheckPredicate0,
9734 OPC_CheckTypeI32,
9735 OPC_MoveSibling, 13,
9736 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9737 OPC_RecordNode,
9738 OPC_CheckPredicate0,
9739 OPC_CheckTypeI32,
9740 OPC_MoveSibling, 14,
9741 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9742 OPC_RecordNode,
9743 OPC_CheckPredicate0,
9744 OPC_CheckTypeI32,
9745 OPC_MoveSibling, 15,
9746 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9747 OPC_RecordNode,
9748 OPC_CheckPredicate0,
9749 OPC_CheckTypeI32,
9750 OPC_MoveSibling, 16,
9751 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9752 OPC_RecordNode,
9753 OPC_CheckPredicate0,
9754 OPC_CheckTypeI32,
9755 OPC_MoveSibling, 17,
9756 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9757 OPC_RecordNode,
9758 OPC_CheckPredicate0,
9759 OPC_CheckTypeI32,
9760 OPC_MoveParent,
9761 OPC_CheckType, MVT::v2i64,
9762 OPC_EmitConvertToTarget2,
9763 OPC_EmitConvertToTarget3,
9764 OPC_EmitConvertToTarget4,
9765 OPC_EmitConvertToTarget5,
9766 OPC_EmitConvertToTarget6,
9767 OPC_EmitConvertToTarget7,
9768 OPC_EmitConvertToTarget, 8,
9769 OPC_EmitConvertToTarget, 9,
9770 OPC_EmitConvertToTarget, 10,
9771 OPC_EmitConvertToTarget, 11,
9772 OPC_EmitConvertToTarget, 12,
9773 OPC_EmitConvertToTarget, 13,
9774 OPC_EmitConvertToTarget, 14,
9775 OPC_EmitConvertToTarget, 15,
9776 OPC_EmitConvertToTarget, 16,
9777 OPC_EmitConvertToTarget, 17,
9778 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9779 MVT::v2i64, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9780 25|128,1, TARGET_VAL(ISD::TargetConstant),
9781 OPC_CheckTypeI32,
9782 OPC_MoveSibling3,
9783 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9784 OPC_RecordNode,
9785 OPC_CheckTypeI32,
9786 OPC_MoveSibling4,
9787 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9788 OPC_RecordNode,
9789 OPC_CheckTypeI32,
9790 OPC_MoveSibling5,
9791 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9792 OPC_RecordNode,
9793 OPC_CheckTypeI32,
9794 OPC_MoveSibling6,
9795 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9796 OPC_RecordNode,
9797 OPC_CheckTypeI32,
9798 OPC_MoveSibling7,
9799 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9800 OPC_RecordNode,
9801 OPC_CheckTypeI32,
9802 OPC_MoveSibling, 8,
9803 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9804 OPC_RecordNode,
9805 OPC_CheckTypeI32,
9806 OPC_MoveSibling, 9,
9807 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9808 OPC_RecordNode,
9809 OPC_CheckTypeI32,
9810 OPC_MoveSibling, 10,
9811 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9812 OPC_RecordNode,
9813 OPC_CheckTypeI32,
9814 OPC_MoveSibling, 11,
9815 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9816 OPC_RecordNode,
9817 OPC_CheckTypeI32,
9818 OPC_MoveSibling, 12,
9819 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9820 OPC_RecordNode,
9821 OPC_CheckTypeI32,
9822 OPC_MoveSibling, 13,
9823 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9824 OPC_RecordNode,
9825 OPC_CheckTypeI32,
9826 OPC_MoveSibling, 14,
9827 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9828 OPC_RecordNode,
9829 OPC_CheckTypeI32,
9830 OPC_MoveSibling, 15,
9831 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9832 OPC_RecordNode,
9833 OPC_CheckTypeI32,
9834 OPC_MoveSibling, 16,
9835 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9836 OPC_RecordNode,
9837 OPC_CheckTypeI32,
9838 OPC_MoveSibling, 17,
9839 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9840 OPC_RecordNode,
9841 OPC_CheckTypeI32,
9842 OPC_MoveParent,
9843 OPC_CheckType, MVT::v2i64,
9844 OPC_EmitConvertToTarget2,
9845 OPC_EmitConvertToTarget3,
9846 OPC_EmitConvertToTarget4,
9847 OPC_EmitConvertToTarget5,
9848 OPC_EmitConvertToTarget6,
9849 OPC_EmitConvertToTarget7,
9850 OPC_EmitConvertToTarget, 8,
9851 OPC_EmitConvertToTarget, 9,
9852 OPC_EmitConvertToTarget, 10,
9853 OPC_EmitConvertToTarget, 11,
9854 OPC_EmitConvertToTarget, 12,
9855 OPC_EmitConvertToTarget, 13,
9856 OPC_EmitConvertToTarget, 14,
9857 OPC_EmitConvertToTarget, 15,
9858 OPC_EmitConvertToTarget, 16,
9859 OPC_EmitConvertToTarget, 17,
9860 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9861 MVT::v2i64, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9862 0,
9863 83|128,2,
9864 OPC_CheckChild0Type, MVT::v4f32,
9865 OPC_RecordChild1,
9866 OPC_CheckChild1Type, MVT::v4f32,
9867 OPC_RecordChild2,
9868 OPC_MoveChild2,
9869 OPC_SwitchOpcode , 41|128,1, TARGET_VAL(ISD::Constant),
9870 OPC_CheckPredicate0,
9871 OPC_CheckTypeI32,
9872 OPC_MoveSibling3,
9873 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9874 OPC_RecordNode,
9875 OPC_CheckPredicate0,
9876 OPC_CheckTypeI32,
9877 OPC_MoveSibling4,
9878 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9879 OPC_RecordNode,
9880 OPC_CheckPredicate0,
9881 OPC_CheckTypeI32,
9882 OPC_MoveSibling5,
9883 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9884 OPC_RecordNode,
9885 OPC_CheckPredicate0,
9886 OPC_CheckTypeI32,
9887 OPC_MoveSibling6,
9888 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9889 OPC_RecordNode,
9890 OPC_CheckPredicate0,
9891 OPC_CheckTypeI32,
9892 OPC_MoveSibling7,
9893 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9894 OPC_RecordNode,
9895 OPC_CheckPredicate0,
9896 OPC_CheckTypeI32,
9897 OPC_MoveSibling, 8,
9898 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9899 OPC_RecordNode,
9900 OPC_CheckPredicate0,
9901 OPC_CheckTypeI32,
9902 OPC_MoveSibling, 9,
9903 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9904 OPC_RecordNode,
9905 OPC_CheckPredicate0,
9906 OPC_CheckTypeI32,
9907 OPC_MoveSibling, 10,
9908 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9909 OPC_RecordNode,
9910 OPC_CheckPredicate0,
9911 OPC_CheckTypeI32,
9912 OPC_MoveSibling, 11,
9913 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9914 OPC_RecordNode,
9915 OPC_CheckPredicate0,
9916 OPC_CheckTypeI32,
9917 OPC_MoveSibling, 12,
9918 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9919 OPC_RecordNode,
9920 OPC_CheckPredicate0,
9921 OPC_CheckTypeI32,
9922 OPC_MoveSibling, 13,
9923 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9924 OPC_RecordNode,
9925 OPC_CheckPredicate0,
9926 OPC_CheckTypeI32,
9927 OPC_MoveSibling, 14,
9928 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9929 OPC_RecordNode,
9930 OPC_CheckPredicate0,
9931 OPC_CheckTypeI32,
9932 OPC_MoveSibling, 15,
9933 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9934 OPC_RecordNode,
9935 OPC_CheckPredicate0,
9936 OPC_CheckTypeI32,
9937 OPC_MoveSibling, 16,
9938 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9939 OPC_RecordNode,
9940 OPC_CheckPredicate0,
9941 OPC_CheckTypeI32,
9942 OPC_MoveSibling, 17,
9943 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9944 OPC_RecordNode,
9945 OPC_CheckPredicate0,
9946 OPC_CheckTypeI32,
9947 OPC_MoveParent,
9948 OPC_CheckType, MVT::v4f32,
9949 OPC_EmitConvertToTarget2,
9950 OPC_EmitConvertToTarget3,
9951 OPC_EmitConvertToTarget4,
9952 OPC_EmitConvertToTarget5,
9953 OPC_EmitConvertToTarget6,
9954 OPC_EmitConvertToTarget7,
9955 OPC_EmitConvertToTarget, 8,
9956 OPC_EmitConvertToTarget, 9,
9957 OPC_EmitConvertToTarget, 10,
9958 OPC_EmitConvertToTarget, 11,
9959 OPC_EmitConvertToTarget, 12,
9960 OPC_EmitConvertToTarget, 13,
9961 OPC_EmitConvertToTarget, 14,
9962 OPC_EmitConvertToTarget, 15,
9963 OPC_EmitConvertToTarget, 16,
9964 OPC_EmitConvertToTarget, 17,
9965 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
9966 MVT::v4f32, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
9967 25|128,1, TARGET_VAL(ISD::TargetConstant),
9968 OPC_CheckTypeI32,
9969 OPC_MoveSibling3,
9970 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9971 OPC_RecordNode,
9972 OPC_CheckTypeI32,
9973 OPC_MoveSibling4,
9974 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9975 OPC_RecordNode,
9976 OPC_CheckTypeI32,
9977 OPC_MoveSibling5,
9978 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9979 OPC_RecordNode,
9980 OPC_CheckTypeI32,
9981 OPC_MoveSibling6,
9982 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9983 OPC_RecordNode,
9984 OPC_CheckTypeI32,
9985 OPC_MoveSibling7,
9986 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9987 OPC_RecordNode,
9988 OPC_CheckTypeI32,
9989 OPC_MoveSibling, 8,
9990 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9991 OPC_RecordNode,
9992 OPC_CheckTypeI32,
9993 OPC_MoveSibling, 9,
9994 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9995 OPC_RecordNode,
9996 OPC_CheckTypeI32,
9997 OPC_MoveSibling, 10,
9998 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
9999 OPC_RecordNode,
10000 OPC_CheckTypeI32,
10001 OPC_MoveSibling, 11,
10002 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10003 OPC_RecordNode,
10004 OPC_CheckTypeI32,
10005 OPC_MoveSibling, 12,
10006 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10007 OPC_RecordNode,
10008 OPC_CheckTypeI32,
10009 OPC_MoveSibling, 13,
10010 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10011 OPC_RecordNode,
10012 OPC_CheckTypeI32,
10013 OPC_MoveSibling, 14,
10014 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10015 OPC_RecordNode,
10016 OPC_CheckTypeI32,
10017 OPC_MoveSibling, 15,
10018 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10019 OPC_RecordNode,
10020 OPC_CheckTypeI32,
10021 OPC_MoveSibling, 16,
10022 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10023 OPC_RecordNode,
10024 OPC_CheckTypeI32,
10025 OPC_MoveSibling, 17,
10026 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10027 OPC_RecordNode,
10028 OPC_CheckTypeI32,
10029 OPC_MoveParent,
10030 OPC_CheckType, MVT::v4f32,
10031 OPC_EmitConvertToTarget2,
10032 OPC_EmitConvertToTarget3,
10033 OPC_EmitConvertToTarget4,
10034 OPC_EmitConvertToTarget5,
10035 OPC_EmitConvertToTarget6,
10036 OPC_EmitConvertToTarget7,
10037 OPC_EmitConvertToTarget, 8,
10038 OPC_EmitConvertToTarget, 9,
10039 OPC_EmitConvertToTarget, 10,
10040 OPC_EmitConvertToTarget, 11,
10041 OPC_EmitConvertToTarget, 12,
10042 OPC_EmitConvertToTarget, 13,
10043 OPC_EmitConvertToTarget, 14,
10044 OPC_EmitConvertToTarget, 15,
10045 OPC_EmitConvertToTarget, 16,
10046 OPC_EmitConvertToTarget, 17,
10047 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
10048 MVT::v4f32, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
10049 0,
10050 83|128,2,
10051 OPC_CheckChild0Type, MVT::v2f64,
10052 OPC_RecordChild1,
10053 OPC_CheckChild1Type, MVT::v2f64,
10054 OPC_RecordChild2,
10055 OPC_MoveChild2,
10056 OPC_SwitchOpcode , 41|128,1, TARGET_VAL(ISD::Constant),
10057 OPC_CheckPredicate0,
10058 OPC_CheckTypeI32,
10059 OPC_MoveSibling3,
10060 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10061 OPC_RecordNode,
10062 OPC_CheckPredicate0,
10063 OPC_CheckTypeI32,
10064 OPC_MoveSibling4,
10065 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10066 OPC_RecordNode,
10067 OPC_CheckPredicate0,
10068 OPC_CheckTypeI32,
10069 OPC_MoveSibling5,
10070 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10071 OPC_RecordNode,
10072 OPC_CheckPredicate0,
10073 OPC_CheckTypeI32,
10074 OPC_MoveSibling6,
10075 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10076 OPC_RecordNode,
10077 OPC_CheckPredicate0,
10078 OPC_CheckTypeI32,
10079 OPC_MoveSibling7,
10080 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10081 OPC_RecordNode,
10082 OPC_CheckPredicate0,
10083 OPC_CheckTypeI32,
10084 OPC_MoveSibling, 8,
10085 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10086 OPC_RecordNode,
10087 OPC_CheckPredicate0,
10088 OPC_CheckTypeI32,
10089 OPC_MoveSibling, 9,
10090 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10091 OPC_RecordNode,
10092 OPC_CheckPredicate0,
10093 OPC_CheckTypeI32,
10094 OPC_MoveSibling, 10,
10095 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10096 OPC_RecordNode,
10097 OPC_CheckPredicate0,
10098 OPC_CheckTypeI32,
10099 OPC_MoveSibling, 11,
10100 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10101 OPC_RecordNode,
10102 OPC_CheckPredicate0,
10103 OPC_CheckTypeI32,
10104 OPC_MoveSibling, 12,
10105 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10106 OPC_RecordNode,
10107 OPC_CheckPredicate0,
10108 OPC_CheckTypeI32,
10109 OPC_MoveSibling, 13,
10110 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10111 OPC_RecordNode,
10112 OPC_CheckPredicate0,
10113 OPC_CheckTypeI32,
10114 OPC_MoveSibling, 14,
10115 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10116 OPC_RecordNode,
10117 OPC_CheckPredicate0,
10118 OPC_CheckTypeI32,
10119 OPC_MoveSibling, 15,
10120 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10121 OPC_RecordNode,
10122 OPC_CheckPredicate0,
10123 OPC_CheckTypeI32,
10124 OPC_MoveSibling, 16,
10125 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10126 OPC_RecordNode,
10127 OPC_CheckPredicate0,
10128 OPC_CheckTypeI32,
10129 OPC_MoveSibling, 17,
10130 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10131 OPC_RecordNode,
10132 OPC_CheckPredicate0,
10133 OPC_CheckTypeI32,
10134 OPC_MoveParent,
10135 OPC_CheckType, MVT::v2f64,
10136 OPC_EmitConvertToTarget2,
10137 OPC_EmitConvertToTarget3,
10138 OPC_EmitConvertToTarget4,
10139 OPC_EmitConvertToTarget5,
10140 OPC_EmitConvertToTarget6,
10141 OPC_EmitConvertToTarget7,
10142 OPC_EmitConvertToTarget, 8,
10143 OPC_EmitConvertToTarget, 9,
10144 OPC_EmitConvertToTarget, 10,
10145 OPC_EmitConvertToTarget, 11,
10146 OPC_EmitConvertToTarget, 12,
10147 OPC_EmitConvertToTarget, 13,
10148 OPC_EmitConvertToTarget, 14,
10149 OPC_EmitConvertToTarget, 15,
10150 OPC_EmitConvertToTarget, 16,
10151 OPC_EmitConvertToTarget, 17,
10152 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
10153 MVT::v2f64, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
10154 25|128,1, TARGET_VAL(ISD::TargetConstant),
10155 OPC_CheckTypeI32,
10156 OPC_MoveSibling3,
10157 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10158 OPC_RecordNode,
10159 OPC_CheckTypeI32,
10160 OPC_MoveSibling4,
10161 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10162 OPC_RecordNode,
10163 OPC_CheckTypeI32,
10164 OPC_MoveSibling5,
10165 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10166 OPC_RecordNode,
10167 OPC_CheckTypeI32,
10168 OPC_MoveSibling6,
10169 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10170 OPC_RecordNode,
10171 OPC_CheckTypeI32,
10172 OPC_MoveSibling7,
10173 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10174 OPC_RecordNode,
10175 OPC_CheckTypeI32,
10176 OPC_MoveSibling, 8,
10177 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10178 OPC_RecordNode,
10179 OPC_CheckTypeI32,
10180 OPC_MoveSibling, 9,
10181 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10182 OPC_RecordNode,
10183 OPC_CheckTypeI32,
10184 OPC_MoveSibling, 10,
10185 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10186 OPC_RecordNode,
10187 OPC_CheckTypeI32,
10188 OPC_MoveSibling, 11,
10189 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10190 OPC_RecordNode,
10191 OPC_CheckTypeI32,
10192 OPC_MoveSibling, 12,
10193 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10194 OPC_RecordNode,
10195 OPC_CheckTypeI32,
10196 OPC_MoveSibling, 13,
10197 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10198 OPC_RecordNode,
10199 OPC_CheckTypeI32,
10200 OPC_MoveSibling, 14,
10201 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10202 OPC_RecordNode,
10203 OPC_CheckTypeI32,
10204 OPC_MoveSibling, 15,
10205 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10206 OPC_RecordNode,
10207 OPC_CheckTypeI32,
10208 OPC_MoveSibling, 16,
10209 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10210 OPC_RecordNode,
10211 OPC_CheckTypeI32,
10212 OPC_MoveSibling, 17,
10213 OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
10214 OPC_RecordNode,
10215 OPC_CheckTypeI32,
10216 OPC_MoveParent,
10217 OPC_CheckType, MVT::v2f64,
10218 OPC_EmitConvertToTarget2,
10219 OPC_EmitConvertToTarget3,
10220 OPC_EmitConvertToTarget4,
10221 OPC_EmitConvertToTarget5,
10222 OPC_EmitConvertToTarget6,
10223 OPC_EmitConvertToTarget7,
10224 OPC_EmitConvertToTarget, 8,
10225 OPC_EmitConvertToTarget, 9,
10226 OPC_EmitConvertToTarget, 10,
10227 OPC_EmitConvertToTarget, 11,
10228 OPC_EmitConvertToTarget, 12,
10229 OPC_EmitConvertToTarget, 13,
10230 OPC_EmitConvertToTarget, 14,
10231 OPC_EmitConvertToTarget, 15,
10232 OPC_EmitConvertToTarget, 16,
10233 OPC_EmitConvertToTarget, 17,
10234 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHUFFLE),
10235 MVT::v2f64, 18, 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
10236 0,
10237 0,
10238 41|128,5, TARGET_VAL(ISD::INSERT_VECTOR_ELT),
10239 OPC_Scope, 6|128,1,
10240 OPC_MoveChild0,
10241 OPC_CheckOpcode, TARGET_VAL(ISD::SPLAT_VECTOR),
10242 OPC_CheckChild0Integer, 0,
10243 OPC_Scope, 62,
10244 OPC_CheckChild0TypeI32,
10245 OPC_MoveSibling1,
10246 OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
10247 OPC_RecordMemRef,
10248 OPC_RecordNode,
10249 OPC_CheckFoldableChainNode,
10250 OPC_RecordChild1,
10251 OPC_CheckTypeI32,
10252 OPC_Scope, 24,
10253 OPC_CheckChild1TypeI32,
10254 OPC_CheckPredicate, 9,
10255 OPC_CheckPredicate7,
10256 OPC_MoveParent,
10257 OPC_CheckChild2Integer, 0,
10258 OPC_CheckType, MVT::v4i32,
10259 OPC_CheckPatternPredicate3,
10260 OPC_CheckComplexPat0, /*#*/1,
10261 OPC_EmitMergeInputChains1_0,
10262 OPC_EmitInteger32, 0,
10263 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
10264 MVT::v4i32, 3, 4, 2, 3,
10265 24,
10266 OPC_CheckChild1TypeI64,
10267 OPC_CheckPredicate, 9,
10268 OPC_CheckPredicate7,
10269 OPC_MoveParent,
10270 OPC_CheckChild2Integer, 0,
10271 OPC_CheckType, MVT::v4i32,
10272 OPC_CheckPatternPredicate4,
10273 OPC_CheckComplexPat1, /*#*/1,
10274 OPC_EmitMergeInputChains1_0,
10275 OPC_EmitInteger32, 0,
10276 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
10277 MVT::v4i32, 3, 4, 2, 3,
10278 0,
10279 62,
10280 OPC_CheckChild0TypeI64,
10281 OPC_MoveSibling1,
10282 OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
10283 OPC_RecordMemRef,
10284 OPC_RecordNode,
10285 OPC_CheckFoldableChainNode,
10286 OPC_RecordChild1,
10287 OPC_CheckTypeI64,
10288 OPC_Scope, 24,
10289 OPC_CheckChild1TypeI32,
10290 OPC_CheckPredicate, 9,
10291 OPC_CheckPredicate7,
10292 OPC_MoveParent,
10293 OPC_CheckChild2Integer, 0,
10294 OPC_CheckType, MVT::v2i64,
10295 OPC_CheckPatternPredicate3,
10296 OPC_CheckComplexPat0, /*#*/1,
10297 OPC_EmitMergeInputChains1_0,
10298 OPC_EmitInteger32, 0,
10299 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
10300 MVT::v2i64, 3, 4, 2, 3,
10301 24,
10302 OPC_CheckChild1TypeI64,
10303 OPC_CheckPredicate, 9,
10304 OPC_CheckPredicate7,
10305 OPC_MoveParent,
10306 OPC_CheckChild2Integer, 0,
10307 OPC_CheckType, MVT::v2i64,
10308 OPC_CheckPatternPredicate4,
10309 OPC_CheckComplexPat1, /*#*/1,
10310 OPC_EmitMergeInputChains1_0,
10311 OPC_EmitInteger32, 0,
10312 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
10313 MVT::v2i64, 3, 4, 2, 3,
10314 0,
10315 0,
10316 29|128,4,
10317 OPC_RecordChild0,
10318 OPC_Scope, 36|128,2,
10319 OPC_MoveChild1,
10320 OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
10321 OPC_RecordMemRef,
10322 OPC_RecordNode,
10323 OPC_CheckFoldableChainNode,
10324 OPC_RecordChild1,
10325 OPC_Scope, 11|128,1,
10326 OPC_CheckChild1TypeI32,
10327 OPC_CheckPredicate, 9,
10328 OPC_Scope, 67,
10329 OPC_CheckPredicate, 10,
10330 OPC_CheckTypeI32,
10331 OPC_Scope, 30,
10332 OPC_CheckPredicate1,
10333 OPC_MoveSibling2,
10334 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10335 OPC_RecordNode,
10336 OPC_CheckPredicate, 11,
10337 OPC_CheckTypeI32,
10338 OPC_MoveParent,
10339 OPC_CheckType, MVT::v16i8,
10340 OPC_CheckPatternPredicate3,
10341 OPC_EmitMergeInputChains1_1,
10342 OPC_EmitInteger32, 0,
10343 OPC_EmitInteger32, 0,
10344 OPC_EmitConvertToTarget3,
10345 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I8x16_A32), 0|OPFL_Chain|OPFL_MemRefs,
10346 MVT::v16i8, 5, 4, 5, 6, 2, 0,
10347 30,
10348 OPC_CheckPredicate2,
10349 OPC_MoveSibling2,
10350 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10351 OPC_RecordNode,
10352 OPC_CheckPredicate, 16,
10353 OPC_CheckTypeI32,
10354 OPC_MoveParent,
10355 OPC_CheckType, MVT::v8i16,
10356 OPC_CheckPatternPredicate3,
10357 OPC_EmitMergeInputChains1_1,
10358 OPC_EmitInteger32, 0,
10359 OPC_EmitInteger32, 0,
10360 OPC_EmitConvertToTarget3,
10361 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I16x8_A32), 0|OPFL_Chain|OPFL_MemRefs,
10362 MVT::v8i16, 5, 4, 5, 6, 2, 0,
10363 0,
10364 65,
10365 OPC_CheckPredicate7,
10366 OPC_SwitchType , 29, MVT::i32,
10367 OPC_MoveSibling2,
10368 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10369 OPC_RecordNode,
10370 OPC_CheckPredicate, 17,
10371 OPC_CheckTypeI32,
10372 OPC_MoveParent,
10373 OPC_CheckType, MVT::v4i32,
10374 OPC_CheckPatternPredicate3,
10375 OPC_EmitMergeInputChains1_1,
10376 OPC_EmitInteger32, 0,
10377 OPC_EmitInteger32, 0,
10378 OPC_EmitConvertToTarget3,
10379 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
10380 MVT::v4i32, 5, 4, 5, 6, 2, 0,
10381 29, MVT::i64,
10382 OPC_MoveSibling2,
10383 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10384 OPC_RecordNode,
10385 OPC_CheckPredicate, 18,
10386 OPC_CheckTypeI32,
10387 OPC_MoveParent,
10388 OPC_CheckType, MVT::v2i64,
10389 OPC_CheckPatternPredicate3,
10390 OPC_EmitMergeInputChains1_1,
10391 OPC_EmitInteger32, 0,
10392 OPC_EmitInteger32, 0,
10393 OPC_EmitConvertToTarget3,
10394 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
10395 MVT::v2i64, 5, 4, 5, 6, 2, 0,
10396 0,
10397 0,
10398 11|128,1,
10399 OPC_CheckChild1TypeI64,
10400 OPC_CheckPredicate, 9,
10401 OPC_Scope, 67,
10402 OPC_CheckPredicate, 10,
10403 OPC_CheckTypeI32,
10404 OPC_Scope, 30,
10405 OPC_CheckPredicate1,
10406 OPC_MoveSibling2,
10407 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10408 OPC_RecordNode,
10409 OPC_CheckPredicate, 11,
10410 OPC_CheckTypeI32,
10411 OPC_MoveParent,
10412 OPC_CheckType, MVT::v16i8,
10413 OPC_CheckPatternPredicate4,
10414 OPC_EmitMergeInputChains1_1,
10415 OPC_EmitInteger32, 0,
10416 OPC_EmitInteger64, 0,
10417 OPC_EmitConvertToTarget3,
10418 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I8x16_A64), 0|OPFL_Chain|OPFL_MemRefs,
10419 MVT::v16i8, 5, 4, 5, 6, 2, 0,
10420 30,
10421 OPC_CheckPredicate2,
10422 OPC_MoveSibling2,
10423 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10424 OPC_RecordNode,
10425 OPC_CheckPredicate, 16,
10426 OPC_CheckTypeI32,
10427 OPC_MoveParent,
10428 OPC_CheckType, MVT::v8i16,
10429 OPC_CheckPatternPredicate4,
10430 OPC_EmitMergeInputChains1_1,
10431 OPC_EmitInteger32, 0,
10432 OPC_EmitInteger64, 0,
10433 OPC_EmitConvertToTarget3,
10434 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I16x8_A64), 0|OPFL_Chain|OPFL_MemRefs,
10435 MVT::v8i16, 5, 4, 5, 6, 2, 0,
10436 0,
10437 65,
10438 OPC_CheckPredicate7,
10439 OPC_SwitchType , 29, MVT::i32,
10440 OPC_MoveSibling2,
10441 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10442 OPC_RecordNode,
10443 OPC_CheckPredicate, 17,
10444 OPC_CheckTypeI32,
10445 OPC_MoveParent,
10446 OPC_CheckType, MVT::v4i32,
10447 OPC_CheckPatternPredicate4,
10448 OPC_EmitMergeInputChains1_1,
10449 OPC_EmitInteger32, 0,
10450 OPC_EmitInteger64, 0,
10451 OPC_EmitConvertToTarget3,
10452 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
10453 MVT::v4i32, 5, 4, 5, 6, 2, 0,
10454 29, MVT::i64,
10455 OPC_MoveSibling2,
10456 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10457 OPC_RecordNode,
10458 OPC_CheckPredicate, 18,
10459 OPC_CheckTypeI32,
10460 OPC_MoveParent,
10461 OPC_CheckType, MVT::v2i64,
10462 OPC_CheckPatternPredicate4,
10463 OPC_EmitMergeInputChains1_1,
10464 OPC_EmitInteger32, 0,
10465 OPC_EmitInteger64, 0,
10466 OPC_EmitConvertToTarget3,
10467 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_LANE_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
10468 MVT::v2i64, 5, 4, 5, 6, 2, 0,
10469 0,
10470 0,
10471 0,
10472 114|128,1,
10473 OPC_RecordChild1,
10474 OPC_Scope, 104,
10475 OPC_CheckChild1TypeI32,
10476 OPC_Scope, 56,
10477 OPC_RecordChild2,
10478 OPC_MoveChild2,
10479 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10480 OPC_CheckTypeI32,
10481 OPC_Scope, 15,
10482 OPC_CheckPredicate, 11,
10483 OPC_MoveParent,
10484 OPC_CheckType, MVT::v16i8,
10485 OPC_CheckPatternPredicate0,
10486 OPC_EmitConvertToTarget2,
10487 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I8x16),
10488 MVT::v16i8, 3, 0, 3, 1,
10489 15,
10490 OPC_CheckPredicate, 16,
10491 OPC_MoveParent,
10492 OPC_CheckType, MVT::v8i16,
10493 OPC_CheckPatternPredicate0,
10494 OPC_EmitConvertToTarget2,
10495 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I16x8),
10496 MVT::v8i16, 3, 0, 3, 1,
10497 15,
10498 OPC_CheckPredicate, 17,
10499 OPC_MoveParent,
10500 OPC_CheckType, MVT::v4i32,
10501 OPC_CheckPatternPredicate0,
10502 OPC_EmitConvertToTarget2,
10503 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I32x4),
10504 MVT::v4i32, 3, 0, 3, 1,
10505 0,
10506 43,
10507 OPC_MoveChild2,
10508 OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
10509 OPC_MoveParent,
10510 OPC_SwitchType , 10, MVT::v16i8,
10511 OPC_EmitInteger32, 0,
10512 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I8x16),
10513 MVT::v16i8, 3, 0, 2, 1,
10514 10, MVT::v8i16,
10515 OPC_EmitInteger32, 0,
10516 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I16x8),
10517 MVT::v8i16, 3, 0, 2, 1,
10518 10, MVT::v4i32,
10519 OPC_EmitInteger32, 0,
10520 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I32x4),
10521 MVT::v4i32, 3, 0, 2, 1,
10522 0,
10523 0,
10524 43,
10525 OPC_CheckChild1TypeI64,
10526 OPC_Scope, 21,
10527 OPC_RecordChild2,
10528 OPC_MoveChild2,
10529 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10530 OPC_CheckPredicate, 18,
10531 OPC_CheckTypeI32,
10532 OPC_MoveParent,
10533 OPC_CheckType, MVT::v2i64,
10534 OPC_CheckPatternPredicate0,
10535 OPC_EmitConvertToTarget2,
10536 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I64x2),
10537 MVT::v2i64, 3, 0, 3, 1,
10538 17,
10539 OPC_MoveChild2,
10540 OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
10541 OPC_MoveParent,
10542 OPC_CheckType, MVT::v2i64,
10543 OPC_EmitInteger32, 0,
10544 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_I64x2),
10545 MVT::v2i64, 3, 0, 2, 1,
10546 0,
10547 44,
10548 OPC_CheckChild1Type, MVT::f32,
10549 OPC_Scope, 21,
10550 OPC_RecordChild2,
10551 OPC_MoveChild2,
10552 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10553 OPC_CheckPredicate, 17,
10554 OPC_CheckTypeI32,
10555 OPC_MoveParent,
10556 OPC_CheckType, MVT::v4f32,
10557 OPC_CheckPatternPredicate0,
10558 OPC_EmitConvertToTarget2,
10559 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_F32x4),
10560 MVT::v4f32, 3, 0, 3, 1,
10561 17,
10562 OPC_MoveChild2,
10563 OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
10564 OPC_MoveParent,
10565 OPC_CheckType, MVT::v4f32,
10566 OPC_EmitInteger32, 0,
10567 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_F32x4),
10568 MVT::v4f32, 3, 0, 2, 1,
10569 0,
10570 44,
10571 OPC_CheckChild1Type, MVT::f64,
10572 OPC_Scope, 21,
10573 OPC_RecordChild2,
10574 OPC_MoveChild2,
10575 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10576 OPC_CheckPredicate, 18,
10577 OPC_CheckTypeI32,
10578 OPC_MoveParent,
10579 OPC_CheckType, MVT::v2f64,
10580 OPC_CheckPatternPredicate0,
10581 OPC_EmitConvertToTarget2,
10582 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_F64x2),
10583 MVT::v2f64, 3, 0, 3, 1,
10584 17,
10585 OPC_MoveChild2,
10586 OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
10587 OPC_MoveParent,
10588 OPC_CheckType, MVT::v2f64,
10589 OPC_EmitInteger32, 0,
10590 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::REPLACE_LANE_F64x2),
10591 MVT::v2f64, 3, 0, 2, 1,
10592 0,
10593 0,
10594 0,
10595 0,
10596 96|128,1, TARGET_VAL(WebAssemblyISD::VEC_SHR_U),
10597 OPC_Scope, 87,
10598 OPC_MoveChild0,
10599 OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
10600 OPC_MoveChild0,
10601 OPC_SwitchOpcode , 37, TARGET_VAL(ISD::ADD),
10602 OPC_RecordChild0,
10603 OPC_RecordChild1,
10604 OPC_CheckPredicate, 24,
10605 OPC_MoveSibling1,
10606 OPC_CheckOpcode, TARGET_VAL(ISD::SPLAT_VECTOR),
10607 OPC_CheckChild0Integer, 2,
10608 OPC_CheckChild0TypeI32,
10609 OPC_MoveParent,
10610 OPC_CheckPredicate, 24,
10611 OPC_MoveParent,
10612 OPC_CheckChild1Integer, 2,
10613 OPC_SwitchType , 7, MVT::v16i8,
10614 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AVGR_U_I8x16),
10615 MVT::v16i8, 2, 0, 1,
10616 7, MVT::v8i16,
10617 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AVGR_U_I16x8),
10618 MVT::v8i16, 2, 0, 1,
10619 0,
10620 37, TARGET_VAL(ISD::SPLAT_VECTOR),
10621 OPC_CheckChild0Integer, 2,
10622 OPC_CheckChild0TypeI32,
10623 OPC_MoveSibling1,
10624 OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
10625 OPC_RecordChild0,
10626 OPC_RecordChild1,
10627 OPC_CheckPredicate, 24,
10628 OPC_MoveParent,
10629 OPC_CheckPredicate, 24,
10630 OPC_MoveParent,
10631 OPC_CheckChild1Integer, 2,
10632 OPC_SwitchType , 7, MVT::v16i8,
10633 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AVGR_U_I8x16),
10634 MVT::v16i8, 2, 0, 1,
10635 7, MVT::v8i16,
10636 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::AVGR_U_I16x8),
10637 MVT::v8i16, 2, 0, 1,
10638 0,
10639 0,
10640 4|128,1,
10641 OPC_RecordChild0,
10642 OPC_Scope, 84,
10643 OPC_MoveChild1,
10644 OPC_Scope, 24,
10645 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
10646 OPC_MoveChild0,
10647 OPC_CheckAndImm, 63,
10648 OPC_RecordChild0,
10649 OPC_MoveParent,
10650 OPC_MoveParent,
10651 OPC_CheckType, MVT::v2i64,
10652 OPC_EmitNode1None, TARGET_VAL(WebAssembly::I32_WRAP_I64),
10653 MVT::i32, 1, 1,
10654 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I64x2),
10655 MVT::v2i64, 2, 0, 2,
10656 13,
10657 OPC_CheckAndImm, 7,
10658 OPC_RecordChild0,
10659 OPC_MoveParent,
10660 OPC_CheckType, MVT::v16i8,
10661 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I8x16),
10662 MVT::v16i8, 2, 0, 1,
10663 13,
10664 OPC_CheckAndImm, 15,
10665 OPC_RecordChild0,
10666 OPC_MoveParent,
10667 OPC_CheckType, MVT::v8i16,
10668 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I16x8),
10669 MVT::v8i16, 2, 0, 1,
10670 13,
10671 OPC_CheckAndImm, 31,
10672 OPC_RecordChild0,
10673 OPC_MoveParent,
10674 OPC_CheckType, MVT::v4i32,
10675 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I32x4),
10676 MVT::v4i32, 2, 0, 1,
10677 13,
10678 OPC_CheckAndImm, 63,
10679 OPC_RecordChild0,
10680 OPC_MoveParent,
10681 OPC_CheckType, MVT::v2i64,
10682 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I64x2),
10683 MVT::v2i64, 2, 0, 1,
10684 0,
10685 43,
10686 OPC_RecordChild1,
10687 OPC_SwitchType , 8, MVT::v16i8,
10688 OPC_CheckPatternPredicate0,
10689 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I8x16),
10690 MVT::v16i8, 2, 0, 1,
10691 8, MVT::v8i16,
10692 OPC_CheckPatternPredicate0,
10693 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I16x8),
10694 MVT::v8i16, 2, 0, 1,
10695 8, MVT::v4i32,
10696 OPC_CheckPatternPredicate0,
10697 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I32x4),
10698 MVT::v4i32, 2, 0, 1,
10699 8, MVT::v2i64,
10700 OPC_CheckPatternPredicate0,
10701 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_U_I64x2),
10702 MVT::v2i64, 2, 0, 1,
10703 0,
10704 0,
10705 0,
10706 14|128,4, TARGET_VAL(ISD::SPLAT_VECTOR),
10707 OPC_Scope, 73|128,1,
10708 OPC_MoveChild0,
10709 OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
10710 OPC_RecordMemRef,
10711 OPC_RecordNode,
10712 OPC_RecordChild1,
10713 OPC_Scope, 95,
10714 OPC_CheckChild1TypeI32,
10715 OPC_CheckPredicate, 9,
10716 OPC_Scope, 45,
10717 OPC_CheckPredicate, 10,
10718 OPC_CheckTypeI32,
10719 OPC_Scope, 19,
10720 OPC_CheckPredicate1,
10721 OPC_MoveParent,
10722 OPC_CheckType, MVT::v16i8,
10723 OPC_CheckPatternPredicate3,
10724 OPC_CheckComplexPat0, /*#*/1,
10725 OPC_EmitMergeInputChains1_0,
10726 OPC_EmitInteger32, 0,
10727 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_SPLAT_A32), 0|OPFL_Chain|OPFL_MemRefs,
10728 MVT::v16i8, 3, 4, 2, 3,
10729 19,
10730 OPC_CheckPredicate2,
10731 OPC_MoveParent,
10732 OPC_CheckType, MVT::v8i16,
10733 OPC_CheckPatternPredicate3,
10734 OPC_CheckComplexPat0, /*#*/1,
10735 OPC_EmitMergeInputChains1_0,
10736 OPC_EmitInteger32, 0,
10737 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_SPLAT_A32), 0|OPFL_Chain|OPFL_MemRefs,
10738 MVT::v8i16, 3, 4, 2, 3,
10739 0,
10740 43,
10741 OPC_CheckPredicate7,
10742 OPC_SwitchType , 18, MVT::i32,
10743 OPC_MoveParent,
10744 OPC_CheckType, MVT::v4i32,
10745 OPC_CheckPatternPredicate3,
10746 OPC_CheckComplexPat0, /*#*/1,
10747 OPC_EmitMergeInputChains1_0,
10748 OPC_EmitInteger32, 0,
10749 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_SPLAT_A32), 0|OPFL_Chain|OPFL_MemRefs,
10750 MVT::v4i32, 3, 4, 2, 3,
10751 18, MVT::i64,
10752 OPC_MoveParent,
10753 OPC_CheckType, MVT::v2i64,
10754 OPC_CheckPatternPredicate3,
10755 OPC_CheckComplexPat0, /*#*/1,
10756 OPC_EmitMergeInputChains1_0,
10757 OPC_EmitInteger32, 0,
10758 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD64_SPLAT_A32), 0|OPFL_Chain|OPFL_MemRefs,
10759 MVT::v2i64, 3, 4, 2, 3,
10760 0,
10761 0,
10762 95,
10763 OPC_CheckChild1TypeI64,
10764 OPC_CheckPredicate, 9,
10765 OPC_Scope, 45,
10766 OPC_CheckPredicate, 10,
10767 OPC_CheckTypeI32,
10768 OPC_Scope, 19,
10769 OPC_CheckPredicate1,
10770 OPC_MoveParent,
10771 OPC_CheckType, MVT::v16i8,
10772 OPC_CheckPatternPredicate4,
10773 OPC_CheckComplexPat1, /*#*/1,
10774 OPC_EmitMergeInputChains1_0,
10775 OPC_EmitInteger32, 0,
10776 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD8_SPLAT_A64), 0|OPFL_Chain|OPFL_MemRefs,
10777 MVT::v16i8, 3, 4, 2, 3,
10778 19,
10779 OPC_CheckPredicate2,
10780 OPC_MoveParent,
10781 OPC_CheckType, MVT::v8i16,
10782 OPC_CheckPatternPredicate4,
10783 OPC_CheckComplexPat1, /*#*/1,
10784 OPC_EmitMergeInputChains1_0,
10785 OPC_EmitInteger32, 0,
10786 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD16_SPLAT_A64), 0|OPFL_Chain|OPFL_MemRefs,
10787 MVT::v8i16, 3, 4, 2, 3,
10788 0,
10789 43,
10790 OPC_CheckPredicate7,
10791 OPC_SwitchType , 18, MVT::i32,
10792 OPC_MoveParent,
10793 OPC_CheckType, MVT::v4i32,
10794 OPC_CheckPatternPredicate4,
10795 OPC_CheckComplexPat1, /*#*/1,
10796 OPC_EmitMergeInputChains1_0,
10797 OPC_EmitInteger32, 0,
10798 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_SPLAT_A64), 0|OPFL_Chain|OPFL_MemRefs,
10799 MVT::v4i32, 3, 4, 2, 3,
10800 18, MVT::i64,
10801 OPC_MoveParent,
10802 OPC_CheckType, MVT::v2i64,
10803 OPC_CheckPatternPredicate4,
10804 OPC_CheckComplexPat1, /*#*/1,
10805 OPC_EmitMergeInputChains1_0,
10806 OPC_EmitInteger32, 0,
10807 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD64_SPLAT_A64), 0|OPFL_Chain|OPFL_MemRefs,
10808 MVT::v2i64, 3, 4, 2, 3,
10809 0,
10810 0,
10811 0,
10812 20|128,1,
10813 OPC_RecordChild0,
10814 OPC_Scope, 102,
10815 OPC_MoveChild0,
10816 OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10817 OPC_SwitchType , 80, MVT::i32,
10818 OPC_MoveParent,
10819 OPC_SwitchType , 37, MVT::v16i8,
10820 OPC_EmitConvertToTarget0,
10821 OPC_EmitConvertToTarget0,
10822 OPC_EmitConvertToTarget0,
10823 OPC_EmitConvertToTarget0,
10824 OPC_EmitConvertToTarget0,
10825 OPC_EmitConvertToTarget0,
10826 OPC_EmitConvertToTarget0,
10827 OPC_EmitConvertToTarget0,
10828 OPC_EmitConvertToTarget0,
10829 OPC_EmitConvertToTarget0,
10830 OPC_EmitConvertToTarget0,
10831 OPC_EmitConvertToTarget0,
10832 OPC_EmitConvertToTarget0,
10833 OPC_EmitConvertToTarget0,
10834 OPC_EmitConvertToTarget0,
10835 OPC_EmitConvertToTarget0,
10836 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I8x16),
10837 MVT::v16i8, 16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
10838 21, MVT::v8i16,
10839 OPC_EmitConvertToTarget0,
10840 OPC_EmitConvertToTarget0,
10841 OPC_EmitConvertToTarget0,
10842 OPC_EmitConvertToTarget0,
10843 OPC_EmitConvertToTarget0,
10844 OPC_EmitConvertToTarget0,
10845 OPC_EmitConvertToTarget0,
10846 OPC_EmitConvertToTarget0,
10847 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I16x8),
10848 MVT::v8i16, 8, 1, 2, 3, 4, 5, 6, 7, 8,
10849 13, MVT::v4i32,
10850 OPC_EmitConvertToTarget0,
10851 OPC_EmitConvertToTarget0,
10852 OPC_EmitConvertToTarget0,
10853 OPC_EmitConvertToTarget0,
10854 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I32x4),
10855 MVT::v4i32, 4, 1, 2, 3, 4,
10856 0,
10857 12, MVT::i64,
10858 OPC_MoveParent,
10859 OPC_CheckType, MVT::v2i64,
10860 OPC_EmitConvertToTarget0,
10861 OPC_EmitConvertToTarget0,
10862 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_I64x2),
10863 MVT::v2i64, 2, 1, 2,
10864 0,
10865 30,
10866 OPC_CheckChild0TypeI32,
10867 OPC_SwitchType , 7, MVT::v16i8,
10868 OPC_CheckPatternPredicate0,
10869 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I8x16),
10870 MVT::v16i8, 1, 0,
10871 7, MVT::v8i16,
10872 OPC_CheckPatternPredicate0,
10873 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I16x8),
10874 MVT::v8i16, 1, 0,
10875 7, MVT::v4i32,
10876 OPC_CheckPatternPredicate0,
10877 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I32x4),
10878 MVT::v4i32, 1, 0,
10879 0,
10880 10,
10881 OPC_CheckChild0TypeI64,
10882 OPC_CheckType, MVT::v2i64,
10883 OPC_CheckPatternPredicate0,
10884 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I64x2),
10885 MVT::v2i64, 1, 0,
10886 0,
10887 103,
10888 OPC_MoveChild0,
10889 OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
10890 OPC_RecordMemRef,
10891 OPC_RecordNode,
10892 OPC_RecordChild1,
10893 OPC_Scope, 46,
10894 OPC_CheckChild1TypeI32,
10895 OPC_CheckPredicate, 9,
10896 OPC_CheckPredicate7,
10897 OPC_SwitchType , 18, MVT::f32,
10898 OPC_MoveParent,
10899 OPC_CheckType, MVT::v4f32,
10900 OPC_CheckPatternPredicate3,
10901 OPC_CheckComplexPat0, /*#*/1,
10902 OPC_EmitMergeInputChains1_0,
10903 OPC_EmitInteger32, 0,
10904 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_SPLAT_A32), 0|OPFL_Chain|OPFL_MemRefs,
10905 MVT::v4f32, 3, 4, 2, 3,
10906 18, MVT::f64,
10907 OPC_MoveParent,
10908 OPC_CheckType, MVT::v2f64,
10909 OPC_CheckPatternPredicate3,
10910 OPC_CheckComplexPat0, /*#*/1,
10911 OPC_EmitMergeInputChains1_0,
10912 OPC_EmitInteger32, 0,
10913 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD64_SPLAT_A32), 0|OPFL_Chain|OPFL_MemRefs,
10914 MVT::v2f64, 3, 4, 2, 3,
10915 0,
10916 46,
10917 OPC_CheckChild1TypeI64,
10918 OPC_CheckPredicate, 9,
10919 OPC_CheckPredicate7,
10920 OPC_SwitchType , 18, MVT::f32,
10921 OPC_MoveParent,
10922 OPC_CheckType, MVT::v4f32,
10923 OPC_CheckPatternPredicate4,
10924 OPC_CheckComplexPat1, /*#*/1,
10925 OPC_EmitMergeInputChains1_0,
10926 OPC_EmitInteger32, 0,
10927 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD32_SPLAT_A64), 0|OPFL_Chain|OPFL_MemRefs,
10928 MVT::v4f32, 3, 4, 2, 3,
10929 18, MVT::f64,
10930 OPC_MoveParent,
10931 OPC_CheckType, MVT::v2f64,
10932 OPC_CheckPatternPredicate4,
10933 OPC_CheckComplexPat1, /*#*/1,
10934 OPC_EmitMergeInputChains1_0,
10935 OPC_EmitInteger32, 0,
10936 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD64_SPLAT_A64), 0|OPFL_Chain|OPFL_MemRefs,
10937 MVT::v2f64, 3, 4, 2, 3,
10938 0,
10939 0,
10940 66,
10941 OPC_RecordChild0,
10942 OPC_Scope, 38,
10943 OPC_MoveChild0,
10944 OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
10945 OPC_SwitchType , 16, MVT::f32,
10946 OPC_MoveParent,
10947 OPC_CheckType, MVT::v4f32,
10948 OPC_EmitConvertToTarget0,
10949 OPC_EmitConvertToTarget0,
10950 OPC_EmitConvertToTarget0,
10951 OPC_EmitConvertToTarget0,
10952 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_F32x4),
10953 MVT::v4f32, 4, 1, 2, 3, 4,
10954 12, MVT::f64,
10955 OPC_MoveParent,
10956 OPC_CheckType, MVT::v2f64,
10957 OPC_EmitConvertToTarget0,
10958 OPC_EmitConvertToTarget0,
10959 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::CONST_V128_F64x2),
10960 MVT::v2f64, 2, 1, 2,
10961 0,
10962 11,
10963 OPC_CheckChild0Type, MVT::f32,
10964 OPC_CheckType, MVT::v4f32,
10965 OPC_CheckPatternPredicate0,
10966 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_F32x4),
10967 MVT::v4f32, 1, 0,
10968 11,
10969 OPC_CheckChild0Type, MVT::f64,
10970 OPC_CheckType, MVT::v2f64,
10971 OPC_CheckPatternPredicate0,
10972 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_F64x2),
10973 MVT::v2f64, 1, 0,
10974 0,
10975 0,
10976 42|128,1, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
10977 OPC_Scope, 103,
10978 OPC_MoveChild0,
10979 OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
10980 OPC_RecordMemRef,
10981 OPC_RecordNode,
10982 OPC_RecordChild1,
10983 OPC_Scope, 46,
10984 OPC_CheckChild1TypeI32,
10985 OPC_CheckPredicate, 9,
10986 OPC_CheckPredicate7,
10987 OPC_SwitchType , 18, MVT::i32,
10988 OPC_MoveParent,
10989 OPC_CheckType, MVT::v4i32,
10990 OPC_CheckPatternPredicate3,
10991 OPC_CheckComplexPat0, /*#*/1,
10992 OPC_EmitMergeInputChains1_0,
10993 OPC_EmitInteger32, 0,
10994 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I32x4_A32), 0|OPFL_Chain|OPFL_MemRefs,
10995 MVT::v4i32, 3, 4, 2, 3,
10996 18, MVT::i64,
10997 OPC_MoveParent,
10998 OPC_CheckType, MVT::v2i64,
10999 OPC_CheckPatternPredicate3,
11000 OPC_CheckComplexPat0, /*#*/1,
11001 OPC_EmitMergeInputChains1_0,
11002 OPC_EmitInteger32, 0,
11003 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I64x2_A32), 0|OPFL_Chain|OPFL_MemRefs,
11004 MVT::v2i64, 3, 4, 2, 3,
11005 0,
11006 46,
11007 OPC_CheckChild1TypeI64,
11008 OPC_CheckPredicate, 9,
11009 OPC_CheckPredicate7,
11010 OPC_SwitchType , 18, MVT::i32,
11011 OPC_MoveParent,
11012 OPC_CheckType, MVT::v4i32,
11013 OPC_CheckPatternPredicate4,
11014 OPC_CheckComplexPat1, /*#*/1,
11015 OPC_EmitMergeInputChains1_0,
11016 OPC_EmitInteger32, 0,
11017 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I32x4_A64), 0|OPFL_Chain|OPFL_MemRefs,
11018 MVT::v4i32, 3, 4, 2, 3,
11019 18, MVT::i64,
11020 OPC_MoveParent,
11021 OPC_CheckType, MVT::v2i64,
11022 OPC_CheckPatternPredicate4,
11023 OPC_CheckComplexPat1, /*#*/1,
11024 OPC_EmitMergeInputChains1_0,
11025 OPC_EmitInteger32, 0,
11026 OPC_MorphNodeTo1, TARGET_VAL(WebAssembly::LOAD_ZERO_I64x2_A64), 0|OPFL_Chain|OPFL_MemRefs,
11027 MVT::v2i64, 3, 4, 2, 3,
11028 0,
11029 0,
11030 63,
11031 OPC_RecordChild0,
11032 OPC_Scope, 27,
11033 OPC_CheckChild0TypeI32,
11034 OPC_SwitchType , 6, MVT::v16i8,
11035 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I8x16),
11036 MVT::v16i8, 1, 0,
11037 6, MVT::v8i16,
11038 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I16x8),
11039 MVT::v8i16, 1, 0,
11040 6, MVT::v4i32,
11041 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I32x4),
11042 MVT::v4i32, 1, 0,
11043 0,
11044 9,
11045 OPC_CheckChild0TypeI64,
11046 OPC_CheckType, MVT::v2i64,
11047 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_I64x2),
11048 MVT::v2i64, 1, 0,
11049 10,
11050 OPC_CheckChild0Type, MVT::f32,
11051 OPC_CheckType, MVT::v4f32,
11052 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_F32x4),
11053 MVT::v4f32, 1, 0,
11054 10,
11055 OPC_CheckChild0Type, MVT::f64,
11056 OPC_CheckType, MVT::v2f64,
11057 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SPLAT_F64x2),
11058 MVT::v2f64, 1, 0,
11059 0,
11060 0,
11061 4|128,1, TARGET_VAL(WebAssemblyISD::VEC_SHL),
11062 OPC_RecordChild0,
11063 OPC_Scope, 84,
11064 OPC_MoveChild1,
11065 OPC_Scope, 24,
11066 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
11067 OPC_MoveChild0,
11068 OPC_CheckAndImm, 63,
11069 OPC_RecordChild0,
11070 OPC_MoveParent,
11071 OPC_MoveParent,
11072 OPC_CheckType, MVT::v2i64,
11073 OPC_EmitNode1None, TARGET_VAL(WebAssembly::I32_WRAP_I64),
11074 MVT::i32, 1, 1,
11075 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I64x2),
11076 MVT::v2i64, 2, 0, 2,
11077 13,
11078 OPC_CheckAndImm, 7,
11079 OPC_RecordChild0,
11080 OPC_MoveParent,
11081 OPC_CheckType, MVT::v16i8,
11082 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I8x16),
11083 MVT::v16i8, 2, 0, 1,
11084 13,
11085 OPC_CheckAndImm, 15,
11086 OPC_RecordChild0,
11087 OPC_MoveParent,
11088 OPC_CheckType, MVT::v8i16,
11089 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I16x8),
11090 MVT::v8i16, 2, 0, 1,
11091 13,
11092 OPC_CheckAndImm, 31,
11093 OPC_RecordChild0,
11094 OPC_MoveParent,
11095 OPC_CheckType, MVT::v4i32,
11096 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I32x4),
11097 MVT::v4i32, 2, 0, 1,
11098 13,
11099 OPC_CheckAndImm, 63,
11100 OPC_RecordChild0,
11101 OPC_MoveParent,
11102 OPC_CheckType, MVT::v2i64,
11103 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I64x2),
11104 MVT::v2i64, 2, 0, 1,
11105 0,
11106 43,
11107 OPC_RecordChild1,
11108 OPC_SwitchType , 8, MVT::v16i8,
11109 OPC_CheckPatternPredicate0,
11110 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I8x16),
11111 MVT::v16i8, 2, 0, 1,
11112 8, MVT::v8i16,
11113 OPC_CheckPatternPredicate0,
11114 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I16x8),
11115 MVT::v8i16, 2, 0, 1,
11116 8, MVT::v4i32,
11117 OPC_CheckPatternPredicate0,
11118 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I32x4),
11119 MVT::v4i32, 2, 0, 1,
11120 8, MVT::v2i64,
11121 OPC_CheckPatternPredicate0,
11122 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHL_I64x2),
11123 MVT::v2i64, 2, 0, 1,
11124 0,
11125 0,
11126 4|128,1, TARGET_VAL(WebAssemblyISD::VEC_SHR_S),
11127 OPC_RecordChild0,
11128 OPC_Scope, 84,
11129 OPC_MoveChild1,
11130 OPC_Scope, 24,
11131 OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
11132 OPC_MoveChild0,
11133 OPC_CheckAndImm, 63,
11134 OPC_RecordChild0,
11135 OPC_MoveParent,
11136 OPC_MoveParent,
11137 OPC_CheckType, MVT::v2i64,
11138 OPC_EmitNode1None, TARGET_VAL(WebAssembly::I32_WRAP_I64),
11139 MVT::i32, 1, 1,
11140 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I64x2),
11141 MVT::v2i64, 2, 0, 2,
11142 13,
11143 OPC_CheckAndImm, 7,
11144 OPC_RecordChild0,
11145 OPC_MoveParent,
11146 OPC_CheckType, MVT::v16i8,
11147 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I8x16),
11148 MVT::v16i8, 2, 0, 1,
11149 13,
11150 OPC_CheckAndImm, 15,
11151 OPC_RecordChild0,
11152 OPC_MoveParent,
11153 OPC_CheckType, MVT::v8i16,
11154 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I16x8),
11155 MVT::v8i16, 2, 0, 1,
11156 13,
11157 OPC_CheckAndImm, 31,
11158 OPC_RecordChild0,
11159 OPC_MoveParent,
11160 OPC_CheckType, MVT::v4i32,
11161 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I32x4),
11162 MVT::v4i32, 2, 0, 1,
11163 13,
11164 OPC_CheckAndImm, 63,
11165 OPC_RecordChild0,
11166 OPC_MoveParent,
11167 OPC_CheckType, MVT::v2i64,
11168 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I64x2),
11169 MVT::v2i64, 2, 0, 1,
11170 0,
11171 43,
11172 OPC_RecordChild1,
11173 OPC_SwitchType , 8, MVT::v16i8,
11174 OPC_CheckPatternPredicate0,
11175 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I8x16),
11176 MVT::v16i8, 2, 0, 1,
11177 8, MVT::v8i16,
11178 OPC_CheckPatternPredicate0,
11179 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I16x8),
11180 MVT::v8i16, 2, 0, 1,
11181 8, MVT::v4i32,
11182 OPC_CheckPatternPredicate0,
11183 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I32x4),
11184 MVT::v4i32, 2, 0, 1,
11185 8, MVT::v2i64,
11186 OPC_CheckPatternPredicate0,
11187 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SHR_S_I64x2),
11188 MVT::v2i64, 2, 0, 1,
11189 0,
11190 0,
11191 14|128,5, TARGET_VAL(ISD::VSELECT),
11192 OPC_Scope, 12|128,1,
11193 OPC_MoveChild0,
11194 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
11195 OPC_MoveChild0,
11196 OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
11197 OPC_RecordChild0,
11198 OPC_SwitchType , 41, MVT::v4f32,
11199 OPC_CheckChild0Type, MVT::v4i32,
11200 OPC_MoveSibling1,
11201 OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
11202 OPC_RecordChild0,
11203 OPC_CheckChild0Type, MVT::v4i32,
11204 OPC_MoveParent,
11205 OPC_CheckChild2CondCode, ISD::SETOLT,
11206 OPC_MoveParent,
11207 OPC_CheckType, MVT::v4i32,
11208 OPC_Scope, 11,
11209 OPC_CheckChild1Same, 0,
11210 OPC_CheckChild2Same, 1,
11211 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F32x4),
11212 MVT::v4i32, 2, 1, 0,
11213 11,
11214 OPC_CheckChild1Same, 1,
11215 OPC_CheckChild2Same, 0,
11216 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F32x4),
11217 MVT::v4i32, 2, 0, 1,
11218 0,
11219 41, MVT::v2f64,
11220 OPC_CheckChild0Type, MVT::v2i64,
11221 OPC_MoveSibling1,
11222 OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
11223 OPC_RecordChild0,
11224 OPC_CheckChild0Type, MVT::v2i64,
11225 OPC_MoveParent,
11226 OPC_CheckChild2CondCode, ISD::SETOLT,
11227 OPC_MoveParent,
11228 OPC_CheckType, MVT::v2i64,
11229 OPC_Scope, 11,
11230 OPC_CheckChild1Same, 0,
11231 OPC_CheckChild2Same, 1,
11232 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F64x2),
11233 MVT::v2i64, 2, 1, 0,
11234 11,
11235 OPC_CheckChild1Same, 1,
11236 OPC_CheckChild2Same, 0,
11237 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F64x2),
11238 MVT::v2i64, 2, 0, 1,
11239 0,
11240 41, MVT::v8f16,
11241 OPC_CheckChild0Type, MVT::v8i16,
11242 OPC_MoveSibling1,
11243 OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
11244 OPC_RecordChild0,
11245 OPC_CheckChild0Type, MVT::v8i16,
11246 OPC_MoveParent,
11247 OPC_CheckChild2CondCode, ISD::SETOLT,
11248 OPC_MoveParent,
11249 OPC_CheckType, MVT::v8i16,
11250 OPC_Scope, 11,
11251 OPC_CheckChild1Same, 0,
11252 OPC_CheckChild2Same, 1,
11253 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F16x8),
11254 MVT::v8i16, 2, 1, 0,
11255 11,
11256 OPC_CheckChild1Same, 1,
11257 OPC_CheckChild2Same, 0,
11258 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F16x8),
11259 MVT::v8i16, 2, 0, 1,
11260 0,
11261 0,
11262 45,
11263 OPC_RecordChild0,
11264 OPC_RecordChild1,
11265 OPC_RecordChild2,
11266 OPC_SwitchType , 8, MVT::v16i8,
11267 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
11268 MVT::v16i8, 3, 1, 2, 0,
11269 8, MVT::v8i16,
11270 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
11271 MVT::v8i16, 3, 1, 2, 0,
11272 8, MVT::v4i32,
11273 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
11274 MVT::v4i32, 3, 1, 2, 0,
11275 8, MVT::v2i64,
11276 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
11277 MVT::v2i64, 3, 1, 2, 0,
11278 0,
11279 52|128,3,
11280 OPC_MoveChild0,
11281 OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
11282 OPC_RecordChild0,
11283 OPC_Scope, 13|128,1,
11284 OPC_CheckChild0Type, MVT::v4f32,
11285 OPC_RecordChild1,
11286 OPC_Scope, 33,
11287 OPC_CheckChild2CondCode, ISD::SETOLT,
11288 OPC_MoveParent,
11289 OPC_CheckType, MVT::v4f32,
11290 OPC_Scope, 12,
11291 OPC_CheckChild1Same, 0,
11292 OPC_CheckChild2Same, 1,
11293 OPC_CheckPatternPredicate0,
11294 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F32x4),
11295 MVT::v4f32, 2, 1, 0,
11296 12,
11297 OPC_CheckChild1Same, 1,
11298 OPC_CheckChild2Same, 0,
11299 OPC_CheckPatternPredicate0,
11300 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F32x4),
11301 MVT::v4f32, 2, 0, 1,
11302 0,
11303 33,
11304 OPC_CheckChild2CondCode, ISD::SETOLE,
11305 OPC_MoveParent,
11306 OPC_CheckType, MVT::v4f32,
11307 OPC_Scope, 12,
11308 OPC_CheckChild1Same, 0,
11309 OPC_CheckChild2Same, 1,
11310 OPC_CheckPatternPredicate0,
11311 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F32x4),
11312 MVT::v4f32, 2, 1, 0,
11313 12,
11314 OPC_CheckChild1Same, 1,
11315 OPC_CheckChild2Same, 0,
11316 OPC_CheckPatternPredicate0,
11317 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F32x4),
11318 MVT::v4f32, 2, 0, 1,
11319 0,
11320 33,
11321 OPC_CheckChild2CondCode, ISD::SETOGT,
11322 OPC_MoveParent,
11323 OPC_CheckType, MVT::v4f32,
11324 OPC_Scope, 12,
11325 OPC_CheckChild1Same, 1,
11326 OPC_CheckChild2Same, 0,
11327 OPC_CheckPatternPredicate0,
11328 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F32x4),
11329 MVT::v4f32, 2, 0, 1,
11330 12,
11331 OPC_CheckChild1Same, 0,
11332 OPC_CheckChild2Same, 1,
11333 OPC_CheckPatternPredicate0,
11334 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F32x4),
11335 MVT::v4f32, 2, 1, 0,
11336 0,
11337 33,
11338 OPC_CheckChild2CondCode, ISD::SETOGE,
11339 OPC_MoveParent,
11340 OPC_CheckType, MVT::v4f32,
11341 OPC_Scope, 12,
11342 OPC_CheckChild1Same, 1,
11343 OPC_CheckChild2Same, 0,
11344 OPC_CheckPatternPredicate0,
11345 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F32x4),
11346 MVT::v4f32, 2, 0, 1,
11347 12,
11348 OPC_CheckChild1Same, 0,
11349 OPC_CheckChild2Same, 1,
11350 OPC_CheckPatternPredicate0,
11351 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F32x4),
11352 MVT::v4f32, 2, 1, 0,
11353 0,
11354 0,
11355 13|128,1,
11356 OPC_CheckChild0Type, MVT::v2f64,
11357 OPC_RecordChild1,
11358 OPC_Scope, 33,
11359 OPC_CheckChild2CondCode, ISD::SETOLT,
11360 OPC_MoveParent,
11361 OPC_CheckType, MVT::v2f64,
11362 OPC_Scope, 12,
11363 OPC_CheckChild1Same, 0,
11364 OPC_CheckChild2Same, 1,
11365 OPC_CheckPatternPredicate0,
11366 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F64x2),
11367 MVT::v2f64, 2, 1, 0,
11368 12,
11369 OPC_CheckChild1Same, 1,
11370 OPC_CheckChild2Same, 0,
11371 OPC_CheckPatternPredicate0,
11372 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F64x2),
11373 MVT::v2f64, 2, 0, 1,
11374 0,
11375 33,
11376 OPC_CheckChild2CondCode, ISD::SETOLE,
11377 OPC_MoveParent,
11378 OPC_CheckType, MVT::v2f64,
11379 OPC_Scope, 12,
11380 OPC_CheckChild1Same, 0,
11381 OPC_CheckChild2Same, 1,
11382 OPC_CheckPatternPredicate0,
11383 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F64x2),
11384 MVT::v2f64, 2, 1, 0,
11385 12,
11386 OPC_CheckChild1Same, 1,
11387 OPC_CheckChild2Same, 0,
11388 OPC_CheckPatternPredicate0,
11389 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F64x2),
11390 MVT::v2f64, 2, 0, 1,
11391 0,
11392 33,
11393 OPC_CheckChild2CondCode, ISD::SETOGT,
11394 OPC_MoveParent,
11395 OPC_CheckType, MVT::v2f64,
11396 OPC_Scope, 12,
11397 OPC_CheckChild1Same, 1,
11398 OPC_CheckChild2Same, 0,
11399 OPC_CheckPatternPredicate0,
11400 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F64x2),
11401 MVT::v2f64, 2, 0, 1,
11402 12,
11403 OPC_CheckChild1Same, 0,
11404 OPC_CheckChild2Same, 1,
11405 OPC_CheckPatternPredicate0,
11406 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F64x2),
11407 MVT::v2f64, 2, 1, 0,
11408 0,
11409 33,
11410 OPC_CheckChild2CondCode, ISD::SETOGE,
11411 OPC_MoveParent,
11412 OPC_CheckType, MVT::v2f64,
11413 OPC_Scope, 12,
11414 OPC_CheckChild1Same, 1,
11415 OPC_CheckChild2Same, 0,
11416 OPC_CheckPatternPredicate0,
11417 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F64x2),
11418 MVT::v2f64, 2, 0, 1,
11419 12,
11420 OPC_CheckChild1Same, 0,
11421 OPC_CheckChild2Same, 1,
11422 OPC_CheckPatternPredicate0,
11423 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F64x2),
11424 MVT::v2f64, 2, 1, 0,
11425 0,
11426 0,
11427 13|128,1,
11428 OPC_CheckChild0Type, MVT::v8f16,
11429 OPC_RecordChild1,
11430 OPC_Scope, 33,
11431 OPC_CheckChild2CondCode, ISD::SETOLT,
11432 OPC_MoveParent,
11433 OPC_CheckType, MVT::v8f16,
11434 OPC_Scope, 12,
11435 OPC_CheckChild1Same, 0,
11436 OPC_CheckChild2Same, 1,
11437 OPC_CheckPatternPredicate5,
11438 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F16x8),
11439 MVT::v8f16, 2, 1, 0,
11440 12,
11441 OPC_CheckChild1Same, 1,
11442 OPC_CheckChild2Same, 0,
11443 OPC_CheckPatternPredicate5,
11444 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F16x8),
11445 MVT::v8f16, 2, 0, 1,
11446 0,
11447 33,
11448 OPC_CheckChild2CondCode, ISD::SETOLE,
11449 OPC_MoveParent,
11450 OPC_CheckType, MVT::v8f16,
11451 OPC_Scope, 12,
11452 OPC_CheckChild1Same, 0,
11453 OPC_CheckChild2Same, 1,
11454 OPC_CheckPatternPredicate5,
11455 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F16x8),
11456 MVT::v8f16, 2, 1, 0,
11457 12,
11458 OPC_CheckChild1Same, 1,
11459 OPC_CheckChild2Same, 0,
11460 OPC_CheckPatternPredicate5,
11461 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F16x8),
11462 MVT::v8f16, 2, 0, 1,
11463 0,
11464 33,
11465 OPC_CheckChild2CondCode, ISD::SETOGT,
11466 OPC_MoveParent,
11467 OPC_CheckType, MVT::v8f16,
11468 OPC_Scope, 12,
11469 OPC_CheckChild1Same, 1,
11470 OPC_CheckChild2Same, 0,
11471 OPC_CheckPatternPredicate5,
11472 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F16x8),
11473 MVT::v8f16, 2, 0, 1,
11474 12,
11475 OPC_CheckChild1Same, 0,
11476 OPC_CheckChild2Same, 1,
11477 OPC_CheckPatternPredicate5,
11478 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F16x8),
11479 MVT::v8f16, 2, 1, 0,
11480 0,
11481 33,
11482 OPC_CheckChild2CondCode, ISD::SETOGE,
11483 OPC_MoveParent,
11484 OPC_CheckType, MVT::v8f16,
11485 OPC_Scope, 12,
11486 OPC_CheckChild1Same, 1,
11487 OPC_CheckChild2Same, 0,
11488 OPC_CheckPatternPredicate5,
11489 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMIN_F16x8),
11490 MVT::v8f16, 2, 0, 1,
11491 12,
11492 OPC_CheckChild1Same, 0,
11493 OPC_CheckChild2Same, 1,
11494 OPC_CheckPatternPredicate5,
11495 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::PMAX_F16x8),
11496 MVT::v8f16, 2, 1, 0,
11497 0,
11498 0,
11499 0,
11500 25,
11501 OPC_RecordChild0,
11502 OPC_RecordChild1,
11503 OPC_RecordChild2,
11504 OPC_SwitchType , 8, MVT::v4f32,
11505 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
11506 MVT::v4f32, 3, 1, 2, 0,
11507 8, MVT::v2f64,
11508 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::BITSELECT),
11509 MVT::v2f64, 3, 1, 2, 0,
11510 0,
11511 0,
11512 16, TARGET_VAL(WebAssemblyISD::SWIZZLE),
11513 OPC_RecordChild0,
11514 OPC_CheckChild0Type, MVT::v16i8,
11515 OPC_RecordChild1,
11516 OPC_CheckChild1Type, MVT::v16i8,
11517 OPC_CheckType, MVT::v16i8,
11518 OPC_CheckPatternPredicate0,
11519 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::SWIZZLE),
11520 MVT::v16i8, 2, 0, 1,
11521 39, TARGET_VAL(ISD::ABS),
11522 OPC_RecordChild0,
11523 OPC_SwitchType , 7, MVT::v16i8,
11524 OPC_CheckPatternPredicate0,
11525 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_I8x16),
11526 MVT::v16i8, 1, 0,
11527 7, MVT::v8i16,
11528 OPC_CheckPatternPredicate0,
11529 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_I16x8),
11530 MVT::v8i16, 1, 0,
11531 7, MVT::v4i32,
11532 OPC_CheckPatternPredicate0,
11533 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_I32x4),
11534 MVT::v4i32, 1, 0,
11535 7, MVT::v2i64,
11536 OPC_CheckPatternPredicate0,
11537 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ABS_I64x2),
11538 MVT::v2i64, 1, 0,
11539 0,
11540 24, TARGET_VAL(ISD::SADDSAT),
11541 OPC_RecordChild0,
11542 OPC_RecordChild1,
11543 OPC_SwitchType , 8, MVT::v16i8,
11544 OPC_CheckPatternPredicate0,
11545 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_SAT_S_I8x16),
11546 MVT::v16i8, 2, 0, 1,
11547 8, MVT::v8i16,
11548 OPC_CheckPatternPredicate0,
11549 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_SAT_S_I16x8),
11550 MVT::v8i16, 2, 0, 1,
11551 0,
11552 24, TARGET_VAL(ISD::UADDSAT),
11553 OPC_RecordChild0,
11554 OPC_RecordChild1,
11555 OPC_SwitchType , 8, MVT::v16i8,
11556 OPC_CheckPatternPredicate0,
11557 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_SAT_U_I8x16),
11558 MVT::v16i8, 2, 0, 1,
11559 8, MVT::v8i16,
11560 OPC_CheckPatternPredicate0,
11561 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::ADD_SAT_U_I16x8),
11562 MVT::v8i16, 2, 0, 1,
11563 0,
11564 34, TARGET_VAL(ISD::SMIN),
11565 OPC_RecordChild0,
11566 OPC_RecordChild1,
11567 OPC_SwitchType , 8, MVT::v16i8,
11568 OPC_CheckPatternPredicate0,
11569 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_S_I8x16),
11570 MVT::v16i8, 2, 0, 1,
11571 8, MVT::v8i16,
11572 OPC_CheckPatternPredicate0,
11573 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_S_I16x8),
11574 MVT::v8i16, 2, 0, 1,
11575 8, MVT::v4i32,
11576 OPC_CheckPatternPredicate0,
11577 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_S_I32x4),
11578 MVT::v4i32, 2, 0, 1,
11579 0,
11580 34, TARGET_VAL(ISD::UMIN),
11581 OPC_RecordChild0,
11582 OPC_RecordChild1,
11583 OPC_SwitchType , 8, MVT::v16i8,
11584 OPC_CheckPatternPredicate0,
11585 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_U_I8x16),
11586 MVT::v16i8, 2, 0, 1,
11587 8, MVT::v8i16,
11588 OPC_CheckPatternPredicate0,
11589 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_U_I16x8),
11590 MVT::v8i16, 2, 0, 1,
11591 8, MVT::v4i32,
11592 OPC_CheckPatternPredicate0,
11593 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MIN_U_I32x4),
11594 MVT::v4i32, 2, 0, 1,
11595 0,
11596 34, TARGET_VAL(ISD::SMAX),
11597 OPC_RecordChild0,
11598 OPC_RecordChild1,
11599 OPC_SwitchType , 8, MVT::v16i8,
11600 OPC_CheckPatternPredicate0,
11601 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_S_I8x16),
11602 MVT::v16i8, 2, 0, 1,
11603 8, MVT::v8i16,
11604 OPC_CheckPatternPredicate0,
11605 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_S_I16x8),
11606 MVT::v8i16, 2, 0, 1,
11607 8, MVT::v4i32,
11608 OPC_CheckPatternPredicate0,
11609 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_S_I32x4),
11610 MVT::v4i32, 2, 0, 1,
11611 0,
11612 34, TARGET_VAL(ISD::UMAX),
11613 OPC_RecordChild0,
11614 OPC_RecordChild1,
11615 OPC_SwitchType , 8, MVT::v16i8,
11616 OPC_CheckPatternPredicate0,
11617 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_U_I8x16),
11618 MVT::v16i8, 2, 0, 1,
11619 8, MVT::v8i16,
11620 OPC_CheckPatternPredicate0,
11621 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_U_I16x8),
11622 MVT::v8i16, 2, 0, 1,
11623 8, MVT::v4i32,
11624 OPC_CheckPatternPredicate0,
11625 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::MAX_U_I32x4),
11626 MVT::v4i32, 2, 0, 1,
11627 0,
11628 12, TARGET_VAL(WebAssemblyISD::TRUNC_SAT_ZERO_S),
11629 OPC_RecordChild0,
11630 OPC_CheckChild0Type, MVT::v2f64,
11631 OPC_CheckType, MVT::v4i32,
11632 OPC_CheckPatternPredicate0,
11633 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::trunc_sat_zero_s_I32x4),
11634 MVT::v4i32, 1, 0,
11635 12, TARGET_VAL(WebAssemblyISD::TRUNC_SAT_ZERO_U),
11636 OPC_RecordChild0,
11637 OPC_CheckChild0Type, MVT::v2f64,
11638 OPC_CheckType, MVT::v4i32,
11639 OPC_CheckPatternPredicate0,
11640 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::trunc_sat_zero_u_I32x4),
11641 MVT::v4i32, 1, 0,
11642 36, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_S),
11643 OPC_RecordChild0,
11644 OPC_SwitchType , 9, MVT::v8i16,
11645 OPC_CheckChild0Type, MVT::v16i8,
11646 OPC_CheckPatternPredicate0,
11647 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_low_s_I16x8),
11648 MVT::v8i16, 1, 0,
11649 9, MVT::v4i32,
11650 OPC_CheckChild0Type, MVT::v8i16,
11651 OPC_CheckPatternPredicate0,
11652 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_low_s_I32x4),
11653 MVT::v4i32, 1, 0,
11654 9, MVT::v2i64,
11655 OPC_CheckChild0Type, MVT::v4i32,
11656 OPC_CheckPatternPredicate0,
11657 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_low_s_I64x2),
11658 MVT::v2i64, 1, 0,
11659 0,
11660 36, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_S),
11661 OPC_RecordChild0,
11662 OPC_SwitchType , 9, MVT::v8i16,
11663 OPC_CheckChild0Type, MVT::v16i8,
11664 OPC_CheckPatternPredicate0,
11665 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_high_s_I16x8),
11666 MVT::v8i16, 1, 0,
11667 9, MVT::v4i32,
11668 OPC_CheckChild0Type, MVT::v8i16,
11669 OPC_CheckPatternPredicate0,
11670 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_high_s_I32x4),
11671 MVT::v4i32, 1, 0,
11672 9, MVT::v2i64,
11673 OPC_CheckChild0Type, MVT::v4i32,
11674 OPC_CheckPatternPredicate0,
11675 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_high_s_I64x2),
11676 MVT::v2i64, 1, 0,
11677 0,
11678 36, TARGET_VAL(WebAssemblyISD::EXTEND_LOW_U),
11679 OPC_RecordChild0,
11680 OPC_SwitchType , 9, MVT::v8i16,
11681 OPC_CheckChild0Type, MVT::v16i8,
11682 OPC_CheckPatternPredicate0,
11683 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_low_u_I16x8),
11684 MVT::v8i16, 1, 0,
11685 9, MVT::v4i32,
11686 OPC_CheckChild0Type, MVT::v8i16,
11687 OPC_CheckPatternPredicate0,
11688 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_low_u_I32x4),
11689 MVT::v4i32, 1, 0,
11690 9, MVT::v2i64,
11691 OPC_CheckChild0Type, MVT::v4i32,
11692 OPC_CheckPatternPredicate0,
11693 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_low_u_I64x2),
11694 MVT::v2i64, 1, 0,
11695 0,
11696 36, TARGET_VAL(WebAssemblyISD::EXTEND_HIGH_U),
11697 OPC_RecordChild0,
11698 OPC_SwitchType , 9, MVT::v8i16,
11699 OPC_CheckChild0Type, MVT::v16i8,
11700 OPC_CheckPatternPredicate0,
11701 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_high_u_I16x8),
11702 MVT::v8i16, 1, 0,
11703 9, MVT::v4i32,
11704 OPC_CheckChild0Type, MVT::v8i16,
11705 OPC_CheckPatternPredicate0,
11706 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_high_u_I32x4),
11707 MVT::v4i32, 1, 0,
11708 9, MVT::v2i64,
11709 OPC_CheckChild0Type, MVT::v4i32,
11710 OPC_CheckPatternPredicate0,
11711 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::extend_high_u_I64x2),
11712 MVT::v2i64, 1, 0,
11713 0,
11714 31, TARGET_VAL(WebAssemblyISD::NARROW_U),
11715 OPC_RecordChild0,
11716 OPC_SwitchType , 12, MVT::v16i8,
11717 OPC_CheckChild0Type, MVT::v8i16,
11718 OPC_RecordChild1,
11719 OPC_CheckChild1Type, MVT::v8i16,
11720 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NARROW_U_I8x16),
11721 MVT::v16i8, 2, 0, 1,
11722 12, MVT::v8i16,
11723 OPC_CheckChild0Type, MVT::v4i32,
11724 OPC_RecordChild1,
11725 OPC_CheckChild1Type, MVT::v4i32,
11726 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::NARROW_U_I16x8),
11727 MVT::v8i16, 2, 0, 1,
11728 0,
11729 12, TARGET_VAL(WebAssemblyISD::CONVERT_LOW_S),
11730 OPC_RecordChild0,
11731 OPC_CheckChild0Type, MVT::v4i32,
11732 OPC_CheckType, MVT::v2f64,
11733 OPC_CheckPatternPredicate0,
11734 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::convert_low_s_F64x2),
11735 MVT::v2f64, 1, 0,
11736 12, TARGET_VAL(WebAssemblyISD::CONVERT_LOW_U),
11737 OPC_RecordChild0,
11738 OPC_CheckChild0Type, MVT::v4i32,
11739 OPC_CheckType, MVT::v2f64,
11740 OPC_CheckPatternPredicate0,
11741 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::convert_low_u_F64x2),
11742 MVT::v2f64, 1, 0,
11743 12, TARGET_VAL(WebAssemblyISD::DEMOTE_ZERO),
11744 OPC_RecordChild0,
11745 OPC_CheckChild0Type, MVT::v2f64,
11746 OPC_CheckType, MVT::v4f32,
11747 OPC_CheckPatternPredicate0,
11748 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::demote_zero_F32x4),
11749 MVT::v4f32, 1, 0,
11750 12, TARGET_VAL(WebAssemblyISD::PROMOTE_LOW),
11751 OPC_RecordChild0,
11752 OPC_CheckChild0Type, MVT::v4f32,
11753 OPC_CheckType, MVT::v2f64,
11754 OPC_CheckPatternPredicate0,
11755 OPC_MorphNodeTo1None, TARGET_VAL(WebAssembly::promote_low_F64x2),
11756 MVT::v2f64, 1, 0,
11757 0,
11758 0
11759 }; // Total Array size is 23576 bytes
11760
11761 #undef TARGET_VAL
11762 SelectCodeCommon(NodeToMatch: N, MatcherTable, TableSize: sizeof(MatcherTable));
11763}
11764#endif // GET_DAGISEL_BODY
11765
11766#ifdef GET_DAGISEL_DECL
11767bool CheckPatternPredicate(unsigned PredNo) const override;
11768#endif
11769#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
11770bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
11771#if DAGISEL_INLINE
11772 override
11773#endif
11774{
11775 switch (PredNo) {
11776 default: llvm_unreachable("Invalid predicate in table?");
11777 case 0: return (Subtarget->hasSIMD128());
11778 case 1: return (!Subtarget->hasAddr64()) && (Subtarget->hasAtomics());
11779 case 2: return (Subtarget->hasAddr64()) && (Subtarget->hasAtomics());
11780 case 3: return (!Subtarget->hasAddr64());
11781 case 4: return (Subtarget->hasAddr64());
11782 case 5: return (Subtarget->hasHalfPrecision()) && (Subtarget->hasSIMD128());
11783 case 6: return (Subtarget->hasReferenceTypes());
11784 case 7: return (Subtarget->hasRelaxedSIMD());
11785 case 8: return (Subtarget->hasExceptionHandling()) && (Subtarget->hasReferenceTypes());
11786 case 9: return (Subtarget->hasNontrappingFPToInt());
11787 case 10: return (!Subtarget->hasNontrappingFPToInt());
11788 case 11: return (Subtarget->hasSignExt());
11789 case 12: return (Subtarget->hasBulkMemory());
11790 case 13: return (Subtarget->hasRelaxedSIMD()) && (Subtarget->hasSIMD128());
11791 case 14: return (!Subtarget->hasAddr64()) && (TM.isPositionIndependent());
11792 case 15: return (Subtarget->hasAddr64()) && (TM.isPositionIndependent());
11793 case 16: return (Subtarget->hasExceptionHandling());
11794 case 17: return (Subtarget->hasHalfPrecision());
11795 case 18: return (!Subtarget->hasAddr64()) && (!TM.isPositionIndependent());
11796 case 19: return (Subtarget->hasAddr64()) && (!TM.isPositionIndependent());
11797 }
11798}
11799#endif // GET_DAGISEL_BODY
11800
11801#ifdef GET_DAGISEL_DECL
11802bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
11803#endif
11804#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
11805bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
11806#if DAGISEL_INLINE
11807 override
11808#endif
11809{
11810 switch (PredNo) {
11811 default: llvm_unreachable("Invalid predicate in table?");
11812 case 0: {
11813 // Predicate_LaneIdx32
11814 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11815return 0 <= Imm && Imm < 32;
11816 }
11817 case 1: {
11818 // Predicate_atomic_cmp_swap_i8
11819 // Predicate_atomic_load_8
11820 // Predicate_atomic_load_add_i8
11821 // Predicate_atomic_load_and_i8
11822 // Predicate_atomic_load_or_i8
11823 // Predicate_atomic_load_sub_i8
11824 // Predicate_atomic_load_xor_i8
11825 // Predicate_atomic_store_8
11826 // Predicate_atomic_swap_i8
11827 // Predicate_extloadi8
11828 // Predicate_sextloadi8
11829 // Predicate_zextloadi8
11830 SDNode *N = Node;
11831 (void)N;
11832if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
11833return true;
11834
11835 }
11836 case 2: {
11837 // Predicate_atomic_cmp_swap_i16
11838 // Predicate_atomic_load_16
11839 // Predicate_atomic_load_add_i16
11840 // Predicate_atomic_load_and_i16
11841 // Predicate_atomic_load_or_i16
11842 // Predicate_atomic_load_sub_i16
11843 // Predicate_atomic_load_xor_i16
11844 // Predicate_atomic_store_16
11845 // Predicate_atomic_swap_i16
11846 // Predicate_extloadi16
11847 // Predicate_sextloadi16
11848 // Predicate_zextloadi16
11849 SDNode *N = Node;
11850 (void)N;
11851if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
11852return true;
11853
11854 }
11855 case 3: {
11856 // Predicate_atomic_cmp_swap_i32
11857 // Predicate_atomic_load_32
11858 // Predicate_atomic_load_add_i32
11859 // Predicate_atomic_load_and_i32
11860 // Predicate_atomic_load_or_i32
11861 // Predicate_atomic_load_sub_i32
11862 // Predicate_atomic_load_xor_i32
11863 // Predicate_atomic_store_32
11864 // Predicate_atomic_swap_i32
11865 // Predicate_extloadi32
11866 // Predicate_sextloadi32
11867 // Predicate_zextloadi32
11868 SDNode *N = Node;
11869 (void)N;
11870if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i32) return false;
11871return true;
11872
11873 }
11874 case 4: {
11875 // Predicate_unindexedstore
11876 SDNode *N = Node;
11877 (void)N;
11878if (cast<StoreSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
11879return true;
11880
11881 }
11882 case 5: {
11883 // Predicate_store
11884 SDNode *N = Node;
11885 (void)N;
11886 if (cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
11887return true;
11888
11889 }
11890 case 6: {
11891 // Predicate_atomic_cmp_swap_i64
11892 // Predicate_atomic_load_64
11893 // Predicate_atomic_load_add_i64
11894 // Predicate_atomic_load_and_i64
11895 // Predicate_atomic_load_or_i64
11896 // Predicate_atomic_load_sub_i64
11897 // Predicate_atomic_load_xor_i64
11898 // Predicate_atomic_store_64
11899 // Predicate_atomic_swap_i64
11900 SDNode *N = Node;
11901 (void)N;
11902if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i64) return false;
11903return true;
11904
11905 }
11906 case 7: {
11907 // Predicate_load
11908 SDNode *N = Node;
11909 (void)N;
11910if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
11911return true;
11912
11913 }
11914 case 8: {
11915 // Predicate_ImmI8
11916 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11917return -(1 << (8 - 1)) <= Imm && Imm < (1 << 8);
11918 }
11919 case 9: {
11920 // Predicate_unindexedload
11921 SDNode *N = Node;
11922 (void)N;
11923if (cast<LoadSDNode>(Val: N)->getAddressingMode() != ISD::UNINDEXED) return false;
11924return true;
11925
11926 }
11927 case 10: {
11928 // Predicate_extload
11929 SDNode *N = Node;
11930 (void)N;
11931if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::EXTLOAD) return false;
11932return true;
11933
11934 }
11935 case 11: {
11936 // Predicate_LaneIdx16
11937 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11938return 0 <= Imm && Imm < 16;
11939 }
11940 case 12: {
11941 // Predicate_truncstore
11942 SDNode *N = Node;
11943 (void)N;
11944 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
11945return true;
11946
11947 }
11948 case 13: {
11949 // Predicate_sextload
11950 SDNode *N = Node;
11951 (void)N;
11952if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::SEXTLOAD) return false;
11953return true;
11954
11955 }
11956 case 14: {
11957 // Predicate_zextload
11958 SDNode *N = Node;
11959 (void)N;
11960if (cast<LoadSDNode>(Val: N)->getExtensionType() != ISD::ZEXTLOAD) return false;
11961return true;
11962
11963 }
11964 case 15: {
11965 // Predicate_ImmI16
11966 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11967return -(1 << (16 - 1)) <= Imm && Imm < (1 << 16);
11968 }
11969 case 16: {
11970 // Predicate_LaneIdx8
11971 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11972return 0 <= Imm && Imm < 8;
11973 }
11974 case 17: {
11975 // Predicate_LaneIdx4
11976 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11977return 0 <= Imm && Imm < 4;
11978 }
11979 case 18: {
11980 // Predicate_LaneIdx2
11981 int64_t Imm = cast<ConstantSDNode>(Val: Node)->getSExtValue();
11982return 0 <= Imm && Imm < 2;
11983 }
11984 case 19: {
11985 // Predicate_truncstorei8
11986 SDNode *N = Node;
11987 (void)N;
11988if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i8) return false;
11989 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
11990return true;
11991
11992 }
11993 case 20: {
11994 // Predicate_truncstorei16
11995 SDNode *N = Node;
11996 (void)N;
11997if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i16) return false;
11998 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
11999return true;
12000
12001 }
12002 case 21: {
12003 // Predicate_extloadvi8
12004 // Predicate_sextloadvi8
12005 // Predicate_zextloadvi8
12006 SDNode *N = Node;
12007 (void)N;
12008if (cast<LoadSDNode>(Val: N)->getMemoryVT().getScalarType() != MVT::i8) return false;
12009return true;
12010
12011 }
12012 case 22: {
12013 // Predicate_extloadvi16
12014 // Predicate_sextloadvi16
12015 // Predicate_zextloadvi16
12016 SDNode *N = Node;
12017 (void)N;
12018if (cast<LoadSDNode>(Val: N)->getMemoryVT().getScalarType() != MVT::i16) return false;
12019return true;
12020
12021 }
12022 case 23: {
12023 // Predicate_extloadvi32
12024 // Predicate_sextloadvi32
12025 // Predicate_zextloadvi32
12026 SDNode *N = Node;
12027 (void)N;
12028if (cast<LoadSDNode>(Val: N)->getMemoryVT().getScalarType() != MVT::i32) return false;
12029return true;
12030
12031 }
12032 case 24: {
12033 // Predicate_add_nuw
12034 SDNode *N = Node;
12035 (void)N;
12036return N->getFlags().hasNoUnsignedWrap();
12037 }
12038 case 25: {
12039 // Predicate_truncstorei32
12040 SDNode *N = Node;
12041 (void)N;
12042if (cast<MemSDNode>(Val: N)->getMemoryVT() != MVT::i32) return false;
12043 if (!cast<StoreSDNode>(Val: N)->isTruncatingStore()) return false;
12044return true;
12045
12046 }
12047 case 26: {
12048 // Predicate_bool_node
12049 SDNode *N = Node;
12050 (void)N;
12051
12052 return CurDAG->computeKnownBits(Op: SDValue(N, 0)).countMinLeadingZeros() == 31;
12053
12054 }
12055 }
12056}
12057#endif // GET_DAGISEL_BODY
12058
12059#ifdef GET_DAGISEL_DECL
12060bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
12061 SDValue N, unsigned PatternNo,
12062 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
12063#endif
12064#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
12065bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
12066 SDValue N, unsigned PatternNo,
12067 SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
12068#if DAGISEL_INLINE
12069 override
12070#endif
12071{
12072 unsigned NextRes = Result.size();
12073 switch (PatternNo) {
12074 default: llvm_unreachable("Invalid pattern # in table?");
12075 case 0:
12076 Result.resize(N: NextRes+2);
12077 return SelectAddrOperands32(Op: N, Offset&: Result[NextRes+0].first, Addr&: Result[NextRes+1].first);
12078 case 1:
12079 Result.resize(N: NextRes+2);
12080 return SelectAddrOperands64(Op: N, Offset&: Result[NextRes+0].first, Addr&: Result[NextRes+1].first);
12081 }
12082}
12083#endif // GET_DAGISEL_BODY
12084
12085
12086#ifdef DAGISEL_INLINE
12087#undef DAGISEL_INLINE
12088#endif
12089#ifdef DAGISEL_CLASS_COLONCOLON
12090#undef DAGISEL_CLASS_COLONCOLON
12091#endif
12092#ifdef GET_DAGISEL_DECL
12093#undef GET_DAGISEL_DECL
12094#endif
12095#ifdef GET_DAGISEL_BODY
12096#undef GET_DAGISEL_BODY
12097#endif
12098