• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|*                                                                            *|
3|* DAG Instruction Selector for the Mips 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 , 103|128,7, TARGET_VAL(ISD::STORE),
58  OPC_RecordMemRef,
59  OPC_RecordNode,
60  OPC_Scope, 82|128,1,
61   OPC_RecordChild1,
62   OPC_Scope, 125,
63    OPC_CheckChild1Type, MVT::f64,
64    OPC_Scope, 82,
65     OPC_RecordChild2,
66     OPC_CheckPredicate, 0,
67     OPC_CheckPredicate, 1,
68     OPC_Scope, 14,
69      OPC_CheckPatternPredicate, 0,
70      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
71      OPC_EmitMergeInputChains1_0,
72      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1_D64_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
73                    3, 1, 3, 4,
74     14,
75      OPC_CheckPatternPredicate, 1,
76      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
77      OPC_EmitMergeInputChains1_0,
78      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC164), 0|OPFL_Chain|OPFL_MemRefs,
79                    3, 1, 3, 4,
80     14,
81      OPC_CheckPatternPredicate, 2,
82      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
83      OPC_EmitMergeInputChains1_0,
84      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1), 0|OPFL_Chain|OPFL_MemRefs,
85                    3, 1, 3, 4,
86     14,
87      OPC_CheckPatternPredicate, 3,
88      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
89      OPC_EmitMergeInputChains1_0,
90      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1_MM_D32), 0|OPFL_Chain|OPFL_MemRefs,
91                    3, 1, 3, 4,
92     14,
93      OPC_CheckPatternPredicate, 4,
94      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
95      OPC_EmitMergeInputChains1_0,
96      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1_MM_D64), 0|OPFL_Chain|OPFL_MemRefs,
97                    3, 1, 3, 4,
98     0,
99    37,
100     OPC_MoveChild2,
101     OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
102     OPC_RecordChild0,
103     OPC_RecordChild1,
104     OPC_MoveParent,
105     OPC_CheckPredicate, 0,
106     OPC_CheckPredicate, 1,
107     OPC_Scope, 11,
108      OPC_CheckPatternPredicate, 5,
109      OPC_EmitMergeInputChains1_0,
110      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDXC1), 0|OPFL_Chain|OPFL_MemRefs,
111                    3, 1, 2, 3,
112     11,
113      OPC_CheckPatternPredicate, 6,
114      OPC_EmitMergeInputChains1_0,
115      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDXC164), 0|OPFL_Chain|OPFL_MemRefs,
116                    3, 1, 2, 3,
117     0,
118    0,
119   80,
120    OPC_CheckChild1Type, MVT::f32,
121    OPC_Scope, 37,
122     OPC_RecordChild2,
123     OPC_CheckPredicate, 0,
124     OPC_CheckPredicate, 1,
125     OPC_Scope, 14,
126      OPC_CheckPatternPredicate, 7,
127      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
128      OPC_EmitMergeInputChains1_0,
129      OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC1), 0|OPFL_Chain|OPFL_MemRefs,
130                    3, 1, 3, 4,
131     14,
132      OPC_CheckPatternPredicate, 8,
133      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
134      OPC_EmitMergeInputChains1_0,
135      OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC1_MM), 0|OPFL_Chain|OPFL_MemRefs,
136                    3, 1, 3, 4,
137     0,
138    37,
139     OPC_MoveChild2,
140     OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
141     OPC_RecordChild0,
142     OPC_RecordChild1,
143     OPC_MoveParent,
144     OPC_CheckPredicate, 0,
145     OPC_CheckPredicate, 1,
146     OPC_Scope, 11,
147      OPC_CheckPatternPredicate, 9,
148      OPC_EmitMergeInputChains1_0,
149      OPC_MorphNodeTo0, TARGET_VAL(Mips::SWXC1), 0|OPFL_Chain|OPFL_MemRefs,
150                    3, 1, 2, 3,
151     11,
152      OPC_CheckPatternPredicate, 10,
153      OPC_EmitMergeInputChains1_0,
154      OPC_MorphNodeTo0, TARGET_VAL(Mips::SWXC1_MM), 0|OPFL_Chain|OPFL_MemRefs,
155                    3, 1, 2, 3,
156     0,
157    0,
158   0,
159  26,
160   OPC_CheckChild1Integer, 0,
161   OPC_CheckChild1Type, MVT::i32,
162   OPC_RecordChild2,
163   OPC_CheckPredicate, 0,
164   OPC_CheckPredicate, 1,
165   OPC_CheckPatternPredicate, 7,
166   OPC_CheckComplexPat, /*CP*/1, /*#*/1,
167   OPC_EmitMergeInputChains1_0,
168   OPC_EmitRegister, MVT::i32, Mips::ZERO,
169   OPC_MorphNodeTo0, TARGET_VAL(Mips::SW), 0|OPFL_Chain|OPFL_MemRefs,
170                 3, 4, 2, 3,
171  114|128,5,
172   OPC_RecordChild1,
173   OPC_Scope, 44|128,2,
174    OPC_CheckChild1Type, MVT::i32,
175    OPC_RecordChild2,
176    OPC_CheckPredicate, 0,
177    OPC_Scope, 38,
178     OPC_CheckPredicate, 2,
179     OPC_Scope, 16,
180      OPC_CheckPredicate, 3,
181      OPC_CheckPatternPredicate, 7,
182      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
183      OPC_EmitMergeInputChains1_0,
184      OPC_MorphNodeTo0, TARGET_VAL(Mips::SB), 0|OPFL_Chain|OPFL_MemRefs,
185                    3, 1, 3, 4,
186     16,
187      OPC_CheckPredicate, 4,
188      OPC_CheckPatternPredicate, 7,
189      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
190      OPC_EmitMergeInputChains1_0,
191      OPC_MorphNodeTo0, TARGET_VAL(Mips::SH), 0|OPFL_Chain|OPFL_MemRefs,
192                    3, 1, 3, 4,
193     0,
194    79,
195     OPC_CheckPredicate, 1,
196     OPC_Scope, 14,
197      OPC_CheckPatternPredicate, 7,
198      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
199      OPC_EmitMergeInputChains1_0,
200      OPC_MorphNodeTo0, TARGET_VAL(Mips::SW), 0|OPFL_Chain|OPFL_MemRefs,
201                    3, 1, 3, 4,
202     14,
203      OPC_CheckPatternPredicate, 11,
204      OPC_CheckComplexPat, /*CP*/2, /*#*/2,
205      OPC_EmitMergeInputChains1_0,
206      OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC2), 0|OPFL_Chain|OPFL_MemRefs,
207                    3, 1, 3, 4,
208     14,
209      OPC_CheckPatternPredicate, 12,
210      OPC_CheckComplexPat, /*CP*/2, /*#*/2,
211      OPC_EmitMergeInputChains1_0,
212      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC2), 0|OPFL_Chain|OPFL_MemRefs,
213                    3, 1, 3, 4,
214     14,
215      OPC_CheckPatternPredicate, 13,
216      OPC_CheckComplexPat, /*CP*/2, /*#*/2,
217      OPC_EmitMergeInputChains1_0,
218      OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC3), 0|OPFL_Chain|OPFL_MemRefs,
219                    3, 1, 3, 4,
220     14,
221      OPC_CheckPatternPredicate, 14,
222      OPC_CheckComplexPat, /*CP*/2, /*#*/2,
223      OPC_EmitMergeInputChains1_0,
224      OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC3), 0|OPFL_Chain|OPFL_MemRefs,
225                    3, 1, 3, 4,
226     0,
227    38,
228     OPC_CheckPredicate, 2,
229     OPC_Scope, 16,
230      OPC_CheckPredicate, 3,
231      OPC_CheckPatternPredicate, 15,
232      OPC_CheckComplexPat, /*CP*/3, /*#*/2,
233      OPC_EmitMergeInputChains1_0,
234      OPC_MorphNodeTo0, TARGET_VAL(Mips::SbRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
235                    3, 1, 3, 4,
236     16,
237      OPC_CheckPredicate, 4,
238      OPC_CheckPatternPredicate, 15,
239      OPC_CheckComplexPat, /*CP*/3, /*#*/2,
240      OPC_EmitMergeInputChains1_0,
241      OPC_MorphNodeTo0, TARGET_VAL(Mips::ShRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
242                    3, 1, 3, 4,
243     0,
244    16,
245     OPC_CheckPredicate, 1,
246     OPC_CheckPatternPredicate, 15,
247     OPC_CheckComplexPat, /*CP*/4, /*#*/2,
248     OPC_EmitMergeInputChains1_0,
249     OPC_MorphNodeTo0, TARGET_VAL(Mips::SwRxSpImmX16), 0|OPFL_Chain|OPFL_MemRefs,
250                   3, 1, 3, 4,
251    38,
252     OPC_CheckPredicate, 2,
253     OPC_Scope, 16,
254      OPC_CheckPredicate, 3,
255      OPC_CheckPatternPredicate, 8,
256      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
257      OPC_EmitMergeInputChains1_0,
258      OPC_MorphNodeTo0, TARGET_VAL(Mips::SB_MM), 0|OPFL_Chain|OPFL_MemRefs,
259                    3, 1, 3, 4,
260     16,
261      OPC_CheckPredicate, 4,
262      OPC_CheckPatternPredicate, 8,
263      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
264      OPC_EmitMergeInputChains1_0,
265      OPC_MorphNodeTo0, TARGET_VAL(Mips::SH_MM), 0|OPFL_Chain|OPFL_MemRefs,
266                    3, 1, 3, 4,
267     0,
268    78,
269     OPC_CheckPredicate, 1,
270     OPC_Scope, 30,
271      OPC_CheckPatternPredicate, 8,
272      OPC_Scope, 12,
273       OPC_CheckComplexPat, /*CP*/5, /*#*/2,
274       OPC_EmitMergeInputChains1_0,
275       OPC_MorphNodeTo0, TARGET_VAL(Mips::SW16_MM), 0|OPFL_Chain|OPFL_MemRefs,
276                     3, 1, 3, 4,
277      12,
278       OPC_CheckComplexPat, /*CP*/1, /*#*/2,
279       OPC_EmitMergeInputChains1_0,
280       OPC_MorphNodeTo0, TARGET_VAL(Mips::SW_MM), 0|OPFL_Chain|OPFL_MemRefs,
281                     3, 1, 3, 4,
282      0,
283     42,
284      OPC_CheckPatternPredicate, 16,
285      OPC_Scope, 24,
286       OPC_CheckComplexPat, /*CP*/6, /*#*/2,
287       OPC_EmitMergeInputChains1_0,
288       OPC_Scope, 8,
289        OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC2_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
290                      3, 1, 3, 4,
291       8,
292        OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC2_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
293                      3, 1, 3, 4,
294       0,
295      12,
296       OPC_CheckComplexPat, /*CP*/5, /*#*/2,
297       OPC_EmitMergeInputChains1_0,
298       OPC_MorphNodeTo0, TARGET_VAL(Mips::SW16_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
299                     3, 1, 3, 4,
300      0,
301     0,
302    0,
303   39,
304    OPC_CheckChild1Type, MVT::f32,
305    OPC_RecordChild2,
306    OPC_CheckPredicate, 0,
307    OPC_CheckPredicate, 1,
308    OPC_Scope, 14,
309     OPC_CheckPatternPredicate, 17,
310     OPC_CheckComplexPat, /*CP*/2, /*#*/2,
311     OPC_EmitMergeInputChains1_0,
312     OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC1), 0|OPFL_Chain|OPFL_MemRefs,
313                   3, 1, 3, 4,
314    14,
315     OPC_CheckPatternPredicate, 18,
316     OPC_CheckComplexPat, /*CP*/2, /*#*/2,
317     OPC_EmitMergeInputChains1_0,
318     OPC_MorphNodeTo0, TARGET_VAL(Mips::SWC1_MM), 0|OPFL_Chain|OPFL_MemRefs,
319                   3, 1, 3, 4,
320    0,
321   84,
322    OPC_CheckChild1Type, MVT::f64,
323    OPC_RecordChild2,
324    OPC_CheckPredicate, 0,
325    OPC_CheckPredicate, 1,
326    OPC_Scope, 14,
327     OPC_CheckPatternPredicate, 19,
328     OPC_CheckComplexPat, /*CP*/2, /*#*/2,
329     OPC_EmitMergeInputChains1_0,
330     OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC164), 0|OPFL_Chain|OPFL_MemRefs,
331                   3, 1, 3, 4,
332    14,
333     OPC_CheckPatternPredicate, 20,
334     OPC_CheckComplexPat, /*CP*/2, /*#*/2,
335     OPC_EmitMergeInputChains1_0,
336     OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1), 0|OPFL_Chain|OPFL_MemRefs,
337                   3, 1, 3, 4,
338    14,
339     OPC_CheckPatternPredicate, 21,
340     OPC_CheckComplexPat, /*CP*/2, /*#*/2,
341     OPC_EmitMergeInputChains1_0,
342     OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1_MM_D32), 0|OPFL_Chain|OPFL_MemRefs,
343                   3, 1, 3, 4,
344    14,
345     OPC_CheckPatternPredicate, 22,
346     OPC_CheckComplexPat, /*CP*/2, /*#*/2,
347     OPC_EmitMergeInputChains1_0,
348     OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1_MM_D64), 0|OPFL_Chain|OPFL_MemRefs,
349                   3, 1, 3, 4,
350    14,
351     OPC_CheckPatternPredicate, 23,
352     OPC_CheckComplexPat, /*CP*/7, /*#*/2,
353     OPC_EmitMergeInputChains1_0,
354     OPC_MorphNodeTo0, TARGET_VAL(Mips::SDC1_D64_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
355                   3, 1, 3, 4,
356    0,
357   80,
358    OPC_CheckChild1Type, MVT::i64,
359    OPC_RecordChild2,
360    OPC_CheckPredicate, 0,
361    OPC_Scope, 55,
362     OPC_CheckPredicate, 2,
363     OPC_Scope, 16,
364      OPC_CheckPredicate, 3,
365      OPC_CheckPatternPredicate, 24,
366      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
367      OPC_EmitMergeInputChains1_0,
368      OPC_MorphNodeTo0, TARGET_VAL(Mips::SB64), 0|OPFL_Chain|OPFL_MemRefs,
369                    3, 1, 3, 4,
370     16,
371      OPC_CheckPredicate, 4,
372      OPC_CheckPatternPredicate, 24,
373      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
374      OPC_EmitMergeInputChains1_0,
375      OPC_MorphNodeTo0, TARGET_VAL(Mips::SH64), 0|OPFL_Chain|OPFL_MemRefs,
376                    3, 1, 3, 4,
377     16,
378      OPC_CheckPredicate, 5,
379      OPC_CheckPatternPredicate, 24,
380      OPC_CheckComplexPat, /*CP*/1, /*#*/2,
381      OPC_EmitMergeInputChains1_0,
382      OPC_MorphNodeTo0, TARGET_VAL(Mips::SW64), 0|OPFL_Chain|OPFL_MemRefs,
383                    3, 1, 3, 4,
384     0,
385    16,
386     OPC_CheckPredicate, 1,
387     OPC_CheckPatternPredicate, 25,
388     OPC_CheckComplexPat, /*CP*/1, /*#*/2,
389     OPC_EmitMergeInputChains1_0,
390     OPC_MorphNodeTo0, TARGET_VAL(Mips::SD), 0|OPFL_Chain|OPFL_MemRefs,
391                   3, 1, 3, 4,
392    0,
393   21,
394    OPC_CheckChild1Type, MVT::v16i8,
395    OPC_RecordChild2,
396    OPC_CheckPredicate, 0,
397    OPC_CheckPredicate, 1,
398    OPC_CheckPatternPredicate, 26,
399    OPC_CheckComplexPat, /*CP*/8, /*#*/2,
400    OPC_EmitMergeInputChains1_0,
401    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_B), 0|OPFL_Chain|OPFL_MemRefs,
402                  3, 1, 3, 4,
403   21,
404    OPC_CheckChild1Type, MVT::v8i16,
405    OPC_RecordChild2,
406    OPC_CheckPredicate, 0,
407    OPC_CheckPredicate, 1,
408    OPC_CheckPatternPredicate, 26,
409    OPC_CheckComplexPat, /*CP*/9, /*#*/2,
410    OPC_EmitMergeInputChains1_0,
411    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_H), 0|OPFL_Chain|OPFL_MemRefs,
412                  3, 1, 3, 4,
413   21,
414    OPC_CheckChild1Type, MVT::v4i32,
415    OPC_RecordChild2,
416    OPC_CheckPredicate, 0,
417    OPC_CheckPredicate, 1,
418    OPC_CheckPatternPredicate, 26,
419    OPC_CheckComplexPat, /*CP*/10, /*#*/2,
420    OPC_EmitMergeInputChains1_0,
421    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_W), 0|OPFL_Chain|OPFL_MemRefs,
422                  3, 1, 3, 4,
423   21,
424    OPC_CheckChild1Type, MVT::v2i64,
425    OPC_RecordChild2,
426    OPC_CheckPredicate, 0,
427    OPC_CheckPredicate, 1,
428    OPC_CheckPatternPredicate, 26,
429    OPC_CheckComplexPat, /*CP*/11, /*#*/2,
430    OPC_EmitMergeInputChains1_0,
431    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_D), 0|OPFL_Chain|OPFL_MemRefs,
432                  3, 1, 3, 4,
433   21,
434    OPC_CheckChild1Type, MVT::v8f16,
435    OPC_RecordChild2,
436    OPC_CheckPredicate, 0,
437    OPC_CheckPredicate, 1,
438    OPC_CheckPatternPredicate, 27,
439    OPC_CheckComplexPat, /*CP*/9, /*#*/2,
440    OPC_EmitMergeInputChains1_0,
441    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_H), 0|OPFL_Chain|OPFL_MemRefs,
442                  3, 1, 3, 4,
443   21,
444    OPC_CheckChild1Type, MVT::v4f32,
445    OPC_RecordChild2,
446    OPC_CheckPredicate, 0,
447    OPC_CheckPredicate, 1,
448    OPC_CheckPatternPredicate, 27,
449    OPC_CheckComplexPat, /*CP*/10, /*#*/2,
450    OPC_EmitMergeInputChains1_0,
451    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_W), 0|OPFL_Chain|OPFL_MemRefs,
452                  3, 1, 3, 4,
453   21,
454    OPC_CheckChild1Type, MVT::v2f64,
455    OPC_RecordChild2,
456    OPC_CheckPredicate, 0,
457    OPC_CheckPredicate, 1,
458    OPC_CheckPatternPredicate, 27,
459    OPC_CheckComplexPat, /*CP*/11, /*#*/2,
460    OPC_EmitMergeInputChains1_0,
461    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_D), 0|OPFL_Chain|OPFL_MemRefs,
462                  3, 1, 3, 4,
463   32,
464    OPC_CheckChild1Type, MVT::v2i16,
465    OPC_RecordChild2,
466    OPC_CheckPredicate, 0,
467    OPC_CheckPredicate, 1,
468    OPC_CheckPatternPredicate, 28,
469    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
470    OPC_EmitMergeInputChains1_0,
471    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
472    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
473                  MVT::i32, 2, 1, 5,
474    OPC_MorphNodeTo0, TARGET_VAL(Mips::SW), 0|OPFL_Chain|OPFL_MemRefs,
475                  3, 6, 3, 4,
476   32,
477    OPC_CheckChild1Type, MVT::v4i8,
478    OPC_RecordChild2,
479    OPC_CheckPredicate, 0,
480    OPC_CheckPredicate, 1,
481    OPC_CheckPatternPredicate, 28,
482    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
483    OPC_EmitMergeInputChains1_0,
484    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
485    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
486                  MVT::i32, 2, 1, 5,
487    OPC_MorphNodeTo0, TARGET_VAL(Mips::SW), 0|OPFL_Chain|OPFL_MemRefs,
488                  3, 6, 3, 4,
489   22,
490    OPC_CheckChild1Type, MVT::f16,
491    OPC_RecordChild2,
492    OPC_RecordChild2,
493    OPC_CheckPredicate, 0,
494    OPC_CheckPredicate, 1,
495    OPC_CheckPatternPredicate, 27,
496    OPC_CheckComplexPat, /*CP*/8, /*#*/3,
497    OPC_EmitMergeInputChains1_0,
498    OPC_MorphNodeTo0, TARGET_VAL(Mips::ST_F16), 0|OPFL_Chain|OPFL_MemRefs,
499                  3, 1, 2, 3,
500   0,
501  0,
502 109|128,11, TARGET_VAL(ISD::LOAD),
503  OPC_RecordMemRef,
504  OPC_RecordNode,
505  OPC_Scope, 121,
506   OPC_RecordChild1,
507   OPC_CheckPredicate, 6,
508   OPC_CheckType, MVT::i32,
509   OPC_Scope, 38,
510    OPC_CheckPredicate, 7,
511    OPC_Scope, 16,
512     OPC_CheckPredicate, 8,
513     OPC_CheckPatternPredicate, 7,
514     OPC_CheckComplexPat, /*CP*/0, /*#*/1,
515     OPC_EmitMergeInputChains1_0,
516     OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu), 0|OPFL_Chain|OPFL_MemRefs,
517                   MVT::i32, 2, 2, 3,
518    16,
519     OPC_CheckPredicate, 9,
520     OPC_CheckPatternPredicate, 7,
521     OPC_CheckComplexPat, /*CP*/0, /*#*/1,
522     OPC_EmitMergeInputChains1_0,
523     OPC_MorphNodeTo1, TARGET_VAL(Mips::LHu), 0|OPFL_Chain|OPFL_MemRefs,
524                   MVT::i32, 2, 2, 3,
525    0,
526   38,
527    OPC_CheckPredicate, 10,
528    OPC_Scope, 16,
529     OPC_CheckPredicate, 8,
530     OPC_CheckPatternPredicate, 7,
531     OPC_CheckComplexPat, /*CP*/0, /*#*/1,
532     OPC_EmitMergeInputChains1_0,
533     OPC_MorphNodeTo1, TARGET_VAL(Mips::LB), 0|OPFL_Chain|OPFL_MemRefs,
534                   MVT::i32, 2, 2, 3,
535    16,
536     OPC_CheckPredicate, 9,
537     OPC_CheckPatternPredicate, 7,
538     OPC_CheckComplexPat, /*CP*/0, /*#*/1,
539     OPC_EmitMergeInputChains1_0,
540     OPC_MorphNodeTo1, TARGET_VAL(Mips::LH), 0|OPFL_Chain|OPFL_MemRefs,
541                   MVT::i32, 2, 2, 3,
542    0,
543   16,
544    OPC_CheckPredicate, 11,
545    OPC_CheckPatternPredicate, 7,
546    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
547    OPC_EmitMergeInputChains1_0,
548    OPC_MorphNodeTo1, TARGET_VAL(Mips::LW), 0|OPFL_Chain|OPFL_MemRefs,
549                  MVT::i32, 2, 2, 3,
550   18,
551    OPC_CheckPredicate, 10,
552    OPC_CheckPredicate, 9,
553    OPC_CheckPatternPredicate, 8,
554    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
555    OPC_EmitMergeInputChains1_0,
556    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH_MM), 0|OPFL_Chain|OPFL_MemRefs,
557                  MVT::i32, 2, 2, 3,
558   0,
559  61,
560   OPC_MoveChild1,
561   OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
562   OPC_RecordChild0,
563   OPC_RecordChild1,
564   OPC_CheckType, MVT::i32,
565   OPC_MoveParent,
566   OPC_CheckPredicate, 6,
567   OPC_CheckType, MVT::i32,
568   OPC_Scope, 15,
569    OPC_CheckPredicate, 7,
570    OPC_CheckPredicate, 8,
571    OPC_CheckPatternPredicate, 28,
572    OPC_EmitMergeInputChains1_0,
573    OPC_MorphNodeTo1, TARGET_VAL(Mips::LBUX), 0|OPFL_Chain|OPFL_MemRefs,
574                  MVT::i32, 2, 1, 2,
575   15,
576    OPC_CheckPredicate, 10,
577    OPC_CheckPredicate, 9,
578    OPC_CheckPatternPredicate, 28,
579    OPC_EmitMergeInputChains1_0,
580    OPC_MorphNodeTo1, TARGET_VAL(Mips::LHX), 0|OPFL_Chain|OPFL_MemRefs,
581                  MVT::i32, 2, 1, 2,
582   13,
583    OPC_CheckPredicate, 11,
584    OPC_CheckPatternPredicate, 28,
585    OPC_EmitMergeInputChains1_0,
586    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWX), 0|OPFL_Chain|OPFL_MemRefs,
587                  MVT::i32, 2, 1, 2,
588   0,
589  57|128,7,
590   OPC_RecordChild1,
591   OPC_CheckPredicate, 6,
592   OPC_Scope, 20,
593    OPC_CheckPredicate, 10,
594    OPC_CheckPredicate, 8,
595    OPC_CheckType, MVT::i32,
596    OPC_CheckPatternPredicate, 7,
597    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
598    OPC_EmitMergeInputChains1_0,
599    OPC_MorphNodeTo1, TARGET_VAL(Mips::LB), 0|OPFL_Chain|OPFL_MemRefs,
600                  MVT::i32, 2, 2, 3,
601   20,
602    OPC_CheckPredicate, 7,
603    OPC_CheckPredicate, 8,
604    OPC_CheckType, MVT::i32,
605    OPC_CheckPatternPredicate, 7,
606    OPC_CheckComplexPat, /*CP*/2, /*#*/1,
607    OPC_EmitMergeInputChains1_0,
608    OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu), 0|OPFL_Chain|OPFL_MemRefs,
609                  MVT::i32, 2, 2, 3,
610   20,
611    OPC_CheckPredicate, 10,
612    OPC_CheckPredicate, 9,
613    OPC_CheckType, MVT::i32,
614    OPC_CheckPatternPredicate, 7,
615    OPC_CheckComplexPat, /*CP*/2, /*#*/1,
616    OPC_EmitMergeInputChains1_0,
617    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH), 0|OPFL_Chain|OPFL_MemRefs,
618                  MVT::i32, 2, 2, 3,
619   20,
620    OPC_CheckPredicate, 7,
621    OPC_CheckPredicate, 9,
622    OPC_CheckType, MVT::i32,
623    OPC_CheckPatternPredicate, 7,
624    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
625    OPC_EmitMergeInputChains1_0,
626    OPC_MorphNodeTo1, TARGET_VAL(Mips::LHu), 0|OPFL_Chain|OPFL_MemRefs,
627                  MVT::i32, 2, 2, 3,
628   81,
629    OPC_CheckPredicate, 11,
630    OPC_CheckType, MVT::i32,
631    OPC_Scope, 14,
632     OPC_CheckPatternPredicate, 7,
633     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
634     OPC_EmitMergeInputChains1_0,
635     OPC_MorphNodeTo1, TARGET_VAL(Mips::LW), 0|OPFL_Chain|OPFL_MemRefs,
636                   MVT::i32, 2, 2, 3,
637    14,
638     OPC_CheckPatternPredicate, 11,
639     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
640     OPC_EmitMergeInputChains1_0,
641     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC2), 0|OPFL_Chain|OPFL_MemRefs,
642                   MVT::i32, 2, 2, 3,
643    14,
644     OPC_CheckPatternPredicate, 12,
645     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
646     OPC_EmitMergeInputChains1_0,
647     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC2), 0|OPFL_Chain|OPFL_MemRefs,
648                   MVT::i32, 2, 2, 3,
649    14,
650     OPC_CheckPatternPredicate, 13,
651     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
652     OPC_EmitMergeInputChains1_0,
653     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC3), 0|OPFL_Chain|OPFL_MemRefs,
654                   MVT::i32, 2, 2, 3,
655    14,
656     OPC_CheckPatternPredicate, 14,
657     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
658     OPC_EmitMergeInputChains1_0,
659     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC3), 0|OPFL_Chain|OPFL_MemRefs,
660                   MVT::i32, 2, 2, 3,
661    0,
662   57,
663    OPC_CheckPredicate, 12,
664    OPC_CheckType, MVT::i32,
665    OPC_Scope, 16,
666     OPC_CheckPredicate, 13,
667     OPC_CheckPatternPredicate, 7,
668     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
669     OPC_EmitMergeInputChains1_0,
670     OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu), 0|OPFL_Chain|OPFL_MemRefs,
671                   MVT::i32, 2, 2, 3,
672    16,
673     OPC_CheckPredicate, 8,
674     OPC_CheckPatternPredicate, 7,
675     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
676     OPC_EmitMergeInputChains1_0,
677     OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu), 0|OPFL_Chain|OPFL_MemRefs,
678                   MVT::i32, 2, 2, 3,
679    16,
680     OPC_CheckPredicate, 9,
681     OPC_CheckPatternPredicate, 7,
682     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
683     OPC_EmitMergeInputChains1_0,
684     OPC_MorphNodeTo1, TARGET_VAL(Mips::LHu), 0|OPFL_Chain|OPFL_MemRefs,
685                   MVT::i32, 2, 2, 3,
686    0,
687   20,
688    OPC_CheckPredicate, 10,
689    OPC_CheckPredicate, 8,
690    OPC_CheckType, MVT::i64,
691    OPC_CheckPatternPredicate, 24,
692    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
693    OPC_EmitMergeInputChains1_0,
694    OPC_MorphNodeTo1, TARGET_VAL(Mips::LB64), 0|OPFL_Chain|OPFL_MemRefs,
695                  MVT::i64, 2, 2, 3,
696   20,
697    OPC_CheckPredicate, 7,
698    OPC_CheckPredicate, 8,
699    OPC_CheckType, MVT::i64,
700    OPC_CheckPatternPredicate, 24,
701    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
702    OPC_EmitMergeInputChains1_0,
703    OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu64), 0|OPFL_Chain|OPFL_MemRefs,
704                  MVT::i64, 2, 2, 3,
705   20,
706    OPC_CheckPredicate, 10,
707    OPC_CheckPredicate, 9,
708    OPC_CheckType, MVT::i64,
709    OPC_CheckPatternPredicate, 24,
710    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
711    OPC_EmitMergeInputChains1_0,
712    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH64), 0|OPFL_Chain|OPFL_MemRefs,
713                  MVT::i64, 2, 2, 3,
714   20,
715    OPC_CheckPredicate, 7,
716    OPC_CheckPredicate, 9,
717    OPC_CheckType, MVT::i64,
718    OPC_CheckPatternPredicate, 24,
719    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
720    OPC_EmitMergeInputChains1_0,
721    OPC_MorphNodeTo1, TARGET_VAL(Mips::LHu64), 0|OPFL_Chain|OPFL_MemRefs,
722                  MVT::i64, 2, 2, 3,
723   20,
724    OPC_CheckPredicate, 10,
725    OPC_CheckPredicate, 14,
726    OPC_CheckType, MVT::i64,
727    OPC_CheckPatternPredicate, 24,
728    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
729    OPC_EmitMergeInputChains1_0,
730    OPC_MorphNodeTo1, TARGET_VAL(Mips::LW64), 0|OPFL_Chain|OPFL_MemRefs,
731                  MVT::i64, 2, 2, 3,
732   20,
733    OPC_CheckPredicate, 7,
734    OPC_CheckPredicate, 14,
735    OPC_CheckType, MVT::i64,
736    OPC_CheckPatternPredicate, 25,
737    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
738    OPC_EmitMergeInputChains1_0,
739    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWu), 0|OPFL_Chain|OPFL_MemRefs,
740                  MVT::i64, 2, 2, 3,
741   18,
742    OPC_CheckPredicate, 11,
743    OPC_CheckType, MVT::i64,
744    OPC_CheckPatternPredicate, 25,
745    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
746    OPC_EmitMergeInputChains1_0,
747    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD), 0|OPFL_Chain|OPFL_MemRefs,
748                  MVT::i64, 2, 2, 3,
749   74,
750    OPC_CheckPredicate, 12,
751    OPC_CheckType, MVT::i64,
752    OPC_Scope, 16,
753     OPC_CheckPredicate, 13,
754     OPC_CheckPatternPredicate, 29,
755     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
756     OPC_EmitMergeInputChains1_0,
757     OPC_MorphNodeTo1, TARGET_VAL(Mips::LB64), 0|OPFL_Chain|OPFL_MemRefs,
758                   MVT::i64, 2, 2, 3,
759    16,
760     OPC_CheckPredicate, 8,
761     OPC_CheckPatternPredicate, 29,
762     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
763     OPC_EmitMergeInputChains1_0,
764     OPC_MorphNodeTo1, TARGET_VAL(Mips::LB64), 0|OPFL_Chain|OPFL_MemRefs,
765                   MVT::i64, 2, 2, 3,
766    16,
767     OPC_CheckPredicate, 9,
768     OPC_CheckPatternPredicate, 29,
769     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
770     OPC_EmitMergeInputChains1_0,
771     OPC_MorphNodeTo1, TARGET_VAL(Mips::LH64), 0|OPFL_Chain|OPFL_MemRefs,
772                   MVT::i64, 2, 2, 3,
773    16,
774     OPC_CheckPredicate, 14,
775     OPC_CheckPatternPredicate, 29,
776     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
777     OPC_EmitMergeInputChains1_0,
778     OPC_MorphNodeTo1, TARGET_VAL(Mips::LW64), 0|OPFL_Chain|OPFL_MemRefs,
779                   MVT::i64, 2, 2, 3,
780    0,
781   20,
782    OPC_CheckPredicate, 10,
783    OPC_CheckPredicate, 8,
784    OPC_CheckType, MVT::i32,
785    OPC_CheckPatternPredicate, 15,
786    OPC_CheckComplexPat, /*CP*/3, /*#*/1,
787    OPC_EmitMergeInputChains1_0,
788    OPC_MorphNodeTo1, TARGET_VAL(Mips::LbRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
789                  MVT::i32, 2, 2, 3,
790   20,
791    OPC_CheckPredicate, 7,
792    OPC_CheckPredicate, 8,
793    OPC_CheckType, MVT::i32,
794    OPC_CheckPatternPredicate, 15,
795    OPC_CheckComplexPat, /*CP*/3, /*#*/1,
796    OPC_EmitMergeInputChains1_0,
797    OPC_MorphNodeTo1, TARGET_VAL(Mips::LbuRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
798                  MVT::i32, 2, 2, 3,
799   20,
800    OPC_CheckPredicate, 10,
801    OPC_CheckPredicate, 9,
802    OPC_CheckType, MVT::i32,
803    OPC_CheckPatternPredicate, 15,
804    OPC_CheckComplexPat, /*CP*/3, /*#*/1,
805    OPC_EmitMergeInputChains1_0,
806    OPC_MorphNodeTo1, TARGET_VAL(Mips::LhRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
807                  MVT::i32, 2, 2, 3,
808   20,
809    OPC_CheckPredicate, 7,
810    OPC_CheckPredicate, 9,
811    OPC_CheckType, MVT::i32,
812    OPC_CheckPatternPredicate, 15,
813    OPC_CheckComplexPat, /*CP*/3, /*#*/1,
814    OPC_EmitMergeInputChains1_0,
815    OPC_MorphNodeTo1, TARGET_VAL(Mips::LhuRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
816                  MVT::i32, 2, 2, 3,
817   18,
818    OPC_CheckPredicate, 11,
819    OPC_CheckType, MVT::i32,
820    OPC_CheckPatternPredicate, 15,
821    OPC_CheckComplexPat, /*CP*/4, /*#*/1,
822    OPC_EmitMergeInputChains1_0,
823    OPC_MorphNodeTo1, TARGET_VAL(Mips::LwRxSpImmX16), 0|OPFL_Chain|OPFL_MemRefs,
824                  MVT::i32, 2, 2, 3,
825   40,
826    OPC_CheckPredicate, 12,
827    OPC_CheckType, MVT::i32,
828    OPC_Scope, 16,
829     OPC_CheckPredicate, 8,
830     OPC_CheckPatternPredicate, 15,
831     OPC_CheckComplexPat, /*CP*/3, /*#*/1,
832     OPC_EmitMergeInputChains1_0,
833     OPC_MorphNodeTo1, TARGET_VAL(Mips::LbuRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
834                   MVT::i32, 2, 2, 3,
835    16,
836     OPC_CheckPredicate, 9,
837     OPC_CheckPatternPredicate, 15,
838     OPC_CheckComplexPat, /*CP*/3, /*#*/1,
839     OPC_EmitMergeInputChains1_0,
840     OPC_MorphNodeTo1, TARGET_VAL(Mips::LhuRxRyOffMemX16), 0|OPFL_Chain|OPFL_MemRefs,
841                   MVT::i32, 2, 2, 3,
842    0,
843   20,
844    OPC_CheckPredicate, 10,
845    OPC_CheckPredicate, 8,
846    OPC_CheckType, MVT::i32,
847    OPC_CheckPatternPredicate, 8,
848    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
849    OPC_EmitMergeInputChains1_0,
850    OPC_MorphNodeTo1, TARGET_VAL(Mips::LB_MM), 0|OPFL_Chain|OPFL_MemRefs,
851                  MVT::i32, 2, 2, 3,
852   20,
853    OPC_CheckPredicate, 7,
854    OPC_CheckPredicate, 8,
855    OPC_CheckType, MVT::i32,
856    OPC_CheckPatternPredicate, 8,
857    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
858    OPC_EmitMergeInputChains1_0,
859    OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu_MM), 0|OPFL_Chain|OPFL_MemRefs,
860                  MVT::i32, 2, 2, 3,
861   20,
862    OPC_CheckPredicate, 10,
863    OPC_CheckPredicate, 9,
864    OPC_CheckType, MVT::i32,
865    OPC_CheckPatternPredicate, 8,
866    OPC_CheckComplexPat, /*CP*/2, /*#*/1,
867    OPC_EmitMergeInputChains1_0,
868    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH_MM), 0|OPFL_Chain|OPFL_MemRefs,
869                  MVT::i32, 2, 2, 3,
870   40,
871    OPC_CheckPredicate, 7,
872    OPC_CheckType, MVT::i32,
873    OPC_Scope, 16,
874     OPC_CheckPredicate, 9,
875     OPC_CheckPatternPredicate, 8,
876     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
877     OPC_EmitMergeInputChains1_0,
878     OPC_MorphNodeTo1, TARGET_VAL(Mips::LHu_MM), 0|OPFL_Chain|OPFL_MemRefs,
879                   MVT::i32, 2, 2, 3,
880    16,
881     OPC_CheckPredicate, 14,
882     OPC_CheckPatternPredicate, 30,
883     OPC_CheckComplexPat, /*CP*/12, /*#*/1,
884     OPC_EmitMergeInputChains1_0,
885     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWU_MM), 0|OPFL_Chain|OPFL_MemRefs,
886                   MVT::i32, 2, 2, 3,
887    0,
888   34,
889    OPC_CheckPredicate, 11,
890    OPC_CheckType, MVT::i32,
891    OPC_CheckPatternPredicate, 8,
892    OPC_Scope, 12,
893     OPC_CheckComplexPat, /*CP*/5, /*#*/1,
894     OPC_EmitMergeInputChains1_0,
895     OPC_MorphNodeTo1, TARGET_VAL(Mips::LW16_MM), 0|OPFL_Chain|OPFL_MemRefs,
896                   MVT::i32, 2, 2, 3,
897    12,
898     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
899     OPC_EmitMergeInputChains1_0,
900     OPC_MorphNodeTo1, TARGET_VAL(Mips::LW_MM), 0|OPFL_Chain|OPFL_MemRefs,
901                   MVT::i32, 2, 2, 3,
902    0,
903   57,
904    OPC_CheckPredicate, 12,
905    OPC_CheckType, MVT::i32,
906    OPC_Scope, 16,
907     OPC_CheckPredicate, 13,
908     OPC_CheckPatternPredicate, 8,
909     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
910     OPC_EmitMergeInputChains1_0,
911     OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu_MM), 0|OPFL_Chain|OPFL_MemRefs,
912                   MVT::i32, 2, 2, 3,
913    16,
914     OPC_CheckPredicate, 8,
915     OPC_CheckPatternPredicate, 8,
916     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
917     OPC_EmitMergeInputChains1_0,
918     OPC_MorphNodeTo1, TARGET_VAL(Mips::LBu_MM), 0|OPFL_Chain|OPFL_MemRefs,
919                   MVT::i32, 2, 2, 3,
920    16,
921     OPC_CheckPredicate, 9,
922     OPC_CheckPatternPredicate, 8,
923     OPC_CheckComplexPat, /*CP*/1, /*#*/1,
924     OPC_EmitMergeInputChains1_0,
925     OPC_MorphNodeTo1, TARGET_VAL(Mips::LHu_MM), 0|OPFL_Chain|OPFL_MemRefs,
926                   MVT::i32, 2, 2, 3,
927    0,
928   33|128,1,
929    OPC_CheckPredicate, 11,
930    OPC_SwitchType , 42, MVT::i32,
931     OPC_CheckPatternPredicate, 16,
932     OPC_Scope, 12,
933      OPC_CheckComplexPat, /*CP*/2, /*#*/1,
934      OPC_EmitMergeInputChains1_0,
935      OPC_MorphNodeTo1, TARGET_VAL(Mips::LW_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
936                    MVT::i32, 2, 2, 3,
937     24,
938      OPC_CheckComplexPat, /*CP*/6, /*#*/1,
939      OPC_EmitMergeInputChains1_0,
940      OPC_Scope, 8,
941       OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC2_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
942                     MVT::i32, 2, 2, 3,
943      8,
944       OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC2_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
945                     MVT::i32, 2, 2, 3,
946      0,
947     0,
948    77, MVT::f64,
949     OPC_Scope, 14,
950      OPC_CheckPatternPredicate, 0,
951      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
952      OPC_EmitMergeInputChains1_0,
953      OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1_D64_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
954                    MVT::f64, 2, 2, 3,
955     14,
956      OPC_CheckPatternPredicate, 1,
957      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
958      OPC_EmitMergeInputChains1_0,
959      OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC164), 0|OPFL_Chain|OPFL_MemRefs,
960                    MVT::f64, 2, 2, 3,
961     14,
962      OPC_CheckPatternPredicate, 2,
963      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
964      OPC_EmitMergeInputChains1_0,
965      OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1), 0|OPFL_Chain|OPFL_MemRefs,
966                    MVT::f64, 2, 2, 3,
967     14,
968      OPC_CheckPatternPredicate, 3,
969      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
970      OPC_EmitMergeInputChains1_0,
971      OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1_MM_D32), 0|OPFL_Chain|OPFL_MemRefs,
972                    MVT::f64, 2, 2, 3,
973     14,
974      OPC_CheckPatternPredicate, 4,
975      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
976      OPC_EmitMergeInputChains1_0,
977      OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1_MM_D64), 0|OPFL_Chain|OPFL_MemRefs,
978                    MVT::f64, 2, 2, 3,
979     0,
980    32, MVT::f32,
981     OPC_Scope, 14,
982      OPC_CheckPatternPredicate, 7,
983      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
984      OPC_EmitMergeInputChains1_0,
985      OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC1), 0|OPFL_Chain|OPFL_MemRefs,
986                    MVT::f32, 2, 2, 3,
987     14,
988      OPC_CheckPatternPredicate, 8,
989      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
990      OPC_EmitMergeInputChains1_0,
991      OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC1_MM), 0|OPFL_Chain|OPFL_MemRefs,
992                    MVT::f32, 2, 2, 3,
993     0,
994    0,
995   0,
996  69,
997   OPC_MoveChild1,
998   OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
999   OPC_RecordChild0,
1000   OPC_RecordChild1,
1001   OPC_MoveParent,
1002   OPC_CheckPredicate, 6,
1003   OPC_CheckPredicate, 11,
1004   OPC_SwitchType , 26, MVT::f32,
1005    OPC_Scope, 11,
1006     OPC_CheckPatternPredicate, 9,
1007     OPC_EmitMergeInputChains1_0,
1008     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWXC1), 0|OPFL_Chain|OPFL_MemRefs,
1009                   MVT::f32, 2, 1, 2,
1010    11,
1011     OPC_CheckPatternPredicate, 10,
1012     OPC_EmitMergeInputChains1_0,
1013     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWXC1_MM), 0|OPFL_Chain|OPFL_MemRefs,
1014                   MVT::f32, 2, 1, 2,
1015    0,
1016   26, MVT::f64,
1017    OPC_Scope, 11,
1018     OPC_CheckPatternPredicate, 5,
1019     OPC_EmitMergeInputChains1_0,
1020     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDXC1), 0|OPFL_Chain|OPFL_MemRefs,
1021                   MVT::f64, 2, 1, 2,
1022    11,
1023     OPC_CheckPatternPredicate, 6,
1024     OPC_EmitMergeInputChains1_0,
1025     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDXC164), 0|OPFL_Chain|OPFL_MemRefs,
1026                   MVT::f64, 2, 1, 2,
1027    0,
1028   0,
1029  46|128,2,
1030   OPC_RecordChild1,
1031   OPC_CheckPredicate, 6,
1032   OPC_CheckPredicate, 11,
1033   OPC_SwitchType , 32, MVT::f32,
1034    OPC_Scope, 14,
1035     OPC_CheckPatternPredicate, 17,
1036     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1037     OPC_EmitMergeInputChains1_0,
1038     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC1), 0|OPFL_Chain|OPFL_MemRefs,
1039                   MVT::f32, 2, 2, 3,
1040    14,
1041     OPC_CheckPatternPredicate, 18,
1042     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1043     OPC_EmitMergeInputChains1_0,
1044     OPC_MorphNodeTo1, TARGET_VAL(Mips::LWC1_MM), 0|OPFL_Chain|OPFL_MemRefs,
1045                   MVT::f32, 2, 2, 3,
1046    0,
1047   77, MVT::f64,
1048    OPC_Scope, 14,
1049     OPC_CheckPatternPredicate, 19,
1050     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1051     OPC_EmitMergeInputChains1_0,
1052     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC164), 0|OPFL_Chain|OPFL_MemRefs,
1053                   MVT::f64, 2, 2, 3,
1054    14,
1055     OPC_CheckPatternPredicate, 20,
1056     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1057     OPC_EmitMergeInputChains1_0,
1058     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1), 0|OPFL_Chain|OPFL_MemRefs,
1059                   MVT::f64, 2, 2, 3,
1060    14,
1061     OPC_CheckPatternPredicate, 21,
1062     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1063     OPC_EmitMergeInputChains1_0,
1064     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1_MM_D32), 0|OPFL_Chain|OPFL_MemRefs,
1065                   MVT::f64, 2, 2, 3,
1066    14,
1067     OPC_CheckPatternPredicate, 22,
1068     OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1069     OPC_EmitMergeInputChains1_0,
1070     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1_MM_D64), 0|OPFL_Chain|OPFL_MemRefs,
1071                   MVT::f64, 2, 2, 3,
1072    14,
1073     OPC_CheckPatternPredicate, 23,
1074     OPC_CheckComplexPat, /*CP*/7, /*#*/1,
1075     OPC_EmitMergeInputChains1_0,
1076     OPC_MorphNodeTo1, TARGET_VAL(Mips::LDC1_D64_MMR6), 0|OPFL_Chain|OPFL_MemRefs,
1077                   MVT::f64, 2, 2, 3,
1078    0,
1079   14, MVT::f16,
1080    OPC_CheckPatternPredicate, 27,
1081    OPC_CheckComplexPat, /*CP*/8, /*#*/1,
1082    OPC_EmitMergeInputChains1_0,
1083    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_F16), 0|OPFL_Chain|OPFL_MemRefs,
1084                  MVT::f16, 2, 2, 3,
1085   14, MVT::v16i8,
1086    OPC_CheckPatternPredicate, 26,
1087    OPC_CheckComplexPat, /*CP*/8, /*#*/1,
1088    OPC_EmitMergeInputChains1_0,
1089    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_B), 0|OPFL_Chain|OPFL_MemRefs,
1090                  MVT::v16i8, 2, 2, 3,
1091   14, MVT::v8i16,
1092    OPC_CheckPatternPredicate, 26,
1093    OPC_CheckComplexPat, /*CP*/9, /*#*/1,
1094    OPC_EmitMergeInputChains1_0,
1095    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_H), 0|OPFL_Chain|OPFL_MemRefs,
1096                  MVT::v8i16, 2, 2, 3,
1097   14, MVT::v4i32,
1098    OPC_CheckPatternPredicate, 26,
1099    OPC_CheckComplexPat, /*CP*/10, /*#*/1,
1100    OPC_EmitMergeInputChains1_0,
1101    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_W), 0|OPFL_Chain|OPFL_MemRefs,
1102                  MVT::v4i32, 2, 2, 3,
1103   14, MVT::v2i64,
1104    OPC_CheckPatternPredicate, 26,
1105    OPC_CheckComplexPat, /*CP*/11, /*#*/1,
1106    OPC_EmitMergeInputChains1_0,
1107    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_D), 0|OPFL_Chain|OPFL_MemRefs,
1108                  MVT::v2i64, 2, 2, 3,
1109   25, MVT::v2i16,
1110    OPC_CheckPatternPredicate, 28,
1111    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
1112    OPC_EmitMergeInputChains1_0,
1113    OPC_EmitNode1, TARGET_VAL(Mips::LW), 0|OPFL_Chain|OPFL_MemRefs,
1114                  MVT::i32, 2, 2, 3,
1115    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
1116    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
1117                  MVT::v2i16, 2, 4, 5,
1118   25, MVT::v4i8,
1119    OPC_CheckPatternPredicate, 28,
1120    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
1121    OPC_EmitMergeInputChains1_0,
1122    OPC_EmitNode1, TARGET_VAL(Mips::LW), 0|OPFL_Chain|OPFL_MemRefs,
1123                  MVT::i32, 2, 2, 3,
1124    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
1125    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
1126                  MVT::v4i8, 2, 4, 5,
1127   14, MVT::v8f16,
1128    OPC_CheckPatternPredicate, 27,
1129    OPC_CheckComplexPat, /*CP*/9, /*#*/1,
1130    OPC_EmitMergeInputChains1_0,
1131    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_H), 0|OPFL_Chain|OPFL_MemRefs,
1132                  MVT::v8f16, 2, 2, 3,
1133   14, MVT::v4f32,
1134    OPC_CheckPatternPredicate, 27,
1135    OPC_CheckComplexPat, /*CP*/10, /*#*/1,
1136    OPC_EmitMergeInputChains1_0,
1137    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_W), 0|OPFL_Chain|OPFL_MemRefs,
1138                  MVT::v4f32, 2, 2, 3,
1139   14, MVT::v2f64,
1140    OPC_CheckPatternPredicate, 27,
1141    OPC_CheckComplexPat, /*CP*/11, /*#*/1,
1142    OPC_EmitMergeInputChains1_0,
1143    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD_D), 0|OPFL_Chain|OPFL_MemRefs,
1144                  MVT::v2f64, 2, 2, 3,
1145   0,
1146  0,
1147 79|128,20, TARGET_VAL(ISD::BRCOND),
1148  OPC_RecordNode,
1149  OPC_Scope, 111|128,19,
1150   OPC_MoveChild1,
1151   OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
1152   OPC_Scope, 52|128,4,
1153    OPC_MoveChild0,
1154    OPC_CheckOpcode, TARGET_VAL(ISD::AND),
1155    OPC_Scope, 21|128,1,
1156     OPC_RecordChild0,
1157     OPC_MoveChild1,
1158     OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
1159     OPC_Scope, 68,
1160      OPC_CheckChild0Integer, 2,
1161      OPC_RecordChild1,
1162      OPC_MoveChild1,
1163      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1164      OPC_CheckPredicate, 15,
1165      OPC_CheckType, MVT::i64,
1166      OPC_MoveParent,
1167      OPC_MoveParent,
1168      OPC_CheckType, MVT::i64,
1169      OPC_MoveParent,
1170      OPC_CheckChild1Integer, 0,
1171      OPC_CheckType, MVT::i32,
1172      OPC_Scope, 22,
1173       OPC_CheckChild2CondCode, ISD::SETEQ,
1174       OPC_MoveParent,
1175       OPC_RecordChild2,
1176       OPC_MoveChild2,
1177       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1178       OPC_MoveParent,
1179       OPC_CheckPatternPredicate, 31,
1180       OPC_EmitMergeInputChains1_0,
1181       OPC_EmitConvertToTarget, 2,
1182       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT0), 0|OPFL_Chain,
1183                     3, 1, 4, 3,
1184      22,
1185       OPC_CheckChild2CondCode, ISD::SETNE,
1186       OPC_MoveParent,
1187       OPC_RecordChild2,
1188       OPC_MoveChild2,
1189       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1190       OPC_MoveParent,
1191       OPC_CheckPatternPredicate, 31,
1192       OPC_EmitMergeInputChains1_0,
1193       OPC_EmitConvertToTarget, 2,
1194       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT1), 0|OPFL_Chain,
1195                     3, 1, 4, 3,
1196      0,
1197     72,
1198      OPC_CheckChild0Integer, 0|128,0|128,0|128,0|128,32,
1199      OPC_RecordChild1,
1200      OPC_MoveChild1,
1201      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1202      OPC_CheckPredicate, 15,
1203      OPC_CheckType, MVT::i64,
1204      OPC_MoveParent,
1205      OPC_MoveParent,
1206      OPC_CheckType, MVT::i64,
1207      OPC_MoveParent,
1208      OPC_CheckChild1Integer, 0,
1209      OPC_CheckType, MVT::i32,
1210      OPC_Scope, 22,
1211       OPC_CheckChild2CondCode, ISD::SETEQ,
1212       OPC_MoveParent,
1213       OPC_RecordChild2,
1214       OPC_MoveChild2,
1215       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1216       OPC_MoveParent,
1217       OPC_CheckPatternPredicate, 31,
1218       OPC_EmitMergeInputChains1_0,
1219       OPC_EmitConvertToTarget, 2,
1220       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT032), 0|OPFL_Chain,
1221                     3, 1, 4, 3,
1222      22,
1223       OPC_CheckChild2CondCode, ISD::SETNE,
1224       OPC_MoveParent,
1225       OPC_RecordChild2,
1226       OPC_MoveChild2,
1227       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1228       OPC_MoveParent,
1229       OPC_CheckPatternPredicate, 31,
1230       OPC_EmitMergeInputChains1_0,
1231       OPC_EmitConvertToTarget, 2,
1232       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT132), 0|OPFL_Chain,
1233                     3, 1, 4, 3,
1234      0,
1235     0,
1236    22|128,1,
1237     OPC_MoveChild0,
1238     OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
1239     OPC_Scope, 69,
1240      OPC_CheckChild0Integer, 2,
1241      OPC_RecordChild1,
1242      OPC_MoveChild1,
1243      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1244      OPC_CheckPredicate, 15,
1245      OPC_CheckType, MVT::i64,
1246      OPC_MoveParent,
1247      OPC_MoveParent,
1248      OPC_RecordChild1,
1249      OPC_CheckType, MVT::i64,
1250      OPC_MoveParent,
1251      OPC_CheckChild1Integer, 0,
1252      OPC_CheckType, MVT::i32,
1253      OPC_Scope, 22,
1254       OPC_CheckChild2CondCode, ISD::SETEQ,
1255       OPC_MoveParent,
1256       OPC_RecordChild2,
1257       OPC_MoveChild2,
1258       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1259       OPC_MoveParent,
1260       OPC_CheckPatternPredicate, 31,
1261       OPC_EmitMergeInputChains1_0,
1262       OPC_EmitConvertToTarget, 1,
1263       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT0), 0|OPFL_Chain,
1264                     3, 2, 4, 3,
1265      22,
1266       OPC_CheckChild2CondCode, ISD::SETNE,
1267       OPC_MoveParent,
1268       OPC_RecordChild2,
1269       OPC_MoveChild2,
1270       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1271       OPC_MoveParent,
1272       OPC_CheckPatternPredicate, 31,
1273       OPC_EmitMergeInputChains1_0,
1274       OPC_EmitConvertToTarget, 1,
1275       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT1), 0|OPFL_Chain,
1276                     3, 2, 4, 3,
1277      0,
1278     73,
1279      OPC_CheckChild0Integer, 0|128,0|128,0|128,0|128,32,
1280      OPC_RecordChild1,
1281      OPC_MoveChild1,
1282      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1283      OPC_CheckPredicate, 15,
1284      OPC_CheckType, MVT::i64,
1285      OPC_MoveParent,
1286      OPC_MoveParent,
1287      OPC_RecordChild1,
1288      OPC_CheckType, MVT::i64,
1289      OPC_MoveParent,
1290      OPC_CheckChild1Integer, 0,
1291      OPC_CheckType, MVT::i32,
1292      OPC_Scope, 22,
1293       OPC_CheckChild2CondCode, ISD::SETEQ,
1294       OPC_MoveParent,
1295       OPC_RecordChild2,
1296       OPC_MoveChild2,
1297       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1298       OPC_MoveParent,
1299       OPC_CheckPatternPredicate, 31,
1300       OPC_EmitMergeInputChains1_0,
1301       OPC_EmitConvertToTarget, 1,
1302       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT032), 0|OPFL_Chain,
1303                     3, 2, 4, 3,
1304      22,
1305       OPC_CheckChild2CondCode, ISD::SETNE,
1306       OPC_MoveParent,
1307       OPC_RecordChild2,
1308       OPC_MoveChild2,
1309       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1310       OPC_MoveParent,
1311       OPC_CheckPatternPredicate, 31,
1312       OPC_EmitMergeInputChains1_0,
1313       OPC_EmitConvertToTarget, 1,
1314       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT132), 0|OPFL_Chain,
1315                     3, 2, 4, 3,
1316      0,
1317     0,
1318    125|128,1,
1319     OPC_RecordChild0,
1320     OPC_RecordChild1,
1321     OPC_MoveChild1,
1322     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1323     OPC_Scope, 35,
1324      OPC_CheckPredicate, 16,
1325      OPC_MoveParent,
1326      OPC_CheckType, MVT::i64,
1327      OPC_MoveParent,
1328      OPC_CheckChild1Integer, 0,
1329      OPC_CheckChild2CondCode, ISD::SETEQ,
1330      OPC_CheckType, MVT::i32,
1331      OPC_MoveParent,
1332      OPC_RecordChild2,
1333      OPC_MoveChild2,
1334      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1335      OPC_MoveParent,
1336      OPC_CheckPatternPredicate, 32,
1337      OPC_EmitMergeInputChains1_0,
1338      OPC_EmitConvertToTarget, 2,
1339      OPC_EmitNodeXForm, 0, 4,
1340      OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT0), 0|OPFL_Chain,
1341                    3, 1, 5, 3,
1342     35,
1343      OPC_CheckPredicate, 17,
1344      OPC_MoveParent,
1345      OPC_CheckType, MVT::i64,
1346      OPC_MoveParent,
1347      OPC_CheckChild1Integer, 0,
1348      OPC_CheckChild2CondCode, ISD::SETEQ,
1349      OPC_CheckType, MVT::i32,
1350      OPC_MoveParent,
1351      OPC_RecordChild2,
1352      OPC_MoveChild2,
1353      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1354      OPC_MoveParent,
1355      OPC_CheckPatternPredicate, 32,
1356      OPC_EmitMergeInputChains1_0,
1357      OPC_EmitConvertToTarget, 2,
1358      OPC_EmitNodeXForm, 1, 4,
1359      OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT032), 0|OPFL_Chain,
1360                    3, 1, 5, 3,
1361     35,
1362      OPC_CheckPredicate, 16,
1363      OPC_MoveParent,
1364      OPC_CheckType, MVT::i64,
1365      OPC_MoveParent,
1366      OPC_CheckChild1Integer, 0,
1367      OPC_CheckChild2CondCode, ISD::SETNE,
1368      OPC_CheckType, MVT::i32,
1369      OPC_MoveParent,
1370      OPC_RecordChild2,
1371      OPC_MoveChild2,
1372      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1373      OPC_MoveParent,
1374      OPC_CheckPatternPredicate, 32,
1375      OPC_EmitMergeInputChains1_0,
1376      OPC_EmitConvertToTarget, 2,
1377      OPC_EmitNodeXForm, 0, 4,
1378      OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT1), 0|OPFL_Chain,
1379                    3, 1, 5, 3,
1380     35,
1381      OPC_CheckPredicate, 17,
1382      OPC_MoveParent,
1383      OPC_CheckType, MVT::i64,
1384      OPC_MoveParent,
1385      OPC_CheckChild1Integer, 0,
1386      OPC_CheckChild2CondCode, ISD::SETNE,
1387      OPC_CheckType, MVT::i32,
1388      OPC_MoveParent,
1389      OPC_RecordChild2,
1390      OPC_MoveChild2,
1391      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1392      OPC_MoveParent,
1393      OPC_CheckPatternPredicate, 32,
1394      OPC_EmitMergeInputChains1_0,
1395      OPC_EmitConvertToTarget, 2,
1396      OPC_EmitNodeXForm, 1, 4,
1397      OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT132), 0|OPFL_Chain,
1398                    3, 1, 5, 3,
1399     100,
1400      OPC_CheckPredicate, 18,
1401      OPC_MoveParent,
1402      OPC_CheckType, MVT::i32,
1403      OPC_MoveParent,
1404      OPC_CheckChild1Integer, 0,
1405      OPC_CheckType, MVT::i32,
1406      OPC_Scope, 43,
1407       OPC_CheckChild2CondCode, ISD::SETEQ,
1408       OPC_MoveParent,
1409       OPC_RecordChild2,
1410       OPC_MoveChild2,
1411       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1412       OPC_MoveParent,
1413       OPC_CheckPatternPredicate, 32,
1414       OPC_EmitMergeInputChains1_0,
1415       OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
1416                     MVT::i64, 0,
1417       OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
1418       OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
1419                     MVT::i64, 3, 4, 1, 5,
1420       OPC_EmitConvertToTarget, 2,
1421       OPC_EmitNodeXForm, 0, 7,
1422       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT0), 0|OPFL_Chain,
1423                     3, 6, 8, 3,
1424      43,
1425       OPC_CheckChild2CondCode, ISD::SETNE,
1426       OPC_MoveParent,
1427       OPC_RecordChild2,
1428       OPC_MoveChild2,
1429       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1430       OPC_MoveParent,
1431       OPC_CheckPatternPredicate, 32,
1432       OPC_EmitMergeInputChains1_0,
1433       OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
1434                     MVT::i64, 0,
1435       OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
1436       OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
1437                     MVT::i64, 3, 4, 1, 5,
1438       OPC_EmitConvertToTarget, 2,
1439       OPC_EmitNodeXForm, 0, 7,
1440       OPC_MorphNodeTo0, TARGET_VAL(Mips::BBIT1), 0|OPFL_Chain,
1441                     3, 6, 8, 3,
1442      0,
1443     0,
1444    0,
1445   49|128,15,
1446    OPC_RecordChild0,
1447    OPC_Scope, 11|128,11,
1448     OPC_CheckChild0Type, MVT::i32,
1449     OPC_Scope, 14|128,2,
1450      OPC_CheckChild1Integer, 0,
1451      OPC_CheckType, MVT::i32,
1452      OPC_Scope, 33,
1453       OPC_CheckChild2CondCode, ISD::SETGE,
1454       OPC_MoveParent,
1455       OPC_RecordChild2,
1456       OPC_MoveChild2,
1457       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1458       OPC_MoveParent,
1459       OPC_Scope, 10,
1460        OPC_CheckPatternPredicate, 7,
1461        OPC_EmitMergeInputChains1_0,
1462        OPC_MorphNodeTo0, TARGET_VAL(Mips::BGEZ), 0|OPFL_Chain,
1463                      2, 1, 2,
1464       10,
1465        OPC_CheckPatternPredicate, 30,
1466        OPC_EmitMergeInputChains1_0,
1467        OPC_MorphNodeTo0, TARGET_VAL(Mips::BGEZ_MM), 0|OPFL_Chain,
1468                      2, 1, 2,
1469       0,
1470      33,
1471       OPC_CheckChild2CondCode, ISD::SETGT,
1472       OPC_MoveParent,
1473       OPC_RecordChild2,
1474       OPC_MoveChild2,
1475       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1476       OPC_MoveParent,
1477       OPC_Scope, 10,
1478        OPC_CheckPatternPredicate, 7,
1479        OPC_EmitMergeInputChains1_0,
1480        OPC_MorphNodeTo0, TARGET_VAL(Mips::BGTZ), 0|OPFL_Chain,
1481                      2, 1, 2,
1482       10,
1483        OPC_CheckPatternPredicate, 30,
1484        OPC_EmitMergeInputChains1_0,
1485        OPC_MorphNodeTo0, TARGET_VAL(Mips::BGTZ_MM), 0|OPFL_Chain,
1486                      2, 1, 2,
1487       0,
1488      33,
1489       OPC_CheckChild2CondCode, ISD::SETLE,
1490       OPC_MoveParent,
1491       OPC_RecordChild2,
1492       OPC_MoveChild2,
1493       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1494       OPC_MoveParent,
1495       OPC_Scope, 10,
1496        OPC_CheckPatternPredicate, 7,
1497        OPC_EmitMergeInputChains1_0,
1498        OPC_MorphNodeTo0, TARGET_VAL(Mips::BLEZ), 0|OPFL_Chain,
1499                      2, 1, 2,
1500       10,
1501        OPC_CheckPatternPredicate, 30,
1502        OPC_EmitMergeInputChains1_0,
1503        OPC_MorphNodeTo0, TARGET_VAL(Mips::BLEZ_MM), 0|OPFL_Chain,
1504                      2, 1, 2,
1505       0,
1506      33,
1507       OPC_CheckChild2CondCode, ISD::SETLT,
1508       OPC_MoveParent,
1509       OPC_RecordChild2,
1510       OPC_MoveChild2,
1511       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1512       OPC_MoveParent,
1513       OPC_Scope, 10,
1514        OPC_CheckPatternPredicate, 7,
1515        OPC_EmitMergeInputChains1_0,
1516        OPC_MorphNodeTo0, TARGET_VAL(Mips::BLTZ), 0|OPFL_Chain,
1517                      2, 1, 2,
1518       10,
1519        OPC_CheckPatternPredicate, 30,
1520        OPC_EmitMergeInputChains1_0,
1521        OPC_MorphNodeTo0, TARGET_VAL(Mips::BLTZ_MM), 0|OPFL_Chain,
1522                      2, 1, 2,
1523       0,
1524      63,
1525       OPC_CheckChild2CondCode, ISD::SETNE,
1526       OPC_MoveParent,
1527       OPC_RecordChild2,
1528       OPC_MoveChild2,
1529       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1530       OPC_MoveParent,
1531       OPC_Scope, 14,
1532        OPC_CheckPatternPredicate, 7,
1533        OPC_EmitMergeInputChains1_0,
1534        OPC_EmitRegister, MVT::i32, Mips::ZERO,
1535        OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE), 0|OPFL_Chain,
1536                      3, 1, 3, 2,
1537       10,
1538        OPC_CheckPatternPredicate, 15,
1539        OPC_EmitMergeInputChains1_0,
1540        OPC_MorphNodeTo0, TARGET_VAL(Mips::BnezRxImm16), 0|OPFL_Chain,
1541                      2, 1, 2,
1542       14,
1543        OPC_CheckPatternPredicate, 30,
1544        OPC_EmitMergeInputChains1_0,
1545        OPC_EmitRegister, MVT::i32, Mips::ZERO,
1546        OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE_MM), 0|OPFL_Chain,
1547                      3, 1, 3, 2,
1548       10,
1549        OPC_CheckPatternPredicate, 16,
1550        OPC_EmitMergeInputChains1_0,
1551        OPC_MorphNodeTo0, TARGET_VAL(Mips::BNEZC_MMR6), 0|OPFL_Chain,
1552                      2, 1, 2,
1553       0,
1554      63,
1555       OPC_CheckChild2CondCode, ISD::SETEQ,
1556       OPC_MoveParent,
1557       OPC_RecordChild2,
1558       OPC_MoveChild2,
1559       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1560       OPC_MoveParent,
1561       OPC_Scope, 14,
1562        OPC_CheckPatternPredicate, 7,
1563        OPC_EmitMergeInputChains1_0,
1564        OPC_EmitRegister, MVT::i32, Mips::ZERO,
1565        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1566                      3, 1, 3, 2,
1567       10,
1568        OPC_CheckPatternPredicate, 15,
1569        OPC_EmitMergeInputChains1_0,
1570        OPC_MorphNodeTo0, TARGET_VAL(Mips::BeqzRxImm16), 0|OPFL_Chain,
1571                      2, 1, 2,
1572       14,
1573        OPC_CheckPatternPredicate, 30,
1574        OPC_EmitMergeInputChains1_0,
1575        OPC_EmitRegister, MVT::i32, Mips::ZERO,
1576        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1577                      3, 1, 3, 2,
1578       10,
1579        OPC_CheckPatternPredicate, 16,
1580        OPC_EmitMergeInputChains1_0,
1581        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
1582                      2, 1, 2,
1583       0,
1584      0,
1585     37,
1586      OPC_CheckChild1Integer, 2,
1587      OPC_CheckChild2CondCode, ISD::SETLT,
1588      OPC_CheckType, MVT::i32,
1589      OPC_MoveParent,
1590      OPC_RecordChild2,
1591      OPC_MoveChild2,
1592      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1593      OPC_MoveParent,
1594      OPC_Scope, 10,
1595       OPC_CheckPatternPredicate, 7,
1596       OPC_EmitMergeInputChains1_0,
1597       OPC_MorphNodeTo0, TARGET_VAL(Mips::BLEZ), 0|OPFL_Chain,
1598                     2, 1, 2,
1599      10,
1600       OPC_CheckPatternPredicate, 30,
1601       OPC_EmitMergeInputChains1_0,
1602       OPC_MorphNodeTo0, TARGET_VAL(Mips::BLEZ_MM), 0|OPFL_Chain,
1603                     2, 1, 2,
1604      0,
1605     37,
1606      OPC_CheckChild1Integer, 3,
1607      OPC_CheckChild2CondCode, ISD::SETGT,
1608      OPC_CheckType, MVT::i32,
1609      OPC_MoveParent,
1610      OPC_RecordChild2,
1611      OPC_MoveChild2,
1612      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1613      OPC_MoveParent,
1614      OPC_Scope, 10,
1615       OPC_CheckPatternPredicate, 7,
1616       OPC_EmitMergeInputChains1_0,
1617       OPC_MorphNodeTo0, TARGET_VAL(Mips::BGEZ), 0|OPFL_Chain,
1618                     2, 1, 2,
1619      10,
1620       OPC_CheckPatternPredicate, 30,
1621       OPC_EmitMergeInputChains1_0,
1622       OPC_MorphNodeTo0, TARGET_VAL(Mips::BGEZ_MM), 0|OPFL_Chain,
1623                     2, 1, 2,
1624      0,
1625     41|128,8,
1626      OPC_RecordChild1,
1627      OPC_Scope, 62|128,4,
1628       OPC_MoveChild1,
1629       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1630       OPC_Scope, 75,
1631        OPC_CheckPredicate, 19,
1632        OPC_MoveParent,
1633        OPC_CheckType, MVT::i32,
1634        OPC_Scope, 33,
1635         OPC_CheckChild2CondCode, ISD::SETGE,
1636         OPC_MoveParent,
1637         OPC_RecordChild2,
1638         OPC_MoveChild2,
1639         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1640         OPC_MoveParent,
1641         OPC_CheckPatternPredicate, 7,
1642         OPC_EmitMergeInputChains1_0,
1643         OPC_EmitConvertToTarget, 2,
1644         OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
1645                       MVT::i32, 2, 1, 4,
1646         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1647         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1648                       3, 5, 6, 3,
1649        33,
1650         OPC_CheckChild2CondCode, ISD::SETUGE,
1651         OPC_MoveParent,
1652         OPC_RecordChild2,
1653         OPC_MoveChild2,
1654         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1655         OPC_MoveParent,
1656         OPC_CheckPatternPredicate, 7,
1657         OPC_EmitMergeInputChains1_0,
1658         OPC_EmitConvertToTarget, 2,
1659         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
1660                       MVT::i32, 2, 1, 4,
1661         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1662         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1663                       3, 5, 6, 3,
1664        0,
1665       81,
1666        OPC_CheckPredicate, 20,
1667        OPC_MoveParent,
1668        OPC_CheckType, MVT::i32,
1669        OPC_Scope, 36,
1670         OPC_CheckChild2CondCode, ISD::SETGT,
1671         OPC_MoveParent,
1672         OPC_RecordChild2,
1673         OPC_MoveChild2,
1674         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1675         OPC_MoveParent,
1676         OPC_CheckPatternPredicate, 7,
1677         OPC_EmitMergeInputChains1_0,
1678         OPC_EmitConvertToTarget, 2,
1679         OPC_EmitNodeXForm, 2, 4,
1680         OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
1681                       MVT::i32, 2, 1, 5,
1682         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1683         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1684                       3, 6, 7, 3,
1685        36,
1686         OPC_CheckChild2CondCode, ISD::SETUGT,
1687         OPC_MoveParent,
1688         OPC_RecordChild2,
1689         OPC_MoveChild2,
1690         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1691         OPC_MoveParent,
1692         OPC_CheckPatternPredicate, 7,
1693         OPC_EmitMergeInputChains1_0,
1694         OPC_EmitConvertToTarget, 2,
1695         OPC_EmitNodeXForm, 2, 4,
1696         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
1697                       MVT::i32, 2, 1, 5,
1698         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1699         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1700                       3, 6, 7, 3,
1701        0,
1702       75,
1703        OPC_CheckPredicate, 19,
1704        OPC_MoveParent,
1705        OPC_CheckType, MVT::i32,
1706        OPC_Scope, 33,
1707         OPC_CheckChild2CondCode, ISD::SETGE,
1708         OPC_MoveParent,
1709         OPC_RecordChild2,
1710         OPC_MoveChild2,
1711         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1712         OPC_MoveParent,
1713         OPC_CheckPatternPredicate, 30,
1714         OPC_EmitMergeInputChains1_0,
1715         OPC_EmitConvertToTarget, 2,
1716         OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
1717                       MVT::i32, 2, 1, 4,
1718         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1719         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1720                       3, 5, 6, 3,
1721        33,
1722         OPC_CheckChild2CondCode, ISD::SETUGE,
1723         OPC_MoveParent,
1724         OPC_RecordChild2,
1725         OPC_MoveChild2,
1726         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1727         OPC_MoveParent,
1728         OPC_CheckPatternPredicate, 30,
1729         OPC_EmitMergeInputChains1_0,
1730         OPC_EmitConvertToTarget, 2,
1731         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
1732                       MVT::i32, 2, 1, 4,
1733         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1734         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1735                       3, 5, 6, 3,
1736        0,
1737       81,
1738        OPC_CheckPredicate, 20,
1739        OPC_MoveParent,
1740        OPC_CheckType, MVT::i32,
1741        OPC_Scope, 36,
1742         OPC_CheckChild2CondCode, ISD::SETGT,
1743         OPC_MoveParent,
1744         OPC_RecordChild2,
1745         OPC_MoveChild2,
1746         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1747         OPC_MoveParent,
1748         OPC_CheckPatternPredicate, 30,
1749         OPC_EmitMergeInputChains1_0,
1750         OPC_EmitConvertToTarget, 2,
1751         OPC_EmitNodeXForm, 2, 4,
1752         OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
1753                       MVT::i32, 2, 1, 5,
1754         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1755         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1756                       3, 6, 7, 3,
1757        36,
1758         OPC_CheckChild2CondCode, ISD::SETUGT,
1759         OPC_MoveParent,
1760         OPC_RecordChild2,
1761         OPC_MoveChild2,
1762         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1763         OPC_MoveParent,
1764         OPC_CheckPatternPredicate, 30,
1765         OPC_EmitMergeInputChains1_0,
1766         OPC_EmitConvertToTarget, 2,
1767         OPC_EmitNodeXForm, 2, 4,
1768         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
1769                       MVT::i32, 2, 1, 5,
1770         OPC_EmitRegister, MVT::i32, Mips::ZERO,
1771         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1772                       3, 6, 7, 3,
1773        0,
1774       67,
1775        OPC_CheckPredicate, 19,
1776        OPC_MoveParent,
1777        OPC_CheckType, MVT::i32,
1778        OPC_Scope, 29,
1779         OPC_CheckChild2CondCode, ISD::SETGE,
1780         OPC_MoveParent,
1781         OPC_RecordChild2,
1782         OPC_MoveChild2,
1783         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1784         OPC_MoveParent,
1785         OPC_CheckPatternPredicate, 16,
1786         OPC_EmitMergeInputChains1_0,
1787         OPC_EmitConvertToTarget, 2,
1788         OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
1789                       MVT::i32, 2, 1, 4,
1790         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
1791                       2, 5, 3,
1792        29,
1793         OPC_CheckChild2CondCode, ISD::SETUGE,
1794         OPC_MoveParent,
1795         OPC_RecordChild2,
1796         OPC_MoveChild2,
1797         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1798         OPC_MoveParent,
1799         OPC_CheckPatternPredicate, 16,
1800         OPC_EmitMergeInputChains1_0,
1801         OPC_EmitConvertToTarget, 2,
1802         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
1803                       MVT::i32, 2, 1, 4,
1804         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
1805                       2, 5, 3,
1806        0,
1807       73,
1808        OPC_CheckPredicate, 20,
1809        OPC_MoveParent,
1810        OPC_CheckType, MVT::i32,
1811        OPC_Scope, 32,
1812         OPC_CheckChild2CondCode, ISD::SETGT,
1813         OPC_MoveParent,
1814         OPC_RecordChild2,
1815         OPC_MoveChild2,
1816         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1817         OPC_MoveParent,
1818         OPC_CheckPatternPredicate, 16,
1819         OPC_EmitMergeInputChains1_0,
1820         OPC_EmitConvertToTarget, 2,
1821         OPC_EmitNodeXForm, 2, 4,
1822         OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
1823                       MVT::i32, 2, 1, 5,
1824         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
1825                       2, 6, 3,
1826        32,
1827         OPC_CheckChild2CondCode, ISD::SETUGT,
1828         OPC_MoveParent,
1829         OPC_RecordChild2,
1830         OPC_MoveChild2,
1831         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1832         OPC_MoveParent,
1833         OPC_CheckPatternPredicate, 16,
1834         OPC_EmitMergeInputChains1_0,
1835         OPC_EmitConvertToTarget, 2,
1836         OPC_EmitNodeXForm, 2, 4,
1837         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
1838                       MVT::i32, 2, 1, 5,
1839         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
1840                       2, 6, 3,
1841        0,
1842       27,
1843        OPC_CheckPredicate, 21,
1844        OPC_MoveParent,
1845        OPC_CheckChild2CondCode, ISD::SETEQ,
1846        OPC_CheckType, MVT::i32,
1847        OPC_MoveParent,
1848        OPC_RecordChild2,
1849        OPC_MoveChild2,
1850        OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1851        OPC_MoveParent,
1852        OPC_CheckPatternPredicate, 15,
1853        OPC_EmitMergeInputChains1_0,
1854        OPC_EmitConvertToTarget, 2,
1855        OPC_MorphNodeTo0, TARGET_VAL(Mips::BteqzT8CmpiX16), 0|OPFL_Chain,
1856                      3, 1, 4, 3,
1857       53,
1858        OPC_CheckPredicate, 19,
1859        OPC_MoveParent,
1860        OPC_CheckType, MVT::i32,
1861        OPC_Scope, 22,
1862         OPC_CheckChild2CondCode, ISD::SETGE,
1863         OPC_MoveParent,
1864         OPC_RecordChild2,
1865         OPC_MoveChild2,
1866         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1867         OPC_MoveParent,
1868         OPC_CheckPatternPredicate, 15,
1869         OPC_EmitMergeInputChains1_0,
1870         OPC_EmitConvertToTarget, 2,
1871         OPC_MorphNodeTo0, TARGET_VAL(Mips::BteqzT8SltiX16), 0|OPFL_Chain,
1872                       3, 1, 4, 3,
1873        22,
1874         OPC_CheckChild2CondCode, ISD::SETLT,
1875         OPC_MoveParent,
1876         OPC_RecordChild2,
1877         OPC_MoveChild2,
1878         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1879         OPC_MoveParent,
1880         OPC_CheckPatternPredicate, 15,
1881         OPC_EmitMergeInputChains1_0,
1882         OPC_EmitConvertToTarget, 2,
1883         OPC_MorphNodeTo0, TARGET_VAL(Mips::BtnezT8SltiX16), 0|OPFL_Chain,
1884                       3, 1, 4, 3,
1885        0,
1886       27,
1887        OPC_CheckPredicate, 21,
1888        OPC_MoveParent,
1889        OPC_CheckChild2CondCode, ISD::SETNE,
1890        OPC_CheckType, MVT::i32,
1891        OPC_MoveParent,
1892        OPC_RecordChild2,
1893        OPC_MoveChild2,
1894        OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1895        OPC_MoveParent,
1896        OPC_CheckPatternPredicate, 15,
1897        OPC_EmitMergeInputChains1_0,
1898        OPC_EmitConvertToTarget, 2,
1899        OPC_MorphNodeTo0, TARGET_VAL(Mips::BtnezT8CmpiX16), 0|OPFL_Chain,
1900                      3, 1, 4, 3,
1901       0,
1902      49,
1903       OPC_CheckChild2CondCode, ISD::SETEQ,
1904       OPC_CheckType, MVT::i32,
1905       OPC_MoveParent,
1906       OPC_RecordChild2,
1907       OPC_MoveChild2,
1908       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1909       OPC_MoveParent,
1910       OPC_Scope, 11,
1911        OPC_CheckPatternPredicate, 7,
1912        OPC_EmitMergeInputChains1_0,
1913        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1914                      3, 1, 2, 3,
1915       11,
1916        OPC_CheckPatternPredicate, 30,
1917        OPC_EmitMergeInputChains1_0,
1918        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1919                      3, 1, 2, 3,
1920       11,
1921        OPC_CheckPatternPredicate, 15,
1922        OPC_EmitMergeInputChains1_0,
1923        OPC_MorphNodeTo0, TARGET_VAL(Mips::BteqzT8CmpX16), 0|OPFL_Chain,
1924                      3, 1, 2, 3,
1925       0,
1926      49,
1927       OPC_CheckChild2CondCode, ISD::SETNE,
1928       OPC_CheckType, MVT::i32,
1929       OPC_MoveParent,
1930       OPC_RecordChild2,
1931       OPC_MoveChild2,
1932       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1933       OPC_MoveParent,
1934       OPC_Scope, 11,
1935        OPC_CheckPatternPredicate, 7,
1936        OPC_EmitMergeInputChains1_0,
1937        OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE), 0|OPFL_Chain,
1938                      3, 1, 2, 3,
1939       11,
1940        OPC_CheckPatternPredicate, 30,
1941        OPC_EmitMergeInputChains1_0,
1942        OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE_MM), 0|OPFL_Chain,
1943                      3, 1, 2, 3,
1944       11,
1945        OPC_CheckPatternPredicate, 15,
1946        OPC_EmitMergeInputChains1_0,
1947        OPC_MorphNodeTo0, TARGET_VAL(Mips::BtnezT8CmpX16), 0|OPFL_Chain,
1948                      3, 1, 2, 3,
1949       0,
1950      90,
1951       OPC_CheckChild2CondCode, ISD::SETGE,
1952       OPC_CheckType, MVT::i32,
1953       OPC_MoveParent,
1954       OPC_RecordChild2,
1955       OPC_MoveChild2,
1956       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1957       OPC_MoveParent,
1958       OPC_Scope, 22,
1959        OPC_CheckPatternPredicate, 7,
1960        OPC_EmitMergeInputChains1_0,
1961        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
1962                      MVT::i32, 2, 1, 2,
1963        OPC_EmitRegister, MVT::i32, Mips::ZERO,
1964        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
1965                      3, 4, 5, 3,
1966       22,
1967        OPC_CheckPatternPredicate, 30,
1968        OPC_EmitMergeInputChains1_0,
1969        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
1970                      MVT::i32, 2, 1, 2,
1971        OPC_EmitRegister, MVT::i32, Mips::ZERO,
1972        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
1973                      3, 4, 5, 3,
1974       18,
1975        OPC_CheckPatternPredicate, 16,
1976        OPC_EmitMergeInputChains1_0,
1977        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
1978                      MVT::i32, 2, 1, 2,
1979        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
1980                      2, 4, 3,
1981       11,
1982        OPC_CheckPatternPredicate, 15,
1983        OPC_EmitMergeInputChains1_0,
1984        OPC_MorphNodeTo0, TARGET_VAL(Mips::BteqzT8SltX16), 0|OPFL_Chain,
1985                      3, 1, 2, 3,
1986       0,
1987      78,
1988       OPC_CheckChild2CondCode, ISD::SETUGE,
1989       OPC_CheckType, MVT::i32,
1990       OPC_MoveParent,
1991       OPC_RecordChild2,
1992       OPC_MoveChild2,
1993       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1994       OPC_MoveParent,
1995       OPC_Scope, 22,
1996        OPC_CheckPatternPredicate, 7,
1997        OPC_EmitMergeInputChains1_0,
1998        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
1999                      MVT::i32, 2, 1, 2,
2000        OPC_EmitRegister, MVT::i32, Mips::ZERO,
2001        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2002                      3, 4, 5, 3,
2003       22,
2004        OPC_CheckPatternPredicate, 30,
2005        OPC_EmitMergeInputChains1_0,
2006        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
2007                      MVT::i32, 2, 1, 2,
2008        OPC_EmitRegister, MVT::i32, Mips::ZERO,
2009        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
2010                      3, 4, 5, 3,
2011       18,
2012        OPC_CheckPatternPredicate, 16,
2013        OPC_EmitMergeInputChains1_0,
2014        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
2015                      MVT::i32, 2, 1, 2,
2016        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
2017                      2, 4, 3,
2018       0,
2019      90,
2020       OPC_CheckChild2CondCode, ISD::SETLE,
2021       OPC_CheckType, MVT::i32,
2022       OPC_MoveParent,
2023       OPC_RecordChild2,
2024       OPC_MoveChild2,
2025       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2026       OPC_MoveParent,
2027       OPC_Scope, 22,
2028        OPC_CheckPatternPredicate, 7,
2029        OPC_EmitMergeInputChains1_0,
2030        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
2031                      MVT::i32, 2, 2, 1,
2032        OPC_EmitRegister, MVT::i32, Mips::ZERO,
2033        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2034                      3, 4, 5, 3,
2035       22,
2036        OPC_CheckPatternPredicate, 30,
2037        OPC_EmitMergeInputChains1_0,
2038        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
2039                      MVT::i32, 2, 2, 1,
2040        OPC_EmitRegister, MVT::i32, Mips::ZERO,
2041        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
2042                      3, 4, 5, 3,
2043       18,
2044        OPC_CheckPatternPredicate, 16,
2045        OPC_EmitMergeInputChains1_0,
2046        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
2047                      MVT::i32, 2, 2, 1,
2048        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
2049                      2, 4, 3,
2050       11,
2051        OPC_CheckPatternPredicate, 15,
2052        OPC_EmitMergeInputChains1_0,
2053        OPC_MorphNodeTo0, TARGET_VAL(Mips::BteqzT8SltX16), 0|OPFL_Chain,
2054                      3, 2, 1, 3,
2055       0,
2056      78,
2057       OPC_CheckChild2CondCode, ISD::SETULE,
2058       OPC_CheckType, MVT::i32,
2059       OPC_MoveParent,
2060       OPC_RecordChild2,
2061       OPC_MoveChild2,
2062       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2063       OPC_MoveParent,
2064       OPC_Scope, 22,
2065        OPC_CheckPatternPredicate, 7,
2066        OPC_EmitMergeInputChains1_0,
2067        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
2068                      MVT::i32, 2, 2, 1,
2069        OPC_EmitRegister, MVT::i32, Mips::ZERO,
2070        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2071                      3, 4, 5, 3,
2072       22,
2073        OPC_CheckPatternPredicate, 30,
2074        OPC_EmitMergeInputChains1_0,
2075        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
2076                      MVT::i32, 2, 2, 1,
2077        OPC_EmitRegister, MVT::i32, Mips::ZERO,
2078        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ_MM), 0|OPFL_Chain,
2079                      3, 4, 5, 3,
2080       18,
2081        OPC_CheckPatternPredicate, 16,
2082        OPC_EmitMergeInputChains1_0,
2083        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
2084                      MVT::i32, 2, 2, 1,
2085        OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQZC_MMR6), 0|OPFL_Chain,
2086                      2, 4, 3,
2087       0,
2088      22,
2089       OPC_CheckChild2CondCode, ISD::SETGT,
2090       OPC_CheckType, MVT::i32,
2091       OPC_MoveParent,
2092       OPC_RecordChild2,
2093       OPC_MoveChild2,
2094       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2095       OPC_MoveParent,
2096       OPC_CheckPatternPredicate, 15,
2097       OPC_EmitMergeInputChains1_0,
2098       OPC_MorphNodeTo0, TARGET_VAL(Mips::BtnezT8SltX16), 0|OPFL_Chain,
2099                     3, 2, 1, 3,
2100      22,
2101       OPC_CheckChild2CondCode, ISD::SETLT,
2102       OPC_CheckType, MVT::i32,
2103       OPC_MoveParent,
2104       OPC_RecordChild2,
2105       OPC_MoveChild2,
2106       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2107       OPC_MoveParent,
2108       OPC_CheckPatternPredicate, 15,
2109       OPC_EmitMergeInputChains1_0,
2110       OPC_MorphNodeTo0, TARGET_VAL(Mips::BtnezT8SltX16), 0|OPFL_Chain,
2111                     3, 1, 2, 3,
2112      0,
2113     0,
2114    31|128,4,
2115     OPC_CheckChild0Type, MVT::i64,
2116     OPC_Scope, 8|128,1,
2117      OPC_CheckChild1Integer, 0,
2118      OPC_CheckType, MVT::i32,
2119      OPC_Scope, 19,
2120       OPC_CheckChild2CondCode, ISD::SETGE,
2121       OPC_MoveParent,
2122       OPC_RecordChild2,
2123       OPC_MoveChild2,
2124       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2125       OPC_MoveParent,
2126       OPC_CheckPatternPredicate, 24,
2127       OPC_EmitMergeInputChains1_0,
2128       OPC_MorphNodeTo0, TARGET_VAL(Mips::BGEZ64), 0|OPFL_Chain,
2129                     2, 1, 2,
2130      19,
2131       OPC_CheckChild2CondCode, ISD::SETGT,
2132       OPC_MoveParent,
2133       OPC_RecordChild2,
2134       OPC_MoveChild2,
2135       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2136       OPC_MoveParent,
2137       OPC_CheckPatternPredicate, 24,
2138       OPC_EmitMergeInputChains1_0,
2139       OPC_MorphNodeTo0, TARGET_VAL(Mips::BGTZ64), 0|OPFL_Chain,
2140                     2, 1, 2,
2141      19,
2142       OPC_CheckChild2CondCode, ISD::SETLE,
2143       OPC_MoveParent,
2144       OPC_RecordChild2,
2145       OPC_MoveChild2,
2146       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2147       OPC_MoveParent,
2148       OPC_CheckPatternPredicate, 24,
2149       OPC_EmitMergeInputChains1_0,
2150       OPC_MorphNodeTo0, TARGET_VAL(Mips::BLEZ64), 0|OPFL_Chain,
2151                     2, 1, 2,
2152      19,
2153       OPC_CheckChild2CondCode, ISD::SETLT,
2154       OPC_MoveParent,
2155       OPC_RecordChild2,
2156       OPC_MoveChild2,
2157       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2158       OPC_MoveParent,
2159       OPC_CheckPatternPredicate, 24,
2160       OPC_EmitMergeInputChains1_0,
2161       OPC_MorphNodeTo0, TARGET_VAL(Mips::BLTZ64), 0|OPFL_Chain,
2162                     2, 1, 2,
2163      24,
2164       OPC_CheckChild2CondCode, ISD::SETNE,
2165       OPC_MoveParent,
2166       OPC_RecordChild2,
2167       OPC_MoveChild2,
2168       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2169       OPC_MoveParent,
2170       OPC_CheckPatternPredicate, 29,
2171       OPC_EmitMergeInputChains1_0,
2172       OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
2173       OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE64), 0|OPFL_Chain,
2174                     3, 1, 3, 2,
2175      24,
2176       OPC_CheckChild2CondCode, ISD::SETEQ,
2177       OPC_MoveParent,
2178       OPC_RecordChild2,
2179       OPC_MoveChild2,
2180       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2181       OPC_MoveParent,
2182       OPC_CheckPatternPredicate, 29,
2183       OPC_EmitMergeInputChains1_0,
2184       OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
2185       OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ64), 0|OPFL_Chain,
2186                     3, 1, 3, 2,
2187      0,
2188     23,
2189      OPC_CheckChild1Integer, 2,
2190      OPC_CheckChild2CondCode, ISD::SETLT,
2191      OPC_CheckType, MVT::i32,
2192      OPC_MoveParent,
2193      OPC_RecordChild2,
2194      OPC_MoveChild2,
2195      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2196      OPC_MoveParent,
2197      OPC_CheckPatternPredicate, 29,
2198      OPC_EmitMergeInputChains1_0,
2199      OPC_MorphNodeTo0, TARGET_VAL(Mips::BLEZ64), 0|OPFL_Chain,
2200                    2, 1, 2,
2201     23,
2202      OPC_CheckChild1Integer, 3,
2203      OPC_CheckChild2CondCode, ISD::SETGT,
2204      OPC_CheckType, MVT::i32,
2205      OPC_MoveParent,
2206      OPC_RecordChild2,
2207      OPC_MoveChild2,
2208      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2209      OPC_MoveParent,
2210      OPC_CheckPatternPredicate, 29,
2211      OPC_EmitMergeInputChains1_0,
2212      OPC_MorphNodeTo0, TARGET_VAL(Mips::BGEZ64), 0|OPFL_Chain,
2213                    2, 1, 2,
2214     95|128,2,
2215      OPC_RecordChild1,
2216      OPC_Scope, 36|128,1,
2217       OPC_MoveChild1,
2218       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2219       OPC_Scope, 75,
2220        OPC_CheckPredicate, 19,
2221        OPC_MoveParent,
2222        OPC_CheckType, MVT::i32,
2223        OPC_Scope, 33,
2224         OPC_CheckChild2CondCode, ISD::SETGE,
2225         OPC_MoveParent,
2226         OPC_RecordChild2,
2227         OPC_MoveChild2,
2228         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2229         OPC_MoveParent,
2230         OPC_CheckPatternPredicate, 29,
2231         OPC_EmitMergeInputChains1_0,
2232         OPC_EmitConvertToTarget, 2,
2233         OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
2234                       MVT::i32, 2, 1, 4,
2235         OPC_EmitRegister, MVT::i32, Mips::ZERO,
2236         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2237                       3, 5, 6, 3,
2238        33,
2239         OPC_CheckChild2CondCode, ISD::SETUGE,
2240         OPC_MoveParent,
2241         OPC_RecordChild2,
2242         OPC_MoveChild2,
2243         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2244         OPC_MoveParent,
2245         OPC_CheckPatternPredicate, 29,
2246         OPC_EmitMergeInputChains1_0,
2247         OPC_EmitConvertToTarget, 2,
2248         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
2249                       MVT::i32, 2, 1, 4,
2250         OPC_EmitRegister, MVT::i32, Mips::ZERO,
2251         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2252                       3, 5, 6, 3,
2253        0,
2254       81,
2255        OPC_CheckPredicate, 20,
2256        OPC_MoveParent,
2257        OPC_CheckType, MVT::i32,
2258        OPC_Scope, 36,
2259         OPC_CheckChild2CondCode, ISD::SETGT,
2260         OPC_MoveParent,
2261         OPC_RecordChild2,
2262         OPC_MoveChild2,
2263         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2264         OPC_MoveParent,
2265         OPC_CheckPatternPredicate, 29,
2266         OPC_EmitMergeInputChains1_0,
2267         OPC_EmitConvertToTarget, 2,
2268         OPC_EmitNodeXForm, 2, 4,
2269         OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
2270                       MVT::i32, 2, 1, 5,
2271         OPC_EmitRegister, MVT::i32, Mips::ZERO,
2272         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2273                       3, 6, 7, 3,
2274        36,
2275         OPC_CheckChild2CondCode, ISD::SETUGT,
2276         OPC_MoveParent,
2277         OPC_RecordChild2,
2278         OPC_MoveChild2,
2279         OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2280         OPC_MoveParent,
2281         OPC_CheckPatternPredicate, 29,
2282         OPC_EmitMergeInputChains1_0,
2283         OPC_EmitConvertToTarget, 2,
2284         OPC_EmitNodeXForm, 2, 4,
2285         OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
2286                       MVT::i32, 2, 1, 5,
2287         OPC_EmitRegister, MVT::i32, Mips::ZERO,
2288         OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2289                       3, 6, 7, 3,
2290        0,
2291       0,
2292      22,
2293       OPC_CheckChild2CondCode, ISD::SETEQ,
2294       OPC_CheckType, MVT::i32,
2295       OPC_MoveParent,
2296       OPC_RecordChild2,
2297       OPC_MoveChild2,
2298       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2299       OPC_MoveParent,
2300       OPC_CheckPatternPredicate, 24,
2301       OPC_EmitMergeInputChains1_0,
2302       OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ64), 0|OPFL_Chain,
2303                     3, 1, 2, 3,
2304      22,
2305       OPC_CheckChild2CondCode, ISD::SETNE,
2306       OPC_CheckType, MVT::i32,
2307       OPC_MoveParent,
2308       OPC_RecordChild2,
2309       OPC_MoveChild2,
2310       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2311       OPC_MoveParent,
2312       OPC_CheckPatternPredicate, 24,
2313       OPC_EmitMergeInputChains1_0,
2314       OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE64), 0|OPFL_Chain,
2315                     3, 1, 2, 3,
2316      33,
2317       OPC_CheckChild2CondCode, ISD::SETGE,
2318       OPC_CheckType, MVT::i32,
2319       OPC_MoveParent,
2320       OPC_RecordChild2,
2321       OPC_MoveChild2,
2322       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2323       OPC_MoveParent,
2324       OPC_CheckPatternPredicate, 29,
2325       OPC_EmitMergeInputChains1_0,
2326       OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
2327                     MVT::i32, 2, 1, 2,
2328       OPC_EmitRegister, MVT::i32, Mips::ZERO,
2329       OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2330                     3, 4, 5, 3,
2331      33,
2332       OPC_CheckChild2CondCode, ISD::SETUGE,
2333       OPC_CheckType, MVT::i32,
2334       OPC_MoveParent,
2335       OPC_RecordChild2,
2336       OPC_MoveChild2,
2337       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2338       OPC_MoveParent,
2339       OPC_CheckPatternPredicate, 29,
2340       OPC_EmitMergeInputChains1_0,
2341       OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
2342                     MVT::i32, 2, 1, 2,
2343       OPC_EmitRegister, MVT::i32, Mips::ZERO,
2344       OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2345                     3, 4, 5, 3,
2346      33,
2347       OPC_CheckChild2CondCode, ISD::SETLE,
2348       OPC_CheckType, MVT::i32,
2349       OPC_MoveParent,
2350       OPC_RecordChild2,
2351       OPC_MoveChild2,
2352       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2353       OPC_MoveParent,
2354       OPC_CheckPatternPredicate, 29,
2355       OPC_EmitMergeInputChains1_0,
2356       OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
2357                     MVT::i32, 2, 2, 1,
2358       OPC_EmitRegister, MVT::i32, Mips::ZERO,
2359       OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2360                     3, 4, 5, 3,
2361      33,
2362       OPC_CheckChild2CondCode, ISD::SETULE,
2363       OPC_CheckType, MVT::i32,
2364       OPC_MoveParent,
2365       OPC_RecordChild2,
2366       OPC_MoveChild2,
2367       OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2368       OPC_MoveParent,
2369       OPC_CheckPatternPredicate, 29,
2370       OPC_EmitMergeInputChains1_0,
2371       OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
2372                     MVT::i32, 2, 2, 1,
2373       OPC_EmitRegister, MVT::i32, Mips::ZERO,
2374       OPC_MorphNodeTo0, TARGET_VAL(Mips::BEQ), 0|OPFL_Chain,
2375                     3, 4, 5, 3,
2376      0,
2377     0,
2378    0,
2379   0,
2380  90,
2381   OPC_RecordChild1,
2382   OPC_Scope, 62,
2383    OPC_CheckChild1Type, MVT::i32,
2384    OPC_RecordChild2,
2385    OPC_MoveChild2,
2386    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2387    OPC_MoveParent,
2388    OPC_Scope, 14,
2389     OPC_CheckPatternPredicate, 7,
2390     OPC_EmitMergeInputChains1_0,
2391     OPC_EmitRegister, MVT::i32, Mips::ZERO,
2392     OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE), 0|OPFL_Chain,
2393                   3, 1, 3, 2,
2394    10,
2395     OPC_CheckPatternPredicate, 15,
2396     OPC_EmitMergeInputChains1_0,
2397     OPC_MorphNodeTo0, TARGET_VAL(Mips::BnezRxImm16), 0|OPFL_Chain,
2398                   2, 1, 2,
2399    14,
2400     OPC_CheckPatternPredicate, 30,
2401     OPC_EmitMergeInputChains1_0,
2402     OPC_EmitRegister, MVT::i32, Mips::ZERO,
2403     OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE_MM), 0|OPFL_Chain,
2404                   3, 1, 3, 2,
2405    10,
2406     OPC_CheckPatternPredicate, 16,
2407     OPC_EmitMergeInputChains1_0,
2408     OPC_MorphNodeTo0, TARGET_VAL(Mips::BNEZC_MMR6), 0|OPFL_Chain,
2409                   2, 1, 2,
2410    0,
2411   23,
2412    OPC_CheckChild1Type, MVT::i64,
2413    OPC_RecordChild2,
2414    OPC_MoveChild2,
2415    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
2416    OPC_MoveParent,
2417    OPC_CheckPatternPredicate, 29,
2418    OPC_EmitMergeInputChains1_0,
2419    OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
2420    OPC_MorphNodeTo0, TARGET_VAL(Mips::BNE64), 0|OPFL_Chain,
2421                  3, 1, 3, 2,
2422   0,
2423  0,
2424 98|128,53, TARGET_VAL(ISD::SELECT),
2425  OPC_Scope, 53|128,24,
2426   OPC_MoveChild0,
2427   OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
2428   OPC_RecordChild0,
2429   OPC_Scope, 7|128,17,
2430    OPC_CheckChild0Type, MVT::i32,
2431    OPC_Scope, 49|128,2,
2432     OPC_MoveChild1,
2433     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2434     OPC_CheckPredicate, 22,
2435     OPC_MoveParent,
2436     OPC_CheckType, MVT::i32,
2437     OPC_Scope, 17|128,1,
2438      OPC_CheckChild2CondCode, ISD::SETEQ,
2439      OPC_MoveParent,
2440      OPC_Scope, 20,
2441       OPC_RecordChild1,
2442       OPC_MoveChild2,
2443       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2444       OPC_CheckPredicate, 22,
2445       OPC_MoveParent,
2446       OPC_CheckType, MVT::i32,
2447       OPC_CheckPatternPredicate, 33,
2448       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ), 0,
2449                     MVT::i32, 2, 1, 0,
2450      20,
2451       OPC_MoveChild1,
2452       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2453       OPC_CheckPredicate, 22,
2454       OPC_MoveParent,
2455       OPC_RecordChild2,
2456       OPC_CheckType, MVT::i32,
2457       OPC_CheckPatternPredicate, 33,
2458       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ), 0,
2459                     MVT::i32, 2, 1, 0,
2460      20,
2461       OPC_RecordChild1,
2462       OPC_MoveChild2,
2463       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2464       OPC_CheckPredicate, 22,
2465       OPC_MoveParent,
2466       OPC_CheckType, MVT::i32,
2467       OPC_CheckPatternPredicate, 16,
2468       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
2469                     MVT::i32, 2, 1, 0,
2470      20,
2471       OPC_MoveChild1,
2472       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2473       OPC_CheckPredicate, 22,
2474       OPC_MoveParent,
2475       OPC_RecordChild2,
2476       OPC_CheckType, MVT::i32,
2477       OPC_CheckPatternPredicate, 16,
2478       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
2479                     MVT::i32, 2, 1, 0,
2480      27,
2481       OPC_RecordChild1,
2482       OPC_MoveChild2,
2483       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2484       OPC_CheckPredicate, 22,
2485       OPC_MoveParent,
2486       OPC_CheckType, MVT::i64,
2487       OPC_CheckPatternPredicate, 34,
2488       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
2489                     MVT::i64, 1, 0,
2490       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ64), 0,
2491                     MVT::i64, 2, 1, 2,
2492      27,
2493       OPC_MoveChild1,
2494       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2495       OPC_CheckPredicate, 22,
2496       OPC_MoveParent,
2497       OPC_RecordChild2,
2498       OPC_CheckType, MVT::i64,
2499       OPC_CheckPatternPredicate, 34,
2500       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
2501                     MVT::i64, 1, 0,
2502       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ64), 0,
2503                     MVT::i64, 2, 1, 2,
2504      0,
2505     17|128,1,
2506      OPC_CheckChild2CondCode, ISD::SETNE,
2507      OPC_MoveParent,
2508      OPC_Scope, 20,
2509       OPC_RecordChild1,
2510       OPC_MoveChild2,
2511       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2512       OPC_CheckPredicate, 22,
2513       OPC_MoveParent,
2514       OPC_CheckType, MVT::i32,
2515       OPC_CheckPatternPredicate, 33,
2516       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ), 0,
2517                     MVT::i32, 2, 1, 0,
2518      20,
2519       OPC_MoveChild1,
2520       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2521       OPC_CheckPredicate, 22,
2522       OPC_MoveParent,
2523       OPC_RecordChild2,
2524       OPC_CheckType, MVT::i32,
2525       OPC_CheckPatternPredicate, 33,
2526       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ), 0,
2527                     MVT::i32, 2, 1, 0,
2528      20,
2529       OPC_RecordChild1,
2530       OPC_MoveChild2,
2531       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2532       OPC_CheckPredicate, 22,
2533       OPC_MoveParent,
2534       OPC_CheckType, MVT::i32,
2535       OPC_CheckPatternPredicate, 16,
2536       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
2537                     MVT::i32, 2, 1, 0,
2538      20,
2539       OPC_MoveChild1,
2540       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2541       OPC_CheckPredicate, 22,
2542       OPC_MoveParent,
2543       OPC_RecordChild2,
2544       OPC_CheckType, MVT::i32,
2545       OPC_CheckPatternPredicate, 16,
2546       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
2547                     MVT::i32, 2, 1, 0,
2548      27,
2549       OPC_RecordChild1,
2550       OPC_MoveChild2,
2551       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2552       OPC_CheckPredicate, 22,
2553       OPC_MoveParent,
2554       OPC_CheckType, MVT::i64,
2555       OPC_CheckPatternPredicate, 34,
2556       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
2557                     MVT::i64, 1, 0,
2558       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ64), 0,
2559                     MVT::i64, 2, 1, 2,
2560      27,
2561       OPC_MoveChild1,
2562       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2563       OPC_CheckPredicate, 22,
2564       OPC_MoveParent,
2565       OPC_RecordChild2,
2566       OPC_CheckType, MVT::i64,
2567       OPC_CheckPatternPredicate, 34,
2568       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
2569                     MVT::i64, 1, 0,
2570       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ64), 0,
2571                     MVT::i64, 2, 1, 2,
2572      0,
2573     0,
2574    12|128,1,
2575     OPC_CheckChild1Integer, 0,
2576     OPC_CheckType, MVT::i32,
2577     OPC_Scope, 60,
2578      OPC_CheckChild2CondCode, ISD::SETEQ,
2579      OPC_MoveParent,
2580      OPC_RecordChild1,
2581      OPC_RecordChild2,
2582      OPC_SwitchType , 38, MVT::i32,
2583       OPC_Scope, 11,
2584        OPC_CheckPatternPredicate, 35,
2585        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
2586                      MVT::i32, 3, 1, 0, 2,
2587       11,
2588        OPC_CheckPatternPredicate, 30,
2589        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2590                      MVT::i32, 3, 1, 0, 2,
2591       11,
2592        OPC_CheckPatternPredicate, 15,
2593        OPC_MorphNodeTo1, TARGET_VAL(Mips::SelBeqZ), 0,
2594                      MVT::i32, 3, 1, 2, 0,
2595       0,
2596      11, MVT::i64,
2597       OPC_CheckPatternPredicate, 36,
2598       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
2599                     MVT::i64, 3, 1, 0, 2,
2600      0,
2601     72,
2602      OPC_CheckChild2CondCode, ISD::SETNE,
2603      OPC_MoveParent,
2604      OPC_RecordChild1,
2605      OPC_RecordChild2,
2606      OPC_SwitchType , 50, MVT::i32,
2607       OPC_Scope, 11,
2608        OPC_CheckPatternPredicate, 35,
2609        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_I), 0,
2610                      MVT::i32, 3, 1, 0, 2,
2611       11,
2612        OPC_CheckPatternPredicate, 37,
2613        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_MM), 0,
2614                      MVT::i32, 3, 1, 0, 2,
2615       11,
2616        OPC_CheckPatternPredicate, 30,
2617        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_MM), 0,
2618                      MVT::i32, 3, 1, 0, 2,
2619       11,
2620        OPC_CheckPatternPredicate, 15,
2621        OPC_MorphNodeTo1, TARGET_VAL(Mips::SelBneZ), 0,
2622                      MVT::i32, 3, 1, 2, 0,
2623       0,
2624      11, MVT::i64,
2625       OPC_CheckPatternPredicate, 36,
2626       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_I64), 0,
2627                     MVT::i64, 3, 1, 0, 2,
2628      0,
2629     0,
2630    67|128,5,
2631     OPC_RecordChild1,
2632     OPC_MoveChild1,
2633     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2634     OPC_Scope, 65,
2635      OPC_CheckPredicate, 19,
2636      OPC_MoveParent,
2637      OPC_CheckType, MVT::i32,
2638      OPC_Scope, 28,
2639       OPC_CheckChild2CondCode, ISD::SETGE,
2640       OPC_MoveParent,
2641       OPC_RecordChild1,
2642       OPC_RecordChild2,
2643       OPC_CheckType, MVT::i32,
2644       OPC_CheckPatternPredicate, 35,
2645       OPC_EmitConvertToTarget, 1,
2646       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
2647                     MVT::i32, 2, 0, 4,
2648       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
2649                     MVT::i32, 3, 2, 5, 3,
2650      28,
2651       OPC_CheckChild2CondCode, ISD::SETUGE,
2652       OPC_MoveParent,
2653       OPC_RecordChild1,
2654       OPC_RecordChild2,
2655       OPC_CheckType, MVT::i32,
2656       OPC_CheckPatternPredicate, 35,
2657       OPC_EmitConvertToTarget, 1,
2658       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
2659                     MVT::i32, 2, 0, 4,
2660       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
2661                     MVT::i32, 3, 2, 5, 3,
2662      0,
2663     71,
2664      OPC_CheckPredicate, 20,
2665      OPC_MoveParent,
2666      OPC_CheckType, MVT::i32,
2667      OPC_Scope, 31,
2668       OPC_CheckChild2CondCode, ISD::SETGT,
2669       OPC_MoveParent,
2670       OPC_RecordChild1,
2671       OPC_RecordChild2,
2672       OPC_CheckType, MVT::i32,
2673       OPC_CheckPatternPredicate, 35,
2674       OPC_EmitConvertToTarget, 1,
2675       OPC_EmitNodeXForm, 2, 4,
2676       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
2677                     MVT::i32, 2, 0, 5,
2678       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
2679                     MVT::i32, 3, 2, 6, 3,
2680      31,
2681       OPC_CheckChild2CondCode, ISD::SETUGT,
2682       OPC_MoveParent,
2683       OPC_RecordChild1,
2684       OPC_RecordChild2,
2685       OPC_CheckType, MVT::i32,
2686       OPC_CheckPatternPredicate, 35,
2687       OPC_EmitConvertToTarget, 1,
2688       OPC_EmitNodeXForm, 2, 4,
2689       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
2690                     MVT::i32, 2, 0, 5,
2691       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
2692                     MVT::i32, 3, 2, 6, 3,
2693      0,
2694     36,
2695      OPC_CheckPredicate, 21,
2696      OPC_MoveParent,
2697      OPC_CheckChild2CondCode, ISD::SETEQ,
2698      OPC_CheckType, MVT::i32,
2699      OPC_MoveParent,
2700      OPC_RecordChild1,
2701      OPC_RecordChild2,
2702      OPC_CheckType, MVT::i32,
2703      OPC_CheckPatternPredicate, 35,
2704      OPC_EmitConvertToTarget, 1,
2705      OPC_EmitNodeXForm, 3, 4,
2706      OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
2707                    MVT::i32, 2, 0, 5,
2708      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
2709                    MVT::i32, 3, 2, 6, 3,
2710     65,
2711      OPC_CheckPredicate, 19,
2712      OPC_MoveParent,
2713      OPC_CheckType, MVT::i32,
2714      OPC_Scope, 28,
2715       OPC_CheckChild2CondCode, ISD::SETGE,
2716       OPC_MoveParent,
2717       OPC_RecordChild1,
2718       OPC_RecordChild2,
2719       OPC_CheckType, MVT::i64,
2720       OPC_CheckPatternPredicate, 36,
2721       OPC_EmitConvertToTarget, 1,
2722       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
2723                     MVT::i32, 2, 0, 4,
2724       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
2725                     MVT::i64, 3, 2, 5, 3,
2726      28,
2727       OPC_CheckChild2CondCode, ISD::SETUGE,
2728       OPC_MoveParent,
2729       OPC_RecordChild1,
2730       OPC_RecordChild2,
2731       OPC_CheckType, MVT::i64,
2732       OPC_CheckPatternPredicate, 36,
2733       OPC_EmitConvertToTarget, 1,
2734       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
2735                     MVT::i32, 2, 0, 4,
2736       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
2737                     MVT::i64, 3, 2, 5, 3,
2738      0,
2739     71,
2740      OPC_CheckPredicate, 20,
2741      OPC_MoveParent,
2742      OPC_CheckType, MVT::i32,
2743      OPC_Scope, 31,
2744       OPC_CheckChild2CondCode, ISD::SETGT,
2745       OPC_MoveParent,
2746       OPC_RecordChild1,
2747       OPC_RecordChild2,
2748       OPC_CheckType, MVT::i64,
2749       OPC_CheckPatternPredicate, 36,
2750       OPC_EmitConvertToTarget, 1,
2751       OPC_EmitNodeXForm, 2, 4,
2752       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
2753                     MVT::i32, 2, 0, 5,
2754       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
2755                     MVT::i64, 3, 2, 6, 3,
2756      31,
2757       OPC_CheckChild2CondCode, ISD::SETUGT,
2758       OPC_MoveParent,
2759       OPC_RecordChild1,
2760       OPC_RecordChild2,
2761       OPC_CheckType, MVT::i64,
2762       OPC_CheckPatternPredicate, 36,
2763       OPC_EmitConvertToTarget, 1,
2764       OPC_EmitNodeXForm, 2, 4,
2765       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
2766                     MVT::i32, 2, 0, 5,
2767       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
2768                     MVT::i64, 3, 2, 6, 3,
2769      0,
2770     36,
2771      OPC_CheckPredicate, 21,
2772      OPC_MoveParent,
2773      OPC_CheckChild2CondCode, ISD::SETEQ,
2774      OPC_CheckType, MVT::i32,
2775      OPC_MoveParent,
2776      OPC_RecordChild1,
2777      OPC_RecordChild2,
2778      OPC_CheckType, MVT::i64,
2779      OPC_CheckPatternPredicate, 36,
2780      OPC_EmitConvertToTarget, 1,
2781      OPC_EmitNodeXForm, 3, 4,
2782      OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
2783                    MVT::i32, 2, 0, 5,
2784      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
2785                    MVT::i64, 3, 2, 6, 3,
2786     65,
2787      OPC_CheckPredicate, 19,
2788      OPC_MoveParent,
2789      OPC_CheckType, MVT::i32,
2790      OPC_Scope, 28,
2791       OPC_CheckChild2CondCode, ISD::SETGE,
2792       OPC_MoveParent,
2793       OPC_RecordChild1,
2794       OPC_RecordChild2,
2795       OPC_CheckType, MVT::i32,
2796       OPC_CheckPatternPredicate, 30,
2797       OPC_EmitConvertToTarget, 1,
2798       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
2799                     MVT::i32, 2, 0, 4,
2800       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2801                     MVT::i32, 3, 2, 5, 3,
2802      28,
2803       OPC_CheckChild2CondCode, ISD::SETUGE,
2804       OPC_MoveParent,
2805       OPC_RecordChild1,
2806       OPC_RecordChild2,
2807       OPC_CheckType, MVT::i32,
2808       OPC_CheckPatternPredicate, 30,
2809       OPC_EmitConvertToTarget, 1,
2810       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
2811                     MVT::i32, 2, 0, 4,
2812       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2813                     MVT::i32, 3, 2, 5, 3,
2814      0,
2815     71,
2816      OPC_CheckPredicate, 20,
2817      OPC_MoveParent,
2818      OPC_CheckType, MVT::i32,
2819      OPC_Scope, 31,
2820       OPC_CheckChild2CondCode, ISD::SETGT,
2821       OPC_MoveParent,
2822       OPC_RecordChild1,
2823       OPC_RecordChild2,
2824       OPC_CheckType, MVT::i32,
2825       OPC_CheckPatternPredicate, 30,
2826       OPC_EmitConvertToTarget, 1,
2827       OPC_EmitNodeXForm, 2, 4,
2828       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
2829                     MVT::i32, 2, 0, 5,
2830       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2831                     MVT::i32, 3, 2, 6, 3,
2832      31,
2833       OPC_CheckChild2CondCode, ISD::SETUGT,
2834       OPC_MoveParent,
2835       OPC_RecordChild1,
2836       OPC_RecordChild2,
2837       OPC_CheckType, MVT::i32,
2838       OPC_CheckPatternPredicate, 30,
2839       OPC_EmitConvertToTarget, 1,
2840       OPC_EmitNodeXForm, 2, 4,
2841       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
2842                     MVT::i32, 2, 0, 5,
2843       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2844                     MVT::i32, 3, 2, 6, 3,
2845      0,
2846     36,
2847      OPC_CheckPredicate, 21,
2848      OPC_MoveParent,
2849      OPC_CheckChild2CondCode, ISD::SETEQ,
2850      OPC_CheckType, MVT::i32,
2851      OPC_MoveParent,
2852      OPC_RecordChild1,
2853      OPC_RecordChild2,
2854      OPC_CheckType, MVT::i32,
2855      OPC_CheckPatternPredicate, 30,
2856      OPC_EmitConvertToTarget, 1,
2857      OPC_EmitNodeXForm, 3, 4,
2858      OPC_EmitNode1, TARGET_VAL(Mips::XORi_MM), 0,
2859                    MVT::i32, 2, 0, 5,
2860      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2861                    MVT::i32, 3, 2, 6, 3,
2862     65,
2863      OPC_CheckPredicate, 19,
2864      OPC_MoveParent,
2865      OPC_CheckType, MVT::i32,
2866      OPC_Scope, 28,
2867       OPC_CheckChild2CondCode, ISD::SETGE,
2868       OPC_MoveParent,
2869       OPC_RecordChild1,
2870       OPC_RecordChild2,
2871       OPC_CheckType, MVT::i32,
2872       OPC_CheckPatternPredicate, 30,
2873       OPC_EmitConvertToTarget, 1,
2874       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
2875                     MVT::i32, 2, 0, 4,
2876       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2877                     MVT::i32, 3, 2, 5, 3,
2878      28,
2879       OPC_CheckChild2CondCode, ISD::SETUGE,
2880       OPC_MoveParent,
2881       OPC_RecordChild1,
2882       OPC_RecordChild2,
2883       OPC_CheckType, MVT::i32,
2884       OPC_CheckPatternPredicate, 30,
2885       OPC_EmitConvertToTarget, 1,
2886       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
2887                     MVT::i32, 2, 0, 4,
2888       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2889                     MVT::i32, 3, 2, 5, 3,
2890      0,
2891     71,
2892      OPC_CheckPredicate, 20,
2893      OPC_MoveParent,
2894      OPC_CheckType, MVT::i32,
2895      OPC_Scope, 31,
2896       OPC_CheckChild2CondCode, ISD::SETGT,
2897       OPC_MoveParent,
2898       OPC_RecordChild1,
2899       OPC_RecordChild2,
2900       OPC_CheckType, MVT::i32,
2901       OPC_CheckPatternPredicate, 30,
2902       OPC_EmitConvertToTarget, 1,
2903       OPC_EmitNodeXForm, 2, 4,
2904       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
2905                     MVT::i32, 2, 0, 5,
2906       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2907                     MVT::i32, 3, 2, 6, 3,
2908      31,
2909       OPC_CheckChild2CondCode, ISD::SETUGT,
2910       OPC_MoveParent,
2911       OPC_RecordChild1,
2912       OPC_RecordChild2,
2913       OPC_CheckType, MVT::i32,
2914       OPC_CheckPatternPredicate, 30,
2915       OPC_EmitConvertToTarget, 1,
2916       OPC_EmitNodeXForm, 2, 4,
2917       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
2918                     MVT::i32, 2, 0, 5,
2919       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2920                     MVT::i32, 3, 2, 6, 3,
2921      0,
2922     36,
2923      OPC_CheckPredicate, 21,
2924      OPC_MoveParent,
2925      OPC_CheckChild2CondCode, ISD::SETEQ,
2926      OPC_CheckType, MVT::i32,
2927      OPC_MoveParent,
2928      OPC_RecordChild1,
2929      OPC_RecordChild2,
2930      OPC_CheckType, MVT::i32,
2931      OPC_CheckPatternPredicate, 30,
2932      OPC_EmitConvertToTarget, 1,
2933      OPC_EmitNodeXForm, 3, 4,
2934      OPC_EmitNode1, TARGET_VAL(Mips::XORi_MM), 0,
2935                    MVT::i32, 2, 0, 5,
2936      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
2937                    MVT::i32, 3, 2, 6, 3,
2938     0,
2939    11|128,1,
2940     OPC_MoveChild1,
2941     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2942     OPC_CheckPredicate, 22,
2943     OPC_MoveParent,
2944     OPC_CheckType, MVT::i32,
2945     OPC_Scope, 63,
2946      OPC_CheckChild2CondCode, ISD::SETEQ,
2947      OPC_MoveParent,
2948      OPC_RecordChild1,
2949      OPC_RecordChild2,
2950      OPC_CheckType, MVT::i32,
2951      OPC_Scope, 26,
2952       OPC_CheckPatternPredicate, 33,
2953       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
2954                     MVT::i32, 2, 1, 0,
2955       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
2956                     MVT::i32, 2, 2, 0,
2957       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
2958                     MVT::i32, 2, 3, 4,
2959      26,
2960       OPC_CheckPatternPredicate, 16,
2961       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
2962                     MVT::i32, 2, 1, 0,
2963       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
2964                     MVT::i32, 2, 2, 0,
2965       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
2966                     MVT::i32, 2, 3, 4,
2967      0,
2968     63,
2969      OPC_CheckChild2CondCode, ISD::SETNE,
2970      OPC_MoveParent,
2971      OPC_RecordChild1,
2972      OPC_RecordChild2,
2973      OPC_CheckType, MVT::i32,
2974      OPC_Scope, 26,
2975       OPC_CheckPatternPredicate, 33,
2976       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
2977                     MVT::i32, 2, 1, 0,
2978       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
2979                     MVT::i32, 2, 2, 0,
2980       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
2981                     MVT::i32, 2, 3, 4,
2982      26,
2983       OPC_CheckPatternPredicate, 16,
2984       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
2985                     MVT::i32, 2, 1, 0,
2986       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
2987                     MVT::i32, 2, 2, 0,
2988       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
2989                     MVT::i32, 2, 3, 4,
2990      0,
2991     0,
2992    7|128,2,
2993     OPC_RecordChild1,
2994     OPC_MoveChild1,
2995     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
2996     OPC_Scope, 127,
2997      OPC_CheckPredicate, 21,
2998      OPC_MoveParent,
2999      OPC_CheckType, MVT::i32,
3000      OPC_Scope, 59,
3001       OPC_CheckChild2CondCode, ISD::SETEQ,
3002       OPC_MoveParent,
3003       OPC_RecordChild1,
3004       OPC_RecordChild2,
3005       OPC_CheckType, MVT::i32,
3006       OPC_CheckPatternPredicate, 33,
3007       OPC_EmitConvertToTarget, 1,
3008       OPC_EmitNodeXForm, 3, 4,
3009       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3010                     MVT::i32, 2, 0, 5,
3011       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
3012                     MVT::i32, 2, 2, 6,
3013       OPC_EmitConvertToTarget, 1,
3014       OPC_EmitNodeXForm, 3, 8,
3015       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3016                     MVT::i32, 2, 0, 9,
3017       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
3018                     MVT::i32, 2, 3, 10,
3019       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
3020                     MVT::i32, 2, 7, 11,
3021      59,
3022       OPC_CheckChild2CondCode, ISD::SETNE,
3023       OPC_MoveParent,
3024       OPC_RecordChild1,
3025       OPC_RecordChild2,
3026       OPC_CheckType, MVT::i32,
3027       OPC_CheckPatternPredicate, 33,
3028       OPC_EmitConvertToTarget, 1,
3029       OPC_EmitNodeXForm, 3, 4,
3030       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3031                     MVT::i32, 2, 0, 5,
3032       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
3033                     MVT::i32, 2, 2, 6,
3034       OPC_EmitConvertToTarget, 1,
3035       OPC_EmitNodeXForm, 3, 8,
3036       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3037                     MVT::i32, 2, 0, 9,
3038       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
3039                     MVT::i32, 2, 3, 10,
3040       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
3041                     MVT::i32, 2, 7, 11,
3042      0,
3043     127,
3044      OPC_CheckPredicate, 20,
3045      OPC_MoveParent,
3046      OPC_CheckType, MVT::i32,
3047      OPC_Scope, 59,
3048       OPC_CheckChild2CondCode, ISD::SETGT,
3049       OPC_MoveParent,
3050       OPC_RecordChild1,
3051       OPC_RecordChild2,
3052       OPC_CheckType, MVT::i32,
3053       OPC_CheckPatternPredicate, 33,
3054       OPC_EmitConvertToTarget, 1,
3055       OPC_EmitNodeXForm, 2, 4,
3056       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
3057                     MVT::i32, 2, 0, 5,
3058       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
3059                     MVT::i32, 2, 2, 6,
3060       OPC_EmitConvertToTarget, 1,
3061       OPC_EmitNodeXForm, 2, 8,
3062       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
3063                     MVT::i32, 2, 0, 9,
3064       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
3065                     MVT::i32, 2, 3, 10,
3066       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
3067                     MVT::i32, 2, 7, 11,
3068      59,
3069       OPC_CheckChild2CondCode, ISD::SETUGT,
3070       OPC_MoveParent,
3071       OPC_RecordChild1,
3072       OPC_RecordChild2,
3073       OPC_CheckType, MVT::i32,
3074       OPC_CheckPatternPredicate, 33,
3075       OPC_EmitConvertToTarget, 1,
3076       OPC_EmitNodeXForm, 2, 4,
3077       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
3078                     MVT::i32, 2, 0, 5,
3079       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
3080                     MVT::i32, 2, 2, 6,
3081       OPC_EmitConvertToTarget, 1,
3082       OPC_EmitNodeXForm, 2, 8,
3083       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
3084                     MVT::i32, 2, 0, 9,
3085       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
3086                     MVT::i32, 2, 3, 10,
3087       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
3088                     MVT::i32, 2, 7, 11,
3089      0,
3090     0,
3091    107,
3092     OPC_MoveChild1,
3093     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3094     OPC_CheckPredicate, 22,
3095     OPC_MoveParent,
3096     OPC_CheckType, MVT::i32,
3097     OPC_Scope, 47,
3098      OPC_CheckChild2CondCode, ISD::SETEQ,
3099      OPC_MoveParent,
3100      OPC_RecordChild1,
3101      OPC_RecordChild2,
3102      OPC_CheckType, MVT::i64,
3103      OPC_CheckPatternPredicate, 34,
3104      OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3105                    MVT::i64, 1, 0,
3106      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3107                    MVT::i64, 2, 1, 3,
3108      OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3109                    MVT::i64, 1, 0,
3110      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3111                    MVT::i64, 2, 2, 5,
3112      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3113                    MVT::i64, 2, 4, 6,
3114     47,
3115      OPC_CheckChild2CondCode, ISD::SETNE,
3116      OPC_MoveParent,
3117      OPC_RecordChild1,
3118      OPC_RecordChild2,
3119      OPC_CheckType, MVT::i64,
3120      OPC_CheckPatternPredicate, 34,
3121      OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3122                    MVT::i64, 1, 0,
3123      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3124                    MVT::i64, 2, 1, 3,
3125      OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3126                    MVT::i64, 1, 0,
3127      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3128                    MVT::i64, 2, 2, 5,
3129      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3130                    MVT::i64, 2, 4, 6,
3131     0,
3132    121|128,3,
3133     OPC_RecordChild1,
3134     OPC_MoveChild1,
3135     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3136     OPC_Scope, 127,
3137      OPC_CheckPredicate, 21,
3138      OPC_MoveParent,
3139      OPC_CheckType, MVT::i32,
3140      OPC_Scope, 59,
3141       OPC_CheckChild2CondCode, ISD::SETEQ,
3142       OPC_MoveParent,
3143       OPC_RecordChild1,
3144       OPC_RecordChild2,
3145       OPC_CheckType, MVT::i32,
3146       OPC_CheckPatternPredicate, 16,
3147       OPC_EmitConvertToTarget, 1,
3148       OPC_EmitNodeXForm, 3, 4,
3149       OPC_EmitNode1, TARGET_VAL(Mips::XORI_MMR6), 0,
3150                     MVT::i32, 2, 0, 5,
3151       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
3152                     MVT::i32, 2, 2, 6,
3153       OPC_EmitConvertToTarget, 1,
3154       OPC_EmitNodeXForm, 3, 8,
3155       OPC_EmitNode1, TARGET_VAL(Mips::XORI_MMR6), 0,
3156                     MVT::i32, 2, 0, 9,
3157       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
3158                     MVT::i32, 2, 3, 10,
3159       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
3160                     MVT::i32, 2, 7, 11,
3161      59,
3162       OPC_CheckChild2CondCode, ISD::SETNE,
3163       OPC_MoveParent,
3164       OPC_RecordChild1,
3165       OPC_RecordChild2,
3166       OPC_CheckType, MVT::i32,
3167       OPC_CheckPatternPredicate, 16,
3168       OPC_EmitConvertToTarget, 1,
3169       OPC_EmitNodeXForm, 3, 4,
3170       OPC_EmitNode1, TARGET_VAL(Mips::XORI_MMR6), 0,
3171                     MVT::i32, 2, 0, 5,
3172       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
3173                     MVT::i32, 2, 2, 6,
3174       OPC_EmitConvertToTarget, 1,
3175       OPC_EmitNodeXForm, 3, 8,
3176       OPC_EmitNode1, TARGET_VAL(Mips::XORI_MMR6), 0,
3177                     MVT::i32, 2, 0, 9,
3178       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
3179                     MVT::i32, 2, 3, 10,
3180       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
3181                     MVT::i32, 2, 7, 11,
3182      0,
3183     127,
3184      OPC_CheckPredicate, 20,
3185      OPC_MoveParent,
3186      OPC_CheckType, MVT::i32,
3187      OPC_Scope, 59,
3188       OPC_CheckChild2CondCode, ISD::SETGT,
3189       OPC_MoveParent,
3190       OPC_RecordChild1,
3191       OPC_RecordChild2,
3192       OPC_CheckType, MVT::i32,
3193       OPC_CheckPatternPredicate, 16,
3194       OPC_EmitConvertToTarget, 1,
3195       OPC_EmitNodeXForm, 2, 4,
3196       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
3197                     MVT::i32, 2, 0, 5,
3198       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
3199                     MVT::i32, 2, 2, 6,
3200       OPC_EmitConvertToTarget, 1,
3201       OPC_EmitNodeXForm, 2, 8,
3202       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
3203                     MVT::i32, 2, 0, 9,
3204       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
3205                     MVT::i32, 2, 3, 10,
3206       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
3207                     MVT::i32, 2, 7, 11,
3208      59,
3209       OPC_CheckChild2CondCode, ISD::SETUGT,
3210       OPC_MoveParent,
3211       OPC_RecordChild1,
3212       OPC_RecordChild2,
3213       OPC_CheckType, MVT::i32,
3214       OPC_CheckPatternPredicate, 16,
3215       OPC_EmitConvertToTarget, 1,
3216       OPC_EmitNodeXForm, 2, 4,
3217       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
3218                     MVT::i32, 2, 0, 5,
3219       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
3220                     MVT::i32, 2, 2, 6,
3221       OPC_EmitConvertToTarget, 1,
3222       OPC_EmitNodeXForm, 2, 8,
3223       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
3224                     MVT::i32, 2, 0, 9,
3225       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
3226                     MVT::i32, 2, 3, 10,
3227       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
3228                     MVT::i32, 2, 7, 11,
3229      0,
3230     27|128,1,
3231      OPC_CheckPredicate, 21,
3232      OPC_MoveParent,
3233      OPC_CheckType, MVT::i32,
3234      OPC_Scope, 73,
3235       OPC_CheckChild2CondCode, ISD::SETEQ,
3236       OPC_MoveParent,
3237       OPC_RecordChild1,
3238       OPC_RecordChild2,
3239       OPC_CheckType, MVT::i64,
3240       OPC_CheckPatternPredicate, 34,
3241       OPC_EmitConvertToTarget, 1,
3242       OPC_EmitNodeXForm, 3, 4,
3243       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3244                     MVT::i32, 2, 0, 5,
3245       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3246                     MVT::i64, 1, 6,
3247       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3248                     MVT::i64, 2, 2, 7,
3249       OPC_EmitConvertToTarget, 1,
3250       OPC_EmitNodeXForm, 3, 9,
3251       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3252                     MVT::i32, 2, 0, 10,
3253       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3254                     MVT::i64, 1, 11,
3255       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3256                     MVT::i64, 2, 3, 12,
3257       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3258                     MVT::i64, 2, 8, 13,
3259      73,
3260       OPC_CheckChild2CondCode, ISD::SETNE,
3261       OPC_MoveParent,
3262       OPC_RecordChild1,
3263       OPC_RecordChild2,
3264       OPC_CheckType, MVT::i64,
3265       OPC_CheckPatternPredicate, 34,
3266       OPC_EmitConvertToTarget, 1,
3267       OPC_EmitNodeXForm, 3, 4,
3268       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3269                     MVT::i32, 2, 0, 5,
3270       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3271                     MVT::i64, 1, 6,
3272       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3273                     MVT::i64, 2, 2, 7,
3274       OPC_EmitConvertToTarget, 1,
3275       OPC_EmitNodeXForm, 3, 9,
3276       OPC_EmitNode1, TARGET_VAL(Mips::XORi), 0,
3277                     MVT::i32, 2, 0, 10,
3278       OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3279                     MVT::i64, 1, 11,
3280       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3281                     MVT::i64, 2, 3, 12,
3282       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3283                     MVT::i64, 2, 8, 13,
3284      0,
3285     26,
3286      OPC_CheckPredicate, 19,
3287      OPC_MoveParent,
3288      OPC_CheckChild2CondCode, ISD::SETLT,
3289      OPC_CheckType, MVT::i32,
3290      OPC_MoveParent,
3291      OPC_RecordChild1,
3292      OPC_RecordChild2,
3293      OPC_CheckType, MVT::i32,
3294      OPC_CheckPatternPredicate, 15,
3295      OPC_EmitConvertToTarget, 1,
3296      OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBtneZSlti), 0,
3297                    MVT::i32, 4, 2, 3, 0, 4,
3298     57,
3299      OPC_CheckPredicate, 21,
3300      OPC_MoveParent,
3301      OPC_CheckType, MVT::i32,
3302      OPC_Scope, 24,
3303       OPC_CheckChild2CondCode, ISD::SETEQ,
3304       OPC_MoveParent,
3305       OPC_RecordChild1,
3306       OPC_RecordChild2,
3307       OPC_CheckType, MVT::i32,
3308       OPC_CheckPatternPredicate, 15,
3309       OPC_EmitConvertToTarget, 1,
3310       OPC_EmitNodeXForm, 3, 4,
3311       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBteqZCmpi), 0,
3312                     MVT::i32, 4, 2, 3, 0, 5,
3313      24,
3314       OPC_CheckChild2CondCode, ISD::SETNE,
3315       OPC_MoveParent,
3316       OPC_RecordChild1,
3317       OPC_RecordChild2,
3318       OPC_CheckType, MVT::i32,
3319       OPC_CheckPatternPredicate, 15,
3320       OPC_EmitConvertToTarget, 1,
3321       OPC_EmitNodeXForm, 3, 4,
3322       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBtneZCmpi), 0,
3323                     MVT::i32, 4, 2, 3, 0, 5,
3324      0,
3325     0,
3326    0,
3327   35|128,7,
3328    OPC_CheckChild0Type, MVT::i64,
3329    OPC_Scope, 107,
3330     OPC_MoveChild1,
3331     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3332     OPC_CheckPredicate, 22,
3333     OPC_MoveParent,
3334     OPC_CheckType, MVT::i32,
3335     OPC_Scope, 47,
3336      OPC_CheckChild2CondCode, ISD::SETNE,
3337      OPC_MoveParent,
3338      OPC_Scope, 20,
3339       OPC_RecordChild1,
3340       OPC_MoveChild2,
3341       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3342       OPC_CheckPredicate, 22,
3343       OPC_MoveParent,
3344       OPC_CheckType, MVT::i64,
3345       OPC_CheckPatternPredicate, 34,
3346       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ64), 0,
3347                     MVT::i64, 2, 1, 0,
3348      20,
3349       OPC_MoveChild1,
3350       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3351       OPC_CheckPredicate, 22,
3352       OPC_MoveParent,
3353       OPC_RecordChild2,
3354       OPC_CheckType, MVT::i64,
3355       OPC_CheckPatternPredicate, 34,
3356       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ64), 0,
3357                     MVT::i64, 2, 1, 0,
3358      0,
3359     47,
3360      OPC_CheckChild2CondCode, ISD::SETEQ,
3361      OPC_MoveParent,
3362      OPC_Scope, 20,
3363       OPC_RecordChild1,
3364       OPC_MoveChild2,
3365       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3366       OPC_CheckPredicate, 22,
3367       OPC_MoveParent,
3368       OPC_CheckType, MVT::i64,
3369       OPC_CheckPatternPredicate, 34,
3370       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ64), 0,
3371                     MVT::i64, 2, 1, 0,
3372      20,
3373       OPC_MoveChild1,
3374       OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3375       OPC_CheckPredicate, 22,
3376       OPC_MoveParent,
3377       OPC_RecordChild2,
3378       OPC_CheckType, MVT::i64,
3379       OPC_CheckPatternPredicate, 34,
3380       OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ64), 0,
3381                     MVT::i64, 2, 1, 0,
3382      0,
3383     0,
3384    74,
3385     OPC_CheckChild1Integer, 0,
3386     OPC_CheckType, MVT::i32,
3387     OPC_Scope, 33,
3388      OPC_CheckChild2CondCode, ISD::SETEQ,
3389      OPC_MoveParent,
3390      OPC_RecordChild1,
3391      OPC_RecordChild2,
3392      OPC_SwitchType , 11, MVT::i32,
3393       OPC_CheckPatternPredicate, 36,
3394       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_I), 0,
3395                     MVT::i32, 3, 1, 0, 2,
3396      11, MVT::i64,
3397       OPC_CheckPatternPredicate, 36,
3398       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_I64), 0,
3399                     MVT::i64, 3, 1, 0, 2,
3400      0,
3401     33,
3402      OPC_CheckChild2CondCode, ISD::SETNE,
3403      OPC_MoveParent,
3404      OPC_RecordChild1,
3405      OPC_RecordChild2,
3406      OPC_SwitchType , 11, MVT::i32,
3407       OPC_CheckPatternPredicate, 36,
3408       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_I), 0,
3409                     MVT::i32, 3, 1, 0, 2,
3410      11, MVT::i64,
3411       OPC_CheckPatternPredicate, 36,
3412       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_I64), 0,
3413                     MVT::i64, 3, 1, 0, 2,
3414      0,
3415     0,
3416    92|128,2,
3417     OPC_RecordChild1,
3418     OPC_MoveChild1,
3419     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3420     OPC_Scope, 65,
3421      OPC_CheckPredicate, 19,
3422      OPC_MoveParent,
3423      OPC_CheckType, MVT::i32,
3424      OPC_Scope, 28,
3425       OPC_CheckChild2CondCode, ISD::SETGE,
3426       OPC_MoveParent,
3427       OPC_RecordChild1,
3428       OPC_RecordChild2,
3429       OPC_CheckType, MVT::i32,
3430       OPC_CheckPatternPredicate, 36,
3431       OPC_EmitConvertToTarget, 1,
3432       OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
3433                     MVT::i32, 2, 0, 4,
3434       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3435                     MVT::i32, 3, 2, 5, 3,
3436      28,
3437       OPC_CheckChild2CondCode, ISD::SETUGE,
3438       OPC_MoveParent,
3439       OPC_RecordChild1,
3440       OPC_RecordChild2,
3441       OPC_CheckType, MVT::i32,
3442       OPC_CheckPatternPredicate, 36,
3443       OPC_EmitConvertToTarget, 1,
3444       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
3445                     MVT::i32, 2, 0, 4,
3446       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3447                     MVT::i32, 3, 2, 5, 3,
3448      0,
3449     71,
3450      OPC_CheckPredicate, 20,
3451      OPC_MoveParent,
3452      OPC_CheckType, MVT::i32,
3453      OPC_Scope, 31,
3454       OPC_CheckChild2CondCode, ISD::SETGT,
3455       OPC_MoveParent,
3456       OPC_RecordChild1,
3457       OPC_RecordChild2,
3458       OPC_CheckType, MVT::i32,
3459       OPC_CheckPatternPredicate, 36,
3460       OPC_EmitConvertToTarget, 1,
3461       OPC_EmitNodeXForm, 2, 4,
3462       OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
3463                     MVT::i32, 2, 0, 5,
3464       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3465                     MVT::i32, 3, 2, 6, 3,
3466      31,
3467       OPC_CheckChild2CondCode, ISD::SETUGT,
3468       OPC_MoveParent,
3469       OPC_RecordChild1,
3470       OPC_RecordChild2,
3471       OPC_CheckType, MVT::i32,
3472       OPC_CheckPatternPredicate, 36,
3473       OPC_EmitConvertToTarget, 1,
3474       OPC_EmitNodeXForm, 2, 4,
3475       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
3476                     MVT::i32, 2, 0, 5,
3477       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3478                     MVT::i32, 3, 2, 6, 3,
3479      0,
3480     65,
3481      OPC_CheckPredicate, 19,
3482      OPC_MoveParent,
3483      OPC_CheckType, MVT::i32,
3484      OPC_Scope, 28,
3485       OPC_CheckChild2CondCode, ISD::SETGE,
3486       OPC_MoveParent,
3487       OPC_RecordChild1,
3488       OPC_RecordChild2,
3489       OPC_CheckType, MVT::i64,
3490       OPC_CheckPatternPredicate, 36,
3491       OPC_EmitConvertToTarget, 1,
3492       OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
3493                     MVT::i32, 2, 0, 4,
3494       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3495                     MVT::i64, 3, 2, 5, 3,
3496      28,
3497       OPC_CheckChild2CondCode, ISD::SETUGE,
3498       OPC_MoveParent,
3499       OPC_RecordChild1,
3500       OPC_RecordChild2,
3501       OPC_CheckType, MVT::i64,
3502       OPC_CheckPatternPredicate, 36,
3503       OPC_EmitConvertToTarget, 1,
3504       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
3505                     MVT::i32, 2, 0, 4,
3506       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3507                     MVT::i64, 3, 2, 5, 3,
3508      0,
3509     71,
3510      OPC_CheckPredicate, 20,
3511      OPC_MoveParent,
3512      OPC_CheckType, MVT::i32,
3513      OPC_Scope, 31,
3514       OPC_CheckChild2CondCode, ISD::SETGT,
3515       OPC_MoveParent,
3516       OPC_RecordChild1,
3517       OPC_RecordChild2,
3518       OPC_CheckType, MVT::i64,
3519       OPC_CheckPatternPredicate, 36,
3520       OPC_EmitConvertToTarget, 1,
3521       OPC_EmitNodeXForm, 2, 4,
3522       OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
3523                     MVT::i32, 2, 0, 5,
3524       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3525                     MVT::i64, 3, 2, 6, 3,
3526      31,
3527       OPC_CheckChild2CondCode, ISD::SETUGT,
3528       OPC_MoveParent,
3529       OPC_RecordChild1,
3530       OPC_RecordChild2,
3531       OPC_CheckType, MVT::i64,
3532       OPC_CheckPatternPredicate, 36,
3533       OPC_EmitConvertToTarget, 1,
3534       OPC_EmitNodeXForm, 2, 4,
3535       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
3536                     MVT::i32, 2, 0, 5,
3537       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3538                     MVT::i64, 3, 2, 6, 3,
3539      0,
3540     64,
3541      OPC_CheckPredicate, 21,
3542      OPC_MoveParent,
3543      OPC_CheckChild2CondCode, ISD::SETEQ,
3544      OPC_CheckType, MVT::i32,
3545      OPC_MoveParent,
3546      OPC_RecordChild1,
3547      OPC_RecordChild2,
3548      OPC_SwitchType , 24, MVT::i32,
3549       OPC_CheckPatternPredicate, 36,
3550       OPC_EmitConvertToTarget, 1,
3551       OPC_EmitNodeXForm, 3, 4,
3552       OPC_EmitNode1, TARGET_VAL(Mips::XORi64), 0,
3553                     MVT::i64, 2, 0, 5,
3554       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_I), 0,
3555                     MVT::i32, 3, 2, 6, 3,
3556      24, MVT::i64,
3557       OPC_CheckPatternPredicate, 36,
3558       OPC_EmitConvertToTarget, 1,
3559       OPC_EmitNodeXForm, 3, 4,
3560       OPC_EmitNode1, TARGET_VAL(Mips::XORi64), 0,
3561                     MVT::i64, 2, 0, 5,
3562       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_I64), 0,
3563                     MVT::i64, 3, 2, 6, 3,
3564      0,
3565     0,
3566    79,
3567     OPC_MoveChild1,
3568     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3569     OPC_CheckPredicate, 22,
3570     OPC_MoveParent,
3571     OPC_CheckType, MVT::i32,
3572     OPC_Scope, 33,
3573      OPC_CheckChild2CondCode, ISD::SETEQ,
3574      OPC_MoveParent,
3575      OPC_RecordChild1,
3576      OPC_RecordChild2,
3577      OPC_CheckType, MVT::i64,
3578      OPC_CheckPatternPredicate, 34,
3579      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3580                    MVT::i64, 2, 1, 0,
3581      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3582                    MVT::i64, 2, 2, 0,
3583      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3584                    MVT::i64, 2, 3, 4,
3585     33,
3586      OPC_CheckChild2CondCode, ISD::SETNE,
3587      OPC_MoveParent,
3588      OPC_RecordChild1,
3589      OPC_RecordChild2,
3590      OPC_CheckType, MVT::i64,
3591      OPC_CheckPatternPredicate, 34,
3592      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3593                    MVT::i64, 2, 1, 0,
3594      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3595                    MVT::i64, 2, 2, 0,
3596      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3597                    MVT::i64, 2, 3, 4,
3598     0,
3599    56|128,2,
3600     OPC_RecordChild1,
3601     OPC_MoveChild1,
3602     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3603     OPC_Scope, 115,
3604      OPC_CheckPredicate, 23,
3605      OPC_MoveParent,
3606      OPC_CheckType, MVT::i32,
3607      OPC_Scope, 53,
3608       OPC_CheckChild2CondCode, ISD::SETEQ,
3609       OPC_MoveParent,
3610       OPC_RecordChild1,
3611       OPC_RecordChild2,
3612       OPC_CheckType, MVT::i64,
3613       OPC_CheckPatternPredicate, 34,
3614       OPC_EmitConvertToTarget, 1,
3615       OPC_EmitNode1, TARGET_VAL(Mips::XORi64), 0,
3616                     MVT::i64, 2, 0, 4,
3617       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3618                     MVT::i64, 2, 2, 5,
3619       OPC_EmitConvertToTarget, 1,
3620       OPC_EmitNode1, TARGET_VAL(Mips::XORi64), 0,
3621                     MVT::i64, 2, 0, 7,
3622       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3623                     MVT::i64, 2, 3, 8,
3624       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3625                     MVT::i64, 2, 6, 9,
3626      53,
3627       OPC_CheckChild2CondCode, ISD::SETNE,
3628       OPC_MoveParent,
3629       OPC_RecordChild1,
3630       OPC_RecordChild2,
3631       OPC_CheckType, MVT::i64,
3632       OPC_CheckPatternPredicate, 34,
3633       OPC_EmitConvertToTarget, 1,
3634       OPC_EmitNode1, TARGET_VAL(Mips::XORi64), 0,
3635                     MVT::i64, 2, 0, 4,
3636       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3637                     MVT::i64, 2, 2, 5,
3638       OPC_EmitConvertToTarget, 1,
3639       OPC_EmitNode1, TARGET_VAL(Mips::XORi64), 0,
3640                     MVT::i64, 2, 0, 7,
3641       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3642                     MVT::i64, 2, 3, 8,
3643       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3644                     MVT::i64, 2, 6, 9,
3645      0,
3646     59|128,1,
3647      OPC_CheckPredicate, 20,
3648      OPC_MoveParent,
3649      OPC_CheckType, MVT::i32,
3650      OPC_Scope, 89,
3651       OPC_CheckChild2CondCode, ISD::SETGT,
3652       OPC_MoveParent,
3653       OPC_RecordChild1,
3654       OPC_RecordChild2,
3655       OPC_CheckType, MVT::i64,
3656       OPC_CheckPatternPredicate, 34,
3657       OPC_EmitInteger, MVT::i64, 0,
3658       OPC_EmitConvertToTarget, 1,
3659       OPC_EmitNodeXForm, 2, 5,
3660       OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
3661                     MVT::i32, 2, 0, 6,
3662       OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
3663       OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
3664                     MVT::i64, 3, 4, 7, 8,
3665       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3666                     MVT::i64, 2, 2, 9,
3667       OPC_EmitInteger, MVT::i64, 0,
3668       OPC_EmitConvertToTarget, 1,
3669       OPC_EmitNodeXForm, 2, 12,
3670       OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
3671                     MVT::i32, 2, 0, 13,
3672       OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
3673       OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
3674                     MVT::i64, 3, 11, 14, 15,
3675       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3676                     MVT::i64, 2, 3, 16,
3677       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3678                     MVT::i64, 2, 10, 17,
3679      89,
3680       OPC_CheckChild2CondCode, ISD::SETUGT,
3681       OPC_MoveParent,
3682       OPC_RecordChild1,
3683       OPC_RecordChild2,
3684       OPC_CheckType, MVT::i64,
3685       OPC_CheckPatternPredicate, 34,
3686       OPC_EmitInteger, MVT::i64, 0,
3687       OPC_EmitConvertToTarget, 1,
3688       OPC_EmitNodeXForm, 2, 5,
3689       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
3690                     MVT::i32, 2, 0, 6,
3691       OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
3692       OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
3693                     MVT::i64, 3, 4, 7, 8,
3694       OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
3695                     MVT::i64, 2, 2, 9,
3696       OPC_EmitInteger, MVT::i64, 0,
3697       OPC_EmitConvertToTarget, 1,
3698       OPC_EmitNodeXForm, 2, 12,
3699       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
3700                     MVT::i32, 2, 0, 13,
3701       OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
3702       OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
3703                     MVT::i64, 3, 11, 14, 15,
3704       OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
3705                     MVT::i64, 2, 3, 16,
3706       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
3707                     MVT::i64, 2, 10, 17,
3708      0,
3709     0,
3710    0,
3711   0,
3712  17|128,1,
3713   OPC_RecordChild0,
3714   OPC_CheckChild0Type, MVT::i32,
3715   OPC_Scope, 20,
3716    OPC_RecordChild1,
3717    OPC_MoveChild2,
3718    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3719    OPC_CheckPredicate, 22,
3720    OPC_MoveParent,
3721    OPC_CheckType, MVT::i32,
3722    OPC_CheckPatternPredicate, 33,
3723    OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ), 0,
3724                  MVT::i32, 2, 1, 0,
3725   20,
3726    OPC_MoveChild1,
3727    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3728    OPC_CheckPredicate, 22,
3729    OPC_MoveParent,
3730    OPC_RecordChild2,
3731    OPC_CheckType, MVT::i32,
3732    OPC_CheckPatternPredicate, 33,
3733    OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ), 0,
3734                  MVT::i32, 2, 1, 0,
3735   20,
3736    OPC_RecordChild1,
3737    OPC_MoveChild2,
3738    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3739    OPC_CheckPredicate, 22,
3740    OPC_MoveParent,
3741    OPC_CheckType, MVT::i32,
3742    OPC_CheckPatternPredicate, 16,
3743    OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
3744                  MVT::i32, 2, 1, 0,
3745   20,
3746    OPC_MoveChild1,
3747    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3748    OPC_CheckPredicate, 22,
3749    OPC_MoveParent,
3750    OPC_RecordChild2,
3751    OPC_CheckType, MVT::i32,
3752    OPC_CheckPatternPredicate, 16,
3753    OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
3754                  MVT::i32, 2, 1, 0,
3755   27,
3756    OPC_RecordChild1,
3757    OPC_MoveChild2,
3758    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3759    OPC_CheckPredicate, 22,
3760    OPC_MoveParent,
3761    OPC_CheckType, MVT::i64,
3762    OPC_CheckPatternPredicate, 34,
3763    OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3764                  MVT::i64, 1, 0,
3765    OPC_MorphNodeTo1, TARGET_VAL(Mips::SELNEZ64), 0,
3766                  MVT::i64, 2, 1, 2,
3767   27,
3768    OPC_MoveChild1,
3769    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
3770    OPC_CheckPredicate, 22,
3771    OPC_MoveParent,
3772    OPC_RecordChild2,
3773    OPC_CheckType, MVT::i64,
3774    OPC_CheckPatternPredicate, 34,
3775    OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
3776                  MVT::i64, 1, 0,
3777    OPC_MorphNodeTo1, TARGET_VAL(Mips::SELEQZ64), 0,
3778                  MVT::i64, 2, 1, 2,
3779   0,
3780  3|128,7,
3781   OPC_MoveChild0,
3782   OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
3783   OPC_RecordChild0,
3784   OPC_CheckType, MVT::i32,
3785   OPC_Scope, 69|128,4,
3786    OPC_CheckChild0Type, MVT::i32,
3787    OPC_RecordChild1,
3788    OPC_Scope, 85,
3789     OPC_CheckChild2CondCode, ISD::SETGE,
3790     OPC_MoveParent,
3791     OPC_RecordChild1,
3792     OPC_RecordChild2,
3793     OPC_SwitchType , 55, MVT::i32,
3794      OPC_Scope, 19,
3795       OPC_CheckPatternPredicate, 35,
3796       OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
3797                     MVT::i32, 2, 0, 1,
3798       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3799                     MVT::i32, 3, 2, 4, 3,
3800      19,
3801       OPC_CheckPatternPredicate, 30,
3802       OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
3803                     MVT::i32, 2, 0, 1,
3804       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
3805                     MVT::i32, 3, 2, 4, 3,
3806      12,
3807       OPC_CheckPatternPredicate, 15,
3808       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBteqZSlt), 0,
3809                     MVT::i32, 4, 2, 3, 0, 1,
3810      0,
3811     19, MVT::i64,
3812      OPC_CheckPatternPredicate, 36,
3813      OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
3814                    MVT::i32, 2, 0, 1,
3815      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3816                    MVT::i64, 3, 2, 4, 3,
3817     0,
3818    85,
3819     OPC_CheckChild2CondCode, ISD::SETUGE,
3820     OPC_MoveParent,
3821     OPC_RecordChild1,
3822     OPC_RecordChild2,
3823     OPC_SwitchType , 55, MVT::i32,
3824      OPC_Scope, 19,
3825       OPC_CheckPatternPredicate, 35,
3826       OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
3827                     MVT::i32, 2, 0, 1,
3828       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3829                     MVT::i32, 3, 2, 4, 3,
3830      19,
3831       OPC_CheckPatternPredicate, 30,
3832       OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
3833                     MVT::i32, 2, 0, 1,
3834       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
3835                     MVT::i32, 3, 2, 4, 3,
3836      12,
3837       OPC_CheckPatternPredicate, 15,
3838       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBteqZSltu), 0,
3839                     MVT::i32, 4, 2, 3, 0, 1,
3840      0,
3841     19, MVT::i64,
3842      OPC_CheckPatternPredicate, 36,
3843      OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
3844                    MVT::i32, 2, 0, 1,
3845      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3846                    MVT::i64, 3, 2, 4, 3,
3847     0,
3848    85,
3849     OPC_CheckChild2CondCode, ISD::SETLE,
3850     OPC_MoveParent,
3851     OPC_RecordChild1,
3852     OPC_RecordChild2,
3853     OPC_SwitchType , 55, MVT::i32,
3854      OPC_Scope, 19,
3855       OPC_CheckPatternPredicate, 35,
3856       OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
3857                     MVT::i32, 2, 1, 0,
3858       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3859                     MVT::i32, 3, 2, 4, 3,
3860      19,
3861       OPC_CheckPatternPredicate, 30,
3862       OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
3863                     MVT::i32, 2, 1, 0,
3864       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
3865                     MVT::i32, 3, 2, 4, 3,
3866      12,
3867       OPC_CheckPatternPredicate, 15,
3868       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBteqZSlt), 0,
3869                     MVT::i32, 4, 2, 3, 1, 0,
3870      0,
3871     19, MVT::i64,
3872      OPC_CheckPatternPredicate, 36,
3873      OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
3874                    MVT::i32, 2, 1, 0,
3875      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3876                    MVT::i64, 3, 2, 4, 3,
3877     0,
3878    85,
3879     OPC_CheckChild2CondCode, ISD::SETULE,
3880     OPC_MoveParent,
3881     OPC_RecordChild1,
3882     OPC_RecordChild2,
3883     OPC_SwitchType , 55, MVT::i32,
3884      OPC_Scope, 19,
3885       OPC_CheckPatternPredicate, 35,
3886       OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
3887                     MVT::i32, 2, 1, 0,
3888       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3889                     MVT::i32, 3, 2, 4, 3,
3890      19,
3891       OPC_CheckPatternPredicate, 30,
3892       OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
3893                     MVT::i32, 2, 1, 0,
3894       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
3895                     MVT::i32, 3, 2, 4, 3,
3896      12,
3897       OPC_CheckPatternPredicate, 15,
3898       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBteqZSltu), 0,
3899                     MVT::i32, 4, 2, 3, 1, 0,
3900      0,
3901     19, MVT::i64,
3902      OPC_CheckPatternPredicate, 36,
3903      OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
3904                    MVT::i32, 2, 1, 0,
3905      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3906                    MVT::i64, 3, 2, 4, 3,
3907     0,
3908    85,
3909     OPC_CheckChild2CondCode, ISD::SETEQ,
3910     OPC_MoveParent,
3911     OPC_RecordChild1,
3912     OPC_RecordChild2,
3913     OPC_SwitchType , 55, MVT::i32,
3914      OPC_Scope, 19,
3915       OPC_CheckPatternPredicate, 35,
3916       OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
3917                     MVT::i32, 2, 0, 1,
3918       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
3919                     MVT::i32, 3, 2, 4, 3,
3920      19,
3921       OPC_CheckPatternPredicate, 30,
3922       OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
3923                     MVT::i32, 2, 0, 1,
3924       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_MM), 0,
3925                     MVT::i32, 3, 2, 4, 3,
3926      12,
3927       OPC_CheckPatternPredicate, 15,
3928       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBteqZCmp), 0,
3929                     MVT::i32, 4, 2, 3, 1, 0,
3930      0,
3931     19, MVT::i64,
3932      OPC_CheckPatternPredicate, 36,
3933      OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
3934                    MVT::i32, 2, 0, 1,
3935      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
3936                    MVT::i64, 3, 2, 4, 3,
3937     0,
3938    105,
3939     OPC_CheckChild2CondCode, ISD::SETNE,
3940     OPC_MoveParent,
3941     OPC_RecordChild1,
3942     OPC_RecordChild2,
3943     OPC_SwitchType , 75, MVT::i32,
3944      OPC_Scope, 19,
3945       OPC_CheckPatternPredicate, 35,
3946       OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
3947                     MVT::i32, 2, 0, 1,
3948       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_I), 0,
3949                     MVT::i32, 3, 2, 4, 3,
3950      19,
3951       OPC_CheckPatternPredicate, 37,
3952       OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
3953                     MVT::i32, 2, 0, 1,
3954       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_MM), 0,
3955                     MVT::i32, 3, 2, 4, 3,
3956      19,
3957       OPC_CheckPatternPredicate, 30,
3958       OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
3959                     MVT::i32, 2, 0, 1,
3960       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_MM), 0,
3961                     MVT::i32, 3, 2, 4, 3,
3962      12,
3963       OPC_CheckPatternPredicate, 15,
3964       OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBtneZCmp), 0,
3965                     MVT::i32, 4, 2, 3, 1, 0,
3966      0,
3967     19, MVT::i64,
3968      OPC_CheckPatternPredicate, 36,
3969      OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
3970                    MVT::i32, 2, 0, 1,
3971      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_I64), 0,
3972                    MVT::i64, 3, 2, 4, 3,
3973     0,
3974    19,
3975     OPC_CheckChild2CondCode, ISD::SETGT,
3976     OPC_MoveParent,
3977     OPC_RecordChild1,
3978     OPC_RecordChild2,
3979     OPC_CheckType, MVT::i32,
3980     OPC_CheckPatternPredicate, 15,
3981     OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBtneZSlt), 0,
3982                   MVT::i32, 4, 2, 3, 1, 0,
3983    19,
3984     OPC_CheckChild2CondCode, ISD::SETUGT,
3985     OPC_MoveParent,
3986     OPC_RecordChild1,
3987     OPC_RecordChild2,
3988     OPC_CheckType, MVT::i32,
3989     OPC_CheckPatternPredicate, 15,
3990     OPC_MorphNodeTo1, TARGET_VAL(Mips::SelTBtneZSltu), 0,
3991                   MVT::i32, 4, 2, 3, 1, 0,
3992    0,
3993   49|128,2,
3994    OPC_CheckChild0Type, MVT::i64,
3995    OPC_RecordChild1,
3996    OPC_Scope, 49,
3997     OPC_CheckChild2CondCode, ISD::SETGE,
3998     OPC_MoveParent,
3999     OPC_RecordChild1,
4000     OPC_RecordChild2,
4001     OPC_SwitchType , 19, MVT::i32,
4002      OPC_CheckPatternPredicate, 36,
4003      OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
4004                    MVT::i32, 2, 0, 1,
4005      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
4006                    MVT::i32, 3, 2, 4, 3,
4007     19, MVT::i64,
4008      OPC_CheckPatternPredicate, 36,
4009      OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
4010                    MVT::i32, 2, 0, 1,
4011      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
4012                    MVT::i64, 3, 2, 4, 3,
4013     0,
4014    49,
4015     OPC_CheckChild2CondCode, ISD::SETUGE,
4016     OPC_MoveParent,
4017     OPC_RecordChild1,
4018     OPC_RecordChild2,
4019     OPC_SwitchType , 19, MVT::i32,
4020      OPC_CheckPatternPredicate, 36,
4021      OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
4022                    MVT::i32, 2, 0, 1,
4023      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
4024                    MVT::i32, 3, 2, 4, 3,
4025     19, MVT::i64,
4026      OPC_CheckPatternPredicate, 36,
4027      OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
4028                    MVT::i32, 2, 0, 1,
4029      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
4030                    MVT::i64, 3, 2, 4, 3,
4031     0,
4032    49,
4033     OPC_CheckChild2CondCode, ISD::SETLE,
4034     OPC_MoveParent,
4035     OPC_RecordChild1,
4036     OPC_RecordChild2,
4037     OPC_SwitchType , 19, MVT::i32,
4038      OPC_CheckPatternPredicate, 36,
4039      OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
4040                    MVT::i32, 2, 1, 0,
4041      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
4042                    MVT::i32, 3, 2, 4, 3,
4043     19, MVT::i64,
4044      OPC_CheckPatternPredicate, 36,
4045      OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
4046                    MVT::i32, 2, 1, 0,
4047      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
4048                    MVT::i64, 3, 2, 4, 3,
4049     0,
4050    49,
4051     OPC_CheckChild2CondCode, ISD::SETULE,
4052     OPC_MoveParent,
4053     OPC_RecordChild1,
4054     OPC_RecordChild2,
4055     OPC_SwitchType , 19, MVT::i32,
4056      OPC_CheckPatternPredicate, 36,
4057      OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
4058                    MVT::i32, 2, 1, 0,
4059      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I), 0,
4060                    MVT::i32, 3, 2, 4, 3,
4061     19, MVT::i64,
4062      OPC_CheckPatternPredicate, 36,
4063      OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
4064                    MVT::i32, 2, 1, 0,
4065      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_I64), 0,
4066                    MVT::i64, 3, 2, 4, 3,
4067     0,
4068    49,
4069     OPC_CheckChild2CondCode, ISD::SETEQ,
4070     OPC_MoveParent,
4071     OPC_RecordChild1,
4072     OPC_RecordChild2,
4073     OPC_SwitchType , 19, MVT::i32,
4074      OPC_CheckPatternPredicate, 36,
4075      OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
4076                    MVT::i64, 2, 0, 1,
4077      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_I), 0,
4078                    MVT::i32, 3, 2, 4, 3,
4079     19, MVT::i64,
4080      OPC_CheckPatternPredicate, 36,
4081      OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
4082                    MVT::i64, 2, 0, 1,
4083      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_I64), 0,
4084                    MVT::i64, 3, 2, 4, 3,
4085     0,
4086    49,
4087     OPC_CheckChild2CondCode, ISD::SETNE,
4088     OPC_MoveParent,
4089     OPC_RecordChild1,
4090     OPC_RecordChild2,
4091     OPC_SwitchType , 19, MVT::i32,
4092      OPC_CheckPatternPredicate, 36,
4093      OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
4094                    MVT::i64, 2, 0, 1,
4095      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_I), 0,
4096                    MVT::i32, 3, 2, 4, 3,
4097     19, MVT::i64,
4098      OPC_CheckPatternPredicate, 36,
4099      OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
4100                    MVT::i64, 2, 0, 1,
4101      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_I64), 0,
4102                    MVT::i64, 3, 2, 4, 3,
4103     0,
4104    0,
4105   0,
4106  5|128,2,
4107   OPC_RecordChild0,
4108   OPC_Scope, 65|128,1,
4109    OPC_CheckChild0Type, MVT::i32,
4110    OPC_RecordChild1,
4111    OPC_RecordChild2,
4112    OPC_SwitchType , 116, MVT::i32,
4113     OPC_Scope, 11,
4114      OPC_CheckPatternPredicate, 35,
4115      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_I), 0,
4116                    MVT::i32, 3, 1, 0, 2,
4117     11,
4118      OPC_CheckPatternPredicate, 37,
4119      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_MM), 0,
4120                    MVT::i32, 3, 1, 0, 2,
4121     11,
4122      OPC_CheckPatternPredicate, 30,
4123      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_MM), 0,
4124                    MVT::i32, 3, 1, 0, 2,
4125     26,
4126      OPC_CheckPatternPredicate, 33,
4127      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ), 0,
4128                    MVT::i32, 2, 1, 0,
4129      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ), 0,
4130                    MVT::i32, 2, 2, 0,
4131      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
4132                    MVT::i32, 2, 3, 4,
4133     26,
4134      OPC_CheckPatternPredicate, 16,
4135      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ_MMR6), 0,
4136                    MVT::i32, 2, 1, 0,
4137      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ_MMR6), 0,
4138                    MVT::i32, 2, 2, 0,
4139      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
4140                    MVT::i32, 2, 3, 4,
4141     11,
4142      OPC_CheckPatternPredicate, 38,
4143      OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECT_I), 0,
4144                    MVT::i32, 3, 0, 1, 2,
4145     11,
4146      OPC_CheckPatternPredicate, 15,
4147      OPC_MorphNodeTo1, TARGET_VAL(Mips::SelBneZ), 0,
4148                    MVT::i32, 3, 1, 2, 0,
4149     0,
4150    67, MVT::i64,
4151     OPC_Scope, 11,
4152      OPC_CheckPatternPredicate, 36,
4153      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_I64), 0,
4154                    MVT::i64, 3, 1, 0, 2,
4155     40,
4156      OPC_CheckPatternPredicate, 34,
4157      OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
4158                    MVT::i64, 1, 0,
4159      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
4160                    MVT::i64, 2, 1, 3,
4161      OPC_EmitNode1, TARGET_VAL(Mips::SLL64_32), 0,
4162                    MVT::i64, 1, 0,
4163      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
4164                    MVT::i64, 2, 2, 5,
4165      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
4166                    MVT::i64, 2, 4, 6,
4167     11,
4168      OPC_CheckPatternPredicate, 38,
4169      OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECT_I64), 0,
4170                    MVT::i64, 3, 0, 1, 2,
4171     0,
4172    0,
4173   62,
4174    OPC_CheckChild0Type, MVT::i64,
4175    OPC_RecordChild1,
4176    OPC_RecordChild2,
4177    OPC_SwitchType , 11, MVT::i32,
4178     OPC_CheckPatternPredicate, 36,
4179     OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_I), 0,
4180                   MVT::i32, 3, 1, 0, 2,
4181    41, MVT::i64,
4182     OPC_Scope, 11,
4183      OPC_CheckPatternPredicate, 36,
4184      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_I64), 0,
4185                    MVT::i64, 3, 1, 0, 2,
4186     26,
4187      OPC_CheckPatternPredicate, 34,
4188      OPC_EmitNode1, TARGET_VAL(Mips::SELNEZ64), 0,
4189                    MVT::i64, 2, 1, 0,
4190      OPC_EmitNode1, TARGET_VAL(Mips::SELEQZ64), 0,
4191                    MVT::i64, 2, 2, 0,
4192      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
4193                    MVT::i64, 2, 3, 4,
4194     0,
4195    0,
4196   0,
4197  90|128,17,
4198   OPC_MoveChild0,
4199   OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
4200   OPC_RecordChild0,
4201   OPC_Scope, 39|128,12,
4202    OPC_CheckChild0Type, MVT::i32,
4203    OPC_Scope, 30|128,1,
4204     OPC_CheckChild1Integer, 0,
4205     OPC_CheckType, MVT::i32,
4206     OPC_Scope, 75,
4207      OPC_CheckChild2CondCode, ISD::SETEQ,
4208      OPC_MoveParent,
4209      OPC_RecordChild1,
4210      OPC_RecordChild2,
4211      OPC_SwitchType , 26, MVT::f32,
4212       OPC_Scope, 11,
4213        OPC_CheckPatternPredicate, 35,
4214        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4215                      MVT::f32, 3, 1, 0, 2,
4216       11,
4217        OPC_CheckPatternPredicate, 30,
4218        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4219                      MVT::f32, 3, 1, 0, 2,
4220       0,
4221      38, MVT::f64,
4222       OPC_Scope, 11,
4223        OPC_CheckPatternPredicate, 39,
4224        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4225                      MVT::f64, 3, 1, 0, 2,
4226       11,
4227        OPC_CheckPatternPredicate, 40,
4228        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4229                      MVT::f64, 3, 1, 0, 2,
4230       11,
4231        OPC_CheckPatternPredicate, 41,
4232        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4233                      MVT::f64, 3, 1, 0, 2,
4234       0,
4235      0,
4236     75,
4237      OPC_CheckChild2CondCode, ISD::SETNE,
4238      OPC_MoveParent,
4239      OPC_RecordChild1,
4240      OPC_RecordChild2,
4241      OPC_SwitchType , 26, MVT::f32,
4242       OPC_Scope, 11,
4243        OPC_CheckPatternPredicate, 35,
4244        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_S), 0,
4245                      MVT::f32, 3, 1, 0, 2,
4246       11,
4247        OPC_CheckPatternPredicate, 30,
4248        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_S_MM), 0,
4249                      MVT::f32, 3, 1, 0, 2,
4250       0,
4251      38, MVT::f64,
4252       OPC_Scope, 11,
4253        OPC_CheckPatternPredicate, 39,
4254        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D32), 0,
4255                      MVT::f64, 3, 1, 0, 2,
4256       11,
4257        OPC_CheckPatternPredicate, 40,
4258        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D64), 0,
4259                      MVT::f64, 3, 1, 0, 2,
4260       11,
4261        OPC_CheckPatternPredicate, 41,
4262        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D32_MM), 0,
4263                      MVT::f64, 3, 1, 0, 2,
4264       0,
4265      0,
4266     0,
4267    1|128,11,
4268     OPC_RecordChild1,
4269     OPC_Scope, 56|128,5,
4270      OPC_MoveChild1,
4271      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
4272      OPC_Scope, 65,
4273       OPC_CheckPredicate, 19,
4274       OPC_MoveParent,
4275       OPC_CheckType, MVT::i32,
4276       OPC_Scope, 28,
4277        OPC_CheckChild2CondCode, ISD::SETGE,
4278        OPC_MoveParent,
4279        OPC_RecordChild1,
4280        OPC_RecordChild2,
4281        OPC_CheckType, MVT::f32,
4282        OPC_CheckPatternPredicate, 35,
4283        OPC_EmitConvertToTarget, 1,
4284        OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
4285                      MVT::i32, 2, 0, 4,
4286        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4287                      MVT::f32, 3, 2, 5, 3,
4288       28,
4289        OPC_CheckChild2CondCode, ISD::SETUGE,
4290        OPC_MoveParent,
4291        OPC_RecordChild1,
4292        OPC_RecordChild2,
4293        OPC_CheckType, MVT::f32,
4294        OPC_CheckPatternPredicate, 35,
4295        OPC_EmitConvertToTarget, 1,
4296        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
4297                      MVT::i32, 2, 0, 4,
4298        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4299                      MVT::f32, 3, 2, 5, 3,
4300       0,
4301      71,
4302       OPC_CheckPredicate, 20,
4303       OPC_MoveParent,
4304       OPC_CheckType, MVT::i32,
4305       OPC_Scope, 31,
4306        OPC_CheckChild2CondCode, ISD::SETGT,
4307        OPC_MoveParent,
4308        OPC_RecordChild1,
4309        OPC_RecordChild2,
4310        OPC_CheckType, MVT::f32,
4311        OPC_CheckPatternPredicate, 35,
4312        OPC_EmitConvertToTarget, 1,
4313        OPC_EmitNodeXForm, 2, 4,
4314        OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
4315                      MVT::i32, 2, 0, 5,
4316        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4317                      MVT::f32, 3, 2, 6, 3,
4318       31,
4319        OPC_CheckChild2CondCode, ISD::SETUGT,
4320        OPC_MoveParent,
4321        OPC_RecordChild1,
4322        OPC_RecordChild2,
4323        OPC_CheckType, MVT::f32,
4324        OPC_CheckPatternPredicate, 35,
4325        OPC_EmitConvertToTarget, 1,
4326        OPC_EmitNodeXForm, 2, 4,
4327        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
4328                      MVT::i32, 2, 0, 5,
4329        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4330                      MVT::f32, 3, 2, 6, 3,
4331       0,
4332      65,
4333       OPC_CheckPredicate, 19,
4334       OPC_MoveParent,
4335       OPC_CheckType, MVT::i32,
4336       OPC_Scope, 28,
4337        OPC_CheckChild2CondCode, ISD::SETGE,
4338        OPC_MoveParent,
4339        OPC_RecordChild1,
4340        OPC_RecordChild2,
4341        OPC_CheckType, MVT::f64,
4342        OPC_CheckPatternPredicate, 39,
4343        OPC_EmitConvertToTarget, 1,
4344        OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
4345                      MVT::i32, 2, 0, 4,
4346        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4347                      MVT::f64, 3, 2, 5, 3,
4348       28,
4349        OPC_CheckChild2CondCode, ISD::SETUGE,
4350        OPC_MoveParent,
4351        OPC_RecordChild1,
4352        OPC_RecordChild2,
4353        OPC_CheckType, MVT::f64,
4354        OPC_CheckPatternPredicate, 39,
4355        OPC_EmitConvertToTarget, 1,
4356        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
4357                      MVT::i32, 2, 0, 4,
4358        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4359                      MVT::f64, 3, 2, 5, 3,
4360       0,
4361      71,
4362       OPC_CheckPredicate, 20,
4363       OPC_MoveParent,
4364       OPC_CheckType, MVT::i32,
4365       OPC_Scope, 31,
4366        OPC_CheckChild2CondCode, ISD::SETGT,
4367        OPC_MoveParent,
4368        OPC_RecordChild1,
4369        OPC_RecordChild2,
4370        OPC_CheckType, MVT::f64,
4371        OPC_CheckPatternPredicate, 39,
4372        OPC_EmitConvertToTarget, 1,
4373        OPC_EmitNodeXForm, 2, 4,
4374        OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
4375                      MVT::i32, 2, 0, 5,
4376        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4377                      MVT::f64, 3, 2, 6, 3,
4378       31,
4379        OPC_CheckChild2CondCode, ISD::SETUGT,
4380        OPC_MoveParent,
4381        OPC_RecordChild1,
4382        OPC_RecordChild2,
4383        OPC_CheckType, MVT::f64,
4384        OPC_CheckPatternPredicate, 39,
4385        OPC_EmitConvertToTarget, 1,
4386        OPC_EmitNodeXForm, 2, 4,
4387        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
4388                      MVT::i32, 2, 0, 5,
4389        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4390                      MVT::f64, 3, 2, 6, 3,
4391       0,
4392      65,
4393       OPC_CheckPredicate, 19,
4394       OPC_MoveParent,
4395       OPC_CheckType, MVT::i32,
4396       OPC_Scope, 28,
4397        OPC_CheckChild2CondCode, ISD::SETGE,
4398        OPC_MoveParent,
4399        OPC_RecordChild1,
4400        OPC_RecordChild2,
4401        OPC_CheckType, MVT::f64,
4402        OPC_CheckPatternPredicate, 40,
4403        OPC_EmitConvertToTarget, 1,
4404        OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
4405                      MVT::i32, 2, 0, 4,
4406        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4407                      MVT::f64, 3, 2, 5, 3,
4408       28,
4409        OPC_CheckChild2CondCode, ISD::SETUGE,
4410        OPC_MoveParent,
4411        OPC_RecordChild1,
4412        OPC_RecordChild2,
4413        OPC_CheckType, MVT::f64,
4414        OPC_CheckPatternPredicate, 40,
4415        OPC_EmitConvertToTarget, 1,
4416        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
4417                      MVT::i32, 2, 0, 4,
4418        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4419                      MVT::f64, 3, 2, 5, 3,
4420       0,
4421      71,
4422       OPC_CheckPredicate, 20,
4423       OPC_MoveParent,
4424       OPC_CheckType, MVT::i32,
4425       OPC_Scope, 31,
4426        OPC_CheckChild2CondCode, ISD::SETGT,
4427        OPC_MoveParent,
4428        OPC_RecordChild1,
4429        OPC_RecordChild2,
4430        OPC_CheckType, MVT::f64,
4431        OPC_CheckPatternPredicate, 40,
4432        OPC_EmitConvertToTarget, 1,
4433        OPC_EmitNodeXForm, 2, 4,
4434        OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
4435                      MVT::i32, 2, 0, 5,
4436        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4437                      MVT::f64, 3, 2, 6, 3,
4438       31,
4439        OPC_CheckChild2CondCode, ISD::SETUGT,
4440        OPC_MoveParent,
4441        OPC_RecordChild1,
4442        OPC_RecordChild2,
4443        OPC_CheckType, MVT::f64,
4444        OPC_CheckPatternPredicate, 40,
4445        OPC_EmitConvertToTarget, 1,
4446        OPC_EmitNodeXForm, 2, 4,
4447        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
4448                      MVT::i32, 2, 0, 5,
4449        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4450                      MVT::f64, 3, 2, 6, 3,
4451       0,
4452      65,
4453       OPC_CheckPredicate, 19,
4454       OPC_MoveParent,
4455       OPC_CheckType, MVT::i32,
4456       OPC_Scope, 28,
4457        OPC_CheckChild2CondCode, ISD::SETGE,
4458        OPC_MoveParent,
4459        OPC_RecordChild1,
4460        OPC_RecordChild2,
4461        OPC_CheckType, MVT::f32,
4462        OPC_CheckPatternPredicate, 30,
4463        OPC_EmitConvertToTarget, 1,
4464        OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
4465                      MVT::i32, 2, 0, 4,
4466        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4467                      MVT::f32, 3, 2, 5, 3,
4468       28,
4469        OPC_CheckChild2CondCode, ISD::SETUGE,
4470        OPC_MoveParent,
4471        OPC_RecordChild1,
4472        OPC_RecordChild2,
4473        OPC_CheckType, MVT::f32,
4474        OPC_CheckPatternPredicate, 30,
4475        OPC_EmitConvertToTarget, 1,
4476        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
4477                      MVT::i32, 2, 0, 4,
4478        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4479                      MVT::f32, 3, 2, 5, 3,
4480       0,
4481      71,
4482       OPC_CheckPredicate, 20,
4483       OPC_MoveParent,
4484       OPC_CheckType, MVT::i32,
4485       OPC_Scope, 31,
4486        OPC_CheckChild2CondCode, ISD::SETGT,
4487        OPC_MoveParent,
4488        OPC_RecordChild1,
4489        OPC_RecordChild2,
4490        OPC_CheckType, MVT::f32,
4491        OPC_CheckPatternPredicate, 30,
4492        OPC_EmitConvertToTarget, 1,
4493        OPC_EmitNodeXForm, 2, 4,
4494        OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
4495                      MVT::i32, 2, 0, 5,
4496        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4497                      MVT::f32, 3, 2, 6, 3,
4498       31,
4499        OPC_CheckChild2CondCode, ISD::SETUGT,
4500        OPC_MoveParent,
4501        OPC_RecordChild1,
4502        OPC_RecordChild2,
4503        OPC_CheckType, MVT::f32,
4504        OPC_CheckPatternPredicate, 30,
4505        OPC_EmitConvertToTarget, 1,
4506        OPC_EmitNodeXForm, 2, 4,
4507        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
4508                      MVT::i32, 2, 0, 5,
4509        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4510                      MVT::f32, 3, 2, 6, 3,
4511       0,
4512      65,
4513       OPC_CheckPredicate, 19,
4514       OPC_MoveParent,
4515       OPC_CheckType, MVT::i32,
4516       OPC_Scope, 28,
4517        OPC_CheckChild2CondCode, ISD::SETGE,
4518        OPC_MoveParent,
4519        OPC_RecordChild1,
4520        OPC_RecordChild2,
4521        OPC_CheckType, MVT::f64,
4522        OPC_CheckPatternPredicate, 41,
4523        OPC_EmitConvertToTarget, 1,
4524        OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
4525                      MVT::i32, 2, 0, 4,
4526        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4527                      MVT::f64, 3, 2, 5, 3,
4528       28,
4529        OPC_CheckChild2CondCode, ISD::SETUGE,
4530        OPC_MoveParent,
4531        OPC_RecordChild1,
4532        OPC_RecordChild2,
4533        OPC_CheckType, MVT::f64,
4534        OPC_CheckPatternPredicate, 41,
4535        OPC_EmitConvertToTarget, 1,
4536        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
4537                      MVT::i32, 2, 0, 4,
4538        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4539                      MVT::f64, 3, 2, 5, 3,
4540       0,
4541      71,
4542       OPC_CheckPredicate, 20,
4543       OPC_MoveParent,
4544       OPC_CheckType, MVT::i32,
4545       OPC_Scope, 31,
4546        OPC_CheckChild2CondCode, ISD::SETGT,
4547        OPC_MoveParent,
4548        OPC_RecordChild1,
4549        OPC_RecordChild2,
4550        OPC_CheckType, MVT::f64,
4551        OPC_CheckPatternPredicate, 41,
4552        OPC_EmitConvertToTarget, 1,
4553        OPC_EmitNodeXForm, 2, 4,
4554        OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
4555                      MVT::i32, 2, 0, 5,
4556        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4557                      MVT::f64, 3, 2, 6, 3,
4558       31,
4559        OPC_CheckChild2CondCode, ISD::SETUGT,
4560        OPC_MoveParent,
4561        OPC_RecordChild1,
4562        OPC_RecordChild2,
4563        OPC_CheckType, MVT::f64,
4564        OPC_CheckPatternPredicate, 41,
4565        OPC_EmitConvertToTarget, 1,
4566        OPC_EmitNodeXForm, 2, 4,
4567        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
4568                      MVT::i32, 2, 0, 5,
4569        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4570                      MVT::f64, 3, 2, 6, 3,
4571       0,
4572      0,
4573     117,
4574      OPC_CheckChild2CondCode, ISD::SETGE,
4575      OPC_CheckType, MVT::i32,
4576      OPC_MoveParent,
4577      OPC_RecordChild1,
4578      OPC_RecordChild2,
4579      OPC_SwitchType , 42, MVT::f32,
4580       OPC_Scope, 19,
4581        OPC_CheckPatternPredicate, 35,
4582        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
4583                      MVT::i32, 2, 0, 1,
4584        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4585                      MVT::f32, 3, 2, 4, 3,
4586       19,
4587        OPC_CheckPatternPredicate, 30,
4588        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
4589                      MVT::i32, 2, 0, 1,
4590        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4591                      MVT::f32, 3, 2, 4, 3,
4592       0,
4593      62, MVT::f64,
4594       OPC_Scope, 19,
4595        OPC_CheckPatternPredicate, 39,
4596        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
4597                      MVT::i32, 2, 0, 1,
4598        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4599                      MVT::f64, 3, 2, 4, 3,
4600       19,
4601        OPC_CheckPatternPredicate, 40,
4602        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
4603                      MVT::i32, 2, 0, 1,
4604        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4605                      MVT::f64, 3, 2, 4, 3,
4606       19,
4607        OPC_CheckPatternPredicate, 41,
4608        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
4609                      MVT::i32, 2, 0, 1,
4610        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4611                      MVT::f64, 3, 2, 4, 3,
4612       0,
4613      0,
4614     117,
4615      OPC_CheckChild2CondCode, ISD::SETUGE,
4616      OPC_CheckType, MVT::i32,
4617      OPC_MoveParent,
4618      OPC_RecordChild1,
4619      OPC_RecordChild2,
4620      OPC_SwitchType , 42, MVT::f32,
4621       OPC_Scope, 19,
4622        OPC_CheckPatternPredicate, 35,
4623        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
4624                      MVT::i32, 2, 0, 1,
4625        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4626                      MVT::f32, 3, 2, 4, 3,
4627       19,
4628        OPC_CheckPatternPredicate, 30,
4629        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
4630                      MVT::i32, 2, 0, 1,
4631        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4632                      MVT::f32, 3, 2, 4, 3,
4633       0,
4634      62, MVT::f64,
4635       OPC_Scope, 19,
4636        OPC_CheckPatternPredicate, 39,
4637        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
4638                      MVT::i32, 2, 0, 1,
4639        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4640                      MVT::f64, 3, 2, 4, 3,
4641       19,
4642        OPC_CheckPatternPredicate, 40,
4643        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
4644                      MVT::i32, 2, 0, 1,
4645        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4646                      MVT::f64, 3, 2, 4, 3,
4647       19,
4648        OPC_CheckPatternPredicate, 41,
4649        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
4650                      MVT::i32, 2, 0, 1,
4651        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4652                      MVT::f64, 3, 2, 4, 3,
4653       0,
4654      0,
4655     117,
4656      OPC_CheckChild2CondCode, ISD::SETLE,
4657      OPC_CheckType, MVT::i32,
4658      OPC_MoveParent,
4659      OPC_RecordChild1,
4660      OPC_RecordChild2,
4661      OPC_SwitchType , 42, MVT::f32,
4662       OPC_Scope, 19,
4663        OPC_CheckPatternPredicate, 35,
4664        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
4665                      MVT::i32, 2, 1, 0,
4666        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4667                      MVT::f32, 3, 2, 4, 3,
4668       19,
4669        OPC_CheckPatternPredicate, 30,
4670        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
4671                      MVT::i32, 2, 1, 0,
4672        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4673                      MVT::f32, 3, 2, 4, 3,
4674       0,
4675      62, MVT::f64,
4676       OPC_Scope, 19,
4677        OPC_CheckPatternPredicate, 39,
4678        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
4679                      MVT::i32, 2, 1, 0,
4680        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4681                      MVT::f64, 3, 2, 4, 3,
4682       19,
4683        OPC_CheckPatternPredicate, 40,
4684        OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
4685                      MVT::i32, 2, 1, 0,
4686        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4687                      MVT::f64, 3, 2, 4, 3,
4688       19,
4689        OPC_CheckPatternPredicate, 41,
4690        OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
4691                      MVT::i32, 2, 1, 0,
4692        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4693                      MVT::f64, 3, 2, 4, 3,
4694       0,
4695      0,
4696     117,
4697      OPC_CheckChild2CondCode, ISD::SETULE,
4698      OPC_CheckType, MVT::i32,
4699      OPC_MoveParent,
4700      OPC_RecordChild1,
4701      OPC_RecordChild2,
4702      OPC_SwitchType , 42, MVT::f32,
4703       OPC_Scope, 19,
4704        OPC_CheckPatternPredicate, 35,
4705        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
4706                      MVT::i32, 2, 1, 0,
4707        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4708                      MVT::f32, 3, 2, 4, 3,
4709       19,
4710        OPC_CheckPatternPredicate, 30,
4711        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
4712                      MVT::i32, 2, 1, 0,
4713        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4714                      MVT::f32, 3, 2, 4, 3,
4715       0,
4716      62, MVT::f64,
4717       OPC_Scope, 19,
4718        OPC_CheckPatternPredicate, 39,
4719        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
4720                      MVT::i32, 2, 1, 0,
4721        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4722                      MVT::f64, 3, 2, 4, 3,
4723       19,
4724        OPC_CheckPatternPredicate, 40,
4725        OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
4726                      MVT::i32, 2, 1, 0,
4727        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4728                      MVT::f64, 3, 2, 4, 3,
4729       19,
4730        OPC_CheckPatternPredicate, 41,
4731        OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
4732                      MVT::i32, 2, 1, 0,
4733        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4734                      MVT::f64, 3, 2, 4, 3,
4735       0,
4736      0,
4737     117,
4738      OPC_CheckChild2CondCode, ISD::SETEQ,
4739      OPC_CheckType, MVT::i32,
4740      OPC_MoveParent,
4741      OPC_RecordChild1,
4742      OPC_RecordChild2,
4743      OPC_SwitchType , 42, MVT::f32,
4744       OPC_Scope, 19,
4745        OPC_CheckPatternPredicate, 35,
4746        OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
4747                      MVT::i32, 2, 0, 1,
4748        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4749                      MVT::f32, 3, 2, 4, 3,
4750       19,
4751        OPC_CheckPatternPredicate, 30,
4752        OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
4753                      MVT::i32, 2, 0, 1,
4754        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S_MM), 0,
4755                      MVT::f32, 3, 2, 4, 3,
4756       0,
4757      62, MVT::f64,
4758       OPC_Scope, 19,
4759        OPC_CheckPatternPredicate, 39,
4760        OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
4761                      MVT::i32, 2, 0, 1,
4762        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32), 0,
4763                      MVT::f64, 3, 2, 4, 3,
4764       19,
4765        OPC_CheckPatternPredicate, 40,
4766        OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
4767                      MVT::i32, 2, 0, 1,
4768        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4769                      MVT::f64, 3, 2, 4, 3,
4770       19,
4771        OPC_CheckPatternPredicate, 41,
4772        OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
4773                      MVT::i32, 2, 0, 1,
4774        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D32_MM), 0,
4775                      MVT::f64, 3, 2, 4, 3,
4776       0,
4777      0,
4778     117,
4779      OPC_CheckChild2CondCode, ISD::SETNE,
4780      OPC_CheckType, MVT::i32,
4781      OPC_MoveParent,
4782      OPC_RecordChild1,
4783      OPC_RecordChild2,
4784      OPC_SwitchType , 42, MVT::f32,
4785       OPC_Scope, 19,
4786        OPC_CheckPatternPredicate, 35,
4787        OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
4788                      MVT::i32, 2, 0, 1,
4789        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_S), 0,
4790                      MVT::f32, 3, 2, 4, 3,
4791       19,
4792        OPC_CheckPatternPredicate, 30,
4793        OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
4794                      MVT::i32, 2, 0, 1,
4795        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_S_MM), 0,
4796                      MVT::f32, 3, 2, 4, 3,
4797       0,
4798      62, MVT::f64,
4799       OPC_Scope, 19,
4800        OPC_CheckPatternPredicate, 39,
4801        OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
4802                      MVT::i32, 2, 0, 1,
4803        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D32), 0,
4804                      MVT::f64, 3, 2, 4, 3,
4805       19,
4806        OPC_CheckPatternPredicate, 40,
4807        OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
4808                      MVT::i32, 2, 0, 1,
4809        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D64), 0,
4810                      MVT::f64, 3, 2, 4, 3,
4811       19,
4812        OPC_CheckPatternPredicate, 41,
4813        OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
4814                      MVT::i32, 2, 0, 1,
4815        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D32_MM), 0,
4816                      MVT::f64, 3, 2, 4, 3,
4817       0,
4818      0,
4819     0,
4820    0,
4821   40|128,5,
4822    OPC_CheckChild0Type, MVT::i64,
4823    OPC_Scope, 74,
4824     OPC_CheckChild1Integer, 0,
4825     OPC_CheckType, MVT::i32,
4826     OPC_Scope, 33,
4827      OPC_CheckChild2CondCode, ISD::SETEQ,
4828      OPC_MoveParent,
4829      OPC_RecordChild1,
4830      OPC_RecordChild2,
4831      OPC_SwitchType , 11, MVT::f32,
4832       OPC_CheckPatternPredicate, 36,
4833       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_S), 0,
4834                     MVT::f32, 3, 1, 0, 2,
4835      11, MVT::f64,
4836       OPC_CheckPatternPredicate, 40,
4837       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_D64), 0,
4838                     MVT::f64, 3, 1, 0, 2,
4839      0,
4840     33,
4841      OPC_CheckChild2CondCode, ISD::SETNE,
4842      OPC_MoveParent,
4843      OPC_RecordChild1,
4844      OPC_RecordChild2,
4845      OPC_SwitchType , 11, MVT::f32,
4846       OPC_CheckPatternPredicate, 36,
4847       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_S), 0,
4848                     MVT::f32, 3, 1, 0, 2,
4849      11, MVT::f64,
4850       OPC_CheckPatternPredicate, 40,
4851       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_D64), 0,
4852                     MVT::f64, 3, 1, 0, 2,
4853      0,
4854     0,
4855    87|128,4,
4856     OPC_RecordChild1,
4857     OPC_Scope, 26|128,2,
4858      OPC_MoveChild1,
4859      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
4860      OPC_Scope, 65,
4861       OPC_CheckPredicate, 19,
4862       OPC_MoveParent,
4863       OPC_CheckType, MVT::i32,
4864       OPC_Scope, 28,
4865        OPC_CheckChild2CondCode, ISD::SETGE,
4866        OPC_MoveParent,
4867        OPC_RecordChild1,
4868        OPC_RecordChild2,
4869        OPC_CheckType, MVT::f32,
4870        OPC_CheckPatternPredicate, 36,
4871        OPC_EmitConvertToTarget, 1,
4872        OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
4873                      MVT::i32, 2, 0, 4,
4874        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4875                      MVT::f32, 3, 2, 5, 3,
4876       28,
4877        OPC_CheckChild2CondCode, ISD::SETUGE,
4878        OPC_MoveParent,
4879        OPC_RecordChild1,
4880        OPC_RecordChild2,
4881        OPC_CheckType, MVT::f32,
4882        OPC_CheckPatternPredicate, 36,
4883        OPC_EmitConvertToTarget, 1,
4884        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
4885                      MVT::i32, 2, 0, 4,
4886        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4887                      MVT::f32, 3, 2, 5, 3,
4888       0,
4889      71,
4890       OPC_CheckPredicate, 20,
4891       OPC_MoveParent,
4892       OPC_CheckType, MVT::i32,
4893       OPC_Scope, 31,
4894        OPC_CheckChild2CondCode, ISD::SETGT,
4895        OPC_MoveParent,
4896        OPC_RecordChild1,
4897        OPC_RecordChild2,
4898        OPC_CheckType, MVT::f32,
4899        OPC_CheckPatternPredicate, 36,
4900        OPC_EmitConvertToTarget, 1,
4901        OPC_EmitNodeXForm, 2, 4,
4902        OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
4903                      MVT::i32, 2, 0, 5,
4904        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4905                      MVT::f32, 3, 2, 6, 3,
4906       31,
4907        OPC_CheckChild2CondCode, ISD::SETUGT,
4908        OPC_MoveParent,
4909        OPC_RecordChild1,
4910        OPC_RecordChild2,
4911        OPC_CheckType, MVT::f32,
4912        OPC_CheckPatternPredicate, 36,
4913        OPC_EmitConvertToTarget, 1,
4914        OPC_EmitNodeXForm, 2, 4,
4915        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
4916                      MVT::i32, 2, 0, 5,
4917        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4918                      MVT::f32, 3, 2, 6, 3,
4919       0,
4920      65,
4921       OPC_CheckPredicate, 19,
4922       OPC_MoveParent,
4923       OPC_CheckType, MVT::i32,
4924       OPC_Scope, 28,
4925        OPC_CheckChild2CondCode, ISD::SETGE,
4926        OPC_MoveParent,
4927        OPC_RecordChild1,
4928        OPC_RecordChild2,
4929        OPC_CheckType, MVT::f64,
4930        OPC_CheckPatternPredicate, 40,
4931        OPC_EmitConvertToTarget, 1,
4932        OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
4933                      MVT::i32, 2, 0, 4,
4934        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4935                      MVT::f64, 3, 2, 5, 3,
4936       28,
4937        OPC_CheckChild2CondCode, ISD::SETUGE,
4938        OPC_MoveParent,
4939        OPC_RecordChild1,
4940        OPC_RecordChild2,
4941        OPC_CheckType, MVT::f64,
4942        OPC_CheckPatternPredicate, 40,
4943        OPC_EmitConvertToTarget, 1,
4944        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
4945                      MVT::i32, 2, 0, 4,
4946        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4947                      MVT::f64, 3, 2, 5, 3,
4948       0,
4949      71,
4950       OPC_CheckPredicate, 20,
4951       OPC_MoveParent,
4952       OPC_CheckType, MVT::i32,
4953       OPC_Scope, 31,
4954        OPC_CheckChild2CondCode, ISD::SETGT,
4955        OPC_MoveParent,
4956        OPC_RecordChild1,
4957        OPC_RecordChild2,
4958        OPC_CheckType, MVT::f64,
4959        OPC_CheckPatternPredicate, 40,
4960        OPC_EmitConvertToTarget, 1,
4961        OPC_EmitNodeXForm, 2, 4,
4962        OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
4963                      MVT::i32, 2, 0, 5,
4964        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4965                      MVT::f64, 3, 2, 6, 3,
4966       31,
4967        OPC_CheckChild2CondCode, ISD::SETUGT,
4968        OPC_MoveParent,
4969        OPC_RecordChild1,
4970        OPC_RecordChild2,
4971        OPC_CheckType, MVT::f64,
4972        OPC_CheckPatternPredicate, 40,
4973        OPC_EmitConvertToTarget, 1,
4974        OPC_EmitNodeXForm, 2, 4,
4975        OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
4976                      MVT::i32, 2, 0, 5,
4977        OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4978                      MVT::f64, 3, 2, 6, 3,
4979       0,
4980      0,
4981     51,
4982      OPC_CheckChild2CondCode, ISD::SETGE,
4983      OPC_CheckType, MVT::i32,
4984      OPC_MoveParent,
4985      OPC_RecordChild1,
4986      OPC_RecordChild2,
4987      OPC_SwitchType , 19, MVT::f32,
4988       OPC_CheckPatternPredicate, 36,
4989       OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
4990                     MVT::i32, 2, 0, 1,
4991       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
4992                     MVT::f32, 3, 2, 4, 3,
4993      19, MVT::f64,
4994       OPC_CheckPatternPredicate, 40,
4995       OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
4996                     MVT::i32, 2, 0, 1,
4997       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
4998                     MVT::f64, 3, 2, 4, 3,
4999      0,
5000     51,
5001      OPC_CheckChild2CondCode, ISD::SETUGE,
5002      OPC_CheckType, MVT::i32,
5003      OPC_MoveParent,
5004      OPC_RecordChild1,
5005      OPC_RecordChild2,
5006      OPC_SwitchType , 19, MVT::f32,
5007       OPC_CheckPatternPredicate, 36,
5008       OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
5009                     MVT::i32, 2, 0, 1,
5010       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
5011                     MVT::f32, 3, 2, 4, 3,
5012      19, MVT::f64,
5013       OPC_CheckPatternPredicate, 40,
5014       OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
5015                     MVT::i32, 2, 0, 1,
5016       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
5017                     MVT::f64, 3, 2, 4, 3,
5018      0,
5019     51,
5020      OPC_CheckChild2CondCode, ISD::SETLE,
5021      OPC_CheckType, MVT::i32,
5022      OPC_MoveParent,
5023      OPC_RecordChild1,
5024      OPC_RecordChild2,
5025      OPC_SwitchType , 19, MVT::f32,
5026       OPC_CheckPatternPredicate, 36,
5027       OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
5028                     MVT::i32, 2, 1, 0,
5029       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
5030                     MVT::f32, 3, 2, 4, 3,
5031      19, MVT::f64,
5032       OPC_CheckPatternPredicate, 40,
5033       OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
5034                     MVT::i32, 2, 1, 0,
5035       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
5036                     MVT::f64, 3, 2, 4, 3,
5037      0,
5038     51,
5039      OPC_CheckChild2CondCode, ISD::SETULE,
5040      OPC_CheckType, MVT::i32,
5041      OPC_MoveParent,
5042      OPC_RecordChild1,
5043      OPC_RecordChild2,
5044      OPC_SwitchType , 19, MVT::f32,
5045       OPC_CheckPatternPredicate, 36,
5046       OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
5047                     MVT::i32, 2, 1, 0,
5048       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_S), 0,
5049                     MVT::f32, 3, 2, 4, 3,
5050      19, MVT::f64,
5051       OPC_CheckPatternPredicate, 40,
5052       OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
5053                     MVT::i32, 2, 1, 0,
5054       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I_D64), 0,
5055                     MVT::f64, 3, 2, 4, 3,
5056      0,
5057     51,
5058      OPC_CheckChild2CondCode, ISD::SETEQ,
5059      OPC_CheckType, MVT::i32,
5060      OPC_MoveParent,
5061      OPC_RecordChild1,
5062      OPC_RecordChild2,
5063      OPC_SwitchType , 19, MVT::f32,
5064       OPC_CheckPatternPredicate, 36,
5065       OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
5066                     MVT::i64, 2, 0, 1,
5067       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_S), 0,
5068                     MVT::f32, 3, 2, 4, 3,
5069      19, MVT::f64,
5070       OPC_CheckPatternPredicate, 40,
5071       OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
5072                     MVT::i64, 2, 0, 1,
5073       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVZ_I64_D64), 0,
5074                     MVT::f64, 3, 2, 4, 3,
5075      0,
5076     51,
5077      OPC_CheckChild2CondCode, ISD::SETNE,
5078      OPC_CheckType, MVT::i32,
5079      OPC_MoveParent,
5080      OPC_RecordChild1,
5081      OPC_RecordChild2,
5082      OPC_SwitchType , 19, MVT::f32,
5083       OPC_CheckPatternPredicate, 36,
5084       OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
5085                     MVT::i64, 2, 0, 1,
5086       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_S), 0,
5087                     MVT::f32, 3, 2, 4, 3,
5088      19, MVT::f64,
5089       OPC_CheckPatternPredicate, 40,
5090       OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
5091                     MVT::i64, 2, 0, 1,
5092       OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_D64), 0,
5093                     MVT::f64, 3, 2, 4, 3,
5094      0,
5095     0,
5096    0,
5097   0,
5098  44|128,1,
5099   OPC_RecordChild0,
5100   OPC_Scope, 6|128,1,
5101    OPC_CheckChild0Type, MVT::i32,
5102    OPC_RecordChild1,
5103    OPC_RecordChild2,
5104    OPC_SwitchType , 62, MVT::f32,
5105     OPC_Scope, 11,
5106      OPC_CheckPatternPredicate, 35,
5107      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_S), 0,
5108                    MVT::f32, 3, 1, 0, 2,
5109     11,
5110      OPC_CheckPatternPredicate, 42,
5111      OPC_MorphNodeTo1, TARGET_VAL(Mips::SEL_S), 0,
5112                    MVT::f32, 3, 0, 2, 1,
5113     11,
5114      OPC_CheckPatternPredicate, 30,
5115      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_S_MM), 0,
5116                    MVT::f32, 3, 1, 0, 2,
5117     11,
5118      OPC_CheckPatternPredicate, 16,
5119      OPC_MorphNodeTo1, TARGET_VAL(Mips::SEL_S_MMR6), 0,
5120                    MVT::f32, 3, 0, 2, 1,
5121     11,
5122      OPC_CheckPatternPredicate, 38,
5123      OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECT_S), 0,
5124                    MVT::f32, 3, 0, 1, 2,
5125     0,
5126    62, MVT::f64,
5127     OPC_Scope, 11,
5128      OPC_CheckPatternPredicate, 39,
5129      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D32), 0,
5130                    MVT::f64, 3, 1, 0, 2,
5131     11,
5132      OPC_CheckPatternPredicate, 40,
5133      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D64), 0,
5134                    MVT::f64, 3, 1, 0, 2,
5135     11,
5136      OPC_CheckPatternPredicate, 41,
5137      OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I_D32_MM), 0,
5138                    MVT::f64, 3, 1, 0, 2,
5139     11,
5140      OPC_CheckPatternPredicate, 43,
5141      OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECT_D32), 0,
5142                    MVT::f64, 3, 0, 1, 2,
5143     11,
5144      OPC_CheckPatternPredicate, 44,
5145      OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECT_D64), 0,
5146                    MVT::f64, 3, 0, 1, 2,
5147     0,
5148    0,
5149   32,
5150    OPC_CheckChild0Type, MVT::i64,
5151    OPC_RecordChild1,
5152    OPC_RecordChild2,
5153    OPC_SwitchType , 11, MVT::f32,
5154     OPC_CheckPatternPredicate, 36,
5155     OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_S), 0,
5156                   MVT::f32, 3, 1, 0, 2,
5157    11, MVT::f64,
5158     OPC_CheckPatternPredicate, 40,
5159     OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVN_I64_D64), 0,
5160                   MVT::f64, 3, 1, 0, 2,
5161    0,
5162   0,
5163  0,
5164 55|128,1, TARGET_VAL(ISD::ATOMIC_LOAD),
5165  OPC_RecordMemRef,
5166  OPC_RecordNode,
5167  OPC_RecordChild1,
5168  OPC_SwitchType , 104, MVT::i32,
5169   OPC_Scope, 16,
5170    OPC_CheckPredicate, 8,
5171    OPC_CheckPatternPredicate, 7,
5172    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5173    OPC_EmitMergeInputChains1_0,
5174    OPC_MorphNodeTo1, TARGET_VAL(Mips::LB), 0|OPFL_Chain|OPFL_MemRefs,
5175                  MVT::i32, 2, 2, 3,
5176   16,
5177    OPC_CheckPredicate, 9,
5178    OPC_CheckPatternPredicate, 7,
5179    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5180    OPC_EmitMergeInputChains1_0,
5181    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH), 0|OPFL_Chain|OPFL_MemRefs,
5182                  MVT::i32, 2, 2, 3,
5183   16,
5184    OPC_CheckPredicate, 14,
5185    OPC_CheckPatternPredicate, 7,
5186    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5187    OPC_EmitMergeInputChains1_0,
5188    OPC_MorphNodeTo1, TARGET_VAL(Mips::LW), 0|OPFL_Chain|OPFL_MemRefs,
5189                  MVT::i32, 2, 2, 3,
5190   16,
5191    OPC_CheckPredicate, 8,
5192    OPC_CheckPatternPredicate, 8,
5193    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5194    OPC_EmitMergeInputChains1_0,
5195    OPC_MorphNodeTo1, TARGET_VAL(Mips::LB_MM), 0|OPFL_Chain|OPFL_MemRefs,
5196                  MVT::i32, 2, 2, 3,
5197   16,
5198    OPC_CheckPredicate, 9,
5199    OPC_CheckPatternPredicate, 8,
5200    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5201    OPC_EmitMergeInputChains1_0,
5202    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH_MM), 0|OPFL_Chain|OPFL_MemRefs,
5203                  MVT::i32, 2, 2, 3,
5204   16,
5205    OPC_CheckPredicate, 14,
5206    OPC_CheckPatternPredicate, 8,
5207    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5208    OPC_EmitMergeInputChains1_0,
5209    OPC_MorphNodeTo1, TARGET_VAL(Mips::LW_MM), 0|OPFL_Chain|OPFL_MemRefs,
5210                  MVT::i32, 2, 2, 3,
5211   0,
5212  70, MVT::i64,
5213   OPC_Scope, 16,
5214    OPC_CheckPredicate, 8,
5215    OPC_CheckPatternPredicate, 29,
5216    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5217    OPC_EmitMergeInputChains1_0,
5218    OPC_MorphNodeTo1, TARGET_VAL(Mips::LB64), 0|OPFL_Chain|OPFL_MemRefs,
5219                  MVT::i64, 2, 2, 3,
5220   16,
5221    OPC_CheckPredicate, 9,
5222    OPC_CheckPatternPredicate, 29,
5223    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5224    OPC_EmitMergeInputChains1_0,
5225    OPC_MorphNodeTo1, TARGET_VAL(Mips::LH64), 0|OPFL_Chain|OPFL_MemRefs,
5226                  MVT::i64, 2, 2, 3,
5227   16,
5228    OPC_CheckPredicate, 14,
5229    OPC_CheckPatternPredicate, 29,
5230    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5231    OPC_EmitMergeInputChains1_0,
5232    OPC_MorphNodeTo1, TARGET_VAL(Mips::LW64), 0|OPFL_Chain|OPFL_MemRefs,
5233                  MVT::i64, 2, 2, 3,
5234   16,
5235    OPC_CheckPredicate, 24,
5236    OPC_CheckPatternPredicate, 29,
5237    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5238    OPC_EmitMergeInputChains1_0,
5239    OPC_MorphNodeTo1, TARGET_VAL(Mips::LD), 0|OPFL_Chain|OPFL_MemRefs,
5240                  MVT::i64, 2, 2, 3,
5241   0,
5242  0,
5243 7|128,1, TARGET_VAL(ISD::ATOMIC_STORE),
5244  OPC_RecordMemRef,
5245  OPC_RecordNode,
5246  OPC_RecordChild1,
5247  OPC_RecordChild2,
5248  OPC_Scope, 55,
5249   OPC_CheckChild2Type, MVT::i32,
5250   OPC_Scope, 16,
5251    OPC_CheckPredicate, 8,
5252    OPC_CheckPatternPredicate, 7,
5253    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5254    OPC_EmitMergeInputChains1_0,
5255    OPC_MorphNodeTo0, TARGET_VAL(Mips::SB), 0|OPFL_Chain|OPFL_MemRefs,
5256                  3, 2, 3, 4,
5257   16,
5258    OPC_CheckPredicate, 9,
5259    OPC_CheckPatternPredicate, 7,
5260    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5261    OPC_EmitMergeInputChains1_0,
5262    OPC_MorphNodeTo0, TARGET_VAL(Mips::SH), 0|OPFL_Chain|OPFL_MemRefs,
5263                  3, 2, 3, 4,
5264   16,
5265    OPC_CheckPredicate, 14,
5266    OPC_CheckPatternPredicate, 7,
5267    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5268    OPC_EmitMergeInputChains1_0,
5269    OPC_MorphNodeTo0, TARGET_VAL(Mips::SW), 0|OPFL_Chain|OPFL_MemRefs,
5270                  3, 2, 3, 4,
5271   0,
5272  72,
5273   OPC_CheckChild2Type, MVT::i64,
5274   OPC_Scope, 16,
5275    OPC_CheckPredicate, 8,
5276    OPC_CheckPatternPredicate, 29,
5277    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5278    OPC_EmitMergeInputChains1_0,
5279    OPC_MorphNodeTo0, TARGET_VAL(Mips::SB64), 0|OPFL_Chain|OPFL_MemRefs,
5280                  3, 2, 3, 4,
5281   16,
5282    OPC_CheckPredicate, 9,
5283    OPC_CheckPatternPredicate, 29,
5284    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5285    OPC_EmitMergeInputChains1_0,
5286    OPC_MorphNodeTo0, TARGET_VAL(Mips::SH64), 0|OPFL_Chain|OPFL_MemRefs,
5287                  3, 2, 3, 4,
5288   16,
5289    OPC_CheckPredicate, 14,
5290    OPC_CheckPatternPredicate, 29,
5291    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5292    OPC_EmitMergeInputChains1_0,
5293    OPC_MorphNodeTo0, TARGET_VAL(Mips::SW64), 0|OPFL_Chain|OPFL_MemRefs,
5294                  3, 2, 3, 4,
5295   16,
5296    OPC_CheckPredicate, 24,
5297    OPC_CheckPatternPredicate, 29,
5298    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5299    OPC_EmitMergeInputChains1_0,
5300    OPC_MorphNodeTo0, TARGET_VAL(Mips::SD), 0|OPFL_Chain|OPFL_MemRefs,
5301                  3, 2, 3, 4,
5302   0,
5303  0,
5304 75, TARGET_VAL(MipsISD::LWL),
5305  OPC_RecordMemRef,
5306  OPC_RecordNode,
5307  OPC_RecordChild1,
5308  OPC_RecordChild2,
5309  OPC_SwitchType , 50, MVT::i32,
5310   OPC_Scope, 15,
5311    OPC_CheckPatternPredicate, 11,
5312    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5313    OPC_EmitMergeInputChains1_0,
5314    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWL), 0|OPFL_Chain|OPFL_MemRefs,
5315                  MVT::i32, 3, 3, 4, 2,
5316   15,
5317    OPC_CheckPatternPredicate, 45,
5318    OPC_CheckComplexPat, /*CP*/12, /*#*/1,
5319    OPC_EmitMergeInputChains1_0,
5320    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWLE_MM), 0|OPFL_Chain|OPFL_MemRefs,
5321                  MVT::i32, 3, 3, 4, 2,
5322   15,
5323    OPC_CheckPatternPredicate, 30,
5324    OPC_CheckComplexPat, /*CP*/12, /*#*/1,
5325    OPC_EmitMergeInputChains1_0,
5326    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWL_MM), 0|OPFL_Chain|OPFL_MemRefs,
5327                  MVT::i32, 3, 3, 4, 2,
5328   0,
5329  15, MVT::i64,
5330   OPC_CheckPatternPredicate, 24,
5331   OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5332   OPC_EmitMergeInputChains1_0,
5333   OPC_MorphNodeTo1, TARGET_VAL(Mips::LWL64), 0|OPFL_Chain|OPFL_MemRefs,
5334                 MVT::i64, 3, 3, 4, 2,
5335  0,
5336 75, TARGET_VAL(MipsISD::LWR),
5337  OPC_RecordMemRef,
5338  OPC_RecordNode,
5339  OPC_RecordChild1,
5340  OPC_RecordChild2,
5341  OPC_SwitchType , 50, MVT::i32,
5342   OPC_Scope, 15,
5343    OPC_CheckPatternPredicate, 11,
5344    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5345    OPC_EmitMergeInputChains1_0,
5346    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWR), 0|OPFL_Chain|OPFL_MemRefs,
5347                  MVT::i32, 3, 3, 4, 2,
5348   15,
5349    OPC_CheckPatternPredicate, 45,
5350    OPC_CheckComplexPat, /*CP*/12, /*#*/1,
5351    OPC_EmitMergeInputChains1_0,
5352    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWRE_MM), 0|OPFL_Chain|OPFL_MemRefs,
5353                  MVT::i32, 3, 3, 4, 2,
5354   15,
5355    OPC_CheckPatternPredicate, 30,
5356    OPC_CheckComplexPat, /*CP*/12, /*#*/1,
5357    OPC_EmitMergeInputChains1_0,
5358    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWR_MM), 0|OPFL_Chain|OPFL_MemRefs,
5359                  MVT::i32, 3, 3, 4, 2,
5360   0,
5361  15, MVT::i64,
5362   OPC_CheckPatternPredicate, 24,
5363   OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5364   OPC_EmitMergeInputChains1_0,
5365   OPC_MorphNodeTo1, TARGET_VAL(Mips::LWR64), 0|OPFL_Chain|OPFL_MemRefs,
5366                 MVT::i64, 3, 3, 4, 2,
5367  0,
5368 74, TARGET_VAL(MipsISD::SWL),
5369  OPC_RecordMemRef,
5370  OPC_RecordNode,
5371  OPC_RecordChild1,
5372  OPC_Scope, 50,
5373   OPC_CheckChild1Type, MVT::i32,
5374   OPC_RecordChild2,
5375   OPC_Scope, 14,
5376    OPC_CheckPatternPredicate, 11,
5377    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
5378    OPC_EmitMergeInputChains1_0,
5379    OPC_MorphNodeTo0, TARGET_VAL(Mips::SWL), 0|OPFL_Chain|OPFL_MemRefs,
5380                  3, 1, 3, 4,
5381   14,
5382    OPC_CheckPatternPredicate, 45,
5383    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
5384    OPC_EmitMergeInputChains1_0,
5385    OPC_MorphNodeTo0, TARGET_VAL(Mips::SWLE_MM), 0|OPFL_Chain|OPFL_MemRefs,
5386                  3, 1, 3, 4,
5387   14,
5388    OPC_CheckPatternPredicate, 30,
5389    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
5390    OPC_EmitMergeInputChains1_0,
5391    OPC_MorphNodeTo0, TARGET_VAL(Mips::SWL_MM), 0|OPFL_Chain|OPFL_MemRefs,
5392                  3, 1, 3, 4,
5393   0,
5394  17,
5395   OPC_CheckChild1Type, MVT::i64,
5396   OPC_RecordChild2,
5397   OPC_CheckPatternPredicate, 24,
5398   OPC_CheckComplexPat, /*CP*/1, /*#*/2,
5399   OPC_EmitMergeInputChains1_0,
5400   OPC_MorphNodeTo0, TARGET_VAL(Mips::SWL64), 0|OPFL_Chain|OPFL_MemRefs,
5401                 3, 1, 3, 4,
5402  0,
5403 74, TARGET_VAL(MipsISD::SWR),
5404  OPC_RecordMemRef,
5405  OPC_RecordNode,
5406  OPC_RecordChild1,
5407  OPC_Scope, 50,
5408   OPC_CheckChild1Type, MVT::i32,
5409   OPC_RecordChild2,
5410   OPC_Scope, 14,
5411    OPC_CheckPatternPredicate, 11,
5412    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
5413    OPC_EmitMergeInputChains1_0,
5414    OPC_MorphNodeTo0, TARGET_VAL(Mips::SWR), 0|OPFL_Chain|OPFL_MemRefs,
5415                  3, 1, 3, 4,
5416   14,
5417    OPC_CheckPatternPredicate, 45,
5418    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
5419    OPC_EmitMergeInputChains1_0,
5420    OPC_MorphNodeTo0, TARGET_VAL(Mips::SWRE_MM), 0|OPFL_Chain|OPFL_MemRefs,
5421                  3, 1, 3, 4,
5422   14,
5423    OPC_CheckPatternPredicate, 30,
5424    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
5425    OPC_EmitMergeInputChains1_0,
5426    OPC_MorphNodeTo0, TARGET_VAL(Mips::SWR_MM), 0|OPFL_Chain|OPFL_MemRefs,
5427                  3, 1, 3, 4,
5428   0,
5429  17,
5430   OPC_CheckChild1Type, MVT::i64,
5431   OPC_RecordChild2,
5432   OPC_CheckPatternPredicate, 24,
5433   OPC_CheckComplexPat, /*CP*/1, /*#*/2,
5434   OPC_EmitMergeInputChains1_0,
5435   OPC_MorphNodeTo0, TARGET_VAL(Mips::SWR64), 0|OPFL_Chain|OPFL_MemRefs,
5436                 3, 1, 3, 4,
5437  0,
5438 21, TARGET_VAL(MipsISD::LDL),
5439  OPC_RecordMemRef,
5440  OPC_RecordNode,
5441  OPC_RecordChild1,
5442  OPC_RecordChild2,
5443  OPC_CheckType, MVT::i64,
5444  OPC_CheckPatternPredicate, 46,
5445  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5446  OPC_EmitMergeInputChains1_0,
5447  OPC_MorphNodeTo1, TARGET_VAL(Mips::LDL), 0|OPFL_Chain|OPFL_MemRefs,
5448                MVT::i64, 3, 3, 4, 2,
5449 21, TARGET_VAL(MipsISD::LDR),
5450  OPC_RecordMemRef,
5451  OPC_RecordNode,
5452  OPC_RecordChild1,
5453  OPC_RecordChild2,
5454  OPC_CheckType, MVT::i64,
5455  OPC_CheckPatternPredicate, 46,
5456  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
5457  OPC_EmitMergeInputChains1_0,
5458  OPC_MorphNodeTo1, TARGET_VAL(Mips::LDR), 0|OPFL_Chain|OPFL_MemRefs,
5459                MVT::i64, 3, 3, 4, 2,
5460 20, TARGET_VAL(MipsISD::SDL),
5461  OPC_RecordMemRef,
5462  OPC_RecordNode,
5463  OPC_RecordChild1,
5464  OPC_CheckChild1Type, MVT::i64,
5465  OPC_RecordChild2,
5466  OPC_CheckPatternPredicate, 46,
5467  OPC_CheckComplexPat, /*CP*/1, /*#*/2,
5468  OPC_EmitMergeInputChains1_0,
5469  OPC_MorphNodeTo0, TARGET_VAL(Mips::SDL), 0|OPFL_Chain|OPFL_MemRefs,
5470                3, 1, 3, 4,
5471 20, TARGET_VAL(MipsISD::SDR),
5472  OPC_RecordMemRef,
5473  OPC_RecordNode,
5474  OPC_RecordChild1,
5475  OPC_CheckChild1Type, MVT::i64,
5476  OPC_RecordChild2,
5477  OPC_CheckPatternPredicate, 46,
5478  OPC_CheckComplexPat, /*CP*/1, /*#*/2,
5479  OPC_EmitMergeInputChains1_0,
5480  OPC_MorphNodeTo0, TARGET_VAL(Mips::SDR), 0|OPFL_Chain|OPFL_MemRefs,
5481                3, 1, 3, 4,
5482 23|128,11, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
5483  OPC_RecordNode,
5484  OPC_Scope, 69,
5485   OPC_CheckChild1Integer, 70|128,84,
5486   OPC_RecordChild2,
5487   OPC_RecordChild3,
5488   OPC_Scope, 37,
5489    OPC_MoveChild3,
5490    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5491    OPC_CheckPredicate, 25,
5492    OPC_MoveParent,
5493    OPC_Scope, 13,
5494     OPC_CheckPatternPredicate, 28,
5495     OPC_EmitMergeInputChains1_0,
5496     OPC_EmitConvertToTarget, 2,
5497     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_S_W), 0|OPFL_Chain,
5498                   MVT::i32, 2, 1, 3,
5499    13,
5500     OPC_CheckPatternPredicate, 47,
5501     OPC_EmitMergeInputChains1_0,
5502     OPC_EmitConvertToTarget, 2,
5503     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_S_W_MM), 0|OPFL_Chain,
5504                   MVT::i32, 2, 1, 3,
5505    0,
5506   11,
5507    OPC_CheckPatternPredicate, 28,
5508    OPC_EmitMergeInputChains1_0,
5509    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_S_W), 0|OPFL_Chain,
5510                  MVT::i32, 2, 1, 2,
5511   11,
5512    OPC_CheckPatternPredicate, 47,
5513    OPC_EmitMergeInputChains1_0,
5514    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_S_W_MM), 0|OPFL_Chain,
5515                  MVT::i32, 2, 1, 2,
5516   0,
5517  38,
5518   OPC_CheckChild1Integer, 34|128,84,
5519   OPC_RecordChild2,
5520   OPC_MoveChild2,
5521   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
5522   OPC_Scope, 13,
5523    OPC_CheckPredicate, 26,
5524    OPC_MoveParent,
5525    OPC_CheckPatternPredicate, 28,
5526    OPC_EmitMergeInputChains1_0,
5527    OPC_MorphNodeTo1, TARGET_VAL(Mips::RDDSP), 0|OPFL_Chain,
5528                  MVT::i32, 1, 1,
5529   13,
5530    OPC_CheckPredicate, 27,
5531    OPC_MoveParent,
5532    OPC_CheckPatternPredicate, 47,
5533    OPC_EmitMergeInputChains1_0,
5534    OPC_MorphNodeTo1, TARGET_VAL(Mips::RDDSP_MM), 0|OPFL_Chain,
5535                  MVT::i32, 1, 1,
5536   0,
5537  31,
5538   OPC_CheckChild1Integer, 126|128,75,
5539   OPC_RecordChild2,
5540   OPC_RecordChild3,
5541   OPC_Scope, 11,
5542    OPC_CheckPatternPredicate, 28,
5543    OPC_EmitMergeInputChains1_0,
5544    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQ_S_W), 0|OPFL_Chain,
5545                  MVT::i32, 2, 1, 2,
5546   11,
5547    OPC_CheckPatternPredicate, 47,
5548    OPC_EmitMergeInputChains1_0,
5549    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQ_S_W_MM), 0|OPFL_Chain,
5550                  MVT::i32, 2, 1, 2,
5551   0,
5552  31,
5553   OPC_CheckChild1Integer, 86|128,85,
5554   OPC_RecordChild2,
5555   OPC_RecordChild3,
5556   OPC_Scope, 11,
5557    OPC_CheckPatternPredicate, 28,
5558    OPC_EmitMergeInputChains1_0,
5559    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQ_S_W), 0|OPFL_Chain,
5560                  MVT::i32, 2, 1, 2,
5561   11,
5562    OPC_CheckPatternPredicate, 47,
5563    OPC_EmitMergeInputChains1_0,
5564    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQ_S_W_MM), 0|OPFL_Chain,
5565                  MVT::i32, 2, 1, 2,
5566   0,
5567  28,
5568   OPC_CheckChild1Integer, 112|128,75,
5569   OPC_RecordChild2,
5570   OPC_Scope, 10,
5571    OPC_CheckPatternPredicate, 28,
5572    OPC_EmitMergeInputChains1_0,
5573    OPC_MorphNodeTo1, TARGET_VAL(Mips::ABSQ_S_W), 0|OPFL_Chain,
5574                  MVT::i32, 1, 1,
5575   10,
5576    OPC_CheckPatternPredicate, 47,
5577    OPC_EmitMergeInputChains1_0,
5578    OPC_MorphNodeTo1, TARGET_VAL(Mips::ABSQ_S_W_MM), 0|OPFL_Chain,
5579                  MVT::i32, 1, 1,
5580   0,
5581  31,
5582   OPC_CheckChild1Integer, 34|128,83,
5583   OPC_RecordChild2,
5584   OPC_RecordChild3,
5585   OPC_Scope, 11,
5586    OPC_CheckPatternPredicate, 28,
5587    OPC_EmitMergeInputChains1_0,
5588    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEQ_S_W_PHL), 0|OPFL_Chain,
5589                  MVT::i32, 2, 1, 2,
5590   11,
5591    OPC_CheckPatternPredicate, 47,
5592    OPC_EmitMergeInputChains1_0,
5593    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEQ_S_W_PHL_MM), 0|OPFL_Chain,
5594                  MVT::i32, 2, 1, 2,
5595   0,
5596  31,
5597   OPC_CheckChild1Integer, 36|128,83,
5598   OPC_RecordChild2,
5599   OPC_RecordChild3,
5600   OPC_Scope, 11,
5601    OPC_CheckPatternPredicate, 28,
5602    OPC_EmitMergeInputChains1_0,
5603    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEQ_S_W_PHR), 0|OPFL_Chain,
5604                  MVT::i32, 2, 1, 2,
5605   11,
5606    OPC_CheckPatternPredicate, 47,
5607    OPC_EmitMergeInputChains1_0,
5608    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEQ_S_W_PHR_MM), 0|OPFL_Chain,
5609                  MVT::i32, 2, 1, 2,
5610   0,
5611  31,
5612   OPC_CheckChild1Integer, 74|128,78,
5613   OPC_RecordChild2,
5614   OPC_RecordChild3,
5615   OPC_Scope, 11,
5616    OPC_CheckPatternPredicate, 28,
5617    OPC_EmitMergeInputChains1_0,
5618    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGU_EQ_QB), 0|OPFL_Chain,
5619                  MVT::i32, 2, 1, 2,
5620   11,
5621    OPC_CheckPatternPredicate, 47,
5622    OPC_EmitMergeInputChains1_0,
5623    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGU_EQ_QB_MM), 0|OPFL_Chain,
5624                  MVT::i32, 2, 1, 2,
5625   0,
5626  31,
5627   OPC_CheckChild1Integer, 78|128,78,
5628   OPC_RecordChild2,
5629   OPC_RecordChild3,
5630   OPC_Scope, 11,
5631    OPC_CheckPatternPredicate, 28,
5632    OPC_EmitMergeInputChains1_0,
5633    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGU_LT_QB), 0|OPFL_Chain,
5634                  MVT::i32, 2, 1, 2,
5635   11,
5636    OPC_CheckPatternPredicate, 47,
5637    OPC_EmitMergeInputChains1_0,
5638    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGU_LT_QB_MM), 0|OPFL_Chain,
5639                  MVT::i32, 2, 1, 2,
5640   0,
5641  31,
5642   OPC_CheckChild1Integer, 76|128,78,
5643   OPC_RecordChild2,
5644   OPC_RecordChild3,
5645   OPC_Scope, 11,
5646    OPC_CheckPatternPredicate, 28,
5647    OPC_EmitMergeInputChains1_0,
5648    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGU_LE_QB), 0|OPFL_Chain,
5649                  MVT::i32, 2, 1, 2,
5650   11,
5651    OPC_CheckPatternPredicate, 47,
5652    OPC_EmitMergeInputChains1_0,
5653    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGU_LE_QB_MM), 0|OPFL_Chain,
5654                  MVT::i32, 2, 1, 2,
5655   0,
5656  31,
5657   OPC_CheckChild1Integer, 2|128,82,
5658   OPC_RecordChild2,
5659   OPC_RecordChild3,
5660   OPC_Scope, 11,
5661    OPC_CheckPatternPredicate, 28,
5662    OPC_EmitMergeInputChains1_0,
5663    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWX), 0|OPFL_Chain,
5664                  MVT::i32, 2, 1, 2,
5665   11,
5666    OPC_CheckPatternPredicate, 47,
5667    OPC_EmitMergeInputChains1_0,
5668    OPC_MorphNodeTo1, TARGET_VAL(Mips::LWX_MM), 0|OPFL_Chain,
5669                  MVT::i32, 2, 1, 2,
5670   0,
5671  31,
5672   OPC_CheckChild1Integer, 126|128,81,
5673   OPC_RecordChild2,
5674   OPC_RecordChild3,
5675   OPC_Scope, 11,
5676    OPC_CheckPatternPredicate, 28,
5677    OPC_EmitMergeInputChains1_0,
5678    OPC_MorphNodeTo1, TARGET_VAL(Mips::LHX), 0|OPFL_Chain,
5679                  MVT::i32, 2, 1, 2,
5680   11,
5681    OPC_CheckPatternPredicate, 47,
5682    OPC_EmitMergeInputChains1_0,
5683    OPC_MorphNodeTo1, TARGET_VAL(Mips::LHX_MM), 0|OPFL_Chain,
5684                  MVT::i32, 2, 1, 2,
5685   0,
5686  31,
5687   OPC_CheckChild1Integer, 104|128,81,
5688   OPC_RecordChild2,
5689   OPC_RecordChild3,
5690   OPC_Scope, 11,
5691    OPC_CheckPatternPredicate, 28,
5692    OPC_EmitMergeInputChains1_0,
5693    OPC_MorphNodeTo1, TARGET_VAL(Mips::LBUX), 0|OPFL_Chain,
5694                  MVT::i32, 2, 1, 2,
5695   11,
5696    OPC_CheckPatternPredicate, 47,
5697    OPC_EmitMergeInputChains1_0,
5698    OPC_MorphNodeTo1, TARGET_VAL(Mips::LBUX_MM), 0|OPFL_Chain,
5699                  MVT::i32, 2, 1, 2,
5700   0,
5701  31,
5702   OPC_CheckChild1Integer, 94|128,81,
5703   OPC_RecordChild2,
5704   OPC_RecordChild3,
5705   OPC_Scope, 11,
5706    OPC_CheckPatternPredicate, 28,
5707    OPC_EmitMergeInputChains1_0,
5708    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSV), 0|OPFL_Chain,
5709                  MVT::i32, 2, 1, 2,
5710   11,
5711    OPC_CheckPatternPredicate, 47,
5712    OPC_EmitMergeInputChains1_0,
5713    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSV_MM), 0|OPFL_Chain,
5714                  MVT::i32, 2, 1, 2,
5715   0,
5716  31,
5717   OPC_CheckChild1Integer, 68|128,78,
5718   OPC_RecordChild2,
5719   OPC_RecordChild3,
5720   OPC_Scope, 11,
5721    OPC_CheckPatternPredicate, 48,
5722    OPC_EmitMergeInputChains1_0,
5723    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGDU_EQ_QB), 0|OPFL_Chain,
5724                  MVT::i32, 2, 1, 2,
5725   11,
5726    OPC_CheckPatternPredicate, 49,
5727    OPC_EmitMergeInputChains1_0,
5728    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGDU_EQ_QB_MMR2), 0|OPFL_Chain,
5729                  MVT::i32, 2, 1, 2,
5730   0,
5731  31,
5732   OPC_CheckChild1Integer, 72|128,78,
5733   OPC_RecordChild2,
5734   OPC_RecordChild3,
5735   OPC_Scope, 11,
5736    OPC_CheckPatternPredicate, 48,
5737    OPC_EmitMergeInputChains1_0,
5738    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGDU_LT_QB), 0|OPFL_Chain,
5739                  MVT::i32, 2, 1, 2,
5740   11,
5741    OPC_CheckPatternPredicate, 49,
5742    OPC_EmitMergeInputChains1_0,
5743    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGDU_LT_QB_MMR2), 0|OPFL_Chain,
5744                  MVT::i32, 2, 1, 2,
5745   0,
5746  31,
5747   OPC_CheckChild1Integer, 70|128,78,
5748   OPC_RecordChild2,
5749   OPC_RecordChild3,
5750   OPC_Scope, 11,
5751    OPC_CheckPatternPredicate, 48,
5752    OPC_EmitMergeInputChains1_0,
5753    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGDU_LE_QB), 0|OPFL_Chain,
5754                  MVT::i32, 2, 1, 2,
5755   11,
5756    OPC_CheckPatternPredicate, 49,
5757    OPC_EmitMergeInputChains1_0,
5758    OPC_MorphNodeTo1, TARGET_VAL(Mips::CMPGDU_LE_QB_MMR2), 0|OPFL_Chain,
5759                  MVT::i32, 2, 1, 2,
5760   0,
5761  31,
5762   OPC_CheckChild1Integer, 48|128,83,
5763   OPC_RecordChild2,
5764   OPC_RecordChild3,
5765   OPC_Scope, 11,
5766    OPC_CheckPatternPredicate, 48,
5767    OPC_EmitMergeInputChains1_0,
5768    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_S_W), 0|OPFL_Chain,
5769                  MVT::i32, 2, 1, 2,
5770   11,
5771    OPC_CheckPatternPredicate, 49,
5772    OPC_EmitMergeInputChains1_0,
5773    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_S_W_MMR2), 0|OPFL_Chain,
5774                  MVT::i32, 2, 1, 2,
5775   0,
5776  31,
5777   OPC_CheckChild1Integer, 44|128,83,
5778   OPC_RecordChild2,
5779   OPC_RecordChild3,
5780   OPC_Scope, 11,
5781    OPC_CheckPatternPredicate, 48,
5782    OPC_EmitMergeInputChains1_0,
5783    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_RS_W), 0|OPFL_Chain,
5784                  MVT::i32, 2, 1, 2,
5785   11,
5786    OPC_CheckPatternPredicate, 49,
5787    OPC_EmitMergeInputChains1_0,
5788    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_RS_W_MMR2), 0|OPFL_Chain,
5789                  MVT::i32, 2, 1, 2,
5790   0,
5791  16,
5792   OPC_CheckChild1Integer, 32|128,76,
5793   OPC_RecordChild2,
5794   OPC_RecordChild3,
5795   OPC_CheckPatternPredicate, 28,
5796   OPC_EmitMergeInputChains1_0,
5797   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDSC), 0|OPFL_Chain,
5798                 MVT::i32, 2, 1, 2,
5799  16,
5800   OPC_CheckChild1Integer, 62|128,76,
5801   OPC_RecordChild2,
5802   OPC_RecordChild3,
5803   OPC_CheckPatternPredicate, 28,
5804   OPC_EmitMergeInputChains1_0,
5805   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDWC), 0|OPFL_Chain,
5806                 MVT::i32, 2, 1, 2,
5807  10,
5808   OPC_CheckChild1Integer, 76|128,77,
5809   OPC_EmitMergeInputChains1_0,
5810   OPC_MorphNodeTo1, TARGET_VAL(Mips::BPOSGE32_PSEUDO), 0|OPFL_Chain,
5811                 MVT::i32, 0,
5812  69,
5813   OPC_CheckChild1Integer, 68|128,84,
5814   OPC_RecordChild2,
5815   OPC_RecordChild3,
5816   OPC_Scope, 37,
5817    OPC_MoveChild3,
5818    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5819    OPC_CheckPredicate, 28,
5820    OPC_MoveParent,
5821    OPC_Scope, 13,
5822     OPC_CheckPatternPredicate, 28,
5823     OPC_EmitMergeInputChains1_0,
5824     OPC_EmitConvertToTarget, 2,
5825     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_S_PH), 0|OPFL_Chain,
5826                   MVT::v2i16, 2, 1, 3,
5827    13,
5828     OPC_CheckPatternPredicate, 47,
5829     OPC_EmitMergeInputChains1_0,
5830     OPC_EmitConvertToTarget, 2,
5831     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_S_PH_MM), 0|OPFL_Chain,
5832                   MVT::v2i16, 2, 1, 3,
5833    0,
5834   11,
5835    OPC_CheckPatternPredicate, 28,
5836    OPC_EmitMergeInputChains1_0,
5837    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_S_PH), 0|OPFL_Chain,
5838                  MVT::v2i16, 2, 1, 2,
5839   11,
5840    OPC_CheckPatternPredicate, 47,
5841    OPC_EmitMergeInputChains1_0,
5842    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_S_PH_MM), 0|OPFL_Chain,
5843                  MVT::v2i16, 2, 1, 2,
5844   0,
5845  52,
5846   OPC_CheckChild1Integer, 64|128,84,
5847   OPC_RecordChild2,
5848   OPC_RecordChild3,
5849   OPC_Scope, 20,
5850    OPC_MoveChild3,
5851    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5852    OPC_CheckPredicate, 28,
5853    OPC_MoveParent,
5854    OPC_CheckPatternPredicate, 28,
5855    OPC_EmitMergeInputChains1_0,
5856    OPC_EmitConvertToTarget, 2,
5857    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_PH), 0|OPFL_Chain,
5858                  MVT::v2i16, 2, 1, 3,
5859   11,
5860    OPC_CheckPatternPredicate, 28,
5861    OPC_EmitMergeInputChains1_0,
5862    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_PH), 0|OPFL_Chain,
5863                  MVT::v2i16, 2, 1, 2,
5864   11,
5865    OPC_CheckPatternPredicate, 47,
5866    OPC_EmitMergeInputChains1_0,
5867    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_PH_MM), 0|OPFL_Chain,
5868                  MVT::v2i16, 2, 1, 2,
5869   0,
5870  52,
5871   OPC_CheckChild1Integer, 66|128,84,
5872   OPC_RecordChild2,
5873   OPC_RecordChild3,
5874   OPC_Scope, 20,
5875    OPC_MoveChild3,
5876    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
5877    OPC_CheckPredicate, 29,
5878    OPC_MoveParent,
5879    OPC_CheckPatternPredicate, 28,
5880    OPC_EmitMergeInputChains1_0,
5881    OPC_EmitConvertToTarget, 2,
5882    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_QB), 0|OPFL_Chain,
5883                  MVT::v4i8, 2, 1, 3,
5884   11,
5885    OPC_CheckPatternPredicate, 28,
5886    OPC_EmitMergeInputChains1_0,
5887    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_QB), 0|OPFL_Chain,
5888                  MVT::v4i8, 2, 1, 2,
5889   11,
5890    OPC_CheckPatternPredicate, 47,
5891    OPC_EmitMergeInputChains1_0,
5892    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLLV_QB_MM), 0|OPFL_Chain,
5893                  MVT::v4i8, 2, 1, 2,
5894   0,
5895  28,
5896   OPC_CheckChild1Integer, 108|128,75,
5897   OPC_RecordChild2,
5898   OPC_Scope, 10,
5899    OPC_CheckPatternPredicate, 28,
5900    OPC_EmitMergeInputChains1_0,
5901    OPC_MorphNodeTo1, TARGET_VAL(Mips::ABSQ_S_PH), 0|OPFL_Chain,
5902                  MVT::v2i16, 1, 1,
5903   10,
5904    OPC_CheckPatternPredicate, 47,
5905    OPC_EmitMergeInputChains1_0,
5906    OPC_MorphNodeTo1, TARGET_VAL(Mips::ABSQ_S_PH_MM), 0|OPFL_Chain,
5907                  MVT::v2i16, 1, 1,
5908   0,
5909  31,
5910   OPC_CheckChild1Integer, 26|128,84,
5911   OPC_RecordChild2,
5912   OPC_RecordChild3,
5913   OPC_Scope, 11,
5914    OPC_CheckPatternPredicate, 28,
5915    OPC_EmitMergeInputChains1_0,
5916    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQ_RS_PH_W), 0|OPFL_Chain,
5917                  MVT::v2i16, 2, 1, 2,
5918   11,
5919    OPC_CheckPatternPredicate, 47,
5920    OPC_EmitMergeInputChains1_0,
5921    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQ_RS_PH_W_MM), 0|OPFL_Chain,
5922                  MVT::v2i16, 2, 1, 2,
5923   0,
5924  31,
5925   OPC_CheckChild1Integer, 28|128,84,
5926   OPC_RecordChild2,
5927   OPC_RecordChild3,
5928   OPC_Scope, 11,
5929    OPC_CheckPatternPredicate, 28,
5930    OPC_EmitMergeInputChains1_0,
5931    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQU_S_QB_PH), 0|OPFL_Chain,
5932                  MVT::v4i8, 2, 1, 2,
5933   11,
5934    OPC_CheckPatternPredicate, 47,
5935    OPC_EmitMergeInputChains1_0,
5936    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQU_S_QB_PH_MM), 0|OPFL_Chain,
5937                  MVT::v4i8, 2, 1, 2,
5938   0,
5939  31,
5940   OPC_CheckChild1Integer, 38|128,83,
5941   OPC_RecordChild2,
5942   OPC_RecordChild3,
5943   OPC_Scope, 11,
5944    OPC_CheckPatternPredicate, 28,
5945    OPC_EmitMergeInputChains1_0,
5946    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEU_S_PH_QBL), 0|OPFL_Chain,
5947                  MVT::v2i16, 2, 1, 2,
5948   11,
5949    OPC_CheckPatternPredicate, 47,
5950    OPC_EmitMergeInputChains1_0,
5951    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEU_S_PH_QBL_MM), 0|OPFL_Chain,
5952                  MVT::v2i16, 2, 1, 2,
5953   0,
5954  31,
5955   OPC_CheckChild1Integer, 40|128,83,
5956   OPC_RecordChild2,
5957   OPC_RecordChild3,
5958   OPC_Scope, 11,
5959    OPC_CheckPatternPredicate, 28,
5960    OPC_EmitMergeInputChains1_0,
5961    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEU_S_PH_QBR), 0|OPFL_Chain,
5962                  MVT::v2i16, 2, 1, 2,
5963   11,
5964    OPC_CheckPatternPredicate, 47,
5965    OPC_EmitMergeInputChains1_0,
5966    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULEU_S_PH_QBR_MM), 0|OPFL_Chain,
5967                  MVT::v2i16, 2, 1, 2,
5968   0,
5969  31,
5970   OPC_CheckChild1Integer, 42|128,83,
5971   OPC_RecordChild2,
5972   OPC_RecordChild3,
5973   OPC_Scope, 11,
5974    OPC_CheckPatternPredicate, 28,
5975    OPC_EmitMergeInputChains1_0,
5976    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_RS_PH), 0|OPFL_Chain,
5977                  MVT::v2i16, 2, 1, 2,
5978   11,
5979    OPC_CheckPatternPredicate, 47,
5980    OPC_EmitMergeInputChains1_0,
5981    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_RS_PH_MM), 0|OPFL_Chain,
5982                  MVT::v2i16, 2, 1, 2,
5983   0,
5984  31,
5985   OPC_CheckChild1Integer, 122|128,83,
5986   OPC_RecordChild2,
5987   OPC_RecordChild3,
5988   OPC_Scope, 11,
5989    OPC_CheckPatternPredicate, 28,
5990    OPC_EmitMergeInputChains1_0,
5991    OPC_MorphNodeTo1, TARGET_VAL(Mips::PICK_QB), 0|OPFL_Chain,
5992                  MVT::v4i8, 2, 1, 2,
5993   11,
5994    OPC_CheckPatternPredicate, 47,
5995    OPC_EmitMergeInputChains1_0,
5996    OPC_MorphNodeTo1, TARGET_VAL(Mips::PICK_QB_MM), 0|OPFL_Chain,
5997                  MVT::v4i8, 2, 1, 2,
5998   0,
5999  31,
6000   OPC_CheckChild1Integer, 120|128,83,
6001   OPC_RecordChild2,
6002   OPC_RecordChild3,
6003   OPC_Scope, 11,
6004    OPC_CheckPatternPredicate, 28,
6005    OPC_EmitMergeInputChains1_0,
6006    OPC_MorphNodeTo1, TARGET_VAL(Mips::PICK_PH), 0|OPFL_Chain,
6007                  MVT::v2i16, 2, 1, 2,
6008   11,
6009    OPC_CheckPatternPredicate, 47,
6010    OPC_EmitMergeInputChains1_0,
6011    OPC_MorphNodeTo1, TARGET_VAL(Mips::PICK_PH_MM), 0|OPFL_Chain,
6012                  MVT::v2i16, 2, 1, 2,
6013   0,
6014  31,
6015   OPC_CheckChild1Integer, 34|128,76,
6016   OPC_RecordChild2,
6017   OPC_RecordChild3,
6018   OPC_Scope, 11,
6019    OPC_CheckPatternPredicate, 48,
6020    OPC_EmitMergeInputChains1_0,
6021    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_PH), 0|OPFL_Chain,
6022                  MVT::v2i16, 2, 1, 2,
6023   11,
6024    OPC_CheckPatternPredicate, 49,
6025    OPC_EmitMergeInputChains1_0,
6026    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_PH_MMR2), 0|OPFL_Chain,
6027                  MVT::v2i16, 2, 1, 2,
6028   0,
6029  31,
6030   OPC_CheckChild1Integer, 38|128,76,
6031   OPC_RecordChild2,
6032   OPC_RecordChild3,
6033   OPC_Scope, 11,
6034    OPC_CheckPatternPredicate, 48,
6035    OPC_EmitMergeInputChains1_0,
6036    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_S_PH), 0|OPFL_Chain,
6037                  MVT::v2i16, 2, 1, 2,
6038   11,
6039    OPC_CheckPatternPredicate, 49,
6040    OPC_EmitMergeInputChains1_0,
6041    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_S_PH_MMR2), 0|OPFL_Chain,
6042                  MVT::v2i16, 2, 1, 2,
6043   0,
6044  31,
6045   OPC_CheckChild1Integer, 0|128,86,
6046   OPC_RecordChild2,
6047   OPC_RecordChild3,
6048   OPC_Scope, 11,
6049    OPC_CheckPatternPredicate, 48,
6050    OPC_EmitMergeInputChains1_0,
6051    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_PH), 0|OPFL_Chain,
6052                  MVT::v2i16, 2, 1, 2,
6053   11,
6054    OPC_CheckPatternPredicate, 49,
6055    OPC_EmitMergeInputChains1_0,
6056    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_PH_MMR2), 0|OPFL_Chain,
6057                  MVT::v2i16, 2, 1, 2,
6058   0,
6059  31,
6060   OPC_CheckChild1Integer, 4|128,86,
6061   OPC_RecordChild2,
6062   OPC_RecordChild3,
6063   OPC_Scope, 11,
6064    OPC_CheckPatternPredicate, 48,
6065    OPC_EmitMergeInputChains1_0,
6066    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_S_PH), 0|OPFL_Chain,
6067                  MVT::v2i16, 2, 1, 2,
6068   11,
6069    OPC_CheckPatternPredicate, 49,
6070    OPC_EmitMergeInputChains1_0,
6071    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_S_PH_MMR2), 0|OPFL_Chain,
6072                  MVT::v2i16, 2, 1, 2,
6073   0,
6074  28,
6075   OPC_CheckChild1Integer, 110|128,75,
6076   OPC_RecordChild2,
6077   OPC_Scope, 10,
6078    OPC_CheckPatternPredicate, 48,
6079    OPC_EmitMergeInputChains1_0,
6080    OPC_MorphNodeTo1, TARGET_VAL(Mips::ABSQ_S_QB), 0|OPFL_Chain,
6081                  MVT::v4i8, 1, 1,
6082   10,
6083    OPC_CheckPatternPredicate, 49,
6084    OPC_EmitMergeInputChains1_0,
6085    OPC_MorphNodeTo1, TARGET_VAL(Mips::ABSQ_S_QB_MMR2), 0|OPFL_Chain,
6086                  MVT::v4i8, 1, 1,
6087   0,
6088  31,
6089   OPC_CheckChild1Integer, 32|128,83,
6090   OPC_RecordChild2,
6091   OPC_RecordChild3,
6092   OPC_Scope, 11,
6093    OPC_CheckPatternPredicate, 48,
6094    OPC_EmitMergeInputChains1_0,
6095    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_S_PH), 0|OPFL_Chain,
6096                  MVT::v2i16, 2, 1, 2,
6097   11,
6098    OPC_CheckPatternPredicate, 49,
6099    OPC_EmitMergeInputChains1_0,
6100    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_S_PH_MMR2), 0|OPFL_Chain,
6101                  MVT::v2i16, 2, 1, 2,
6102   0,
6103  31,
6104   OPC_CheckChild1Integer, 46|128,83,
6105   OPC_RecordChild2,
6106   OPC_RecordChild3,
6107   OPC_Scope, 11,
6108    OPC_CheckPatternPredicate, 48,
6109    OPC_EmitMergeInputChains1_0,
6110    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_S_PH), 0|OPFL_Chain,
6111                  MVT::v2i16, 2, 1, 2,
6112   11,
6113    OPC_CheckPatternPredicate, 49,
6114    OPC_EmitMergeInputChains1_0,
6115    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULQ_S_PH_MMR2), 0|OPFL_Chain,
6116                  MVT::v2i16, 2, 1, 2,
6117   0,
6118  31,
6119   OPC_CheckChild1Integer, 16|128,84,
6120   OPC_RecordChild2,
6121   OPC_RecordChild3,
6122   OPC_Scope, 11,
6123    OPC_CheckPatternPredicate, 48,
6124    OPC_EmitMergeInputChains1_0,
6125    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECR_QB_PH), 0|OPFL_Chain,
6126                  MVT::v4i8, 2, 1, 2,
6127   11,
6128    OPC_CheckPatternPredicate, 49,
6129    OPC_EmitMergeInputChains1_0,
6130    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECR_QB_PH_MMR2), 0|OPFL_Chain,
6131                  MVT::v4i8, 2, 1, 2,
6132   0,
6133  16,
6134   OPC_CheckChild1Integer, 26|128,83,
6135   OPC_RecordChild2,
6136   OPC_RecordChild3,
6137   OPC_CheckPatternPredicate, 48,
6138   OPC_EmitMergeInputChains1_0,
6139   OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_PH), 0|OPFL_Chain,
6140                 MVT::v2i16, 2, 1, 2,
6141  16,
6142   OPC_CheckChild1Integer, 122|128,81,
6143   OPC_RecordChild2,
6144   OPC_RecordChild3,
6145   OPC_CheckPatternPredicate, 50,
6146   OPC_EmitMergeInputChains1_0,
6147   OPC_MorphNodeTo1, TARGET_VAL(Mips::LDR_D), 0|OPFL_Chain,
6148                 MVT::v2i64, 2, 1, 2,
6149  16,
6150   OPC_CheckChild1Integer, 124|128,81,
6151   OPC_RecordChild2,
6152   OPC_RecordChild3,
6153   OPC_CheckPatternPredicate, 50,
6154   OPC_EmitMergeInputChains1_0,
6155   OPC_MorphNodeTo1, TARGET_VAL(Mips::LDR_W), 0|OPFL_Chain,
6156                 MVT::v4i32, 2, 1, 2,
6157  0,
6158 28|128,40, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),
6159  OPC_Scope, 65,
6160   OPC_CheckChild0Integer, 80|128,84,
6161   OPC_RecordChild1,
6162   OPC_RecordChild2,
6163   OPC_Scope, 35,
6164    OPC_MoveChild2,
6165    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6166    OPC_CheckPredicate, 25,
6167    OPC_MoveParent,
6168    OPC_Scope, 12,
6169     OPC_CheckPatternPredicate, 28,
6170     OPC_EmitConvertToTarget, 1,
6171     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_R_W), 0,
6172                   MVT::i32, 2, 0, 2,
6173    12,
6174     OPC_CheckPatternPredicate, 47,
6175     OPC_EmitConvertToTarget, 1,
6176     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_R_W_MM), 0,
6177                   MVT::i32, 2, 0, 2,
6178    0,
6179   10,
6180    OPC_CheckPatternPredicate, 28,
6181    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_R_W), 0,
6182                  MVT::i32, 2, 0, 1,
6183   10,
6184    OPC_CheckPatternPredicate, 47,
6185    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_R_W_MM), 0,
6186                  MVT::i32, 2, 0, 1,
6187   0,
6188  39,
6189   OPC_CheckChild0Integer, 68|128,76,
6190   OPC_RecordChild1,
6191   OPC_RecordChild2,
6192   OPC_RecordChild3,
6193   OPC_MoveChild3,
6194   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6195   OPC_CheckPredicate, 25,
6196   OPC_MoveParent,
6197   OPC_Scope, 11,
6198    OPC_CheckPatternPredicate, 48,
6199    OPC_MorphNodeTo1, TARGET_VAL(Mips::APPEND), 0,
6200                  MVT::i32, 3, 1, 2, 0,
6201   11,
6202    OPC_CheckPatternPredicate, 49,
6203    OPC_MorphNodeTo1, TARGET_VAL(Mips::APPEND_MMR2), 0,
6204                  MVT::i32, 3, 1, 2, 0,
6205   0,
6206  45,
6207   OPC_CheckChild0Integer, 118|128,76,
6208   OPC_RecordChild1,
6209   OPC_RecordChild2,
6210   OPC_RecordChild3,
6211   OPC_MoveChild3,
6212   OPC_SwitchOpcode , 14, TARGET_VAL(ISD::TargetConstant),
6213    OPC_CheckPredicate, 30,
6214    OPC_MoveParent,
6215    OPC_CheckPatternPredicate, 48,
6216    OPC_MorphNodeTo1, TARGET_VAL(Mips::BALIGN), 0,
6217                  MVT::i32, 3, 1, 2, 0,
6218   16, TARGET_VAL(ISD::Constant),
6219    OPC_CheckPredicate, 30,
6220    OPC_MoveParent,
6221    OPC_CheckPatternPredicate, 49,
6222    OPC_EmitConvertToTarget, 2,
6223    OPC_MorphNodeTo1, TARGET_VAL(Mips::BALIGN_MMR2), 0,
6224                  MVT::i32, 3, 1, 3, 0,
6225   0,
6226  39,
6227   OPC_CheckChild0Integer, 30|128,84,
6228   OPC_RecordChild1,
6229   OPC_RecordChild2,
6230   OPC_RecordChild3,
6231   OPC_MoveChild3,
6232   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6233   OPC_CheckPredicate, 25,
6234   OPC_MoveParent,
6235   OPC_Scope, 11,
6236    OPC_CheckPatternPredicate, 48,
6237    OPC_MorphNodeTo1, TARGET_VAL(Mips::PREPEND), 0,
6238                  MVT::i32, 3, 1, 2, 0,
6239   11,
6240    OPC_CheckPatternPredicate, 49,
6241    OPC_MorphNodeTo1, TARGET_VAL(Mips::PREPEND_MMR2), 0,
6242                  MVT::i32, 3, 1, 2, 0,
6243   0,
6244  29,
6245   OPC_CheckChild0Integer, 0|128,83,
6246   OPC_RecordChild1,
6247   OPC_RecordChild2,
6248   OPC_Scope, 10,
6249    OPC_CheckPatternPredicate, 28,
6250    OPC_MorphNodeTo1, TARGET_VAL(Mips::MODSUB), 0,
6251                  MVT::i32, 2, 0, 1,
6252   10,
6253    OPC_CheckPatternPredicate, 47,
6254    OPC_MorphNodeTo1, TARGET_VAL(Mips::MODSUB_MM), 0,
6255                  MVT::i32, 2, 0, 1,
6256   0,
6257  26,
6258   OPC_CheckChild0Integer, 32|128,84,
6259   OPC_RecordChild1,
6260   OPC_Scope, 9,
6261    OPC_CheckPatternPredicate, 28,
6262    OPC_MorphNodeTo1, TARGET_VAL(Mips::RADDU_W_QB), 0,
6263                  MVT::i32, 1, 0,
6264   9,
6265    OPC_CheckPatternPredicate, 47,
6266    OPC_MorphNodeTo1, TARGET_VAL(Mips::RADDU_W_QB_MM), 0,
6267                  MVT::i32, 1, 0,
6268   0,
6269  26,
6270   OPC_CheckChild0Integer, 124|128,83,
6271   OPC_RecordChild1,
6272   OPC_Scope, 9,
6273    OPC_CheckPatternPredicate, 28,
6274    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQ_W_PHL), 0,
6275                  MVT::i32, 1, 0,
6276   9,
6277    OPC_CheckPatternPredicate, 47,
6278    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQ_W_PHL_MM), 0,
6279                  MVT::i32, 1, 0,
6280   0,
6281  26,
6282   OPC_CheckChild0Integer, 126|128,83,
6283   OPC_RecordChild1,
6284   OPC_Scope, 9,
6285    OPC_CheckPatternPredicate, 28,
6286    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQ_W_PHR), 0,
6287                  MVT::i32, 1, 0,
6288   9,
6289    OPC_CheckPatternPredicate, 47,
6290    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQ_W_PHR_MM), 0,
6291                  MVT::i32, 1, 0,
6292   0,
6293  26,
6294   OPC_CheckChild0Integer, 40|128,77,
6295   OPC_RecordChild1,
6296   OPC_Scope, 9,
6297    OPC_CheckPatternPredicate, 28,
6298    OPC_MorphNodeTo1, TARGET_VAL(Mips::BITREV), 0,
6299                  MVT::i32, 1, 0,
6300   9,
6301    OPC_CheckPatternPredicate, 47,
6302    OPC_MorphNodeTo1, TARGET_VAL(Mips::BITREV_MM), 0,
6303                  MVT::i32, 1, 0,
6304   0,
6305  29,
6306   OPC_CheckChild0Integer, 6|128,76,
6307   OPC_RecordChild1,
6308   OPC_RecordChild2,
6309   OPC_Scope, 10,
6310    OPC_CheckPatternPredicate, 48,
6311    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_W), 0,
6312                  MVT::i32, 2, 0, 1,
6313   10,
6314    OPC_CheckPatternPredicate, 49,
6315    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_W_MMR2), 0,
6316                  MVT::i32, 2, 0, 1,
6317   0,
6318  29,
6319   OPC_CheckChild0Integer, 4|128,76,
6320   OPC_RecordChild1,
6321   OPC_RecordChild2,
6322   OPC_Scope, 10,
6323    OPC_CheckPatternPredicate, 48,
6324    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_R_W), 0,
6325                  MVT::i32, 2, 0, 1,
6326   10,
6327    OPC_CheckPatternPredicate, 49,
6328    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_R_W_MMR2), 0,
6329                  MVT::i32, 2, 0, 1,
6330   0,
6331  29,
6332   OPC_CheckChild0Integer, 94|128,85,
6333   OPC_RecordChild1,
6334   OPC_RecordChild2,
6335   OPC_Scope, 10,
6336    OPC_CheckPatternPredicate, 48,
6337    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_W), 0,
6338                  MVT::i32, 2, 0, 1,
6339   10,
6340    OPC_CheckPatternPredicate, 49,
6341    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_W_MMR2), 0,
6342                  MVT::i32, 2, 0, 1,
6343   0,
6344  29,
6345   OPC_CheckChild0Integer, 92|128,85,
6346   OPC_RecordChild1,
6347   OPC_RecordChild2,
6348   OPC_Scope, 10,
6349    OPC_CheckPatternPredicate, 48,
6350    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_R_W), 0,
6351                  MVT::i32, 2, 0, 1,
6352   10,
6353    OPC_CheckPatternPredicate, 49,
6354    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_R_W_MMR2), 0,
6355                  MVT::i32, 2, 0, 1,
6356   0,
6357  65,
6358   OPC_CheckChild0Integer, 76|128,84,
6359   OPC_RecordChild1,
6360   OPC_RecordChild2,
6361   OPC_Scope, 35,
6362    OPC_MoveChild2,
6363    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6364    OPC_CheckPredicate, 28,
6365    OPC_MoveParent,
6366    OPC_Scope, 12,
6367     OPC_CheckPatternPredicate, 28,
6368     OPC_EmitConvertToTarget, 1,
6369     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_R_PH), 0,
6370                   MVT::v2i16, 2, 0, 2,
6371    12,
6372     OPC_CheckPatternPredicate, 47,
6373     OPC_EmitConvertToTarget, 1,
6374     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_R_PH_MM), 0,
6375                   MVT::v2i16, 2, 0, 2,
6376    0,
6377   10,
6378    OPC_CheckPatternPredicate, 28,
6379    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_R_PH), 0,
6380                  MVT::v2i16, 2, 0, 1,
6381   10,
6382    OPC_CheckPatternPredicate, 47,
6383    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_R_PH_MM), 0,
6384                  MVT::v2i16, 2, 0, 1,
6385   0,
6386  60,
6387   OPC_CheckChild0Integer, 38|128,84,
6388   OPC_RecordChild1,
6389   OPC_Scope, 33,
6390    OPC_MoveChild1,
6391    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6392    OPC_CheckPredicate, 31,
6393    OPC_MoveParent,
6394    OPC_Scope, 11,
6395     OPC_CheckPatternPredicate, 28,
6396     OPC_EmitConvertToTarget, 0,
6397     OPC_MorphNodeTo1, TARGET_VAL(Mips::REPL_QB), 0,
6398                   MVT::v4i8, 1, 1,
6399    11,
6400     OPC_CheckPatternPredicate, 47,
6401     OPC_EmitConvertToTarget, 0,
6402     OPC_MorphNodeTo1, TARGET_VAL(Mips::REPL_QB_MM), 0,
6403                   MVT::v4i8, 1, 1,
6404    0,
6405   9,
6406    OPC_CheckPatternPredicate, 28,
6407    OPC_MorphNodeTo1, TARGET_VAL(Mips::REPLV_QB), 0,
6408                  MVT::v4i8, 1, 0,
6409   9,
6410    OPC_CheckPatternPredicate, 47,
6411    OPC_MorphNodeTo1, TARGET_VAL(Mips::REPLV_QB_MM), 0,
6412                  MVT::v4i8, 1, 0,
6413   0,
6414  60,
6415   OPC_CheckChild0Integer, 36|128,84,
6416   OPC_RecordChild1,
6417   OPC_Scope, 33,
6418    OPC_MoveChild1,
6419    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6420    OPC_CheckPredicate, 32,
6421    OPC_MoveParent,
6422    OPC_Scope, 11,
6423     OPC_CheckPatternPredicate, 28,
6424     OPC_EmitConvertToTarget, 0,
6425     OPC_MorphNodeTo1, TARGET_VAL(Mips::REPL_PH), 0,
6426                   MVT::v2i16, 1, 1,
6427    11,
6428     OPC_CheckPatternPredicate, 47,
6429     OPC_EmitConvertToTarget, 0,
6430     OPC_MorphNodeTo1, TARGET_VAL(Mips::REPL_PH_MM), 0,
6431                   MVT::v2i16, 1, 1,
6432    0,
6433   9,
6434    OPC_CheckPatternPredicate, 28,
6435    OPC_MorphNodeTo1, TARGET_VAL(Mips::REPLV_PH), 0,
6436                  MVT::v2i16, 1, 0,
6437   9,
6438    OPC_CheckPatternPredicate, 47,
6439    OPC_MorphNodeTo1, TARGET_VAL(Mips::REPLV_PH_MM), 0,
6440                  MVT::v2i16, 1, 0,
6441   0,
6442  39,
6443   OPC_CheckChild0Integer, 18|128,84,
6444   OPC_RecordChild1,
6445   OPC_RecordChild2,
6446   OPC_RecordChild3,
6447   OPC_MoveChild3,
6448   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6449   OPC_CheckPredicate, 25,
6450   OPC_MoveParent,
6451   OPC_Scope, 11,
6452    OPC_CheckPatternPredicate, 48,
6453    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECR_SRA_PH_W), 0,
6454                  MVT::v2i16, 3, 1, 2, 0,
6455   11,
6456    OPC_CheckPatternPredicate, 49,
6457    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECR_SRA_PH_W_MMR2), 0,
6458                  MVT::v2i16, 3, 1, 2, 0,
6459   0,
6460  39,
6461   OPC_CheckChild0Integer, 20|128,84,
6462   OPC_RecordChild1,
6463   OPC_RecordChild2,
6464   OPC_RecordChild3,
6465   OPC_MoveChild3,
6466   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6467   OPC_CheckPredicate, 25,
6468   OPC_MoveParent,
6469   OPC_Scope, 11,
6470    OPC_CheckPatternPredicate, 48,
6471    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECR_SRA_R_PH_W), 0,
6472                  MVT::v2i16, 3, 1, 2, 0,
6473   11,
6474    OPC_CheckPatternPredicate, 49,
6475    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECR_SRA_R_PH_W_MMR2), 0,
6476                  MVT::v2i16, 3, 1, 2, 0,
6477   0,
6478  65,
6479   OPC_CheckChild0Integer, 78|128,84,
6480   OPC_RecordChild1,
6481   OPC_RecordChild2,
6482   OPC_Scope, 35,
6483    OPC_MoveChild2,
6484    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6485    OPC_CheckPredicate, 29,
6486    OPC_MoveParent,
6487    OPC_Scope, 12,
6488     OPC_CheckPatternPredicate, 48,
6489     OPC_EmitConvertToTarget, 1,
6490     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_R_QB), 0,
6491                   MVT::v4i8, 2, 0, 2,
6492    12,
6493     OPC_CheckPatternPredicate, 49,
6494     OPC_EmitConvertToTarget, 1,
6495     OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_R_QB_MMR2), 0,
6496                   MVT::v4i8, 2, 0, 2,
6497    0,
6498   10,
6499    OPC_CheckPatternPredicate, 48,
6500    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_R_QB), 0,
6501                  MVT::v4i8, 2, 0, 1,
6502   10,
6503    OPC_CheckPatternPredicate, 49,
6504    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_R_QB_MMR2), 0,
6505                  MVT::v4i8, 2, 0, 1,
6506   0,
6507  49,
6508   OPC_CheckChild0Integer, 72|128,84,
6509   OPC_RecordChild1,
6510   OPC_RecordChild2,
6511   OPC_Scope, 19,
6512    OPC_MoveChild2,
6513    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6514    OPC_CheckPredicate, 28,
6515    OPC_MoveParent,
6516    OPC_CheckPatternPredicate, 28,
6517    OPC_EmitConvertToTarget, 1,
6518    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_PH), 0,
6519                  MVT::v2i16, 2, 0, 2,
6520   10,
6521    OPC_CheckPatternPredicate, 28,
6522    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_PH), 0,
6523                  MVT::v2i16, 2, 0, 1,
6524   10,
6525    OPC_CheckPatternPredicate, 47,
6526    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_PH_MM), 0,
6527                  MVT::v2i16, 2, 0, 1,
6528   0,
6529  49,
6530   OPC_CheckChild0Integer, 82|128,84,
6531   OPC_RecordChild1,
6532   OPC_RecordChild2,
6533   OPC_Scope, 19,
6534    OPC_MoveChild2,
6535    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6536    OPC_CheckPredicate, 28,
6537    OPC_MoveParent,
6538    OPC_CheckPatternPredicate, 48,
6539    OPC_EmitConvertToTarget, 1,
6540    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRL_PH), 0,
6541                  MVT::v2i16, 2, 0, 2,
6542   10,
6543    OPC_CheckPatternPredicate, 48,
6544    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRLV_PH), 0,
6545                  MVT::v2i16, 2, 0, 1,
6546   10,
6547    OPC_CheckPatternPredicate, 49,
6548    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRLV_PH_MMR2), 0,
6549                  MVT::v2i16, 2, 0, 1,
6550   0,
6551  49,
6552   OPC_CheckChild0Integer, 74|128,84,
6553   OPC_RecordChild1,
6554   OPC_RecordChild2,
6555   OPC_Scope, 19,
6556    OPC_MoveChild2,
6557    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6558    OPC_CheckPredicate, 29,
6559    OPC_MoveParent,
6560    OPC_CheckPatternPredicate, 48,
6561    OPC_EmitConvertToTarget, 1,
6562    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_QB), 0,
6563                  MVT::v4i8, 2, 0, 2,
6564   10,
6565    OPC_CheckPatternPredicate, 48,
6566    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_QB), 0,
6567                  MVT::v4i8, 2, 0, 1,
6568   10,
6569    OPC_CheckPatternPredicate, 49,
6570    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRAV_QB_MMR2), 0,
6571                  MVT::v4i8, 2, 0, 1,
6572   0,
6573  49,
6574   OPC_CheckChild0Integer, 84|128,84,
6575   OPC_RecordChild1,
6576   OPC_RecordChild2,
6577   OPC_Scope, 19,
6578    OPC_MoveChild2,
6579    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
6580    OPC_CheckPredicate, 29,
6581    OPC_MoveParent,
6582    OPC_CheckPatternPredicate, 28,
6583    OPC_EmitConvertToTarget, 1,
6584    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRL_QB), 0,
6585                  MVT::v4i8, 2, 0, 2,
6586   10,
6587    OPC_CheckPatternPredicate, 28,
6588    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRLV_QB), 0,
6589                  MVT::v4i8, 2, 0, 1,
6590   10,
6591    OPC_CheckPatternPredicate, 47,
6592    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRLV_QB_MM), 0,
6593                  MVT::v4i8, 2, 0, 1,
6594   0,
6595  22,
6596   OPC_CheckChild0Integer, 40|128,84,
6597   OPC_RecordChild1,
6598   OPC_RecordChild2,
6599   OPC_MoveChild2,
6600   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6601   OPC_CheckPredicate, 29,
6602   OPC_MoveParent,
6603   OPC_CheckPatternPredicate, 26,
6604   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_S_B), 0,
6605                 MVT::v16i8, 2, 0, 1,
6606  22,
6607   OPC_CheckChild0Integer, 44|128,84,
6608   OPC_RecordChild1,
6609   OPC_RecordChild2,
6610   OPC_MoveChild2,
6611   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6612   OPC_CheckPredicate, 28,
6613   OPC_MoveParent,
6614   OPC_CheckPatternPredicate, 26,
6615   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_S_H), 0,
6616                 MVT::v8i16, 2, 0, 1,
6617  22,
6618   OPC_CheckChild0Integer, 46|128,84,
6619   OPC_RecordChild1,
6620   OPC_RecordChild2,
6621   OPC_MoveChild2,
6622   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6623   OPC_CheckPredicate, 25,
6624   OPC_MoveParent,
6625   OPC_CheckPatternPredicate, 26,
6626   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_S_W), 0,
6627                 MVT::v4i32, 2, 0, 1,
6628  22,
6629   OPC_CheckChild0Integer, 42|128,84,
6630   OPC_RecordChild1,
6631   OPC_RecordChild2,
6632   OPC_MoveChild2,
6633   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6634   OPC_CheckPredicate, 33,
6635   OPC_MoveParent,
6636   OPC_CheckPatternPredicate, 26,
6637   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_S_D), 0,
6638                 MVT::v2i64, 2, 0, 1,
6639  22,
6640   OPC_CheckChild0Integer, 48|128,84,
6641   OPC_RecordChild1,
6642   OPC_RecordChild2,
6643   OPC_MoveChild2,
6644   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6645   OPC_CheckPredicate, 29,
6646   OPC_MoveParent,
6647   OPC_CheckPatternPredicate, 26,
6648   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_U_B), 0,
6649                 MVT::v16i8, 2, 0, 1,
6650  22,
6651   OPC_CheckChild0Integer, 52|128,84,
6652   OPC_RecordChild1,
6653   OPC_RecordChild2,
6654   OPC_MoveChild2,
6655   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6656   OPC_CheckPredicate, 28,
6657   OPC_MoveParent,
6658   OPC_CheckPatternPredicate, 26,
6659   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_U_H), 0,
6660                 MVT::v8i16, 2, 0, 1,
6661  22,
6662   OPC_CheckChild0Integer, 54|128,84,
6663   OPC_RecordChild1,
6664   OPC_RecordChild2,
6665   OPC_MoveChild2,
6666   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6667   OPC_CheckPredicate, 25,
6668   OPC_MoveParent,
6669   OPC_CheckPatternPredicate, 26,
6670   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_U_W), 0,
6671                 MVT::v4i32, 2, 0, 1,
6672  22,
6673   OPC_CheckChild0Integer, 50|128,84,
6674   OPC_RecordChild1,
6675   OPC_RecordChild2,
6676   OPC_MoveChild2,
6677   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6678   OPC_CheckPredicate, 33,
6679   OPC_MoveParent,
6680   OPC_CheckPatternPredicate, 26,
6681   OPC_MorphNodeTo1, TARGET_VAL(Mips::SAT_U_D), 0,
6682                 MVT::v2i64, 2, 0, 1,
6683  24,
6684   OPC_CheckChild0Integer, 94|128,84,
6685   OPC_RecordChild1,
6686   OPC_RecordChild2,
6687   OPC_RecordChild3,
6688   OPC_MoveChild3,
6689   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6690   OPC_CheckPredicate, 28,
6691   OPC_MoveParent,
6692   OPC_CheckPatternPredicate, 26,
6693   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLDI_B), 0,
6694                 MVT::v16i8, 3, 0, 1, 2,
6695  24,
6696   OPC_CheckChild0Integer, 98|128,84,
6697   OPC_RecordChild1,
6698   OPC_RecordChild2,
6699   OPC_RecordChild3,
6700   OPC_MoveChild3,
6701   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6702   OPC_CheckPredicate, 29,
6703   OPC_MoveParent,
6704   OPC_CheckPatternPredicate, 26,
6705   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLDI_H), 0,
6706                 MVT::v8i16, 3, 0, 1, 2,
6707  24,
6708   OPC_CheckChild0Integer, 100|128,84,
6709   OPC_RecordChild1,
6710   OPC_RecordChild2,
6711   OPC_RecordChild3,
6712   OPC_MoveChild3,
6713   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6714   OPC_CheckPredicate, 30,
6715   OPC_MoveParent,
6716   OPC_CheckPatternPredicate, 26,
6717   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLDI_W), 0,
6718                 MVT::v4i32, 3, 0, 1, 2,
6719  24,
6720   OPC_CheckChild0Integer, 96|128,84,
6721   OPC_RecordChild1,
6722   OPC_RecordChild2,
6723   OPC_RecordChild3,
6724   OPC_MoveChild3,
6725   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6726   OPC_CheckPredicate, 34,
6727   OPC_MoveParent,
6728   OPC_CheckPatternPredicate, 26,
6729   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLDI_D), 0,
6730                 MVT::v2i64, 3, 0, 1, 2,
6731  22,
6732   OPC_CheckChild0Integer, 30|128,85,
6733   OPC_RecordChild1,
6734   OPC_RecordChild2,
6735   OPC_MoveChild2,
6736   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6737   OPC_CheckPredicate, 29,
6738   OPC_MoveParent,
6739   OPC_CheckPatternPredicate, 26,
6740   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRARI_B), 0,
6741                 MVT::v16i8, 2, 0, 1,
6742  22,
6743   OPC_CheckChild0Integer, 34|128,85,
6744   OPC_RecordChild1,
6745   OPC_RecordChild2,
6746   OPC_MoveChild2,
6747   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6748   OPC_CheckPredicate, 28,
6749   OPC_MoveParent,
6750   OPC_CheckPatternPredicate, 26,
6751   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRARI_H), 0,
6752                 MVT::v8i16, 2, 0, 1,
6753  22,
6754   OPC_CheckChild0Integer, 36|128,85,
6755   OPC_RecordChild1,
6756   OPC_RecordChild2,
6757   OPC_MoveChild2,
6758   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6759   OPC_CheckPredicate, 25,
6760   OPC_MoveParent,
6761   OPC_CheckPatternPredicate, 26,
6762   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRARI_W), 0,
6763                 MVT::v4i32, 2, 0, 1,
6764  22,
6765   OPC_CheckChild0Integer, 32|128,85,
6766   OPC_RecordChild1,
6767   OPC_RecordChild2,
6768   OPC_MoveChild2,
6769   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6770   OPC_CheckPredicate, 33,
6771   OPC_MoveParent,
6772   OPC_CheckPatternPredicate, 26,
6773   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRARI_D), 0,
6774                 MVT::v2i64, 2, 0, 1,
6775  22,
6776   OPC_CheckChild0Integer, 62|128,85,
6777   OPC_RecordChild1,
6778   OPC_RecordChild2,
6779   OPC_MoveChild2,
6780   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6781   OPC_CheckPredicate, 29,
6782   OPC_MoveParent,
6783   OPC_CheckPatternPredicate, 26,
6784   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLRI_B), 0,
6785                 MVT::v16i8, 2, 0, 1,
6786  22,
6787   OPC_CheckChild0Integer, 66|128,85,
6788   OPC_RecordChild1,
6789   OPC_RecordChild2,
6790   OPC_MoveChild2,
6791   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6792   OPC_CheckPredicate, 28,
6793   OPC_MoveParent,
6794   OPC_CheckPatternPredicate, 26,
6795   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLRI_H), 0,
6796                 MVT::v8i16, 2, 0, 1,
6797  22,
6798   OPC_CheckChild0Integer, 68|128,85,
6799   OPC_RecordChild1,
6800   OPC_RecordChild2,
6801   OPC_MoveChild2,
6802   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6803   OPC_CheckPredicate, 25,
6804   OPC_MoveParent,
6805   OPC_CheckPatternPredicate, 26,
6806   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLRI_W), 0,
6807                 MVT::v4i32, 2, 0, 1,
6808  22,
6809   OPC_CheckChild0Integer, 64|128,85,
6810   OPC_RecordChild1,
6811   OPC_RecordChild2,
6812   OPC_MoveChild2,
6813   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
6814   OPC_CheckPredicate, 33,
6815   OPC_MoveParent,
6816   OPC_CheckPatternPredicate, 26,
6817   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLRI_D), 0,
6818                 MVT::v2i64, 2, 0, 1,
6819  29,
6820   OPC_CheckChild0Integer, 40|128,76,
6821   OPC_RecordChild1,
6822   OPC_RecordChild2,
6823   OPC_Scope, 10,
6824    OPC_CheckPatternPredicate, 28,
6825    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_S_QB), 0,
6826                  MVT::v4i8, 2, 0, 1,
6827   10,
6828    OPC_CheckPatternPredicate, 47,
6829    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_S_QB_MM), 0,
6830                  MVT::v4i8, 2, 0, 1,
6831   0,
6832  29,
6833   OPC_CheckChild0Integer, 6|128,86,
6834   OPC_RecordChild1,
6835   OPC_RecordChild2,
6836   OPC_Scope, 10,
6837    OPC_CheckPatternPredicate, 28,
6838    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_S_QB), 0,
6839                  MVT::v4i8, 2, 0, 1,
6840   10,
6841    OPC_CheckPatternPredicate, 47,
6842    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_S_QB_MM), 0,
6843                  MVT::v4i8, 2, 0, 1,
6844   0,
6845  29,
6846   OPC_CheckChild0Integer, 124|128,75,
6847   OPC_RecordChild1,
6848   OPC_RecordChild2,
6849   OPC_Scope, 10,
6850    OPC_CheckPatternPredicate, 28,
6851    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQ_S_PH), 0,
6852                  MVT::v2i16, 2, 0, 1,
6853   10,
6854    OPC_CheckPatternPredicate, 47,
6855    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQ_S_PH_MM), 0,
6856                  MVT::v2i16, 2, 0, 1,
6857   0,
6858  29,
6859   OPC_CheckChild0Integer, 84|128,85,
6860   OPC_RecordChild1,
6861   OPC_RecordChild2,
6862   OPC_Scope, 10,
6863    OPC_CheckPatternPredicate, 28,
6864    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQ_S_PH), 0,
6865                  MVT::v2i16, 2, 0, 1,
6866   10,
6867    OPC_CheckPatternPredicate, 47,
6868    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQ_S_PH_MM), 0,
6869                  MVT::v2i16, 2, 0, 1,
6870   0,
6871  29,
6872   OPC_CheckChild0Integer, 24|128,84,
6873   OPC_RecordChild1,
6874   OPC_RecordChild2,
6875   OPC_Scope, 10,
6876    OPC_CheckPatternPredicate, 28,
6877    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQ_QB_PH), 0,
6878                  MVT::v4i8, 2, 0, 1,
6879   10,
6880    OPC_CheckPatternPredicate, 47,
6881    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQ_QB_PH_MM), 0,
6882                  MVT::v4i8, 2, 0, 1,
6883   0,
6884  29,
6885   OPC_CheckChild0Integer, 22|128,84,
6886   OPC_RecordChild1,
6887   OPC_RecordChild2,
6888   OPC_Scope, 10,
6889    OPC_CheckPatternPredicate, 28,
6890    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQ_PH_W), 0,
6891                  MVT::v2i16, 2, 0, 1,
6892   10,
6893    OPC_CheckPatternPredicate, 47,
6894    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECRQ_PH_W_MM), 0,
6895                  MVT::v2i16, 2, 0, 1,
6896   0,
6897  26,
6898   OPC_CheckChild0Integer, 0|128,84,
6899   OPC_RecordChild1,
6900   OPC_Scope, 9,
6901    OPC_CheckPatternPredicate, 28,
6902    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBL), 0,
6903                  MVT::v2i16, 1, 0,
6904   9,
6905    OPC_CheckPatternPredicate, 47,
6906    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBL_MM), 0,
6907                  MVT::v2i16, 1, 0,
6908   0,
6909  26,
6910   OPC_CheckChild0Integer, 4|128,84,
6911   OPC_RecordChild1,
6912   OPC_Scope, 9,
6913    OPC_CheckPatternPredicate, 28,
6914    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBR), 0,
6915                  MVT::v2i16, 1, 0,
6916   9,
6917    OPC_CheckPatternPredicate, 47,
6918    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBR_MM), 0,
6919                  MVT::v2i16, 1, 0,
6920   0,
6921  26,
6922   OPC_CheckChild0Integer, 2|128,84,
6923   OPC_RecordChild1,
6924   OPC_Scope, 9,
6925    OPC_CheckPatternPredicate, 28,
6926    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBLA), 0,
6927                  MVT::v2i16, 1, 0,
6928   9,
6929    OPC_CheckPatternPredicate, 47,
6930    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBLA_MM), 0,
6931                  MVT::v2i16, 1, 0,
6932   0,
6933  26,
6934   OPC_CheckChild0Integer, 6|128,84,
6935   OPC_RecordChild1,
6936   OPC_Scope, 9,
6937    OPC_CheckPatternPredicate, 28,
6938    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBRA), 0,
6939                  MVT::v2i16, 1, 0,
6940   9,
6941    OPC_CheckPatternPredicate, 47,
6942    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEQU_PH_QBRA_MM), 0,
6943                  MVT::v2i16, 1, 0,
6944   0,
6945  26,
6946   OPC_CheckChild0Integer, 8|128,84,
6947   OPC_RecordChild1,
6948   OPC_Scope, 9,
6949    OPC_CheckPatternPredicate, 28,
6950    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBL), 0,
6951                  MVT::v2i16, 1, 0,
6952   9,
6953    OPC_CheckPatternPredicate, 47,
6954    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBL_MM), 0,
6955                  MVT::v2i16, 1, 0,
6956   0,
6957  26,
6958   OPC_CheckChild0Integer, 12|128,84,
6959   OPC_RecordChild1,
6960   OPC_Scope, 9,
6961    OPC_CheckPatternPredicate, 28,
6962    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBR), 0,
6963                  MVT::v2i16, 1, 0,
6964   9,
6965    OPC_CheckPatternPredicate, 47,
6966    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBR_MM), 0,
6967                  MVT::v2i16, 1, 0,
6968   0,
6969  26,
6970   OPC_CheckChild0Integer, 10|128,84,
6971   OPC_RecordChild1,
6972   OPC_Scope, 9,
6973    OPC_CheckPatternPredicate, 28,
6974    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBLA), 0,
6975                  MVT::v2i16, 1, 0,
6976   9,
6977    OPC_CheckPatternPredicate, 47,
6978    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBLA_MM), 0,
6979                  MVT::v2i16, 1, 0,
6980   0,
6981  26,
6982   OPC_CheckChild0Integer, 14|128,84,
6983   OPC_RecordChild1,
6984   OPC_Scope, 9,
6985    OPC_CheckPatternPredicate, 28,
6986    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBRA), 0,
6987                  MVT::v2i16, 1, 0,
6988   9,
6989    OPC_CheckPatternPredicate, 47,
6990    OPC_MorphNodeTo1, TARGET_VAL(Mips::PRECEU_PH_QBRA_MM), 0,
6991                  MVT::v2i16, 1, 0,
6992   0,
6993  29,
6994   OPC_CheckChild0Integer, 94|128,83,
6995   OPC_RecordChild1,
6996   OPC_RecordChild2,
6997   OPC_Scope, 10,
6998    OPC_CheckPatternPredicate, 28,
6999    OPC_MorphNodeTo1, TARGET_VAL(Mips::PACKRL_PH), 0,
7000                  MVT::v2i16, 2, 0, 1,
7001   10,
7002    OPC_CheckPatternPredicate, 47,
7003    OPC_MorphNodeTo1, TARGET_VAL(Mips::PACKRL_PH_MM), 0,
7004                  MVT::v2i16, 2, 0, 1,
7005   0,
7006  29,
7007   OPC_CheckChild0Integer, 42|128,76,
7008   OPC_RecordChild1,
7009   OPC_RecordChild2,
7010   OPC_Scope, 10,
7011    OPC_CheckPatternPredicate, 48,
7012    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDUH_QB), 0,
7013                  MVT::v4i8, 2, 0, 1,
7014   10,
7015    OPC_CheckPatternPredicate, 49,
7016    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDUH_QB_MMR2), 0,
7017                  MVT::v4i8, 2, 0, 1,
7018   0,
7019  29,
7020   OPC_CheckChild0Integer, 44|128,76,
7021   OPC_RecordChild1,
7022   OPC_RecordChild2,
7023   OPC_Scope, 10,
7024    OPC_CheckPatternPredicate, 48,
7025    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDUH_R_QB), 0,
7026                  MVT::v4i8, 2, 0, 1,
7027   10,
7028    OPC_CheckPatternPredicate, 49,
7029    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDUH_R_QB_MMR2), 0,
7030                  MVT::v4i8, 2, 0, 1,
7031   0,
7032  29,
7033   OPC_CheckChild0Integer, 8|128,86,
7034   OPC_RecordChild1,
7035   OPC_RecordChild2,
7036   OPC_Scope, 10,
7037    OPC_CheckPatternPredicate, 48,
7038    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBUH_QB), 0,
7039                  MVT::v4i8, 2, 0, 1,
7040   10,
7041    OPC_CheckPatternPredicate, 49,
7042    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBUH_QB_MMR2), 0,
7043                  MVT::v4i8, 2, 0, 1,
7044   0,
7045  29,
7046   OPC_CheckChild0Integer, 10|128,86,
7047   OPC_RecordChild1,
7048   OPC_RecordChild2,
7049   OPC_Scope, 10,
7050    OPC_CheckPatternPredicate, 48,
7051    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBUH_R_QB), 0,
7052                  MVT::v4i8, 2, 0, 1,
7053   10,
7054    OPC_CheckPatternPredicate, 49,
7055    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBUH_R_QB_MMR2), 0,
7056                  MVT::v4i8, 2, 0, 1,
7057   0,
7058  29,
7059   OPC_CheckChild0Integer, 0|128,76,
7060   OPC_RecordChild1,
7061   OPC_RecordChild2,
7062   OPC_Scope, 10,
7063    OPC_CheckPatternPredicate, 48,
7064    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_PH), 0,
7065                  MVT::v2i16, 2, 0, 1,
7066   10,
7067    OPC_CheckPatternPredicate, 49,
7068    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_PH_MMR2), 0,
7069                  MVT::v2i16, 2, 0, 1,
7070   0,
7071  29,
7072   OPC_CheckChild0Integer, 2|128,76,
7073   OPC_RecordChild1,
7074   OPC_RecordChild2,
7075   OPC_Scope, 10,
7076    OPC_CheckPatternPredicate, 48,
7077    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_R_PH), 0,
7078                  MVT::v2i16, 2, 0, 1,
7079   10,
7080    OPC_CheckPatternPredicate, 49,
7081    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQH_R_PH_MMR2), 0,
7082                  MVT::v2i16, 2, 0, 1,
7083   0,
7084  29,
7085   OPC_CheckChild0Integer, 88|128,85,
7086   OPC_RecordChild1,
7087   OPC_RecordChild2,
7088   OPC_Scope, 10,
7089    OPC_CheckPatternPredicate, 48,
7090    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_PH), 0,
7091                  MVT::v2i16, 2, 0, 1,
7092   10,
7093    OPC_CheckPatternPredicate, 49,
7094    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_PH_MMR2), 0,
7095                  MVT::v2i16, 2, 0, 1,
7096   0,
7097  29,
7098   OPC_CheckChild0Integer, 90|128,85,
7099   OPC_RecordChild1,
7100   OPC_RecordChild2,
7101   OPC_Scope, 10,
7102    OPC_CheckPatternPredicate, 48,
7103    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_R_PH), 0,
7104                  MVT::v2i16, 2, 0, 1,
7105   10,
7106    OPC_CheckPatternPredicate, 49,
7107    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQH_R_PH_MMR2), 0,
7108                  MVT::v2i16, 2, 0, 1,
7109   0,
7110  15,
7111   OPC_CheckChild0Integer, 122|128,75,
7112   OPC_RecordChild1,
7113   OPC_RecordChild2,
7114   OPC_CheckPatternPredicate, 28,
7115   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQ_PH), 0,
7116                 MVT::v2i16, 2, 0, 1,
7117  15,
7118   OPC_CheckChild0Integer, 82|128,85,
7119   OPC_RecordChild1,
7120   OPC_RecordChild2,
7121   OPC_CheckPatternPredicate, 28,
7122   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQ_PH), 0,
7123                 MVT::v2i16, 2, 0, 1,
7124  15,
7125   OPC_CheckChild0Integer, 36|128,76,
7126   OPC_RecordChild1,
7127   OPC_RecordChild2,
7128   OPC_CheckPatternPredicate, 28,
7129   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_QB), 0,
7130                 MVT::v4i8, 2, 0, 1,
7131  15,
7132   OPC_CheckChild0Integer, 2|128,86,
7133   OPC_RecordChild1,
7134   OPC_RecordChild2,
7135   OPC_CheckPatternPredicate, 28,
7136   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_QB), 0,
7137                 MVT::v4i8, 2, 0, 1,
7138  15,
7139   OPC_CheckChild0Integer, 114|128,75,
7140   OPC_RecordChild1,
7141   OPC_RecordChild2,
7142   OPC_CheckPatternPredicate, 26,
7143   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADD_A_B), 0,
7144                 MVT::v16i8, 2, 0, 1,
7145  15,
7146   OPC_CheckChild0Integer, 118|128,75,
7147   OPC_RecordChild1,
7148   OPC_RecordChild2,
7149   OPC_CheckPatternPredicate, 26,
7150   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADD_A_H), 0,
7151                 MVT::v8i16, 2, 0, 1,
7152  15,
7153   OPC_CheckChild0Integer, 120|128,75,
7154   OPC_RecordChild1,
7155   OPC_RecordChild2,
7156   OPC_CheckPatternPredicate, 26,
7157   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADD_A_W), 0,
7158                 MVT::v4i32, 2, 0, 1,
7159  15,
7160   OPC_CheckChild0Integer, 116|128,75,
7161   OPC_RecordChild1,
7162   OPC_RecordChild2,
7163   OPC_CheckPatternPredicate, 26,
7164   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADD_A_D), 0,
7165                 MVT::v2i64, 2, 0, 1,
7166  15,
7167   OPC_CheckChild0Integer, 8|128,76,
7168   OPC_RecordChild1,
7169   OPC_RecordChild2,
7170   OPC_CheckPatternPredicate, 26,
7171   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_A_B), 0,
7172                 MVT::v16i8, 2, 0, 1,
7173  15,
7174   OPC_CheckChild0Integer, 12|128,76,
7175   OPC_RecordChild1,
7176   OPC_RecordChild2,
7177   OPC_CheckPatternPredicate, 26,
7178   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_A_H), 0,
7179                 MVT::v8i16, 2, 0, 1,
7180  15,
7181   OPC_CheckChild0Integer, 14|128,76,
7182   OPC_RecordChild1,
7183   OPC_RecordChild2,
7184   OPC_CheckPatternPredicate, 26,
7185   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_A_W), 0,
7186                 MVT::v4i32, 2, 0, 1,
7187  15,
7188   OPC_CheckChild0Integer, 10|128,76,
7189   OPC_RecordChild1,
7190   OPC_RecordChild2,
7191   OPC_CheckPatternPredicate, 26,
7192   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_A_D), 0,
7193                 MVT::v2i64, 2, 0, 1,
7194  15,
7195   OPC_CheckChild0Integer, 16|128,76,
7196   OPC_RecordChild1,
7197   OPC_RecordChild2,
7198   OPC_CheckPatternPredicate, 26,
7199   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_S_B), 0,
7200                 MVT::v16i8, 2, 0, 1,
7201  15,
7202   OPC_CheckChild0Integer, 20|128,76,
7203   OPC_RecordChild1,
7204   OPC_RecordChild2,
7205   OPC_CheckPatternPredicate, 26,
7206   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_S_H), 0,
7207                 MVT::v8i16, 2, 0, 1,
7208  15,
7209   OPC_CheckChild0Integer, 22|128,76,
7210   OPC_RecordChild1,
7211   OPC_RecordChild2,
7212   OPC_CheckPatternPredicate, 26,
7213   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_S_W), 0,
7214                 MVT::v4i32, 2, 0, 1,
7215  15,
7216   OPC_CheckChild0Integer, 18|128,76,
7217   OPC_RecordChild1,
7218   OPC_RecordChild2,
7219   OPC_CheckPatternPredicate, 26,
7220   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_S_D), 0,
7221                 MVT::v2i64, 2, 0, 1,
7222  15,
7223   OPC_CheckChild0Integer, 24|128,76,
7224   OPC_RecordChild1,
7225   OPC_RecordChild2,
7226   OPC_CheckPatternPredicate, 26,
7227   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_U_B), 0,
7228                 MVT::v16i8, 2, 0, 1,
7229  15,
7230   OPC_CheckChild0Integer, 28|128,76,
7231   OPC_RecordChild1,
7232   OPC_RecordChild2,
7233   OPC_CheckPatternPredicate, 26,
7234   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_U_H), 0,
7235                 MVT::v8i16, 2, 0, 1,
7236  15,
7237   OPC_CheckChild0Integer, 30|128,76,
7238   OPC_RecordChild1,
7239   OPC_RecordChild2,
7240   OPC_CheckPatternPredicate, 26,
7241   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_U_W), 0,
7242                 MVT::v4i32, 2, 0, 1,
7243  15,
7244   OPC_CheckChild0Integer, 26|128,76,
7245   OPC_RecordChild1,
7246   OPC_RecordChild2,
7247   OPC_CheckPatternPredicate, 26,
7248   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDS_U_D), 0,
7249                 MVT::v2i64, 2, 0, 1,
7250  15,
7251   OPC_CheckChild0Integer, 70|128,76,
7252   OPC_RecordChild1,
7253   OPC_RecordChild2,
7254   OPC_CheckPatternPredicate, 26,
7255   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_S_B), 0,
7256                 MVT::v16i8, 2, 0, 1,
7257  15,
7258   OPC_CheckChild0Integer, 74|128,76,
7259   OPC_RecordChild1,
7260   OPC_RecordChild2,
7261   OPC_CheckPatternPredicate, 26,
7262   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_S_H), 0,
7263                 MVT::v8i16, 2, 0, 1,
7264  15,
7265   OPC_CheckChild0Integer, 76|128,76,
7266   OPC_RecordChild1,
7267   OPC_RecordChild2,
7268   OPC_CheckPatternPredicate, 26,
7269   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_S_W), 0,
7270                 MVT::v4i32, 2, 0, 1,
7271  15,
7272   OPC_CheckChild0Integer, 72|128,76,
7273   OPC_RecordChild1,
7274   OPC_RecordChild2,
7275   OPC_CheckPatternPredicate, 26,
7276   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_S_D), 0,
7277                 MVT::v2i64, 2, 0, 1,
7278  15,
7279   OPC_CheckChild0Integer, 78|128,76,
7280   OPC_RecordChild1,
7281   OPC_RecordChild2,
7282   OPC_CheckPatternPredicate, 26,
7283   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_U_B), 0,
7284                 MVT::v16i8, 2, 0, 1,
7285  15,
7286   OPC_CheckChild0Integer, 82|128,76,
7287   OPC_RecordChild1,
7288   OPC_RecordChild2,
7289   OPC_CheckPatternPredicate, 26,
7290   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_U_H), 0,
7291                 MVT::v8i16, 2, 0, 1,
7292  15,
7293   OPC_CheckChild0Integer, 84|128,76,
7294   OPC_RecordChild1,
7295   OPC_RecordChild2,
7296   OPC_CheckPatternPredicate, 26,
7297   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_U_W), 0,
7298                 MVT::v4i32, 2, 0, 1,
7299  15,
7300   OPC_CheckChild0Integer, 80|128,76,
7301   OPC_RecordChild1,
7302   OPC_RecordChild2,
7303   OPC_CheckPatternPredicate, 26,
7304   OPC_MorphNodeTo1, TARGET_VAL(Mips::ASUB_U_D), 0,
7305                 MVT::v2i64, 2, 0, 1,
7306  15,
7307   OPC_CheckChild0Integer, 86|128,76,
7308   OPC_RecordChild1,
7309   OPC_RecordChild2,
7310   OPC_CheckPatternPredicate, 26,
7311   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_S_B), 0,
7312                 MVT::v16i8, 2, 0, 1,
7313  15,
7314   OPC_CheckChild0Integer, 90|128,76,
7315   OPC_RecordChild1,
7316   OPC_RecordChild2,
7317   OPC_CheckPatternPredicate, 26,
7318   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_S_H), 0,
7319                 MVT::v8i16, 2, 0, 1,
7320  15,
7321   OPC_CheckChild0Integer, 92|128,76,
7322   OPC_RecordChild1,
7323   OPC_RecordChild2,
7324   OPC_CheckPatternPredicate, 26,
7325   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_S_W), 0,
7326                 MVT::v4i32, 2, 0, 1,
7327  15,
7328   OPC_CheckChild0Integer, 88|128,76,
7329   OPC_RecordChild1,
7330   OPC_RecordChild2,
7331   OPC_CheckPatternPredicate, 26,
7332   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_S_D), 0,
7333                 MVT::v2i64, 2, 0, 1,
7334  15,
7335   OPC_CheckChild0Integer, 94|128,76,
7336   OPC_RecordChild1,
7337   OPC_RecordChild2,
7338   OPC_CheckPatternPredicate, 26,
7339   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_U_B), 0,
7340                 MVT::v16i8, 2, 0, 1,
7341  15,
7342   OPC_CheckChild0Integer, 98|128,76,
7343   OPC_RecordChild1,
7344   OPC_RecordChild2,
7345   OPC_CheckPatternPredicate, 26,
7346   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_U_H), 0,
7347                 MVT::v8i16, 2, 0, 1,
7348  15,
7349   OPC_CheckChild0Integer, 100|128,76,
7350   OPC_RecordChild1,
7351   OPC_RecordChild2,
7352   OPC_CheckPatternPredicate, 26,
7353   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_U_W), 0,
7354                 MVT::v4i32, 2, 0, 1,
7355  15,
7356   OPC_CheckChild0Integer, 96|128,76,
7357   OPC_RecordChild1,
7358   OPC_RecordChild2,
7359   OPC_CheckPatternPredicate, 26,
7360   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVE_U_D), 0,
7361                 MVT::v2i64, 2, 0, 1,
7362  15,
7363   OPC_CheckChild0Integer, 102|128,76,
7364   OPC_RecordChild1,
7365   OPC_RecordChild2,
7366   OPC_CheckPatternPredicate, 26,
7367   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_S_B), 0,
7368                 MVT::v16i8, 2, 0, 1,
7369  15,
7370   OPC_CheckChild0Integer, 106|128,76,
7371   OPC_RecordChild1,
7372   OPC_RecordChild2,
7373   OPC_CheckPatternPredicate, 26,
7374   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_S_H), 0,
7375                 MVT::v8i16, 2, 0, 1,
7376  15,
7377   OPC_CheckChild0Integer, 108|128,76,
7378   OPC_RecordChild1,
7379   OPC_RecordChild2,
7380   OPC_CheckPatternPredicate, 26,
7381   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_S_W), 0,
7382                 MVT::v4i32, 2, 0, 1,
7383  15,
7384   OPC_CheckChild0Integer, 104|128,76,
7385   OPC_RecordChild1,
7386   OPC_RecordChild2,
7387   OPC_CheckPatternPredicate, 26,
7388   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_S_D), 0,
7389                 MVT::v2i64, 2, 0, 1,
7390  15,
7391   OPC_CheckChild0Integer, 110|128,76,
7392   OPC_RecordChild1,
7393   OPC_RecordChild2,
7394   OPC_CheckPatternPredicate, 26,
7395   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_U_B), 0,
7396                 MVT::v16i8, 2, 0, 1,
7397  15,
7398   OPC_CheckChild0Integer, 114|128,76,
7399   OPC_RecordChild1,
7400   OPC_RecordChild2,
7401   OPC_CheckPatternPredicate, 26,
7402   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_U_H), 0,
7403                 MVT::v8i16, 2, 0, 1,
7404  15,
7405   OPC_CheckChild0Integer, 116|128,76,
7406   OPC_RecordChild1,
7407   OPC_RecordChild2,
7408   OPC_CheckPatternPredicate, 26,
7409   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_U_W), 0,
7410                 MVT::v4i32, 2, 0, 1,
7411  15,
7412   OPC_CheckChild0Integer, 112|128,76,
7413   OPC_RecordChild1,
7414   OPC_RecordChild2,
7415   OPC_CheckPatternPredicate, 26,
7416   OPC_MorphNodeTo1, TARGET_VAL(Mips::AVER_U_D), 0,
7417                 MVT::v2i64, 2, 0, 1,
7418  17,
7419   OPC_CheckChild0Integer, 8|128,77,
7420   OPC_RecordChild1,
7421   OPC_RecordChild2,
7422   OPC_RecordChild3,
7423   OPC_CheckPatternPredicate, 26,
7424   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSL_B), 0,
7425                 MVT::v16i8, 3, 0, 1, 2,
7426  17,
7427   OPC_CheckChild0Integer, 12|128,77,
7428   OPC_RecordChild1,
7429   OPC_RecordChild2,
7430   OPC_RecordChild3,
7431   OPC_CheckPatternPredicate, 26,
7432   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSL_H), 0,
7433                 MVT::v8i16, 3, 0, 1, 2,
7434  17,
7435   OPC_CheckChild0Integer, 14|128,77,
7436   OPC_RecordChild1,
7437   OPC_RecordChild2,
7438   OPC_RecordChild3,
7439   OPC_CheckPatternPredicate, 26,
7440   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSL_W), 0,
7441                 MVT::v4i32, 3, 0, 1, 2,
7442  17,
7443   OPC_CheckChild0Integer, 10|128,77,
7444   OPC_RecordChild1,
7445   OPC_RecordChild2,
7446   OPC_RecordChild3,
7447   OPC_CheckPatternPredicate, 26,
7448   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSL_D), 0,
7449                 MVT::v2i64, 3, 0, 1, 2,
7450  17,
7451   OPC_CheckChild0Integer, 24|128,77,
7452   OPC_RecordChild1,
7453   OPC_RecordChild2,
7454   OPC_RecordChild3,
7455   OPC_CheckPatternPredicate, 26,
7456   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSR_B), 0,
7457                 MVT::v16i8, 3, 0, 1, 2,
7458  17,
7459   OPC_CheckChild0Integer, 28|128,77,
7460   OPC_RecordChild1,
7461   OPC_RecordChild2,
7462   OPC_RecordChild3,
7463   OPC_CheckPatternPredicate, 26,
7464   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSR_H), 0,
7465                 MVT::v8i16, 3, 0, 1, 2,
7466  17,
7467   OPC_CheckChild0Integer, 30|128,77,
7468   OPC_RecordChild1,
7469   OPC_RecordChild2,
7470   OPC_RecordChild3,
7471   OPC_CheckPatternPredicate, 26,
7472   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSR_W), 0,
7473                 MVT::v4i32, 3, 0, 1, 2,
7474  17,
7475   OPC_CheckChild0Integer, 26|128,77,
7476   OPC_RecordChild1,
7477   OPC_RecordChild2,
7478   OPC_RecordChild3,
7479   OPC_CheckPatternPredicate, 26,
7480   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSR_D), 0,
7481                 MVT::v2i64, 3, 0, 1, 2,
7482  15,
7483   OPC_CheckChild0Integer, 124|128,78,
7484   OPC_RecordChild1,
7485   OPC_RecordChild2,
7486   OPC_CheckPatternPredicate, 26,
7487   OPC_MorphNodeTo1, TARGET_VAL(Mips::DOTP_S_H), 0,
7488                 MVT::v8i16, 2, 0, 1,
7489  15,
7490   OPC_CheckChild0Integer, 126|128,78,
7491   OPC_RecordChild1,
7492   OPC_RecordChild2,
7493   OPC_CheckPatternPredicate, 26,
7494   OPC_MorphNodeTo1, TARGET_VAL(Mips::DOTP_S_W), 0,
7495                 MVT::v4i32, 2, 0, 1,
7496  15,
7497   OPC_CheckChild0Integer, 122|128,78,
7498   OPC_RecordChild1,
7499   OPC_RecordChild2,
7500   OPC_CheckPatternPredicate, 26,
7501   OPC_MorphNodeTo1, TARGET_VAL(Mips::DOTP_S_D), 0,
7502                 MVT::v2i64, 2, 0, 1,
7503  15,
7504   OPC_CheckChild0Integer, 2|128,79,
7505   OPC_RecordChild1,
7506   OPC_RecordChild2,
7507   OPC_CheckPatternPredicate, 26,
7508   OPC_MorphNodeTo1, TARGET_VAL(Mips::DOTP_U_H), 0,
7509                 MVT::v8i16, 2, 0, 1,
7510  15,
7511   OPC_CheckChild0Integer, 4|128,79,
7512   OPC_RecordChild1,
7513   OPC_RecordChild2,
7514   OPC_CheckPatternPredicate, 26,
7515   OPC_MorphNodeTo1, TARGET_VAL(Mips::DOTP_U_W), 0,
7516                 MVT::v4i32, 2, 0, 1,
7517  15,
7518   OPC_CheckChild0Integer, 0|128,79,
7519   OPC_RecordChild1,
7520   OPC_RecordChild2,
7521   OPC_CheckPatternPredicate, 26,
7522   OPC_MorphNodeTo1, TARGET_VAL(Mips::DOTP_U_D), 0,
7523                 MVT::v2i64, 2, 0, 1,
7524  17,
7525   OPC_CheckChild0Integer, 10|128,79,
7526   OPC_RecordChild1,
7527   OPC_RecordChild2,
7528   OPC_RecordChild3,
7529   OPC_CheckPatternPredicate, 26,
7530   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPADD_S_H), 0,
7531                 MVT::v8i16, 3, 0, 1, 2,
7532  17,
7533   OPC_CheckChild0Integer, 12|128,79,
7534   OPC_RecordChild1,
7535   OPC_RecordChild2,
7536   OPC_RecordChild3,
7537   OPC_CheckPatternPredicate, 26,
7538   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPADD_S_W), 0,
7539                 MVT::v4i32, 3, 0, 1, 2,
7540  17,
7541   OPC_CheckChild0Integer, 8|128,79,
7542   OPC_RecordChild1,
7543   OPC_RecordChild2,
7544   OPC_RecordChild3,
7545   OPC_CheckPatternPredicate, 26,
7546   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPADD_S_D), 0,
7547                 MVT::v2i64, 3, 0, 1, 2,
7548  17,
7549   OPC_CheckChild0Integer, 16|128,79,
7550   OPC_RecordChild1,
7551   OPC_RecordChild2,
7552   OPC_RecordChild3,
7553   OPC_CheckPatternPredicate, 26,
7554   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPADD_U_H), 0,
7555                 MVT::v8i16, 3, 0, 1, 2,
7556  17,
7557   OPC_CheckChild0Integer, 18|128,79,
7558   OPC_RecordChild1,
7559   OPC_RecordChild2,
7560   OPC_RecordChild3,
7561   OPC_CheckPatternPredicate, 26,
7562   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPADD_U_W), 0,
7563                 MVT::v4i32, 3, 0, 1, 2,
7564  17,
7565   OPC_CheckChild0Integer, 14|128,79,
7566   OPC_RecordChild1,
7567   OPC_RecordChild2,
7568   OPC_RecordChild3,
7569   OPC_CheckPatternPredicate, 26,
7570   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPADD_U_D), 0,
7571                 MVT::v2i64, 3, 0, 1, 2,
7572  17,
7573   OPC_CheckChild0Integer, 50|128,79,
7574   OPC_RecordChild1,
7575   OPC_RecordChild2,
7576   OPC_RecordChild3,
7577   OPC_CheckPatternPredicate, 26,
7578   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSUB_S_H), 0,
7579                 MVT::v8i16, 3, 0, 1, 2,
7580  17,
7581   OPC_CheckChild0Integer, 52|128,79,
7582   OPC_RecordChild1,
7583   OPC_RecordChild2,
7584   OPC_RecordChild3,
7585   OPC_CheckPatternPredicate, 26,
7586   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSUB_S_W), 0,
7587                 MVT::v4i32, 3, 0, 1, 2,
7588  17,
7589   OPC_CheckChild0Integer, 48|128,79,
7590   OPC_RecordChild1,
7591   OPC_RecordChild2,
7592   OPC_RecordChild3,
7593   OPC_CheckPatternPredicate, 26,
7594   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSUB_S_D), 0,
7595                 MVT::v2i64, 3, 0, 1, 2,
7596  17,
7597   OPC_CheckChild0Integer, 56|128,79,
7598   OPC_RecordChild1,
7599   OPC_RecordChild2,
7600   OPC_RecordChild3,
7601   OPC_CheckPatternPredicate, 26,
7602   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSUB_U_H), 0,
7603                 MVT::v8i16, 3, 0, 1, 2,
7604  17,
7605   OPC_CheckChild0Integer, 58|128,79,
7606   OPC_RecordChild1,
7607   OPC_RecordChild2,
7608   OPC_RecordChild3,
7609   OPC_CheckPatternPredicate, 26,
7610   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSUB_U_W), 0,
7611                 MVT::v4i32, 3, 0, 1, 2,
7612  17,
7613   OPC_CheckChild0Integer, 54|128,79,
7614   OPC_RecordChild1,
7615   OPC_RecordChild2,
7616   OPC_RecordChild3,
7617   OPC_CheckPatternPredicate, 26,
7618   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSUB_U_D), 0,
7619                 MVT::v2i64, 3, 0, 1, 2,
7620  15,
7621   OPC_CheckChild0Integer, 80|128,79,
7622   OPC_RecordChild1,
7623   OPC_RecordChild2,
7624   OPC_CheckPatternPredicate, 26,
7625   OPC_MorphNodeTo1, TARGET_VAL(Mips::FCAF_W), 0,
7626                 MVT::v4i32, 2, 0, 1,
7627  15,
7628   OPC_CheckChild0Integer, 78|128,79,
7629   OPC_RecordChild1,
7630   OPC_RecordChild2,
7631   OPC_CheckPatternPredicate, 26,
7632   OPC_MorphNodeTo1, TARGET_VAL(Mips::FCAF_D), 0,
7633                 MVT::v2i64, 2, 0, 1,
7634  13,
7635   OPC_CheckChild0Integer, 88|128,79,
7636   OPC_RecordChild1,
7637   OPC_CheckPatternPredicate, 26,
7638   OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLASS_W), 0,
7639                 MVT::v4i32, 1, 0,
7640  13,
7641   OPC_CheckChild0Integer, 86|128,79,
7642   OPC_RecordChild1,
7643   OPC_CheckPatternPredicate, 26,
7644   OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLASS_D), 0,
7645                 MVT::v2i64, 1, 0,
7646  15,
7647   OPC_CheckChild0Integer, 88|128,80,
7648   OPC_RecordChild1,
7649   OPC_RecordChild2,
7650   OPC_CheckPatternPredicate, 26,
7651   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSAF_W), 0,
7652                 MVT::v4i32, 2, 0, 1,
7653  15,
7654   OPC_CheckChild0Integer, 86|128,80,
7655   OPC_RecordChild1,
7656   OPC_RecordChild2,
7657   OPC_CheckPatternPredicate, 26,
7658   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSAF_D), 0,
7659                 MVT::v2i64, 2, 0, 1,
7660  15,
7661   OPC_CheckChild0Integer, 92|128,80,
7662   OPC_RecordChild1,
7663   OPC_RecordChild2,
7664   OPC_CheckPatternPredicate, 26,
7665   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSEQ_W), 0,
7666                 MVT::v4i32, 2, 0, 1,
7667  15,
7668   OPC_CheckChild0Integer, 90|128,80,
7669   OPC_RecordChild1,
7670   OPC_RecordChild2,
7671   OPC_CheckPatternPredicate, 26,
7672   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSEQ_D), 0,
7673                 MVT::v2i64, 2, 0, 1,
7674  15,
7675   OPC_CheckChild0Integer, 96|128,80,
7676   OPC_RecordChild1,
7677   OPC_RecordChild2,
7678   OPC_CheckPatternPredicate, 26,
7679   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSLE_W), 0,
7680                 MVT::v4i32, 2, 0, 1,
7681  15,
7682   OPC_CheckChild0Integer, 94|128,80,
7683   OPC_RecordChild1,
7684   OPC_RecordChild2,
7685   OPC_CheckPatternPredicate, 26,
7686   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSLE_D), 0,
7687                 MVT::v2i64, 2, 0, 1,
7688  15,
7689   OPC_CheckChild0Integer, 100|128,80,
7690   OPC_RecordChild1,
7691   OPC_RecordChild2,
7692   OPC_CheckPatternPredicate, 26,
7693   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSLT_W), 0,
7694                 MVT::v4i32, 2, 0, 1,
7695  15,
7696   OPC_CheckChild0Integer, 98|128,80,
7697   OPC_RecordChild1,
7698   OPC_RecordChild2,
7699   OPC_CheckPatternPredicate, 26,
7700   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSLT_D), 0,
7701                 MVT::v2i64, 2, 0, 1,
7702  15,
7703   OPC_CheckChild0Integer, 104|128,80,
7704   OPC_RecordChild1,
7705   OPC_RecordChild2,
7706   OPC_CheckPatternPredicate, 26,
7707   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSNE_W), 0,
7708                 MVT::v4i32, 2, 0, 1,
7709  15,
7710   OPC_CheckChild0Integer, 102|128,80,
7711   OPC_RecordChild1,
7712   OPC_RecordChild2,
7713   OPC_CheckPatternPredicate, 26,
7714   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSNE_D), 0,
7715                 MVT::v2i64, 2, 0, 1,
7716  15,
7717   OPC_CheckChild0Integer, 108|128,80,
7718   OPC_RecordChild1,
7719   OPC_RecordChild2,
7720   OPC_CheckPatternPredicate, 26,
7721   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSOR_W), 0,
7722                 MVT::v4i32, 2, 0, 1,
7723  15,
7724   OPC_CheckChild0Integer, 106|128,80,
7725   OPC_RecordChild1,
7726   OPC_RecordChild2,
7727   OPC_CheckPatternPredicate, 26,
7728   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSOR_D), 0,
7729                 MVT::v2i64, 2, 0, 1,
7730  15,
7731   OPC_CheckChild0Integer, 120|128,80,
7732   OPC_RecordChild1,
7733   OPC_RecordChild2,
7734   OPC_CheckPatternPredicate, 26,
7735   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUEQ_W), 0,
7736                 MVT::v4i32, 2, 0, 1,
7737  15,
7738   OPC_CheckChild0Integer, 118|128,80,
7739   OPC_RecordChild1,
7740   OPC_RecordChild2,
7741   OPC_CheckPatternPredicate, 26,
7742   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUEQ_D), 0,
7743                 MVT::v2i64, 2, 0, 1,
7744  15,
7745   OPC_CheckChild0Integer, 124|128,80,
7746   OPC_RecordChild1,
7747   OPC_RecordChild2,
7748   OPC_CheckPatternPredicate, 26,
7749   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSULE_W), 0,
7750                 MVT::v4i32, 2, 0, 1,
7751  15,
7752   OPC_CheckChild0Integer, 122|128,80,
7753   OPC_RecordChild1,
7754   OPC_RecordChild2,
7755   OPC_CheckPatternPredicate, 26,
7756   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSULE_D), 0,
7757                 MVT::v2i64, 2, 0, 1,
7758  15,
7759   OPC_CheckChild0Integer, 0|128,81,
7760   OPC_RecordChild1,
7761   OPC_RecordChild2,
7762   OPC_CheckPatternPredicate, 26,
7763   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSULT_W), 0,
7764                 MVT::v4i32, 2, 0, 1,
7765  15,
7766   OPC_CheckChild0Integer, 126|128,80,
7767   OPC_RecordChild1,
7768   OPC_RecordChild2,
7769   OPC_CheckPatternPredicate, 26,
7770   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSULT_D), 0,
7771                 MVT::v2i64, 2, 0, 1,
7772  15,
7773   OPC_CheckChild0Integer, 4|128,81,
7774   OPC_RecordChild1,
7775   OPC_RecordChild2,
7776   OPC_CheckPatternPredicate, 26,
7777   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUN_W), 0,
7778                 MVT::v4i32, 2, 0, 1,
7779  15,
7780   OPC_CheckChild0Integer, 2|128,81,
7781   OPC_RecordChild1,
7782   OPC_RecordChild2,
7783   OPC_CheckPatternPredicate, 26,
7784   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUN_D), 0,
7785                 MVT::v2i64, 2, 0, 1,
7786  15,
7787   OPC_CheckChild0Integer, 8|128,81,
7788   OPC_RecordChild1,
7789   OPC_RecordChild2,
7790   OPC_CheckPatternPredicate, 26,
7791   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUNE_W), 0,
7792                 MVT::v4i32, 2, 0, 1,
7793  15,
7794   OPC_CheckChild0Integer, 6|128,81,
7795   OPC_RecordChild1,
7796   OPC_RecordChild2,
7797   OPC_CheckPatternPredicate, 26,
7798   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUNE_D), 0,
7799                 MVT::v2i64, 2, 0, 1,
7800  13,
7801   OPC_CheckChild0Integer, 12|128,81,
7802   OPC_RecordChild1,
7803   OPC_CheckPatternPredicate, 26,
7804   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTINT_S_W), 0,
7805                 MVT::v4i32, 1, 0,
7806  13,
7807   OPC_CheckChild0Integer, 10|128,81,
7808   OPC_RecordChild1,
7809   OPC_CheckPatternPredicate, 26,
7810   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTINT_S_D), 0,
7811                 MVT::v2i64, 1, 0,
7812  13,
7813   OPC_CheckChild0Integer, 16|128,81,
7814   OPC_RecordChild1,
7815   OPC_CheckPatternPredicate, 26,
7816   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTINT_U_W), 0,
7817                 MVT::v4i32, 1, 0,
7818  13,
7819   OPC_CheckChild0Integer, 14|128,81,
7820   OPC_RecordChild1,
7821   OPC_CheckPatternPredicate, 26,
7822   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTINT_U_D), 0,
7823                 MVT::v2i64, 1, 0,
7824  15,
7825   OPC_CheckChild0Integer, 18|128,81,
7826   OPC_RecordChild1,
7827   OPC_RecordChild2,
7828   OPC_CheckPatternPredicate, 26,
7829   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTQ_H), 0,
7830                 MVT::v8i16, 2, 0, 1,
7831  15,
7832   OPC_CheckChild0Integer, 20|128,81,
7833   OPC_RecordChild1,
7834   OPC_RecordChild2,
7835   OPC_CheckPatternPredicate, 26,
7836   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTQ_W), 0,
7837                 MVT::v4i32, 2, 0, 1,
7838  15,
7839   OPC_CheckChild0Integer, 32|128,81,
7840   OPC_RecordChild1,
7841   OPC_RecordChild2,
7842   OPC_CheckPatternPredicate, 26,
7843   OPC_MorphNodeTo1, TARGET_VAL(Mips::HADD_S_H), 0,
7844                 MVT::v8i16, 2, 0, 1,
7845  15,
7846   OPC_CheckChild0Integer, 34|128,81,
7847   OPC_RecordChild1,
7848   OPC_RecordChild2,
7849   OPC_CheckPatternPredicate, 26,
7850   OPC_MorphNodeTo1, TARGET_VAL(Mips::HADD_S_W), 0,
7851                 MVT::v4i32, 2, 0, 1,
7852  15,
7853   OPC_CheckChild0Integer, 30|128,81,
7854   OPC_RecordChild1,
7855   OPC_RecordChild2,
7856   OPC_CheckPatternPredicate, 26,
7857   OPC_MorphNodeTo1, TARGET_VAL(Mips::HADD_S_D), 0,
7858                 MVT::v2i64, 2, 0, 1,
7859  15,
7860   OPC_CheckChild0Integer, 38|128,81,
7861   OPC_RecordChild1,
7862   OPC_RecordChild2,
7863   OPC_CheckPatternPredicate, 26,
7864   OPC_MorphNodeTo1, TARGET_VAL(Mips::HADD_U_H), 0,
7865                 MVT::v8i16, 2, 0, 1,
7866  15,
7867   OPC_CheckChild0Integer, 40|128,81,
7868   OPC_RecordChild1,
7869   OPC_RecordChild2,
7870   OPC_CheckPatternPredicate, 26,
7871   OPC_MorphNodeTo1, TARGET_VAL(Mips::HADD_U_W), 0,
7872                 MVT::v4i32, 2, 0, 1,
7873  15,
7874   OPC_CheckChild0Integer, 36|128,81,
7875   OPC_RecordChild1,
7876   OPC_RecordChild2,
7877   OPC_CheckPatternPredicate, 26,
7878   OPC_MorphNodeTo1, TARGET_VAL(Mips::HADD_U_D), 0,
7879                 MVT::v2i64, 2, 0, 1,
7880  15,
7881   OPC_CheckChild0Integer, 44|128,81,
7882   OPC_RecordChild1,
7883   OPC_RecordChild2,
7884   OPC_CheckPatternPredicate, 26,
7885   OPC_MorphNodeTo1, TARGET_VAL(Mips::HSUB_S_H), 0,
7886                 MVT::v8i16, 2, 0, 1,
7887  15,
7888   OPC_CheckChild0Integer, 46|128,81,
7889   OPC_RecordChild1,
7890   OPC_RecordChild2,
7891   OPC_CheckPatternPredicate, 26,
7892   OPC_MorphNodeTo1, TARGET_VAL(Mips::HSUB_S_W), 0,
7893                 MVT::v4i32, 2, 0, 1,
7894  15,
7895   OPC_CheckChild0Integer, 42|128,81,
7896   OPC_RecordChild1,
7897   OPC_RecordChild2,
7898   OPC_CheckPatternPredicate, 26,
7899   OPC_MorphNodeTo1, TARGET_VAL(Mips::HSUB_S_D), 0,
7900                 MVT::v2i64, 2, 0, 1,
7901  15,
7902   OPC_CheckChild0Integer, 50|128,81,
7903   OPC_RecordChild1,
7904   OPC_RecordChild2,
7905   OPC_CheckPatternPredicate, 26,
7906   OPC_MorphNodeTo1, TARGET_VAL(Mips::HSUB_U_H), 0,
7907                 MVT::v8i16, 2, 0, 1,
7908  15,
7909   OPC_CheckChild0Integer, 52|128,81,
7910   OPC_RecordChild1,
7911   OPC_RecordChild2,
7912   OPC_CheckPatternPredicate, 26,
7913   OPC_MorphNodeTo1, TARGET_VAL(Mips::HSUB_U_W), 0,
7914                 MVT::v4i32, 2, 0, 1,
7915  15,
7916   OPC_CheckChild0Integer, 48|128,81,
7917   OPC_RecordChild1,
7918   OPC_RecordChild2,
7919   OPC_CheckPatternPredicate, 26,
7920   OPC_MorphNodeTo1, TARGET_VAL(Mips::HSUB_U_D), 0,
7921                 MVT::v2i64, 2, 0, 1,
7922  17,
7923   OPC_CheckChild0Integer, 6|128,82,
7924   OPC_RecordChild1,
7925   OPC_RecordChild2,
7926   OPC_RecordChild3,
7927   OPC_CheckPatternPredicate, 26,
7928   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_Q_H), 0,
7929                 MVT::v8i16, 3, 0, 1, 2,
7930  17,
7931   OPC_CheckChild0Integer, 8|128,82,
7932   OPC_RecordChild1,
7933   OPC_RecordChild2,
7934   OPC_RecordChild3,
7935   OPC_CheckPatternPredicate, 26,
7936   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_Q_W), 0,
7937                 MVT::v4i32, 3, 0, 1, 2,
7938  17,
7939   OPC_CheckChild0Integer, 10|128,82,
7940   OPC_RecordChild1,
7941   OPC_RecordChild2,
7942   OPC_RecordChild3,
7943   OPC_CheckPatternPredicate, 26,
7944   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDR_Q_H), 0,
7945                 MVT::v8i16, 3, 0, 1, 2,
7946  17,
7947   OPC_CheckChild0Integer, 12|128,82,
7948   OPC_RecordChild1,
7949   OPC_RecordChild2,
7950   OPC_RecordChild3,
7951   OPC_CheckPatternPredicate, 26,
7952   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDR_Q_W), 0,
7953                 MVT::v4i32, 3, 0, 1, 2,
7954  15,
7955   OPC_CheckChild0Integer, 32|128,82,
7956   OPC_RecordChild1,
7957   OPC_RecordChild2,
7958   OPC_CheckPatternPredicate, 26,
7959   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_A_B), 0,
7960                 MVT::v16i8, 2, 0, 1,
7961  15,
7962   OPC_CheckChild0Integer, 36|128,82,
7963   OPC_RecordChild1,
7964   OPC_RecordChild2,
7965   OPC_CheckPatternPredicate, 26,
7966   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_A_H), 0,
7967                 MVT::v8i16, 2, 0, 1,
7968  15,
7969   OPC_CheckChild0Integer, 38|128,82,
7970   OPC_RecordChild1,
7971   OPC_RecordChild2,
7972   OPC_CheckPatternPredicate, 26,
7973   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_A_W), 0,
7974                 MVT::v4i32, 2, 0, 1,
7975  15,
7976   OPC_CheckChild0Integer, 34|128,82,
7977   OPC_RecordChild1,
7978   OPC_RecordChild2,
7979   OPC_CheckPatternPredicate, 26,
7980   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_A_D), 0,
7981                 MVT::v2i64, 2, 0, 1,
7982  15,
7983   OPC_CheckChild0Integer, 72|128,82,
7984   OPC_RecordChild1,
7985   OPC_RecordChild2,
7986   OPC_CheckPatternPredicate, 26,
7987   OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_A_B), 0,
7988                 MVT::v16i8, 2, 0, 1,
7989  15,
7990   OPC_CheckChild0Integer, 76|128,82,
7991   OPC_RecordChild1,
7992   OPC_RecordChild2,
7993   OPC_CheckPatternPredicate, 26,
7994   OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_A_H), 0,
7995                 MVT::v8i16, 2, 0, 1,
7996  15,
7997   OPC_CheckChild0Integer, 78|128,82,
7998   OPC_RecordChild1,
7999   OPC_RecordChild2,
8000   OPC_CheckPatternPredicate, 26,
8001   OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_A_W), 0,
8002                 MVT::v4i32, 2, 0, 1,
8003  15,
8004   OPC_CheckChild0Integer, 74|128,82,
8005   OPC_RecordChild1,
8006   OPC_RecordChild2,
8007   OPC_CheckPatternPredicate, 26,
8008   OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_A_D), 0,
8009                 MVT::v2i64, 2, 0, 1,
8010  17,
8011   OPC_CheckChild0Integer, 6|128,83,
8012   OPC_RecordChild1,
8013   OPC_RecordChild2,
8014   OPC_RecordChild3,
8015   OPC_CheckPatternPredicate, 26,
8016   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_Q_H), 0,
8017                 MVT::v8i16, 3, 0, 1, 2,
8018  17,
8019   OPC_CheckChild0Integer, 8|128,83,
8020   OPC_RecordChild1,
8021   OPC_RecordChild2,
8022   OPC_RecordChild3,
8023   OPC_CheckPatternPredicate, 26,
8024   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_Q_W), 0,
8025                 MVT::v4i32, 3, 0, 1, 2,
8026  17,
8027   OPC_CheckChild0Integer, 10|128,83,
8028   OPC_RecordChild1,
8029   OPC_RecordChild2,
8030   OPC_RecordChild3,
8031   OPC_CheckPatternPredicate, 26,
8032   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBR_Q_H), 0,
8033                 MVT::v8i16, 3, 0, 1, 2,
8034  17,
8035   OPC_CheckChild0Integer, 12|128,83,
8036   OPC_RecordChild1,
8037   OPC_RecordChild2,
8038   OPC_RecordChild3,
8039   OPC_CheckPatternPredicate, 26,
8040   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBR_Q_W), 0,
8041                 MVT::v4i32, 3, 0, 1, 2,
8042  15,
8043   OPC_CheckChild0Integer, 28|128,83,
8044   OPC_RecordChild1,
8045   OPC_RecordChild2,
8046   OPC_CheckPatternPredicate, 26,
8047   OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_Q_H), 0,
8048                 MVT::v8i16, 2, 0, 1,
8049  15,
8050   OPC_CheckChild0Integer, 30|128,83,
8051   OPC_RecordChild1,
8052   OPC_RecordChild2,
8053   OPC_CheckPatternPredicate, 26,
8054   OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_Q_W), 0,
8055                 MVT::v4i32, 2, 0, 1,
8056  15,
8057   OPC_CheckChild0Integer, 50|128,83,
8058   OPC_RecordChild1,
8059   OPC_RecordChild2,
8060   OPC_CheckPatternPredicate, 26,
8061   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULR_Q_H), 0,
8062                 MVT::v8i16, 2, 0, 1,
8063  15,
8064   OPC_CheckChild0Integer, 52|128,83,
8065   OPC_RecordChild1,
8066   OPC_RecordChild2,
8067   OPC_CheckPatternPredicate, 26,
8068   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULR_Q_W), 0,
8069                 MVT::v4i32, 2, 0, 1,
8070  13,
8071   OPC_CheckChild0Integer, 70|128,83,
8072   OPC_RecordChild1,
8073   OPC_CheckPatternPredicate, 26,
8074   OPC_MorphNodeTo1, TARGET_VAL(Mips::NLOC_B), 0,
8075                 MVT::v16i8, 1, 0,
8076  13,
8077   OPC_CheckChild0Integer, 74|128,83,
8078   OPC_RecordChild1,
8079   OPC_CheckPatternPredicate, 26,
8080   OPC_MorphNodeTo1, TARGET_VAL(Mips::NLOC_H), 0,
8081                 MVT::v8i16, 1, 0,
8082  13,
8083   OPC_CheckChild0Integer, 76|128,83,
8084   OPC_RecordChild1,
8085   OPC_CheckPatternPredicate, 26,
8086   OPC_MorphNodeTo1, TARGET_VAL(Mips::NLOC_W), 0,
8087                 MVT::v4i32, 1, 0,
8088  13,
8089   OPC_CheckChild0Integer, 72|128,83,
8090   OPC_RecordChild1,
8091   OPC_CheckPatternPredicate, 26,
8092   OPC_MorphNodeTo1, TARGET_VAL(Mips::NLOC_D), 0,
8093                 MVT::v2i64, 1, 0,
8094  17,
8095   OPC_CheckChild0Integer, 86|128,84,
8096   OPC_RecordChild1,
8097   OPC_RecordChild2,
8098   OPC_RecordChild3,
8099   OPC_CheckPatternPredicate, 26,
8100   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLD_B), 0,
8101                 MVT::v16i8, 3, 0, 1, 2,
8102  17,
8103   OPC_CheckChild0Integer, 90|128,84,
8104   OPC_RecordChild1,
8105   OPC_RecordChild2,
8106   OPC_RecordChild3,
8107   OPC_CheckPatternPredicate, 26,
8108   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLD_H), 0,
8109                 MVT::v8i16, 3, 0, 1, 2,
8110  17,
8111   OPC_CheckChild0Integer, 92|128,84,
8112   OPC_RecordChild1,
8113   OPC_RecordChild2,
8114   OPC_RecordChild3,
8115   OPC_CheckPatternPredicate, 26,
8116   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLD_W), 0,
8117                 MVT::v4i32, 3, 0, 1, 2,
8118  17,
8119   OPC_CheckChild0Integer, 88|128,84,
8120   OPC_RecordChild1,
8121   OPC_RecordChild2,
8122   OPC_RecordChild3,
8123   OPC_CheckPatternPredicate, 26,
8124   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLD_D), 0,
8125                 MVT::v2i64, 3, 0, 1, 2,
8126  15,
8127   OPC_CheckChild0Integer, 22|128,85,
8128   OPC_RecordChild1,
8129   OPC_RecordChild2,
8130   OPC_CheckPatternPredicate, 26,
8131   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAR_B), 0,
8132                 MVT::v16i8, 2, 0, 1,
8133  15,
8134   OPC_CheckChild0Integer, 26|128,85,
8135   OPC_RecordChild1,
8136   OPC_RecordChild2,
8137   OPC_CheckPatternPredicate, 26,
8138   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAR_H), 0,
8139                 MVT::v8i16, 2, 0, 1,
8140  15,
8141   OPC_CheckChild0Integer, 28|128,85,
8142   OPC_RecordChild1,
8143   OPC_RecordChild2,
8144   OPC_CheckPatternPredicate, 26,
8145   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAR_W), 0,
8146                 MVT::v4i32, 2, 0, 1,
8147  15,
8148   OPC_CheckChild0Integer, 24|128,85,
8149   OPC_RecordChild1,
8150   OPC_RecordChild2,
8151   OPC_CheckPatternPredicate, 26,
8152   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAR_D), 0,
8153                 MVT::v2i64, 2, 0, 1,
8154  15,
8155   OPC_CheckChild0Integer, 54|128,85,
8156   OPC_RecordChild1,
8157   OPC_RecordChild2,
8158   OPC_CheckPatternPredicate, 26,
8159   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLR_B), 0,
8160                 MVT::v16i8, 2, 0, 1,
8161  15,
8162   OPC_CheckChild0Integer, 58|128,85,
8163   OPC_RecordChild1,
8164   OPC_RecordChild2,
8165   OPC_CheckPatternPredicate, 26,
8166   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLR_H), 0,
8167                 MVT::v8i16, 2, 0, 1,
8168  15,
8169   OPC_CheckChild0Integer, 60|128,85,
8170   OPC_RecordChild1,
8171   OPC_RecordChild2,
8172   OPC_CheckPatternPredicate, 26,
8173   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLR_W), 0,
8174                 MVT::v4i32, 2, 0, 1,
8175  15,
8176   OPC_CheckChild0Integer, 56|128,85,
8177   OPC_RecordChild1,
8178   OPC_RecordChild2,
8179   OPC_CheckPatternPredicate, 26,
8180   OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLR_D), 0,
8181                 MVT::v2i64, 2, 0, 1,
8182  15,
8183   OPC_CheckChild0Integer, 96|128,85,
8184   OPC_RecordChild1,
8185   OPC_RecordChild2,
8186   OPC_CheckPatternPredicate, 26,
8187   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_S_B), 0,
8188                 MVT::v16i8, 2, 0, 1,
8189  15,
8190   OPC_CheckChild0Integer, 100|128,85,
8191   OPC_RecordChild1,
8192   OPC_RecordChild2,
8193   OPC_CheckPatternPredicate, 26,
8194   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_S_H), 0,
8195                 MVT::v8i16, 2, 0, 1,
8196  15,
8197   OPC_CheckChild0Integer, 102|128,85,
8198   OPC_RecordChild1,
8199   OPC_RecordChild2,
8200   OPC_CheckPatternPredicate, 26,
8201   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_S_W), 0,
8202                 MVT::v4i32, 2, 0, 1,
8203  15,
8204   OPC_CheckChild0Integer, 98|128,85,
8205   OPC_RecordChild1,
8206   OPC_RecordChild2,
8207   OPC_CheckPatternPredicate, 26,
8208   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_S_D), 0,
8209                 MVT::v2i64, 2, 0, 1,
8210  15,
8211   OPC_CheckChild0Integer, 104|128,85,
8212   OPC_RecordChild1,
8213   OPC_RecordChild2,
8214   OPC_CheckPatternPredicate, 26,
8215   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_U_B), 0,
8216                 MVT::v16i8, 2, 0, 1,
8217  15,
8218   OPC_CheckChild0Integer, 108|128,85,
8219   OPC_RecordChild1,
8220   OPC_RecordChild2,
8221   OPC_CheckPatternPredicate, 26,
8222   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_U_H), 0,
8223                 MVT::v8i16, 2, 0, 1,
8224  15,
8225   OPC_CheckChild0Integer, 110|128,85,
8226   OPC_RecordChild1,
8227   OPC_RecordChild2,
8228   OPC_CheckPatternPredicate, 26,
8229   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_U_W), 0,
8230                 MVT::v4i32, 2, 0, 1,
8231  15,
8232   OPC_CheckChild0Integer, 106|128,85,
8233   OPC_RecordChild1,
8234   OPC_RecordChild2,
8235   OPC_CheckPatternPredicate, 26,
8236   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBS_U_D), 0,
8237                 MVT::v2i64, 2, 0, 1,
8238  15,
8239   OPC_CheckChild0Integer, 112|128,85,
8240   OPC_RecordChild1,
8241   OPC_RecordChild2,
8242   OPC_CheckPatternPredicate, 26,
8243   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUS_U_B), 0,
8244                 MVT::v16i8, 2, 0, 1,
8245  15,
8246   OPC_CheckChild0Integer, 116|128,85,
8247   OPC_RecordChild1,
8248   OPC_RecordChild2,
8249   OPC_CheckPatternPredicate, 26,
8250   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUS_U_H), 0,
8251                 MVT::v8i16, 2, 0, 1,
8252  15,
8253   OPC_CheckChild0Integer, 118|128,85,
8254   OPC_RecordChild1,
8255   OPC_RecordChild2,
8256   OPC_CheckPatternPredicate, 26,
8257   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUS_U_W), 0,
8258                 MVT::v4i32, 2, 0, 1,
8259  15,
8260   OPC_CheckChild0Integer, 114|128,85,
8261   OPC_RecordChild1,
8262   OPC_RecordChild2,
8263   OPC_CheckPatternPredicate, 26,
8264   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUS_U_D), 0,
8265                 MVT::v2i64, 2, 0, 1,
8266  15,
8267   OPC_CheckChild0Integer, 120|128,85,
8268   OPC_RecordChild1,
8269   OPC_RecordChild2,
8270   OPC_CheckPatternPredicate, 26,
8271   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUU_S_B), 0,
8272                 MVT::v16i8, 2, 0, 1,
8273  15,
8274   OPC_CheckChild0Integer, 124|128,85,
8275   OPC_RecordChild1,
8276   OPC_RecordChild2,
8277   OPC_CheckPatternPredicate, 26,
8278   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUU_S_H), 0,
8279                 MVT::v8i16, 2, 0, 1,
8280  15,
8281   OPC_CheckChild0Integer, 126|128,85,
8282   OPC_RecordChild1,
8283   OPC_RecordChild2,
8284   OPC_CheckPatternPredicate, 26,
8285   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUU_S_W), 0,
8286                 MVT::v4i32, 2, 0, 1,
8287  15,
8288   OPC_CheckChild0Integer, 122|128,85,
8289   OPC_RecordChild1,
8290   OPC_RecordChild2,
8291   OPC_CheckPatternPredicate, 26,
8292   OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBSUU_S_D), 0,
8293                 MVT::v2i64, 2, 0, 1,
8294  15,
8295   OPC_CheckChild0Integer, 2|128,80,
8296   OPC_RecordChild1,
8297   OPC_RecordChild2,
8298   OPC_CheckPatternPredicate, 26,
8299   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXDO_H), 0,
8300                 MVT::v8f16, 2, 0, 1,
8301  15,
8302   OPC_CheckChild0Integer, 4|128,80,
8303   OPC_RecordChild1,
8304   OPC_RecordChild2,
8305   OPC_CheckPatternPredicate, 26,
8306   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXDO_W), 0,
8307                 MVT::v4f32, 2, 0, 1,
8308  13,
8309   OPC_CheckChild0Integer, 12|128,80,
8310   OPC_RecordChild1,
8311   OPC_CheckPatternPredicate, 26,
8312   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXUPL_W), 0,
8313                 MVT::v4f32, 1, 0,
8314  13,
8315   OPC_CheckChild0Integer, 10|128,80,
8316   OPC_RecordChild1,
8317   OPC_CheckPatternPredicate, 26,
8318   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXUPL_D), 0,
8319                 MVT::v2f64, 1, 0,
8320  13,
8321   OPC_CheckChild0Integer, 16|128,80,
8322   OPC_RecordChild1,
8323   OPC_CheckPatternPredicate, 26,
8324   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXUPR_W), 0,
8325                 MVT::v4f32, 1, 0,
8326  13,
8327   OPC_CheckChild0Integer, 14|128,80,
8328   OPC_RecordChild1,
8329   OPC_CheckPatternPredicate, 26,
8330   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXUPR_D), 0,
8331                 MVT::v2f64, 1, 0,
8332  13,
8333   OPC_CheckChild0Integer, 28|128,80,
8334   OPC_RecordChild1,
8335   OPC_CheckPatternPredicate, 26,
8336   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFQL_W), 0,
8337                 MVT::v4f32, 1, 0,
8338  13,
8339   OPC_CheckChild0Integer, 26|128,80,
8340   OPC_RecordChild1,
8341   OPC_CheckPatternPredicate, 26,
8342   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFQL_D), 0,
8343                 MVT::v2f64, 1, 0,
8344  13,
8345   OPC_CheckChild0Integer, 32|128,80,
8346   OPC_RecordChild1,
8347   OPC_CheckPatternPredicate, 26,
8348   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFQR_W), 0,
8349                 MVT::v4f32, 1, 0,
8350  13,
8351   OPC_CheckChild0Integer, 30|128,80,
8352   OPC_RecordChild1,
8353   OPC_CheckPatternPredicate, 26,
8354   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFQR_D), 0,
8355                 MVT::v2f64, 1, 0,
8356  15,
8357   OPC_CheckChild0Integer, 56|128,80,
8358   OPC_RecordChild1,
8359   OPC_RecordChild2,
8360   OPC_CheckPatternPredicate, 26,
8361   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMAX_W), 0,
8362                 MVT::v4f32, 2, 0, 1,
8363  15,
8364   OPC_CheckChild0Integer, 54|128,80,
8365   OPC_RecordChild1,
8366   OPC_RecordChild2,
8367   OPC_CheckPatternPredicate, 26,
8368   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMAX_D), 0,
8369                 MVT::v2f64, 2, 0, 1,
8370  15,
8371   OPC_CheckChild0Integer, 52|128,80,
8372   OPC_RecordChild1,
8373   OPC_RecordChild2,
8374   OPC_CheckPatternPredicate, 26,
8375   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMAX_A_W), 0,
8376                 MVT::v4f32, 2, 0, 1,
8377  15,
8378   OPC_CheckChild0Integer, 50|128,80,
8379   OPC_RecordChild1,
8380   OPC_RecordChild2,
8381   OPC_CheckPatternPredicate, 26,
8382   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMAX_A_D), 0,
8383                 MVT::v2f64, 2, 0, 1,
8384  15,
8385   OPC_CheckChild0Integer, 64|128,80,
8386   OPC_RecordChild1,
8387   OPC_RecordChild2,
8388   OPC_CheckPatternPredicate, 26,
8389   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMIN_W), 0,
8390                 MVT::v4f32, 2, 0, 1,
8391  15,
8392   OPC_CheckChild0Integer, 62|128,80,
8393   OPC_RecordChild1,
8394   OPC_RecordChild2,
8395   OPC_CheckPatternPredicate, 26,
8396   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMIN_D), 0,
8397                 MVT::v2f64, 2, 0, 1,
8398  15,
8399   OPC_CheckChild0Integer, 60|128,80,
8400   OPC_RecordChild1,
8401   OPC_RecordChild2,
8402   OPC_CheckPatternPredicate, 26,
8403   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMIN_A_W), 0,
8404                 MVT::v4f32, 2, 0, 1,
8405  15,
8406   OPC_CheckChild0Integer, 58|128,80,
8407   OPC_RecordChild1,
8408   OPC_RecordChild2,
8409   OPC_CheckPatternPredicate, 26,
8410   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMIN_A_D), 0,
8411                 MVT::v2f64, 2, 0, 1,
8412  13,
8413   OPC_CheckChild0Integer, 76|128,80,
8414   OPC_RecordChild1,
8415   OPC_CheckPatternPredicate, 26,
8416   OPC_MorphNodeTo1, TARGET_VAL(Mips::FRCP_W), 0,
8417                 MVT::v4f32, 1, 0,
8418  13,
8419   OPC_CheckChild0Integer, 74|128,80,
8420   OPC_RecordChild1,
8421   OPC_CheckPatternPredicate, 26,
8422   OPC_MorphNodeTo1, TARGET_VAL(Mips::FRCP_D), 0,
8423                 MVT::v2f64, 1, 0,
8424  13,
8425   OPC_CheckChild0Integer, 84|128,80,
8426   OPC_RecordChild1,
8427   OPC_CheckPatternPredicate, 26,
8428   OPC_MorphNodeTo1, TARGET_VAL(Mips::FRSQRT_W), 0,
8429                 MVT::v4f32, 1, 0,
8430  13,
8431   OPC_CheckChild0Integer, 82|128,80,
8432   OPC_RecordChild1,
8433   OPC_CheckPatternPredicate, 26,
8434   OPC_MorphNodeTo1, TARGET_VAL(Mips::FRSQRT_D), 0,
8435                 MVT::v2f64, 1, 0,
8436  0,
8437 3|128,2, TARGET_VAL(ISD::INTRINSIC_VOID),
8438  OPC_RecordNode,
8439  OPC_Scope, 39,
8440   OPC_CheckChild1Integer, 36|128,86,
8441   OPC_RecordChild2,
8442   OPC_RecordChild3,
8443   OPC_MoveChild3,
8444   OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
8445   OPC_Scope, 13,
8446    OPC_CheckPredicate, 26,
8447    OPC_MoveParent,
8448    OPC_CheckPatternPredicate, 51,
8449    OPC_EmitMergeInputChains1_0,
8450    OPC_MorphNodeTo0, TARGET_VAL(Mips::WRDSP), 0|OPFL_Chain,
8451                  2, 1, 2,
8452   13,
8453    OPC_CheckPredicate, 27,
8454    OPC_MoveParent,
8455    OPC_CheckPatternPredicate, 47,
8456    OPC_EmitMergeInputChains1_0,
8457    OPC_MorphNodeTo0, TARGET_VAL(Mips::WRDSP_MM), 0|OPFL_Chain,
8458                  2, 1, 2,
8459   0,
8460  29,
8461   OPC_CheckChild1Integer, 80|128,78,
8462   OPC_RecordChild2,
8463   OPC_RecordChild3,
8464   OPC_Scope, 10,
8465    OPC_CheckPatternPredicate, 28,
8466    OPC_EmitMergeInputChains1_0,
8467    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMPU_EQ_QB), 0|OPFL_Chain,
8468                  2, 1, 2,
8469   10,
8470    OPC_CheckPatternPredicate, 47,
8471    OPC_EmitMergeInputChains1_0,
8472    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMPU_EQ_QB_MM), 0|OPFL_Chain,
8473                  2, 1, 2,
8474   0,
8475  29,
8476   OPC_CheckChild1Integer, 84|128,78,
8477   OPC_RecordChild2,
8478   OPC_RecordChild3,
8479   OPC_Scope, 10,
8480    OPC_CheckPatternPredicate, 28,
8481    OPC_EmitMergeInputChains1_0,
8482    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMPU_LT_QB), 0|OPFL_Chain,
8483                  2, 1, 2,
8484   10,
8485    OPC_CheckPatternPredicate, 47,
8486    OPC_EmitMergeInputChains1_0,
8487    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMPU_LT_QB_MM), 0|OPFL_Chain,
8488                  2, 1, 2,
8489   0,
8490  29,
8491   OPC_CheckChild1Integer, 82|128,78,
8492   OPC_RecordChild2,
8493   OPC_RecordChild3,
8494   OPC_Scope, 10,
8495    OPC_CheckPatternPredicate, 28,
8496    OPC_EmitMergeInputChains1_0,
8497    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMPU_LE_QB), 0|OPFL_Chain,
8498                  2, 1, 2,
8499   10,
8500    OPC_CheckPatternPredicate, 47,
8501    OPC_EmitMergeInputChains1_0,
8502    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMPU_LE_QB_MM), 0|OPFL_Chain,
8503                  2, 1, 2,
8504   0,
8505  29,
8506   OPC_CheckChild1Integer, 62|128,78,
8507   OPC_RecordChild2,
8508   OPC_RecordChild3,
8509   OPC_Scope, 10,
8510    OPC_CheckPatternPredicate, 28,
8511    OPC_EmitMergeInputChains1_0,
8512    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMP_EQ_PH), 0|OPFL_Chain,
8513                  2, 1, 2,
8514   10,
8515    OPC_CheckPatternPredicate, 47,
8516    OPC_EmitMergeInputChains1_0,
8517    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMP_EQ_PH_MM), 0|OPFL_Chain,
8518                  2, 1, 2,
8519   0,
8520  29,
8521   OPC_CheckChild1Integer, 66|128,78,
8522   OPC_RecordChild2,
8523   OPC_RecordChild3,
8524   OPC_Scope, 10,
8525    OPC_CheckPatternPredicate, 28,
8526    OPC_EmitMergeInputChains1_0,
8527    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMP_LT_PH), 0|OPFL_Chain,
8528                  2, 1, 2,
8529   10,
8530    OPC_CheckPatternPredicate, 47,
8531    OPC_EmitMergeInputChains1_0,
8532    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMP_LT_PH_MM), 0|OPFL_Chain,
8533                  2, 1, 2,
8534   0,
8535  29,
8536   OPC_CheckChild1Integer, 64|128,78,
8537   OPC_RecordChild2,
8538   OPC_RecordChild3,
8539   OPC_Scope, 10,
8540    OPC_CheckPatternPredicate, 28,
8541    OPC_EmitMergeInputChains1_0,
8542    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMP_LE_PH), 0|OPFL_Chain,
8543                  2, 1, 2,
8544   10,
8545    OPC_CheckPatternPredicate, 47,
8546    OPC_EmitMergeInputChains1_0,
8547    OPC_MorphNodeTo0, TARGET_VAL(Mips::CMP_LE_PH_MM), 0|OPFL_Chain,
8548                  2, 1, 2,
8549   0,
8550  17,
8551   OPC_CheckChild1Integer, 78|128,85,
8552   OPC_RecordChild2,
8553   OPC_RecordChild3,
8554   OPC_RecordChild4,
8555   OPC_CheckPatternPredicate, 50,
8556   OPC_EmitMergeInputChains1_0,
8557   OPC_MorphNodeTo0, TARGET_VAL(Mips::STR_D), 0|OPFL_Chain,
8558                 3, 1, 2, 3,
8559  17,
8560   OPC_CheckChild1Integer, 80|128,85,
8561   OPC_RecordChild2,
8562   OPC_RecordChild3,
8563   OPC_RecordChild4,
8564   OPC_CheckPatternPredicate, 50,
8565   OPC_EmitMergeInputChains1_0,
8566   OPC_MorphNodeTo0, TARGET_VAL(Mips::STR_W), 0|OPFL_Chain,
8567                 3, 1, 2, 3,
8568  0,
8569 39|128,18, TARGET_VAL(ISD::XOR),
8570  OPC_Scope, 60,
8571   OPC_MoveChild0,
8572   OPC_CheckOpcode, TARGET_VAL(ISD::OR),
8573   OPC_RecordChild0,
8574   OPC_RecordChild1,
8575   OPC_MoveParent,
8576   OPC_CheckChild1Integer, 3,
8577   OPC_SwitchType , 35, MVT::i32,
8578    OPC_Scope, 10,
8579     OPC_CheckPatternPredicate, 7,
8580     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
8581                   MVT::i32, 2, 0, 1,
8582    10,
8583     OPC_CheckPatternPredicate, 30,
8584     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MM), 0,
8585                   MVT::i32, 2, 0, 1,
8586    10,
8587     OPC_CheckPatternPredicate, 16,
8588     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
8589                   MVT::i32, 2, 0, 1,
8590    0,
8591   10, MVT::i64,
8592    OPC_CheckPatternPredicate, 24,
8593    OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR64), 0,
8594                  MVT::i64, 2, 0, 1,
8595   0,
8596  126|128,4,
8597   OPC_RecordChild0,
8598   OPC_Scope, 100,
8599    OPC_CheckChild1Integer, 3,
8600    OPC_CheckType, MVT::i32,
8601    OPC_Scope, 9,
8602     OPC_CheckPatternPredicate, 16,
8603     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOT16_MMR6), 0,
8604                   MVT::i32, 1, 0,
8605    13,
8606     OPC_CheckPatternPredicate, 7,
8607     OPC_EmitRegister, MVT::i32, Mips::ZERO,
8608     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
8609                   MVT::i32, 2, 0, 1,
8610    9,
8611     OPC_CheckPatternPredicate, 15,
8612     OPC_MorphNodeTo1, TARGET_VAL(Mips::NotRxRy16), 0,
8613                   MVT::i32, 1, 0,
8614    9,
8615     OPC_CheckPatternPredicate, 30,
8616     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOT16_MM), 0,
8617                   MVT::i32, 1, 0,
8618    24,
8619     OPC_CheckPatternPredicate, 8,
8620     OPC_Scope, 7,
8621      OPC_MorphNodeTo1, TARGET_VAL(Mips::NOT16_MM), 0,
8622                    MVT::i32, 1, 0,
8623     11,
8624      OPC_EmitRegister, MVT::i32, Mips::ZERO,
8625      OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MM), 0,
8626                    MVT::i32, 2, 0, 1,
8627     0,
8628    24,
8629     OPC_CheckPatternPredicate, 16,
8630     OPC_Scope, 7,
8631      OPC_MorphNodeTo1, TARGET_VAL(Mips::NOT16_MMR6), 0,
8632                    MVT::i32, 1, 0,
8633     11,
8634      OPC_EmitRegister, MVT::i32, Mips::ZERO,
8635      OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
8636                    MVT::i32, 2, 0, 1,
8637     0,
8638    0,
8639   33|128,1,
8640    OPC_RecordChild1,
8641    OPC_Scope, 83,
8642     OPC_MoveChild1,
8643     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8644     OPC_Scope, 17,
8645      OPC_CheckPredicate, 35,
8646      OPC_MoveParent,
8647      OPC_CheckType, MVT::i32,
8648      OPC_CheckPatternPredicate, 7,
8649      OPC_EmitConvertToTarget, 1,
8650      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
8651                    MVT::i32, 2, 0, 2,
8652     58,
8653      OPC_CheckPredicate, 21,
8654      OPC_MoveParent,
8655      OPC_SwitchType , 15, MVT::i64,
8656       OPC_CheckPatternPredicate, 24,
8657       OPC_EmitConvertToTarget, 1,
8658       OPC_EmitNodeXForm, 3, 2,
8659       OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi64), 0,
8660                     MVT::i64, 2, 0, 3,
8661      34, MVT::i32,
8662       OPC_Scope, 15,
8663        OPC_CheckPatternPredicate, 30,
8664        OPC_EmitConvertToTarget, 1,
8665        OPC_EmitNodeXForm, 3, 2,
8666        OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
8667                      MVT::i32, 2, 0, 3,
8668       15,
8669        OPC_CheckPatternPredicate, 16,
8670        OPC_EmitConvertToTarget, 1,
8671        OPC_EmitNodeXForm, 3, 2,
8672        OPC_MorphNodeTo1, TARGET_VAL(Mips::XORI_MMR6), 0,
8673                      MVT::i32, 2, 0, 3,
8674       0,
8675      0,
8676     0,
8677    60,
8678     OPC_CheckType, MVT::i32,
8679     OPC_Scope, 10,
8680      OPC_CheckPatternPredicate, 7,
8681      OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR), 0,
8682                    MVT::i32, 2, 0, 1,
8683     10,
8684      OPC_CheckPatternPredicate, 15,
8685      OPC_MorphNodeTo1, TARGET_VAL(Mips::XorRxRxRy16), 0,
8686                    MVT::i32, 2, 0, 1,
8687     22,
8688      OPC_CheckPatternPredicate, 30,
8689      OPC_Scope, 8,
8690       OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR16_MM), 0,
8691                     MVT::i32, 2, 0, 1,
8692      8,
8693       OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR_MM), 0,
8694                     MVT::i32, 2, 0, 1,
8695      0,
8696     10,
8697      OPC_CheckPatternPredicate, 16,
8698      OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR_MMR6), 0,
8699                    MVT::i32, 2, 0, 1,
8700     0,
8701    12,
8702     OPC_CheckType, MVT::i64,
8703     OPC_CheckPatternPredicate, 24,
8704     OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR64), 0,
8705                   MVT::i64, 2, 0, 1,
8706    0,
8707   113|128,2,
8708    OPC_MoveChild1,
8709    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
8710    OPC_MoveChild0,
8711    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
8712    OPC_CheckPredicate, 36,
8713    OPC_MoveParent,
8714    OPC_MoveChild1,
8715    OPC_CheckOpcode, TARGET_VAL(ISD::AND),
8716    OPC_Scope, 46|128,1,
8717     OPC_RecordChild0,
8718     OPC_MoveChild1,
8719     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
8720     OPC_MoveChild0,
8721     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8722     OPC_CheckPredicate, 37,
8723     OPC_CheckType, MVT::i32,
8724     OPC_MoveParent,
8725     OPC_MoveChild1,
8726     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8727     OPC_CheckPredicate, 37,
8728     OPC_CheckType, MVT::i32,
8729     OPC_MoveParent,
8730     OPC_MoveChild2,
8731     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8732     OPC_CheckPredicate, 37,
8733     OPC_CheckType, MVT::i32,
8734     OPC_MoveParent,
8735     OPC_MoveChild3,
8736     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8737     OPC_CheckPredicate, 37,
8738     OPC_CheckType, MVT::i32,
8739     OPC_MoveParent,
8740     OPC_MoveChild4,
8741     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8742     OPC_CheckPredicate, 37,
8743     OPC_CheckType, MVT::i32,
8744     OPC_MoveParent,
8745     OPC_MoveChild5,
8746     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8747     OPC_CheckPredicate, 37,
8748     OPC_CheckType, MVT::i32,
8749     OPC_MoveParent,
8750     OPC_MoveChild6,
8751     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8752     OPC_CheckPredicate, 37,
8753     OPC_CheckType, MVT::i32,
8754     OPC_MoveParent,
8755     OPC_MoveChild7,
8756     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8757     OPC_CheckPredicate, 37,
8758     OPC_CheckType, MVT::i32,
8759     OPC_MoveParent,
8760     OPC_MoveChild, 8,
8761     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8762     OPC_CheckPredicate, 37,
8763     OPC_CheckType, MVT::i32,
8764     OPC_MoveParent,
8765     OPC_MoveChild, 9,
8766     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8767     OPC_CheckPredicate, 37,
8768     OPC_CheckType, MVT::i32,
8769     OPC_MoveParent,
8770     OPC_MoveChild, 10,
8771     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8772     OPC_CheckPredicate, 37,
8773     OPC_CheckType, MVT::i32,
8774     OPC_MoveParent,
8775     OPC_MoveChild, 11,
8776     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8777     OPC_CheckPredicate, 37,
8778     OPC_CheckType, MVT::i32,
8779     OPC_MoveParent,
8780     OPC_MoveChild, 12,
8781     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8782     OPC_CheckPredicate, 37,
8783     OPC_CheckType, MVT::i32,
8784     OPC_MoveParent,
8785     OPC_MoveChild, 13,
8786     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8787     OPC_CheckPredicate, 37,
8788     OPC_CheckType, MVT::i32,
8789     OPC_MoveParent,
8790     OPC_MoveChild, 14,
8791     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8792     OPC_CheckPredicate, 37,
8793     OPC_CheckType, MVT::i32,
8794     OPC_MoveParent,
8795     OPC_MoveChild, 15,
8796     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8797     OPC_CheckPredicate, 37,
8798     OPC_CheckType, MVT::i32,
8799     OPC_MoveParent,
8800     OPC_MoveParent,
8801     OPC_CheckType, MVT::v16i8,
8802     OPC_MoveParent,
8803     OPC_MoveParent,
8804     OPC_CheckType, MVT::v16i8,
8805     OPC_CheckPatternPredicate, 27,
8806     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_B), 0,
8807                   MVT::v16i8, 2, 0, 1,
8808    46|128,1,
8809     OPC_MoveChild0,
8810     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
8811     OPC_MoveChild0,
8812     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8813     OPC_CheckPredicate, 37,
8814     OPC_CheckType, MVT::i32,
8815     OPC_MoveParent,
8816     OPC_MoveChild1,
8817     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8818     OPC_CheckPredicate, 37,
8819     OPC_CheckType, MVT::i32,
8820     OPC_MoveParent,
8821     OPC_MoveChild2,
8822     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8823     OPC_CheckPredicate, 37,
8824     OPC_CheckType, MVT::i32,
8825     OPC_MoveParent,
8826     OPC_MoveChild3,
8827     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8828     OPC_CheckPredicate, 37,
8829     OPC_CheckType, MVT::i32,
8830     OPC_MoveParent,
8831     OPC_MoveChild4,
8832     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8833     OPC_CheckPredicate, 37,
8834     OPC_CheckType, MVT::i32,
8835     OPC_MoveParent,
8836     OPC_MoveChild5,
8837     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8838     OPC_CheckPredicate, 37,
8839     OPC_CheckType, MVT::i32,
8840     OPC_MoveParent,
8841     OPC_MoveChild6,
8842     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8843     OPC_CheckPredicate, 37,
8844     OPC_CheckType, MVT::i32,
8845     OPC_MoveParent,
8846     OPC_MoveChild7,
8847     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8848     OPC_CheckPredicate, 37,
8849     OPC_CheckType, MVT::i32,
8850     OPC_MoveParent,
8851     OPC_MoveChild, 8,
8852     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8853     OPC_CheckPredicate, 37,
8854     OPC_CheckType, MVT::i32,
8855     OPC_MoveParent,
8856     OPC_MoveChild, 9,
8857     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8858     OPC_CheckPredicate, 37,
8859     OPC_CheckType, MVT::i32,
8860     OPC_MoveParent,
8861     OPC_MoveChild, 10,
8862     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8863     OPC_CheckPredicate, 37,
8864     OPC_CheckType, MVT::i32,
8865     OPC_MoveParent,
8866     OPC_MoveChild, 11,
8867     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8868     OPC_CheckPredicate, 37,
8869     OPC_CheckType, MVT::i32,
8870     OPC_MoveParent,
8871     OPC_MoveChild, 12,
8872     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8873     OPC_CheckPredicate, 37,
8874     OPC_CheckType, MVT::i32,
8875     OPC_MoveParent,
8876     OPC_MoveChild, 13,
8877     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8878     OPC_CheckPredicate, 37,
8879     OPC_CheckType, MVT::i32,
8880     OPC_MoveParent,
8881     OPC_MoveChild, 14,
8882     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8883     OPC_CheckPredicate, 37,
8884     OPC_CheckType, MVT::i32,
8885     OPC_MoveParent,
8886     OPC_MoveChild, 15,
8887     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8888     OPC_CheckPredicate, 37,
8889     OPC_CheckType, MVT::i32,
8890     OPC_MoveParent,
8891     OPC_MoveParent,
8892     OPC_RecordChild1,
8893     OPC_CheckType, MVT::v16i8,
8894     OPC_MoveParent,
8895     OPC_MoveParent,
8896     OPC_CheckType, MVT::v16i8,
8897     OPC_CheckPatternPredicate, 27,
8898     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_B), 0,
8899                   MVT::v16i8, 2, 0, 1,
8900    0,
8901   0,
8902  115|128,2,
8903   OPC_MoveChild0,
8904   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
8905   OPC_MoveChild0,
8906   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
8907   OPC_CheckPredicate, 36,
8908   OPC_MoveParent,
8909   OPC_MoveChild1,
8910   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
8911   OPC_Scope, 47|128,1,
8912    OPC_RecordChild0,
8913    OPC_MoveChild1,
8914    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
8915    OPC_MoveChild0,
8916    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8917    OPC_CheckPredicate, 37,
8918    OPC_CheckType, MVT::i32,
8919    OPC_MoveParent,
8920    OPC_MoveChild1,
8921    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8922    OPC_CheckPredicate, 37,
8923    OPC_CheckType, MVT::i32,
8924    OPC_MoveParent,
8925    OPC_MoveChild2,
8926    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8927    OPC_CheckPredicate, 37,
8928    OPC_CheckType, MVT::i32,
8929    OPC_MoveParent,
8930    OPC_MoveChild3,
8931    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8932    OPC_CheckPredicate, 37,
8933    OPC_CheckType, MVT::i32,
8934    OPC_MoveParent,
8935    OPC_MoveChild4,
8936    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8937    OPC_CheckPredicate, 37,
8938    OPC_CheckType, MVT::i32,
8939    OPC_MoveParent,
8940    OPC_MoveChild5,
8941    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8942    OPC_CheckPredicate, 37,
8943    OPC_CheckType, MVT::i32,
8944    OPC_MoveParent,
8945    OPC_MoveChild6,
8946    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8947    OPC_CheckPredicate, 37,
8948    OPC_CheckType, MVT::i32,
8949    OPC_MoveParent,
8950    OPC_MoveChild7,
8951    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8952    OPC_CheckPredicate, 37,
8953    OPC_CheckType, MVT::i32,
8954    OPC_MoveParent,
8955    OPC_MoveChild, 8,
8956    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8957    OPC_CheckPredicate, 37,
8958    OPC_CheckType, MVT::i32,
8959    OPC_MoveParent,
8960    OPC_MoveChild, 9,
8961    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8962    OPC_CheckPredicate, 37,
8963    OPC_CheckType, MVT::i32,
8964    OPC_MoveParent,
8965    OPC_MoveChild, 10,
8966    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8967    OPC_CheckPredicate, 37,
8968    OPC_CheckType, MVT::i32,
8969    OPC_MoveParent,
8970    OPC_MoveChild, 11,
8971    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8972    OPC_CheckPredicate, 37,
8973    OPC_CheckType, MVT::i32,
8974    OPC_MoveParent,
8975    OPC_MoveChild, 12,
8976    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8977    OPC_CheckPredicate, 37,
8978    OPC_CheckType, MVT::i32,
8979    OPC_MoveParent,
8980    OPC_MoveChild, 13,
8981    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8982    OPC_CheckPredicate, 37,
8983    OPC_CheckType, MVT::i32,
8984    OPC_MoveParent,
8985    OPC_MoveChild, 14,
8986    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8987    OPC_CheckPredicate, 37,
8988    OPC_CheckType, MVT::i32,
8989    OPC_MoveParent,
8990    OPC_MoveChild, 15,
8991    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
8992    OPC_CheckPredicate, 37,
8993    OPC_CheckType, MVT::i32,
8994    OPC_MoveParent,
8995    OPC_MoveParent,
8996    OPC_CheckType, MVT::v16i8,
8997    OPC_MoveParent,
8998    OPC_MoveParent,
8999    OPC_RecordChild1,
9000    OPC_CheckType, MVT::v16i8,
9001    OPC_CheckPatternPredicate, 27,
9002    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_B), 0,
9003                  MVT::v16i8, 2, 1, 0,
9004   47|128,1,
9005    OPC_MoveChild0,
9006    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9007    OPC_MoveChild0,
9008    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9009    OPC_CheckPredicate, 37,
9010    OPC_CheckType, MVT::i32,
9011    OPC_MoveParent,
9012    OPC_MoveChild1,
9013    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9014    OPC_CheckPredicate, 37,
9015    OPC_CheckType, MVT::i32,
9016    OPC_MoveParent,
9017    OPC_MoveChild2,
9018    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9019    OPC_CheckPredicate, 37,
9020    OPC_CheckType, MVT::i32,
9021    OPC_MoveParent,
9022    OPC_MoveChild3,
9023    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9024    OPC_CheckPredicate, 37,
9025    OPC_CheckType, MVT::i32,
9026    OPC_MoveParent,
9027    OPC_MoveChild4,
9028    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9029    OPC_CheckPredicate, 37,
9030    OPC_CheckType, MVT::i32,
9031    OPC_MoveParent,
9032    OPC_MoveChild5,
9033    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9034    OPC_CheckPredicate, 37,
9035    OPC_CheckType, MVT::i32,
9036    OPC_MoveParent,
9037    OPC_MoveChild6,
9038    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9039    OPC_CheckPredicate, 37,
9040    OPC_CheckType, MVT::i32,
9041    OPC_MoveParent,
9042    OPC_MoveChild7,
9043    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9044    OPC_CheckPredicate, 37,
9045    OPC_CheckType, MVT::i32,
9046    OPC_MoveParent,
9047    OPC_MoveChild, 8,
9048    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9049    OPC_CheckPredicate, 37,
9050    OPC_CheckType, MVT::i32,
9051    OPC_MoveParent,
9052    OPC_MoveChild, 9,
9053    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9054    OPC_CheckPredicate, 37,
9055    OPC_CheckType, MVT::i32,
9056    OPC_MoveParent,
9057    OPC_MoveChild, 10,
9058    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9059    OPC_CheckPredicate, 37,
9060    OPC_CheckType, MVT::i32,
9061    OPC_MoveParent,
9062    OPC_MoveChild, 11,
9063    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9064    OPC_CheckPredicate, 37,
9065    OPC_CheckType, MVT::i32,
9066    OPC_MoveParent,
9067    OPC_MoveChild, 12,
9068    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9069    OPC_CheckPredicate, 37,
9070    OPC_CheckType, MVT::i32,
9071    OPC_MoveParent,
9072    OPC_MoveChild, 13,
9073    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9074    OPC_CheckPredicate, 37,
9075    OPC_CheckType, MVT::i32,
9076    OPC_MoveParent,
9077    OPC_MoveChild, 14,
9078    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9079    OPC_CheckPredicate, 37,
9080    OPC_CheckType, MVT::i32,
9081    OPC_MoveParent,
9082    OPC_MoveChild, 15,
9083    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9084    OPC_CheckPredicate, 37,
9085    OPC_CheckType, MVT::i32,
9086    OPC_MoveParent,
9087    OPC_MoveParent,
9088    OPC_RecordChild1,
9089    OPC_CheckType, MVT::v16i8,
9090    OPC_MoveParent,
9091    OPC_MoveParent,
9092    OPC_RecordChild1,
9093    OPC_CheckType, MVT::v16i8,
9094    OPC_CheckPatternPredicate, 27,
9095    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_B), 0,
9096                  MVT::v16i8, 2, 1, 0,
9097   0,
9098  80|128,1,
9099   OPC_RecordChild0,
9100   OPC_MoveChild1,
9101   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9102   OPC_MoveChild0,
9103   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9104   OPC_CheckPredicate, 36,
9105   OPC_MoveParent,
9106   OPC_MoveChild1,
9107   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
9108   OPC_Scope, 94,
9109    OPC_RecordChild0,
9110    OPC_MoveChild1,
9111    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9112    OPC_MoveChild0,
9113    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9114    OPC_CheckPredicate, 38,
9115    OPC_CheckType, MVT::i32,
9116    OPC_MoveParent,
9117    OPC_MoveChild1,
9118    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9119    OPC_CheckPredicate, 38,
9120    OPC_CheckType, MVT::i32,
9121    OPC_MoveParent,
9122    OPC_MoveChild2,
9123    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9124    OPC_CheckPredicate, 38,
9125    OPC_CheckType, MVT::i32,
9126    OPC_MoveParent,
9127    OPC_MoveChild3,
9128    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9129    OPC_CheckPredicate, 38,
9130    OPC_CheckType, MVT::i32,
9131    OPC_MoveParent,
9132    OPC_MoveChild4,
9133    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9134    OPC_CheckPredicate, 38,
9135    OPC_CheckType, MVT::i32,
9136    OPC_MoveParent,
9137    OPC_MoveChild5,
9138    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9139    OPC_CheckPredicate, 38,
9140    OPC_CheckType, MVT::i32,
9141    OPC_MoveParent,
9142    OPC_MoveChild6,
9143    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9144    OPC_CheckPredicate, 38,
9145    OPC_CheckType, MVT::i32,
9146    OPC_MoveParent,
9147    OPC_MoveChild7,
9148    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9149    OPC_CheckPredicate, 38,
9150    OPC_CheckType, MVT::i32,
9151    OPC_MoveParent,
9152    OPC_MoveParent,
9153    OPC_CheckType, MVT::v8i16,
9154    OPC_MoveParent,
9155    OPC_MoveParent,
9156    OPC_CheckType, MVT::v8i16,
9157    OPC_CheckPatternPredicate, 27,
9158    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_H), 0,
9159                  MVT::v8i16, 2, 0, 1,
9160   94,
9161    OPC_MoveChild0,
9162    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9163    OPC_MoveChild0,
9164    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9165    OPC_CheckPredicate, 38,
9166    OPC_CheckType, MVT::i32,
9167    OPC_MoveParent,
9168    OPC_MoveChild1,
9169    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9170    OPC_CheckPredicate, 38,
9171    OPC_CheckType, MVT::i32,
9172    OPC_MoveParent,
9173    OPC_MoveChild2,
9174    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9175    OPC_CheckPredicate, 38,
9176    OPC_CheckType, MVT::i32,
9177    OPC_MoveParent,
9178    OPC_MoveChild3,
9179    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9180    OPC_CheckPredicate, 38,
9181    OPC_CheckType, MVT::i32,
9182    OPC_MoveParent,
9183    OPC_MoveChild4,
9184    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9185    OPC_CheckPredicate, 38,
9186    OPC_CheckType, MVT::i32,
9187    OPC_MoveParent,
9188    OPC_MoveChild5,
9189    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9190    OPC_CheckPredicate, 38,
9191    OPC_CheckType, MVT::i32,
9192    OPC_MoveParent,
9193    OPC_MoveChild6,
9194    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9195    OPC_CheckPredicate, 38,
9196    OPC_CheckType, MVT::i32,
9197    OPC_MoveParent,
9198    OPC_MoveChild7,
9199    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9200    OPC_CheckPredicate, 38,
9201    OPC_CheckType, MVT::i32,
9202    OPC_MoveParent,
9203    OPC_MoveParent,
9204    OPC_RecordChild1,
9205    OPC_CheckType, MVT::v8i16,
9206    OPC_MoveParent,
9207    OPC_MoveParent,
9208    OPC_CheckType, MVT::v8i16,
9209    OPC_CheckPatternPredicate, 27,
9210    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_H), 0,
9211                  MVT::v8i16, 2, 0, 1,
9212   0,
9213  81|128,1,
9214   OPC_MoveChild0,
9215   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9216   OPC_MoveChild0,
9217   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9218   OPC_CheckPredicate, 36,
9219   OPC_MoveParent,
9220   OPC_MoveChild1,
9221   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
9222   OPC_Scope, 95,
9223    OPC_RecordChild0,
9224    OPC_MoveChild1,
9225    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9226    OPC_MoveChild0,
9227    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9228    OPC_CheckPredicate, 38,
9229    OPC_CheckType, MVT::i32,
9230    OPC_MoveParent,
9231    OPC_MoveChild1,
9232    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9233    OPC_CheckPredicate, 38,
9234    OPC_CheckType, MVT::i32,
9235    OPC_MoveParent,
9236    OPC_MoveChild2,
9237    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9238    OPC_CheckPredicate, 38,
9239    OPC_CheckType, MVT::i32,
9240    OPC_MoveParent,
9241    OPC_MoveChild3,
9242    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9243    OPC_CheckPredicate, 38,
9244    OPC_CheckType, MVT::i32,
9245    OPC_MoveParent,
9246    OPC_MoveChild4,
9247    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9248    OPC_CheckPredicate, 38,
9249    OPC_CheckType, MVT::i32,
9250    OPC_MoveParent,
9251    OPC_MoveChild5,
9252    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9253    OPC_CheckPredicate, 38,
9254    OPC_CheckType, MVT::i32,
9255    OPC_MoveParent,
9256    OPC_MoveChild6,
9257    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9258    OPC_CheckPredicate, 38,
9259    OPC_CheckType, MVT::i32,
9260    OPC_MoveParent,
9261    OPC_MoveChild7,
9262    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9263    OPC_CheckPredicate, 38,
9264    OPC_CheckType, MVT::i32,
9265    OPC_MoveParent,
9266    OPC_MoveParent,
9267    OPC_CheckType, MVT::v8i16,
9268    OPC_MoveParent,
9269    OPC_MoveParent,
9270    OPC_RecordChild1,
9271    OPC_CheckType, MVT::v8i16,
9272    OPC_CheckPatternPredicate, 27,
9273    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_H), 0,
9274                  MVT::v8i16, 2, 1, 0,
9275   95,
9276    OPC_MoveChild0,
9277    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9278    OPC_MoveChild0,
9279    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9280    OPC_CheckPredicate, 38,
9281    OPC_CheckType, MVT::i32,
9282    OPC_MoveParent,
9283    OPC_MoveChild1,
9284    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9285    OPC_CheckPredicate, 38,
9286    OPC_CheckType, MVT::i32,
9287    OPC_MoveParent,
9288    OPC_MoveChild2,
9289    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9290    OPC_CheckPredicate, 38,
9291    OPC_CheckType, MVT::i32,
9292    OPC_MoveParent,
9293    OPC_MoveChild3,
9294    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9295    OPC_CheckPredicate, 38,
9296    OPC_CheckType, MVT::i32,
9297    OPC_MoveParent,
9298    OPC_MoveChild4,
9299    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9300    OPC_CheckPredicate, 38,
9301    OPC_CheckType, MVT::i32,
9302    OPC_MoveParent,
9303    OPC_MoveChild5,
9304    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9305    OPC_CheckPredicate, 38,
9306    OPC_CheckType, MVT::i32,
9307    OPC_MoveParent,
9308    OPC_MoveChild6,
9309    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9310    OPC_CheckPredicate, 38,
9311    OPC_CheckType, MVT::i32,
9312    OPC_MoveParent,
9313    OPC_MoveChild7,
9314    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9315    OPC_CheckPredicate, 38,
9316    OPC_CheckType, MVT::i32,
9317    OPC_MoveParent,
9318    OPC_MoveParent,
9319    OPC_RecordChild1,
9320    OPC_CheckType, MVT::v8i16,
9321    OPC_MoveParent,
9322    OPC_MoveParent,
9323    OPC_RecordChild1,
9324    OPC_CheckType, MVT::v8i16,
9325    OPC_CheckPatternPredicate, 27,
9326    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_H), 0,
9327                  MVT::v8i16, 2, 1, 0,
9328   0,
9329  8|128,1,
9330   OPC_RecordChild0,
9331   OPC_MoveChild1,
9332   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9333   OPC_MoveChild0,
9334   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9335   OPC_CheckPredicate, 36,
9336   OPC_MoveParent,
9337   OPC_MoveChild1,
9338   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
9339   OPC_Scope, 58,
9340    OPC_RecordChild0,
9341    OPC_MoveChild1,
9342    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9343    OPC_MoveChild0,
9344    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9345    OPC_CheckPredicate, 39,
9346    OPC_CheckType, MVT::i32,
9347    OPC_MoveParent,
9348    OPC_MoveChild1,
9349    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9350    OPC_CheckPredicate, 39,
9351    OPC_CheckType, MVT::i32,
9352    OPC_MoveParent,
9353    OPC_MoveChild2,
9354    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9355    OPC_CheckPredicate, 39,
9356    OPC_CheckType, MVT::i32,
9357    OPC_MoveParent,
9358    OPC_MoveChild3,
9359    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9360    OPC_CheckPredicate, 39,
9361    OPC_CheckType, MVT::i32,
9362    OPC_MoveParent,
9363    OPC_MoveParent,
9364    OPC_CheckType, MVT::v4i32,
9365    OPC_MoveParent,
9366    OPC_MoveParent,
9367    OPC_CheckType, MVT::v4i32,
9368    OPC_CheckPatternPredicate, 27,
9369    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_W), 0,
9370                  MVT::v4i32, 2, 0, 1,
9371   58,
9372    OPC_MoveChild0,
9373    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9374    OPC_MoveChild0,
9375    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9376    OPC_CheckPredicate, 39,
9377    OPC_CheckType, MVT::i32,
9378    OPC_MoveParent,
9379    OPC_MoveChild1,
9380    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9381    OPC_CheckPredicate, 39,
9382    OPC_CheckType, MVT::i32,
9383    OPC_MoveParent,
9384    OPC_MoveChild2,
9385    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9386    OPC_CheckPredicate, 39,
9387    OPC_CheckType, MVT::i32,
9388    OPC_MoveParent,
9389    OPC_MoveChild3,
9390    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9391    OPC_CheckPredicate, 39,
9392    OPC_CheckType, MVT::i32,
9393    OPC_MoveParent,
9394    OPC_MoveParent,
9395    OPC_RecordChild1,
9396    OPC_CheckType, MVT::v4i32,
9397    OPC_MoveParent,
9398    OPC_MoveParent,
9399    OPC_CheckType, MVT::v4i32,
9400    OPC_CheckPatternPredicate, 27,
9401    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_W), 0,
9402                  MVT::v4i32, 2, 0, 1,
9403   0,
9404  9|128,1,
9405   OPC_MoveChild0,
9406   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9407   OPC_MoveChild0,
9408   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9409   OPC_CheckPredicate, 36,
9410   OPC_MoveParent,
9411   OPC_MoveChild1,
9412   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
9413   OPC_Scope, 59,
9414    OPC_RecordChild0,
9415    OPC_MoveChild1,
9416    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9417    OPC_MoveChild0,
9418    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9419    OPC_CheckPredicate, 39,
9420    OPC_CheckType, MVT::i32,
9421    OPC_MoveParent,
9422    OPC_MoveChild1,
9423    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9424    OPC_CheckPredicate, 39,
9425    OPC_CheckType, MVT::i32,
9426    OPC_MoveParent,
9427    OPC_MoveChild2,
9428    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9429    OPC_CheckPredicate, 39,
9430    OPC_CheckType, MVT::i32,
9431    OPC_MoveParent,
9432    OPC_MoveChild3,
9433    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9434    OPC_CheckPredicate, 39,
9435    OPC_CheckType, MVT::i32,
9436    OPC_MoveParent,
9437    OPC_MoveParent,
9438    OPC_CheckType, MVT::v4i32,
9439    OPC_MoveParent,
9440    OPC_MoveParent,
9441    OPC_RecordChild1,
9442    OPC_CheckType, MVT::v4i32,
9443    OPC_CheckPatternPredicate, 27,
9444    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_W), 0,
9445                  MVT::v4i32, 2, 1, 0,
9446   59,
9447    OPC_MoveChild0,
9448    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9449    OPC_MoveChild0,
9450    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9451    OPC_CheckPredicate, 39,
9452    OPC_CheckType, MVT::i32,
9453    OPC_MoveParent,
9454    OPC_MoveChild1,
9455    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9456    OPC_CheckPredicate, 39,
9457    OPC_CheckType, MVT::i32,
9458    OPC_MoveParent,
9459    OPC_MoveChild2,
9460    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9461    OPC_CheckPredicate, 39,
9462    OPC_CheckType, MVT::i32,
9463    OPC_MoveParent,
9464    OPC_MoveChild3,
9465    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9466    OPC_CheckPredicate, 39,
9467    OPC_CheckType, MVT::i32,
9468    OPC_MoveParent,
9469    OPC_MoveParent,
9470    OPC_RecordChild1,
9471    OPC_CheckType, MVT::v4i32,
9472    OPC_MoveParent,
9473    OPC_MoveParent,
9474    OPC_RecordChild1,
9475    OPC_CheckType, MVT::v4i32,
9476    OPC_CheckPatternPredicate, 27,
9477    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_W), 0,
9478                  MVT::v4i32, 2, 1, 0,
9479   0,
9480  89,
9481   OPC_RecordChild0,
9482   OPC_MoveChild1,
9483   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9484   OPC_MoveChild0,
9485   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9486   OPC_MoveChild0,
9487   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9488   OPC_CheckType, MVT::v4i32,
9489   OPC_MoveParent,
9490   OPC_CheckPredicate, 40,
9491   OPC_MoveParent,
9492   OPC_MoveChild1,
9493   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
9494   OPC_Scope, 31,
9495    OPC_RecordChild0,
9496    OPC_MoveChild1,
9497    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9498    OPC_MoveChild0,
9499    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9500    OPC_CheckType, MVT::v4i32,
9501    OPC_MoveParent,
9502    OPC_CheckPredicate, 41,
9503    OPC_MoveParent,
9504    OPC_CheckType, MVT::v2i64,
9505    OPC_MoveParent,
9506    OPC_MoveParent,
9507    OPC_CheckType, MVT::v2i64,
9508    OPC_CheckPatternPredicate, 27,
9509    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_D), 0,
9510                  MVT::v2i64, 2, 0, 1,
9511   31,
9512    OPC_MoveChild0,
9513    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9514    OPC_MoveChild0,
9515    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9516    OPC_CheckType, MVT::v4i32,
9517    OPC_MoveParent,
9518    OPC_CheckPredicate, 41,
9519    OPC_MoveParent,
9520    OPC_RecordChild1,
9521    OPC_CheckType, MVT::v2i64,
9522    OPC_MoveParent,
9523    OPC_MoveParent,
9524    OPC_CheckType, MVT::v2i64,
9525    OPC_CheckPatternPredicate, 27,
9526    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_D), 0,
9527                  MVT::v2i64, 2, 0, 1,
9528   0,
9529  90,
9530   OPC_MoveChild0,
9531   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9532   OPC_MoveChild0,
9533   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9534   OPC_MoveChild0,
9535   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9536   OPC_CheckType, MVT::v4i32,
9537   OPC_MoveParent,
9538   OPC_CheckPredicate, 40,
9539   OPC_MoveParent,
9540   OPC_MoveChild1,
9541   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
9542   OPC_Scope, 32,
9543    OPC_RecordChild0,
9544    OPC_MoveChild1,
9545    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9546    OPC_MoveChild0,
9547    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9548    OPC_CheckType, MVT::v4i32,
9549    OPC_MoveParent,
9550    OPC_CheckPredicate, 41,
9551    OPC_MoveParent,
9552    OPC_CheckType, MVT::v2i64,
9553    OPC_MoveParent,
9554    OPC_MoveParent,
9555    OPC_RecordChild1,
9556    OPC_CheckType, MVT::v2i64,
9557    OPC_CheckPatternPredicate, 27,
9558    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_D), 0,
9559                  MVT::v2i64, 2, 1, 0,
9560   32,
9561    OPC_MoveChild0,
9562    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9563    OPC_MoveChild0,
9564    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9565    OPC_CheckType, MVT::v4i32,
9566    OPC_MoveParent,
9567    OPC_CheckPredicate, 41,
9568    OPC_MoveParent,
9569    OPC_RecordChild1,
9570    OPC_CheckType, MVT::v2i64,
9571    OPC_MoveParent,
9572    OPC_MoveParent,
9573    OPC_RecordChild1,
9574    OPC_CheckType, MVT::v2i64,
9575    OPC_CheckPatternPredicate, 27,
9576    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_D), 0,
9577                  MVT::v2i64, 2, 1, 0,
9578   0,
9579  35,
9580   OPC_RecordChild0,
9581   OPC_MoveChild1,
9582   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9583   OPC_MoveChild0,
9584   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9585   OPC_MoveChild0,
9586   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9587   OPC_CheckType, MVT::v4i32,
9588   OPC_MoveParent,
9589   OPC_CheckPredicate, 40,
9590   OPC_MoveParent,
9591   OPC_RecordChild1,
9592   OPC_CheckChild1Type, MVT::v2i64,
9593   OPC_MoveParent,
9594   OPC_CheckType, MVT::v2i64,
9595   OPC_CheckPatternPredicate, 26,
9596   OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_D), 0,
9597                 MVT::v2i64, 2, 0, 1,
9598  35,
9599   OPC_MoveChild0,
9600   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9601   OPC_MoveChild0,
9602   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
9603   OPC_MoveChild0,
9604   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9605   OPC_CheckType, MVT::v4i32,
9606   OPC_MoveParent,
9607   OPC_CheckPredicate, 40,
9608   OPC_MoveParent,
9609   OPC_RecordChild1,
9610   OPC_CheckChild1Type, MVT::v2i64,
9611   OPC_MoveParent,
9612   OPC_RecordChild1,
9613   OPC_CheckType, MVT::v2i64,
9614   OPC_CheckPatternPredicate, 26,
9615   OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_D), 0,
9616                 MVT::v2i64, 2, 1, 0,
9617  63,
9618   OPC_RecordChild0,
9619   OPC_MoveChild1,
9620   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9621   OPC_MoveChild0,
9622   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9623   OPC_CheckPredicate, 36,
9624   OPC_MoveParent,
9625   OPC_RecordChild1,
9626   OPC_Scope, 15,
9627    OPC_CheckChild1Type, MVT::v16i8,
9628    OPC_MoveParent,
9629    OPC_CheckType, MVT::v16i8,
9630    OPC_CheckPatternPredicate, 26,
9631    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_B), 0,
9632                  MVT::v16i8, 2, 0, 1,
9633   15,
9634    OPC_CheckChild1Type, MVT::v8i16,
9635    OPC_MoveParent,
9636    OPC_CheckType, MVT::v8i16,
9637    OPC_CheckPatternPredicate, 26,
9638    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_H), 0,
9639                  MVT::v8i16, 2, 0, 1,
9640   15,
9641    OPC_CheckChild1Type, MVT::v4i32,
9642    OPC_MoveParent,
9643    OPC_CheckType, MVT::v4i32,
9644    OPC_CheckPatternPredicate, 26,
9645    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_W), 0,
9646                  MVT::v4i32, 2, 0, 1,
9647   0,
9648  65,
9649   OPC_MoveChild0,
9650   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
9651   OPC_MoveChild0,
9652   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
9653   OPC_CheckPredicate, 36,
9654   OPC_MoveParent,
9655   OPC_RecordChild1,
9656   OPC_Scope, 16,
9657    OPC_CheckChild1Type, MVT::v16i8,
9658    OPC_MoveParent,
9659    OPC_RecordChild1,
9660    OPC_CheckType, MVT::v16i8,
9661    OPC_CheckPatternPredicate, 26,
9662    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_B), 0,
9663                  MVT::v16i8, 2, 1, 0,
9664   16,
9665    OPC_CheckChild1Type, MVT::v8i16,
9666    OPC_MoveParent,
9667    OPC_RecordChild1,
9668    OPC_CheckType, MVT::v8i16,
9669    OPC_CheckPatternPredicate, 26,
9670    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_H), 0,
9671                  MVT::v8i16, 2, 1, 0,
9672   16,
9673    OPC_CheckChild1Type, MVT::v4i32,
9674    OPC_MoveParent,
9675    OPC_RecordChild1,
9676    OPC_CheckType, MVT::v4i32,
9677    OPC_CheckPatternPredicate, 26,
9678    OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEG_W), 0,
9679                  MVT::v4i32, 2, 1, 0,
9680   0,
9681  56|128,1,
9682   OPC_RecordChild0,
9683   OPC_RecordChild1,
9684   OPC_SwitchType , 61, MVT::v16i8,
9685    OPC_CheckPatternPredicate, 26,
9686    OPC_Scope, 11,
9687     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
9688     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_B), 0,
9689                   MVT::v16i8, 2, 0, 2,
9690    11,
9691     OPC_CheckComplexPat, /*CP*/14, /*#*/1,
9692     OPC_MorphNodeTo1, TARGET_VAL(Mips::XORI_B), 0,
9693                   MVT::v16i8, 2, 0, 2,
9694    11,
9695     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
9696     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_B), 0,
9697                   MVT::v16i8, 2, 1, 2,
9698    11,
9699     OPC_CheckComplexPat, /*CP*/14, /*#*/0,
9700     OPC_MorphNodeTo1, TARGET_VAL(Mips::XORI_B), 0,
9701                   MVT::v16i8, 2, 1, 2,
9702    8,
9703     OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR_V), 0,
9704                   MVT::v16i8, 2, 0, 1,
9705    0,
9706   37, MVT::v8i16,
9707    OPC_CheckPatternPredicate, 26,
9708    OPC_Scope, 11,
9709     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
9710     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_H), 0,
9711                   MVT::v8i16, 2, 0, 2,
9712    11,
9713     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
9714     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_H), 0,
9715                   MVT::v8i16, 2, 1, 2,
9716    8,
9717     OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR_V_H_PSEUDO), 0,
9718                   MVT::v8i16, 2, 0, 1,
9719    0,
9720   37, MVT::v4i32,
9721    OPC_CheckPatternPredicate, 26,
9722    OPC_Scope, 11,
9723     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
9724     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_W), 0,
9725                   MVT::v4i32, 2, 0, 2,
9726    11,
9727     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
9728     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_W), 0,
9729                   MVT::v4i32, 2, 1, 2,
9730    8,
9731     OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR_V_W_PSEUDO), 0,
9732                   MVT::v4i32, 2, 0, 1,
9733    0,
9734   37, MVT::v2i64,
9735    OPC_CheckPatternPredicate, 26,
9736    OPC_Scope, 11,
9737     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
9738     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_D), 0,
9739                   MVT::v2i64, 2, 0, 2,
9740    11,
9741     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
9742     OPC_MorphNodeTo1, TARGET_VAL(Mips::BNEGI_D), 0,
9743                   MVT::v2i64, 2, 1, 2,
9744    8,
9745     OPC_MorphNodeTo1, TARGET_VAL(Mips::XOR_V_D_PSEUDO), 0,
9746                   MVT::v2i64, 2, 0, 1,
9747    0,
9748   0,
9749  0,
9750 66|128,1, TARGET_VAL(ISD::CTLZ),
9751  OPC_Scope, 73,
9752   OPC_MoveChild0,
9753   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
9754   OPC_RecordChild0,
9755   OPC_CheckChild1Integer, 3,
9756   OPC_SwitchType , 35, MVT::i32,
9757    OPC_MoveParent,
9758    OPC_CheckType, MVT::i32,
9759    OPC_Scope, 9,
9760     OPC_CheckPatternPredicate, 52,
9761     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLO), 0,
9762                   MVT::i32, 1, 0,
9763    9,
9764     OPC_CheckPatternPredicate, 53,
9765     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLO_R6), 0,
9766                   MVT::i32, 1, 0,
9767    9,
9768     OPC_CheckPatternPredicate, 8,
9769     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLO_MM), 0,
9770                   MVT::i32, 1, 0,
9771    0,
9772   25, MVT::i64,
9773    OPC_MoveParent,
9774    OPC_CheckType, MVT::i64,
9775    OPC_Scope, 9,
9776     OPC_CheckPatternPredicate, 54,
9777     OPC_MorphNodeTo1, TARGET_VAL(Mips::DCLO), 0,
9778                   MVT::i64, 1, 0,
9779    9,
9780     OPC_CheckPatternPredicate, 55,
9781     OPC_MorphNodeTo1, TARGET_VAL(Mips::DCLO_R6), 0,
9782                   MVT::i64, 1, 0,
9783    0,
9784   0,
9785  117,
9786   OPC_RecordChild0,
9787   OPC_SwitchType , 34, MVT::i32,
9788    OPC_CheckChild0Type, MVT::i32,
9789    OPC_Scope, 9,
9790     OPC_CheckPatternPredicate, 52,
9791     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLZ), 0,
9792                   MVT::i32, 1, 0,
9793    9,
9794     OPC_CheckPatternPredicate, 53,
9795     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLZ_R6), 0,
9796                   MVT::i32, 1, 0,
9797    9,
9798     OPC_CheckPatternPredicate, 8,
9799     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLZ_MM), 0,
9800                   MVT::i32, 1, 0,
9801    0,
9802   24, MVT::i64,
9803    OPC_CheckChild0Type, MVT::i64,
9804    OPC_Scope, 9,
9805     OPC_CheckPatternPredicate, 54,
9806     OPC_MorphNodeTo1, TARGET_VAL(Mips::DCLZ), 0,
9807                   MVT::i64, 1, 0,
9808    9,
9809     OPC_CheckPatternPredicate, 55,
9810     OPC_MorphNodeTo1, TARGET_VAL(Mips::DCLZ_R6), 0,
9811                   MVT::i64, 1, 0,
9812    0,
9813   11, MVT::v16i8,
9814    OPC_CheckChild0Type, MVT::v16i8,
9815    OPC_CheckPatternPredicate, 26,
9816    OPC_MorphNodeTo1, TARGET_VAL(Mips::NLZC_B), 0,
9817                  MVT::v16i8, 1, 0,
9818   11, MVT::v8i16,
9819    OPC_CheckChild0Type, MVT::v8i16,
9820    OPC_CheckPatternPredicate, 26,
9821    OPC_MorphNodeTo1, TARGET_VAL(Mips::NLZC_H), 0,
9822                  MVT::v8i16, 1, 0,
9823   11, MVT::v4i32,
9824    OPC_CheckChild0Type, MVT::v4i32,
9825    OPC_CheckPatternPredicate, 26,
9826    OPC_MorphNodeTo1, TARGET_VAL(Mips::NLZC_W), 0,
9827                  MVT::v4i32, 1, 0,
9828   11, MVT::v2i64,
9829    OPC_CheckChild0Type, MVT::v2i64,
9830    OPC_CheckPatternPredicate, 26,
9831    OPC_MorphNodeTo1, TARGET_VAL(Mips::NLZC_D), 0,
9832                  MVT::v2i64, 1, 0,
9833   0,
9834  0,
9835 35|128,1, TARGET_VAL(MipsISD::Ext),
9836  OPC_RecordChild0,
9837  OPC_RecordChild1,
9838  OPC_MoveChild1,
9839  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9840  OPC_Scope, 71,
9841   OPC_CheckPredicate, 25,
9842   OPC_MoveParent,
9843   OPC_RecordChild2,
9844   OPC_MoveChild2,
9845   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9846   OPC_Scope, 39,
9847    OPC_CheckPredicate, 42,
9848    OPC_MoveParent,
9849    OPC_SwitchType , 15, MVT::i32,
9850     OPC_CheckPatternPredicate, 56,
9851     OPC_EmitConvertToTarget, 1,
9852     OPC_EmitConvertToTarget, 2,
9853     OPC_MorphNodeTo1, TARGET_VAL(Mips::EXT), 0,
9854                   MVT::i32, 3, 0, 3, 4,
9855    15, MVT::i64,
9856     OPC_CheckPatternPredicate, 57,
9857     OPC_EmitConvertToTarget, 1,
9858     OPC_EmitConvertToTarget, 2,
9859     OPC_MorphNodeTo1, TARGET_VAL(Mips::DEXT), 0,
9860                   MVT::i64, 3, 0, 3, 4,
9861    0,
9862   20,
9863    OPC_CheckPredicate, 43,
9864    OPC_MoveParent,
9865    OPC_CheckType, MVT::i64,
9866    OPC_CheckPatternPredicate, 57,
9867    OPC_EmitConvertToTarget, 1,
9868    OPC_EmitConvertToTarget, 2,
9869    OPC_MorphNodeTo1, TARGET_VAL(Mips::DEXTM), 0,
9870                  MVT::i64, 3, 0, 3, 4,
9871   0,
9872  28,
9873   OPC_CheckPredicate, 44,
9874   OPC_MoveParent,
9875   OPC_RecordChild2,
9876   OPC_MoveChild2,
9877   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9878   OPC_CheckPredicate, 42,
9879   OPC_MoveParent,
9880   OPC_CheckType, MVT::i64,
9881   OPC_CheckPatternPredicate, 57,
9882   OPC_EmitConvertToTarget, 1,
9883   OPC_EmitConvertToTarget, 2,
9884   OPC_MorphNodeTo1, TARGET_VAL(Mips::DEXTU), 0,
9885                 MVT::i64, 3, 0, 3, 4,
9886  28,
9887   OPC_CheckPredicate, 25,
9888   OPC_MoveParent,
9889   OPC_RecordChild2,
9890   OPC_MoveChild2,
9891   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9892   OPC_CheckPredicate, 42,
9893   OPC_MoveParent,
9894   OPC_CheckType, MVT::i32,
9895   OPC_CheckPatternPredicate, 30,
9896   OPC_EmitConvertToTarget, 1,
9897   OPC_EmitConvertToTarget, 2,
9898   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXT_MM), 0,
9899                 MVT::i32, 3, 0, 3, 4,
9900  24,
9901   OPC_MoveParent,
9902   OPC_RecordChild2,
9903   OPC_MoveChild2,
9904   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9905   OPC_MoveParent,
9906   OPC_CheckType, MVT::i32,
9907   OPC_CheckPatternPredicate, 16,
9908   OPC_EmitConvertToTarget, 1,
9909   OPC_EmitConvertToTarget, 2,
9910   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXT_MMR6), 0,
9911                 MVT::i32, 3, 0, 3, 4,
9912  0,
9913 84|128,18, TARGET_VAL(ISD::AND),
9914  OPC_Scope, 22,
9915   OPC_CheckAndImm, 127|128,1,
9916   OPC_MoveChild0,
9917   OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
9918   OPC_RecordChild0,
9919   OPC_RecordChild1,
9920   OPC_MoveParent,
9921   OPC_CheckType, MVT::i64,
9922   OPC_CheckPatternPredicate, 31,
9923   OPC_MorphNodeTo1, TARGET_VAL(Mips::BADDu), 0,
9924                 MVT::i64, 2, 0, 1,
9925  77|128,4,
9926   OPC_RecordChild0,
9927   OPC_Scope, 73|128,1,
9928    OPC_RecordChild1,
9929    OPC_Scope, 123,
9930     OPC_MoveChild1,
9931     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
9932     OPC_Scope, 17,
9933      OPC_CheckPredicate, 35,
9934      OPC_MoveParent,
9935      OPC_CheckType, MVT::i32,
9936      OPC_CheckPatternPredicate, 7,
9937      OPC_EmitConvertToTarget, 1,
9938      OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDi), 0,
9939                    MVT::i32, 2, 0, 2,
9940     20,
9941      OPC_CheckPredicate, 21,
9942      OPC_MoveParent,
9943      OPC_CheckType, MVT::i64,
9944      OPC_CheckPatternPredicate, 24,
9945      OPC_EmitConvertToTarget, 1,
9946      OPC_EmitNodeXForm, 3, 2,
9947      OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDi64), 0,
9948                    MVT::i64, 2, 0, 3,
9949     17,
9950      OPC_CheckPredicate, 45,
9951      OPC_MoveParent,
9952      OPC_CheckType, MVT::i32,
9953      OPC_CheckPatternPredicate, 8,
9954      OPC_EmitConvertToTarget, 1,
9955      OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDI16_MM), 0,
9956                    MVT::i32, 2, 0, 2,
9957     20,
9958      OPC_CheckPredicate, 21,
9959      OPC_MoveParent,
9960      OPC_CheckType, MVT::i32,
9961      OPC_CheckPatternPredicate, 8,
9962      OPC_EmitConvertToTarget, 1,
9963      OPC_EmitNodeXForm, 3, 2,
9964      OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDi_MM), 0,
9965                    MVT::i32, 2, 0, 3,
9966     17,
9967      OPC_CheckPredicate, 45,
9968      OPC_MoveParent,
9969      OPC_CheckType, MVT::i32,
9970      OPC_CheckPatternPredicate, 16,
9971      OPC_EmitConvertToTarget, 1,
9972      OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDI16_MMR6), 0,
9973                    MVT::i32, 2, 0, 2,
9974     20,
9975      OPC_CheckPredicate, 21,
9976      OPC_MoveParent,
9977      OPC_CheckType, MVT::i32,
9978      OPC_CheckPatternPredicate, 16,
9979      OPC_EmitConvertToTarget, 1,
9980      OPC_EmitNodeXForm, 3, 2,
9981      OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDI_MMR6), 0,
9982                    MVT::i32, 2, 0, 3,
9983     0,
9984    60,
9985     OPC_CheckType, MVT::i32,
9986     OPC_Scope, 10,
9987      OPC_CheckPatternPredicate, 7,
9988      OPC_MorphNodeTo1, TARGET_VAL(Mips::AND), 0,
9989                    MVT::i32, 2, 0, 1,
9990     10,
9991      OPC_CheckPatternPredicate, 15,
9992      OPC_MorphNodeTo1, TARGET_VAL(Mips::AndRxRxRy16), 0,
9993                    MVT::i32, 2, 0, 1,
9994     22,
9995      OPC_CheckPatternPredicate, 30,
9996      OPC_Scope, 8,
9997       OPC_MorphNodeTo1, TARGET_VAL(Mips::AND16_MM), 0,
9998                     MVT::i32, 2, 0, 1,
9999      8,
10000       OPC_MorphNodeTo1, TARGET_VAL(Mips::AND_MM), 0,
10001                     MVT::i32, 2, 0, 1,
10002      0,
10003     10,
10004      OPC_CheckPatternPredicate, 16,
10005      OPC_MorphNodeTo1, TARGET_VAL(Mips::AND_MMR6), 0,
10006                    MVT::i32, 2, 0, 1,
10007     0,
10008    12,
10009     OPC_CheckType, MVT::i64,
10010     OPC_CheckPatternPredicate, 24,
10011     OPC_MorphNodeTo1, TARGET_VAL(Mips::AND64), 0,
10012                   MVT::i64, 2, 0, 1,
10013    0,
10014   125|128,2,
10015    OPC_MoveChild1,
10016    OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10017    OPC_MoveChild0,
10018    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10019    OPC_MoveChild0,
10020    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10021    OPC_CheckPredicate, 36,
10022    OPC_MoveParent,
10023    OPC_MoveChild1,
10024    OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10025    OPC_Scope, 50|128,1,
10026     OPC_RecordChild0,
10027     OPC_MoveChild1,
10028     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10029     OPC_MoveChild0,
10030     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10031     OPC_CheckPredicate, 37,
10032     OPC_CheckType, MVT::i32,
10033     OPC_MoveParent,
10034     OPC_MoveChild1,
10035     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10036     OPC_CheckPredicate, 37,
10037     OPC_CheckType, MVT::i32,
10038     OPC_MoveParent,
10039     OPC_MoveChild2,
10040     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10041     OPC_CheckPredicate, 37,
10042     OPC_CheckType, MVT::i32,
10043     OPC_MoveParent,
10044     OPC_MoveChild3,
10045     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10046     OPC_CheckPredicate, 37,
10047     OPC_CheckType, MVT::i32,
10048     OPC_MoveParent,
10049     OPC_MoveChild4,
10050     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10051     OPC_CheckPredicate, 37,
10052     OPC_CheckType, MVT::i32,
10053     OPC_MoveParent,
10054     OPC_MoveChild5,
10055     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10056     OPC_CheckPredicate, 37,
10057     OPC_CheckType, MVT::i32,
10058     OPC_MoveParent,
10059     OPC_MoveChild6,
10060     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10061     OPC_CheckPredicate, 37,
10062     OPC_CheckType, MVT::i32,
10063     OPC_MoveParent,
10064     OPC_MoveChild7,
10065     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10066     OPC_CheckPredicate, 37,
10067     OPC_CheckType, MVT::i32,
10068     OPC_MoveParent,
10069     OPC_MoveChild, 8,
10070     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10071     OPC_CheckPredicate, 37,
10072     OPC_CheckType, MVT::i32,
10073     OPC_MoveParent,
10074     OPC_MoveChild, 9,
10075     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10076     OPC_CheckPredicate, 37,
10077     OPC_CheckType, MVT::i32,
10078     OPC_MoveParent,
10079     OPC_MoveChild, 10,
10080     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10081     OPC_CheckPredicate, 37,
10082     OPC_CheckType, MVT::i32,
10083     OPC_MoveParent,
10084     OPC_MoveChild, 11,
10085     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10086     OPC_CheckPredicate, 37,
10087     OPC_CheckType, MVT::i32,
10088     OPC_MoveParent,
10089     OPC_MoveChild, 12,
10090     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10091     OPC_CheckPredicate, 37,
10092     OPC_CheckType, MVT::i32,
10093     OPC_MoveParent,
10094     OPC_MoveChild, 13,
10095     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10096     OPC_CheckPredicate, 37,
10097     OPC_CheckType, MVT::i32,
10098     OPC_MoveParent,
10099     OPC_MoveChild, 14,
10100     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10101     OPC_CheckPredicate, 37,
10102     OPC_CheckType, MVT::i32,
10103     OPC_MoveParent,
10104     OPC_MoveChild, 15,
10105     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10106     OPC_CheckPredicate, 37,
10107     OPC_CheckType, MVT::i32,
10108     OPC_MoveParent,
10109     OPC_MoveParent,
10110     OPC_CheckType, MVT::v16i8,
10111     OPC_MoveParent,
10112     OPC_MoveParent,
10113     OPC_MoveChild1,
10114     OPC_CheckImmAllOnesV,
10115     OPC_MoveParent,
10116     OPC_MoveParent,
10117     OPC_CheckType, MVT::v16i8,
10118     OPC_CheckPatternPredicate, 27,
10119     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_B), 0,
10120                   MVT::v16i8, 2, 0, 1,
10121    50|128,1,
10122     OPC_MoveChild0,
10123     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10124     OPC_MoveChild0,
10125     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10126     OPC_CheckPredicate, 37,
10127     OPC_CheckType, MVT::i32,
10128     OPC_MoveParent,
10129     OPC_MoveChild1,
10130     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10131     OPC_CheckPredicate, 37,
10132     OPC_CheckType, MVT::i32,
10133     OPC_MoveParent,
10134     OPC_MoveChild2,
10135     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10136     OPC_CheckPredicate, 37,
10137     OPC_CheckType, MVT::i32,
10138     OPC_MoveParent,
10139     OPC_MoveChild3,
10140     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10141     OPC_CheckPredicate, 37,
10142     OPC_CheckType, MVT::i32,
10143     OPC_MoveParent,
10144     OPC_MoveChild4,
10145     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10146     OPC_CheckPredicate, 37,
10147     OPC_CheckType, MVT::i32,
10148     OPC_MoveParent,
10149     OPC_MoveChild5,
10150     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10151     OPC_CheckPredicate, 37,
10152     OPC_CheckType, MVT::i32,
10153     OPC_MoveParent,
10154     OPC_MoveChild6,
10155     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10156     OPC_CheckPredicate, 37,
10157     OPC_CheckType, MVT::i32,
10158     OPC_MoveParent,
10159     OPC_MoveChild7,
10160     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10161     OPC_CheckPredicate, 37,
10162     OPC_CheckType, MVT::i32,
10163     OPC_MoveParent,
10164     OPC_MoveChild, 8,
10165     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10166     OPC_CheckPredicate, 37,
10167     OPC_CheckType, MVT::i32,
10168     OPC_MoveParent,
10169     OPC_MoveChild, 9,
10170     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10171     OPC_CheckPredicate, 37,
10172     OPC_CheckType, MVT::i32,
10173     OPC_MoveParent,
10174     OPC_MoveChild, 10,
10175     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10176     OPC_CheckPredicate, 37,
10177     OPC_CheckType, MVT::i32,
10178     OPC_MoveParent,
10179     OPC_MoveChild, 11,
10180     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10181     OPC_CheckPredicate, 37,
10182     OPC_CheckType, MVT::i32,
10183     OPC_MoveParent,
10184     OPC_MoveChild, 12,
10185     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10186     OPC_CheckPredicate, 37,
10187     OPC_CheckType, MVT::i32,
10188     OPC_MoveParent,
10189     OPC_MoveChild, 13,
10190     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10191     OPC_CheckPredicate, 37,
10192     OPC_CheckType, MVT::i32,
10193     OPC_MoveParent,
10194     OPC_MoveChild, 14,
10195     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10196     OPC_CheckPredicate, 37,
10197     OPC_CheckType, MVT::i32,
10198     OPC_MoveParent,
10199     OPC_MoveChild, 15,
10200     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10201     OPC_CheckPredicate, 37,
10202     OPC_CheckType, MVT::i32,
10203     OPC_MoveParent,
10204     OPC_MoveParent,
10205     OPC_RecordChild1,
10206     OPC_CheckType, MVT::v16i8,
10207     OPC_MoveParent,
10208     OPC_MoveParent,
10209     OPC_MoveChild1,
10210     OPC_CheckImmAllOnesV,
10211     OPC_MoveParent,
10212     OPC_MoveParent,
10213     OPC_CheckType, MVT::v16i8,
10214     OPC_CheckPatternPredicate, 27,
10215     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_B), 0,
10216                   MVT::v16i8, 2, 0, 1,
10217    0,
10218   0,
10219  127|128,2,
10220   OPC_MoveChild0,
10221   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10222   OPC_MoveChild0,
10223   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10224   OPC_MoveChild0,
10225   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10226   OPC_CheckPredicate, 36,
10227   OPC_MoveParent,
10228   OPC_MoveChild1,
10229   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10230   OPC_Scope, 51|128,1,
10231    OPC_RecordChild0,
10232    OPC_MoveChild1,
10233    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10234    OPC_MoveChild0,
10235    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10236    OPC_CheckPredicate, 37,
10237    OPC_CheckType, MVT::i32,
10238    OPC_MoveParent,
10239    OPC_MoveChild1,
10240    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10241    OPC_CheckPredicate, 37,
10242    OPC_CheckType, MVT::i32,
10243    OPC_MoveParent,
10244    OPC_MoveChild2,
10245    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10246    OPC_CheckPredicate, 37,
10247    OPC_CheckType, MVT::i32,
10248    OPC_MoveParent,
10249    OPC_MoveChild3,
10250    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10251    OPC_CheckPredicate, 37,
10252    OPC_CheckType, MVT::i32,
10253    OPC_MoveParent,
10254    OPC_MoveChild4,
10255    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10256    OPC_CheckPredicate, 37,
10257    OPC_CheckType, MVT::i32,
10258    OPC_MoveParent,
10259    OPC_MoveChild5,
10260    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10261    OPC_CheckPredicate, 37,
10262    OPC_CheckType, MVT::i32,
10263    OPC_MoveParent,
10264    OPC_MoveChild6,
10265    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10266    OPC_CheckPredicate, 37,
10267    OPC_CheckType, MVT::i32,
10268    OPC_MoveParent,
10269    OPC_MoveChild7,
10270    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10271    OPC_CheckPredicate, 37,
10272    OPC_CheckType, MVT::i32,
10273    OPC_MoveParent,
10274    OPC_MoveChild, 8,
10275    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10276    OPC_CheckPredicate, 37,
10277    OPC_CheckType, MVT::i32,
10278    OPC_MoveParent,
10279    OPC_MoveChild, 9,
10280    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10281    OPC_CheckPredicate, 37,
10282    OPC_CheckType, MVT::i32,
10283    OPC_MoveParent,
10284    OPC_MoveChild, 10,
10285    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10286    OPC_CheckPredicate, 37,
10287    OPC_CheckType, MVT::i32,
10288    OPC_MoveParent,
10289    OPC_MoveChild, 11,
10290    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10291    OPC_CheckPredicate, 37,
10292    OPC_CheckType, MVT::i32,
10293    OPC_MoveParent,
10294    OPC_MoveChild, 12,
10295    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10296    OPC_CheckPredicate, 37,
10297    OPC_CheckType, MVT::i32,
10298    OPC_MoveParent,
10299    OPC_MoveChild, 13,
10300    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10301    OPC_CheckPredicate, 37,
10302    OPC_CheckType, MVT::i32,
10303    OPC_MoveParent,
10304    OPC_MoveChild, 14,
10305    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10306    OPC_CheckPredicate, 37,
10307    OPC_CheckType, MVT::i32,
10308    OPC_MoveParent,
10309    OPC_MoveChild, 15,
10310    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10311    OPC_CheckPredicate, 37,
10312    OPC_CheckType, MVT::i32,
10313    OPC_MoveParent,
10314    OPC_MoveParent,
10315    OPC_CheckType, MVT::v16i8,
10316    OPC_MoveParent,
10317    OPC_MoveParent,
10318    OPC_MoveChild1,
10319    OPC_CheckImmAllOnesV,
10320    OPC_MoveParent,
10321    OPC_MoveParent,
10322    OPC_RecordChild1,
10323    OPC_CheckType, MVT::v16i8,
10324    OPC_CheckPatternPredicate, 27,
10325    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_B), 0,
10326                  MVT::v16i8, 2, 1, 0,
10327   51|128,1,
10328    OPC_MoveChild0,
10329    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10330    OPC_MoveChild0,
10331    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10332    OPC_CheckPredicate, 37,
10333    OPC_CheckType, MVT::i32,
10334    OPC_MoveParent,
10335    OPC_MoveChild1,
10336    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10337    OPC_CheckPredicate, 37,
10338    OPC_CheckType, MVT::i32,
10339    OPC_MoveParent,
10340    OPC_MoveChild2,
10341    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10342    OPC_CheckPredicate, 37,
10343    OPC_CheckType, MVT::i32,
10344    OPC_MoveParent,
10345    OPC_MoveChild3,
10346    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10347    OPC_CheckPredicate, 37,
10348    OPC_CheckType, MVT::i32,
10349    OPC_MoveParent,
10350    OPC_MoveChild4,
10351    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10352    OPC_CheckPredicate, 37,
10353    OPC_CheckType, MVT::i32,
10354    OPC_MoveParent,
10355    OPC_MoveChild5,
10356    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10357    OPC_CheckPredicate, 37,
10358    OPC_CheckType, MVT::i32,
10359    OPC_MoveParent,
10360    OPC_MoveChild6,
10361    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10362    OPC_CheckPredicate, 37,
10363    OPC_CheckType, MVT::i32,
10364    OPC_MoveParent,
10365    OPC_MoveChild7,
10366    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10367    OPC_CheckPredicate, 37,
10368    OPC_CheckType, MVT::i32,
10369    OPC_MoveParent,
10370    OPC_MoveChild, 8,
10371    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10372    OPC_CheckPredicate, 37,
10373    OPC_CheckType, MVT::i32,
10374    OPC_MoveParent,
10375    OPC_MoveChild, 9,
10376    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10377    OPC_CheckPredicate, 37,
10378    OPC_CheckType, MVT::i32,
10379    OPC_MoveParent,
10380    OPC_MoveChild, 10,
10381    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10382    OPC_CheckPredicate, 37,
10383    OPC_CheckType, MVT::i32,
10384    OPC_MoveParent,
10385    OPC_MoveChild, 11,
10386    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10387    OPC_CheckPredicate, 37,
10388    OPC_CheckType, MVT::i32,
10389    OPC_MoveParent,
10390    OPC_MoveChild, 12,
10391    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10392    OPC_CheckPredicate, 37,
10393    OPC_CheckType, MVT::i32,
10394    OPC_MoveParent,
10395    OPC_MoveChild, 13,
10396    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10397    OPC_CheckPredicate, 37,
10398    OPC_CheckType, MVT::i32,
10399    OPC_MoveParent,
10400    OPC_MoveChild, 14,
10401    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10402    OPC_CheckPredicate, 37,
10403    OPC_CheckType, MVT::i32,
10404    OPC_MoveParent,
10405    OPC_MoveChild, 15,
10406    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10407    OPC_CheckPredicate, 37,
10408    OPC_CheckType, MVT::i32,
10409    OPC_MoveParent,
10410    OPC_MoveParent,
10411    OPC_RecordChild1,
10412    OPC_CheckType, MVT::v16i8,
10413    OPC_MoveParent,
10414    OPC_MoveParent,
10415    OPC_MoveChild1,
10416    OPC_CheckImmAllOnesV,
10417    OPC_MoveParent,
10418    OPC_MoveParent,
10419    OPC_RecordChild1,
10420    OPC_CheckType, MVT::v16i8,
10421    OPC_CheckPatternPredicate, 27,
10422    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_B), 0,
10423                  MVT::v16i8, 2, 1, 0,
10424   0,
10425  92|128,1,
10426   OPC_RecordChild0,
10427   OPC_MoveChild1,
10428   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10429   OPC_MoveChild0,
10430   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10431   OPC_MoveChild0,
10432   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10433   OPC_CheckPredicate, 36,
10434   OPC_MoveParent,
10435   OPC_MoveChild1,
10436   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10437   OPC_Scope, 98,
10438    OPC_RecordChild0,
10439    OPC_MoveChild1,
10440    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10441    OPC_MoveChild0,
10442    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10443    OPC_CheckPredicate, 38,
10444    OPC_CheckType, MVT::i32,
10445    OPC_MoveParent,
10446    OPC_MoveChild1,
10447    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10448    OPC_CheckPredicate, 38,
10449    OPC_CheckType, MVT::i32,
10450    OPC_MoveParent,
10451    OPC_MoveChild2,
10452    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10453    OPC_CheckPredicate, 38,
10454    OPC_CheckType, MVT::i32,
10455    OPC_MoveParent,
10456    OPC_MoveChild3,
10457    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10458    OPC_CheckPredicate, 38,
10459    OPC_CheckType, MVT::i32,
10460    OPC_MoveParent,
10461    OPC_MoveChild4,
10462    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10463    OPC_CheckPredicate, 38,
10464    OPC_CheckType, MVT::i32,
10465    OPC_MoveParent,
10466    OPC_MoveChild5,
10467    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10468    OPC_CheckPredicate, 38,
10469    OPC_CheckType, MVT::i32,
10470    OPC_MoveParent,
10471    OPC_MoveChild6,
10472    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10473    OPC_CheckPredicate, 38,
10474    OPC_CheckType, MVT::i32,
10475    OPC_MoveParent,
10476    OPC_MoveChild7,
10477    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10478    OPC_CheckPredicate, 38,
10479    OPC_CheckType, MVT::i32,
10480    OPC_MoveParent,
10481    OPC_MoveParent,
10482    OPC_CheckType, MVT::v8i16,
10483    OPC_MoveParent,
10484    OPC_MoveParent,
10485    OPC_MoveChild1,
10486    OPC_CheckImmAllOnesV,
10487    OPC_MoveParent,
10488    OPC_MoveParent,
10489    OPC_CheckType, MVT::v8i16,
10490    OPC_CheckPatternPredicate, 27,
10491    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_H), 0,
10492                  MVT::v8i16, 2, 0, 1,
10493   98,
10494    OPC_MoveChild0,
10495    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10496    OPC_MoveChild0,
10497    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10498    OPC_CheckPredicate, 38,
10499    OPC_CheckType, MVT::i32,
10500    OPC_MoveParent,
10501    OPC_MoveChild1,
10502    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10503    OPC_CheckPredicate, 38,
10504    OPC_CheckType, MVT::i32,
10505    OPC_MoveParent,
10506    OPC_MoveChild2,
10507    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10508    OPC_CheckPredicate, 38,
10509    OPC_CheckType, MVT::i32,
10510    OPC_MoveParent,
10511    OPC_MoveChild3,
10512    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10513    OPC_CheckPredicate, 38,
10514    OPC_CheckType, MVT::i32,
10515    OPC_MoveParent,
10516    OPC_MoveChild4,
10517    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10518    OPC_CheckPredicate, 38,
10519    OPC_CheckType, MVT::i32,
10520    OPC_MoveParent,
10521    OPC_MoveChild5,
10522    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10523    OPC_CheckPredicate, 38,
10524    OPC_CheckType, MVT::i32,
10525    OPC_MoveParent,
10526    OPC_MoveChild6,
10527    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10528    OPC_CheckPredicate, 38,
10529    OPC_CheckType, MVT::i32,
10530    OPC_MoveParent,
10531    OPC_MoveChild7,
10532    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10533    OPC_CheckPredicate, 38,
10534    OPC_CheckType, MVT::i32,
10535    OPC_MoveParent,
10536    OPC_MoveParent,
10537    OPC_RecordChild1,
10538    OPC_CheckType, MVT::v8i16,
10539    OPC_MoveParent,
10540    OPC_MoveParent,
10541    OPC_MoveChild1,
10542    OPC_CheckImmAllOnesV,
10543    OPC_MoveParent,
10544    OPC_MoveParent,
10545    OPC_CheckType, MVT::v8i16,
10546    OPC_CheckPatternPredicate, 27,
10547    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_H), 0,
10548                  MVT::v8i16, 2, 0, 1,
10549   0,
10550  93|128,1,
10551   OPC_MoveChild0,
10552   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10553   OPC_MoveChild0,
10554   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10555   OPC_MoveChild0,
10556   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10557   OPC_CheckPredicate, 36,
10558   OPC_MoveParent,
10559   OPC_MoveChild1,
10560   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10561   OPC_Scope, 99,
10562    OPC_RecordChild0,
10563    OPC_MoveChild1,
10564    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10565    OPC_MoveChild0,
10566    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10567    OPC_CheckPredicate, 38,
10568    OPC_CheckType, MVT::i32,
10569    OPC_MoveParent,
10570    OPC_MoveChild1,
10571    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10572    OPC_CheckPredicate, 38,
10573    OPC_CheckType, MVT::i32,
10574    OPC_MoveParent,
10575    OPC_MoveChild2,
10576    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10577    OPC_CheckPredicate, 38,
10578    OPC_CheckType, MVT::i32,
10579    OPC_MoveParent,
10580    OPC_MoveChild3,
10581    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10582    OPC_CheckPredicate, 38,
10583    OPC_CheckType, MVT::i32,
10584    OPC_MoveParent,
10585    OPC_MoveChild4,
10586    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10587    OPC_CheckPredicate, 38,
10588    OPC_CheckType, MVT::i32,
10589    OPC_MoveParent,
10590    OPC_MoveChild5,
10591    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10592    OPC_CheckPredicate, 38,
10593    OPC_CheckType, MVT::i32,
10594    OPC_MoveParent,
10595    OPC_MoveChild6,
10596    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10597    OPC_CheckPredicate, 38,
10598    OPC_CheckType, MVT::i32,
10599    OPC_MoveParent,
10600    OPC_MoveChild7,
10601    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10602    OPC_CheckPredicate, 38,
10603    OPC_CheckType, MVT::i32,
10604    OPC_MoveParent,
10605    OPC_MoveParent,
10606    OPC_CheckType, MVT::v8i16,
10607    OPC_MoveParent,
10608    OPC_MoveParent,
10609    OPC_MoveChild1,
10610    OPC_CheckImmAllOnesV,
10611    OPC_MoveParent,
10612    OPC_MoveParent,
10613    OPC_RecordChild1,
10614    OPC_CheckType, MVT::v8i16,
10615    OPC_CheckPatternPredicate, 27,
10616    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_H), 0,
10617                  MVT::v8i16, 2, 1, 0,
10618   99,
10619    OPC_MoveChild0,
10620    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10621    OPC_MoveChild0,
10622    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10623    OPC_CheckPredicate, 38,
10624    OPC_CheckType, MVT::i32,
10625    OPC_MoveParent,
10626    OPC_MoveChild1,
10627    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10628    OPC_CheckPredicate, 38,
10629    OPC_CheckType, MVT::i32,
10630    OPC_MoveParent,
10631    OPC_MoveChild2,
10632    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10633    OPC_CheckPredicate, 38,
10634    OPC_CheckType, MVT::i32,
10635    OPC_MoveParent,
10636    OPC_MoveChild3,
10637    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10638    OPC_CheckPredicate, 38,
10639    OPC_CheckType, MVT::i32,
10640    OPC_MoveParent,
10641    OPC_MoveChild4,
10642    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10643    OPC_CheckPredicate, 38,
10644    OPC_CheckType, MVT::i32,
10645    OPC_MoveParent,
10646    OPC_MoveChild5,
10647    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10648    OPC_CheckPredicate, 38,
10649    OPC_CheckType, MVT::i32,
10650    OPC_MoveParent,
10651    OPC_MoveChild6,
10652    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10653    OPC_CheckPredicate, 38,
10654    OPC_CheckType, MVT::i32,
10655    OPC_MoveParent,
10656    OPC_MoveChild7,
10657    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10658    OPC_CheckPredicate, 38,
10659    OPC_CheckType, MVT::i32,
10660    OPC_MoveParent,
10661    OPC_MoveParent,
10662    OPC_RecordChild1,
10663    OPC_CheckType, MVT::v8i16,
10664    OPC_MoveParent,
10665    OPC_MoveParent,
10666    OPC_MoveChild1,
10667    OPC_CheckImmAllOnesV,
10668    OPC_MoveParent,
10669    OPC_MoveParent,
10670    OPC_RecordChild1,
10671    OPC_CheckType, MVT::v8i16,
10672    OPC_CheckPatternPredicate, 27,
10673    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_H), 0,
10674                  MVT::v8i16, 2, 1, 0,
10675   0,
10676  20|128,1,
10677   OPC_RecordChild0,
10678   OPC_MoveChild1,
10679   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10680   OPC_MoveChild0,
10681   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10682   OPC_MoveChild0,
10683   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10684   OPC_CheckPredicate, 36,
10685   OPC_MoveParent,
10686   OPC_MoveChild1,
10687   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10688   OPC_Scope, 62,
10689    OPC_RecordChild0,
10690    OPC_MoveChild1,
10691    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10692    OPC_MoveChild0,
10693    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10694    OPC_CheckPredicate, 39,
10695    OPC_CheckType, MVT::i32,
10696    OPC_MoveParent,
10697    OPC_MoveChild1,
10698    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10699    OPC_CheckPredicate, 39,
10700    OPC_CheckType, MVT::i32,
10701    OPC_MoveParent,
10702    OPC_MoveChild2,
10703    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10704    OPC_CheckPredicate, 39,
10705    OPC_CheckType, MVT::i32,
10706    OPC_MoveParent,
10707    OPC_MoveChild3,
10708    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10709    OPC_CheckPredicate, 39,
10710    OPC_CheckType, MVT::i32,
10711    OPC_MoveParent,
10712    OPC_MoveParent,
10713    OPC_CheckType, MVT::v4i32,
10714    OPC_MoveParent,
10715    OPC_MoveParent,
10716    OPC_MoveChild1,
10717    OPC_CheckImmAllOnesV,
10718    OPC_MoveParent,
10719    OPC_MoveParent,
10720    OPC_CheckType, MVT::v4i32,
10721    OPC_CheckPatternPredicate, 27,
10722    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_W), 0,
10723                  MVT::v4i32, 2, 0, 1,
10724   62,
10725    OPC_MoveChild0,
10726    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10727    OPC_MoveChild0,
10728    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10729    OPC_CheckPredicate, 39,
10730    OPC_CheckType, MVT::i32,
10731    OPC_MoveParent,
10732    OPC_MoveChild1,
10733    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10734    OPC_CheckPredicate, 39,
10735    OPC_CheckType, MVT::i32,
10736    OPC_MoveParent,
10737    OPC_MoveChild2,
10738    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10739    OPC_CheckPredicate, 39,
10740    OPC_CheckType, MVT::i32,
10741    OPC_MoveParent,
10742    OPC_MoveChild3,
10743    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10744    OPC_CheckPredicate, 39,
10745    OPC_CheckType, MVT::i32,
10746    OPC_MoveParent,
10747    OPC_MoveParent,
10748    OPC_RecordChild1,
10749    OPC_CheckType, MVT::v4i32,
10750    OPC_MoveParent,
10751    OPC_MoveParent,
10752    OPC_MoveChild1,
10753    OPC_CheckImmAllOnesV,
10754    OPC_MoveParent,
10755    OPC_MoveParent,
10756    OPC_CheckType, MVT::v4i32,
10757    OPC_CheckPatternPredicate, 27,
10758    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_W), 0,
10759                  MVT::v4i32, 2, 0, 1,
10760   0,
10761  21|128,1,
10762   OPC_MoveChild0,
10763   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10764   OPC_MoveChild0,
10765   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10766   OPC_MoveChild0,
10767   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10768   OPC_CheckPredicate, 36,
10769   OPC_MoveParent,
10770   OPC_MoveChild1,
10771   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10772   OPC_Scope, 63,
10773    OPC_RecordChild0,
10774    OPC_MoveChild1,
10775    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10776    OPC_MoveChild0,
10777    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10778    OPC_CheckPredicate, 39,
10779    OPC_CheckType, MVT::i32,
10780    OPC_MoveParent,
10781    OPC_MoveChild1,
10782    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10783    OPC_CheckPredicate, 39,
10784    OPC_CheckType, MVT::i32,
10785    OPC_MoveParent,
10786    OPC_MoveChild2,
10787    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10788    OPC_CheckPredicate, 39,
10789    OPC_CheckType, MVT::i32,
10790    OPC_MoveParent,
10791    OPC_MoveChild3,
10792    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10793    OPC_CheckPredicate, 39,
10794    OPC_CheckType, MVT::i32,
10795    OPC_MoveParent,
10796    OPC_MoveParent,
10797    OPC_CheckType, MVT::v4i32,
10798    OPC_MoveParent,
10799    OPC_MoveParent,
10800    OPC_MoveChild1,
10801    OPC_CheckImmAllOnesV,
10802    OPC_MoveParent,
10803    OPC_MoveParent,
10804    OPC_RecordChild1,
10805    OPC_CheckType, MVT::v4i32,
10806    OPC_CheckPatternPredicate, 27,
10807    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_W), 0,
10808                  MVT::v4i32, 2, 1, 0,
10809   63,
10810    OPC_MoveChild0,
10811    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10812    OPC_MoveChild0,
10813    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10814    OPC_CheckPredicate, 39,
10815    OPC_CheckType, MVT::i32,
10816    OPC_MoveParent,
10817    OPC_MoveChild1,
10818    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10819    OPC_CheckPredicate, 39,
10820    OPC_CheckType, MVT::i32,
10821    OPC_MoveParent,
10822    OPC_MoveChild2,
10823    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10824    OPC_CheckPredicate, 39,
10825    OPC_CheckType, MVT::i32,
10826    OPC_MoveParent,
10827    OPC_MoveChild3,
10828    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
10829    OPC_CheckPredicate, 39,
10830    OPC_CheckType, MVT::i32,
10831    OPC_MoveParent,
10832    OPC_MoveParent,
10833    OPC_RecordChild1,
10834    OPC_CheckType, MVT::v4i32,
10835    OPC_MoveParent,
10836    OPC_MoveParent,
10837    OPC_MoveChild1,
10838    OPC_CheckImmAllOnesV,
10839    OPC_MoveParent,
10840    OPC_MoveParent,
10841    OPC_RecordChild1,
10842    OPC_CheckType, MVT::v4i32,
10843    OPC_CheckPatternPredicate, 27,
10844    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_W), 0,
10845                  MVT::v4i32, 2, 1, 0,
10846   0,
10847  101,
10848   OPC_RecordChild0,
10849   OPC_MoveChild1,
10850   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10851   OPC_MoveChild0,
10852   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10853   OPC_MoveChild0,
10854   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10855   OPC_MoveChild0,
10856   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10857   OPC_CheckType, MVT::v4i32,
10858   OPC_MoveParent,
10859   OPC_CheckPredicate, 40,
10860   OPC_MoveParent,
10861   OPC_MoveChild1,
10862   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10863   OPC_Scope, 35,
10864    OPC_RecordChild0,
10865    OPC_MoveChild1,
10866    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10867    OPC_MoveChild0,
10868    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10869    OPC_CheckType, MVT::v4i32,
10870    OPC_MoveParent,
10871    OPC_CheckPredicate, 41,
10872    OPC_MoveParent,
10873    OPC_CheckType, MVT::v2i64,
10874    OPC_MoveParent,
10875    OPC_MoveParent,
10876    OPC_MoveChild1,
10877    OPC_CheckImmAllOnesV,
10878    OPC_MoveParent,
10879    OPC_MoveParent,
10880    OPC_CheckType, MVT::v2i64,
10881    OPC_CheckPatternPredicate, 27,
10882    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_D), 0,
10883                  MVT::v2i64, 2, 0, 1,
10884   35,
10885    OPC_MoveChild0,
10886    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10887    OPC_MoveChild0,
10888    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10889    OPC_CheckType, MVT::v4i32,
10890    OPC_MoveParent,
10891    OPC_CheckPredicate, 41,
10892    OPC_MoveParent,
10893    OPC_RecordChild1,
10894    OPC_CheckType, MVT::v2i64,
10895    OPC_MoveParent,
10896    OPC_MoveParent,
10897    OPC_MoveChild1,
10898    OPC_CheckImmAllOnesV,
10899    OPC_MoveParent,
10900    OPC_MoveParent,
10901    OPC_CheckType, MVT::v2i64,
10902    OPC_CheckPatternPredicate, 27,
10903    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_D), 0,
10904                  MVT::v2i64, 2, 0, 1,
10905   0,
10906  102,
10907   OPC_MoveChild0,
10908   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10909   OPC_MoveChild0,
10910   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10911   OPC_MoveChild0,
10912   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10913   OPC_MoveChild0,
10914   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10915   OPC_CheckType, MVT::v4i32,
10916   OPC_MoveParent,
10917   OPC_CheckPredicate, 40,
10918   OPC_MoveParent,
10919   OPC_MoveChild1,
10920   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
10921   OPC_Scope, 36,
10922    OPC_RecordChild0,
10923    OPC_MoveChild1,
10924    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10925    OPC_MoveChild0,
10926    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10927    OPC_CheckType, MVT::v4i32,
10928    OPC_MoveParent,
10929    OPC_CheckPredicate, 41,
10930    OPC_MoveParent,
10931    OPC_CheckType, MVT::v2i64,
10932    OPC_MoveParent,
10933    OPC_MoveParent,
10934    OPC_MoveChild1,
10935    OPC_CheckImmAllOnesV,
10936    OPC_MoveParent,
10937    OPC_MoveParent,
10938    OPC_RecordChild1,
10939    OPC_CheckType, MVT::v2i64,
10940    OPC_CheckPatternPredicate, 27,
10941    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_D), 0,
10942                  MVT::v2i64, 2, 1, 0,
10943   36,
10944    OPC_MoveChild0,
10945    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10946    OPC_MoveChild0,
10947    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10948    OPC_CheckType, MVT::v4i32,
10949    OPC_MoveParent,
10950    OPC_CheckPredicate, 41,
10951    OPC_MoveParent,
10952    OPC_RecordChild1,
10953    OPC_CheckType, MVT::v2i64,
10954    OPC_MoveParent,
10955    OPC_MoveParent,
10956    OPC_MoveChild1,
10957    OPC_CheckImmAllOnesV,
10958    OPC_MoveParent,
10959    OPC_MoveParent,
10960    OPC_RecordChild1,
10961    OPC_CheckType, MVT::v2i64,
10962    OPC_CheckPatternPredicate, 27,
10963    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_D), 0,
10964                  MVT::v2i64, 2, 1, 0,
10965   0,
10966  43,
10967   OPC_RecordChild0,
10968   OPC_MoveChild1,
10969   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10970   OPC_MoveChild0,
10971   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10972   OPC_MoveChild0,
10973   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10974   OPC_MoveChild0,
10975   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
10976   OPC_CheckType, MVT::v4i32,
10977   OPC_MoveParent,
10978   OPC_CheckPredicate, 40,
10979   OPC_MoveParent,
10980   OPC_RecordChild1,
10981   OPC_CheckChild1Type, MVT::v2i64,
10982   OPC_MoveParent,
10983   OPC_MoveChild1,
10984   OPC_CheckImmAllOnesV,
10985   OPC_MoveParent,
10986   OPC_MoveParent,
10987   OPC_CheckType, MVT::v2i64,
10988   OPC_CheckPatternPredicate, 26,
10989   OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_D), 0,
10990                 MVT::v2i64, 2, 0, 1,
10991  43,
10992   OPC_MoveChild0,
10993   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
10994   OPC_MoveChild0,
10995   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
10996   OPC_MoveChild0,
10997   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
10998   OPC_MoveChild0,
10999   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
11000   OPC_CheckType, MVT::v4i32,
11001   OPC_MoveParent,
11002   OPC_CheckPredicate, 40,
11003   OPC_MoveParent,
11004   OPC_RecordChild1,
11005   OPC_CheckChild1Type, MVT::v2i64,
11006   OPC_MoveParent,
11007   OPC_MoveChild1,
11008   OPC_CheckImmAllOnesV,
11009   OPC_MoveParent,
11010   OPC_MoveParent,
11011   OPC_RecordChild1,
11012   OPC_CheckType, MVT::v2i64,
11013   OPC_CheckPatternPredicate, 26,
11014   OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_D), 0,
11015                 MVT::v2i64, 2, 1, 0,
11016  79,
11017   OPC_RecordChild0,
11018   OPC_MoveChild1,
11019   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
11020   OPC_MoveChild0,
11021   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
11022   OPC_MoveChild0,
11023   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
11024   OPC_CheckPredicate, 36,
11025   OPC_MoveParent,
11026   OPC_RecordChild1,
11027   OPC_Scope, 19,
11028    OPC_CheckChild1Type, MVT::v16i8,
11029    OPC_MoveParent,
11030    OPC_MoveChild1,
11031    OPC_CheckImmAllOnesV,
11032    OPC_MoveParent,
11033    OPC_MoveParent,
11034    OPC_CheckType, MVT::v16i8,
11035    OPC_CheckPatternPredicate, 26,
11036    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_B), 0,
11037                  MVT::v16i8, 2, 0, 1,
11038   19,
11039    OPC_CheckChild1Type, MVT::v8i16,
11040    OPC_MoveParent,
11041    OPC_MoveChild1,
11042    OPC_CheckImmAllOnesV,
11043    OPC_MoveParent,
11044    OPC_MoveParent,
11045    OPC_CheckType, MVT::v8i16,
11046    OPC_CheckPatternPredicate, 26,
11047    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_H), 0,
11048                  MVT::v8i16, 2, 0, 1,
11049   19,
11050    OPC_CheckChild1Type, MVT::v4i32,
11051    OPC_MoveParent,
11052    OPC_MoveChild1,
11053    OPC_CheckImmAllOnesV,
11054    OPC_MoveParent,
11055    OPC_MoveParent,
11056    OPC_CheckType, MVT::v4i32,
11057    OPC_CheckPatternPredicate, 26,
11058    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_W), 0,
11059                  MVT::v4i32, 2, 0, 1,
11060   0,
11061  81,
11062   OPC_MoveChild0,
11063   OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
11064   OPC_MoveChild0,
11065   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
11066   OPC_MoveChild0,
11067   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
11068   OPC_CheckPredicate, 36,
11069   OPC_MoveParent,
11070   OPC_RecordChild1,
11071   OPC_Scope, 20,
11072    OPC_CheckChild1Type, MVT::v16i8,
11073    OPC_MoveParent,
11074    OPC_MoveChild1,
11075    OPC_CheckImmAllOnesV,
11076    OPC_MoveParent,
11077    OPC_MoveParent,
11078    OPC_RecordChild1,
11079    OPC_CheckType, MVT::v16i8,
11080    OPC_CheckPatternPredicate, 26,
11081    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_B), 0,
11082                  MVT::v16i8, 2, 1, 0,
11083   20,
11084    OPC_CheckChild1Type, MVT::v8i16,
11085    OPC_MoveParent,
11086    OPC_MoveChild1,
11087    OPC_CheckImmAllOnesV,
11088    OPC_MoveParent,
11089    OPC_MoveParent,
11090    OPC_RecordChild1,
11091    OPC_CheckType, MVT::v8i16,
11092    OPC_CheckPatternPredicate, 26,
11093    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_H), 0,
11094                  MVT::v8i16, 2, 1, 0,
11095   20,
11096    OPC_CheckChild1Type, MVT::v4i32,
11097    OPC_MoveParent,
11098    OPC_MoveChild1,
11099    OPC_CheckImmAllOnesV,
11100    OPC_MoveParent,
11101    OPC_MoveParent,
11102    OPC_RecordChild1,
11103    OPC_CheckType, MVT::v4i32,
11104    OPC_CheckPatternPredicate, 26,
11105    OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLR_W), 0,
11106                  MVT::v4i32, 2, 1, 0,
11107   0,
11108  56|128,1,
11109   OPC_RecordChild0,
11110   OPC_RecordChild1,
11111   OPC_SwitchType , 61, MVT::v16i8,
11112    OPC_CheckPatternPredicate, 26,
11113    OPC_Scope, 11,
11114     OPC_CheckComplexPat, /*CP*/14, /*#*/1,
11115     OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDI_B), 0,
11116                   MVT::v16i8, 2, 0, 2,
11117    11,
11118     OPC_CheckComplexPat, /*CP*/15, /*#*/1,
11119     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_B), 0,
11120                   MVT::v16i8, 2, 0, 2,
11121    11,
11122     OPC_CheckComplexPat, /*CP*/14, /*#*/0,
11123     OPC_MorphNodeTo1, TARGET_VAL(Mips::ANDI_B), 0,
11124                   MVT::v16i8, 2, 1, 2,
11125    11,
11126     OPC_CheckComplexPat, /*CP*/15, /*#*/0,
11127     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_B), 0,
11128                   MVT::v16i8, 2, 1, 2,
11129    8,
11130     OPC_MorphNodeTo1, TARGET_VAL(Mips::AND_V), 0,
11131                   MVT::v16i8, 2, 0, 1,
11132    0,
11133   37, MVT::v8i16,
11134    OPC_CheckPatternPredicate, 26,
11135    OPC_Scope, 11,
11136     OPC_CheckComplexPat, /*CP*/15, /*#*/1,
11137     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_H), 0,
11138                   MVT::v8i16, 2, 0, 2,
11139    11,
11140     OPC_CheckComplexPat, /*CP*/15, /*#*/0,
11141     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_H), 0,
11142                   MVT::v8i16, 2, 1, 2,
11143    8,
11144     OPC_MorphNodeTo1, TARGET_VAL(Mips::AND_V_H_PSEUDO), 0,
11145                   MVT::v8i16, 2, 0, 1,
11146    0,
11147   37, MVT::v4i32,
11148    OPC_CheckPatternPredicate, 26,
11149    OPC_Scope, 11,
11150     OPC_CheckComplexPat, /*CP*/15, /*#*/1,
11151     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_W), 0,
11152                   MVT::v4i32, 2, 0, 2,
11153    11,
11154     OPC_CheckComplexPat, /*CP*/15, /*#*/0,
11155     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_W), 0,
11156                   MVT::v4i32, 2, 1, 2,
11157    8,
11158     OPC_MorphNodeTo1, TARGET_VAL(Mips::AND_V_W_PSEUDO), 0,
11159                   MVT::v4i32, 2, 0, 1,
11160    0,
11161   37, MVT::v2i64,
11162    OPC_CheckPatternPredicate, 26,
11163    OPC_Scope, 11,
11164     OPC_CheckComplexPat, /*CP*/15, /*#*/1,
11165     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_D), 0,
11166                   MVT::v2i64, 2, 0, 2,
11167    11,
11168     OPC_CheckComplexPat, /*CP*/15, /*#*/0,
11169     OPC_MorphNodeTo1, TARGET_VAL(Mips::BCLRI_D), 0,
11170                   MVT::v2i64, 2, 1, 2,
11171    8,
11172     OPC_MorphNodeTo1, TARGET_VAL(Mips::AND_V_D_PSEUDO), 0,
11173                   MVT::v2i64, 2, 0, 1,
11174    0,
11175   0,
11176  0,
11177 89, TARGET_VAL(MipsISD::CIns),
11178  OPC_RecordChild0,
11179  OPC_RecordChild1,
11180  OPC_MoveChild1,
11181  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11182  OPC_Scope, 26,
11183   OPC_CheckPredicate, 25,
11184   OPC_MoveParent,
11185   OPC_RecordChild2,
11186   OPC_MoveChild2,
11187   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11188   OPC_MoveParent,
11189   OPC_CheckType, MVT::i64,
11190   OPC_CheckPatternPredicate, 58,
11191   OPC_EmitConvertToTarget, 1,
11192   OPC_EmitConvertToTarget, 2,
11193   OPC_MorphNodeTo1, TARGET_VAL(Mips::CINS), 0,
11194                 MVT::i64, 3, 0, 3, 4,
11195  26,
11196   OPC_CheckPredicate, 44,
11197   OPC_MoveParent,
11198   OPC_RecordChild2,
11199   OPC_MoveChild2,
11200   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11201   OPC_MoveParent,
11202   OPC_CheckType, MVT::i64,
11203   OPC_CheckPatternPredicate, 58,
11204   OPC_EmitConvertToTarget, 1,
11205   OPC_EmitConvertToTarget, 2,
11206   OPC_MorphNodeTo1, TARGET_VAL(Mips::CINS32), 0,
11207                 MVT::i64, 3, 0, 3, 4,
11208  26,
11209   OPC_CheckPredicate, 25,
11210   OPC_MoveParent,
11211   OPC_RecordChild2,
11212   OPC_MoveChild2,
11213   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11214   OPC_MoveParent,
11215   OPC_CheckType, MVT::i32,
11216   OPC_CheckPatternPredicate, 58,
11217   OPC_EmitConvertToTarget, 1,
11218   OPC_EmitConvertToTarget, 2,
11219   OPC_MorphNodeTo1, TARGET_VAL(Mips::CINS_i32), 0,
11220                 MVT::i32, 3, 0, 3, 4,
11221  0,
11222 45|128,1, TARGET_VAL(ISD::ZERO_EXTEND),
11223  OPC_Scope, 125,
11224   OPC_MoveChild0,
11225   OPC_SwitchOpcode , 84, TARGET_VAL(ISD::SETCC),
11226    OPC_RecordChild0,
11227    OPC_CheckChild0Type, MVT::i64,
11228    OPC_RecordChild1,
11229    OPC_Scope, 45,
11230     OPC_MoveChild1,
11231     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11232     OPC_CheckPredicate, 46,
11233     OPC_MoveParent,
11234     OPC_Scope, 17,
11235      OPC_CheckChild2CondCode, ISD::SETEQ,
11236      OPC_MoveParent,
11237      OPC_CheckType, MVT::i64,
11238      OPC_CheckPatternPredicate, 31,
11239      OPC_EmitConvertToTarget, 1,
11240      OPC_MorphNodeTo1, TARGET_VAL(Mips::SEQi), 0,
11241                    MVT::i64, 2, 0, 2,
11242     17,
11243      OPC_CheckChild2CondCode, ISD::SETNE,
11244      OPC_MoveParent,
11245      OPC_CheckType, MVT::i64,
11246      OPC_CheckPatternPredicate, 31,
11247      OPC_EmitConvertToTarget, 1,
11248      OPC_MorphNodeTo1, TARGET_VAL(Mips::SNEi), 0,
11249                    MVT::i64, 2, 0, 2,
11250     0,
11251    15,
11252     OPC_CheckChild2CondCode, ISD::SETEQ,
11253     OPC_MoveParent,
11254     OPC_CheckType, MVT::i64,
11255     OPC_CheckPatternPredicate, 31,
11256     OPC_MorphNodeTo1, TARGET_VAL(Mips::SEQ), 0,
11257                   MVT::i64, 2, 0, 1,
11258    15,
11259     OPC_CheckChild2CondCode, ISD::SETNE,
11260     OPC_MoveParent,
11261     OPC_CheckType, MVT::i64,
11262     OPC_CheckPatternPredicate, 31,
11263     OPC_MorphNodeTo1, TARGET_VAL(Mips::SNE), 0,
11264                   MVT::i64, 2, 0, 1,
11265    0,
11266   32, TARGET_VAL(ISD::SHL),
11267    OPC_RecordChild0,
11268    OPC_RecordChild1,
11269    OPC_MoveChild1,
11270    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11271    OPC_CheckPredicate, 25,
11272    OPC_CheckType, MVT::i32,
11273    OPC_MoveParent,
11274    OPC_MoveParent,
11275    OPC_CheckType, MVT::i64,
11276    OPC_CheckPatternPredicate, 59,
11277    OPC_EmitConvertToTarget, 1,
11278    OPC_EmitConvertToTarget, 1,
11279    OPC_EmitNodeXForm, 4, 3,
11280    OPC_MorphNodeTo1, TARGET_VAL(Mips::CINS64_32), 0,
11281                  MVT::i64, 3, 0, 2, 4,
11282   0,
11283  44,
11284   OPC_RecordChild0,
11285   OPC_CheckType, MVT::i64,
11286   OPC_Scope, 17,
11287    OPC_CheckPatternPredicate, 60,
11288    OPC_EmitInteger, MVT::i32, 0,
11289    OPC_EmitInteger, MVT::i32, 64,
11290    OPC_MorphNodeTo1, TARGET_VAL(Mips::DEXT64_32), 0,
11291                  MVT::i64, 3, 0, 1, 2,
11292   20,
11293    OPC_CheckPatternPredicate, 29,
11294    OPC_EmitNode1, TARGET_VAL(Mips::DSLL64_32), 0,
11295                  MVT::i64, 1, 0,
11296    OPC_EmitInteger, MVT::i32, 64,
11297    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRL), 0,
11298                  MVT::i64, 2, 1, 2,
11299   0,
11300  0,
11301 79|128,15, TARGET_VAL(ISD::ADD),
11302  OPC_Scope, 49,
11303   OPC_RecordChild0,
11304   OPC_MoveChild1,
11305   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
11306   OPC_RecordChild0,
11307   OPC_RecordChild1,
11308   OPC_MoveChild1,
11309   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11310   OPC_CheckPredicate, 47,
11311   OPC_CheckType, MVT::i32,
11312   OPC_MoveParent,
11313   OPC_MoveParent,
11314   OPC_SwitchType , 13, MVT::i32,
11315    OPC_CheckPatternPredicate, 26,
11316    OPC_EmitConvertToTarget, 2,
11317    OPC_MorphNodeTo1, TARGET_VAL(Mips::LSA), 0,
11318                  MVT::i32, 3, 1, 0, 3,
11319   13, MVT::i64,
11320    OPC_CheckPatternPredicate, 61,
11321    OPC_EmitConvertToTarget, 2,
11322    OPC_MorphNodeTo1, TARGET_VAL(Mips::DLSA), 0,
11323                  MVT::i64, 3, 1, 0, 3,
11324   0,
11325  49,
11326   OPC_MoveChild0,
11327   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
11328   OPC_RecordChild0,
11329   OPC_RecordChild1,
11330   OPC_MoveChild1,
11331   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11332   OPC_CheckPredicate, 47,
11333   OPC_CheckType, MVT::i32,
11334   OPC_MoveParent,
11335   OPC_MoveParent,
11336   OPC_RecordChild1,
11337   OPC_SwitchType , 13, MVT::i32,
11338    OPC_CheckPatternPredicate, 26,
11339    OPC_EmitConvertToTarget, 1,
11340    OPC_MorphNodeTo1, TARGET_VAL(Mips::LSA), 0,
11341                  MVT::i32, 3, 0, 2, 3,
11342   13, MVT::i64,
11343    OPC_CheckPatternPredicate, 61,
11344    OPC_EmitConvertToTarget, 1,
11345    OPC_MorphNodeTo1, TARGET_VAL(Mips::DLSA), 0,
11346                  MVT::i64, 3, 0, 2, 3,
11347   0,
11348  18|128,5,
11349   OPC_RecordChild0,
11350   OPC_MoveChild1,
11351   OPC_SwitchOpcode , 113|128,2, TARGET_VAL(MipsISD::Lo),
11352    OPC_RecordChild0,
11353    OPC_MoveChild0,
11354    OPC_SwitchOpcode , 67, TARGET_VAL(ISD::TargetGlobalAddress),
11355     OPC_MoveParent,
11356     OPC_MoveParent,
11357     OPC_SwitchType , 35, MVT::i32,
11358      OPC_Scope, 10,
11359       OPC_CheckPatternPredicate, 7,
11360       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11361                     MVT::i32, 2, 0, 1,
11362      10,
11363       OPC_CheckPatternPredicate, 15,
11364       OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImmX16), 0,
11365                     MVT::i32, 2, 0, 1,
11366      10,
11367       OPC_CheckPatternPredicate, 8,
11368       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11369                     MVT::i32, 2, 0, 1,
11370      0,
11371     24, MVT::i64,
11372      OPC_Scope, 10,
11373       OPC_CheckPatternPredicate, 62,
11374       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11375                     MVT::i64, 2, 0, 1,
11376      10,
11377       OPC_CheckPatternPredicate, 63,
11378       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11379                     MVT::i64, 2, 0, 1,
11380      0,
11381     0,
11382    56, TARGET_VAL(ISD::TargetBlockAddress),
11383     OPC_MoveParent,
11384     OPC_MoveParent,
11385     OPC_SwitchType , 24, MVT::i32,
11386      OPC_Scope, 10,
11387       OPC_CheckPatternPredicate, 7,
11388       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11389                     MVT::i32, 2, 0, 1,
11390      10,
11391       OPC_CheckPatternPredicate, 8,
11392       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11393                     MVT::i32, 2, 0, 1,
11394      0,
11395     24, MVT::i64,
11396      OPC_Scope, 10,
11397       OPC_CheckPatternPredicate, 62,
11398       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11399                     MVT::i64, 2, 0, 1,
11400      10,
11401       OPC_CheckPatternPredicate, 63,
11402       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11403                     MVT::i64, 2, 0, 1,
11404      0,
11405     0,
11406    56, TARGET_VAL(ISD::TargetJumpTable),
11407     OPC_MoveParent,
11408     OPC_MoveParent,
11409     OPC_SwitchType , 24, MVT::i32,
11410      OPC_Scope, 10,
11411       OPC_CheckPatternPredicate, 7,
11412       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11413                     MVT::i32, 2, 0, 1,
11414      10,
11415       OPC_CheckPatternPredicate, 8,
11416       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11417                     MVT::i32, 2, 0, 1,
11418      0,
11419     24, MVT::i64,
11420      OPC_Scope, 10,
11421       OPC_CheckPatternPredicate, 62,
11422       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11423                     MVT::i64, 2, 0, 1,
11424      10,
11425       OPC_CheckPatternPredicate, 63,
11426       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11427                     MVT::i64, 2, 0, 1,
11428      0,
11429     0,
11430    56, TARGET_VAL(ISD::TargetConstantPool),
11431     OPC_MoveParent,
11432     OPC_MoveParent,
11433     OPC_SwitchType , 24, MVT::i32,
11434      OPC_Scope, 10,
11435       OPC_CheckPatternPredicate, 7,
11436       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11437                     MVT::i32, 2, 0, 1,
11438      10,
11439       OPC_CheckPatternPredicate, 8,
11440       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11441                     MVT::i32, 2, 0, 1,
11442      0,
11443     24, MVT::i64,
11444      OPC_Scope, 10,
11445       OPC_CheckPatternPredicate, 62,
11446       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11447                     MVT::i64, 2, 0, 1,
11448      10,
11449       OPC_CheckPatternPredicate, 63,
11450       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11451                     MVT::i64, 2, 0, 1,
11452      0,
11453     0,
11454    56, TARGET_VAL(ISD::TargetGlobalTLSAddress),
11455     OPC_MoveParent,
11456     OPC_MoveParent,
11457     OPC_SwitchType , 24, MVT::i32,
11458      OPC_Scope, 10,
11459       OPC_CheckPatternPredicate, 7,
11460       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11461                     MVT::i32, 2, 0, 1,
11462      10,
11463       OPC_CheckPatternPredicate, 8,
11464       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11465                     MVT::i32, 2, 0, 1,
11466      0,
11467     24, MVT::i64,
11468      OPC_Scope, 10,
11469       OPC_CheckPatternPredicate, 62,
11470       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11471                     MVT::i64, 2, 0, 1,
11472      10,
11473       OPC_CheckPatternPredicate, 63,
11474       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11475                     MVT::i64, 2, 0, 1,
11476      0,
11477     0,
11478    56, TARGET_VAL(ISD::TargetExternalSymbol),
11479     OPC_MoveParent,
11480     OPC_MoveParent,
11481     OPC_SwitchType , 24, MVT::i32,
11482      OPC_Scope, 10,
11483       OPC_CheckPatternPredicate, 7,
11484       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11485                     MVT::i32, 2, 0, 1,
11486      10,
11487       OPC_CheckPatternPredicate, 8,
11488       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11489                     MVT::i32, 2, 0, 1,
11490      0,
11491     24, MVT::i64,
11492      OPC_Scope, 10,
11493       OPC_CheckPatternPredicate, 62,
11494       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11495                     MVT::i64, 2, 0, 1,
11496      10,
11497       OPC_CheckPatternPredicate, 63,
11498       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11499                     MVT::i64, 2, 0, 1,
11500      0,
11501     0,
11502    0,
11503   94, TARGET_VAL(MipsISD::GPRel),
11504    OPC_RecordChild0,
11505    OPC_MoveChild0,
11506    OPC_SwitchOpcode , 42, TARGET_VAL(ISD::TargetGlobalAddress),
11507     OPC_MoveParent,
11508     OPC_MoveParent,
11509     OPC_SwitchType , 24, MVT::i32,
11510      OPC_Scope, 10,
11511       OPC_CheckPatternPredicate, 7,
11512       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11513                     MVT::i32, 2, 0, 1,
11514      10,
11515       OPC_CheckPatternPredicate, 8,
11516       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11517                     MVT::i32, 2, 0, 1,
11518      0,
11519     10, MVT::i64,
11520      OPC_CheckPatternPredicate, 64,
11521      OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11522                    MVT::i64, 2, 0, 1,
11523     0,
11524    42, TARGET_VAL(ISD::TargetConstantPool),
11525     OPC_MoveParent,
11526     OPC_MoveParent,
11527     OPC_SwitchType , 24, MVT::i32,
11528      OPC_Scope, 10,
11529       OPC_CheckPatternPredicate, 7,
11530       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11531                     MVT::i32, 2, 0, 1,
11532      10,
11533       OPC_CheckPatternPredicate, 8,
11534       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11535                     MVT::i32, 2, 0, 1,
11536      0,
11537     10, MVT::i64,
11538      OPC_CheckPatternPredicate, 64,
11539      OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11540                    MVT::i64, 2, 0, 1,
11541     0,
11542    0,
11543   89, TARGET_VAL(MipsISD::Higher),
11544    OPC_RecordChild0,
11545    OPC_MoveChild0,
11546    OPC_SwitchOpcode , 14, TARGET_VAL(ISD::TargetGlobalAddress),
11547     OPC_MoveParent,
11548     OPC_MoveParent,
11549     OPC_CheckType, MVT::i64,
11550     OPC_CheckPatternPredicate, 63,
11551     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11552                   MVT::i64, 2, 0, 1,
11553    14, TARGET_VAL(ISD::TargetBlockAddress),
11554     OPC_MoveParent,
11555     OPC_MoveParent,
11556     OPC_CheckType, MVT::i64,
11557     OPC_CheckPatternPredicate, 63,
11558     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11559                   MVT::i64, 2, 0, 1,
11560    14, TARGET_VAL(ISD::TargetJumpTable),
11561     OPC_MoveParent,
11562     OPC_MoveParent,
11563     OPC_CheckType, MVT::i64,
11564     OPC_CheckPatternPredicate, 63,
11565     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11566                   MVT::i64, 2, 0, 1,
11567    14, TARGET_VAL(ISD::TargetConstantPool),
11568     OPC_MoveParent,
11569     OPC_MoveParent,
11570     OPC_CheckType, MVT::i64,
11571     OPC_CheckPatternPredicate, 63,
11572     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11573                   MVT::i64, 2, 0, 1,
11574    14, TARGET_VAL(ISD::TargetExternalSymbol),
11575     OPC_MoveParent,
11576     OPC_MoveParent,
11577     OPC_CheckType, MVT::i64,
11578     OPC_CheckPatternPredicate, 63,
11579     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11580                   MVT::i64, 2, 0, 1,
11581    0,
11582   89, TARGET_VAL(MipsISD::Hi),
11583    OPC_RecordChild0,
11584    OPC_MoveChild0,
11585    OPC_SwitchOpcode , 14, TARGET_VAL(ISD::TargetGlobalAddress),
11586     OPC_MoveParent,
11587     OPC_MoveParent,
11588     OPC_CheckType, MVT::i64,
11589     OPC_CheckPatternPredicate, 63,
11590     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11591                   MVT::i64, 2, 0, 1,
11592    14, TARGET_VAL(ISD::TargetBlockAddress),
11593     OPC_MoveParent,
11594     OPC_MoveParent,
11595     OPC_CheckType, MVT::i64,
11596     OPC_CheckPatternPredicate, 63,
11597     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11598                   MVT::i64, 2, 0, 1,
11599    14, TARGET_VAL(ISD::TargetJumpTable),
11600     OPC_MoveParent,
11601     OPC_MoveParent,
11602     OPC_CheckType, MVT::i64,
11603     OPC_CheckPatternPredicate, 63,
11604     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11605                   MVT::i64, 2, 0, 1,
11606    14, TARGET_VAL(ISD::TargetConstantPool),
11607     OPC_MoveParent,
11608     OPC_MoveParent,
11609     OPC_CheckType, MVT::i64,
11610     OPC_CheckPatternPredicate, 63,
11611     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11612                   MVT::i64, 2, 0, 1,
11613    14, TARGET_VAL(ISD::TargetExternalSymbol),
11614     OPC_MoveParent,
11615     OPC_MoveParent,
11616     OPC_CheckType, MVT::i64,
11617     OPC_CheckPatternPredicate, 63,
11618     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11619                   MVT::i64, 2, 0, 1,
11620    0,
11621   0,
11622  35|128,5,
11623   OPC_MoveChild0,
11624   OPC_SwitchOpcode , 119|128,2, TARGET_VAL(MipsISD::Lo),
11625    OPC_RecordChild0,
11626    OPC_MoveChild0,
11627    OPC_SwitchOpcode , 68, TARGET_VAL(ISD::TargetGlobalAddress),
11628     OPC_MoveParent,
11629     OPC_MoveParent,
11630     OPC_RecordChild1,
11631     OPC_SwitchType , 35, MVT::i32,
11632      OPC_Scope, 10,
11633       OPC_CheckPatternPredicate, 7,
11634       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11635                     MVT::i32, 2, 1, 0,
11636      10,
11637       OPC_CheckPatternPredicate, 15,
11638       OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImmX16), 0,
11639                     MVT::i32, 2, 1, 0,
11640      10,
11641       OPC_CheckPatternPredicate, 8,
11642       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11643                     MVT::i32, 2, 1, 0,
11644      0,
11645     24, MVT::i64,
11646      OPC_Scope, 10,
11647       OPC_CheckPatternPredicate, 62,
11648       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11649                     MVT::i64, 2, 1, 0,
11650      10,
11651       OPC_CheckPatternPredicate, 63,
11652       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11653                     MVT::i64, 2, 1, 0,
11654      0,
11655     0,
11656    57, TARGET_VAL(ISD::TargetBlockAddress),
11657     OPC_MoveParent,
11658     OPC_MoveParent,
11659     OPC_RecordChild1,
11660     OPC_SwitchType , 24, MVT::i32,
11661      OPC_Scope, 10,
11662       OPC_CheckPatternPredicate, 7,
11663       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11664                     MVT::i32, 2, 1, 0,
11665      10,
11666       OPC_CheckPatternPredicate, 8,
11667       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11668                     MVT::i32, 2, 1, 0,
11669      0,
11670     24, MVT::i64,
11671      OPC_Scope, 10,
11672       OPC_CheckPatternPredicate, 62,
11673       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11674                     MVT::i64, 2, 1, 0,
11675      10,
11676       OPC_CheckPatternPredicate, 63,
11677       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11678                     MVT::i64, 2, 1, 0,
11679      0,
11680     0,
11681    57, TARGET_VAL(ISD::TargetJumpTable),
11682     OPC_MoveParent,
11683     OPC_MoveParent,
11684     OPC_RecordChild1,
11685     OPC_SwitchType , 24, MVT::i32,
11686      OPC_Scope, 10,
11687       OPC_CheckPatternPredicate, 7,
11688       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11689                     MVT::i32, 2, 1, 0,
11690      10,
11691       OPC_CheckPatternPredicate, 8,
11692       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11693                     MVT::i32, 2, 1, 0,
11694      0,
11695     24, MVT::i64,
11696      OPC_Scope, 10,
11697       OPC_CheckPatternPredicate, 62,
11698       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11699                     MVT::i64, 2, 1, 0,
11700      10,
11701       OPC_CheckPatternPredicate, 63,
11702       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11703                     MVT::i64, 2, 1, 0,
11704      0,
11705     0,
11706    57, TARGET_VAL(ISD::TargetConstantPool),
11707     OPC_MoveParent,
11708     OPC_MoveParent,
11709     OPC_RecordChild1,
11710     OPC_SwitchType , 24, MVT::i32,
11711      OPC_Scope, 10,
11712       OPC_CheckPatternPredicate, 7,
11713       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11714                     MVT::i32, 2, 1, 0,
11715      10,
11716       OPC_CheckPatternPredicate, 8,
11717       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11718                     MVT::i32, 2, 1, 0,
11719      0,
11720     24, MVT::i64,
11721      OPC_Scope, 10,
11722       OPC_CheckPatternPredicate, 62,
11723       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11724                     MVT::i64, 2, 1, 0,
11725      10,
11726       OPC_CheckPatternPredicate, 63,
11727       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11728                     MVT::i64, 2, 1, 0,
11729      0,
11730     0,
11731    57, TARGET_VAL(ISD::TargetGlobalTLSAddress),
11732     OPC_MoveParent,
11733     OPC_MoveParent,
11734     OPC_RecordChild1,
11735     OPC_SwitchType , 24, MVT::i32,
11736      OPC_Scope, 10,
11737       OPC_CheckPatternPredicate, 7,
11738       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11739                     MVT::i32, 2, 1, 0,
11740      10,
11741       OPC_CheckPatternPredicate, 8,
11742       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11743                     MVT::i32, 2, 1, 0,
11744      0,
11745     24, MVT::i64,
11746      OPC_Scope, 10,
11747       OPC_CheckPatternPredicate, 62,
11748       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11749                     MVT::i64, 2, 1, 0,
11750      10,
11751       OPC_CheckPatternPredicate, 63,
11752       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11753                     MVT::i64, 2, 1, 0,
11754      0,
11755     0,
11756    57, TARGET_VAL(ISD::TargetExternalSymbol),
11757     OPC_MoveParent,
11758     OPC_MoveParent,
11759     OPC_RecordChild1,
11760     OPC_SwitchType , 24, MVT::i32,
11761      OPC_Scope, 10,
11762       OPC_CheckPatternPredicate, 7,
11763       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11764                     MVT::i32, 2, 1, 0,
11765      10,
11766       OPC_CheckPatternPredicate, 8,
11767       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11768                     MVT::i32, 2, 1, 0,
11769      0,
11770     24, MVT::i64,
11771      OPC_Scope, 10,
11772       OPC_CheckPatternPredicate, 62,
11773       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11774                     MVT::i64, 2, 1, 0,
11775      10,
11776       OPC_CheckPatternPredicate, 63,
11777       OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11778                     MVT::i64, 2, 1, 0,
11779      0,
11780     0,
11781    0,
11782   96, TARGET_VAL(MipsISD::GPRel),
11783    OPC_RecordChild0,
11784    OPC_MoveChild0,
11785    OPC_SwitchOpcode , 43, TARGET_VAL(ISD::TargetGlobalAddress),
11786     OPC_MoveParent,
11787     OPC_MoveParent,
11788     OPC_RecordChild1,
11789     OPC_SwitchType , 24, MVT::i32,
11790      OPC_Scope, 10,
11791       OPC_CheckPatternPredicate, 7,
11792       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11793                     MVT::i32, 2, 1, 0,
11794      10,
11795       OPC_CheckPatternPredicate, 8,
11796       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11797                     MVT::i32, 2, 1, 0,
11798      0,
11799     10, MVT::i64,
11800      OPC_CheckPatternPredicate, 64,
11801      OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11802                    MVT::i64, 2, 1, 0,
11803     0,
11804    43, TARGET_VAL(ISD::TargetConstantPool),
11805     OPC_MoveParent,
11806     OPC_MoveParent,
11807     OPC_RecordChild1,
11808     OPC_SwitchType , 24, MVT::i32,
11809      OPC_Scope, 10,
11810       OPC_CheckPatternPredicate, 7,
11811       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11812                     MVT::i32, 2, 1, 0,
11813      10,
11814       OPC_CheckPatternPredicate, 8,
11815       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11816                     MVT::i32, 2, 1, 0,
11817      0,
11818     10, MVT::i64,
11819      OPC_CheckPatternPredicate, 64,
11820      OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11821                    MVT::i64, 2, 1, 0,
11822     0,
11823    0,
11824   94, TARGET_VAL(MipsISD::Higher),
11825    OPC_RecordChild0,
11826    OPC_MoveChild0,
11827    OPC_SwitchOpcode , 15, TARGET_VAL(ISD::TargetGlobalAddress),
11828     OPC_MoveParent,
11829     OPC_MoveParent,
11830     OPC_RecordChild1,
11831     OPC_CheckType, MVT::i64,
11832     OPC_CheckPatternPredicate, 63,
11833     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11834                   MVT::i64, 2, 1, 0,
11835    15, TARGET_VAL(ISD::TargetBlockAddress),
11836     OPC_MoveParent,
11837     OPC_MoveParent,
11838     OPC_RecordChild1,
11839     OPC_CheckType, MVT::i64,
11840     OPC_CheckPatternPredicate, 63,
11841     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11842                   MVT::i64, 2, 1, 0,
11843    15, TARGET_VAL(ISD::TargetJumpTable),
11844     OPC_MoveParent,
11845     OPC_MoveParent,
11846     OPC_RecordChild1,
11847     OPC_CheckType, MVT::i64,
11848     OPC_CheckPatternPredicate, 63,
11849     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11850                   MVT::i64, 2, 1, 0,
11851    15, TARGET_VAL(ISD::TargetConstantPool),
11852     OPC_MoveParent,
11853     OPC_MoveParent,
11854     OPC_RecordChild1,
11855     OPC_CheckType, MVT::i64,
11856     OPC_CheckPatternPredicate, 63,
11857     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11858                   MVT::i64, 2, 1, 0,
11859    15, TARGET_VAL(ISD::TargetExternalSymbol),
11860     OPC_MoveParent,
11861     OPC_MoveParent,
11862     OPC_RecordChild1,
11863     OPC_CheckType, MVT::i64,
11864     OPC_CheckPatternPredicate, 63,
11865     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11866                   MVT::i64, 2, 1, 0,
11867    0,
11868   94, TARGET_VAL(MipsISD::Hi),
11869    OPC_RecordChild0,
11870    OPC_MoveChild0,
11871    OPC_SwitchOpcode , 15, TARGET_VAL(ISD::TargetGlobalAddress),
11872     OPC_MoveParent,
11873     OPC_MoveParent,
11874     OPC_RecordChild1,
11875     OPC_CheckType, MVT::i64,
11876     OPC_CheckPatternPredicate, 63,
11877     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11878                   MVT::i64, 2, 1, 0,
11879    15, TARGET_VAL(ISD::TargetBlockAddress),
11880     OPC_MoveParent,
11881     OPC_MoveParent,
11882     OPC_RecordChild1,
11883     OPC_CheckType, MVT::i64,
11884     OPC_CheckPatternPredicate, 63,
11885     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11886                   MVT::i64, 2, 1, 0,
11887    15, TARGET_VAL(ISD::TargetJumpTable),
11888     OPC_MoveParent,
11889     OPC_MoveParent,
11890     OPC_RecordChild1,
11891     OPC_CheckType, MVT::i64,
11892     OPC_CheckPatternPredicate, 63,
11893     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11894                   MVT::i64, 2, 1, 0,
11895    15, TARGET_VAL(ISD::TargetConstantPool),
11896     OPC_MoveParent,
11897     OPC_MoveParent,
11898     OPC_RecordChild1,
11899     OPC_CheckType, MVT::i64,
11900     OPC_CheckPatternPredicate, 63,
11901     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11902                   MVT::i64, 2, 1, 0,
11903    15, TARGET_VAL(ISD::TargetExternalSymbol),
11904     OPC_MoveParent,
11905     OPC_MoveParent,
11906     OPC_RecordChild1,
11907     OPC_CheckType, MVT::i64,
11908     OPC_CheckPatternPredicate, 63,
11909     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11910                   MVT::i64, 2, 1, 0,
11911    0,
11912   0,
11913  34|128,3,
11914   OPC_RecordChild0,
11915   OPC_Scope, 95|128,2,
11916    OPC_RecordChild1,
11917    OPC_Scope, 20|128,1,
11918     OPC_MoveChild1,
11919     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
11920     OPC_Scope, 17,
11921      OPC_CheckPredicate, 48,
11922      OPC_MoveParent,
11923      OPC_CheckType, MVT::i32,
11924      OPC_CheckPatternPredicate, 7,
11925      OPC_EmitConvertToTarget, 1,
11926      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
11927                    MVT::i32, 2, 0, 2,
11928     17,
11929      OPC_CheckPredicate, 19,
11930      OPC_MoveParent,
11931      OPC_CheckType, MVT::i64,
11932      OPC_CheckPatternPredicate, 25,
11933      OPC_EmitConvertToTarget, 1,
11934      OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
11935                    MVT::i64, 2, 0, 2,
11936     17,
11937      OPC_CheckPredicate, 49,
11938      OPC_MoveParent,
11939      OPC_CheckType, MVT::i32,
11940      OPC_CheckPatternPredicate, 15,
11941      OPC_EmitConvertToTarget, 1,
11942      OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImm16), 0,
11943                    MVT::i32, 2, 0, 2,
11944     17,
11945      OPC_CheckPredicate, 19,
11946      OPC_MoveParent,
11947      OPC_CheckType, MVT::i32,
11948      OPC_CheckPatternPredicate, 15,
11949      OPC_EmitConvertToTarget, 1,
11950      OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImmX16), 0,
11951                    MVT::i32, 2, 0, 2,
11952     17,
11953      OPC_CheckPredicate, 50,
11954      OPC_MoveParent,
11955      OPC_CheckType, MVT::i32,
11956      OPC_CheckPatternPredicate, 8,
11957      OPC_EmitConvertToTarget, 1,
11958      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDIUR2_MM), 0,
11959                    MVT::i32, 2, 0, 2,
11960     17,
11961      OPC_CheckPredicate, 51,
11962      OPC_MoveParent,
11963      OPC_CheckType, MVT::i32,
11964      OPC_CheckPatternPredicate, 8,
11965      OPC_EmitConvertToTarget, 1,
11966      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDIUS5_MM), 0,
11967                    MVT::i32, 2, 0, 2,
11968     33,
11969      OPC_CheckPredicate, 19,
11970      OPC_MoveParent,
11971      OPC_CheckType, MVT::i32,
11972      OPC_Scope, 12,
11973       OPC_CheckPatternPredicate, 8,
11974       OPC_EmitConvertToTarget, 1,
11975       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
11976                     MVT::i32, 2, 0, 2,
11977      12,
11978       OPC_CheckPatternPredicate, 16,
11979       OPC_EmitConvertToTarget, 1,
11980       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDIU_MMR6), 0,
11981                     MVT::i32, 2, 0, 2,
11982      0,
11983     0,
11984    60,
11985     OPC_CheckType, MVT::i32,
11986     OPC_Scope, 10,
11987      OPC_CheckPatternPredicate, 16,
11988      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU16_MMR6), 0,
11989                    MVT::i32, 2, 0, 1,
11990     10,
11991      OPC_CheckPatternPredicate, 7,
11992      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDu), 0,
11993                    MVT::i32, 2, 0, 1,
11994     10,
11995      OPC_CheckPatternPredicate, 15,
11996      OPC_MorphNodeTo1, TARGET_VAL(Mips::AdduRxRyRz16), 0,
11997                    MVT::i32, 2, 0, 1,
11998     22,
11999      OPC_CheckPatternPredicate, 30,
12000      OPC_Scope, 8,
12001       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU16_MM), 0,
12002                     MVT::i32, 2, 0, 1,
12003      8,
12004       OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDu_MM), 0,
12005                     MVT::i32, 2, 0, 1,
12006      0,
12007     0,
12008    12,
12009     OPC_CheckType, MVT::i64,
12010     OPC_CheckPatternPredicate, 25,
12011     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDu), 0,
12012                   MVT::i64, 2, 0, 1,
12013    30,
12014     OPC_CheckType, MVT::v16i8,
12015     OPC_CheckPatternPredicate, 26,
12016     OPC_Scope, 11,
12017      OPC_CheckComplexPat, /*CP*/16, /*#*/1,
12018      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_B), 0,
12019                    MVT::v16i8, 2, 0, 2,
12020     11,
12021      OPC_CheckComplexPat, /*CP*/16, /*#*/0,
12022      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_B), 0,
12023                    MVT::v16i8, 2, 1, 2,
12024     0,
12025    30,
12026     OPC_CheckType, MVT::v8i16,
12027     OPC_CheckPatternPredicate, 26,
12028     OPC_Scope, 11,
12029      OPC_CheckComplexPat, /*CP*/17, /*#*/1,
12030      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_H), 0,
12031                    MVT::v8i16, 2, 0, 2,
12032     11,
12033      OPC_CheckComplexPat, /*CP*/17, /*#*/0,
12034      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_H), 0,
12035                    MVT::v8i16, 2, 1, 2,
12036     0,
12037    30,
12038     OPC_CheckType, MVT::v4i32,
12039     OPC_CheckPatternPredicate, 26,
12040     OPC_Scope, 11,
12041      OPC_CheckComplexPat, /*CP*/18, /*#*/1,
12042      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_W), 0,
12043                    MVT::v4i32, 2, 0, 2,
12044     11,
12045      OPC_CheckComplexPat, /*CP*/18, /*#*/0,
12046      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_W), 0,
12047                    MVT::v4i32, 2, 1, 2,
12048     0,
12049    30,
12050     OPC_CheckType, MVT::v2i64,
12051     OPC_CheckPatternPredicate, 26,
12052     OPC_Scope, 11,
12053      OPC_CheckComplexPat, /*CP*/19, /*#*/1,
12054      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_D), 0,
12055                    MVT::v2i64, 2, 0, 2,
12056     11,
12057      OPC_CheckComplexPat, /*CP*/19, /*#*/0,
12058      OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDVI_D), 0,
12059                    MVT::v2i64, 2, 1, 2,
12060     0,
12061    0,
12062   61,
12063    OPC_MoveChild1,
12064    OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
12065    OPC_RecordChild0,
12066    OPC_RecordChild1,
12067    OPC_MoveParent,
12068    OPC_SwitchType , 11, MVT::v16i8,
12069     OPC_CheckPatternPredicate, 26,
12070     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_B), 0,
12071                   MVT::v16i8, 3, 0, 1, 2,
12072    11, MVT::v8i16,
12073     OPC_CheckPatternPredicate, 26,
12074     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_H), 0,
12075                   MVT::v8i16, 3, 0, 1, 2,
12076    11, MVT::v4i32,
12077     OPC_CheckPatternPredicate, 26,
12078     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_W), 0,
12079                   MVT::v4i32, 3, 0, 1, 2,
12080    11, MVT::v2i64,
12081     OPC_CheckPatternPredicate, 26,
12082     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_D), 0,
12083                   MVT::v2i64, 3, 0, 1, 2,
12084    0,
12085   0,
12086  62,
12087   OPC_MoveChild0,
12088   OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
12089   OPC_RecordChild0,
12090   OPC_RecordChild1,
12091   OPC_MoveParent,
12092   OPC_RecordChild1,
12093   OPC_SwitchType , 11, MVT::v16i8,
12094    OPC_CheckPatternPredicate, 26,
12095    OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_B), 0,
12096                  MVT::v16i8, 3, 2, 0, 1,
12097   11, MVT::v8i16,
12098    OPC_CheckPatternPredicate, 26,
12099    OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_H), 0,
12100                  MVT::v8i16, 3, 2, 0, 1,
12101   11, MVT::v4i32,
12102    OPC_CheckPatternPredicate, 26,
12103    OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_W), 0,
12104                  MVT::v4i32, 3, 2, 0, 1,
12105   11, MVT::v2i64,
12106    OPC_CheckPatternPredicate, 26,
12107    OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDV_D), 0,
12108                  MVT::v2i64, 3, 2, 0, 1,
12109   0,
12110  76,
12111   OPC_RecordChild0,
12112   OPC_RecordChild1,
12113   OPC_SwitchType , 10, MVT::v2i16,
12114    OPC_CheckPatternPredicate, 28,
12115    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDQ_PH), 0,
12116                  MVT::v2i16, 2, 0, 1,
12117   10, MVT::v4i8,
12118    OPC_CheckPatternPredicate, 28,
12119    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDU_QB), 0,
12120                  MVT::v4i8, 2, 0, 1,
12121   10, MVT::v16i8,
12122    OPC_CheckPatternPredicate, 26,
12123    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDV_B), 0,
12124                  MVT::v16i8, 2, 0, 1,
12125   10, MVT::v8i16,
12126    OPC_CheckPatternPredicate, 26,
12127    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDV_H), 0,
12128                  MVT::v8i16, 2, 0, 1,
12129   10, MVT::v4i32,
12130    OPC_CheckPatternPredicate, 26,
12131    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDV_W), 0,
12132                  MVT::v4i32, 2, 0, 1,
12133   10, MVT::v2i64,
12134    OPC_CheckPatternPredicate, 26,
12135    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDV_D), 0,
12136                  MVT::v2i64, 2, 0, 1,
12137   0,
12138  0,
12139 7|128,5, TARGET_VAL(ISD::SIGN_EXTEND),
12140  OPC_Scope, 118|128,4,
12141   OPC_MoveChild0,
12142   OPC_SwitchOpcode , 73, TARGET_VAL(ISD::ADD),
12143    OPC_RecordChild0,
12144    OPC_RecordChild1,
12145    OPC_Scope, 38,
12146     OPC_MoveChild1,
12147     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12148     OPC_CheckPredicate, 19,
12149     OPC_MoveParent,
12150     OPC_MoveParent,
12151     OPC_CheckType, MVT::i64,
12152     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12153                   MVT::i64, 0,
12154     OPC_EmitConvertToTarget, 1,
12155     OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
12156                   MVT::i32, 2, 0, 3,
12157     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12158     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12159                   MVT::i64, 3, 2, 4, 5,
12160    29,
12161     OPC_MoveParent,
12162     OPC_CheckType, MVT::i64,
12163     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12164                   MVT::i64, 0,
12165     OPC_EmitNode1, TARGET_VAL(Mips::ADDu), 0,
12166                   MVT::i32, 2, 0, 1,
12167     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12168     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12169                   MVT::i64, 3, 2, 3, 4,
12170    0,
12171   77, TARGET_VAL(ISD::SHL),
12172    OPC_RecordChild0,
12173    OPC_RecordChild1,
12174    OPC_Scope, 40,
12175     OPC_MoveChild1,
12176     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12177     OPC_CheckPredicate, 25,
12178     OPC_CheckType, MVT::i32,
12179     OPC_MoveParent,
12180     OPC_MoveParent,
12181     OPC_CheckType, MVT::i64,
12182     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12183                   MVT::i64, 0,
12184     OPC_EmitConvertToTarget, 1,
12185     OPC_EmitNode1, TARGET_VAL(Mips::SLL), 0,
12186                   MVT::i32, 2, 0, 3,
12187     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12188     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12189                   MVT::i64, 3, 2, 4, 5,
12190    31,
12191     OPC_CheckChild1Type, MVT::i32,
12192     OPC_MoveParent,
12193     OPC_CheckType, MVT::i64,
12194     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12195                   MVT::i64, 0,
12196     OPC_EmitNode1, TARGET_VAL(Mips::SLLV), 0,
12197                   MVT::i32, 2, 0, 1,
12198     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12199     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12200                   MVT::i64, 3, 2, 3, 4,
12201    0,
12202   77, TARGET_VAL(ISD::SRL),
12203    OPC_RecordChild0,
12204    OPC_RecordChild1,
12205    OPC_Scope, 40,
12206     OPC_MoveChild1,
12207     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12208     OPC_CheckPredicate, 25,
12209     OPC_CheckType, MVT::i32,
12210     OPC_MoveParent,
12211     OPC_MoveParent,
12212     OPC_CheckType, MVT::i64,
12213     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12214                   MVT::i64, 0,
12215     OPC_EmitConvertToTarget, 1,
12216     OPC_EmitNode1, TARGET_VAL(Mips::SRL), 0,
12217                   MVT::i32, 2, 0, 3,
12218     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12219     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12220                   MVT::i64, 3, 2, 4, 5,
12221    31,
12222     OPC_CheckChild1Type, MVT::i32,
12223     OPC_MoveParent,
12224     OPC_CheckType, MVT::i64,
12225     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12226                   MVT::i64, 0,
12227     OPC_EmitNode1, TARGET_VAL(Mips::SRLV), 0,
12228                   MVT::i32, 2, 0, 1,
12229     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12230     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12231                   MVT::i64, 3, 2, 3, 4,
12232    0,
12233   77, TARGET_VAL(ISD::SRA),
12234    OPC_RecordChild0,
12235    OPC_RecordChild1,
12236    OPC_Scope, 40,
12237     OPC_MoveChild1,
12238     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12239     OPC_CheckPredicate, 25,
12240     OPC_CheckType, MVT::i32,
12241     OPC_MoveParent,
12242     OPC_MoveParent,
12243     OPC_CheckType, MVT::i64,
12244     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12245                   MVT::i64, 0,
12246     OPC_EmitConvertToTarget, 1,
12247     OPC_EmitNode1, TARGET_VAL(Mips::SRA), 0,
12248                   MVT::i32, 2, 0, 3,
12249     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12250     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12251                   MVT::i64, 3, 2, 4, 5,
12252    31,
12253     OPC_CheckChild1Type, MVT::i32,
12254     OPC_MoveParent,
12255     OPC_CheckType, MVT::i64,
12256     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12257                   MVT::i64, 0,
12258     OPC_EmitNode1, TARGET_VAL(Mips::SRAV), 0,
12259                   MVT::i32, 2, 0, 1,
12260     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12261     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12262                   MVT::i64, 3, 2, 3, 4,
12263    0,
12264   31, TARGET_VAL(ISD::SUB),
12265    OPC_RecordChild0,
12266    OPC_RecordChild1,
12267    OPC_MoveParent,
12268    OPC_CheckType, MVT::i64,
12269    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12270                  MVT::i64, 0,
12271    OPC_EmitNode1, TARGET_VAL(Mips::SUBu), 0,
12272                  MVT::i32, 2, 0, 1,
12273    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12274    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12275                  MVT::i64, 3, 2, 3, 4,
12276   66, TARGET_VAL(ISD::MUL),
12277    OPC_RecordChild0,
12278    OPC_RecordChild1,
12279    OPC_MoveParent,
12280    OPC_CheckType, MVT::i64,
12281    OPC_Scope, 29,
12282     OPC_CheckPatternPredicate, 65,
12283     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12284                   MVT::i64, 0,
12285     OPC_EmitNode2, TARGET_VAL(Mips::MUL), 0,
12286                   MVT::i32, MVT::i32, 2, 0, 1,
12287     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12288     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12289                   MVT::i64, 3, 2, 3, 5,
12290    28,
12291     OPC_CheckPatternPredicate, 34,
12292     OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12293                   MVT::i64, 0,
12294     OPC_EmitNode1, TARGET_VAL(Mips::MUL_R6), 0,
12295                   MVT::i32, 2, 0, 1,
12296     OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12297     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12298                   MVT::i64, 3, 2, 3, 4,
12299    0,
12300   29, TARGET_VAL(MipsISD::MFHI),
12301    OPC_RecordChild0,
12302    OPC_MoveParent,
12303    OPC_CheckType, MVT::i64,
12304    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12305                  MVT::i64, 0,
12306    OPC_EmitNode1, TARGET_VAL(Mips::PseudoMFHI), 0,
12307                  MVT::i32, 1, 0,
12308    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12309    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12310                  MVT::i64, 3, 1, 2, 3,
12311   29, TARGET_VAL(MipsISD::MFLO),
12312    OPC_RecordChild0,
12313    OPC_MoveParent,
12314    OPC_CheckType, MVT::i64,
12315    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12316                  MVT::i64, 0,
12317    OPC_EmitNode1, TARGET_VAL(Mips::PseudoMFLO), 0,
12318                  MVT::i32, 1, 0,
12319    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12320    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12321                  MVT::i64, 3, 1, 2, 3,
12322   33, TARGET_VAL(ISD::SDIV),
12323    OPC_RecordChild0,
12324    OPC_RecordChild1,
12325    OPC_MoveParent,
12326    OPC_CheckType, MVT::i64,
12327    OPC_CheckPatternPredicate, 34,
12328    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12329                  MVT::i64, 0,
12330    OPC_EmitNode1, TARGET_VAL(Mips::DIV), 0,
12331                  MVT::i32, 2, 0, 1,
12332    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12333    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12334                  MVT::i64, 3, 2, 3, 4,
12335   33, TARGET_VAL(ISD::UDIV),
12336    OPC_RecordChild0,
12337    OPC_RecordChild1,
12338    OPC_MoveParent,
12339    OPC_CheckType, MVT::i64,
12340    OPC_CheckPatternPredicate, 34,
12341    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12342                  MVT::i64, 0,
12343    OPC_EmitNode1, TARGET_VAL(Mips::DIVU), 0,
12344                  MVT::i32, 2, 0, 1,
12345    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12346    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12347                  MVT::i64, 3, 2, 3, 4,
12348   33, TARGET_VAL(ISD::SREM),
12349    OPC_RecordChild0,
12350    OPC_RecordChild1,
12351    OPC_MoveParent,
12352    OPC_CheckType, MVT::i64,
12353    OPC_CheckPatternPredicate, 34,
12354    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12355                  MVT::i64, 0,
12356    OPC_EmitNode1, TARGET_VAL(Mips::MOD), 0,
12357                  MVT::i32, 2, 0, 1,
12358    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12359    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12360                  MVT::i64, 3, 2, 3, 4,
12361   33, TARGET_VAL(ISD::UREM),
12362    OPC_RecordChild0,
12363    OPC_RecordChild1,
12364    OPC_MoveParent,
12365    OPC_CheckType, MVT::i64,
12366    OPC_CheckPatternPredicate, 34,
12367    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
12368                  MVT::i64, 0,
12369    OPC_EmitNode1, TARGET_VAL(Mips::MODU), 0,
12370                  MVT::i32, 2, 0, 1,
12371    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
12372    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
12373                  MVT::i64, 3, 2, 3, 4,
12374   0,
12375  12,
12376   OPC_RecordChild0,
12377   OPC_CheckType, MVT::i64,
12378   OPC_CheckPatternPredicate, 29,
12379   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL64_32), 0,
12380                 MVT::i64, 1, 0,
12381  0,
12382 21, TARGET_VAL(ISD::CALLSEQ_START),
12383  OPC_RecordNode,
12384  OPC_RecordChild1,
12385  OPC_MoveChild1,
12386  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
12387  OPC_MoveParent,
12388  OPC_RecordChild2,
12389  OPC_MoveChild2,
12390  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
12391  OPC_MoveParent,
12392  OPC_EmitMergeInputChains1_0,
12393  OPC_MorphNodeTo0, TARGET_VAL(Mips::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
12394                2, 1, 2,
12395 22, TARGET_VAL(ISD::CALLSEQ_END),
12396  OPC_RecordNode,
12397  OPC_CaptureGlueInput,
12398  OPC_RecordChild1,
12399  OPC_MoveChild1,
12400  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
12401  OPC_MoveParent,
12402  OPC_RecordChild2,
12403  OPC_MoveChild2,
12404  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
12405  OPC_MoveParent,
12406  OPC_EmitMergeInputChains1_0,
12407  OPC_MorphNodeTo0, TARGET_VAL(Mips::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
12408                2, 1, 2,
12409 64, TARGET_VAL(ISD::FrameIndex),
12410  OPC_RecordNode,
12411  OPC_SwitchType , 44, MVT::i32,
12412   OPC_Scope, 13,
12413    OPC_CheckPatternPredicate, 7,
12414    OPC_CheckComplexPat, /*CP*/1, /*#*/0,
12415    OPC_MorphNodeTo1, TARGET_VAL(Mips::LEA_ADDiu), 0,
12416                  MVT::i32, 2, 1, 2,
12417   13,
12418    OPC_CheckPatternPredicate, 15,
12419    OPC_CheckComplexPat, /*CP*/4, /*#*/0,
12420    OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRyOffMemX16), 0,
12421                  MVT::i32, 2, 1, 2,
12422   13,
12423    OPC_CheckPatternPredicate, 8,
12424    OPC_CheckComplexPat, /*CP*/1, /*#*/0,
12425    OPC_MorphNodeTo1, TARGET_VAL(Mips::LEA_ADDiu_MM), 0,
12426                  MVT::i32, 2, 1, 2,
12427   0,
12428  13, MVT::i64,
12429   OPC_CheckPatternPredicate, 66,
12430   OPC_CheckComplexPat, /*CP*/1, /*#*/0,
12431   OPC_MorphNodeTo1, TARGET_VAL(Mips::LEA_ADDiu64), 0,
12432                 MVT::i64, 2, 1, 2,
12433  0,
12434 32, TARGET_VAL(MipsISD::Ins),
12435  OPC_RecordChild0,
12436  OPC_RecordChild1,
12437  OPC_MoveChild1,
12438  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12439  OPC_MoveParent,
12440  OPC_RecordChild2,
12441  OPC_MoveChild2,
12442  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12443  OPC_MoveParent,
12444  OPC_RecordChild3,
12445  OPC_CheckType, MVT::i32,
12446  OPC_CheckPatternPredicate, 16,
12447  OPC_EmitConvertToTarget, 1,
12448  OPC_EmitConvertToTarget, 2,
12449  OPC_MorphNodeTo1, TARGET_VAL(Mips::INS_MMR6), 0,
12450                MVT::i32, 4, 0, 4, 5, 3,
12451 53|128,26, TARGET_VAL(ISD::SETCC),
12452  OPC_RecordChild0,
12453  OPC_Scope, 82|128,7,
12454   OPC_CheckChild0Type, MVT::i32,
12455   OPC_Scope, 86,
12456    OPC_CheckChild1Integer, 0,
12457    OPC_CheckType, MVT::i32,
12458    OPC_Scope, 46,
12459     OPC_CheckChild2CondCode, ISD::SETEQ,
12460     OPC_Scope, 13,
12461      OPC_CheckPatternPredicate, 7,
12462      OPC_EmitInteger, MVT::i32, 2,
12463      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu), 0,
12464                    MVT::i32, 2, 0, 1,
12465     13,
12466      OPC_CheckPatternPredicate, 8,
12467      OPC_EmitInteger, MVT::i32, 2,
12468      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu_MM), 0,
12469                    MVT::i32, 2, 0, 1,
12470     13,
12471      OPC_CheckPatternPredicate, 15,
12472      OPC_EmitInteger, MVT::i32, 2,
12473      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltiuCCRxImmX16), 0,
12474                    MVT::i32, 2, 0, 1,
12475     0,
12476    32,
12477     OPC_CheckChild2CondCode, ISD::SETNE,
12478     OPC_Scope, 13,
12479      OPC_CheckPatternPredicate, 7,
12480      OPC_EmitRegister, MVT::i32, Mips::ZERO,
12481      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu), 0,
12482                    MVT::i32, 2, 1, 0,
12483     13,
12484      OPC_CheckPatternPredicate, 8,
12485      OPC_EmitRegister, MVT::i32, Mips::ZERO,
12486      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu_MM), 0,
12487                    MVT::i32, 2, 1, 0,
12488     0,
12489    0,
12490   41,
12491    OPC_CheckChild1Integer, 3|128,0|128,4,
12492    OPC_CheckChild2CondCode, ISD::SETGT,
12493    OPC_CheckType, MVT::i32,
12494    OPC_CheckPatternPredicate, 15,
12495    OPC_EmitInteger, MVT::i32, 1|128,0|128,4,
12496    OPC_EmitNode1, TARGET_VAL(Mips::SltiCCRxImmX16), 0,
12497                  MVT::i32, 2, 0, 1,
12498    OPC_EmitInteger, MVT::i32, 2,
12499    OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
12500                  MVT::i32, 1, 3,
12501    OPC_MorphNodeTo1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12502                  MVT::i32, 2, 2, 4,
12503   75|128,6,
12504    OPC_RecordChild1,
12505    OPC_Scope, 77|128,1,
12506     OPC_MoveChild1,
12507     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12508     OPC_CheckPredicate, 19,
12509     OPC_MoveParent,
12510     OPC_CheckType, MVT::i32,
12511     OPC_Scope, 43,
12512      OPC_CheckChild2CondCode, ISD::SETLT,
12513      OPC_Scope, 12,
12514       OPC_CheckPatternPredicate, 7,
12515       OPC_EmitConvertToTarget, 1,
12516       OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTi), 0,
12517                     MVT::i32, 2, 0, 2,
12518      12,
12519       OPC_CheckPatternPredicate, 8,
12520       OPC_EmitConvertToTarget, 1,
12521       OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTi_MM), 0,
12522                     MVT::i32, 2, 0, 2,
12523      12,
12524       OPC_CheckPatternPredicate, 15,
12525       OPC_EmitConvertToTarget, 1,
12526       OPC_MorphNodeTo1, TARGET_VAL(Mips::SltiCCRxImmX16), 0,
12527                     MVT::i32, 2, 0, 2,
12528      0,
12529     43,
12530      OPC_CheckChild2CondCode, ISD::SETULT,
12531      OPC_Scope, 12,
12532       OPC_CheckPatternPredicate, 7,
12533       OPC_EmitConvertToTarget, 1,
12534       OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu), 0,
12535                     MVT::i32, 2, 0, 2,
12536      12,
12537       OPC_CheckPatternPredicate, 8,
12538       OPC_EmitConvertToTarget, 1,
12539       OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu_MM), 0,
12540                     MVT::i32, 2, 0, 2,
12541      12,
12542       OPC_CheckPatternPredicate, 15,
12543       OPC_EmitConvertToTarget, 1,
12544       OPC_MorphNodeTo1, TARGET_VAL(Mips::SltiuCCRxImmX16), 0,
12545                     MVT::i32, 2, 0, 2,
12546      0,
12547     52,
12548      OPC_CheckChild2CondCode, ISD::SETGE,
12549      OPC_Scope, 23,
12550       OPC_CheckPatternPredicate, 7,
12551       OPC_EmitConvertToTarget, 1,
12552       OPC_EmitNode1, TARGET_VAL(Mips::SLTi), 0,
12553                     MVT::i32, 2, 0, 2,
12554       OPC_EmitInteger, MVT::i32, 2,
12555       OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12556                     MVT::i32, 2, 3, 4,
12557      23,
12558       OPC_CheckPatternPredicate, 8,
12559       OPC_EmitConvertToTarget, 1,
12560       OPC_EmitNode1, TARGET_VAL(Mips::SLTi_MM), 0,
12561                     MVT::i32, 2, 0, 2,
12562       OPC_EmitInteger, MVT::i32, 2,
12563       OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
12564                     MVT::i32, 2, 3, 4,
12565      0,
12566     52,
12567      OPC_CheckChild2CondCode, ISD::SETUGE,
12568      OPC_Scope, 23,
12569       OPC_CheckPatternPredicate, 7,
12570       OPC_EmitConvertToTarget, 1,
12571       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu), 0,
12572                     MVT::i32, 2, 0, 2,
12573       OPC_EmitInteger, MVT::i32, 2,
12574       OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12575                     MVT::i32, 2, 3, 4,
12576      23,
12577       OPC_CheckPatternPredicate, 8,
12578       OPC_EmitConvertToTarget, 1,
12579       OPC_EmitNode1, TARGET_VAL(Mips::SLTiu_MM), 0,
12580                     MVT::i32, 2, 0, 2,
12581       OPC_EmitInteger, MVT::i32, 2,
12582       OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
12583                     MVT::i32, 2, 3, 4,
12584      0,
12585     0,
12586    39,
12587     OPC_CheckChild2CondCode, ISD::SETLT,
12588     OPC_CheckType, MVT::i32,
12589     OPC_Scope, 10,
12590      OPC_CheckPatternPredicate, 7,
12591      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLT), 0,
12592                    MVT::i32, 2, 0, 1,
12593     10,
12594      OPC_CheckPatternPredicate, 8,
12595      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLT_MM), 0,
12596                    MVT::i32, 2, 0, 1,
12597     10,
12598      OPC_CheckPatternPredicate, 15,
12599      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltCCRxRy16), 0,
12600                    MVT::i32, 2, 0, 1,
12601     0,
12602    39,
12603     OPC_CheckChild2CondCode, ISD::SETULT,
12604     OPC_CheckType, MVT::i32,
12605     OPC_Scope, 10,
12606      OPC_CheckPatternPredicate, 7,
12607      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu), 0,
12608                    MVT::i32, 2, 0, 1,
12609     10,
12610      OPC_CheckPatternPredicate, 8,
12611      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu_MM), 0,
12612                    MVT::i32, 2, 0, 1,
12613     10,
12614      OPC_CheckPatternPredicate, 15,
12615      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltuCCRxRy16), 0,
12616                    MVT::i32, 2, 0, 1,
12617     0,
12618    39,
12619     OPC_CheckChild2CondCode, ISD::SETGT,
12620     OPC_CheckType, MVT::i32,
12621     OPC_Scope, 10,
12622      OPC_CheckPatternPredicate, 7,
12623      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLT), 0,
12624                    MVT::i32, 2, 1, 0,
12625     10,
12626      OPC_CheckPatternPredicate, 8,
12627      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLT_MM), 0,
12628                    MVT::i32, 2, 1, 0,
12629     10,
12630      OPC_CheckPatternPredicate, 15,
12631      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltCCRxRy16), 0,
12632                    MVT::i32, 2, 1, 0,
12633     0,
12634    39,
12635     OPC_CheckChild2CondCode, ISD::SETUGT,
12636     OPC_CheckType, MVT::i32,
12637     OPC_Scope, 10,
12638      OPC_CheckPatternPredicate, 7,
12639      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu), 0,
12640                    MVT::i32, 2, 1, 0,
12641     10,
12642      OPC_CheckPatternPredicate, 8,
12643      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu_MM), 0,
12644                    MVT::i32, 2, 1, 0,
12645     10,
12646      OPC_CheckPatternPredicate, 15,
12647      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltuCCRxRy16), 0,
12648                    MVT::i32, 2, 1, 0,
12649     0,
12650    72,
12651     OPC_CheckChild2CondCode, ISD::SETEQ,
12652     OPC_CheckType, MVT::i32,
12653     OPC_Scope, 21,
12654      OPC_CheckPatternPredicate, 7,
12655      OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
12656                    MVT::i32, 2, 0, 1,
12657      OPC_EmitInteger, MVT::i32, 2,
12658      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu), 0,
12659                    MVT::i32, 2, 2, 3,
12660     21,
12661      OPC_CheckPatternPredicate, 8,
12662      OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
12663                    MVT::i32, 2, 0, 1,
12664      OPC_EmitInteger, MVT::i32, 2,
12665      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu_MM), 0,
12666                    MVT::i32, 2, 2, 3,
12667     21,
12668      OPC_CheckPatternPredicate, 15,
12669      OPC_EmitNode1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12670                    MVT::i32, 2, 0, 1,
12671      OPC_EmitInteger, MVT::i32, 2,
12672      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltiuCCRxImmX16), 0,
12673                    MVT::i32, 2, 2, 3,
12674     0,
12675    79,
12676     OPC_CheckChild2CondCode, ISD::SETNE,
12677     OPC_CheckType, MVT::i32,
12678     OPC_Scope, 21,
12679      OPC_CheckPatternPredicate, 7,
12680      OPC_EmitRegister, MVT::i32, Mips::ZERO,
12681      OPC_EmitNode1, TARGET_VAL(Mips::XOR), 0,
12682                    MVT::i32, 2, 0, 1,
12683      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu), 0,
12684                    MVT::i32, 2, 2, 3,
12685     21,
12686      OPC_CheckPatternPredicate, 8,
12687      OPC_EmitRegister, MVT::i32, Mips::ZERO,
12688      OPC_EmitNode1, TARGET_VAL(Mips::XOR_MM), 0,
12689                    MVT::i32, 2, 0, 1,
12690      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu_MM), 0,
12691                    MVT::i32, 2, 2, 3,
12692     28,
12693      OPC_CheckPatternPredicate, 15,
12694      OPC_EmitInteger, MVT::i32, 0,
12695      OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
12696                    MVT::i32, 1, 2,
12697      OPC_EmitNode1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12698                    MVT::i32, 2, 0, 1,
12699      OPC_MorphNodeTo1, TARGET_VAL(Mips::SltuCCRxRy16), 0,
12700                    MVT::i32, 2, 3, 4,
12701     0,
12702    79,
12703     OPC_CheckChild2CondCode, ISD::SETLE,
12704     OPC_CheckType, MVT::i32,
12705     OPC_Scope, 21,
12706      OPC_CheckPatternPredicate, 7,
12707      OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
12708                    MVT::i32, 2, 1, 0,
12709      OPC_EmitInteger, MVT::i32, 2,
12710      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12711                    MVT::i32, 2, 2, 3,
12712     21,
12713      OPC_CheckPatternPredicate, 8,
12714      OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
12715                    MVT::i32, 2, 1, 0,
12716      OPC_EmitInteger, MVT::i32, 2,
12717      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
12718                    MVT::i32, 2, 2, 3,
12719     28,
12720      OPC_CheckPatternPredicate, 15,
12721      OPC_EmitNode1, TARGET_VAL(Mips::SltCCRxRy16), 0,
12722                    MVT::i32, 2, 1, 0,
12723      OPC_EmitInteger, MVT::i32, 2,
12724      OPC_EmitNode1, TARGET_VAL(Mips::LiRxImm16), 0,
12725                    MVT::i32, 1, 3,
12726      OPC_MorphNodeTo1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12727                    MVT::i32, 2, 2, 4,
12728     0,
12729    79,
12730     OPC_CheckChild2CondCode, ISD::SETULE,
12731     OPC_CheckType, MVT::i32,
12732     OPC_Scope, 21,
12733      OPC_CheckPatternPredicate, 7,
12734      OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
12735                    MVT::i32, 2, 1, 0,
12736      OPC_EmitInteger, MVT::i32, 2,
12737      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12738                    MVT::i32, 2, 2, 3,
12739     21,
12740      OPC_CheckPatternPredicate, 8,
12741      OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
12742                    MVT::i32, 2, 1, 0,
12743      OPC_EmitInteger, MVT::i32, 2,
12744      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
12745                    MVT::i32, 2, 2, 3,
12746     28,
12747      OPC_CheckPatternPredicate, 15,
12748      OPC_EmitNode1, TARGET_VAL(Mips::SltuCCRxRy16), 0,
12749                    MVT::i32, 2, 1, 0,
12750      OPC_EmitInteger, MVT::i32, 2,
12751      OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
12752                    MVT::i32, 1, 3,
12753      OPC_MorphNodeTo1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12754                    MVT::i32, 2, 2, 4,
12755     0,
12756    79,
12757     OPC_CheckChild2CondCode, ISD::SETGE,
12758     OPC_CheckType, MVT::i32,
12759     OPC_Scope, 21,
12760      OPC_CheckPatternPredicate, 7,
12761      OPC_EmitNode1, TARGET_VAL(Mips::SLT), 0,
12762                    MVT::i32, 2, 0, 1,
12763      OPC_EmitInteger, MVT::i32, 2,
12764      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12765                    MVT::i32, 2, 2, 3,
12766     21,
12767      OPC_CheckPatternPredicate, 8,
12768      OPC_EmitNode1, TARGET_VAL(Mips::SLT_MM), 0,
12769                    MVT::i32, 2, 0, 1,
12770      OPC_EmitInteger, MVT::i32, 2,
12771      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
12772                    MVT::i32, 2, 2, 3,
12773     28,
12774      OPC_CheckPatternPredicate, 15,
12775      OPC_EmitNode1, TARGET_VAL(Mips::SltCCRxRy16), 0,
12776                    MVT::i32, 2, 0, 1,
12777      OPC_EmitInteger, MVT::i32, 2,
12778      OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
12779                    MVT::i32, 1, 3,
12780      OPC_MorphNodeTo1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12781                    MVT::i32, 2, 2, 4,
12782     0,
12783    79,
12784     OPC_CheckChild2CondCode, ISD::SETUGE,
12785     OPC_CheckType, MVT::i32,
12786     OPC_Scope, 21,
12787      OPC_CheckPatternPredicate, 7,
12788      OPC_EmitNode1, TARGET_VAL(Mips::SLTu), 0,
12789                    MVT::i32, 2, 0, 1,
12790      OPC_EmitInteger, MVT::i32, 2,
12791      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12792                    MVT::i32, 2, 2, 3,
12793     21,
12794      OPC_CheckPatternPredicate, 8,
12795      OPC_EmitNode1, TARGET_VAL(Mips::SLTu_MM), 0,
12796                    MVT::i32, 2, 0, 1,
12797      OPC_EmitInteger, MVT::i32, 2,
12798      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi_MM), 0,
12799                    MVT::i32, 2, 2, 3,
12800     28,
12801      OPC_CheckPatternPredicate, 15,
12802      OPC_EmitNode1, TARGET_VAL(Mips::SltuCCRxRy16), 0,
12803                    MVT::i32, 2, 0, 1,
12804      OPC_EmitInteger, MVT::i32, 2,
12805      OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
12806                    MVT::i32, 1, 3,
12807      OPC_MorphNodeTo1, TARGET_VAL(Mips::XorRxRxRy16), 0,
12808                    MVT::i32, 2, 2, 4,
12809     0,
12810    0,
12811   0,
12812  104|128,2,
12813   OPC_CheckChild0Type, MVT::i64,
12814   OPC_Scope, 39,
12815    OPC_CheckChild1Integer, 0,
12816    OPC_CheckType, MVT::i32,
12817    OPC_Scope, 15,
12818     OPC_CheckChild2CondCode, ISD::SETEQ,
12819     OPC_CheckPatternPredicate, 67,
12820     OPC_EmitInteger, MVT::i64, 2,
12821     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu64), 0,
12822                   MVT::i32, 2, 0, 1,
12823    16,
12824     OPC_CheckChild2CondCode, ISD::SETNE,
12825     OPC_CheckPatternPredicate, 67,
12826     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
12827     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu64), 0,
12828                   MVT::i32, 2, 1, 0,
12829    0,
12830   58|128,2,
12831    OPC_RecordChild1,
12832    OPC_Scope, 93,
12833     OPC_MoveChild1,
12834     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
12835     OPC_CheckPredicate, 19,
12836     OPC_MoveParent,
12837     OPC_CheckType, MVT::i32,
12838     OPC_Scope, 14,
12839      OPC_CheckChild2CondCode, ISD::SETLT,
12840      OPC_CheckPatternPredicate, 24,
12841      OPC_EmitConvertToTarget, 1,
12842      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTi64), 0,
12843                    MVT::i32, 2, 0, 2,
12844     14,
12845      OPC_CheckChild2CondCode, ISD::SETULT,
12846      OPC_CheckPatternPredicate, 24,
12847      OPC_EmitConvertToTarget, 1,
12848      OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu64), 0,
12849                    MVT::i32, 2, 0, 2,
12850     25,
12851      OPC_CheckChild2CondCode, ISD::SETGE,
12852      OPC_CheckPatternPredicate, 67,
12853      OPC_EmitConvertToTarget, 1,
12854      OPC_EmitNode1, TARGET_VAL(Mips::SLTi64), 0,
12855                    MVT::i32, 2, 0, 2,
12856      OPC_EmitInteger, MVT::i32, 2,
12857      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12858                    MVT::i32, 2, 3, 4,
12859     25,
12860      OPC_CheckChild2CondCode, ISD::SETUGE,
12861      OPC_CheckPatternPredicate, 67,
12862      OPC_EmitConvertToTarget, 1,
12863      OPC_EmitNode1, TARGET_VAL(Mips::SLTiu64), 0,
12864                    MVT::i32, 2, 0, 2,
12865      OPC_EmitInteger, MVT::i32, 2,
12866      OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12867                    MVT::i32, 2, 3, 4,
12868     0,
12869    14,
12870     OPC_CheckChild2CondCode, ISD::SETLT,
12871     OPC_CheckType, MVT::i32,
12872     OPC_CheckPatternPredicate, 24,
12873     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLT64), 0,
12874                   MVT::i32, 2, 0, 1,
12875    14,
12876     OPC_CheckChild2CondCode, ISD::SETULT,
12877     OPC_CheckType, MVT::i32,
12878     OPC_CheckPatternPredicate, 24,
12879     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu64), 0,
12880                   MVT::i32, 2, 0, 1,
12881    14,
12882     OPC_CheckChild2CondCode, ISD::SETGT,
12883     OPC_CheckType, MVT::i32,
12884     OPC_CheckPatternPredicate, 67,
12885     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLT64), 0,
12886                   MVT::i32, 2, 1, 0,
12887    14,
12888     OPC_CheckChild2CondCode, ISD::SETUGT,
12889     OPC_CheckType, MVT::i32,
12890     OPC_CheckPatternPredicate, 67,
12891     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu64), 0,
12892                   MVT::i32, 2, 1, 0,
12893    25,
12894     OPC_CheckChild2CondCode, ISD::SETEQ,
12895     OPC_CheckType, MVT::i32,
12896     OPC_CheckPatternPredicate, 67,
12897     OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
12898                   MVT::i64, 2, 0, 1,
12899     OPC_EmitInteger, MVT::i64, 2,
12900     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTiu64), 0,
12901                   MVT::i32, 2, 2, 3,
12902    26,
12903     OPC_CheckChild2CondCode, ISD::SETNE,
12904     OPC_CheckType, MVT::i32,
12905     OPC_CheckPatternPredicate, 67,
12906     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
12907     OPC_EmitNode1, TARGET_VAL(Mips::XOR64), 0,
12908                   MVT::i64, 2, 0, 1,
12909     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLTu64), 0,
12910                   MVT::i32, 2, 2, 3,
12911    25,
12912     OPC_CheckChild2CondCode, ISD::SETLE,
12913     OPC_CheckType, MVT::i32,
12914     OPC_CheckPatternPredicate, 67,
12915     OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
12916                   MVT::i32, 2, 1, 0,
12917     OPC_EmitInteger, MVT::i32, 2,
12918     OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12919                   MVT::i32, 2, 2, 3,
12920    25,
12921     OPC_CheckChild2CondCode, ISD::SETULE,
12922     OPC_CheckType, MVT::i32,
12923     OPC_CheckPatternPredicate, 67,
12924     OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
12925                   MVT::i32, 2, 1, 0,
12926     OPC_EmitInteger, MVT::i32, 2,
12927     OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12928                   MVT::i32, 2, 2, 3,
12929    25,
12930     OPC_CheckChild2CondCode, ISD::SETGE,
12931     OPC_CheckType, MVT::i32,
12932     OPC_CheckPatternPredicate, 67,
12933     OPC_EmitNode1, TARGET_VAL(Mips::SLT64), 0,
12934                   MVT::i32, 2, 0, 1,
12935     OPC_EmitInteger, MVT::i32, 2,
12936     OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12937                   MVT::i32, 2, 2, 3,
12938    25,
12939     OPC_CheckChild2CondCode, ISD::SETUGE,
12940     OPC_CheckType, MVT::i32,
12941     OPC_CheckPatternPredicate, 67,
12942     OPC_EmitNode1, TARGET_VAL(Mips::SLTu64), 0,
12943                   MVT::i32, 2, 0, 1,
12944     OPC_EmitInteger, MVT::i32, 2,
12945     OPC_MorphNodeTo1, TARGET_VAL(Mips::XORi), 0,
12946                   MVT::i32, 2, 2, 3,
12947    0,
12948   0,
12949  15|128,4,
12950   OPC_CheckChild0Type, MVT::f32,
12951   OPC_RecordChild1,
12952   OPC_CheckType, MVT::i32,
12953   OPC_Scope, 26,
12954    OPC_CheckChild2CondCode, ISD::SETUO,
12955    OPC_Scope, 10,
12956     OPC_CheckPatternPredicate, 42,
12957     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UN_S), 0,
12958                   MVT::i32, 2, 0, 1,
12959    10,
12960     OPC_CheckPatternPredicate, 68,
12961     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UN_S_MMR6), 0,
12962                   MVT::i32, 2, 0, 1,
12963    0,
12964   26,
12965    OPC_CheckChild2CondCode, ISD::SETOEQ,
12966    OPC_Scope, 10,
12967     OPC_CheckPatternPredicate, 42,
12968     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_S), 0,
12969                   MVT::i32, 2, 0, 1,
12970    10,
12971     OPC_CheckPatternPredicate, 68,
12972     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_S_MMR6), 0,
12973                   MVT::i32, 2, 0, 1,
12974    0,
12975   26,
12976    OPC_CheckChild2CondCode, ISD::SETUEQ,
12977    OPC_Scope, 10,
12978     OPC_CheckPatternPredicate, 42,
12979     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UEQ_S), 0,
12980                   MVT::i32, 2, 0, 1,
12981    10,
12982     OPC_CheckPatternPredicate, 68,
12983     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UEQ_S_MMR6), 0,
12984                   MVT::i32, 2, 0, 1,
12985    0,
12986   26,
12987    OPC_CheckChild2CondCode, ISD::SETOLT,
12988    OPC_Scope, 10,
12989     OPC_CheckPatternPredicate, 42,
12990     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_S), 0,
12991                   MVT::i32, 2, 0, 1,
12992    10,
12993     OPC_CheckPatternPredicate, 68,
12994     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_S_MMR6), 0,
12995                   MVT::i32, 2, 0, 1,
12996    0,
12997   26,
12998    OPC_CheckChild2CondCode, ISD::SETULT,
12999    OPC_Scope, 10,
13000     OPC_CheckPatternPredicate, 42,
13001     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULT_S), 0,
13002                   MVT::i32, 2, 0, 1,
13003    10,
13004     OPC_CheckPatternPredicate, 68,
13005     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULT_S_MMR6), 0,
13006                   MVT::i32, 2, 0, 1,
13007    0,
13008   26,
13009    OPC_CheckChild2CondCode, ISD::SETOLE,
13010    OPC_Scope, 10,
13011     OPC_CheckPatternPredicate, 42,
13012     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_S), 0,
13013                   MVT::i32, 2, 0, 1,
13014    10,
13015     OPC_CheckPatternPredicate, 68,
13016     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_S_MMR6), 0,
13017                   MVT::i32, 2, 0, 1,
13018    0,
13019   26,
13020    OPC_CheckChild2CondCode, ISD::SETULE,
13021    OPC_Scope, 10,
13022     OPC_CheckPatternPredicate, 42,
13023     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULE_S), 0,
13024                   MVT::i32, 2, 0, 1,
13025    10,
13026     OPC_CheckPatternPredicate, 68,
13027     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULE_S_MMR6), 0,
13028                   MVT::i32, 2, 0, 1,
13029    0,
13030   26,
13031    OPC_CheckChild2CondCode, ISD::SETEQ,
13032    OPC_Scope, 10,
13033     OPC_CheckPatternPredicate, 33,
13034     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_S), 0,
13035                   MVT::i32, 2, 0, 1,
13036    10,
13037     OPC_CheckPatternPredicate, 16,
13038     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_S_MMR6), 0,
13039                   MVT::i32, 2, 0, 1,
13040    0,
13041   26,
13042    OPC_CheckChild2CondCode, ISD::SETGT,
13043    OPC_Scope, 10,
13044     OPC_CheckPatternPredicate, 33,
13045     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_S), 0,
13046                   MVT::i32, 2, 1, 0,
13047    10,
13048     OPC_CheckPatternPredicate, 16,
13049     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_S_MMR6), 0,
13050                   MVT::i32, 2, 1, 0,
13051    0,
13052   26,
13053    OPC_CheckChild2CondCode, ISD::SETGE,
13054    OPC_Scope, 10,
13055     OPC_CheckPatternPredicate, 33,
13056     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_S), 0,
13057                   MVT::i32, 2, 1, 0,
13058    10,
13059     OPC_CheckPatternPredicate, 16,
13060     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_S_MMR6), 0,
13061                   MVT::i32, 2, 1, 0,
13062    0,
13063   26,
13064    OPC_CheckChild2CondCode, ISD::SETLT,
13065    OPC_Scope, 10,
13066     OPC_CheckPatternPredicate, 33,
13067     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_S), 0,
13068                   MVT::i32, 2, 0, 1,
13069    10,
13070     OPC_CheckPatternPredicate, 16,
13071     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_S_MMR6), 0,
13072                   MVT::i32, 2, 0, 1,
13073    0,
13074   26,
13075    OPC_CheckChild2CondCode, ISD::SETLE,
13076    OPC_Scope, 10,
13077     OPC_CheckPatternPredicate, 33,
13078     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_S), 0,
13079                   MVT::i32, 2, 0, 1,
13080    10,
13081     OPC_CheckPatternPredicate, 16,
13082     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_S_MMR6), 0,
13083                   MVT::i32, 2, 0, 1,
13084    0,
13085   48,
13086    OPC_CheckChild2CondCode, ISD::SETONE,
13087    OPC_Scope, 21,
13088     OPC_CheckPatternPredicate, 33,
13089     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UEQ_S), 0,
13090                   MVT::i32, 2, 0, 1,
13091     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13092     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13093                   MVT::i32, 2, 2, 3,
13094    21,
13095     OPC_CheckPatternPredicate, 16,
13096     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UEQ_S_MMR6), 0,
13097                   MVT::i32, 2, 0, 1,
13098     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13099     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13100                   MVT::i32, 2, 2, 3,
13101    0,
13102   48,
13103    OPC_CheckChild2CondCode, ISD::SETO,
13104    OPC_Scope, 21,
13105     OPC_CheckPatternPredicate, 33,
13106     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UN_S), 0,
13107                   MVT::i32, 2, 0, 1,
13108     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13109     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13110                   MVT::i32, 2, 2, 3,
13111    21,
13112     OPC_CheckPatternPredicate, 16,
13113     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UN_S_MMR6), 0,
13114                   MVT::i32, 2, 0, 1,
13115     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13116     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13117                   MVT::i32, 2, 2, 3,
13118    0,
13119   48,
13120    OPC_CheckChild2CondCode, ISD::SETUNE,
13121    OPC_Scope, 21,
13122     OPC_CheckPatternPredicate, 33,
13123     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_S), 0,
13124                   MVT::i32, 2, 0, 1,
13125     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13126     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13127                   MVT::i32, 2, 2, 3,
13128    21,
13129     OPC_CheckPatternPredicate, 16,
13130     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_S_MMR6), 0,
13131                   MVT::i32, 2, 0, 1,
13132     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13133     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13134                   MVT::i32, 2, 2, 3,
13135    0,
13136   48,
13137    OPC_CheckChild2CondCode, ISD::SETNE,
13138    OPC_Scope, 21,
13139     OPC_CheckPatternPredicate, 33,
13140     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_S), 0,
13141                   MVT::i32, 2, 0, 1,
13142     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13143     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13144                   MVT::i32, 2, 2, 3,
13145    21,
13146     OPC_CheckPatternPredicate, 16,
13147     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_S_MMR6), 0,
13148                   MVT::i32, 2, 0, 1,
13149     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13150     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13151                   MVT::i32, 2, 2, 3,
13152    0,
13153   0,
13154  15|128,4,
13155   OPC_CheckChild0Type, MVT::f64,
13156   OPC_RecordChild1,
13157   OPC_CheckType, MVT::i32,
13158   OPC_Scope, 26,
13159    OPC_CheckChild2CondCode, ISD::SETUO,
13160    OPC_Scope, 10,
13161     OPC_CheckPatternPredicate, 42,
13162     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UN_D), 0,
13163                   MVT::i32, 2, 0, 1,
13164    10,
13165     OPC_CheckPatternPredicate, 68,
13166     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UN_D_MMR6), 0,
13167                   MVT::i32, 2, 0, 1,
13168    0,
13169   26,
13170    OPC_CheckChild2CondCode, ISD::SETOEQ,
13171    OPC_Scope, 10,
13172     OPC_CheckPatternPredicate, 42,
13173     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_D), 0,
13174                   MVT::i32, 2, 0, 1,
13175    10,
13176     OPC_CheckPatternPredicate, 68,
13177     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_D_MMR6), 0,
13178                   MVT::i32, 2, 0, 1,
13179    0,
13180   26,
13181    OPC_CheckChild2CondCode, ISD::SETUEQ,
13182    OPC_Scope, 10,
13183     OPC_CheckPatternPredicate, 42,
13184     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UEQ_D), 0,
13185                   MVT::i32, 2, 0, 1,
13186    10,
13187     OPC_CheckPatternPredicate, 68,
13188     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_UEQ_D_MMR6), 0,
13189                   MVT::i32, 2, 0, 1,
13190    0,
13191   26,
13192    OPC_CheckChild2CondCode, ISD::SETOLT,
13193    OPC_Scope, 10,
13194     OPC_CheckPatternPredicate, 42,
13195     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_D), 0,
13196                   MVT::i32, 2, 0, 1,
13197    10,
13198     OPC_CheckPatternPredicate, 68,
13199     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_D_MMR6), 0,
13200                   MVT::i32, 2, 0, 1,
13201    0,
13202   26,
13203    OPC_CheckChild2CondCode, ISD::SETULT,
13204    OPC_Scope, 10,
13205     OPC_CheckPatternPredicate, 42,
13206     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULT_D), 0,
13207                   MVT::i32, 2, 0, 1,
13208    10,
13209     OPC_CheckPatternPredicate, 68,
13210     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULT_D_MMR6), 0,
13211                   MVT::i32, 2, 0, 1,
13212    0,
13213   26,
13214    OPC_CheckChild2CondCode, ISD::SETOLE,
13215    OPC_Scope, 10,
13216     OPC_CheckPatternPredicate, 42,
13217     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_D), 0,
13218                   MVT::i32, 2, 0, 1,
13219    10,
13220     OPC_CheckPatternPredicate, 68,
13221     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_D_MMR6), 0,
13222                   MVT::i32, 2, 0, 1,
13223    0,
13224   26,
13225    OPC_CheckChild2CondCode, ISD::SETULE,
13226    OPC_Scope, 10,
13227     OPC_CheckPatternPredicate, 42,
13228     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULE_D), 0,
13229                   MVT::i32, 2, 0, 1,
13230    10,
13231     OPC_CheckPatternPredicate, 68,
13232     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_ULE_D_MMR6), 0,
13233                   MVT::i32, 2, 0, 1,
13234    0,
13235   26,
13236    OPC_CheckChild2CondCode, ISD::SETEQ,
13237    OPC_Scope, 10,
13238     OPC_CheckPatternPredicate, 33,
13239     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_D), 0,
13240                   MVT::i32, 2, 0, 1,
13241    10,
13242     OPC_CheckPatternPredicate, 16,
13243     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_EQ_D_MMR6), 0,
13244                   MVT::i32, 2, 0, 1,
13245    0,
13246   26,
13247    OPC_CheckChild2CondCode, ISD::SETGT,
13248    OPC_Scope, 10,
13249     OPC_CheckPatternPredicate, 33,
13250     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_D), 0,
13251                   MVT::i32, 2, 1, 0,
13252    10,
13253     OPC_CheckPatternPredicate, 16,
13254     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_D_MMR6), 0,
13255                   MVT::i32, 2, 1, 0,
13256    0,
13257   26,
13258    OPC_CheckChild2CondCode, ISD::SETGE,
13259    OPC_Scope, 10,
13260     OPC_CheckPatternPredicate, 33,
13261     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_D), 0,
13262                   MVT::i32, 2, 1, 0,
13263    10,
13264     OPC_CheckPatternPredicate, 16,
13265     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_D_MMR6), 0,
13266                   MVT::i32, 2, 1, 0,
13267    0,
13268   26,
13269    OPC_CheckChild2CondCode, ISD::SETLT,
13270    OPC_Scope, 10,
13271     OPC_CheckPatternPredicate, 33,
13272     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_D), 0,
13273                   MVT::i32, 2, 0, 1,
13274    10,
13275     OPC_CheckPatternPredicate, 16,
13276     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LT_D_MMR6), 0,
13277                   MVT::i32, 2, 0, 1,
13278    0,
13279   26,
13280    OPC_CheckChild2CondCode, ISD::SETLE,
13281    OPC_Scope, 10,
13282     OPC_CheckPatternPredicate, 33,
13283     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_D), 0,
13284                   MVT::i32, 2, 0, 1,
13285    10,
13286     OPC_CheckPatternPredicate, 16,
13287     OPC_MorphNodeTo1, TARGET_VAL(Mips::CMP_LE_D_MMR6), 0,
13288                   MVT::i32, 2, 0, 1,
13289    0,
13290   48,
13291    OPC_CheckChild2CondCode, ISD::SETONE,
13292    OPC_Scope, 21,
13293     OPC_CheckPatternPredicate, 33,
13294     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UEQ_D), 0,
13295                   MVT::i32, 2, 0, 1,
13296     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13297     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13298                   MVT::i32, 2, 2, 3,
13299    21,
13300     OPC_CheckPatternPredicate, 16,
13301     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UEQ_D_MMR6), 0,
13302                   MVT::i32, 2, 0, 1,
13303     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13304     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13305                   MVT::i32, 2, 2, 3,
13306    0,
13307   48,
13308    OPC_CheckChild2CondCode, ISD::SETO,
13309    OPC_Scope, 21,
13310     OPC_CheckPatternPredicate, 33,
13311     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UN_D), 0,
13312                   MVT::i32, 2, 0, 1,
13313     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13314     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13315                   MVT::i32, 2, 2, 3,
13316    21,
13317     OPC_CheckPatternPredicate, 16,
13318     OPC_EmitNode1, TARGET_VAL(Mips::CMP_UN_D_MMR6), 0,
13319                   MVT::i32, 2, 0, 1,
13320     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13321     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13322                   MVT::i32, 2, 2, 3,
13323    0,
13324   48,
13325    OPC_CheckChild2CondCode, ISD::SETUNE,
13326    OPC_Scope, 21,
13327     OPC_CheckPatternPredicate, 33,
13328     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_D), 0,
13329                   MVT::i32, 2, 0, 1,
13330     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13331     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13332                   MVT::i32, 2, 2, 3,
13333    21,
13334     OPC_CheckPatternPredicate, 16,
13335     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_D_MMR6), 0,
13336                   MVT::i32, 2, 0, 1,
13337     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13338     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13339                   MVT::i32, 2, 2, 3,
13340    0,
13341   48,
13342    OPC_CheckChild2CondCode, ISD::SETNE,
13343    OPC_Scope, 21,
13344     OPC_CheckPatternPredicate, 33,
13345     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_D), 0,
13346                   MVT::i32, 2, 0, 1,
13347     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13348     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR), 0,
13349                   MVT::i32, 2, 2, 3,
13350    21,
13351     OPC_CheckPatternPredicate, 16,
13352     OPC_EmitNode1, TARGET_VAL(Mips::CMP_EQ_D_MMR6), 0,
13353                   MVT::i32, 2, 0, 1,
13354     OPC_EmitRegister, MVT::i32, Mips::ZERO,
13355     OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_MMR6), 0,
13356                   MVT::i32, 2, 2, 3,
13357    0,
13358   0,
13359  19|128,1,
13360   OPC_CheckChild0Type, MVT::v16i8,
13361   OPC_RecordChild1,
13362   OPC_CheckType, MVT::v16i8,
13363   OPC_Scope, 27,
13364    OPC_CheckChild2CondCode, ISD::SETEQ,
13365    OPC_CheckPatternPredicate, 26,
13366    OPC_Scope, 11,
13367     OPC_CheckComplexPat, /*CP*/20, /*#*/1,
13368     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQI_B), 0,
13369                   MVT::v16i8, 2, 0, 2,
13370    8,
13371     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQ_B), 0,
13372                   MVT::v16i8, 2, 0, 1,
13373    0,
13374   27,
13375    OPC_CheckChild2CondCode, ISD::SETLE,
13376    OPC_CheckPatternPredicate, 26,
13377    OPC_Scope, 11,
13378     OPC_CheckComplexPat, /*CP*/20, /*#*/1,
13379     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_S_B), 0,
13380                   MVT::v16i8, 2, 0, 2,
13381    8,
13382     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_S_B), 0,
13383                   MVT::v16i8, 2, 0, 1,
13384    0,
13385   27,
13386    OPC_CheckChild2CondCode, ISD::SETULE,
13387    OPC_CheckPatternPredicate, 26,
13388    OPC_Scope, 11,
13389     OPC_CheckComplexPat, /*CP*/16, /*#*/1,
13390     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_U_B), 0,
13391                   MVT::v16i8, 2, 0, 2,
13392    8,
13393     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_U_B), 0,
13394                   MVT::v16i8, 2, 0, 1,
13395    0,
13396   27,
13397    OPC_CheckChild2CondCode, ISD::SETLT,
13398    OPC_CheckPatternPredicate, 26,
13399    OPC_Scope, 11,
13400     OPC_CheckComplexPat, /*CP*/20, /*#*/1,
13401     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_S_B), 0,
13402                   MVT::v16i8, 2, 0, 2,
13403    8,
13404     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_S_B), 0,
13405                   MVT::v16i8, 2, 0, 1,
13406    0,
13407   27,
13408    OPC_CheckChild2CondCode, ISD::SETULT,
13409    OPC_CheckPatternPredicate, 26,
13410    OPC_Scope, 11,
13411     OPC_CheckComplexPat, /*CP*/16, /*#*/1,
13412     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_U_B), 0,
13413                   MVT::v16i8, 2, 0, 2,
13414    8,
13415     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_U_B), 0,
13416                   MVT::v16i8, 2, 0, 1,
13417    0,
13418   0,
13419  19|128,1,
13420   OPC_CheckChild0Type, MVT::v8i16,
13421   OPC_RecordChild1,
13422   OPC_CheckType, MVT::v8i16,
13423   OPC_Scope, 27,
13424    OPC_CheckChild2CondCode, ISD::SETEQ,
13425    OPC_CheckPatternPredicate, 26,
13426    OPC_Scope, 11,
13427     OPC_CheckComplexPat, /*CP*/21, /*#*/1,
13428     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQI_H), 0,
13429                   MVT::v8i16, 2, 0, 2,
13430    8,
13431     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQ_H), 0,
13432                   MVT::v8i16, 2, 0, 1,
13433    0,
13434   27,
13435    OPC_CheckChild2CondCode, ISD::SETLE,
13436    OPC_CheckPatternPredicate, 26,
13437    OPC_Scope, 11,
13438     OPC_CheckComplexPat, /*CP*/21, /*#*/1,
13439     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_S_H), 0,
13440                   MVT::v8i16, 2, 0, 2,
13441    8,
13442     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_S_H), 0,
13443                   MVT::v8i16, 2, 0, 1,
13444    0,
13445   27,
13446    OPC_CheckChild2CondCode, ISD::SETULE,
13447    OPC_CheckPatternPredicate, 26,
13448    OPC_Scope, 11,
13449     OPC_CheckComplexPat, /*CP*/17, /*#*/1,
13450     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_U_H), 0,
13451                   MVT::v8i16, 2, 0, 2,
13452    8,
13453     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_U_H), 0,
13454                   MVT::v8i16, 2, 0, 1,
13455    0,
13456   27,
13457    OPC_CheckChild2CondCode, ISD::SETLT,
13458    OPC_CheckPatternPredicate, 26,
13459    OPC_Scope, 11,
13460     OPC_CheckComplexPat, /*CP*/21, /*#*/1,
13461     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_S_H), 0,
13462                   MVT::v8i16, 2, 0, 2,
13463    8,
13464     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_S_H), 0,
13465                   MVT::v8i16, 2, 0, 1,
13466    0,
13467   27,
13468    OPC_CheckChild2CondCode, ISD::SETULT,
13469    OPC_CheckPatternPredicate, 26,
13470    OPC_Scope, 11,
13471     OPC_CheckComplexPat, /*CP*/17, /*#*/1,
13472     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_U_H), 0,
13473                   MVT::v8i16, 2, 0, 2,
13474    8,
13475     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_U_H), 0,
13476                   MVT::v8i16, 2, 0, 1,
13477    0,
13478   0,
13479  19|128,1,
13480   OPC_CheckChild0Type, MVT::v4i32,
13481   OPC_RecordChild1,
13482   OPC_CheckType, MVT::v4i32,
13483   OPC_Scope, 27,
13484    OPC_CheckChild2CondCode, ISD::SETEQ,
13485    OPC_CheckPatternPredicate, 26,
13486    OPC_Scope, 11,
13487     OPC_CheckComplexPat, /*CP*/22, /*#*/1,
13488     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQI_W), 0,
13489                   MVT::v4i32, 2, 0, 2,
13490    8,
13491     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQ_W), 0,
13492                   MVT::v4i32, 2, 0, 1,
13493    0,
13494   27,
13495    OPC_CheckChild2CondCode, ISD::SETLE,
13496    OPC_CheckPatternPredicate, 26,
13497    OPC_Scope, 11,
13498     OPC_CheckComplexPat, /*CP*/22, /*#*/1,
13499     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_S_W), 0,
13500                   MVT::v4i32, 2, 0, 2,
13501    8,
13502     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_S_W), 0,
13503                   MVT::v4i32, 2, 0, 1,
13504    0,
13505   27,
13506    OPC_CheckChild2CondCode, ISD::SETULE,
13507    OPC_CheckPatternPredicate, 26,
13508    OPC_Scope, 11,
13509     OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13510     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_U_W), 0,
13511                   MVT::v4i32, 2, 0, 2,
13512    8,
13513     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_U_W), 0,
13514                   MVT::v4i32, 2, 0, 1,
13515    0,
13516   27,
13517    OPC_CheckChild2CondCode, ISD::SETLT,
13518    OPC_CheckPatternPredicate, 26,
13519    OPC_Scope, 11,
13520     OPC_CheckComplexPat, /*CP*/22, /*#*/1,
13521     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_S_W), 0,
13522                   MVT::v4i32, 2, 0, 2,
13523    8,
13524     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_S_W), 0,
13525                   MVT::v4i32, 2, 0, 1,
13526    0,
13527   27,
13528    OPC_CheckChild2CondCode, ISD::SETULT,
13529    OPC_CheckPatternPredicate, 26,
13530    OPC_Scope, 11,
13531     OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13532     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_U_W), 0,
13533                   MVT::v4i32, 2, 0, 2,
13534    8,
13535     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_U_W), 0,
13536                   MVT::v4i32, 2, 0, 1,
13537    0,
13538   0,
13539  19|128,1,
13540   OPC_CheckChild0Type, MVT::v2i64,
13541   OPC_RecordChild1,
13542   OPC_CheckType, MVT::v2i64,
13543   OPC_Scope, 27,
13544    OPC_CheckChild2CondCode, ISD::SETEQ,
13545    OPC_CheckPatternPredicate, 26,
13546    OPC_Scope, 11,
13547     OPC_CheckComplexPat, /*CP*/23, /*#*/1,
13548     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQI_D), 0,
13549                   MVT::v2i64, 2, 0, 2,
13550    8,
13551     OPC_MorphNodeTo1, TARGET_VAL(Mips::CEQ_D), 0,
13552                   MVT::v2i64, 2, 0, 1,
13553    0,
13554   27,
13555    OPC_CheckChild2CondCode, ISD::SETLE,
13556    OPC_CheckPatternPredicate, 26,
13557    OPC_Scope, 11,
13558     OPC_CheckComplexPat, /*CP*/23, /*#*/1,
13559     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_S_D), 0,
13560                   MVT::v2i64, 2, 0, 2,
13561    8,
13562     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_S_D), 0,
13563                   MVT::v2i64, 2, 0, 1,
13564    0,
13565   27,
13566    OPC_CheckChild2CondCode, ISD::SETULE,
13567    OPC_CheckPatternPredicate, 26,
13568    OPC_Scope, 11,
13569     OPC_CheckComplexPat, /*CP*/19, /*#*/1,
13570     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLEI_U_D), 0,
13571                   MVT::v2i64, 2, 0, 2,
13572    8,
13573     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLE_U_D), 0,
13574                   MVT::v2i64, 2, 0, 1,
13575    0,
13576   27,
13577    OPC_CheckChild2CondCode, ISD::SETLT,
13578    OPC_CheckPatternPredicate, 26,
13579    OPC_Scope, 11,
13580     OPC_CheckComplexPat, /*CP*/23, /*#*/1,
13581     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_S_D), 0,
13582                   MVT::v2i64, 2, 0, 2,
13583    8,
13584     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_S_D), 0,
13585                   MVT::v2i64, 2, 0, 1,
13586    0,
13587   27,
13588    OPC_CheckChild2CondCode, ISD::SETULT,
13589    OPC_CheckPatternPredicate, 26,
13590    OPC_Scope, 11,
13591     OPC_CheckComplexPat, /*CP*/19, /*#*/1,
13592     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLTI_U_D), 0,
13593                   MVT::v2i64, 2, 0, 2,
13594    8,
13595     OPC_MorphNodeTo1, TARGET_VAL(Mips::CLT_U_D), 0,
13596                   MVT::v2i64, 2, 0, 1,
13597    0,
13598   0,
13599  61|128,1,
13600   OPC_CheckChild0Type, MVT::v4f32,
13601   OPC_RecordChild1,
13602   OPC_CheckType, MVT::v4i32,
13603   OPC_Scope, 12,
13604    OPC_CheckChild2CondCode, ISD::SETOEQ,
13605    OPC_CheckPatternPredicate, 26,
13606    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCEQ_W), 0,
13607                  MVT::v4i32, 2, 0, 1,
13608   12,
13609    OPC_CheckChild2CondCode, ISD::SETOLE,
13610    OPC_CheckPatternPredicate, 26,
13611    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLE_W), 0,
13612                  MVT::v4i32, 2, 0, 1,
13613   12,
13614    OPC_CheckChild2CondCode, ISD::SETOLT,
13615    OPC_CheckPatternPredicate, 26,
13616    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLT_W), 0,
13617                  MVT::v4i32, 2, 0, 1,
13618   12,
13619    OPC_CheckChild2CondCode, ISD::SETONE,
13620    OPC_CheckPatternPredicate, 26,
13621    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCNE_W), 0,
13622                  MVT::v4i32, 2, 0, 1,
13623   12,
13624    OPC_CheckChild2CondCode, ISD::SETO,
13625    OPC_CheckPatternPredicate, 26,
13626    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCOR_W), 0,
13627                  MVT::v4i32, 2, 0, 1,
13628   12,
13629    OPC_CheckChild2CondCode, ISD::SETUEQ,
13630    OPC_CheckPatternPredicate, 26,
13631    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCUEQ_W), 0,
13632                  MVT::v4i32, 2, 0, 1,
13633   12,
13634    OPC_CheckChild2CondCode, ISD::SETULE,
13635    OPC_CheckPatternPredicate, 26,
13636    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCULE_W), 0,
13637                  MVT::v4i32, 2, 0, 1,
13638   12,
13639    OPC_CheckChild2CondCode, ISD::SETULT,
13640    OPC_CheckPatternPredicate, 26,
13641    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCULT_W), 0,
13642                  MVT::v4i32, 2, 0, 1,
13643   12,
13644    OPC_CheckChild2CondCode, ISD::SETUO,
13645    OPC_CheckPatternPredicate, 26,
13646    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCUN_W), 0,
13647                  MVT::v4i32, 2, 0, 1,
13648   12,
13649    OPC_CheckChild2CondCode, ISD::SETUNE,
13650    OPC_CheckPatternPredicate, 26,
13651    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCUNE_W), 0,
13652                  MVT::v4i32, 2, 0, 1,
13653   12,
13654    OPC_CheckChild2CondCode, ISD::SETEQ,
13655    OPC_CheckPatternPredicate, 27,
13656    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCEQ_W), 0,
13657                  MVT::v4i32, 2, 0, 1,
13658   12,
13659    OPC_CheckChild2CondCode, ISD::SETLE,
13660    OPC_CheckPatternPredicate, 27,
13661    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLE_W), 0,
13662                  MVT::v4i32, 2, 0, 1,
13663   12,
13664    OPC_CheckChild2CondCode, ISD::SETLT,
13665    OPC_CheckPatternPredicate, 27,
13666    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLT_W), 0,
13667                  MVT::v4i32, 2, 0, 1,
13668   12,
13669    OPC_CheckChild2CondCode, ISD::SETNE,
13670    OPC_CheckPatternPredicate, 27,
13671    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCNE_W), 0,
13672                  MVT::v4i32, 2, 0, 1,
13673   0,
13674  61|128,1,
13675   OPC_CheckChild0Type, MVT::v2f64,
13676   OPC_RecordChild1,
13677   OPC_CheckType, MVT::v2i64,
13678   OPC_Scope, 12,
13679    OPC_CheckChild2CondCode, ISD::SETOEQ,
13680    OPC_CheckPatternPredicate, 26,
13681    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCEQ_D), 0,
13682                  MVT::v2i64, 2, 0, 1,
13683   12,
13684    OPC_CheckChild2CondCode, ISD::SETOLE,
13685    OPC_CheckPatternPredicate, 26,
13686    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLE_D), 0,
13687                  MVT::v2i64, 2, 0, 1,
13688   12,
13689    OPC_CheckChild2CondCode, ISD::SETOLT,
13690    OPC_CheckPatternPredicate, 26,
13691    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLT_D), 0,
13692                  MVT::v2i64, 2, 0, 1,
13693   12,
13694    OPC_CheckChild2CondCode, ISD::SETONE,
13695    OPC_CheckPatternPredicate, 26,
13696    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCNE_D), 0,
13697                  MVT::v2i64, 2, 0, 1,
13698   12,
13699    OPC_CheckChild2CondCode, ISD::SETO,
13700    OPC_CheckPatternPredicate, 26,
13701    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCOR_D), 0,
13702                  MVT::v2i64, 2, 0, 1,
13703   12,
13704    OPC_CheckChild2CondCode, ISD::SETUEQ,
13705    OPC_CheckPatternPredicate, 26,
13706    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCUEQ_D), 0,
13707                  MVT::v2i64, 2, 0, 1,
13708   12,
13709    OPC_CheckChild2CondCode, ISD::SETULE,
13710    OPC_CheckPatternPredicate, 26,
13711    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCULE_D), 0,
13712                  MVT::v2i64, 2, 0, 1,
13713   12,
13714    OPC_CheckChild2CondCode, ISD::SETULT,
13715    OPC_CheckPatternPredicate, 26,
13716    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCULT_D), 0,
13717                  MVT::v2i64, 2, 0, 1,
13718   12,
13719    OPC_CheckChild2CondCode, ISD::SETUO,
13720    OPC_CheckPatternPredicate, 26,
13721    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCUN_D), 0,
13722                  MVT::v2i64, 2, 0, 1,
13723   12,
13724    OPC_CheckChild2CondCode, ISD::SETUNE,
13725    OPC_CheckPatternPredicate, 26,
13726    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCUNE_D), 0,
13727                  MVT::v2i64, 2, 0, 1,
13728   12,
13729    OPC_CheckChild2CondCode, ISD::SETEQ,
13730    OPC_CheckPatternPredicate, 27,
13731    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCEQ_D), 0,
13732                  MVT::v2i64, 2, 0, 1,
13733   12,
13734    OPC_CheckChild2CondCode, ISD::SETLE,
13735    OPC_CheckPatternPredicate, 27,
13736    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLE_D), 0,
13737                  MVT::v2i64, 2, 0, 1,
13738   12,
13739    OPC_CheckChild2CondCode, ISD::SETLT,
13740    OPC_CheckPatternPredicate, 27,
13741    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCLT_D), 0,
13742                  MVT::v2i64, 2, 0, 1,
13743   12,
13744    OPC_CheckChild2CondCode, ISD::SETNE,
13745    OPC_CheckPatternPredicate, 27,
13746    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCNE_D), 0,
13747                  MVT::v2i64, 2, 0, 1,
13748   0,
13749  0,
13750 76, TARGET_VAL(MipsISD::FPBrcond),
13751  OPC_RecordNode,
13752  OPC_CaptureGlueInput,
13753  OPC_Scope, 35,
13754   OPC_CheckChild1Integer, 0,
13755   OPC_CheckChild1Type, MVT::i32,
13756   OPC_RecordChild2,
13757   OPC_RecordChild3,
13758   OPC_MoveChild3,
13759   OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
13760   OPC_MoveParent,
13761   OPC_Scope, 10,
13762    OPC_CheckPatternPredicate, 69,
13763    OPC_EmitMergeInputChains1_0,
13764    OPC_MorphNodeTo0, TARGET_VAL(Mips::BC1F), 0|OPFL_Chain|OPFL_GlueInput,
13765                  2, 1, 2,
13766   10,
13767    OPC_CheckPatternPredicate, 10,
13768    OPC_EmitMergeInputChains1_0,
13769    OPC_MorphNodeTo0, TARGET_VAL(Mips::BC1F_MM), 0|OPFL_Chain|OPFL_GlueInput,
13770                  2, 1, 2,
13771   0,
13772  35,
13773   OPC_CheckChild1Integer, 2,
13774   OPC_CheckChild1Type, MVT::i32,
13775   OPC_RecordChild2,
13776   OPC_RecordChild3,
13777   OPC_MoveChild3,
13778   OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
13779   OPC_MoveParent,
13780   OPC_Scope, 10,
13781    OPC_CheckPatternPredicate, 69,
13782    OPC_EmitMergeInputChains1_0,
13783    OPC_MorphNodeTo0, TARGET_VAL(Mips::BC1T), 0|OPFL_Chain|OPFL_GlueInput,
13784                  2, 1, 2,
13785   10,
13786    OPC_CheckPatternPredicate, 10,
13787    OPC_EmitMergeInputChains1_0,
13788    OPC_MorphNodeTo0, TARGET_VAL(Mips::BC1T_MM), 0|OPFL_Chain|OPFL_GlueInput,
13789                  2, 1, 2,
13790   0,
13791  0,
13792 41|128,2, TARGET_VAL(ISD::SUB),
13793  OPC_Scope, 14,
13794   OPC_CheckChild0Integer, 0,
13795   OPC_RecordChild1,
13796   OPC_CheckType, MVT::i32,
13797   OPC_CheckPatternPredicate, 15,
13798   OPC_MorphNodeTo1, TARGET_VAL(Mips::NegRxRy16), 0,
13799                 MVT::i32, 1, 0,
13800  22|128,2,
13801   OPC_RecordChild0,
13802   OPC_Scope, 7|128,1,
13803    OPC_RecordChild1,
13804    OPC_SwitchType , 58, MVT::i32,
13805     OPC_Scope, 10,
13806      OPC_CheckPatternPredicate, 16,
13807      OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU16_MMR6), 0,
13808                    MVT::i32, 2, 0, 1,
13809     10,
13810      OPC_CheckPatternPredicate, 7,
13811      OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBu), 0,
13812                    MVT::i32, 2, 0, 1,
13813     10,
13814      OPC_CheckPatternPredicate, 15,
13815      OPC_MorphNodeTo1, TARGET_VAL(Mips::SubuRxRyRz16), 0,
13816                    MVT::i32, 2, 0, 1,
13817     22,
13818      OPC_CheckPatternPredicate, 30,
13819      OPC_Scope, 8,
13820       OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU16_MM), 0,
13821                     MVT::i32, 2, 0, 1,
13822      8,
13823       OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBu_MM), 0,
13824                     MVT::i32, 2, 0, 1,
13825      0,
13826     0,
13827    10, MVT::i64,
13828     OPC_CheckPatternPredicate, 25,
13829     OPC_MorphNodeTo1, TARGET_VAL(Mips::DSUBu), 0,
13830                   MVT::i64, 2, 0, 1,
13831    13, MVT::v16i8,
13832     OPC_CheckPatternPredicate, 26,
13833     OPC_CheckComplexPat, /*CP*/16, /*#*/1,
13834     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBVI_B), 0,
13835                   MVT::v16i8, 2, 0, 2,
13836    13, MVT::v8i16,
13837     OPC_CheckPatternPredicate, 26,
13838     OPC_CheckComplexPat, /*CP*/17, /*#*/1,
13839     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBVI_H), 0,
13840                   MVT::v8i16, 2, 0, 2,
13841    13, MVT::v4i32,
13842     OPC_CheckPatternPredicate, 26,
13843     OPC_CheckComplexPat, /*CP*/18, /*#*/1,
13844     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBVI_W), 0,
13845                   MVT::v4i32, 2, 0, 2,
13846    13, MVT::v2i64,
13847     OPC_CheckPatternPredicate, 26,
13848     OPC_CheckComplexPat, /*CP*/19, /*#*/1,
13849     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBVI_D), 0,
13850                   MVT::v2i64, 2, 0, 2,
13851    0,
13852   61,
13853    OPC_MoveChild1,
13854    OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
13855    OPC_RecordChild0,
13856    OPC_RecordChild1,
13857    OPC_MoveParent,
13858    OPC_SwitchType , 11, MVT::v16i8,
13859     OPC_CheckPatternPredicate, 26,
13860     OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBV_B), 0,
13861                   MVT::v16i8, 3, 0, 1, 2,
13862    11, MVT::v8i16,
13863     OPC_CheckPatternPredicate, 26,
13864     OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBV_H), 0,
13865                   MVT::v8i16, 3, 0, 1, 2,
13866    11, MVT::v4i32,
13867     OPC_CheckPatternPredicate, 26,
13868     OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBV_W), 0,
13869                   MVT::v4i32, 3, 0, 1, 2,
13870    11, MVT::v2i64,
13871     OPC_CheckPatternPredicate, 26,
13872     OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBV_D), 0,
13873                   MVT::v2i64, 3, 0, 1, 2,
13874    0,
13875   75,
13876    OPC_RecordChild1,
13877    OPC_SwitchType , 10, MVT::v2i16,
13878     OPC_CheckPatternPredicate, 28,
13879     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBQ_PH), 0,
13880                   MVT::v2i16, 2, 0, 1,
13881    10, MVT::v4i8,
13882     OPC_CheckPatternPredicate, 28,
13883     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_QB), 0,
13884                   MVT::v4i8, 2, 0, 1,
13885    10, MVT::v16i8,
13886     OPC_CheckPatternPredicate, 26,
13887     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBV_B), 0,
13888                   MVT::v16i8, 2, 0, 1,
13889    10, MVT::v8i16,
13890     OPC_CheckPatternPredicate, 26,
13891     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBV_H), 0,
13892                   MVT::v8i16, 2, 0, 1,
13893    10, MVT::v4i32,
13894     OPC_CheckPatternPredicate, 26,
13895     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBV_W), 0,
13896                   MVT::v4i32, 2, 0, 1,
13897    10, MVT::v2i64,
13898     OPC_CheckPatternPredicate, 26,
13899     OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBV_D), 0,
13900                   MVT::v2i64, 2, 0, 1,
13901    0,
13902   0,
13903  0,
13904 7|128,17, TARGET_VAL(ISD::OR),
13905  OPC_Scope, 27|128,4,
13906   OPC_RecordChild0,
13907   OPC_Scope, 35|128,1,
13908    OPC_RecordChild1,
13909    OPC_Scope, 85,
13910     OPC_MoveChild1,
13911     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
13912     OPC_Scope, 20,
13913      OPC_CheckPredicate, 21,
13914      OPC_MoveParent,
13915      OPC_CheckType, MVT::i32,
13916      OPC_CheckPatternPredicate, 16,
13917      OPC_EmitConvertToTarget, 1,
13918      OPC_EmitNodeXForm, 3, 2,
13919      OPC_MorphNodeTo1, TARGET_VAL(Mips::ORI_MMR6), 0,
13920                    MVT::i32, 2, 0, 3,
13921     17,
13922      OPC_CheckPredicate, 35,
13923      OPC_MoveParent,
13924      OPC_CheckType, MVT::i32,
13925      OPC_CheckPatternPredicate, 7,
13926      OPC_EmitConvertToTarget, 1,
13927      OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi), 0,
13928                    MVT::i32, 2, 0, 2,
13929     39,
13930      OPC_CheckPredicate, 21,
13931      OPC_MoveParent,
13932      OPC_SwitchType , 15, MVT::i64,
13933       OPC_CheckPatternPredicate, 24,
13934       OPC_EmitConvertToTarget, 1,
13935       OPC_EmitNodeXForm, 3, 2,
13936       OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi64), 0,
13937                     MVT::i64, 2, 0, 3,
13938      15, MVT::i32,
13939       OPC_CheckPatternPredicate, 30,
13940       OPC_EmitConvertToTarget, 1,
13941       OPC_EmitNodeXForm, 3, 2,
13942       OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi_MM), 0,
13943                     MVT::i32, 2, 0, 3,
13944      0,
13945     0,
13946    60,
13947     OPC_CheckType, MVT::i32,
13948     OPC_Scope, 10,
13949      OPC_CheckPatternPredicate, 7,
13950      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR), 0,
13951                    MVT::i32, 2, 0, 1,
13952     10,
13953      OPC_CheckPatternPredicate, 15,
13954      OPC_MorphNodeTo1, TARGET_VAL(Mips::OrRxRxRy16), 0,
13955                    MVT::i32, 2, 0, 1,
13956     22,
13957      OPC_CheckPatternPredicate, 30,
13958      OPC_Scope, 8,
13959       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR16_MM), 0,
13960                     MVT::i32, 2, 0, 1,
13961      8,
13962       OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MM), 0,
13963                     MVT::i32, 2, 0, 1,
13964      0,
13965     10,
13966      OPC_CheckPatternPredicate, 16,
13967      OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_MMR6), 0,
13968                    MVT::i32, 2, 0, 1,
13969     0,
13970    12,
13971     OPC_CheckType, MVT::i64,
13972     OPC_CheckPatternPredicate, 24,
13973     OPC_MorphNodeTo1, TARGET_VAL(Mips::OR64), 0,
13974                   MVT::i64, 2, 0, 1,
13975    0,
13976   113|128,2,
13977    OPC_MoveChild1,
13978    OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
13979    OPC_MoveChild0,
13980    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
13981    OPC_CheckPredicate, 36,
13982    OPC_MoveParent,
13983    OPC_MoveChild1,
13984    OPC_CheckOpcode, TARGET_VAL(ISD::AND),
13985    OPC_Scope, 46|128,1,
13986     OPC_RecordChild0,
13987     OPC_MoveChild1,
13988     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
13989     OPC_MoveChild0,
13990     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
13991     OPC_CheckPredicate, 37,
13992     OPC_CheckType, MVT::i32,
13993     OPC_MoveParent,
13994     OPC_MoveChild1,
13995     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
13996     OPC_CheckPredicate, 37,
13997     OPC_CheckType, MVT::i32,
13998     OPC_MoveParent,
13999     OPC_MoveChild2,
14000     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14001     OPC_CheckPredicate, 37,
14002     OPC_CheckType, MVT::i32,
14003     OPC_MoveParent,
14004     OPC_MoveChild3,
14005     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14006     OPC_CheckPredicate, 37,
14007     OPC_CheckType, MVT::i32,
14008     OPC_MoveParent,
14009     OPC_MoveChild4,
14010     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14011     OPC_CheckPredicate, 37,
14012     OPC_CheckType, MVT::i32,
14013     OPC_MoveParent,
14014     OPC_MoveChild5,
14015     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14016     OPC_CheckPredicate, 37,
14017     OPC_CheckType, MVT::i32,
14018     OPC_MoveParent,
14019     OPC_MoveChild6,
14020     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14021     OPC_CheckPredicate, 37,
14022     OPC_CheckType, MVT::i32,
14023     OPC_MoveParent,
14024     OPC_MoveChild7,
14025     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14026     OPC_CheckPredicate, 37,
14027     OPC_CheckType, MVT::i32,
14028     OPC_MoveParent,
14029     OPC_MoveChild, 8,
14030     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14031     OPC_CheckPredicate, 37,
14032     OPC_CheckType, MVT::i32,
14033     OPC_MoveParent,
14034     OPC_MoveChild, 9,
14035     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14036     OPC_CheckPredicate, 37,
14037     OPC_CheckType, MVT::i32,
14038     OPC_MoveParent,
14039     OPC_MoveChild, 10,
14040     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14041     OPC_CheckPredicate, 37,
14042     OPC_CheckType, MVT::i32,
14043     OPC_MoveParent,
14044     OPC_MoveChild, 11,
14045     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14046     OPC_CheckPredicate, 37,
14047     OPC_CheckType, MVT::i32,
14048     OPC_MoveParent,
14049     OPC_MoveChild, 12,
14050     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14051     OPC_CheckPredicate, 37,
14052     OPC_CheckType, MVT::i32,
14053     OPC_MoveParent,
14054     OPC_MoveChild, 13,
14055     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14056     OPC_CheckPredicate, 37,
14057     OPC_CheckType, MVT::i32,
14058     OPC_MoveParent,
14059     OPC_MoveChild, 14,
14060     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14061     OPC_CheckPredicate, 37,
14062     OPC_CheckType, MVT::i32,
14063     OPC_MoveParent,
14064     OPC_MoveChild, 15,
14065     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14066     OPC_CheckPredicate, 37,
14067     OPC_CheckType, MVT::i32,
14068     OPC_MoveParent,
14069     OPC_MoveParent,
14070     OPC_CheckType, MVT::v16i8,
14071     OPC_MoveParent,
14072     OPC_MoveParent,
14073     OPC_CheckType, MVT::v16i8,
14074     OPC_CheckPatternPredicate, 27,
14075     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_B), 0,
14076                   MVT::v16i8, 2, 0, 1,
14077    46|128,1,
14078     OPC_MoveChild0,
14079     OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14080     OPC_MoveChild0,
14081     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14082     OPC_CheckPredicate, 37,
14083     OPC_CheckType, MVT::i32,
14084     OPC_MoveParent,
14085     OPC_MoveChild1,
14086     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14087     OPC_CheckPredicate, 37,
14088     OPC_CheckType, MVT::i32,
14089     OPC_MoveParent,
14090     OPC_MoveChild2,
14091     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14092     OPC_CheckPredicate, 37,
14093     OPC_CheckType, MVT::i32,
14094     OPC_MoveParent,
14095     OPC_MoveChild3,
14096     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14097     OPC_CheckPredicate, 37,
14098     OPC_CheckType, MVT::i32,
14099     OPC_MoveParent,
14100     OPC_MoveChild4,
14101     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14102     OPC_CheckPredicate, 37,
14103     OPC_CheckType, MVT::i32,
14104     OPC_MoveParent,
14105     OPC_MoveChild5,
14106     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14107     OPC_CheckPredicate, 37,
14108     OPC_CheckType, MVT::i32,
14109     OPC_MoveParent,
14110     OPC_MoveChild6,
14111     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14112     OPC_CheckPredicate, 37,
14113     OPC_CheckType, MVT::i32,
14114     OPC_MoveParent,
14115     OPC_MoveChild7,
14116     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14117     OPC_CheckPredicate, 37,
14118     OPC_CheckType, MVT::i32,
14119     OPC_MoveParent,
14120     OPC_MoveChild, 8,
14121     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14122     OPC_CheckPredicate, 37,
14123     OPC_CheckType, MVT::i32,
14124     OPC_MoveParent,
14125     OPC_MoveChild, 9,
14126     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14127     OPC_CheckPredicate, 37,
14128     OPC_CheckType, MVT::i32,
14129     OPC_MoveParent,
14130     OPC_MoveChild, 10,
14131     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14132     OPC_CheckPredicate, 37,
14133     OPC_CheckType, MVT::i32,
14134     OPC_MoveParent,
14135     OPC_MoveChild, 11,
14136     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14137     OPC_CheckPredicate, 37,
14138     OPC_CheckType, MVT::i32,
14139     OPC_MoveParent,
14140     OPC_MoveChild, 12,
14141     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14142     OPC_CheckPredicate, 37,
14143     OPC_CheckType, MVT::i32,
14144     OPC_MoveParent,
14145     OPC_MoveChild, 13,
14146     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14147     OPC_CheckPredicate, 37,
14148     OPC_CheckType, MVT::i32,
14149     OPC_MoveParent,
14150     OPC_MoveChild, 14,
14151     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14152     OPC_CheckPredicate, 37,
14153     OPC_CheckType, MVT::i32,
14154     OPC_MoveParent,
14155     OPC_MoveChild, 15,
14156     OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14157     OPC_CheckPredicate, 37,
14158     OPC_CheckType, MVT::i32,
14159     OPC_MoveParent,
14160     OPC_MoveParent,
14161     OPC_RecordChild1,
14162     OPC_CheckType, MVT::v16i8,
14163     OPC_MoveParent,
14164     OPC_MoveParent,
14165     OPC_CheckType, MVT::v16i8,
14166     OPC_CheckPatternPredicate, 27,
14167     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_B), 0,
14168                   MVT::v16i8, 2, 0, 1,
14169    0,
14170   0,
14171  115|128,2,
14172   OPC_MoveChild0,
14173   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14174   OPC_MoveChild0,
14175   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14176   OPC_CheckPredicate, 36,
14177   OPC_MoveParent,
14178   OPC_MoveChild1,
14179   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14180   OPC_Scope, 47|128,1,
14181    OPC_RecordChild0,
14182    OPC_MoveChild1,
14183    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14184    OPC_MoveChild0,
14185    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14186    OPC_CheckPredicate, 37,
14187    OPC_CheckType, MVT::i32,
14188    OPC_MoveParent,
14189    OPC_MoveChild1,
14190    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14191    OPC_CheckPredicate, 37,
14192    OPC_CheckType, MVT::i32,
14193    OPC_MoveParent,
14194    OPC_MoveChild2,
14195    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14196    OPC_CheckPredicate, 37,
14197    OPC_CheckType, MVT::i32,
14198    OPC_MoveParent,
14199    OPC_MoveChild3,
14200    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14201    OPC_CheckPredicate, 37,
14202    OPC_CheckType, MVT::i32,
14203    OPC_MoveParent,
14204    OPC_MoveChild4,
14205    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14206    OPC_CheckPredicate, 37,
14207    OPC_CheckType, MVT::i32,
14208    OPC_MoveParent,
14209    OPC_MoveChild5,
14210    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14211    OPC_CheckPredicate, 37,
14212    OPC_CheckType, MVT::i32,
14213    OPC_MoveParent,
14214    OPC_MoveChild6,
14215    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14216    OPC_CheckPredicate, 37,
14217    OPC_CheckType, MVT::i32,
14218    OPC_MoveParent,
14219    OPC_MoveChild7,
14220    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14221    OPC_CheckPredicate, 37,
14222    OPC_CheckType, MVT::i32,
14223    OPC_MoveParent,
14224    OPC_MoveChild, 8,
14225    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14226    OPC_CheckPredicate, 37,
14227    OPC_CheckType, MVT::i32,
14228    OPC_MoveParent,
14229    OPC_MoveChild, 9,
14230    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14231    OPC_CheckPredicate, 37,
14232    OPC_CheckType, MVT::i32,
14233    OPC_MoveParent,
14234    OPC_MoveChild, 10,
14235    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14236    OPC_CheckPredicate, 37,
14237    OPC_CheckType, MVT::i32,
14238    OPC_MoveParent,
14239    OPC_MoveChild, 11,
14240    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14241    OPC_CheckPredicate, 37,
14242    OPC_CheckType, MVT::i32,
14243    OPC_MoveParent,
14244    OPC_MoveChild, 12,
14245    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14246    OPC_CheckPredicate, 37,
14247    OPC_CheckType, MVT::i32,
14248    OPC_MoveParent,
14249    OPC_MoveChild, 13,
14250    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14251    OPC_CheckPredicate, 37,
14252    OPC_CheckType, MVT::i32,
14253    OPC_MoveParent,
14254    OPC_MoveChild, 14,
14255    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14256    OPC_CheckPredicate, 37,
14257    OPC_CheckType, MVT::i32,
14258    OPC_MoveParent,
14259    OPC_MoveChild, 15,
14260    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14261    OPC_CheckPredicate, 37,
14262    OPC_CheckType, MVT::i32,
14263    OPC_MoveParent,
14264    OPC_MoveParent,
14265    OPC_CheckType, MVT::v16i8,
14266    OPC_MoveParent,
14267    OPC_MoveParent,
14268    OPC_RecordChild1,
14269    OPC_CheckType, MVT::v16i8,
14270    OPC_CheckPatternPredicate, 27,
14271    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_B), 0,
14272                  MVT::v16i8, 2, 1, 0,
14273   47|128,1,
14274    OPC_MoveChild0,
14275    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14276    OPC_MoveChild0,
14277    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14278    OPC_CheckPredicate, 37,
14279    OPC_CheckType, MVT::i32,
14280    OPC_MoveParent,
14281    OPC_MoveChild1,
14282    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14283    OPC_CheckPredicate, 37,
14284    OPC_CheckType, MVT::i32,
14285    OPC_MoveParent,
14286    OPC_MoveChild2,
14287    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14288    OPC_CheckPredicate, 37,
14289    OPC_CheckType, MVT::i32,
14290    OPC_MoveParent,
14291    OPC_MoveChild3,
14292    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14293    OPC_CheckPredicate, 37,
14294    OPC_CheckType, MVT::i32,
14295    OPC_MoveParent,
14296    OPC_MoveChild4,
14297    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14298    OPC_CheckPredicate, 37,
14299    OPC_CheckType, MVT::i32,
14300    OPC_MoveParent,
14301    OPC_MoveChild5,
14302    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14303    OPC_CheckPredicate, 37,
14304    OPC_CheckType, MVT::i32,
14305    OPC_MoveParent,
14306    OPC_MoveChild6,
14307    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14308    OPC_CheckPredicate, 37,
14309    OPC_CheckType, MVT::i32,
14310    OPC_MoveParent,
14311    OPC_MoveChild7,
14312    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14313    OPC_CheckPredicate, 37,
14314    OPC_CheckType, MVT::i32,
14315    OPC_MoveParent,
14316    OPC_MoveChild, 8,
14317    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14318    OPC_CheckPredicate, 37,
14319    OPC_CheckType, MVT::i32,
14320    OPC_MoveParent,
14321    OPC_MoveChild, 9,
14322    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14323    OPC_CheckPredicate, 37,
14324    OPC_CheckType, MVT::i32,
14325    OPC_MoveParent,
14326    OPC_MoveChild, 10,
14327    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14328    OPC_CheckPredicate, 37,
14329    OPC_CheckType, MVT::i32,
14330    OPC_MoveParent,
14331    OPC_MoveChild, 11,
14332    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14333    OPC_CheckPredicate, 37,
14334    OPC_CheckType, MVT::i32,
14335    OPC_MoveParent,
14336    OPC_MoveChild, 12,
14337    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14338    OPC_CheckPredicate, 37,
14339    OPC_CheckType, MVT::i32,
14340    OPC_MoveParent,
14341    OPC_MoveChild, 13,
14342    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14343    OPC_CheckPredicate, 37,
14344    OPC_CheckType, MVT::i32,
14345    OPC_MoveParent,
14346    OPC_MoveChild, 14,
14347    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14348    OPC_CheckPredicate, 37,
14349    OPC_CheckType, MVT::i32,
14350    OPC_MoveParent,
14351    OPC_MoveChild, 15,
14352    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14353    OPC_CheckPredicate, 37,
14354    OPC_CheckType, MVT::i32,
14355    OPC_MoveParent,
14356    OPC_MoveParent,
14357    OPC_RecordChild1,
14358    OPC_CheckType, MVT::v16i8,
14359    OPC_MoveParent,
14360    OPC_MoveParent,
14361    OPC_RecordChild1,
14362    OPC_CheckType, MVT::v16i8,
14363    OPC_CheckPatternPredicate, 27,
14364    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_B), 0,
14365                  MVT::v16i8, 2, 1, 0,
14366   0,
14367  80|128,1,
14368   OPC_RecordChild0,
14369   OPC_MoveChild1,
14370   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14371   OPC_MoveChild0,
14372   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14373   OPC_CheckPredicate, 36,
14374   OPC_MoveParent,
14375   OPC_MoveChild1,
14376   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14377   OPC_Scope, 94,
14378    OPC_RecordChild0,
14379    OPC_MoveChild1,
14380    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14381    OPC_MoveChild0,
14382    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14383    OPC_CheckPredicate, 38,
14384    OPC_CheckType, MVT::i32,
14385    OPC_MoveParent,
14386    OPC_MoveChild1,
14387    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14388    OPC_CheckPredicate, 38,
14389    OPC_CheckType, MVT::i32,
14390    OPC_MoveParent,
14391    OPC_MoveChild2,
14392    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14393    OPC_CheckPredicate, 38,
14394    OPC_CheckType, MVT::i32,
14395    OPC_MoveParent,
14396    OPC_MoveChild3,
14397    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14398    OPC_CheckPredicate, 38,
14399    OPC_CheckType, MVT::i32,
14400    OPC_MoveParent,
14401    OPC_MoveChild4,
14402    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14403    OPC_CheckPredicate, 38,
14404    OPC_CheckType, MVT::i32,
14405    OPC_MoveParent,
14406    OPC_MoveChild5,
14407    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14408    OPC_CheckPredicate, 38,
14409    OPC_CheckType, MVT::i32,
14410    OPC_MoveParent,
14411    OPC_MoveChild6,
14412    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14413    OPC_CheckPredicate, 38,
14414    OPC_CheckType, MVT::i32,
14415    OPC_MoveParent,
14416    OPC_MoveChild7,
14417    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14418    OPC_CheckPredicate, 38,
14419    OPC_CheckType, MVT::i32,
14420    OPC_MoveParent,
14421    OPC_MoveParent,
14422    OPC_CheckType, MVT::v8i16,
14423    OPC_MoveParent,
14424    OPC_MoveParent,
14425    OPC_CheckType, MVT::v8i16,
14426    OPC_CheckPatternPredicate, 27,
14427    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_H), 0,
14428                  MVT::v8i16, 2, 0, 1,
14429   94,
14430    OPC_MoveChild0,
14431    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14432    OPC_MoveChild0,
14433    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14434    OPC_CheckPredicate, 38,
14435    OPC_CheckType, MVT::i32,
14436    OPC_MoveParent,
14437    OPC_MoveChild1,
14438    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14439    OPC_CheckPredicate, 38,
14440    OPC_CheckType, MVT::i32,
14441    OPC_MoveParent,
14442    OPC_MoveChild2,
14443    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14444    OPC_CheckPredicate, 38,
14445    OPC_CheckType, MVT::i32,
14446    OPC_MoveParent,
14447    OPC_MoveChild3,
14448    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14449    OPC_CheckPredicate, 38,
14450    OPC_CheckType, MVT::i32,
14451    OPC_MoveParent,
14452    OPC_MoveChild4,
14453    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14454    OPC_CheckPredicate, 38,
14455    OPC_CheckType, MVT::i32,
14456    OPC_MoveParent,
14457    OPC_MoveChild5,
14458    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14459    OPC_CheckPredicate, 38,
14460    OPC_CheckType, MVT::i32,
14461    OPC_MoveParent,
14462    OPC_MoveChild6,
14463    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14464    OPC_CheckPredicate, 38,
14465    OPC_CheckType, MVT::i32,
14466    OPC_MoveParent,
14467    OPC_MoveChild7,
14468    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14469    OPC_CheckPredicate, 38,
14470    OPC_CheckType, MVT::i32,
14471    OPC_MoveParent,
14472    OPC_MoveParent,
14473    OPC_RecordChild1,
14474    OPC_CheckType, MVT::v8i16,
14475    OPC_MoveParent,
14476    OPC_MoveParent,
14477    OPC_CheckType, MVT::v8i16,
14478    OPC_CheckPatternPredicate, 27,
14479    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_H), 0,
14480                  MVT::v8i16, 2, 0, 1,
14481   0,
14482  81|128,1,
14483   OPC_MoveChild0,
14484   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14485   OPC_MoveChild0,
14486   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14487   OPC_CheckPredicate, 36,
14488   OPC_MoveParent,
14489   OPC_MoveChild1,
14490   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14491   OPC_Scope, 95,
14492    OPC_RecordChild0,
14493    OPC_MoveChild1,
14494    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14495    OPC_MoveChild0,
14496    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14497    OPC_CheckPredicate, 38,
14498    OPC_CheckType, MVT::i32,
14499    OPC_MoveParent,
14500    OPC_MoveChild1,
14501    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14502    OPC_CheckPredicate, 38,
14503    OPC_CheckType, MVT::i32,
14504    OPC_MoveParent,
14505    OPC_MoveChild2,
14506    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14507    OPC_CheckPredicate, 38,
14508    OPC_CheckType, MVT::i32,
14509    OPC_MoveParent,
14510    OPC_MoveChild3,
14511    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14512    OPC_CheckPredicate, 38,
14513    OPC_CheckType, MVT::i32,
14514    OPC_MoveParent,
14515    OPC_MoveChild4,
14516    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14517    OPC_CheckPredicate, 38,
14518    OPC_CheckType, MVT::i32,
14519    OPC_MoveParent,
14520    OPC_MoveChild5,
14521    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14522    OPC_CheckPredicate, 38,
14523    OPC_CheckType, MVT::i32,
14524    OPC_MoveParent,
14525    OPC_MoveChild6,
14526    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14527    OPC_CheckPredicate, 38,
14528    OPC_CheckType, MVT::i32,
14529    OPC_MoveParent,
14530    OPC_MoveChild7,
14531    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14532    OPC_CheckPredicate, 38,
14533    OPC_CheckType, MVT::i32,
14534    OPC_MoveParent,
14535    OPC_MoveParent,
14536    OPC_CheckType, MVT::v8i16,
14537    OPC_MoveParent,
14538    OPC_MoveParent,
14539    OPC_RecordChild1,
14540    OPC_CheckType, MVT::v8i16,
14541    OPC_CheckPatternPredicate, 27,
14542    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_H), 0,
14543                  MVT::v8i16, 2, 1, 0,
14544   95,
14545    OPC_MoveChild0,
14546    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14547    OPC_MoveChild0,
14548    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14549    OPC_CheckPredicate, 38,
14550    OPC_CheckType, MVT::i32,
14551    OPC_MoveParent,
14552    OPC_MoveChild1,
14553    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14554    OPC_CheckPredicate, 38,
14555    OPC_CheckType, MVT::i32,
14556    OPC_MoveParent,
14557    OPC_MoveChild2,
14558    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14559    OPC_CheckPredicate, 38,
14560    OPC_CheckType, MVT::i32,
14561    OPC_MoveParent,
14562    OPC_MoveChild3,
14563    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14564    OPC_CheckPredicate, 38,
14565    OPC_CheckType, MVT::i32,
14566    OPC_MoveParent,
14567    OPC_MoveChild4,
14568    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14569    OPC_CheckPredicate, 38,
14570    OPC_CheckType, MVT::i32,
14571    OPC_MoveParent,
14572    OPC_MoveChild5,
14573    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14574    OPC_CheckPredicate, 38,
14575    OPC_CheckType, MVT::i32,
14576    OPC_MoveParent,
14577    OPC_MoveChild6,
14578    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14579    OPC_CheckPredicate, 38,
14580    OPC_CheckType, MVT::i32,
14581    OPC_MoveParent,
14582    OPC_MoveChild7,
14583    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14584    OPC_CheckPredicate, 38,
14585    OPC_CheckType, MVT::i32,
14586    OPC_MoveParent,
14587    OPC_MoveParent,
14588    OPC_RecordChild1,
14589    OPC_CheckType, MVT::v8i16,
14590    OPC_MoveParent,
14591    OPC_MoveParent,
14592    OPC_RecordChild1,
14593    OPC_CheckType, MVT::v8i16,
14594    OPC_CheckPatternPredicate, 27,
14595    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_H), 0,
14596                  MVT::v8i16, 2, 1, 0,
14597   0,
14598  8|128,1,
14599   OPC_RecordChild0,
14600   OPC_MoveChild1,
14601   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14602   OPC_MoveChild0,
14603   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14604   OPC_CheckPredicate, 36,
14605   OPC_MoveParent,
14606   OPC_MoveChild1,
14607   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14608   OPC_Scope, 58,
14609    OPC_RecordChild0,
14610    OPC_MoveChild1,
14611    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14612    OPC_MoveChild0,
14613    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14614    OPC_CheckPredicate, 39,
14615    OPC_CheckType, MVT::i32,
14616    OPC_MoveParent,
14617    OPC_MoveChild1,
14618    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14619    OPC_CheckPredicate, 39,
14620    OPC_CheckType, MVT::i32,
14621    OPC_MoveParent,
14622    OPC_MoveChild2,
14623    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14624    OPC_CheckPredicate, 39,
14625    OPC_CheckType, MVT::i32,
14626    OPC_MoveParent,
14627    OPC_MoveChild3,
14628    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14629    OPC_CheckPredicate, 39,
14630    OPC_CheckType, MVT::i32,
14631    OPC_MoveParent,
14632    OPC_MoveParent,
14633    OPC_CheckType, MVT::v4i32,
14634    OPC_MoveParent,
14635    OPC_MoveParent,
14636    OPC_CheckType, MVT::v4i32,
14637    OPC_CheckPatternPredicate, 27,
14638    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_W), 0,
14639                  MVT::v4i32, 2, 0, 1,
14640   58,
14641    OPC_MoveChild0,
14642    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14643    OPC_MoveChild0,
14644    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14645    OPC_CheckPredicate, 39,
14646    OPC_CheckType, MVT::i32,
14647    OPC_MoveParent,
14648    OPC_MoveChild1,
14649    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14650    OPC_CheckPredicate, 39,
14651    OPC_CheckType, MVT::i32,
14652    OPC_MoveParent,
14653    OPC_MoveChild2,
14654    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14655    OPC_CheckPredicate, 39,
14656    OPC_CheckType, MVT::i32,
14657    OPC_MoveParent,
14658    OPC_MoveChild3,
14659    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14660    OPC_CheckPredicate, 39,
14661    OPC_CheckType, MVT::i32,
14662    OPC_MoveParent,
14663    OPC_MoveParent,
14664    OPC_RecordChild1,
14665    OPC_CheckType, MVT::v4i32,
14666    OPC_MoveParent,
14667    OPC_MoveParent,
14668    OPC_CheckType, MVT::v4i32,
14669    OPC_CheckPatternPredicate, 27,
14670    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_W), 0,
14671                  MVT::v4i32, 2, 0, 1,
14672   0,
14673  9|128,1,
14674   OPC_MoveChild0,
14675   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14676   OPC_MoveChild0,
14677   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14678   OPC_CheckPredicate, 36,
14679   OPC_MoveParent,
14680   OPC_MoveChild1,
14681   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14682   OPC_Scope, 59,
14683    OPC_RecordChild0,
14684    OPC_MoveChild1,
14685    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14686    OPC_MoveChild0,
14687    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14688    OPC_CheckPredicate, 39,
14689    OPC_CheckType, MVT::i32,
14690    OPC_MoveParent,
14691    OPC_MoveChild1,
14692    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14693    OPC_CheckPredicate, 39,
14694    OPC_CheckType, MVT::i32,
14695    OPC_MoveParent,
14696    OPC_MoveChild2,
14697    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14698    OPC_CheckPredicate, 39,
14699    OPC_CheckType, MVT::i32,
14700    OPC_MoveParent,
14701    OPC_MoveChild3,
14702    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14703    OPC_CheckPredicate, 39,
14704    OPC_CheckType, MVT::i32,
14705    OPC_MoveParent,
14706    OPC_MoveParent,
14707    OPC_CheckType, MVT::v4i32,
14708    OPC_MoveParent,
14709    OPC_MoveParent,
14710    OPC_RecordChild1,
14711    OPC_CheckType, MVT::v4i32,
14712    OPC_CheckPatternPredicate, 27,
14713    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_W), 0,
14714                  MVT::v4i32, 2, 1, 0,
14715   59,
14716    OPC_MoveChild0,
14717    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14718    OPC_MoveChild0,
14719    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14720    OPC_CheckPredicate, 39,
14721    OPC_CheckType, MVT::i32,
14722    OPC_MoveParent,
14723    OPC_MoveChild1,
14724    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14725    OPC_CheckPredicate, 39,
14726    OPC_CheckType, MVT::i32,
14727    OPC_MoveParent,
14728    OPC_MoveChild2,
14729    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14730    OPC_CheckPredicate, 39,
14731    OPC_CheckType, MVT::i32,
14732    OPC_MoveParent,
14733    OPC_MoveChild3,
14734    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
14735    OPC_CheckPredicate, 39,
14736    OPC_CheckType, MVT::i32,
14737    OPC_MoveParent,
14738    OPC_MoveParent,
14739    OPC_RecordChild1,
14740    OPC_CheckType, MVT::v4i32,
14741    OPC_MoveParent,
14742    OPC_MoveParent,
14743    OPC_RecordChild1,
14744    OPC_CheckType, MVT::v4i32,
14745    OPC_CheckPatternPredicate, 27,
14746    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_W), 0,
14747                  MVT::v4i32, 2, 1, 0,
14748   0,
14749  89,
14750   OPC_RecordChild0,
14751   OPC_MoveChild1,
14752   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14753   OPC_MoveChild0,
14754   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14755   OPC_MoveChild0,
14756   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14757   OPC_CheckType, MVT::v4i32,
14758   OPC_MoveParent,
14759   OPC_CheckPredicate, 40,
14760   OPC_MoveParent,
14761   OPC_MoveChild1,
14762   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14763   OPC_Scope, 31,
14764    OPC_RecordChild0,
14765    OPC_MoveChild1,
14766    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14767    OPC_MoveChild0,
14768    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14769    OPC_CheckType, MVT::v4i32,
14770    OPC_MoveParent,
14771    OPC_CheckPredicate, 41,
14772    OPC_MoveParent,
14773    OPC_CheckType, MVT::v2i64,
14774    OPC_MoveParent,
14775    OPC_MoveParent,
14776    OPC_CheckType, MVT::v2i64,
14777    OPC_CheckPatternPredicate, 27,
14778    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_D), 0,
14779                  MVT::v2i64, 2, 0, 1,
14780   31,
14781    OPC_MoveChild0,
14782    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14783    OPC_MoveChild0,
14784    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14785    OPC_CheckType, MVT::v4i32,
14786    OPC_MoveParent,
14787    OPC_CheckPredicate, 41,
14788    OPC_MoveParent,
14789    OPC_RecordChild1,
14790    OPC_CheckType, MVT::v2i64,
14791    OPC_MoveParent,
14792    OPC_MoveParent,
14793    OPC_CheckType, MVT::v2i64,
14794    OPC_CheckPatternPredicate, 27,
14795    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_D), 0,
14796                  MVT::v2i64, 2, 0, 1,
14797   0,
14798  90,
14799   OPC_MoveChild0,
14800   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14801   OPC_MoveChild0,
14802   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14803   OPC_MoveChild0,
14804   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14805   OPC_CheckType, MVT::v4i32,
14806   OPC_MoveParent,
14807   OPC_CheckPredicate, 40,
14808   OPC_MoveParent,
14809   OPC_MoveChild1,
14810   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
14811   OPC_Scope, 32,
14812    OPC_RecordChild0,
14813    OPC_MoveChild1,
14814    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14815    OPC_MoveChild0,
14816    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14817    OPC_CheckType, MVT::v4i32,
14818    OPC_MoveParent,
14819    OPC_CheckPredicate, 41,
14820    OPC_MoveParent,
14821    OPC_CheckType, MVT::v2i64,
14822    OPC_MoveParent,
14823    OPC_MoveParent,
14824    OPC_RecordChild1,
14825    OPC_CheckType, MVT::v2i64,
14826    OPC_CheckPatternPredicate, 27,
14827    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_D), 0,
14828                  MVT::v2i64, 2, 1, 0,
14829   32,
14830    OPC_MoveChild0,
14831    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14832    OPC_MoveChild0,
14833    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14834    OPC_CheckType, MVT::v4i32,
14835    OPC_MoveParent,
14836    OPC_CheckPredicate, 41,
14837    OPC_MoveParent,
14838    OPC_RecordChild1,
14839    OPC_CheckType, MVT::v2i64,
14840    OPC_MoveParent,
14841    OPC_MoveParent,
14842    OPC_RecordChild1,
14843    OPC_CheckType, MVT::v2i64,
14844    OPC_CheckPatternPredicate, 27,
14845    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_D), 0,
14846                  MVT::v2i64, 2, 1, 0,
14847   0,
14848  35,
14849   OPC_RecordChild0,
14850   OPC_MoveChild1,
14851   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14852   OPC_MoveChild0,
14853   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14854   OPC_MoveChild0,
14855   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14856   OPC_CheckType, MVT::v4i32,
14857   OPC_MoveParent,
14858   OPC_CheckPredicate, 40,
14859   OPC_MoveParent,
14860   OPC_RecordChild1,
14861   OPC_CheckChild1Type, MVT::v2i64,
14862   OPC_MoveParent,
14863   OPC_CheckType, MVT::v2i64,
14864   OPC_CheckPatternPredicate, 26,
14865   OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_D), 0,
14866                 MVT::v2i64, 2, 0, 1,
14867  35,
14868   OPC_MoveChild0,
14869   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14870   OPC_MoveChild0,
14871   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
14872   OPC_MoveChild0,
14873   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14874   OPC_CheckType, MVT::v4i32,
14875   OPC_MoveParent,
14876   OPC_CheckPredicate, 40,
14877   OPC_MoveParent,
14878   OPC_RecordChild1,
14879   OPC_CheckChild1Type, MVT::v2i64,
14880   OPC_MoveParent,
14881   OPC_RecordChild1,
14882   OPC_CheckType, MVT::v2i64,
14883   OPC_CheckPatternPredicate, 26,
14884   OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_D), 0,
14885                 MVT::v2i64, 2, 1, 0,
14886  63,
14887   OPC_RecordChild0,
14888   OPC_MoveChild1,
14889   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14890   OPC_MoveChild0,
14891   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14892   OPC_CheckPredicate, 36,
14893   OPC_MoveParent,
14894   OPC_RecordChild1,
14895   OPC_Scope, 15,
14896    OPC_CheckChild1Type, MVT::v16i8,
14897    OPC_MoveParent,
14898    OPC_CheckType, MVT::v16i8,
14899    OPC_CheckPatternPredicate, 26,
14900    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_B), 0,
14901                  MVT::v16i8, 2, 0, 1,
14902   15,
14903    OPC_CheckChild1Type, MVT::v8i16,
14904    OPC_MoveParent,
14905    OPC_CheckType, MVT::v8i16,
14906    OPC_CheckPatternPredicate, 26,
14907    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_H), 0,
14908                  MVT::v8i16, 2, 0, 1,
14909   15,
14910    OPC_CheckChild1Type, MVT::v4i32,
14911    OPC_MoveParent,
14912    OPC_CheckType, MVT::v4i32,
14913    OPC_CheckPatternPredicate, 26,
14914    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_W), 0,
14915                  MVT::v4i32, 2, 0, 1,
14916   0,
14917  65,
14918   OPC_MoveChild0,
14919   OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
14920   OPC_MoveChild0,
14921   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
14922   OPC_CheckPredicate, 36,
14923   OPC_MoveParent,
14924   OPC_RecordChild1,
14925   OPC_Scope, 16,
14926    OPC_CheckChild1Type, MVT::v16i8,
14927    OPC_MoveParent,
14928    OPC_RecordChild1,
14929    OPC_CheckType, MVT::v16i8,
14930    OPC_CheckPatternPredicate, 26,
14931    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_B), 0,
14932                  MVT::v16i8, 2, 1, 0,
14933   16,
14934    OPC_CheckChild1Type, MVT::v8i16,
14935    OPC_MoveParent,
14936    OPC_RecordChild1,
14937    OPC_CheckType, MVT::v8i16,
14938    OPC_CheckPatternPredicate, 26,
14939    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_H), 0,
14940                  MVT::v8i16, 2, 1, 0,
14941   16,
14942    OPC_CheckChild1Type, MVT::v4i32,
14943    OPC_MoveParent,
14944    OPC_RecordChild1,
14945    OPC_CheckType, MVT::v4i32,
14946    OPC_CheckPatternPredicate, 26,
14947    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSET_W), 0,
14948                  MVT::v4i32, 2, 1, 0,
14949   0,
14950  56|128,1,
14951   OPC_RecordChild0,
14952   OPC_RecordChild1,
14953   OPC_SwitchType , 61, MVT::v16i8,
14954    OPC_CheckPatternPredicate, 26,
14955    OPC_Scope, 11,
14956     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
14957     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_B), 0,
14958                   MVT::v16i8, 2, 0, 2,
14959    11,
14960     OPC_CheckComplexPat, /*CP*/14, /*#*/1,
14961     OPC_MorphNodeTo1, TARGET_VAL(Mips::ORI_B), 0,
14962                   MVT::v16i8, 2, 0, 2,
14963    11,
14964     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
14965     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_B), 0,
14966                   MVT::v16i8, 2, 1, 2,
14967    11,
14968     OPC_CheckComplexPat, /*CP*/14, /*#*/0,
14969     OPC_MorphNodeTo1, TARGET_VAL(Mips::ORI_B), 0,
14970                   MVT::v16i8, 2, 1, 2,
14971    8,
14972     OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_V), 0,
14973                   MVT::v16i8, 2, 0, 1,
14974    0,
14975   37, MVT::v8i16,
14976    OPC_CheckPatternPredicate, 26,
14977    OPC_Scope, 11,
14978     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
14979     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_H), 0,
14980                   MVT::v8i16, 2, 0, 2,
14981    11,
14982     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
14983     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_H), 0,
14984                   MVT::v8i16, 2, 1, 2,
14985    8,
14986     OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_V_H_PSEUDO), 0,
14987                   MVT::v8i16, 2, 0, 1,
14988    0,
14989   37, MVT::v4i32,
14990    OPC_CheckPatternPredicate, 26,
14991    OPC_Scope, 11,
14992     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
14993     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_W), 0,
14994                   MVT::v4i32, 2, 0, 2,
14995    11,
14996     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
14997     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_W), 0,
14998                   MVT::v4i32, 2, 1, 2,
14999    8,
15000     OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_V_W_PSEUDO), 0,
15001                   MVT::v4i32, 2, 0, 1,
15002    0,
15003   37, MVT::v2i64,
15004    OPC_CheckPatternPredicate, 26,
15005    OPC_Scope, 11,
15006     OPC_CheckComplexPat, /*CP*/13, /*#*/1,
15007     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_D), 0,
15008                   MVT::v2i64, 2, 0, 2,
15009    11,
15010     OPC_CheckComplexPat, /*CP*/13, /*#*/0,
15011     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSETI_D), 0,
15012                   MVT::v2i64, 2, 1, 2,
15013    8,
15014     OPC_MorphNodeTo1, TARGET_VAL(Mips::OR_V_D_PSEUDO), 0,
15015                   MVT::v2i64, 2, 0, 1,
15016    0,
15017   0,
15018  0,
15019 10|128,8, TARGET_VAL(ISD::SHL),
15020  OPC_RecordChild0,
15021  OPC_Scope, 99,
15022   OPC_RecordChild1,
15023   OPC_MoveChild1,
15024   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15025   OPC_CheckType, MVT::i32,
15026   OPC_Scope, 17,
15027    OPC_CheckPredicate, 25,
15028    OPC_MoveParent,
15029    OPC_CheckType, MVT::i32,
15030    OPC_CheckPatternPredicate, 7,
15031    OPC_EmitConvertToTarget, 1,
15032    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL), 0,
15033                  MVT::i32, 2, 0, 2,
15034   17,
15035    OPC_CheckPredicate, 33,
15036    OPC_MoveParent,
15037    OPC_CheckType, MVT::i64,
15038    OPC_CheckPatternPredicate, 25,
15039    OPC_EmitConvertToTarget, 1,
15040    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSLL), 0,
15041                  MVT::i64, 2, 0, 2,
15042   17,
15043    OPC_CheckPredicate, 25,
15044    OPC_MoveParent,
15045    OPC_CheckType, MVT::i32,
15046    OPC_CheckPatternPredicate, 15,
15047    OPC_EmitConvertToTarget, 1,
15048    OPC_MorphNodeTo1, TARGET_VAL(Mips::SllX16), 0,
15049                  MVT::i32, 2, 0, 2,
15050   17,
15051    OPC_CheckPredicate, 52,
15052    OPC_MoveParent,
15053    OPC_CheckType, MVT::i32,
15054    OPC_CheckPatternPredicate, 8,
15055    OPC_EmitConvertToTarget, 1,
15056    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL16_MM), 0,
15057                  MVT::i32, 2, 0, 2,
15058   17,
15059    OPC_CheckPredicate, 25,
15060    OPC_MoveParent,
15061    OPC_CheckType, MVT::i32,
15062    OPC_CheckPatternPredicate, 8,
15063    OPC_EmitConvertToTarget, 1,
15064    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_MM), 0,
15065                  MVT::i32, 2, 0, 2,
15066   0,
15067  31,
15068   OPC_MoveChild1,
15069   OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
15070   OPC_RecordChild0,
15071   OPC_CheckType, MVT::i32,
15072   OPC_MoveParent,
15073   OPC_CheckType, MVT::i64,
15074   OPC_CheckPatternPredicate, 29,
15075   OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
15076   OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
15077                 MVT::i32, 2, 1, 2,
15078   OPC_MorphNodeTo1, TARGET_VAL(Mips::DSLLV), 0,
15079                 MVT::i64, 2, 0, 3,
15080  54,
15081   OPC_RecordChild1,
15082   OPC_CheckChild1Type, MVT::i32,
15083   OPC_SwitchType , 35, MVT::i32,
15084    OPC_Scope, 10,
15085     OPC_CheckPatternPredicate, 7,
15086     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLLV), 0,
15087                   MVT::i32, 2, 0, 1,
15088    10,
15089     OPC_CheckPatternPredicate, 15,
15090     OPC_MorphNodeTo1, TARGET_VAL(Mips::SllvRxRy16), 0,
15091                   MVT::i32, 2, 0, 1,
15092    10,
15093     OPC_CheckPatternPredicate, 8,
15094     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLLV_MM), 0,
15095                   MVT::i32, 2, 0, 1,
15096    0,
15097   10, MVT::i64,
15098    OPC_CheckPatternPredicate, 25,
15099    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSLLV), 0,
15100                  MVT::i64, 2, 0, 1,
15101   0,
15102  82|128,5,
15103   OPC_MoveChild1,
15104   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
15105   OPC_Scope, 45|128,1,
15106    OPC_RecordChild0,
15107    OPC_MoveChild1,
15108    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15109    OPC_MoveChild0,
15110    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15111    OPC_CheckPredicate, 37,
15112    OPC_CheckType, MVT::i32,
15113    OPC_MoveParent,
15114    OPC_MoveChild1,
15115    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15116    OPC_CheckPredicate, 37,
15117    OPC_CheckType, MVT::i32,
15118    OPC_MoveParent,
15119    OPC_MoveChild2,
15120    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15121    OPC_CheckPredicate, 37,
15122    OPC_CheckType, MVT::i32,
15123    OPC_MoveParent,
15124    OPC_MoveChild3,
15125    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15126    OPC_CheckPredicate, 37,
15127    OPC_CheckType, MVT::i32,
15128    OPC_MoveParent,
15129    OPC_MoveChild4,
15130    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15131    OPC_CheckPredicate, 37,
15132    OPC_CheckType, MVT::i32,
15133    OPC_MoveParent,
15134    OPC_MoveChild5,
15135    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15136    OPC_CheckPredicate, 37,
15137    OPC_CheckType, MVT::i32,
15138    OPC_MoveParent,
15139    OPC_MoveChild6,
15140    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15141    OPC_CheckPredicate, 37,
15142    OPC_CheckType, MVT::i32,
15143    OPC_MoveParent,
15144    OPC_MoveChild7,
15145    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15146    OPC_CheckPredicate, 37,
15147    OPC_CheckType, MVT::i32,
15148    OPC_MoveParent,
15149    OPC_MoveChild, 8,
15150    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15151    OPC_CheckPredicate, 37,
15152    OPC_CheckType, MVT::i32,
15153    OPC_MoveParent,
15154    OPC_MoveChild, 9,
15155    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15156    OPC_CheckPredicate, 37,
15157    OPC_CheckType, MVT::i32,
15158    OPC_MoveParent,
15159    OPC_MoveChild, 10,
15160    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15161    OPC_CheckPredicate, 37,
15162    OPC_CheckType, MVT::i32,
15163    OPC_MoveParent,
15164    OPC_MoveChild, 11,
15165    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15166    OPC_CheckPredicate, 37,
15167    OPC_CheckType, MVT::i32,
15168    OPC_MoveParent,
15169    OPC_MoveChild, 12,
15170    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15171    OPC_CheckPredicate, 37,
15172    OPC_CheckType, MVT::i32,
15173    OPC_MoveParent,
15174    OPC_MoveChild, 13,
15175    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15176    OPC_CheckPredicate, 37,
15177    OPC_CheckType, MVT::i32,
15178    OPC_MoveParent,
15179    OPC_MoveChild, 14,
15180    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15181    OPC_CheckPredicate, 37,
15182    OPC_CheckType, MVT::i32,
15183    OPC_MoveParent,
15184    OPC_MoveChild, 15,
15185    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15186    OPC_CheckPredicate, 37,
15187    OPC_CheckType, MVT::i32,
15188    OPC_MoveParent,
15189    OPC_MoveParent,
15190    OPC_CheckType, MVT::v16i8,
15191    OPC_MoveParent,
15192    OPC_CheckType, MVT::v16i8,
15193    OPC_CheckPatternPredicate, 27,
15194    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_B), 0,
15195                  MVT::v16i8, 2, 0, 1,
15196   45|128,1,
15197    OPC_MoveChild0,
15198    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15199    OPC_MoveChild0,
15200    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15201    OPC_CheckPredicate, 37,
15202    OPC_CheckType, MVT::i32,
15203    OPC_MoveParent,
15204    OPC_MoveChild1,
15205    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15206    OPC_CheckPredicate, 37,
15207    OPC_CheckType, MVT::i32,
15208    OPC_MoveParent,
15209    OPC_MoveChild2,
15210    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15211    OPC_CheckPredicate, 37,
15212    OPC_CheckType, MVT::i32,
15213    OPC_MoveParent,
15214    OPC_MoveChild3,
15215    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15216    OPC_CheckPredicate, 37,
15217    OPC_CheckType, MVT::i32,
15218    OPC_MoveParent,
15219    OPC_MoveChild4,
15220    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15221    OPC_CheckPredicate, 37,
15222    OPC_CheckType, MVT::i32,
15223    OPC_MoveParent,
15224    OPC_MoveChild5,
15225    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15226    OPC_CheckPredicate, 37,
15227    OPC_CheckType, MVT::i32,
15228    OPC_MoveParent,
15229    OPC_MoveChild6,
15230    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15231    OPC_CheckPredicate, 37,
15232    OPC_CheckType, MVT::i32,
15233    OPC_MoveParent,
15234    OPC_MoveChild7,
15235    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15236    OPC_CheckPredicate, 37,
15237    OPC_CheckType, MVT::i32,
15238    OPC_MoveParent,
15239    OPC_MoveChild, 8,
15240    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15241    OPC_CheckPredicate, 37,
15242    OPC_CheckType, MVT::i32,
15243    OPC_MoveParent,
15244    OPC_MoveChild, 9,
15245    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15246    OPC_CheckPredicate, 37,
15247    OPC_CheckType, MVT::i32,
15248    OPC_MoveParent,
15249    OPC_MoveChild, 10,
15250    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15251    OPC_CheckPredicate, 37,
15252    OPC_CheckType, MVT::i32,
15253    OPC_MoveParent,
15254    OPC_MoveChild, 11,
15255    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15256    OPC_CheckPredicate, 37,
15257    OPC_CheckType, MVT::i32,
15258    OPC_MoveParent,
15259    OPC_MoveChild, 12,
15260    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15261    OPC_CheckPredicate, 37,
15262    OPC_CheckType, MVT::i32,
15263    OPC_MoveParent,
15264    OPC_MoveChild, 13,
15265    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15266    OPC_CheckPredicate, 37,
15267    OPC_CheckType, MVT::i32,
15268    OPC_MoveParent,
15269    OPC_MoveChild, 14,
15270    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15271    OPC_CheckPredicate, 37,
15272    OPC_CheckType, MVT::i32,
15273    OPC_MoveParent,
15274    OPC_MoveChild, 15,
15275    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15276    OPC_CheckPredicate, 37,
15277    OPC_CheckType, MVT::i32,
15278    OPC_MoveParent,
15279    OPC_MoveParent,
15280    OPC_RecordChild1,
15281    OPC_CheckType, MVT::v16i8,
15282    OPC_MoveParent,
15283    OPC_CheckType, MVT::v16i8,
15284    OPC_CheckPatternPredicate, 27,
15285    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_B), 0,
15286                  MVT::v16i8, 2, 0, 1,
15287   93,
15288    OPC_RecordChild0,
15289    OPC_MoveChild1,
15290    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15291    OPC_MoveChild0,
15292    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15293    OPC_CheckPredicate, 38,
15294    OPC_CheckType, MVT::i32,
15295    OPC_MoveParent,
15296    OPC_MoveChild1,
15297    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15298    OPC_CheckPredicate, 38,
15299    OPC_CheckType, MVT::i32,
15300    OPC_MoveParent,
15301    OPC_MoveChild2,
15302    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15303    OPC_CheckPredicate, 38,
15304    OPC_CheckType, MVT::i32,
15305    OPC_MoveParent,
15306    OPC_MoveChild3,
15307    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15308    OPC_CheckPredicate, 38,
15309    OPC_CheckType, MVT::i32,
15310    OPC_MoveParent,
15311    OPC_MoveChild4,
15312    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15313    OPC_CheckPredicate, 38,
15314    OPC_CheckType, MVT::i32,
15315    OPC_MoveParent,
15316    OPC_MoveChild5,
15317    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15318    OPC_CheckPredicate, 38,
15319    OPC_CheckType, MVT::i32,
15320    OPC_MoveParent,
15321    OPC_MoveChild6,
15322    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15323    OPC_CheckPredicate, 38,
15324    OPC_CheckType, MVT::i32,
15325    OPC_MoveParent,
15326    OPC_MoveChild7,
15327    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15328    OPC_CheckPredicate, 38,
15329    OPC_CheckType, MVT::i32,
15330    OPC_MoveParent,
15331    OPC_MoveParent,
15332    OPC_CheckType, MVT::v8i16,
15333    OPC_MoveParent,
15334    OPC_CheckType, MVT::v8i16,
15335    OPC_CheckPatternPredicate, 27,
15336    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_H), 0,
15337                  MVT::v8i16, 2, 0, 1,
15338   93,
15339    OPC_MoveChild0,
15340    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15341    OPC_MoveChild0,
15342    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15343    OPC_CheckPredicate, 38,
15344    OPC_CheckType, MVT::i32,
15345    OPC_MoveParent,
15346    OPC_MoveChild1,
15347    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15348    OPC_CheckPredicate, 38,
15349    OPC_CheckType, MVT::i32,
15350    OPC_MoveParent,
15351    OPC_MoveChild2,
15352    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15353    OPC_CheckPredicate, 38,
15354    OPC_CheckType, MVT::i32,
15355    OPC_MoveParent,
15356    OPC_MoveChild3,
15357    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15358    OPC_CheckPredicate, 38,
15359    OPC_CheckType, MVT::i32,
15360    OPC_MoveParent,
15361    OPC_MoveChild4,
15362    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15363    OPC_CheckPredicate, 38,
15364    OPC_CheckType, MVT::i32,
15365    OPC_MoveParent,
15366    OPC_MoveChild5,
15367    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15368    OPC_CheckPredicate, 38,
15369    OPC_CheckType, MVT::i32,
15370    OPC_MoveParent,
15371    OPC_MoveChild6,
15372    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15373    OPC_CheckPredicate, 38,
15374    OPC_CheckType, MVT::i32,
15375    OPC_MoveParent,
15376    OPC_MoveChild7,
15377    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15378    OPC_CheckPredicate, 38,
15379    OPC_CheckType, MVT::i32,
15380    OPC_MoveParent,
15381    OPC_MoveParent,
15382    OPC_RecordChild1,
15383    OPC_CheckType, MVT::v8i16,
15384    OPC_MoveParent,
15385    OPC_CheckType, MVT::v8i16,
15386    OPC_CheckPatternPredicate, 27,
15387    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_H), 0,
15388                  MVT::v8i16, 2, 0, 1,
15389   57,
15390    OPC_RecordChild0,
15391    OPC_MoveChild1,
15392    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15393    OPC_MoveChild0,
15394    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15395    OPC_CheckPredicate, 39,
15396    OPC_CheckType, MVT::i32,
15397    OPC_MoveParent,
15398    OPC_MoveChild1,
15399    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15400    OPC_CheckPredicate, 39,
15401    OPC_CheckType, MVT::i32,
15402    OPC_MoveParent,
15403    OPC_MoveChild2,
15404    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15405    OPC_CheckPredicate, 39,
15406    OPC_CheckType, MVT::i32,
15407    OPC_MoveParent,
15408    OPC_MoveChild3,
15409    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15410    OPC_CheckPredicate, 39,
15411    OPC_CheckType, MVT::i32,
15412    OPC_MoveParent,
15413    OPC_MoveParent,
15414    OPC_CheckType, MVT::v4i32,
15415    OPC_MoveParent,
15416    OPC_CheckType, MVT::v4i32,
15417    OPC_CheckPatternPredicate, 27,
15418    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_W), 0,
15419                  MVT::v4i32, 2, 0, 1,
15420   57,
15421    OPC_MoveChild0,
15422    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15423    OPC_MoveChild0,
15424    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15425    OPC_CheckPredicate, 39,
15426    OPC_CheckType, MVT::i32,
15427    OPC_MoveParent,
15428    OPC_MoveChild1,
15429    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15430    OPC_CheckPredicate, 39,
15431    OPC_CheckType, MVT::i32,
15432    OPC_MoveParent,
15433    OPC_MoveChild2,
15434    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15435    OPC_CheckPredicate, 39,
15436    OPC_CheckType, MVT::i32,
15437    OPC_MoveParent,
15438    OPC_MoveChild3,
15439    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15440    OPC_CheckPredicate, 39,
15441    OPC_CheckType, MVT::i32,
15442    OPC_MoveParent,
15443    OPC_MoveParent,
15444    OPC_RecordChild1,
15445    OPC_CheckType, MVT::v4i32,
15446    OPC_MoveParent,
15447    OPC_CheckType, MVT::v4i32,
15448    OPC_CheckPatternPredicate, 27,
15449    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_W), 0,
15450                  MVT::v4i32, 2, 0, 1,
15451   30,
15452    OPC_RecordChild0,
15453    OPC_MoveChild1,
15454    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
15455    OPC_MoveChild0,
15456    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15457    OPC_CheckType, MVT::v4i32,
15458    OPC_MoveParent,
15459    OPC_CheckPredicate, 41,
15460    OPC_MoveParent,
15461    OPC_CheckType, MVT::v2i64,
15462    OPC_MoveParent,
15463    OPC_CheckType, MVT::v2i64,
15464    OPC_CheckPatternPredicate, 27,
15465    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_D), 0,
15466                  MVT::v2i64, 2, 0, 1,
15467   30,
15468    OPC_MoveChild0,
15469    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
15470    OPC_MoveChild0,
15471    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15472    OPC_CheckType, MVT::v4i32,
15473    OPC_MoveParent,
15474    OPC_CheckPredicate, 41,
15475    OPC_MoveParent,
15476    OPC_RecordChild1,
15477    OPC_CheckType, MVT::v2i64,
15478    OPC_MoveParent,
15479    OPC_CheckType, MVT::v2i64,
15480    OPC_CheckPatternPredicate, 27,
15481    OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_D), 0,
15482                  MVT::v2i64, 2, 0, 1,
15483   0,
15484  119,
15485   OPC_RecordChild1,
15486   OPC_SwitchType , 27, MVT::v16i8,
15487    OPC_CheckChild1Type, MVT::v16i8,
15488    OPC_CheckPatternPredicate, 26,
15489    OPC_Scope, 11,
15490     OPC_CheckComplexPat, /*CP*/24, /*#*/1,
15491     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLLI_B), 0,
15492                   MVT::v16i8, 2, 0, 2,
15493    8,
15494     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_B), 0,
15495                   MVT::v16i8, 2, 0, 1,
15496    0,
15497   27, MVT::v8i16,
15498    OPC_CheckChild1Type, MVT::v8i16,
15499    OPC_CheckPatternPredicate, 26,
15500    OPC_Scope, 11,
15501     OPC_CheckComplexPat, /*CP*/25, /*#*/1,
15502     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLLI_H), 0,
15503                   MVT::v8i16, 2, 0, 2,
15504    8,
15505     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_H), 0,
15506                   MVT::v8i16, 2, 0, 1,
15507    0,
15508   27, MVT::v4i32,
15509    OPC_CheckChild1Type, MVT::v4i32,
15510    OPC_CheckPatternPredicate, 26,
15511    OPC_Scope, 11,
15512     OPC_CheckComplexPat, /*CP*/18, /*#*/1,
15513     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLLI_W), 0,
15514                   MVT::v4i32, 2, 0, 2,
15515    8,
15516     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_W), 0,
15517                   MVT::v4i32, 2, 0, 1,
15518    0,
15519   27, MVT::v2i64,
15520    OPC_CheckChild1Type, MVT::v2i64,
15521    OPC_CheckPatternPredicate, 26,
15522    OPC_Scope, 11,
15523     OPC_CheckComplexPat, /*CP*/26, /*#*/1,
15524     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLLI_D), 0,
15525                   MVT::v2i64, 2, 0, 2,
15526    8,
15527     OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL_D), 0,
15528                   MVT::v2i64, 2, 0, 1,
15529    0,
15530   0,
15531  0,
15532 10|128,8, TARGET_VAL(ISD::SRL),
15533  OPC_RecordChild0,
15534  OPC_Scope, 99,
15535   OPC_RecordChild1,
15536   OPC_MoveChild1,
15537   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15538   OPC_CheckType, MVT::i32,
15539   OPC_Scope, 17,
15540    OPC_CheckPredicate, 25,
15541    OPC_MoveParent,
15542    OPC_CheckType, MVT::i32,
15543    OPC_CheckPatternPredicate, 7,
15544    OPC_EmitConvertToTarget, 1,
15545    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL), 0,
15546                  MVT::i32, 2, 0, 2,
15547   17,
15548    OPC_CheckPredicate, 33,
15549    OPC_MoveParent,
15550    OPC_CheckType, MVT::i64,
15551    OPC_CheckPatternPredicate, 25,
15552    OPC_EmitConvertToTarget, 1,
15553    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRL), 0,
15554                  MVT::i64, 2, 0, 2,
15555   17,
15556    OPC_CheckPredicate, 25,
15557    OPC_MoveParent,
15558    OPC_CheckType, MVT::i32,
15559    OPC_CheckPatternPredicate, 15,
15560    OPC_EmitConvertToTarget, 1,
15561    OPC_MorphNodeTo1, TARGET_VAL(Mips::SrlX16), 0,
15562                  MVT::i32, 2, 0, 2,
15563   17,
15564    OPC_CheckPredicate, 52,
15565    OPC_MoveParent,
15566    OPC_CheckType, MVT::i32,
15567    OPC_CheckPatternPredicate, 8,
15568    OPC_EmitConvertToTarget, 1,
15569    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL16_MM), 0,
15570                  MVT::i32, 2, 0, 2,
15571   17,
15572    OPC_CheckPredicate, 25,
15573    OPC_MoveParent,
15574    OPC_CheckType, MVT::i32,
15575    OPC_CheckPatternPredicate, 8,
15576    OPC_EmitConvertToTarget, 1,
15577    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_MM), 0,
15578                  MVT::i32, 2, 0, 2,
15579   0,
15580  31,
15581   OPC_MoveChild1,
15582   OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
15583   OPC_RecordChild0,
15584   OPC_CheckType, MVT::i32,
15585   OPC_MoveParent,
15586   OPC_CheckType, MVT::i64,
15587   OPC_CheckPatternPredicate, 29,
15588   OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
15589   OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
15590                 MVT::i32, 2, 1, 2,
15591   OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRLV), 0,
15592                 MVT::i64, 2, 0, 3,
15593  54,
15594   OPC_RecordChild1,
15595   OPC_CheckChild1Type, MVT::i32,
15596   OPC_SwitchType , 35, MVT::i32,
15597    OPC_Scope, 10,
15598     OPC_CheckPatternPredicate, 7,
15599     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLV), 0,
15600                   MVT::i32, 2, 0, 1,
15601    10,
15602     OPC_CheckPatternPredicate, 15,
15603     OPC_MorphNodeTo1, TARGET_VAL(Mips::SrlvRxRy16), 0,
15604                   MVT::i32, 2, 0, 1,
15605    10,
15606     OPC_CheckPatternPredicate, 8,
15607     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLV_MM), 0,
15608                   MVT::i32, 2, 0, 1,
15609    0,
15610   10, MVT::i64,
15611    OPC_CheckPatternPredicate, 25,
15612    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRLV), 0,
15613                  MVT::i64, 2, 0, 1,
15614   0,
15615  82|128,5,
15616   OPC_MoveChild1,
15617   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
15618   OPC_Scope, 45|128,1,
15619    OPC_RecordChild0,
15620    OPC_MoveChild1,
15621    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15622    OPC_MoveChild0,
15623    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15624    OPC_CheckPredicate, 37,
15625    OPC_CheckType, MVT::i32,
15626    OPC_MoveParent,
15627    OPC_MoveChild1,
15628    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15629    OPC_CheckPredicate, 37,
15630    OPC_CheckType, MVT::i32,
15631    OPC_MoveParent,
15632    OPC_MoveChild2,
15633    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15634    OPC_CheckPredicate, 37,
15635    OPC_CheckType, MVT::i32,
15636    OPC_MoveParent,
15637    OPC_MoveChild3,
15638    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15639    OPC_CheckPredicate, 37,
15640    OPC_CheckType, MVT::i32,
15641    OPC_MoveParent,
15642    OPC_MoveChild4,
15643    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15644    OPC_CheckPredicate, 37,
15645    OPC_CheckType, MVT::i32,
15646    OPC_MoveParent,
15647    OPC_MoveChild5,
15648    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15649    OPC_CheckPredicate, 37,
15650    OPC_CheckType, MVT::i32,
15651    OPC_MoveParent,
15652    OPC_MoveChild6,
15653    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15654    OPC_CheckPredicate, 37,
15655    OPC_CheckType, MVT::i32,
15656    OPC_MoveParent,
15657    OPC_MoveChild7,
15658    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15659    OPC_CheckPredicate, 37,
15660    OPC_CheckType, MVT::i32,
15661    OPC_MoveParent,
15662    OPC_MoveChild, 8,
15663    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15664    OPC_CheckPredicate, 37,
15665    OPC_CheckType, MVT::i32,
15666    OPC_MoveParent,
15667    OPC_MoveChild, 9,
15668    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15669    OPC_CheckPredicate, 37,
15670    OPC_CheckType, MVT::i32,
15671    OPC_MoveParent,
15672    OPC_MoveChild, 10,
15673    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15674    OPC_CheckPredicate, 37,
15675    OPC_CheckType, MVT::i32,
15676    OPC_MoveParent,
15677    OPC_MoveChild, 11,
15678    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15679    OPC_CheckPredicate, 37,
15680    OPC_CheckType, MVT::i32,
15681    OPC_MoveParent,
15682    OPC_MoveChild, 12,
15683    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15684    OPC_CheckPredicate, 37,
15685    OPC_CheckType, MVT::i32,
15686    OPC_MoveParent,
15687    OPC_MoveChild, 13,
15688    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15689    OPC_CheckPredicate, 37,
15690    OPC_CheckType, MVT::i32,
15691    OPC_MoveParent,
15692    OPC_MoveChild, 14,
15693    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15694    OPC_CheckPredicate, 37,
15695    OPC_CheckType, MVT::i32,
15696    OPC_MoveParent,
15697    OPC_MoveChild, 15,
15698    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15699    OPC_CheckPredicate, 37,
15700    OPC_CheckType, MVT::i32,
15701    OPC_MoveParent,
15702    OPC_MoveParent,
15703    OPC_CheckType, MVT::v16i8,
15704    OPC_MoveParent,
15705    OPC_CheckType, MVT::v16i8,
15706    OPC_CheckPatternPredicate, 27,
15707    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_B), 0,
15708                  MVT::v16i8, 2, 0, 1,
15709   45|128,1,
15710    OPC_MoveChild0,
15711    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15712    OPC_MoveChild0,
15713    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15714    OPC_CheckPredicate, 37,
15715    OPC_CheckType, MVT::i32,
15716    OPC_MoveParent,
15717    OPC_MoveChild1,
15718    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15719    OPC_CheckPredicate, 37,
15720    OPC_CheckType, MVT::i32,
15721    OPC_MoveParent,
15722    OPC_MoveChild2,
15723    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15724    OPC_CheckPredicate, 37,
15725    OPC_CheckType, MVT::i32,
15726    OPC_MoveParent,
15727    OPC_MoveChild3,
15728    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15729    OPC_CheckPredicate, 37,
15730    OPC_CheckType, MVT::i32,
15731    OPC_MoveParent,
15732    OPC_MoveChild4,
15733    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15734    OPC_CheckPredicate, 37,
15735    OPC_CheckType, MVT::i32,
15736    OPC_MoveParent,
15737    OPC_MoveChild5,
15738    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15739    OPC_CheckPredicate, 37,
15740    OPC_CheckType, MVT::i32,
15741    OPC_MoveParent,
15742    OPC_MoveChild6,
15743    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15744    OPC_CheckPredicate, 37,
15745    OPC_CheckType, MVT::i32,
15746    OPC_MoveParent,
15747    OPC_MoveChild7,
15748    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15749    OPC_CheckPredicate, 37,
15750    OPC_CheckType, MVT::i32,
15751    OPC_MoveParent,
15752    OPC_MoveChild, 8,
15753    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15754    OPC_CheckPredicate, 37,
15755    OPC_CheckType, MVT::i32,
15756    OPC_MoveParent,
15757    OPC_MoveChild, 9,
15758    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15759    OPC_CheckPredicate, 37,
15760    OPC_CheckType, MVT::i32,
15761    OPC_MoveParent,
15762    OPC_MoveChild, 10,
15763    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15764    OPC_CheckPredicate, 37,
15765    OPC_CheckType, MVT::i32,
15766    OPC_MoveParent,
15767    OPC_MoveChild, 11,
15768    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15769    OPC_CheckPredicate, 37,
15770    OPC_CheckType, MVT::i32,
15771    OPC_MoveParent,
15772    OPC_MoveChild, 12,
15773    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15774    OPC_CheckPredicate, 37,
15775    OPC_CheckType, MVT::i32,
15776    OPC_MoveParent,
15777    OPC_MoveChild, 13,
15778    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15779    OPC_CheckPredicate, 37,
15780    OPC_CheckType, MVT::i32,
15781    OPC_MoveParent,
15782    OPC_MoveChild, 14,
15783    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15784    OPC_CheckPredicate, 37,
15785    OPC_CheckType, MVT::i32,
15786    OPC_MoveParent,
15787    OPC_MoveChild, 15,
15788    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15789    OPC_CheckPredicate, 37,
15790    OPC_CheckType, MVT::i32,
15791    OPC_MoveParent,
15792    OPC_MoveParent,
15793    OPC_RecordChild1,
15794    OPC_CheckType, MVT::v16i8,
15795    OPC_MoveParent,
15796    OPC_CheckType, MVT::v16i8,
15797    OPC_CheckPatternPredicate, 27,
15798    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_B), 0,
15799                  MVT::v16i8, 2, 0, 1,
15800   93,
15801    OPC_RecordChild0,
15802    OPC_MoveChild1,
15803    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15804    OPC_MoveChild0,
15805    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15806    OPC_CheckPredicate, 38,
15807    OPC_CheckType, MVT::i32,
15808    OPC_MoveParent,
15809    OPC_MoveChild1,
15810    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15811    OPC_CheckPredicate, 38,
15812    OPC_CheckType, MVT::i32,
15813    OPC_MoveParent,
15814    OPC_MoveChild2,
15815    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15816    OPC_CheckPredicate, 38,
15817    OPC_CheckType, MVT::i32,
15818    OPC_MoveParent,
15819    OPC_MoveChild3,
15820    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15821    OPC_CheckPredicate, 38,
15822    OPC_CheckType, MVT::i32,
15823    OPC_MoveParent,
15824    OPC_MoveChild4,
15825    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15826    OPC_CheckPredicate, 38,
15827    OPC_CheckType, MVT::i32,
15828    OPC_MoveParent,
15829    OPC_MoveChild5,
15830    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15831    OPC_CheckPredicate, 38,
15832    OPC_CheckType, MVT::i32,
15833    OPC_MoveParent,
15834    OPC_MoveChild6,
15835    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15836    OPC_CheckPredicate, 38,
15837    OPC_CheckType, MVT::i32,
15838    OPC_MoveParent,
15839    OPC_MoveChild7,
15840    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15841    OPC_CheckPredicate, 38,
15842    OPC_CheckType, MVT::i32,
15843    OPC_MoveParent,
15844    OPC_MoveParent,
15845    OPC_CheckType, MVT::v8i16,
15846    OPC_MoveParent,
15847    OPC_CheckType, MVT::v8i16,
15848    OPC_CheckPatternPredicate, 27,
15849    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_H), 0,
15850                  MVT::v8i16, 2, 0, 1,
15851   93,
15852    OPC_MoveChild0,
15853    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15854    OPC_MoveChild0,
15855    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15856    OPC_CheckPredicate, 38,
15857    OPC_CheckType, MVT::i32,
15858    OPC_MoveParent,
15859    OPC_MoveChild1,
15860    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15861    OPC_CheckPredicate, 38,
15862    OPC_CheckType, MVT::i32,
15863    OPC_MoveParent,
15864    OPC_MoveChild2,
15865    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15866    OPC_CheckPredicate, 38,
15867    OPC_CheckType, MVT::i32,
15868    OPC_MoveParent,
15869    OPC_MoveChild3,
15870    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15871    OPC_CheckPredicate, 38,
15872    OPC_CheckType, MVT::i32,
15873    OPC_MoveParent,
15874    OPC_MoveChild4,
15875    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15876    OPC_CheckPredicate, 38,
15877    OPC_CheckType, MVT::i32,
15878    OPC_MoveParent,
15879    OPC_MoveChild5,
15880    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15881    OPC_CheckPredicate, 38,
15882    OPC_CheckType, MVT::i32,
15883    OPC_MoveParent,
15884    OPC_MoveChild6,
15885    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15886    OPC_CheckPredicate, 38,
15887    OPC_CheckType, MVT::i32,
15888    OPC_MoveParent,
15889    OPC_MoveChild7,
15890    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15891    OPC_CheckPredicate, 38,
15892    OPC_CheckType, MVT::i32,
15893    OPC_MoveParent,
15894    OPC_MoveParent,
15895    OPC_RecordChild1,
15896    OPC_CheckType, MVT::v8i16,
15897    OPC_MoveParent,
15898    OPC_CheckType, MVT::v8i16,
15899    OPC_CheckPatternPredicate, 27,
15900    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_H), 0,
15901                  MVT::v8i16, 2, 0, 1,
15902   57,
15903    OPC_RecordChild0,
15904    OPC_MoveChild1,
15905    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15906    OPC_MoveChild0,
15907    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15908    OPC_CheckPredicate, 39,
15909    OPC_CheckType, MVT::i32,
15910    OPC_MoveParent,
15911    OPC_MoveChild1,
15912    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15913    OPC_CheckPredicate, 39,
15914    OPC_CheckType, MVT::i32,
15915    OPC_MoveParent,
15916    OPC_MoveChild2,
15917    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15918    OPC_CheckPredicate, 39,
15919    OPC_CheckType, MVT::i32,
15920    OPC_MoveParent,
15921    OPC_MoveChild3,
15922    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15923    OPC_CheckPredicate, 39,
15924    OPC_CheckType, MVT::i32,
15925    OPC_MoveParent,
15926    OPC_MoveParent,
15927    OPC_CheckType, MVT::v4i32,
15928    OPC_MoveParent,
15929    OPC_CheckType, MVT::v4i32,
15930    OPC_CheckPatternPredicate, 27,
15931    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_W), 0,
15932                  MVT::v4i32, 2, 0, 1,
15933   57,
15934    OPC_MoveChild0,
15935    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15936    OPC_MoveChild0,
15937    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15938    OPC_CheckPredicate, 39,
15939    OPC_CheckType, MVT::i32,
15940    OPC_MoveParent,
15941    OPC_MoveChild1,
15942    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15943    OPC_CheckPredicate, 39,
15944    OPC_CheckType, MVT::i32,
15945    OPC_MoveParent,
15946    OPC_MoveChild2,
15947    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15948    OPC_CheckPredicate, 39,
15949    OPC_CheckType, MVT::i32,
15950    OPC_MoveParent,
15951    OPC_MoveChild3,
15952    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
15953    OPC_CheckPredicate, 39,
15954    OPC_CheckType, MVT::i32,
15955    OPC_MoveParent,
15956    OPC_MoveParent,
15957    OPC_RecordChild1,
15958    OPC_CheckType, MVT::v4i32,
15959    OPC_MoveParent,
15960    OPC_CheckType, MVT::v4i32,
15961    OPC_CheckPatternPredicate, 27,
15962    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_W), 0,
15963                  MVT::v4i32, 2, 0, 1,
15964   30,
15965    OPC_RecordChild0,
15966    OPC_MoveChild1,
15967    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
15968    OPC_MoveChild0,
15969    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15970    OPC_CheckType, MVT::v4i32,
15971    OPC_MoveParent,
15972    OPC_CheckPredicate, 41,
15973    OPC_MoveParent,
15974    OPC_CheckType, MVT::v2i64,
15975    OPC_MoveParent,
15976    OPC_CheckType, MVT::v2i64,
15977    OPC_CheckPatternPredicate, 27,
15978    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_D), 0,
15979                  MVT::v2i64, 2, 0, 1,
15980   30,
15981    OPC_MoveChild0,
15982    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
15983    OPC_MoveChild0,
15984    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
15985    OPC_CheckType, MVT::v4i32,
15986    OPC_MoveParent,
15987    OPC_CheckPredicate, 41,
15988    OPC_MoveParent,
15989    OPC_RecordChild1,
15990    OPC_CheckType, MVT::v2i64,
15991    OPC_MoveParent,
15992    OPC_CheckType, MVT::v2i64,
15993    OPC_CheckPatternPredicate, 27,
15994    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_D), 0,
15995                  MVT::v2i64, 2, 0, 1,
15996   0,
15997  119,
15998   OPC_RecordChild1,
15999   OPC_SwitchType , 27, MVT::v16i8,
16000    OPC_CheckChild1Type, MVT::v16i8,
16001    OPC_CheckPatternPredicate, 26,
16002    OPC_Scope, 11,
16003     OPC_CheckComplexPat, /*CP*/24, /*#*/1,
16004     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLI_B), 0,
16005                   MVT::v16i8, 2, 0, 2,
16006    8,
16007     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_B), 0,
16008                   MVT::v16i8, 2, 0, 1,
16009    0,
16010   27, MVT::v8i16,
16011    OPC_CheckChild1Type, MVT::v8i16,
16012    OPC_CheckPatternPredicate, 26,
16013    OPC_Scope, 11,
16014     OPC_CheckComplexPat, /*CP*/25, /*#*/1,
16015     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLI_H), 0,
16016                   MVT::v8i16, 2, 0, 2,
16017    8,
16018     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_H), 0,
16019                   MVT::v8i16, 2, 0, 1,
16020    0,
16021   27, MVT::v4i32,
16022    OPC_CheckChild1Type, MVT::v4i32,
16023    OPC_CheckPatternPredicate, 26,
16024    OPC_Scope, 11,
16025     OPC_CheckComplexPat, /*CP*/18, /*#*/1,
16026     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLI_W), 0,
16027                   MVT::v4i32, 2, 0, 2,
16028    8,
16029     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_W), 0,
16030                   MVT::v4i32, 2, 0, 1,
16031    0,
16032   27, MVT::v2i64,
16033    OPC_CheckChild1Type, MVT::v2i64,
16034    OPC_CheckPatternPredicate, 26,
16035    OPC_Scope, 11,
16036     OPC_CheckComplexPat, /*CP*/26, /*#*/1,
16037     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRLI_D), 0,
16038                   MVT::v2i64, 2, 0, 2,
16039    8,
16040     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL_D), 0,
16041                   MVT::v2i64, 2, 0, 1,
16042    0,
16043   0,
16044  0,
16045 118|128,7, TARGET_VAL(ISD::SRA),
16046  OPC_RecordChild0,
16047  OPC_Scope, 79,
16048   OPC_RecordChild1,
16049   OPC_MoveChild1,
16050   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16051   OPC_CheckType, MVT::i32,
16052   OPC_Scope, 17,
16053    OPC_CheckPredicate, 25,
16054    OPC_MoveParent,
16055    OPC_CheckType, MVT::i32,
16056    OPC_CheckPatternPredicate, 7,
16057    OPC_EmitConvertToTarget, 1,
16058    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA), 0,
16059                  MVT::i32, 2, 0, 2,
16060   17,
16061    OPC_CheckPredicate, 33,
16062    OPC_MoveParent,
16063    OPC_CheckType, MVT::i64,
16064    OPC_CheckPatternPredicate, 25,
16065    OPC_EmitConvertToTarget, 1,
16066    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRA), 0,
16067                  MVT::i64, 2, 0, 2,
16068   33,
16069    OPC_CheckPredicate, 25,
16070    OPC_MoveParent,
16071    OPC_CheckType, MVT::i32,
16072    OPC_Scope, 12,
16073     OPC_CheckPatternPredicate, 15,
16074     OPC_EmitConvertToTarget, 1,
16075     OPC_MorphNodeTo1, TARGET_VAL(Mips::SraX16), 0,
16076                   MVT::i32, 2, 0, 2,
16077    12,
16078     OPC_CheckPatternPredicate, 8,
16079     OPC_EmitConvertToTarget, 1,
16080     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_MM), 0,
16081                   MVT::i32, 2, 0, 2,
16082    0,
16083   0,
16084  31,
16085   OPC_MoveChild1,
16086   OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
16087   OPC_RecordChild0,
16088   OPC_CheckType, MVT::i32,
16089   OPC_MoveParent,
16090   OPC_CheckType, MVT::i64,
16091   OPC_CheckPatternPredicate, 29,
16092   OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16093   OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16094                 MVT::i32, 2, 1, 2,
16095   OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRAV), 0,
16096                 MVT::i64, 2, 0, 3,
16097  54,
16098   OPC_RecordChild1,
16099   OPC_CheckChild1Type, MVT::i32,
16100   OPC_SwitchType , 35, MVT::i32,
16101    OPC_Scope, 10,
16102     OPC_CheckPatternPredicate, 7,
16103     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAV), 0,
16104                   MVT::i32, 2, 0, 1,
16105    10,
16106     OPC_CheckPatternPredicate, 15,
16107     OPC_MorphNodeTo1, TARGET_VAL(Mips::SravRxRy16), 0,
16108                   MVT::i32, 2, 0, 1,
16109    10,
16110     OPC_CheckPatternPredicate, 8,
16111     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAV_MM), 0,
16112                   MVT::i32, 2, 0, 1,
16113    0,
16114   10, MVT::i64,
16115    OPC_CheckPatternPredicate, 25,
16116    OPC_MorphNodeTo1, TARGET_VAL(Mips::DSRAV), 0,
16117                  MVT::i64, 2, 0, 1,
16118   0,
16119  82|128,5,
16120   OPC_MoveChild1,
16121   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
16122   OPC_Scope, 45|128,1,
16123    OPC_RecordChild0,
16124    OPC_MoveChild1,
16125    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16126    OPC_MoveChild0,
16127    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16128    OPC_CheckPredicate, 37,
16129    OPC_CheckType, MVT::i32,
16130    OPC_MoveParent,
16131    OPC_MoveChild1,
16132    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16133    OPC_CheckPredicate, 37,
16134    OPC_CheckType, MVT::i32,
16135    OPC_MoveParent,
16136    OPC_MoveChild2,
16137    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16138    OPC_CheckPredicate, 37,
16139    OPC_CheckType, MVT::i32,
16140    OPC_MoveParent,
16141    OPC_MoveChild3,
16142    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16143    OPC_CheckPredicate, 37,
16144    OPC_CheckType, MVT::i32,
16145    OPC_MoveParent,
16146    OPC_MoveChild4,
16147    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16148    OPC_CheckPredicate, 37,
16149    OPC_CheckType, MVT::i32,
16150    OPC_MoveParent,
16151    OPC_MoveChild5,
16152    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16153    OPC_CheckPredicate, 37,
16154    OPC_CheckType, MVT::i32,
16155    OPC_MoveParent,
16156    OPC_MoveChild6,
16157    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16158    OPC_CheckPredicate, 37,
16159    OPC_CheckType, MVT::i32,
16160    OPC_MoveParent,
16161    OPC_MoveChild7,
16162    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16163    OPC_CheckPredicate, 37,
16164    OPC_CheckType, MVT::i32,
16165    OPC_MoveParent,
16166    OPC_MoveChild, 8,
16167    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16168    OPC_CheckPredicate, 37,
16169    OPC_CheckType, MVT::i32,
16170    OPC_MoveParent,
16171    OPC_MoveChild, 9,
16172    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16173    OPC_CheckPredicate, 37,
16174    OPC_CheckType, MVT::i32,
16175    OPC_MoveParent,
16176    OPC_MoveChild, 10,
16177    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16178    OPC_CheckPredicate, 37,
16179    OPC_CheckType, MVT::i32,
16180    OPC_MoveParent,
16181    OPC_MoveChild, 11,
16182    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16183    OPC_CheckPredicate, 37,
16184    OPC_CheckType, MVT::i32,
16185    OPC_MoveParent,
16186    OPC_MoveChild, 12,
16187    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16188    OPC_CheckPredicate, 37,
16189    OPC_CheckType, MVT::i32,
16190    OPC_MoveParent,
16191    OPC_MoveChild, 13,
16192    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16193    OPC_CheckPredicate, 37,
16194    OPC_CheckType, MVT::i32,
16195    OPC_MoveParent,
16196    OPC_MoveChild, 14,
16197    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16198    OPC_CheckPredicate, 37,
16199    OPC_CheckType, MVT::i32,
16200    OPC_MoveParent,
16201    OPC_MoveChild, 15,
16202    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16203    OPC_CheckPredicate, 37,
16204    OPC_CheckType, MVT::i32,
16205    OPC_MoveParent,
16206    OPC_MoveParent,
16207    OPC_CheckType, MVT::v16i8,
16208    OPC_MoveParent,
16209    OPC_CheckType, MVT::v16i8,
16210    OPC_CheckPatternPredicate, 27,
16211    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_B), 0,
16212                  MVT::v16i8, 2, 0, 1,
16213   45|128,1,
16214    OPC_MoveChild0,
16215    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16216    OPC_MoveChild0,
16217    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16218    OPC_CheckPredicate, 37,
16219    OPC_CheckType, MVT::i32,
16220    OPC_MoveParent,
16221    OPC_MoveChild1,
16222    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16223    OPC_CheckPredicate, 37,
16224    OPC_CheckType, MVT::i32,
16225    OPC_MoveParent,
16226    OPC_MoveChild2,
16227    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16228    OPC_CheckPredicate, 37,
16229    OPC_CheckType, MVT::i32,
16230    OPC_MoveParent,
16231    OPC_MoveChild3,
16232    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16233    OPC_CheckPredicate, 37,
16234    OPC_CheckType, MVT::i32,
16235    OPC_MoveParent,
16236    OPC_MoveChild4,
16237    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16238    OPC_CheckPredicate, 37,
16239    OPC_CheckType, MVT::i32,
16240    OPC_MoveParent,
16241    OPC_MoveChild5,
16242    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16243    OPC_CheckPredicate, 37,
16244    OPC_CheckType, MVT::i32,
16245    OPC_MoveParent,
16246    OPC_MoveChild6,
16247    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16248    OPC_CheckPredicate, 37,
16249    OPC_CheckType, MVT::i32,
16250    OPC_MoveParent,
16251    OPC_MoveChild7,
16252    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16253    OPC_CheckPredicate, 37,
16254    OPC_CheckType, MVT::i32,
16255    OPC_MoveParent,
16256    OPC_MoveChild, 8,
16257    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16258    OPC_CheckPredicate, 37,
16259    OPC_CheckType, MVT::i32,
16260    OPC_MoveParent,
16261    OPC_MoveChild, 9,
16262    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16263    OPC_CheckPredicate, 37,
16264    OPC_CheckType, MVT::i32,
16265    OPC_MoveParent,
16266    OPC_MoveChild, 10,
16267    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16268    OPC_CheckPredicate, 37,
16269    OPC_CheckType, MVT::i32,
16270    OPC_MoveParent,
16271    OPC_MoveChild, 11,
16272    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16273    OPC_CheckPredicate, 37,
16274    OPC_CheckType, MVT::i32,
16275    OPC_MoveParent,
16276    OPC_MoveChild, 12,
16277    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16278    OPC_CheckPredicate, 37,
16279    OPC_CheckType, MVT::i32,
16280    OPC_MoveParent,
16281    OPC_MoveChild, 13,
16282    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16283    OPC_CheckPredicate, 37,
16284    OPC_CheckType, MVT::i32,
16285    OPC_MoveParent,
16286    OPC_MoveChild, 14,
16287    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16288    OPC_CheckPredicate, 37,
16289    OPC_CheckType, MVT::i32,
16290    OPC_MoveParent,
16291    OPC_MoveChild, 15,
16292    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16293    OPC_CheckPredicate, 37,
16294    OPC_CheckType, MVT::i32,
16295    OPC_MoveParent,
16296    OPC_MoveParent,
16297    OPC_RecordChild1,
16298    OPC_CheckType, MVT::v16i8,
16299    OPC_MoveParent,
16300    OPC_CheckType, MVT::v16i8,
16301    OPC_CheckPatternPredicate, 27,
16302    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_B), 0,
16303                  MVT::v16i8, 2, 0, 1,
16304   93,
16305    OPC_RecordChild0,
16306    OPC_MoveChild1,
16307    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16308    OPC_MoveChild0,
16309    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16310    OPC_CheckPredicate, 38,
16311    OPC_CheckType, MVT::i32,
16312    OPC_MoveParent,
16313    OPC_MoveChild1,
16314    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16315    OPC_CheckPredicate, 38,
16316    OPC_CheckType, MVT::i32,
16317    OPC_MoveParent,
16318    OPC_MoveChild2,
16319    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16320    OPC_CheckPredicate, 38,
16321    OPC_CheckType, MVT::i32,
16322    OPC_MoveParent,
16323    OPC_MoveChild3,
16324    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16325    OPC_CheckPredicate, 38,
16326    OPC_CheckType, MVT::i32,
16327    OPC_MoveParent,
16328    OPC_MoveChild4,
16329    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16330    OPC_CheckPredicate, 38,
16331    OPC_CheckType, MVT::i32,
16332    OPC_MoveParent,
16333    OPC_MoveChild5,
16334    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16335    OPC_CheckPredicate, 38,
16336    OPC_CheckType, MVT::i32,
16337    OPC_MoveParent,
16338    OPC_MoveChild6,
16339    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16340    OPC_CheckPredicate, 38,
16341    OPC_CheckType, MVT::i32,
16342    OPC_MoveParent,
16343    OPC_MoveChild7,
16344    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16345    OPC_CheckPredicate, 38,
16346    OPC_CheckType, MVT::i32,
16347    OPC_MoveParent,
16348    OPC_MoveParent,
16349    OPC_CheckType, MVT::v8i16,
16350    OPC_MoveParent,
16351    OPC_CheckType, MVT::v8i16,
16352    OPC_CheckPatternPredicate, 27,
16353    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_H), 0,
16354                  MVT::v8i16, 2, 0, 1,
16355   93,
16356    OPC_MoveChild0,
16357    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16358    OPC_MoveChild0,
16359    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16360    OPC_CheckPredicate, 38,
16361    OPC_CheckType, MVT::i32,
16362    OPC_MoveParent,
16363    OPC_MoveChild1,
16364    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16365    OPC_CheckPredicate, 38,
16366    OPC_CheckType, MVT::i32,
16367    OPC_MoveParent,
16368    OPC_MoveChild2,
16369    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16370    OPC_CheckPredicate, 38,
16371    OPC_CheckType, MVT::i32,
16372    OPC_MoveParent,
16373    OPC_MoveChild3,
16374    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16375    OPC_CheckPredicate, 38,
16376    OPC_CheckType, MVT::i32,
16377    OPC_MoveParent,
16378    OPC_MoveChild4,
16379    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16380    OPC_CheckPredicate, 38,
16381    OPC_CheckType, MVT::i32,
16382    OPC_MoveParent,
16383    OPC_MoveChild5,
16384    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16385    OPC_CheckPredicate, 38,
16386    OPC_CheckType, MVT::i32,
16387    OPC_MoveParent,
16388    OPC_MoveChild6,
16389    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16390    OPC_CheckPredicate, 38,
16391    OPC_CheckType, MVT::i32,
16392    OPC_MoveParent,
16393    OPC_MoveChild7,
16394    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16395    OPC_CheckPredicate, 38,
16396    OPC_CheckType, MVT::i32,
16397    OPC_MoveParent,
16398    OPC_MoveParent,
16399    OPC_RecordChild1,
16400    OPC_CheckType, MVT::v8i16,
16401    OPC_MoveParent,
16402    OPC_CheckType, MVT::v8i16,
16403    OPC_CheckPatternPredicate, 27,
16404    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_H), 0,
16405                  MVT::v8i16, 2, 0, 1,
16406   57,
16407    OPC_RecordChild0,
16408    OPC_MoveChild1,
16409    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16410    OPC_MoveChild0,
16411    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16412    OPC_CheckPredicate, 39,
16413    OPC_CheckType, MVT::i32,
16414    OPC_MoveParent,
16415    OPC_MoveChild1,
16416    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16417    OPC_CheckPredicate, 39,
16418    OPC_CheckType, MVT::i32,
16419    OPC_MoveParent,
16420    OPC_MoveChild2,
16421    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16422    OPC_CheckPredicate, 39,
16423    OPC_CheckType, MVT::i32,
16424    OPC_MoveParent,
16425    OPC_MoveChild3,
16426    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16427    OPC_CheckPredicate, 39,
16428    OPC_CheckType, MVT::i32,
16429    OPC_MoveParent,
16430    OPC_MoveParent,
16431    OPC_CheckType, MVT::v4i32,
16432    OPC_MoveParent,
16433    OPC_CheckType, MVT::v4i32,
16434    OPC_CheckPatternPredicate, 27,
16435    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_W), 0,
16436                  MVT::v4i32, 2, 0, 1,
16437   57,
16438    OPC_MoveChild0,
16439    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16440    OPC_MoveChild0,
16441    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16442    OPC_CheckPredicate, 39,
16443    OPC_CheckType, MVT::i32,
16444    OPC_MoveParent,
16445    OPC_MoveChild1,
16446    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16447    OPC_CheckPredicate, 39,
16448    OPC_CheckType, MVT::i32,
16449    OPC_MoveParent,
16450    OPC_MoveChild2,
16451    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16452    OPC_CheckPredicate, 39,
16453    OPC_CheckType, MVT::i32,
16454    OPC_MoveParent,
16455    OPC_MoveChild3,
16456    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16457    OPC_CheckPredicate, 39,
16458    OPC_CheckType, MVT::i32,
16459    OPC_MoveParent,
16460    OPC_MoveParent,
16461    OPC_RecordChild1,
16462    OPC_CheckType, MVT::v4i32,
16463    OPC_MoveParent,
16464    OPC_CheckType, MVT::v4i32,
16465    OPC_CheckPatternPredicate, 27,
16466    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_W), 0,
16467                  MVT::v4i32, 2, 0, 1,
16468   30,
16469    OPC_RecordChild0,
16470    OPC_MoveChild1,
16471    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
16472    OPC_MoveChild0,
16473    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16474    OPC_CheckType, MVT::v4i32,
16475    OPC_MoveParent,
16476    OPC_CheckPredicate, 41,
16477    OPC_MoveParent,
16478    OPC_CheckType, MVT::v2i64,
16479    OPC_MoveParent,
16480    OPC_CheckType, MVT::v2i64,
16481    OPC_CheckPatternPredicate, 27,
16482    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_D), 0,
16483                  MVT::v2i64, 2, 0, 1,
16484   30,
16485    OPC_MoveChild0,
16486    OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
16487    OPC_MoveChild0,
16488    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
16489    OPC_CheckType, MVT::v4i32,
16490    OPC_MoveParent,
16491    OPC_CheckPredicate, 41,
16492    OPC_MoveParent,
16493    OPC_RecordChild1,
16494    OPC_CheckType, MVT::v2i64,
16495    OPC_MoveParent,
16496    OPC_CheckType, MVT::v2i64,
16497    OPC_CheckPatternPredicate, 27,
16498    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_D), 0,
16499                  MVT::v2i64, 2, 0, 1,
16500   0,
16501  119,
16502   OPC_RecordChild1,
16503   OPC_SwitchType , 27, MVT::v16i8,
16504    OPC_CheckChild1Type, MVT::v16i8,
16505    OPC_CheckPatternPredicate, 26,
16506    OPC_Scope, 11,
16507     OPC_CheckComplexPat, /*CP*/24, /*#*/1,
16508     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAI_B), 0,
16509                   MVT::v16i8, 2, 0, 2,
16510    8,
16511     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_B), 0,
16512                   MVT::v16i8, 2, 0, 1,
16513    0,
16514   27, MVT::v8i16,
16515    OPC_CheckChild1Type, MVT::v8i16,
16516    OPC_CheckPatternPredicate, 26,
16517    OPC_Scope, 11,
16518     OPC_CheckComplexPat, /*CP*/25, /*#*/1,
16519     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAI_H), 0,
16520                   MVT::v8i16, 2, 0, 2,
16521    8,
16522     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_H), 0,
16523                   MVT::v8i16, 2, 0, 1,
16524    0,
16525   27, MVT::v4i32,
16526    OPC_CheckChild1Type, MVT::v4i32,
16527    OPC_CheckPatternPredicate, 26,
16528    OPC_Scope, 11,
16529     OPC_CheckComplexPat, /*CP*/18, /*#*/1,
16530     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAI_W), 0,
16531                   MVT::v4i32, 2, 0, 2,
16532    8,
16533     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_W), 0,
16534                   MVT::v4i32, 2, 0, 1,
16535    0,
16536   27, MVT::v2i64,
16537    OPC_CheckChild1Type, MVT::v2i64,
16538    OPC_CheckPatternPredicate, 26,
16539    OPC_Scope, 11,
16540     OPC_CheckComplexPat, /*CP*/26, /*#*/1,
16541     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRAI_D), 0,
16542                   MVT::v2i64, 2, 0, 2,
16543    8,
16544     OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA_D), 0,
16545                   MVT::v2i64, 2, 0, 1,
16546    0,
16547   0,
16548  0,
16549 15|128,1, TARGET_VAL(ISD::ROTR),
16550  OPC_RecordChild0,
16551  OPC_Scope, 63,
16552   OPC_RecordChild1,
16553   OPC_MoveChild1,
16554   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16555   OPC_CheckType, MVT::i32,
16556   OPC_Scope, 17,
16557    OPC_CheckPredicate, 25,
16558    OPC_MoveParent,
16559    OPC_CheckType, MVT::i32,
16560    OPC_CheckPatternPredicate, 56,
16561    OPC_EmitConvertToTarget, 1,
16562    OPC_MorphNodeTo1, TARGET_VAL(Mips::ROTR), 0,
16563                  MVT::i32, 2, 0, 2,
16564   17,
16565    OPC_CheckPredicate, 33,
16566    OPC_MoveParent,
16567    OPC_CheckType, MVT::i64,
16568    OPC_CheckPatternPredicate, 57,
16569    OPC_EmitConvertToTarget, 1,
16570    OPC_MorphNodeTo1, TARGET_VAL(Mips::DROTR), 0,
16571                  MVT::i64, 2, 0, 2,
16572   17,
16573    OPC_CheckPredicate, 25,
16574    OPC_MoveParent,
16575    OPC_CheckType, MVT::i32,
16576    OPC_CheckPatternPredicate, 8,
16577    OPC_EmitConvertToTarget, 1,
16578    OPC_MorphNodeTo1, TARGET_VAL(Mips::ROTR_MM), 0,
16579                  MVT::i32, 2, 0, 2,
16580   0,
16581  31,
16582   OPC_MoveChild1,
16583   OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
16584   OPC_RecordChild0,
16585   OPC_CheckType, MVT::i32,
16586   OPC_MoveParent,
16587   OPC_CheckType, MVT::i64,
16588   OPC_CheckPatternPredicate, 29,
16589   OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16590   OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16591                 MVT::i32, 2, 1, 2,
16592   OPC_MorphNodeTo1, TARGET_VAL(Mips::DROTRV), 0,
16593                 MVT::i64, 2, 0, 3,
16594  43,
16595   OPC_RecordChild1,
16596   OPC_CheckChild1Type, MVT::i32,
16597   OPC_SwitchType , 24, MVT::i32,
16598    OPC_Scope, 10,
16599     OPC_CheckPatternPredicate, 56,
16600     OPC_MorphNodeTo1, TARGET_VAL(Mips::ROTRV), 0,
16601                   MVT::i32, 2, 0, 1,
16602    10,
16603     OPC_CheckPatternPredicate, 8,
16604     OPC_MorphNodeTo1, TARGET_VAL(Mips::ROTRV_MM), 0,
16605                   MVT::i32, 2, 0, 1,
16606    0,
16607   10, MVT::i64,
16608    OPC_CheckPatternPredicate, 57,
16609    OPC_MorphNodeTo1, TARGET_VAL(Mips::DROTRV), 0,
16610                  MVT::i64, 2, 0, 1,
16611   0,
16612  0,
16613 78, TARGET_VAL(MipsISD::Sync),
16614  OPC_RecordNode,
16615  OPC_Scope, 19,
16616   OPC_RecordChild1,
16617   OPC_MoveChild1,
16618   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16619   OPC_CheckPredicate, 25,
16620   OPC_MoveParent,
16621   OPC_CheckPatternPredicate, 70,
16622   OPC_EmitMergeInputChains1_0,
16623   OPC_EmitConvertToTarget, 1,
16624   OPC_MorphNodeTo0, TARGET_VAL(Mips::SYNC), 0|OPFL_Chain,
16625                 1, 2,
16626  19,
16627   OPC_MoveChild1,
16628   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16629   OPC_CheckPredicate, 22,
16630   OPC_MoveParent,
16631   OPC_CheckPatternPredicate, 71,
16632   OPC_EmitMergeInputChains1_0,
16633   OPC_EmitInteger, MVT::i32, 0,
16634   OPC_MorphNodeTo0, TARGET_VAL(Mips::SYNC), 0|OPFL_Chain,
16635                 1, 1,
16636  34,
16637   OPC_RecordChild1,
16638   OPC_MoveChild1,
16639   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16640   OPC_CheckPredicate, 25,
16641   OPC_MoveParent,
16642   OPC_Scope, 11,
16643    OPC_CheckPatternPredicate, 8,
16644    OPC_EmitMergeInputChains1_0,
16645    OPC_EmitConvertToTarget, 1,
16646    OPC_MorphNodeTo0, TARGET_VAL(Mips::SYNC_MM), 0|OPFL_Chain,
16647                  1, 2,
16648   11,
16649    OPC_CheckPatternPredicate, 16,
16650    OPC_EmitMergeInputChains1_0,
16651    OPC_EmitConvertToTarget, 1,
16652    OPC_MorphNodeTo0, TARGET_VAL(Mips::SYNC_MMR6), 0|OPFL_Chain,
16653                  1, 2,
16654   0,
16655  0,
16656 82, TARGET_VAL(ISD::ADDC),
16657  OPC_RecordChild0,
16658  OPC_RecordChild1,
16659  OPC_Scope, 37,
16660   OPC_MoveChild1,
16661   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16662   OPC_CheckPredicate, 19,
16663   OPC_MoveParent,
16664   OPC_SwitchType , 12, MVT::i32,
16665    OPC_CheckPatternPredicate, 72,
16666    OPC_EmitConvertToTarget, 1,
16667    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0|OPFL_GlueOutput,
16668                  MVT::i32, 2, 0, 2,
16669   12, MVT::i64,
16670    OPC_CheckPatternPredicate, 73,
16671    OPC_EmitConvertToTarget, 1,
16672    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0|OPFL_GlueOutput,
16673                  MVT::i64, 2, 0, 2,
16674   0,
16675  26,
16676   OPC_CheckType, MVT::i32,
16677   OPC_Scope, 10,
16678    OPC_CheckPatternPredicate, 72,
16679    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDu), 0|OPFL_GlueOutput,
16680                  MVT::i32, 2, 0, 1,
16681   10,
16682    OPC_CheckPatternPredicate, 28,
16683    OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDSC), 0|OPFL_GlueOutput,
16684                  MVT::i32, 2, 0, 1,
16685   0,
16686  12,
16687   OPC_CheckType, MVT::i64,
16688   OPC_CheckPatternPredicate, 73,
16689   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDu), 0|OPFL_GlueOutput,
16690                 MVT::i64, 2, 0, 1,
16691  0,
16692 76, TARGET_VAL(ISD::TRUNCATE),
16693  OPC_Scope, 45,
16694   OPC_MoveChild0,
16695   OPC_SwitchOpcode , 19, TARGET_VAL(ISD::AssertZext),
16696    OPC_RecordChild0,
16697    OPC_CheckPredicate, 53,
16698    OPC_MoveParent,
16699    OPC_CheckType, MVT::i32,
16700    OPC_CheckPatternPredicate, 29,
16701    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16702    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16703                  MVT::i32, 2, 0, 1,
16704   17, TARGET_VAL(ISD::AssertSext),
16705    OPC_RecordChild0,
16706    OPC_MoveParent,
16707    OPC_CheckType, MVT::i32,
16708    OPC_CheckPatternPredicate, 29,
16709    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16710    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16711                  MVT::i32, 2, 0, 1,
16712   0,
16713  27,
16714   OPC_RecordChild0,
16715   OPC_CheckType, MVT::i32,
16716   OPC_CheckPatternPredicate, 29,
16717   OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16718   OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16719                 MVT::i32, 2, 0, 1,
16720   OPC_EmitInteger, MVT::i32, 0,
16721   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL), 0,
16722                 MVT::i32, 2, 2, 3,
16723  0,
16724 66, TARGET_VAL(MipsISD::SHILO),
16725  OPC_RecordChild0,
16726  OPC_Scope, 36,
16727   OPC_MoveChild0,
16728   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16729   OPC_CheckPredicate, 54,
16730   OPC_MoveParent,
16731   OPC_RecordChild1,
16732   OPC_Scope, 12,
16733    OPC_CheckPatternPredicate, 28,
16734    OPC_EmitConvertToTarget, 0,
16735    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHILO), 0,
16736                  MVT::Untyped, 2, 2, 1,
16737   12,
16738    OPC_CheckPatternPredicate, 47,
16739    OPC_EmitConvertToTarget, 0,
16740    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHILO_MM), 0,
16741                  MVT::Untyped, 2, 2, 1,
16742   0,
16743  25,
16744   OPC_RecordChild1,
16745   OPC_Scope, 10,
16746    OPC_CheckPatternPredicate, 28,
16747    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHILOV), 0,
16748                  MVT::Untyped, 2, 0, 1,
16749   10,
16750    OPC_CheckPatternPredicate, 47,
16751    OPC_MorphNodeTo1, TARGET_VAL(Mips::SHILOV_MM), 0,
16752                  MVT::Untyped, 2, 0, 1,
16753   0,
16754  0,
16755 39, TARGET_VAL(MipsISD::EXTP),
16756  OPC_RecordNode,
16757  OPC_RecordChild1,
16758  OPC_Scope, 21,
16759   OPC_MoveChild1,
16760   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16761   OPC_CheckPredicate, 25,
16762   OPC_MoveParent,
16763   OPC_RecordChild2,
16764   OPC_CheckPatternPredicate, 28,
16765   OPC_EmitMergeInputChains1_0,
16766   OPC_EmitConvertToTarget, 1,
16767   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTP), 0|OPFL_Chain,
16768                 MVT::i32, 2, 2, 3,
16769  12,
16770   OPC_RecordChild2,
16771   OPC_CheckPatternPredicate, 28,
16772   OPC_EmitMergeInputChains1_0,
16773   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTPV), 0|OPFL_Chain,
16774                 MVT::i32, 2, 2, 1,
16775  0,
16776 39, TARGET_VAL(MipsISD::EXTPDP),
16777  OPC_RecordNode,
16778  OPC_RecordChild1,
16779  OPC_Scope, 21,
16780   OPC_MoveChild1,
16781   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16782   OPC_CheckPredicate, 25,
16783   OPC_MoveParent,
16784   OPC_RecordChild2,
16785   OPC_CheckPatternPredicate, 28,
16786   OPC_EmitMergeInputChains1_0,
16787   OPC_EmitConvertToTarget, 1,
16788   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTPDP), 0|OPFL_Chain,
16789                 MVT::i32, 2, 2, 3,
16790  12,
16791   OPC_RecordChild2,
16792   OPC_CheckPatternPredicate, 28,
16793   OPC_EmitMergeInputChains1_0,
16794   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTPDPV), 0|OPFL_Chain,
16795                 MVT::i32, 2, 2, 1,
16796  0,
16797 39, TARGET_VAL(MipsISD::EXTR_W),
16798  OPC_RecordNode,
16799  OPC_RecordChild1,
16800  OPC_Scope, 21,
16801   OPC_MoveChild1,
16802   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16803   OPC_CheckPredicate, 25,
16804   OPC_MoveParent,
16805   OPC_RecordChild2,
16806   OPC_CheckPatternPredicate, 28,
16807   OPC_EmitMergeInputChains1_0,
16808   OPC_EmitConvertToTarget, 1,
16809   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTR_W), 0|OPFL_Chain,
16810                 MVT::i32, 2, 2, 3,
16811  12,
16812   OPC_RecordChild2,
16813   OPC_CheckPatternPredicate, 28,
16814   OPC_EmitMergeInputChains1_0,
16815   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTRV_W), 0|OPFL_Chain,
16816                 MVT::i32, 2, 2, 1,
16817  0,
16818 39, TARGET_VAL(MipsISD::EXTR_R_W),
16819  OPC_RecordNode,
16820  OPC_RecordChild1,
16821  OPC_Scope, 21,
16822   OPC_MoveChild1,
16823   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16824   OPC_CheckPredicate, 25,
16825   OPC_MoveParent,
16826   OPC_RecordChild2,
16827   OPC_CheckPatternPredicate, 28,
16828   OPC_EmitMergeInputChains1_0,
16829   OPC_EmitConvertToTarget, 1,
16830   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTR_R_W), 0|OPFL_Chain,
16831                 MVT::i32, 2, 2, 3,
16832  12,
16833   OPC_RecordChild2,
16834   OPC_CheckPatternPredicate, 28,
16835   OPC_EmitMergeInputChains1_0,
16836   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTRV_R_W), 0|OPFL_Chain,
16837                 MVT::i32, 2, 2, 1,
16838  0,
16839 39, TARGET_VAL(MipsISD::EXTR_RS_W),
16840  OPC_RecordNode,
16841  OPC_RecordChild1,
16842  OPC_Scope, 21,
16843   OPC_MoveChild1,
16844   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16845   OPC_CheckPredicate, 25,
16846   OPC_MoveParent,
16847   OPC_RecordChild2,
16848   OPC_CheckPatternPredicate, 28,
16849   OPC_EmitMergeInputChains1_0,
16850   OPC_EmitConvertToTarget, 1,
16851   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTR_RS_W), 0|OPFL_Chain,
16852                 MVT::i32, 2, 2, 3,
16853  12,
16854   OPC_RecordChild2,
16855   OPC_CheckPatternPredicate, 28,
16856   OPC_EmitMergeInputChains1_0,
16857   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTRV_RS_W), 0|OPFL_Chain,
16858                 MVT::i32, 2, 2, 1,
16859  0,
16860 39, TARGET_VAL(MipsISD::EXTR_S_H),
16861  OPC_RecordNode,
16862  OPC_RecordChild1,
16863  OPC_Scope, 21,
16864   OPC_MoveChild1,
16865   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16866   OPC_CheckPredicate, 25,
16867   OPC_MoveParent,
16868   OPC_RecordChild2,
16869   OPC_CheckPatternPredicate, 28,
16870   OPC_EmitMergeInputChains1_0,
16871   OPC_EmitConvertToTarget, 1,
16872   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTR_S_H), 0|OPFL_Chain,
16873                 MVT::i32, 2, 2, 3,
16874  12,
16875   OPC_RecordChild2,
16876   OPC_CheckPatternPredicate, 28,
16877   OPC_EmitMergeInputChains1_0,
16878   OPC_MorphNodeTo1, TARGET_VAL(Mips::EXTRV_S_H), 0|OPFL_Chain,
16879                 MVT::i32, 2, 2, 1,
16880  0,
16881 83|128,4, TARGET_VAL(MipsISD::VEXTRACT_SEXT_ELT),
16882  OPC_RecordChild0,
16883  OPC_Scope, 29|128,1,
16884   OPC_CheckChild0Type, MVT::v16i8,
16885   OPC_RecordChild1,
16886   OPC_Scope, 25,
16887    OPC_MoveChild1,
16888    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16889    OPC_CheckPredicate, 28,
16890    OPC_MoveParent,
16891    OPC_MoveChild2,
16892    OPC_CheckValueType, MVT::i8,
16893    OPC_MoveParent,
16894    OPC_CheckType, MVT::i32,
16895    OPC_CheckPatternPredicate, 26,
16896    OPC_EmitConvertToTarget, 1,
16897    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_B), 0,
16898                  MVT::i32, 2, 0, 2,
16899   51,
16900    OPC_CheckChild1Type, MVT::i32,
16901    OPC_MoveChild2,
16902    OPC_CheckValueType, MVT::i8,
16903    OPC_MoveParent,
16904    OPC_CheckType, MVT::i32,
16905    OPC_CheckPatternPredicate, 27,
16906    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_B), 0,
16907                  MVT::v16i8, 2, 0, 1,
16908    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
16909    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16910                  MVT::i32, 2, 2, 3,
16911    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
16912    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
16913                  MVT::i32, 2, 4, 5,
16914    OPC_EmitInteger, MVT::i32, 48,
16915    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA), 0,
16916                  MVT::i32, 2, 6, 7,
16917   73,
16918    OPC_CheckChild1Type, MVT::i64,
16919    OPC_MoveChild2,
16920    OPC_CheckValueType, MVT::i8,
16921    OPC_MoveParent,
16922    OPC_CheckType, MVT::i32,
16923    OPC_CheckPatternPredicate, 27,
16924    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16925    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16926                  MVT::i32, 2, 1, 2,
16927    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
16928    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
16929                  MVT::i32, 2, 3, 4,
16930    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_B), 0,
16931                  MVT::v16i8, 2, 0, 5,
16932    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
16933    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16934                  MVT::i32, 2, 6, 7,
16935    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
16936    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
16937                  MVT::i32, 2, 8, 9,
16938    OPC_EmitInteger, MVT::i32, 48,
16939    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA), 0,
16940                  MVT::i32, 2, 10, 11,
16941   0,
16942  29|128,1,
16943   OPC_CheckChild0Type, MVT::v8i16,
16944   OPC_RecordChild1,
16945   OPC_Scope, 25,
16946    OPC_MoveChild1,
16947    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
16948    OPC_CheckPredicate, 29,
16949    OPC_MoveParent,
16950    OPC_MoveChild2,
16951    OPC_CheckValueType, MVT::i16,
16952    OPC_MoveParent,
16953    OPC_CheckType, MVT::i32,
16954    OPC_CheckPatternPredicate, 26,
16955    OPC_EmitConvertToTarget, 1,
16956    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_H), 0,
16957                  MVT::i32, 2, 0, 2,
16958   51,
16959    OPC_CheckChild1Type, MVT::i32,
16960    OPC_MoveChild2,
16961    OPC_CheckValueType, MVT::i16,
16962    OPC_MoveParent,
16963    OPC_CheckType, MVT::i32,
16964    OPC_CheckPatternPredicate, 27,
16965    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_H), 0,
16966                  MVT::v8i16, 2, 0, 1,
16967    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
16968    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16969                  MVT::i32, 2, 2, 3,
16970    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
16971    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
16972                  MVT::i32, 2, 4, 5,
16973    OPC_EmitInteger, MVT::i32, 32,
16974    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA), 0,
16975                  MVT::i32, 2, 6, 7,
16976   73,
16977    OPC_CheckChild1Type, MVT::i64,
16978    OPC_MoveChild2,
16979    OPC_CheckValueType, MVT::i16,
16980    OPC_MoveParent,
16981    OPC_CheckType, MVT::i32,
16982    OPC_CheckPatternPredicate, 27,
16983    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
16984    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16985                  MVT::i32, 2, 1, 2,
16986    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
16987    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
16988                  MVT::i32, 2, 3, 4,
16989    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_H), 0,
16990                  MVT::v8i16, 2, 0, 5,
16991    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
16992    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
16993                  MVT::i32, 2, 6, 7,
16994    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
16995    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
16996                  MVT::i32, 2, 8, 9,
16997    OPC_EmitInteger, MVT::i32, 32,
16998    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRA), 0,
16999                  MVT::i32, 2, 10, 11,
17000   0,
17001  7|128,1,
17002   OPC_CheckChild0Type, MVT::v4i32,
17003   OPC_RecordChild1,
17004   OPC_Scope, 25,
17005    OPC_MoveChild1,
17006    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17007    OPC_CheckPredicate, 30,
17008    OPC_MoveParent,
17009    OPC_MoveChild2,
17010    OPC_CheckValueType, MVT::i32,
17011    OPC_MoveParent,
17012    OPC_CheckType, MVT::i32,
17013    OPC_CheckPatternPredicate, 26,
17014    OPC_EmitConvertToTarget, 1,
17015    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_W), 0,
17016                  MVT::i32, 2, 0, 2,
17017   40,
17018    OPC_CheckChild1Type, MVT::i32,
17019    OPC_MoveChild2,
17020    OPC_CheckValueType, MVT::i32,
17021    OPC_MoveParent,
17022    OPC_CheckType, MVT::i32,
17023    OPC_CheckPatternPredicate, 27,
17024    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_W), 0,
17025                  MVT::v4i32, 2, 0, 1,
17026    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17027    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17028                  MVT::i32, 2, 2, 3,
17029    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17030    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17031                  MVT::i32, 2, 4, 5,
17032   62,
17033    OPC_CheckChild1Type, MVT::i64,
17034    OPC_MoveChild2,
17035    OPC_CheckValueType, MVT::i32,
17036    OPC_MoveParent,
17037    OPC_CheckType, MVT::i32,
17038    OPC_CheckPatternPredicate, 27,
17039    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17040    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17041                  MVT::i32, 2, 1, 2,
17042    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17043    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17044                  MVT::i32, 2, 3, 4,
17045    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_W), 0,
17046                  MVT::v4i32, 2, 0, 5,
17047    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17048    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17049                  MVT::i32, 2, 6, 7,
17050    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17051    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17052                  MVT::i32, 2, 8, 9,
17053   0,
17054  7|128,1,
17055   OPC_CheckChild0Type, MVT::v2i64,
17056   OPC_RecordChild1,
17057   OPC_Scope, 25,
17058    OPC_MoveChild1,
17059    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17060    OPC_CheckPredicate, 34,
17061    OPC_MoveParent,
17062    OPC_MoveChild2,
17063    OPC_CheckValueType, MVT::i64,
17064    OPC_MoveParent,
17065    OPC_CheckType, MVT::i64,
17066    OPC_CheckPatternPredicate, 61,
17067    OPC_EmitConvertToTarget, 1,
17068    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_D), 0,
17069                  MVT::i64, 2, 0, 2,
17070   40,
17071    OPC_CheckChild1Type, MVT::i32,
17072    OPC_MoveChild2,
17073    OPC_CheckValueType, MVT::i64,
17074    OPC_MoveParent,
17075    OPC_CheckType, MVT::i64,
17076    OPC_CheckPatternPredicate, 74,
17077    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_D), 0,
17078                  MVT::v2i64, 2, 0, 1,
17079    OPC_EmitStringInteger, MVT::i32, Mips::sub_64,
17080    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17081                  MVT::i64, 2, 2, 3,
17082    OPC_EmitStringInteger, MVT::i32, Mips::GPR64RegClassID,
17083    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17084                  MVT::i64, 2, 4, 5,
17085   62,
17086    OPC_CheckChild1Type, MVT::i64,
17087    OPC_MoveChild2,
17088    OPC_CheckValueType, MVT::i64,
17089    OPC_MoveParent,
17090    OPC_CheckType, MVT::i64,
17091    OPC_CheckPatternPredicate, 74,
17092    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17093    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17094                  MVT::i32, 2, 1, 2,
17095    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17096    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17097                  MVT::i32, 2, 3, 4,
17098    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_D), 0,
17099                  MVT::v2i64, 2, 0, 5,
17100    OPC_EmitStringInteger, MVT::i32, Mips::sub_64,
17101    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17102                  MVT::i64, 2, 6, 7,
17103    OPC_EmitStringInteger, MVT::i32, Mips::GPR64RegClassID,
17104    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17105                  MVT::i64, 2, 8, 9,
17106   0,
17107  0,
17108 29|128,5, TARGET_VAL(MipsISD::VEXTRACT_ZEXT_ELT),
17109  OPC_RecordChild0,
17110  OPC_Scope, 29|128,1,
17111   OPC_CheckChild0Type, MVT::v16i8,
17112   OPC_RecordChild1,
17113   OPC_Scope, 25,
17114    OPC_MoveChild1,
17115    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17116    OPC_CheckPredicate, 28,
17117    OPC_MoveParent,
17118    OPC_MoveChild2,
17119    OPC_CheckValueType, MVT::i8,
17120    OPC_MoveParent,
17121    OPC_CheckType, MVT::i32,
17122    OPC_CheckPatternPredicate, 26,
17123    OPC_EmitConvertToTarget, 1,
17124    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_U_B), 0,
17125                  MVT::i32, 2, 0, 2,
17126   51,
17127    OPC_CheckChild1Type, MVT::i32,
17128    OPC_MoveChild2,
17129    OPC_CheckValueType, MVT::i8,
17130    OPC_MoveParent,
17131    OPC_CheckType, MVT::i32,
17132    OPC_CheckPatternPredicate, 27,
17133    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_B), 0,
17134                  MVT::v16i8, 2, 0, 1,
17135    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17136    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17137                  MVT::i32, 2, 2, 3,
17138    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17139    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17140                  MVT::i32, 2, 4, 5,
17141    OPC_EmitInteger, MVT::i32, 48,
17142    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL), 0,
17143                  MVT::i32, 2, 6, 7,
17144   73,
17145    OPC_CheckChild1Type, MVT::i64,
17146    OPC_MoveChild2,
17147    OPC_CheckValueType, MVT::i8,
17148    OPC_MoveParent,
17149    OPC_CheckType, MVT::i32,
17150    OPC_CheckPatternPredicate, 27,
17151    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17152    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17153                  MVT::i32, 2, 1, 2,
17154    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17155    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17156                  MVT::i32, 2, 3, 4,
17157    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_B), 0,
17158                  MVT::v16i8, 2, 0, 5,
17159    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17160    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17161                  MVT::i32, 2, 6, 7,
17162    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17163    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17164                  MVT::i32, 2, 8, 9,
17165    OPC_EmitInteger, MVT::i32, 48,
17166    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL), 0,
17167                  MVT::i32, 2, 10, 11,
17168   0,
17169  29|128,1,
17170   OPC_CheckChild0Type, MVT::v8i16,
17171   OPC_RecordChild1,
17172   OPC_Scope, 25,
17173    OPC_MoveChild1,
17174    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17175    OPC_CheckPredicate, 29,
17176    OPC_MoveParent,
17177    OPC_MoveChild2,
17178    OPC_CheckValueType, MVT::i16,
17179    OPC_MoveParent,
17180    OPC_CheckType, MVT::i32,
17181    OPC_CheckPatternPredicate, 26,
17182    OPC_EmitConvertToTarget, 1,
17183    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_U_H), 0,
17184                  MVT::i32, 2, 0, 2,
17185   51,
17186    OPC_CheckChild1Type, MVT::i32,
17187    OPC_MoveChild2,
17188    OPC_CheckValueType, MVT::i16,
17189    OPC_MoveParent,
17190    OPC_CheckType, MVT::i32,
17191    OPC_CheckPatternPredicate, 27,
17192    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_H), 0,
17193                  MVT::v8i16, 2, 0, 1,
17194    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17195    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17196                  MVT::i32, 2, 2, 3,
17197    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17198    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17199                  MVT::i32, 2, 4, 5,
17200    OPC_EmitInteger, MVT::i32, 32,
17201    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL), 0,
17202                  MVT::i32, 2, 6, 7,
17203   73,
17204    OPC_CheckChild1Type, MVT::i64,
17205    OPC_MoveChild2,
17206    OPC_CheckValueType, MVT::i16,
17207    OPC_MoveParent,
17208    OPC_CheckType, MVT::i32,
17209    OPC_CheckPatternPredicate, 27,
17210    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17211    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17212                  MVT::i32, 2, 1, 2,
17213    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17214    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17215                  MVT::i32, 2, 3, 4,
17216    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_H), 0,
17217                  MVT::v8i16, 2, 0, 5,
17218    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17219    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17220                  MVT::i32, 2, 6, 7,
17221    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17222    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17223                  MVT::i32, 2, 8, 9,
17224    OPC_EmitInteger, MVT::i32, 32,
17225    OPC_MorphNodeTo1, TARGET_VAL(Mips::SRL), 0,
17226                  MVT::i32, 2, 10, 11,
17227   0,
17228  23|128,1,
17229   OPC_CheckChild0Type, MVT::v4i32,
17230   OPC_RecordChild1,
17231   OPC_Scope, 41,
17232    OPC_MoveChild1,
17233    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17234    OPC_CheckPredicate, 30,
17235    OPC_MoveParent,
17236    OPC_MoveChild2,
17237    OPC_CheckValueType, MVT::i32,
17238    OPC_MoveParent,
17239    OPC_CheckType, MVT::i32,
17240    OPC_Scope, 12,
17241     OPC_CheckPatternPredicate, 61,
17242     OPC_EmitConvertToTarget, 1,
17243     OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_U_W), 0,
17244                   MVT::i32, 2, 0, 2,
17245    12,
17246     OPC_CheckPatternPredicate, 27,
17247     OPC_EmitConvertToTarget, 1,
17248     OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_W), 0,
17249                   MVT::i32, 2, 0, 2,
17250    0,
17251   40,
17252    OPC_CheckChild1Type, MVT::i32,
17253    OPC_MoveChild2,
17254    OPC_CheckValueType, MVT::i32,
17255    OPC_MoveParent,
17256    OPC_CheckType, MVT::i32,
17257    OPC_CheckPatternPredicate, 27,
17258    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_W), 0,
17259                  MVT::v4i32, 2, 0, 1,
17260    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17261    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17262                  MVT::i32, 2, 2, 3,
17263    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17264    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17265                  MVT::i32, 2, 4, 5,
17266   62,
17267    OPC_CheckChild1Type, MVT::i64,
17268    OPC_MoveChild2,
17269    OPC_CheckValueType, MVT::i32,
17270    OPC_MoveParent,
17271    OPC_CheckType, MVT::i32,
17272    OPC_CheckPatternPredicate, 27,
17273    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17274    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17275                  MVT::i32, 2, 1, 2,
17276    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17277    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17278                  MVT::i32, 2, 3, 4,
17279    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_W), 0,
17280                  MVT::v4i32, 2, 0, 5,
17281    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17282    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17283                  MVT::i32, 2, 6, 7,
17284    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17285    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17286                  MVT::i32, 2, 8, 9,
17287   0,
17288  28,
17289   OPC_CheckChild0Type, MVT::v4f32,
17290   OPC_RecordChild1,
17291   OPC_MoveChild1,
17292   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17293   OPC_CheckPredicate, 30,
17294   OPC_MoveParent,
17295   OPC_MoveChild2,
17296   OPC_CheckValueType, MVT::i32,
17297   OPC_MoveParent,
17298   OPC_CheckType, MVT::i32,
17299   OPC_CheckPatternPredicate, 27,
17300   OPC_EmitConvertToTarget, 1,
17301   OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_W), 0,
17302                 MVT::i32, 2, 0, 2,
17303  7|128,1,
17304   OPC_CheckChild0Type, MVT::v2i64,
17305   OPC_RecordChild1,
17306   OPC_Scope, 25,
17307    OPC_MoveChild1,
17308    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17309    OPC_CheckPredicate, 34,
17310    OPC_MoveParent,
17311    OPC_MoveChild2,
17312    OPC_CheckValueType, MVT::i64,
17313    OPC_MoveParent,
17314    OPC_CheckType, MVT::i64,
17315    OPC_CheckPatternPredicate, 27,
17316    OPC_EmitConvertToTarget, 1,
17317    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_D), 0,
17318                  MVT::i64, 2, 0, 2,
17319   40,
17320    OPC_CheckChild1Type, MVT::i32,
17321    OPC_MoveChild2,
17322    OPC_CheckValueType, MVT::i64,
17323    OPC_MoveParent,
17324    OPC_CheckType, MVT::i64,
17325    OPC_CheckPatternPredicate, 74,
17326    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_D), 0,
17327                  MVT::v2i64, 2, 0, 1,
17328    OPC_EmitStringInteger, MVT::i32, Mips::sub_64,
17329    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17330                  MVT::i64, 2, 2, 3,
17331    OPC_EmitStringInteger, MVT::i32, Mips::GPR64RegClassID,
17332    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17333                  MVT::i64, 2, 4, 5,
17334   62,
17335    OPC_CheckChild1Type, MVT::i64,
17336    OPC_MoveChild2,
17337    OPC_CheckValueType, MVT::i64,
17338    OPC_MoveParent,
17339    OPC_CheckType, MVT::i64,
17340    OPC_CheckPatternPredicate, 74,
17341    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17342    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17343                  MVT::i32, 2, 1, 2,
17344    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17345    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17346                  MVT::i32, 2, 3, 4,
17347    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_D), 0,
17348                  MVT::v2i64, 2, 0, 5,
17349    OPC_EmitStringInteger, MVT::i32, Mips::sub_64,
17350    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17351                  MVT::i64, 2, 6, 7,
17352    OPC_EmitStringInteger, MVT::i32, Mips::GPR64RegClassID,
17353    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17354                  MVT::i64, 2, 8, 9,
17355   0,
17356  28,
17357   OPC_CheckChild0Type, MVT::v2f64,
17358   OPC_RecordChild1,
17359   OPC_MoveChild1,
17360   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17361   OPC_CheckPredicate, 34,
17362   OPC_MoveParent,
17363   OPC_MoveChild2,
17364   OPC_CheckValueType, MVT::i64,
17365   OPC_MoveParent,
17366   OPC_CheckType, MVT::i64,
17367   OPC_CheckPatternPredicate, 27,
17368   OPC_EmitConvertToTarget, 1,
17369   OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_D), 0,
17370                 MVT::i64, 2, 0, 2,
17371  0,
17372 104|128,1, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
17373  OPC_RecordChild0,
17374  OPC_Scope, 24,
17375   OPC_RecordChild1,
17376   OPC_MoveChild1,
17377   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17378   OPC_CheckPredicate, 28,
17379   OPC_CheckType, MVT::i32,
17380   OPC_MoveParent,
17381   OPC_CheckType, MVT::i32,
17382   OPC_CheckPatternPredicate, 27,
17383   OPC_EmitConvertToTarget, 1,
17384   OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_S_W), 0,
17385                 MVT::i32, 2, 0, 2,
17386  101,
17387   OPC_CheckChild0Type, MVT::v4f32,
17388   OPC_RecordChild1,
17389   OPC_Scope, 21,
17390    OPC_MoveChild1,
17391    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17392    OPC_CheckPredicate, 30,
17393    OPC_MoveParent,
17394    OPC_CheckType, MVT::f32,
17395    OPC_CheckPatternPredicate, 26,
17396    OPC_EmitConvertToTarget, 1,
17397    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_FW_PSEUDO), 0,
17398                  MVT::f32, 2, 0, 2,
17399   25,
17400    OPC_CheckChild1Type, MVT::i32,
17401    OPC_CheckType, MVT::f32,
17402    OPC_CheckPatternPredicate, 27,
17403    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_W), 0,
17404                  MVT::v4i32, 2, 0, 1,
17405    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17406    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17407                  MVT::f32, 2, 2, 3,
17408   47,
17409    OPC_CheckChild1Type, MVT::i64,
17410    OPC_CheckType, MVT::f32,
17411    OPC_CheckPatternPredicate, 27,
17412    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17413    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17414                  MVT::i32, 2, 1, 2,
17415    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17416    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17417                  MVT::i32, 2, 3, 4,
17418    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_W), 0,
17419                  MVT::v4i32, 2, 0, 5,
17420    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
17421    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17422                  MVT::f32, 2, 6, 7,
17423   0,
17424  101,
17425   OPC_CheckChild0Type, MVT::v2f64,
17426   OPC_RecordChild1,
17427   OPC_Scope, 21,
17428    OPC_MoveChild1,
17429    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
17430    OPC_CheckPredicate, 34,
17431    OPC_MoveParent,
17432    OPC_CheckType, MVT::f64,
17433    OPC_CheckPatternPredicate, 26,
17434    OPC_EmitConvertToTarget, 1,
17435    OPC_MorphNodeTo1, TARGET_VAL(Mips::COPY_FD_PSEUDO), 0,
17436                  MVT::f64, 2, 0, 2,
17437   25,
17438    OPC_CheckChild1Type, MVT::i32,
17439    OPC_CheckType, MVT::f64,
17440    OPC_CheckPatternPredicate, 27,
17441    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_D), 0,
17442                  MVT::v2i64, 2, 0, 1,
17443    OPC_EmitStringInteger, MVT::i32, Mips::sub_64,
17444    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17445                  MVT::f64, 2, 2, 3,
17446   47,
17447    OPC_CheckChild1Type, MVT::i64,
17448    OPC_CheckType, MVT::f64,
17449    OPC_CheckPatternPredicate, 27,
17450    OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
17451    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17452                  MVT::i32, 2, 1, 2,
17453    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
17454    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
17455                  MVT::i32, 2, 3, 4,
17456    OPC_EmitNode1, TARGET_VAL(Mips::SPLAT_D), 0,
17457                  MVT::v2i64, 2, 0, 5,
17458    OPC_EmitStringInteger, MVT::i32, Mips::sub_64,
17459    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
17460                  MVT::f64, 2, 6, 7,
17461   0,
17462  0,
17463 100|128,1, TARGET_VAL(MipsISD::JmpLink),
17464  OPC_RecordNode,
17465  OPC_CaptureGlueInput,
17466  OPC_RecordChild1,
17467  OPC_Scope, 13|128,1,
17468   OPC_MoveChild1,
17469   OPC_SwitchOpcode , 73, TARGET_VAL(ISD::TargetGlobalAddress),
17470    OPC_Scope, 23,
17471     OPC_MoveParent,
17472     OPC_Scope, 9,
17473      OPC_CheckPatternPredicate, 7,
17474      OPC_EmitMergeInputChains1_0,
17475      OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17476                    1, 1,
17477     9,
17478      OPC_CheckPatternPredicate, 52,
17479      OPC_EmitMergeInputChains1_0,
17480      OPC_MorphNodeTo0, TARGET_VAL(Mips::JALX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17481                    1, 1,
17482     0,
17483    12,
17484     OPC_CheckType, MVT::i32,
17485     OPC_MoveParent,
17486     OPC_CheckPatternPredicate, 15,
17487     OPC_EmitMergeInputChains1_0,
17488     OPC_MorphNodeTo0, TARGET_VAL(Mips::Jal16), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17489                   1, 1,
17490    33,
17491     OPC_MoveParent,
17492     OPC_Scope, 19,
17493      OPC_CheckPatternPredicate, 30,
17494      OPC_EmitMergeInputChains1_0,
17495      OPC_Scope, 6,
17496       OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17497                     1, 1,
17498      6,
17499       OPC_MorphNodeTo0, TARGET_VAL(Mips::JALX_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17500                     1, 1,
17501      0,
17502     9,
17503      OPC_CheckPatternPredicate, 16,
17504      OPC_EmitMergeInputChains1_0,
17505      OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL_MMR6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17506                    1, 1,
17507     0,
17508    0,
17509   59, TARGET_VAL(ISD::TargetExternalSymbol),
17510    OPC_SwitchType , 43, MVT::i32,
17511     OPC_MoveParent,
17512     OPC_Scope, 9,
17513      OPC_CheckPatternPredicate, 75,
17514      OPC_EmitMergeInputChains1_0,
17515      OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17516                    1, 1,
17517     9,
17518      OPC_CheckPatternPredicate, 15,
17519      OPC_EmitMergeInputChains1_0,
17520      OPC_MorphNodeTo0, TARGET_VAL(Mips::Jal16), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17521                    1, 1,
17522     9,
17523      OPC_CheckPatternPredicate, 30,
17524      OPC_EmitMergeInputChains1_0,
17525      OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17526                    1, 1,
17527     9,
17528      OPC_CheckPatternPredicate, 16,
17529      OPC_EmitMergeInputChains1_0,
17530      OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL_MMR6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17531                    1, 1,
17532     0,
17533    10, MVT::i64,
17534     OPC_MoveParent,
17535     OPC_CheckPatternPredicate, 63,
17536     OPC_EmitMergeInputChains1_0,
17537     OPC_MorphNodeTo0, TARGET_VAL(Mips::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17538                   1, 1,
17539    0,
17540   0,
17541  54,
17542   OPC_CheckChild1Type, MVT::i32,
17543   OPC_Scope, 9,
17544    OPC_CheckPatternPredicate, 76,
17545    OPC_EmitMergeInputChains1_0,
17546    OPC_MorphNodeTo0, TARGET_VAL(Mips::JALRPseudo), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17547                  1, 1,
17548   9,
17549    OPC_CheckPatternPredicate, 77,
17550    OPC_EmitMergeInputChains1_0,
17551    OPC_MorphNodeTo0, TARGET_VAL(Mips::JALRHBPseudo), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17552                  1, 1,
17553   9,
17554    OPC_CheckPatternPredicate, 15,
17555    OPC_EmitMergeInputChains1_0,
17556    OPC_MorphNodeTo0, TARGET_VAL(Mips::JumpLinkReg16), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17557                  1, 1,
17558   9,
17559    OPC_CheckPatternPredicate, 30,
17560    OPC_EmitMergeInputChains1_0,
17561    OPC_MorphNodeTo0, TARGET_VAL(Mips::JALR16_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17562                  1, 1,
17563   9,
17564    OPC_CheckPatternPredicate, 16,
17565    OPC_EmitMergeInputChains1_0,
17566    OPC_MorphNodeTo0, TARGET_VAL(Mips::JALRC16_MMR6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17567                  1, 1,
17568   0,
17569  24,
17570   OPC_CheckChild1Type, MVT::i64,
17571   OPC_Scope, 9,
17572    OPC_CheckPatternPredicate, 78,
17573    OPC_EmitMergeInputChains1_0,
17574    OPC_MorphNodeTo0, TARGET_VAL(Mips::JALR64Pseudo), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17575                  1, 1,
17576   9,
17577    OPC_CheckPatternPredicate, 79,
17578    OPC_EmitMergeInputChains1_0,
17579    OPC_MorphNodeTo0, TARGET_VAL(Mips::JALRHB64Pseudo), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
17580                  1, 1,
17581   0,
17582  0,
17583 63|128,1, TARGET_VAL(MipsISD::TailCall),
17584  OPC_RecordNode,
17585  OPC_CaptureGlueInput,
17586  OPC_RecordChild1,
17587  OPC_Scope, 75,
17588   OPC_MoveChild1,
17589   OPC_SwitchOpcode , 33, TARGET_VAL(ISD::TargetGlobalAddress),
17590    OPC_MoveParent,
17591    OPC_Scope, 9,
17592     OPC_CheckPatternPredicate, 7,
17593     OPC_EmitMergeInputChains1_0,
17594     OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17595                   1, 1,
17596    9,
17597     OPC_CheckPatternPredicate, 30,
17598     OPC_EmitMergeInputChains1_0,
17599     OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17600                   1, 1,
17601    9,
17602     OPC_CheckPatternPredicate, 16,
17603     OPC_EmitMergeInputChains1_0,
17604     OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL_MMR6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17605                   1, 1,
17606    0,
17607   33, TARGET_VAL(ISD::TargetExternalSymbol),
17608    OPC_MoveParent,
17609    OPC_Scope, 9,
17610     OPC_CheckPatternPredicate, 7,
17611     OPC_EmitMergeInputChains1_0,
17612     OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17613                   1, 1,
17614    9,
17615     OPC_CheckPatternPredicate, 30,
17616     OPC_EmitMergeInputChains1_0,
17617     OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17618                   1, 1,
17619    9,
17620     OPC_CheckPatternPredicate, 16,
17621     OPC_EmitMergeInputChains1_0,
17622     OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL_MMR6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17623                   1, 1,
17624    0,
17625   0,
17626  64,
17627   OPC_CheckChild1Type, MVT::i32,
17628   OPC_Scope, 9,
17629    OPC_CheckPatternPredicate, 80,
17630    OPC_EmitMergeInputChains1_0,
17631    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLREG), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17632                  1, 1,
17633   9,
17634    OPC_CheckPatternPredicate, 81,
17635    OPC_EmitMergeInputChains1_0,
17636    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLREGHB), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17637                  1, 1,
17638   9,
17639    OPC_CheckPatternPredicate, 82,
17640    OPC_EmitMergeInputChains1_0,
17641    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLR6REG), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17642                  1, 1,
17643   9,
17644    OPC_CheckPatternPredicate, 83,
17645    OPC_EmitMergeInputChains1_0,
17646    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLHBR6REG), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17647                  1, 1,
17648   9,
17649    OPC_CheckPatternPredicate, 30,
17650    OPC_EmitMergeInputChains1_0,
17651    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLREG_MM), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17652                  1, 1,
17653   9,
17654    OPC_CheckPatternPredicate, 16,
17655    OPC_EmitMergeInputChains1_0,
17656    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLREG_MMR6), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17657                  1, 1,
17658   0,
17659  44,
17660   OPC_CheckChild1Type, MVT::i64,
17661   OPC_Scope, 9,
17662    OPC_CheckPatternPredicate, 84,
17663    OPC_EmitMergeInputChains1_0,
17664    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLREG64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17665                  1, 1,
17666   9,
17667    OPC_CheckPatternPredicate, 85,
17668    OPC_EmitMergeInputChains1_0,
17669    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLREGHB64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17670                  1, 1,
17671   9,
17672    OPC_CheckPatternPredicate, 86,
17673    OPC_EmitMergeInputChains1_0,
17674    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALL64R6REG), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17675                  1, 1,
17676   9,
17677    OPC_CheckPatternPredicate, 87,
17678    OPC_EmitMergeInputChains1_0,
17679    OPC_MorphNodeTo0, TARGET_VAL(Mips::TAILCALLHB64R6REG), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic1,
17680                  1, 1,
17681   0,
17682  0,
17683 106|128,2, TARGET_VAL(MipsISD::Hi),
17684  OPC_RecordChild0,
17685  OPC_MoveChild0,
17686  OPC_SwitchOpcode , 77, TARGET_VAL(ISD::TargetGlobalAddress),
17687   OPC_MoveParent,
17688   OPC_SwitchType , 43, MVT::i32,
17689    OPC_Scope, 9,
17690     OPC_CheckPatternPredicate, 7,
17691     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
17692                   MVT::i32, 1, 0,
17693    9,
17694     OPC_CheckPatternPredicate, 8,
17695     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
17696                   MVT::i32, 1, 0,
17697    20,
17698     OPC_CheckPatternPredicate, 15,
17699     OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
17700                   MVT::i32, 1, 0,
17701     OPC_EmitInteger, MVT::i32, 32,
17702     OPC_MorphNodeTo1, TARGET_VAL(Mips::SllX16), 0,
17703                   MVT::i32, 2, 1, 2,
17704    0,
17705   27, MVT::i64,
17706    OPC_Scope, 9,
17707     OPC_CheckPatternPredicate, 62,
17708     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
17709                   MVT::i64, 1, 0,
17710    14,
17711     OPC_CheckPatternPredicate, 63,
17712     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17713     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17714                   MVT::i64, 2, 1, 0,
17715    0,
17716   0,
17717  77, TARGET_VAL(ISD::TargetBlockAddress),
17718   OPC_MoveParent,
17719   OPC_SwitchType , 43, MVT::i32,
17720    OPC_Scope, 9,
17721     OPC_CheckPatternPredicate, 7,
17722     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
17723                   MVT::i32, 1, 0,
17724    9,
17725     OPC_CheckPatternPredicate, 8,
17726     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
17727                   MVT::i32, 1, 0,
17728    20,
17729     OPC_CheckPatternPredicate, 15,
17730     OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
17731                   MVT::i32, 1, 0,
17732     OPC_EmitInteger, MVT::i32, 32,
17733     OPC_MorphNodeTo1, TARGET_VAL(Mips::SllX16), 0,
17734                   MVT::i32, 2, 1, 2,
17735    0,
17736   27, MVT::i64,
17737    OPC_Scope, 9,
17738     OPC_CheckPatternPredicate, 62,
17739     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
17740                   MVT::i64, 1, 0,
17741    14,
17742     OPC_CheckPatternPredicate, 63,
17743     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17744     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17745                   MVT::i64, 2, 1, 0,
17746    0,
17747   0,
17748  77, TARGET_VAL(ISD::TargetJumpTable),
17749   OPC_MoveParent,
17750   OPC_SwitchType , 43, MVT::i32,
17751    OPC_Scope, 9,
17752     OPC_CheckPatternPredicate, 7,
17753     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
17754                   MVT::i32, 1, 0,
17755    9,
17756     OPC_CheckPatternPredicate, 8,
17757     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
17758                   MVT::i32, 1, 0,
17759    20,
17760     OPC_CheckPatternPredicate, 15,
17761     OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
17762                   MVT::i32, 1, 0,
17763     OPC_EmitInteger, MVT::i32, 32,
17764     OPC_MorphNodeTo1, TARGET_VAL(Mips::SllX16), 0,
17765                   MVT::i32, 2, 1, 2,
17766    0,
17767   27, MVT::i64,
17768    OPC_Scope, 9,
17769     OPC_CheckPatternPredicate, 62,
17770     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
17771                   MVT::i64, 1, 0,
17772    14,
17773     OPC_CheckPatternPredicate, 63,
17774     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17775     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17776                   MVT::i64, 2, 1, 0,
17777    0,
17778   0,
17779  56, TARGET_VAL(ISD::TargetConstantPool),
17780   OPC_MoveParent,
17781   OPC_SwitchType , 22, MVT::i32,
17782    OPC_Scope, 9,
17783     OPC_CheckPatternPredicate, 7,
17784     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
17785                   MVT::i32, 1, 0,
17786    9,
17787     OPC_CheckPatternPredicate, 8,
17788     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
17789                   MVT::i32, 1, 0,
17790    0,
17791   27, MVT::i64,
17792    OPC_Scope, 9,
17793     OPC_CheckPatternPredicate, 62,
17794     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
17795                   MVT::i64, 1, 0,
17796    14,
17797     OPC_CheckPatternPredicate, 63,
17798     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17799     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17800                   MVT::i64, 2, 1, 0,
17801    0,
17802   0,
17803  56, TARGET_VAL(ISD::TargetExternalSymbol),
17804   OPC_MoveParent,
17805   OPC_SwitchType , 22, MVT::i32,
17806    OPC_Scope, 9,
17807     OPC_CheckPatternPredicate, 7,
17808     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
17809                   MVT::i32, 1, 0,
17810    9,
17811     OPC_CheckPatternPredicate, 8,
17812     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
17813                   MVT::i32, 1, 0,
17814    0,
17815   27, MVT::i64,
17816    OPC_Scope, 9,
17817     OPC_CheckPatternPredicate, 62,
17818     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
17819                   MVT::i64, 1, 0,
17820    14,
17821     OPC_CheckPatternPredicate, 63,
17822     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17823     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17824                   MVT::i64, 2, 1, 0,
17825    0,
17826   0,
17827  0,
17828 62|128,3, TARGET_VAL(MipsISD::Lo),
17829  OPC_RecordChild0,
17830  OPC_MoveChild0,
17831  OPC_SwitchOpcode , 69, TARGET_VAL(ISD::TargetGlobalAddress),
17832   OPC_MoveParent,
17833   OPC_SwitchType , 30, MVT::i32,
17834    OPC_Scope, 13,
17835     OPC_CheckPatternPredicate, 7,
17836     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17837     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
17838                   MVT::i32, 2, 1, 0,
17839    13,
17840     OPC_CheckPatternPredicate, 8,
17841     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17842     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
17843                   MVT::i32, 2, 1, 0,
17844    0,
17845   32, MVT::i64,
17846    OPC_Scope, 14,
17847     OPC_CheckPatternPredicate, 62,
17848     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17849     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17850                   MVT::i64, 2, 1, 0,
17851    14,
17852     OPC_CheckPatternPredicate, 63,
17853     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17854     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17855                   MVT::i64, 2, 1, 0,
17856    0,
17857   0,
17858  79, TARGET_VAL(ISD::TargetBlockAddress),
17859   OPC_MoveParent,
17860   OPC_SwitchType , 40, MVT::i32,
17861    OPC_Scope, 13,
17862     OPC_CheckPatternPredicate, 7,
17863     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17864     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
17865                   MVT::i32, 2, 1, 0,
17866    9,
17867     OPC_CheckPatternPredicate, 15,
17868     OPC_MorphNodeTo1, TARGET_VAL(Mips::LiRxImmX16), 0,
17869                   MVT::i32, 1, 0,
17870    13,
17871     OPC_CheckPatternPredicate, 8,
17872     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17873     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
17874                   MVT::i32, 2, 1, 0,
17875    0,
17876   32, MVT::i64,
17877    OPC_Scope, 14,
17878     OPC_CheckPatternPredicate, 62,
17879     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17880     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17881                   MVT::i64, 2, 1, 0,
17882    14,
17883     OPC_CheckPatternPredicate, 63,
17884     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17885     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17886                   MVT::i64, 2, 1, 0,
17887    0,
17888   0,
17889  69, TARGET_VAL(ISD::TargetJumpTable),
17890   OPC_MoveParent,
17891   OPC_SwitchType , 30, MVT::i32,
17892    OPC_Scope, 13,
17893     OPC_CheckPatternPredicate, 7,
17894     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17895     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
17896                   MVT::i32, 2, 1, 0,
17897    13,
17898     OPC_CheckPatternPredicate, 8,
17899     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17900     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
17901                   MVT::i32, 2, 1, 0,
17902    0,
17903   32, MVT::i64,
17904    OPC_Scope, 14,
17905     OPC_CheckPatternPredicate, 62,
17906     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17907     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17908                   MVT::i64, 2, 1, 0,
17909    14,
17910     OPC_CheckPatternPredicate, 63,
17911     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17912     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17913                   MVT::i64, 2, 1, 0,
17914    0,
17915   0,
17916  69, TARGET_VAL(ISD::TargetConstantPool),
17917   OPC_MoveParent,
17918   OPC_SwitchType , 30, MVT::i32,
17919    OPC_Scope, 13,
17920     OPC_CheckPatternPredicate, 7,
17921     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17922     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
17923                   MVT::i32, 2, 1, 0,
17924    13,
17925     OPC_CheckPatternPredicate, 8,
17926     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17927     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
17928                   MVT::i32, 2, 1, 0,
17929    0,
17930   32, MVT::i64,
17931    OPC_Scope, 14,
17932     OPC_CheckPatternPredicate, 62,
17933     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17934     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17935                   MVT::i64, 2, 1, 0,
17936    14,
17937     OPC_CheckPatternPredicate, 63,
17938     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17939     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17940                   MVT::i64, 2, 1, 0,
17941    0,
17942   0,
17943  69, TARGET_VAL(ISD::TargetGlobalTLSAddress),
17944   OPC_MoveParent,
17945   OPC_SwitchType , 30, MVT::i32,
17946    OPC_Scope, 13,
17947     OPC_CheckPatternPredicate, 7,
17948     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17949     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
17950                   MVT::i32, 2, 1, 0,
17951    13,
17952     OPC_CheckPatternPredicate, 8,
17953     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17954     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
17955                   MVT::i32, 2, 1, 0,
17956    0,
17957   32, MVT::i64,
17958    OPC_Scope, 14,
17959     OPC_CheckPatternPredicate, 62,
17960     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17961     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17962                   MVT::i64, 2, 1, 0,
17963    14,
17964     OPC_CheckPatternPredicate, 63,
17965     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17966     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17967                   MVT::i64, 2, 1, 0,
17968    0,
17969   0,
17970  69, TARGET_VAL(ISD::TargetExternalSymbol),
17971   OPC_MoveParent,
17972   OPC_SwitchType , 30, MVT::i32,
17973    OPC_Scope, 13,
17974     OPC_CheckPatternPredicate, 7,
17975     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17976     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
17977                   MVT::i32, 2, 1, 0,
17978    13,
17979     OPC_CheckPatternPredicate, 8,
17980     OPC_EmitRegister, MVT::i32, Mips::ZERO,
17981     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
17982                   MVT::i32, 2, 1, 0,
17983    0,
17984   32, MVT::i64,
17985    OPC_Scope, 14,
17986     OPC_CheckPatternPredicate, 62,
17987     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17988     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17989                   MVT::i64, 2, 1, 0,
17990    14,
17991     OPC_CheckPatternPredicate, 63,
17992     OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
17993     OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
17994                   MVT::i64, 2, 1, 0,
17995    0,
17996   0,
17997  0,
17998 86, TARGET_VAL(MipsISD::GotHi),
17999  OPC_RecordChild0,
18000  OPC_MoveChild0,
18001  OPC_SwitchOpcode , 38, TARGET_VAL(ISD::TargetGlobalAddress),
18002   OPC_MoveParent,
18003   OPC_SwitchType , 22, MVT::i32,
18004    OPC_Scope, 9,
18005     OPC_CheckPatternPredicate, 7,
18006     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
18007                   MVT::i32, 1, 0,
18008    9,
18009     OPC_CheckPatternPredicate, 8,
18010     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
18011                   MVT::i32, 1, 0,
18012    0,
18013   9, MVT::i64,
18014    OPC_CheckPatternPredicate, 29,
18015    OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18016                  MVT::i64, 1, 0,
18017   0,
18018  38, TARGET_VAL(ISD::TargetExternalSymbol),
18019   OPC_MoveParent,
18020   OPC_SwitchType , 22, MVT::i32,
18021    OPC_Scope, 9,
18022     OPC_CheckPatternPredicate, 7,
18023     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
18024                   MVT::i32, 1, 0,
18025    9,
18026     OPC_CheckPatternPredicate, 8,
18027     OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
18028                   MVT::i32, 1, 0,
18029    0,
18030   9, MVT::i64,
18031    OPC_CheckPatternPredicate, 29,
18032    OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18033                  MVT::i64, 1, 0,
18034   0,
18035  0,
18036 64, TARGET_VAL(MipsISD::TlsHi),
18037  OPC_RecordChild0,
18038  OPC_MoveChild0,
18039  OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
18040  OPC_MoveParent,
18041  OPC_SwitchType , 43, MVT::i32,
18042   OPC_Scope, 9,
18043    OPC_CheckPatternPredicate, 7,
18044    OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
18045                  MVT::i32, 1, 0,
18046   9,
18047    OPC_CheckPatternPredicate, 8,
18048    OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
18049                  MVT::i32, 1, 0,
18050   20,
18051    OPC_CheckPatternPredicate, 15,
18052    OPC_EmitNode1, TARGET_VAL(Mips::LiRxImmX16), 0,
18053                  MVT::i32, 1, 0,
18054    OPC_EmitInteger, MVT::i32, 32,
18055    OPC_MorphNodeTo1, TARGET_VAL(Mips::SllX16), 0,
18056                  MVT::i32, 2, 1, 2,
18057   0,
18058  9, MVT::i64,
18059   OPC_CheckPatternPredicate, 29,
18060   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18061                 MVT::i64, 1, 0,
18062  0,
18063 35|128,2, TARGET_VAL(MipsISD::Wrapper),
18064  OPC_RecordChild0,
18065  OPC_RecordChild1,
18066  OPC_MoveChild1,
18067  OPC_SwitchOpcode , 52, TARGET_VAL(ISD::TargetGlobalAddress),
18068   OPC_MoveParent,
18069   OPC_SwitchType , 35, MVT::i32,
18070    OPC_Scope, 10,
18071     OPC_CheckPatternPredicate, 7,
18072     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18073                   MVT::i32, 2, 0, 1,
18074    10,
18075     OPC_CheckPatternPredicate, 15,
18076     OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImmX16), 0,
18077                   MVT::i32, 2, 0, 1,
18078    10,
18079     OPC_CheckPatternPredicate, 8,
18080     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18081                   MVT::i32, 2, 0, 1,
18082    0,
18083   10, MVT::i64,
18084    OPC_CheckPatternPredicate, 29,
18085    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18086                  MVT::i64, 2, 0, 1,
18087   0,
18088  41, TARGET_VAL(ISD::TargetConstantPool),
18089   OPC_MoveParent,
18090   OPC_SwitchType , 24, MVT::i32,
18091    OPC_Scope, 10,
18092     OPC_CheckPatternPredicate, 7,
18093     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18094                   MVT::i32, 2, 0, 1,
18095    10,
18096     OPC_CheckPatternPredicate, 8,
18097     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18098                   MVT::i32, 2, 0, 1,
18099    0,
18100   10, MVT::i64,
18101    OPC_CheckPatternPredicate, 29,
18102    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18103                  MVT::i64, 2, 0, 1,
18104   0,
18105  41, TARGET_VAL(ISD::TargetExternalSymbol),
18106   OPC_MoveParent,
18107   OPC_SwitchType , 24, MVT::i32,
18108    OPC_Scope, 10,
18109     OPC_CheckPatternPredicate, 7,
18110     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18111                   MVT::i32, 2, 0, 1,
18112    10,
18113     OPC_CheckPatternPredicate, 8,
18114     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18115                   MVT::i32, 2, 0, 1,
18116    0,
18117   10, MVT::i64,
18118    OPC_CheckPatternPredicate, 29,
18119    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18120                  MVT::i64, 2, 0, 1,
18121   0,
18122  41, TARGET_VAL(ISD::TargetBlockAddress),
18123   OPC_MoveParent,
18124   OPC_SwitchType , 24, MVT::i32,
18125    OPC_Scope, 10,
18126     OPC_CheckPatternPredicate, 7,
18127     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18128                   MVT::i32, 2, 0, 1,
18129    10,
18130     OPC_CheckPatternPredicate, 8,
18131     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18132                   MVT::i32, 2, 0, 1,
18133    0,
18134   10, MVT::i64,
18135    OPC_CheckPatternPredicate, 29,
18136    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18137                  MVT::i64, 2, 0, 1,
18138   0,
18139  41, TARGET_VAL(ISD::TargetJumpTable),
18140   OPC_MoveParent,
18141   OPC_SwitchType , 24, MVT::i32,
18142    OPC_Scope, 10,
18143     OPC_CheckPatternPredicate, 7,
18144     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18145                   MVT::i32, 2, 0, 1,
18146    10,
18147     OPC_CheckPatternPredicate, 8,
18148     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18149                   MVT::i32, 2, 0, 1,
18150    0,
18151   10, MVT::i64,
18152    OPC_CheckPatternPredicate, 29,
18153    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18154                  MVT::i64, 2, 0, 1,
18155   0,
18156  52, TARGET_VAL(ISD::TargetGlobalTLSAddress),
18157   OPC_MoveParent,
18158   OPC_SwitchType , 35, MVT::i32,
18159    OPC_Scope, 10,
18160     OPC_CheckPatternPredicate, 7,
18161     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18162                   MVT::i32, 2, 0, 1,
18163    10,
18164     OPC_CheckPatternPredicate, 15,
18165     OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImmX16), 0,
18166                   MVT::i32, 2, 0, 1,
18167    10,
18168     OPC_CheckPatternPredicate, 8,
18169     OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18170                   MVT::i32, 2, 0, 1,
18171    0,
18172   10, MVT::i64,
18173    OPC_CheckPatternPredicate, 29,
18174    OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18175                  MVT::i64, 2, 0, 1,
18176   0,
18177  0,
18178 6|128,1, TARGET_VAL(MipsISD::FPCmp),
18179  OPC_RecordChild0,
18180  OPC_Scope, 39,
18181   OPC_CheckChild0Type, MVT::f32,
18182   OPC_RecordChild1,
18183   OPC_RecordChild2,
18184   OPC_MoveChild2,
18185   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
18186   OPC_MoveParent,
18187   OPC_Scope, 13,
18188    OPC_CheckPatternPredicate, 69,
18189    OPC_EmitConvertToTarget, 2,
18190    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCMP_S32), 0|OPFL_GlueOutput,
18191                  MVT::i32, 3, 0, 1, 3,
18192   13,
18193    OPC_CheckPatternPredicate, 10,
18194    OPC_EmitConvertToTarget, 2,
18195    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCMP_S32_MM), 0|OPFL_GlueOutput,
18196                  MVT::i32, 3, 0, 1, 3,
18197   0,
18198  53,
18199   OPC_CheckChild0Type, MVT::f64,
18200   OPC_RecordChild1,
18201   OPC_RecordChild2,
18202   OPC_MoveChild2,
18203   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
18204   OPC_MoveParent,
18205   OPC_Scope, 13,
18206    OPC_CheckPatternPredicate, 88,
18207    OPC_EmitConvertToTarget, 2,
18208    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCMP_D32), 0|OPFL_GlueOutput,
18209                  MVT::i32, 3, 0, 1, 3,
18210   13,
18211    OPC_CheckPatternPredicate, 89,
18212    OPC_EmitConvertToTarget, 2,
18213    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCMP_D64), 0|OPFL_GlueOutput,
18214                  MVT::i32, 3, 0, 1, 3,
18215   13,
18216    OPC_CheckPatternPredicate, 10,
18217    OPC_EmitConvertToTarget, 2,
18218    OPC_MorphNodeTo1, TARGET_VAL(Mips::FCMP_D32_MM), 0|OPFL_GlueOutput,
18219                  MVT::i32, 3, 0, 1, 3,
18220   0,
18221  36,
18222   OPC_CheckChild0Type, MVT::f16,
18223   OPC_RecordChild1,
18224   OPC_RecordChild2,
18225   OPC_MoveChild2,
18226   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
18227   OPC_MoveParent,
18228   OPC_CheckPatternPredicate, 90,
18229   OPC_EmitNode1, TARGET_VAL(Mips::MSA_FP_EXTEND_W_PSEUDO), 0,
18230                 MVT::f32, 1, 0,
18231   OPC_EmitNode1, TARGET_VAL(Mips::MSA_FP_EXTEND_W_PSEUDO), 0,
18232                 MVT::f32, 1, 1,
18233   OPC_EmitConvertToTarget, 2,
18234   OPC_MorphNodeTo1, TARGET_VAL(Mips::FCMP_S32), 0|OPFL_GlueOutput,
18235                 MVT::i32, 3, 3, 4, 5,
18236  0,
18237 35, TARGET_VAL(MipsISD::ExtractElementF64),
18238  OPC_RecordChild0,
18239  OPC_RecordChild1,
18240  OPC_MoveChild1,
18241  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
18242  OPC_MoveParent,
18243  OPC_Scope, 12,
18244   OPC_CheckPatternPredicate, 91,
18245   OPC_EmitConvertToTarget, 1,
18246   OPC_MorphNodeTo1, TARGET_VAL(Mips::ExtractElementF64), 0,
18247                 MVT::i32, 2, 0, 2,
18248  12,
18249   OPC_CheckPatternPredicate, 92,
18250   OPC_EmitConvertToTarget, 1,
18251   OPC_MorphNodeTo1, TARGET_VAL(Mips::ExtractElementF64_64), 0,
18252                 MVT::i32, 2, 0, 2,
18253  0,
18254 79, TARGET_VAL(MipsISD::Highest),
18255  OPC_RecordChild0,
18256  OPC_MoveChild0,
18257  OPC_SwitchOpcode , 12, TARGET_VAL(ISD::TargetGlobalAddress),
18258   OPC_MoveParent,
18259   OPC_CheckType, MVT::i64,
18260   OPC_CheckPatternPredicate, 63,
18261   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18262                 MVT::i64, 1, 0,
18263  12, TARGET_VAL(ISD::TargetBlockAddress),
18264   OPC_MoveParent,
18265   OPC_CheckType, MVT::i64,
18266   OPC_CheckPatternPredicate, 63,
18267   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18268                 MVT::i64, 1, 0,
18269  12, TARGET_VAL(ISD::TargetJumpTable),
18270   OPC_MoveParent,
18271   OPC_CheckType, MVT::i64,
18272   OPC_CheckPatternPredicate, 63,
18273   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18274                 MVT::i64, 1, 0,
18275  12, TARGET_VAL(ISD::TargetConstantPool),
18276   OPC_MoveParent,
18277   OPC_CheckType, MVT::i64,
18278   OPC_CheckPatternPredicate, 63,
18279   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18280                 MVT::i64, 1, 0,
18281  12, TARGET_VAL(ISD::TargetExternalSymbol),
18282   OPC_MoveParent,
18283   OPC_CheckType, MVT::i64,
18284   OPC_CheckPatternPredicate, 63,
18285   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18286                 MVT::i64, 1, 0,
18287  0,
18288 104, TARGET_VAL(MipsISD::Higher),
18289  OPC_RecordChild0,
18290  OPC_MoveChild0,
18291  OPC_SwitchOpcode , 17, TARGET_VAL(ISD::TargetGlobalAddress),
18292   OPC_MoveParent,
18293   OPC_CheckType, MVT::i64,
18294   OPC_CheckPatternPredicate, 63,
18295   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18296   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18297                 MVT::i64, 2, 1, 0,
18298  17, TARGET_VAL(ISD::TargetBlockAddress),
18299   OPC_MoveParent,
18300   OPC_CheckType, MVT::i64,
18301   OPC_CheckPatternPredicate, 63,
18302   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18303   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18304                 MVT::i64, 2, 1, 0,
18305  17, TARGET_VAL(ISD::TargetJumpTable),
18306   OPC_MoveParent,
18307   OPC_CheckType, MVT::i64,
18308   OPC_CheckPatternPredicate, 63,
18309   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18310   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18311                 MVT::i64, 2, 1, 0,
18312  17, TARGET_VAL(ISD::TargetConstantPool),
18313   OPC_MoveParent,
18314   OPC_CheckType, MVT::i64,
18315   OPC_CheckPatternPredicate, 63,
18316   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18317   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18318                 MVT::i64, 2, 1, 0,
18319  17, TARGET_VAL(ISD::TargetExternalSymbol),
18320   OPC_MoveParent,
18321   OPC_CheckType, MVT::i64,
18322   OPC_CheckPatternPredicate, 63,
18323   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18324   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18325                 MVT::i64, 2, 1, 0,
18326  0,
18327 79|128,3, TARGET_VAL(ISD::Constant),
18328  OPC_RecordNode,
18329  OPC_Scope, 18,
18330   OPC_CheckPredicate, 55,
18331   OPC_CheckType, MVT::i32,
18332   OPC_CheckPatternPredicate, 7,
18333   OPC_EmitConvertToTarget, 0,
18334   OPC_EmitNodeXForm, 5, 1,
18335   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi), 0,
18336                 MVT::i32, 1, 2,
18337  19,
18338   OPC_CheckPredicate, 56,
18339   OPC_CheckType, MVT::i32,
18340   OPC_CheckPatternPredicate, 7,
18341   OPC_EmitRegister, MVT::i32, Mips::ZERO,
18342   OPC_EmitConvertToTarget, 0,
18343   OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi), 0,
18344                 MVT::i32, 2, 1, 2,
18345  19,
18346   OPC_CheckPredicate, 19,
18347   OPC_CheckType, MVT::i32,
18348   OPC_CheckPatternPredicate, 7,
18349   OPC_EmitRegister, MVT::i32, Mips::ZERO,
18350   OPC_EmitConvertToTarget, 0,
18351   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu), 0,
18352                 MVT::i32, 2, 1, 2,
18353  18,
18354   OPC_CheckPredicate, 55,
18355   OPC_CheckType, MVT::i64,
18356   OPC_CheckPatternPredicate, 29,
18357   OPC_EmitConvertToTarget, 0,
18358   OPC_EmitNodeXForm, 5, 1,
18359   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi64), 0,
18360                 MVT::i64, 1, 2,
18361  20,
18362   OPC_CheckPredicate, 56,
18363   OPC_CheckType, MVT::i64,
18364   OPC_CheckPatternPredicate, 29,
18365   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18366   OPC_EmitConvertToTarget, 0,
18367   OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi64), 0,
18368                 MVT::i64, 2, 1, 2,
18369  20,
18370   OPC_CheckPredicate, 19,
18371   OPC_CheckType, MVT::i64,
18372   OPC_CheckPatternPredicate, 29,
18373   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18374   OPC_EmitConvertToTarget, 0,
18375   OPC_MorphNodeTo1, TARGET_VAL(Mips::DADDiu), 0,
18376                 MVT::i64, 2, 1, 2,
18377  18,
18378   OPC_CheckPredicate, 21,
18379   OPC_CheckType, MVT::i32,
18380   OPC_CheckPatternPredicate, 15,
18381   OPC_EmitConvertToTarget, 0,
18382   OPC_EmitNodeXForm, 3, 1,
18383   OPC_MorphNodeTo1, TARGET_VAL(Mips::LiRxImmX16), 0,
18384                 MVT::i32, 1, 2,
18385  15,
18386   OPC_CheckPredicate, 57,
18387   OPC_CheckType, MVT::i32,
18388   OPC_CheckPatternPredicate, 8,
18389   OPC_EmitConvertToTarget, 0,
18390   OPC_MorphNodeTo1, TARGET_VAL(Mips::LI16_MM), 0,
18391                 MVT::i32, 1, 1,
18392  18,
18393   OPC_CheckPredicate, 55,
18394   OPC_CheckType, MVT::i32,
18395   OPC_CheckPatternPredicate, 8,
18396   OPC_EmitConvertToTarget, 0,
18397   OPC_EmitNodeXForm, 5, 1,
18398   OPC_MorphNodeTo1, TARGET_VAL(Mips::LUi_MM), 0,
18399                 MVT::i32, 1, 2,
18400  19,
18401   OPC_CheckPredicate, 56,
18402   OPC_CheckType, MVT::i32,
18403   OPC_CheckPatternPredicate, 8,
18404   OPC_EmitRegister, MVT::i32, Mips::ZERO,
18405   OPC_EmitConvertToTarget, 0,
18406   OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi_MM), 0,
18407                 MVT::i32, 2, 1, 2,
18408  19,
18409   OPC_CheckPredicate, 19,
18410   OPC_CheckType, MVT::i32,
18411   OPC_CheckPatternPredicate, 8,
18412   OPC_EmitRegister, MVT::i32, Mips::ZERO,
18413   OPC_EmitConvertToTarget, 0,
18414   OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDiu_MM), 0,
18415                 MVT::i32, 2, 1, 2,
18416  22,
18417   OPC_CheckPredicate, 21,
18418   OPC_CheckType, MVT::i32,
18419   OPC_CheckPatternPredicate, 16,
18420   OPC_EmitRegister, MVT::i32, Mips::ZERO,
18421   OPC_EmitConvertToTarget, 0,
18422   OPC_EmitNodeXForm, 3, 2,
18423   OPC_MorphNodeTo1, TARGET_VAL(Mips::XORI_MMR6), 0,
18424                 MVT::i32, 2, 1, 3,
18425  62,
18426   OPC_CheckPredicate, 58,
18427   OPC_SwitchType , 27, MVT::i32,
18428    OPC_CheckPatternPredicate, 7,
18429    OPC_EmitConvertToTarget, 0,
18430    OPC_EmitNodeXForm, 5, 1,
18431    OPC_EmitNode1, TARGET_VAL(Mips::LUi), 0,
18432                  MVT::i32, 1, 2,
18433    OPC_EmitConvertToTarget, 0,
18434    OPC_EmitNodeXForm, 3, 4,
18435    OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi), 0,
18436                  MVT::i32, 2, 3, 5,
18437   27, MVT::i64,
18438    OPC_CheckPatternPredicate, 29,
18439    OPC_EmitConvertToTarget, 0,
18440    OPC_EmitNodeXForm, 5, 1,
18441    OPC_EmitNode1, TARGET_VAL(Mips::LUi64), 0,
18442                  MVT::i64, 1, 2,
18443    OPC_EmitConvertToTarget, 0,
18444    OPC_EmitNodeXForm, 3, 4,
18445    OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi64), 0,
18446                  MVT::i64, 2, 3, 5,
18447   0,
18448  34,
18449   OPC_CheckPredicate, 59,
18450   OPC_CheckType, MVT::i64,
18451   OPC_CheckPatternPredicate, 29,
18452   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18453   OPC_EmitConvertToTarget, 0,
18454   OPC_EmitNodeXForm, 5, 2,
18455   OPC_EmitNode1, TARGET_VAL(Mips::ORi64), 0,
18456                 MVT::i64, 2, 1, 3,
18457   OPC_EmitInteger, MVT::i32, 32,
18458   OPC_MorphNodeTo1, TARGET_VAL(Mips::DSLL), 0,
18459                 MVT::i64, 2, 4, 5,
18460  26,
18461   OPC_CheckPredicate, 19,
18462   OPC_CheckType, MVT::i32,
18463   OPC_CheckPatternPredicate, 15,
18464   OPC_EmitRegister, MVT::i32, Mips::ZERO,
18465   OPC_EmitNode1, TARGET_VAL(Mips::MoveR3216), 0,
18466                 MVT::i32, 1, 1,
18467   OPC_EmitConvertToTarget, 0,
18468   OPC_MorphNodeTo1, TARGET_VAL(Mips::AddiuRxRxImmX16), 0,
18469                 MVT::i32, 2, 2, 3,
18470  31,
18471   OPC_CheckPredicate, 58,
18472   OPC_CheckType, MVT::i32,
18473   OPC_CheckPatternPredicate, 8,
18474   OPC_EmitConvertToTarget, 0,
18475   OPC_EmitNodeXForm, 5, 1,
18476   OPC_EmitNode1, TARGET_VAL(Mips::LUi_MM), 0,
18477                 MVT::i32, 1, 2,
18478   OPC_EmitConvertToTarget, 0,
18479   OPC_EmitNodeXForm, 3, 4,
18480   OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi_MM), 0,
18481                 MVT::i32, 2, 3, 5,
18482  47,
18483   OPC_CheckPredicate, 60,
18484   OPC_CheckType, MVT::i64,
18485   OPC_CheckPatternPredicate, 29,
18486   OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
18487   OPC_EmitConvertToTarget, 0,
18488   OPC_EmitNodeXForm, 5, 2,
18489   OPC_EmitNode1, TARGET_VAL(Mips::ORi64), 0,
18490                 MVT::i64, 2, 1, 3,
18491   OPC_EmitInteger, MVT::i32, 32,
18492   OPC_EmitNode1, TARGET_VAL(Mips::DSLL), 0,
18493                 MVT::i64, 2, 4, 5,
18494   OPC_EmitConvertToTarget, 0,
18495   OPC_EmitNodeXForm, 3, 7,
18496   OPC_MorphNodeTo1, TARGET_VAL(Mips::ORi64), 0,
18497                 MVT::i64, 2, 6, 8,
18498  17,
18499   OPC_CheckType, MVT::i32,
18500   OPC_CheckPatternPredicate, 15,
18501   OPC_EmitConvertToTarget, 0,
18502   OPC_EmitInteger, MVT::i32, 3,
18503   OPC_MorphNodeTo1, TARGET_VAL(Mips::LwConstant32), 0,
18504                 MVT::i32, 2, 1, 2,
18505  0,
18506 124, TARGET_VAL(ISD::BRIND),
18507  OPC_RecordNode,
18508  OPC_RecordChild1,
18509  OPC_Scope, 74,
18510   OPC_CheckChild1Type, MVT::i32,
18511   OPC_Scope, 9,
18512    OPC_CheckPatternPredicate, 15,
18513    OPC_EmitMergeInputChains1_0,
18514    OPC_MorphNodeTo0, TARGET_VAL(Mips::JrcRx16), 0|OPFL_Chain,
18515                  1, 1,
18516   9,
18517    OPC_CheckPatternPredicate, 80,
18518    OPC_EmitMergeInputChains1_0,
18519    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectBranch), 0|OPFL_Chain,
18520                  1, 1,
18521   9,
18522    OPC_CheckPatternPredicate, 93,
18523    OPC_EmitMergeInputChains1_0,
18524    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectHazardBranch), 0|OPFL_Chain,
18525                  1, 1,
18526   9,
18527    OPC_CheckPatternPredicate, 82,
18528    OPC_EmitMergeInputChains1_0,
18529    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectBranchR6), 0|OPFL_Chain,
18530                  1, 1,
18531   9,
18532    OPC_CheckPatternPredicate, 83,
18533    OPC_EmitMergeInputChains1_0,
18534    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndrectHazardBranchR6), 0|OPFL_Chain,
18535                  1, 1,
18536   9,
18537    OPC_CheckPatternPredicate, 30,
18538    OPC_EmitMergeInputChains1_0,
18539    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectBranch_MM), 0|OPFL_Chain,
18540                  1, 1,
18541   9,
18542    OPC_CheckPatternPredicate, 16,
18543    OPC_EmitMergeInputChains1_0,
18544    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectBranch_MMR6), 0|OPFL_Chain,
18545                  1, 1,
18546   0,
18547  44,
18548   OPC_CheckChild1Type, MVT::i64,
18549   OPC_Scope, 9,
18550    OPC_CheckPatternPredicate, 94,
18551    OPC_EmitMergeInputChains1_0,
18552    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectBranch64), 0|OPFL_Chain,
18553                  1, 1,
18554   9,
18555    OPC_CheckPatternPredicate, 85,
18556    OPC_EmitMergeInputChains1_0,
18557    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectHazardBranch64), 0|OPFL_Chain,
18558                  1, 1,
18559   9,
18560    OPC_CheckPatternPredicate, 86,
18561    OPC_EmitMergeInputChains1_0,
18562    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndirectBranch64R6), 0|OPFL_Chain,
18563                  1, 1,
18564   9,
18565    OPC_CheckPatternPredicate, 87,
18566    OPC_EmitMergeInputChains1_0,
18567    OPC_MorphNodeTo0, TARGET_VAL(Mips::PseudoIndrectHazardBranch64R6), 0|OPFL_Chain,
18568                  1, 1,
18569   0,
18570  0,
18571 67, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),
18572  OPC_RecordMemRef,
18573  OPC_RecordNode,
18574  OPC_RecordChild1,
18575  OPC_RecordChild2,
18576  OPC_SwitchType , 44, MVT::i32,
18577   OPC_Scope, 13,
18578    OPC_CheckPredicate, 8,
18579    OPC_CheckPatternPredicate, 50,
18580    OPC_EmitMergeInputChains1_0,
18581    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs,
18582                  MVT::i32, 2, 1, 2,
18583   13,
18584    OPC_CheckPredicate, 9,
18585    OPC_CheckPatternPredicate, 50,
18586    OPC_EmitMergeInputChains1_0,
18587    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs,
18588                  MVT::i32, 2, 1, 2,
18589   13,
18590    OPC_CheckPredicate, 14,
18591    OPC_CheckPatternPredicate, 50,
18592    OPC_EmitMergeInputChains1_0,
18593    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs,
18594                  MVT::i32, 2, 1, 2,
18595   0,
18596  13, MVT::i64,
18597   OPC_CheckPredicate, 24,
18598   OPC_CheckPatternPredicate, 50,
18599   OPC_EmitMergeInputChains1_0,
18600   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_ADD_I64), 0|OPFL_Chain|OPFL_MemRefs,
18601                 MVT::i64, 2, 1, 2,
18602  0,
18603 67, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),
18604  OPC_RecordMemRef,
18605  OPC_RecordNode,
18606  OPC_RecordChild1,
18607  OPC_RecordChild2,
18608  OPC_SwitchType , 44, MVT::i32,
18609   OPC_Scope, 13,
18610    OPC_CheckPredicate, 8,
18611    OPC_CheckPatternPredicate, 50,
18612    OPC_EmitMergeInputChains1_0,
18613    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs,
18614                  MVT::i32, 2, 1, 2,
18615   13,
18616    OPC_CheckPredicate, 9,
18617    OPC_CheckPatternPredicate, 50,
18618    OPC_EmitMergeInputChains1_0,
18619    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs,
18620                  MVT::i32, 2, 1, 2,
18621   13,
18622    OPC_CheckPredicate, 14,
18623    OPC_CheckPatternPredicate, 50,
18624    OPC_EmitMergeInputChains1_0,
18625    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs,
18626                  MVT::i32, 2, 1, 2,
18627   0,
18628  13, MVT::i64,
18629   OPC_CheckPredicate, 24,
18630   OPC_CheckPatternPredicate, 50,
18631   OPC_EmitMergeInputChains1_0,
18632   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_SUB_I64), 0|OPFL_Chain|OPFL_MemRefs,
18633                 MVT::i64, 2, 1, 2,
18634  0,
18635 67, TARGET_VAL(ISD::ATOMIC_LOAD_AND),
18636  OPC_RecordMemRef,
18637  OPC_RecordNode,
18638  OPC_RecordChild1,
18639  OPC_RecordChild2,
18640  OPC_SwitchType , 44, MVT::i32,
18641   OPC_Scope, 13,
18642    OPC_CheckPredicate, 8,
18643    OPC_CheckPatternPredicate, 50,
18644    OPC_EmitMergeInputChains1_0,
18645    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs,
18646                  MVT::i32, 2, 1, 2,
18647   13,
18648    OPC_CheckPredicate, 9,
18649    OPC_CheckPatternPredicate, 50,
18650    OPC_EmitMergeInputChains1_0,
18651    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs,
18652                  MVT::i32, 2, 1, 2,
18653   13,
18654    OPC_CheckPredicate, 14,
18655    OPC_CheckPatternPredicate, 50,
18656    OPC_EmitMergeInputChains1_0,
18657    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs,
18658                  MVT::i32, 2, 1, 2,
18659   0,
18660  13, MVT::i64,
18661   OPC_CheckPredicate, 24,
18662   OPC_CheckPatternPredicate, 50,
18663   OPC_EmitMergeInputChains1_0,
18664   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_AND_I64), 0|OPFL_Chain|OPFL_MemRefs,
18665                 MVT::i64, 2, 1, 2,
18666  0,
18667 67, TARGET_VAL(ISD::ATOMIC_LOAD_OR),
18668  OPC_RecordMemRef,
18669  OPC_RecordNode,
18670  OPC_RecordChild1,
18671  OPC_RecordChild2,
18672  OPC_SwitchType , 44, MVT::i32,
18673   OPC_Scope, 13,
18674    OPC_CheckPredicate, 8,
18675    OPC_CheckPatternPredicate, 50,
18676    OPC_EmitMergeInputChains1_0,
18677    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs,
18678                  MVT::i32, 2, 1, 2,
18679   13,
18680    OPC_CheckPredicate, 9,
18681    OPC_CheckPatternPredicate, 50,
18682    OPC_EmitMergeInputChains1_0,
18683    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs,
18684                  MVT::i32, 2, 1, 2,
18685   13,
18686    OPC_CheckPredicate, 14,
18687    OPC_CheckPatternPredicate, 50,
18688    OPC_EmitMergeInputChains1_0,
18689    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs,
18690                  MVT::i32, 2, 1, 2,
18691   0,
18692  13, MVT::i64,
18693   OPC_CheckPredicate, 24,
18694   OPC_CheckPatternPredicate, 50,
18695   OPC_EmitMergeInputChains1_0,
18696   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_OR_I64), 0|OPFL_Chain|OPFL_MemRefs,
18697                 MVT::i64, 2, 1, 2,
18698  0,
18699 67, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),
18700  OPC_RecordMemRef,
18701  OPC_RecordNode,
18702  OPC_RecordChild1,
18703  OPC_RecordChild2,
18704  OPC_SwitchType , 44, MVT::i32,
18705   OPC_Scope, 13,
18706    OPC_CheckPredicate, 8,
18707    OPC_CheckPatternPredicate, 50,
18708    OPC_EmitMergeInputChains1_0,
18709    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs,
18710                  MVT::i32, 2, 1, 2,
18711   13,
18712    OPC_CheckPredicate, 9,
18713    OPC_CheckPatternPredicate, 50,
18714    OPC_EmitMergeInputChains1_0,
18715    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs,
18716                  MVT::i32, 2, 1, 2,
18717   13,
18718    OPC_CheckPredicate, 14,
18719    OPC_CheckPatternPredicate, 50,
18720    OPC_EmitMergeInputChains1_0,
18721    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs,
18722                  MVT::i32, 2, 1, 2,
18723   0,
18724  13, MVT::i64,
18725   OPC_CheckPredicate, 24,
18726   OPC_CheckPatternPredicate, 50,
18727   OPC_EmitMergeInputChains1_0,
18728   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_XOR_I64), 0|OPFL_Chain|OPFL_MemRefs,
18729                 MVT::i64, 2, 1, 2,
18730  0,
18731 67, TARGET_VAL(ISD::ATOMIC_LOAD_NAND),
18732  OPC_RecordMemRef,
18733  OPC_RecordNode,
18734  OPC_RecordChild1,
18735  OPC_RecordChild2,
18736  OPC_SwitchType , 44, MVT::i32,
18737   OPC_Scope, 13,
18738    OPC_CheckPredicate, 8,
18739    OPC_CheckPatternPredicate, 50,
18740    OPC_EmitMergeInputChains1_0,
18741    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs,
18742                  MVT::i32, 2, 1, 2,
18743   13,
18744    OPC_CheckPredicate, 9,
18745    OPC_CheckPatternPredicate, 50,
18746    OPC_EmitMergeInputChains1_0,
18747    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs,
18748                  MVT::i32, 2, 1, 2,
18749   13,
18750    OPC_CheckPredicate, 14,
18751    OPC_CheckPatternPredicate, 50,
18752    OPC_EmitMergeInputChains1_0,
18753    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs,
18754                  MVT::i32, 2, 1, 2,
18755   0,
18756  13, MVT::i64,
18757   OPC_CheckPredicate, 24,
18758   OPC_CheckPatternPredicate, 50,
18759   OPC_EmitMergeInputChains1_0,
18760   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_NAND_I64), 0|OPFL_Chain|OPFL_MemRefs,
18761                 MVT::i64, 2, 1, 2,
18762  0,
18763 67, TARGET_VAL(ISD::ATOMIC_SWAP),
18764  OPC_RecordMemRef,
18765  OPC_RecordNode,
18766  OPC_RecordChild1,
18767  OPC_RecordChild2,
18768  OPC_SwitchType , 44, MVT::i32,
18769   OPC_Scope, 13,
18770    OPC_CheckPredicate, 8,
18771    OPC_CheckPatternPredicate, 50,
18772    OPC_EmitMergeInputChains1_0,
18773    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
18774                  MVT::i32, 2, 1, 2,
18775   13,
18776    OPC_CheckPredicate, 9,
18777    OPC_CheckPatternPredicate, 50,
18778    OPC_EmitMergeInputChains1_0,
18779    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
18780                  MVT::i32, 2, 1, 2,
18781   13,
18782    OPC_CheckPredicate, 14,
18783    OPC_CheckPatternPredicate, 50,
18784    OPC_EmitMergeInputChains1_0,
18785    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
18786                  MVT::i32, 2, 1, 2,
18787   0,
18788  13, MVT::i64,
18789   OPC_CheckPredicate, 24,
18790   OPC_CheckPatternPredicate, 50,
18791   OPC_EmitMergeInputChains1_0,
18792   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
18793                 MVT::i64, 2, 1, 2,
18794  0,
18795 72, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
18796  OPC_RecordMemRef,
18797  OPC_RecordNode,
18798  OPC_RecordChild1,
18799  OPC_RecordChild2,
18800  OPC_RecordChild3,
18801  OPC_SwitchType , 47, MVT::i32,
18802   OPC_Scope, 14,
18803    OPC_CheckPredicate, 8,
18804    OPC_CheckPatternPredicate, 50,
18805    OPC_EmitMergeInputChains1_0,
18806    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
18807                  MVT::i32, 3, 1, 2, 3,
18808   14,
18809    OPC_CheckPredicate, 9,
18810    OPC_CheckPatternPredicate, 50,
18811    OPC_EmitMergeInputChains1_0,
18812    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
18813                  MVT::i32, 3, 1, 2, 3,
18814   14,
18815    OPC_CheckPredicate, 14,
18816    OPC_CheckPatternPredicate, 50,
18817    OPC_EmitMergeInputChains1_0,
18818    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
18819                  MVT::i32, 3, 1, 2, 3,
18820   0,
18821  14, MVT::i64,
18822   OPC_CheckPredicate, 24,
18823   OPC_CheckPatternPredicate, 50,
18824   OPC_EmitMergeInputChains1_0,
18825   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_CMP_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
18826                 MVT::i64, 3, 1, 2, 3,
18827  0,
18828 67, TARGET_VAL(ISD::ATOMIC_LOAD_MIN),
18829  OPC_RecordMemRef,
18830  OPC_RecordNode,
18831  OPC_RecordChild1,
18832  OPC_RecordChild2,
18833  OPC_SwitchType , 44, MVT::i32,
18834   OPC_Scope, 13,
18835    OPC_CheckPredicate, 8,
18836    OPC_CheckPatternPredicate, 50,
18837    OPC_EmitMergeInputChains1_0,
18838    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MIN_I8), 0|OPFL_Chain|OPFL_MemRefs,
18839                  MVT::i32, 2, 1, 2,
18840   13,
18841    OPC_CheckPredicate, 9,
18842    OPC_CheckPatternPredicate, 50,
18843    OPC_EmitMergeInputChains1_0,
18844    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MIN_I16), 0|OPFL_Chain|OPFL_MemRefs,
18845                  MVT::i32, 2, 1, 2,
18846   13,
18847    OPC_CheckPredicate, 14,
18848    OPC_CheckPatternPredicate, 50,
18849    OPC_EmitMergeInputChains1_0,
18850    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MIN_I32), 0|OPFL_Chain|OPFL_MemRefs,
18851                  MVT::i32, 2, 1, 2,
18852   0,
18853  13, MVT::i64,
18854   OPC_CheckPredicate, 24,
18855   OPC_CheckPatternPredicate, 50,
18856   OPC_EmitMergeInputChains1_0,
18857   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MIN_I64), 0|OPFL_Chain|OPFL_MemRefs,
18858                 MVT::i64, 2, 1, 2,
18859  0,
18860 67, TARGET_VAL(ISD::ATOMIC_LOAD_MAX),
18861  OPC_RecordMemRef,
18862  OPC_RecordNode,
18863  OPC_RecordChild1,
18864  OPC_RecordChild2,
18865  OPC_SwitchType , 44, MVT::i32,
18866   OPC_Scope, 13,
18867    OPC_CheckPredicate, 8,
18868    OPC_CheckPatternPredicate, 50,
18869    OPC_EmitMergeInputChains1_0,
18870    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MAX_I8), 0|OPFL_Chain|OPFL_MemRefs,
18871                  MVT::i32, 2, 1, 2,
18872   13,
18873    OPC_CheckPredicate, 9,
18874    OPC_CheckPatternPredicate, 50,
18875    OPC_EmitMergeInputChains1_0,
18876    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MAX_I16), 0|OPFL_Chain|OPFL_MemRefs,
18877                  MVT::i32, 2, 1, 2,
18878   13,
18879    OPC_CheckPredicate, 14,
18880    OPC_CheckPatternPredicate, 50,
18881    OPC_EmitMergeInputChains1_0,
18882    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MAX_I32), 0|OPFL_Chain|OPFL_MemRefs,
18883                  MVT::i32, 2, 1, 2,
18884   0,
18885  13, MVT::i64,
18886   OPC_CheckPredicate, 24,
18887   OPC_CheckPatternPredicate, 50,
18888   OPC_EmitMergeInputChains1_0,
18889   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_MAX_I64), 0|OPFL_Chain|OPFL_MemRefs,
18890                 MVT::i64, 2, 1, 2,
18891  0,
18892 67, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),
18893  OPC_RecordMemRef,
18894  OPC_RecordNode,
18895  OPC_RecordChild1,
18896  OPC_RecordChild2,
18897  OPC_SwitchType , 44, MVT::i32,
18898   OPC_Scope, 13,
18899    OPC_CheckPredicate, 8,
18900    OPC_CheckPatternPredicate, 50,
18901    OPC_EmitMergeInputChains1_0,
18902    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMIN_I8), 0|OPFL_Chain|OPFL_MemRefs,
18903                  MVT::i32, 2, 1, 2,
18904   13,
18905    OPC_CheckPredicate, 9,
18906    OPC_CheckPatternPredicate, 50,
18907    OPC_EmitMergeInputChains1_0,
18908    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMIN_I16), 0|OPFL_Chain|OPFL_MemRefs,
18909                  MVT::i32, 2, 1, 2,
18910   13,
18911    OPC_CheckPredicate, 14,
18912    OPC_CheckPatternPredicate, 50,
18913    OPC_EmitMergeInputChains1_0,
18914    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMIN_I32), 0|OPFL_Chain|OPFL_MemRefs,
18915                  MVT::i32, 2, 1, 2,
18916   0,
18917  13, MVT::i64,
18918   OPC_CheckPredicate, 24,
18919   OPC_CheckPatternPredicate, 50,
18920   OPC_EmitMergeInputChains1_0,
18921   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMIN_I64), 0|OPFL_Chain|OPFL_MemRefs,
18922                 MVT::i64, 2, 1, 2,
18923  0,
18924 67, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),
18925  OPC_RecordMemRef,
18926  OPC_RecordNode,
18927  OPC_RecordChild1,
18928  OPC_RecordChild2,
18929  OPC_SwitchType , 44, MVT::i32,
18930   OPC_Scope, 13,
18931    OPC_CheckPredicate, 8,
18932    OPC_CheckPatternPredicate, 50,
18933    OPC_EmitMergeInputChains1_0,
18934    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMAX_I8), 0|OPFL_Chain|OPFL_MemRefs,
18935                  MVT::i32, 2, 1, 2,
18936   13,
18937    OPC_CheckPredicate, 9,
18938    OPC_CheckPatternPredicate, 50,
18939    OPC_EmitMergeInputChains1_0,
18940    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMAX_I16), 0|OPFL_Chain|OPFL_MemRefs,
18941                  MVT::i32, 2, 1, 2,
18942   13,
18943    OPC_CheckPredicate, 14,
18944    OPC_CheckPatternPredicate, 50,
18945    OPC_EmitMergeInputChains1_0,
18946    OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMAX_I32), 0|OPFL_Chain|OPFL_MemRefs,
18947                  MVT::i32, 2, 1, 2,
18948   0,
18949  13, MVT::i64,
18950   OPC_CheckPredicate, 24,
18951   OPC_CheckPatternPredicate, 50,
18952   OPC_EmitMergeInputChains1_0,
18953   OPC_MorphNodeTo1, TARGET_VAL(Mips::ATOMIC_LOAD_UMAX_I64), 0|OPFL_Chain|OPFL_MemRefs,
18954                 MVT::i64, 2, 1, 2,
18955  0,
18956 22, TARGET_VAL(MipsISD::Ret),
18957  OPC_RecordNode,
18958  OPC_CaptureGlueInput,
18959  OPC_Scope, 8,
18960   OPC_CheckPatternPredicate, 50,
18961   OPC_EmitMergeInputChains1_0,
18962   OPC_MorphNodeTo0, TARGET_VAL(Mips::RetRA), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
18963                 0,
18964  8,
18965   OPC_CheckPatternPredicate, 15,
18966   OPC_EmitMergeInputChains1_0,
18967   OPC_MorphNodeTo0, TARGET_VAL(Mips::RetRA16), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
18968                 0,
18969  0,
18970 10, TARGET_VAL(MipsISD::ERet),
18971  OPC_RecordNode,
18972  OPC_CaptureGlueInput,
18973  OPC_CheckPatternPredicate, 50,
18974  OPC_EmitMergeInputChains1_0,
18975  OPC_MorphNodeTo0, TARGET_VAL(Mips::ERet), 0|OPFL_Chain|OPFL_GlueInput,
18976                0,
18977 43|128,1, TARGET_VAL(ISD::MUL),
18978  OPC_RecordChild0,
18979  OPC_RecordChild1,
18980  OPC_SwitchType , 78, MVT::i32,
18981   OPC_Scope, 11,
18982    OPC_CheckPatternPredicate, 52,
18983    OPC_MorphNodeTo2, TARGET_VAL(Mips::MUL), 0,
18984                  MVT::i32, MVT::i32, 2, 0, 1,
18985   10,
18986    OPC_CheckPatternPredicate, 33,
18987    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_R6), 0,
18988                  MVT::i32, 2, 0, 1,
18989   11,
18990    OPC_CheckPatternPredicate, 15,
18991    OPC_MorphNodeTo2, TARGET_VAL(Mips::MultRxRyRz16), 0,
18992                  MVT::i32, MVT::i32, 2, 0, 1,
18993   11,
18994    OPC_CheckPatternPredicate, 30,
18995    OPC_MorphNodeTo2, TARGET_VAL(Mips::MUL_MM), 0,
18996                  MVT::i32, MVT::i32, 2, 0, 1,
18997   10,
18998    OPC_CheckPatternPredicate, 16,
18999    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_MMR6), 0,
19000                  MVT::i32, 2, 0, 1,
19001   17,
19002    OPC_CheckPatternPredicate, 95,
19003    OPC_EmitNode1, TARGET_VAL(Mips::PseudoMULT), 0,
19004                  MVT::Untyped, 2, 0, 1,
19005    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFLO), 0,
19006                  MVT::i32, 1, 2,
19007   0,
19008  25, MVT::i64,
19009   OPC_Scope, 11,
19010    OPC_CheckPatternPredicate, 31,
19011    OPC_MorphNodeTo2, TARGET_VAL(Mips::DMUL), 0,
19012                  MVT::i64, MVT::i32, 2, 0, 1,
19013   10,
19014    OPC_CheckPatternPredicate, 55,
19015    OPC_MorphNodeTo1, TARGET_VAL(Mips::DMUL_R6), 0,
19016                  MVT::i64, 2, 0, 1,
19017   0,
19018  10, MVT::v2i16,
19019   OPC_CheckPatternPredicate, 48,
19020   OPC_MorphNodeTo1, TARGET_VAL(Mips::MUL_PH), 0,
19021                 MVT::v2i16, 2, 0, 1,
19022  10, MVT::v16i8,
19023   OPC_CheckPatternPredicate, 26,
19024   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULV_B), 0,
19025                 MVT::v16i8, 2, 0, 1,
19026  10, MVT::v8i16,
19027   OPC_CheckPatternPredicate, 26,
19028   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULV_H), 0,
19029                 MVT::v8i16, 2, 0, 1,
19030  10, MVT::v4i32,
19031   OPC_CheckPatternPredicate, 26,
19032   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULV_W), 0,
19033                 MVT::v4i32, 2, 0, 1,
19034  10, MVT::v2i64,
19035   OPC_CheckPatternPredicate, 26,
19036   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULV_D), 0,
19037                 MVT::v2i64, 2, 0, 1,
19038  0,
19039 30, TARGET_VAL(ISD::TRAP),
19040  OPC_RecordNode,
19041  OPC_Scope, 8,
19042   OPC_CheckPatternPredicate, 7,
19043   OPC_EmitMergeInputChains1_0,
19044   OPC_MorphNodeTo0, TARGET_VAL(Mips::TRAP), 0|OPFL_Chain,
19045                 0,
19046  8,
19047   OPC_CheckPatternPredicate, 15,
19048   OPC_EmitMergeInputChains1_0,
19049   OPC_MorphNodeTo0, TARGET_VAL(Mips::Break16), 0|OPFL_Chain,
19050                 0,
19051  8,
19052   OPC_CheckPatternPredicate, 8,
19053   OPC_EmitMergeInputChains1_0,
19054   OPC_MorphNodeTo0, TARGET_VAL(Mips::TRAP_MM), 0|OPFL_Chain,
19055                 0,
19056  0,
19057 69, TARGET_VAL(ISD::BR),
19058  OPC_RecordNode,
19059  OPC_RecordChild1,
19060  OPC_MoveChild1,
19061  OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
19062  OPC_MoveParent,
19063  OPC_Scope, 9,
19064   OPC_CheckPatternPredicate, 96,
19065   OPC_EmitMergeInputChains1_0,
19066   OPC_MorphNodeTo0, TARGET_VAL(Mips::J), 0|OPFL_Chain,
19067                 1, 1,
19068  9,
19069   OPC_CheckPatternPredicate, 7,
19070   OPC_EmitMergeInputChains1_0,
19071   OPC_MorphNodeTo0, TARGET_VAL(Mips::B), 0|OPFL_Chain,
19072                 1, 1,
19073  9,
19074   OPC_CheckPatternPredicate, 15,
19075   OPC_EmitMergeInputChains1_0,
19076   OPC_MorphNodeTo0, TARGET_VAL(Mips::Bimm16), 0|OPFL_Chain,
19077                 1, 1,
19078  9,
19079   OPC_CheckPatternPredicate, 97,
19080   OPC_EmitMergeInputChains1_0,
19081   OPC_MorphNodeTo0, TARGET_VAL(Mips::J_MM), 0|OPFL_Chain,
19082                 1, 1,
19083  9,
19084   OPC_CheckPatternPredicate, 98,
19085   OPC_EmitMergeInputChains1_0,
19086   OPC_MorphNodeTo0, TARGET_VAL(Mips::B_MM), 0|OPFL_Chain,
19087                 1, 1,
19088  9,
19089   OPC_CheckPatternPredicate, 16,
19090   OPC_EmitMergeInputChains1_0,
19091   OPC_MorphNodeTo0, TARGET_VAL(Mips::BC_MMR6), 0|OPFL_Chain,
19092                 1, 1,
19093  0,
19094 33, TARGET_VAL(MipsISD::EH_RETURN),
19095  OPC_RecordNode,
19096  OPC_CaptureGlueInput,
19097  OPC_RecordChild1,
19098  OPC_Scope, 13,
19099   OPC_CheckChild1Type, MVT::i32,
19100   OPC_RecordChild2,
19101   OPC_CheckChild2Type, MVT::i32,
19102   OPC_EmitMergeInputChains1_0,
19103   OPC_MorphNodeTo0, TARGET_VAL(Mips::MIPSeh_return32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
19104                 2, 1, 2,
19105  13,
19106   OPC_CheckChild1Type, MVT::i64,
19107   OPC_RecordChild2,
19108   OPC_CheckChild2Type, MVT::i64,
19109   OPC_EmitMergeInputChains1_0,
19110   OPC_MorphNodeTo0, TARGET_VAL(Mips::MIPSeh_return64), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic2,
19111                 2, 1, 2,
19112  0,
19113 119, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
19114  OPC_RecordChild0,
19115  OPC_MoveChild1,
19116  OPC_Scope, 50,
19117   OPC_CheckValueType, MVT::i8,
19118   OPC_MoveParent,
19119   OPC_SwitchType , 32, MVT::i32,
19120    OPC_Scope, 9,
19121     OPC_CheckPatternPredicate, 56,
19122     OPC_MorphNodeTo1, TARGET_VAL(Mips::SEB), 0,
19123                   MVT::i32, 1, 0,
19124    9,
19125     OPC_CheckPatternPredicate, 15,
19126     OPC_MorphNodeTo1, TARGET_VAL(Mips::SebRx16), 0,
19127                   MVT::i32, 1, 0,
19128    9,
19129     OPC_CheckPatternPredicate, 8,
19130     OPC_MorphNodeTo1, TARGET_VAL(Mips::SEB_MM), 0,
19131                   MVT::i32, 1, 0,
19132    0,
19133   9, MVT::i64,
19134    OPC_CheckPatternPredicate, 99,
19135    OPC_MorphNodeTo1, TARGET_VAL(Mips::SEB64), 0,
19136                  MVT::i64, 1, 0,
19137   0,
19138  50,
19139   OPC_CheckValueType, MVT::i16,
19140   OPC_MoveParent,
19141   OPC_SwitchType , 32, MVT::i32,
19142    OPC_Scope, 9,
19143     OPC_CheckPatternPredicate, 56,
19144     OPC_MorphNodeTo1, TARGET_VAL(Mips::SEH), 0,
19145                   MVT::i32, 1, 0,
19146    9,
19147     OPC_CheckPatternPredicate, 15,
19148     OPC_MorphNodeTo1, TARGET_VAL(Mips::SehRx16), 0,
19149                   MVT::i32, 1, 0,
19150    9,
19151     OPC_CheckPatternPredicate, 8,
19152     OPC_MorphNodeTo1, TARGET_VAL(Mips::SEH_MM), 0,
19153                   MVT::i32, 1, 0,
19154    0,
19155   9, MVT::i64,
19156    OPC_CheckPatternPredicate, 99,
19157    OPC_MorphNodeTo1, TARGET_VAL(Mips::SEH64), 0,
19158                  MVT::i64, 1, 0,
19159   0,
19160  12,
19161   OPC_CheckValueType, MVT::i32,
19162   OPC_MoveParent,
19163   OPC_CheckPatternPredicate, 29,
19164   OPC_MorphNodeTo1, TARGET_VAL(Mips::SLL64_64), 0,
19165                 MVT::i64, 1, 0,
19166  0,
19167 67, TARGET_VAL(MipsISD::Mult),
19168  OPC_RecordChild0,
19169  OPC_Scope, 49,
19170   OPC_CheckChild0Type, MVT::i32,
19171   OPC_RecordChild1,
19172   OPC_Scope, 10,
19173    OPC_CheckPatternPredicate, 100,
19174    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMULT), 0,
19175                  MVT::Untyped, 2, 0, 1,
19176   10,
19177    OPC_CheckPatternPredicate, 28,
19178    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULT_DSP), 0,
19179                  MVT::Untyped, 2, 0, 1,
19180   10,
19181    OPC_CheckPatternPredicate, 101,
19182    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMULT_MM), 0,
19183                  MVT::Untyped, 2, 0, 1,
19184   10,
19185    OPC_CheckPatternPredicate, 47,
19186    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULT_DSP_MM), 0,
19187                  MVT::Untyped, 2, 0, 1,
19188   0,
19189  13,
19190   OPC_CheckChild0Type, MVT::i64,
19191   OPC_RecordChild1,
19192   OPC_CheckPatternPredicate, 46,
19193   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoDMULT), 0,
19194                 MVT::Untyped, 2, 0, 1,
19195  0,
19196 67, TARGET_VAL(MipsISD::Multu),
19197  OPC_RecordChild0,
19198  OPC_Scope, 49,
19199   OPC_CheckChild0Type, MVT::i32,
19200   OPC_RecordChild1,
19201   OPC_Scope, 10,
19202    OPC_CheckPatternPredicate, 100,
19203    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMULTu), 0,
19204                  MVT::Untyped, 2, 0, 1,
19205   10,
19206    OPC_CheckPatternPredicate, 28,
19207    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULTU_DSP), 0,
19208                  MVT::Untyped, 2, 0, 1,
19209   10,
19210    OPC_CheckPatternPredicate, 101,
19211    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMULTu_MM), 0,
19212                  MVT::Untyped, 2, 0, 1,
19213   10,
19214    OPC_CheckPatternPredicate, 47,
19215    OPC_MorphNodeTo1, TARGET_VAL(Mips::MULTU_DSP_MM), 0,
19216                  MVT::Untyped, 2, 0, 1,
19217   0,
19218  13,
19219   OPC_CheckChild0Type, MVT::i64,
19220   OPC_RecordChild1,
19221   OPC_CheckPatternPredicate, 46,
19222   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoDMULTu), 0,
19223                 MVT::Untyped, 2, 0, 1,
19224  0,
19225 58, TARGET_VAL(MipsISD::MFHI),
19226  OPC_RecordChild0,
19227  OPC_SwitchType , 42, MVT::i32,
19228   OPC_Scope, 9,
19229    OPC_CheckPatternPredicate, 100,
19230    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFHI), 0,
19231                  MVT::i32, 1, 0,
19232   9,
19233    OPC_CheckPatternPredicate, 28,
19234    OPC_MorphNodeTo1, TARGET_VAL(Mips::MFHI_DSP), 0,
19235                  MVT::i32, 1, 0,
19236   9,
19237    OPC_CheckPatternPredicate, 101,
19238    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFHI_MM), 0,
19239                  MVT::i32, 1, 0,
19240   9,
19241    OPC_CheckPatternPredicate, 47,
19242    OPC_MorphNodeTo1, TARGET_VAL(Mips::MFHI_DSP_MM), 0,
19243                  MVT::i32, 1, 0,
19244   0,
19245  9, MVT::i64,
19246   OPC_CheckPatternPredicate, 46,
19247   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFHI64), 0,
19248                 MVT::i64, 1, 0,
19249  0,
19250 58, TARGET_VAL(MipsISD::MFLO),
19251  OPC_RecordChild0,
19252  OPC_SwitchType , 42, MVT::i32,
19253   OPC_Scope, 9,
19254    OPC_CheckPatternPredicate, 100,
19255    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFLO), 0,
19256                  MVT::i32, 1, 0,
19257   9,
19258    OPC_CheckPatternPredicate, 28,
19259    OPC_MorphNodeTo1, TARGET_VAL(Mips::MFLO_DSP), 0,
19260                  MVT::i32, 1, 0,
19261   9,
19262    OPC_CheckPatternPredicate, 101,
19263    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFLO_MM), 0,
19264                  MVT::i32, 1, 0,
19265   9,
19266    OPC_CheckPatternPredicate, 47,
19267    OPC_MorphNodeTo1, TARGET_VAL(Mips::MFLO_DSP_MM), 0,
19268                  MVT::i32, 1, 0,
19269   0,
19270  9, MVT::i64,
19271   OPC_CheckPatternPredicate, 46,
19272   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMFLO64), 0,
19273                 MVT::i64, 1, 0,
19274  0,
19275 56, TARGET_VAL(MipsISD::MTLOHI),
19276  OPC_RecordChild0,
19277  OPC_Scope, 38,
19278   OPC_CheckChild0Type, MVT::i32,
19279   OPC_RecordChild1,
19280   OPC_Scope, 10,
19281    OPC_CheckPatternPredicate, 100,
19282    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMTLOHI), 0,
19283                  MVT::Untyped, 2, 0, 1,
19284   10,
19285    OPC_CheckPatternPredicate, 102,
19286    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMTLOHI_DSP), 0,
19287                  MVT::Untyped, 2, 0, 1,
19288   10,
19289    OPC_CheckPatternPredicate, 101,
19290    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMTLOHI_MM), 0,
19291                  MVT::Untyped, 2, 0, 1,
19292   0,
19293  13,
19294   OPC_CheckChild0Type, MVT::i64,
19295   OPC_RecordChild1,
19296   OPC_CheckPatternPredicate, 46,
19297   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMTLOHI64), 0,
19298                 MVT::Untyped, 2, 0, 1,
19299  0,
19300 53, TARGET_VAL(MipsISD::MAdd),
19301  OPC_RecordChild0,
19302  OPC_RecordChild1,
19303  OPC_RecordChild2,
19304  OPC_Scope, 11,
19305   OPC_CheckPatternPredicate, 103,
19306   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMADD), 0,
19307                 MVT::Untyped, 3, 0, 1, 2,
19308  11,
19309   OPC_CheckPatternPredicate, 28,
19310   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_DSP), 0,
19311                 MVT::Untyped, 3, 0, 1, 2,
19312  11,
19313   OPC_CheckPatternPredicate, 101,
19314   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMADD_MM), 0,
19315                 MVT::Untyped, 3, 0, 1, 2,
19316  11,
19317   OPC_CheckPatternPredicate, 47,
19318   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_DSP_MM), 0,
19319                 MVT::Untyped, 3, 0, 1, 2,
19320  0,
19321 53, TARGET_VAL(MipsISD::MAddu),
19322  OPC_RecordChild0,
19323  OPC_RecordChild1,
19324  OPC_RecordChild2,
19325  OPC_Scope, 11,
19326   OPC_CheckPatternPredicate, 103,
19327   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMADDU), 0,
19328                 MVT::Untyped, 3, 0, 1, 2,
19329  11,
19330   OPC_CheckPatternPredicate, 28,
19331   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDU_DSP), 0,
19332                 MVT::Untyped, 3, 0, 1, 2,
19333  11,
19334   OPC_CheckPatternPredicate, 101,
19335   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMADDU_MM), 0,
19336                 MVT::Untyped, 3, 0, 1, 2,
19337  11,
19338   OPC_CheckPatternPredicate, 47,
19339   OPC_MorphNodeTo1, TARGET_VAL(Mips::MADDU_DSP_MM), 0,
19340                 MVT::Untyped, 3, 0, 1, 2,
19341  0,
19342 53, TARGET_VAL(MipsISD::MSub),
19343  OPC_RecordChild0,
19344  OPC_RecordChild1,
19345  OPC_RecordChild2,
19346  OPC_Scope, 11,
19347   OPC_CheckPatternPredicate, 103,
19348   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMSUB), 0,
19349                 MVT::Untyped, 3, 0, 1, 2,
19350  11,
19351   OPC_CheckPatternPredicate, 28,
19352   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_DSP), 0,
19353                 MVT::Untyped, 3, 0, 1, 2,
19354  11,
19355   OPC_CheckPatternPredicate, 101,
19356   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMSUB_MM), 0,
19357                 MVT::Untyped, 3, 0, 1, 2,
19358  11,
19359   OPC_CheckPatternPredicate, 47,
19360   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_DSP_MM), 0,
19361                 MVT::Untyped, 3, 0, 1, 2,
19362  0,
19363 53, TARGET_VAL(MipsISD::MSubu),
19364  OPC_RecordChild0,
19365  OPC_RecordChild1,
19366  OPC_RecordChild2,
19367  OPC_Scope, 11,
19368   OPC_CheckPatternPredicate, 103,
19369   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMSUBU), 0,
19370                 MVT::Untyped, 3, 0, 1, 2,
19371  11,
19372   OPC_CheckPatternPredicate, 28,
19373   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBU_DSP), 0,
19374                 MVT::Untyped, 3, 0, 1, 2,
19375  11,
19376   OPC_CheckPatternPredicate, 101,
19377   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoMSUBU_MM), 0,
19378                 MVT::Untyped, 3, 0, 1, 2,
19379  11,
19380   OPC_CheckPatternPredicate, 47,
19381   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUBU_DSP_MM), 0,
19382                 MVT::Untyped, 3, 0, 1, 2,
19383  0,
19384 53, TARGET_VAL(ISD::SUBC),
19385  OPC_RecordChild0,
19386  OPC_RecordChild1,
19387  OPC_SwitchType , 35, MVT::i32,
19388   OPC_Scope, 10,
19389    OPC_CheckPatternPredicate, 7,
19390    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBu), 0|OPFL_GlueOutput,
19391                  MVT::i32, 2, 0, 1,
19392   10,
19393    OPC_CheckPatternPredicate, 8,
19394    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBu_MM), 0|OPFL_GlueOutput,
19395                  MVT::i32, 2, 0, 1,
19396   10,
19397    OPC_CheckPatternPredicate, 16,
19398    OPC_MorphNodeTo1, TARGET_VAL(Mips::SUBU_MMR6), 0|OPFL_GlueOutput,
19399                  MVT::i32, 2, 0, 1,
19400   0,
19401  10, MVT::i64,
19402   OPC_CheckPatternPredicate, 67,
19403   OPC_MorphNodeTo1, TARGET_VAL(Mips::DSUBu), 0|OPFL_GlueOutput,
19404                 MVT::i64, 2, 0, 1,
19405  0,
19406 38|128,18, TARGET_VAL(ISD::BITCAST),
19407  OPC_RecordChild0,
19408  OPC_Scope, 68,
19409   OPC_CheckChild0Type, MVT::f32,
19410   OPC_SwitchType , 32, MVT::i32,
19411    OPC_Scope, 9,
19412     OPC_CheckPatternPredicate, 17,
19413     OPC_MorphNodeTo1, TARGET_VAL(Mips::MFC1), 0,
19414                   MVT::i32, 1, 0,
19415    9,
19416     OPC_CheckPatternPredicate, 18,
19417     OPC_MorphNodeTo1, TARGET_VAL(Mips::MFC1_MM), 0,
19418                   MVT::i32, 1, 0,
19419    9,
19420     OPC_CheckPatternPredicate, 68,
19421     OPC_MorphNodeTo1, TARGET_VAL(Mips::MFC1_MMR6), 0,
19422                   MVT::i32, 1, 0,
19423    0,
19424   13, MVT::v2i16,
19425    OPC_CheckPatternPredicate, 28,
19426    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
19427    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19428                  MVT::v2i16, 2, 0, 1,
19429   13, MVT::v4i8,
19430    OPC_CheckPatternPredicate, 28,
19431    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
19432    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19433                  MVT::v4i8, 2, 0, 1,
19434   0,
19435  13,
19436   OPC_CheckChild0Type, MVT::f64,
19437   OPC_CheckType, MVT::i64,
19438   OPC_CheckPatternPredicate, 104,
19439   OPC_MorphNodeTo1, TARGET_VAL(Mips::DMFC1), 0,
19440                 MVT::i64, 1, 0,
19441  34,
19442   OPC_CheckChild0Type, MVT::v2i16,
19443   OPC_SwitchType , 13, MVT::i32,
19444    OPC_CheckPatternPredicate, 28,
19445    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
19446    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19447                  MVT::i32, 2, 0, 1,
19448   13, MVT::f32,
19449    OPC_CheckPatternPredicate, 28,
19450    OPC_EmitStringInteger, MVT::i32, Mips::FGR32RegClassID,
19451    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19452                  MVT::f32, 2, 0, 1,
19453   0,
19454  34,
19455   OPC_CheckChild0Type, MVT::v4i8,
19456   OPC_SwitchType , 13, MVT::i32,
19457    OPC_CheckPatternPredicate, 28,
19458    OPC_EmitStringInteger, MVT::i32, Mips::GPR32RegClassID,
19459    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19460                  MVT::i32, 2, 0, 1,
19461   13, MVT::f32,
19462    OPC_CheckPatternPredicate, 28,
19463    OPC_EmitStringInteger, MVT::i32, Mips::FGR32RegClassID,
19464    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19465                  MVT::f32, 2, 0, 1,
19466   0,
19467  68,
19468   OPC_CheckChild0Type, MVT::i32,
19469   OPC_SwitchType , 32, MVT::f32,
19470    OPC_Scope, 9,
19471     OPC_CheckPatternPredicate, 17,
19472     OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1), 0,
19473                   MVT::f32, 1, 0,
19474    9,
19475     OPC_CheckPatternPredicate, 18,
19476     OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1_MM), 0,
19477                   MVT::f32, 1, 0,
19478    9,
19479     OPC_CheckPatternPredicate, 68,
19480     OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1_MMR6), 0,
19481                   MVT::f32, 1, 0,
19482    0,
19483   13, MVT::v2i16,
19484    OPC_CheckPatternPredicate, 28,
19485    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
19486    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19487                  MVT::v2i16, 2, 0, 1,
19488   13, MVT::v4i8,
19489    OPC_CheckPatternPredicate, 28,
19490    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
19491    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19492                  MVT::v4i8, 2, 0, 1,
19493   0,
19494  13,
19495   OPC_CheckChild0Type, MVT::i64,
19496   OPC_CheckType, MVT::f64,
19497   OPC_CheckPatternPredicate, 104,
19498   OPC_MorphNodeTo1, TARGET_VAL(Mips::DMTC1), 0,
19499                 MVT::f64, 1, 0,
19500  36|128,2,
19501   OPC_CheckChild0Type, MVT::v8f16,
19502   OPC_SwitchType , 13, MVT::v8i16,
19503    OPC_CheckPatternPredicate, 27,
19504    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19505    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19506                  MVT::v8i16, 2, 0, 1,
19507   53, MVT::v16i8,
19508    OPC_Scope, 13,
19509     OPC_CheckPatternPredicate, 105,
19510     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19511     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19512                   MVT::v16i8, 2, 0, 1,
19513    36,
19514     OPC_CheckPatternPredicate, 106,
19515     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19516     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19517                   MVT::v16i8, 2, 0, 1,
19518     OPC_EmitInteger, MVT::i32, 98|128,2,
19519     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
19520                   MVT::v16i8, 2, 2, 3,
19521     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19522     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19523                   MVT::v16i8, 2, 4, 5,
19524    0,
19525   53, MVT::v4i32,
19526    OPC_Scope, 13,
19527     OPC_CheckPatternPredicate, 105,
19528     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19529     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19530                   MVT::v4i32, 2, 0, 1,
19531    36,
19532     OPC_CheckPatternPredicate, 106,
19533     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19534     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19535                   MVT::v8i16, 2, 0, 1,
19536     OPC_EmitInteger, MVT::i32, 98|128,2,
19537     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19538                   MVT::v8i16, 2, 2, 3,
19539     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19540     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19541                   MVT::v4i32, 2, 4, 5,
19542    0,
19543   52, MVT::v2i64,
19544    OPC_Scope, 13,
19545     OPC_CheckPatternPredicate, 105,
19546     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19547     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19548                   MVT::v2i64, 2, 0, 1,
19549    35,
19550     OPC_CheckPatternPredicate, 106,
19551     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19552     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19553                   MVT::v8i16, 2, 0, 1,
19554     OPC_EmitInteger, MVT::i32, 54,
19555     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19556                   MVT::v8i16, 2, 2, 3,
19557     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19558     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19559                   MVT::v2i64, 2, 4, 5,
19560    0,
19561   53, MVT::v4f32,
19562    OPC_Scope, 13,
19563     OPC_CheckPatternPredicate, 105,
19564     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19565     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19566                   MVT::v4f32, 2, 0, 1,
19567    36,
19568     OPC_CheckPatternPredicate, 106,
19569     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19570     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19571                   MVT::v8i16, 2, 0, 1,
19572     OPC_EmitInteger, MVT::i32, 98|128,2,
19573     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19574                   MVT::v8i16, 2, 2, 3,
19575     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19576     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19577                   MVT::v4f32, 2, 4, 5,
19578    0,
19579   52, MVT::v2f64,
19580    OPC_Scope, 13,
19581     OPC_CheckPatternPredicate, 105,
19582     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19583     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19584                   MVT::v2f64, 2, 0, 1,
19585    35,
19586     OPC_CheckPatternPredicate, 106,
19587     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19588     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19589                   MVT::v8i16, 2, 0, 1,
19590     OPC_EmitInteger, MVT::i32, 54,
19591     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19592                   MVT::v8i16, 2, 2, 3,
19593     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19594     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19595                   MVT::v2f64, 2, 4, 5,
19596    0,
19597   0,
19598  20|128,2,
19599   OPC_CheckChild0Type, MVT::v4f32,
19600   OPC_SwitchType , 13, MVT::v4i32,
19601    OPC_CheckPatternPredicate, 27,
19602    OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19603    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19604                  MVT::v4i32, 2, 0, 1,
19605   52, MVT::v16i8,
19606    OPC_Scope, 13,
19607     OPC_CheckPatternPredicate, 105,
19608     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19609     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19610                   MVT::v16i8, 2, 0, 1,
19611    35,
19612     OPC_CheckPatternPredicate, 106,
19613     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19614     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19615                   MVT::v16i8, 2, 0, 1,
19616     OPC_EmitInteger, MVT::i32, 54,
19617     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
19618                   MVT::v16i8, 2, 2, 3,
19619     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19620     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19621                   MVT::v16i8, 2, 4, 5,
19622    0,
19623   53, MVT::v8i16,
19624    OPC_Scope, 13,
19625     OPC_CheckPatternPredicate, 105,
19626     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19627     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19628                   MVT::v8i16, 2, 0, 1,
19629    36,
19630     OPC_CheckPatternPredicate, 106,
19631     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19632     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19633                   MVT::v8i16, 2, 0, 1,
19634     OPC_EmitInteger, MVT::i32, 98|128,2,
19635     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19636                   MVT::v8i16, 2, 2, 3,
19637     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19638     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19639                   MVT::v8i16, 2, 4, 5,
19640    0,
19641   53, MVT::v2i64,
19642    OPC_Scope, 13,
19643     OPC_CheckPatternPredicate, 105,
19644     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19645     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19646                   MVT::v2i64, 2, 0, 1,
19647    36,
19648     OPC_CheckPatternPredicate, 106,
19649     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19650     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19651                   MVT::v4i32, 2, 0, 1,
19652     OPC_EmitInteger, MVT::i32, 98|128,2,
19653     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19654                   MVT::v4i32, 2, 2, 3,
19655     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19656     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19657                   MVT::v2i64, 2, 4, 5,
19658    0,
19659   53, MVT::v2f64,
19660    OPC_Scope, 13,
19661     OPC_CheckPatternPredicate, 105,
19662     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19663     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19664                   MVT::v2f64, 2, 0, 1,
19665    36,
19666     OPC_CheckPatternPredicate, 106,
19667     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19668     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19669                   MVT::v4i32, 2, 0, 1,
19670     OPC_EmitInteger, MVT::i32, 98|128,2,
19671     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19672                   MVT::v4i32, 2, 2, 3,
19673     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19674     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19675                   MVT::v2f64, 2, 4, 5,
19676    0,
19677   36, MVT::v8f16,
19678    OPC_CheckPatternPredicate, 106,
19679    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19680    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19681                  MVT::v8i16, 2, 0, 1,
19682    OPC_EmitInteger, MVT::i32, 98|128,2,
19683    OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19684                  MVT::v8i16, 2, 2, 3,
19685    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19686    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19687                  MVT::v8f16, 2, 4, 5,
19688   0,
19689  41|128,2,
19690   OPC_CheckChild0Type, MVT::v2f64,
19691   OPC_SwitchType , 13, MVT::v2i64,
19692    OPC_CheckPatternPredicate, 27,
19693    OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19694    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19695                  MVT::v2i64, 2, 0, 1,
19696   75, MVT::v16i8,
19697    OPC_Scope, 13,
19698     OPC_CheckPatternPredicate, 105,
19699     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19700     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19701                   MVT::v16i8, 2, 0, 1,
19702    58,
19703     OPC_CheckPatternPredicate, 106,
19704     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19705     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19706                   MVT::v16i8, 2, 0, 1,
19707     OPC_EmitInteger, MVT::i32, 54,
19708     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
19709                   MVT::v16i8, 2, 2, 3,
19710     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19711     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19712                   MVT::v4i32, 2, 4, 5,
19713     OPC_EmitInteger, MVT::i32, 98|128,2,
19714     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19715                   MVT::v4i32, 2, 6, 7,
19716     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19717     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19718                   MVT::v16i8, 2, 8, 9,
19719    0,
19720   52, MVT::v8i16,
19721    OPC_Scope, 13,
19722     OPC_CheckPatternPredicate, 105,
19723     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19724     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19725                   MVT::v8i16, 2, 0, 1,
19726    35,
19727     OPC_CheckPatternPredicate, 106,
19728     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19729     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19730                   MVT::v8i16, 2, 0, 1,
19731     OPC_EmitInteger, MVT::i32, 54,
19732     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19733                   MVT::v8i16, 2, 2, 3,
19734     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19735     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19736                   MVT::v8i16, 2, 4, 5,
19737    0,
19738   53, MVT::v4i32,
19739    OPC_Scope, 13,
19740     OPC_CheckPatternPredicate, 105,
19741     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19742     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19743                   MVT::v4i32, 2, 0, 1,
19744    36,
19745     OPC_CheckPatternPredicate, 106,
19746     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19747     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19748                   MVT::v4i32, 2, 0, 1,
19749     OPC_EmitInteger, MVT::i32, 98|128,2,
19750     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19751                   MVT::v4i32, 2, 2, 3,
19752     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19753     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19754                   MVT::v4i32, 2, 4, 5,
19755    0,
19756   53, MVT::v4f32,
19757    OPC_Scope, 13,
19758     OPC_CheckPatternPredicate, 105,
19759     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19760     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19761                   MVT::v4f32, 2, 0, 1,
19762    36,
19763     OPC_CheckPatternPredicate, 106,
19764     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19765     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19766                   MVT::v4i32, 2, 0, 1,
19767     OPC_EmitInteger, MVT::i32, 98|128,2,
19768     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19769                   MVT::v4i32, 2, 2, 3,
19770     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19771     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19772                   MVT::v4f32, 2, 4, 5,
19773    0,
19774   35, MVT::v8f16,
19775    OPC_CheckPatternPredicate, 106,
19776    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19777    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19778                  MVT::v8i16, 2, 0, 1,
19779    OPC_EmitInteger, MVT::i32, 54,
19780    OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19781                  MVT::v8i16, 2, 2, 3,
19782    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19783    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19784                  MVT::v8f16, 2, 4, 5,
19785   0,
19786  36|128,2,
19787   OPC_CheckChild0Type, MVT::v8i16,
19788   OPC_SwitchType , 53, MVT::v16i8,
19789    OPC_Scope, 13,
19790     OPC_CheckPatternPredicate, 105,
19791     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19792     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19793                   MVT::v16i8, 2, 0, 1,
19794    36,
19795     OPC_CheckPatternPredicate, 106,
19796     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19797     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19798                   MVT::v16i8, 2, 0, 1,
19799     OPC_EmitInteger, MVT::i32, 98|128,2,
19800     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
19801                   MVT::v16i8, 2, 2, 3,
19802     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19803     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19804                   MVT::v16i8, 2, 4, 5,
19805    0,
19806   53, MVT::v4i32,
19807    OPC_Scope, 13,
19808     OPC_CheckPatternPredicate, 105,
19809     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19810     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19811                   MVT::v4i32, 2, 0, 1,
19812    36,
19813     OPC_CheckPatternPredicate, 106,
19814     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19815     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19816                   MVT::v8i16, 2, 0, 1,
19817     OPC_EmitInteger, MVT::i32, 98|128,2,
19818     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19819                   MVT::v8i16, 2, 2, 3,
19820     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19821     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19822                   MVT::v4i32, 2, 4, 5,
19823    0,
19824   52, MVT::v2i64,
19825    OPC_Scope, 13,
19826     OPC_CheckPatternPredicate, 105,
19827     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19828     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19829                   MVT::v2i64, 2, 0, 1,
19830    35,
19831     OPC_CheckPatternPredicate, 106,
19832     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19833     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19834                   MVT::v8i16, 2, 0, 1,
19835     OPC_EmitInteger, MVT::i32, 54,
19836     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19837                   MVT::v8i16, 2, 2, 3,
19838     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19839     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19840                   MVT::v2i64, 2, 4, 5,
19841    0,
19842   13, MVT::v8f16,
19843    OPC_CheckPatternPredicate, 27,
19844    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19845    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19846                  MVT::v8f16, 2, 0, 1,
19847   53, MVT::v4f32,
19848    OPC_Scope, 13,
19849     OPC_CheckPatternPredicate, 105,
19850     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19851     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19852                   MVT::v4f32, 2, 0, 1,
19853    36,
19854     OPC_CheckPatternPredicate, 106,
19855     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19856     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19857                   MVT::v8i16, 2, 0, 1,
19858     OPC_EmitInteger, MVT::i32, 98|128,2,
19859     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19860                   MVT::v8i16, 2, 2, 3,
19861     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19862     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19863                   MVT::v4f32, 2, 4, 5,
19864    0,
19865   52, MVT::v2f64,
19866    OPC_Scope, 13,
19867     OPC_CheckPatternPredicate, 105,
19868     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19869     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19870                   MVT::v2f64, 2, 0, 1,
19871    35,
19872     OPC_CheckPatternPredicate, 106,
19873     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19874     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19875                   MVT::v8i16, 2, 0, 1,
19876     OPC_EmitInteger, MVT::i32, 54,
19877     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19878                   MVT::v8i16, 2, 2, 3,
19879     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19880     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19881                   MVT::v2f64, 2, 4, 5,
19882    0,
19883   0,
19884  20|128,2,
19885   OPC_CheckChild0Type, MVT::v4i32,
19886   OPC_SwitchType , 52, MVT::v16i8,
19887    OPC_Scope, 13,
19888     OPC_CheckPatternPredicate, 105,
19889     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19890     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19891                   MVT::v16i8, 2, 0, 1,
19892    35,
19893     OPC_CheckPatternPredicate, 106,
19894     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19895     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19896                   MVT::v16i8, 2, 0, 1,
19897     OPC_EmitInteger, MVT::i32, 54,
19898     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
19899                   MVT::v16i8, 2, 2, 3,
19900     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19901     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19902                   MVT::v16i8, 2, 4, 5,
19903    0,
19904   53, MVT::v8i16,
19905    OPC_Scope, 13,
19906     OPC_CheckPatternPredicate, 105,
19907     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19908     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19909                   MVT::v8i16, 2, 0, 1,
19910    36,
19911     OPC_CheckPatternPredicate, 106,
19912     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19913     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19914                   MVT::v8i16, 2, 0, 1,
19915     OPC_EmitInteger, MVT::i32, 98|128,2,
19916     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19917                   MVT::v8i16, 2, 2, 3,
19918     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19919     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19920                   MVT::v8i16, 2, 4, 5,
19921    0,
19922   53, MVT::v2i64,
19923    OPC_Scope, 13,
19924     OPC_CheckPatternPredicate, 105,
19925     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19926     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19927                   MVT::v2i64, 2, 0, 1,
19928    36,
19929     OPC_CheckPatternPredicate, 106,
19930     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19931     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19932                   MVT::v4i32, 2, 0, 1,
19933     OPC_EmitInteger, MVT::i32, 98|128,2,
19934     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19935                   MVT::v4i32, 2, 2, 3,
19936     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19937     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19938                   MVT::v2i64, 2, 4, 5,
19939    0,
19940   13, MVT::v4f32,
19941    OPC_CheckPatternPredicate, 27,
19942    OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19943    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19944                  MVT::v4f32, 2, 0, 1,
19945   53, MVT::v2f64,
19946    OPC_Scope, 13,
19947     OPC_CheckPatternPredicate, 105,
19948     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19949     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19950                   MVT::v2f64, 2, 0, 1,
19951    36,
19952     OPC_CheckPatternPredicate, 106,
19953     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19954     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19955                   MVT::v4i32, 2, 0, 1,
19956     OPC_EmitInteger, MVT::i32, 98|128,2,
19957     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19958                   MVT::v4i32, 2, 2, 3,
19959     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
19960     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19961                   MVT::v2f64, 2, 4, 5,
19962    0,
19963   36, MVT::v8f16,
19964    OPC_CheckPatternPredicate, 106,
19965    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19966    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19967                  MVT::v8i16, 2, 0, 1,
19968    OPC_EmitInteger, MVT::i32, 98|128,2,
19969    OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
19970                  MVT::v8i16, 2, 2, 3,
19971    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
19972    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19973                  MVT::v8f16, 2, 4, 5,
19974   0,
19975  41|128,2,
19976   OPC_CheckChild0Type, MVT::v2i64,
19977   OPC_SwitchType , 75, MVT::v16i8,
19978    OPC_Scope, 13,
19979     OPC_CheckPatternPredicate, 105,
19980     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19981     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19982                   MVT::v16i8, 2, 0, 1,
19983    58,
19984     OPC_CheckPatternPredicate, 106,
19985     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19986     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19987                   MVT::v16i8, 2, 0, 1,
19988     OPC_EmitInteger, MVT::i32, 54,
19989     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
19990                   MVT::v16i8, 2, 2, 3,
19991     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
19992     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19993                   MVT::v4i32, 2, 4, 5,
19994     OPC_EmitInteger, MVT::i32, 98|128,2,
19995     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
19996                   MVT::v4i32, 2, 6, 7,
19997     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
19998     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
19999                   MVT::v16i8, 2, 8, 9,
20000    0,
20001   52, MVT::v8i16,
20002    OPC_Scope, 13,
20003     OPC_CheckPatternPredicate, 105,
20004     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20005     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20006                   MVT::v8i16, 2, 0, 1,
20007    35,
20008     OPC_CheckPatternPredicate, 106,
20009     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20010     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20011                   MVT::v8i16, 2, 0, 1,
20012     OPC_EmitInteger, MVT::i32, 54,
20013     OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
20014                   MVT::v8i16, 2, 2, 3,
20015     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20016     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20017                   MVT::v8i16, 2, 4, 5,
20018    0,
20019   53, MVT::v4i32,
20020    OPC_Scope, 13,
20021     OPC_CheckPatternPredicate, 105,
20022     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20023     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20024                   MVT::v4i32, 2, 0, 1,
20025    36,
20026     OPC_CheckPatternPredicate, 106,
20027     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20028     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20029                   MVT::v4i32, 2, 0, 1,
20030     OPC_EmitInteger, MVT::i32, 98|128,2,
20031     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
20032                   MVT::v4i32, 2, 2, 3,
20033     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20034     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20035                   MVT::v4i32, 2, 4, 5,
20036    0,
20037   13, MVT::v2f64,
20038    OPC_CheckPatternPredicate, 27,
20039    OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
20040    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20041                  MVT::v2f64, 2, 0, 1,
20042   53, MVT::v4f32,
20043    OPC_Scope, 13,
20044     OPC_CheckPatternPredicate, 105,
20045     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20046     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20047                   MVT::v4f32, 2, 0, 1,
20048    36,
20049     OPC_CheckPatternPredicate, 106,
20050     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20051     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20052                   MVT::v4i32, 2, 0, 1,
20053     OPC_EmitInteger, MVT::i32, 98|128,2,
20054     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
20055                   MVT::v4i32, 2, 2, 3,
20056     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20057     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20058                   MVT::v4f32, 2, 4, 5,
20059    0,
20060   35, MVT::v8f16,
20061    OPC_CheckPatternPredicate, 106,
20062    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20063    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20064                  MVT::v8i16, 2, 0, 1,
20065    OPC_EmitInteger, MVT::i32, 54,
20066    OPC_EmitNode1, TARGET_VAL(Mips::SHF_H), 0,
20067                  MVT::v8i16, 2, 2, 3,
20068    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20069    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20070                  MVT::v8f16, 2, 4, 5,
20071   0,
20072  103|128,2,
20073   OPC_CheckChild0Type, MVT::v16i8,
20074   OPC_SwitchType , 53, MVT::v8i16,
20075    OPC_Scope, 13,
20076     OPC_CheckPatternPredicate, 105,
20077     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20078     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20079                   MVT::v8i16, 2, 0, 1,
20080    36,
20081     OPC_CheckPatternPredicate, 106,
20082     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
20083     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20084                   MVT::v16i8, 2, 0, 1,
20085     OPC_EmitInteger, MVT::i32, 98|128,2,
20086     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
20087                   MVT::v16i8, 2, 2, 3,
20088     OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20089     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20090                   MVT::v8i16, 2, 4, 5,
20091    0,
20092   52, MVT::v4i32,
20093    OPC_Scope, 13,
20094     OPC_CheckPatternPredicate, 105,
20095     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20096     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20097                   MVT::v4i32, 2, 0, 1,
20098    35,
20099     OPC_CheckPatternPredicate, 106,
20100     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
20101     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20102                   MVT::v16i8, 2, 0, 1,
20103     OPC_EmitInteger, MVT::i32, 54,
20104     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
20105                   MVT::v16i8, 2, 2, 3,
20106     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20107     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20108                   MVT::v4i32, 2, 4, 5,
20109    0,
20110   75, MVT::v2i64,
20111    OPC_Scope, 13,
20112     OPC_CheckPatternPredicate, 105,
20113     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
20114     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20115                   MVT::v2i64, 2, 0, 1,
20116    58,
20117     OPC_CheckPatternPredicate, 106,
20118     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
20119     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20120                   MVT::v16i8, 2, 0, 1,
20121     OPC_EmitInteger, MVT::i32, 54,
20122     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
20123                   MVT::v16i8, 2, 2, 3,
20124     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20125     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20126                   MVT::v4i32, 2, 4, 5,
20127     OPC_EmitInteger, MVT::i32, 98|128,2,
20128     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
20129                   MVT::v4i32, 2, 6, 7,
20130     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
20131     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20132                   MVT::v2i64, 2, 8, 9,
20133    0,
20134   52, MVT::v4f32,
20135    OPC_Scope, 13,
20136     OPC_CheckPatternPredicate, 105,
20137     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20138     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20139                   MVT::v4f32, 2, 0, 1,
20140    35,
20141     OPC_CheckPatternPredicate, 106,
20142     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
20143     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20144                   MVT::v16i8, 2, 0, 1,
20145     OPC_EmitInteger, MVT::i32, 54,
20146     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
20147                   MVT::v16i8, 2, 2, 3,
20148     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20149     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20150                   MVT::v4f32, 2, 4, 5,
20151    0,
20152   75, MVT::v2f64,
20153    OPC_Scope, 13,
20154     OPC_CheckPatternPredicate, 105,
20155     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
20156     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20157                   MVT::v2f64, 2, 0, 1,
20158    58,
20159     OPC_CheckPatternPredicate, 106,
20160     OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
20161     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20162                   MVT::v16i8, 2, 0, 1,
20163     OPC_EmitInteger, MVT::i32, 54,
20164     OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
20165                   MVT::v16i8, 2, 2, 3,
20166     OPC_EmitStringInteger, MVT::i32, Mips::MSA128WRegClassID,
20167     OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20168                   MVT::v4i32, 2, 4, 5,
20169     OPC_EmitInteger, MVT::i32, 98|128,2,
20170     OPC_EmitNode1, TARGET_VAL(Mips::SHF_W), 0,
20171                   MVT::v4i32, 2, 6, 7,
20172     OPC_EmitStringInteger, MVT::i32, Mips::MSA128DRegClassID,
20173     OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20174                   MVT::v2f64, 2, 8, 9,
20175    0,
20176   36, MVT::v8f16,
20177    OPC_CheckPatternPredicate, 106,
20178    OPC_EmitStringInteger, MVT::i32, Mips::MSA128BRegClassID,
20179    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20180                  MVT::v16i8, 2, 0, 1,
20181    OPC_EmitInteger, MVT::i32, 98|128,2,
20182    OPC_EmitNode1, TARGET_VAL(Mips::SHF_B), 0,
20183                  MVT::v16i8, 2, 2, 3,
20184    OPC_EmitStringInteger, MVT::i32, Mips::MSA128HRegClassID,
20185    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
20186                  MVT::v8f16, 2, 4, 5,
20187   0,
20188  0,
20189 81, TARGET_VAL(ISD::CTPOP),
20190  OPC_RecordChild0,
20191  OPC_SwitchType , 11, MVT::i32,
20192   OPC_CheckChild0Type, MVT::i32,
20193   OPC_CheckPatternPredicate, 31,
20194   OPC_MorphNodeTo1, TARGET_VAL(Mips::POP), 0,
20195                 MVT::i32, 1, 0,
20196  11, MVT::i64,
20197   OPC_CheckChild0Type, MVT::i64,
20198   OPC_CheckPatternPredicate, 31,
20199   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPOP), 0,
20200                 MVT::i64, 1, 0,
20201  11, MVT::v16i8,
20202   OPC_CheckChild0Type, MVT::v16i8,
20203   OPC_CheckPatternPredicate, 26,
20204   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCNT_B), 0,
20205                 MVT::v16i8, 1, 0,
20206  11, MVT::v8i16,
20207   OPC_CheckChild0Type, MVT::v8i16,
20208   OPC_CheckPatternPredicate, 26,
20209   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCNT_H), 0,
20210                 MVT::v8i16, 1, 0,
20211  11, MVT::v4i32,
20212   OPC_CheckChild0Type, MVT::v4i32,
20213   OPC_CheckPatternPredicate, 26,
20214   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCNT_W), 0,
20215                 MVT::v4i32, 1, 0,
20216  11, MVT::v2i64,
20217   OPC_CheckChild0Type, MVT::v2i64,
20218   OPC_CheckPatternPredicate, 26,
20219   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCNT_D), 0,
20220                 MVT::v2i64, 1, 0,
20221  0,
20222 50|128,1, TARGET_VAL(MipsISD::CMovFP_T),
20223  OPC_CaptureGlueInput,
20224  OPC_RecordChild0,
20225  OPC_RecordChild1,
20226  OPC_RecordChild2,
20227  OPC_SwitchType , 38, MVT::i32,
20228   OPC_Scope, 11,
20229    OPC_CheckPatternPredicate, 107,
20230    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_I), 0|OPFL_GlueInput,
20231                  MVT::i32, 3, 0, 1, 2,
20232   11,
20233    OPC_CheckPatternPredicate, 10,
20234    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_I_MM), 0|OPFL_GlueInput,
20235                  MVT::i32, 3, 0, 1, 2,
20236   11,
20237    OPC_CheckPatternPredicate, 38,
20238    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_T_I), 0|OPFL_GlueInput,
20239                  MVT::i32, 3, 1, 0, 2,
20240   0,
20241  26, MVT::i64,
20242   OPC_Scope, 11,
20243    OPC_CheckPatternPredicate, 108,
20244    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_I64), 0|OPFL_GlueInput,
20245                  MVT::i64, 3, 0, 1, 2,
20246   11,
20247    OPC_CheckPatternPredicate, 38,
20248    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_T_I64), 0|OPFL_GlueInput,
20249                  MVT::i64, 3, 1, 0, 2,
20250   0,
20251  38, MVT::f32,
20252   OPC_Scope, 11,
20253    OPC_CheckPatternPredicate, 107,
20254    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_S), 0|OPFL_GlueInput,
20255                  MVT::f32, 3, 0, 1, 2,
20256   11,
20257    OPC_CheckPatternPredicate, 10,
20258    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_S_MM), 0|OPFL_GlueInput,
20259                  MVT::f32, 3, 0, 1, 2,
20260   11,
20261    OPC_CheckPatternPredicate, 38,
20262    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_T_S), 0|OPFL_GlueInput,
20263                  MVT::f32, 3, 1, 0, 2,
20264   0,
20265  62, MVT::f64,
20266   OPC_Scope, 11,
20267    OPC_CheckPatternPredicate, 109,
20268    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_D32), 0|OPFL_GlueInput,
20269                  MVT::f64, 3, 0, 1, 2,
20270   11,
20271    OPC_CheckPatternPredicate, 110,
20272    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_D64), 0|OPFL_GlueInput,
20273                  MVT::f64, 3, 0, 1, 2,
20274   11,
20275    OPC_CheckPatternPredicate, 111,
20276    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVT_D32_MM), 0|OPFL_GlueInput,
20277                  MVT::f64, 3, 0, 1, 2,
20278   11,
20279    OPC_CheckPatternPredicate, 43,
20280    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_T_D32), 0|OPFL_GlueInput,
20281                  MVT::f64, 3, 1, 0, 2,
20282   11,
20283    OPC_CheckPatternPredicate, 44,
20284    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_T_D64), 0|OPFL_GlueInput,
20285                  MVT::f64, 3, 1, 0, 2,
20286   0,
20287  0,
20288 50|128,1, TARGET_VAL(MipsISD::CMovFP_F),
20289  OPC_CaptureGlueInput,
20290  OPC_RecordChild0,
20291  OPC_RecordChild1,
20292  OPC_RecordChild2,
20293  OPC_SwitchType , 38, MVT::i32,
20294   OPC_Scope, 11,
20295    OPC_CheckPatternPredicate, 107,
20296    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_I), 0|OPFL_GlueInput,
20297                  MVT::i32, 3, 0, 1, 2,
20298   11,
20299    OPC_CheckPatternPredicate, 10,
20300    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_I_MM), 0|OPFL_GlueInput,
20301                  MVT::i32, 3, 0, 1, 2,
20302   11,
20303    OPC_CheckPatternPredicate, 38,
20304    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_F_I), 0|OPFL_GlueInput,
20305                  MVT::i32, 3, 1, 0, 2,
20306   0,
20307  26, MVT::i64,
20308   OPC_Scope, 11,
20309    OPC_CheckPatternPredicate, 108,
20310    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_I64), 0|OPFL_GlueInput,
20311                  MVT::i64, 3, 0, 1, 2,
20312   11,
20313    OPC_CheckPatternPredicate, 38,
20314    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_F_I64), 0|OPFL_GlueInput,
20315                  MVT::i64, 3, 1, 0, 2,
20316   0,
20317  38, MVT::f32,
20318   OPC_Scope, 11,
20319    OPC_CheckPatternPredicate, 107,
20320    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_S), 0|OPFL_GlueInput,
20321                  MVT::f32, 3, 0, 1, 2,
20322   11,
20323    OPC_CheckPatternPredicate, 10,
20324    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_S_MM), 0|OPFL_GlueInput,
20325                  MVT::f32, 3, 0, 1, 2,
20326   11,
20327    OPC_CheckPatternPredicate, 38,
20328    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_F_S), 0|OPFL_GlueInput,
20329                  MVT::f32, 3, 1, 0, 2,
20330   0,
20331  62, MVT::f64,
20332   OPC_Scope, 11,
20333    OPC_CheckPatternPredicate, 109,
20334    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_D32), 0|OPFL_GlueInput,
20335                  MVT::f64, 3, 0, 1, 2,
20336   11,
20337    OPC_CheckPatternPredicate, 110,
20338    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_D64), 0|OPFL_GlueInput,
20339                  MVT::f64, 3, 0, 1, 2,
20340   11,
20341    OPC_CheckPatternPredicate, 111,
20342    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOVF_D32_MM), 0|OPFL_GlueInput,
20343                  MVT::f64, 3, 0, 1, 2,
20344   11,
20345    OPC_CheckPatternPredicate, 43,
20346    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_F_D32), 0|OPFL_GlueInput,
20347                  MVT::f64, 3, 1, 0, 2,
20348   11,
20349    OPC_CheckPatternPredicate, 44,
20350    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSELECTFP_F_D64), 0|OPFL_GlueInput,
20351                  MVT::f64, 3, 1, 0, 2,
20352   0,
20353  0,
20354 42, TARGET_VAL(ISD::MULHS),
20355  OPC_RecordChild0,
20356  OPC_RecordChild1,
20357  OPC_SwitchType , 24, MVT::i32,
20358   OPC_Scope, 10,
20359    OPC_CheckPatternPredicate, 33,
20360    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUH), 0,
20361                  MVT::i32, 2, 0, 1,
20362   10,
20363    OPC_CheckPatternPredicate, 16,
20364    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUH_MMR6), 0,
20365                  MVT::i32, 2, 0, 1,
20366   0,
20367  10, MVT::i64,
20368   OPC_CheckPatternPredicate, 55,
20369   OPC_MorphNodeTo1, TARGET_VAL(Mips::DMUH), 0,
20370                 MVT::i64, 2, 0, 1,
20371  0,
20372 42, TARGET_VAL(ISD::MULHU),
20373  OPC_RecordChild0,
20374  OPC_RecordChild1,
20375  OPC_SwitchType , 24, MVT::i32,
20376   OPC_Scope, 10,
20377    OPC_CheckPatternPredicate, 33,
20378    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUHU), 0,
20379                  MVT::i32, 2, 0, 1,
20380   10,
20381    OPC_CheckPatternPredicate, 16,
20382    OPC_MorphNodeTo1, TARGET_VAL(Mips::MUHU_MMR6), 0,
20383                  MVT::i32, 2, 0, 1,
20384   0,
20385  10, MVT::i64,
20386   OPC_CheckPatternPredicate, 55,
20387   OPC_MorphNodeTo1, TARGET_VAL(Mips::DMUHU), 0,
20388                 MVT::i64, 2, 0, 1,
20389  0,
20390 14, TARGET_VAL(MipsISD::DivRem16),
20391  OPC_RecordChild0,
20392  OPC_CheckChild0Type, MVT::i32,
20393  OPC_RecordChild1,
20394  OPC_CheckPatternPredicate, 15,
20395  OPC_MorphNodeTo1, TARGET_VAL(Mips::DivRxRy16), 0|OPFL_GlueOutput,
20396                MVT::i32, 2, 0, 1,
20397 14, TARGET_VAL(MipsISD::DivRemU16),
20398  OPC_RecordChild0,
20399  OPC_CheckChild0Type, MVT::i32,
20400  OPC_RecordChild1,
20401  OPC_CheckPatternPredicate, 15,
20402  OPC_MorphNodeTo1, TARGET_VAL(Mips::DivuRxRy16), 0|OPFL_GlueOutput,
20403                MVT::i32, 2, 0, 1,
20404 32, TARGET_VAL(MipsISD::MULSAQ_S_W_PH),
20405  OPC_RecordNode,
20406  OPC_RecordChild1,
20407  OPC_RecordChild2,
20408  OPC_RecordChild3,
20409  OPC_Scope, 12,
20410   OPC_CheckPatternPredicate, 28,
20411   OPC_EmitMergeInputChains1_0,
20412   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULSAQ_S_W_PH), 0|OPFL_Chain,
20413                 MVT::Untyped, 3, 1, 2, 3,
20414  12,
20415   OPC_CheckPatternPredicate, 47,
20416   OPC_EmitMergeInputChains1_0,
20417   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULSAQ_S_W_PH_MM), 0|OPFL_Chain,
20418                 MVT::Untyped, 3, 1, 2, 3,
20419  0,
20420 32, TARGET_VAL(MipsISD::MAQ_S_W_PHL),
20421  OPC_RecordNode,
20422  OPC_RecordChild1,
20423  OPC_RecordChild2,
20424  OPC_RecordChild3,
20425  OPC_Scope, 12,
20426   OPC_CheckPatternPredicate, 28,
20427   OPC_EmitMergeInputChains1_0,
20428   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_S_W_PHL), 0|OPFL_Chain,
20429                 MVT::Untyped, 3, 1, 2, 3,
20430  12,
20431   OPC_CheckPatternPredicate, 47,
20432   OPC_EmitMergeInputChains1_0,
20433   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_S_W_PHL_MM), 0|OPFL_Chain,
20434                 MVT::Untyped, 3, 1, 2, 3,
20435  0,
20436 32, TARGET_VAL(MipsISD::MAQ_S_W_PHR),
20437  OPC_RecordNode,
20438  OPC_RecordChild1,
20439  OPC_RecordChild2,
20440  OPC_RecordChild3,
20441  OPC_Scope, 12,
20442   OPC_CheckPatternPredicate, 28,
20443   OPC_EmitMergeInputChains1_0,
20444   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_S_W_PHR), 0|OPFL_Chain,
20445                 MVT::Untyped, 3, 1, 2, 3,
20446  12,
20447   OPC_CheckPatternPredicate, 47,
20448   OPC_EmitMergeInputChains1_0,
20449   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_S_W_PHR_MM), 0|OPFL_Chain,
20450                 MVT::Untyped, 3, 1, 2, 3,
20451  0,
20452 32, TARGET_VAL(MipsISD::MAQ_SA_W_PHL),
20453  OPC_RecordNode,
20454  OPC_RecordChild1,
20455  OPC_RecordChild2,
20456  OPC_RecordChild3,
20457  OPC_Scope, 12,
20458   OPC_CheckPatternPredicate, 28,
20459   OPC_EmitMergeInputChains1_0,
20460   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_SA_W_PHL), 0|OPFL_Chain,
20461                 MVT::Untyped, 3, 1, 2, 3,
20462  12,
20463   OPC_CheckPatternPredicate, 47,
20464   OPC_EmitMergeInputChains1_0,
20465   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_SA_W_PHL_MM), 0|OPFL_Chain,
20466                 MVT::Untyped, 3, 1, 2, 3,
20467  0,
20468 32, TARGET_VAL(MipsISD::MAQ_SA_W_PHR),
20469  OPC_RecordNode,
20470  OPC_RecordChild1,
20471  OPC_RecordChild2,
20472  OPC_RecordChild3,
20473  OPC_Scope, 12,
20474   OPC_CheckPatternPredicate, 28,
20475   OPC_EmitMergeInputChains1_0,
20476   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_SA_W_PHR), 0|OPFL_Chain,
20477                 MVT::Untyped, 3, 1, 2, 3,
20478  12,
20479   OPC_CheckPatternPredicate, 47,
20480   OPC_EmitMergeInputChains1_0,
20481   OPC_MorphNodeTo1, TARGET_VAL(Mips::MAQ_SA_W_PHR_MM), 0|OPFL_Chain,
20482                 MVT::Untyped, 3, 1, 2, 3,
20483  0,
20484 29, TARGET_VAL(MipsISD::DPAU_H_QBL),
20485  OPC_RecordChild0,
20486  OPC_RecordChild1,
20487  OPC_RecordChild2,
20488  OPC_Scope, 11,
20489   OPC_CheckPatternPredicate, 28,
20490   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAU_H_QBL), 0,
20491                 MVT::Untyped, 3, 0, 1, 2,
20492  11,
20493   OPC_CheckPatternPredicate, 47,
20494   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAU_H_QBL_MM), 0,
20495                 MVT::Untyped, 3, 0, 1, 2,
20496  0,
20497 29, TARGET_VAL(MipsISD::DPAU_H_QBR),
20498  OPC_RecordChild0,
20499  OPC_RecordChild1,
20500  OPC_RecordChild2,
20501  OPC_Scope, 11,
20502   OPC_CheckPatternPredicate, 28,
20503   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAU_H_QBR), 0,
20504                 MVT::Untyped, 3, 0, 1, 2,
20505  11,
20506   OPC_CheckPatternPredicate, 47,
20507   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAU_H_QBR_MM), 0,
20508                 MVT::Untyped, 3, 0, 1, 2,
20509  0,
20510 29, TARGET_VAL(MipsISD::DPSU_H_QBL),
20511  OPC_RecordChild0,
20512  OPC_RecordChild1,
20513  OPC_RecordChild2,
20514  OPC_Scope, 11,
20515   OPC_CheckPatternPredicate, 28,
20516   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSU_H_QBL), 0,
20517                 MVT::Untyped, 3, 0, 1, 2,
20518  11,
20519   OPC_CheckPatternPredicate, 47,
20520   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSU_H_QBL_MM), 0,
20521                 MVT::Untyped, 3, 0, 1, 2,
20522  0,
20523 29, TARGET_VAL(MipsISD::DPSU_H_QBR),
20524  OPC_RecordChild0,
20525  OPC_RecordChild1,
20526  OPC_RecordChild2,
20527  OPC_Scope, 11,
20528   OPC_CheckPatternPredicate, 28,
20529   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSU_H_QBR), 0,
20530                 MVT::Untyped, 3, 0, 1, 2,
20531  11,
20532   OPC_CheckPatternPredicate, 47,
20533   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSU_H_QBR_MM), 0,
20534                 MVT::Untyped, 3, 0, 1, 2,
20535  0,
20536 32, TARGET_VAL(MipsISD::DPAQ_S_W_PH),
20537  OPC_RecordNode,
20538  OPC_RecordChild1,
20539  OPC_RecordChild2,
20540  OPC_RecordChild3,
20541  OPC_Scope, 12,
20542   OPC_CheckPatternPredicate, 28,
20543   OPC_EmitMergeInputChains1_0,
20544   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQ_S_W_PH), 0|OPFL_Chain,
20545                 MVT::Untyped, 3, 1, 2, 3,
20546  12,
20547   OPC_CheckPatternPredicate, 47,
20548   OPC_EmitMergeInputChains1_0,
20549   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQ_S_W_PH_MM), 0|OPFL_Chain,
20550                 MVT::Untyped, 3, 1, 2, 3,
20551  0,
20552 32, TARGET_VAL(MipsISD::DPSQ_S_W_PH),
20553  OPC_RecordNode,
20554  OPC_RecordChild1,
20555  OPC_RecordChild2,
20556  OPC_RecordChild3,
20557  OPC_Scope, 12,
20558   OPC_CheckPatternPredicate, 28,
20559   OPC_EmitMergeInputChains1_0,
20560   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQ_S_W_PH), 0|OPFL_Chain,
20561                 MVT::Untyped, 3, 1, 2, 3,
20562  12,
20563   OPC_CheckPatternPredicate, 47,
20564   OPC_EmitMergeInputChains1_0,
20565   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQ_S_W_PH_MM), 0|OPFL_Chain,
20566                 MVT::Untyped, 3, 1, 2, 3,
20567  0,
20568 32, TARGET_VAL(MipsISD::DPAQ_SA_L_W),
20569  OPC_RecordNode,
20570  OPC_RecordChild1,
20571  OPC_RecordChild2,
20572  OPC_RecordChild3,
20573  OPC_Scope, 12,
20574   OPC_CheckPatternPredicate, 28,
20575   OPC_EmitMergeInputChains1_0,
20576   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQ_SA_L_W), 0|OPFL_Chain,
20577                 MVT::Untyped, 3, 1, 2, 3,
20578  12,
20579   OPC_CheckPatternPredicate, 47,
20580   OPC_EmitMergeInputChains1_0,
20581   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQ_SA_L_W_MM), 0|OPFL_Chain,
20582                 MVT::Untyped, 3, 1, 2, 3,
20583  0,
20584 32, TARGET_VAL(MipsISD::DPSQ_SA_L_W),
20585  OPC_RecordNode,
20586  OPC_RecordChild1,
20587  OPC_RecordChild2,
20588  OPC_RecordChild3,
20589  OPC_Scope, 12,
20590   OPC_CheckPatternPredicate, 28,
20591   OPC_EmitMergeInputChains1_0,
20592   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQ_SA_L_W), 0|OPFL_Chain,
20593                 MVT::Untyped, 3, 1, 2, 3,
20594  12,
20595   OPC_CheckPatternPredicate, 47,
20596   OPC_EmitMergeInputChains1_0,
20597   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQ_SA_L_W_MM), 0|OPFL_Chain,
20598                 MVT::Untyped, 3, 1, 2, 3,
20599  0,
20600 29, TARGET_VAL(MipsISD::MTHLIP),
20601  OPC_RecordNode,
20602  OPC_RecordChild1,
20603  OPC_RecordChild2,
20604  OPC_Scope, 11,
20605   OPC_CheckPatternPredicate, 28,
20606   OPC_EmitMergeInputChains1_0,
20607   OPC_MorphNodeTo1, TARGET_VAL(Mips::MTHLIP), 0|OPFL_Chain,
20608                 MVT::Untyped, 2, 1, 2,
20609  11,
20610   OPC_CheckPatternPredicate, 47,
20611   OPC_EmitMergeInputChains1_0,
20612   OPC_MorphNodeTo1, TARGET_VAL(Mips::MTHLIP_MM), 0|OPFL_Chain,
20613                 MVT::Untyped, 2, 1, 2,
20614  0,
20615 29, TARGET_VAL(MipsISD::DPA_W_PH),
20616  OPC_RecordChild0,
20617  OPC_RecordChild1,
20618  OPC_RecordChild2,
20619  OPC_Scope, 11,
20620   OPC_CheckPatternPredicate, 48,
20621   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPA_W_PH), 0,
20622                 MVT::Untyped, 3, 0, 1, 2,
20623  11,
20624   OPC_CheckPatternPredicate, 49,
20625   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPA_W_PH_MMR2), 0,
20626                 MVT::Untyped, 3, 0, 1, 2,
20627  0,
20628 29, TARGET_VAL(MipsISD::DPS_W_PH),
20629  OPC_RecordChild0,
20630  OPC_RecordChild1,
20631  OPC_RecordChild2,
20632  OPC_Scope, 11,
20633   OPC_CheckPatternPredicate, 48,
20634   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPS_W_PH), 0,
20635                 MVT::Untyped, 3, 0, 1, 2,
20636  11,
20637   OPC_CheckPatternPredicate, 49,
20638   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPS_W_PH_MMR2), 0,
20639                 MVT::Untyped, 3, 0, 1, 2,
20640  0,
20641 32, TARGET_VAL(MipsISD::DPAQX_S_W_PH),
20642  OPC_RecordNode,
20643  OPC_RecordChild1,
20644  OPC_RecordChild2,
20645  OPC_RecordChild3,
20646  OPC_Scope, 12,
20647   OPC_CheckPatternPredicate, 48,
20648   OPC_EmitMergeInputChains1_0,
20649   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQX_S_W_PH), 0|OPFL_Chain,
20650                 MVT::Untyped, 3, 1, 2, 3,
20651  12,
20652   OPC_CheckPatternPredicate, 49,
20653   OPC_EmitMergeInputChains1_0,
20654   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQX_S_W_PH_MMR2), 0|OPFL_Chain,
20655                 MVT::Untyped, 3, 1, 2, 3,
20656  0,
20657 32, TARGET_VAL(MipsISD::DPAQX_SA_W_PH),
20658  OPC_RecordNode,
20659  OPC_RecordChild1,
20660  OPC_RecordChild2,
20661  OPC_RecordChild3,
20662  OPC_Scope, 12,
20663   OPC_CheckPatternPredicate, 48,
20664   OPC_EmitMergeInputChains1_0,
20665   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQX_SA_W_PH), 0|OPFL_Chain,
20666                 MVT::Untyped, 3, 1, 2, 3,
20667  12,
20668   OPC_CheckPatternPredicate, 49,
20669   OPC_EmitMergeInputChains1_0,
20670   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAQX_SA_W_PH_MMR2), 0|OPFL_Chain,
20671                 MVT::Untyped, 3, 1, 2, 3,
20672  0,
20673 29, TARGET_VAL(MipsISD::DPAX_W_PH),
20674  OPC_RecordChild0,
20675  OPC_RecordChild1,
20676  OPC_RecordChild2,
20677  OPC_Scope, 11,
20678   OPC_CheckPatternPredicate, 48,
20679   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAX_W_PH), 0,
20680                 MVT::Untyped, 3, 0, 1, 2,
20681  11,
20682   OPC_CheckPatternPredicate, 49,
20683   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPAX_W_PH_MMR2), 0,
20684                 MVT::Untyped, 3, 0, 1, 2,
20685  0,
20686 29, TARGET_VAL(MipsISD::DPSX_W_PH),
20687  OPC_RecordChild0,
20688  OPC_RecordChild1,
20689  OPC_RecordChild2,
20690  OPC_Scope, 11,
20691   OPC_CheckPatternPredicate, 48,
20692   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSX_W_PH), 0,
20693                 MVT::Untyped, 3, 0, 1, 2,
20694  11,
20695   OPC_CheckPatternPredicate, 49,
20696   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSX_W_PH_MMR2), 0,
20697                 MVT::Untyped, 3, 0, 1, 2,
20698  0,
20699 32, TARGET_VAL(MipsISD::DPSQX_S_W_PH),
20700  OPC_RecordNode,
20701  OPC_RecordChild1,
20702  OPC_RecordChild2,
20703  OPC_RecordChild3,
20704  OPC_Scope, 12,
20705   OPC_CheckPatternPredicate, 48,
20706   OPC_EmitMergeInputChains1_0,
20707   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQX_S_W_PH), 0|OPFL_Chain,
20708                 MVT::Untyped, 3, 1, 2, 3,
20709  12,
20710   OPC_CheckPatternPredicate, 49,
20711   OPC_EmitMergeInputChains1_0,
20712   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQX_S_W_PH_MMR2), 0|OPFL_Chain,
20713                 MVT::Untyped, 3, 1, 2, 3,
20714  0,
20715 32, TARGET_VAL(MipsISD::DPSQX_SA_W_PH),
20716  OPC_RecordNode,
20717  OPC_RecordChild1,
20718  OPC_RecordChild2,
20719  OPC_RecordChild3,
20720  OPC_Scope, 12,
20721   OPC_CheckPatternPredicate, 48,
20722   OPC_EmitMergeInputChains1_0,
20723   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQX_SA_W_PH), 0|OPFL_Chain,
20724                 MVT::Untyped, 3, 1, 2, 3,
20725  12,
20726   OPC_CheckPatternPredicate, 49,
20727   OPC_EmitMergeInputChains1_0,
20728   OPC_MorphNodeTo1, TARGET_VAL(Mips::DPSQX_SA_W_PH_MMR2), 0|OPFL_Chain,
20729                 MVT::Untyped, 3, 1, 2, 3,
20730  0,
20731 29, TARGET_VAL(MipsISD::MULSA_W_PH),
20732  OPC_RecordChild0,
20733  OPC_RecordChild1,
20734  OPC_RecordChild2,
20735  OPC_Scope, 11,
20736   OPC_CheckPatternPredicate, 48,
20737   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULSA_W_PH), 0,
20738                 MVT::Untyped, 3, 0, 1, 2,
20739  11,
20740   OPC_CheckPatternPredicate, 49,
20741   OPC_MorphNodeTo1, TARGET_VAL(Mips::MULSA_W_PH_MMR2), 0,
20742                 MVT::Untyped, 3, 0, 1, 2,
20743  0,
20744 15, TARGET_VAL(ISD::ADDE),
20745  OPC_CaptureGlueInput,
20746  OPC_RecordChild0,
20747  OPC_RecordChild1,
20748  OPC_CheckType, MVT::i32,
20749  OPC_CheckPatternPredicate, 28,
20750  OPC_MorphNodeTo1, TARGET_VAL(Mips::ADDWC), 0|OPFL_GlueInput|OPFL_GlueOutput,
20751                MVT::i32, 2, 0, 1,
20752 67, TARGET_VAL(ISD::BSWAP),
20753  OPC_RecordChild0,
20754  OPC_SwitchType , 44, MVT::i32,
20755   OPC_Scope, 20,
20756    OPC_CheckPatternPredicate, 56,
20757    OPC_EmitNode1, TARGET_VAL(Mips::WSBH), 0,
20758                  MVT::i32, 1, 0,
20759    OPC_EmitInteger, MVT::i32, 32,
20760    OPC_MorphNodeTo1, TARGET_VAL(Mips::ROTR), 0,
20761                  MVT::i32, 2, 1, 2,
20762   20,
20763    OPC_CheckPatternPredicate, 8,
20764    OPC_EmitNode1, TARGET_VAL(Mips::WSBH_MM), 0,
20765                  MVT::i32, 1, 0,
20766    OPC_EmitInteger, MVT::i32, 32,
20767    OPC_MorphNodeTo1, TARGET_VAL(Mips::ROTR_MM), 0,
20768                  MVT::i32, 2, 1, 2,
20769   0,
20770  16, MVT::i64,
20771   OPC_CheckPatternPredicate, 112,
20772   OPC_EmitNode1, TARGET_VAL(Mips::DSBH), 0,
20773                 MVT::i64, 1, 0,
20774   OPC_MorphNodeTo1, TARGET_VAL(Mips::DSHD), 0,
20775                 MVT::i64, 1, 1,
20776  0,
20777 23, TARGET_VAL(ISD::ANY_EXTEND),
20778  OPC_RecordChild0,
20779  OPC_CheckType, MVT::i64,
20780  OPC_CheckPatternPredicate, 29,
20781  OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
20782                MVT::i64, 0,
20783  OPC_EmitStringInteger, MVT::i32, Mips::sub_32,
20784  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
20785                MVT::i64, 3, 1, 0, 2,
20786 45, TARGET_VAL(MipsISD::DivRem),
20787  OPC_RecordChild0,
20788  OPC_Scope, 27,
20789   OPC_CheckChild0Type, MVT::i32,
20790   OPC_RecordChild1,
20791   OPC_Scope, 10,
20792    OPC_CheckPatternPredicate, 11,
20793    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoSDIV), 0,
20794                  MVT::Untyped, 2, 0, 1,
20795   10,
20796    OPC_CheckPatternPredicate, 113,
20797    OPC_MorphNodeTo1, TARGET_VAL(Mips::SDIV_MM_Pseudo), 0,
20798                  MVT::Untyped, 2, 0, 1,
20799   0,
20800  13,
20801   OPC_CheckChild0Type, MVT::i64,
20802   OPC_RecordChild1,
20803   OPC_CheckPatternPredicate, 46,
20804   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoDSDIV), 0,
20805                 MVT::Untyped, 2, 0, 1,
20806  0,
20807 45, TARGET_VAL(MipsISD::DivRemU),
20808  OPC_RecordChild0,
20809  OPC_Scope, 27,
20810   OPC_CheckChild0Type, MVT::i32,
20811   OPC_RecordChild1,
20812   OPC_Scope, 10,
20813    OPC_CheckPatternPredicate, 11,
20814    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoUDIV), 0,
20815                  MVT::Untyped, 2, 0, 1,
20816   10,
20817    OPC_CheckPatternPredicate, 113,
20818    OPC_MorphNodeTo1, TARGET_VAL(Mips::UDIV_MM_Pseudo), 0,
20819                  MVT::Untyped, 2, 0, 1,
20820   0,
20821  13,
20822   OPC_CheckChild0Type, MVT::i64,
20823   OPC_RecordChild1,
20824   OPC_CheckPatternPredicate, 46,
20825   OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoDUDIV), 0,
20826                 MVT::Untyped, 2, 0, 1,
20827  0,
20828 90, TARGET_VAL(ISD::SDIV),
20829  OPC_RecordChild0,
20830  OPC_RecordChild1,
20831  OPC_SwitchType , 24, MVT::i32,
20832   OPC_Scope, 10,
20833    OPC_CheckPatternPredicate, 33,
20834    OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV), 0,
20835                  MVT::i32, 2, 0, 1,
20836   10,
20837    OPC_CheckPatternPredicate, 16,
20838    OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_MMR6), 0,
20839                  MVT::i32, 2, 0, 1,
20840   0,
20841  10, MVT::i64,
20842   OPC_CheckPatternPredicate, 55,
20843   OPC_MorphNodeTo1, TARGET_VAL(Mips::DDIV), 0,
20844                 MVT::i64, 2, 0, 1,
20845  10, MVT::v16i8,
20846   OPC_CheckPatternPredicate, 26,
20847   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_S_B), 0,
20848                 MVT::v16i8, 2, 0, 1,
20849  10, MVT::v8i16,
20850   OPC_CheckPatternPredicate, 26,
20851   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_S_H), 0,
20852                 MVT::v8i16, 2, 0, 1,
20853  10, MVT::v4i32,
20854   OPC_CheckPatternPredicate, 26,
20855   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_S_W), 0,
20856                 MVT::v4i32, 2, 0, 1,
20857  10, MVT::v2i64,
20858   OPC_CheckPatternPredicate, 26,
20859   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_S_D), 0,
20860                 MVT::v2i64, 2, 0, 1,
20861  0,
20862 90, TARGET_VAL(ISD::UDIV),
20863  OPC_RecordChild0,
20864  OPC_RecordChild1,
20865  OPC_SwitchType , 24, MVT::i32,
20866   OPC_Scope, 10,
20867    OPC_CheckPatternPredicate, 33,
20868    OPC_MorphNodeTo1, TARGET_VAL(Mips::DIVU), 0,
20869                  MVT::i32, 2, 0, 1,
20870   10,
20871    OPC_CheckPatternPredicate, 16,
20872    OPC_MorphNodeTo1, TARGET_VAL(Mips::DIVU_MMR6), 0,
20873                  MVT::i32, 2, 0, 1,
20874   0,
20875  10, MVT::i64,
20876   OPC_CheckPatternPredicate, 55,
20877   OPC_MorphNodeTo1, TARGET_VAL(Mips::DDIVU), 0,
20878                 MVT::i64, 2, 0, 1,
20879  10, MVT::v16i8,
20880   OPC_CheckPatternPredicate, 26,
20881   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_U_B), 0,
20882                 MVT::v16i8, 2, 0, 1,
20883  10, MVT::v8i16,
20884   OPC_CheckPatternPredicate, 26,
20885   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_U_H), 0,
20886                 MVT::v8i16, 2, 0, 1,
20887  10, MVT::v4i32,
20888   OPC_CheckPatternPredicate, 26,
20889   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_U_W), 0,
20890                 MVT::v4i32, 2, 0, 1,
20891  10, MVT::v2i64,
20892   OPC_CheckPatternPredicate, 26,
20893   OPC_MorphNodeTo1, TARGET_VAL(Mips::DIV_U_D), 0,
20894                 MVT::v2i64, 2, 0, 1,
20895  0,
20896 90, TARGET_VAL(ISD::SREM),
20897  OPC_RecordChild0,
20898  OPC_RecordChild1,
20899  OPC_SwitchType , 24, MVT::i32,
20900   OPC_Scope, 10,
20901    OPC_CheckPatternPredicate, 33,
20902    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD), 0,
20903                  MVT::i32, 2, 0, 1,
20904   10,
20905    OPC_CheckPatternPredicate, 16,
20906    OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_MMR6), 0,
20907                  MVT::i32, 2, 0, 1,
20908   0,
20909  10, MVT::i64,
20910   OPC_CheckPatternPredicate, 55,
20911   OPC_MorphNodeTo1, TARGET_VAL(Mips::DMOD), 0,
20912                 MVT::i64, 2, 0, 1,
20913  10, MVT::v16i8,
20914   OPC_CheckPatternPredicate, 26,
20915   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_S_B), 0,
20916                 MVT::v16i8, 2, 0, 1,
20917  10, MVT::v8i16,
20918   OPC_CheckPatternPredicate, 26,
20919   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_S_H), 0,
20920                 MVT::v8i16, 2, 0, 1,
20921  10, MVT::v4i32,
20922   OPC_CheckPatternPredicate, 26,
20923   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_S_W), 0,
20924                 MVT::v4i32, 2, 0, 1,
20925  10, MVT::v2i64,
20926   OPC_CheckPatternPredicate, 26,
20927   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_S_D), 0,
20928                 MVT::v2i64, 2, 0, 1,
20929  0,
20930 90, TARGET_VAL(ISD::UREM),
20931  OPC_RecordChild0,
20932  OPC_RecordChild1,
20933  OPC_SwitchType , 24, MVT::i32,
20934   OPC_Scope, 10,
20935    OPC_CheckPatternPredicate, 33,
20936    OPC_MorphNodeTo1, TARGET_VAL(Mips::MODU), 0,
20937                  MVT::i32, 2, 0, 1,
20938   10,
20939    OPC_CheckPatternPredicate, 16,
20940    OPC_MorphNodeTo1, TARGET_VAL(Mips::MODU_MMR6), 0,
20941                  MVT::i32, 2, 0, 1,
20942   0,
20943  10, MVT::i64,
20944   OPC_CheckPatternPredicate, 55,
20945   OPC_MorphNodeTo1, TARGET_VAL(Mips::DMODU), 0,
20946                 MVT::i64, 2, 0, 1,
20947  10, MVT::v16i8,
20948   OPC_CheckPatternPredicate, 26,
20949   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_U_B), 0,
20950                 MVT::v16i8, 2, 0, 1,
20951  10, MVT::v8i16,
20952   OPC_CheckPatternPredicate, 26,
20953   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_U_H), 0,
20954                 MVT::v8i16, 2, 0, 1,
20955  10, MVT::v4i32,
20956   OPC_CheckPatternPredicate, 26,
20957   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_U_W), 0,
20958                 MVT::v4i32, 2, 0, 1,
20959  10, MVT::v2i64,
20960   OPC_CheckPatternPredicate, 26,
20961   OPC_MorphNodeTo1, TARGET_VAL(Mips::MOD_U_D), 0,
20962                 MVT::v2i64, 2, 0, 1,
20963  0,
20964 45, TARGET_VAL(MipsISD::VALL_NONZERO),
20965  OPC_RecordChild0,
20966  OPC_CheckType, MVT::i32,
20967  OPC_Scope, 9,
20968   OPC_CheckChild0Type, MVT::v16i8,
20969   OPC_MorphNodeTo1, TARGET_VAL(Mips::SNZ_B_PSEUDO), 0,
20970                 MVT::i32, 1, 0,
20971  9,
20972   OPC_CheckChild0Type, MVT::v8i16,
20973   OPC_MorphNodeTo1, TARGET_VAL(Mips::SNZ_H_PSEUDO), 0,
20974                 MVT::i32, 1, 0,
20975  9,
20976   OPC_CheckChild0Type, MVT::v4i32,
20977   OPC_MorphNodeTo1, TARGET_VAL(Mips::SNZ_W_PSEUDO), 0,
20978                 MVT::i32, 1, 0,
20979  9,
20980   OPC_CheckChild0Type, MVT::v2i64,
20981   OPC_MorphNodeTo1, TARGET_VAL(Mips::SNZ_D_PSEUDO), 0,
20982                 MVT::i32, 1, 0,
20983  0,
20984 12, TARGET_VAL(MipsISD::VANY_NONZERO),
20985  OPC_RecordChild0,
20986  OPC_CheckChild0Type, MVT::v16i8,
20987  OPC_CheckType, MVT::i32,
20988  OPC_MorphNodeTo1, TARGET_VAL(Mips::SNZ_V_PSEUDO), 0,
20989                MVT::i32, 1, 0,
20990 45, TARGET_VAL(MipsISD::VALL_ZERO),
20991  OPC_RecordChild0,
20992  OPC_CheckType, MVT::i32,
20993  OPC_Scope, 9,
20994   OPC_CheckChild0Type, MVT::v16i8,
20995   OPC_MorphNodeTo1, TARGET_VAL(Mips::SZ_B_PSEUDO), 0,
20996                 MVT::i32, 1, 0,
20997  9,
20998   OPC_CheckChild0Type, MVT::v8i16,
20999   OPC_MorphNodeTo1, TARGET_VAL(Mips::SZ_H_PSEUDO), 0,
21000                 MVT::i32, 1, 0,
21001  9,
21002   OPC_CheckChild0Type, MVT::v4i32,
21003   OPC_MorphNodeTo1, TARGET_VAL(Mips::SZ_W_PSEUDO), 0,
21004                 MVT::i32, 1, 0,
21005  9,
21006   OPC_CheckChild0Type, MVT::v2i64,
21007   OPC_MorphNodeTo1, TARGET_VAL(Mips::SZ_D_PSEUDO), 0,
21008                 MVT::i32, 1, 0,
21009  0,
21010 12, TARGET_VAL(MipsISD::VANY_ZERO),
21011  OPC_RecordChild0,
21012  OPC_CheckChild0Type, MVT::v16i8,
21013  OPC_CheckType, MVT::i32,
21014  OPC_MorphNodeTo1, TARGET_VAL(Mips::SZ_V_PSEUDO), 0,
21015                MVT::i32, 1, 0,
21016 7|128,3, TARGET_VAL(ISD::FSUB),
21017  OPC_Scope, 101|128,1,
21018   OPC_MoveChild0,
21019   OPC_SwitchOpcode , 44|128,1, TARGET_VAL(ISD::ConstantFP),
21020    OPC_CheckPredicate, 61,
21021    OPC_MoveParent,
21022    OPC_MoveChild1,
21023    OPC_SwitchOpcode , 108, TARGET_VAL(ISD::FADD),
21024     OPC_Scope, 52,
21025      OPC_MoveChild0,
21026      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21027      OPC_RecordChild0,
21028      OPC_RecordChild1,
21029      OPC_MoveParent,
21030      OPC_RecordChild1,
21031      OPC_MoveParent,
21032      OPC_SwitchType , 11, MVT::f32,
21033       OPC_CheckPatternPredicate, 114,
21034       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_S), 0,
21035                     MVT::f32, 3, 2, 0, 1,
21036      26, MVT::f64,
21037       OPC_Scope, 11,
21038        OPC_CheckPatternPredicate, 115,
21039        OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D32), 0,
21040                      MVT::f64, 3, 2, 0, 1,
21041       11,
21042        OPC_CheckPatternPredicate, 116,
21043        OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D64), 0,
21044                      MVT::f64, 3, 2, 0, 1,
21045       0,
21046      0,
21047     52,
21048      OPC_RecordChild0,
21049      OPC_MoveChild1,
21050      OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21051      OPC_RecordChild0,
21052      OPC_RecordChild1,
21053      OPC_MoveParent,
21054      OPC_MoveParent,
21055      OPC_SwitchType , 11, MVT::f32,
21056       OPC_CheckPatternPredicate, 114,
21057       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_S), 0,
21058                     MVT::f32, 3, 0, 1, 2,
21059      26, MVT::f64,
21060       OPC_Scope, 11,
21061        OPC_CheckPatternPredicate, 115,
21062        OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D32), 0,
21063                      MVT::f64, 3, 0, 1, 2,
21064       11,
21065        OPC_CheckPatternPredicate, 116,
21066        OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D64), 0,
21067                      MVT::f64, 3, 0, 1, 2,
21068       0,
21069      0,
21070     0,
21071    52, TARGET_VAL(ISD::FSUB),
21072     OPC_MoveChild0,
21073     OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21074     OPC_RecordChild0,
21075     OPC_RecordChild1,
21076     OPC_MoveParent,
21077     OPC_RecordChild1,
21078     OPC_MoveParent,
21079     OPC_SwitchType , 11, MVT::f32,
21080      OPC_CheckPatternPredicate, 114,
21081      OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_S), 0,
21082                    MVT::f32, 3, 2, 0, 1,
21083     26, MVT::f64,
21084      OPC_Scope, 11,
21085       OPC_CheckPatternPredicate, 115,
21086       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_D32), 0,
21087                     MVT::f64, 3, 2, 0, 1,
21088      11,
21089       OPC_CheckPatternPredicate, 116,
21090       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_D64), 0,
21091                     MVT::f64, 3, 2, 0, 1,
21092      0,
21093     0,
21094    0,
21095   47, TARGET_VAL(ISD::FMUL),
21096    OPC_RecordChild0,
21097    OPC_RecordChild1,
21098    OPC_MoveParent,
21099    OPC_RecordChild1,
21100    OPC_SwitchType , 11, MVT::f32,
21101     OPC_CheckPatternPredicate, 117,
21102     OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_S), 0,
21103                   MVT::f32, 3, 2, 0, 1,
21104    26, MVT::f64,
21105     OPC_Scope, 11,
21106      OPC_CheckPatternPredicate, 118,
21107      OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_D32), 0,
21108                    MVT::f64, 3, 2, 0, 1,
21109     11,
21110      OPC_CheckPatternPredicate, 119,
21111      OPC_MorphNodeTo1, TARGET_VAL(Mips::MSUB_D64), 0,
21112                    MVT::f64, 3, 2, 0, 1,
21113     0,
21114    0,
21115   0,
21116  28|128,1,
21117   OPC_RecordChild0,
21118   OPC_Scope, 88,
21119    OPC_RecordChild1,
21120    OPC_SwitchType , 35, MVT::f32,
21121     OPC_Scope, 10,
21122      OPC_CheckPatternPredicate, 17,
21123      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_S), 0,
21124                    MVT::f32, 2, 0, 1,
21125     10,
21126      OPC_CheckPatternPredicate, 18,
21127      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_S_MM), 0,
21128                    MVT::f32, 2, 0, 1,
21129     10,
21130      OPC_CheckPatternPredicate, 68,
21131      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_S_MMR6), 0,
21132                    MVT::f32, 2, 1, 0,
21133     0,
21134    46, MVT::f64,
21135     OPC_Scope, 10,
21136      OPC_CheckPatternPredicate, 120,
21137      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_D32), 0,
21138                    MVT::f64, 2, 0, 1,
21139     10,
21140      OPC_CheckPatternPredicate, 121,
21141      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_D64), 0,
21142                    MVT::f64, 2, 0, 1,
21143     10,
21144      OPC_CheckPatternPredicate, 21,
21145      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_D32_MM), 0,
21146                    MVT::f64, 2, 0, 1,
21147     10,
21148      OPC_CheckPatternPredicate, 22,
21149      OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_D64_MM), 0,
21150                    MVT::f64, 2, 0, 1,
21151     0,
21152    0,
21153   35,
21154    OPC_MoveChild1,
21155    OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21156    OPC_RecordChild0,
21157    OPC_RecordChild1,
21158    OPC_MoveParent,
21159    OPC_SwitchType , 11, MVT::v4f32,
21160     OPC_CheckPatternPredicate, 122,
21161     OPC_MorphNodeTo1, TARGET_VAL(Mips::FMSUB_W), 0,
21162                   MVT::v4f32, 3, 0, 1, 2,
21163    11, MVT::v2f64,
21164     OPC_CheckPatternPredicate, 122,
21165     OPC_MorphNodeTo1, TARGET_VAL(Mips::FMSUB_D), 0,
21166                   MVT::v2f64, 3, 0, 1, 2,
21167    0,
21168   27,
21169    OPC_RecordChild1,
21170    OPC_SwitchType , 10, MVT::v4f32,
21171     OPC_CheckPatternPredicate, 26,
21172     OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_W), 0,
21173                   MVT::v4f32, 2, 0, 1,
21174    10, MVT::v2f64,
21175     OPC_CheckPatternPredicate, 26,
21176     OPC_MorphNodeTo1, TARGET_VAL(Mips::FSUB_D), 0,
21177                   MVT::v2f64, 2, 0, 1,
21178    0,
21179   0,
21180  0,
21181 81|128,2, TARGET_VAL(ISD::FNEG),
21182  OPC_Scope, 123|128,1,
21183   OPC_MoveChild0,
21184   OPC_SwitchOpcode , 34|128,1, TARGET_VAL(ISD::FADD),
21185    OPC_Scope, 79,
21186     OPC_MoveChild0,
21187     OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21188     OPC_RecordChild0,
21189     OPC_RecordChild1,
21190     OPC_MoveParent,
21191     OPC_RecordChild1,
21192     OPC_MoveParent,
21193     OPC_SwitchType , 26, MVT::f32,
21194      OPC_Scope, 11,
21195       OPC_CheckPatternPredicate, 123,
21196       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_S), 0,
21197                     MVT::f32, 3, 2, 0, 1,
21198      11,
21199       OPC_CheckPatternPredicate, 124,
21200       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_S_MM), 0,
21201                     MVT::f32, 3, 2, 0, 1,
21202      0,
21203     38, MVT::f64,
21204      OPC_Scope, 11,
21205       OPC_CheckPatternPredicate, 125,
21206       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D32), 0,
21207                     MVT::f64, 3, 2, 0, 1,
21208      11,
21209       OPC_CheckPatternPredicate, 126,
21210       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D64), 0,
21211                     MVT::f64, 3, 2, 0, 1,
21212      11,
21213       OPC_CheckPatternPredicate, 127,
21214       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D32_MM), 0,
21215                     MVT::f64, 3, 2, 0, 1,
21216      0,
21217     0,
21218    79,
21219     OPC_RecordChild0,
21220     OPC_MoveChild1,
21221     OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21222     OPC_RecordChild0,
21223     OPC_RecordChild1,
21224     OPC_MoveParent,
21225     OPC_MoveParent,
21226     OPC_SwitchType , 26, MVT::f32,
21227      OPC_Scope, 11,
21228       OPC_CheckPatternPredicate, 123,
21229       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_S), 0,
21230                     MVT::f32, 3, 0, 1, 2,
21231      11,
21232       OPC_CheckPatternPredicate, 124,
21233       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_S_MM), 0,
21234                     MVT::f32, 3, 0, 1, 2,
21235      0,
21236     38, MVT::f64,
21237      OPC_Scope, 11,
21238       OPC_CheckPatternPredicate, 125,
21239       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D32), 0,
21240                     MVT::f64, 3, 0, 1, 2,
21241      11,
21242       OPC_CheckPatternPredicate, 126,
21243       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D64), 0,
21244                     MVT::f64, 3, 0, 1, 2,
21245      11,
21246       OPC_CheckPatternPredicate, 127,
21247       OPC_MorphNodeTo1, TARGET_VAL(Mips::NMADD_D32_MM), 0,
21248                     MVT::f64, 3, 0, 1, 2,
21249      0,
21250     0,
21251    0,
21252   79, TARGET_VAL(ISD::FSUB),
21253    OPC_MoveChild0,
21254    OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21255    OPC_RecordChild0,
21256    OPC_RecordChild1,
21257    OPC_MoveParent,
21258    OPC_RecordChild1,
21259    OPC_MoveParent,
21260    OPC_SwitchType , 26, MVT::f32,
21261     OPC_Scope, 11,
21262      OPC_CheckPatternPredicate, 123,
21263      OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_S), 0,
21264                    MVT::f32, 3, 2, 0, 1,
21265     11,
21266      OPC_CheckPatternPredicate, 124,
21267      OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_S_MM), 0,
21268                    MVT::f32, 3, 2, 0, 1,
21269     0,
21270    38, MVT::f64,
21271     OPC_Scope, 11,
21272      OPC_CheckPatternPredicate, 125,
21273      OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_D32), 0,
21274                    MVT::f64, 3, 2, 0, 1,
21275     11,
21276      OPC_CheckPatternPredicate, 126,
21277      OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_D64), 0,
21278                    MVT::f64, 3, 2, 0, 1,
21279     11,
21280      OPC_CheckPatternPredicate, 127,
21281      OPC_MorphNodeTo1, TARGET_VAL(Mips::NMSUB_D32_MM), 0,
21282                    MVT::f64, 3, 2, 0, 1,
21283     0,
21284    0,
21285   0,
21286  81,
21287   OPC_RecordChild0,
21288   OPC_SwitchType , 32, MVT::f32,
21289    OPC_Scope, 9,
21290     OPC_CheckPatternPredicate, 128,
21291     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_S), 0,
21292                   MVT::f32, 1, 0,
21293    9,
21294     OPC_CheckPatternPredicate, 18,
21295     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_S_MM), 0,
21296                   MVT::f32, 1, 0,
21297    9,
21298     OPC_CheckPatternPredicate, 68,
21299     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_S_MMR6), 0,
21300                   MVT::f32, 1, 0,
21301    0,
21302   42, MVT::f64,
21303    OPC_Scope, 9,
21304     OPC_CheckPatternPredicate, 120,
21305     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_D32), 0,
21306                   MVT::f64, 1, 0,
21307    9,
21308     OPC_CheckPatternPredicate, 121,
21309     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_D64), 0,
21310                   MVT::f64, 1, 0,
21311    9,
21312     OPC_CheckPatternPredicate, 21,
21313     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_D32_MM), 0,
21314                   MVT::f64, 1, 0,
21315    9,
21316     OPC_CheckPatternPredicate, 22,
21317     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_D64_MM), 0,
21318                   MVT::f64, 1, 0,
21319    0,
21320   0,
21321  0,
21322 45|128,2, TARGET_VAL(ISD::FADD),
21323  OPC_Scope, 51,
21324   OPC_MoveChild0,
21325   OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21326   OPC_RecordChild0,
21327   OPC_RecordChild1,
21328   OPC_MoveParent,
21329   OPC_RecordChild1,
21330   OPC_SwitchType , 11, MVT::f32,
21331    OPC_CheckPatternPredicate, 117,
21332    OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_S), 0,
21333                  MVT::f32, 3, 2, 0, 1,
21334   26, MVT::f64,
21335    OPC_Scope, 11,
21336     OPC_CheckPatternPredicate, 118,
21337     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_D32), 0,
21338                   MVT::f64, 3, 2, 0, 1,
21339    11,
21340     OPC_CheckPatternPredicate, 119,
21341     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_D64), 0,
21342                   MVT::f64, 3, 2, 0, 1,
21343    0,
21344   0,
21345  51|128,1,
21346   OPC_RecordChild0,
21347   OPC_Scope, 50,
21348    OPC_MoveChild1,
21349    OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21350    OPC_RecordChild0,
21351    OPC_RecordChild1,
21352    OPC_MoveParent,
21353    OPC_SwitchType , 11, MVT::f32,
21354     OPC_CheckPatternPredicate, 117,
21355     OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_S), 0,
21356                   MVT::f32, 3, 0, 1, 2,
21357    26, MVT::f64,
21358     OPC_Scope, 11,
21359      OPC_CheckPatternPredicate, 118,
21360      OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_D32), 0,
21361                    MVT::f64, 3, 0, 1, 2,
21362     11,
21363      OPC_CheckPatternPredicate, 119,
21364      OPC_MorphNodeTo1, TARGET_VAL(Mips::MADD_D64), 0,
21365                    MVT::f64, 3, 0, 1, 2,
21366     0,
21367    0,
21368   88,
21369    OPC_RecordChild1,
21370    OPC_SwitchType , 35, MVT::f32,
21371     OPC_Scope, 10,
21372      OPC_CheckPatternPredicate, 17,
21373      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_S), 0,
21374                    MVT::f32, 2, 0, 1,
21375     10,
21376      OPC_CheckPatternPredicate, 18,
21377      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_S_MM), 0,
21378                    MVT::f32, 2, 0, 1,
21379     10,
21380      OPC_CheckPatternPredicate, 68,
21381      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_S_MMR6), 0,
21382                    MVT::f32, 2, 1, 0,
21383     0,
21384    46, MVT::f64,
21385     OPC_Scope, 10,
21386      OPC_CheckPatternPredicate, 120,
21387      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_D32), 0,
21388                    MVT::f64, 2, 0, 1,
21389     10,
21390      OPC_CheckPatternPredicate, 121,
21391      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_D64), 0,
21392                    MVT::f64, 2, 0, 1,
21393     10,
21394      OPC_CheckPatternPredicate, 21,
21395      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_D32_MM), 0,
21396                    MVT::f64, 2, 0, 1,
21397     10,
21398      OPC_CheckPatternPredicate, 22,
21399      OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_D64_MM), 0,
21400                    MVT::f64, 2, 0, 1,
21401     0,
21402    0,
21403   35,
21404    OPC_MoveChild1,
21405    OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21406    OPC_RecordChild0,
21407    OPC_RecordChild1,
21408    OPC_MoveParent,
21409    OPC_SwitchType , 11, MVT::v4f32,
21410     OPC_CheckPatternPredicate, 122,
21411     OPC_MorphNodeTo1, TARGET_VAL(Mips::FMADD_W), 0,
21412                   MVT::v4f32, 3, 0, 1, 2,
21413    11, MVT::v2f64,
21414     OPC_CheckPatternPredicate, 122,
21415     OPC_MorphNodeTo1, TARGET_VAL(Mips::FMADD_D), 0,
21416                   MVT::v2f64, 3, 0, 1, 2,
21417    0,
21418   0,
21419  36,
21420   OPC_MoveChild0,
21421   OPC_CheckOpcode, TARGET_VAL(ISD::FMUL),
21422   OPC_RecordChild0,
21423   OPC_RecordChild1,
21424   OPC_MoveParent,
21425   OPC_RecordChild1,
21426   OPC_SwitchType , 11, MVT::v4f32,
21427    OPC_CheckPatternPredicate, 122,
21428    OPC_MorphNodeTo1, TARGET_VAL(Mips::FMADD_W), 0,
21429                  MVT::v4f32, 3, 2, 0, 1,
21430   11, MVT::v2f64,
21431    OPC_CheckPatternPredicate, 122,
21432    OPC_MorphNodeTo1, TARGET_VAL(Mips::FMADD_D), 0,
21433                  MVT::v2f64, 3, 2, 0, 1,
21434   0,
21435  28,
21436   OPC_RecordChild0,
21437   OPC_RecordChild1,
21438   OPC_SwitchType , 10, MVT::v4f32,
21439    OPC_CheckPatternPredicate, 26,
21440    OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_W), 0,
21441                  MVT::v4f32, 2, 0, 1,
21442   10, MVT::v2f64,
21443    OPC_CheckPatternPredicate, 26,
21444    OPC_MorphNodeTo1, TARGET_VAL(Mips::FADD_D), 0,
21445                  MVT::v2f64, 2, 0, 1,
21446   0,
21447  0,
21448 28|128,1, TARGET_VAL(ISD::ConstantFP),
21449  OPC_Scope, 62,
21450   OPC_CheckPredicate, 61,
21451   OPC_SwitchType , 41, MVT::f32,
21452    OPC_Scope, 12,
21453     OPC_CheckPatternPredicate, 75,
21454     OPC_EmitRegister, MVT::i32, Mips::ZERO,
21455     OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1), 0,
21456                   MVT::f32, 1, 0,
21457    12,
21458     OPC_CheckPatternPredicate, 30,
21459     OPC_EmitRegister, MVT::i32, Mips::ZERO,
21460     OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1_MM), 0,
21461                   MVT::f32, 1, 0,
21462    12,
21463     OPC_CheckPatternPredicate, 16,
21464     OPC_EmitRegister, MVT::i32, Mips::ZERO,
21465     OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1_MMR6), 0,
21466                   MVT::f32, 1, 0,
21467    0,
21468   13, MVT::f64,
21469    OPC_CheckPatternPredicate, 129,
21470    OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
21471    OPC_MorphNodeTo1, TARGET_VAL(Mips::DMTC1), 0,
21472                  MVT::f64, 1, 0,
21473   0,
21474  90,
21475   OPC_CheckPredicate, 62,
21476   OPC_SwitchType , 62, MVT::f32,
21477    OPC_Scope, 19,
21478     OPC_CheckPatternPredicate, 75,
21479     OPC_EmitRegister, MVT::i32, Mips::ZERO,
21480     OPC_EmitNode1, TARGET_VAL(Mips::MTC1), 0,
21481                   MVT::f32, 1, 0,
21482     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_S), 0,
21483                   MVT::f32, 1, 1,
21484    19,
21485     OPC_CheckPatternPredicate, 30,
21486     OPC_EmitRegister, MVT::i32, Mips::ZERO,
21487     OPC_EmitNode1, TARGET_VAL(Mips::MTC1_MM), 0,
21488                   MVT::f32, 1, 0,
21489     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_S_MM), 0,
21490                   MVT::f32, 1, 1,
21491    19,
21492     OPC_CheckPatternPredicate, 16,
21493     OPC_EmitRegister, MVT::i32, Mips::ZERO,
21494     OPC_EmitNode1, TARGET_VAL(Mips::MTC1_MMR6), 0,
21495                   MVT::f32, 1, 0,
21496     OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_S_MMR6), 0,
21497                   MVT::f32, 1, 1,
21498    0,
21499   20, MVT::f64,
21500    OPC_CheckPatternPredicate, 129,
21501    OPC_EmitRegister2, MVT::i64, TARGET_VAL(Mips::ZERO_64),
21502    OPC_EmitNode1, TARGET_VAL(Mips::DMTC1), 0,
21503                  MVT::f64, 1, 0,
21504    OPC_MorphNodeTo1, TARGET_VAL(Mips::FNEG_D64), 0,
21505                  MVT::f64, 1, 1,
21506   0,
21507  0,
21508 93, TARGET_VAL(ISD::FABS),
21509  OPC_RecordChild0,
21510  OPC_SwitchType , 22, MVT::f32,
21511   OPC_Scope, 9,
21512    OPC_CheckPatternPredicate, 130,
21513    OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_S), 0,
21514                  MVT::f32, 1, 0,
21515   9,
21516    OPC_CheckPatternPredicate, 131,
21517    OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_S_MM), 0,
21518                  MVT::f32, 1, 0,
21519   0,
21520  42, MVT::f64,
21521   OPC_Scope, 9,
21522    OPC_CheckPatternPredicate, 132,
21523    OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_D32), 0,
21524                  MVT::f64, 1, 0,
21525   9,
21526    OPC_CheckPatternPredicate, 133,
21527    OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_D64), 0,
21528                  MVT::f64, 1, 0,
21529   9,
21530    OPC_CheckPatternPredicate, 21,
21531    OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_D32_MM), 0,
21532                  MVT::f64, 1, 0,
21533   9,
21534    OPC_CheckPatternPredicate, 22,
21535    OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_D64_MM), 0,
21536                  MVT::f64, 1, 0,
21537   0,
21538  9, MVT::v4f32,
21539   OPC_CheckPatternPredicate, 26,
21540   OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_W), 0,
21541                 MVT::v4f32, 1, 0,
21542  9, MVT::v2f64,
21543   OPC_CheckPatternPredicate, 26,
21544   OPC_MorphNodeTo1, TARGET_VAL(Mips::FABS_D), 0,
21545                 MVT::v2f64, 1, 0,
21546  0,
21547 93, TARGET_VAL(ISD::FSQRT),
21548  OPC_RecordChild0,
21549  OPC_SwitchType , 22, MVT::f32,
21550   OPC_Scope, 9,
21551    OPC_CheckPatternPredicate, 134,
21552    OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_S), 0,
21553                  MVT::f32, 1, 0,
21554   9,
21555    OPC_CheckPatternPredicate, 18,
21556    OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_S_MM), 0,
21557                  MVT::f32, 1, 0,
21558   0,
21559  42, MVT::f64,
21560   OPC_Scope, 9,
21561    OPC_CheckPatternPredicate, 20,
21562    OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_D32), 0,
21563                  MVT::f64, 1, 0,
21564   9,
21565    OPC_CheckPatternPredicate, 19,
21566    OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_D64), 0,
21567                  MVT::f64, 1, 0,
21568   9,
21569    OPC_CheckPatternPredicate, 21,
21570    OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_D32_MM), 0,
21571                  MVT::f64, 1, 0,
21572   9,
21573    OPC_CheckPatternPredicate, 22,
21574    OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_D64_MM), 0,
21575                  MVT::f64, 1, 0,
21576   0,
21577  9, MVT::v4f32,
21578   OPC_CheckPatternPredicate, 26,
21579   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_W), 0,
21580                 MVT::v4f32, 1, 0,
21581  9, MVT::v2f64,
21582   OPC_CheckPatternPredicate, 26,
21583   OPC_MorphNodeTo1, TARGET_VAL(Mips::FSQRT_D), 0,
21584                 MVT::v2f64, 1, 0,
21585  0,
21586 113, TARGET_VAL(ISD::FDIV),
21587  OPC_RecordChild0,
21588  OPC_RecordChild1,
21589  OPC_SwitchType , 35, MVT::f32,
21590   OPC_Scope, 10,
21591    OPC_CheckPatternPredicate, 17,
21592    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_S), 0,
21593                  MVT::f32, 2, 0, 1,
21594   10,
21595    OPC_CheckPatternPredicate, 18,
21596    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_S_MM), 0,
21597                  MVT::f32, 2, 0, 1,
21598   10,
21599    OPC_CheckPatternPredicate, 68,
21600    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_S_MMR6), 0,
21601                  MVT::f32, 2, 1, 0,
21602   0,
21603  46, MVT::f64,
21604   OPC_Scope, 10,
21605    OPC_CheckPatternPredicate, 120,
21606    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_D32), 0,
21607                  MVT::f64, 2, 0, 1,
21608   10,
21609    OPC_CheckPatternPredicate, 121,
21610    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_D64), 0,
21611                  MVT::f64, 2, 0, 1,
21612   10,
21613    OPC_CheckPatternPredicate, 21,
21614    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_D32_MM), 0,
21615                  MVT::f64, 2, 0, 1,
21616   10,
21617    OPC_CheckPatternPredicate, 22,
21618    OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_D64_MM), 0,
21619                  MVT::f64, 2, 0, 1,
21620   0,
21621  10, MVT::v4f32,
21622   OPC_CheckPatternPredicate, 26,
21623   OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_W), 0,
21624                 MVT::v4f32, 2, 0, 1,
21625  10, MVT::v2f64,
21626   OPC_CheckPatternPredicate, 26,
21627   OPC_MorphNodeTo1, TARGET_VAL(Mips::FDIV_D), 0,
21628                 MVT::v2f64, 2, 0, 1,
21629  0,
21630 63|128,1, TARGET_VAL(ISD::FMUL),
21631  OPC_Scope, 125,
21632   OPC_RecordChild0,
21633   OPC_Scope, 88,
21634    OPC_RecordChild1,
21635    OPC_SwitchType , 35, MVT::f32,
21636     OPC_Scope, 10,
21637      OPC_CheckPatternPredicate, 17,
21638      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_S), 0,
21639                    MVT::f32, 2, 0, 1,
21640     10,
21641      OPC_CheckPatternPredicate, 18,
21642      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_S_MM), 0,
21643                    MVT::f32, 2, 0, 1,
21644     10,
21645      OPC_CheckPatternPredicate, 68,
21646      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_S_MMR6), 0,
21647                    MVT::f32, 2, 1, 0,
21648     0,
21649    46, MVT::f64,
21650     OPC_Scope, 10,
21651      OPC_CheckPatternPredicate, 120,
21652      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_D32), 0,
21653                    MVT::f64, 2, 0, 1,
21654     10,
21655      OPC_CheckPatternPredicate, 121,
21656      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_D64), 0,
21657                    MVT::f64, 2, 0, 1,
21658     10,
21659      OPC_CheckPatternPredicate, 21,
21660      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_D32_MM), 0,
21661                    MVT::f64, 2, 0, 1,
21662     10,
21663      OPC_CheckPatternPredicate, 22,
21664      OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_D64_MM), 0,
21665                    MVT::f64, 2, 0, 1,
21666     0,
21667    0,
21668   32,
21669    OPC_MoveChild1,
21670    OPC_CheckOpcode, TARGET_VAL(ISD::FEXP2),
21671    OPC_RecordChild0,
21672    OPC_MoveParent,
21673    OPC_SwitchType , 10, MVT::v4f32,
21674     OPC_CheckPatternPredicate, 26,
21675     OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXP2_W), 0,
21676                   MVT::v4f32, 2, 0, 1,
21677    10, MVT::v2f64,
21678     OPC_CheckPatternPredicate, 26,
21679     OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXP2_D), 0,
21680                   MVT::v2f64, 2, 0, 1,
21681    0,
21682   0,
21683  33,
21684   OPC_MoveChild0,
21685   OPC_CheckOpcode, TARGET_VAL(ISD::FEXP2),
21686   OPC_RecordChild0,
21687   OPC_MoveParent,
21688   OPC_RecordChild1,
21689   OPC_SwitchType , 10, MVT::v4f32,
21690    OPC_CheckPatternPredicate, 26,
21691    OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXP2_W), 0,
21692                  MVT::v4f32, 2, 1, 0,
21693   10, MVT::v2f64,
21694    OPC_CheckPatternPredicate, 26,
21695    OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXP2_D), 0,
21696                  MVT::v2f64, 2, 1, 0,
21697   0,
21698  28,
21699   OPC_RecordChild0,
21700   OPC_RecordChild1,
21701   OPC_SwitchType , 10, MVT::v4f32,
21702    OPC_CheckPatternPredicate, 26,
21703    OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_W), 0,
21704                  MVT::v4f32, 2, 0, 1,
21705   10, MVT::v2f64,
21706    OPC_CheckPatternPredicate, 26,
21707    OPC_MorphNodeTo1, TARGET_VAL(Mips::FMUL_D), 0,
21708                  MVT::v2f64, 2, 0, 1,
21709   0,
21710  0,
21711 26, TARGET_VAL(MipsISD::BuildPairF64),
21712  OPC_RecordChild0,
21713  OPC_RecordChild1,
21714  OPC_Scope, 10,
21715   OPC_CheckPatternPredicate, 91,
21716   OPC_MorphNodeTo1, TARGET_VAL(Mips::BuildPairF64), 0,
21717                 MVT::f64, 2, 0, 1,
21718  10,
21719   OPC_CheckPatternPredicate, 92,
21720   OPC_MorphNodeTo1, TARGET_VAL(Mips::BuildPairF64_64), 0,
21721                 MVT::f64, 2, 0, 1,
21722  0,
21723 107, TARGET_VAL(ISD::SINT_TO_FP),
21724  OPC_RecordChild0,
21725  OPC_Scope, 37,
21726   OPC_CheckChild0Type, MVT::i32,
21727   OPC_SwitchType , 7, MVT::f32,
21728    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoCVT_S_W), 0,
21729                  MVT::f32, 1, 0,
21730   22, MVT::f64,
21731    OPC_Scope, 9,
21732     OPC_CheckPatternPredicate, 135,
21733     OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoCVT_D32_W), 0,
21734                   MVT::f64, 1, 0,
21735    9,
21736     OPC_CheckPatternPredicate, 136,
21737     OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoCVT_D64_W), 0,
21738                   MVT::f64, 1, 0,
21739    0,
21740   0,
21741  37,
21742   OPC_CheckChild0Type, MVT::i64,
21743   OPC_SwitchType , 9, MVT::f64,
21744    OPC_CheckPatternPredicate, 136,
21745    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoCVT_D64_L), 0,
21746                  MVT::f64, 1, 0,
21747   20, MVT::f32,
21748    OPC_CheckPatternPredicate, 136,
21749    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCVT_S_L), 0,
21750                  MVT::f64, 1, 0,
21751    OPC_EmitStringInteger, MVT::i32, Mips::sub_lo,
21752    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
21753                  MVT::f32, 2, 1, 2,
21754   0,
21755  13,
21756   OPC_CheckChild0Type, MVT::v4i32,
21757   OPC_CheckType, MVT::v4f32,
21758   OPC_CheckPatternPredicate, 26,
21759   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFINT_S_W), 0,
21760                 MVT::v4f32, 1, 0,
21761  13,
21762   OPC_CheckChild0Type, MVT::v2i64,
21763   OPC_CheckType, MVT::v2f64,
21764   OPC_CheckPatternPredicate, 26,
21765   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFINT_S_D), 0,
21766                 MVT::v2f64, 1, 0,
21767  0,
21768 16|128,1, TARGET_VAL(MipsISD::TruncIntFP),
21769  OPC_RecordChild0,
21770  OPC_Scope, 49,
21771   OPC_CheckChild0Type, MVT::f32,
21772   OPC_SwitchType , 32, MVT::f32,
21773    OPC_Scope, 9,
21774     OPC_CheckPatternPredicate, 75,
21775     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_S), 0,
21776                   MVT::f32, 1, 0,
21777    9,
21778     OPC_CheckPatternPredicate, 30,
21779     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_S_MM), 0,
21780                   MVT::f32, 1, 0,
21781    9,
21782     OPC_CheckPatternPredicate, 16,
21783     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_S_MMR6), 0,
21784                   MVT::f32, 1, 0,
21785    0,
21786   9, MVT::f64,
21787    OPC_CheckPatternPredicate, 137,
21788    OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_L_S), 0,
21789                  MVT::f64, 1, 0,
21790   0,
21791  69,
21792   OPC_CheckChild0Type, MVT::f64,
21793   OPC_SwitchType , 52, MVT::f32,
21794    OPC_Scope, 9,
21795     OPC_CheckPatternPredicate, 138,
21796     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_D32), 0,
21797                   MVT::f32, 1, 0,
21798    9,
21799     OPC_CheckPatternPredicate, 137,
21800     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_D64), 0,
21801                   MVT::f32, 1, 0,
21802    9,
21803     OPC_CheckPatternPredicate, 41,
21804     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_MM), 0,
21805                   MVT::f32, 1, 0,
21806    9,
21807     OPC_CheckPatternPredicate, 139,
21808     OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_W_D64_MM), 0,
21809                   MVT::f32, 1, 0,
21810    9,
21811     OPC_CheckPatternPredicate, 16,
21812     OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_D_MMR6), 0,
21813                   MVT::f32, 1, 0,
21814    0,
21815   9, MVT::f64,
21816    OPC_CheckPatternPredicate, 137,
21817    OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_L_D64), 0,
21818                  MVT::f64, 1, 0,
21819   0,
21820  20,
21821   OPC_CheckChild0Type, MVT::f16,
21822   OPC_CheckType, MVT::f32,
21823   OPC_CheckPatternPredicate, 26,
21824   OPC_EmitNode1, TARGET_VAL(Mips::MSA_FP_EXTEND_D_PSEUDO), 0,
21825                 MVT::f64, 1, 0,
21826   OPC_MorphNodeTo1, TARGET_VAL(Mips::TRUNC_W_D64), 0,
21827                 MVT::f32, 1, 1,
21828  0,
21829 23, TARGET_VAL(MipsISD::MTC1_D64),
21830  OPC_RecordChild0,
21831  OPC_Scope, 9,
21832   OPC_CheckPatternPredicate, 140,
21833   OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1_D64), 0,
21834                 MVT::f64, 1, 0,
21835  9,
21836   OPC_CheckPatternPredicate, 4,
21837   OPC_MorphNodeTo1, TARGET_VAL(Mips::MTC1_D64_MM), 0,
21838                 MVT::f64, 1, 0,
21839  0,
21840 75, TARGET_VAL(ISD::FP_ROUND),
21841  OPC_RecordChild0,
21842  OPC_SwitchType , 42, MVT::f32,
21843   OPC_Scope, 9,
21844    OPC_CheckPatternPredicate, 2,
21845    OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_S_D32), 0,
21846                  MVT::f32, 1, 0,
21847   9,
21848    OPC_CheckPatternPredicate, 1,
21849    OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_S_D64), 0,
21850                  MVT::f32, 1, 0,
21851   9,
21852    OPC_CheckPatternPredicate, 4,
21853    OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_S_D64_MM), 0,
21854                  MVT::f32, 1, 0,
21855   9,
21856    OPC_CheckPatternPredicate, 3,
21857    OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_S_D32_MM), 0,
21858                  MVT::f32, 1, 0,
21859   0,
21860  26, MVT::f16,
21861   OPC_Scope, 11,
21862    OPC_CheckChild0Type, MVT::f32,
21863    OPC_CheckPatternPredicate, 27,
21864    OPC_MorphNodeTo1, TARGET_VAL(Mips::MSA_FP_ROUND_W_PSEUDO), 0,
21865                  MVT::f16, 1, 0,
21866   11,
21867    OPC_CheckChild0Type, MVT::f64,
21868    OPC_CheckPatternPredicate, 27,
21869    OPC_MorphNodeTo1, TARGET_VAL(Mips::MSA_FP_ROUND_D_PSEUDO), 0,
21870                  MVT::f16, 1, 0,
21871   0,
21872  0,
21873 75, TARGET_VAL(ISD::FP_EXTEND),
21874  OPC_RecordChild0,
21875  OPC_SwitchType , 59, MVT::f64,
21876   OPC_Scope, 44,
21877    OPC_CheckChild0Type, MVT::f32,
21878    OPC_Scope, 9,
21879     OPC_CheckPatternPredicate, 2,
21880     OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_D32_S), 0,
21881                   MVT::f64, 1, 0,
21882    9,
21883     OPC_CheckPatternPredicate, 1,
21884     OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_D64_S), 0,
21885                   MVT::f64, 1, 0,
21886    9,
21887     OPC_CheckPatternPredicate, 4,
21888     OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_D64_S_MM), 0,
21889                   MVT::f64, 1, 0,
21890    9,
21891     OPC_CheckPatternPredicate, 3,
21892     OPC_MorphNodeTo1, TARGET_VAL(Mips::CVT_D32_S_MM), 0,
21893                   MVT::f64, 1, 0,
21894    0,
21895   11,
21896    OPC_CheckChild0Type, MVT::f16,
21897    OPC_CheckPatternPredicate, 27,
21898    OPC_MorphNodeTo1, TARGET_VAL(Mips::MSA_FP_EXTEND_D_PSEUDO), 0,
21899                  MVT::f64, 1, 0,
21900   0,
21901  9, MVT::f32,
21902   OPC_CheckPatternPredicate, 27,
21903   OPC_MorphNodeTo1, TARGET_VAL(Mips::MSA_FP_EXTEND_W_PSEUDO), 0,
21904                 MVT::f32, 1, 0,
21905  0,
21906 33, TARGET_VAL(MipsISD::FSELECT),
21907  OPC_RecordChild0,
21908  OPC_CheckChild0Type, MVT::f64,
21909  OPC_RecordChild1,
21910  OPC_RecordChild2,
21911  OPC_CheckType, MVT::f64,
21912  OPC_Scope, 11,
21913   OPC_CheckPatternPredicate, 42,
21914   OPC_MorphNodeTo1, TARGET_VAL(Mips::SEL_D), 0,
21915                 MVT::f64, 3, 0, 2, 1,
21916  11,
21917   OPC_CheckPatternPredicate, 16,
21918   OPC_MorphNodeTo1, TARGET_VAL(Mips::SEL_D_MMR6), 0,
21919                 MVT::f64, 3, 0, 2, 1,
21920  0,
21921 124|128,2, TARGET_VAL(MipsISD::VSHF),
21922  OPC_Scope, 88,
21923   OPC_MoveChild0,
21924   OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
21925   OPC_MoveChild0,
21926   OPC_CheckOpcode, TARGET_VAL(ISD::AND),
21927   OPC_MoveChild0,
21928   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
21929   OPC_Scope, 36,
21930    OPC_RecordChild0,
21931    OPC_CheckChild0Type, MVT::i32,
21932    OPC_CheckChild1Same, 0,
21933    OPC_CheckChild2Same, 0,
21934    OPC_CheckChild3Same, 0,
21935    OPC_MoveParent,
21936    OPC_MoveChild1,
21937    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
21938    OPC_MoveParent,
21939    OPC_CheckType, MVT::v4i32,
21940    OPC_MoveParent,
21941    OPC_CheckType, MVT::v2i64,
21942    OPC_MoveParent,
21943    OPC_RecordChild1,
21944    OPC_CheckChild2Same, 1,
21945    OPC_CheckType, MVT::v2i64,
21946    OPC_CheckPatternPredicate, 26,
21947    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLAT_D), 0,
21948                  MVT::v2i64, 2, 1, 0,
21949   36,
21950    OPC_MoveParent,
21951    OPC_MoveChild1,
21952    OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
21953    OPC_RecordChild0,
21954    OPC_CheckChild0Type, MVT::i32,
21955    OPC_CheckChild1Same, 0,
21956    OPC_CheckChild2Same, 0,
21957    OPC_CheckChild3Same, 0,
21958    OPC_MoveParent,
21959    OPC_CheckType, MVT::v4i32,
21960    OPC_MoveParent,
21961    OPC_CheckType, MVT::v2i64,
21962    OPC_MoveParent,
21963    OPC_RecordChild1,
21964    OPC_CheckChild2Same, 1,
21965    OPC_CheckType, MVT::v2i64,
21966    OPC_CheckPatternPredicate, 26,
21967    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLAT_D), 0,
21968                  MVT::v2i64, 2, 1, 0,
21969   0,
21970  83,
21971   OPC_RecordChild0,
21972   OPC_SwitchType , 18, MVT::v16i8,
21973    OPC_CheckChild0Type, MVT::v16i8,
21974    OPC_RecordChild1,
21975    OPC_CheckChild2Same, 1,
21976    OPC_CheckPatternPredicate, 26,
21977    OPC_CheckComplexPat, /*CP*/27, /*#*/0,
21978    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLATI_B), 0,
21979                  MVT::v16i8, 2, 1, 2,
21980   18, MVT::v8i16,
21981    OPC_CheckChild0Type, MVT::v8i16,
21982    OPC_RecordChild1,
21983    OPC_CheckChild2Same, 1,
21984    OPC_CheckPatternPredicate, 26,
21985    OPC_CheckComplexPat, /*CP*/28, /*#*/0,
21986    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLATI_H), 0,
21987                  MVT::v8i16, 2, 1, 2,
21988   18, MVT::v4i32,
21989    OPC_CheckChild0Type, MVT::v4i32,
21990    OPC_RecordChild1,
21991    OPC_CheckChild2Same, 1,
21992    OPC_CheckPatternPredicate, 26,
21993    OPC_CheckComplexPat, /*CP*/29, /*#*/0,
21994    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLATI_W), 0,
21995                  MVT::v4i32, 2, 1, 2,
21996   18, MVT::v2i64,
21997    OPC_CheckChild0Type, MVT::v2i64,
21998    OPC_RecordChild1,
21999    OPC_CheckChild2Same, 1,
22000    OPC_CheckPatternPredicate, 26,
22001    OPC_CheckComplexPat, /*CP*/30, /*#*/0,
22002    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLATI_D), 0,
22003                  MVT::v2i64, 2, 1, 2,
22004   0,
22005  3|128,1,
22006   OPC_MoveChild0,
22007   OPC_CheckOpcode, TARGET_VAL(ISD::BUILD_VECTOR),
22008   OPC_RecordChild0,
22009   OPC_CheckChild0Type, MVT::i32,
22010   OPC_CheckChild1Same, 0,
22011   OPC_CheckChild2Same, 0,
22012   OPC_CheckChild3Same, 0,
22013   OPC_Scope, 96,
22014    OPC_MoveChild4,
22015    OPC_CheckSame, 0,
22016    OPC_MoveParent,
22017    OPC_MoveChild5,
22018    OPC_CheckSame, 0,
22019    OPC_MoveParent,
22020    OPC_MoveChild6,
22021    OPC_CheckSame, 0,
22022    OPC_MoveParent,
22023    OPC_MoveChild7,
22024    OPC_CheckSame, 0,
22025    OPC_MoveParent,
22026    OPC_Scope, 58,
22027     OPC_MoveChild, 8,
22028     OPC_CheckSame, 0,
22029     OPC_MoveParent,
22030     OPC_MoveChild, 9,
22031     OPC_CheckSame, 0,
22032     OPC_MoveParent,
22033     OPC_MoveChild, 10,
22034     OPC_CheckSame, 0,
22035     OPC_MoveParent,
22036     OPC_MoveChild, 11,
22037     OPC_CheckSame, 0,
22038     OPC_MoveParent,
22039     OPC_MoveChild, 12,
22040     OPC_CheckSame, 0,
22041     OPC_MoveParent,
22042     OPC_MoveChild, 13,
22043     OPC_CheckSame, 0,
22044     OPC_MoveParent,
22045     OPC_MoveChild, 14,
22046     OPC_CheckSame, 0,
22047     OPC_MoveParent,
22048     OPC_MoveChild, 15,
22049     OPC_CheckSame, 0,
22050     OPC_MoveParent,
22051     OPC_CheckType, MVT::v16i8,
22052     OPC_MoveParent,
22053     OPC_RecordChild1,
22054     OPC_CheckChild2Same, 1,
22055     OPC_CheckType, MVT::v16i8,
22056     OPC_CheckPatternPredicate, 26,
22057     OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLAT_B), 0,
22058                   MVT::v16i8, 2, 1, 0,
22059    18,
22060     OPC_CheckType, MVT::v8i16,
22061     OPC_MoveParent,
22062     OPC_RecordChild1,
22063     OPC_CheckChild2Same, 1,
22064     OPC_CheckType, MVT::v8i16,
22065     OPC_CheckPatternPredicate, 26,
22066     OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLAT_H), 0,
22067                   MVT::v8i16, 2, 1, 0,
22068    0,
22069   18,
22070    OPC_CheckType, MVT::v4i32,
22071    OPC_MoveParent,
22072    OPC_RecordChild1,
22073    OPC_CheckChild2Same, 1,
22074    OPC_CheckType, MVT::v4i32,
22075    OPC_CheckPatternPredicate, 26,
22076    OPC_MorphNodeTo1, TARGET_VAL(Mips::SPLAT_W), 0,
22077                  MVT::v4i32, 2, 1, 0,
22078   0,
22079  71,
22080   OPC_RecordChild0,
22081   OPC_SwitchType , 15, MVT::v16i8,
22082    OPC_CheckChild0Type, MVT::v16i8,
22083    OPC_RecordChild1,
22084    OPC_RecordChild2,
22085    OPC_CheckPatternPredicate, 26,
22086    OPC_MorphNodeTo1, TARGET_VAL(Mips::VSHF_B), 0,
22087                  MVT::v16i8, 3, 0, 1, 2,
22088   15, MVT::v8i16,
22089    OPC_CheckChild0Type, MVT::v8i16,
22090    OPC_RecordChild1,
22091    OPC_RecordChild2,
22092    OPC_CheckPatternPredicate, 26,
22093    OPC_MorphNodeTo1, TARGET_VAL(Mips::VSHF_H), 0,
22094                  MVT::v8i16, 3, 0, 1, 2,
22095   15, MVT::v4i32,
22096    OPC_CheckChild0Type, MVT::v4i32,
22097    OPC_RecordChild1,
22098    OPC_RecordChild2,
22099    OPC_CheckPatternPredicate, 26,
22100    OPC_MorphNodeTo1, TARGET_VAL(Mips::VSHF_W), 0,
22101                  MVT::v4i32, 3, 0, 1, 2,
22102   15, MVT::v2i64,
22103    OPC_CheckChild0Type, MVT::v2i64,
22104    OPC_RecordChild1,
22105    OPC_RecordChild2,
22106    OPC_CheckPatternPredicate, 26,
22107    OPC_MorphNodeTo1, TARGET_VAL(Mips::VSHF_D), 0,
22108                  MVT::v2i64, 3, 0, 1, 2,
22109   0,
22110  0,
22111 124, TARGET_VAL(MipsISD::INSVE),
22112  OPC_RecordChild0,
22113  OPC_RecordChild1,
22114  OPC_MoveChild1,
22115  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
22116  OPC_Scope, 28,
22117   OPC_CheckPredicate, 28,
22118   OPC_MoveParent,
22119   OPC_RecordChild2,
22120   OPC_RecordChild3,
22121   OPC_MoveChild3,
22122   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22123   OPC_CheckPredicate, 22,
22124   OPC_MoveParent,
22125   OPC_CheckType, MVT::v16i8,
22126   OPC_CheckPatternPredicate, 26,
22127   OPC_EmitConvertToTarget, 3,
22128   OPC_MorphNodeTo1, TARGET_VAL(Mips::INSVE_B), 0,
22129                 MVT::v16i8, 4, 0, 1, 2, 4,
22130  28,
22131   OPC_CheckPredicate, 29,
22132   OPC_MoveParent,
22133   OPC_RecordChild2,
22134   OPC_RecordChild3,
22135   OPC_MoveChild3,
22136   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22137   OPC_CheckPredicate, 22,
22138   OPC_MoveParent,
22139   OPC_CheckType, MVT::v8i16,
22140   OPC_CheckPatternPredicate, 26,
22141   OPC_EmitConvertToTarget, 3,
22142   OPC_MorphNodeTo1, TARGET_VAL(Mips::INSVE_H), 0,
22143                 MVT::v8i16, 4, 0, 1, 2, 4,
22144  28,
22145   OPC_CheckPredicate, 30,
22146   OPC_MoveParent,
22147   OPC_RecordChild2,
22148   OPC_RecordChild3,
22149   OPC_MoveChild3,
22150   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22151   OPC_CheckPredicate, 22,
22152   OPC_MoveParent,
22153   OPC_CheckType, MVT::v4i32,
22154   OPC_CheckPatternPredicate, 26,
22155   OPC_EmitConvertToTarget, 3,
22156   OPC_MorphNodeTo1, TARGET_VAL(Mips::INSVE_W), 0,
22157                 MVT::v4i32, 4, 0, 1, 2, 4,
22158  28,
22159   OPC_CheckPredicate, 34,
22160   OPC_MoveParent,
22161   OPC_RecordChild2,
22162   OPC_RecordChild3,
22163   OPC_MoveChild3,
22164   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22165   OPC_CheckPredicate, 22,
22166   OPC_MoveParent,
22167   OPC_CheckType, MVT::v2i64,
22168   OPC_CheckPatternPredicate, 26,
22169   OPC_EmitConvertToTarget, 3,
22170   OPC_MorphNodeTo1, TARGET_VAL(Mips::INSVE_D), 0,
22171                 MVT::v2i64, 4, 0, 1, 2, 4,
22172  0,
22173 64|128,2, TARGET_VAL(ISD::VSELECT),
22174  OPC_RecordChild0,
22175  OPC_Scope, 36,
22176   OPC_RecordChild1,
22177   OPC_RecordChild2,
22178   OPC_SwitchType , 14, MVT::v16i8,
22179    OPC_CheckPatternPredicate, 26,
22180    OPC_CheckComplexPat, /*CP*/31, /*#*/0,
22181    OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSLI_B), 0,
22182                  MVT::v16i8, 3, 2, 1, 3,
22183   14, MVT::v8i16,
22184    OPC_CheckPatternPredicate, 26,
22185    OPC_CheckComplexPat, /*CP*/32, /*#*/0,
22186    OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSLI_H), 0,
22187                  MVT::v8i16, 3, 2, 1, 3,
22188   0,
22189  20,
22190   OPC_CheckChild0Type, MVT::v4i32,
22191   OPC_RecordChild1,
22192   OPC_RecordChild2,
22193   OPC_CheckType, MVT::v4i32,
22194   OPC_CheckPatternPredicate, 26,
22195   OPC_CheckComplexPat, /*CP*/33, /*#*/0,
22196   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSLI_W), 0,
22197                 MVT::v4i32, 3, 2, 1, 3,
22198  20,
22199   OPC_CheckChild0Type, MVT::v2i64,
22200   OPC_RecordChild1,
22201   OPC_RecordChild2,
22202   OPC_CheckType, MVT::v2i64,
22203   OPC_CheckPatternPredicate, 26,
22204   OPC_CheckComplexPat, /*CP*/34, /*#*/0,
22205   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSLI_D), 0,
22206                 MVT::v2i64, 3, 2, 1, 3,
22207  36,
22208   OPC_RecordChild1,
22209   OPC_RecordChild2,
22210   OPC_SwitchType , 14, MVT::v16i8,
22211    OPC_CheckPatternPredicate, 26,
22212    OPC_CheckComplexPat, /*CP*/35, /*#*/0,
22213    OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSRI_B), 0,
22214                  MVT::v16i8, 3, 2, 1, 3,
22215   14, MVT::v8i16,
22216    OPC_CheckPatternPredicate, 26,
22217    OPC_CheckComplexPat, /*CP*/36, /*#*/0,
22218    OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSRI_H), 0,
22219                  MVT::v8i16, 3, 2, 1, 3,
22220   0,
22221  20,
22222   OPC_CheckChild0Type, MVT::v4i32,
22223   OPC_RecordChild1,
22224   OPC_RecordChild2,
22225   OPC_CheckType, MVT::v4i32,
22226   OPC_CheckPatternPredicate, 26,
22227   OPC_CheckComplexPat, /*CP*/37, /*#*/0,
22228   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSRI_W), 0,
22229                 MVT::v4i32, 3, 2, 1, 3,
22230  20,
22231   OPC_CheckChild0Type, MVT::v2i64,
22232   OPC_RecordChild1,
22233   OPC_RecordChild2,
22234   OPC_CheckType, MVT::v2i64,
22235   OPC_CheckPatternPredicate, 26,
22236   OPC_CheckComplexPat, /*CP*/38, /*#*/0,
22237   OPC_MorphNodeTo1, TARGET_VAL(Mips::BINSRI_D), 0,
22238                 MVT::v2i64, 3, 2, 1, 3,
22239  92,
22240   OPC_RecordChild1,
22241   OPC_RecordChild2,
22242   OPC_SwitchType , 73, MVT::v16i8,
22243    OPC_CheckPatternPredicate, 26,
22244    OPC_Scope, 25,
22245     OPC_CheckComplexPat, /*CP*/14, /*#*/0,
22246     OPC_Scope, 9,
22247      OPC_MorphNodeTo1, TARGET_VAL(Mips::BMNZI_B), 0,
22248                    MVT::v16i8, 3, 2, 1, 3,
22249     9,
22250      OPC_MorphNodeTo1, TARGET_VAL(Mips::BMZI_B), 0,
22251                    MVT::v16i8, 3, 1, 2, 3,
22252     0,
22253    12,
22254     OPC_CheckComplexPat, /*CP*/14, /*#*/1,
22255     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSELI_B), 0,
22256                   MVT::v16i8, 3, 0, 2, 3,
22257    9,
22258     OPC_MorphNodeTo1, TARGET_VAL(Mips::BMNZ_V), 0,
22259                   MVT::v16i8, 3, 2, 1, 0,
22260    9,
22261     OPC_MorphNodeTo1, TARGET_VAL(Mips::BMZ_V), 0,
22262                   MVT::v16i8, 3, 1, 2, 0,
22263    9,
22264     OPC_MorphNodeTo1, TARGET_VAL(Mips::BSEL_V), 0,
22265                   MVT::v16i8, 3, 0, 2, 1,
22266    0,
22267   11, MVT::v8i16,
22268    OPC_CheckPatternPredicate, 26,
22269    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSEL_H_PSEUDO), 0,
22270                  MVT::v8i16, 3, 0, 2, 1,
22271   0,
22272  32,
22273   OPC_CheckChild0Type, MVT::v4i32,
22274   OPC_RecordChild1,
22275   OPC_RecordChild2,
22276   OPC_SwitchType , 11, MVT::v4i32,
22277    OPC_CheckPatternPredicate, 26,
22278    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSEL_W_PSEUDO), 0,
22279                  MVT::v4i32, 3, 0, 2, 1,
22280   11, MVT::v4f32,
22281    OPC_CheckPatternPredicate, 26,
22282    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSEL_FW_PSEUDO), 0,
22283                  MVT::v4f32, 3, 0, 2, 1,
22284   0,
22285  32,
22286   OPC_CheckChild0Type, MVT::v2i64,
22287   OPC_RecordChild1,
22288   OPC_RecordChild2,
22289   OPC_SwitchType , 11, MVT::v2i64,
22290    OPC_CheckPatternPredicate, 26,
22291    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSEL_D_PSEUDO), 0,
22292                  MVT::v2i64, 3, 0, 2, 1,
22293   11, MVT::v2f64,
22294    OPC_CheckPatternPredicate, 26,
22295    OPC_MorphNodeTo1, TARGET_VAL(Mips::BSEL_FD_PSEUDO), 0,
22296                  MVT::v2f64, 3, 0, 2, 1,
22297   0,
22298  0,
22299 32|128,1, TARGET_VAL(ISD::SMAX),
22300  OPC_RecordChild0,
22301  OPC_RecordChild1,
22302  OPC_SwitchType , 37, MVT::v16i8,
22303   OPC_CheckPatternPredicate, 26,
22304   OPC_Scope, 11,
22305    OPC_CheckComplexPat, /*CP*/20, /*#*/1,
22306    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_B), 0,
22307                  MVT::v16i8, 2, 0, 2,
22308   11,
22309    OPC_CheckComplexPat, /*CP*/20, /*#*/0,
22310    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_B), 0,
22311                  MVT::v16i8, 2, 1, 2,
22312   8,
22313    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_S_B), 0,
22314                  MVT::v16i8, 2, 0, 1,
22315   0,
22316  37, MVT::v8i16,
22317   OPC_CheckPatternPredicate, 26,
22318   OPC_Scope, 11,
22319    OPC_CheckComplexPat, /*CP*/21, /*#*/1,
22320    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_H), 0,
22321                  MVT::v8i16, 2, 0, 2,
22322   11,
22323    OPC_CheckComplexPat, /*CP*/21, /*#*/0,
22324    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_H), 0,
22325                  MVT::v8i16, 2, 1, 2,
22326   8,
22327    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_S_H), 0,
22328                  MVT::v8i16, 2, 0, 1,
22329   0,
22330  37, MVT::v4i32,
22331   OPC_CheckPatternPredicate, 26,
22332   OPC_Scope, 11,
22333    OPC_CheckComplexPat, /*CP*/22, /*#*/1,
22334    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_W), 0,
22335                  MVT::v4i32, 2, 0, 2,
22336   11,
22337    OPC_CheckComplexPat, /*CP*/22, /*#*/0,
22338    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_W), 0,
22339                  MVT::v4i32, 2, 1, 2,
22340   8,
22341    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_S_W), 0,
22342                  MVT::v4i32, 2, 0, 1,
22343   0,
22344  37, MVT::v2i64,
22345   OPC_CheckPatternPredicate, 26,
22346   OPC_Scope, 11,
22347    OPC_CheckComplexPat, /*CP*/23, /*#*/1,
22348    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_D), 0,
22349                  MVT::v2i64, 2, 0, 2,
22350   11,
22351    OPC_CheckComplexPat, /*CP*/23, /*#*/0,
22352    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_S_D), 0,
22353                  MVT::v2i64, 2, 1, 2,
22354   8,
22355    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_S_D), 0,
22356                  MVT::v2i64, 2, 0, 1,
22357   0,
22358  0,
22359 32|128,1, TARGET_VAL(ISD::UMAX),
22360  OPC_RecordChild0,
22361  OPC_RecordChild1,
22362  OPC_SwitchType , 37, MVT::v16i8,
22363   OPC_CheckPatternPredicate, 26,
22364   OPC_Scope, 11,
22365    OPC_CheckComplexPat, /*CP*/16, /*#*/1,
22366    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_B), 0,
22367                  MVT::v16i8, 2, 0, 2,
22368   11,
22369    OPC_CheckComplexPat, /*CP*/16, /*#*/0,
22370    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_B), 0,
22371                  MVT::v16i8, 2, 1, 2,
22372   8,
22373    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_U_B), 0,
22374                  MVT::v16i8, 2, 0, 1,
22375   0,
22376  37, MVT::v8i16,
22377   OPC_CheckPatternPredicate, 26,
22378   OPC_Scope, 11,
22379    OPC_CheckComplexPat, /*CP*/17, /*#*/1,
22380    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_H), 0,
22381                  MVT::v8i16, 2, 0, 2,
22382   11,
22383    OPC_CheckComplexPat, /*CP*/17, /*#*/0,
22384    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_H), 0,
22385                  MVT::v8i16, 2, 1, 2,
22386   8,
22387    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_U_H), 0,
22388                  MVT::v8i16, 2, 0, 1,
22389   0,
22390  37, MVT::v4i32,
22391   OPC_CheckPatternPredicate, 26,
22392   OPC_Scope, 11,
22393    OPC_CheckComplexPat, /*CP*/18, /*#*/1,
22394    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_W), 0,
22395                  MVT::v4i32, 2, 0, 2,
22396   11,
22397    OPC_CheckComplexPat, /*CP*/18, /*#*/0,
22398    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_W), 0,
22399                  MVT::v4i32, 2, 1, 2,
22400   8,
22401    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_U_W), 0,
22402                  MVT::v4i32, 2, 0, 1,
22403   0,
22404  37, MVT::v2i64,
22405   OPC_CheckPatternPredicate, 26,
22406   OPC_Scope, 11,
22407    OPC_CheckComplexPat, /*CP*/19, /*#*/1,
22408    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_D), 0,
22409                  MVT::v2i64, 2, 0, 2,
22410   11,
22411    OPC_CheckComplexPat, /*CP*/19, /*#*/0,
22412    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAXI_U_D), 0,
22413                  MVT::v2i64, 2, 1, 2,
22414   8,
22415    OPC_MorphNodeTo1, TARGET_VAL(Mips::MAX_U_D), 0,
22416                  MVT::v2i64, 2, 0, 1,
22417   0,
22418  0,
22419 32|128,1, TARGET_VAL(ISD::SMIN),
22420  OPC_RecordChild0,
22421  OPC_RecordChild1,
22422  OPC_SwitchType , 37, MVT::v16i8,
22423   OPC_CheckPatternPredicate, 26,
22424   OPC_Scope, 11,
22425    OPC_CheckComplexPat, /*CP*/20, /*#*/1,
22426    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_B), 0,
22427                  MVT::v16i8, 2, 0, 2,
22428   11,
22429    OPC_CheckComplexPat, /*CP*/20, /*#*/0,
22430    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_B), 0,
22431                  MVT::v16i8, 2, 1, 2,
22432   8,
22433    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_S_B), 0,
22434                  MVT::v16i8, 2, 0, 1,
22435   0,
22436  37, MVT::v8i16,
22437   OPC_CheckPatternPredicate, 26,
22438   OPC_Scope, 11,
22439    OPC_CheckComplexPat, /*CP*/21, /*#*/1,
22440    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_H), 0,
22441                  MVT::v8i16, 2, 0, 2,
22442   11,
22443    OPC_CheckComplexPat, /*CP*/21, /*#*/0,
22444    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_H), 0,
22445                  MVT::v8i16, 2, 1, 2,
22446   8,
22447    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_S_H), 0,
22448                  MVT::v8i16, 2, 0, 1,
22449   0,
22450  37, MVT::v4i32,
22451   OPC_CheckPatternPredicate, 26,
22452   OPC_Scope, 11,
22453    OPC_CheckComplexPat, /*CP*/22, /*#*/1,
22454    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_W), 0,
22455                  MVT::v4i32, 2, 0, 2,
22456   11,
22457    OPC_CheckComplexPat, /*CP*/22, /*#*/0,
22458    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_W), 0,
22459                  MVT::v4i32, 2, 1, 2,
22460   8,
22461    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_S_W), 0,
22462                  MVT::v4i32, 2, 0, 1,
22463   0,
22464  37, MVT::v2i64,
22465   OPC_CheckPatternPredicate, 26,
22466   OPC_Scope, 11,
22467    OPC_CheckComplexPat, /*CP*/23, /*#*/1,
22468    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_D), 0,
22469                  MVT::v2i64, 2, 0, 2,
22470   11,
22471    OPC_CheckComplexPat, /*CP*/23, /*#*/0,
22472    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_S_D), 0,
22473                  MVT::v2i64, 2, 1, 2,
22474   8,
22475    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_S_D), 0,
22476                  MVT::v2i64, 2, 0, 1,
22477   0,
22478  0,
22479 32|128,1, TARGET_VAL(ISD::UMIN),
22480  OPC_RecordChild0,
22481  OPC_RecordChild1,
22482  OPC_SwitchType , 37, MVT::v16i8,
22483   OPC_CheckPatternPredicate, 26,
22484   OPC_Scope, 11,
22485    OPC_CheckComplexPat, /*CP*/16, /*#*/1,
22486    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_B), 0,
22487                  MVT::v16i8, 2, 0, 2,
22488   11,
22489    OPC_CheckComplexPat, /*CP*/16, /*#*/0,
22490    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_B), 0,
22491                  MVT::v16i8, 2, 1, 2,
22492   8,
22493    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_U_B), 0,
22494                  MVT::v16i8, 2, 0, 1,
22495   0,
22496  37, MVT::v8i16,
22497   OPC_CheckPatternPredicate, 26,
22498   OPC_Scope, 11,
22499    OPC_CheckComplexPat, /*CP*/17, /*#*/1,
22500    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_H), 0,
22501                  MVT::v8i16, 2, 0, 2,
22502   11,
22503    OPC_CheckComplexPat, /*CP*/17, /*#*/0,
22504    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_H), 0,
22505                  MVT::v8i16, 2, 1, 2,
22506   8,
22507    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_U_H), 0,
22508                  MVT::v8i16, 2, 0, 1,
22509   0,
22510  37, MVT::v4i32,
22511   OPC_CheckPatternPredicate, 26,
22512   OPC_Scope, 11,
22513    OPC_CheckComplexPat, /*CP*/18, /*#*/1,
22514    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_W), 0,
22515                  MVT::v4i32, 2, 0, 2,
22516   11,
22517    OPC_CheckComplexPat, /*CP*/18, /*#*/0,
22518    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_W), 0,
22519                  MVT::v4i32, 2, 1, 2,
22520   8,
22521    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_U_W), 0,
22522                  MVT::v4i32, 2, 0, 1,
22523   0,
22524  37, MVT::v2i64,
22525   OPC_CheckPatternPredicate, 26,
22526   OPC_Scope, 11,
22527    OPC_CheckComplexPat, /*CP*/19, /*#*/1,
22528    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_D), 0,
22529                  MVT::v2i64, 2, 0, 2,
22530   11,
22531    OPC_CheckComplexPat, /*CP*/19, /*#*/0,
22532    OPC_MorphNodeTo1, TARGET_VAL(Mips::MINI_U_D), 0,
22533                  MVT::v2i64, 2, 1, 2,
22534   8,
22535    OPC_MorphNodeTo1, TARGET_VAL(Mips::MIN_U_D), 0,
22536                  MVT::v2i64, 2, 0, 1,
22537   0,
22538  0,
22539 79, TARGET_VAL(MipsISD::VNOR),
22540  OPC_RecordChild0,
22541  OPC_RecordChild1,
22542  OPC_SwitchType , 37, MVT::v16i8,
22543   OPC_CheckPatternPredicate, 26,
22544   OPC_Scope, 11,
22545    OPC_CheckComplexPat, /*CP*/14, /*#*/1,
22546    OPC_MorphNodeTo1, TARGET_VAL(Mips::NORI_B), 0,
22547                  MVT::v16i8, 2, 0, 2,
22548   11,
22549    OPC_CheckComplexPat, /*CP*/14, /*#*/0,
22550    OPC_MorphNodeTo1, TARGET_VAL(Mips::NORI_B), 0,
22551                  MVT::v16i8, 2, 1, 2,
22552   8,
22553    OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_V), 0,
22554                  MVT::v16i8, 2, 0, 1,
22555   0,
22556  10, MVT::v8i16,
22557   OPC_CheckPatternPredicate, 26,
22558   OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_V_H_PSEUDO), 0,
22559                 MVT::v8i16, 2, 0, 1,
22560  10, MVT::v4i32,
22561   OPC_CheckPatternPredicate, 26,
22562   OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_V_W_PSEUDO), 0,
22563                 MVT::v4i32, 2, 0, 1,
22564  10, MVT::v2i64,
22565   OPC_CheckPatternPredicate, 26,
22566   OPC_MorphNodeTo1, TARGET_VAL(Mips::NOR_V_D_PSEUDO), 0,
22567                 MVT::v2i64, 2, 0, 1,
22568  0,
22569 90|128,2, TARGET_VAL(ISD::INSERT_VECTOR_ELT),
22570  OPC_RecordChild0,
22571  OPC_RecordChild1,
22572  OPC_Scope, 29|128,1,
22573   OPC_CheckChild1Type, MVT::i32,
22574   OPC_RecordChild2,
22575   OPC_Scope, 63,
22576    OPC_MoveChild2,
22577    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22578    OPC_Scope, 18,
22579     OPC_CheckPredicate, 28,
22580     OPC_MoveParent,
22581     OPC_CheckType, MVT::v16i8,
22582     OPC_CheckPatternPredicate, 26,
22583     OPC_EmitConvertToTarget, 2,
22584     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_B), 0,
22585                   MVT::v16i8, 3, 0, 1, 3,
22586    18,
22587     OPC_CheckPredicate, 29,
22588     OPC_MoveParent,
22589     OPC_CheckType, MVT::v8i16,
22590     OPC_CheckPatternPredicate, 26,
22591     OPC_EmitConvertToTarget, 2,
22592     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_H), 0,
22593                   MVT::v8i16, 3, 0, 1, 3,
22594    18,
22595     OPC_CheckPredicate, 30,
22596     OPC_MoveParent,
22597     OPC_CheckType, MVT::v4i32,
22598     OPC_CheckPatternPredicate, 26,
22599     OPC_EmitConvertToTarget, 2,
22600     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_W), 0,
22601                   MVT::v4i32, 3, 0, 1, 3,
22602    0,
22603   43,
22604    OPC_CheckChild2Type, MVT::i32,
22605    OPC_SwitchType , 11, MVT::v16i8,
22606     OPC_CheckPatternPredicate, 26,
22607     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_B_VIDX_PSEUDO), 0,
22608                   MVT::v16i8, 3, 0, 2, 1,
22609    11, MVT::v8i16,
22610     OPC_CheckPatternPredicate, 26,
22611     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_H_VIDX_PSEUDO), 0,
22612                   MVT::v8i16, 3, 0, 2, 1,
22613    11, MVT::v4i32,
22614     OPC_CheckPatternPredicate, 26,
22615     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_W_VIDX_PSEUDO), 0,
22616                   MVT::v4i32, 3, 0, 2, 1,
22617    0,
22618   43,
22619    OPC_CheckChild2Type, MVT::i64,
22620    OPC_SwitchType , 11, MVT::v16i8,
22621     OPC_CheckPatternPredicate, 26,
22622     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_B_VIDX64_PSEUDO), 0,
22623                   MVT::v16i8, 3, 0, 2, 1,
22624    11, MVT::v8i16,
22625     OPC_CheckPatternPredicate, 26,
22626     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_H_VIDX64_PSEUDO), 0,
22627                   MVT::v8i16, 3, 0, 2, 1,
22628    11, MVT::v4i32,
22629     OPC_CheckPatternPredicate, 26,
22630     OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_W_VIDX64_PSEUDO), 0,
22631                   MVT::v4i32, 3, 0, 2, 1,
22632    0,
22633   0,
22634  60,
22635   OPC_CheckChild1Type, MVT::i64,
22636   OPC_RecordChild2,
22637   OPC_Scope, 22,
22638    OPC_MoveChild2,
22639    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22640    OPC_CheckPredicate, 34,
22641    OPC_MoveParent,
22642    OPC_CheckType, MVT::v2i64,
22643    OPC_CheckPatternPredicate, 61,
22644    OPC_EmitConvertToTarget, 2,
22645    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_D), 0,
22646                  MVT::v2i64, 3, 0, 1, 3,
22647   15,
22648    OPC_CheckChild2Type, MVT::i32,
22649    OPC_CheckType, MVT::v2i64,
22650    OPC_CheckPatternPredicate, 26,
22651    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_D_VIDX_PSEUDO), 0,
22652                  MVT::v2i64, 3, 0, 2, 1,
22653   15,
22654    OPC_CheckChild2Type, MVT::i64,
22655    OPC_CheckType, MVT::v2i64,
22656    OPC_CheckPatternPredicate, 26,
22657    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_D_VIDX64_PSEUDO), 0,
22658                  MVT::v2i64, 3, 0, 2, 1,
22659   0,
22660  60,
22661   OPC_CheckChild1Type, MVT::f32,
22662   OPC_RecordChild2,
22663   OPC_Scope, 22,
22664    OPC_MoveChild2,
22665    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22666    OPC_CheckPredicate, 30,
22667    OPC_MoveParent,
22668    OPC_CheckType, MVT::v4f32,
22669    OPC_CheckPatternPredicate, 26,
22670    OPC_EmitConvertToTarget, 2,
22671    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_FW_PSEUDO), 0,
22672                  MVT::v4f32, 3, 0, 3, 1,
22673   15,
22674    OPC_CheckChild2Type, MVT::i32,
22675    OPC_CheckType, MVT::v4f32,
22676    OPC_CheckPatternPredicate, 26,
22677    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_FW_VIDX_PSEUDO), 0,
22678                  MVT::v4f32, 3, 0, 2, 1,
22679   15,
22680    OPC_CheckChild2Type, MVT::i64,
22681    OPC_CheckType, MVT::v4f32,
22682    OPC_CheckPatternPredicate, 26,
22683    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_FW_VIDX64_PSEUDO), 0,
22684                  MVT::v4f32, 3, 0, 2, 1,
22685   0,
22686  60,
22687   OPC_CheckChild1Type, MVT::f64,
22688   OPC_RecordChild2,
22689   OPC_Scope, 22,
22690    OPC_MoveChild2,
22691    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22692    OPC_CheckPredicate, 34,
22693    OPC_MoveParent,
22694    OPC_CheckType, MVT::v2f64,
22695    OPC_CheckPatternPredicate, 26,
22696    OPC_EmitConvertToTarget, 2,
22697    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_FD_PSEUDO), 0,
22698                  MVT::v2f64, 3, 0, 3, 1,
22699   15,
22700    OPC_CheckChild2Type, MVT::i32,
22701    OPC_CheckType, MVT::v2f64,
22702    OPC_CheckPatternPredicate, 26,
22703    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_FD_VIDX_PSEUDO), 0,
22704                  MVT::v2f64, 3, 0, 2, 1,
22705   15,
22706    OPC_CheckChild2Type, MVT::i64,
22707    OPC_CheckType, MVT::v2f64,
22708    OPC_CheckPatternPredicate, 26,
22709    OPC_MorphNodeTo1, TARGET_VAL(Mips::INSERT_FD_VIDX64_PSEUDO), 0,
22710                  MVT::v2f64, 3, 0, 2, 1,
22711   0,
22712  0,
22713 47, TARGET_VAL(MipsISD::SHF),
22714  OPC_RecordChild0,
22715  OPC_MoveChild0,
22716  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
22717  OPC_CheckPredicate, 31,
22718  OPC_MoveParent,
22719  OPC_RecordChild1,
22720  OPC_SwitchType , 10, MVT::v16i8,
22721   OPC_CheckPatternPredicate, 26,
22722   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHF_B), 0,
22723                 MVT::v16i8, 2, 1, 0,
22724  10, MVT::v8i16,
22725   OPC_CheckPatternPredicate, 26,
22726   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHF_H), 0,
22727                 MVT::v8i16, 2, 1, 0,
22728  10, MVT::v4i32,
22729   OPC_CheckPatternPredicate, 26,
22730   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHF_W), 0,
22731                 MVT::v4i32, 2, 1, 0,
22732  0,
22733 37, TARGET_VAL(MipsISD::SHLL_DSP),
22734  OPC_RecordChild0,
22735  OPC_RecordChild1,
22736  OPC_MoveChild1,
22737  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22738  OPC_MoveParent,
22739  OPC_SwitchType , 12, MVT::v2i16,
22740   OPC_CheckPatternPredicate, 28,
22741   OPC_EmitConvertToTarget, 1,
22742   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_PH), 0,
22743                 MVT::v2i16, 2, 0, 2,
22744  12, MVT::v4i8,
22745   OPC_CheckPatternPredicate, 28,
22746   OPC_EmitConvertToTarget, 1,
22747   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHLL_QB), 0,
22748                 MVT::v4i8, 2, 0, 2,
22749  0,
22750 37, TARGET_VAL(MipsISD::SHRA_DSP),
22751  OPC_RecordChild0,
22752  OPC_RecordChild1,
22753  OPC_MoveChild1,
22754  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22755  OPC_MoveParent,
22756  OPC_SwitchType , 12, MVT::v2i16,
22757   OPC_CheckPatternPredicate, 28,
22758   OPC_EmitConvertToTarget, 1,
22759   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_PH), 0,
22760                 MVT::v2i16, 2, 0, 2,
22761  12, MVT::v4i8,
22762   OPC_CheckPatternPredicate, 48,
22763   OPC_EmitConvertToTarget, 1,
22764   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRA_QB), 0,
22765                 MVT::v4i8, 2, 0, 2,
22766  0,
22767 37, TARGET_VAL(MipsISD::SHRL_DSP),
22768  OPC_RecordChild0,
22769  OPC_RecordChild1,
22770  OPC_MoveChild1,
22771  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
22772  OPC_MoveParent,
22773  OPC_SwitchType , 12, MVT::v2i16,
22774   OPC_CheckPatternPredicate, 48,
22775   OPC_EmitConvertToTarget, 1,
22776   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRL_PH), 0,
22777                 MVT::v2i16, 2, 0, 2,
22778  12, MVT::v4i8,
22779   OPC_CheckPatternPredicate, 28,
22780   OPC_EmitConvertToTarget, 1,
22781   OPC_MorphNodeTo1, TARGET_VAL(Mips::SHRL_QB), 0,
22782                 MVT::v4i8, 2, 0, 2,
22783  0,
22784 33|128,1, TARGET_VAL(ISD::BUILD_VECTOR),
22785  OPC_RecordChild0,
22786  OPC_Scope, 105,
22787   OPC_CheckChild0Type, MVT::i32,
22788   OPC_CheckChild1Same, 0,
22789   OPC_CheckChild2Same, 0,
22790   OPC_CheckChild3Same, 0,
22791   OPC_Scope, 82,
22792    OPC_MoveChild4,
22793    OPC_CheckSame, 0,
22794    OPC_MoveParent,
22795    OPC_MoveChild5,
22796    OPC_CheckSame, 0,
22797    OPC_MoveParent,
22798    OPC_MoveChild6,
22799    OPC_CheckSame, 0,
22800    OPC_MoveParent,
22801    OPC_MoveChild7,
22802    OPC_CheckSame, 0,
22803    OPC_MoveParent,
22804    OPC_Scope, 51,
22805     OPC_MoveChild, 8,
22806     OPC_CheckSame, 0,
22807     OPC_MoveParent,
22808     OPC_MoveChild, 9,
22809     OPC_CheckSame, 0,
22810     OPC_MoveParent,
22811     OPC_MoveChild, 10,
22812     OPC_CheckSame, 0,
22813     OPC_MoveParent,
22814     OPC_MoveChild, 11,
22815     OPC_CheckSame, 0,
22816     OPC_MoveParent,
22817     OPC_MoveChild, 12,
22818     OPC_CheckSame, 0,
22819     OPC_MoveParent,
22820     OPC_MoveChild, 13,
22821     OPC_CheckSame, 0,
22822     OPC_MoveParent,
22823     OPC_MoveChild, 14,
22824     OPC_CheckSame, 0,
22825     OPC_MoveParent,
22826     OPC_MoveChild, 15,
22827     OPC_CheckSame, 0,
22828     OPC_MoveParent,
22829     OPC_CheckType, MVT::v16i8,
22830     OPC_CheckPatternPredicate, 26,
22831     OPC_MorphNodeTo1, TARGET_VAL(Mips::FILL_B), 0,
22832                   MVT::v16i8, 1, 0,
22833    11,
22834     OPC_CheckType, MVT::v8i16,
22835     OPC_CheckPatternPredicate, 26,
22836     OPC_MorphNodeTo1, TARGET_VAL(Mips::FILL_H), 0,
22837                   MVT::v8i16, 1, 0,
22838    0,
22839   11,
22840    OPC_CheckType, MVT::v4i32,
22841    OPC_CheckPatternPredicate, 26,
22842    OPC_MorphNodeTo1, TARGET_VAL(Mips::FILL_W), 0,
22843                  MVT::v4i32, 1, 0,
22844   0,
22845  15,
22846   OPC_CheckChild0Type, MVT::i64,
22847   OPC_CheckChild1Same, 0,
22848   OPC_CheckType, MVT::v2i64,
22849   OPC_CheckPatternPredicate, 61,
22850   OPC_MorphNodeTo1, TARGET_VAL(Mips::FILL_D), 0,
22851                 MVT::v2i64, 1, 0,
22852  19,
22853   OPC_CheckChild0Type, MVT::f32,
22854   OPC_CheckChild1Same, 0,
22855   OPC_CheckChild2Same, 0,
22856   OPC_CheckChild3Same, 0,
22857   OPC_CheckType, MVT::v4f32,
22858   OPC_CheckPatternPredicate, 26,
22859   OPC_MorphNodeTo1, TARGET_VAL(Mips::FILL_FW_PSEUDO), 0,
22860                 MVT::v4f32, 1, 0,
22861  15,
22862   OPC_CheckChild0Type, MVT::f64,
22863   OPC_CheckChild1Same, 0,
22864   OPC_CheckType, MVT::v2f64,
22865   OPC_CheckPatternPredicate, 26,
22866   OPC_MorphNodeTo1, TARGET_VAL(Mips::FILL_FD_PSEUDO), 0,
22867                 MVT::v2f64, 1, 0,
22868  0,
22869 25, TARGET_VAL(ISD::FP_TO_SINT),
22870  OPC_RecordChild0,
22871  OPC_SwitchType , 9, MVT::v4i32,
22872   OPC_CheckPatternPredicate, 26,
22873   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTRUNC_S_W), 0,
22874                 MVT::v4i32, 1, 0,
22875  9, MVT::v2i64,
22876   OPC_CheckPatternPredicate, 26,
22877   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTRUNC_S_D), 0,
22878                 MVT::v2i64, 1, 0,
22879  0,
22880 25, TARGET_VAL(ISD::FP_TO_UINT),
22881  OPC_RecordChild0,
22882  OPC_SwitchType , 9, MVT::v4i32,
22883   OPC_CheckPatternPredicate, 26,
22884   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTRUNC_U_W), 0,
22885                 MVT::v4i32, 1, 0,
22886  9, MVT::v2i64,
22887   OPC_CheckPatternPredicate, 26,
22888   OPC_MorphNodeTo1, TARGET_VAL(Mips::FTRUNC_U_D), 0,
22889                 MVT::v2i64, 1, 0,
22890  0,
22891 52, TARGET_VAL(MipsISD::ILVEV),
22892  OPC_RecordChild0,
22893  OPC_RecordChild1,
22894  OPC_SwitchType , 10, MVT::v16i8,
22895   OPC_CheckPatternPredicate, 26,
22896   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVEV_B), 0,
22897                 MVT::v16i8, 2, 0, 1,
22898  10, MVT::v8i16,
22899   OPC_CheckPatternPredicate, 26,
22900   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVEV_H), 0,
22901                 MVT::v8i16, 2, 0, 1,
22902  10, MVT::v4i32,
22903   OPC_CheckPatternPredicate, 26,
22904   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVEV_W), 0,
22905                 MVT::v4i32, 2, 0, 1,
22906  10, MVT::v2i64,
22907   OPC_CheckPatternPredicate, 26,
22908   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVEV_D), 0,
22909                 MVT::v2i64, 2, 0, 1,
22910  0,
22911 52, TARGET_VAL(MipsISD::ILVL),
22912  OPC_RecordChild0,
22913  OPC_RecordChild1,
22914  OPC_SwitchType , 10, MVT::v16i8,
22915   OPC_CheckPatternPredicate, 26,
22916   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVL_B), 0,
22917                 MVT::v16i8, 2, 0, 1,
22918  10, MVT::v8i16,
22919   OPC_CheckPatternPredicate, 26,
22920   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVL_H), 0,
22921                 MVT::v8i16, 2, 0, 1,
22922  10, MVT::v4i32,
22923   OPC_CheckPatternPredicate, 26,
22924   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVL_W), 0,
22925                 MVT::v4i32, 2, 0, 1,
22926  10, MVT::v2i64,
22927   OPC_CheckPatternPredicate, 26,
22928   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVL_D), 0,
22929                 MVT::v2i64, 2, 0, 1,
22930  0,
22931 52, TARGET_VAL(MipsISD::ILVOD),
22932  OPC_RecordChild0,
22933  OPC_RecordChild1,
22934  OPC_SwitchType , 10, MVT::v16i8,
22935   OPC_CheckPatternPredicate, 26,
22936   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVOD_B), 0,
22937                 MVT::v16i8, 2, 0, 1,
22938  10, MVT::v8i16,
22939   OPC_CheckPatternPredicate, 26,
22940   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVOD_H), 0,
22941                 MVT::v8i16, 2, 0, 1,
22942  10, MVT::v4i32,
22943   OPC_CheckPatternPredicate, 26,
22944   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVOD_W), 0,
22945                 MVT::v4i32, 2, 0, 1,
22946  10, MVT::v2i64,
22947   OPC_CheckPatternPredicate, 26,
22948   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVOD_D), 0,
22949                 MVT::v2i64, 2, 0, 1,
22950  0,
22951 52, TARGET_VAL(MipsISD::ILVR),
22952  OPC_RecordChild0,
22953  OPC_RecordChild1,
22954  OPC_SwitchType , 10, MVT::v16i8,
22955   OPC_CheckPatternPredicate, 26,
22956   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVR_B), 0,
22957                 MVT::v16i8, 2, 0, 1,
22958  10, MVT::v8i16,
22959   OPC_CheckPatternPredicate, 26,
22960   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVR_H), 0,
22961                 MVT::v8i16, 2, 0, 1,
22962  10, MVT::v4i32,
22963   OPC_CheckPatternPredicate, 26,
22964   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVR_W), 0,
22965                 MVT::v4i32, 2, 0, 1,
22966  10, MVT::v2i64,
22967   OPC_CheckPatternPredicate, 26,
22968   OPC_MorphNodeTo1, TARGET_VAL(Mips::ILVR_D), 0,
22969                 MVT::v2i64, 2, 0, 1,
22970  0,
22971 52, TARGET_VAL(MipsISD::PCKEV),
22972  OPC_RecordChild0,
22973  OPC_RecordChild1,
22974  OPC_SwitchType , 10, MVT::v16i8,
22975   OPC_CheckPatternPredicate, 26,
22976   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKEV_B), 0,
22977                 MVT::v16i8, 2, 0, 1,
22978  10, MVT::v8i16,
22979   OPC_CheckPatternPredicate, 26,
22980   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKEV_H), 0,
22981                 MVT::v8i16, 2, 0, 1,
22982  10, MVT::v4i32,
22983   OPC_CheckPatternPredicate, 26,
22984   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKEV_W), 0,
22985                 MVT::v4i32, 2, 0, 1,
22986  10, MVT::v2i64,
22987   OPC_CheckPatternPredicate, 26,
22988   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKEV_D), 0,
22989                 MVT::v2i64, 2, 0, 1,
22990  0,
22991 52, TARGET_VAL(MipsISD::PCKOD),
22992  OPC_RecordChild0,
22993  OPC_RecordChild1,
22994  OPC_SwitchType , 10, MVT::v16i8,
22995   OPC_CheckPatternPredicate, 26,
22996   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKOD_B), 0,
22997                 MVT::v16i8, 2, 0, 1,
22998  10, MVT::v8i16,
22999   OPC_CheckPatternPredicate, 26,
23000   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKOD_H), 0,
23001                 MVT::v8i16, 2, 0, 1,
23002  10, MVT::v4i32,
23003   OPC_CheckPatternPredicate, 26,
23004   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKOD_W), 0,
23005                 MVT::v4i32, 2, 0, 1,
23006  10, MVT::v2i64,
23007   OPC_CheckPatternPredicate, 26,
23008   OPC_MorphNodeTo1, TARGET_VAL(Mips::PCKOD_D), 0,
23009                 MVT::v2i64, 2, 0, 1,
23010  0,
23011 67|128,2, TARGET_VAL(MipsISD::SELECT_CC_DSP),
23012  OPC_RecordChild0,
23013  OPC_Scope, 30|128,1,
23014   OPC_CheckChild0Type, MVT::v2i16,
23015   OPC_RecordChild1,
23016   OPC_RecordChild2,
23017   OPC_RecordChild3,
23018   OPC_MoveChild4,
23019   OPC_Scope, 24,
23020    OPC_CheckCondCode, ISD::SETEQ,
23021    OPC_MoveParent,
23022    OPC_CheckType, MVT::v2i16,
23023    OPC_CheckPatternPredicate, 28,
23024    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_EQ_PH), 0,
23025                  MVT::v2i16, 2, 0, 1,
23026    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23027                  MVT::v2i16, 3, 4, 2, 3,
23028   24,
23029    OPC_CheckCondCode, ISD::SETLT,
23030    OPC_MoveParent,
23031    OPC_CheckType, MVT::v2i16,
23032    OPC_CheckPatternPredicate, 28,
23033    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LT_PH), 0,
23034                  MVT::v2i16, 2, 0, 1,
23035    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23036                  MVT::v2i16, 3, 4, 2, 3,
23037   24,
23038    OPC_CheckCondCode, ISD::SETLE,
23039    OPC_MoveParent,
23040    OPC_CheckType, MVT::v2i16,
23041    OPC_CheckPatternPredicate, 28,
23042    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LE_PH), 0,
23043                  MVT::v2i16, 2, 0, 1,
23044    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23045                  MVT::v2i16, 3, 4, 2, 3,
23046   24,
23047    OPC_CheckCondCode, ISD::SETNE,
23048    OPC_MoveParent,
23049    OPC_CheckType, MVT::v2i16,
23050    OPC_CheckPatternPredicate, 28,
23051    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_EQ_PH), 0,
23052                  MVT::v2i16, 2, 0, 1,
23053    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23054                  MVT::v2i16, 3, 4, 3, 2,
23055   24,
23056    OPC_CheckCondCode, ISD::SETGE,
23057    OPC_MoveParent,
23058    OPC_CheckType, MVT::v2i16,
23059    OPC_CheckPatternPredicate, 28,
23060    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LT_PH), 0,
23061                  MVT::v2i16, 2, 0, 1,
23062    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23063                  MVT::v2i16, 3, 4, 3, 2,
23064   24,
23065    OPC_CheckCondCode, ISD::SETGT,
23066    OPC_MoveParent,
23067    OPC_CheckType, MVT::v2i16,
23068    OPC_CheckPatternPredicate, 28,
23069    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LE_PH), 0,
23070                  MVT::v2i16, 2, 0, 1,
23071    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23072                  MVT::v2i16, 3, 4, 3, 2,
23073   0,
23074  30|128,1,
23075   OPC_CheckChild0Type, MVT::v4i8,
23076   OPC_RecordChild1,
23077   OPC_RecordChild2,
23078   OPC_RecordChild3,
23079   OPC_MoveChild4,
23080   OPC_Scope, 24,
23081    OPC_CheckCondCode, ISD::SETEQ,
23082    OPC_MoveParent,
23083    OPC_CheckType, MVT::v4i8,
23084    OPC_CheckPatternPredicate, 28,
23085    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_EQ_QB), 0,
23086                  MVT::v4i8, 2, 0, 1,
23087    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23088                  MVT::v4i8, 3, 4, 2, 3,
23089   24,
23090    OPC_CheckCondCode, ISD::SETULT,
23091    OPC_MoveParent,
23092    OPC_CheckType, MVT::v4i8,
23093    OPC_CheckPatternPredicate, 28,
23094    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LT_QB), 0,
23095                  MVT::v4i8, 2, 0, 1,
23096    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23097                  MVT::v4i8, 3, 4, 2, 3,
23098   24,
23099    OPC_CheckCondCode, ISD::SETULE,
23100    OPC_MoveParent,
23101    OPC_CheckType, MVT::v4i8,
23102    OPC_CheckPatternPredicate, 28,
23103    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LE_QB), 0,
23104                  MVT::v4i8, 2, 0, 1,
23105    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23106                  MVT::v4i8, 3, 4, 2, 3,
23107   24,
23108    OPC_CheckCondCode, ISD::SETNE,
23109    OPC_MoveParent,
23110    OPC_CheckType, MVT::v4i8,
23111    OPC_CheckPatternPredicate, 28,
23112    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_EQ_QB), 0,
23113                  MVT::v4i8, 2, 0, 1,
23114    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23115                  MVT::v4i8, 3, 4, 3, 2,
23116   24,
23117    OPC_CheckCondCode, ISD::SETUGE,
23118    OPC_MoveParent,
23119    OPC_CheckType, MVT::v4i8,
23120    OPC_CheckPatternPredicate, 28,
23121    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LT_QB), 0,
23122                  MVT::v4i8, 2, 0, 1,
23123    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23124                  MVT::v4i8, 3, 4, 3, 2,
23125   24,
23126    OPC_CheckCondCode, ISD::SETUGT,
23127    OPC_MoveParent,
23128    OPC_CheckType, MVT::v4i8,
23129    OPC_CheckPatternPredicate, 28,
23130    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LE_QB), 0,
23131                  MVT::v4i8, 2, 0, 1,
23132    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23133                  MVT::v4i8, 3, 4, 3, 2,
23134   0,
23135  0,
23136 107|128,4, TARGET_VAL(MipsISD::SETCC_DSP),
23137  OPC_RecordChild0,
23138  OPC_SwitchType , 49|128,2, MVT::v2i16,
23139   OPC_CheckChild0Type, MVT::v2i16,
23140   OPC_RecordChild1,
23141   OPC_Scope, 49,
23142    OPC_CheckChild2CondCode, ISD::SETEQ,
23143    OPC_CheckPatternPredicate, 28,
23144    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_EQ_PH), 0,
23145                  MVT::v2i16, 2, 0, 1,
23146    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23147    OPC_EmitInteger, MVT::i32, 3,
23148    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23149                  MVT::i32, 2, 3, 4,
23150    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23151    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23152                  MVT::v2i16, 2, 5, 6,
23153    OPC_EmitRegister, MVT::v2i16, Mips::ZERO,
23154    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23155                  MVT::v2i16, 3, 2, 7, 8,
23156   49,
23157    OPC_CheckChild2CondCode, ISD::SETLT,
23158    OPC_CheckPatternPredicate, 28,
23159    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LT_PH), 0,
23160                  MVT::v2i16, 2, 0, 1,
23161    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23162    OPC_EmitInteger, MVT::i32, 3,
23163    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23164                  MVT::i32, 2, 3, 4,
23165    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23166    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23167                  MVT::v2i16, 2, 5, 6,
23168    OPC_EmitRegister, MVT::v2i16, Mips::ZERO,
23169    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23170                  MVT::v2i16, 3, 2, 7, 8,
23171   49,
23172    OPC_CheckChild2CondCode, ISD::SETLE,
23173    OPC_CheckPatternPredicate, 28,
23174    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LE_PH), 0,
23175                  MVT::v2i16, 2, 0, 1,
23176    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23177    OPC_EmitInteger, MVT::i32, 3,
23178    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23179                  MVT::i32, 2, 3, 4,
23180    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23181    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23182                  MVT::v2i16, 2, 5, 6,
23183    OPC_EmitRegister, MVT::v2i16, Mips::ZERO,
23184    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23185                  MVT::v2i16, 3, 2, 7, 8,
23186   49,
23187    OPC_CheckChild2CondCode, ISD::SETNE,
23188    OPC_CheckPatternPredicate, 28,
23189    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_EQ_PH), 0,
23190                  MVT::v2i16, 2, 0, 1,
23191    OPC_EmitRegister, MVT::v2i16, Mips::ZERO,
23192    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23193    OPC_EmitInteger, MVT::i32, 3,
23194    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23195                  MVT::i32, 2, 4, 5,
23196    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23197    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23198                  MVT::v2i16, 2, 6, 7,
23199    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23200                  MVT::v2i16, 3, 2, 3, 8,
23201   49,
23202    OPC_CheckChild2CondCode, ISD::SETGE,
23203    OPC_CheckPatternPredicate, 28,
23204    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LT_PH), 0,
23205                  MVT::v2i16, 2, 0, 1,
23206    OPC_EmitRegister, MVT::v2i16, Mips::ZERO,
23207    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23208    OPC_EmitInteger, MVT::i32, 3,
23209    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23210                  MVT::i32, 2, 4, 5,
23211    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23212    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23213                  MVT::v2i16, 2, 6, 7,
23214    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23215                  MVT::v2i16, 3, 2, 3, 8,
23216   49,
23217    OPC_CheckChild2CondCode, ISD::SETGT,
23218    OPC_CheckPatternPredicate, 28,
23219    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMP_LE_PH), 0,
23220                  MVT::v2i16, 2, 0, 1,
23221    OPC_EmitRegister, MVT::v2i16, Mips::ZERO,
23222    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23223    OPC_EmitInteger, MVT::i32, 3,
23224    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23225                  MVT::i32, 2, 4, 5,
23226    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23227    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23228                  MVT::v2i16, 2, 6, 7,
23229    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_PH), 0,
23230                  MVT::v2i16, 3, 2, 3, 8,
23231   0,
23232  49|128,2, MVT::v4i8,
23233   OPC_CheckChild0Type, MVT::v4i8,
23234   OPC_RecordChild1,
23235   OPC_Scope, 49,
23236    OPC_CheckChild2CondCode, ISD::SETEQ,
23237    OPC_CheckPatternPredicate, 28,
23238    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_EQ_QB), 0,
23239                  MVT::v4i8, 2, 0, 1,
23240    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23241    OPC_EmitInteger, MVT::i32, 3,
23242    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23243                  MVT::i32, 2, 3, 4,
23244    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23245    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23246                  MVT::v4i8, 2, 5, 6,
23247    OPC_EmitRegister, MVT::v4i8, Mips::ZERO,
23248    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23249                  MVT::v4i8, 3, 2, 7, 8,
23250   49,
23251    OPC_CheckChild2CondCode, ISD::SETULT,
23252    OPC_CheckPatternPredicate, 28,
23253    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LT_QB), 0,
23254                  MVT::v4i8, 2, 0, 1,
23255    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23256    OPC_EmitInteger, MVT::i32, 3,
23257    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23258                  MVT::i32, 2, 3, 4,
23259    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23260    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23261                  MVT::v4i8, 2, 5, 6,
23262    OPC_EmitRegister, MVT::v4i8, Mips::ZERO,
23263    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23264                  MVT::v4i8, 3, 2, 7, 8,
23265   49,
23266    OPC_CheckChild2CondCode, ISD::SETULE,
23267    OPC_CheckPatternPredicate, 28,
23268    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LE_QB), 0,
23269                  MVT::v4i8, 2, 0, 1,
23270    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23271    OPC_EmitInteger, MVT::i32, 3,
23272    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23273                  MVT::i32, 2, 3, 4,
23274    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23275    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23276                  MVT::v4i8, 2, 5, 6,
23277    OPC_EmitRegister, MVT::v4i8, Mips::ZERO,
23278    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23279                  MVT::v4i8, 3, 2, 7, 8,
23280   49,
23281    OPC_CheckChild2CondCode, ISD::SETNE,
23282    OPC_CheckPatternPredicate, 28,
23283    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_EQ_QB), 0,
23284                  MVT::v4i8, 2, 0, 1,
23285    OPC_EmitRegister, MVT::v4i8, Mips::ZERO,
23286    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23287    OPC_EmitInteger, MVT::i32, 3,
23288    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23289                  MVT::i32, 2, 4, 5,
23290    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23291    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23292                  MVT::v4i8, 2, 6, 7,
23293    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23294                  MVT::v4i8, 3, 2, 3, 8,
23295   49,
23296    OPC_CheckChild2CondCode, ISD::SETUGE,
23297    OPC_CheckPatternPredicate, 28,
23298    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LT_QB), 0,
23299                  MVT::v4i8, 2, 0, 1,
23300    OPC_EmitRegister, MVT::v4i8, Mips::ZERO,
23301    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23302    OPC_EmitInteger, MVT::i32, 3,
23303    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23304                  MVT::i32, 2, 4, 5,
23305    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23306    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23307                  MVT::v4i8, 2, 6, 7,
23308    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23309                  MVT::v4i8, 3, 2, 3, 8,
23310   49,
23311    OPC_CheckChild2CondCode, ISD::SETUGT,
23312    OPC_CheckPatternPredicate, 28,
23313    OPC_EmitNode1, TARGET_VAL(Mips::PseudoCMPU_LE_QB), 0,
23314                  MVT::v4i8, 2, 0, 1,
23315    OPC_EmitRegister, MVT::v4i8, Mips::ZERO,
23316    OPC_EmitRegister, MVT::i32, Mips::ZERO,
23317    OPC_EmitInteger, MVT::i32, 3,
23318    OPC_EmitNode1, TARGET_VAL(Mips::ADDiu), 0,
23319                  MVT::i32, 2, 4, 5,
23320    OPC_EmitStringInteger, MVT::i32, Mips::DSPRRegClassID,
23321    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
23322                  MVT::v4i8, 2, 6, 7,
23323    OPC_MorphNodeTo1, TARGET_VAL(Mips::PseudoPICK_QB), 0,
23324                  MVT::v4i8, 3, 2, 3, 8,
23325   0,
23326  0,
23327 29, TARGET_VAL(ISD::UINT_TO_FP),
23328  OPC_RecordChild0,
23329  OPC_SwitchType , 11, MVT::v4f32,
23330   OPC_CheckChild0Type, MVT::v4i32,
23331   OPC_CheckPatternPredicate, 26,
23332   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFINT_U_W), 0,
23333                 MVT::v4f32, 1, 0,
23334  11, MVT::v2f64,
23335   OPC_CheckChild0Type, MVT::v2i64,
23336   OPC_CheckPatternPredicate, 26,
23337   OPC_MorphNodeTo1, TARGET_VAL(Mips::FFINT_U_D), 0,
23338                 MVT::v2f64, 1, 0,
23339  0,
23340 25, TARGET_VAL(ISD::FLOG2),
23341  OPC_RecordChild0,
23342  OPC_SwitchType , 9, MVT::v4f32,
23343   OPC_CheckPatternPredicate, 26,
23344   OPC_MorphNodeTo1, TARGET_VAL(Mips::FLOG2_W), 0,
23345                 MVT::v4f32, 1, 0,
23346  9, MVT::v2f64,
23347   OPC_CheckPatternPredicate, 26,
23348   OPC_MorphNodeTo1, TARGET_VAL(Mips::FLOG2_D), 0,
23349                 MVT::v2f64, 1, 0,
23350  0,
23351 31, TARGET_VAL(ISD::FMA),
23352  OPC_RecordChild0,
23353  OPC_RecordChild1,
23354  OPC_RecordChild2,
23355  OPC_SwitchType , 11, MVT::v4f32,
23356   OPC_CheckPatternPredicate, 26,
23357   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMADD_W), 0,
23358                 MVT::v4f32, 3, 0, 1, 2,
23359  11, MVT::v2f64,
23360   OPC_CheckPatternPredicate, 26,
23361   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMADD_D), 0,
23362                 MVT::v2f64, 3, 0, 1, 2,
23363  0,
23364 31, TARGET_VAL(MipsISD::FMS),
23365  OPC_RecordChild0,
23366  OPC_RecordChild1,
23367  OPC_RecordChild2,
23368  OPC_SwitchType , 11, MVT::v4f32,
23369   OPC_CheckPatternPredicate, 26,
23370   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMSUB_W), 0,
23371                 MVT::v4f32, 3, 0, 1, 2,
23372  11, MVT::v2f64,
23373   OPC_CheckPatternPredicate, 26,
23374   OPC_MorphNodeTo1, TARGET_VAL(Mips::FMSUB_D), 0,
23375                 MVT::v2f64, 3, 0, 1, 2,
23376  0,
23377 25, TARGET_VAL(ISD::FRINT),
23378  OPC_RecordChild0,
23379  OPC_SwitchType , 9, MVT::v4f32,
23380   OPC_CheckPatternPredicate, 26,
23381   OPC_MorphNodeTo1, TARGET_VAL(Mips::FRINT_W), 0,
23382                 MVT::v4f32, 1, 0,
23383  9, MVT::v2f64,
23384   OPC_CheckPatternPredicate, 26,
23385   OPC_MorphNodeTo1, TARGET_VAL(Mips::FRINT_D), 0,
23386                 MVT::v2f64, 1, 0,
23387  0,
23388 25, TARGET_VAL(ISD::FEXP2),
23389  OPC_RecordChild0,
23390  OPC_SwitchType , 9, MVT::v4f32,
23391   OPC_CheckPatternPredicate, 26,
23392   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXP2_W_1_PSEUDO), 0,
23393                 MVT::v4f32, 1, 0,
23394  9, MVT::v2f64,
23395   OPC_CheckPatternPredicate, 26,
23396   OPC_MorphNodeTo1, TARGET_VAL(Mips::FEXP2_D_1_PSEUDO), 0,
23397                 MVT::v2f64, 1, 0,
23398  0,
23399 0,
23400    0
23401  }; // Total Array size is 54044 bytes
23402
23403  #undef TARGET_VAL
23404  SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
23405}
23406#endif // GET_DAGISEL_BODY
23407
23408#ifdef GET_DAGISEL_DECL
23409bool CheckPatternPredicate(unsigned PredNo) const override;
23410#endif
23411#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
23412bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
23413#if DAGISEL_INLINE
23414  override
23415#endif
23416{
23417  switch (PredNo) {
23418  default: llvm_unreachable("Invalid predicate in table?");
23419  case 0: return (Subtarget->hasMips32r6()) && (Subtarget->inMicroMipsMode()) && (Subtarget->isFP64bit());
23420  case 1: return (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode());
23421  case 2: return (Subtarget->hasStandardEncoding()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode());
23422  case 3: return (Subtarget->inMicroMipsMode()) && (!Subtarget->isFP64bit());
23423  case 4: return (Subtarget->inMicroMipsMode()) && (Subtarget->isFP64bit());
23424  case 5: return (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->isTargetNaCl()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23425  case 6: return (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23426  case 7: return (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23427  case 8: return (Subtarget->inMicroMipsMode());
23428  case 9: return (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->isTargetNaCl()) && (!Subtarget->useSoftFloat()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23429  case 10: return (Subtarget->inMicroMipsMode()) && (!Subtarget->useSoftFloat()) && (!Subtarget->hasMips32r6());
23430  case 11: return (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23431  case 12: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23432  case 13: return (Subtarget->hasStandardEncoding()) && (!Subtarget->hasCnMips()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23433  case 14: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->hasCnMips()) && (!Subtarget->inMicroMipsMode());
23434  case 15: return (Subtarget->inMips16Mode());
23435  case 16: return (Subtarget->hasMips32r6()) && (Subtarget->inMicroMipsMode());
23436  case 17: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode());
23437  case 18: return (Subtarget->inMicroMipsMode()) && (!Subtarget->useSoftFloat());
23438  case 19: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode());
23439  case 20: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode());
23440  case 21: return (Subtarget->inMicroMipsMode()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit());
23441  case 22: return (Subtarget->inMicroMipsMode()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat());
23442  case 23: return (Subtarget->hasMips32r6()) && (Subtarget->inMicroMipsMode()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat());
23443  case 24: return (Subtarget->isGP64bit()) && (!Subtarget->inMips16Mode());
23444  case 25: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23445  case 26: return (Subtarget->hasMSA()) && (Subtarget->hasStandardEncoding());
23446  case 27: return (Subtarget->hasMSA());
23447  case 28: return (Subtarget->hasDSP());
23448  case 29: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit());
23449  case 30: return (Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6());
23450  case 31: return (Subtarget->hasCnMips());
23451  case 32: return (Subtarget->hasCnMips()) && (Subtarget->hasMips64()) && (Subtarget->hasMips64r2()) && (Subtarget->hasStandardEncoding());
23452  case 33: return (Subtarget->hasMips32r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23453  case 34: return (Subtarget->hasMips64r6()) && (Subtarget->hasStandardEncoding());
23454  case 35: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23455  case 36: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23456  case 37: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23457  case 38: return (Subtarget->hasStandardEncoding()) && (!Subtarget->hasMips4_32());
23458  case 39: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23459  case 40: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23460  case 41: return (Subtarget->inMicroMipsMode()) && (!Subtarget->isFP64bit()) && (!Subtarget->hasMips32r6());
23461  case 42: return (Subtarget->hasMips32r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode());
23462  case 43: return (Subtarget->hasStandardEncoding()) && (!Subtarget->isFP64bit()) && (!Subtarget->hasMips4_32());
23463  case 44: return (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->hasMips4_32());
23464  case 45: return (Subtarget->hasEVA()) && (Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6());
23465  case 46: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23466  case 47: return (Subtarget->hasDSP()) && (Subtarget->inMicroMipsMode());
23467  case 48: return (Subtarget->hasDSPR2());
23468  case 49: return (Subtarget->hasDSPR2()) && (Subtarget->inMicroMipsMode());
23469  case 50: return (!Subtarget->inMips16Mode());
23470  case 51: return (Subtarget->hasDSP()) && (!Subtarget->inMicroMipsMode());
23471  case 52: return (Subtarget->hasMips32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23472  case 53: return (Subtarget->hasMips32r6()) && (Subtarget->hasStandardEncoding());
23473  case 54: return (Subtarget->hasMips64()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips64r6());
23474  case 55: return (Subtarget->hasMips64r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23475  case 56: return (Subtarget->hasMips32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23476  case 57: return (Subtarget->hasMips64r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23477  case 58: return (Subtarget->hasCnMips()) && (Subtarget->hasMips64()) && (!Subtarget->inMicroMipsMode());
23478  case 59: return (Subtarget->hasCnMips()) && (Subtarget->hasMips64()) && (Subtarget->hasMips64r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->inMicroMipsMode());
23479  case 60: return (Subtarget->hasMips64r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->inMicroMipsMode());
23480  case 61: return (Subtarget->hasMSA()) && (Subtarget->hasMips64()) && (Subtarget->hasStandardEncoding());
23481  case 62: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (Subtarget->hasSym32()) && (!Subtarget->inMicroMipsMode());
23482  case 63: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->hasSym32()) && (!Subtarget->inMicroMipsMode());
23483  case 64: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isABI_N64());
23484  case 65: return (Subtarget->hasMips32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23485  case 66: return (Subtarget->isGP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode());
23486  case 67: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->inMicroMipsMode());
23487  case 68: return (Subtarget->hasMips32r6()) && (Subtarget->inMicroMipsMode()) && (!Subtarget->useSoftFloat());
23488  case 69: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23489  case 70: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode());
23490  case 71: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding());
23491  case 72: return (Subtarget->hasStandardEncoding()) && (!Subtarget->hasDSP());
23492  case 73: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->hasDSP()) && (!Subtarget->inMicroMipsMode());
23493  case 74: return (Subtarget->hasMSA()) && (Subtarget->isGP64bit());
23494  case 75: return (Subtarget->hasStandardEncoding());
23495  case 76: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMicroMipsMode());
23496  case 77: return (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (Subtarget->useIndirectJumpsHazard());
23497  case 78: return (Subtarget->isABI_N64()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMips16Mode());
23498  case 79: return (Subtarget->isABI_N64()) && (!Subtarget->inMips16Mode()) && (Subtarget->useIndirectJumpsHazard());
23499  case 80: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23500  case 81: return (Subtarget->hasMips32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6()) && (Subtarget->useIndirectJumpsHazard());
23501  case 82: return (Subtarget->hasMips32r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode());
23502  case 83: return (Subtarget->hasMips32r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (Subtarget->useIndirectJumpsHazard());
23503  case 84: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isABI_N64()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23504  case 85: return (Subtarget->hasMips32r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isABI_N64()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6()) && (Subtarget->useIndirectJumpsHazard());
23505  case 86: return (Subtarget->hasMips64r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode());
23506  case 87: return (Subtarget->hasMips64r6()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (Subtarget->useIndirectJumpsHazard());
23507  case 88: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23508  case 89: return (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23509  case 90: return (Subtarget->hasMSA()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23510  case 91: return (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMips16Mode());
23511  case 92: return (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMips16Mode());
23512  case 93: return (Subtarget->hasMips32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6()) && (Subtarget->useIndirectJumpsHazard());
23513  case 94: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useIndirectJumpsHazard()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->inMips16Mode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23514  case 95: return (Subtarget->hasStandardEncoding()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23515  case 96: return (Subtarget->hasStandardEncoding()) && (!Subtarget->inMicroMipsMode()) && (!TM.isPositionIndependent());
23516  case 97: return (Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!TM.isPositionIndependent());
23517  case 98: return (Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (TM.isPositionIndependent());
23518  case 99: return (Subtarget->hasMips32r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit());
23519  case 100: return (Subtarget->hasStandardEncoding()) && (!Subtarget->hasDSP()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23520  case 101: return (Subtarget->inMicroMipsMode()) && (!Subtarget->hasDSP()) && (!Subtarget->hasMips32r6());
23521  case 102: return (Subtarget->hasDSP()) && (!Subtarget->inMips16Mode());
23522  case 103: return (Subtarget->hasMips32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->hasDSP()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23523  case 104: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode());
23524  case 105: return (Subtarget->hasMSA()) && (Subtarget->isLittle());
23525  case 106: return (Subtarget->hasMSA()) && (!Subtarget->isLittle());
23526  case 107: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23527  case 108: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isGP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23528  case 109: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23529  case 110: return (Subtarget->hasMips4_32()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23530  case 111: return (Subtarget->inMicroMipsMode()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->hasMips32r6());
23531  case 112: return (Subtarget->hasMips64r2()) && (Subtarget->hasStandardEncoding());
23532  case 113: return (Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23533  case 114: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23534  case 115: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23535  case 116: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23536  case 117: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23537  case 118: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23538  case 119: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23539  case 120: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode());
23540  case 121: return (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode());
23541  case 122: return (TM.Options.AllowFPOpFusion == FPOpFusion::Fast) && (Subtarget->hasMSA()) && (Subtarget->hasStandardEncoding());
23542  case 123: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23543  case 124: return (!Subtarget->disableMadd4()) && (Subtarget->inMicroMipsMode()) && (Subtarget->inMicroMipsMode()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips32r6());
23544  case 125: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23545  case 126: return (!Subtarget->disableMadd4()) && (Subtarget->hasMips4_32r2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->inMicroMipsMode()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips64r6());
23546  case 127: return (!Subtarget->disableMadd4()) && (Subtarget->inMicroMipsMode()) && (Subtarget->inMicroMipsMode()) && (TM.Options.NoNaNsFPMath) && (!Subtarget->isFP64bit()) && (!Subtarget->hasMips32r6()) && (!Subtarget->hasMips32r6());
23547  case 128: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat());
23548  case 129: return (Subtarget->hasMips3()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (Subtarget->isGP64bit());
23549  case 130: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (Subtarget->inAbs2008Mode() ||TM.Options.NoNaNsFPMath);
23550  case 131: return (Subtarget->inMicroMipsMode()) && (!Subtarget->useSoftFloat()) && (Subtarget->inAbs2008Mode() ||TM.Options.NoNaNsFPMath);
23551  case 132: return (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode()) && (Subtarget->inAbs2008Mode() ||TM.Options.NoNaNsFPMath);
23552  case 133: return (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode()) && (Subtarget->inAbs2008Mode() ||TM.Options.NoNaNsFPMath);
23553  case 134: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->useSoftFloat()) && (!Subtarget->inMicroMipsMode());
23554  case 135: return (!Subtarget->isFP64bit());
23555  case 136: return (Subtarget->isFP64bit());
23556  case 137: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit());
23557  case 138: return (Subtarget->hasMips2()) && (Subtarget->hasStandardEncoding()) && (!Subtarget->isFP64bit()) && (!Subtarget->inMicroMipsMode());
23558  case 139: return (Subtarget->inMicroMipsMode()) && (Subtarget->isFP64bit()) && (!Subtarget->hasMips32r6());
23559  case 140: return (Subtarget->hasStandardEncoding()) && (Subtarget->isFP64bit());
23560  }
23561}
23562#endif // GET_DAGISEL_BODY
23563
23564#ifdef GET_DAGISEL_DECL
23565bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
23566#endif
23567#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
23568bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
23569#if DAGISEL_INLINE
23570  override
23571#endif
23572{
23573  switch (PredNo) {
23574  default: llvm_unreachable("Invalid predicate in table?");
23575  case 0: {
23576    // Predicate_unindexedstore
23577    SDNode *N = Node;
23578    (void)N;
23579if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
23580return true;
23581
23582  }
23583  case 1: {
23584    // Predicate_store
23585    SDNode *N = Node;
23586    (void)N;
23587 if (cast<StoreSDNode>(N)->isTruncatingStore()) return false;
23588return true;
23589
23590  }
23591  case 2: {
23592    // Predicate_truncstore
23593    SDNode *N = Node;
23594    (void)N;
23595 if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
23596return true;
23597
23598  }
23599  case 3: {
23600    // Predicate_truncstorei8
23601    SDNode *N = Node;
23602    (void)N;
23603if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
23604 if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
23605return true;
23606
23607  }
23608  case 4: {
23609    // Predicate_truncstorei16
23610    SDNode *N = Node;
23611    (void)N;
23612if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
23613 if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
23614return true;
23615
23616  }
23617  case 5: {
23618    // Predicate_truncstorei32
23619    SDNode *N = Node;
23620    (void)N;
23621if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i32) return false;
23622 if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
23623return true;
23624
23625  }
23626  case 6: {
23627    // Predicate_unindexedload
23628    SDNode *N = Node;
23629    (void)N;
23630if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
23631return true;
23632
23633  }
23634  case 7: {
23635    // Predicate_zextload
23636    SDNode *N = Node;
23637    (void)N;
23638if (cast<LoadSDNode>(N)->getExtensionType() != ISD::ZEXTLOAD) return false;
23639return true;
23640
23641  }
23642  case 8: {
23643    // Predicate_zextloadi8
23644    // Predicate_sextloadi8
23645    // Predicate_extloadi8
23646    // Predicate_atomic_load_8
23647    // Predicate_atomic_store_8
23648    // Predicate_atomic_load_add_8
23649    // Predicate_atomic_load_sub_8
23650    // Predicate_atomic_load_and_8
23651    // Predicate_atomic_load_or_8
23652    // Predicate_atomic_load_xor_8
23653    // Predicate_atomic_load_nand_8
23654    // Predicate_atomic_swap_8
23655    // Predicate_atomic_cmp_swap_8
23656    // Predicate_atomic_load_min_8
23657    // Predicate_atomic_load_max_8
23658    // Predicate_atomic_load_umin_8
23659    // Predicate_atomic_load_umax_8
23660    SDNode *N = Node;
23661    (void)N;
23662if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
23663return true;
23664
23665  }
23666  case 9: {
23667    // Predicate_zextloadi16
23668    // Predicate_sextloadi16
23669    // Predicate_extloadi16
23670    // Predicate_atomic_load_16
23671    // Predicate_atomic_store_16
23672    // Predicate_atomic_load_add_16
23673    // Predicate_atomic_load_sub_16
23674    // Predicate_atomic_load_and_16
23675    // Predicate_atomic_load_or_16
23676    // Predicate_atomic_load_xor_16
23677    // Predicate_atomic_load_nand_16
23678    // Predicate_atomic_swap_16
23679    // Predicate_atomic_cmp_swap_16
23680    // Predicate_atomic_load_min_16
23681    // Predicate_atomic_load_max_16
23682    // Predicate_atomic_load_umin_16
23683    // Predicate_atomic_load_umax_16
23684    SDNode *N = Node;
23685    (void)N;
23686if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
23687return true;
23688
23689  }
23690  case 10: {
23691    // Predicate_sextload
23692    SDNode *N = Node;
23693    (void)N;
23694if (cast<LoadSDNode>(N)->getExtensionType() != ISD::SEXTLOAD) return false;
23695return true;
23696
23697  }
23698  case 11: {
23699    // Predicate_load
23700    SDNode *N = Node;
23701    (void)N;
23702if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
23703return true;
23704
23705  }
23706  case 12: {
23707    // Predicate_extload
23708    SDNode *N = Node;
23709    (void)N;
23710if (cast<LoadSDNode>(N)->getExtensionType() != ISD::EXTLOAD) return false;
23711return true;
23712
23713  }
23714  case 13: {
23715    // Predicate_extloadi1
23716    SDNode *N = Node;
23717    (void)N;
23718if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i1) return false;
23719return true;
23720
23721  }
23722  case 14: {
23723    // Predicate_sextloadi32
23724    // Predicate_zextloadi32
23725    // Predicate_extloadi32
23726    // Predicate_atomic_load_32
23727    // Predicate_atomic_store_32
23728    // Predicate_atomic_load_add_32
23729    // Predicate_atomic_load_sub_32
23730    // Predicate_atomic_load_and_32
23731    // Predicate_atomic_load_or_32
23732    // Predicate_atomic_load_xor_32
23733    // Predicate_atomic_load_nand_32
23734    // Predicate_atomic_swap_32
23735    // Predicate_atomic_cmp_swap_32
23736    // Predicate_atomic_load_min_32
23737    // Predicate_atomic_load_max_32
23738    // Predicate_atomic_load_umin_32
23739    // Predicate_atomic_load_umax_32
23740    SDNode *N = Node;
23741    (void)N;
23742if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i32) return false;
23743return true;
23744
23745  }
23746  case 15: {
23747    // Predicate_immZExt5_64
23748    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23749 return Imm == (Imm & 0x1f);
23750  }
23751  case 16: {
23752    // Predicate_PowerOf2LO
23753    auto *N = cast<ConstantSDNode>(Node);
23754    (void)N;
23755
23756  if (N->getValueType(0) == MVT::i64) {
23757    uint64_t Imm = N->getZExtValue();
23758    return isPowerOf2_64(Imm) && (Imm & 0xffffffff) == Imm;
23759  }
23760  else
23761    return false;
23762
23763  }
23764  case 17: {
23765    // Predicate_PowerOf2HI
23766    auto *N = cast<ConstantSDNode>(Node);
23767    (void)N;
23768
23769  if (N->getValueType(0) == MVT::i64) {
23770    uint64_t Imm = N->getZExtValue();
23771    return isPowerOf2_64(Imm) && (Imm & 0xffffffff00000000) == Imm;
23772  }
23773  else
23774    return false;
23775
23776  }
23777  case 18: {
23778    // Predicate_PowerOf2LO_i32
23779    auto *N = cast<ConstantSDNode>(Node);
23780    (void)N;
23781
23782  if (N->getValueType(0) == MVT::i32) {
23783    uint64_t Imm = N->getZExtValue();
23784    return isPowerOf2_32(Imm) && isUInt<32>(Imm);
23785  }
23786  else
23787    return false;
23788
23789  }
23790  case 19: {
23791    // Predicate_immSExt16
23792    auto *N = cast<ConstantSDNode>(Node);
23793    (void)N;
23794 return isInt<16>(N->getSExtValue());
23795  }
23796  case 20: {
23797    // Predicate_immSExt16Plus1
23798    auto *N = cast<ConstantSDNode>(Node);
23799    (void)N;
23800
23801  return isInt<17>(N->getSExtValue()) && isInt<16>(N->getSExtValue() + 1);
23802
23803  }
23804  case 21: {
23805    // Predicate_immZExt16
23806    auto *N = cast<ConstantSDNode>(Node);
23807    (void)N;
23808
23809  if (N->getValueType(0) == MVT::i32)
23810    return (uint32_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
23811  else
23812    return (uint64_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
23813
23814  }
23815  case 22: {
23816    // Predicate_immz
23817    auto *N = cast<ConstantSDNode>(Node);
23818    (void)N;
23819 return N->getSExtValue() == 0;
23820  }
23821  case 23: {
23822    // Predicate_immZExt16_64
23823    auto *N = cast<ConstantSDNode>(Node);
23824    (void)N;
23825 return isUInt<16>(N->getZExtValue());
23826  }
23827  case 24: {
23828    // Predicate_atomic_load_64
23829    // Predicate_atomic_store_64
23830    // Predicate_atomic_load_add_64
23831    // Predicate_atomic_load_sub_64
23832    // Predicate_atomic_load_and_64
23833    // Predicate_atomic_load_or_64
23834    // Predicate_atomic_load_xor_64
23835    // Predicate_atomic_load_nand_64
23836    // Predicate_atomic_swap_64
23837    // Predicate_atomic_cmp_swap_64
23838    // Predicate_atomic_load_min_64
23839    // Predicate_atomic_load_max_64
23840    // Predicate_atomic_load_umin_64
23841    // Predicate_atomic_load_umax_64
23842    SDNode *N = Node;
23843    (void)N;
23844if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i64) return false;
23845return true;
23846
23847  }
23848  case 25: {
23849    // Predicate_immZExt5
23850    // Predicate_timmZExt5
23851    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23852return Imm == (Imm & 0x1f);
23853  }
23854  case 26: {
23855    // Predicate_timmZExt10
23856    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23857return isUInt<10>(Imm);
23858  }
23859  case 27: {
23860    // Predicate_timmZExt7
23861    auto *N = cast<ConstantSDNode>(Node);
23862    (void)N;
23863 return isUInt<7>(N->getZExtValue());
23864  }
23865  case 28: {
23866    // Predicate_immZExt4
23867    // Predicate_timmZExt4
23868    // Predicate_immZExt4Ptr
23869    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23870return isUInt<4>(Imm);
23871  }
23872  case 29: {
23873    // Predicate_immZExt3
23874    // Predicate_timmZExt3
23875    // Predicate_immZExt3Ptr
23876    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23877return isUInt<3>(Imm);
23878  }
23879  case 30: {
23880    // Predicate_timmZExt2
23881    // Predicate_immZExt2
23882    // Predicate_immZExt2Ptr
23883    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23884return isUInt<2>(Imm);
23885  }
23886  case 31: {
23887    // Predicate_immZExt8
23888    // Predicate_timmZExt8
23889    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23890return isUInt<8>(Imm);
23891  }
23892  case 32: {
23893    // Predicate_immSExt10
23894    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23895return isInt<10>(Imm);
23896  }
23897  case 33: {
23898    // Predicate_timmZExt6
23899    // Predicate_immZExt6
23900    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23901return Imm == (Imm & 0x3f);
23902  }
23903  case 34: {
23904    // Predicate_timmZExt1
23905    // Predicate_immZExt1Ptr
23906    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23907return isUInt<1>(Imm);
23908  }
23909  case 35: {
23910    // Predicate_imm32ZExt16
23911    const APInt & Imm = cast<ConstantSDNode>(Node)->getAPIntValue();
23912
23913  return (uint32_t)Imm.getZExtValue() == (unsigned short)Imm.getZExtValue();
23914
23915  }
23916  case 36: {
23917    // Predicate_vsplat_imm_eq_1
23918    SDNode *N = Node;
23919    (void)N;
23920
23921  APInt Imm;
23922  EVT EltTy = N->getValueType(0).getVectorElementType();
23923
23924  return selectVSplat(N, Imm, EltTy.getSizeInBits()) &&
23925         Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1;
23926
23927  }
23928  case 37: {
23929    // Predicate_immi32Cst7
23930    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23931return isUInt<32>(Imm) && Imm == 7;
23932  }
23933  case 38: {
23934    // Predicate_immi32Cst15
23935    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23936return isUInt<32>(Imm) && Imm == 15;
23937  }
23938  case 39: {
23939    // Predicate_immi32Cst31
23940    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23941return isUInt<32>(Imm) && Imm == 31;
23942  }
23943  case 40: {
23944    // Predicate_vsplati64_imm_eq_1
23945    SDNode *N = Node;
23946    (void)N;
23947
23948  APInt Imm;
23949  SDNode *BV = N->getOperand(0).getNode();
23950  EVT EltTy = N->getValueType(0).getVectorElementType();
23951
23952  return selectVSplat(BV, Imm, EltTy.getSizeInBits()) &&
23953         Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 1;
23954
23955  }
23956  case 41: {
23957    // Predicate_vsplati64_imm_eq_63
23958    SDNode *N = Node;
23959    (void)N;
23960
23961  APInt Imm;
23962  SDNode *BV = N->getOperand(0).getNode();
23963  EVT EltTy = N->getValueType(0).getVectorElementType();
23964
23965  return selectVSplat(BV, Imm, EltTy.getSizeInBits()) &&
23966         Imm.getBitWidth() == EltTy.getSizeInBits() && Imm == 63;
23967
23968  }
23969  case 42: {
23970    // Predicate_immZExt5Plus1
23971    auto *N = cast<ConstantSDNode>(Node);
23972    (void)N;
23973
23974  return isUInt<5>(N->getZExtValue() - 1);
23975
23976  }
23977  case 43: {
23978    // Predicate_immZExt5Plus33
23979    auto *N = cast<ConstantSDNode>(Node);
23980    (void)N;
23981
23982  return isUInt<5>(N->getZExtValue() - 33);
23983
23984  }
23985  case 44: {
23986    // Predicate_immZExt5Plus32
23987    auto *N = cast<ConstantSDNode>(Node);
23988    (void)N;
23989
23990  return isUInt<5>(N->getZExtValue() - 32);
23991
23992  }
23993  case 45: {
23994    // Predicate_immZExtAndi16
23995    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
23996return (Imm == 128 || (Imm >= 1 && Imm <= 4) || Imm == 7 || Imm == 8 ||
23997            Imm == 15 || Imm == 16 || Imm == 31 || Imm == 32 || Imm == 63 ||
23998            Imm == 64 || Imm == 255 || Imm == 32768 || Imm == 65535 );
23999  }
24000  case 46: {
24001    // Predicate_immSExt10_64
24002    auto *N = cast<ConstantSDNode>(Node);
24003    (void)N;
24004 return isInt<10>(N->getSExtValue());
24005  }
24006  case 47: {
24007    // Predicate_immZExt2Lsa
24008    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
24009return isUInt<2>(Imm - 1);
24010  }
24011  case 48: {
24012    // Predicate_imm32SExt16
24013    const APInt & Imm = cast<ConstantSDNode>(Node)->getAPIntValue();
24014 return isInt<16>(Imm.getSExtValue());
24015  }
24016  case 49: {
24017    // Predicate_immSExt8
24018    auto *N = cast<ConstantSDNode>(Node);
24019    (void)N;
24020 return isInt<8>(N->getSExtValue());
24021  }
24022  case 50: {
24023    // Predicate_immSExtAddiur2
24024    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
24025return Imm == 1 || Imm == -1 ||
24026                                           ((Imm % 4 == 0) &&
24027                                            Imm < 28 && Imm > 0);
24028  }
24029  case 51: {
24030    // Predicate_immSExtAddius5
24031    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
24032return Imm >= -8 && Imm <= 7;
24033  }
24034  case 52: {
24035    // Predicate_immZExt2Shift
24036    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
24037return Imm >= 1 && Imm <= 8;
24038  }
24039  case 53: {
24040    // Predicate_assertzext_lt_i32
24041    SDNode *N = Node;
24042    (void)N;
24043
24044  return cast<VTSDNode>(N->getOperand(1))->getVT().bitsLT(MVT::i32);
24045
24046  }
24047  case 54: {
24048    // Predicate_immSExt6
24049    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
24050return isInt<6>(Imm);
24051  }
24052  case 55: {
24053    // Predicate_LUiPred
24054    auto *N = cast<ConstantSDNode>(Node);
24055    (void)N;
24056
24057  int64_t Val = N->getSExtValue();
24058  return !isInt<16>(Val) && isInt<32>(Val) && !(Val & 0xffff);
24059
24060  }
24061  case 56: {
24062    // Predicate_ORiPred
24063    auto *N = cast<ConstantSDNode>(Node);
24064    (void)N;
24065
24066  return isUInt<16>(N->getZExtValue()) && !isInt<16>(N->getSExtValue());
24067
24068  }
24069  case 57: {
24070    // Predicate_immLi16
24071    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
24072return Imm >= -1 && Imm <= 126;
24073  }
24074  case 58: {
24075    // Predicate_LUiORiPred
24076    auto *N = cast<ConstantSDNode>(Node);
24077    (void)N;
24078
24079  int64_t SVal = N->getSExtValue();
24080  return isInt<32>(SVal) && (SVal & 0xffff);
24081
24082  }
24083  case 59: {
24084    // Predicate_immZExt32Low16Zero
24085    auto *N = cast<ConstantSDNode>(Node);
24086    (void)N;
24087
24088  uint64_t Val = N->getZExtValue();
24089  return isUInt<32>(Val) && !(Val & 0xffff);
24090
24091  }
24092  case 60: {
24093    // Predicate_immZExt32
24094    auto *N = cast<ConstantSDNode>(Node);
24095    (void)N;
24096 return isUInt<32>(N->getZExtValue());
24097  }
24098  case 61: {
24099    // Predicate_fpimm0
24100    auto *N = cast<ConstantFPSDNode>(Node);
24101    (void)N;
24102
24103  return N->isExactlyValue(+0.0);
24104
24105  }
24106  case 62: {
24107    // Predicate_fpimm0neg
24108    auto *N = cast<ConstantFPSDNode>(Node);
24109    (void)N;
24110
24111  return N->isExactlyValue(-0.0);
24112
24113  }
24114  }
24115}
24116#endif // GET_DAGISEL_BODY
24117
24118#ifdef GET_DAGISEL_DECL
24119bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
24120      SDValue N, unsigned PatternNo,
24121      SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
24122#endif
24123#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
24124bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
24125      SDValue N, unsigned PatternNo,
24126      SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
24127#if DAGISEL_INLINE
24128  override
24129#endif
24130{
24131  unsigned NextRes = Result.size();
24132  switch (PatternNo) {
24133  default: llvm_unreachable("Invalid pattern # in table?");
24134  case 0:
24135    Result.resize(NextRes+2);
24136  return selectAddrRegImm(N, Result[NextRes+0].first, Result[NextRes+1].first);
24137  case 1:
24138    Result.resize(NextRes+2);
24139  return selectIntAddr(N, Result[NextRes+0].first, Result[NextRes+1].first);
24140  case 2:
24141    Result.resize(NextRes+2);
24142  return selectAddrDefault(N, Result[NextRes+0].first, Result[NextRes+1].first);
24143  case 3:
24144    Result.resize(NextRes+2);
24145  return selectAddr16(N, Result[NextRes+0].first, Result[NextRes+1].first);
24146  case 4:
24147    Result.resize(NextRes+2);
24148  return selectAddr16SP(N, Result[NextRes+0].first, Result[NextRes+1].first);
24149  case 5:
24150    Result.resize(NextRes+2);
24151  return selectIntAddrLSL2MM(N, Result[NextRes+0].first, Result[NextRes+1].first);
24152  case 6:
24153    Result.resize(NextRes+2);
24154  return selectIntAddr11MM(N, Result[NextRes+0].first, Result[NextRes+1].first);
24155  case 7:
24156    Result.resize(NextRes+2);
24157  return selectIntAddr16MM(N, Result[NextRes+0].first, Result[NextRes+1].first);
24158  case 8:
24159    Result.resize(NextRes+2);
24160  return selectIntAddrSImm10(N, Result[NextRes+0].first, Result[NextRes+1].first);
24161  case 9:
24162    Result.resize(NextRes+2);
24163  return selectIntAddrSImm10Lsl1(N, Result[NextRes+0].first, Result[NextRes+1].first);
24164  case 10:
24165    Result.resize(NextRes+2);
24166  return selectIntAddrSImm10Lsl2(N, Result[NextRes+0].first, Result[NextRes+1].first);
24167  case 11:
24168    Result.resize(NextRes+2);
24169  return selectIntAddrSImm10Lsl3(N, Result[NextRes+0].first, Result[NextRes+1].first);
24170  case 12:
24171    Result.resize(NextRes+2);
24172  return selectIntAddr12MM(N, Result[NextRes+0].first, Result[NextRes+1].first);
24173  case 13:
24174    Result.resize(NextRes+1);
24175  return selectVSplatUimmPow2(N, Result[NextRes+0].first);
24176  case 14:
24177    Result.resize(NextRes+1);
24178  return selectVSplatUimm8(N, Result[NextRes+0].first);
24179  case 15:
24180    Result.resize(NextRes+1);
24181  return selectVSplatUimmInvPow2(N, Result[NextRes+0].first);
24182  case 16:
24183    Result.resize(NextRes+1);
24184  return selectVSplatUimm5(N, Result[NextRes+0].first);
24185  case 17:
24186    Result.resize(NextRes+1);
24187  return selectVSplatUimm5(N, Result[NextRes+0].first);
24188  case 18:
24189    Result.resize(NextRes+1);
24190  return selectVSplatUimm5(N, Result[NextRes+0].first);
24191  case 19:
24192    Result.resize(NextRes+1);
24193  return selectVSplatUimm5(N, Result[NextRes+0].first);
24194  case 20:
24195    Result.resize(NextRes+1);
24196  return selectVSplatSimm5(N, Result[NextRes+0].first);
24197  case 21:
24198    Result.resize(NextRes+1);
24199  return selectVSplatSimm5(N, Result[NextRes+0].first);
24200  case 22:
24201    Result.resize(NextRes+1);
24202  return selectVSplatSimm5(N, Result[NextRes+0].first);
24203  case 23:
24204    Result.resize(NextRes+1);
24205  return selectVSplatSimm5(N, Result[NextRes+0].first);
24206  case 24:
24207    Result.resize(NextRes+1);
24208  return selectVSplatUimm3(N, Result[NextRes+0].first);
24209  case 25:
24210    Result.resize(NextRes+1);
24211  return selectVSplatUimm4(N, Result[NextRes+0].first);
24212  case 26:
24213    Result.resize(NextRes+1);
24214  return selectVSplatUimm6(N, Result[NextRes+0].first);
24215  case 27:
24216    Result.resize(NextRes+1);
24217  return selectVSplatUimm4(N, Result[NextRes+0].first);
24218  case 28:
24219    Result.resize(NextRes+1);
24220  return selectVSplatUimm3(N, Result[NextRes+0].first);
24221  case 29:
24222    Result.resize(NextRes+1);
24223  return selectVSplatUimm2(N, Result[NextRes+0].first);
24224  case 30:
24225    Result.resize(NextRes+1);
24226  return selectVSplatUimm1(N, Result[NextRes+0].first);
24227  case 31:
24228    Result.resize(NextRes+1);
24229  return selectVSplatMaskL(N, Result[NextRes+0].first);
24230  case 32:
24231    Result.resize(NextRes+1);
24232  return selectVSplatMaskL(N, Result[NextRes+0].first);
24233  case 33:
24234    Result.resize(NextRes+1);
24235  return selectVSplatMaskL(N, Result[NextRes+0].first);
24236  case 34:
24237    Result.resize(NextRes+1);
24238  return selectVSplatMaskL(N, Result[NextRes+0].first);
24239  case 35:
24240    Result.resize(NextRes+1);
24241  return selectVSplatMaskR(N, Result[NextRes+0].first);
24242  case 36:
24243    Result.resize(NextRes+1);
24244  return selectVSplatMaskR(N, Result[NextRes+0].first);
24245  case 37:
24246    Result.resize(NextRes+1);
24247  return selectVSplatMaskR(N, Result[NextRes+0].first);
24248  case 38:
24249    Result.resize(NextRes+1);
24250  return selectVSplatMaskR(N, Result[NextRes+0].first);
24251  }
24252}
24253#endif // GET_DAGISEL_BODY
24254
24255#ifdef GET_DAGISEL_DECL
24256SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
24257#endif
24258#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
24259SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
24260#if DAGISEL_INLINE
24261  override
24262#endif
24263{
24264  switch (XFormNo) {
24265  default: llvm_unreachable("Invalid xform # in table?");
24266  case 0: {
24267    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
24268
24269  return getImm(N, Log2_64((unsigned) N->getZExtValue()));
24270
24271  }
24272  case 1: {
24273    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
24274
24275  return getImm(N, Log2_64((unsigned) (N->getZExtValue() >> 32)));
24276
24277  }
24278  case 2: {
24279    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
24280 return getImm(N, N->getSExtValue() + 1);
24281  }
24282  case 3: {
24283    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
24284
24285  return getImm(N, N->getZExtValue() & 0xFFFF);
24286
24287  }
24288  case 4: {
24289    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
24290
24291  return getImm(N, 31 - N->getZExtValue());
24292
24293  }
24294  case 5: {
24295    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
24296
24297  return getImm(N, (N->getZExtValue() >> 16) & 0xFFFF);
24298
24299  }
24300  }
24301}
24302#endif // GET_DAGISEL_BODY
24303
24304
24305#ifdef DAGISEL_INLINE
24306#undef DAGISEL_INLINE
24307#endif
24308#ifdef DAGISEL_CLASS_COLONCOLON
24309#undef DAGISEL_CLASS_COLONCOLON
24310#endif
24311#ifdef GET_DAGISEL_DECL
24312#undef GET_DAGISEL_DECL
24313#endif
24314#ifdef GET_DAGISEL_BODY
24315#undef GET_DAGISEL_BODY
24316#endif
24317