~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/ARMGenDAGISel.inc

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===- TableGen'erated file -------------------------------------*- C++ -*-===//
 
2
//
 
3
// DAG Instruction Selector for the ARM 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
 
 
13
// Predicate functions.
 
14
inline bool Predicate_adde_dead_carry(SDNode *N) const {
 
15
return !N->hasAnyUseOfValue(1);
 
16
}
 
17
inline bool Predicate_adde_live_carry(SDNode *N) const {
 
18
return N->hasAnyUseOfValue(1);
 
19
}
 
20
inline bool Predicate_atomic_cmp_swap_16(SDNode *N) const {
 
21
 
 
22
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
23
 
 
24
}
 
25
inline bool Predicate_atomic_cmp_swap_32(SDNode *N) const {
 
26
 
 
27
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
28
 
 
29
}
 
30
inline bool Predicate_atomic_cmp_swap_64(SDNode *N) const {
 
31
 
 
32
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
33
 
 
34
}
 
35
inline bool Predicate_atomic_cmp_swap_8(SDNode *N) const {
 
36
 
 
37
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
38
 
 
39
}
 
40
inline bool Predicate_atomic_load_add_16(SDNode *N) const {
 
41
 
 
42
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
43
  
 
44
}
 
45
inline bool Predicate_atomic_load_add_32(SDNode *N) const {
 
46
 
 
47
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
48
  
 
49
}
 
50
inline bool Predicate_atomic_load_add_64(SDNode *N) const {
 
51
 
 
52
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
53
  
 
54
}
 
55
inline bool Predicate_atomic_load_add_8(SDNode *N) const {
 
56
 
 
57
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
58
  
 
59
}
 
60
inline bool Predicate_atomic_load_and_16(SDNode *N) const {
 
61
 
 
62
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
63
  
 
64
}
 
65
inline bool Predicate_atomic_load_and_32(SDNode *N) const {
 
66
 
 
67
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
68
  
 
69
}
 
70
inline bool Predicate_atomic_load_and_64(SDNode *N) const {
 
71
 
 
72
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
73
  
 
74
}
 
75
inline bool Predicate_atomic_load_and_8(SDNode *N) const {
 
76
 
 
77
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
78
  
 
79
}
 
80
inline bool Predicate_atomic_load_max_16(SDNode *N) const {
 
81
 
 
82
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
83
  
 
84
}
 
85
inline bool Predicate_atomic_load_max_32(SDNode *N) const {
 
86
 
 
87
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
88
  
 
89
}
 
90
inline bool Predicate_atomic_load_max_64(SDNode *N) const {
 
91
 
 
92
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
93
  
 
94
}
 
95
inline bool Predicate_atomic_load_max_8(SDNode *N) const {
 
96
 
 
97
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
98
  
 
99
}
 
100
inline bool Predicate_atomic_load_min_16(SDNode *N) const {
 
101
 
 
102
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
103
  
 
104
}
 
105
inline bool Predicate_atomic_load_min_32(SDNode *N) const {
 
106
 
 
107
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
108
  
 
109
}
 
110
inline bool Predicate_atomic_load_min_64(SDNode *N) const {
 
111
 
 
112
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
113
  
 
114
}
 
115
inline bool Predicate_atomic_load_min_8(SDNode *N) const {
 
116
 
 
117
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
118
  
 
119
}
 
120
inline bool Predicate_atomic_load_nand_16(SDNode *N) const {
 
121
 
 
122
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
123
  
 
124
}
 
125
inline bool Predicate_atomic_load_nand_32(SDNode *N) const {
 
126
 
 
127
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
128
  
 
129
}
 
130
inline bool Predicate_atomic_load_nand_64(SDNode *N) const {
 
131
 
 
132
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
133
  
 
134
}
 
135
inline bool Predicate_atomic_load_nand_8(SDNode *N) const {
 
136
 
 
137
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
138
  
 
139
}
 
140
inline bool Predicate_atomic_load_or_16(SDNode *N) const {
 
141
 
 
142
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
143
  
 
144
}
 
145
inline bool Predicate_atomic_load_or_32(SDNode *N) const {
 
146
 
 
147
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
148
  
 
149
}
 
150
inline bool Predicate_atomic_load_or_64(SDNode *N) const {
 
151
 
 
152
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
153
  
 
154
}
 
155
inline bool Predicate_atomic_load_or_8(SDNode *N) const {
 
156
 
 
157
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
158
  
 
159
}
 
160
inline bool Predicate_atomic_load_sub_16(SDNode *N) const {
 
161
 
 
162
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
163
  
 
164
}
 
165
inline bool Predicate_atomic_load_sub_32(SDNode *N) const {
 
166
 
 
167
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
168
  
 
169
}
 
170
inline bool Predicate_atomic_load_sub_64(SDNode *N) const {
 
171
 
 
172
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
173
  
 
174
}
 
175
inline bool Predicate_atomic_load_sub_8(SDNode *N) const {
 
176
 
 
177
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
178
  
 
179
}
 
180
inline bool Predicate_atomic_load_umax_16(SDNode *N) const {
 
181
 
 
182
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
183
  
 
184
}
 
185
inline bool Predicate_atomic_load_umax_32(SDNode *N) const {
 
186
 
 
187
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
188
  
 
189
}
 
190
inline bool Predicate_atomic_load_umax_64(SDNode *N) const {
 
191
 
 
192
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
193
  
 
194
}
 
195
inline bool Predicate_atomic_load_umax_8(SDNode *N) const {
 
196
 
 
197
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
198
  
 
199
}
 
200
inline bool Predicate_atomic_load_umin_16(SDNode *N) const {
 
201
 
 
202
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
203
  
 
204
}
 
205
inline bool Predicate_atomic_load_umin_32(SDNode *N) const {
 
206
 
 
207
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
208
  
 
209
}
 
210
inline bool Predicate_atomic_load_umin_64(SDNode *N) const {
 
211
 
 
212
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
213
  
 
214
}
 
215
inline bool Predicate_atomic_load_umin_8(SDNode *N) const {
 
216
 
 
217
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
218
  
 
219
}
 
220
inline bool Predicate_atomic_load_xor_16(SDNode *N) const {
 
221
 
 
222
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
223
  
 
224
}
 
225
inline bool Predicate_atomic_load_xor_32(SDNode *N) const {
 
226
 
 
227
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
228
  
 
229
}
 
230
inline bool Predicate_atomic_load_xor_64(SDNode *N) const {
 
231
 
 
232
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
233
  
 
234
}
 
235
inline bool Predicate_atomic_load_xor_8(SDNode *N) const {
 
236
 
 
237
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
238
  
 
239
}
 
240
inline bool Predicate_atomic_swap_16(SDNode *N) const {
 
241
 
 
242
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
243
  
 
244
}
 
245
inline bool Predicate_atomic_swap_32(SDNode *N) const {
 
246
 
 
247
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
248
  
 
249
}
 
250
inline bool Predicate_atomic_swap_64(SDNode *N) const {
 
251
 
 
252
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
 
253
  
 
254
}
 
255
inline bool Predicate_atomic_swap_8(SDNode *N) const {
 
256
 
 
257
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
258
  
 
259
}
 
260
inline bool Predicate_bf_inv_mask_imm(SDNode *inN) const {
 
261
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
262
 
 
263
  uint32_t v = (uint32_t)N->getZExtValue();
 
264
  if (v == 0xffffffff)
 
265
    return 0;
 
266
  // there can be 1's on either or both "outsides", all the "inside"
 
267
  // bits must be 0's
 
268
  unsigned int lsb = 0, msb = 31;
 
269
  while (v & (1 << msb)) --msb;
 
270
  while (v & (1 << lsb)) ++lsb;
 
271
  for (unsigned int i = lsb; i <= msb; ++i) {
 
272
    if (v & (1 << i))
 
273
      return 0;
 
274
  }
 
275
  return 1;
 
276
 
 
277
}
 
278
inline bool Predicate_cvtff(SDNode *N) const {
 
279
 
 
280
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_FF;
 
281
    
 
282
}
 
283
inline bool Predicate_cvtfs(SDNode *N) const {
 
284
 
 
285
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_FS;
 
286
    
 
287
}
 
288
inline bool Predicate_cvtfu(SDNode *N) const {
 
289
 
 
290
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_FU;
 
291
    
 
292
}
 
293
inline bool Predicate_cvtsf(SDNode *N) const {
 
294
 
 
295
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_SF;
 
296
    
 
297
}
 
298
inline bool Predicate_cvtss(SDNode *N) const {
 
299
 
 
300
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_SS;
 
301
    
 
302
}
 
303
inline bool Predicate_cvtsu(SDNode *N) const {
 
304
 
 
305
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_SU;
 
306
    
 
307
}
 
308
inline bool Predicate_cvtuf(SDNode *N) const {
 
309
 
 
310
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_UF;
 
311
    
 
312
}
 
313
inline bool Predicate_cvtus(SDNode *N) const {
 
314
 
 
315
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_US;
 
316
    
 
317
}
 
318
inline bool Predicate_cvtuu(SDNode *N) const {
 
319
 
 
320
       return cast<CvtRndSatSDNode>(N)->getCvtCode() == ISD::CVT_UU;
 
321
    
 
322
}
 
323
inline bool Predicate_extload(SDNode *N) const {
 
324
 
 
325
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
 
326
 
 
327
}
 
328
inline bool Predicate_extloadf32(SDNode *N) const {
 
329
 
 
330
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;
 
331
 
 
332
}
 
333
inline bool Predicate_extloadf64(SDNode *N) const {
 
334
 
 
335
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f64;
 
336
 
 
337
}
 
338
inline bool Predicate_extloadi1(SDNode *N) const {
 
339
 
 
340
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
 
341
 
 
342
}
 
343
inline bool Predicate_extloadi16(SDNode *N) const {
 
344
 
 
345
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
 
346
 
 
347
}
 
348
inline bool Predicate_extloadi32(SDNode *N) const {
 
349
 
 
350
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
 
351
 
 
352
}
 
353
inline bool Predicate_extloadi8(SDNode *N) const {
 
354
 
 
355
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
 
356
 
 
357
}
 
358
inline bool Predicate_imm0_255(SDNode *inN) const {
 
359
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
360
 
 
361
  return (uint32_t)N->getZExtValue() < 256;
 
362
 
 
363
}
 
364
inline bool Predicate_imm0_255_comp(SDNode *inN) const {
 
365
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
366
 
 
367
  return ~((uint32_t)N->getZExtValue()) < 256;
 
368
 
 
369
}
 
370
inline bool Predicate_imm0_255_neg(SDNode *inN) const {
 
371
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
372
 
 
373
  return (uint32_t)(-N->getZExtValue()) < 255;
 
374
 
 
375
}
 
376
inline bool Predicate_imm0_31(SDNode *inN) const {
 
377
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
378
 
 
379
  return (int32_t)N->getZExtValue() < 32;
 
380
 
 
381
}
 
382
inline bool Predicate_imm0_4095(SDNode *inN) const {
 
383
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
384
 
 
385
  return (uint32_t)N->getZExtValue() < 4096;
 
386
 
 
387
}
 
388
inline bool Predicate_imm0_4095_neg(SDNode *inN) const {
 
389
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
390
 
 
391
 return (uint32_t)(-N->getZExtValue()) < 4096;
 
392
 
 
393
}
 
394
inline bool Predicate_imm0_65535(SDNode *inN) const {
 
395
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
396
 
 
397
  return (uint32_t)N->getZExtValue() < 65536;
 
398
 
 
399
}
 
400
inline bool Predicate_imm0_7(SDNode *inN) const {
 
401
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
402
 
 
403
  return (uint32_t)N->getZExtValue() < 8;
 
404
 
 
405
}
 
406
inline bool Predicate_imm0_7_neg(SDNode *inN) const {
 
407
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
408
 
 
409
  return (uint32_t)-N->getZExtValue() < 8;
 
410
 
 
411
}
 
412
inline bool Predicate_imm16_31(SDNode *inN) const {
 
413
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
414
 
 
415
  return (int32_t)N->getZExtValue() >= 16 && (int32_t)N->getZExtValue() < 32;
 
416
 
 
417
}
 
418
inline bool Predicate_imm1_15(SDNode *inN) const {
 
419
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
420
 
 
421
  return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 16;
 
422
 
 
423
}
 
424
inline bool Predicate_imm1_31(SDNode *inN) const {
 
425
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
426
 
 
427
  return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 32;
 
428
 
 
429
}
 
430
inline bool Predicate_imm8_255(SDNode *inN) const {
 
431
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
432
 
 
433
  return (uint32_t)N->getZExtValue() >= 8 && (uint32_t)N->getZExtValue() < 256;
 
434
 
 
435
}
 
436
inline bool Predicate_imm8_255_neg(SDNode *inN) const {
 
437
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
438
 
 
439
  unsigned Val = -N->getZExtValue();
 
440
  return Val >= 8 && Val < 256;
 
441
 
 
442
}
 
443
inline bool Predicate_immAllOnesV(SDNode *N) const {
 
444
 
 
445
  return ISD::isBuildVectorAllOnes(N);
 
446
 
 
447
}
 
448
inline bool Predicate_immAllOnesV_bc(SDNode *N) const {
 
449
 
 
450
  return ISD::isBuildVectorAllOnes(N);
 
451
 
 
452
}
 
453
inline bool Predicate_immAllZerosV(SDNode *N) const {
 
454
 
 
455
  return ISD::isBuildVectorAllZeros(N);
 
456
 
 
457
}
 
458
inline bool Predicate_immAllZerosV_bc(SDNode *N) const {
 
459
 
 
460
  return ISD::isBuildVectorAllZeros(N);
 
461
 
 
462
}
 
463
inline bool Predicate_istore(SDNode *N) const {
 
464
 
 
465
  return !cast<StoreSDNode>(N)->isTruncatingStore();
 
466
 
 
467
}
 
468
inline bool Predicate_itruncstore(SDNode *N) const {
 
469
 
 
470
  return cast<StoreSDNode>(N)->isTruncatingStore();
 
471
 
 
472
}
 
473
inline bool Predicate_lo16AllZero(SDNode *inN) const {
 
474
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
475
 
 
476
  // Returns true if all low 16-bits are 0.
 
477
  return (((uint32_t)N->getZExtValue()) & 0xFFFFUL) == 0;
 
478
 
 
479
}
 
480
inline bool Predicate_load(SDNode *N) const {
 
481
 
 
482
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
 
483
 
 
484
}
 
485
inline bool Predicate_post_store(SDNode *N) const {
 
486
 
 
487
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
488
  return AM == ISD::POST_INC || AM == ISD::POST_DEC;
 
489
 
 
490
}
 
491
inline bool Predicate_post_truncst(SDNode *N) const {
 
492
 
 
493
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
494
  return AM == ISD::POST_INC || AM == ISD::POST_DEC;
 
495
 
 
496
}
 
497
inline bool Predicate_post_truncstf32(SDNode *N) const {
 
498
 
 
499
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;
 
500
 
 
501
}
 
502
inline bool Predicate_post_truncsti1(SDNode *N) const {
 
503
 
 
504
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i1;
 
505
 
 
506
}
 
507
inline bool Predicate_post_truncsti16(SDNode *N) const {
 
508
 
 
509
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
 
510
 
 
511
}
 
512
inline bool Predicate_post_truncsti32(SDNode *N) const {
 
513
 
 
514
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
 
515
 
 
516
}
 
517
inline bool Predicate_post_truncsti8(SDNode *N) const {
 
518
 
 
519
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
 
520
 
 
521
}
 
522
inline bool Predicate_pre_store(SDNode *N) const {
 
523
 
 
524
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
525
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
 
526
 
 
527
}
 
528
inline bool Predicate_pre_truncst(SDNode *N) const {
 
529
 
 
530
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
531
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
 
532
 
 
533
}
 
534
inline bool Predicate_pre_truncstf32(SDNode *N) const {
 
535
 
 
536
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;
 
537
 
 
538
}
 
539
inline bool Predicate_pre_truncsti1(SDNode *N) const {
 
540
 
 
541
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i1;
 
542
 
 
543
}
 
544
inline bool Predicate_pre_truncsti16(SDNode *N) const {
 
545
 
 
546
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
 
547
 
 
548
}
 
549
inline bool Predicate_pre_truncsti32(SDNode *N) const {
 
550
 
 
551
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
 
552
 
 
553
}
 
554
inline bool Predicate_pre_truncsti8(SDNode *N) const {
 
555
 
 
556
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
 
557
 
 
558
}
 
559
inline bool Predicate_rot_imm(SDNode *inN) const {
 
560
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
561
 
 
562
  int32_t v = (int32_t)N->getZExtValue();
 
563
  return v == 8 || v == 16 || v == 24;
 
564
 
 
565
}
 
566
inline bool Predicate_sext_16_node(SDNode *N) const {
 
567
 
 
568
  return CurDAG->ComputeNumSignBits(SDValue(N,0)) >= 17;
 
569
 
 
570
}
 
571
inline bool Predicate_sextload(SDNode *N) const {
 
572
 
 
573
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
 
574
 
 
575
}
 
576
inline bool Predicate_sextloadi1(SDNode *N) const {
 
577
 
 
578
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
 
579
 
 
580
}
 
581
inline bool Predicate_sextloadi16(SDNode *N) const {
 
582
 
 
583
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
 
584
 
 
585
}
 
586
inline bool Predicate_sextloadi32(SDNode *N) const {
 
587
 
 
588
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
 
589
 
 
590
}
 
591
inline bool Predicate_sextloadi8(SDNode *N) const {
 
592
 
 
593
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
 
594
 
 
595
}
 
596
inline bool Predicate_so_imm(SDNode *inN) const {
 
597
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
598
 
 
599
      return ARM_AM::getSOImmVal(N->getZExtValue()) != -1;
 
600
    
 
601
}
 
602
inline bool Predicate_so_imm2part(SDNode *inN) const {
 
603
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
604
 
 
605
      return ARM_AM::isSOImmTwoPartVal((unsigned)N->getZExtValue());
 
606
    
 
607
}
 
608
inline bool Predicate_so_imm_neg(SDNode *inN) const {
 
609
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
610
 
 
611
    return ARM_AM::getSOImmVal(-(int)N->getZExtValue()) != -1;
 
612
  
 
613
}
 
614
inline bool Predicate_so_imm_not(SDNode *inN) const {
 
615
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
616
 
 
617
    return ARM_AM::getSOImmVal(~(int)N->getZExtValue()) != -1;
 
618
  
 
619
}
 
620
inline bool Predicate_so_neg_imm2part(SDNode *inN) const {
 
621
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
622
 
 
623
      return ARM_AM::isSOImmTwoPartVal(-(int)N->getZExtValue());
 
624
    
 
625
}
 
626
inline bool Predicate_store(SDNode *N) const {
 
627
 
 
628
  return !cast<StoreSDNode>(N)->isTruncatingStore();
 
629
 
 
630
}
 
631
inline bool Predicate_sube_dead_carry(SDNode *N) const {
 
632
return !N->hasAnyUseOfValue(1);
 
633
}
 
634
inline bool Predicate_sube_live_carry(SDNode *N) const {
 
635
return N->hasAnyUseOfValue(1);
 
636
}
 
637
inline bool Predicate_t2_so_imm(SDNode *inN) const {
 
638
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
639
 
 
640
  return ARM_AM::getT2SOImmVal((uint32_t)N->getZExtValue()) != -1;
 
641
 
 
642
}
 
643
inline bool Predicate_t2_so_imm2part(SDNode *inN) const {
 
644
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
645
 
 
646
      return ARM_AM::isT2SOImmTwoPartVal((unsigned)N->getZExtValue());
 
647
    
 
648
}
 
649
inline bool Predicate_t2_so_imm_neg(SDNode *inN) const {
 
650
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
651
 
 
652
  return ARM_AM::getT2SOImmVal(-((int)N->getZExtValue())) != -1;
 
653
 
 
654
}
 
655
inline bool Predicate_t2_so_imm_not(SDNode *inN) const {
 
656
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
657
 
 
658
  return ARM_AM::getT2SOImmVal(~((uint32_t)N->getZExtValue())) != -1;
 
659
 
 
660
}
 
661
inline bool Predicate_t2_so_neg_imm2part(SDNode *inN) const {
 
662
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
663
 
 
664
      return ARM_AM::isT2SOImmTwoPartVal(-(int)N->getZExtValue());
 
665
    
 
666
}
 
667
inline bool Predicate_thumb_immshifted(SDNode *inN) const {
 
668
  ConstantSDNode *N = cast<ConstantSDNode>(inN);
 
669
 
 
670
  return ARM_AM::isThumbImmShiftedVal((unsigned)N->getZExtValue());
 
671
 
 
672
}
 
673
inline bool Predicate_truncstore(SDNode *N) const {
 
674
 
 
675
  return cast<StoreSDNode>(N)->isTruncatingStore();
 
676
 
 
677
}
 
678
inline bool Predicate_truncstoref32(SDNode *N) const {
 
679
 
 
680
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;
 
681
 
 
682
}
 
683
inline bool Predicate_truncstoref64(SDNode *N) const {
 
684
 
 
685
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f64;
 
686
 
 
687
}
 
688
inline bool Predicate_truncstorei16(SDNode *N) const {
 
689
 
 
690
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
 
691
 
 
692
}
 
693
inline bool Predicate_truncstorei32(SDNode *N) const {
 
694
 
 
695
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
 
696
 
 
697
}
 
698
inline bool Predicate_truncstorei8(SDNode *N) const {
 
699
 
 
700
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
 
701
 
 
702
}
 
703
inline bool Predicate_unindexedload(SDNode *N) const {
 
704
 
 
705
  return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
 
706
 
 
707
}
 
708
inline bool Predicate_unindexedstore(SDNode *N) const {
 
709
 
 
710
  return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
 
711
 
 
712
}
 
713
inline bool Predicate_vfp_f32imm(SDNode *inN) const {
 
714
  ConstantFPSDNode *N = cast<ConstantFPSDNode>(inN);
 
715
 
 
716
      return ARM::getVFPf32Imm(N->getValueAPF()) != -1;
 
717
    
 
718
}
 
719
inline bool Predicate_vfp_f64imm(SDNode *inN) const {
 
720
  ConstantFPSDNode *N = cast<ConstantFPSDNode>(inN);
 
721
 
 
722
      return ARM::getVFPf64Imm(N->getValueAPF()) != -1;
 
723
    
 
724
}
 
725
inline bool Predicate_vmovImm16(SDNode *N) const {
 
726
 
 
727
  return ARM::getVMOVImm(N, 2, *CurDAG).getNode() != 0;
 
728
 
 
729
}
 
730
inline bool Predicate_vmovImm32(SDNode *N) const {
 
731
 
 
732
  return ARM::getVMOVImm(N, 4, *CurDAG).getNode() != 0;
 
733
 
 
734
}
 
735
inline bool Predicate_vmovImm64(SDNode *N) const {
 
736
 
 
737
  return ARM::getVMOVImm(N, 8, *CurDAG).getNode() != 0;
 
738
 
 
739
}
 
740
inline bool Predicate_vmovImm8(SDNode *N) const {
 
741
 
 
742
  return ARM::getVMOVImm(N, 1, *CurDAG).getNode() != 0;
 
743
 
 
744
}
 
745
inline bool Predicate_vtFP(SDNode *inN) const {
 
746
  VTSDNode *N = cast<VTSDNode>(inN);
 
747
 return N->getVT().isFloatingPoint(); 
 
748
}
 
749
inline bool Predicate_vtInt(SDNode *inN) const {
 
750
  VTSDNode *N = cast<VTSDNode>(inN);
 
751
 return N->getVT().isInteger(); 
 
752
}
 
753
inline bool Predicate_zextload(SDNode *N) const {
 
754
 
 
755
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
 
756
 
 
757
}
 
758
inline bool Predicate_zextloadi1(SDNode *N) const {
 
759
 
 
760
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
 
761
 
 
762
}
 
763
inline bool Predicate_zextloadi16(SDNode *N) const {
 
764
 
 
765
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
 
766
 
 
767
}
 
768
inline bool Predicate_zextloadi32(SDNode *N) const {
 
769
 
 
770
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
 
771
 
 
772
}
 
773
inline bool Predicate_zextloadi8(SDNode *N) const {
 
774
 
 
775
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
 
776
 
 
777
}
 
778
 
 
779
 
 
780
// The main instruction selector code.
 
781
SDNode *SelectCode(SDNode *N) {
 
782
  // Opcodes are emitted as 2 bytes, TARGET_OPCODE handles this.
 
783
  #define TARGET_OPCODE(X) X & 255, unsigned(X) >> 8
 
784
  static const unsigned char MatcherTable[] = {
 
785
          OPC_SwitchOpcode , 94|128,83,  ISD::OR,
 
786
            OPC_Scope, 27|128,59, 
 
787
              OPC_MoveChild, 0,
 
788
              OPC_Scope, 80|128,8, 
 
789
                OPC_CheckAndImm, 127|128,1, 
 
790
                OPC_MoveChild, 0,
 
791
                OPC_CheckOpcode, ISD::SRL,
 
792
                OPC_RecordChild0,
 
793
                OPC_MoveChild, 1,
 
794
                OPC_CheckInteger, 8, 
 
795
                OPC_CheckType, MVT::i32,
 
796
                OPC_MoveParent,
 
797
                OPC_MoveParent,
 
798
                OPC_MoveParent,
 
799
                OPC_MoveChild, 1,
 
800
                OPC_CheckOpcode, ISD::OR,
 
801
                OPC_MoveChild, 0,
 
802
                OPC_Scope, 12|128,1, 
 
803
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
804
                  OPC_MoveChild, 0,
 
805
                  OPC_CheckOpcode, ISD::SHL,
 
806
                  OPC_MoveChild, 0,
 
807
                  OPC_CheckSame, 0,
 
808
                  OPC_MoveParent,
 
809
                  OPC_MoveChild, 1,
 
810
                  OPC_CheckInteger, 8, 
 
811
                  OPC_CheckType, MVT::i32,
 
812
                  OPC_MoveParent,
 
813
                  OPC_MoveParent,
 
814
                  OPC_MoveParent,
 
815
                  OPC_MoveChild, 1,
 
816
                  OPC_CheckOpcode, ISD::OR,
 
817
                  OPC_MoveChild, 0,
 
818
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
819
                  OPC_MoveChild, 0,
 
820
                  OPC_CheckOpcode, ISD::SRL,
 
821
                  OPC_MoveChild, 0,
 
822
                  OPC_CheckSame, 0,
 
823
                  OPC_MoveParent,
 
824
                  OPC_MoveChild, 1,
 
825
                  OPC_CheckInteger, 8, 
 
826
                  OPC_CheckType, MVT::i32,
 
827
                  OPC_MoveParent,
 
828
                  OPC_MoveParent,
 
829
                  OPC_MoveParent,
 
830
                  OPC_MoveChild, 1,
 
831
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
832
                  OPC_MoveChild, 0,
 
833
                  OPC_CheckOpcode, ISD::SHL,
 
834
                  OPC_MoveChild, 0,
 
835
                  OPC_CheckSame, 0,
 
836
                  OPC_MoveParent,
 
837
                  OPC_MoveChild, 1,
 
838
                  OPC_CheckInteger, 8, 
 
839
                  OPC_CheckType, MVT::i32,
 
840
                  OPC_MoveParent,
 
841
                  OPC_MoveParent,
 
842
                  OPC_MoveParent,
 
843
                  OPC_MoveParent,
 
844
                  OPC_MoveParent,
 
845
                  OPC_CheckType, MVT::i32,
 
846
                  OPC_Scope, 18, 
 
847
                    OPC_CheckPatternPredicate, 0,
 
848
                    OPC_EmitInteger, MVT::i32, 14, 
 
849
                    OPC_EmitRegister, MVT::i32, 0 ,
 
850
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
851
                        1, MVT::i32, 3, 0, 1, 2, 
 
852
                  18, 
 
853
                    OPC_CheckPatternPredicate, 1,
 
854
                    OPC_EmitInteger, MVT::i32, 14, 
 
855
                    OPC_EmitRegister, MVT::i32, 0 ,
 
856
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
857
                        1, MVT::i32, 3, 0, 1, 2, 
 
858
                  18, 
 
859
                    OPC_CheckPatternPredicate, 2,
 
860
                    OPC_EmitInteger, MVT::i32, 14, 
 
861
                    OPC_EmitRegister, MVT::i32, 0 ,
 
862
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
863
                        1, MVT::i32, 3, 0, 1, 2, 
 
864
                  0, 
 
865
                102|128,3, 
 
866
                  OPC_CheckOpcode, ISD::OR,
 
867
                  OPC_MoveChild, 0,
 
868
                  OPC_Scope, 95, 
 
869
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
870
                    OPC_MoveChild, 0,
 
871
                    OPC_CheckOpcode, ISD::SRL,
 
872
                    OPC_MoveChild, 0,
 
873
                    OPC_CheckSame, 0,
 
874
                    OPC_MoveParent,
 
875
                    OPC_MoveChild, 1,
 
876
                    OPC_CheckInteger, 8, 
 
877
                    OPC_CheckType, MVT::i32,
 
878
                    OPC_MoveParent,
 
879
                    OPC_MoveParent,
 
880
                    OPC_MoveParent,
 
881
                    OPC_MoveChild, 1,
 
882
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
883
                    OPC_MoveChild, 0,
 
884
                    OPC_CheckOpcode, ISD::SHL,
 
885
                    OPC_MoveChild, 0,
 
886
                    OPC_CheckSame, 0,
 
887
                    OPC_MoveParent,
 
888
                    OPC_MoveChild, 1,
 
889
                    OPC_CheckInteger, 8, 
 
890
                    OPC_CheckType, MVT::i32,
 
891
                    OPC_MoveParent,
 
892
                    OPC_MoveParent,
 
893
                    OPC_MoveParent,
 
894
                    OPC_MoveParent,
 
895
                    OPC_MoveChild, 1,
 
896
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
897
                    OPC_MoveChild, 0,
 
898
                    OPC_CheckOpcode, ISD::SHL,
 
899
                    OPC_MoveChild, 0,
 
900
                    OPC_CheckSame, 0,
 
901
                    OPC_MoveParent,
 
902
                    OPC_MoveChild, 1,
 
903
                    OPC_CheckInteger, 8, 
 
904
                    OPC_CheckType, MVT::i32,
 
905
                    OPC_MoveParent,
 
906
                    OPC_MoveParent,
 
907
                    OPC_MoveParent,
 
908
                    OPC_MoveParent,
 
909
                    OPC_CheckType, MVT::i32,
 
910
                    OPC_CheckPatternPredicate, 0,
 
911
                    OPC_EmitInteger, MVT::i32, 14, 
 
912
                    OPC_EmitRegister, MVT::i32, 0 ,
 
913
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
914
                        1, MVT::i32, 3, 0, 1, 2, 
 
915
                  95, 
 
916
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
917
                    OPC_MoveChild, 0,
 
918
                    OPC_CheckOpcode, ISD::SHL,
 
919
                    OPC_MoveChild, 0,
 
920
                    OPC_CheckSame, 0,
 
921
                    OPC_MoveParent,
 
922
                    OPC_MoveChild, 1,
 
923
                    OPC_CheckInteger, 8, 
 
924
                    OPC_CheckType, MVT::i32,
 
925
                    OPC_MoveParent,
 
926
                    OPC_MoveParent,
 
927
                    OPC_MoveParent,
 
928
                    OPC_MoveChild, 1,
 
929
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
930
                    OPC_MoveChild, 0,
 
931
                    OPC_CheckOpcode, ISD::SHL,
 
932
                    OPC_MoveChild, 0,
 
933
                    OPC_CheckSame, 0,
 
934
                    OPC_MoveParent,
 
935
                    OPC_MoveChild, 1,
 
936
                    OPC_CheckInteger, 8, 
 
937
                    OPC_CheckType, MVT::i32,
 
938
                    OPC_MoveParent,
 
939
                    OPC_MoveParent,
 
940
                    OPC_MoveParent,
 
941
                    OPC_MoveParent,
 
942
                    OPC_MoveChild, 1,
 
943
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
944
                    OPC_MoveChild, 0,
 
945
                    OPC_CheckOpcode, ISD::SRL,
 
946
                    OPC_MoveChild, 0,
 
947
                    OPC_CheckSame, 0,
 
948
                    OPC_MoveParent,
 
949
                    OPC_MoveChild, 1,
 
950
                    OPC_CheckInteger, 8, 
 
951
                    OPC_CheckType, MVT::i32,
 
952
                    OPC_MoveParent,
 
953
                    OPC_MoveParent,
 
954
                    OPC_MoveParent,
 
955
                    OPC_MoveParent,
 
956
                    OPC_CheckType, MVT::i32,
 
957
                    OPC_CheckPatternPredicate, 0,
 
958
                    OPC_EmitInteger, MVT::i32, 14, 
 
959
                    OPC_EmitRegister, MVT::i32, 0 ,
 
960
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
961
                        1, MVT::i32, 3, 0, 1, 2, 
 
962
                  95, 
 
963
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
964
                    OPC_MoveChild, 0,
 
965
                    OPC_CheckOpcode, ISD::SHL,
 
966
                    OPC_MoveChild, 0,
 
967
                    OPC_CheckSame, 0,
 
968
                    OPC_MoveParent,
 
969
                    OPC_MoveChild, 1,
 
970
                    OPC_CheckInteger, 8, 
 
971
                    OPC_CheckType, MVT::i32,
 
972
                    OPC_MoveParent,
 
973
                    OPC_MoveParent,
 
974
                    OPC_MoveParent,
 
975
                    OPC_MoveChild, 1,
 
976
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
977
                    OPC_MoveChild, 0,
 
978
                    OPC_CheckOpcode, ISD::SHL,
 
979
                    OPC_MoveChild, 0,
 
980
                    OPC_CheckSame, 0,
 
981
                    OPC_MoveParent,
 
982
                    OPC_MoveChild, 1,
 
983
                    OPC_CheckInteger, 8, 
 
984
                    OPC_CheckType, MVT::i32,
 
985
                    OPC_MoveParent,
 
986
                    OPC_MoveParent,
 
987
                    OPC_MoveParent,
 
988
                    OPC_MoveParent,
 
989
                    OPC_MoveChild, 1,
 
990
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
991
                    OPC_MoveChild, 0,
 
992
                    OPC_CheckOpcode, ISD::SRL,
 
993
                    OPC_MoveChild, 0,
 
994
                    OPC_CheckSame, 0,
 
995
                    OPC_MoveParent,
 
996
                    OPC_MoveChild, 1,
 
997
                    OPC_CheckInteger, 8, 
 
998
                    OPC_CheckType, MVT::i32,
 
999
                    OPC_MoveParent,
 
1000
                    OPC_MoveParent,
 
1001
                    OPC_MoveParent,
 
1002
                    OPC_MoveParent,
 
1003
                    OPC_CheckType, MVT::i32,
 
1004
                    OPC_CheckPatternPredicate, 0,
 
1005
                    OPC_EmitInteger, MVT::i32, 14, 
 
1006
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1007
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1008
                        1, MVT::i32, 3, 0, 1, 2, 
 
1009
                  95, 
 
1010
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1011
                    OPC_MoveChild, 0,
 
1012
                    OPC_CheckOpcode, ISD::SRL,
 
1013
                    OPC_MoveChild, 0,
 
1014
                    OPC_CheckSame, 0,
 
1015
                    OPC_MoveParent,
 
1016
                    OPC_MoveChild, 1,
 
1017
                    OPC_CheckInteger, 8, 
 
1018
                    OPC_CheckType, MVT::i32,
 
1019
                    OPC_MoveParent,
 
1020
                    OPC_MoveParent,
 
1021
                    OPC_MoveParent,
 
1022
                    OPC_MoveChild, 1,
 
1023
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1024
                    OPC_MoveChild, 0,
 
1025
                    OPC_CheckOpcode, ISD::SHL,
 
1026
                    OPC_MoveChild, 0,
 
1027
                    OPC_CheckSame, 0,
 
1028
                    OPC_MoveParent,
 
1029
                    OPC_MoveChild, 1,
 
1030
                    OPC_CheckInteger, 8, 
 
1031
                    OPC_CheckType, MVT::i32,
 
1032
                    OPC_MoveParent,
 
1033
                    OPC_MoveParent,
 
1034
                    OPC_MoveParent,
 
1035
                    OPC_MoveParent,
 
1036
                    OPC_MoveChild, 1,
 
1037
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1038
                    OPC_MoveChild, 0,
 
1039
                    OPC_CheckOpcode, ISD::SHL,
 
1040
                    OPC_MoveChild, 0,
 
1041
                    OPC_CheckSame, 0,
 
1042
                    OPC_MoveParent,
 
1043
                    OPC_MoveChild, 1,
 
1044
                    OPC_CheckInteger, 8, 
 
1045
                    OPC_CheckType, MVT::i32,
 
1046
                    OPC_MoveParent,
 
1047
                    OPC_MoveParent,
 
1048
                    OPC_MoveParent,
 
1049
                    OPC_MoveParent,
 
1050
                    OPC_CheckType, MVT::i32,
 
1051
                    OPC_CheckPatternPredicate, 0,
 
1052
                    OPC_EmitInteger, MVT::i32, 14, 
 
1053
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1054
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1055
                        1, MVT::i32, 3, 0, 1, 2, 
 
1056
                  95, 
 
1057
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1058
                    OPC_MoveChild, 0,
 
1059
                    OPC_CheckOpcode, ISD::SHL,
 
1060
                    OPC_MoveChild, 0,
 
1061
                    OPC_CheckSame, 0,
 
1062
                    OPC_MoveParent,
 
1063
                    OPC_MoveChild, 1,
 
1064
                    OPC_CheckInteger, 8, 
 
1065
                    OPC_CheckType, MVT::i32,
 
1066
                    OPC_MoveParent,
 
1067
                    OPC_MoveParent,
 
1068
                    OPC_MoveParent,
 
1069
                    OPC_MoveChild, 1,
 
1070
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1071
                    OPC_MoveChild, 0,
 
1072
                    OPC_CheckOpcode, ISD::SRL,
 
1073
                    OPC_MoveChild, 0,
 
1074
                    OPC_CheckSame, 0,
 
1075
                    OPC_MoveParent,
 
1076
                    OPC_MoveChild, 1,
 
1077
                    OPC_CheckInteger, 8, 
 
1078
                    OPC_CheckType, MVT::i32,
 
1079
                    OPC_MoveParent,
 
1080
                    OPC_MoveParent,
 
1081
                    OPC_MoveParent,
 
1082
                    OPC_MoveParent,
 
1083
                    OPC_MoveChild, 1,
 
1084
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1085
                    OPC_MoveChild, 0,
 
1086
                    OPC_CheckOpcode, ISD::SHL,
 
1087
                    OPC_MoveChild, 0,
 
1088
                    OPC_CheckSame, 0,
 
1089
                    OPC_MoveParent,
 
1090
                    OPC_MoveChild, 1,
 
1091
                    OPC_CheckInteger, 8, 
 
1092
                    OPC_CheckType, MVT::i32,
 
1093
                    OPC_MoveParent,
 
1094
                    OPC_MoveParent,
 
1095
                    OPC_MoveParent,
 
1096
                    OPC_MoveParent,
 
1097
                    OPC_CheckType, MVT::i32,
 
1098
                    OPC_CheckPatternPredicate, 0,
 
1099
                    OPC_EmitInteger, MVT::i32, 14, 
 
1100
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1101
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1102
                        1, MVT::i32, 3, 0, 1, 2, 
 
1103
                  0, 
 
1104
                44|128,1, 
 
1105
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1106
                  OPC_MoveChild, 0,
 
1107
                  OPC_CheckOpcode, ISD::SHL,
 
1108
                  OPC_MoveChild, 0,
 
1109
                  OPC_CheckSame, 0,
 
1110
                  OPC_MoveParent,
 
1111
                  OPC_MoveChild, 1,
 
1112
                  OPC_CheckInteger, 8, 
 
1113
                  OPC_CheckType, MVT::i32,
 
1114
                  OPC_MoveParent,
 
1115
                  OPC_MoveParent,
 
1116
                  OPC_MoveParent,
 
1117
                  OPC_MoveChild, 1,
 
1118
                  OPC_CheckOpcode, ISD::OR,
 
1119
                  OPC_MoveChild, 0,
 
1120
                  OPC_Scope, 69, 
 
1121
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1122
                    OPC_MoveChild, 0,
 
1123
                    OPC_CheckOpcode, ISD::SHL,
 
1124
                    OPC_MoveChild, 0,
 
1125
                    OPC_CheckSame, 0,
 
1126
                    OPC_MoveParent,
 
1127
                    OPC_MoveChild, 1,
 
1128
                    OPC_CheckInteger, 8, 
 
1129
                    OPC_CheckType, MVT::i32,
 
1130
                    OPC_MoveParent,
 
1131
                    OPC_MoveParent,
 
1132
                    OPC_MoveParent,
 
1133
                    OPC_MoveChild, 1,
 
1134
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1135
                    OPC_MoveChild, 0,
 
1136
                    OPC_CheckOpcode, ISD::SRL,
 
1137
                    OPC_MoveChild, 0,
 
1138
                    OPC_CheckSame, 0,
 
1139
                    OPC_MoveParent,
 
1140
                    OPC_MoveChild, 1,
 
1141
                    OPC_CheckInteger, 8, 
 
1142
                    OPC_CheckType, MVT::i32,
 
1143
                    OPC_MoveParent,
 
1144
                    OPC_MoveParent,
 
1145
                    OPC_MoveParent,
 
1146
                    OPC_MoveParent,
 
1147
                    OPC_MoveParent,
 
1148
                    OPC_CheckType, MVT::i32,
 
1149
                    OPC_CheckPatternPredicate, 0,
 
1150
                    OPC_EmitInteger, MVT::i32, 14, 
 
1151
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1152
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1153
                        1, MVT::i32, 3, 0, 1, 2, 
 
1154
                  69, 
 
1155
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1156
                    OPC_MoveChild, 0,
 
1157
                    OPC_CheckOpcode, ISD::SRL,
 
1158
                    OPC_MoveChild, 0,
 
1159
                    OPC_CheckSame, 0,
 
1160
                    OPC_MoveParent,
 
1161
                    OPC_MoveChild, 1,
 
1162
                    OPC_CheckInteger, 8, 
 
1163
                    OPC_CheckType, MVT::i32,
 
1164
                    OPC_MoveParent,
 
1165
                    OPC_MoveParent,
 
1166
                    OPC_MoveParent,
 
1167
                    OPC_MoveChild, 1,
 
1168
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1169
                    OPC_MoveChild, 0,
 
1170
                    OPC_CheckOpcode, ISD::SHL,
 
1171
                    OPC_MoveChild, 0,
 
1172
                    OPC_CheckSame, 0,
 
1173
                    OPC_MoveParent,
 
1174
                    OPC_MoveChild, 1,
 
1175
                    OPC_CheckInteger, 8, 
 
1176
                    OPC_CheckType, MVT::i32,
 
1177
                    OPC_MoveParent,
 
1178
                    OPC_MoveParent,
 
1179
                    OPC_MoveParent,
 
1180
                    OPC_MoveParent,
 
1181
                    OPC_MoveParent,
 
1182
                    OPC_CheckType, MVT::i32,
 
1183
                    OPC_CheckPatternPredicate, 0,
 
1184
                    OPC_EmitInteger, MVT::i32, 14, 
 
1185
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1186
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1187
                        1, MVT::i32, 3, 0, 1, 2, 
 
1188
                  0, 
 
1189
                45|128,1, 
 
1190
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1191
                  OPC_MoveChild, 0,
 
1192
                  OPC_CheckOpcode, ISD::SRL,
 
1193
                  OPC_MoveChild, 0,
 
1194
                  OPC_CheckSame, 0,
 
1195
                  OPC_MoveParent,
 
1196
                  OPC_MoveChild, 1,
 
1197
                  OPC_CheckInteger, 8, 
 
1198
                  OPC_CheckType, MVT::i32,
 
1199
                  OPC_MoveParent,
 
1200
                  OPC_MoveParent,
 
1201
                  OPC_MoveParent,
 
1202
                  OPC_MoveChild, 1,
 
1203
                  OPC_CheckOpcode, ISD::OR,
 
1204
                  OPC_MoveChild, 0,
 
1205
                  OPC_Scope, 70, 
 
1206
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1207
                    OPC_MoveChild, 0,
 
1208
                    OPC_CheckOpcode, ISD::SHL,
 
1209
                    OPC_MoveChild, 0,
 
1210
                    OPC_CheckSame, 0,
 
1211
                    OPC_MoveParent,
 
1212
                    OPC_MoveChild, 1,
 
1213
                    OPC_CheckInteger, 8, 
 
1214
                    OPC_CheckType, MVT::i32,
 
1215
                    OPC_MoveParent,
 
1216
                    OPC_MoveParent,
 
1217
                    OPC_MoveParent,
 
1218
                    OPC_MoveChild, 1,
 
1219
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1220
                    OPC_MoveChild, 0,
 
1221
                    OPC_CheckOpcode, ISD::SHL,
 
1222
                    OPC_MoveChild, 0,
 
1223
                    OPC_CheckSame, 0,
 
1224
                    OPC_MoveParent,
 
1225
                    OPC_MoveChild, 1,
 
1226
                    OPC_CheckInteger, 8, 
 
1227
                    OPC_CheckType, MVT::i32,
 
1228
                    OPC_MoveParent,
 
1229
                    OPC_MoveParent,
 
1230
                    OPC_MoveParent,
 
1231
                    OPC_MoveParent,
 
1232
                    OPC_MoveParent,
 
1233
                    OPC_CheckType, MVT::i32,
 
1234
                    OPC_CheckPatternPredicate, 0,
 
1235
                    OPC_EmitInteger, MVT::i32, 14, 
 
1236
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1237
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1238
                        1, MVT::i32, 3, 0, 1, 2, 
 
1239
                  70, 
 
1240
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1241
                    OPC_MoveChild, 0,
 
1242
                    OPC_CheckOpcode, ISD::SHL,
 
1243
                    OPC_MoveChild, 0,
 
1244
                    OPC_CheckSame, 0,
 
1245
                    OPC_MoveParent,
 
1246
                    OPC_MoveChild, 1,
 
1247
                    OPC_CheckInteger, 8, 
 
1248
                    OPC_CheckType, MVT::i32,
 
1249
                    OPC_MoveParent,
 
1250
                    OPC_MoveParent,
 
1251
                    OPC_MoveParent,
 
1252
                    OPC_MoveChild, 1,
 
1253
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1254
                    OPC_MoveChild, 0,
 
1255
                    OPC_CheckOpcode, ISD::SHL,
 
1256
                    OPC_MoveChild, 0,
 
1257
                    OPC_CheckSame, 0,
 
1258
                    OPC_MoveParent,
 
1259
                    OPC_MoveChild, 1,
 
1260
                    OPC_CheckInteger, 8, 
 
1261
                    OPC_CheckType, MVT::i32,
 
1262
                    OPC_MoveParent,
 
1263
                    OPC_MoveParent,
 
1264
                    OPC_MoveParent,
 
1265
                    OPC_MoveParent,
 
1266
                    OPC_MoveParent,
 
1267
                    OPC_CheckType, MVT::i32,
 
1268
                    OPC_CheckPatternPredicate, 0,
 
1269
                    OPC_EmitInteger, MVT::i32, 14, 
 
1270
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1271
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1272
                        1, MVT::i32, 3, 0, 1, 2, 
 
1273
                  0, 
 
1274
                99, 
 
1275
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
1276
                  OPC_MoveChild, 0,
 
1277
                  OPC_CheckOpcode, ISD::SHL,
 
1278
                  OPC_MoveChild, 0,
 
1279
                  OPC_CheckSame, 0,
 
1280
                  OPC_MoveParent,
 
1281
                  OPC_MoveChild, 1,
 
1282
                  OPC_CheckInteger, 8, 
 
1283
                  OPC_CheckType, MVT::i32,
 
1284
                  OPC_MoveParent,
 
1285
                  OPC_MoveParent,
 
1286
                  OPC_MoveParent,
 
1287
                  OPC_MoveChild, 1,
 
1288
                  OPC_CheckOpcode, ISD::OR,
 
1289
                  OPC_MoveChild, 0,
 
1290
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1291
                  OPC_MoveChild, 0,
 
1292
                  OPC_CheckOpcode, ISD::SHL,
 
1293
                  OPC_MoveChild, 0,
 
1294
                  OPC_CheckSame, 0,
 
1295
                  OPC_MoveParent,
 
1296
                  OPC_MoveChild, 1,
 
1297
                  OPC_CheckInteger, 8, 
 
1298
                  OPC_CheckType, MVT::i32,
 
1299
                  OPC_MoveParent,
 
1300
                  OPC_MoveParent,
 
1301
                  OPC_MoveParent,
 
1302
                  OPC_MoveChild, 1,
 
1303
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1304
                  OPC_MoveChild, 0,
 
1305
                  OPC_CheckOpcode, ISD::SRL,
 
1306
                  OPC_MoveChild, 0,
 
1307
                  OPC_CheckSame, 0,
 
1308
                  OPC_MoveParent,
 
1309
                  OPC_MoveChild, 1,
 
1310
                  OPC_CheckInteger, 8, 
 
1311
                  OPC_CheckType, MVT::i32,
 
1312
                  OPC_MoveParent,
 
1313
                  OPC_MoveParent,
 
1314
                  OPC_MoveParent,
 
1315
                  OPC_MoveParent,
 
1316
                  OPC_MoveParent,
 
1317
                  OPC_CheckType, MVT::i32,
 
1318
                  OPC_CheckPatternPredicate, 0,
 
1319
                  OPC_EmitInteger, MVT::i32, 14, 
 
1320
                  OPC_EmitRegister, MVT::i32, 0 ,
 
1321
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1322
                      1, MVT::i32, 3, 0, 1, 2, 
 
1323
                0, 
 
1324
              75|128,10, 
 
1325
                OPC_CheckOpcode, ISD::OR,
 
1326
                OPC_MoveChild, 0,
 
1327
                OPC_Scope, 56|128,5, 
 
1328
                  OPC_CheckOpcode, ISD::OR,
 
1329
                  OPC_MoveChild, 0,
 
1330
                  OPC_Scope, 114, 
 
1331
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1332
                    OPC_MoveChild, 0,
 
1333
                    OPC_CheckOpcode, ISD::SHL,
 
1334
                    OPC_RecordChild0,
 
1335
                    OPC_MoveChild, 1,
 
1336
                    OPC_CheckInteger, 8, 
 
1337
                    OPC_CheckType, MVT::i32,
 
1338
                    OPC_MoveParent,
 
1339
                    OPC_MoveParent,
 
1340
                    OPC_MoveParent,
 
1341
                    OPC_MoveChild, 1,
 
1342
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1343
                    OPC_MoveChild, 0,
 
1344
                    OPC_CheckOpcode, ISD::SRL,
 
1345
                    OPC_MoveChild, 0,
 
1346
                    OPC_CheckSame, 0,
 
1347
                    OPC_MoveParent,
 
1348
                    OPC_MoveChild, 1,
 
1349
                    OPC_CheckInteger, 8, 
 
1350
                    OPC_CheckType, MVT::i32,
 
1351
                    OPC_MoveParent,
 
1352
                    OPC_MoveParent,
 
1353
                    OPC_MoveParent,
 
1354
                    OPC_MoveParent,
 
1355
                    OPC_MoveChild, 1,
 
1356
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1357
                    OPC_MoveChild, 0,
 
1358
                    OPC_CheckOpcode, ISD::SHL,
 
1359
                    OPC_MoveChild, 0,
 
1360
                    OPC_CheckSame, 0,
 
1361
                    OPC_MoveParent,
 
1362
                    OPC_MoveChild, 1,
 
1363
                    OPC_CheckInteger, 8, 
 
1364
                    OPC_CheckType, MVT::i32,
 
1365
                    OPC_MoveParent,
 
1366
                    OPC_MoveParent,
 
1367
                    OPC_MoveParent,
 
1368
                    OPC_MoveParent,
 
1369
                    OPC_MoveChild, 1,
 
1370
                    OPC_CheckAndImm, 127|128,1, 
 
1371
                    OPC_MoveChild, 0,
 
1372
                    OPC_CheckOpcode, ISD::SRL,
 
1373
                    OPC_MoveChild, 0,
 
1374
                    OPC_CheckSame, 0,
 
1375
                    OPC_MoveParent,
 
1376
                    OPC_MoveChild, 1,
 
1377
                    OPC_CheckInteger, 8, 
 
1378
                    OPC_CheckType, MVT::i32,
 
1379
                    OPC_MoveParent,
 
1380
                    OPC_MoveParent,
 
1381
                    OPC_MoveParent,
 
1382
                    OPC_CheckType, MVT::i32,
 
1383
                    OPC_CheckPatternPredicate, 0,
 
1384
                    OPC_EmitInteger, MVT::i32, 14, 
 
1385
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1386
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1387
                        1, MVT::i32, 3, 0, 1, 2, 
 
1388
                  114, 
 
1389
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1390
                    OPC_MoveChild, 0,
 
1391
                    OPC_CheckOpcode, ISD::SRL,
 
1392
                    OPC_RecordChild0,
 
1393
                    OPC_MoveChild, 1,
 
1394
                    OPC_CheckInteger, 8, 
 
1395
                    OPC_CheckType, MVT::i32,
 
1396
                    OPC_MoveParent,
 
1397
                    OPC_MoveParent,
 
1398
                    OPC_MoveParent,
 
1399
                    OPC_MoveChild, 1,
 
1400
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1401
                    OPC_MoveChild, 0,
 
1402
                    OPC_CheckOpcode, ISD::SHL,
 
1403
                    OPC_MoveChild, 0,
 
1404
                    OPC_CheckSame, 0,
 
1405
                    OPC_MoveParent,
 
1406
                    OPC_MoveChild, 1,
 
1407
                    OPC_CheckInteger, 8, 
 
1408
                    OPC_CheckType, MVT::i32,
 
1409
                    OPC_MoveParent,
 
1410
                    OPC_MoveParent,
 
1411
                    OPC_MoveParent,
 
1412
                    OPC_MoveParent,
 
1413
                    OPC_MoveChild, 1,
 
1414
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1415
                    OPC_MoveChild, 0,
 
1416
                    OPC_CheckOpcode, ISD::SHL,
 
1417
                    OPC_MoveChild, 0,
 
1418
                    OPC_CheckSame, 0,
 
1419
                    OPC_MoveParent,
 
1420
                    OPC_MoveChild, 1,
 
1421
                    OPC_CheckInteger, 8, 
 
1422
                    OPC_CheckType, MVT::i32,
 
1423
                    OPC_MoveParent,
 
1424
                    OPC_MoveParent,
 
1425
                    OPC_MoveParent,
 
1426
                    OPC_MoveParent,
 
1427
                    OPC_MoveChild, 1,
 
1428
                    OPC_CheckAndImm, 127|128,1, 
 
1429
                    OPC_MoveChild, 0,
 
1430
                    OPC_CheckOpcode, ISD::SRL,
 
1431
                    OPC_MoveChild, 0,
 
1432
                    OPC_CheckSame, 0,
 
1433
                    OPC_MoveParent,
 
1434
                    OPC_MoveChild, 1,
 
1435
                    OPC_CheckInteger, 8, 
 
1436
                    OPC_CheckType, MVT::i32,
 
1437
                    OPC_MoveParent,
 
1438
                    OPC_MoveParent,
 
1439
                    OPC_MoveParent,
 
1440
                    OPC_CheckType, MVT::i32,
 
1441
                    OPC_CheckPatternPredicate, 0,
 
1442
                    OPC_EmitInteger, MVT::i32, 14, 
 
1443
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1444
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1445
                        1, MVT::i32, 3, 0, 1, 2, 
 
1446
                  114, 
 
1447
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1448
                    OPC_MoveChild, 0,
 
1449
                    OPC_CheckOpcode, ISD::SHL,
 
1450
                    OPC_RecordChild0,
 
1451
                    OPC_MoveChild, 1,
 
1452
                    OPC_CheckInteger, 8, 
 
1453
                    OPC_CheckType, MVT::i32,
 
1454
                    OPC_MoveParent,
 
1455
                    OPC_MoveParent,
 
1456
                    OPC_MoveParent,
 
1457
                    OPC_MoveChild, 1,
 
1458
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1459
                    OPC_MoveChild, 0,
 
1460
                    OPC_CheckOpcode, ISD::SHL,
 
1461
                    OPC_MoveChild, 0,
 
1462
                    OPC_CheckSame, 0,
 
1463
                    OPC_MoveParent,
 
1464
                    OPC_MoveChild, 1,
 
1465
                    OPC_CheckInteger, 8, 
 
1466
                    OPC_CheckType, MVT::i32,
 
1467
                    OPC_MoveParent,
 
1468
                    OPC_MoveParent,
 
1469
                    OPC_MoveParent,
 
1470
                    OPC_MoveParent,
 
1471
                    OPC_MoveChild, 1,
 
1472
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1473
                    OPC_MoveChild, 0,
 
1474
                    OPC_CheckOpcode, ISD::SRL,
 
1475
                    OPC_MoveChild, 0,
 
1476
                    OPC_CheckSame, 0,
 
1477
                    OPC_MoveParent,
 
1478
                    OPC_MoveChild, 1,
 
1479
                    OPC_CheckInteger, 8, 
 
1480
                    OPC_CheckType, MVT::i32,
 
1481
                    OPC_MoveParent,
 
1482
                    OPC_MoveParent,
 
1483
                    OPC_MoveParent,
 
1484
                    OPC_MoveParent,
 
1485
                    OPC_MoveChild, 1,
 
1486
                    OPC_CheckAndImm, 127|128,1, 
 
1487
                    OPC_MoveChild, 0,
 
1488
                    OPC_CheckOpcode, ISD::SRL,
 
1489
                    OPC_MoveChild, 0,
 
1490
                    OPC_CheckSame, 0,
 
1491
                    OPC_MoveParent,
 
1492
                    OPC_MoveChild, 1,
 
1493
                    OPC_CheckInteger, 8, 
 
1494
                    OPC_CheckType, MVT::i32,
 
1495
                    OPC_MoveParent,
 
1496
                    OPC_MoveParent,
 
1497
                    OPC_MoveParent,
 
1498
                    OPC_CheckType, MVT::i32,
 
1499
                    OPC_CheckPatternPredicate, 0,
 
1500
                    OPC_EmitInteger, MVT::i32, 14, 
 
1501
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1502
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1503
                        1, MVT::i32, 3, 0, 1, 2, 
 
1504
                  114, 
 
1505
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1506
                    OPC_MoveChild, 0,
 
1507
                    OPC_CheckOpcode, ISD::SHL,
 
1508
                    OPC_RecordChild0,
 
1509
                    OPC_MoveChild, 1,
 
1510
                    OPC_CheckInteger, 8, 
 
1511
                    OPC_CheckType, MVT::i32,
 
1512
                    OPC_MoveParent,
 
1513
                    OPC_MoveParent,
 
1514
                    OPC_MoveParent,
 
1515
                    OPC_MoveChild, 1,
 
1516
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1517
                    OPC_MoveChild, 0,
 
1518
                    OPC_CheckOpcode, ISD::SHL,
 
1519
                    OPC_MoveChild, 0,
 
1520
                    OPC_CheckSame, 0,
 
1521
                    OPC_MoveParent,
 
1522
                    OPC_MoveChild, 1,
 
1523
                    OPC_CheckInteger, 8, 
 
1524
                    OPC_CheckType, MVT::i32,
 
1525
                    OPC_MoveParent,
 
1526
                    OPC_MoveParent,
 
1527
                    OPC_MoveParent,
 
1528
                    OPC_MoveParent,
 
1529
                    OPC_MoveChild, 1,
 
1530
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1531
                    OPC_MoveChild, 0,
 
1532
                    OPC_CheckOpcode, ISD::SRL,
 
1533
                    OPC_MoveChild, 0,
 
1534
                    OPC_CheckSame, 0,
 
1535
                    OPC_MoveParent,
 
1536
                    OPC_MoveChild, 1,
 
1537
                    OPC_CheckInteger, 8, 
 
1538
                    OPC_CheckType, MVT::i32,
 
1539
                    OPC_MoveParent,
 
1540
                    OPC_MoveParent,
 
1541
                    OPC_MoveParent,
 
1542
                    OPC_MoveParent,
 
1543
                    OPC_MoveChild, 1,
 
1544
                    OPC_CheckAndImm, 127|128,1, 
 
1545
                    OPC_MoveChild, 0,
 
1546
                    OPC_CheckOpcode, ISD::SRL,
 
1547
                    OPC_MoveChild, 0,
 
1548
                    OPC_CheckSame, 0,
 
1549
                    OPC_MoveParent,
 
1550
                    OPC_MoveChild, 1,
 
1551
                    OPC_CheckInteger, 8, 
 
1552
                    OPC_CheckType, MVT::i32,
 
1553
                    OPC_MoveParent,
 
1554
                    OPC_MoveParent,
 
1555
                    OPC_MoveParent,
 
1556
                    OPC_CheckType, MVT::i32,
 
1557
                    OPC_CheckPatternPredicate, 0,
 
1558
                    OPC_EmitInteger, MVT::i32, 14, 
 
1559
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1560
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1561
                        1, MVT::i32, 3, 0, 1, 2, 
 
1562
                  114, 
 
1563
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1564
                    OPC_MoveChild, 0,
 
1565
                    OPC_CheckOpcode, ISD::SRL,
 
1566
                    OPC_RecordChild0,
 
1567
                    OPC_MoveChild, 1,
 
1568
                    OPC_CheckInteger, 8, 
 
1569
                    OPC_CheckType, MVT::i32,
 
1570
                    OPC_MoveParent,
 
1571
                    OPC_MoveParent,
 
1572
                    OPC_MoveParent,
 
1573
                    OPC_MoveChild, 1,
 
1574
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1575
                    OPC_MoveChild, 0,
 
1576
                    OPC_CheckOpcode, ISD::SHL,
 
1577
                    OPC_MoveChild, 0,
 
1578
                    OPC_CheckSame, 0,
 
1579
                    OPC_MoveParent,
 
1580
                    OPC_MoveChild, 1,
 
1581
                    OPC_CheckInteger, 8, 
 
1582
                    OPC_CheckType, MVT::i32,
 
1583
                    OPC_MoveParent,
 
1584
                    OPC_MoveParent,
 
1585
                    OPC_MoveParent,
 
1586
                    OPC_MoveParent,
 
1587
                    OPC_MoveChild, 1,
 
1588
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1589
                    OPC_MoveChild, 0,
 
1590
                    OPC_CheckOpcode, ISD::SHL,
 
1591
                    OPC_MoveChild, 0,
 
1592
                    OPC_CheckSame, 0,
 
1593
                    OPC_MoveParent,
 
1594
                    OPC_MoveChild, 1,
 
1595
                    OPC_CheckInteger, 8, 
 
1596
                    OPC_CheckType, MVT::i32,
 
1597
                    OPC_MoveParent,
 
1598
                    OPC_MoveParent,
 
1599
                    OPC_MoveParent,
 
1600
                    OPC_MoveParent,
 
1601
                    OPC_MoveChild, 1,
 
1602
                    OPC_CheckAndImm, 127|128,1, 
 
1603
                    OPC_MoveChild, 0,
 
1604
                    OPC_CheckOpcode, ISD::SRL,
 
1605
                    OPC_MoveChild, 0,
 
1606
                    OPC_CheckSame, 0,
 
1607
                    OPC_MoveParent,
 
1608
                    OPC_MoveChild, 1,
 
1609
                    OPC_CheckInteger, 8, 
 
1610
                    OPC_CheckType, MVT::i32,
 
1611
                    OPC_MoveParent,
 
1612
                    OPC_MoveParent,
 
1613
                    OPC_MoveParent,
 
1614
                    OPC_CheckType, MVT::i32,
 
1615
                    OPC_CheckPatternPredicate, 0,
 
1616
                    OPC_EmitInteger, MVT::i32, 14, 
 
1617
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1618
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1619
                        1, MVT::i32, 3, 0, 1, 2, 
 
1620
                  114, 
 
1621
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1622
                    OPC_MoveChild, 0,
 
1623
                    OPC_CheckOpcode, ISD::SHL,
 
1624
                    OPC_RecordChild0,
 
1625
                    OPC_MoveChild, 1,
 
1626
                    OPC_CheckInteger, 8, 
 
1627
                    OPC_CheckType, MVT::i32,
 
1628
                    OPC_MoveParent,
 
1629
                    OPC_MoveParent,
 
1630
                    OPC_MoveParent,
 
1631
                    OPC_MoveChild, 1,
 
1632
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1633
                    OPC_MoveChild, 0,
 
1634
                    OPC_CheckOpcode, ISD::SRL,
 
1635
                    OPC_MoveChild, 0,
 
1636
                    OPC_CheckSame, 0,
 
1637
                    OPC_MoveParent,
 
1638
                    OPC_MoveChild, 1,
 
1639
                    OPC_CheckInteger, 8, 
 
1640
                    OPC_CheckType, MVT::i32,
 
1641
                    OPC_MoveParent,
 
1642
                    OPC_MoveParent,
 
1643
                    OPC_MoveParent,
 
1644
                    OPC_MoveParent,
 
1645
                    OPC_MoveChild, 1,
 
1646
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1647
                    OPC_MoveChild, 0,
 
1648
                    OPC_CheckOpcode, ISD::SHL,
 
1649
                    OPC_MoveChild, 0,
 
1650
                    OPC_CheckSame, 0,
 
1651
                    OPC_MoveParent,
 
1652
                    OPC_MoveChild, 1,
 
1653
                    OPC_CheckInteger, 8, 
 
1654
                    OPC_CheckType, MVT::i32,
 
1655
                    OPC_MoveParent,
 
1656
                    OPC_MoveParent,
 
1657
                    OPC_MoveParent,
 
1658
                    OPC_MoveParent,
 
1659
                    OPC_MoveChild, 1,
 
1660
                    OPC_CheckAndImm, 127|128,1, 
 
1661
                    OPC_MoveChild, 0,
 
1662
                    OPC_CheckOpcode, ISD::SRL,
 
1663
                    OPC_MoveChild, 0,
 
1664
                    OPC_CheckSame, 0,
 
1665
                    OPC_MoveParent,
 
1666
                    OPC_MoveChild, 1,
 
1667
                    OPC_CheckInteger, 8, 
 
1668
                    OPC_CheckType, MVT::i32,
 
1669
                    OPC_MoveParent,
 
1670
                    OPC_MoveParent,
 
1671
                    OPC_MoveParent,
 
1672
                    OPC_CheckType, MVT::i32,
 
1673
                    OPC_CheckPatternPredicate, 0,
 
1674
                    OPC_EmitInteger, MVT::i32, 14, 
 
1675
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1676
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1677
                        1, MVT::i32, 3, 0, 1, 2, 
 
1678
                  0, 
 
1679
                86|128,1, 
 
1680
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1681
                  OPC_MoveChild, 0,
 
1682
                  OPC_CheckOpcode, ISD::SHL,
 
1683
                  OPC_RecordChild0,
 
1684
                  OPC_MoveChild, 1,
 
1685
                  OPC_CheckInteger, 8, 
 
1686
                  OPC_CheckType, MVT::i32,
 
1687
                  OPC_MoveParent,
 
1688
                  OPC_MoveParent,
 
1689
                  OPC_MoveParent,
 
1690
                  OPC_MoveChild, 1,
 
1691
                  OPC_CheckOpcode, ISD::OR,
 
1692
                  OPC_MoveChild, 0,
 
1693
                  OPC_Scope, 92, 
 
1694
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1695
                    OPC_MoveChild, 0,
 
1696
                    OPC_CheckOpcode, ISD::SHL,
 
1697
                    OPC_MoveChild, 0,
 
1698
                    OPC_CheckSame, 0,
 
1699
                    OPC_MoveParent,
 
1700
                    OPC_MoveChild, 1,
 
1701
                    OPC_CheckInteger, 8, 
 
1702
                    OPC_CheckType, MVT::i32,
 
1703
                    OPC_MoveParent,
 
1704
                    OPC_MoveParent,
 
1705
                    OPC_MoveParent,
 
1706
                    OPC_MoveChild, 1,
 
1707
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1708
                    OPC_MoveChild, 0,
 
1709
                    OPC_CheckOpcode, ISD::SRL,
 
1710
                    OPC_MoveChild, 0,
 
1711
                    OPC_CheckSame, 0,
 
1712
                    OPC_MoveParent,
 
1713
                    OPC_MoveChild, 1,
 
1714
                    OPC_CheckInteger, 8, 
 
1715
                    OPC_CheckType, MVT::i32,
 
1716
                    OPC_MoveParent,
 
1717
                    OPC_MoveParent,
 
1718
                    OPC_MoveParent,
 
1719
                    OPC_MoveParent,
 
1720
                    OPC_MoveParent,
 
1721
                    OPC_MoveChild, 1,
 
1722
                    OPC_CheckAndImm, 127|128,1, 
 
1723
                    OPC_MoveChild, 0,
 
1724
                    OPC_CheckOpcode, ISD::SRL,
 
1725
                    OPC_MoveChild, 0,
 
1726
                    OPC_CheckSame, 0,
 
1727
                    OPC_MoveParent,
 
1728
                    OPC_MoveChild, 1,
 
1729
                    OPC_CheckInteger, 8, 
 
1730
                    OPC_CheckType, MVT::i32,
 
1731
                    OPC_MoveParent,
 
1732
                    OPC_MoveParent,
 
1733
                    OPC_MoveParent,
 
1734
                    OPC_CheckType, MVT::i32,
 
1735
                    OPC_CheckPatternPredicate, 0,
 
1736
                    OPC_EmitInteger, MVT::i32, 14, 
 
1737
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1738
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1739
                        1, MVT::i32, 3, 0, 1, 2, 
 
1740
                  92, 
 
1741
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1742
                    OPC_MoveChild, 0,
 
1743
                    OPC_CheckOpcode, ISD::SRL,
 
1744
                    OPC_MoveChild, 0,
 
1745
                    OPC_CheckSame, 0,
 
1746
                    OPC_MoveParent,
 
1747
                    OPC_MoveChild, 1,
 
1748
                    OPC_CheckInteger, 8, 
 
1749
                    OPC_CheckType, MVT::i32,
 
1750
                    OPC_MoveParent,
 
1751
                    OPC_MoveParent,
 
1752
                    OPC_MoveParent,
 
1753
                    OPC_MoveChild, 1,
 
1754
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1755
                    OPC_MoveChild, 0,
 
1756
                    OPC_CheckOpcode, ISD::SHL,
 
1757
                    OPC_MoveChild, 0,
 
1758
                    OPC_CheckSame, 0,
 
1759
                    OPC_MoveParent,
 
1760
                    OPC_MoveChild, 1,
 
1761
                    OPC_CheckInteger, 8, 
 
1762
                    OPC_CheckType, MVT::i32,
 
1763
                    OPC_MoveParent,
 
1764
                    OPC_MoveParent,
 
1765
                    OPC_MoveParent,
 
1766
                    OPC_MoveParent,
 
1767
                    OPC_MoveParent,
 
1768
                    OPC_MoveChild, 1,
 
1769
                    OPC_CheckAndImm, 127|128,1, 
 
1770
                    OPC_MoveChild, 0,
 
1771
                    OPC_CheckOpcode, ISD::SRL,
 
1772
                    OPC_MoveChild, 0,
 
1773
                    OPC_CheckSame, 0,
 
1774
                    OPC_MoveParent,
 
1775
                    OPC_MoveChild, 1,
 
1776
                    OPC_CheckInteger, 8, 
 
1777
                    OPC_CheckType, MVT::i32,
 
1778
                    OPC_MoveParent,
 
1779
                    OPC_MoveParent,
 
1780
                    OPC_MoveParent,
 
1781
                    OPC_CheckType, MVT::i32,
 
1782
                    OPC_CheckPatternPredicate, 0,
 
1783
                    OPC_EmitInteger, MVT::i32, 14, 
 
1784
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1785
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1786
                        1, MVT::i32, 3, 0, 1, 2, 
 
1787
                  0, 
 
1788
                87|128,1, 
 
1789
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1790
                  OPC_MoveChild, 0,
 
1791
                  OPC_CheckOpcode, ISD::SRL,
 
1792
                  OPC_RecordChild0,
 
1793
                  OPC_MoveChild, 1,
 
1794
                  OPC_CheckInteger, 8, 
 
1795
                  OPC_CheckType, MVT::i32,
 
1796
                  OPC_MoveParent,
 
1797
                  OPC_MoveParent,
 
1798
                  OPC_MoveParent,
 
1799
                  OPC_MoveChild, 1,
 
1800
                  OPC_CheckOpcode, ISD::OR,
 
1801
                  OPC_MoveChild, 0,
 
1802
                  OPC_Scope, 93, 
 
1803
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1804
                    OPC_MoveChild, 0,
 
1805
                    OPC_CheckOpcode, ISD::SHL,
 
1806
                    OPC_MoveChild, 0,
 
1807
                    OPC_CheckSame, 0,
 
1808
                    OPC_MoveParent,
 
1809
                    OPC_MoveChild, 1,
 
1810
                    OPC_CheckInteger, 8, 
 
1811
                    OPC_CheckType, MVT::i32,
 
1812
                    OPC_MoveParent,
 
1813
                    OPC_MoveParent,
 
1814
                    OPC_MoveParent,
 
1815
                    OPC_MoveChild, 1,
 
1816
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1817
                    OPC_MoveChild, 0,
 
1818
                    OPC_CheckOpcode, ISD::SHL,
 
1819
                    OPC_MoveChild, 0,
 
1820
                    OPC_CheckSame, 0,
 
1821
                    OPC_MoveParent,
 
1822
                    OPC_MoveChild, 1,
 
1823
                    OPC_CheckInteger, 8, 
 
1824
                    OPC_CheckType, MVT::i32,
 
1825
                    OPC_MoveParent,
 
1826
                    OPC_MoveParent,
 
1827
                    OPC_MoveParent,
 
1828
                    OPC_MoveParent,
 
1829
                    OPC_MoveParent,
 
1830
                    OPC_MoveChild, 1,
 
1831
                    OPC_CheckAndImm, 127|128,1, 
 
1832
                    OPC_MoveChild, 0,
 
1833
                    OPC_CheckOpcode, ISD::SRL,
 
1834
                    OPC_MoveChild, 0,
 
1835
                    OPC_CheckSame, 0,
 
1836
                    OPC_MoveParent,
 
1837
                    OPC_MoveChild, 1,
 
1838
                    OPC_CheckInteger, 8, 
 
1839
                    OPC_CheckType, MVT::i32,
 
1840
                    OPC_MoveParent,
 
1841
                    OPC_MoveParent,
 
1842
                    OPC_MoveParent,
 
1843
                    OPC_CheckType, MVT::i32,
 
1844
                    OPC_CheckPatternPredicate, 0,
 
1845
                    OPC_EmitInteger, MVT::i32, 14, 
 
1846
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1847
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1848
                        1, MVT::i32, 3, 0, 1, 2, 
 
1849
                  93, 
 
1850
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1851
                    OPC_MoveChild, 0,
 
1852
                    OPC_CheckOpcode, ISD::SHL,
 
1853
                    OPC_MoveChild, 0,
 
1854
                    OPC_CheckSame, 0,
 
1855
                    OPC_MoveParent,
 
1856
                    OPC_MoveChild, 1,
 
1857
                    OPC_CheckInteger, 8, 
 
1858
                    OPC_CheckType, MVT::i32,
 
1859
                    OPC_MoveParent,
 
1860
                    OPC_MoveParent,
 
1861
                    OPC_MoveParent,
 
1862
                    OPC_MoveChild, 1,
 
1863
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
1864
                    OPC_MoveChild, 0,
 
1865
                    OPC_CheckOpcode, ISD::SHL,
 
1866
                    OPC_MoveChild, 0,
 
1867
                    OPC_CheckSame, 0,
 
1868
                    OPC_MoveParent,
 
1869
                    OPC_MoveChild, 1,
 
1870
                    OPC_CheckInteger, 8, 
 
1871
                    OPC_CheckType, MVT::i32,
 
1872
                    OPC_MoveParent,
 
1873
                    OPC_MoveParent,
 
1874
                    OPC_MoveParent,
 
1875
                    OPC_MoveParent,
 
1876
                    OPC_MoveParent,
 
1877
                    OPC_MoveChild, 1,
 
1878
                    OPC_CheckAndImm, 127|128,1, 
 
1879
                    OPC_MoveChild, 0,
 
1880
                    OPC_CheckOpcode, ISD::SRL,
 
1881
                    OPC_MoveChild, 0,
 
1882
                    OPC_CheckSame, 0,
 
1883
                    OPC_MoveParent,
 
1884
                    OPC_MoveChild, 1,
 
1885
                    OPC_CheckInteger, 8, 
 
1886
                    OPC_CheckType, MVT::i32,
 
1887
                    OPC_MoveParent,
 
1888
                    OPC_MoveParent,
 
1889
                    OPC_MoveParent,
 
1890
                    OPC_CheckType, MVT::i32,
 
1891
                    OPC_CheckPatternPredicate, 0,
 
1892
                    OPC_EmitInteger, MVT::i32, 14, 
 
1893
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1894
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1895
                        1, MVT::i32, 3, 0, 1, 2, 
 
1896
                  0, 
 
1897
                88|128,1, 
 
1898
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
1899
                  OPC_MoveChild, 0,
 
1900
                  OPC_CheckOpcode, ISD::SHL,
 
1901
                  OPC_RecordChild0,
 
1902
                  OPC_MoveChild, 1,
 
1903
                  OPC_CheckInteger, 8, 
 
1904
                  OPC_CheckType, MVT::i32,
 
1905
                  OPC_MoveParent,
 
1906
                  OPC_MoveParent,
 
1907
                  OPC_MoveParent,
 
1908
                  OPC_MoveChild, 1,
 
1909
                  OPC_CheckOpcode, ISD::OR,
 
1910
                  OPC_MoveChild, 0,
 
1911
                  OPC_Scope, 94, 
 
1912
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1913
                    OPC_MoveChild, 0,
 
1914
                    OPC_CheckOpcode, ISD::SRL,
 
1915
                    OPC_MoveChild, 0,
 
1916
                    OPC_CheckSame, 0,
 
1917
                    OPC_MoveParent,
 
1918
                    OPC_MoveChild, 1,
 
1919
                    OPC_CheckInteger, 8, 
 
1920
                    OPC_CheckType, MVT::i32,
 
1921
                    OPC_MoveParent,
 
1922
                    OPC_MoveParent,
 
1923
                    OPC_MoveParent,
 
1924
                    OPC_MoveChild, 1,
 
1925
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1926
                    OPC_MoveChild, 0,
 
1927
                    OPC_CheckOpcode, ISD::SHL,
 
1928
                    OPC_MoveChild, 0,
 
1929
                    OPC_CheckSame, 0,
 
1930
                    OPC_MoveParent,
 
1931
                    OPC_MoveChild, 1,
 
1932
                    OPC_CheckInteger, 8, 
 
1933
                    OPC_CheckType, MVT::i32,
 
1934
                    OPC_MoveParent,
 
1935
                    OPC_MoveParent,
 
1936
                    OPC_MoveParent,
 
1937
                    OPC_MoveParent,
 
1938
                    OPC_MoveParent,
 
1939
                    OPC_MoveChild, 1,
 
1940
                    OPC_CheckAndImm, 127|128,1, 
 
1941
                    OPC_MoveChild, 0,
 
1942
                    OPC_CheckOpcode, ISD::SRL,
 
1943
                    OPC_MoveChild, 0,
 
1944
                    OPC_CheckSame, 0,
 
1945
                    OPC_MoveParent,
 
1946
                    OPC_MoveChild, 1,
 
1947
                    OPC_CheckInteger, 8, 
 
1948
                    OPC_CheckType, MVT::i32,
 
1949
                    OPC_MoveParent,
 
1950
                    OPC_MoveParent,
 
1951
                    OPC_MoveParent,
 
1952
                    OPC_CheckType, MVT::i32,
 
1953
                    OPC_CheckPatternPredicate, 0,
 
1954
                    OPC_EmitInteger, MVT::i32, 14, 
 
1955
                    OPC_EmitRegister, MVT::i32, 0 ,
 
1956
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
1957
                        1, MVT::i32, 3, 0, 1, 2, 
 
1958
                  94, 
 
1959
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
1960
                    OPC_MoveChild, 0,
 
1961
                    OPC_CheckOpcode, ISD::SHL,
 
1962
                    OPC_MoveChild, 0,
 
1963
                    OPC_CheckSame, 0,
 
1964
                    OPC_MoveParent,
 
1965
                    OPC_MoveChild, 1,
 
1966
                    OPC_CheckInteger, 8, 
 
1967
                    OPC_CheckType, MVT::i32,
 
1968
                    OPC_MoveParent,
 
1969
                    OPC_MoveParent,
 
1970
                    OPC_MoveParent,
 
1971
                    OPC_MoveChild, 1,
 
1972
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
1973
                    OPC_MoveChild, 0,
 
1974
                    OPC_CheckOpcode, ISD::SRL,
 
1975
                    OPC_MoveChild, 0,
 
1976
                    OPC_CheckSame, 0,
 
1977
                    OPC_MoveParent,
 
1978
                    OPC_MoveChild, 1,
 
1979
                    OPC_CheckInteger, 8, 
 
1980
                    OPC_CheckType, MVT::i32,
 
1981
                    OPC_MoveParent,
 
1982
                    OPC_MoveParent,
 
1983
                    OPC_MoveParent,
 
1984
                    OPC_MoveParent,
 
1985
                    OPC_MoveParent,
 
1986
                    OPC_MoveChild, 1,
 
1987
                    OPC_CheckAndImm, 127|128,1, 
 
1988
                    OPC_MoveChild, 0,
 
1989
                    OPC_CheckOpcode, ISD::SRL,
 
1990
                    OPC_MoveChild, 0,
 
1991
                    OPC_CheckSame, 0,
 
1992
                    OPC_MoveParent,
 
1993
                    OPC_MoveChild, 1,
 
1994
                    OPC_CheckInteger, 8, 
 
1995
                    OPC_CheckType, MVT::i32,
 
1996
                    OPC_MoveParent,
 
1997
                    OPC_MoveParent,
 
1998
                    OPC_MoveParent,
 
1999
                    OPC_CheckType, MVT::i32,
 
2000
                    OPC_CheckPatternPredicate, 0,
 
2001
                    OPC_EmitInteger, MVT::i32, 14, 
 
2002
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2003
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV16), 0,
 
2004
                        1, MVT::i32, 3, 0, 1, 2, 
 
2005
                  0, 
 
2006
                0, 
 
2007
              66|128,7, 
 
2008
                OPC_CheckAndImm, 127|128,1, 
 
2009
                OPC_MoveChild, 0,
 
2010
                OPC_CheckOpcode, ISD::SRL,
 
2011
                OPC_RecordChild0,
 
2012
                OPC_MoveChild, 1,
 
2013
                OPC_CheckInteger, 8, 
 
2014
                OPC_CheckType, MVT::i32,
 
2015
                OPC_MoveParent,
 
2016
                OPC_MoveParent,
 
2017
                OPC_MoveParent,
 
2018
                OPC_MoveChild, 1,
 
2019
                OPC_CheckOpcode, ISD::OR,
 
2020
                OPC_MoveChild, 0,
 
2021
                OPC_Scope, 102|128,3, 
 
2022
                  OPC_CheckOpcode, ISD::OR,
 
2023
                  OPC_MoveChild, 0,
 
2024
                  OPC_Scope, 95, 
 
2025
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2026
                    OPC_MoveChild, 0,
 
2027
                    OPC_CheckOpcode, ISD::SRL,
 
2028
                    OPC_MoveChild, 0,
 
2029
                    OPC_CheckSame, 0,
 
2030
                    OPC_MoveParent,
 
2031
                    OPC_MoveChild, 1,
 
2032
                    OPC_CheckInteger, 8, 
 
2033
                    OPC_CheckType, MVT::i32,
 
2034
                    OPC_MoveParent,
 
2035
                    OPC_MoveParent,
 
2036
                    OPC_MoveParent,
 
2037
                    OPC_MoveChild, 1,
 
2038
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2039
                    OPC_MoveChild, 0,
 
2040
                    OPC_CheckOpcode, ISD::SHL,
 
2041
                    OPC_MoveChild, 0,
 
2042
                    OPC_CheckSame, 0,
 
2043
                    OPC_MoveParent,
 
2044
                    OPC_MoveChild, 1,
 
2045
                    OPC_CheckInteger, 8, 
 
2046
                    OPC_CheckType, MVT::i32,
 
2047
                    OPC_MoveParent,
 
2048
                    OPC_MoveParent,
 
2049
                    OPC_MoveParent,
 
2050
                    OPC_MoveParent,
 
2051
                    OPC_MoveChild, 1,
 
2052
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2053
                    OPC_MoveChild, 0,
 
2054
                    OPC_CheckOpcode, ISD::SHL,
 
2055
                    OPC_MoveChild, 0,
 
2056
                    OPC_CheckSame, 0,
 
2057
                    OPC_MoveParent,
 
2058
                    OPC_MoveChild, 1,
 
2059
                    OPC_CheckInteger, 8, 
 
2060
                    OPC_CheckType, MVT::i32,
 
2061
                    OPC_MoveParent,
 
2062
                    OPC_MoveParent,
 
2063
                    OPC_MoveParent,
 
2064
                    OPC_MoveParent,
 
2065
                    OPC_CheckType, MVT::i32,
 
2066
                    OPC_CheckPatternPredicate, 1,
 
2067
                    OPC_EmitInteger, MVT::i32, 14, 
 
2068
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2069
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2070
                        1, MVT::i32, 3, 0, 1, 2, 
 
2071
                  95, 
 
2072
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2073
                    OPC_MoveChild, 0,
 
2074
                    OPC_CheckOpcode, ISD::SHL,
 
2075
                    OPC_MoveChild, 0,
 
2076
                    OPC_CheckSame, 0,
 
2077
                    OPC_MoveParent,
 
2078
                    OPC_MoveChild, 1,
 
2079
                    OPC_CheckInteger, 8, 
 
2080
                    OPC_CheckType, MVT::i32,
 
2081
                    OPC_MoveParent,
 
2082
                    OPC_MoveParent,
 
2083
                    OPC_MoveParent,
 
2084
                    OPC_MoveChild, 1,
 
2085
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2086
                    OPC_MoveChild, 0,
 
2087
                    OPC_CheckOpcode, ISD::SHL,
 
2088
                    OPC_MoveChild, 0,
 
2089
                    OPC_CheckSame, 0,
 
2090
                    OPC_MoveParent,
 
2091
                    OPC_MoveChild, 1,
 
2092
                    OPC_CheckInteger, 8, 
 
2093
                    OPC_CheckType, MVT::i32,
 
2094
                    OPC_MoveParent,
 
2095
                    OPC_MoveParent,
 
2096
                    OPC_MoveParent,
 
2097
                    OPC_MoveParent,
 
2098
                    OPC_MoveChild, 1,
 
2099
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2100
                    OPC_MoveChild, 0,
 
2101
                    OPC_CheckOpcode, ISD::SRL,
 
2102
                    OPC_MoveChild, 0,
 
2103
                    OPC_CheckSame, 0,
 
2104
                    OPC_MoveParent,
 
2105
                    OPC_MoveChild, 1,
 
2106
                    OPC_CheckInteger, 8, 
 
2107
                    OPC_CheckType, MVT::i32,
 
2108
                    OPC_MoveParent,
 
2109
                    OPC_MoveParent,
 
2110
                    OPC_MoveParent,
 
2111
                    OPC_MoveParent,
 
2112
                    OPC_CheckType, MVT::i32,
 
2113
                    OPC_CheckPatternPredicate, 1,
 
2114
                    OPC_EmitInteger, MVT::i32, 14, 
 
2115
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2116
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2117
                        1, MVT::i32, 3, 0, 1, 2, 
 
2118
                  95, 
 
2119
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2120
                    OPC_MoveChild, 0,
 
2121
                    OPC_CheckOpcode, ISD::SHL,
 
2122
                    OPC_MoveChild, 0,
 
2123
                    OPC_CheckSame, 0,
 
2124
                    OPC_MoveParent,
 
2125
                    OPC_MoveChild, 1,
 
2126
                    OPC_CheckInteger, 8, 
 
2127
                    OPC_CheckType, MVT::i32,
 
2128
                    OPC_MoveParent,
 
2129
                    OPC_MoveParent,
 
2130
                    OPC_MoveParent,
 
2131
                    OPC_MoveChild, 1,
 
2132
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2133
                    OPC_MoveChild, 0,
 
2134
                    OPC_CheckOpcode, ISD::SHL,
 
2135
                    OPC_MoveChild, 0,
 
2136
                    OPC_CheckSame, 0,
 
2137
                    OPC_MoveParent,
 
2138
                    OPC_MoveChild, 1,
 
2139
                    OPC_CheckInteger, 8, 
 
2140
                    OPC_CheckType, MVT::i32,
 
2141
                    OPC_MoveParent,
 
2142
                    OPC_MoveParent,
 
2143
                    OPC_MoveParent,
 
2144
                    OPC_MoveParent,
 
2145
                    OPC_MoveChild, 1,
 
2146
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2147
                    OPC_MoveChild, 0,
 
2148
                    OPC_CheckOpcode, ISD::SRL,
 
2149
                    OPC_MoveChild, 0,
 
2150
                    OPC_CheckSame, 0,
 
2151
                    OPC_MoveParent,
 
2152
                    OPC_MoveChild, 1,
 
2153
                    OPC_CheckInteger, 8, 
 
2154
                    OPC_CheckType, MVT::i32,
 
2155
                    OPC_MoveParent,
 
2156
                    OPC_MoveParent,
 
2157
                    OPC_MoveParent,
 
2158
                    OPC_MoveParent,
 
2159
                    OPC_CheckType, MVT::i32,
 
2160
                    OPC_CheckPatternPredicate, 1,
 
2161
                    OPC_EmitInteger, MVT::i32, 14, 
 
2162
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2163
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2164
                        1, MVT::i32, 3, 0, 1, 2, 
 
2165
                  95, 
 
2166
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2167
                    OPC_MoveChild, 0,
 
2168
                    OPC_CheckOpcode, ISD::SRL,
 
2169
                    OPC_MoveChild, 0,
 
2170
                    OPC_CheckSame, 0,
 
2171
                    OPC_MoveParent,
 
2172
                    OPC_MoveChild, 1,
 
2173
                    OPC_CheckInteger, 8, 
 
2174
                    OPC_CheckType, MVT::i32,
 
2175
                    OPC_MoveParent,
 
2176
                    OPC_MoveParent,
 
2177
                    OPC_MoveParent,
 
2178
                    OPC_MoveChild, 1,
 
2179
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2180
                    OPC_MoveChild, 0,
 
2181
                    OPC_CheckOpcode, ISD::SHL,
 
2182
                    OPC_MoveChild, 0,
 
2183
                    OPC_CheckSame, 0,
 
2184
                    OPC_MoveParent,
 
2185
                    OPC_MoveChild, 1,
 
2186
                    OPC_CheckInteger, 8, 
 
2187
                    OPC_CheckType, MVT::i32,
 
2188
                    OPC_MoveParent,
 
2189
                    OPC_MoveParent,
 
2190
                    OPC_MoveParent,
 
2191
                    OPC_MoveParent,
 
2192
                    OPC_MoveChild, 1,
 
2193
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2194
                    OPC_MoveChild, 0,
 
2195
                    OPC_CheckOpcode, ISD::SHL,
 
2196
                    OPC_MoveChild, 0,
 
2197
                    OPC_CheckSame, 0,
 
2198
                    OPC_MoveParent,
 
2199
                    OPC_MoveChild, 1,
 
2200
                    OPC_CheckInteger, 8, 
 
2201
                    OPC_CheckType, MVT::i32,
 
2202
                    OPC_MoveParent,
 
2203
                    OPC_MoveParent,
 
2204
                    OPC_MoveParent,
 
2205
                    OPC_MoveParent,
 
2206
                    OPC_CheckType, MVT::i32,
 
2207
                    OPC_CheckPatternPredicate, 1,
 
2208
                    OPC_EmitInteger, MVT::i32, 14, 
 
2209
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2210
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2211
                        1, MVT::i32, 3, 0, 1, 2, 
 
2212
                  95, 
 
2213
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2214
                    OPC_MoveChild, 0,
 
2215
                    OPC_CheckOpcode, ISD::SHL,
 
2216
                    OPC_MoveChild, 0,
 
2217
                    OPC_CheckSame, 0,
 
2218
                    OPC_MoveParent,
 
2219
                    OPC_MoveChild, 1,
 
2220
                    OPC_CheckInteger, 8, 
 
2221
                    OPC_CheckType, MVT::i32,
 
2222
                    OPC_MoveParent,
 
2223
                    OPC_MoveParent,
 
2224
                    OPC_MoveParent,
 
2225
                    OPC_MoveChild, 1,
 
2226
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2227
                    OPC_MoveChild, 0,
 
2228
                    OPC_CheckOpcode, ISD::SRL,
 
2229
                    OPC_MoveChild, 0,
 
2230
                    OPC_CheckSame, 0,
 
2231
                    OPC_MoveParent,
 
2232
                    OPC_MoveChild, 1,
 
2233
                    OPC_CheckInteger, 8, 
 
2234
                    OPC_CheckType, MVT::i32,
 
2235
                    OPC_MoveParent,
 
2236
                    OPC_MoveParent,
 
2237
                    OPC_MoveParent,
 
2238
                    OPC_MoveParent,
 
2239
                    OPC_MoveChild, 1,
 
2240
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2241
                    OPC_MoveChild, 0,
 
2242
                    OPC_CheckOpcode, ISD::SHL,
 
2243
                    OPC_MoveChild, 0,
 
2244
                    OPC_CheckSame, 0,
 
2245
                    OPC_MoveParent,
 
2246
                    OPC_MoveChild, 1,
 
2247
                    OPC_CheckInteger, 8, 
 
2248
                    OPC_CheckType, MVT::i32,
 
2249
                    OPC_MoveParent,
 
2250
                    OPC_MoveParent,
 
2251
                    OPC_MoveParent,
 
2252
                    OPC_MoveParent,
 
2253
                    OPC_CheckType, MVT::i32,
 
2254
                    OPC_CheckPatternPredicate, 1,
 
2255
                    OPC_EmitInteger, MVT::i32, 14, 
 
2256
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2257
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2258
                        1, MVT::i32, 3, 0, 1, 2, 
 
2259
                  0, 
 
2260
                44|128,1, 
 
2261
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2262
                  OPC_MoveChild, 0,
 
2263
                  OPC_CheckOpcode, ISD::SHL,
 
2264
                  OPC_MoveChild, 0,
 
2265
                  OPC_CheckSame, 0,
 
2266
                  OPC_MoveParent,
 
2267
                  OPC_MoveChild, 1,
 
2268
                  OPC_CheckInteger, 8, 
 
2269
                  OPC_CheckType, MVT::i32,
 
2270
                  OPC_MoveParent,
 
2271
                  OPC_MoveParent,
 
2272
                  OPC_MoveParent,
 
2273
                  OPC_MoveChild, 1,
 
2274
                  OPC_CheckOpcode, ISD::OR,
 
2275
                  OPC_MoveChild, 0,
 
2276
                  OPC_Scope, 69, 
 
2277
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2278
                    OPC_MoveChild, 0,
 
2279
                    OPC_CheckOpcode, ISD::SHL,
 
2280
                    OPC_MoveChild, 0,
 
2281
                    OPC_CheckSame, 0,
 
2282
                    OPC_MoveParent,
 
2283
                    OPC_MoveChild, 1,
 
2284
                    OPC_CheckInteger, 8, 
 
2285
                    OPC_CheckType, MVT::i32,
 
2286
                    OPC_MoveParent,
 
2287
                    OPC_MoveParent,
 
2288
                    OPC_MoveParent,
 
2289
                    OPC_MoveChild, 1,
 
2290
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2291
                    OPC_MoveChild, 0,
 
2292
                    OPC_CheckOpcode, ISD::SRL,
 
2293
                    OPC_MoveChild, 0,
 
2294
                    OPC_CheckSame, 0,
 
2295
                    OPC_MoveParent,
 
2296
                    OPC_MoveChild, 1,
 
2297
                    OPC_CheckInteger, 8, 
 
2298
                    OPC_CheckType, MVT::i32,
 
2299
                    OPC_MoveParent,
 
2300
                    OPC_MoveParent,
 
2301
                    OPC_MoveParent,
 
2302
                    OPC_MoveParent,
 
2303
                    OPC_MoveParent,
 
2304
                    OPC_CheckType, MVT::i32,
 
2305
                    OPC_CheckPatternPredicate, 1,
 
2306
                    OPC_EmitInteger, MVT::i32, 14, 
 
2307
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2308
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2309
                        1, MVT::i32, 3, 0, 1, 2, 
 
2310
                  69, 
 
2311
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2312
                    OPC_MoveChild, 0,
 
2313
                    OPC_CheckOpcode, ISD::SRL,
 
2314
                    OPC_MoveChild, 0,
 
2315
                    OPC_CheckSame, 0,
 
2316
                    OPC_MoveParent,
 
2317
                    OPC_MoveChild, 1,
 
2318
                    OPC_CheckInteger, 8, 
 
2319
                    OPC_CheckType, MVT::i32,
 
2320
                    OPC_MoveParent,
 
2321
                    OPC_MoveParent,
 
2322
                    OPC_MoveParent,
 
2323
                    OPC_MoveChild, 1,
 
2324
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2325
                    OPC_MoveChild, 0,
 
2326
                    OPC_CheckOpcode, ISD::SHL,
 
2327
                    OPC_MoveChild, 0,
 
2328
                    OPC_CheckSame, 0,
 
2329
                    OPC_MoveParent,
 
2330
                    OPC_MoveChild, 1,
 
2331
                    OPC_CheckInteger, 8, 
 
2332
                    OPC_CheckType, MVT::i32,
 
2333
                    OPC_MoveParent,
 
2334
                    OPC_MoveParent,
 
2335
                    OPC_MoveParent,
 
2336
                    OPC_MoveParent,
 
2337
                    OPC_MoveParent,
 
2338
                    OPC_CheckType, MVT::i32,
 
2339
                    OPC_CheckPatternPredicate, 1,
 
2340
                    OPC_EmitInteger, MVT::i32, 14, 
 
2341
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2342
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2343
                        1, MVT::i32, 3, 0, 1, 2, 
 
2344
                  0, 
 
2345
                45|128,1, 
 
2346
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2347
                  OPC_MoveChild, 0,
 
2348
                  OPC_CheckOpcode, ISD::SRL,
 
2349
                  OPC_MoveChild, 0,
 
2350
                  OPC_CheckSame, 0,
 
2351
                  OPC_MoveParent,
 
2352
                  OPC_MoveChild, 1,
 
2353
                  OPC_CheckInteger, 8, 
 
2354
                  OPC_CheckType, MVT::i32,
 
2355
                  OPC_MoveParent,
 
2356
                  OPC_MoveParent,
 
2357
                  OPC_MoveParent,
 
2358
                  OPC_MoveChild, 1,
 
2359
                  OPC_CheckOpcode, ISD::OR,
 
2360
                  OPC_MoveChild, 0,
 
2361
                  OPC_Scope, 70, 
 
2362
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2363
                    OPC_MoveChild, 0,
 
2364
                    OPC_CheckOpcode, ISD::SHL,
 
2365
                    OPC_MoveChild, 0,
 
2366
                    OPC_CheckSame, 0,
 
2367
                    OPC_MoveParent,
 
2368
                    OPC_MoveChild, 1,
 
2369
                    OPC_CheckInteger, 8, 
 
2370
                    OPC_CheckType, MVT::i32,
 
2371
                    OPC_MoveParent,
 
2372
                    OPC_MoveParent,
 
2373
                    OPC_MoveParent,
 
2374
                    OPC_MoveChild, 1,
 
2375
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2376
                    OPC_MoveChild, 0,
 
2377
                    OPC_CheckOpcode, ISD::SHL,
 
2378
                    OPC_MoveChild, 0,
 
2379
                    OPC_CheckSame, 0,
 
2380
                    OPC_MoveParent,
 
2381
                    OPC_MoveChild, 1,
 
2382
                    OPC_CheckInteger, 8, 
 
2383
                    OPC_CheckType, MVT::i32,
 
2384
                    OPC_MoveParent,
 
2385
                    OPC_MoveParent,
 
2386
                    OPC_MoveParent,
 
2387
                    OPC_MoveParent,
 
2388
                    OPC_MoveParent,
 
2389
                    OPC_CheckType, MVT::i32,
 
2390
                    OPC_CheckPatternPredicate, 1,
 
2391
                    OPC_EmitInteger, MVT::i32, 14, 
 
2392
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2393
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2394
                        1, MVT::i32, 3, 0, 1, 2, 
 
2395
                  70, 
 
2396
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2397
                    OPC_MoveChild, 0,
 
2398
                    OPC_CheckOpcode, ISD::SHL,
 
2399
                    OPC_MoveChild, 0,
 
2400
                    OPC_CheckSame, 0,
 
2401
                    OPC_MoveParent,
 
2402
                    OPC_MoveChild, 1,
 
2403
                    OPC_CheckInteger, 8, 
 
2404
                    OPC_CheckType, MVT::i32,
 
2405
                    OPC_MoveParent,
 
2406
                    OPC_MoveParent,
 
2407
                    OPC_MoveParent,
 
2408
                    OPC_MoveChild, 1,
 
2409
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2410
                    OPC_MoveChild, 0,
 
2411
                    OPC_CheckOpcode, ISD::SHL,
 
2412
                    OPC_MoveChild, 0,
 
2413
                    OPC_CheckSame, 0,
 
2414
                    OPC_MoveParent,
 
2415
                    OPC_MoveChild, 1,
 
2416
                    OPC_CheckInteger, 8, 
 
2417
                    OPC_CheckType, MVT::i32,
 
2418
                    OPC_MoveParent,
 
2419
                    OPC_MoveParent,
 
2420
                    OPC_MoveParent,
 
2421
                    OPC_MoveParent,
 
2422
                    OPC_MoveParent,
 
2423
                    OPC_CheckType, MVT::i32,
 
2424
                    OPC_CheckPatternPredicate, 1,
 
2425
                    OPC_EmitInteger, MVT::i32, 14, 
 
2426
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2427
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2428
                        1, MVT::i32, 3, 0, 1, 2, 
 
2429
                  0, 
 
2430
                99, 
 
2431
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
2432
                  OPC_MoveChild, 0,
 
2433
                  OPC_CheckOpcode, ISD::SHL,
 
2434
                  OPC_MoveChild, 0,
 
2435
                  OPC_CheckSame, 0,
 
2436
                  OPC_MoveParent,
 
2437
                  OPC_MoveChild, 1,
 
2438
                  OPC_CheckInteger, 8, 
 
2439
                  OPC_CheckType, MVT::i32,
 
2440
                  OPC_MoveParent,
 
2441
                  OPC_MoveParent,
 
2442
                  OPC_MoveParent,
 
2443
                  OPC_MoveChild, 1,
 
2444
                  OPC_CheckOpcode, ISD::OR,
 
2445
                  OPC_MoveChild, 0,
 
2446
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2447
                  OPC_MoveChild, 0,
 
2448
                  OPC_CheckOpcode, ISD::SHL,
 
2449
                  OPC_MoveChild, 0,
 
2450
                  OPC_CheckSame, 0,
 
2451
                  OPC_MoveParent,
 
2452
                  OPC_MoveChild, 1,
 
2453
                  OPC_CheckInteger, 8, 
 
2454
                  OPC_CheckType, MVT::i32,
 
2455
                  OPC_MoveParent,
 
2456
                  OPC_MoveParent,
 
2457
                  OPC_MoveParent,
 
2458
                  OPC_MoveChild, 1,
 
2459
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2460
                  OPC_MoveChild, 0,
 
2461
                  OPC_CheckOpcode, ISD::SRL,
 
2462
                  OPC_MoveChild, 0,
 
2463
                  OPC_CheckSame, 0,
 
2464
                  OPC_MoveParent,
 
2465
                  OPC_MoveChild, 1,
 
2466
                  OPC_CheckInteger, 8, 
 
2467
                  OPC_CheckType, MVT::i32,
 
2468
                  OPC_MoveParent,
 
2469
                  OPC_MoveParent,
 
2470
                  OPC_MoveParent,
 
2471
                  OPC_MoveParent,
 
2472
                  OPC_MoveParent,
 
2473
                  OPC_CheckType, MVT::i32,
 
2474
                  OPC_CheckPatternPredicate, 1,
 
2475
                  OPC_EmitInteger, MVT::i32, 14, 
 
2476
                  OPC_EmitRegister, MVT::i32, 0 ,
 
2477
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2478
                      1, MVT::i32, 3, 0, 1, 2, 
 
2479
                0, 
 
2480
              75|128,10, 
 
2481
                OPC_CheckOpcode, ISD::OR,
 
2482
                OPC_MoveChild, 0,
 
2483
                OPC_Scope, 56|128,5, 
 
2484
                  OPC_CheckOpcode, ISD::OR,
 
2485
                  OPC_MoveChild, 0,
 
2486
                  OPC_Scope, 114, 
 
2487
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2488
                    OPC_MoveChild, 0,
 
2489
                    OPC_CheckOpcode, ISD::SHL,
 
2490
                    OPC_RecordChild0,
 
2491
                    OPC_MoveChild, 1,
 
2492
                    OPC_CheckInteger, 8, 
 
2493
                    OPC_CheckType, MVT::i32,
 
2494
                    OPC_MoveParent,
 
2495
                    OPC_MoveParent,
 
2496
                    OPC_MoveParent,
 
2497
                    OPC_MoveChild, 1,
 
2498
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2499
                    OPC_MoveChild, 0,
 
2500
                    OPC_CheckOpcode, ISD::SRL,
 
2501
                    OPC_MoveChild, 0,
 
2502
                    OPC_CheckSame, 0,
 
2503
                    OPC_MoveParent,
 
2504
                    OPC_MoveChild, 1,
 
2505
                    OPC_CheckInteger, 8, 
 
2506
                    OPC_CheckType, MVT::i32,
 
2507
                    OPC_MoveParent,
 
2508
                    OPC_MoveParent,
 
2509
                    OPC_MoveParent,
 
2510
                    OPC_MoveParent,
 
2511
                    OPC_MoveChild, 1,
 
2512
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2513
                    OPC_MoveChild, 0,
 
2514
                    OPC_CheckOpcode, ISD::SHL,
 
2515
                    OPC_MoveChild, 0,
 
2516
                    OPC_CheckSame, 0,
 
2517
                    OPC_MoveParent,
 
2518
                    OPC_MoveChild, 1,
 
2519
                    OPC_CheckInteger, 8, 
 
2520
                    OPC_CheckType, MVT::i32,
 
2521
                    OPC_MoveParent,
 
2522
                    OPC_MoveParent,
 
2523
                    OPC_MoveParent,
 
2524
                    OPC_MoveParent,
 
2525
                    OPC_MoveChild, 1,
 
2526
                    OPC_CheckAndImm, 127|128,1, 
 
2527
                    OPC_MoveChild, 0,
 
2528
                    OPC_CheckOpcode, ISD::SRL,
 
2529
                    OPC_MoveChild, 0,
 
2530
                    OPC_CheckSame, 0,
 
2531
                    OPC_MoveParent,
 
2532
                    OPC_MoveChild, 1,
 
2533
                    OPC_CheckInteger, 8, 
 
2534
                    OPC_CheckType, MVT::i32,
 
2535
                    OPC_MoveParent,
 
2536
                    OPC_MoveParent,
 
2537
                    OPC_MoveParent,
 
2538
                    OPC_CheckType, MVT::i32,
 
2539
                    OPC_CheckPatternPredicate, 1,
 
2540
                    OPC_EmitInteger, MVT::i32, 14, 
 
2541
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2542
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2543
                        1, MVT::i32, 3, 0, 1, 2, 
 
2544
                  114, 
 
2545
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2546
                    OPC_MoveChild, 0,
 
2547
                    OPC_CheckOpcode, ISD::SRL,
 
2548
                    OPC_RecordChild0,
 
2549
                    OPC_MoveChild, 1,
 
2550
                    OPC_CheckInteger, 8, 
 
2551
                    OPC_CheckType, MVT::i32,
 
2552
                    OPC_MoveParent,
 
2553
                    OPC_MoveParent,
 
2554
                    OPC_MoveParent,
 
2555
                    OPC_MoveChild, 1,
 
2556
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2557
                    OPC_MoveChild, 0,
 
2558
                    OPC_CheckOpcode, ISD::SHL,
 
2559
                    OPC_MoveChild, 0,
 
2560
                    OPC_CheckSame, 0,
 
2561
                    OPC_MoveParent,
 
2562
                    OPC_MoveChild, 1,
 
2563
                    OPC_CheckInteger, 8, 
 
2564
                    OPC_CheckType, MVT::i32,
 
2565
                    OPC_MoveParent,
 
2566
                    OPC_MoveParent,
 
2567
                    OPC_MoveParent,
 
2568
                    OPC_MoveParent,
 
2569
                    OPC_MoveChild, 1,
 
2570
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2571
                    OPC_MoveChild, 0,
 
2572
                    OPC_CheckOpcode, ISD::SHL,
 
2573
                    OPC_MoveChild, 0,
 
2574
                    OPC_CheckSame, 0,
 
2575
                    OPC_MoveParent,
 
2576
                    OPC_MoveChild, 1,
 
2577
                    OPC_CheckInteger, 8, 
 
2578
                    OPC_CheckType, MVT::i32,
 
2579
                    OPC_MoveParent,
 
2580
                    OPC_MoveParent,
 
2581
                    OPC_MoveParent,
 
2582
                    OPC_MoveParent,
 
2583
                    OPC_MoveChild, 1,
 
2584
                    OPC_CheckAndImm, 127|128,1, 
 
2585
                    OPC_MoveChild, 0,
 
2586
                    OPC_CheckOpcode, ISD::SRL,
 
2587
                    OPC_MoveChild, 0,
 
2588
                    OPC_CheckSame, 0,
 
2589
                    OPC_MoveParent,
 
2590
                    OPC_MoveChild, 1,
 
2591
                    OPC_CheckInteger, 8, 
 
2592
                    OPC_CheckType, MVT::i32,
 
2593
                    OPC_MoveParent,
 
2594
                    OPC_MoveParent,
 
2595
                    OPC_MoveParent,
 
2596
                    OPC_CheckType, MVT::i32,
 
2597
                    OPC_CheckPatternPredicate, 1,
 
2598
                    OPC_EmitInteger, MVT::i32, 14, 
 
2599
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2600
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2601
                        1, MVT::i32, 3, 0, 1, 2, 
 
2602
                  114, 
 
2603
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2604
                    OPC_MoveChild, 0,
 
2605
                    OPC_CheckOpcode, ISD::SHL,
 
2606
                    OPC_RecordChild0,
 
2607
                    OPC_MoveChild, 1,
 
2608
                    OPC_CheckInteger, 8, 
 
2609
                    OPC_CheckType, MVT::i32,
 
2610
                    OPC_MoveParent,
 
2611
                    OPC_MoveParent,
 
2612
                    OPC_MoveParent,
 
2613
                    OPC_MoveChild, 1,
 
2614
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2615
                    OPC_MoveChild, 0,
 
2616
                    OPC_CheckOpcode, ISD::SHL,
 
2617
                    OPC_MoveChild, 0,
 
2618
                    OPC_CheckSame, 0,
 
2619
                    OPC_MoveParent,
 
2620
                    OPC_MoveChild, 1,
 
2621
                    OPC_CheckInteger, 8, 
 
2622
                    OPC_CheckType, MVT::i32,
 
2623
                    OPC_MoveParent,
 
2624
                    OPC_MoveParent,
 
2625
                    OPC_MoveParent,
 
2626
                    OPC_MoveParent,
 
2627
                    OPC_MoveChild, 1,
 
2628
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2629
                    OPC_MoveChild, 0,
 
2630
                    OPC_CheckOpcode, ISD::SRL,
 
2631
                    OPC_MoveChild, 0,
 
2632
                    OPC_CheckSame, 0,
 
2633
                    OPC_MoveParent,
 
2634
                    OPC_MoveChild, 1,
 
2635
                    OPC_CheckInteger, 8, 
 
2636
                    OPC_CheckType, MVT::i32,
 
2637
                    OPC_MoveParent,
 
2638
                    OPC_MoveParent,
 
2639
                    OPC_MoveParent,
 
2640
                    OPC_MoveParent,
 
2641
                    OPC_MoveChild, 1,
 
2642
                    OPC_CheckAndImm, 127|128,1, 
 
2643
                    OPC_MoveChild, 0,
 
2644
                    OPC_CheckOpcode, ISD::SRL,
 
2645
                    OPC_MoveChild, 0,
 
2646
                    OPC_CheckSame, 0,
 
2647
                    OPC_MoveParent,
 
2648
                    OPC_MoveChild, 1,
 
2649
                    OPC_CheckInteger, 8, 
 
2650
                    OPC_CheckType, MVT::i32,
 
2651
                    OPC_MoveParent,
 
2652
                    OPC_MoveParent,
 
2653
                    OPC_MoveParent,
 
2654
                    OPC_CheckType, MVT::i32,
 
2655
                    OPC_CheckPatternPredicate, 1,
 
2656
                    OPC_EmitInteger, MVT::i32, 14, 
 
2657
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2658
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2659
                        1, MVT::i32, 3, 0, 1, 2, 
 
2660
                  114, 
 
2661
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2662
                    OPC_MoveChild, 0,
 
2663
                    OPC_CheckOpcode, ISD::SHL,
 
2664
                    OPC_RecordChild0,
 
2665
                    OPC_MoveChild, 1,
 
2666
                    OPC_CheckInteger, 8, 
 
2667
                    OPC_CheckType, MVT::i32,
 
2668
                    OPC_MoveParent,
 
2669
                    OPC_MoveParent,
 
2670
                    OPC_MoveParent,
 
2671
                    OPC_MoveChild, 1,
 
2672
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2673
                    OPC_MoveChild, 0,
 
2674
                    OPC_CheckOpcode, ISD::SHL,
 
2675
                    OPC_MoveChild, 0,
 
2676
                    OPC_CheckSame, 0,
 
2677
                    OPC_MoveParent,
 
2678
                    OPC_MoveChild, 1,
 
2679
                    OPC_CheckInteger, 8, 
 
2680
                    OPC_CheckType, MVT::i32,
 
2681
                    OPC_MoveParent,
 
2682
                    OPC_MoveParent,
 
2683
                    OPC_MoveParent,
 
2684
                    OPC_MoveParent,
 
2685
                    OPC_MoveChild, 1,
 
2686
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2687
                    OPC_MoveChild, 0,
 
2688
                    OPC_CheckOpcode, ISD::SRL,
 
2689
                    OPC_MoveChild, 0,
 
2690
                    OPC_CheckSame, 0,
 
2691
                    OPC_MoveParent,
 
2692
                    OPC_MoveChild, 1,
 
2693
                    OPC_CheckInteger, 8, 
 
2694
                    OPC_CheckType, MVT::i32,
 
2695
                    OPC_MoveParent,
 
2696
                    OPC_MoveParent,
 
2697
                    OPC_MoveParent,
 
2698
                    OPC_MoveParent,
 
2699
                    OPC_MoveChild, 1,
 
2700
                    OPC_CheckAndImm, 127|128,1, 
 
2701
                    OPC_MoveChild, 0,
 
2702
                    OPC_CheckOpcode, ISD::SRL,
 
2703
                    OPC_MoveChild, 0,
 
2704
                    OPC_CheckSame, 0,
 
2705
                    OPC_MoveParent,
 
2706
                    OPC_MoveChild, 1,
 
2707
                    OPC_CheckInteger, 8, 
 
2708
                    OPC_CheckType, MVT::i32,
 
2709
                    OPC_MoveParent,
 
2710
                    OPC_MoveParent,
 
2711
                    OPC_MoveParent,
 
2712
                    OPC_CheckType, MVT::i32,
 
2713
                    OPC_CheckPatternPredicate, 1,
 
2714
                    OPC_EmitInteger, MVT::i32, 14, 
 
2715
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2716
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2717
                        1, MVT::i32, 3, 0, 1, 2, 
 
2718
                  114, 
 
2719
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2720
                    OPC_MoveChild, 0,
 
2721
                    OPC_CheckOpcode, ISD::SRL,
 
2722
                    OPC_RecordChild0,
 
2723
                    OPC_MoveChild, 1,
 
2724
                    OPC_CheckInteger, 8, 
 
2725
                    OPC_CheckType, MVT::i32,
 
2726
                    OPC_MoveParent,
 
2727
                    OPC_MoveParent,
 
2728
                    OPC_MoveParent,
 
2729
                    OPC_MoveChild, 1,
 
2730
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2731
                    OPC_MoveChild, 0,
 
2732
                    OPC_CheckOpcode, ISD::SHL,
 
2733
                    OPC_MoveChild, 0,
 
2734
                    OPC_CheckSame, 0,
 
2735
                    OPC_MoveParent,
 
2736
                    OPC_MoveChild, 1,
 
2737
                    OPC_CheckInteger, 8, 
 
2738
                    OPC_CheckType, MVT::i32,
 
2739
                    OPC_MoveParent,
 
2740
                    OPC_MoveParent,
 
2741
                    OPC_MoveParent,
 
2742
                    OPC_MoveParent,
 
2743
                    OPC_MoveChild, 1,
 
2744
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2745
                    OPC_MoveChild, 0,
 
2746
                    OPC_CheckOpcode, ISD::SHL,
 
2747
                    OPC_MoveChild, 0,
 
2748
                    OPC_CheckSame, 0,
 
2749
                    OPC_MoveParent,
 
2750
                    OPC_MoveChild, 1,
 
2751
                    OPC_CheckInteger, 8, 
 
2752
                    OPC_CheckType, MVT::i32,
 
2753
                    OPC_MoveParent,
 
2754
                    OPC_MoveParent,
 
2755
                    OPC_MoveParent,
 
2756
                    OPC_MoveParent,
 
2757
                    OPC_MoveChild, 1,
 
2758
                    OPC_CheckAndImm, 127|128,1, 
 
2759
                    OPC_MoveChild, 0,
 
2760
                    OPC_CheckOpcode, ISD::SRL,
 
2761
                    OPC_MoveChild, 0,
 
2762
                    OPC_CheckSame, 0,
 
2763
                    OPC_MoveParent,
 
2764
                    OPC_MoveChild, 1,
 
2765
                    OPC_CheckInteger, 8, 
 
2766
                    OPC_CheckType, MVT::i32,
 
2767
                    OPC_MoveParent,
 
2768
                    OPC_MoveParent,
 
2769
                    OPC_MoveParent,
 
2770
                    OPC_CheckType, MVT::i32,
 
2771
                    OPC_CheckPatternPredicate, 1,
 
2772
                    OPC_EmitInteger, MVT::i32, 14, 
 
2773
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2774
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2775
                        1, MVT::i32, 3, 0, 1, 2, 
 
2776
                  114, 
 
2777
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2778
                    OPC_MoveChild, 0,
 
2779
                    OPC_CheckOpcode, ISD::SHL,
 
2780
                    OPC_RecordChild0,
 
2781
                    OPC_MoveChild, 1,
 
2782
                    OPC_CheckInteger, 8, 
 
2783
                    OPC_CheckType, MVT::i32,
 
2784
                    OPC_MoveParent,
 
2785
                    OPC_MoveParent,
 
2786
                    OPC_MoveParent,
 
2787
                    OPC_MoveChild, 1,
 
2788
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2789
                    OPC_MoveChild, 0,
 
2790
                    OPC_CheckOpcode, ISD::SRL,
 
2791
                    OPC_MoveChild, 0,
 
2792
                    OPC_CheckSame, 0,
 
2793
                    OPC_MoveParent,
 
2794
                    OPC_MoveChild, 1,
 
2795
                    OPC_CheckInteger, 8, 
 
2796
                    OPC_CheckType, MVT::i32,
 
2797
                    OPC_MoveParent,
 
2798
                    OPC_MoveParent,
 
2799
                    OPC_MoveParent,
 
2800
                    OPC_MoveParent,
 
2801
                    OPC_MoveChild, 1,
 
2802
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2803
                    OPC_MoveChild, 0,
 
2804
                    OPC_CheckOpcode, ISD::SHL,
 
2805
                    OPC_MoveChild, 0,
 
2806
                    OPC_CheckSame, 0,
 
2807
                    OPC_MoveParent,
 
2808
                    OPC_MoveChild, 1,
 
2809
                    OPC_CheckInteger, 8, 
 
2810
                    OPC_CheckType, MVT::i32,
 
2811
                    OPC_MoveParent,
 
2812
                    OPC_MoveParent,
 
2813
                    OPC_MoveParent,
 
2814
                    OPC_MoveParent,
 
2815
                    OPC_MoveChild, 1,
 
2816
                    OPC_CheckAndImm, 127|128,1, 
 
2817
                    OPC_MoveChild, 0,
 
2818
                    OPC_CheckOpcode, ISD::SRL,
 
2819
                    OPC_MoveChild, 0,
 
2820
                    OPC_CheckSame, 0,
 
2821
                    OPC_MoveParent,
 
2822
                    OPC_MoveChild, 1,
 
2823
                    OPC_CheckInteger, 8, 
 
2824
                    OPC_CheckType, MVT::i32,
 
2825
                    OPC_MoveParent,
 
2826
                    OPC_MoveParent,
 
2827
                    OPC_MoveParent,
 
2828
                    OPC_CheckType, MVT::i32,
 
2829
                    OPC_CheckPatternPredicate, 1,
 
2830
                    OPC_EmitInteger, MVT::i32, 14, 
 
2831
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2832
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2833
                        1, MVT::i32, 3, 0, 1, 2, 
 
2834
                  0, 
 
2835
                86|128,1, 
 
2836
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2837
                  OPC_MoveChild, 0,
 
2838
                  OPC_CheckOpcode, ISD::SHL,
 
2839
                  OPC_RecordChild0,
 
2840
                  OPC_MoveChild, 1,
 
2841
                  OPC_CheckInteger, 8, 
 
2842
                  OPC_CheckType, MVT::i32,
 
2843
                  OPC_MoveParent,
 
2844
                  OPC_MoveParent,
 
2845
                  OPC_MoveParent,
 
2846
                  OPC_MoveChild, 1,
 
2847
                  OPC_CheckOpcode, ISD::OR,
 
2848
                  OPC_MoveChild, 0,
 
2849
                  OPC_Scope, 92, 
 
2850
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2851
                    OPC_MoveChild, 0,
 
2852
                    OPC_CheckOpcode, ISD::SHL,
 
2853
                    OPC_MoveChild, 0,
 
2854
                    OPC_CheckSame, 0,
 
2855
                    OPC_MoveParent,
 
2856
                    OPC_MoveChild, 1,
 
2857
                    OPC_CheckInteger, 8, 
 
2858
                    OPC_CheckType, MVT::i32,
 
2859
                    OPC_MoveParent,
 
2860
                    OPC_MoveParent,
 
2861
                    OPC_MoveParent,
 
2862
                    OPC_MoveChild, 1,
 
2863
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2864
                    OPC_MoveChild, 0,
 
2865
                    OPC_CheckOpcode, ISD::SRL,
 
2866
                    OPC_MoveChild, 0,
 
2867
                    OPC_CheckSame, 0,
 
2868
                    OPC_MoveParent,
 
2869
                    OPC_MoveChild, 1,
 
2870
                    OPC_CheckInteger, 8, 
 
2871
                    OPC_CheckType, MVT::i32,
 
2872
                    OPC_MoveParent,
 
2873
                    OPC_MoveParent,
 
2874
                    OPC_MoveParent,
 
2875
                    OPC_MoveParent,
 
2876
                    OPC_MoveParent,
 
2877
                    OPC_MoveChild, 1,
 
2878
                    OPC_CheckAndImm, 127|128,1, 
 
2879
                    OPC_MoveChild, 0,
 
2880
                    OPC_CheckOpcode, ISD::SRL,
 
2881
                    OPC_MoveChild, 0,
 
2882
                    OPC_CheckSame, 0,
 
2883
                    OPC_MoveParent,
 
2884
                    OPC_MoveChild, 1,
 
2885
                    OPC_CheckInteger, 8, 
 
2886
                    OPC_CheckType, MVT::i32,
 
2887
                    OPC_MoveParent,
 
2888
                    OPC_MoveParent,
 
2889
                    OPC_MoveParent,
 
2890
                    OPC_CheckType, MVT::i32,
 
2891
                    OPC_CheckPatternPredicate, 1,
 
2892
                    OPC_EmitInteger, MVT::i32, 14, 
 
2893
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2894
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2895
                        1, MVT::i32, 3, 0, 1, 2, 
 
2896
                  92, 
 
2897
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2898
                    OPC_MoveChild, 0,
 
2899
                    OPC_CheckOpcode, ISD::SRL,
 
2900
                    OPC_MoveChild, 0,
 
2901
                    OPC_CheckSame, 0,
 
2902
                    OPC_MoveParent,
 
2903
                    OPC_MoveChild, 1,
 
2904
                    OPC_CheckInteger, 8, 
 
2905
                    OPC_CheckType, MVT::i32,
 
2906
                    OPC_MoveParent,
 
2907
                    OPC_MoveParent,
 
2908
                    OPC_MoveParent,
 
2909
                    OPC_MoveChild, 1,
 
2910
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2911
                    OPC_MoveChild, 0,
 
2912
                    OPC_CheckOpcode, ISD::SHL,
 
2913
                    OPC_MoveChild, 0,
 
2914
                    OPC_CheckSame, 0,
 
2915
                    OPC_MoveParent,
 
2916
                    OPC_MoveChild, 1,
 
2917
                    OPC_CheckInteger, 8, 
 
2918
                    OPC_CheckType, MVT::i32,
 
2919
                    OPC_MoveParent,
 
2920
                    OPC_MoveParent,
 
2921
                    OPC_MoveParent,
 
2922
                    OPC_MoveParent,
 
2923
                    OPC_MoveParent,
 
2924
                    OPC_MoveChild, 1,
 
2925
                    OPC_CheckAndImm, 127|128,1, 
 
2926
                    OPC_MoveChild, 0,
 
2927
                    OPC_CheckOpcode, ISD::SRL,
 
2928
                    OPC_MoveChild, 0,
 
2929
                    OPC_CheckSame, 0,
 
2930
                    OPC_MoveParent,
 
2931
                    OPC_MoveChild, 1,
 
2932
                    OPC_CheckInteger, 8, 
 
2933
                    OPC_CheckType, MVT::i32,
 
2934
                    OPC_MoveParent,
 
2935
                    OPC_MoveParent,
 
2936
                    OPC_MoveParent,
 
2937
                    OPC_CheckType, MVT::i32,
 
2938
                    OPC_CheckPatternPredicate, 1,
 
2939
                    OPC_EmitInteger, MVT::i32, 14, 
 
2940
                    OPC_EmitRegister, MVT::i32, 0 ,
 
2941
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
2942
                        1, MVT::i32, 3, 0, 1, 2, 
 
2943
                  0, 
 
2944
                87|128,1, 
 
2945
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
2946
                  OPC_MoveChild, 0,
 
2947
                  OPC_CheckOpcode, ISD::SRL,
 
2948
                  OPC_RecordChild0,
 
2949
                  OPC_MoveChild, 1,
 
2950
                  OPC_CheckInteger, 8, 
 
2951
                  OPC_CheckType, MVT::i32,
 
2952
                  OPC_MoveParent,
 
2953
                  OPC_MoveParent,
 
2954
                  OPC_MoveParent,
 
2955
                  OPC_MoveChild, 1,
 
2956
                  OPC_CheckOpcode, ISD::OR,
 
2957
                  OPC_MoveChild, 0,
 
2958
                  OPC_Scope, 93, 
 
2959
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
2960
                    OPC_MoveChild, 0,
 
2961
                    OPC_CheckOpcode, ISD::SHL,
 
2962
                    OPC_MoveChild, 0,
 
2963
                    OPC_CheckSame, 0,
 
2964
                    OPC_MoveParent,
 
2965
                    OPC_MoveChild, 1,
 
2966
                    OPC_CheckInteger, 8, 
 
2967
                    OPC_CheckType, MVT::i32,
 
2968
                    OPC_MoveParent,
 
2969
                    OPC_MoveParent,
 
2970
                    OPC_MoveParent,
 
2971
                    OPC_MoveChild, 1,
 
2972
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
2973
                    OPC_MoveChild, 0,
 
2974
                    OPC_CheckOpcode, ISD::SHL,
 
2975
                    OPC_MoveChild, 0,
 
2976
                    OPC_CheckSame, 0,
 
2977
                    OPC_MoveParent,
 
2978
                    OPC_MoveChild, 1,
 
2979
                    OPC_CheckInteger, 8, 
 
2980
                    OPC_CheckType, MVT::i32,
 
2981
                    OPC_MoveParent,
 
2982
                    OPC_MoveParent,
 
2983
                    OPC_MoveParent,
 
2984
                    OPC_MoveParent,
 
2985
                    OPC_MoveParent,
 
2986
                    OPC_MoveChild, 1,
 
2987
                    OPC_CheckAndImm, 127|128,1, 
 
2988
                    OPC_MoveChild, 0,
 
2989
                    OPC_CheckOpcode, ISD::SRL,
 
2990
                    OPC_MoveChild, 0,
 
2991
                    OPC_CheckSame, 0,
 
2992
                    OPC_MoveParent,
 
2993
                    OPC_MoveChild, 1,
 
2994
                    OPC_CheckInteger, 8, 
 
2995
                    OPC_CheckType, MVT::i32,
 
2996
                    OPC_MoveParent,
 
2997
                    OPC_MoveParent,
 
2998
                    OPC_MoveParent,
 
2999
                    OPC_CheckType, MVT::i32,
 
3000
                    OPC_CheckPatternPredicate, 1,
 
3001
                    OPC_EmitInteger, MVT::i32, 14, 
 
3002
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3003
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
3004
                        1, MVT::i32, 3, 0, 1, 2, 
 
3005
                  93, 
 
3006
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3007
                    OPC_MoveChild, 0,
 
3008
                    OPC_CheckOpcode, ISD::SHL,
 
3009
                    OPC_MoveChild, 0,
 
3010
                    OPC_CheckSame, 0,
 
3011
                    OPC_MoveParent,
 
3012
                    OPC_MoveChild, 1,
 
3013
                    OPC_CheckInteger, 8, 
 
3014
                    OPC_CheckType, MVT::i32,
 
3015
                    OPC_MoveParent,
 
3016
                    OPC_MoveParent,
 
3017
                    OPC_MoveParent,
 
3018
                    OPC_MoveChild, 1,
 
3019
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3020
                    OPC_MoveChild, 0,
 
3021
                    OPC_CheckOpcode, ISD::SHL,
 
3022
                    OPC_MoveChild, 0,
 
3023
                    OPC_CheckSame, 0,
 
3024
                    OPC_MoveParent,
 
3025
                    OPC_MoveChild, 1,
 
3026
                    OPC_CheckInteger, 8, 
 
3027
                    OPC_CheckType, MVT::i32,
 
3028
                    OPC_MoveParent,
 
3029
                    OPC_MoveParent,
 
3030
                    OPC_MoveParent,
 
3031
                    OPC_MoveParent,
 
3032
                    OPC_MoveParent,
 
3033
                    OPC_MoveChild, 1,
 
3034
                    OPC_CheckAndImm, 127|128,1, 
 
3035
                    OPC_MoveChild, 0,
 
3036
                    OPC_CheckOpcode, ISD::SRL,
 
3037
                    OPC_MoveChild, 0,
 
3038
                    OPC_CheckSame, 0,
 
3039
                    OPC_MoveParent,
 
3040
                    OPC_MoveChild, 1,
 
3041
                    OPC_CheckInteger, 8, 
 
3042
                    OPC_CheckType, MVT::i32,
 
3043
                    OPC_MoveParent,
 
3044
                    OPC_MoveParent,
 
3045
                    OPC_MoveParent,
 
3046
                    OPC_CheckType, MVT::i32,
 
3047
                    OPC_CheckPatternPredicate, 1,
 
3048
                    OPC_EmitInteger, MVT::i32, 14, 
 
3049
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3050
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
3051
                        1, MVT::i32, 3, 0, 1, 2, 
 
3052
                  0, 
 
3053
                88|128,1, 
 
3054
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
3055
                  OPC_MoveChild, 0,
 
3056
                  OPC_CheckOpcode, ISD::SHL,
 
3057
                  OPC_RecordChild0,
 
3058
                  OPC_MoveChild, 1,
 
3059
                  OPC_CheckInteger, 8, 
 
3060
                  OPC_CheckType, MVT::i32,
 
3061
                  OPC_MoveParent,
 
3062
                  OPC_MoveParent,
 
3063
                  OPC_MoveParent,
 
3064
                  OPC_MoveChild, 1,
 
3065
                  OPC_CheckOpcode, ISD::OR,
 
3066
                  OPC_MoveChild, 0,
 
3067
                  OPC_Scope, 94, 
 
3068
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3069
                    OPC_MoveChild, 0,
 
3070
                    OPC_CheckOpcode, ISD::SRL,
 
3071
                    OPC_MoveChild, 0,
 
3072
                    OPC_CheckSame, 0,
 
3073
                    OPC_MoveParent,
 
3074
                    OPC_MoveChild, 1,
 
3075
                    OPC_CheckInteger, 8, 
 
3076
                    OPC_CheckType, MVT::i32,
 
3077
                    OPC_MoveParent,
 
3078
                    OPC_MoveParent,
 
3079
                    OPC_MoveParent,
 
3080
                    OPC_MoveChild, 1,
 
3081
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3082
                    OPC_MoveChild, 0,
 
3083
                    OPC_CheckOpcode, ISD::SHL,
 
3084
                    OPC_MoveChild, 0,
 
3085
                    OPC_CheckSame, 0,
 
3086
                    OPC_MoveParent,
 
3087
                    OPC_MoveChild, 1,
 
3088
                    OPC_CheckInteger, 8, 
 
3089
                    OPC_CheckType, MVT::i32,
 
3090
                    OPC_MoveParent,
 
3091
                    OPC_MoveParent,
 
3092
                    OPC_MoveParent,
 
3093
                    OPC_MoveParent,
 
3094
                    OPC_MoveParent,
 
3095
                    OPC_MoveChild, 1,
 
3096
                    OPC_CheckAndImm, 127|128,1, 
 
3097
                    OPC_MoveChild, 0,
 
3098
                    OPC_CheckOpcode, ISD::SRL,
 
3099
                    OPC_MoveChild, 0,
 
3100
                    OPC_CheckSame, 0,
 
3101
                    OPC_MoveParent,
 
3102
                    OPC_MoveChild, 1,
 
3103
                    OPC_CheckInteger, 8, 
 
3104
                    OPC_CheckType, MVT::i32,
 
3105
                    OPC_MoveParent,
 
3106
                    OPC_MoveParent,
 
3107
                    OPC_MoveParent,
 
3108
                    OPC_CheckType, MVT::i32,
 
3109
                    OPC_CheckPatternPredicate, 1,
 
3110
                    OPC_EmitInteger, MVT::i32, 14, 
 
3111
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3112
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
3113
                        1, MVT::i32, 3, 0, 1, 2, 
 
3114
                  94, 
 
3115
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3116
                    OPC_MoveChild, 0,
 
3117
                    OPC_CheckOpcode, ISD::SHL,
 
3118
                    OPC_MoveChild, 0,
 
3119
                    OPC_CheckSame, 0,
 
3120
                    OPC_MoveParent,
 
3121
                    OPC_MoveChild, 1,
 
3122
                    OPC_CheckInteger, 8, 
 
3123
                    OPC_CheckType, MVT::i32,
 
3124
                    OPC_MoveParent,
 
3125
                    OPC_MoveParent,
 
3126
                    OPC_MoveParent,
 
3127
                    OPC_MoveChild, 1,
 
3128
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3129
                    OPC_MoveChild, 0,
 
3130
                    OPC_CheckOpcode, ISD::SRL,
 
3131
                    OPC_MoveChild, 0,
 
3132
                    OPC_CheckSame, 0,
 
3133
                    OPC_MoveParent,
 
3134
                    OPC_MoveChild, 1,
 
3135
                    OPC_CheckInteger, 8, 
 
3136
                    OPC_CheckType, MVT::i32,
 
3137
                    OPC_MoveParent,
 
3138
                    OPC_MoveParent,
 
3139
                    OPC_MoveParent,
 
3140
                    OPC_MoveParent,
 
3141
                    OPC_MoveParent,
 
3142
                    OPC_MoveChild, 1,
 
3143
                    OPC_CheckAndImm, 127|128,1, 
 
3144
                    OPC_MoveChild, 0,
 
3145
                    OPC_CheckOpcode, ISD::SRL,
 
3146
                    OPC_MoveChild, 0,
 
3147
                    OPC_CheckSame, 0,
 
3148
                    OPC_MoveParent,
 
3149
                    OPC_MoveChild, 1,
 
3150
                    OPC_CheckInteger, 8, 
 
3151
                    OPC_CheckType, MVT::i32,
 
3152
                    OPC_MoveParent,
 
3153
                    OPC_MoveParent,
 
3154
                    OPC_MoveParent,
 
3155
                    OPC_CheckType, MVT::i32,
 
3156
                    OPC_CheckPatternPredicate, 1,
 
3157
                    OPC_EmitInteger, MVT::i32, 14, 
 
3158
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3159
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV16), 0,
 
3160
                        1, MVT::i32, 3, 0, 1, 2, 
 
3161
                  0, 
 
3162
                0, 
 
3163
              66|128,7, 
 
3164
                OPC_CheckAndImm, 127|128,1, 
 
3165
                OPC_MoveChild, 0,
 
3166
                OPC_CheckOpcode, ISD::SRL,
 
3167
                OPC_RecordChild0,
 
3168
                OPC_MoveChild, 1,
 
3169
                OPC_CheckInteger, 8, 
 
3170
                OPC_CheckType, MVT::i32,
 
3171
                OPC_MoveParent,
 
3172
                OPC_MoveParent,
 
3173
                OPC_MoveParent,
 
3174
                OPC_MoveChild, 1,
 
3175
                OPC_CheckOpcode, ISD::OR,
 
3176
                OPC_MoveChild, 0,
 
3177
                OPC_Scope, 102|128,3, 
 
3178
                  OPC_CheckOpcode, ISD::OR,
 
3179
                  OPC_MoveChild, 0,
 
3180
                  OPC_Scope, 95, 
 
3181
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3182
                    OPC_MoveChild, 0,
 
3183
                    OPC_CheckOpcode, ISD::SRL,
 
3184
                    OPC_MoveChild, 0,
 
3185
                    OPC_CheckSame, 0,
 
3186
                    OPC_MoveParent,
 
3187
                    OPC_MoveChild, 1,
 
3188
                    OPC_CheckInteger, 8, 
 
3189
                    OPC_CheckType, MVT::i32,
 
3190
                    OPC_MoveParent,
 
3191
                    OPC_MoveParent,
 
3192
                    OPC_MoveParent,
 
3193
                    OPC_MoveChild, 1,
 
3194
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3195
                    OPC_MoveChild, 0,
 
3196
                    OPC_CheckOpcode, ISD::SHL,
 
3197
                    OPC_MoveChild, 0,
 
3198
                    OPC_CheckSame, 0,
 
3199
                    OPC_MoveParent,
 
3200
                    OPC_MoveChild, 1,
 
3201
                    OPC_CheckInteger, 8, 
 
3202
                    OPC_CheckType, MVT::i32,
 
3203
                    OPC_MoveParent,
 
3204
                    OPC_MoveParent,
 
3205
                    OPC_MoveParent,
 
3206
                    OPC_MoveParent,
 
3207
                    OPC_MoveChild, 1,
 
3208
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3209
                    OPC_MoveChild, 0,
 
3210
                    OPC_CheckOpcode, ISD::SHL,
 
3211
                    OPC_MoveChild, 0,
 
3212
                    OPC_CheckSame, 0,
 
3213
                    OPC_MoveParent,
 
3214
                    OPC_MoveChild, 1,
 
3215
                    OPC_CheckInteger, 8, 
 
3216
                    OPC_CheckType, MVT::i32,
 
3217
                    OPC_MoveParent,
 
3218
                    OPC_MoveParent,
 
3219
                    OPC_MoveParent,
 
3220
                    OPC_MoveParent,
 
3221
                    OPC_CheckType, MVT::i32,
 
3222
                    OPC_CheckPatternPredicate, 2,
 
3223
                    OPC_EmitInteger, MVT::i32, 14, 
 
3224
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3225
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3226
                        1, MVT::i32, 3, 0, 1, 2, 
 
3227
                  95, 
 
3228
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3229
                    OPC_MoveChild, 0,
 
3230
                    OPC_CheckOpcode, ISD::SHL,
 
3231
                    OPC_MoveChild, 0,
 
3232
                    OPC_CheckSame, 0,
 
3233
                    OPC_MoveParent,
 
3234
                    OPC_MoveChild, 1,
 
3235
                    OPC_CheckInteger, 8, 
 
3236
                    OPC_CheckType, MVT::i32,
 
3237
                    OPC_MoveParent,
 
3238
                    OPC_MoveParent,
 
3239
                    OPC_MoveParent,
 
3240
                    OPC_MoveChild, 1,
 
3241
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3242
                    OPC_MoveChild, 0,
 
3243
                    OPC_CheckOpcode, ISD::SHL,
 
3244
                    OPC_MoveChild, 0,
 
3245
                    OPC_CheckSame, 0,
 
3246
                    OPC_MoveParent,
 
3247
                    OPC_MoveChild, 1,
 
3248
                    OPC_CheckInteger, 8, 
 
3249
                    OPC_CheckType, MVT::i32,
 
3250
                    OPC_MoveParent,
 
3251
                    OPC_MoveParent,
 
3252
                    OPC_MoveParent,
 
3253
                    OPC_MoveParent,
 
3254
                    OPC_MoveChild, 1,
 
3255
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3256
                    OPC_MoveChild, 0,
 
3257
                    OPC_CheckOpcode, ISD::SRL,
 
3258
                    OPC_MoveChild, 0,
 
3259
                    OPC_CheckSame, 0,
 
3260
                    OPC_MoveParent,
 
3261
                    OPC_MoveChild, 1,
 
3262
                    OPC_CheckInteger, 8, 
 
3263
                    OPC_CheckType, MVT::i32,
 
3264
                    OPC_MoveParent,
 
3265
                    OPC_MoveParent,
 
3266
                    OPC_MoveParent,
 
3267
                    OPC_MoveParent,
 
3268
                    OPC_CheckType, MVT::i32,
 
3269
                    OPC_CheckPatternPredicate, 2,
 
3270
                    OPC_EmitInteger, MVT::i32, 14, 
 
3271
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3272
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3273
                        1, MVT::i32, 3, 0, 1, 2, 
 
3274
                  95, 
 
3275
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3276
                    OPC_MoveChild, 0,
 
3277
                    OPC_CheckOpcode, ISD::SHL,
 
3278
                    OPC_MoveChild, 0,
 
3279
                    OPC_CheckSame, 0,
 
3280
                    OPC_MoveParent,
 
3281
                    OPC_MoveChild, 1,
 
3282
                    OPC_CheckInteger, 8, 
 
3283
                    OPC_CheckType, MVT::i32,
 
3284
                    OPC_MoveParent,
 
3285
                    OPC_MoveParent,
 
3286
                    OPC_MoveParent,
 
3287
                    OPC_MoveChild, 1,
 
3288
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3289
                    OPC_MoveChild, 0,
 
3290
                    OPC_CheckOpcode, ISD::SHL,
 
3291
                    OPC_MoveChild, 0,
 
3292
                    OPC_CheckSame, 0,
 
3293
                    OPC_MoveParent,
 
3294
                    OPC_MoveChild, 1,
 
3295
                    OPC_CheckInteger, 8, 
 
3296
                    OPC_CheckType, MVT::i32,
 
3297
                    OPC_MoveParent,
 
3298
                    OPC_MoveParent,
 
3299
                    OPC_MoveParent,
 
3300
                    OPC_MoveParent,
 
3301
                    OPC_MoveChild, 1,
 
3302
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3303
                    OPC_MoveChild, 0,
 
3304
                    OPC_CheckOpcode, ISD::SRL,
 
3305
                    OPC_MoveChild, 0,
 
3306
                    OPC_CheckSame, 0,
 
3307
                    OPC_MoveParent,
 
3308
                    OPC_MoveChild, 1,
 
3309
                    OPC_CheckInteger, 8, 
 
3310
                    OPC_CheckType, MVT::i32,
 
3311
                    OPC_MoveParent,
 
3312
                    OPC_MoveParent,
 
3313
                    OPC_MoveParent,
 
3314
                    OPC_MoveParent,
 
3315
                    OPC_CheckType, MVT::i32,
 
3316
                    OPC_CheckPatternPredicate, 2,
 
3317
                    OPC_EmitInteger, MVT::i32, 14, 
 
3318
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3319
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3320
                        1, MVT::i32, 3, 0, 1, 2, 
 
3321
                  95, 
 
3322
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3323
                    OPC_MoveChild, 0,
 
3324
                    OPC_CheckOpcode, ISD::SRL,
 
3325
                    OPC_MoveChild, 0,
 
3326
                    OPC_CheckSame, 0,
 
3327
                    OPC_MoveParent,
 
3328
                    OPC_MoveChild, 1,
 
3329
                    OPC_CheckInteger, 8, 
 
3330
                    OPC_CheckType, MVT::i32,
 
3331
                    OPC_MoveParent,
 
3332
                    OPC_MoveParent,
 
3333
                    OPC_MoveParent,
 
3334
                    OPC_MoveChild, 1,
 
3335
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3336
                    OPC_MoveChild, 0,
 
3337
                    OPC_CheckOpcode, ISD::SHL,
 
3338
                    OPC_MoveChild, 0,
 
3339
                    OPC_CheckSame, 0,
 
3340
                    OPC_MoveParent,
 
3341
                    OPC_MoveChild, 1,
 
3342
                    OPC_CheckInteger, 8, 
 
3343
                    OPC_CheckType, MVT::i32,
 
3344
                    OPC_MoveParent,
 
3345
                    OPC_MoveParent,
 
3346
                    OPC_MoveParent,
 
3347
                    OPC_MoveParent,
 
3348
                    OPC_MoveChild, 1,
 
3349
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3350
                    OPC_MoveChild, 0,
 
3351
                    OPC_CheckOpcode, ISD::SHL,
 
3352
                    OPC_MoveChild, 0,
 
3353
                    OPC_CheckSame, 0,
 
3354
                    OPC_MoveParent,
 
3355
                    OPC_MoveChild, 1,
 
3356
                    OPC_CheckInteger, 8, 
 
3357
                    OPC_CheckType, MVT::i32,
 
3358
                    OPC_MoveParent,
 
3359
                    OPC_MoveParent,
 
3360
                    OPC_MoveParent,
 
3361
                    OPC_MoveParent,
 
3362
                    OPC_CheckType, MVT::i32,
 
3363
                    OPC_CheckPatternPredicate, 2,
 
3364
                    OPC_EmitInteger, MVT::i32, 14, 
 
3365
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3366
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3367
                        1, MVT::i32, 3, 0, 1, 2, 
 
3368
                  95, 
 
3369
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3370
                    OPC_MoveChild, 0,
 
3371
                    OPC_CheckOpcode, ISD::SHL,
 
3372
                    OPC_MoveChild, 0,
 
3373
                    OPC_CheckSame, 0,
 
3374
                    OPC_MoveParent,
 
3375
                    OPC_MoveChild, 1,
 
3376
                    OPC_CheckInteger, 8, 
 
3377
                    OPC_CheckType, MVT::i32,
 
3378
                    OPC_MoveParent,
 
3379
                    OPC_MoveParent,
 
3380
                    OPC_MoveParent,
 
3381
                    OPC_MoveChild, 1,
 
3382
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3383
                    OPC_MoveChild, 0,
 
3384
                    OPC_CheckOpcode, ISD::SRL,
 
3385
                    OPC_MoveChild, 0,
 
3386
                    OPC_CheckSame, 0,
 
3387
                    OPC_MoveParent,
 
3388
                    OPC_MoveChild, 1,
 
3389
                    OPC_CheckInteger, 8, 
 
3390
                    OPC_CheckType, MVT::i32,
 
3391
                    OPC_MoveParent,
 
3392
                    OPC_MoveParent,
 
3393
                    OPC_MoveParent,
 
3394
                    OPC_MoveParent,
 
3395
                    OPC_MoveChild, 1,
 
3396
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3397
                    OPC_MoveChild, 0,
 
3398
                    OPC_CheckOpcode, ISD::SHL,
 
3399
                    OPC_MoveChild, 0,
 
3400
                    OPC_CheckSame, 0,
 
3401
                    OPC_MoveParent,
 
3402
                    OPC_MoveChild, 1,
 
3403
                    OPC_CheckInteger, 8, 
 
3404
                    OPC_CheckType, MVT::i32,
 
3405
                    OPC_MoveParent,
 
3406
                    OPC_MoveParent,
 
3407
                    OPC_MoveParent,
 
3408
                    OPC_MoveParent,
 
3409
                    OPC_CheckType, MVT::i32,
 
3410
                    OPC_CheckPatternPredicate, 2,
 
3411
                    OPC_EmitInteger, MVT::i32, 14, 
 
3412
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3413
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3414
                        1, MVT::i32, 3, 0, 1, 2, 
 
3415
                  0, 
 
3416
                44|128,1, 
 
3417
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3418
                  OPC_MoveChild, 0,
 
3419
                  OPC_CheckOpcode, ISD::SHL,
 
3420
                  OPC_MoveChild, 0,
 
3421
                  OPC_CheckSame, 0,
 
3422
                  OPC_MoveParent,
 
3423
                  OPC_MoveChild, 1,
 
3424
                  OPC_CheckInteger, 8, 
 
3425
                  OPC_CheckType, MVT::i32,
 
3426
                  OPC_MoveParent,
 
3427
                  OPC_MoveParent,
 
3428
                  OPC_MoveParent,
 
3429
                  OPC_MoveChild, 1,
 
3430
                  OPC_CheckOpcode, ISD::OR,
 
3431
                  OPC_MoveChild, 0,
 
3432
                  OPC_Scope, 69, 
 
3433
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3434
                    OPC_MoveChild, 0,
 
3435
                    OPC_CheckOpcode, ISD::SHL,
 
3436
                    OPC_MoveChild, 0,
 
3437
                    OPC_CheckSame, 0,
 
3438
                    OPC_MoveParent,
 
3439
                    OPC_MoveChild, 1,
 
3440
                    OPC_CheckInteger, 8, 
 
3441
                    OPC_CheckType, MVT::i32,
 
3442
                    OPC_MoveParent,
 
3443
                    OPC_MoveParent,
 
3444
                    OPC_MoveParent,
 
3445
                    OPC_MoveChild, 1,
 
3446
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3447
                    OPC_MoveChild, 0,
 
3448
                    OPC_CheckOpcode, ISD::SRL,
 
3449
                    OPC_MoveChild, 0,
 
3450
                    OPC_CheckSame, 0,
 
3451
                    OPC_MoveParent,
 
3452
                    OPC_MoveChild, 1,
 
3453
                    OPC_CheckInteger, 8, 
 
3454
                    OPC_CheckType, MVT::i32,
 
3455
                    OPC_MoveParent,
 
3456
                    OPC_MoveParent,
 
3457
                    OPC_MoveParent,
 
3458
                    OPC_MoveParent,
 
3459
                    OPC_MoveParent,
 
3460
                    OPC_CheckType, MVT::i32,
 
3461
                    OPC_CheckPatternPredicate, 2,
 
3462
                    OPC_EmitInteger, MVT::i32, 14, 
 
3463
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3464
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3465
                        1, MVT::i32, 3, 0, 1, 2, 
 
3466
                  69, 
 
3467
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3468
                    OPC_MoveChild, 0,
 
3469
                    OPC_CheckOpcode, ISD::SRL,
 
3470
                    OPC_MoveChild, 0,
 
3471
                    OPC_CheckSame, 0,
 
3472
                    OPC_MoveParent,
 
3473
                    OPC_MoveChild, 1,
 
3474
                    OPC_CheckInteger, 8, 
 
3475
                    OPC_CheckType, MVT::i32,
 
3476
                    OPC_MoveParent,
 
3477
                    OPC_MoveParent,
 
3478
                    OPC_MoveParent,
 
3479
                    OPC_MoveChild, 1,
 
3480
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3481
                    OPC_MoveChild, 0,
 
3482
                    OPC_CheckOpcode, ISD::SHL,
 
3483
                    OPC_MoveChild, 0,
 
3484
                    OPC_CheckSame, 0,
 
3485
                    OPC_MoveParent,
 
3486
                    OPC_MoveChild, 1,
 
3487
                    OPC_CheckInteger, 8, 
 
3488
                    OPC_CheckType, MVT::i32,
 
3489
                    OPC_MoveParent,
 
3490
                    OPC_MoveParent,
 
3491
                    OPC_MoveParent,
 
3492
                    OPC_MoveParent,
 
3493
                    OPC_MoveParent,
 
3494
                    OPC_CheckType, MVT::i32,
 
3495
                    OPC_CheckPatternPredicate, 2,
 
3496
                    OPC_EmitInteger, MVT::i32, 14, 
 
3497
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3498
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3499
                        1, MVT::i32, 3, 0, 1, 2, 
 
3500
                  0, 
 
3501
                45|128,1, 
 
3502
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3503
                  OPC_MoveChild, 0,
 
3504
                  OPC_CheckOpcode, ISD::SRL,
 
3505
                  OPC_MoveChild, 0,
 
3506
                  OPC_CheckSame, 0,
 
3507
                  OPC_MoveParent,
 
3508
                  OPC_MoveChild, 1,
 
3509
                  OPC_CheckInteger, 8, 
 
3510
                  OPC_CheckType, MVT::i32,
 
3511
                  OPC_MoveParent,
 
3512
                  OPC_MoveParent,
 
3513
                  OPC_MoveParent,
 
3514
                  OPC_MoveChild, 1,
 
3515
                  OPC_CheckOpcode, ISD::OR,
 
3516
                  OPC_MoveChild, 0,
 
3517
                  OPC_Scope, 70, 
 
3518
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3519
                    OPC_MoveChild, 0,
 
3520
                    OPC_CheckOpcode, ISD::SHL,
 
3521
                    OPC_MoveChild, 0,
 
3522
                    OPC_CheckSame, 0,
 
3523
                    OPC_MoveParent,
 
3524
                    OPC_MoveChild, 1,
 
3525
                    OPC_CheckInteger, 8, 
 
3526
                    OPC_CheckType, MVT::i32,
 
3527
                    OPC_MoveParent,
 
3528
                    OPC_MoveParent,
 
3529
                    OPC_MoveParent,
 
3530
                    OPC_MoveChild, 1,
 
3531
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3532
                    OPC_MoveChild, 0,
 
3533
                    OPC_CheckOpcode, ISD::SHL,
 
3534
                    OPC_MoveChild, 0,
 
3535
                    OPC_CheckSame, 0,
 
3536
                    OPC_MoveParent,
 
3537
                    OPC_MoveChild, 1,
 
3538
                    OPC_CheckInteger, 8, 
 
3539
                    OPC_CheckType, MVT::i32,
 
3540
                    OPC_MoveParent,
 
3541
                    OPC_MoveParent,
 
3542
                    OPC_MoveParent,
 
3543
                    OPC_MoveParent,
 
3544
                    OPC_MoveParent,
 
3545
                    OPC_CheckType, MVT::i32,
 
3546
                    OPC_CheckPatternPredicate, 2,
 
3547
                    OPC_EmitInteger, MVT::i32, 14, 
 
3548
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3549
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3550
                        1, MVT::i32, 3, 0, 1, 2, 
 
3551
                  70, 
 
3552
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3553
                    OPC_MoveChild, 0,
 
3554
                    OPC_CheckOpcode, ISD::SHL,
 
3555
                    OPC_MoveChild, 0,
 
3556
                    OPC_CheckSame, 0,
 
3557
                    OPC_MoveParent,
 
3558
                    OPC_MoveChild, 1,
 
3559
                    OPC_CheckInteger, 8, 
 
3560
                    OPC_CheckType, MVT::i32,
 
3561
                    OPC_MoveParent,
 
3562
                    OPC_MoveParent,
 
3563
                    OPC_MoveParent,
 
3564
                    OPC_MoveChild, 1,
 
3565
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3566
                    OPC_MoveChild, 0,
 
3567
                    OPC_CheckOpcode, ISD::SHL,
 
3568
                    OPC_MoveChild, 0,
 
3569
                    OPC_CheckSame, 0,
 
3570
                    OPC_MoveParent,
 
3571
                    OPC_MoveChild, 1,
 
3572
                    OPC_CheckInteger, 8, 
 
3573
                    OPC_CheckType, MVT::i32,
 
3574
                    OPC_MoveParent,
 
3575
                    OPC_MoveParent,
 
3576
                    OPC_MoveParent,
 
3577
                    OPC_MoveParent,
 
3578
                    OPC_MoveParent,
 
3579
                    OPC_CheckType, MVT::i32,
 
3580
                    OPC_CheckPatternPredicate, 2,
 
3581
                    OPC_EmitInteger, MVT::i32, 14, 
 
3582
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3583
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3584
                        1, MVT::i32, 3, 0, 1, 2, 
 
3585
                  0, 
 
3586
                99, 
 
3587
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
3588
                  OPC_MoveChild, 0,
 
3589
                  OPC_CheckOpcode, ISD::SHL,
 
3590
                  OPC_MoveChild, 0,
 
3591
                  OPC_CheckSame, 0,
 
3592
                  OPC_MoveParent,
 
3593
                  OPC_MoveChild, 1,
 
3594
                  OPC_CheckInteger, 8, 
 
3595
                  OPC_CheckType, MVT::i32,
 
3596
                  OPC_MoveParent,
 
3597
                  OPC_MoveParent,
 
3598
                  OPC_MoveParent,
 
3599
                  OPC_MoveChild, 1,
 
3600
                  OPC_CheckOpcode, ISD::OR,
 
3601
                  OPC_MoveChild, 0,
 
3602
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3603
                  OPC_MoveChild, 0,
 
3604
                  OPC_CheckOpcode, ISD::SHL,
 
3605
                  OPC_MoveChild, 0,
 
3606
                  OPC_CheckSame, 0,
 
3607
                  OPC_MoveParent,
 
3608
                  OPC_MoveChild, 1,
 
3609
                  OPC_CheckInteger, 8, 
 
3610
                  OPC_CheckType, MVT::i32,
 
3611
                  OPC_MoveParent,
 
3612
                  OPC_MoveParent,
 
3613
                  OPC_MoveParent,
 
3614
                  OPC_MoveChild, 1,
 
3615
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3616
                  OPC_MoveChild, 0,
 
3617
                  OPC_CheckOpcode, ISD::SRL,
 
3618
                  OPC_MoveChild, 0,
 
3619
                  OPC_CheckSame, 0,
 
3620
                  OPC_MoveParent,
 
3621
                  OPC_MoveChild, 1,
 
3622
                  OPC_CheckInteger, 8, 
 
3623
                  OPC_CheckType, MVT::i32,
 
3624
                  OPC_MoveParent,
 
3625
                  OPC_MoveParent,
 
3626
                  OPC_MoveParent,
 
3627
                  OPC_MoveParent,
 
3628
                  OPC_MoveParent,
 
3629
                  OPC_CheckType, MVT::i32,
 
3630
                  OPC_CheckPatternPredicate, 2,
 
3631
                  OPC_EmitInteger, MVT::i32, 14, 
 
3632
                  OPC_EmitRegister, MVT::i32, 0 ,
 
3633
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3634
                      1, MVT::i32, 3, 0, 1, 2, 
 
3635
                0, 
 
3636
              75|128,10, 
 
3637
                OPC_CheckOpcode, ISD::OR,
 
3638
                OPC_MoveChild, 0,
 
3639
                OPC_Scope, 56|128,5, 
 
3640
                  OPC_CheckOpcode, ISD::OR,
 
3641
                  OPC_MoveChild, 0,
 
3642
                  OPC_Scope, 114, 
 
3643
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3644
                    OPC_MoveChild, 0,
 
3645
                    OPC_CheckOpcode, ISD::SHL,
 
3646
                    OPC_RecordChild0,
 
3647
                    OPC_MoveChild, 1,
 
3648
                    OPC_CheckInteger, 8, 
 
3649
                    OPC_CheckType, MVT::i32,
 
3650
                    OPC_MoveParent,
 
3651
                    OPC_MoveParent,
 
3652
                    OPC_MoveParent,
 
3653
                    OPC_MoveChild, 1,
 
3654
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3655
                    OPC_MoveChild, 0,
 
3656
                    OPC_CheckOpcode, ISD::SRL,
 
3657
                    OPC_MoveChild, 0,
 
3658
                    OPC_CheckSame, 0,
 
3659
                    OPC_MoveParent,
 
3660
                    OPC_MoveChild, 1,
 
3661
                    OPC_CheckInteger, 8, 
 
3662
                    OPC_CheckType, MVT::i32,
 
3663
                    OPC_MoveParent,
 
3664
                    OPC_MoveParent,
 
3665
                    OPC_MoveParent,
 
3666
                    OPC_MoveParent,
 
3667
                    OPC_MoveChild, 1,
 
3668
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3669
                    OPC_MoveChild, 0,
 
3670
                    OPC_CheckOpcode, ISD::SHL,
 
3671
                    OPC_MoveChild, 0,
 
3672
                    OPC_CheckSame, 0,
 
3673
                    OPC_MoveParent,
 
3674
                    OPC_MoveChild, 1,
 
3675
                    OPC_CheckInteger, 8, 
 
3676
                    OPC_CheckType, MVT::i32,
 
3677
                    OPC_MoveParent,
 
3678
                    OPC_MoveParent,
 
3679
                    OPC_MoveParent,
 
3680
                    OPC_MoveParent,
 
3681
                    OPC_MoveChild, 1,
 
3682
                    OPC_CheckAndImm, 127|128,1, 
 
3683
                    OPC_MoveChild, 0,
 
3684
                    OPC_CheckOpcode, ISD::SRL,
 
3685
                    OPC_MoveChild, 0,
 
3686
                    OPC_CheckSame, 0,
 
3687
                    OPC_MoveParent,
 
3688
                    OPC_MoveChild, 1,
 
3689
                    OPC_CheckInteger, 8, 
 
3690
                    OPC_CheckType, MVT::i32,
 
3691
                    OPC_MoveParent,
 
3692
                    OPC_MoveParent,
 
3693
                    OPC_MoveParent,
 
3694
                    OPC_CheckType, MVT::i32,
 
3695
                    OPC_CheckPatternPredicate, 2,
 
3696
                    OPC_EmitInteger, MVT::i32, 14, 
 
3697
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3698
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3699
                        1, MVT::i32, 3, 0, 1, 2, 
 
3700
                  114, 
 
3701
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3702
                    OPC_MoveChild, 0,
 
3703
                    OPC_CheckOpcode, ISD::SRL,
 
3704
                    OPC_RecordChild0,
 
3705
                    OPC_MoveChild, 1,
 
3706
                    OPC_CheckInteger, 8, 
 
3707
                    OPC_CheckType, MVT::i32,
 
3708
                    OPC_MoveParent,
 
3709
                    OPC_MoveParent,
 
3710
                    OPC_MoveParent,
 
3711
                    OPC_MoveChild, 1,
 
3712
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3713
                    OPC_MoveChild, 0,
 
3714
                    OPC_CheckOpcode, ISD::SHL,
 
3715
                    OPC_MoveChild, 0,
 
3716
                    OPC_CheckSame, 0,
 
3717
                    OPC_MoveParent,
 
3718
                    OPC_MoveChild, 1,
 
3719
                    OPC_CheckInteger, 8, 
 
3720
                    OPC_CheckType, MVT::i32,
 
3721
                    OPC_MoveParent,
 
3722
                    OPC_MoveParent,
 
3723
                    OPC_MoveParent,
 
3724
                    OPC_MoveParent,
 
3725
                    OPC_MoveChild, 1,
 
3726
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3727
                    OPC_MoveChild, 0,
 
3728
                    OPC_CheckOpcode, ISD::SHL,
 
3729
                    OPC_MoveChild, 0,
 
3730
                    OPC_CheckSame, 0,
 
3731
                    OPC_MoveParent,
 
3732
                    OPC_MoveChild, 1,
 
3733
                    OPC_CheckInteger, 8, 
 
3734
                    OPC_CheckType, MVT::i32,
 
3735
                    OPC_MoveParent,
 
3736
                    OPC_MoveParent,
 
3737
                    OPC_MoveParent,
 
3738
                    OPC_MoveParent,
 
3739
                    OPC_MoveChild, 1,
 
3740
                    OPC_CheckAndImm, 127|128,1, 
 
3741
                    OPC_MoveChild, 0,
 
3742
                    OPC_CheckOpcode, ISD::SRL,
 
3743
                    OPC_MoveChild, 0,
 
3744
                    OPC_CheckSame, 0,
 
3745
                    OPC_MoveParent,
 
3746
                    OPC_MoveChild, 1,
 
3747
                    OPC_CheckInteger, 8, 
 
3748
                    OPC_CheckType, MVT::i32,
 
3749
                    OPC_MoveParent,
 
3750
                    OPC_MoveParent,
 
3751
                    OPC_MoveParent,
 
3752
                    OPC_CheckType, MVT::i32,
 
3753
                    OPC_CheckPatternPredicate, 2,
 
3754
                    OPC_EmitInteger, MVT::i32, 14, 
 
3755
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3756
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3757
                        1, MVT::i32, 3, 0, 1, 2, 
 
3758
                  114, 
 
3759
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3760
                    OPC_MoveChild, 0,
 
3761
                    OPC_CheckOpcode, ISD::SHL,
 
3762
                    OPC_RecordChild0,
 
3763
                    OPC_MoveChild, 1,
 
3764
                    OPC_CheckInteger, 8, 
 
3765
                    OPC_CheckType, MVT::i32,
 
3766
                    OPC_MoveParent,
 
3767
                    OPC_MoveParent,
 
3768
                    OPC_MoveParent,
 
3769
                    OPC_MoveChild, 1,
 
3770
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3771
                    OPC_MoveChild, 0,
 
3772
                    OPC_CheckOpcode, ISD::SHL,
 
3773
                    OPC_MoveChild, 0,
 
3774
                    OPC_CheckSame, 0,
 
3775
                    OPC_MoveParent,
 
3776
                    OPC_MoveChild, 1,
 
3777
                    OPC_CheckInteger, 8, 
 
3778
                    OPC_CheckType, MVT::i32,
 
3779
                    OPC_MoveParent,
 
3780
                    OPC_MoveParent,
 
3781
                    OPC_MoveParent,
 
3782
                    OPC_MoveParent,
 
3783
                    OPC_MoveChild, 1,
 
3784
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3785
                    OPC_MoveChild, 0,
 
3786
                    OPC_CheckOpcode, ISD::SRL,
 
3787
                    OPC_MoveChild, 0,
 
3788
                    OPC_CheckSame, 0,
 
3789
                    OPC_MoveParent,
 
3790
                    OPC_MoveChild, 1,
 
3791
                    OPC_CheckInteger, 8, 
 
3792
                    OPC_CheckType, MVT::i32,
 
3793
                    OPC_MoveParent,
 
3794
                    OPC_MoveParent,
 
3795
                    OPC_MoveParent,
 
3796
                    OPC_MoveParent,
 
3797
                    OPC_MoveChild, 1,
 
3798
                    OPC_CheckAndImm, 127|128,1, 
 
3799
                    OPC_MoveChild, 0,
 
3800
                    OPC_CheckOpcode, ISD::SRL,
 
3801
                    OPC_MoveChild, 0,
 
3802
                    OPC_CheckSame, 0,
 
3803
                    OPC_MoveParent,
 
3804
                    OPC_MoveChild, 1,
 
3805
                    OPC_CheckInteger, 8, 
 
3806
                    OPC_CheckType, MVT::i32,
 
3807
                    OPC_MoveParent,
 
3808
                    OPC_MoveParent,
 
3809
                    OPC_MoveParent,
 
3810
                    OPC_CheckType, MVT::i32,
 
3811
                    OPC_CheckPatternPredicate, 2,
 
3812
                    OPC_EmitInteger, MVT::i32, 14, 
 
3813
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3814
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3815
                        1, MVT::i32, 3, 0, 1, 2, 
 
3816
                  114, 
 
3817
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3818
                    OPC_MoveChild, 0,
 
3819
                    OPC_CheckOpcode, ISD::SHL,
 
3820
                    OPC_RecordChild0,
 
3821
                    OPC_MoveChild, 1,
 
3822
                    OPC_CheckInteger, 8, 
 
3823
                    OPC_CheckType, MVT::i32,
 
3824
                    OPC_MoveParent,
 
3825
                    OPC_MoveParent,
 
3826
                    OPC_MoveParent,
 
3827
                    OPC_MoveChild, 1,
 
3828
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3829
                    OPC_MoveChild, 0,
 
3830
                    OPC_CheckOpcode, ISD::SHL,
 
3831
                    OPC_MoveChild, 0,
 
3832
                    OPC_CheckSame, 0,
 
3833
                    OPC_MoveParent,
 
3834
                    OPC_MoveChild, 1,
 
3835
                    OPC_CheckInteger, 8, 
 
3836
                    OPC_CheckType, MVT::i32,
 
3837
                    OPC_MoveParent,
 
3838
                    OPC_MoveParent,
 
3839
                    OPC_MoveParent,
 
3840
                    OPC_MoveParent,
 
3841
                    OPC_MoveChild, 1,
 
3842
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3843
                    OPC_MoveChild, 0,
 
3844
                    OPC_CheckOpcode, ISD::SRL,
 
3845
                    OPC_MoveChild, 0,
 
3846
                    OPC_CheckSame, 0,
 
3847
                    OPC_MoveParent,
 
3848
                    OPC_MoveChild, 1,
 
3849
                    OPC_CheckInteger, 8, 
 
3850
                    OPC_CheckType, MVT::i32,
 
3851
                    OPC_MoveParent,
 
3852
                    OPC_MoveParent,
 
3853
                    OPC_MoveParent,
 
3854
                    OPC_MoveParent,
 
3855
                    OPC_MoveChild, 1,
 
3856
                    OPC_CheckAndImm, 127|128,1, 
 
3857
                    OPC_MoveChild, 0,
 
3858
                    OPC_CheckOpcode, ISD::SRL,
 
3859
                    OPC_MoveChild, 0,
 
3860
                    OPC_CheckSame, 0,
 
3861
                    OPC_MoveParent,
 
3862
                    OPC_MoveChild, 1,
 
3863
                    OPC_CheckInteger, 8, 
 
3864
                    OPC_CheckType, MVT::i32,
 
3865
                    OPC_MoveParent,
 
3866
                    OPC_MoveParent,
 
3867
                    OPC_MoveParent,
 
3868
                    OPC_CheckType, MVT::i32,
 
3869
                    OPC_CheckPatternPredicate, 2,
 
3870
                    OPC_EmitInteger, MVT::i32, 14, 
 
3871
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3872
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3873
                        1, MVT::i32, 3, 0, 1, 2, 
 
3874
                  114, 
 
3875
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3876
                    OPC_MoveChild, 0,
 
3877
                    OPC_CheckOpcode, ISD::SRL,
 
3878
                    OPC_RecordChild0,
 
3879
                    OPC_MoveChild, 1,
 
3880
                    OPC_CheckInteger, 8, 
 
3881
                    OPC_CheckType, MVT::i32,
 
3882
                    OPC_MoveParent,
 
3883
                    OPC_MoveParent,
 
3884
                    OPC_MoveParent,
 
3885
                    OPC_MoveChild, 1,
 
3886
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3887
                    OPC_MoveChild, 0,
 
3888
                    OPC_CheckOpcode, ISD::SHL,
 
3889
                    OPC_MoveChild, 0,
 
3890
                    OPC_CheckSame, 0,
 
3891
                    OPC_MoveParent,
 
3892
                    OPC_MoveChild, 1,
 
3893
                    OPC_CheckInteger, 8, 
 
3894
                    OPC_CheckType, MVT::i32,
 
3895
                    OPC_MoveParent,
 
3896
                    OPC_MoveParent,
 
3897
                    OPC_MoveParent,
 
3898
                    OPC_MoveParent,
 
3899
                    OPC_MoveChild, 1,
 
3900
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3901
                    OPC_MoveChild, 0,
 
3902
                    OPC_CheckOpcode, ISD::SHL,
 
3903
                    OPC_MoveChild, 0,
 
3904
                    OPC_CheckSame, 0,
 
3905
                    OPC_MoveParent,
 
3906
                    OPC_MoveChild, 1,
 
3907
                    OPC_CheckInteger, 8, 
 
3908
                    OPC_CheckType, MVT::i32,
 
3909
                    OPC_MoveParent,
 
3910
                    OPC_MoveParent,
 
3911
                    OPC_MoveParent,
 
3912
                    OPC_MoveParent,
 
3913
                    OPC_MoveChild, 1,
 
3914
                    OPC_CheckAndImm, 127|128,1, 
 
3915
                    OPC_MoveChild, 0,
 
3916
                    OPC_CheckOpcode, ISD::SRL,
 
3917
                    OPC_MoveChild, 0,
 
3918
                    OPC_CheckSame, 0,
 
3919
                    OPC_MoveParent,
 
3920
                    OPC_MoveChild, 1,
 
3921
                    OPC_CheckInteger, 8, 
 
3922
                    OPC_CheckType, MVT::i32,
 
3923
                    OPC_MoveParent,
 
3924
                    OPC_MoveParent,
 
3925
                    OPC_MoveParent,
 
3926
                    OPC_CheckType, MVT::i32,
 
3927
                    OPC_CheckPatternPredicate, 2,
 
3928
                    OPC_EmitInteger, MVT::i32, 14, 
 
3929
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3930
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3931
                        1, MVT::i32, 3, 0, 1, 2, 
 
3932
                  114, 
 
3933
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3934
                    OPC_MoveChild, 0,
 
3935
                    OPC_CheckOpcode, ISD::SHL,
 
3936
                    OPC_RecordChild0,
 
3937
                    OPC_MoveChild, 1,
 
3938
                    OPC_CheckInteger, 8, 
 
3939
                    OPC_CheckType, MVT::i32,
 
3940
                    OPC_MoveParent,
 
3941
                    OPC_MoveParent,
 
3942
                    OPC_MoveParent,
 
3943
                    OPC_MoveChild, 1,
 
3944
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
3945
                    OPC_MoveChild, 0,
 
3946
                    OPC_CheckOpcode, ISD::SRL,
 
3947
                    OPC_MoveChild, 0,
 
3948
                    OPC_CheckSame, 0,
 
3949
                    OPC_MoveParent,
 
3950
                    OPC_MoveChild, 1,
 
3951
                    OPC_CheckInteger, 8, 
 
3952
                    OPC_CheckType, MVT::i32,
 
3953
                    OPC_MoveParent,
 
3954
                    OPC_MoveParent,
 
3955
                    OPC_MoveParent,
 
3956
                    OPC_MoveParent,
 
3957
                    OPC_MoveChild, 1,
 
3958
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
3959
                    OPC_MoveChild, 0,
 
3960
                    OPC_CheckOpcode, ISD::SHL,
 
3961
                    OPC_MoveChild, 0,
 
3962
                    OPC_CheckSame, 0,
 
3963
                    OPC_MoveParent,
 
3964
                    OPC_MoveChild, 1,
 
3965
                    OPC_CheckInteger, 8, 
 
3966
                    OPC_CheckType, MVT::i32,
 
3967
                    OPC_MoveParent,
 
3968
                    OPC_MoveParent,
 
3969
                    OPC_MoveParent,
 
3970
                    OPC_MoveParent,
 
3971
                    OPC_MoveChild, 1,
 
3972
                    OPC_CheckAndImm, 127|128,1, 
 
3973
                    OPC_MoveChild, 0,
 
3974
                    OPC_CheckOpcode, ISD::SRL,
 
3975
                    OPC_MoveChild, 0,
 
3976
                    OPC_CheckSame, 0,
 
3977
                    OPC_MoveParent,
 
3978
                    OPC_MoveChild, 1,
 
3979
                    OPC_CheckInteger, 8, 
 
3980
                    OPC_CheckType, MVT::i32,
 
3981
                    OPC_MoveParent,
 
3982
                    OPC_MoveParent,
 
3983
                    OPC_MoveParent,
 
3984
                    OPC_CheckType, MVT::i32,
 
3985
                    OPC_CheckPatternPredicate, 2,
 
3986
                    OPC_EmitInteger, MVT::i32, 14, 
 
3987
                    OPC_EmitRegister, MVT::i32, 0 ,
 
3988
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
3989
                        1, MVT::i32, 3, 0, 1, 2, 
 
3990
                  0, 
 
3991
                86|128,1, 
 
3992
                  OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
3993
                  OPC_MoveChild, 0,
 
3994
                  OPC_CheckOpcode, ISD::SHL,
 
3995
                  OPC_RecordChild0,
 
3996
                  OPC_MoveChild, 1,
 
3997
                  OPC_CheckInteger, 8, 
 
3998
                  OPC_CheckType, MVT::i32,
 
3999
                  OPC_MoveParent,
 
4000
                  OPC_MoveParent,
 
4001
                  OPC_MoveParent,
 
4002
                  OPC_MoveChild, 1,
 
4003
                  OPC_CheckOpcode, ISD::OR,
 
4004
                  OPC_MoveChild, 0,
 
4005
                  OPC_Scope, 92, 
 
4006
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
4007
                    OPC_MoveChild, 0,
 
4008
                    OPC_CheckOpcode, ISD::SHL,
 
4009
                    OPC_MoveChild, 0,
 
4010
                    OPC_CheckSame, 0,
 
4011
                    OPC_MoveParent,
 
4012
                    OPC_MoveChild, 1,
 
4013
                    OPC_CheckInteger, 8, 
 
4014
                    OPC_CheckType, MVT::i32,
 
4015
                    OPC_MoveParent,
 
4016
                    OPC_MoveParent,
 
4017
                    OPC_MoveParent,
 
4018
                    OPC_MoveChild, 1,
 
4019
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
4020
                    OPC_MoveChild, 0,
 
4021
                    OPC_CheckOpcode, ISD::SRL,
 
4022
                    OPC_MoveChild, 0,
 
4023
                    OPC_CheckSame, 0,
 
4024
                    OPC_MoveParent,
 
4025
                    OPC_MoveChild, 1,
 
4026
                    OPC_CheckInteger, 8, 
 
4027
                    OPC_CheckType, MVT::i32,
 
4028
                    OPC_MoveParent,
 
4029
                    OPC_MoveParent,
 
4030
                    OPC_MoveParent,
 
4031
                    OPC_MoveParent,
 
4032
                    OPC_MoveParent,
 
4033
                    OPC_MoveChild, 1,
 
4034
                    OPC_CheckAndImm, 127|128,1, 
 
4035
                    OPC_MoveChild, 0,
 
4036
                    OPC_CheckOpcode, ISD::SRL,
 
4037
                    OPC_MoveChild, 0,
 
4038
                    OPC_CheckSame, 0,
 
4039
                    OPC_MoveParent,
 
4040
                    OPC_MoveChild, 1,
 
4041
                    OPC_CheckInteger, 8, 
 
4042
                    OPC_CheckType, MVT::i32,
 
4043
                    OPC_MoveParent,
 
4044
                    OPC_MoveParent,
 
4045
                    OPC_MoveParent,
 
4046
                    OPC_CheckType, MVT::i32,
 
4047
                    OPC_CheckPatternPredicate, 2,
 
4048
                    OPC_EmitInteger, MVT::i32, 14, 
 
4049
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4050
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
4051
                        1, MVT::i32, 3, 0, 1, 2, 
 
4052
                  92, 
 
4053
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
4054
                    OPC_MoveChild, 0,
 
4055
                    OPC_CheckOpcode, ISD::SRL,
 
4056
                    OPC_MoveChild, 0,
 
4057
                    OPC_CheckSame, 0,
 
4058
                    OPC_MoveParent,
 
4059
                    OPC_MoveChild, 1,
 
4060
                    OPC_CheckInteger, 8, 
 
4061
                    OPC_CheckType, MVT::i32,
 
4062
                    OPC_MoveParent,
 
4063
                    OPC_MoveParent,
 
4064
                    OPC_MoveParent,
 
4065
                    OPC_MoveChild, 1,
 
4066
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
4067
                    OPC_MoveChild, 0,
 
4068
                    OPC_CheckOpcode, ISD::SHL,
 
4069
                    OPC_MoveChild, 0,
 
4070
                    OPC_CheckSame, 0,
 
4071
                    OPC_MoveParent,
 
4072
                    OPC_MoveChild, 1,
 
4073
                    OPC_CheckInteger, 8, 
 
4074
                    OPC_CheckType, MVT::i32,
 
4075
                    OPC_MoveParent,
 
4076
                    OPC_MoveParent,
 
4077
                    OPC_MoveParent,
 
4078
                    OPC_MoveParent,
 
4079
                    OPC_MoveParent,
 
4080
                    OPC_MoveChild, 1,
 
4081
                    OPC_CheckAndImm, 127|128,1, 
 
4082
                    OPC_MoveChild, 0,
 
4083
                    OPC_CheckOpcode, ISD::SRL,
 
4084
                    OPC_MoveChild, 0,
 
4085
                    OPC_CheckSame, 0,
 
4086
                    OPC_MoveParent,
 
4087
                    OPC_MoveChild, 1,
 
4088
                    OPC_CheckInteger, 8, 
 
4089
                    OPC_CheckType, MVT::i32,
 
4090
                    OPC_MoveParent,
 
4091
                    OPC_MoveParent,
 
4092
                    OPC_MoveParent,
 
4093
                    OPC_CheckType, MVT::i32,
 
4094
                    OPC_CheckPatternPredicate, 2,
 
4095
                    OPC_EmitInteger, MVT::i32, 14, 
 
4096
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4097
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
4098
                        1, MVT::i32, 3, 0, 1, 2, 
 
4099
                  0, 
 
4100
                87|128,1, 
 
4101
                  OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
4102
                  OPC_MoveChild, 0,
 
4103
                  OPC_CheckOpcode, ISD::SRL,
 
4104
                  OPC_RecordChild0,
 
4105
                  OPC_MoveChild, 1,
 
4106
                  OPC_CheckInteger, 8, 
 
4107
                  OPC_CheckType, MVT::i32,
 
4108
                  OPC_MoveParent,
 
4109
                  OPC_MoveParent,
 
4110
                  OPC_MoveParent,
 
4111
                  OPC_MoveChild, 1,
 
4112
                  OPC_CheckOpcode, ISD::OR,
 
4113
                  OPC_MoveChild, 0,
 
4114
                  OPC_Scope, 93, 
 
4115
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
4116
                    OPC_MoveChild, 0,
 
4117
                    OPC_CheckOpcode, ISD::SHL,
 
4118
                    OPC_MoveChild, 0,
 
4119
                    OPC_CheckSame, 0,
 
4120
                    OPC_MoveParent,
 
4121
                    OPC_MoveChild, 1,
 
4122
                    OPC_CheckInteger, 8, 
 
4123
                    OPC_CheckType, MVT::i32,
 
4124
                    OPC_MoveParent,
 
4125
                    OPC_MoveParent,
 
4126
                    OPC_MoveParent,
 
4127
                    OPC_MoveChild, 1,
 
4128
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
4129
                    OPC_MoveChild, 0,
 
4130
                    OPC_CheckOpcode, ISD::SHL,
 
4131
                    OPC_MoveChild, 0,
 
4132
                    OPC_CheckSame, 0,
 
4133
                    OPC_MoveParent,
 
4134
                    OPC_MoveChild, 1,
 
4135
                    OPC_CheckInteger, 8, 
 
4136
                    OPC_CheckType, MVT::i32,
 
4137
                    OPC_MoveParent,
 
4138
                    OPC_MoveParent,
 
4139
                    OPC_MoveParent,
 
4140
                    OPC_MoveParent,
 
4141
                    OPC_MoveParent,
 
4142
                    OPC_MoveChild, 1,
 
4143
                    OPC_CheckAndImm, 127|128,1, 
 
4144
                    OPC_MoveChild, 0,
 
4145
                    OPC_CheckOpcode, ISD::SRL,
 
4146
                    OPC_MoveChild, 0,
 
4147
                    OPC_CheckSame, 0,
 
4148
                    OPC_MoveParent,
 
4149
                    OPC_MoveChild, 1,
 
4150
                    OPC_CheckInteger, 8, 
 
4151
                    OPC_CheckType, MVT::i32,
 
4152
                    OPC_MoveParent,
 
4153
                    OPC_MoveParent,
 
4154
                    OPC_MoveParent,
 
4155
                    OPC_CheckType, MVT::i32,
 
4156
                    OPC_CheckPatternPredicate, 2,
 
4157
                    OPC_EmitInteger, MVT::i32, 14, 
 
4158
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4159
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
4160
                        1, MVT::i32, 3, 0, 1, 2, 
 
4161
                  93, 
 
4162
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
4163
                    OPC_MoveChild, 0,
 
4164
                    OPC_CheckOpcode, ISD::SHL,
 
4165
                    OPC_MoveChild, 0,
 
4166
                    OPC_CheckSame, 0,
 
4167
                    OPC_MoveParent,
 
4168
                    OPC_MoveChild, 1,
 
4169
                    OPC_CheckInteger, 8, 
 
4170
                    OPC_CheckType, MVT::i32,
 
4171
                    OPC_MoveParent,
 
4172
                    OPC_MoveParent,
 
4173
                    OPC_MoveParent,
 
4174
                    OPC_MoveChild, 1,
 
4175
                    OPC_CheckAndImm, 0|128,126|128,3, 
 
4176
                    OPC_MoveChild, 0,
 
4177
                    OPC_CheckOpcode, ISD::SHL,
 
4178
                    OPC_MoveChild, 0,
 
4179
                    OPC_CheckSame, 0,
 
4180
                    OPC_MoveParent,
 
4181
                    OPC_MoveChild, 1,
 
4182
                    OPC_CheckInteger, 8, 
 
4183
                    OPC_CheckType, MVT::i32,
 
4184
                    OPC_MoveParent,
 
4185
                    OPC_MoveParent,
 
4186
                    OPC_MoveParent,
 
4187
                    OPC_MoveParent,
 
4188
                    OPC_MoveParent,
 
4189
                    OPC_MoveChild, 1,
 
4190
                    OPC_CheckAndImm, 127|128,1, 
 
4191
                    OPC_MoveChild, 0,
 
4192
                    OPC_CheckOpcode, ISD::SRL,
 
4193
                    OPC_MoveChild, 0,
 
4194
                    OPC_CheckSame, 0,
 
4195
                    OPC_MoveParent,
 
4196
                    OPC_MoveChild, 1,
 
4197
                    OPC_CheckInteger, 8, 
 
4198
                    OPC_CheckType, MVT::i32,
 
4199
                    OPC_MoveParent,
 
4200
                    OPC_MoveParent,
 
4201
                    OPC_MoveParent,
 
4202
                    OPC_CheckType, MVT::i32,
 
4203
                    OPC_CheckPatternPredicate, 2,
 
4204
                    OPC_EmitInteger, MVT::i32, 14, 
 
4205
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4206
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
4207
                        1, MVT::i32, 3, 0, 1, 2, 
 
4208
                  0, 
 
4209
                88|128,1, 
 
4210
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
4211
                  OPC_MoveChild, 0,
 
4212
                  OPC_CheckOpcode, ISD::SHL,
 
4213
                  OPC_RecordChild0,
 
4214
                  OPC_MoveChild, 1,
 
4215
                  OPC_CheckInteger, 8, 
 
4216
                  OPC_CheckType, MVT::i32,
 
4217
                  OPC_MoveParent,
 
4218
                  OPC_MoveParent,
 
4219
                  OPC_MoveParent,
 
4220
                  OPC_MoveChild, 1,
 
4221
                  OPC_CheckOpcode, ISD::OR,
 
4222
                  OPC_MoveChild, 0,
 
4223
                  OPC_Scope, 94, 
 
4224
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
4225
                    OPC_MoveChild, 0,
 
4226
                    OPC_CheckOpcode, ISD::SRL,
 
4227
                    OPC_MoveChild, 0,
 
4228
                    OPC_CheckSame, 0,
 
4229
                    OPC_MoveParent,
 
4230
                    OPC_MoveChild, 1,
 
4231
                    OPC_CheckInteger, 8, 
 
4232
                    OPC_CheckType, MVT::i32,
 
4233
                    OPC_MoveParent,
 
4234
                    OPC_MoveParent,
 
4235
                    OPC_MoveParent,
 
4236
                    OPC_MoveChild, 1,
 
4237
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
4238
                    OPC_MoveChild, 0,
 
4239
                    OPC_CheckOpcode, ISD::SHL,
 
4240
                    OPC_MoveChild, 0,
 
4241
                    OPC_CheckSame, 0,
 
4242
                    OPC_MoveParent,
 
4243
                    OPC_MoveChild, 1,
 
4244
                    OPC_CheckInteger, 8, 
 
4245
                    OPC_CheckType, MVT::i32,
 
4246
                    OPC_MoveParent,
 
4247
                    OPC_MoveParent,
 
4248
                    OPC_MoveParent,
 
4249
                    OPC_MoveParent,
 
4250
                    OPC_MoveParent,
 
4251
                    OPC_MoveChild, 1,
 
4252
                    OPC_CheckAndImm, 127|128,1, 
 
4253
                    OPC_MoveChild, 0,
 
4254
                    OPC_CheckOpcode, ISD::SRL,
 
4255
                    OPC_MoveChild, 0,
 
4256
                    OPC_CheckSame, 0,
 
4257
                    OPC_MoveParent,
 
4258
                    OPC_MoveChild, 1,
 
4259
                    OPC_CheckInteger, 8, 
 
4260
                    OPC_CheckType, MVT::i32,
 
4261
                    OPC_MoveParent,
 
4262
                    OPC_MoveParent,
 
4263
                    OPC_MoveParent,
 
4264
                    OPC_CheckType, MVT::i32,
 
4265
                    OPC_CheckPatternPredicate, 2,
 
4266
                    OPC_EmitInteger, MVT::i32, 14, 
 
4267
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4268
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
4269
                        1, MVT::i32, 3, 0, 1, 2, 
 
4270
                  94, 
 
4271
                    OPC_CheckAndImm, 0|128,0|128,0|128,120|128,15, 
 
4272
                    OPC_MoveChild, 0,
 
4273
                    OPC_CheckOpcode, ISD::SHL,
 
4274
                    OPC_MoveChild, 0,
 
4275
                    OPC_CheckSame, 0,
 
4276
                    OPC_MoveParent,
 
4277
                    OPC_MoveChild, 1,
 
4278
                    OPC_CheckInteger, 8, 
 
4279
                    OPC_CheckType, MVT::i32,
 
4280
                    OPC_MoveParent,
 
4281
                    OPC_MoveParent,
 
4282
                    OPC_MoveParent,
 
4283
                    OPC_MoveChild, 1,
 
4284
                    OPC_CheckAndImm, 0|128,0|128,124|128,7, 
 
4285
                    OPC_MoveChild, 0,
 
4286
                    OPC_CheckOpcode, ISD::SRL,
 
4287
                    OPC_MoveChild, 0,
 
4288
                    OPC_CheckSame, 0,
 
4289
                    OPC_MoveParent,
 
4290
                    OPC_MoveChild, 1,
 
4291
                    OPC_CheckInteger, 8, 
 
4292
                    OPC_CheckType, MVT::i32,
 
4293
                    OPC_MoveParent,
 
4294
                    OPC_MoveParent,
 
4295
                    OPC_MoveParent,
 
4296
                    OPC_MoveParent,
 
4297
                    OPC_MoveParent,
 
4298
                    OPC_MoveChild, 1,
 
4299
                    OPC_CheckAndImm, 127|128,1, 
 
4300
                    OPC_MoveChild, 0,
 
4301
                    OPC_CheckOpcode, ISD::SRL,
 
4302
                    OPC_MoveChild, 0,
 
4303
                    OPC_CheckSame, 0,
 
4304
                    OPC_MoveParent,
 
4305
                    OPC_MoveChild, 1,
 
4306
                    OPC_CheckInteger, 8, 
 
4307
                    OPC_CheckType, MVT::i32,
 
4308
                    OPC_MoveParent,
 
4309
                    OPC_MoveParent,
 
4310
                    OPC_MoveParent,
 
4311
                    OPC_CheckType, MVT::i32,
 
4312
                    OPC_CheckPatternPredicate, 2,
 
4313
                    OPC_EmitInteger, MVT::i32, 14, 
 
4314
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4315
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV16), 0,
 
4316
                        1, MVT::i32, 3, 0, 1, 2, 
 
4317
                  0, 
 
4318
                0, 
 
4319
              20|128,1, 
 
4320
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4321
                OPC_RecordChild0,
 
4322
                OPC_MoveParent,
 
4323
                OPC_MoveChild, 1,
 
4324
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4325
                OPC_MoveChild, 0,
 
4326
                OPC_SwitchOpcode , 63,  ISD::SRA,
 
4327
                  OPC_RecordChild0,
 
4328
                  OPC_RecordChild1,
 
4329
                  OPC_MoveChild, 1,
 
4330
                  OPC_CheckOpcode, ISD::Constant,
 
4331
                  OPC_CheckPredicate, 0,
 
4332
                  OPC_CheckType, MVT::i32,
 
4333
                  OPC_MoveParent,
 
4334
                  OPC_MoveParent,
 
4335
                  OPC_MoveParent,
 
4336
                  OPC_CheckType, MVT::i32,
 
4337
                  OPC_Scope, 22, 
 
4338
                    OPC_CheckPatternPredicate, 0,
 
4339
                    OPC_EmitConvertToTarget, 2,
 
4340
                    OPC_EmitInteger, MVT::i32, 14, 
 
4341
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4342
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
 
4343
                        1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4344
                  22, 
 
4345
                    OPC_CheckPatternPredicate, 2,
 
4346
                    OPC_EmitConvertToTarget, 2,
 
4347
                    OPC_EmitInteger, MVT::i32, 14, 
 
4348
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4349
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
 
4350
                        1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4351
                  0, 
 
4352
                63,  ISD::SRL,
 
4353
                  OPC_RecordChild0,
 
4354
                  OPC_RecordChild1,
 
4355
                  OPC_MoveChild, 1,
 
4356
                  OPC_CheckOpcode, ISD::Constant,
 
4357
                  OPC_CheckPredicate, 1,
 
4358
                  OPC_CheckType, MVT::i32,
 
4359
                  OPC_MoveParent,
 
4360
                  OPC_MoveParent,
 
4361
                  OPC_MoveParent,
 
4362
                  OPC_CheckType, MVT::i32,
 
4363
                  OPC_Scope, 22, 
 
4364
                    OPC_CheckPatternPredicate, 0,
 
4365
                    OPC_EmitConvertToTarget, 2,
 
4366
                    OPC_EmitInteger, MVT::i32, 14, 
 
4367
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4368
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
 
4369
                        1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4370
                  22, 
 
4371
                    OPC_CheckPatternPredicate, 2,
 
4372
                    OPC_EmitConvertToTarget, 2,
 
4373
                    OPC_EmitInteger, MVT::i32, 14, 
 
4374
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4375
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
 
4376
                        1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4377
                  0, 
 
4378
                0, 
 
4379
              110|128,1, 
 
4380
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4381
                OPC_Scope, 26|128,1, 
 
4382
                  OPC_MoveChild, 0,
 
4383
                  OPC_SwitchOpcode , 73,  ISD::SRA,
 
4384
                    OPC_RecordChild0,
 
4385
                    OPC_RecordChild1,
 
4386
                    OPC_MoveChild, 1,
 
4387
                    OPC_CheckOpcode, ISD::Constant,
 
4388
                    OPC_CheckPredicate, 0,
 
4389
                    OPC_CheckType, MVT::i32,
 
4390
                    OPC_MoveParent,
 
4391
                    OPC_MoveParent,
 
4392
                    OPC_MoveParent,
 
4393
                    OPC_MoveChild, 1,
 
4394
                    OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4395
                    OPC_RecordChild0,
 
4396
                    OPC_MoveParent,
 
4397
                    OPC_CheckType, MVT::i32,
 
4398
                    OPC_Scope, 22, 
 
4399
                      OPC_CheckPatternPredicate, 0,
 
4400
                      OPC_EmitConvertToTarget, 1,
 
4401
                      OPC_EmitInteger, MVT::i32, 14, 
 
4402
                      OPC_EmitRegister, MVT::i32, 0 ,
 
4403
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
 
4404
                          1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4405
                    22, 
 
4406
                      OPC_CheckPatternPredicate, 2,
 
4407
                      OPC_EmitConvertToTarget, 1,
 
4408
                      OPC_EmitInteger, MVT::i32, 14, 
 
4409
                      OPC_EmitRegister, MVT::i32, 0 ,
 
4410
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
 
4411
                          1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4412
                    0, 
 
4413
                  73,  ISD::SRL,
 
4414
                    OPC_RecordChild0,
 
4415
                    OPC_RecordChild1,
 
4416
                    OPC_MoveChild, 1,
 
4417
                    OPC_CheckOpcode, ISD::Constant,
 
4418
                    OPC_CheckPredicate, 1,
 
4419
                    OPC_CheckType, MVT::i32,
 
4420
                    OPC_MoveParent,
 
4421
                    OPC_MoveParent,
 
4422
                    OPC_MoveParent,
 
4423
                    OPC_MoveChild, 1,
 
4424
                    OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4425
                    OPC_RecordChild0,
 
4426
                    OPC_MoveParent,
 
4427
                    OPC_CheckType, MVT::i32,
 
4428
                    OPC_Scope, 22, 
 
4429
                      OPC_CheckPatternPredicate, 2,
 
4430
                      OPC_EmitConvertToTarget, 1,
 
4431
                      OPC_EmitInteger, MVT::i32, 14, 
 
4432
                      OPC_EmitRegister, MVT::i32, 0 ,
 
4433
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
 
4434
                          1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4435
                    22, 
 
4436
                      OPC_CheckPatternPredicate, 0,
 
4437
                      OPC_EmitConvertToTarget, 1,
 
4438
                      OPC_EmitInteger, MVT::i32, 14, 
 
4439
                      OPC_EmitRegister, MVT::i32, 0 ,
 
4440
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
 
4441
                          1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4442
                    0, 
 
4443
                  0, 
 
4444
                75, 
 
4445
                  OPC_RecordChild0,
 
4446
                  OPC_MoveParent,
 
4447
                  OPC_MoveChild, 1,
 
4448
                  OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4449
                  OPC_MoveChild, 0,
 
4450
                  OPC_CheckOpcode, ISD::SHL,
 
4451
                  OPC_RecordChild0,
 
4452
                  OPC_RecordChild1,
 
4453
                  OPC_MoveChild, 1,
 
4454
                  OPC_CheckOpcode, ISD::Constant,
 
4455
                  OPC_CheckType, MVT::i32,
 
4456
                  OPC_MoveParent,
 
4457
                  OPC_MoveParent,
 
4458
                  OPC_MoveParent,
 
4459
                  OPC_CheckType, MVT::i32,
 
4460
                  OPC_Scope, 22, 
 
4461
                    OPC_CheckPatternPredicate, 0,
 
4462
                    OPC_EmitConvertToTarget, 2,
 
4463
                    OPC_EmitInteger, MVT::i32, 14, 
 
4464
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4465
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
 
4466
                        1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4467
                  22, 
 
4468
                    OPC_CheckPatternPredicate, 2,
 
4469
                    OPC_EmitConvertToTarget, 2,
 
4470
                    OPC_EmitInteger, MVT::i32, 14, 
 
4471
                    OPC_EmitRegister, MVT::i32, 0 ,
 
4472
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
 
4473
                        1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4474
                  0, 
 
4475
                0, 
 
4476
              79, 
 
4477
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4478
                OPC_MoveChild, 0,
 
4479
                OPC_CheckOpcode, ISD::SHL,
 
4480
                OPC_RecordChild0,
 
4481
                OPC_RecordChild1,
 
4482
                OPC_MoveChild, 1,
 
4483
                OPC_CheckOpcode, ISD::Constant,
 
4484
                OPC_CheckType, MVT::i32,
 
4485
                OPC_MoveParent,
 
4486
                OPC_MoveParent,
 
4487
                OPC_MoveParent,
 
4488
                OPC_MoveChild, 1,
 
4489
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4490
                OPC_RecordChild0,
 
4491
                OPC_MoveParent,
 
4492
                OPC_CheckType, MVT::i32,
 
4493
                OPC_Scope, 22, 
 
4494
                  OPC_CheckPatternPredicate, 0,
 
4495
                  OPC_EmitConvertToTarget, 1,
 
4496
                  OPC_EmitInteger, MVT::i32, 14, 
 
4497
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4498
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
 
4499
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4500
                22, 
 
4501
                  OPC_CheckPatternPredicate, 2,
 
4502
                  OPC_EmitConvertToTarget, 1,
 
4503
                  OPC_EmitInteger, MVT::i32, 14, 
 
4504
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4505
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
 
4506
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4507
                0, 
 
4508
              0, 
 
4509
            50, 
 
4510
              OPC_RecordChild0,
 
4511
              OPC_MoveChild, 1,
 
4512
              OPC_CheckOpcode, ISD::XOR,
 
4513
              OPC_RecordChild0,
 
4514
              OPC_MoveChild, 1,
 
4515
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
4516
              OPC_MoveParent,
 
4517
              OPC_MoveParent,
 
4518
              OPC_CheckType, MVT::i32,
 
4519
              OPC_CheckPatternPredicate, 2,
 
4520
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
4521
              OPC_EmitInteger, MVT::i32, 14, 
 
4522
              OPC_EmitRegister, MVT::i32, 0 ,
 
4523
              OPC_EmitRegister, MVT::i32, 0 ,
 
4524
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrs), 0,
 
4525
                  1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
4526
            115|128,14, 
 
4527
              OPC_MoveChild, 0,
 
4528
              OPC_Scope, 48, 
 
4529
                OPC_CheckOpcode, ISD::XOR,
 
4530
                OPC_RecordChild0,
 
4531
                OPC_MoveChild, 1,
 
4532
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
4533
                OPC_MoveParent,
 
4534
                OPC_MoveParent,
 
4535
                OPC_RecordChild1,
 
4536
                OPC_CheckType, MVT::i32,
 
4537
                OPC_CheckPatternPredicate, 2,
 
4538
                OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
4539
                OPC_EmitInteger, MVT::i32, 14, 
 
4540
                OPC_EmitRegister, MVT::i32, 0 ,
 
4541
                OPC_EmitRegister, MVT::i32, 0 ,
 
4542
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrs), 0,
 
4543
                    1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
4544
              41, 
 
4545
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4546
                OPC_RecordChild0,
 
4547
                OPC_MoveParent,
 
4548
                OPC_MoveChild, 1,
 
4549
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4550
                OPC_RecordChild0,
 
4551
                OPC_MoveParent,
 
4552
                OPC_CheckType, MVT::i32,
 
4553
                OPC_CheckPatternPredicate, 0,
 
4554
                OPC_EmitInteger, MVT::i32, 0, 
 
4555
                OPC_EmitInteger, MVT::i32, 14, 
 
4556
                OPC_EmitRegister, MVT::i32, 0 ,
 
4557
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
 
4558
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
4559
              46, 
 
4560
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4561
                OPC_RecordChild0,
 
4562
                OPC_MoveParent,
 
4563
                OPC_MoveChild, 1,
 
4564
                OPC_CheckOpcode, ISD::SRL,
 
4565
                OPC_RecordChild0,
 
4566
                OPC_MoveChild, 1,
 
4567
                OPC_CheckInteger, 16, 
 
4568
                OPC_CheckType, MVT::i32,
 
4569
                OPC_MoveParent,
 
4570
                OPC_MoveParent,
 
4571
                OPC_CheckType, MVT::i32,
 
4572
                OPC_CheckPatternPredicate, 0,
 
4573
                OPC_EmitInteger, MVT::i32, 16, 
 
4574
                OPC_EmitInteger, MVT::i32, 14, 
 
4575
                OPC_EmitRegister, MVT::i32, 0 ,
 
4576
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
 
4577
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
4578
              41, 
 
4579
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4580
                OPC_RecordChild0,
 
4581
                OPC_MoveParent,
 
4582
                OPC_MoveChild, 1,
 
4583
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4584
                OPC_RecordChild0,
 
4585
                OPC_MoveParent,
 
4586
                OPC_CheckType, MVT::i32,
 
4587
                OPC_CheckPatternPredicate, 2,
 
4588
                OPC_EmitInteger, MVT::i32, 0, 
 
4589
                OPC_EmitInteger, MVT::i32, 14, 
 
4590
                OPC_EmitRegister, MVT::i32, 0 ,
 
4591
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
 
4592
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
4593
              81, 
 
4594
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4595
                OPC_RecordChild0,
 
4596
                OPC_MoveParent,
 
4597
                OPC_MoveChild, 1,
 
4598
                OPC_Scope, 36, 
 
4599
                  OPC_CheckOpcode, ISD::SRL,
 
4600
                  OPC_RecordChild0,
 
4601
                  OPC_MoveChild, 1,
 
4602
                  OPC_CheckInteger, 16, 
 
4603
                  OPC_CheckType, MVT::i32,
 
4604
                  OPC_MoveParent,
 
4605
                  OPC_MoveParent,
 
4606
                  OPC_CheckType, MVT::i32,
 
4607
                  OPC_CheckPatternPredicate, 2,
 
4608
                  OPC_EmitInteger, MVT::i32, 16, 
 
4609
                  OPC_EmitInteger, MVT::i32, 14, 
 
4610
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4611
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
 
4612
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
4613
                31, 
 
4614
                  OPC_CheckAndImm, 127|128,127|128,3, 
 
4615
                  OPC_RecordChild0,
 
4616
                  OPC_MoveParent,
 
4617
                  OPC_CheckType, MVT::i32,
 
4618
                  OPC_CheckPatternPredicate, 2,
 
4619
                  OPC_EmitInteger, MVT::i32, 0, 
 
4620
                  OPC_EmitInteger, MVT::i32, 14, 
 
4621
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4622
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
 
4623
                      1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
4624
                0, 
 
4625
              46, 
 
4626
                OPC_CheckOpcode, ISD::SRL,
 
4627
                OPC_RecordChild0,
 
4628
                OPC_MoveChild, 1,
 
4629
                OPC_CheckInteger, 16, 
 
4630
                OPC_CheckType, MVT::i32,
 
4631
                OPC_MoveParent,
 
4632
                OPC_MoveParent,
 
4633
                OPC_MoveChild, 1,
 
4634
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4635
                OPC_RecordChild0,
 
4636
                OPC_MoveParent,
 
4637
                OPC_CheckType, MVT::i32,
 
4638
                OPC_CheckPatternPredicate, 2,
 
4639
                OPC_EmitInteger, MVT::i32, 16, 
 
4640
                OPC_EmitInteger, MVT::i32, 14, 
 
4641
                OPC_EmitRegister, MVT::i32, 0 ,
 
4642
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHTB), 0,
 
4643
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
4644
              41, 
 
4645
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4646
                OPC_RecordChild0,
 
4647
                OPC_MoveParent,
 
4648
                OPC_MoveChild, 1,
 
4649
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4650
                OPC_RecordChild0,
 
4651
                OPC_MoveParent,
 
4652
                OPC_CheckType, MVT::i32,
 
4653
                OPC_CheckPatternPredicate, 0,
 
4654
                OPC_EmitInteger, MVT::i32, 0, 
 
4655
                OPC_EmitInteger, MVT::i32, 14, 
 
4656
                OPC_EmitRegister, MVT::i32, 0 ,
 
4657
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
 
4658
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
4659
              46, 
 
4660
                OPC_CheckOpcode, ISD::SRL,
 
4661
                OPC_RecordChild0,
 
4662
                OPC_MoveChild, 1,
 
4663
                OPC_CheckInteger, 16, 
 
4664
                OPC_CheckType, MVT::i32,
 
4665
                OPC_MoveParent,
 
4666
                OPC_MoveParent,
 
4667
                OPC_MoveChild, 1,
 
4668
                OPC_CheckAndImm, 0|128,0|128,124|128,127|128,15, 
 
4669
                OPC_RecordChild0,
 
4670
                OPC_MoveParent,
 
4671
                OPC_CheckType, MVT::i32,
 
4672
                OPC_CheckPatternPredicate, 0,
 
4673
                OPC_EmitInteger, MVT::i32, 16, 
 
4674
                OPC_EmitInteger, MVT::i32, 14, 
 
4675
                OPC_EmitRegister, MVT::i32, 0 ,
 
4676
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHTB), 0,
 
4677
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
4678
              72, 
 
4679
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4680
                OPC_RecordChild0,
 
4681
                OPC_MoveParent,
 
4682
                OPC_MoveChild, 1,
 
4683
                OPC_CheckOpcode, ISD::SHL,
 
4684
                OPC_RecordChild0,
 
4685
                OPC_RecordChild1,
 
4686
                OPC_MoveChild, 1,
 
4687
                OPC_CheckOpcode, ISD::Constant,
 
4688
                OPC_CheckPredicate, 0,
 
4689
                OPC_CheckType, MVT::i32,
 
4690
                OPC_MoveParent,
 
4691
                OPC_MoveParent,
 
4692
                OPC_CheckType, MVT::i32,
 
4693
                OPC_Scope, 22, 
 
4694
                  OPC_CheckPatternPredicate, 0,
 
4695
                  OPC_EmitConvertToTarget, 2,
 
4696
                  OPC_EmitInteger, MVT::i32, 14, 
 
4697
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4698
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
 
4699
                      1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4700
                22, 
 
4701
                  OPC_CheckPatternPredicate, 2,
 
4702
                  OPC_EmitConvertToTarget, 2,
 
4703
                  OPC_EmitInteger, MVT::i32, 14, 
 
4704
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4705
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
 
4706
                      1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
4707
                0, 
 
4708
              72, 
 
4709
                OPC_CheckOpcode, ISD::SHL,
 
4710
                OPC_RecordChild0,
 
4711
                OPC_RecordChild1,
 
4712
                OPC_MoveChild, 1,
 
4713
                OPC_CheckOpcode, ISD::Constant,
 
4714
                OPC_CheckPredicate, 0,
 
4715
                OPC_CheckType, MVT::i32,
 
4716
                OPC_MoveParent,
 
4717
                OPC_MoveParent,
 
4718
                OPC_MoveChild, 1,
 
4719
                OPC_CheckAndImm, 127|128,127|128,3, 
 
4720
                OPC_RecordChild0,
 
4721
                OPC_MoveParent,
 
4722
                OPC_CheckType, MVT::i32,
 
4723
                OPC_Scope, 22, 
 
4724
                  OPC_CheckPatternPredicate, 2,
 
4725
                  OPC_EmitConvertToTarget, 1,
 
4726
                  OPC_EmitInteger, MVT::i32, 14, 
 
4727
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4728
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2PKHBT), 0,
 
4729
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4730
                22, 
 
4731
                  OPC_CheckPatternPredicate, 0,
 
4732
                  OPC_EmitConvertToTarget, 1,
 
4733
                  OPC_EmitInteger, MVT::i32, 14, 
 
4734
                  OPC_EmitRegister, MVT::i32, 0 ,
 
4735
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::PKHBT), 0,
 
4736
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
4737
                0, 
 
4738
              36|128,10, 
 
4739
                OPC_CheckOpcode, ISD::AND,
 
4740
                OPC_Scope, 9|128,4, 
 
4741
                  OPC_RecordChild0,
 
4742
                  OPC_Scope, 98|128,2, 
 
4743
                    OPC_RecordChild1,
 
4744
                    OPC_MoveParent,
 
4745
                    OPC_MoveChild, 1,
 
4746
                    OPC_CheckOpcode, ISD::AND,
 
4747
                    OPC_Scope, 103, 
 
4748
                      OPC_RecordChild0,
 
4749
                      OPC_MoveChild, 1,
 
4750
                      OPC_CheckOpcode, ISD::XOR,
 
4751
                      OPC_MoveChild, 0,
 
4752
                      OPC_Scope, 58, 
 
4753
                        OPC_CheckSame, 1,
 
4754
                        OPC_MoveParent,
 
4755
                        OPC_MoveChild, 1,
 
4756
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4757
                        OPC_CheckPredicate, 2,
 
4758
                        OPC_MoveParent,
 
4759
                        OPC_MoveParent,
 
4760
                        OPC_MoveParent,
 
4761
                        OPC_SwitchType , 20,  MVT::v2i32,
 
4762
                          OPC_CheckPatternPredicate, 3,
 
4763
                          OPC_EmitInteger, MVT::i32, 14, 
 
4764
                          OPC_EmitRegister, MVT::i32, 0 ,
 
4765
                          OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4766
                              1, MVT::v2i32, 5, 1, 0, 2, 3, 4, 
 
4767
                        20,  MVT::v4i32,
 
4768
                          OPC_CheckPatternPredicate, 3,
 
4769
                          OPC_EmitInteger, MVT::i32, 14, 
 
4770
                          OPC_EmitRegister, MVT::i32, 0 ,
 
4771
                          OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
4772
                              1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
4773
                        0, 
 
4774
                      34, 
 
4775
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4776
                        OPC_CheckPredicate, 2,
 
4777
                        OPC_MoveParent,
 
4778
                        OPC_MoveChild, 1,
 
4779
                        OPC_CheckSame, 1,
 
4780
                        OPC_MoveParent,
 
4781
                        OPC_MoveParent,
 
4782
                        OPC_MoveParent,
 
4783
                        OPC_CheckType, MVT::v2i32,
 
4784
                        OPC_CheckPatternPredicate, 3,
 
4785
                        OPC_EmitInteger, MVT::i32, 14, 
 
4786
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4787
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4788
                            1, MVT::v2i32, 5, 1, 0, 2, 3, 4, 
 
4789
                      0, 
 
4790
                    80, 
 
4791
                      OPC_MoveChild, 0,
 
4792
                      OPC_CheckOpcode, ISD::XOR,
 
4793
                      OPC_MoveChild, 0,
 
4794
                      OPC_Scope, 35, 
 
4795
                        OPC_CheckSame, 1,
 
4796
                        OPC_MoveParent,
 
4797
                        OPC_MoveChild, 1,
 
4798
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4799
                        OPC_CheckPredicate, 2,
 
4800
                        OPC_MoveParent,
 
4801
                        OPC_MoveParent,
 
4802
                        OPC_RecordChild1,
 
4803
                        OPC_MoveParent,
 
4804
                        OPC_CheckType, MVT::v2i32,
 
4805
                        OPC_CheckPatternPredicate, 3,
 
4806
                        OPC_EmitInteger, MVT::i32, 14, 
 
4807
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4808
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4809
                            1, MVT::v2i32, 5, 1, 0, 2, 3, 4, 
 
4810
                      35, 
 
4811
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4812
                        OPC_CheckPredicate, 2,
 
4813
                        OPC_MoveParent,
 
4814
                        OPC_MoveChild, 1,
 
4815
                        OPC_CheckSame, 1,
 
4816
                        OPC_MoveParent,
 
4817
                        OPC_MoveParent,
 
4818
                        OPC_RecordChild1,
 
4819
                        OPC_MoveParent,
 
4820
                        OPC_CheckType, MVT::v2i32,
 
4821
                        OPC_CheckPatternPredicate, 3,
 
4822
                        OPC_EmitInteger, MVT::i32, 14, 
 
4823
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4824
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4825
                            1, MVT::v2i32, 5, 1, 0, 2, 3, 4, 
 
4826
                      0, 
 
4827
                    79, 
 
4828
                      OPC_RecordChild0,
 
4829
                      OPC_MoveChild, 1,
 
4830
                      OPC_CheckOpcode, ISD::XOR,
 
4831
                      OPC_MoveChild, 0,
 
4832
                      OPC_Scope, 34, 
 
4833
                        OPC_CheckSame, 0,
 
4834
                        OPC_MoveParent,
 
4835
                        OPC_MoveChild, 1,
 
4836
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4837
                        OPC_CheckPredicate, 2,
 
4838
                        OPC_MoveParent,
 
4839
                        OPC_MoveParent,
 
4840
                        OPC_MoveParent,
 
4841
                        OPC_CheckType, MVT::v2i32,
 
4842
                        OPC_CheckPatternPredicate, 3,
 
4843
                        OPC_EmitInteger, MVT::i32, 14, 
 
4844
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4845
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4846
                            1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
4847
                      34, 
 
4848
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4849
                        OPC_CheckPredicate, 2,
 
4850
                        OPC_MoveParent,
 
4851
                        OPC_MoveChild, 1,
 
4852
                        OPC_CheckSame, 0,
 
4853
                        OPC_MoveParent,
 
4854
                        OPC_MoveParent,
 
4855
                        OPC_MoveParent,
 
4856
                        OPC_CheckType, MVT::v2i32,
 
4857
                        OPC_CheckPatternPredicate, 3,
 
4858
                        OPC_EmitInteger, MVT::i32, 14, 
 
4859
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4860
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4861
                            1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
4862
                      0, 
 
4863
                    80, 
 
4864
                      OPC_MoveChild, 0,
 
4865
                      OPC_CheckOpcode, ISD::XOR,
 
4866
                      OPC_MoveChild, 0,
 
4867
                      OPC_Scope, 35, 
 
4868
                        OPC_CheckSame, 0,
 
4869
                        OPC_MoveParent,
 
4870
                        OPC_MoveChild, 1,
 
4871
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4872
                        OPC_CheckPredicate, 2,
 
4873
                        OPC_MoveParent,
 
4874
                        OPC_MoveParent,
 
4875
                        OPC_RecordChild1,
 
4876
                        OPC_MoveParent,
 
4877
                        OPC_CheckType, MVT::v2i32,
 
4878
                        OPC_CheckPatternPredicate, 3,
 
4879
                        OPC_EmitInteger, MVT::i32, 14, 
 
4880
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4881
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4882
                            1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
4883
                      35, 
 
4884
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4885
                        OPC_CheckPredicate, 2,
 
4886
                        OPC_MoveParent,
 
4887
                        OPC_MoveChild, 1,
 
4888
                        OPC_CheckSame, 0,
 
4889
                        OPC_MoveParent,
 
4890
                        OPC_MoveParent,
 
4891
                        OPC_RecordChild1,
 
4892
                        OPC_MoveParent,
 
4893
                        OPC_CheckType, MVT::v2i32,
 
4894
                        OPC_CheckPatternPredicate, 3,
 
4895
                        OPC_EmitInteger, MVT::i32, 14, 
 
4896
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4897
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4898
                            1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
4899
                      0, 
 
4900
                    0, 
 
4901
                  32|128,1, 
 
4902
                    OPC_MoveChild, 1,
 
4903
                    OPC_CheckOpcode, ISD::XOR,
 
4904
                    OPC_Scope, 76, 
 
4905
                      OPC_RecordChild0,
 
4906
                      OPC_MoveChild, 1,
 
4907
                      OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4908
                      OPC_CheckPredicate, 2,
 
4909
                      OPC_MoveParent,
 
4910
                      OPC_MoveParent,
 
4911
                      OPC_MoveParent,
 
4912
                      OPC_MoveChild, 1,
 
4913
                      OPC_CheckOpcode, ISD::AND,
 
4914
                      OPC_Scope, 29, 
 
4915
                        OPC_RecordChild0,
 
4916
                        OPC_MoveChild, 1,
 
4917
                        OPC_CheckSame, 1,
 
4918
                        OPC_MoveParent,
 
4919
                        OPC_MoveParent,
 
4920
                        OPC_CheckType, MVT::v2i32,
 
4921
                        OPC_CheckPatternPredicate, 3,
 
4922
                        OPC_EmitInteger, MVT::i32, 14, 
 
4923
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4924
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4925
                            1, MVT::v2i32, 5, 1, 2, 0, 3, 4, 
 
4926
                      29, 
 
4927
                        OPC_MoveChild, 0,
 
4928
                        OPC_CheckSame, 1,
 
4929
                        OPC_MoveParent,
 
4930
                        OPC_RecordChild1,
 
4931
                        OPC_MoveParent,
 
4932
                        OPC_CheckType, MVT::v2i32,
 
4933
                        OPC_CheckPatternPredicate, 3,
 
4934
                        OPC_EmitInteger, MVT::i32, 14, 
 
4935
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4936
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4937
                            1, MVT::v2i32, 5, 1, 2, 0, 3, 4, 
 
4938
                      0, 
 
4939
                    76, 
 
4940
                      OPC_MoveChild, 0,
 
4941
                      OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4942
                      OPC_CheckPredicate, 2,
 
4943
                      OPC_MoveParent,
 
4944
                      OPC_RecordChild1,
 
4945
                      OPC_MoveParent,
 
4946
                      OPC_MoveParent,
 
4947
                      OPC_MoveChild, 1,
 
4948
                      OPC_CheckOpcode, ISD::AND,
 
4949
                      OPC_Scope, 29, 
 
4950
                        OPC_RecordChild0,
 
4951
                        OPC_MoveChild, 1,
 
4952
                        OPC_CheckSame, 1,
 
4953
                        OPC_MoveParent,
 
4954
                        OPC_MoveParent,
 
4955
                        OPC_CheckType, MVT::v2i32,
 
4956
                        OPC_CheckPatternPredicate, 3,
 
4957
                        OPC_EmitInteger, MVT::i32, 14, 
 
4958
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4959
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4960
                            1, MVT::v2i32, 5, 1, 2, 0, 3, 4, 
 
4961
                      29, 
 
4962
                        OPC_MoveChild, 0,
 
4963
                        OPC_CheckSame, 1,
 
4964
                        OPC_MoveParent,
 
4965
                        OPC_RecordChild1,
 
4966
                        OPC_MoveParent,
 
4967
                        OPC_CheckType, MVT::v2i32,
 
4968
                        OPC_CheckPatternPredicate, 3,
 
4969
                        OPC_EmitInteger, MVT::i32, 14, 
 
4970
                        OPC_EmitRegister, MVT::i32, 0 ,
 
4971
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
4972
                            1, MVT::v2i32, 5, 1, 2, 0, 3, 4, 
 
4973
                      0, 
 
4974
                    0, 
 
4975
                  0, 
 
4976
                34|128,1, 
 
4977
                  OPC_MoveChild, 0,
 
4978
                  OPC_CheckOpcode, ISD::XOR,
 
4979
                  OPC_Scope, 77, 
 
4980
                    OPC_RecordChild0,
 
4981
                    OPC_MoveChild, 1,
 
4982
                    OPC_CheckOpcode, ISD::BIT_CONVERT,
 
4983
                    OPC_CheckPredicate, 2,
 
4984
                    OPC_MoveParent,
 
4985
                    OPC_MoveParent,
 
4986
                    OPC_RecordChild1,
 
4987
                    OPC_MoveParent,
 
4988
                    OPC_MoveChild, 1,
 
4989
                    OPC_CheckOpcode, ISD::AND,
 
4990
                    OPC_Scope, 29, 
 
4991
                      OPC_RecordChild0,
 
4992
                      OPC_MoveChild, 1,
 
4993
                      OPC_CheckSame, 0,
 
4994
                      OPC_MoveParent,
 
4995
                      OPC_MoveParent,
 
4996
                      OPC_CheckType, MVT::v2i32,
 
4997
                      OPC_CheckPatternPredicate, 3,
 
4998
                      OPC_EmitInteger, MVT::i32, 14, 
 
4999
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5000
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
5001
                          1, MVT::v2i32, 5, 0, 2, 1, 3, 4, 
 
5002
                    29, 
 
5003
                      OPC_MoveChild, 0,
 
5004
                      OPC_CheckSame, 0,
 
5005
                      OPC_MoveParent,
 
5006
                      OPC_RecordChild1,
 
5007
                      OPC_MoveParent,
 
5008
                      OPC_CheckType, MVT::v2i32,
 
5009
                      OPC_CheckPatternPredicate, 3,
 
5010
                      OPC_EmitInteger, MVT::i32, 14, 
 
5011
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5012
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
5013
                          1, MVT::v2i32, 5, 0, 2, 1, 3, 4, 
 
5014
                    0, 
 
5015
                  77, 
 
5016
                    OPC_MoveChild, 0,
 
5017
                    OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5018
                    OPC_CheckPredicate, 2,
 
5019
                    OPC_MoveParent,
 
5020
                    OPC_RecordChild1,
 
5021
                    OPC_MoveParent,
 
5022
                    OPC_RecordChild1,
 
5023
                    OPC_MoveParent,
 
5024
                    OPC_MoveChild, 1,
 
5025
                    OPC_CheckOpcode, ISD::AND,
 
5026
                    OPC_Scope, 29, 
 
5027
                      OPC_RecordChild0,
 
5028
                      OPC_MoveChild, 1,
 
5029
                      OPC_CheckSame, 0,
 
5030
                      OPC_MoveParent,
 
5031
                      OPC_MoveParent,
 
5032
                      OPC_CheckType, MVT::v2i32,
 
5033
                      OPC_CheckPatternPredicate, 3,
 
5034
                      OPC_EmitInteger, MVT::i32, 14, 
 
5035
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5036
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
5037
                          1, MVT::v2i32, 5, 0, 2, 1, 3, 4, 
 
5038
                    29, 
 
5039
                      OPC_MoveChild, 0,
 
5040
                      OPC_CheckSame, 0,
 
5041
                      OPC_MoveParent,
 
5042
                      OPC_RecordChild1,
 
5043
                      OPC_MoveParent,
 
5044
                      OPC_CheckType, MVT::v2i32,
 
5045
                      OPC_CheckPatternPredicate, 3,
 
5046
                      OPC_EmitInteger, MVT::i32, 14, 
 
5047
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5048
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLd), 0,
 
5049
                          1, MVT::v2i32, 5, 0, 2, 1, 3, 4, 
 
5050
                    0, 
 
5051
                  0, 
 
5052
                75|128,3, 
 
5053
                  OPC_RecordChild0,
 
5054
                  OPC_Scope, 36|128,2, 
 
5055
                    OPC_RecordChild1,
 
5056
                    OPC_MoveParent,
 
5057
                    OPC_MoveChild, 1,
 
5058
                    OPC_CheckOpcode, ISD::AND,
 
5059
                    OPC_Scope, 41, 
 
5060
                      OPC_RecordChild0,
 
5061
                      OPC_MoveChild, 1,
 
5062
                      OPC_CheckOpcode, ISD::XOR,
 
5063
                      OPC_MoveChild, 0,
 
5064
                      OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5065
                      OPC_CheckPredicate, 2,
 
5066
                      OPC_MoveParent,
 
5067
                      OPC_MoveChild, 1,
 
5068
                      OPC_CheckSame, 1,
 
5069
                      OPC_MoveParent,
 
5070
                      OPC_MoveParent,
 
5071
                      OPC_MoveParent,
 
5072
                      OPC_CheckType, MVT::v4i32,
 
5073
                      OPC_CheckPatternPredicate, 3,
 
5074
                      OPC_EmitInteger, MVT::i32, 14, 
 
5075
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5076
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5077
                          1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
5078
                    80, 
 
5079
                      OPC_MoveChild, 0,
 
5080
                      OPC_CheckOpcode, ISD::XOR,
 
5081
                      OPC_MoveChild, 0,
 
5082
                      OPC_Scope, 35, 
 
5083
                        OPC_CheckSame, 1,
 
5084
                        OPC_MoveParent,
 
5085
                        OPC_MoveChild, 1,
 
5086
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5087
                        OPC_CheckPredicate, 2,
 
5088
                        OPC_MoveParent,
 
5089
                        OPC_MoveParent,
 
5090
                        OPC_RecordChild1,
 
5091
                        OPC_MoveParent,
 
5092
                        OPC_CheckType, MVT::v4i32,
 
5093
                        OPC_CheckPatternPredicate, 3,
 
5094
                        OPC_EmitInteger, MVT::i32, 14, 
 
5095
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5096
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5097
                            1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
5098
                      35, 
 
5099
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5100
                        OPC_CheckPredicate, 2,
 
5101
                        OPC_MoveParent,
 
5102
                        OPC_MoveChild, 1,
 
5103
                        OPC_CheckSame, 1,
 
5104
                        OPC_MoveParent,
 
5105
                        OPC_MoveParent,
 
5106
                        OPC_RecordChild1,
 
5107
                        OPC_MoveParent,
 
5108
                        OPC_CheckType, MVT::v4i32,
 
5109
                        OPC_CheckPatternPredicate, 3,
 
5110
                        OPC_EmitInteger, MVT::i32, 14, 
 
5111
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5112
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5113
                            1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
5114
                      0, 
 
5115
                    79, 
 
5116
                      OPC_RecordChild0,
 
5117
                      OPC_MoveChild, 1,
 
5118
                      OPC_CheckOpcode, ISD::XOR,
 
5119
                      OPC_MoveChild, 0,
 
5120
                      OPC_Scope, 34, 
 
5121
                        OPC_CheckSame, 0,
 
5122
                        OPC_MoveParent,
 
5123
                        OPC_MoveChild, 1,
 
5124
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5125
                        OPC_CheckPredicate, 2,
 
5126
                        OPC_MoveParent,
 
5127
                        OPC_MoveParent,
 
5128
                        OPC_MoveParent,
 
5129
                        OPC_CheckType, MVT::v4i32,
 
5130
                        OPC_CheckPatternPredicate, 3,
 
5131
                        OPC_EmitInteger, MVT::i32, 14, 
 
5132
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5133
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5134
                            1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
5135
                      34, 
 
5136
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5137
                        OPC_CheckPredicate, 2,
 
5138
                        OPC_MoveParent,
 
5139
                        OPC_MoveChild, 1,
 
5140
                        OPC_CheckSame, 0,
 
5141
                        OPC_MoveParent,
 
5142
                        OPC_MoveParent,
 
5143
                        OPC_MoveParent,
 
5144
                        OPC_CheckType, MVT::v4i32,
 
5145
                        OPC_CheckPatternPredicate, 3,
 
5146
                        OPC_EmitInteger, MVT::i32, 14, 
 
5147
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5148
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5149
                            1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
5150
                      0, 
 
5151
                    80, 
 
5152
                      OPC_MoveChild, 0,
 
5153
                      OPC_CheckOpcode, ISD::XOR,
 
5154
                      OPC_MoveChild, 0,
 
5155
                      OPC_Scope, 35, 
 
5156
                        OPC_CheckSame, 0,
 
5157
                        OPC_MoveParent,
 
5158
                        OPC_MoveChild, 1,
 
5159
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5160
                        OPC_CheckPredicate, 2,
 
5161
                        OPC_MoveParent,
 
5162
                        OPC_MoveParent,
 
5163
                        OPC_RecordChild1,
 
5164
                        OPC_MoveParent,
 
5165
                        OPC_CheckType, MVT::v4i32,
 
5166
                        OPC_CheckPatternPredicate, 3,
 
5167
                        OPC_EmitInteger, MVT::i32, 14, 
 
5168
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5169
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5170
                            1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
5171
                      35, 
 
5172
                        OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5173
                        OPC_CheckPredicate, 2,
 
5174
                        OPC_MoveParent,
 
5175
                        OPC_MoveChild, 1,
 
5176
                        OPC_CheckSame, 0,
 
5177
                        OPC_MoveParent,
 
5178
                        OPC_MoveParent,
 
5179
                        OPC_RecordChild1,
 
5180
                        OPC_MoveParent,
 
5181
                        OPC_CheckType, MVT::v4i32,
 
5182
                        OPC_CheckPatternPredicate, 3,
 
5183
                        OPC_EmitInteger, MVT::i32, 14, 
 
5184
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5185
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5186
                            1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
5187
                      0, 
 
5188
                    0, 
 
5189
                  32|128,1, 
 
5190
                    OPC_MoveChild, 1,
 
5191
                    OPC_CheckOpcode, ISD::XOR,
 
5192
                    OPC_Scope, 76, 
 
5193
                      OPC_RecordChild0,
 
5194
                      OPC_MoveChild, 1,
 
5195
                      OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5196
                      OPC_CheckPredicate, 2,
 
5197
                      OPC_MoveParent,
 
5198
                      OPC_MoveParent,
 
5199
                      OPC_MoveParent,
 
5200
                      OPC_MoveChild, 1,
 
5201
                      OPC_CheckOpcode, ISD::AND,
 
5202
                      OPC_Scope, 29, 
 
5203
                        OPC_RecordChild0,
 
5204
                        OPC_MoveChild, 1,
 
5205
                        OPC_CheckSame, 1,
 
5206
                        OPC_MoveParent,
 
5207
                        OPC_MoveParent,
 
5208
                        OPC_CheckType, MVT::v4i32,
 
5209
                        OPC_CheckPatternPredicate, 3,
 
5210
                        OPC_EmitInteger, MVT::i32, 14, 
 
5211
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5212
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5213
                            1, MVT::v4i32, 5, 1, 2, 0, 3, 4, 
 
5214
                      29, 
 
5215
                        OPC_MoveChild, 0,
 
5216
                        OPC_CheckSame, 1,
 
5217
                        OPC_MoveParent,
 
5218
                        OPC_RecordChild1,
 
5219
                        OPC_MoveParent,
 
5220
                        OPC_CheckType, MVT::v4i32,
 
5221
                        OPC_CheckPatternPredicate, 3,
 
5222
                        OPC_EmitInteger, MVT::i32, 14, 
 
5223
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5224
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5225
                            1, MVT::v4i32, 5, 1, 2, 0, 3, 4, 
 
5226
                      0, 
 
5227
                    76, 
 
5228
                      OPC_MoveChild, 0,
 
5229
                      OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5230
                      OPC_CheckPredicate, 2,
 
5231
                      OPC_MoveParent,
 
5232
                      OPC_RecordChild1,
 
5233
                      OPC_MoveParent,
 
5234
                      OPC_MoveParent,
 
5235
                      OPC_MoveChild, 1,
 
5236
                      OPC_CheckOpcode, ISD::AND,
 
5237
                      OPC_Scope, 29, 
 
5238
                        OPC_RecordChild0,
 
5239
                        OPC_MoveChild, 1,
 
5240
                        OPC_CheckSame, 1,
 
5241
                        OPC_MoveParent,
 
5242
                        OPC_MoveParent,
 
5243
                        OPC_CheckType, MVT::v4i32,
 
5244
                        OPC_CheckPatternPredicate, 3,
 
5245
                        OPC_EmitInteger, MVT::i32, 14, 
 
5246
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5247
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5248
                            1, MVT::v4i32, 5, 1, 2, 0, 3, 4, 
 
5249
                      29, 
 
5250
                        OPC_MoveChild, 0,
 
5251
                        OPC_CheckSame, 1,
 
5252
                        OPC_MoveParent,
 
5253
                        OPC_RecordChild1,
 
5254
                        OPC_MoveParent,
 
5255
                        OPC_CheckType, MVT::v4i32,
 
5256
                        OPC_CheckPatternPredicate, 3,
 
5257
                        OPC_EmitInteger, MVT::i32, 14, 
 
5258
                        OPC_EmitRegister, MVT::i32, 0 ,
 
5259
                        OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5260
                            1, MVT::v4i32, 5, 1, 2, 0, 3, 4, 
 
5261
                      0, 
 
5262
                    0, 
 
5263
                  0, 
 
5264
                34|128,1, 
 
5265
                  OPC_MoveChild, 0,
 
5266
                  OPC_CheckOpcode, ISD::XOR,
 
5267
                  OPC_Scope, 77, 
 
5268
                    OPC_RecordChild0,
 
5269
                    OPC_MoveChild, 1,
 
5270
                    OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5271
                    OPC_CheckPredicate, 2,
 
5272
                    OPC_MoveParent,
 
5273
                    OPC_MoveParent,
 
5274
                    OPC_RecordChild1,
 
5275
                    OPC_MoveParent,
 
5276
                    OPC_MoveChild, 1,
 
5277
                    OPC_CheckOpcode, ISD::AND,
 
5278
                    OPC_Scope, 29, 
 
5279
                      OPC_RecordChild0,
 
5280
                      OPC_MoveChild, 1,
 
5281
                      OPC_CheckSame, 0,
 
5282
                      OPC_MoveParent,
 
5283
                      OPC_MoveParent,
 
5284
                      OPC_CheckType, MVT::v4i32,
 
5285
                      OPC_CheckPatternPredicate, 3,
 
5286
                      OPC_EmitInteger, MVT::i32, 14, 
 
5287
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5288
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5289
                          1, MVT::v4i32, 5, 0, 2, 1, 3, 4, 
 
5290
                    29, 
 
5291
                      OPC_MoveChild, 0,
 
5292
                      OPC_CheckSame, 0,
 
5293
                      OPC_MoveParent,
 
5294
                      OPC_RecordChild1,
 
5295
                      OPC_MoveParent,
 
5296
                      OPC_CheckType, MVT::v4i32,
 
5297
                      OPC_CheckPatternPredicate, 3,
 
5298
                      OPC_EmitInteger, MVT::i32, 14, 
 
5299
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5300
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5301
                          1, MVT::v4i32, 5, 0, 2, 1, 3, 4, 
 
5302
                    0, 
 
5303
                  77, 
 
5304
                    OPC_MoveChild, 0,
 
5305
                    OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5306
                    OPC_CheckPredicate, 2,
 
5307
                    OPC_MoveParent,
 
5308
                    OPC_RecordChild1,
 
5309
                    OPC_MoveParent,
 
5310
                    OPC_RecordChild1,
 
5311
                    OPC_MoveParent,
 
5312
                    OPC_MoveChild, 1,
 
5313
                    OPC_CheckOpcode, ISD::AND,
 
5314
                    OPC_Scope, 29, 
 
5315
                      OPC_RecordChild0,
 
5316
                      OPC_MoveChild, 1,
 
5317
                      OPC_CheckSame, 0,
 
5318
                      OPC_MoveParent,
 
5319
                      OPC_MoveParent,
 
5320
                      OPC_CheckType, MVT::v4i32,
 
5321
                      OPC_CheckPatternPredicate, 3,
 
5322
                      OPC_EmitInteger, MVT::i32, 14, 
 
5323
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5324
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5325
                          1, MVT::v4i32, 5, 0, 2, 1, 3, 4, 
 
5326
                    29, 
 
5327
                      OPC_MoveChild, 0,
 
5328
                      OPC_CheckSame, 0,
 
5329
                      OPC_MoveParent,
 
5330
                      OPC_RecordChild1,
 
5331
                      OPC_MoveParent,
 
5332
                      OPC_CheckType, MVT::v4i32,
 
5333
                      OPC_CheckPatternPredicate, 3,
 
5334
                      OPC_EmitInteger, MVT::i32, 14, 
 
5335
                      OPC_EmitRegister, MVT::i32, 0 ,
 
5336
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBSLq), 0,
 
5337
                          1, MVT::v4i32, 5, 0, 2, 1, 3, 4, 
 
5338
                    0, 
 
5339
                  0, 
 
5340
                0, 
 
5341
              40, 
 
5342
                OPC_CheckAndImm, 127|128,127|128,3, 
 
5343
                OPC_RecordChild0,
 
5344
                OPC_MoveParent,
 
5345
                OPC_RecordChild1,
 
5346
                OPC_MoveChild, 1,
 
5347
                OPC_CheckOpcode, ISD::Constant,
 
5348
                OPC_CheckPredicate, 3,
 
5349
                OPC_MoveParent,
 
5350
                OPC_CheckType, MVT::i32,
 
5351
                OPC_CheckPatternPredicate, 4,
 
5352
                OPC_EmitConvertToTarget, 1,
 
5353
                OPC_EmitNodeXForm, 0, 2,
 
5354
                OPC_EmitInteger, MVT::i32, 14, 
 
5355
                OPC_EmitRegister, MVT::i32, 0 ,
 
5356
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVTi16), 0,
 
5357
                    1, MVT::i32, 4, 0, 3, 4, 5, 
 
5358
              0, 
 
5359
            32, 
 
5360
              OPC_RecordChild0,
 
5361
              OPC_RecordChild1,
 
5362
              OPC_CheckType, MVT::i32,
 
5363
              OPC_CheckPatternPredicate, 5,
 
5364
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
5365
              OPC_EmitInteger, MVT::i32, 14, 
 
5366
              OPC_EmitRegister, MVT::i32, 0 ,
 
5367
              OPC_EmitRegister, MVT::i32, 0 ,
 
5368
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRrs), 0,
 
5369
                  1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
5370
            42, 
 
5371
              OPC_MoveChild, 0,
 
5372
              OPC_CheckAndImm, 127|128,127|128,3, 
 
5373
              OPC_RecordChild0,
 
5374
              OPC_MoveParent,
 
5375
              OPC_RecordChild1,
 
5376
              OPC_MoveChild, 1,
 
5377
              OPC_CheckOpcode, ISD::Constant,
 
5378
              OPC_CheckPredicate, 3,
 
5379
              OPC_MoveParent,
 
5380
              OPC_CheckType, MVT::i32,
 
5381
              OPC_CheckPatternPredicate, 2,
 
5382
              OPC_EmitConvertToTarget, 1,
 
5383
              OPC_EmitNodeXForm, 0, 2,
 
5384
              OPC_EmitInteger, MVT::i32, 14, 
 
5385
              OPC_EmitRegister, MVT::i32, 0 ,
 
5386
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVTi16), 0,
 
5387
                  1, MVT::i32, 4, 0, 3, 4, 5, 
 
5388
            17|128,1, 
 
5389
              OPC_RecordChild0,
 
5390
              OPC_Scope, 54, 
 
5391
                OPC_MoveChild, 1,
 
5392
                OPC_CheckOpcode, ISD::XOR,
 
5393
                OPC_RecordChild0,
 
5394
                OPC_MoveChild, 0,
 
5395
                OPC_CheckOpcode, ISD::Constant,
 
5396
                OPC_CheckPredicate, 4,
 
5397
                OPC_MoveParent,
 
5398
                OPC_MoveChild, 1,
 
5399
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
5400
                OPC_MoveParent,
 
5401
                OPC_MoveParent,
 
5402
                OPC_CheckType, MVT::i32,
 
5403
                OPC_CheckPatternPredicate, 2,
 
5404
                OPC_EmitConvertToTarget, 1,
 
5405
                OPC_EmitInteger, MVT::i32, 14, 
 
5406
                OPC_EmitRegister, MVT::i32, 0 ,
 
5407
                OPC_EmitRegister, MVT::i32, 0 ,
 
5408
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
 
5409
                    1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
5410
              31, 
 
5411
                OPC_RecordChild1,
 
5412
                OPC_CheckType, MVT::i32,
 
5413
                OPC_CheckPatternPredicate, 5,
 
5414
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
5415
                OPC_EmitInteger, MVT::i32, 14, 
 
5416
                OPC_EmitRegister, MVT::i32, 0 ,
 
5417
                OPC_EmitRegister, MVT::i32, 0 ,
 
5418
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRrs), 0,
 
5419
                    1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
5420
              54, 
 
5421
                OPC_MoveChild, 1,
 
5422
                OPC_CheckOpcode, ISD::XOR,
 
5423
                OPC_MoveChild, 0,
 
5424
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
5425
                OPC_MoveParent,
 
5426
                OPC_RecordChild1,
 
5427
                OPC_MoveChild, 1,
 
5428
                OPC_CheckOpcode, ISD::Constant,
 
5429
                OPC_CheckPredicate, 4,
 
5430
                OPC_MoveParent,
 
5431
                OPC_MoveParent,
 
5432
                OPC_CheckType, MVT::i32,
 
5433
                OPC_CheckPatternPredicate, 2,
 
5434
                OPC_EmitConvertToTarget, 1,
 
5435
                OPC_EmitInteger, MVT::i32, 14, 
 
5436
                OPC_EmitRegister, MVT::i32, 0 ,
 
5437
                OPC_EmitRegister, MVT::i32, 0 ,
 
5438
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
 
5439
                    1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
5440
              0, 
 
5441
            110, 
 
5442
              OPC_MoveChild, 0,
 
5443
              OPC_CheckOpcode, ISD::XOR,
 
5444
              OPC_Scope, 51, 
 
5445
                OPC_RecordChild0,
 
5446
                OPC_MoveChild, 0,
 
5447
                OPC_CheckOpcode, ISD::Constant,
 
5448
                OPC_CheckPredicate, 4,
 
5449
                OPC_MoveParent,
 
5450
                OPC_MoveChild, 1,
 
5451
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
5452
                OPC_MoveParent,
 
5453
                OPC_MoveParent,
 
5454
                OPC_RecordChild1,
 
5455
                OPC_CheckType, MVT::i32,
 
5456
                OPC_CheckPatternPredicate, 2,
 
5457
                OPC_EmitConvertToTarget, 0,
 
5458
                OPC_EmitInteger, MVT::i32, 14, 
 
5459
                OPC_EmitRegister, MVT::i32, 0 ,
 
5460
                OPC_EmitRegister, MVT::i32, 0 ,
 
5461
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
 
5462
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
5463
              51, 
 
5464
                OPC_MoveChild, 0,
 
5465
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
5466
                OPC_MoveParent,
 
5467
                OPC_RecordChild1,
 
5468
                OPC_MoveChild, 1,
 
5469
                OPC_CheckOpcode, ISD::Constant,
 
5470
                OPC_CheckPredicate, 4,
 
5471
                OPC_MoveParent,
 
5472
                OPC_MoveParent,
 
5473
                OPC_RecordChild1,
 
5474
                OPC_CheckType, MVT::i32,
 
5475
                OPC_CheckPatternPredicate, 2,
 
5476
                OPC_EmitConvertToTarget, 0,
 
5477
                OPC_EmitInteger, MVT::i32, 14, 
 
5478
                OPC_EmitRegister, MVT::i32, 0 ,
 
5479
                OPC_EmitRegister, MVT::i32, 0 ,
 
5480
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
 
5481
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
5482
              0, 
 
5483
            109, 
 
5484
              OPC_RecordChild0,
 
5485
              OPC_Scope, 59, 
 
5486
                OPC_RecordChild1,
 
5487
                OPC_CheckType, MVT::i32,
 
5488
                OPC_CheckPatternPredicate, 2,
 
5489
                OPC_Scope, 25, 
 
5490
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
5491
                  OPC_EmitInteger, MVT::i32, 14, 
 
5492
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5493
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5494
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRrs), 0,
 
5495
                      1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
5496
                25, 
 
5497
                  OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
5498
                  OPC_EmitInteger, MVT::i32, 14, 
 
5499
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5500
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5501
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRrs), 0,
 
5502
                      1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
5503
                0, 
 
5504
              45, 
 
5505
                OPC_MoveChild, 1,
 
5506
                OPC_CheckOpcode, ISD::XOR,
 
5507
                OPC_RecordChild0,
 
5508
                OPC_MoveChild, 1,
 
5509
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
5510
                OPC_MoveParent,
 
5511
                OPC_MoveParent,
 
5512
                OPC_CheckType, MVT::i32,
 
5513
                OPC_CheckPatternPredicate, 2,
 
5514
                OPC_EmitInteger, MVT::i32, 14, 
 
5515
                OPC_EmitRegister, MVT::i32, 0 ,
 
5516
                OPC_EmitRegister, MVT::i32, 0 ,
 
5517
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrr), 0,
 
5518
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
5519
              0, 
 
5520
            46, 
 
5521
              OPC_MoveChild, 0,
 
5522
              OPC_CheckOpcode, ISD::XOR,
 
5523
              OPC_RecordChild0,
 
5524
              OPC_MoveChild, 1,
 
5525
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
5526
              OPC_MoveParent,
 
5527
              OPC_MoveParent,
 
5528
              OPC_RecordChild1,
 
5529
              OPC_CheckType, MVT::i32,
 
5530
              OPC_CheckPatternPredicate, 2,
 
5531
              OPC_EmitInteger, MVT::i32, 14, 
 
5532
              OPC_EmitRegister, MVT::i32, 0 ,
 
5533
              OPC_EmitRegister, MVT::i32, 0 ,
 
5534
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNrr), 0,
 
5535
                  1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
5536
            92, 
 
5537
              OPC_RecordChild0,
 
5538
              OPC_MoveChild, 1,
 
5539
              OPC_CheckOpcode, ISD::XOR,
 
5540
              OPC_Scope, 53, 
 
5541
                OPC_RecordChild0,
 
5542
                OPC_MoveChild, 1,
 
5543
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5544
                OPC_CheckPredicate, 2,
 
5545
                OPC_MoveParent,
 
5546
                OPC_MoveParent,
 
5547
                OPC_SwitchType , 19,  MVT::v2i32,
 
5548
                  OPC_CheckPatternPredicate, 3,
 
5549
                  OPC_EmitInteger, MVT::i32, 14, 
 
5550
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5551
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
 
5552
                      1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
5553
                19,  MVT::v4i32,
 
5554
                  OPC_CheckPatternPredicate, 3,
 
5555
                  OPC_EmitInteger, MVT::i32, 14, 
 
5556
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5557
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
 
5558
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
5559
                0, 
 
5560
              30, 
 
5561
                OPC_MoveChild, 0,
 
5562
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5563
                OPC_CheckPredicate, 2,
 
5564
                OPC_MoveParent,
 
5565
                OPC_RecordChild1,
 
5566
                OPC_MoveParent,
 
5567
                OPC_CheckType, MVT::v2i32,
 
5568
                OPC_CheckPatternPredicate, 3,
 
5569
                OPC_EmitInteger, MVT::i32, 14, 
 
5570
                OPC_EmitRegister, MVT::i32, 0 ,
 
5571
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
 
5572
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
5573
              0, 
 
5574
            70, 
 
5575
              OPC_MoveChild, 0,
 
5576
              OPC_CheckOpcode, ISD::XOR,
 
5577
              OPC_Scope, 31, 
 
5578
                OPC_RecordChild0,
 
5579
                OPC_MoveChild, 1,
 
5580
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5581
                OPC_CheckPredicate, 2,
 
5582
                OPC_MoveParent,
 
5583
                OPC_MoveParent,
 
5584
                OPC_RecordChild1,
 
5585
                OPC_CheckType, MVT::v2i32,
 
5586
                OPC_CheckPatternPredicate, 3,
 
5587
                OPC_EmitInteger, MVT::i32, 14, 
 
5588
                OPC_EmitRegister, MVT::i32, 0 ,
 
5589
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
 
5590
                    1, MVT::v2i32, 4, 1, 0, 2, 3, 
 
5591
              31, 
 
5592
                OPC_MoveChild, 0,
 
5593
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5594
                OPC_CheckPredicate, 2,
 
5595
                OPC_MoveParent,
 
5596
                OPC_RecordChild1,
 
5597
                OPC_MoveParent,
 
5598
                OPC_RecordChild1,
 
5599
                OPC_CheckType, MVT::v2i32,
 
5600
                OPC_CheckPatternPredicate, 3,
 
5601
                OPC_EmitInteger, MVT::i32, 14, 
 
5602
                OPC_EmitRegister, MVT::i32, 0 ,
 
5603
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNd), 0,
 
5604
                    1, MVT::v2i32, 4, 1, 0, 2, 3, 
 
5605
              0, 
 
5606
            35, 
 
5607
              OPC_RecordChild0,
 
5608
              OPC_MoveChild, 1,
 
5609
              OPC_CheckOpcode, ISD::XOR,
 
5610
              OPC_MoveChild, 0,
 
5611
              OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5612
              OPC_CheckPredicate, 2,
 
5613
              OPC_MoveParent,
 
5614
              OPC_RecordChild1,
 
5615
              OPC_MoveParent,
 
5616
              OPC_CheckType, MVT::v4i32,
 
5617
              OPC_CheckPatternPredicate, 3,
 
5618
              OPC_EmitInteger, MVT::i32, 14, 
 
5619
              OPC_EmitRegister, MVT::i32, 0 ,
 
5620
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
 
5621
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
5622
            70, 
 
5623
              OPC_MoveChild, 0,
 
5624
              OPC_CheckOpcode, ISD::XOR,
 
5625
              OPC_Scope, 31, 
 
5626
                OPC_RecordChild0,
 
5627
                OPC_MoveChild, 1,
 
5628
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5629
                OPC_CheckPredicate, 2,
 
5630
                OPC_MoveParent,
 
5631
                OPC_MoveParent,
 
5632
                OPC_RecordChild1,
 
5633
                OPC_CheckType, MVT::v4i32,
 
5634
                OPC_CheckPatternPredicate, 3,
 
5635
                OPC_EmitInteger, MVT::i32, 14, 
 
5636
                OPC_EmitRegister, MVT::i32, 0 ,
 
5637
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
 
5638
                    1, MVT::v4i32, 4, 1, 0, 2, 3, 
 
5639
              31, 
 
5640
                OPC_MoveChild, 0,
 
5641
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
5642
                OPC_CheckPredicate, 2,
 
5643
                OPC_MoveParent,
 
5644
                OPC_RecordChild1,
 
5645
                OPC_MoveParent,
 
5646
                OPC_RecordChild1,
 
5647
                OPC_CheckType, MVT::v4i32,
 
5648
                OPC_CheckPatternPredicate, 3,
 
5649
                OPC_EmitInteger, MVT::i32, 14, 
 
5650
                OPC_EmitRegister, MVT::i32, 0 ,
 
5651
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORNq), 0,
 
5652
                    1, MVT::v4i32, 4, 1, 0, 2, 3, 
 
5653
              0, 
 
5654
            61, 
 
5655
              OPC_CheckOrImm, 0|128,0|128,124|128,127|128,15, 
 
5656
              OPC_RecordChild0,
 
5657
              OPC_CheckType, MVT::i32,
 
5658
              OPC_Scope, 24, 
 
5659
                OPC_CheckPatternPredicate, 4,
 
5660
                OPC_EmitInteger, MVT::i32, 127|128,127|128,3, 
 
5661
                OPC_EmitInteger, MVT::i32, 14, 
 
5662
                OPC_EmitRegister, MVT::i32, 0 ,
 
5663
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVTi16), 0,
 
5664
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
5665
              24, 
 
5666
                OPC_CheckPatternPredicate, 2,
 
5667
                OPC_EmitInteger, MVT::i32, 127|128,127|128,3, 
 
5668
                OPC_EmitInteger, MVT::i32, 14, 
 
5669
                OPC_EmitRegister, MVT::i32, 0 ,
 
5670
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVTi16), 0,
 
5671
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
5672
              0, 
 
5673
            93|128,2, 
 
5674
              OPC_RecordChild0,
 
5675
              OPC_RecordChild1,
 
5676
              OPC_Scope, 94|128,1, 
 
5677
                OPC_MoveChild, 1,
 
5678
                OPC_CheckOpcode, ISD::Constant,
 
5679
                OPC_Scope, 30, 
 
5680
                  OPC_CheckPredicate, 5,
 
5681
                  OPC_MoveParent,
 
5682
                  OPC_CheckType, MVT::i32,
 
5683
                  OPC_CheckPatternPredicate, 5,
 
5684
                  OPC_EmitConvertToTarget, 1,
 
5685
                  OPC_EmitInteger, MVT::i32, 14, 
 
5686
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5687
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5688
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRri), 0,
 
5689
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
5690
                30, 
 
5691
                  OPC_CheckPredicate, 4,
 
5692
                  OPC_MoveParent,
 
5693
                  OPC_CheckType, MVT::i32,
 
5694
                  OPC_CheckPatternPredicate, 2,
 
5695
                  OPC_EmitConvertToTarget, 1,
 
5696
                  OPC_EmitInteger, MVT::i32, 14, 
 
5697
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5698
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5699
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRri), 0,
 
5700
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
5701
                33, 
 
5702
                  OPC_CheckPredicate, 6,
 
5703
                  OPC_MoveParent,
 
5704
                  OPC_CheckType, MVT::i32,
 
5705
                  OPC_CheckPatternPredicate, 2,
 
5706
                  OPC_EmitConvertToTarget, 1,
 
5707
                  OPC_EmitNodeXForm, 1, 2,
 
5708
                  OPC_EmitInteger, MVT::i32, 14, 
 
5709
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5710
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5711
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORNri), 0,
 
5712
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
5713
                59, 
 
5714
                  OPC_CheckPredicate, 7,
 
5715
                  OPC_MoveParent,
 
5716
                  OPC_CheckType, MVT::i32,
 
5717
                  OPC_CheckPatternPredicate, 5,
 
5718
                  OPC_EmitConvertToTarget, 1,
 
5719
                  OPC_EmitNodeXForm, 2, 2,
 
5720
                  OPC_EmitInteger, MVT::i32, 14, 
 
5721
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5722
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5723
                  OPC_EmitNode, TARGET_OPCODE(ARM::ORRri), 0,
 
5724
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
5725
                  OPC_EmitConvertToTarget, 1,
 
5726
                  OPC_EmitNodeXForm, 3, 8,
 
5727
                  OPC_EmitInteger, MVT::i32, 14, 
 
5728
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5729
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5730
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRri), 0,
 
5731
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
5732
                59, 
 
5733
                  OPC_CheckPredicate, 8,
 
5734
                  OPC_MoveParent,
 
5735
                  OPC_CheckType, MVT::i32,
 
5736
                  OPC_CheckPatternPredicate, 2,
 
5737
                  OPC_EmitConvertToTarget, 1,
 
5738
                  OPC_EmitNodeXForm, 4, 2,
 
5739
                  OPC_EmitInteger, MVT::i32, 14, 
 
5740
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5741
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5742
                  OPC_EmitNode, TARGET_OPCODE(ARM::t2ORRri), 0,
 
5743
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
5744
                  OPC_EmitConvertToTarget, 1,
 
5745
                  OPC_EmitNodeXForm, 5, 8,
 
5746
                  OPC_EmitInteger, MVT::i32, 14, 
 
5747
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5748
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5749
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRri), 0,
 
5750
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
5751
                0, 
 
5752
              76, 
 
5753
                OPC_CheckType, MVT::i32,
 
5754
                OPC_Scope, 23, 
 
5755
                  OPC_CheckPatternPredicate, 5,
 
5756
                  OPC_EmitInteger, MVT::i32, 14, 
 
5757
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5758
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5759
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ORRrr), 0,
 
5760
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
5761
                23, 
 
5762
                  OPC_CheckPatternPredicate, 6,
 
5763
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
5764
                  OPC_EmitInteger, MVT::i32, 14, 
 
5765
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5766
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tORR), 0,
 
5767
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
5768
                23, 
 
5769
                  OPC_CheckPatternPredicate, 2,
 
5770
                  OPC_EmitInteger, MVT::i32, 14, 
 
5771
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5772
                  OPC_EmitRegister, MVT::i32, 0 ,
 
5773
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ORRrr), 0,
 
5774
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
5775
                0, 
 
5776
              21, 
 
5777
                OPC_CheckType, MVT::v2i32,
 
5778
                OPC_CheckPatternPredicate, 3,
 
5779
                OPC_EmitInteger, MVT::i32, 14, 
 
5780
                OPC_EmitRegister, MVT::i32, 0 ,
 
5781
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORRd), 0,
 
5782
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
5783
              21, 
 
5784
                OPC_CheckType, MVT::v4i32,
 
5785
                OPC_CheckPatternPredicate, 3,
 
5786
                OPC_EmitInteger, MVT::i32, 14, 
 
5787
                OPC_EmitRegister, MVT::i32, 0 ,
 
5788
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VORRq), 0,
 
5789
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
5790
              0, 
 
5791
            0, 
 
5792
          44|128,71,  ISD::ADD,
 
5793
            OPC_Scope, 94, 
 
5794
              OPC_RecordChild0,
 
5795
              OPC_MoveChild, 1,
 
5796
              OPC_CheckOpcode, ISD::MUL,
 
5797
              OPC_MoveChild, 0,
 
5798
              OPC_CheckOpcode, ISD::SRA,
 
5799
              OPC_MoveChild, 0,
 
5800
              OPC_CheckOpcode, ISD::SHL,
 
5801
              OPC_RecordChild0,
 
5802
              OPC_MoveChild, 1,
 
5803
              OPC_CheckInteger, 16, 
 
5804
              OPC_CheckType, MVT::i32,
 
5805
              OPC_MoveParent,
 
5806
              OPC_MoveParent,
 
5807
              OPC_MoveChild, 1,
 
5808
              OPC_CheckInteger, 16, 
 
5809
              OPC_CheckType, MVT::i32,
 
5810
              OPC_MoveParent,
 
5811
              OPC_MoveParent,
 
5812
              OPC_MoveChild, 1,
 
5813
              OPC_CheckOpcode, ISD::SRA,
 
5814
              OPC_MoveChild, 0,
 
5815
              OPC_CheckOpcode, ISD::SHL,
 
5816
              OPC_RecordChild0,
 
5817
              OPC_MoveChild, 1,
 
5818
              OPC_CheckInteger, 16, 
 
5819
              OPC_CheckType, MVT::i32,
 
5820
              OPC_MoveParent,
 
5821
              OPC_MoveParent,
 
5822
              OPC_MoveChild, 1,
 
5823
              OPC_CheckInteger, 16, 
 
5824
              OPC_CheckType, MVT::i32,
 
5825
              OPC_MoveParent,
 
5826
              OPC_MoveParent,
 
5827
              OPC_MoveParent,
 
5828
              OPC_CheckType, MVT::i32,
 
5829
              OPC_CheckPatternPredicate, 7,
 
5830
              OPC_EmitInteger, MVT::i32, 14, 
 
5831
              OPC_EmitRegister, MVT::i32, 0 ,
 
5832
              OPC_Scope, 12, 
 
5833
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
5834
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
5835
              12, 
 
5836
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
5837
                    1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
5838
              0, 
 
5839
            94, 
 
5840
              OPC_MoveChild, 0,
 
5841
              OPC_CheckOpcode, ISD::MUL,
 
5842
              OPC_MoveChild, 0,
 
5843
              OPC_CheckOpcode, ISD::SRA,
 
5844
              OPC_MoveChild, 0,
 
5845
              OPC_CheckOpcode, ISD::SHL,
 
5846
              OPC_RecordChild0,
 
5847
              OPC_MoveChild, 1,
 
5848
              OPC_CheckInteger, 16, 
 
5849
              OPC_CheckType, MVT::i32,
 
5850
              OPC_MoveParent,
 
5851
              OPC_MoveParent,
 
5852
              OPC_MoveChild, 1,
 
5853
              OPC_CheckInteger, 16, 
 
5854
              OPC_CheckType, MVT::i32,
 
5855
              OPC_MoveParent,
 
5856
              OPC_MoveParent,
 
5857
              OPC_MoveChild, 1,
 
5858
              OPC_CheckOpcode, ISD::SRA,
 
5859
              OPC_MoveChild, 0,
 
5860
              OPC_CheckOpcode, ISD::SHL,
 
5861
              OPC_RecordChild0,
 
5862
              OPC_MoveChild, 1,
 
5863
              OPC_CheckInteger, 16, 
 
5864
              OPC_CheckType, MVT::i32,
 
5865
              OPC_MoveParent,
 
5866
              OPC_MoveParent,
 
5867
              OPC_MoveChild, 1,
 
5868
              OPC_CheckInteger, 16, 
 
5869
              OPC_CheckType, MVT::i32,
 
5870
              OPC_MoveParent,
 
5871
              OPC_MoveParent,
 
5872
              OPC_MoveParent,
 
5873
              OPC_RecordChild1,
 
5874
              OPC_CheckType, MVT::i32,
 
5875
              OPC_CheckPatternPredicate, 7,
 
5876
              OPC_EmitInteger, MVT::i32, 14, 
 
5877
              OPC_EmitRegister, MVT::i32, 0 ,
 
5878
              OPC_Scope, 12, 
 
5879
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
5880
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
5881
              12, 
 
5882
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
5883
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
5884
              0, 
 
5885
            59|128,1, 
 
5886
              OPC_RecordChild0,
 
5887
              OPC_MoveChild, 1,
 
5888
              OPC_Scope, 44, 
 
5889
                OPC_CheckAndImm, 127|128,1, 
 
5890
                OPC_MoveChild, 0,
 
5891
                OPC_CheckOpcode, ISD::ROTR,
 
5892
                OPC_RecordChild0,
 
5893
                OPC_RecordChild1,
 
5894
                OPC_MoveChild, 1,
 
5895
                OPC_CheckOpcode, ISD::Constant,
 
5896
                OPC_CheckPredicate, 9,
 
5897
                OPC_CheckType, MVT::i32,
 
5898
                OPC_MoveParent,
 
5899
                OPC_MoveParent,
 
5900
                OPC_MoveParent,
 
5901
                OPC_CheckType, MVT::i32,
 
5902
                OPC_CheckPatternPredicate, 0,
 
5903
                OPC_EmitConvertToTarget, 2,
 
5904
                OPC_EmitInteger, MVT::i32, 14, 
 
5905
                OPC_EmitRegister, MVT::i32, 0 ,
 
5906
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr_rot), 0,
 
5907
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
5908
              45, 
 
5909
                OPC_CheckAndImm, 127|128,127|128,3, 
 
5910
                OPC_MoveChild, 0,
 
5911
                OPC_CheckOpcode, ISD::ROTR,
 
5912
                OPC_RecordChild0,
 
5913
                OPC_RecordChild1,
 
5914
                OPC_MoveChild, 1,
 
5915
                OPC_CheckOpcode, ISD::Constant,
 
5916
                OPC_CheckPredicate, 9,
 
5917
                OPC_CheckType, MVT::i32,
 
5918
                OPC_MoveParent,
 
5919
                OPC_MoveParent,
 
5920
                OPC_MoveParent,
 
5921
                OPC_CheckType, MVT::i32,
 
5922
                OPC_CheckPatternPredicate, 0,
 
5923
                OPC_EmitConvertToTarget, 2,
 
5924
                OPC_EmitInteger, MVT::i32, 14, 
 
5925
                OPC_EmitRegister, MVT::i32, 0 ,
 
5926
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr_rot), 0,
 
5927
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
5928
              44, 
 
5929
                OPC_CheckAndImm, 127|128,1, 
 
5930
                OPC_MoveChild, 0,
 
5931
                OPC_CheckOpcode, ISD::ROTR,
 
5932
                OPC_RecordChild0,
 
5933
                OPC_RecordChild1,
 
5934
                OPC_MoveChild, 1,
 
5935
                OPC_CheckOpcode, ISD::Constant,
 
5936
                OPC_CheckPredicate, 9,
 
5937
                OPC_CheckType, MVT::i32,
 
5938
                OPC_MoveParent,
 
5939
                OPC_MoveParent,
 
5940
                OPC_MoveParent,
 
5941
                OPC_CheckType, MVT::i32,
 
5942
                OPC_CheckPatternPredicate, 2,
 
5943
                OPC_EmitConvertToTarget, 2,
 
5944
                OPC_EmitInteger, MVT::i32, 14, 
 
5945
                OPC_EmitRegister, MVT::i32, 0 ,
 
5946
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr_rot), 0,
 
5947
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
5948
              45, 
 
5949
                OPC_CheckAndImm, 127|128,127|128,3, 
 
5950
                OPC_MoveChild, 0,
 
5951
                OPC_CheckOpcode, ISD::ROTR,
 
5952
                OPC_RecordChild0,
 
5953
                OPC_RecordChild1,
 
5954
                OPC_MoveChild, 1,
 
5955
                OPC_CheckOpcode, ISD::Constant,
 
5956
                OPC_CheckPredicate, 9,
 
5957
                OPC_CheckType, MVT::i32,
 
5958
                OPC_MoveParent,
 
5959
                OPC_MoveParent,
 
5960
                OPC_MoveParent,
 
5961
                OPC_CheckType, MVT::i32,
 
5962
                OPC_CheckPatternPredicate, 2,
 
5963
                OPC_EmitConvertToTarget, 2,
 
5964
                OPC_EmitInteger, MVT::i32, 14, 
 
5965
                OPC_EmitRegister, MVT::i32, 0 ,
 
5966
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr_rot), 0,
 
5967
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
5968
              0, 
 
5969
            62|128,1, 
 
5970
              OPC_MoveChild, 0,
 
5971
              OPC_Scope, 45, 
 
5972
                OPC_CheckAndImm, 127|128,1, 
 
5973
                OPC_MoveChild, 0,
 
5974
                OPC_CheckOpcode, ISD::ROTR,
 
5975
                OPC_RecordChild0,
 
5976
                OPC_RecordChild1,
 
5977
                OPC_MoveChild, 1,
 
5978
                OPC_CheckOpcode, ISD::Constant,
 
5979
                OPC_CheckPredicate, 9,
 
5980
                OPC_CheckType, MVT::i32,
 
5981
                OPC_MoveParent,
 
5982
                OPC_MoveParent,
 
5983
                OPC_MoveParent,
 
5984
                OPC_RecordChild1,
 
5985
                OPC_CheckType, MVT::i32,
 
5986
                OPC_CheckPatternPredicate, 0,
 
5987
                OPC_EmitConvertToTarget, 1,
 
5988
                OPC_EmitInteger, MVT::i32, 14, 
 
5989
                OPC_EmitRegister, MVT::i32, 0 ,
 
5990
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr_rot), 0,
 
5991
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
5992
              46, 
 
5993
                OPC_CheckAndImm, 127|128,127|128,3, 
 
5994
                OPC_MoveChild, 0,
 
5995
                OPC_CheckOpcode, ISD::ROTR,
 
5996
                OPC_RecordChild0,
 
5997
                OPC_RecordChild1,
 
5998
                OPC_MoveChild, 1,
 
5999
                OPC_CheckOpcode, ISD::Constant,
 
6000
                OPC_CheckPredicate, 9,
 
6001
                OPC_CheckType, MVT::i32,
 
6002
                OPC_MoveParent,
 
6003
                OPC_MoveParent,
 
6004
                OPC_MoveParent,
 
6005
                OPC_RecordChild1,
 
6006
                OPC_CheckType, MVT::i32,
 
6007
                OPC_CheckPatternPredicate, 0,
 
6008
                OPC_EmitConvertToTarget, 1,
 
6009
                OPC_EmitInteger, MVT::i32, 14, 
 
6010
                OPC_EmitRegister, MVT::i32, 0 ,
 
6011
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr_rot), 0,
 
6012
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
6013
              45, 
 
6014
                OPC_CheckAndImm, 127|128,1, 
 
6015
                OPC_MoveChild, 0,
 
6016
                OPC_CheckOpcode, ISD::ROTR,
 
6017
                OPC_RecordChild0,
 
6018
                OPC_RecordChild1,
 
6019
                OPC_MoveChild, 1,
 
6020
                OPC_CheckOpcode, ISD::Constant,
 
6021
                OPC_CheckPredicate, 9,
 
6022
                OPC_CheckType, MVT::i32,
 
6023
                OPC_MoveParent,
 
6024
                OPC_MoveParent,
 
6025
                OPC_MoveParent,
 
6026
                OPC_RecordChild1,
 
6027
                OPC_CheckType, MVT::i32,
 
6028
                OPC_CheckPatternPredicate, 2,
 
6029
                OPC_EmitConvertToTarget, 1,
 
6030
                OPC_EmitInteger, MVT::i32, 14, 
 
6031
                OPC_EmitRegister, MVT::i32, 0 ,
 
6032
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr_rot), 0,
 
6033
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
6034
              46, 
 
6035
                OPC_CheckAndImm, 127|128,127|128,3, 
 
6036
                OPC_MoveChild, 0,
 
6037
                OPC_CheckOpcode, ISD::ROTR,
 
6038
                OPC_RecordChild0,
 
6039
                OPC_RecordChild1,
 
6040
                OPC_MoveChild, 1,
 
6041
                OPC_CheckOpcode, ISD::Constant,
 
6042
                OPC_CheckPredicate, 9,
 
6043
                OPC_CheckType, MVT::i32,
 
6044
                OPC_MoveParent,
 
6045
                OPC_MoveParent,
 
6046
                OPC_MoveParent,
 
6047
                OPC_RecordChild1,
 
6048
                OPC_CheckType, MVT::i32,
 
6049
                OPC_CheckPatternPredicate, 2,
 
6050
                OPC_EmitConvertToTarget, 1,
 
6051
                OPC_EmitInteger, MVT::i32, 14, 
 
6052
                OPC_EmitRegister, MVT::i32, 0 ,
 
6053
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr_rot), 0,
 
6054
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
6055
              0, 
 
6056
            81|128,1, 
 
6057
              OPC_RecordChild0,
 
6058
              OPC_MoveChild, 1,
 
6059
              OPC_SwitchOpcode , 10|128,1,  ISD::MUL,
 
6060
                OPC_MoveChild, 0,
 
6061
                OPC_CheckOpcode, ISD::SRA,
 
6062
                OPC_Scope, 57, 
 
6063
                  OPC_MoveChild, 0,
 
6064
                  OPC_CheckOpcode, ISD::SHL,
 
6065
                  OPC_RecordChild0,
 
6066
                  OPC_MoveChild, 1,
 
6067
                  OPC_CheckInteger, 16, 
 
6068
                  OPC_CheckType, MVT::i32,
 
6069
                  OPC_MoveParent,
 
6070
                  OPC_MoveParent,
 
6071
                  OPC_MoveChild, 1,
 
6072
                  OPC_CheckInteger, 16, 
 
6073
                  OPC_CheckType, MVT::i32,
 
6074
                  OPC_MoveParent,
 
6075
                  OPC_MoveParent,
 
6076
                  OPC_MoveChild, 1,
 
6077
                  OPC_CheckOpcode, ISD::SRA,
 
6078
                  OPC_RecordChild0,
 
6079
                  OPC_MoveChild, 1,
 
6080
                  OPC_CheckInteger, 16, 
 
6081
                  OPC_CheckType, MVT::i32,
 
6082
                  OPC_MoveParent,
 
6083
                  OPC_MoveParent,
 
6084
                  OPC_MoveParent,
 
6085
                  OPC_CheckType, MVT::i32,
 
6086
                  OPC_CheckPatternPredicate, 7,
 
6087
                  OPC_EmitInteger, MVT::i32, 14, 
 
6088
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6089
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6090
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6091
                73, 
 
6092
                  OPC_RecordChild0,
 
6093
                  OPC_MoveChild, 1,
 
6094
                  OPC_CheckInteger, 16, 
 
6095
                  OPC_CheckType, MVT::i32,
 
6096
                  OPC_MoveParent,
 
6097
                  OPC_MoveParent,
 
6098
                  OPC_MoveChild, 1,
 
6099
                  OPC_CheckOpcode, ISD::SRA,
 
6100
                  OPC_MoveChild, 0,
 
6101
                  OPC_CheckOpcode, ISD::SHL,
 
6102
                  OPC_RecordChild0,
 
6103
                  OPC_MoveChild, 1,
 
6104
                  OPC_CheckInteger, 16, 
 
6105
                  OPC_CheckType, MVT::i32,
 
6106
                  OPC_MoveParent,
 
6107
                  OPC_MoveParent,
 
6108
                  OPC_MoveChild, 1,
 
6109
                  OPC_CheckInteger, 16, 
 
6110
                  OPC_CheckType, MVT::i32,
 
6111
                  OPC_MoveParent,
 
6112
                  OPC_MoveParent,
 
6113
                  OPC_MoveParent,
 
6114
                  OPC_CheckType, MVT::i32,
 
6115
                  OPC_CheckPatternPredicate, 7,
 
6116
                  OPC_EmitInteger, MVT::i32, 14, 
 
6117
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6118
                  OPC_Scope, 12, 
 
6119
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
6120
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6121
                  12, 
 
6122
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6123
                        1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6124
                  0, 
 
6125
                0, 
 
6126
              61,  ISD::SRA,
 
6127
                OPC_MoveChild, 0,
 
6128
                OPC_CheckOpcode, ISD::MUL,
 
6129
                OPC_RecordChild0,
 
6130
                OPC_MoveChild, 1,
 
6131
                OPC_CheckOpcode, ISD::SRA,
 
6132
                OPC_MoveChild, 0,
 
6133
                OPC_CheckOpcode, ISD::SHL,
 
6134
                OPC_RecordChild0,
 
6135
                OPC_MoveChild, 1,
 
6136
                OPC_CheckInteger, 16, 
 
6137
                OPC_CheckType, MVT::i32,
 
6138
                OPC_MoveParent,
 
6139
                OPC_MoveParent,
 
6140
                OPC_MoveChild, 1,
 
6141
                OPC_CheckInteger, 16, 
 
6142
                OPC_CheckType, MVT::i32,
 
6143
                OPC_MoveParent,
 
6144
                OPC_MoveParent,
 
6145
                OPC_MoveParent,
 
6146
                OPC_MoveChild, 1,
 
6147
                OPC_CheckInteger, 16, 
 
6148
                OPC_CheckType, MVT::i32,
 
6149
                OPC_MoveParent,
 
6150
                OPC_MoveParent,
 
6151
                OPC_CheckType, MVT::i32,
 
6152
                OPC_CheckPatternPredicate, 7,
 
6153
                OPC_EmitInteger, MVT::i32, 14, 
 
6154
                OPC_EmitRegister, MVT::i32, 0 ,
 
6155
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
6156
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6157
              0, 
 
6158
            0|128,1, 
 
6159
              OPC_MoveChild, 0,
 
6160
              OPC_CheckOpcode, ISD::MUL,
 
6161
              OPC_MoveChild, 0,
 
6162
              OPC_CheckOpcode, ISD::SRA,
 
6163
              OPC_Scope, 58, 
 
6164
                OPC_MoveChild, 0,
 
6165
                OPC_CheckOpcode, ISD::SHL,
 
6166
                OPC_RecordChild0,
 
6167
                OPC_MoveChild, 1,
 
6168
                OPC_CheckInteger, 16, 
 
6169
                OPC_CheckType, MVT::i32,
 
6170
                OPC_MoveParent,
 
6171
                OPC_MoveParent,
 
6172
                OPC_MoveChild, 1,
 
6173
                OPC_CheckInteger, 16, 
 
6174
                OPC_CheckType, MVT::i32,
 
6175
                OPC_MoveParent,
 
6176
                OPC_MoveParent,
 
6177
                OPC_MoveChild, 1,
 
6178
                OPC_CheckOpcode, ISD::SRA,
 
6179
                OPC_RecordChild0,
 
6180
                OPC_MoveChild, 1,
 
6181
                OPC_CheckInteger, 16, 
 
6182
                OPC_CheckType, MVT::i32,
 
6183
                OPC_MoveParent,
 
6184
                OPC_MoveParent,
 
6185
                OPC_MoveParent,
 
6186
                OPC_RecordChild1,
 
6187
                OPC_CheckType, MVT::i32,
 
6188
                OPC_CheckPatternPredicate, 7,
 
6189
                OPC_EmitInteger, MVT::i32, 14, 
 
6190
                OPC_EmitRegister, MVT::i32, 0 ,
 
6191
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6192
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6193
              58, 
 
6194
                OPC_RecordChild0,
 
6195
                OPC_MoveChild, 1,
 
6196
                OPC_CheckInteger, 16, 
 
6197
                OPC_CheckType, MVT::i32,
 
6198
                OPC_MoveParent,
 
6199
                OPC_MoveParent,
 
6200
                OPC_MoveChild, 1,
 
6201
                OPC_CheckOpcode, ISD::SRA,
 
6202
                OPC_MoveChild, 0,
 
6203
                OPC_CheckOpcode, ISD::SHL,
 
6204
                OPC_RecordChild0,
 
6205
                OPC_MoveChild, 1,
 
6206
                OPC_CheckInteger, 16, 
 
6207
                OPC_CheckType, MVT::i32,
 
6208
                OPC_MoveParent,
 
6209
                OPC_MoveParent,
 
6210
                OPC_MoveChild, 1,
 
6211
                OPC_CheckInteger, 16, 
 
6212
                OPC_CheckType, MVT::i32,
 
6213
                OPC_MoveParent,
 
6214
                OPC_MoveParent,
 
6215
                OPC_MoveParent,
 
6216
                OPC_RecordChild1,
 
6217
                OPC_CheckType, MVT::i32,
 
6218
                OPC_CheckPatternPredicate, 7,
 
6219
                OPC_EmitInteger, MVT::i32, 14, 
 
6220
                OPC_EmitRegister, MVT::i32, 0 ,
 
6221
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6222
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6223
              0, 
 
6224
            66, 
 
6225
              OPC_RecordChild0,
 
6226
              OPC_MoveChild, 1,
 
6227
              OPC_CheckOpcode, ISD::MUL,
 
6228
              OPC_MoveChild, 0,
 
6229
              OPC_CheckOpcode, ISD::SRA,
 
6230
              OPC_MoveChild, 0,
 
6231
              OPC_CheckOpcode, ISD::SHL,
 
6232
              OPC_RecordChild0,
 
6233
              OPC_MoveChild, 1,
 
6234
              OPC_CheckInteger, 16, 
 
6235
              OPC_CheckType, MVT::i32,
 
6236
              OPC_MoveParent,
 
6237
              OPC_MoveParent,
 
6238
              OPC_MoveChild, 1,
 
6239
              OPC_CheckInteger, 16, 
 
6240
              OPC_CheckType, MVT::i32,
 
6241
              OPC_MoveParent,
 
6242
              OPC_MoveParent,
 
6243
              OPC_MoveChild, 1,
 
6244
              OPC_CheckOpcode, ISD::SRA,
 
6245
              OPC_RecordChild0,
 
6246
              OPC_MoveChild, 1,
 
6247
              OPC_CheckInteger, 16, 
 
6248
              OPC_CheckType, MVT::i32,
 
6249
              OPC_MoveParent,
 
6250
              OPC_MoveParent,
 
6251
              OPC_MoveParent,
 
6252
              OPC_CheckType, MVT::i32,
 
6253
              OPC_CheckPatternPredicate, 7,
 
6254
              OPC_EmitInteger, MVT::i32, 14, 
 
6255
              OPC_EmitRegister, MVT::i32, 0 ,
 
6256
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
6257
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6258
            0|128,1, 
 
6259
              OPC_MoveChild, 0,
 
6260
              OPC_CheckOpcode, ISD::MUL,
 
6261
              OPC_MoveChild, 0,
 
6262
              OPC_CheckOpcode, ISD::SRA,
 
6263
              OPC_Scope, 58, 
 
6264
                OPC_RecordChild0,
 
6265
                OPC_MoveChild, 1,
 
6266
                OPC_CheckInteger, 16, 
 
6267
                OPC_CheckType, MVT::i32,
 
6268
                OPC_MoveParent,
 
6269
                OPC_MoveParent,
 
6270
                OPC_MoveChild, 1,
 
6271
                OPC_CheckOpcode, ISD::SRA,
 
6272
                OPC_MoveChild, 0,
 
6273
                OPC_CheckOpcode, ISD::SHL,
 
6274
                OPC_RecordChild0,
 
6275
                OPC_MoveChild, 1,
 
6276
                OPC_CheckInteger, 16, 
 
6277
                OPC_CheckType, MVT::i32,
 
6278
                OPC_MoveParent,
 
6279
                OPC_MoveParent,
 
6280
                OPC_MoveChild, 1,
 
6281
                OPC_CheckInteger, 16, 
 
6282
                OPC_CheckType, MVT::i32,
 
6283
                OPC_MoveParent,
 
6284
                OPC_MoveParent,
 
6285
                OPC_MoveParent,
 
6286
                OPC_RecordChild1,
 
6287
                OPC_CheckType, MVT::i32,
 
6288
                OPC_CheckPatternPredicate, 7,
 
6289
                OPC_EmitInteger, MVT::i32, 14, 
 
6290
                OPC_EmitRegister, MVT::i32, 0 ,
 
6291
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
6292
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6293
              58, 
 
6294
                OPC_MoveChild, 0,
 
6295
                OPC_CheckOpcode, ISD::SHL,
 
6296
                OPC_RecordChild0,
 
6297
                OPC_MoveChild, 1,
 
6298
                OPC_CheckInteger, 16, 
 
6299
                OPC_CheckType, MVT::i32,
 
6300
                OPC_MoveParent,
 
6301
                OPC_MoveParent,
 
6302
                OPC_MoveChild, 1,
 
6303
                OPC_CheckInteger, 16, 
 
6304
                OPC_CheckType, MVT::i32,
 
6305
                OPC_MoveParent,
 
6306
                OPC_MoveParent,
 
6307
                OPC_MoveChild, 1,
 
6308
                OPC_CheckOpcode, ISD::SRA,
 
6309
                OPC_RecordChild0,
 
6310
                OPC_MoveChild, 1,
 
6311
                OPC_CheckInteger, 16, 
 
6312
                OPC_CheckType, MVT::i32,
 
6313
                OPC_MoveParent,
 
6314
                OPC_MoveParent,
 
6315
                OPC_MoveParent,
 
6316
                OPC_RecordChild1,
 
6317
                OPC_CheckType, MVT::i32,
 
6318
                OPC_CheckPatternPredicate, 7,
 
6319
                OPC_EmitInteger, MVT::i32, 14, 
 
6320
                OPC_EmitRegister, MVT::i32, 0 ,
 
6321
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
6322
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6323
              0, 
 
6324
            66, 
 
6325
              OPC_RecordChild0,
 
6326
              OPC_MoveChild, 1,
 
6327
              OPC_CheckOpcode, ISD::SRA,
 
6328
              OPC_MoveChild, 0,
 
6329
              OPC_CheckOpcode, ISD::MUL,
 
6330
              OPC_MoveChild, 0,
 
6331
              OPC_CheckOpcode, ISD::SRA,
 
6332
              OPC_MoveChild, 0,
 
6333
              OPC_CheckOpcode, ISD::SHL,
 
6334
              OPC_RecordChild0,
 
6335
              OPC_MoveChild, 1,
 
6336
              OPC_CheckInteger, 16, 
 
6337
              OPC_CheckType, MVT::i32,
 
6338
              OPC_MoveParent,
 
6339
              OPC_MoveParent,
 
6340
              OPC_MoveChild, 1,
 
6341
              OPC_CheckInteger, 16, 
 
6342
              OPC_CheckType, MVT::i32,
 
6343
              OPC_MoveParent,
 
6344
              OPC_MoveParent,
 
6345
              OPC_RecordChild1,
 
6346
              OPC_MoveParent,
 
6347
              OPC_MoveChild, 1,
 
6348
              OPC_CheckInteger, 16, 
 
6349
              OPC_CheckType, MVT::i32,
 
6350
              OPC_MoveParent,
 
6351
              OPC_MoveParent,
 
6352
              OPC_CheckType, MVT::i32,
 
6353
              OPC_CheckPatternPredicate, 7,
 
6354
              OPC_EmitInteger, MVT::i32, 14, 
 
6355
              OPC_EmitRegister, MVT::i32, 0 ,
 
6356
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
6357
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6358
            0|128,1, 
 
6359
              OPC_MoveChild, 0,
 
6360
              OPC_CheckOpcode, ISD::SRA,
 
6361
              OPC_MoveChild, 0,
 
6362
              OPC_CheckOpcode, ISD::MUL,
 
6363
              OPC_Scope, 58, 
 
6364
                OPC_RecordChild0,
 
6365
                OPC_MoveChild, 1,
 
6366
                OPC_CheckOpcode, ISD::SRA,
 
6367
                OPC_MoveChild, 0,
 
6368
                OPC_CheckOpcode, ISD::SHL,
 
6369
                OPC_RecordChild0,
 
6370
                OPC_MoveChild, 1,
 
6371
                OPC_CheckInteger, 16, 
 
6372
                OPC_CheckType, MVT::i32,
 
6373
                OPC_MoveParent,
 
6374
                OPC_MoveParent,
 
6375
                OPC_MoveChild, 1,
 
6376
                OPC_CheckInteger, 16, 
 
6377
                OPC_CheckType, MVT::i32,
 
6378
                OPC_MoveParent,
 
6379
                OPC_MoveParent,
 
6380
                OPC_MoveParent,
 
6381
                OPC_MoveChild, 1,
 
6382
                OPC_CheckInteger, 16, 
 
6383
                OPC_CheckType, MVT::i32,
 
6384
                OPC_MoveParent,
 
6385
                OPC_MoveParent,
 
6386
                OPC_RecordChild1,
 
6387
                OPC_CheckType, MVT::i32,
 
6388
                OPC_CheckPatternPredicate, 7,
 
6389
                OPC_EmitInteger, MVT::i32, 14, 
 
6390
                OPC_EmitRegister, MVT::i32, 0 ,
 
6391
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
6392
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6393
              58, 
 
6394
                OPC_MoveChild, 0,
 
6395
                OPC_CheckOpcode, ISD::SRA,
 
6396
                OPC_MoveChild, 0,
 
6397
                OPC_CheckOpcode, ISD::SHL,
 
6398
                OPC_RecordChild0,
 
6399
                OPC_MoveChild, 1,
 
6400
                OPC_CheckInteger, 16, 
 
6401
                OPC_CheckType, MVT::i32,
 
6402
                OPC_MoveParent,
 
6403
                OPC_MoveParent,
 
6404
                OPC_MoveChild, 1,
 
6405
                OPC_CheckInteger, 16, 
 
6406
                OPC_CheckType, MVT::i32,
 
6407
                OPC_MoveParent,
 
6408
                OPC_MoveParent,
 
6409
                OPC_RecordChild1,
 
6410
                OPC_MoveParent,
 
6411
                OPC_MoveChild, 1,
 
6412
                OPC_CheckInteger, 16, 
 
6413
                OPC_CheckType, MVT::i32,
 
6414
                OPC_MoveParent,
 
6415
                OPC_MoveParent,
 
6416
                OPC_RecordChild1,
 
6417
                OPC_CheckType, MVT::i32,
 
6418
                OPC_CheckPatternPredicate, 7,
 
6419
                OPC_EmitInteger, MVT::i32, 14, 
 
6420
                OPC_EmitRegister, MVT::i32, 0 ,
 
6421
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
6422
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6423
              0, 
 
6424
            115, 
 
6425
              OPC_RecordChild0,
 
6426
              OPC_MoveChild, 1,
 
6427
              OPC_Scope, 26, 
 
6428
                OPC_CheckAndImm, 127|128,1, 
 
6429
                OPC_RecordChild0,
 
6430
                OPC_MoveParent,
 
6431
                OPC_CheckType, MVT::i32,
 
6432
                OPC_CheckPatternPredicate, 0,
 
6433
                OPC_EmitInteger, MVT::i32, 14, 
 
6434
                OPC_EmitRegister, MVT::i32, 0 ,
 
6435
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr), 0,
 
6436
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
6437
              27, 
 
6438
                OPC_CheckAndImm, 127|128,127|128,3, 
 
6439
                OPC_RecordChild0,
 
6440
                OPC_MoveParent,
 
6441
                OPC_CheckType, MVT::i32,
 
6442
                OPC_CheckPatternPredicate, 0,
 
6443
                OPC_EmitInteger, MVT::i32, 14, 
 
6444
                OPC_EmitRegister, MVT::i32, 0 ,
 
6445
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr), 0,
 
6446
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
6447
              26, 
 
6448
                OPC_CheckAndImm, 127|128,1, 
 
6449
                OPC_RecordChild0,
 
6450
                OPC_MoveParent,
 
6451
                OPC_CheckType, MVT::i32,
 
6452
                OPC_CheckPatternPredicate, 2,
 
6453
                OPC_EmitInteger, MVT::i32, 14, 
 
6454
                OPC_EmitRegister, MVT::i32, 0 ,
 
6455
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr), 0,
 
6456
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
6457
              27, 
 
6458
                OPC_CheckAndImm, 127|128,127|128,3, 
 
6459
                OPC_RecordChild0,
 
6460
                OPC_MoveParent,
 
6461
                OPC_CheckType, MVT::i32,
 
6462
                OPC_CheckPatternPredicate, 2,
 
6463
                OPC_EmitInteger, MVT::i32, 14, 
 
6464
                OPC_EmitRegister, MVT::i32, 0 ,
 
6465
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr), 0,
 
6466
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
6467
              0, 
 
6468
            118, 
 
6469
              OPC_MoveChild, 0,
 
6470
              OPC_Scope, 27, 
 
6471
                OPC_CheckAndImm, 127|128,1, 
 
6472
                OPC_RecordChild0,
 
6473
                OPC_MoveParent,
 
6474
                OPC_RecordChild1,
 
6475
                OPC_CheckType, MVT::i32,
 
6476
                OPC_CheckPatternPredicate, 0,
 
6477
                OPC_EmitInteger, MVT::i32, 14, 
 
6478
                OPC_EmitRegister, MVT::i32, 0 ,
 
6479
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTABrr), 0,
 
6480
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
6481
              28, 
 
6482
                OPC_CheckAndImm, 127|128,127|128,3, 
 
6483
                OPC_RecordChild0,
 
6484
                OPC_MoveParent,
 
6485
                OPC_RecordChild1,
 
6486
                OPC_CheckType, MVT::i32,
 
6487
                OPC_CheckPatternPredicate, 0,
 
6488
                OPC_EmitInteger, MVT::i32, 14, 
 
6489
                OPC_EmitRegister, MVT::i32, 0 ,
 
6490
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTAHrr), 0,
 
6491
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
6492
              27, 
 
6493
                OPC_CheckAndImm, 127|128,1, 
 
6494
                OPC_RecordChild0,
 
6495
                OPC_MoveParent,
 
6496
                OPC_RecordChild1,
 
6497
                OPC_CheckType, MVT::i32,
 
6498
                OPC_CheckPatternPredicate, 2,
 
6499
                OPC_EmitInteger, MVT::i32, 14, 
 
6500
                OPC_EmitRegister, MVT::i32, 0 ,
 
6501
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTABrr), 0,
 
6502
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
6503
              28, 
 
6504
                OPC_CheckAndImm, 127|128,127|128,3, 
 
6505
                OPC_RecordChild0,
 
6506
                OPC_MoveParent,
 
6507
                OPC_RecordChild1,
 
6508
                OPC_CheckType, MVT::i32,
 
6509
                OPC_CheckPatternPredicate, 2,
 
6510
                OPC_EmitInteger, MVT::i32, 14, 
 
6511
                OPC_EmitRegister, MVT::i32, 0 ,
 
6512
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTAHrr), 0,
 
6513
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
6514
              0, 
 
6515
            48|128,1, 
 
6516
              OPC_RecordChild0,
 
6517
              OPC_MoveChild, 1,
 
6518
              OPC_SwitchOpcode , 94,  ISD::MUL,
 
6519
                OPC_MoveChild, 0,
 
6520
                OPC_CheckOpcode, ISD::SRA,
 
6521
                OPC_RecordChild0,
 
6522
                OPC_MoveChild, 1,
 
6523
                OPC_CheckInteger, 16, 
 
6524
                OPC_CheckType, MVT::i32,
 
6525
                OPC_MoveParent,
 
6526
                OPC_MoveParent,
 
6527
                OPC_MoveChild, 1,
 
6528
                OPC_CheckOpcode, ISD::SRA,
 
6529
                OPC_RecordChild0,
 
6530
                OPC_MoveChild, 1,
 
6531
                OPC_CheckInteger, 16, 
 
6532
                OPC_CheckType, MVT::i32,
 
6533
                OPC_MoveParent,
 
6534
                OPC_MoveParent,
 
6535
                OPC_MoveParent,
 
6536
                OPC_CheckType, MVT::i32,
 
6537
                OPC_Scope, 20, 
 
6538
                  OPC_CheckPatternPredicate, 7,
 
6539
                  OPC_EmitInteger, MVT::i32, 14, 
 
6540
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6541
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
 
6542
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6543
                20, 
 
6544
                  OPC_CheckPatternPredicate, 2,
 
6545
                  OPC_EmitInteger, MVT::i32, 14, 
 
6546
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6547
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
 
6548
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6549
                20, 
 
6550
                  OPC_CheckPatternPredicate, 7,
 
6551
                  OPC_EmitInteger, MVT::i32, 14, 
 
6552
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6553
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
 
6554
                      1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6555
                0, 
 
6556
              73,  ISD::SRA,
 
6557
                OPC_MoveChild, 0,
 
6558
                OPC_CheckOpcode, ISD::MUL,
 
6559
                OPC_RecordChild0,
 
6560
                OPC_MoveChild, 1,
 
6561
                OPC_CheckOpcode, ISD::SRA,
 
6562
                OPC_RecordChild0,
 
6563
                OPC_MoveChild, 1,
 
6564
                OPC_CheckInteger, 16, 
 
6565
                OPC_CheckType, MVT::i32,
 
6566
                OPC_MoveParent,
 
6567
                OPC_MoveParent,
 
6568
                OPC_MoveParent,
 
6569
                OPC_MoveChild, 1,
 
6570
                OPC_CheckInteger, 16, 
 
6571
                OPC_CheckType, MVT::i32,
 
6572
                OPC_MoveParent,
 
6573
                OPC_MoveParent,
 
6574
                OPC_CheckType, MVT::i32,
 
6575
                OPC_Scope, 20, 
 
6576
                  OPC_CheckPatternPredicate, 7,
 
6577
                  OPC_EmitInteger, MVT::i32, 14, 
 
6578
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6579
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
 
6580
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6581
                20, 
 
6582
                  OPC_CheckPatternPredicate, 2,
 
6583
                  OPC_EmitInteger, MVT::i32, 14, 
 
6584
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6585
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
 
6586
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6587
                0, 
 
6588
              0, 
 
6589
            70, 
 
6590
              OPC_MoveChild, 0,
 
6591
              OPC_CheckOpcode, ISD::MUL,
 
6592
              OPC_MoveChild, 0,
 
6593
              OPC_CheckOpcode, ISD::SRA,
 
6594
              OPC_RecordChild0,
 
6595
              OPC_MoveChild, 1,
 
6596
              OPC_CheckInteger, 16, 
 
6597
              OPC_CheckType, MVT::i32,
 
6598
              OPC_MoveParent,
 
6599
              OPC_MoveParent,
 
6600
              OPC_MoveChild, 1,
 
6601
              OPC_CheckOpcode, ISD::SRA,
 
6602
              OPC_RecordChild0,
 
6603
              OPC_MoveChild, 1,
 
6604
              OPC_CheckInteger, 16, 
 
6605
              OPC_CheckType, MVT::i32,
 
6606
              OPC_MoveParent,
 
6607
              OPC_MoveParent,
 
6608
              OPC_MoveParent,
 
6609
              OPC_RecordChild1,
 
6610
              OPC_CheckType, MVT::i32,
 
6611
              OPC_CheckPatternPredicate, 7,
 
6612
              OPC_EmitInteger, MVT::i32, 14, 
 
6613
              OPC_EmitRegister, MVT::i32, 0 ,
 
6614
              OPC_Scope, 12, 
 
6615
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
 
6616
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6617
              12, 
 
6618
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATT), 0,
 
6619
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6620
              0, 
 
6621
            54, 
 
6622
              OPC_RecordChild0,
 
6623
              OPC_MoveChild, 1,
 
6624
              OPC_CheckOpcode, ISD::SRA,
 
6625
              OPC_MoveChild, 0,
 
6626
              OPC_CheckOpcode, ISD::MUL,
 
6627
              OPC_MoveChild, 0,
 
6628
              OPC_CheckOpcode, ISD::SRA,
 
6629
              OPC_RecordChild0,
 
6630
              OPC_MoveChild, 1,
 
6631
              OPC_CheckInteger, 16, 
 
6632
              OPC_CheckType, MVT::i32,
 
6633
              OPC_MoveParent,
 
6634
              OPC_MoveParent,
 
6635
              OPC_RecordChild1,
 
6636
              OPC_MoveParent,
 
6637
              OPC_MoveChild, 1,
 
6638
              OPC_CheckInteger, 16, 
 
6639
              OPC_CheckType, MVT::i32,
 
6640
              OPC_MoveParent,
 
6641
              OPC_MoveParent,
 
6642
              OPC_CheckType, MVT::i32,
 
6643
              OPC_CheckPatternPredicate, 7,
 
6644
              OPC_EmitInteger, MVT::i32, 14, 
 
6645
              OPC_EmitRegister, MVT::i32, 0 ,
 
6646
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
 
6647
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6648
            104, 
 
6649
              OPC_MoveChild, 0,
 
6650
              OPC_CheckOpcode, ISD::SRA,
 
6651
              OPC_MoveChild, 0,
 
6652
              OPC_CheckOpcode, ISD::MUL,
 
6653
              OPC_Scope, 46, 
 
6654
                OPC_RecordChild0,
 
6655
                OPC_MoveChild, 1,
 
6656
                OPC_CheckOpcode, ISD::SRA,
 
6657
                OPC_RecordChild0,
 
6658
                OPC_MoveChild, 1,
 
6659
                OPC_CheckInteger, 16, 
 
6660
                OPC_CheckType, MVT::i32,
 
6661
                OPC_MoveParent,
 
6662
                OPC_MoveParent,
 
6663
                OPC_MoveParent,
 
6664
                OPC_MoveChild, 1,
 
6665
                OPC_CheckInteger, 16, 
 
6666
                OPC_CheckType, MVT::i32,
 
6667
                OPC_MoveParent,
 
6668
                OPC_MoveParent,
 
6669
                OPC_RecordChild1,
 
6670
                OPC_CheckType, MVT::i32,
 
6671
                OPC_CheckPatternPredicate, 7,
 
6672
                OPC_EmitInteger, MVT::i32, 14, 
 
6673
                OPC_EmitRegister, MVT::i32, 0 ,
 
6674
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
 
6675
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6676
              46, 
 
6677
                OPC_MoveChild, 0,
 
6678
                OPC_CheckOpcode, ISD::SRA,
 
6679
                OPC_RecordChild0,
 
6680
                OPC_MoveChild, 1,
 
6681
                OPC_CheckInteger, 16, 
 
6682
                OPC_CheckType, MVT::i32,
 
6683
                OPC_MoveParent,
 
6684
                OPC_MoveParent,
 
6685
                OPC_RecordChild1,
 
6686
                OPC_MoveParent,
 
6687
                OPC_MoveChild, 1,
 
6688
                OPC_CheckInteger, 16, 
 
6689
                OPC_CheckType, MVT::i32,
 
6690
                OPC_MoveParent,
 
6691
                OPC_MoveParent,
 
6692
                OPC_RecordChild1,
 
6693
                OPC_CheckType, MVT::i32,
 
6694
                OPC_CheckPatternPredicate, 7,
 
6695
                OPC_EmitInteger, MVT::i32, 14, 
 
6696
                OPC_EmitRegister, MVT::i32, 0 ,
 
6697
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWT), 0,
 
6698
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6699
              0, 
 
6700
            54, 
 
6701
              OPC_RecordChild0,
 
6702
              OPC_MoveChild, 1,
 
6703
              OPC_CheckOpcode, ISD::MUL,
 
6704
              OPC_MoveChild, 0,
 
6705
              OPC_CheckOpcode, ISD::SRA,
 
6706
              OPC_RecordChild0,
 
6707
              OPC_MoveChild, 1,
 
6708
              OPC_CheckInteger, 16, 
 
6709
              OPC_CheckType, MVT::i32,
 
6710
              OPC_MoveParent,
 
6711
              OPC_MoveParent,
 
6712
              OPC_MoveChild, 1,
 
6713
              OPC_CheckOpcode, ISD::SRA,
 
6714
              OPC_RecordChild0,
 
6715
              OPC_MoveChild, 1,
 
6716
              OPC_CheckInteger, 16, 
 
6717
              OPC_CheckType, MVT::i32,
 
6718
              OPC_MoveParent,
 
6719
              OPC_MoveParent,
 
6720
              OPC_MoveParent,
 
6721
              OPC_CheckType, MVT::i32,
 
6722
              OPC_CheckPatternPredicate, 2,
 
6723
              OPC_EmitInteger, MVT::i32, 14, 
 
6724
              OPC_EmitRegister, MVT::i32, 0 ,
 
6725
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
 
6726
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6727
            70, 
 
6728
              OPC_MoveChild, 0,
 
6729
              OPC_CheckOpcode, ISD::MUL,
 
6730
              OPC_MoveChild, 0,
 
6731
              OPC_CheckOpcode, ISD::SRA,
 
6732
              OPC_RecordChild0,
 
6733
              OPC_MoveChild, 1,
 
6734
              OPC_CheckInteger, 16, 
 
6735
              OPC_CheckType, MVT::i32,
 
6736
              OPC_MoveParent,
 
6737
              OPC_MoveParent,
 
6738
              OPC_MoveChild, 1,
 
6739
              OPC_CheckOpcode, ISD::SRA,
 
6740
              OPC_RecordChild0,
 
6741
              OPC_MoveChild, 1,
 
6742
              OPC_CheckInteger, 16, 
 
6743
              OPC_CheckType, MVT::i32,
 
6744
              OPC_MoveParent,
 
6745
              OPC_MoveParent,
 
6746
              OPC_MoveParent,
 
6747
              OPC_RecordChild1,
 
6748
              OPC_CheckType, MVT::i32,
 
6749
              OPC_CheckPatternPredicate, 2,
 
6750
              OPC_EmitInteger, MVT::i32, 14, 
 
6751
              OPC_EmitRegister, MVT::i32, 0 ,
 
6752
              OPC_Scope, 12, 
 
6753
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
 
6754
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6755
              12, 
 
6756
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATT), 0,
 
6757
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6758
              0, 
 
6759
            54, 
 
6760
              OPC_RecordChild0,
 
6761
              OPC_MoveChild, 1,
 
6762
              OPC_CheckOpcode, ISD::SRA,
 
6763
              OPC_MoveChild, 0,
 
6764
              OPC_CheckOpcode, ISD::MUL,
 
6765
              OPC_MoveChild, 0,
 
6766
              OPC_CheckOpcode, ISD::SRA,
 
6767
              OPC_RecordChild0,
 
6768
              OPC_MoveChild, 1,
 
6769
              OPC_CheckInteger, 16, 
 
6770
              OPC_CheckType, MVT::i32,
 
6771
              OPC_MoveParent,
 
6772
              OPC_MoveParent,
 
6773
              OPC_RecordChild1,
 
6774
              OPC_MoveParent,
 
6775
              OPC_MoveChild, 1,
 
6776
              OPC_CheckInteger, 16, 
 
6777
              OPC_CheckType, MVT::i32,
 
6778
              OPC_MoveParent,
 
6779
              OPC_MoveParent,
 
6780
              OPC_CheckType, MVT::i32,
 
6781
              OPC_CheckPatternPredicate, 2,
 
6782
              OPC_EmitInteger, MVT::i32, 14, 
 
6783
              OPC_EmitRegister, MVT::i32, 0 ,
 
6784
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
 
6785
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6786
            104, 
 
6787
              OPC_MoveChild, 0,
 
6788
              OPC_CheckOpcode, ISD::SRA,
 
6789
              OPC_MoveChild, 0,
 
6790
              OPC_CheckOpcode, ISD::MUL,
 
6791
              OPC_Scope, 46, 
 
6792
                OPC_RecordChild0,
 
6793
                OPC_MoveChild, 1,
 
6794
                OPC_CheckOpcode, ISD::SRA,
 
6795
                OPC_RecordChild0,
 
6796
                OPC_MoveChild, 1,
 
6797
                OPC_CheckInteger, 16, 
 
6798
                OPC_CheckType, MVT::i32,
 
6799
                OPC_MoveParent,
 
6800
                OPC_MoveParent,
 
6801
                OPC_MoveParent,
 
6802
                OPC_MoveChild, 1,
 
6803
                OPC_CheckInteger, 16, 
 
6804
                OPC_CheckType, MVT::i32,
 
6805
                OPC_MoveParent,
 
6806
                OPC_MoveParent,
 
6807
                OPC_RecordChild1,
 
6808
                OPC_CheckType, MVT::i32,
 
6809
                OPC_CheckPatternPredicate, 2,
 
6810
                OPC_EmitInteger, MVT::i32, 14, 
 
6811
                OPC_EmitRegister, MVT::i32, 0 ,
 
6812
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
 
6813
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6814
              46, 
 
6815
                OPC_MoveChild, 0,
 
6816
                OPC_CheckOpcode, ISD::SRA,
 
6817
                OPC_RecordChild0,
 
6818
                OPC_MoveChild, 1,
 
6819
                OPC_CheckInteger, 16, 
 
6820
                OPC_CheckType, MVT::i32,
 
6821
                OPC_MoveParent,
 
6822
                OPC_MoveParent,
 
6823
                OPC_RecordChild1,
 
6824
                OPC_MoveParent,
 
6825
                OPC_MoveChild, 1,
 
6826
                OPC_CheckInteger, 16, 
 
6827
                OPC_CheckType, MVT::i32,
 
6828
                OPC_MoveParent,
 
6829
                OPC_MoveParent,
 
6830
                OPC_RecordChild1,
 
6831
                OPC_CheckType, MVT::i32,
 
6832
                OPC_CheckPatternPredicate, 2,
 
6833
                OPC_EmitInteger, MVT::i32, 14, 
 
6834
                OPC_EmitRegister, MVT::i32, 0 ,
 
6835
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWT), 0,
 
6836
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6837
              0, 
 
6838
            116|128,1, 
 
6839
              OPC_RecordChild0,
 
6840
              OPC_MoveChild, 1,
 
6841
              OPC_SwitchOpcode , 35|128,1,  ISD::MUL,
 
6842
                OPC_MoveChild, 0,
 
6843
                OPC_SwitchOpcode , 67,  ISD::SIGN_EXTEND_INREG,
 
6844
                  OPC_RecordChild0,
 
6845
                  OPC_MoveChild, 1,
 
6846
                  OPC_CheckValueType, MVT::i16,
 
6847
                  OPC_MoveParent,
 
6848
                  OPC_MoveParent,
 
6849
                  OPC_MoveChild, 1,
 
6850
                  OPC_CheckOpcode, ISD::SRA,
 
6851
                  OPC_RecordChild0,
 
6852
                  OPC_MoveChild, 1,
 
6853
                  OPC_CheckInteger, 16, 
 
6854
                  OPC_CheckType, MVT::i32,
 
6855
                  OPC_MoveParent,
 
6856
                  OPC_MoveParent,
 
6857
                  OPC_MoveParent,
 
6858
                  OPC_CheckType, MVT::i32,
 
6859
                  OPC_Scope, 20, 
 
6860
                    OPC_CheckPatternPredicate, 7,
 
6861
                    OPC_EmitInteger, MVT::i32, 14, 
 
6862
                    OPC_EmitRegister, MVT::i32, 0 ,
 
6863
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6864
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6865
                  20, 
 
6866
                    OPC_CheckPatternPredicate, 2,
 
6867
                    OPC_EmitInteger, MVT::i32, 14, 
 
6868
                    OPC_EmitRegister, MVT::i32, 0 ,
 
6869
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
 
6870
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6871
                  0, 
 
6872
                88,  ISD::SRA,
 
6873
                  OPC_RecordChild0,
 
6874
                  OPC_MoveChild, 1,
 
6875
                  OPC_CheckInteger, 16, 
 
6876
                  OPC_CheckType, MVT::i32,
 
6877
                  OPC_MoveParent,
 
6878
                  OPC_MoveParent,
 
6879
                  OPC_MoveChild, 1,
 
6880
                  OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
6881
                  OPC_RecordChild0,
 
6882
                  OPC_MoveChild, 1,
 
6883
                  OPC_CheckValueType, MVT::i16,
 
6884
                  OPC_MoveParent,
 
6885
                  OPC_MoveParent,
 
6886
                  OPC_MoveParent,
 
6887
                  OPC_CheckType, MVT::i32,
 
6888
                  OPC_Scope, 20, 
 
6889
                    OPC_CheckPatternPredicate, 7,
 
6890
                    OPC_EmitInteger, MVT::i32, 14, 
 
6891
                    OPC_EmitRegister, MVT::i32, 0 ,
 
6892
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
6893
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6894
                  20, 
 
6895
                    OPC_CheckPatternPredicate, 2,
 
6896
                    OPC_EmitInteger, MVT::i32, 14, 
 
6897
                    OPC_EmitRegister, MVT::i32, 0 ,
 
6898
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
 
6899
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6900
                  20, 
 
6901
                    OPC_CheckPatternPredicate, 7,
 
6902
                    OPC_EmitInteger, MVT::i32, 14, 
 
6903
                    OPC_EmitRegister, MVT::i32, 0 ,
 
6904
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6905
                        1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
6906
                  0, 
 
6907
                0, 
 
6908
              71,  ISD::SRA,
 
6909
                OPC_MoveChild, 0,
 
6910
                OPC_CheckOpcode, ISD::MUL,
 
6911
                OPC_RecordChild0,
 
6912
                OPC_MoveChild, 1,
 
6913
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
6914
                OPC_RecordChild0,
 
6915
                OPC_MoveChild, 1,
 
6916
                OPC_CheckValueType, MVT::i16,
 
6917
                OPC_MoveParent,
 
6918
                OPC_MoveParent,
 
6919
                OPC_MoveParent,
 
6920
                OPC_MoveChild, 1,
 
6921
                OPC_CheckInteger, 16, 
 
6922
                OPC_CheckType, MVT::i32,
 
6923
                OPC_MoveParent,
 
6924
                OPC_MoveParent,
 
6925
                OPC_CheckType, MVT::i32,
 
6926
                OPC_Scope, 20, 
 
6927
                  OPC_CheckPatternPredicate, 7,
 
6928
                  OPC_EmitInteger, MVT::i32, 14, 
 
6929
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6930
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
6931
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6932
                20, 
 
6933
                  OPC_CheckPatternPredicate, 2,
 
6934
                  OPC_EmitInteger, MVT::i32, 14, 
 
6935
                  OPC_EmitRegister, MVT::i32, 0 ,
 
6936
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
 
6937
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
6938
                0, 
 
6939
              0, 
 
6940
            100, 
 
6941
              OPC_MoveChild, 0,
 
6942
              OPC_CheckOpcode, ISD::MUL,
 
6943
              OPC_MoveChild, 0,
 
6944
              OPC_SwitchOpcode , 44,  ISD::SIGN_EXTEND_INREG,
 
6945
                OPC_RecordChild0,
 
6946
                OPC_MoveChild, 1,
 
6947
                OPC_CheckValueType, MVT::i16,
 
6948
                OPC_MoveParent,
 
6949
                OPC_MoveParent,
 
6950
                OPC_MoveChild, 1,
 
6951
                OPC_CheckOpcode, ISD::SRA,
 
6952
                OPC_RecordChild0,
 
6953
                OPC_MoveChild, 1,
 
6954
                OPC_CheckInteger, 16, 
 
6955
                OPC_CheckType, MVT::i32,
 
6956
                OPC_MoveParent,
 
6957
                OPC_MoveParent,
 
6958
                OPC_MoveParent,
 
6959
                OPC_RecordChild1,
 
6960
                OPC_CheckType, MVT::i32,
 
6961
                OPC_CheckPatternPredicate, 7,
 
6962
                OPC_EmitInteger, MVT::i32, 14, 
 
6963
                OPC_EmitRegister, MVT::i32, 0 ,
 
6964
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6965
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
6966
              44,  ISD::SRA,
 
6967
                OPC_RecordChild0,
 
6968
                OPC_MoveChild, 1,
 
6969
                OPC_CheckInteger, 16, 
 
6970
                OPC_CheckType, MVT::i32,
 
6971
                OPC_MoveParent,
 
6972
                OPC_MoveParent,
 
6973
                OPC_MoveChild, 1,
 
6974
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
6975
                OPC_RecordChild0,
 
6976
                OPC_MoveChild, 1,
 
6977
                OPC_CheckValueType, MVT::i16,
 
6978
                OPC_MoveParent,
 
6979
                OPC_MoveParent,
 
6980
                OPC_MoveParent,
 
6981
                OPC_RecordChild1,
 
6982
                OPC_CheckType, MVT::i32,
 
6983
                OPC_CheckPatternPredicate, 7,
 
6984
                OPC_EmitInteger, MVT::i32, 14, 
 
6985
                OPC_EmitRegister, MVT::i32, 0 ,
 
6986
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
6987
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
6988
              0, 
 
6989
            52, 
 
6990
              OPC_RecordChild0,
 
6991
              OPC_MoveChild, 1,
 
6992
              OPC_CheckOpcode, ISD::MUL,
 
6993
              OPC_MoveChild, 0,
 
6994
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
6995
              OPC_RecordChild0,
 
6996
              OPC_MoveChild, 1,
 
6997
              OPC_CheckValueType, MVT::i16,
 
6998
              OPC_MoveParent,
 
6999
              OPC_MoveParent,
 
7000
              OPC_MoveChild, 1,
 
7001
              OPC_CheckOpcode, ISD::SRA,
 
7002
              OPC_RecordChild0,
 
7003
              OPC_MoveChild, 1,
 
7004
              OPC_CheckInteger, 16, 
 
7005
              OPC_CheckType, MVT::i32,
 
7006
              OPC_MoveParent,
 
7007
              OPC_MoveParent,
 
7008
              OPC_MoveParent,
 
7009
              OPC_CheckType, MVT::i32,
 
7010
              OPC_CheckPatternPredicate, 7,
 
7011
              OPC_EmitInteger, MVT::i32, 14, 
 
7012
              OPC_EmitRegister, MVT::i32, 0 ,
 
7013
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7014
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7015
            100, 
 
7016
              OPC_MoveChild, 0,
 
7017
              OPC_CheckOpcode, ISD::MUL,
 
7018
              OPC_MoveChild, 0,
 
7019
              OPC_SwitchOpcode , 44,  ISD::SRA,
 
7020
                OPC_RecordChild0,
 
7021
                OPC_MoveChild, 1,
 
7022
                OPC_CheckInteger, 16, 
 
7023
                OPC_CheckType, MVT::i32,
 
7024
                OPC_MoveParent,
 
7025
                OPC_MoveParent,
 
7026
                OPC_MoveChild, 1,
 
7027
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7028
                OPC_RecordChild0,
 
7029
                OPC_MoveChild, 1,
 
7030
                OPC_CheckValueType, MVT::i16,
 
7031
                OPC_MoveParent,
 
7032
                OPC_MoveParent,
 
7033
                OPC_MoveParent,
 
7034
                OPC_RecordChild1,
 
7035
                OPC_CheckType, MVT::i32,
 
7036
                OPC_CheckPatternPredicate, 7,
 
7037
                OPC_EmitInteger, MVT::i32, 14, 
 
7038
                OPC_EmitRegister, MVT::i32, 0 ,
 
7039
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7040
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7041
              44,  ISD::SIGN_EXTEND_INREG,
 
7042
                OPC_RecordChild0,
 
7043
                OPC_MoveChild, 1,
 
7044
                OPC_CheckValueType, MVT::i16,
 
7045
                OPC_MoveParent,
 
7046
                OPC_MoveParent,
 
7047
                OPC_MoveChild, 1,
 
7048
                OPC_CheckOpcode, ISD::SRA,
 
7049
                OPC_RecordChild0,
 
7050
                OPC_MoveChild, 1,
 
7051
                OPC_CheckInteger, 16, 
 
7052
                OPC_CheckType, MVT::i32,
 
7053
                OPC_MoveParent,
 
7054
                OPC_MoveParent,
 
7055
                OPC_MoveParent,
 
7056
                OPC_RecordChild1,
 
7057
                OPC_CheckType, MVT::i32,
 
7058
                OPC_CheckPatternPredicate, 7,
 
7059
                OPC_EmitInteger, MVT::i32, 14, 
 
7060
                OPC_EmitRegister, MVT::i32, 0 ,
 
7061
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7062
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7063
              0, 
 
7064
            52, 
 
7065
              OPC_RecordChild0,
 
7066
              OPC_MoveChild, 1,
 
7067
              OPC_CheckOpcode, ISD::SRA,
 
7068
              OPC_MoveChild, 0,
 
7069
              OPC_CheckOpcode, ISD::MUL,
 
7070
              OPC_MoveChild, 0,
 
7071
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7072
              OPC_RecordChild0,
 
7073
              OPC_MoveChild, 1,
 
7074
              OPC_CheckValueType, MVT::i16,
 
7075
              OPC_MoveParent,
 
7076
              OPC_MoveParent,
 
7077
              OPC_RecordChild1,
 
7078
              OPC_MoveParent,
 
7079
              OPC_MoveChild, 1,
 
7080
              OPC_CheckInteger, 16, 
 
7081
              OPC_CheckType, MVT::i32,
 
7082
              OPC_MoveParent,
 
7083
              OPC_MoveParent,
 
7084
              OPC_CheckType, MVT::i32,
 
7085
              OPC_CheckPatternPredicate, 7,
 
7086
              OPC_EmitInteger, MVT::i32, 14, 
 
7087
              OPC_EmitRegister, MVT::i32, 0 ,
 
7088
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7089
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7090
            100, 
 
7091
              OPC_MoveChild, 0,
 
7092
              OPC_CheckOpcode, ISD::SRA,
 
7093
              OPC_MoveChild, 0,
 
7094
              OPC_CheckOpcode, ISD::MUL,
 
7095
              OPC_Scope, 44, 
 
7096
                OPC_RecordChild0,
 
7097
                OPC_MoveChild, 1,
 
7098
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7099
                OPC_RecordChild0,
 
7100
                OPC_MoveChild, 1,
 
7101
                OPC_CheckValueType, MVT::i16,
 
7102
                OPC_MoveParent,
 
7103
                OPC_MoveParent,
 
7104
                OPC_MoveParent,
 
7105
                OPC_MoveChild, 1,
 
7106
                OPC_CheckInteger, 16, 
 
7107
                OPC_CheckType, MVT::i32,
 
7108
                OPC_MoveParent,
 
7109
                OPC_MoveParent,
 
7110
                OPC_RecordChild1,
 
7111
                OPC_CheckType, MVT::i32,
 
7112
                OPC_CheckPatternPredicate, 7,
 
7113
                OPC_EmitInteger, MVT::i32, 14, 
 
7114
                OPC_EmitRegister, MVT::i32, 0 ,
 
7115
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7116
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7117
              44, 
 
7118
                OPC_MoveChild, 0,
 
7119
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7120
                OPC_RecordChild0,
 
7121
                OPC_MoveChild, 1,
 
7122
                OPC_CheckValueType, MVT::i16,
 
7123
                OPC_MoveParent,
 
7124
                OPC_MoveParent,
 
7125
                OPC_RecordChild1,
 
7126
                OPC_MoveParent,
 
7127
                OPC_MoveChild, 1,
 
7128
                OPC_CheckInteger, 16, 
 
7129
                OPC_CheckType, MVT::i32,
 
7130
                OPC_MoveParent,
 
7131
                OPC_MoveParent,
 
7132
                OPC_RecordChild1,
 
7133
                OPC_CheckType, MVT::i32,
 
7134
                OPC_CheckPatternPredicate, 7,
 
7135
                OPC_EmitInteger, MVT::i32, 14, 
 
7136
                OPC_EmitRegister, MVT::i32, 0 ,
 
7137
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7138
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7139
              0, 
 
7140
            52, 
 
7141
              OPC_RecordChild0,
 
7142
              OPC_MoveChild, 1,
 
7143
              OPC_CheckOpcode, ISD::MUL,
 
7144
              OPC_MoveChild, 0,
 
7145
              OPC_CheckOpcode, ISD::SRA,
 
7146
              OPC_RecordChild0,
 
7147
              OPC_MoveChild, 1,
 
7148
              OPC_CheckInteger, 16, 
 
7149
              OPC_CheckType, MVT::i32,
 
7150
              OPC_MoveParent,
 
7151
              OPC_MoveParent,
 
7152
              OPC_MoveChild, 1,
 
7153
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7154
              OPC_RecordChild0,
 
7155
              OPC_MoveChild, 1,
 
7156
              OPC_CheckValueType, MVT::i16,
 
7157
              OPC_MoveParent,
 
7158
              OPC_MoveParent,
 
7159
              OPC_MoveParent,
 
7160
              OPC_CheckType, MVT::i32,
 
7161
              OPC_CheckPatternPredicate, 2,
 
7162
              OPC_EmitInteger, MVT::i32, 14, 
 
7163
              OPC_EmitRegister, MVT::i32, 0 ,
 
7164
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
 
7165
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7166
            100, 
 
7167
              OPC_MoveChild, 0,
 
7168
              OPC_CheckOpcode, ISD::MUL,
 
7169
              OPC_MoveChild, 0,
 
7170
              OPC_SwitchOpcode , 44,  ISD::SIGN_EXTEND_INREG,
 
7171
                OPC_RecordChild0,
 
7172
                OPC_MoveChild, 1,
 
7173
                OPC_CheckValueType, MVT::i16,
 
7174
                OPC_MoveParent,
 
7175
                OPC_MoveParent,
 
7176
                OPC_MoveChild, 1,
 
7177
                OPC_CheckOpcode, ISD::SRA,
 
7178
                OPC_RecordChild0,
 
7179
                OPC_MoveChild, 1,
 
7180
                OPC_CheckInteger, 16, 
 
7181
                OPC_CheckType, MVT::i32,
 
7182
                OPC_MoveParent,
 
7183
                OPC_MoveParent,
 
7184
                OPC_MoveParent,
 
7185
                OPC_RecordChild1,
 
7186
                OPC_CheckType, MVT::i32,
 
7187
                OPC_CheckPatternPredicate, 2,
 
7188
                OPC_EmitInteger, MVT::i32, 14, 
 
7189
                OPC_EmitRegister, MVT::i32, 0 ,
 
7190
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
 
7191
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7192
              44,  ISD::SRA,
 
7193
                OPC_RecordChild0,
 
7194
                OPC_MoveChild, 1,
 
7195
                OPC_CheckInteger, 16, 
 
7196
                OPC_CheckType, MVT::i32,
 
7197
                OPC_MoveParent,
 
7198
                OPC_MoveParent,
 
7199
                OPC_MoveChild, 1,
 
7200
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7201
                OPC_RecordChild0,
 
7202
                OPC_MoveChild, 1,
 
7203
                OPC_CheckValueType, MVT::i16,
 
7204
                OPC_MoveParent,
 
7205
                OPC_MoveParent,
 
7206
                OPC_MoveParent,
 
7207
                OPC_RecordChild1,
 
7208
                OPC_CheckType, MVT::i32,
 
7209
                OPC_CheckPatternPredicate, 2,
 
7210
                OPC_EmitInteger, MVT::i32, 14, 
 
7211
                OPC_EmitRegister, MVT::i32, 0 ,
 
7212
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABT), 0,
 
7213
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7214
              0, 
 
7215
            52, 
 
7216
              OPC_RecordChild0,
 
7217
              OPC_MoveChild, 1,
 
7218
              OPC_CheckOpcode, ISD::MUL,
 
7219
              OPC_MoveChild, 0,
 
7220
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7221
              OPC_RecordChild0,
 
7222
              OPC_MoveChild, 1,
 
7223
              OPC_CheckValueType, MVT::i16,
 
7224
              OPC_MoveParent,
 
7225
              OPC_MoveParent,
 
7226
              OPC_MoveChild, 1,
 
7227
              OPC_CheckOpcode, ISD::SRA,
 
7228
              OPC_RecordChild0,
 
7229
              OPC_MoveChild, 1,
 
7230
              OPC_CheckInteger, 16, 
 
7231
              OPC_CheckType, MVT::i32,
 
7232
              OPC_MoveParent,
 
7233
              OPC_MoveParent,
 
7234
              OPC_MoveParent,
 
7235
              OPC_CheckType, MVT::i32,
 
7236
              OPC_CheckPatternPredicate, 2,
 
7237
              OPC_EmitInteger, MVT::i32, 14, 
 
7238
              OPC_EmitRegister, MVT::i32, 0 ,
 
7239
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
 
7240
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7241
            100, 
 
7242
              OPC_MoveChild, 0,
 
7243
              OPC_CheckOpcode, ISD::MUL,
 
7244
              OPC_MoveChild, 0,
 
7245
              OPC_SwitchOpcode , 44,  ISD::SRA,
 
7246
                OPC_RecordChild0,
 
7247
                OPC_MoveChild, 1,
 
7248
                OPC_CheckInteger, 16, 
 
7249
                OPC_CheckType, MVT::i32,
 
7250
                OPC_MoveParent,
 
7251
                OPC_MoveParent,
 
7252
                OPC_MoveChild, 1,
 
7253
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7254
                OPC_RecordChild0,
 
7255
                OPC_MoveChild, 1,
 
7256
                OPC_CheckValueType, MVT::i16,
 
7257
                OPC_MoveParent,
 
7258
                OPC_MoveParent,
 
7259
                OPC_MoveParent,
 
7260
                OPC_RecordChild1,
 
7261
                OPC_CheckType, MVT::i32,
 
7262
                OPC_CheckPatternPredicate, 2,
 
7263
                OPC_EmitInteger, MVT::i32, 14, 
 
7264
                OPC_EmitRegister, MVT::i32, 0 ,
 
7265
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
 
7266
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7267
              44,  ISD::SIGN_EXTEND_INREG,
 
7268
                OPC_RecordChild0,
 
7269
                OPC_MoveChild, 1,
 
7270
                OPC_CheckValueType, MVT::i16,
 
7271
                OPC_MoveParent,
 
7272
                OPC_MoveParent,
 
7273
                OPC_MoveChild, 1,
 
7274
                OPC_CheckOpcode, ISD::SRA,
 
7275
                OPC_RecordChild0,
 
7276
                OPC_MoveChild, 1,
 
7277
                OPC_CheckInteger, 16, 
 
7278
                OPC_CheckType, MVT::i32,
 
7279
                OPC_MoveParent,
 
7280
                OPC_MoveParent,
 
7281
                OPC_MoveParent,
 
7282
                OPC_RecordChild1,
 
7283
                OPC_CheckType, MVT::i32,
 
7284
                OPC_CheckPatternPredicate, 2,
 
7285
                OPC_EmitInteger, MVT::i32, 14, 
 
7286
                OPC_EmitRegister, MVT::i32, 0 ,
 
7287
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLATB), 0,
 
7288
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7289
              0, 
 
7290
            52, 
 
7291
              OPC_RecordChild0,
 
7292
              OPC_MoveChild, 1,
 
7293
              OPC_CheckOpcode, ISD::SRA,
 
7294
              OPC_MoveChild, 0,
 
7295
              OPC_CheckOpcode, ISD::MUL,
 
7296
              OPC_MoveChild, 0,
 
7297
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7298
              OPC_RecordChild0,
 
7299
              OPC_MoveChild, 1,
 
7300
              OPC_CheckValueType, MVT::i16,
 
7301
              OPC_MoveParent,
 
7302
              OPC_MoveParent,
 
7303
              OPC_RecordChild1,
 
7304
              OPC_MoveParent,
 
7305
              OPC_MoveChild, 1,
 
7306
              OPC_CheckInteger, 16, 
 
7307
              OPC_CheckType, MVT::i32,
 
7308
              OPC_MoveParent,
 
7309
              OPC_MoveParent,
 
7310
              OPC_CheckType, MVT::i32,
 
7311
              OPC_CheckPatternPredicate, 2,
 
7312
              OPC_EmitInteger, MVT::i32, 14, 
 
7313
              OPC_EmitRegister, MVT::i32, 0 ,
 
7314
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
 
7315
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7316
            100, 
 
7317
              OPC_MoveChild, 0,
 
7318
              OPC_CheckOpcode, ISD::SRA,
 
7319
              OPC_MoveChild, 0,
 
7320
              OPC_CheckOpcode, ISD::MUL,
 
7321
              OPC_Scope, 44, 
 
7322
                OPC_RecordChild0,
 
7323
                OPC_MoveChild, 1,
 
7324
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7325
                OPC_RecordChild0,
 
7326
                OPC_MoveChild, 1,
 
7327
                OPC_CheckValueType, MVT::i16,
 
7328
                OPC_MoveParent,
 
7329
                OPC_MoveParent,
 
7330
                OPC_MoveParent,
 
7331
                OPC_MoveChild, 1,
 
7332
                OPC_CheckInteger, 16, 
 
7333
                OPC_CheckType, MVT::i32,
 
7334
                OPC_MoveParent,
 
7335
                OPC_MoveParent,
 
7336
                OPC_RecordChild1,
 
7337
                OPC_CheckType, MVT::i32,
 
7338
                OPC_CheckPatternPredicate, 2,
 
7339
                OPC_EmitInteger, MVT::i32, 14, 
 
7340
                OPC_EmitRegister, MVT::i32, 0 ,
 
7341
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
 
7342
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7343
              44, 
 
7344
                OPC_MoveChild, 0,
 
7345
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7346
                OPC_RecordChild0,
 
7347
                OPC_MoveChild, 1,
 
7348
                OPC_CheckValueType, MVT::i16,
 
7349
                OPC_MoveParent,
 
7350
                OPC_MoveParent,
 
7351
                OPC_RecordChild1,
 
7352
                OPC_MoveParent,
 
7353
                OPC_MoveChild, 1,
 
7354
                OPC_CheckInteger, 16, 
 
7355
                OPC_CheckType, MVT::i32,
 
7356
                OPC_MoveParent,
 
7357
                OPC_MoveParent,
 
7358
                OPC_RecordChild1,
 
7359
                OPC_CheckType, MVT::i32,
 
7360
                OPC_CheckPatternPredicate, 2,
 
7361
                OPC_EmitInteger, MVT::i32, 14, 
 
7362
                OPC_EmitRegister, MVT::i32, 0 ,
 
7363
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLAWB), 0,
 
7364
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7365
              0, 
 
7366
            126|128,1, 
 
7367
              OPC_RecordChild0,
 
7368
              OPC_Scope, 31, 
 
7369
                OPC_RecordChild1,
 
7370
                OPC_CheckType, MVT::i32,
 
7371
                OPC_CheckPatternPredicate, 5,
 
7372
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
7373
                OPC_EmitInteger, MVT::i32, 14, 
 
7374
                OPC_EmitRegister, MVT::i32, 0 ,
 
7375
                OPC_EmitRegister, MVT::i32, 0 ,
 
7376
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDrs), 0,
 
7377
                    1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
7378
              10|128,1, 
 
7379
                OPC_MoveChild, 1,
 
7380
                OPC_SwitchOpcode , 88,  ISD::MUL,
 
7381
                  OPC_Scope, 42, 
 
7382
                    OPC_RecordChild0,
 
7383
                    OPC_MoveChild, 0,
 
7384
                    OPC_CheckPredicate, 10,
 
7385
                    OPC_MoveParent,
 
7386
                    OPC_MoveChild, 1,
 
7387
                    OPC_CheckOpcode, ISD::SRA,
 
7388
                    OPC_RecordChild0,
 
7389
                    OPC_MoveChild, 1,
 
7390
                    OPC_CheckInteger, 16, 
 
7391
                    OPC_CheckType, MVT::i32,
 
7392
                    OPC_MoveParent,
 
7393
                    OPC_MoveParent,
 
7394
                    OPC_MoveParent,
 
7395
                    OPC_CheckType, MVT::i32,
 
7396
                    OPC_CheckPatternPredicate, 7,
 
7397
                    OPC_EmitInteger, MVT::i32, 14, 
 
7398
                    OPC_EmitRegister, MVT::i32, 0 ,
 
7399
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
7400
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
7401
                  42, 
 
7402
                    OPC_MoveChild, 0,
 
7403
                    OPC_CheckOpcode, ISD::SRA,
 
7404
                    OPC_RecordChild0,
 
7405
                    OPC_MoveChild, 1,
 
7406
                    OPC_CheckInteger, 16, 
 
7407
                    OPC_CheckType, MVT::i32,
 
7408
                    OPC_MoveParent,
 
7409
                    OPC_MoveParent,
 
7410
                    OPC_RecordChild1,
 
7411
                    OPC_MoveChild, 1,
 
7412
                    OPC_CheckPredicate, 10,
 
7413
                    OPC_MoveParent,
 
7414
                    OPC_MoveParent,
 
7415
                    OPC_CheckType, MVT::i32,
 
7416
                    OPC_CheckPatternPredicate, 7,
 
7417
                    OPC_EmitInteger, MVT::i32, 14, 
 
7418
                    OPC_EmitRegister, MVT::i32, 0 ,
 
7419
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7420
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
7421
                  0, 
 
7422
                42,  ISD::SRA,
 
7423
                  OPC_MoveChild, 0,
 
7424
                  OPC_CheckOpcode, ISD::MUL,
 
7425
                  OPC_RecordChild0,
 
7426
                  OPC_RecordChild1,
 
7427
                  OPC_MoveChild, 1,
 
7428
                  OPC_CheckPredicate, 10,
 
7429
                  OPC_MoveParent,
 
7430
                  OPC_MoveParent,
 
7431
                  OPC_MoveChild, 1,
 
7432
                  OPC_CheckInteger, 16, 
 
7433
                  OPC_CheckType, MVT::i32,
 
7434
                  OPC_MoveParent,
 
7435
                  OPC_MoveParent,
 
7436
                  OPC_CheckType, MVT::i32,
 
7437
                  OPC_CheckPatternPredicate, 7,
 
7438
                  OPC_EmitInteger, MVT::i32, 14, 
 
7439
                  OPC_EmitRegister, MVT::i32, 0 ,
 
7440
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7441
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
7442
                0, 
 
7443
              31, 
 
7444
                OPC_RecordChild1,
 
7445
                OPC_CheckType, MVT::i32,
 
7446
                OPC_CheckPatternPredicate, 5,
 
7447
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
7448
                OPC_EmitInteger, MVT::i32, 14, 
 
7449
                OPC_EmitRegister, MVT::i32, 0 ,
 
7450
                OPC_EmitRegister, MVT::i32, 0 ,
 
7451
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDrs), 0,
 
7452
                    1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
7453
              46, 
 
7454
                OPC_MoveChild, 1,
 
7455
                OPC_CheckOpcode, ISD::MUL,
 
7456
                OPC_MoveChild, 0,
 
7457
                OPC_CheckOpcode, ISD::SRA,
 
7458
                OPC_RecordChild0,
 
7459
                OPC_MoveChild, 1,
 
7460
                OPC_CheckInteger, 16, 
 
7461
                OPC_CheckType, MVT::i32,
 
7462
                OPC_MoveParent,
 
7463
                OPC_MoveParent,
 
7464
                OPC_RecordChild1,
 
7465
                OPC_MoveChild, 1,
 
7466
                OPC_CheckPredicate, 10,
 
7467
                OPC_MoveParent,
 
7468
                OPC_MoveParent,
 
7469
                OPC_CheckType, MVT::i32,
 
7470
                OPC_CheckPatternPredicate, 7,
 
7471
                OPC_EmitInteger, MVT::i32, 14, 
 
7472
                OPC_EmitRegister, MVT::i32, 0 ,
 
7473
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
7474
                    1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7475
              0, 
 
7476
            94, 
 
7477
              OPC_MoveChild, 0,
 
7478
              OPC_CheckOpcode, ISD::MUL,
 
7479
              OPC_Scope, 43, 
 
7480
                OPC_RecordChild0,
 
7481
                OPC_MoveChild, 0,
 
7482
                OPC_CheckPredicate, 10,
 
7483
                OPC_MoveParent,
 
7484
                OPC_MoveChild, 1,
 
7485
                OPC_CheckOpcode, ISD::SRA,
 
7486
                OPC_RecordChild0,
 
7487
                OPC_MoveChild, 1,
 
7488
                OPC_CheckInteger, 16, 
 
7489
                OPC_CheckType, MVT::i32,
 
7490
                OPC_MoveParent,
 
7491
                OPC_MoveParent,
 
7492
                OPC_MoveParent,
 
7493
                OPC_RecordChild1,
 
7494
                OPC_CheckType, MVT::i32,
 
7495
                OPC_CheckPatternPredicate, 7,
 
7496
                OPC_EmitInteger, MVT::i32, 14, 
 
7497
                OPC_EmitRegister, MVT::i32, 0 ,
 
7498
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
7499
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7500
              43, 
 
7501
                OPC_MoveChild, 0,
 
7502
                OPC_CheckOpcode, ISD::SRA,
 
7503
                OPC_RecordChild0,
 
7504
                OPC_MoveChild, 1,
 
7505
                OPC_CheckInteger, 16, 
 
7506
                OPC_CheckType, MVT::i32,
 
7507
                OPC_MoveParent,
 
7508
                OPC_MoveParent,
 
7509
                OPC_RecordChild1,
 
7510
                OPC_MoveChild, 1,
 
7511
                OPC_CheckPredicate, 10,
 
7512
                OPC_MoveParent,
 
7513
                OPC_MoveParent,
 
7514
                OPC_RecordChild1,
 
7515
                OPC_CheckType, MVT::i32,
 
7516
                OPC_CheckPatternPredicate, 7,
 
7517
                OPC_EmitInteger, MVT::i32, 14, 
 
7518
                OPC_EmitRegister, MVT::i32, 0 ,
 
7519
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABT), 0,
 
7520
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7521
              0, 
 
7522
            47, 
 
7523
              OPC_RecordChild0,
 
7524
              OPC_MoveChild, 1,
 
7525
              OPC_CheckOpcode, ISD::MUL,
 
7526
              OPC_RecordChild0,
 
7527
              OPC_MoveChild, 0,
 
7528
              OPC_CheckPredicate, 10,
 
7529
              OPC_MoveParent,
 
7530
              OPC_MoveChild, 1,
 
7531
              OPC_CheckOpcode, ISD::SRA,
 
7532
              OPC_RecordChild0,
 
7533
              OPC_MoveChild, 1,
 
7534
              OPC_CheckInteger, 16, 
 
7535
              OPC_CheckType, MVT::i32,
 
7536
              OPC_MoveParent,
 
7537
              OPC_MoveParent,
 
7538
              OPC_MoveParent,
 
7539
              OPC_CheckType, MVT::i32,
 
7540
              OPC_CheckPatternPredicate, 7,
 
7541
              OPC_EmitInteger, MVT::i32, 14, 
 
7542
              OPC_EmitRegister, MVT::i32, 0 ,
 
7543
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7544
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7545
            94, 
 
7546
              OPC_MoveChild, 0,
 
7547
              OPC_CheckOpcode, ISD::MUL,
 
7548
              OPC_Scope, 43, 
 
7549
                OPC_MoveChild, 0,
 
7550
                OPC_CheckOpcode, ISD::SRA,
 
7551
                OPC_RecordChild0,
 
7552
                OPC_MoveChild, 1,
 
7553
                OPC_CheckInteger, 16, 
 
7554
                OPC_CheckType, MVT::i32,
 
7555
                OPC_MoveParent,
 
7556
                OPC_MoveParent,
 
7557
                OPC_RecordChild1,
 
7558
                OPC_MoveChild, 1,
 
7559
                OPC_CheckPredicate, 10,
 
7560
                OPC_MoveParent,
 
7561
                OPC_MoveParent,
 
7562
                OPC_RecordChild1,
 
7563
                OPC_CheckType, MVT::i32,
 
7564
                OPC_CheckPatternPredicate, 7,
 
7565
                OPC_EmitInteger, MVT::i32, 14, 
 
7566
                OPC_EmitRegister, MVT::i32, 0 ,
 
7567
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7568
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7569
              43, 
 
7570
                OPC_RecordChild0,
 
7571
                OPC_MoveChild, 0,
 
7572
                OPC_CheckPredicate, 10,
 
7573
                OPC_MoveParent,
 
7574
                OPC_MoveChild, 1,
 
7575
                OPC_CheckOpcode, ISD::SRA,
 
7576
                OPC_RecordChild0,
 
7577
                OPC_MoveChild, 1,
 
7578
                OPC_CheckInteger, 16, 
 
7579
                OPC_CheckType, MVT::i32,
 
7580
                OPC_MoveParent,
 
7581
                OPC_MoveParent,
 
7582
                OPC_MoveParent,
 
7583
                OPC_RecordChild1,
 
7584
                OPC_CheckType, MVT::i32,
 
7585
                OPC_CheckPatternPredicate, 7,
 
7586
                OPC_EmitInteger, MVT::i32, 14, 
 
7587
                OPC_EmitRegister, MVT::i32, 0 ,
 
7588
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLATB), 0,
 
7589
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7590
              0, 
 
7591
            47, 
 
7592
              OPC_RecordChild0,
 
7593
              OPC_MoveChild, 1,
 
7594
              OPC_CheckOpcode, ISD::SRA,
 
7595
              OPC_MoveChild, 0,
 
7596
              OPC_CheckOpcode, ISD::MUL,
 
7597
              OPC_RecordChild0,
 
7598
              OPC_MoveChild, 0,
 
7599
              OPC_CheckPredicate, 10,
 
7600
              OPC_MoveParent,
 
7601
              OPC_RecordChild1,
 
7602
              OPC_MoveParent,
 
7603
              OPC_MoveChild, 1,
 
7604
              OPC_CheckInteger, 16, 
 
7605
              OPC_CheckType, MVT::i32,
 
7606
              OPC_MoveParent,
 
7607
              OPC_MoveParent,
 
7608
              OPC_CheckType, MVT::i32,
 
7609
              OPC_CheckPatternPredicate, 7,
 
7610
              OPC_EmitInteger, MVT::i32, 14, 
 
7611
              OPC_EmitRegister, MVT::i32, 0 ,
 
7612
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7613
                  1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
7614
            89, 
 
7615
              OPC_MoveChild, 0,
 
7616
              OPC_CheckOpcode, ISD::SRA,
 
7617
              OPC_MoveChild, 0,
 
7618
              OPC_CheckOpcode, ISD::MUL,
 
7619
              OPC_RecordChild0,
 
7620
              OPC_Scope, 38, 
 
7621
                OPC_RecordChild1,
 
7622
                OPC_MoveChild, 1,
 
7623
                OPC_CheckPredicate, 10,
 
7624
                OPC_MoveParent,
 
7625
                OPC_MoveParent,
 
7626
                OPC_MoveChild, 1,
 
7627
                OPC_CheckInteger, 16, 
 
7628
                OPC_CheckType, MVT::i32,
 
7629
                OPC_MoveParent,
 
7630
                OPC_MoveParent,
 
7631
                OPC_RecordChild1,
 
7632
                OPC_CheckType, MVT::i32,
 
7633
                OPC_CheckPatternPredicate, 7,
 
7634
                OPC_EmitInteger, MVT::i32, 14, 
 
7635
                OPC_EmitRegister, MVT::i32, 0 ,
 
7636
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7637
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7638
              38, 
 
7639
                OPC_MoveChild, 0,
 
7640
                OPC_CheckPredicate, 10,
 
7641
                OPC_MoveParent,
 
7642
                OPC_RecordChild1,
 
7643
                OPC_MoveParent,
 
7644
                OPC_MoveChild, 1,
 
7645
                OPC_CheckInteger, 16, 
 
7646
                OPC_CheckType, MVT::i32,
 
7647
                OPC_MoveParent,
 
7648
                OPC_MoveParent,
 
7649
                OPC_RecordChild1,
 
7650
                OPC_CheckType, MVT::i32,
 
7651
                OPC_CheckPatternPredicate, 7,
 
7652
                OPC_EmitInteger, MVT::i32, 14, 
 
7653
                OPC_EmitRegister, MVT::i32, 0 ,
 
7654
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLAWB), 0,
 
7655
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
7656
              0, 
 
7657
            13|128,1, 
 
7658
              OPC_RecordChild0,
 
7659
              OPC_MoveChild, 1,
 
7660
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7661
              OPC_MoveChild, 0,
 
7662
              OPC_CheckOpcode, ISD::ROTR,
 
7663
              OPC_RecordChild0,
 
7664
              OPC_RecordChild1,
 
7665
              OPC_MoveChild, 1,
 
7666
              OPC_CheckOpcode, ISD::Constant,
 
7667
              OPC_CheckPredicate, 9,
 
7668
              OPC_CheckType, MVT::i32,
 
7669
              OPC_MoveParent,
 
7670
              OPC_MoveParent,
 
7671
              OPC_MoveChild, 1,
 
7672
              OPC_Scope, 28, 
 
7673
                OPC_CheckValueType, MVT::i8,
 
7674
                OPC_MoveParent,
 
7675
                OPC_MoveParent,
 
7676
                OPC_CheckType, MVT::i32,
 
7677
                OPC_CheckPatternPredicate, 0,
 
7678
                OPC_EmitConvertToTarget, 2,
 
7679
                OPC_EmitInteger, MVT::i32, 14, 
 
7680
                OPC_EmitRegister, MVT::i32, 0 ,
 
7681
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr_rot), 0,
 
7682
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
7683
              28, 
 
7684
                OPC_CheckValueType, MVT::i16,
 
7685
                OPC_MoveParent,
 
7686
                OPC_MoveParent,
 
7687
                OPC_CheckType, MVT::i32,
 
7688
                OPC_CheckPatternPredicate, 0,
 
7689
                OPC_EmitConvertToTarget, 2,
 
7690
                OPC_EmitInteger, MVT::i32, 14, 
 
7691
                OPC_EmitRegister, MVT::i32, 0 ,
 
7692
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr_rot), 0,
 
7693
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
7694
              28, 
 
7695
                OPC_CheckValueType, MVT::i8,
 
7696
                OPC_MoveParent,
 
7697
                OPC_MoveParent,
 
7698
                OPC_CheckType, MVT::i32,
 
7699
                OPC_CheckPatternPredicate, 2,
 
7700
                OPC_EmitConvertToTarget, 2,
 
7701
                OPC_EmitInteger, MVT::i32, 14, 
 
7702
                OPC_EmitRegister, MVT::i32, 0 ,
 
7703
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr_rot), 0,
 
7704
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
7705
              28, 
 
7706
                OPC_CheckValueType, MVT::i16,
 
7707
                OPC_MoveParent,
 
7708
                OPC_MoveParent,
 
7709
                OPC_CheckType, MVT::i32,
 
7710
                OPC_CheckPatternPredicate, 2,
 
7711
                OPC_EmitConvertToTarget, 2,
 
7712
                OPC_EmitInteger, MVT::i32, 14, 
 
7713
                OPC_EmitRegister, MVT::i32, 0 ,
 
7714
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr_rot), 0,
 
7715
                    1, MVT::i32, 5, 0, 1, 3, 4, 5, 
 
7716
              0, 
 
7717
            16|128,1, 
 
7718
              OPC_MoveChild, 0,
 
7719
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7720
              OPC_MoveChild, 0,
 
7721
              OPC_CheckOpcode, ISD::ROTR,
 
7722
              OPC_RecordChild0,
 
7723
              OPC_RecordChild1,
 
7724
              OPC_MoveChild, 1,
 
7725
              OPC_CheckOpcode, ISD::Constant,
 
7726
              OPC_CheckPredicate, 9,
 
7727
              OPC_CheckType, MVT::i32,
 
7728
              OPC_MoveParent,
 
7729
              OPC_MoveParent,
 
7730
              OPC_MoveChild, 1,
 
7731
              OPC_Scope, 29, 
 
7732
                OPC_CheckValueType, MVT::i8,
 
7733
                OPC_MoveParent,
 
7734
                OPC_MoveParent,
 
7735
                OPC_RecordChild1,
 
7736
                OPC_CheckType, MVT::i32,
 
7737
                OPC_CheckPatternPredicate, 0,
 
7738
                OPC_EmitConvertToTarget, 1,
 
7739
                OPC_EmitInteger, MVT::i32, 14, 
 
7740
                OPC_EmitRegister, MVT::i32, 0 ,
 
7741
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr_rot), 0,
 
7742
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
7743
              29, 
 
7744
                OPC_CheckValueType, MVT::i16,
 
7745
                OPC_MoveParent,
 
7746
                OPC_MoveParent,
 
7747
                OPC_RecordChild1,
 
7748
                OPC_CheckType, MVT::i32,
 
7749
                OPC_CheckPatternPredicate, 0,
 
7750
                OPC_EmitConvertToTarget, 1,
 
7751
                OPC_EmitInteger, MVT::i32, 14, 
 
7752
                OPC_EmitRegister, MVT::i32, 0 ,
 
7753
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr_rot), 0,
 
7754
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
7755
              29, 
 
7756
                OPC_CheckValueType, MVT::i8,
 
7757
                OPC_MoveParent,
 
7758
                OPC_MoveParent,
 
7759
                OPC_RecordChild1,
 
7760
                OPC_CheckType, MVT::i32,
 
7761
                OPC_CheckPatternPredicate, 2,
 
7762
                OPC_EmitConvertToTarget, 1,
 
7763
                OPC_EmitInteger, MVT::i32, 14, 
 
7764
                OPC_EmitRegister, MVT::i32, 0 ,
 
7765
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr_rot), 0,
 
7766
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
7767
              29, 
 
7768
                OPC_CheckValueType, MVT::i16,
 
7769
                OPC_MoveParent,
 
7770
                OPC_MoveParent,
 
7771
                OPC_RecordChild1,
 
7772
                OPC_CheckType, MVT::i32,
 
7773
                OPC_CheckPatternPredicate, 2,
 
7774
                OPC_EmitConvertToTarget, 1,
 
7775
                OPC_EmitInteger, MVT::i32, 14, 
 
7776
                OPC_EmitRegister, MVT::i32, 0 ,
 
7777
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr_rot), 0,
 
7778
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
7779
              0, 
 
7780
            18|128,2, 
 
7781
              OPC_RecordChild0,
 
7782
              OPC_Scope, 49, 
 
7783
                OPC_MoveChild, 1,
 
7784
                OPC_CheckOpcode, ISD::MUL,
 
7785
                OPC_MoveChild, 0,
 
7786
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7787
                OPC_RecordChild0,
 
7788
                OPC_MoveChild, 1,
 
7789
                OPC_CheckValueType, MVT::i16,
 
7790
                OPC_MoveParent,
 
7791
                OPC_MoveParent,
 
7792
                OPC_MoveChild, 1,
 
7793
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7794
                OPC_RecordChild0,
 
7795
                OPC_MoveChild, 1,
 
7796
                OPC_CheckValueType, MVT::i16,
 
7797
                OPC_MoveParent,
 
7798
                OPC_MoveParent,
 
7799
                OPC_MoveParent,
 
7800
                OPC_CheckType, MVT::i32,
 
7801
                OPC_CheckPatternPredicate, 7,
 
7802
                OPC_EmitInteger, MVT::i32, 14, 
 
7803
                OPC_EmitRegister, MVT::i32, 0 ,
 
7804
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
7805
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
7806
              30, 
 
7807
                OPC_RecordChild1,
 
7808
                OPC_CheckType, MVT::i32,
 
7809
                OPC_CheckPatternPredicate, 2,
 
7810
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
7811
                OPC_EmitInteger, MVT::i32, 14, 
 
7812
                OPC_EmitRegister, MVT::i32, 0 ,
 
7813
                OPC_EmitRegister, MVT::i32, 0 ,
 
7814
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDrs), 0,
 
7815
                    1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
7816
              60|128,1, 
 
7817
                OPC_MoveChild, 1,
 
7818
                OPC_CheckOpcode, ISD::MUL,
 
7819
                OPC_Scope, 45, 
 
7820
                  OPC_MoveChild, 0,
 
7821
                  OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7822
                  OPC_RecordChild0,
 
7823
                  OPC_MoveChild, 1,
 
7824
                  OPC_CheckValueType, MVT::i16,
 
7825
                  OPC_MoveParent,
 
7826
                  OPC_MoveParent,
 
7827
                  OPC_MoveChild, 1,
 
7828
                  OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7829
                  OPC_RecordChild0,
 
7830
                  OPC_MoveChild, 1,
 
7831
                  OPC_CheckValueType, MVT::i16,
 
7832
                  OPC_MoveParent,
 
7833
                  OPC_MoveParent,
 
7834
                  OPC_MoveParent,
 
7835
                  OPC_CheckType, MVT::i32,
 
7836
                  OPC_CheckPatternPredicate, 2,
 
7837
                  OPC_EmitInteger, MVT::i32, 14, 
 
7838
                  OPC_EmitRegister, MVT::i32, 0 ,
 
7839
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABB), 0,
 
7840
                      1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
7841
                6|128,1, 
 
7842
                  OPC_RecordChild0,
 
7843
                  OPC_MoveChild, 1,
 
7844
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
7845
                  OPC_RecordChild0,
 
7846
                  OPC_Scope, 62, 
 
7847
                    OPC_CheckChild0Type, MVT::v4i16,
 
7848
                    OPC_RecordChild1,
 
7849
                    OPC_MoveChild, 1,
 
7850
                    OPC_CheckOpcode, ISD::Constant,
 
7851
                    OPC_MoveParent,
 
7852
                    OPC_MoveParent,
 
7853
                    OPC_MoveParent,
 
7854
                    OPC_SwitchType , 23,  MVT::v4i16,
 
7855
                      OPC_CheckPatternPredicate, 3,
 
7856
                      OPC_EmitConvertToTarget, 3,
 
7857
                      OPC_EmitInteger, MVT::i32, 14, 
 
7858
                      OPC_EmitRegister, MVT::i32, 0 ,
 
7859
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
 
7860
                          1, MVT::v4i16, 6, 0, 1, 2, 4, 5, 6, 
 
7861
                    23,  MVT::v8i16,
 
7862
                      OPC_CheckPatternPredicate, 3,
 
7863
                      OPC_EmitConvertToTarget, 3,
 
7864
                      OPC_EmitInteger, MVT::i32, 14, 
 
7865
                      OPC_EmitRegister, MVT::i32, 0 ,
 
7866
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
7867
                          1, MVT::v8i16, 6, 0, 1, 2, 4, 5, 6, 
 
7868
                    0, 
 
7869
                  62, 
 
7870
                    OPC_CheckChild0Type, MVT::v2i32,
 
7871
                    OPC_RecordChild1,
 
7872
                    OPC_MoveChild, 1,
 
7873
                    OPC_CheckOpcode, ISD::Constant,
 
7874
                    OPC_MoveParent,
 
7875
                    OPC_MoveParent,
 
7876
                    OPC_MoveParent,
 
7877
                    OPC_SwitchType , 23,  MVT::v2i32,
 
7878
                      OPC_CheckPatternPredicate, 3,
 
7879
                      OPC_EmitConvertToTarget, 3,
 
7880
                      OPC_EmitInteger, MVT::i32, 14, 
 
7881
                      OPC_EmitRegister, MVT::i32, 0 ,
 
7882
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
 
7883
                          1, MVT::v2i32, 6, 0, 1, 2, 4, 5, 6, 
 
7884
                    23,  MVT::v4i32,
 
7885
                      OPC_CheckPatternPredicate, 3,
 
7886
                      OPC_EmitConvertToTarget, 3,
 
7887
                      OPC_EmitInteger, MVT::i32, 14, 
 
7888
                      OPC_EmitRegister, MVT::i32, 0 ,
 
7889
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
7890
                          1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
7891
                    0, 
 
7892
                  0, 
 
7893
                0, 
 
7894
              0, 
 
7895
            50, 
 
7896
              OPC_MoveChild, 0,
 
7897
              OPC_CheckOpcode, ISD::MUL,
 
7898
              OPC_MoveChild, 0,
 
7899
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7900
              OPC_RecordChild0,
 
7901
              OPC_MoveChild, 1,
 
7902
              OPC_CheckValueType, MVT::i16,
 
7903
              OPC_MoveParent,
 
7904
              OPC_MoveParent,
 
7905
              OPC_MoveChild, 1,
 
7906
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7907
              OPC_RecordChild0,
 
7908
              OPC_MoveChild, 1,
 
7909
              OPC_CheckValueType, MVT::i16,
 
7910
              OPC_MoveParent,
 
7911
              OPC_MoveParent,
 
7912
              OPC_MoveParent,
 
7913
              OPC_RecordChild1,
 
7914
              OPC_CheckType, MVT::i32,
 
7915
              OPC_CheckPatternPredicate, 7,
 
7916
              OPC_EmitInteger, MVT::i32, 14, 
 
7917
              OPC_EmitRegister, MVT::i32, 0 ,
 
7918
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
7919
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7920
            31, 
 
7921
              OPC_RecordChild0,
 
7922
              OPC_RecordChild1,
 
7923
              OPC_CheckType, MVT::i32,
 
7924
              OPC_CheckPatternPredicate, 2,
 
7925
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
7926
              OPC_EmitInteger, MVT::i32, 14, 
 
7927
              OPC_EmitRegister, MVT::i32, 0 ,
 
7928
              OPC_EmitRegister, MVT::i32, 0 ,
 
7929
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDrs), 0,
 
7930
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
7931
            50, 
 
7932
              OPC_MoveChild, 0,
 
7933
              OPC_CheckOpcode, ISD::MUL,
 
7934
              OPC_MoveChild, 0,
 
7935
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7936
              OPC_RecordChild0,
 
7937
              OPC_MoveChild, 1,
 
7938
              OPC_CheckValueType, MVT::i16,
 
7939
              OPC_MoveParent,
 
7940
              OPC_MoveParent,
 
7941
              OPC_MoveChild, 1,
 
7942
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
7943
              OPC_RecordChild0,
 
7944
              OPC_MoveChild, 1,
 
7945
              OPC_CheckValueType, MVT::i16,
 
7946
              OPC_MoveParent,
 
7947
              OPC_MoveParent,
 
7948
              OPC_MoveParent,
 
7949
              OPC_RecordChild1,
 
7950
              OPC_CheckType, MVT::i32,
 
7951
              OPC_CheckPatternPredicate, 2,
 
7952
              OPC_EmitInteger, MVT::i32, 14, 
 
7953
              OPC_EmitRegister, MVT::i32, 0 ,
 
7954
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMLABB), 0,
 
7955
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
7956
            46, 
 
7957
              OPC_RecordChild0,
 
7958
              OPC_MoveChild, 1,
 
7959
              OPC_CheckOpcode, ISD::MUL,
 
7960
              OPC_MoveChild, 0,
 
7961
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
7962
              OPC_RecordChild0,
 
7963
              OPC_CheckChild0Type, MVT::v4i16,
 
7964
              OPC_RecordChild1,
 
7965
              OPC_MoveChild, 1,
 
7966
              OPC_CheckOpcode, ISD::Constant,
 
7967
              OPC_MoveParent,
 
7968
              OPC_MoveParent,
 
7969
              OPC_RecordChild1,
 
7970
              OPC_MoveParent,
 
7971
              OPC_CheckType, MVT::v4i16,
 
7972
              OPC_CheckPatternPredicate, 3,
 
7973
              OPC_EmitConvertToTarget, 2,
 
7974
              OPC_EmitInteger, MVT::i32, 14, 
 
7975
              OPC_EmitRegister, MVT::i32, 0 ,
 
7976
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
 
7977
                  1, MVT::v4i16, 6, 0, 3, 1, 4, 5, 6, 
 
7978
            92, 
 
7979
              OPC_MoveChild, 0,
 
7980
              OPC_CheckOpcode, ISD::MUL,
 
7981
              OPC_Scope, 42, 
 
7982
                OPC_RecordChild0,
 
7983
                OPC_MoveChild, 1,
 
7984
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
7985
                OPC_RecordChild0,
 
7986
                OPC_CheckChild0Type, MVT::v4i16,
 
7987
                OPC_RecordChild1,
 
7988
                OPC_MoveChild, 1,
 
7989
                OPC_CheckOpcode, ISD::Constant,
 
7990
                OPC_MoveParent,
 
7991
                OPC_MoveParent,
 
7992
                OPC_MoveParent,
 
7993
                OPC_RecordChild1,
 
7994
                OPC_CheckType, MVT::v4i16,
 
7995
                OPC_CheckPatternPredicate, 3,
 
7996
                OPC_EmitConvertToTarget, 2,
 
7997
                OPC_EmitInteger, MVT::i32, 14, 
 
7998
                OPC_EmitRegister, MVT::i32, 0 ,
 
7999
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
 
8000
                    1, MVT::v4i16, 6, 3, 0, 1, 4, 5, 6, 
 
8001
              42, 
 
8002
                OPC_MoveChild, 0,
 
8003
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8004
                OPC_RecordChild0,
 
8005
                OPC_CheckChild0Type, MVT::v4i16,
 
8006
                OPC_RecordChild1,
 
8007
                OPC_MoveChild, 1,
 
8008
                OPC_CheckOpcode, ISD::Constant,
 
8009
                OPC_MoveParent,
 
8010
                OPC_MoveParent,
 
8011
                OPC_RecordChild1,
 
8012
                OPC_MoveParent,
 
8013
                OPC_RecordChild1,
 
8014
                OPC_CheckType, MVT::v4i16,
 
8015
                OPC_CheckPatternPredicate, 3,
 
8016
                OPC_EmitConvertToTarget, 1,
 
8017
                OPC_EmitInteger, MVT::i32, 14, 
 
8018
                OPC_EmitRegister, MVT::i32, 0 ,
 
8019
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i16), 0,
 
8020
                    1, MVT::v4i16, 6, 3, 2, 0, 4, 5, 6, 
 
8021
              0, 
 
8022
            46, 
 
8023
              OPC_RecordChild0,
 
8024
              OPC_MoveChild, 1,
 
8025
              OPC_CheckOpcode, ISD::MUL,
 
8026
              OPC_MoveChild, 0,
 
8027
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8028
              OPC_RecordChild0,
 
8029
              OPC_CheckChild0Type, MVT::v2i32,
 
8030
              OPC_RecordChild1,
 
8031
              OPC_MoveChild, 1,
 
8032
              OPC_CheckOpcode, ISD::Constant,
 
8033
              OPC_MoveParent,
 
8034
              OPC_MoveParent,
 
8035
              OPC_RecordChild1,
 
8036
              OPC_MoveParent,
 
8037
              OPC_CheckType, MVT::v2i32,
 
8038
              OPC_CheckPatternPredicate, 3,
 
8039
              OPC_EmitConvertToTarget, 2,
 
8040
              OPC_EmitInteger, MVT::i32, 14, 
 
8041
              OPC_EmitRegister, MVT::i32, 0 ,
 
8042
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
 
8043
                  1, MVT::v2i32, 6, 0, 3, 1, 4, 5, 6, 
 
8044
            92, 
 
8045
              OPC_MoveChild, 0,
 
8046
              OPC_CheckOpcode, ISD::MUL,
 
8047
              OPC_Scope, 42, 
 
8048
                OPC_RecordChild0,
 
8049
                OPC_MoveChild, 1,
 
8050
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8051
                OPC_RecordChild0,
 
8052
                OPC_CheckChild0Type, MVT::v2i32,
 
8053
                OPC_RecordChild1,
 
8054
                OPC_MoveChild, 1,
 
8055
                OPC_CheckOpcode, ISD::Constant,
 
8056
                OPC_MoveParent,
 
8057
                OPC_MoveParent,
 
8058
                OPC_MoveParent,
 
8059
                OPC_RecordChild1,
 
8060
                OPC_CheckType, MVT::v2i32,
 
8061
                OPC_CheckPatternPredicate, 3,
 
8062
                OPC_EmitConvertToTarget, 2,
 
8063
                OPC_EmitInteger, MVT::i32, 14, 
 
8064
                OPC_EmitRegister, MVT::i32, 0 ,
 
8065
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
 
8066
                    1, MVT::v2i32, 6, 3, 0, 1, 4, 5, 6, 
 
8067
              42, 
 
8068
                OPC_MoveChild, 0,
 
8069
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8070
                OPC_RecordChild0,
 
8071
                OPC_CheckChild0Type, MVT::v2i32,
 
8072
                OPC_RecordChild1,
 
8073
                OPC_MoveChild, 1,
 
8074
                OPC_CheckOpcode, ISD::Constant,
 
8075
                OPC_MoveParent,
 
8076
                OPC_MoveParent,
 
8077
                OPC_RecordChild1,
 
8078
                OPC_MoveParent,
 
8079
                OPC_RecordChild1,
 
8080
                OPC_CheckType, MVT::v2i32,
 
8081
                OPC_CheckPatternPredicate, 3,
 
8082
                OPC_EmitConvertToTarget, 1,
 
8083
                OPC_EmitInteger, MVT::i32, 14, 
 
8084
                OPC_EmitRegister, MVT::i32, 0 ,
 
8085
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv2i32), 0,
 
8086
                    1, MVT::v2i32, 6, 3, 2, 0, 4, 5, 6, 
 
8087
              0, 
 
8088
            46, 
 
8089
              OPC_RecordChild0,
 
8090
              OPC_MoveChild, 1,
 
8091
              OPC_CheckOpcode, ISD::MUL,
 
8092
              OPC_MoveChild, 0,
 
8093
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8094
              OPC_RecordChild0,
 
8095
              OPC_CheckChild0Type, MVT::v4i16,
 
8096
              OPC_RecordChild1,
 
8097
              OPC_MoveChild, 1,
 
8098
              OPC_CheckOpcode, ISD::Constant,
 
8099
              OPC_MoveParent,
 
8100
              OPC_MoveParent,
 
8101
              OPC_RecordChild1,
 
8102
              OPC_MoveParent,
 
8103
              OPC_CheckType, MVT::v8i16,
 
8104
              OPC_CheckPatternPredicate, 3,
 
8105
              OPC_EmitConvertToTarget, 2,
 
8106
              OPC_EmitInteger, MVT::i32, 14, 
 
8107
              OPC_EmitRegister, MVT::i32, 0 ,
 
8108
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8109
                  1, MVT::v8i16, 6, 0, 3, 1, 4, 5, 6, 
 
8110
            92, 
 
8111
              OPC_MoveChild, 0,
 
8112
              OPC_CheckOpcode, ISD::MUL,
 
8113
              OPC_Scope, 42, 
 
8114
                OPC_RecordChild0,
 
8115
                OPC_MoveChild, 1,
 
8116
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8117
                OPC_RecordChild0,
 
8118
                OPC_CheckChild0Type, MVT::v4i16,
 
8119
                OPC_RecordChild1,
 
8120
                OPC_MoveChild, 1,
 
8121
                OPC_CheckOpcode, ISD::Constant,
 
8122
                OPC_MoveParent,
 
8123
                OPC_MoveParent,
 
8124
                OPC_MoveParent,
 
8125
                OPC_RecordChild1,
 
8126
                OPC_CheckType, MVT::v8i16,
 
8127
                OPC_CheckPatternPredicate, 3,
 
8128
                OPC_EmitConvertToTarget, 2,
 
8129
                OPC_EmitInteger, MVT::i32, 14, 
 
8130
                OPC_EmitRegister, MVT::i32, 0 ,
 
8131
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8132
                    1, MVT::v8i16, 6, 3, 0, 1, 4, 5, 6, 
 
8133
              42, 
 
8134
                OPC_MoveChild, 0,
 
8135
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8136
                OPC_RecordChild0,
 
8137
                OPC_CheckChild0Type, MVT::v4i16,
 
8138
                OPC_RecordChild1,
 
8139
                OPC_MoveChild, 1,
 
8140
                OPC_CheckOpcode, ISD::Constant,
 
8141
                OPC_MoveParent,
 
8142
                OPC_MoveParent,
 
8143
                OPC_RecordChild1,
 
8144
                OPC_MoveParent,
 
8145
                OPC_RecordChild1,
 
8146
                OPC_CheckType, MVT::v8i16,
 
8147
                OPC_CheckPatternPredicate, 3,
 
8148
                OPC_EmitConvertToTarget, 1,
 
8149
                OPC_EmitInteger, MVT::i32, 14, 
 
8150
                OPC_EmitRegister, MVT::i32, 0 ,
 
8151
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8152
                    1, MVT::v8i16, 6, 3, 2, 0, 4, 5, 6, 
 
8153
              0, 
 
8154
            46, 
 
8155
              OPC_RecordChild0,
 
8156
              OPC_MoveChild, 1,
 
8157
              OPC_CheckOpcode, ISD::MUL,
 
8158
              OPC_MoveChild, 0,
 
8159
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8160
              OPC_RecordChild0,
 
8161
              OPC_CheckChild0Type, MVT::v2i32,
 
8162
              OPC_RecordChild1,
 
8163
              OPC_MoveChild, 1,
 
8164
              OPC_CheckOpcode, ISD::Constant,
 
8165
              OPC_MoveParent,
 
8166
              OPC_MoveParent,
 
8167
              OPC_RecordChild1,
 
8168
              OPC_MoveParent,
 
8169
              OPC_CheckType, MVT::v4i32,
 
8170
              OPC_CheckPatternPredicate, 3,
 
8171
              OPC_EmitConvertToTarget, 2,
 
8172
              OPC_EmitInteger, MVT::i32, 14, 
 
8173
              OPC_EmitRegister, MVT::i32, 0 ,
 
8174
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8175
                  1, MVT::v4i32, 6, 0, 3, 1, 4, 5, 6, 
 
8176
            92, 
 
8177
              OPC_MoveChild, 0,
 
8178
              OPC_CheckOpcode, ISD::MUL,
 
8179
              OPC_Scope, 42, 
 
8180
                OPC_RecordChild0,
 
8181
                OPC_MoveChild, 1,
 
8182
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8183
                OPC_RecordChild0,
 
8184
                OPC_CheckChild0Type, MVT::v2i32,
 
8185
                OPC_RecordChild1,
 
8186
                OPC_MoveChild, 1,
 
8187
                OPC_CheckOpcode, ISD::Constant,
 
8188
                OPC_MoveParent,
 
8189
                OPC_MoveParent,
 
8190
                OPC_MoveParent,
 
8191
                OPC_RecordChild1,
 
8192
                OPC_CheckType, MVT::v4i32,
 
8193
                OPC_CheckPatternPredicate, 3,
 
8194
                OPC_EmitConvertToTarget, 2,
 
8195
                OPC_EmitInteger, MVT::i32, 14, 
 
8196
                OPC_EmitRegister, MVT::i32, 0 ,
 
8197
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8198
                    1, MVT::v4i32, 6, 3, 0, 1, 4, 5, 6, 
 
8199
              42, 
 
8200
                OPC_MoveChild, 0,
 
8201
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8202
                OPC_RecordChild0,
 
8203
                OPC_CheckChild0Type, MVT::v2i32,
 
8204
                OPC_RecordChild1,
 
8205
                OPC_MoveChild, 1,
 
8206
                OPC_CheckOpcode, ISD::Constant,
 
8207
                OPC_MoveParent,
 
8208
                OPC_MoveParent,
 
8209
                OPC_RecordChild1,
 
8210
                OPC_MoveParent,
 
8211
                OPC_RecordChild1,
 
8212
                OPC_CheckType, MVT::v4i32,
 
8213
                OPC_CheckPatternPredicate, 3,
 
8214
                OPC_EmitConvertToTarget, 1,
 
8215
                OPC_EmitInteger, MVT::i32, 14, 
 
8216
                OPC_EmitRegister, MVT::i32, 0 ,
 
8217
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8218
                    1, MVT::v4i32, 6, 3, 2, 0, 4, 5, 6, 
 
8219
              0, 
 
8220
            47|128,1, 
 
8221
              OPC_RecordChild0,
 
8222
              OPC_MoveChild, 1,
 
8223
              OPC_CheckOpcode, ISD::MUL,
 
8224
              OPC_Scope, 110, 
 
8225
                OPC_RecordChild0,
 
8226
                OPC_MoveChild, 1,
 
8227
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8228
                OPC_RecordChild0,
 
8229
                OPC_Scope, 50, 
 
8230
                  OPC_CheckChild0Type, MVT::v8i16,
 
8231
                  OPC_RecordChild1,
 
8232
                  OPC_MoveChild, 1,
 
8233
                  OPC_CheckOpcode, ISD::Constant,
 
8234
                  OPC_MoveParent,
 
8235
                  OPC_MoveParent,
 
8236
                  OPC_MoveParent,
 
8237
                  OPC_CheckType, MVT::v8i16,
 
8238
                  OPC_EmitConvertToTarget, 3,
 
8239
                  OPC_EmitNodeXForm, 6, 4,
 
8240
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8241
                      1, MVT::v4i16, 2, 2, 5, 
 
8242
                  OPC_EmitConvertToTarget, 3,
 
8243
                  OPC_EmitNodeXForm, 7, 7,
 
8244
                  OPC_EmitInteger, MVT::i32, 14, 
 
8245
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8246
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8247
                      1, MVT::v8i16, 6, 0, 1, 6, 8, 9, 10, 
 
8248
                50, 
 
8249
                  OPC_CheckChild0Type, MVT::v4i32,
 
8250
                  OPC_RecordChild1,
 
8251
                  OPC_MoveChild, 1,
 
8252
                  OPC_CheckOpcode, ISD::Constant,
 
8253
                  OPC_MoveParent,
 
8254
                  OPC_MoveParent,
 
8255
                  OPC_MoveParent,
 
8256
                  OPC_CheckType, MVT::v4i32,
 
8257
                  OPC_EmitConvertToTarget, 3,
 
8258
                  OPC_EmitNodeXForm, 8, 4,
 
8259
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8260
                      1, MVT::v2i32, 2, 2, 5, 
 
8261
                  OPC_EmitConvertToTarget, 3,
 
8262
                  OPC_EmitNodeXForm, 9, 7,
 
8263
                  OPC_EmitInteger, MVT::i32, 14, 
 
8264
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8265
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8266
                      1, MVT::v4i32, 6, 0, 1, 6, 8, 9, 10, 
 
8267
                0, 
 
8268
              56, 
 
8269
                OPC_MoveChild, 0,
 
8270
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8271
                OPC_RecordChild0,
 
8272
                OPC_CheckChild0Type, MVT::v8i16,
 
8273
                OPC_RecordChild1,
 
8274
                OPC_MoveChild, 1,
 
8275
                OPC_CheckOpcode, ISD::Constant,
 
8276
                OPC_MoveParent,
 
8277
                OPC_MoveParent,
 
8278
                OPC_RecordChild1,
 
8279
                OPC_MoveParent,
 
8280
                OPC_CheckType, MVT::v8i16,
 
8281
                OPC_EmitConvertToTarget, 2,
 
8282
                OPC_EmitNodeXForm, 6, 4,
 
8283
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8284
                    1, MVT::v4i16, 2, 1, 5, 
 
8285
                OPC_EmitConvertToTarget, 2,
 
8286
                OPC_EmitNodeXForm, 7, 7,
 
8287
                OPC_EmitInteger, MVT::i32, 14, 
 
8288
                OPC_EmitRegister, MVT::i32, 0 ,
 
8289
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8290
                    1, MVT::v8i16, 6, 0, 3, 6, 8, 9, 10, 
 
8291
              0, 
 
8292
            122, 
 
8293
              OPC_MoveChild, 0,
 
8294
              OPC_CheckOpcode, ISD::MUL,
 
8295
              OPC_Scope, 57, 
 
8296
                OPC_RecordChild0,
 
8297
                OPC_MoveChild, 1,
 
8298
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8299
                OPC_RecordChild0,
 
8300
                OPC_CheckChild0Type, MVT::v8i16,
 
8301
                OPC_RecordChild1,
 
8302
                OPC_MoveChild, 1,
 
8303
                OPC_CheckOpcode, ISD::Constant,
 
8304
                OPC_MoveParent,
 
8305
                OPC_MoveParent,
 
8306
                OPC_MoveParent,
 
8307
                OPC_RecordChild1,
 
8308
                OPC_CheckType, MVT::v8i16,
 
8309
                OPC_EmitConvertToTarget, 2,
 
8310
                OPC_EmitNodeXForm, 6, 4,
 
8311
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8312
                    1, MVT::v4i16, 2, 1, 5, 
 
8313
                OPC_EmitConvertToTarget, 2,
 
8314
                OPC_EmitNodeXForm, 7, 7,
 
8315
                OPC_EmitInteger, MVT::i32, 14, 
 
8316
                OPC_EmitRegister, MVT::i32, 0 ,
 
8317
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8318
                    1, MVT::v8i16, 6, 3, 0, 6, 8, 9, 10, 
 
8319
              57, 
 
8320
                OPC_MoveChild, 0,
 
8321
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8322
                OPC_RecordChild0,
 
8323
                OPC_CheckChild0Type, MVT::v8i16,
 
8324
                OPC_RecordChild1,
 
8325
                OPC_MoveChild, 1,
 
8326
                OPC_CheckOpcode, ISD::Constant,
 
8327
                OPC_MoveParent,
 
8328
                OPC_MoveParent,
 
8329
                OPC_RecordChild1,
 
8330
                OPC_MoveParent,
 
8331
                OPC_RecordChild1,
 
8332
                OPC_CheckType, MVT::v8i16,
 
8333
                OPC_EmitConvertToTarget, 1,
 
8334
                OPC_EmitNodeXForm, 6, 4,
 
8335
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8336
                    1, MVT::v4i16, 2, 0, 5, 
 
8337
                OPC_EmitConvertToTarget, 1,
 
8338
                OPC_EmitNodeXForm, 7, 7,
 
8339
                OPC_EmitInteger, MVT::i32, 14, 
 
8340
                OPC_EmitRegister, MVT::i32, 0 ,
 
8341
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv8i16), 0,
 
8342
                    1, MVT::v8i16, 6, 3, 2, 6, 8, 9, 10, 
 
8343
              0, 
 
8344
            61, 
 
8345
              OPC_RecordChild0,
 
8346
              OPC_MoveChild, 1,
 
8347
              OPC_CheckOpcode, ISD::MUL,
 
8348
              OPC_MoveChild, 0,
 
8349
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8350
              OPC_RecordChild0,
 
8351
              OPC_CheckChild0Type, MVT::v4i32,
 
8352
              OPC_RecordChild1,
 
8353
              OPC_MoveChild, 1,
 
8354
              OPC_CheckOpcode, ISD::Constant,
 
8355
              OPC_MoveParent,
 
8356
              OPC_MoveParent,
 
8357
              OPC_RecordChild1,
 
8358
              OPC_MoveParent,
 
8359
              OPC_CheckType, MVT::v4i32,
 
8360
              OPC_EmitConvertToTarget, 2,
 
8361
              OPC_EmitNodeXForm, 8, 4,
 
8362
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8363
                  1, MVT::v2i32, 2, 1, 5, 
 
8364
              OPC_EmitConvertToTarget, 2,
 
8365
              OPC_EmitNodeXForm, 9, 7,
 
8366
              OPC_EmitInteger, MVT::i32, 14, 
 
8367
              OPC_EmitRegister, MVT::i32, 0 ,
 
8368
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8369
                  1, MVT::v4i32, 6, 0, 3, 6, 8, 9, 10, 
 
8370
            122, 
 
8371
              OPC_MoveChild, 0,
 
8372
              OPC_CheckOpcode, ISD::MUL,
 
8373
              OPC_Scope, 57, 
 
8374
                OPC_RecordChild0,
 
8375
                OPC_MoveChild, 1,
 
8376
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8377
                OPC_RecordChild0,
 
8378
                OPC_CheckChild0Type, MVT::v4i32,
 
8379
                OPC_RecordChild1,
 
8380
                OPC_MoveChild, 1,
 
8381
                OPC_CheckOpcode, ISD::Constant,
 
8382
                OPC_MoveParent,
 
8383
                OPC_MoveParent,
 
8384
                OPC_MoveParent,
 
8385
                OPC_RecordChild1,
 
8386
                OPC_CheckType, MVT::v4i32,
 
8387
                OPC_EmitConvertToTarget, 2,
 
8388
                OPC_EmitNodeXForm, 8, 4,
 
8389
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8390
                    1, MVT::v2i32, 2, 1, 5, 
 
8391
                OPC_EmitConvertToTarget, 2,
 
8392
                OPC_EmitNodeXForm, 9, 7,
 
8393
                OPC_EmitInteger, MVT::i32, 14, 
 
8394
                OPC_EmitRegister, MVT::i32, 0 ,
 
8395
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8396
                    1, MVT::v4i32, 6, 3, 0, 6, 8, 9, 10, 
 
8397
              57, 
 
8398
                OPC_MoveChild, 0,
 
8399
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
8400
                OPC_RecordChild0,
 
8401
                OPC_CheckChild0Type, MVT::v4i32,
 
8402
                OPC_RecordChild1,
 
8403
                OPC_MoveChild, 1,
 
8404
                OPC_CheckOpcode, ISD::Constant,
 
8405
                OPC_MoveParent,
 
8406
                OPC_MoveParent,
 
8407
                OPC_RecordChild1,
 
8408
                OPC_MoveParent,
 
8409
                OPC_RecordChild1,
 
8410
                OPC_CheckType, MVT::v4i32,
 
8411
                OPC_EmitConvertToTarget, 1,
 
8412
                OPC_EmitNodeXForm, 8, 4,
 
8413
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
8414
                    1, MVT::v2i32, 2, 0, 5, 
 
8415
                OPC_EmitConvertToTarget, 1,
 
8416
                OPC_EmitNodeXForm, 9, 7,
 
8417
                OPC_EmitInteger, MVT::i32, 14, 
 
8418
                OPC_EmitRegister, MVT::i32, 0 ,
 
8419
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslv4i32), 0,
 
8420
                    1, MVT::v4i32, 6, 3, 2, 6, 8, 9, 10, 
 
8421
              0, 
 
8422
            57|128,6, 
 
8423
              OPC_RecordChild0,
 
8424
              OPC_MoveChild, 1,
 
8425
              OPC_SwitchOpcode , 74|128,1,  ARMISD::VSHRs,
 
8426
                OPC_RecordChild0,
 
8427
                OPC_RecordChild1,
 
8428
                OPC_MoveChild, 1,
 
8429
                OPC_CheckOpcode, ISD::Constant,
 
8430
                OPC_MoveParent,
 
8431
                OPC_MoveParent,
 
8432
                OPC_SwitchType , 22,  MVT::v8i8,
 
8433
                  OPC_CheckPatternPredicate, 3,
 
8434
                  OPC_EmitConvertToTarget, 2,
 
8435
                  OPC_EmitInteger, MVT::i32, 14, 
 
8436
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8437
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i8), 0,
 
8438
                      1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
8439
                22,  MVT::v4i16,
 
8440
                  OPC_CheckPatternPredicate, 3,
 
8441
                  OPC_EmitConvertToTarget, 2,
 
8442
                  OPC_EmitInteger, MVT::i32, 14, 
 
8443
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8444
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i16), 0,
 
8445
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
8446
                22,  MVT::v2i32,
 
8447
                  OPC_CheckPatternPredicate, 3,
 
8448
                  OPC_EmitConvertToTarget, 2,
 
8449
                  OPC_EmitInteger, MVT::i32, 14, 
 
8450
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8451
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i32), 0,
 
8452
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
8453
                22,  MVT::v1i64,
 
8454
                  OPC_CheckPatternPredicate, 3,
 
8455
                  OPC_EmitConvertToTarget, 2,
 
8456
                  OPC_EmitInteger, MVT::i32, 14, 
 
8457
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8458
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv1i64), 0,
 
8459
                      1, MVT::v1i64, 5, 0, 1, 3, 4, 5, 
 
8460
                22,  MVT::v16i8,
 
8461
                  OPC_CheckPatternPredicate, 3,
 
8462
                  OPC_EmitConvertToTarget, 2,
 
8463
                  OPC_EmitInteger, MVT::i32, 14, 
 
8464
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8465
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv16i8), 0,
 
8466
                      1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
8467
                22,  MVT::v8i16,
 
8468
                  OPC_CheckPatternPredicate, 3,
 
8469
                  OPC_EmitConvertToTarget, 2,
 
8470
                  OPC_EmitInteger, MVT::i32, 14, 
 
8471
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8472
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i16), 0,
 
8473
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
8474
                22,  MVT::v4i32,
 
8475
                  OPC_CheckPatternPredicate, 3,
 
8476
                  OPC_EmitConvertToTarget, 2,
 
8477
                  OPC_EmitInteger, MVT::i32, 14, 
 
8478
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8479
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i32), 0,
 
8480
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
8481
                22,  MVT::v2i64,
 
8482
                  OPC_CheckPatternPredicate, 3,
 
8483
                  OPC_EmitConvertToTarget, 2,
 
8484
                  OPC_EmitInteger, MVT::i32, 14, 
 
8485
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8486
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i64), 0,
 
8487
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
8488
                0, 
 
8489
              74|128,1,  ARMISD::VSHRu,
 
8490
                OPC_RecordChild0,
 
8491
                OPC_RecordChild1,
 
8492
                OPC_MoveChild, 1,
 
8493
                OPC_CheckOpcode, ISD::Constant,
 
8494
                OPC_MoveParent,
 
8495
                OPC_MoveParent,
 
8496
                OPC_SwitchType , 22,  MVT::v8i8,
 
8497
                  OPC_CheckPatternPredicate, 3,
 
8498
                  OPC_EmitConvertToTarget, 2,
 
8499
                  OPC_EmitInteger, MVT::i32, 14, 
 
8500
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8501
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i8), 0,
 
8502
                      1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
8503
                22,  MVT::v4i16,
 
8504
                  OPC_CheckPatternPredicate, 3,
 
8505
                  OPC_EmitConvertToTarget, 2,
 
8506
                  OPC_EmitInteger, MVT::i32, 14, 
 
8507
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8508
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i16), 0,
 
8509
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
8510
                22,  MVT::v2i32,
 
8511
                  OPC_CheckPatternPredicate, 3,
 
8512
                  OPC_EmitConvertToTarget, 2,
 
8513
                  OPC_EmitInteger, MVT::i32, 14, 
 
8514
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8515
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i32), 0,
 
8516
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
8517
                22,  MVT::v1i64,
 
8518
                  OPC_CheckPatternPredicate, 3,
 
8519
                  OPC_EmitConvertToTarget, 2,
 
8520
                  OPC_EmitInteger, MVT::i32, 14, 
 
8521
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8522
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv1i64), 0,
 
8523
                      1, MVT::v1i64, 5, 0, 1, 3, 4, 5, 
 
8524
                22,  MVT::v16i8,
 
8525
                  OPC_CheckPatternPredicate, 3,
 
8526
                  OPC_EmitConvertToTarget, 2,
 
8527
                  OPC_EmitInteger, MVT::i32, 14, 
 
8528
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8529
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv16i8), 0,
 
8530
                      1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
8531
                22,  MVT::v8i16,
 
8532
                  OPC_CheckPatternPredicate, 3,
 
8533
                  OPC_EmitConvertToTarget, 2,
 
8534
                  OPC_EmitInteger, MVT::i32, 14, 
 
8535
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8536
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i16), 0,
 
8537
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
8538
                22,  MVT::v4i32,
 
8539
                  OPC_CheckPatternPredicate, 3,
 
8540
                  OPC_EmitConvertToTarget, 2,
 
8541
                  OPC_EmitInteger, MVT::i32, 14, 
 
8542
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8543
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i32), 0,
 
8544
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
8545
                22,  MVT::v2i64,
 
8546
                  OPC_CheckPatternPredicate, 3,
 
8547
                  OPC_EmitConvertToTarget, 2,
 
8548
                  OPC_EmitInteger, MVT::i32, 14, 
 
8549
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8550
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i64), 0,
 
8551
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
8552
                0, 
 
8553
              74|128,1,  ARMISD::VRSHRs,
 
8554
                OPC_RecordChild0,
 
8555
                OPC_RecordChild1,
 
8556
                OPC_MoveChild, 1,
 
8557
                OPC_CheckOpcode, ISD::Constant,
 
8558
                OPC_MoveParent,
 
8559
                OPC_MoveParent,
 
8560
                OPC_SwitchType , 22,  MVT::v8i8,
 
8561
                  OPC_CheckPatternPredicate, 3,
 
8562
                  OPC_EmitConvertToTarget, 2,
 
8563
                  OPC_EmitInteger, MVT::i32, 14, 
 
8564
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8565
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i8), 0,
 
8566
                      1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
8567
                22,  MVT::v4i16,
 
8568
                  OPC_CheckPatternPredicate, 3,
 
8569
                  OPC_EmitConvertToTarget, 2,
 
8570
                  OPC_EmitInteger, MVT::i32, 14, 
 
8571
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8572
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i16), 0,
 
8573
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
8574
                22,  MVT::v2i32,
 
8575
                  OPC_CheckPatternPredicate, 3,
 
8576
                  OPC_EmitConvertToTarget, 2,
 
8577
                  OPC_EmitInteger, MVT::i32, 14, 
 
8578
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8579
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i32), 0,
 
8580
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
8581
                22,  MVT::v1i64,
 
8582
                  OPC_CheckPatternPredicate, 3,
 
8583
                  OPC_EmitConvertToTarget, 2,
 
8584
                  OPC_EmitInteger, MVT::i32, 14, 
 
8585
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8586
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv1i64), 0,
 
8587
                      1, MVT::v1i64, 5, 0, 1, 3, 4, 5, 
 
8588
                22,  MVT::v16i8,
 
8589
                  OPC_CheckPatternPredicate, 3,
 
8590
                  OPC_EmitConvertToTarget, 2,
 
8591
                  OPC_EmitInteger, MVT::i32, 14, 
 
8592
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8593
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv16i8), 0,
 
8594
                      1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
8595
                22,  MVT::v8i16,
 
8596
                  OPC_CheckPatternPredicate, 3,
 
8597
                  OPC_EmitConvertToTarget, 2,
 
8598
                  OPC_EmitInteger, MVT::i32, 14, 
 
8599
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8600
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i16), 0,
 
8601
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
8602
                22,  MVT::v4i32,
 
8603
                  OPC_CheckPatternPredicate, 3,
 
8604
                  OPC_EmitConvertToTarget, 2,
 
8605
                  OPC_EmitInteger, MVT::i32, 14, 
 
8606
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8607
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i32), 0,
 
8608
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
8609
                22,  MVT::v2i64,
 
8610
                  OPC_CheckPatternPredicate, 3,
 
8611
                  OPC_EmitConvertToTarget, 2,
 
8612
                  OPC_EmitInteger, MVT::i32, 14, 
 
8613
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8614
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i64), 0,
 
8615
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
8616
                0, 
 
8617
              74|128,1,  ARMISD::VRSHRu,
 
8618
                OPC_RecordChild0,
 
8619
                OPC_RecordChild1,
 
8620
                OPC_MoveChild, 1,
 
8621
                OPC_CheckOpcode, ISD::Constant,
 
8622
                OPC_MoveParent,
 
8623
                OPC_MoveParent,
 
8624
                OPC_SwitchType , 22,  MVT::v8i8,
 
8625
                  OPC_CheckPatternPredicate, 3,
 
8626
                  OPC_EmitConvertToTarget, 2,
 
8627
                  OPC_EmitInteger, MVT::i32, 14, 
 
8628
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8629
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i8), 0,
 
8630
                      1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
8631
                22,  MVT::v4i16,
 
8632
                  OPC_CheckPatternPredicate, 3,
 
8633
                  OPC_EmitConvertToTarget, 2,
 
8634
                  OPC_EmitInteger, MVT::i32, 14, 
 
8635
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8636
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i16), 0,
 
8637
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
8638
                22,  MVT::v2i32,
 
8639
                  OPC_CheckPatternPredicate, 3,
 
8640
                  OPC_EmitConvertToTarget, 2,
 
8641
                  OPC_EmitInteger, MVT::i32, 14, 
 
8642
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8643
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i32), 0,
 
8644
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
8645
                22,  MVT::v1i64,
 
8646
                  OPC_CheckPatternPredicate, 3,
 
8647
                  OPC_EmitConvertToTarget, 2,
 
8648
                  OPC_EmitInteger, MVT::i32, 14, 
 
8649
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8650
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv1i64), 0,
 
8651
                      1, MVT::v1i64, 5, 0, 1, 3, 4, 5, 
 
8652
                22,  MVT::v16i8,
 
8653
                  OPC_CheckPatternPredicate, 3,
 
8654
                  OPC_EmitConvertToTarget, 2,
 
8655
                  OPC_EmitInteger, MVT::i32, 14, 
 
8656
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8657
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv16i8), 0,
 
8658
                      1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
8659
                22,  MVT::v8i16,
 
8660
                  OPC_CheckPatternPredicate, 3,
 
8661
                  OPC_EmitConvertToTarget, 2,
 
8662
                  OPC_EmitInteger, MVT::i32, 14, 
 
8663
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8664
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i16), 0,
 
8665
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
8666
                22,  MVT::v4i32,
 
8667
                  OPC_CheckPatternPredicate, 3,
 
8668
                  OPC_EmitConvertToTarget, 2,
 
8669
                  OPC_EmitInteger, MVT::i32, 14, 
 
8670
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8671
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i32), 0,
 
8672
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
8673
                22,  MVT::v2i64,
 
8674
                  OPC_CheckPatternPredicate, 3,
 
8675
                  OPC_EmitConvertToTarget, 2,
 
8676
                  OPC_EmitInteger, MVT::i32, 14, 
 
8677
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8678
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i64), 0,
 
8679
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
8680
                0, 
 
8681
              0, 
 
8682
            60|128,6, 
 
8683
              OPC_MoveChild, 0,
 
8684
              OPC_SwitchOpcode , 75|128,1,  ARMISD::VSHRs,
 
8685
                OPC_RecordChild0,
 
8686
                OPC_RecordChild1,
 
8687
                OPC_MoveChild, 1,
 
8688
                OPC_CheckOpcode, ISD::Constant,
 
8689
                OPC_MoveParent,
 
8690
                OPC_MoveParent,
 
8691
                OPC_RecordChild1,
 
8692
                OPC_SwitchType , 22,  MVT::v8i8,
 
8693
                  OPC_CheckPatternPredicate, 3,
 
8694
                  OPC_EmitConvertToTarget, 1,
 
8695
                  OPC_EmitInteger, MVT::i32, 14, 
 
8696
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8697
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i8), 0,
 
8698
                      1, MVT::v8i8, 5, 2, 0, 3, 4, 5, 
 
8699
                22,  MVT::v4i16,
 
8700
                  OPC_CheckPatternPredicate, 3,
 
8701
                  OPC_EmitConvertToTarget, 1,
 
8702
                  OPC_EmitInteger, MVT::i32, 14, 
 
8703
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8704
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i16), 0,
 
8705
                      1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
8706
                22,  MVT::v2i32,
 
8707
                  OPC_CheckPatternPredicate, 3,
 
8708
                  OPC_EmitConvertToTarget, 1,
 
8709
                  OPC_EmitInteger, MVT::i32, 14, 
 
8710
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8711
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i32), 0,
 
8712
                      1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
8713
                22,  MVT::v1i64,
 
8714
                  OPC_CheckPatternPredicate, 3,
 
8715
                  OPC_EmitConvertToTarget, 1,
 
8716
                  OPC_EmitInteger, MVT::i32, 14, 
 
8717
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8718
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv1i64), 0,
 
8719
                      1, MVT::v1i64, 5, 2, 0, 3, 4, 5, 
 
8720
                22,  MVT::v16i8,
 
8721
                  OPC_CheckPatternPredicate, 3,
 
8722
                  OPC_EmitConvertToTarget, 1,
 
8723
                  OPC_EmitInteger, MVT::i32, 14, 
 
8724
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8725
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv16i8), 0,
 
8726
                      1, MVT::v16i8, 5, 2, 0, 3, 4, 5, 
 
8727
                22,  MVT::v8i16,
 
8728
                  OPC_CheckPatternPredicate, 3,
 
8729
                  OPC_EmitConvertToTarget, 1,
 
8730
                  OPC_EmitInteger, MVT::i32, 14, 
 
8731
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8732
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv8i16), 0,
 
8733
                      1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
8734
                22,  MVT::v4i32,
 
8735
                  OPC_CheckPatternPredicate, 3,
 
8736
                  OPC_EmitConvertToTarget, 1,
 
8737
                  OPC_EmitInteger, MVT::i32, 14, 
 
8738
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8739
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv4i32), 0,
 
8740
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
8741
                22,  MVT::v2i64,
 
8742
                  OPC_CheckPatternPredicate, 3,
 
8743
                  OPC_EmitConvertToTarget, 1,
 
8744
                  OPC_EmitInteger, MVT::i32, 14, 
 
8745
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8746
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAsv2i64), 0,
 
8747
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
8748
                0, 
 
8749
              75|128,1,  ARMISD::VSHRu,
 
8750
                OPC_RecordChild0,
 
8751
                OPC_RecordChild1,
 
8752
                OPC_MoveChild, 1,
 
8753
                OPC_CheckOpcode, ISD::Constant,
 
8754
                OPC_MoveParent,
 
8755
                OPC_MoveParent,
 
8756
                OPC_RecordChild1,
 
8757
                OPC_SwitchType , 22,  MVT::v8i8,
 
8758
                  OPC_CheckPatternPredicate, 3,
 
8759
                  OPC_EmitConvertToTarget, 1,
 
8760
                  OPC_EmitInteger, MVT::i32, 14, 
 
8761
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8762
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i8), 0,
 
8763
                      1, MVT::v8i8, 5, 2, 0, 3, 4, 5, 
 
8764
                22,  MVT::v4i16,
 
8765
                  OPC_CheckPatternPredicate, 3,
 
8766
                  OPC_EmitConvertToTarget, 1,
 
8767
                  OPC_EmitInteger, MVT::i32, 14, 
 
8768
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8769
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i16), 0,
 
8770
                      1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
8771
                22,  MVT::v2i32,
 
8772
                  OPC_CheckPatternPredicate, 3,
 
8773
                  OPC_EmitConvertToTarget, 1,
 
8774
                  OPC_EmitInteger, MVT::i32, 14, 
 
8775
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8776
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i32), 0,
 
8777
                      1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
8778
                22,  MVT::v1i64,
 
8779
                  OPC_CheckPatternPredicate, 3,
 
8780
                  OPC_EmitConvertToTarget, 1,
 
8781
                  OPC_EmitInteger, MVT::i32, 14, 
 
8782
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8783
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv1i64), 0,
 
8784
                      1, MVT::v1i64, 5, 2, 0, 3, 4, 5, 
 
8785
                22,  MVT::v16i8,
 
8786
                  OPC_CheckPatternPredicate, 3,
 
8787
                  OPC_EmitConvertToTarget, 1,
 
8788
                  OPC_EmitInteger, MVT::i32, 14, 
 
8789
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8790
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv16i8), 0,
 
8791
                      1, MVT::v16i8, 5, 2, 0, 3, 4, 5, 
 
8792
                22,  MVT::v8i16,
 
8793
                  OPC_CheckPatternPredicate, 3,
 
8794
                  OPC_EmitConvertToTarget, 1,
 
8795
                  OPC_EmitInteger, MVT::i32, 14, 
 
8796
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8797
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv8i16), 0,
 
8798
                      1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
8799
                22,  MVT::v4i32,
 
8800
                  OPC_CheckPatternPredicate, 3,
 
8801
                  OPC_EmitConvertToTarget, 1,
 
8802
                  OPC_EmitInteger, MVT::i32, 14, 
 
8803
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8804
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv4i32), 0,
 
8805
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
8806
                22,  MVT::v2i64,
 
8807
                  OPC_CheckPatternPredicate, 3,
 
8808
                  OPC_EmitConvertToTarget, 1,
 
8809
                  OPC_EmitInteger, MVT::i32, 14, 
 
8810
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8811
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRAuv2i64), 0,
 
8812
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
8813
                0, 
 
8814
              75|128,1,  ARMISD::VRSHRs,
 
8815
                OPC_RecordChild0,
 
8816
                OPC_RecordChild1,
 
8817
                OPC_MoveChild, 1,
 
8818
                OPC_CheckOpcode, ISD::Constant,
 
8819
                OPC_MoveParent,
 
8820
                OPC_MoveParent,
 
8821
                OPC_RecordChild1,
 
8822
                OPC_SwitchType , 22,  MVT::v8i8,
 
8823
                  OPC_CheckPatternPredicate, 3,
 
8824
                  OPC_EmitConvertToTarget, 1,
 
8825
                  OPC_EmitInteger, MVT::i32, 14, 
 
8826
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8827
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i8), 0,
 
8828
                      1, MVT::v8i8, 5, 2, 0, 3, 4, 5, 
 
8829
                22,  MVT::v4i16,
 
8830
                  OPC_CheckPatternPredicate, 3,
 
8831
                  OPC_EmitConvertToTarget, 1,
 
8832
                  OPC_EmitInteger, MVT::i32, 14, 
 
8833
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8834
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i16), 0,
 
8835
                      1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
8836
                22,  MVT::v2i32,
 
8837
                  OPC_CheckPatternPredicate, 3,
 
8838
                  OPC_EmitConvertToTarget, 1,
 
8839
                  OPC_EmitInteger, MVT::i32, 14, 
 
8840
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8841
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i32), 0,
 
8842
                      1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
8843
                22,  MVT::v1i64,
 
8844
                  OPC_CheckPatternPredicate, 3,
 
8845
                  OPC_EmitConvertToTarget, 1,
 
8846
                  OPC_EmitInteger, MVT::i32, 14, 
 
8847
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8848
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv1i64), 0,
 
8849
                      1, MVT::v1i64, 5, 2, 0, 3, 4, 5, 
 
8850
                22,  MVT::v16i8,
 
8851
                  OPC_CheckPatternPredicate, 3,
 
8852
                  OPC_EmitConvertToTarget, 1,
 
8853
                  OPC_EmitInteger, MVT::i32, 14, 
 
8854
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8855
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv16i8), 0,
 
8856
                      1, MVT::v16i8, 5, 2, 0, 3, 4, 5, 
 
8857
                22,  MVT::v8i16,
 
8858
                  OPC_CheckPatternPredicate, 3,
 
8859
                  OPC_EmitConvertToTarget, 1,
 
8860
                  OPC_EmitInteger, MVT::i32, 14, 
 
8861
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8862
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv8i16), 0,
 
8863
                      1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
8864
                22,  MVT::v4i32,
 
8865
                  OPC_CheckPatternPredicate, 3,
 
8866
                  OPC_EmitConvertToTarget, 1,
 
8867
                  OPC_EmitInteger, MVT::i32, 14, 
 
8868
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8869
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv4i32), 0,
 
8870
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
8871
                22,  MVT::v2i64,
 
8872
                  OPC_CheckPatternPredicate, 3,
 
8873
                  OPC_EmitConvertToTarget, 1,
 
8874
                  OPC_EmitInteger, MVT::i32, 14, 
 
8875
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8876
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAsv2i64), 0,
 
8877
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
8878
                0, 
 
8879
              75|128,1,  ARMISD::VRSHRu,
 
8880
                OPC_RecordChild0,
 
8881
                OPC_RecordChild1,
 
8882
                OPC_MoveChild, 1,
 
8883
                OPC_CheckOpcode, ISD::Constant,
 
8884
                OPC_MoveParent,
 
8885
                OPC_MoveParent,
 
8886
                OPC_RecordChild1,
 
8887
                OPC_SwitchType , 22,  MVT::v8i8,
 
8888
                  OPC_CheckPatternPredicate, 3,
 
8889
                  OPC_EmitConvertToTarget, 1,
 
8890
                  OPC_EmitInteger, MVT::i32, 14, 
 
8891
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8892
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i8), 0,
 
8893
                      1, MVT::v8i8, 5, 2, 0, 3, 4, 5, 
 
8894
                22,  MVT::v4i16,
 
8895
                  OPC_CheckPatternPredicate, 3,
 
8896
                  OPC_EmitConvertToTarget, 1,
 
8897
                  OPC_EmitInteger, MVT::i32, 14, 
 
8898
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8899
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i16), 0,
 
8900
                      1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
8901
                22,  MVT::v2i32,
 
8902
                  OPC_CheckPatternPredicate, 3,
 
8903
                  OPC_EmitConvertToTarget, 1,
 
8904
                  OPC_EmitInteger, MVT::i32, 14, 
 
8905
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8906
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i32), 0,
 
8907
                      1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
8908
                22,  MVT::v1i64,
 
8909
                  OPC_CheckPatternPredicate, 3,
 
8910
                  OPC_EmitConvertToTarget, 1,
 
8911
                  OPC_EmitInteger, MVT::i32, 14, 
 
8912
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8913
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv1i64), 0,
 
8914
                      1, MVT::v1i64, 5, 2, 0, 3, 4, 5, 
 
8915
                22,  MVT::v16i8,
 
8916
                  OPC_CheckPatternPredicate, 3,
 
8917
                  OPC_EmitConvertToTarget, 1,
 
8918
                  OPC_EmitInteger, MVT::i32, 14, 
 
8919
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8920
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv16i8), 0,
 
8921
                      1, MVT::v16i8, 5, 2, 0, 3, 4, 5, 
 
8922
                22,  MVT::v8i16,
 
8923
                  OPC_CheckPatternPredicate, 3,
 
8924
                  OPC_EmitConvertToTarget, 1,
 
8925
                  OPC_EmitInteger, MVT::i32, 14, 
 
8926
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8927
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv8i16), 0,
 
8928
                      1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
8929
                22,  MVT::v4i32,
 
8930
                  OPC_CheckPatternPredicate, 3,
 
8931
                  OPC_EmitConvertToTarget, 1,
 
8932
                  OPC_EmitInteger, MVT::i32, 14, 
 
8933
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8934
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv4i32), 0,
 
8935
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
8936
                22,  MVT::v2i64,
 
8937
                  OPC_CheckPatternPredicate, 3,
 
8938
                  OPC_EmitConvertToTarget, 1,
 
8939
                  OPC_EmitInteger, MVT::i32, 14, 
 
8940
                  OPC_EmitRegister, MVT::i32, 0 ,
 
8941
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSRAuv2i64), 0,
 
8942
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
8943
                0, 
 
8944
              0, 
 
8945
            82, 
 
8946
              OPC_RecordChild0,
 
8947
              OPC_Scope, 39, 
 
8948
                OPC_MoveChild, 1,
 
8949
                OPC_CheckOpcode, ISD::MUL,
 
8950
                OPC_RecordChild0,
 
8951
                OPC_MoveChild, 0,
 
8952
                OPC_CheckPredicate, 10,
 
8953
                OPC_MoveParent,
 
8954
                OPC_RecordChild1,
 
8955
                OPC_MoveChild, 1,
 
8956
                OPC_CheckPredicate, 10,
 
8957
                OPC_MoveParent,
 
8958
                OPC_MoveParent,
 
8959
                OPC_CheckType, MVT::i32,
 
8960
                OPC_CheckPatternPredicate, 7,
 
8961
                OPC_EmitInteger, MVT::i32, 14, 
 
8962
                OPC_EmitRegister, MVT::i32, 0 ,
 
8963
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
8964
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
8965
              38, 
 
8966
                OPC_RecordChild1,
 
8967
                OPC_MoveChild, 1,
 
8968
                OPC_CheckOpcode, ISD::Constant,
 
8969
                OPC_CheckPredicate, 11,
 
8970
                OPC_MoveParent,
 
8971
                OPC_CheckType, MVT::i32,
 
8972
                OPC_CheckPatternPredicate, 2,
 
8973
                OPC_EmitConvertToTarget, 1,
 
8974
                OPC_EmitNodeXForm, 10, 2,
 
8975
                OPC_EmitInteger, MVT::i32, 14, 
 
8976
                OPC_EmitRegister, MVT::i32, 0 ,
 
8977
                OPC_EmitRegister, MVT::i32, 0 ,
 
8978
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
 
8979
                    1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
8980
              0, 
 
8981
            40, 
 
8982
              OPC_MoveChild, 0,
 
8983
              OPC_CheckOpcode, ISD::MUL,
 
8984
              OPC_RecordChild0,
 
8985
              OPC_MoveChild, 0,
 
8986
              OPC_CheckPredicate, 10,
 
8987
              OPC_MoveParent,
 
8988
              OPC_RecordChild1,
 
8989
              OPC_MoveChild, 1,
 
8990
              OPC_CheckPredicate, 10,
 
8991
              OPC_MoveParent,
 
8992
              OPC_MoveParent,
 
8993
              OPC_RecordChild1,
 
8994
              OPC_CheckType, MVT::i32,
 
8995
              OPC_CheckPatternPredicate, 7,
 
8996
              OPC_EmitInteger, MVT::i32, 14, 
 
8997
              OPC_EmitRegister, MVT::i32, 0 ,
 
8998
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMLABB), 0,
 
8999
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
9000
            127|128,4, 
 
9001
              OPC_RecordChild0,
 
9002
              OPC_Scope, 60|128,4, 
 
9003
                OPC_RecordChild1,
 
9004
                OPC_MoveChild, 1,
 
9005
                OPC_CheckOpcode, ISD::Constant,
 
9006
                OPC_Scope, 30, 
 
9007
                  OPC_CheckPredicate, 5,
 
9008
                  OPC_MoveParent,
 
9009
                  OPC_CheckType, MVT::i32,
 
9010
                  OPC_CheckPatternPredicate, 5,
 
9011
                  OPC_EmitConvertToTarget, 1,
 
9012
                  OPC_EmitInteger, MVT::i32, 14, 
 
9013
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9014
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9015
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDri), 0,
 
9016
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
9017
                33, 
 
9018
                  OPC_CheckPredicate, 12,
 
9019
                  OPC_MoveParent,
 
9020
                  OPC_CheckType, MVT::i32,
 
9021
                  OPC_CheckPatternPredicate, 5,
 
9022
                  OPC_EmitConvertToTarget, 1,
 
9023
                  OPC_EmitNodeXForm, 11, 2,
 
9024
                  OPC_EmitInteger, MVT::i32, 14, 
 
9025
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9026
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9027
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBri), 0,
 
9028
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9029
                30, 
 
9030
                  OPC_CheckPredicate, 13,
 
9031
                  OPC_MoveParent,
 
9032
                  OPC_CheckType, MVT::i32,
 
9033
                  OPC_CheckPatternPredicate, 6,
 
9034
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
9035
                  OPC_EmitConvertToTarget, 1,
 
9036
                  OPC_EmitInteger, MVT::i32, 14, 
 
9037
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9038
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi3), 0,
 
9039
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
9040
                30, 
 
9041
                  OPC_CheckPredicate, 14,
 
9042
                  OPC_MoveParent,
 
9043
                  OPC_CheckType, MVT::i32,
 
9044
                  OPC_CheckPatternPredicate, 6,
 
9045
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
9046
                  OPC_EmitConvertToTarget, 1,
 
9047
                  OPC_EmitInteger, MVT::i32, 14, 
 
9048
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9049
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi8), 0,
 
9050
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
9051
                33, 
 
9052
                  OPC_CheckPredicate, 15,
 
9053
                  OPC_MoveParent,
 
9054
                  OPC_CheckType, MVT::i32,
 
9055
                  OPC_CheckPatternPredicate, 6,
 
9056
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
9057
                  OPC_EmitConvertToTarget, 1,
 
9058
                  OPC_EmitNodeXForm, 10, 3,
 
9059
                  OPC_EmitInteger, MVT::i32, 14, 
 
9060
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9061
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi3), 0,
 
9062
                      1, MVT::i32, 5, 2, 0, 4, 5, 6, 
 
9063
                33, 
 
9064
                  OPC_CheckPredicate, 16,
 
9065
                  OPC_MoveParent,
 
9066
                  OPC_CheckType, MVT::i32,
 
9067
                  OPC_CheckPatternPredicate, 6,
 
9068
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
9069
                  OPC_EmitConvertToTarget, 1,
 
9070
                  OPC_EmitNodeXForm, 10, 3,
 
9071
                  OPC_EmitInteger, MVT::i32, 14, 
 
9072
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9073
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi8), 0,
 
9074
                      1, MVT::i32, 5, 2, 0, 4, 5, 6, 
 
9075
                30, 
 
9076
                  OPC_CheckPredicate, 4,
 
9077
                  OPC_MoveParent,
 
9078
                  OPC_CheckType, MVT::i32,
 
9079
                  OPC_CheckPatternPredicate, 2,
 
9080
                  OPC_EmitConvertToTarget, 1,
 
9081
                  OPC_EmitInteger, MVT::i32, 14, 
 
9082
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9083
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9084
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDri), 0,
 
9085
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
9086
                30, 
 
9087
                  OPC_CheckPredicate, 17,
 
9088
                  OPC_MoveParent,
 
9089
                  OPC_CheckType, MVT::i32,
 
9090
                  OPC_CheckPatternPredicate, 2,
 
9091
                  OPC_EmitConvertToTarget, 1,
 
9092
                  OPC_EmitInteger, MVT::i32, 14, 
 
9093
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9094
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9095
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDri12), 0,
 
9096
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
9097
                33, 
 
9098
                  OPC_CheckPredicate, 18,
 
9099
                  OPC_MoveParent,
 
9100
                  OPC_CheckType, MVT::i32,
 
9101
                  OPC_CheckPatternPredicate, 2,
 
9102
                  OPC_EmitConvertToTarget, 1,
 
9103
                  OPC_EmitNodeXForm, 12, 2,
 
9104
                  OPC_EmitInteger, MVT::i32, 14, 
 
9105
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9106
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9107
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
 
9108
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9109
                33, 
 
9110
                  OPC_CheckPredicate, 19,
 
9111
                  OPC_MoveParent,
 
9112
                  OPC_CheckType, MVT::i32,
 
9113
                  OPC_CheckPatternPredicate, 2,
 
9114
                  OPC_EmitConvertToTarget, 1,
 
9115
                  OPC_EmitNodeXForm, 10, 2,
 
9116
                  OPC_EmitInteger, MVT::i32, 14, 
 
9117
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9118
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9119
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri12), 0,
 
9120
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9121
                59, 
 
9122
                  OPC_CheckPredicate, 7,
 
9123
                  OPC_MoveParent,
 
9124
                  OPC_CheckType, MVT::i32,
 
9125
                  OPC_CheckPatternPredicate, 5,
 
9126
                  OPC_EmitConvertToTarget, 1,
 
9127
                  OPC_EmitNodeXForm, 2, 2,
 
9128
                  OPC_EmitInteger, MVT::i32, 14, 
 
9129
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9130
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9131
                  OPC_EmitNode, TARGET_OPCODE(ARM::ADDri), 0,
 
9132
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9133
                  OPC_EmitConvertToTarget, 1,
 
9134
                  OPC_EmitNodeXForm, 3, 8,
 
9135
                  OPC_EmitInteger, MVT::i32, 14, 
 
9136
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9137
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9138
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDri), 0,
 
9139
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
9140
                59, 
 
9141
                  OPC_CheckPredicate, 20,
 
9142
                  OPC_MoveParent,
 
9143
                  OPC_CheckType, MVT::i32,
 
9144
                  OPC_CheckPatternPredicate, 5,
 
9145
                  OPC_EmitConvertToTarget, 1,
 
9146
                  OPC_EmitNodeXForm, 13, 2,
 
9147
                  OPC_EmitInteger, MVT::i32, 14, 
 
9148
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9149
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9150
                  OPC_EmitNode, TARGET_OPCODE(ARM::SUBri), 0,
 
9151
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9152
                  OPC_EmitConvertToTarget, 1,
 
9153
                  OPC_EmitNodeXForm, 14, 8,
 
9154
                  OPC_EmitInteger, MVT::i32, 14, 
 
9155
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9156
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9157
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBri), 0,
 
9158
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
9159
                59, 
 
9160
                  OPC_CheckPredicate, 8,
 
9161
                  OPC_MoveParent,
 
9162
                  OPC_CheckType, MVT::i32,
 
9163
                  OPC_CheckPatternPredicate, 2,
 
9164
                  OPC_EmitConvertToTarget, 1,
 
9165
                  OPC_EmitNodeXForm, 4, 2,
 
9166
                  OPC_EmitInteger, MVT::i32, 14, 
 
9167
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9168
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9169
                  OPC_EmitNode, TARGET_OPCODE(ARM::t2ADDri), 0,
 
9170
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9171
                  OPC_EmitConvertToTarget, 1,
 
9172
                  OPC_EmitNodeXForm, 5, 8,
 
9173
                  OPC_EmitInteger, MVT::i32, 14, 
 
9174
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9175
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9176
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDri), 0,
 
9177
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
9178
                59, 
 
9179
                  OPC_CheckPredicate, 21,
 
9180
                  OPC_MoveParent,
 
9181
                  OPC_CheckType, MVT::i32,
 
9182
                  OPC_CheckPatternPredicate, 2,
 
9183
                  OPC_EmitConvertToTarget, 1,
 
9184
                  OPC_EmitNodeXForm, 15, 2,
 
9185
                  OPC_EmitInteger, MVT::i32, 14, 
 
9186
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9187
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9188
                  OPC_EmitNode, TARGET_OPCODE(ARM::t2SUBri), 0,
 
9189
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
9190
                  OPC_EmitConvertToTarget, 1,
 
9191
                  OPC_EmitNodeXForm, 16, 8,
 
9192
                  OPC_EmitInteger, MVT::i32, 14, 
 
9193
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9194
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9195
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
 
9196
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
9197
                0, 
 
9198
              61, 
 
9199
                OPC_MoveChild, 1,
 
9200
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
9201
                OPC_RecordChild0,
 
9202
                OPC_MoveChild, 1,
 
9203
                OPC_Scope, 25, 
 
9204
                  OPC_CheckValueType, MVT::i8,
 
9205
                  OPC_MoveParent,
 
9206
                  OPC_MoveParent,
 
9207
                  OPC_CheckType, MVT::i32,
 
9208
                  OPC_CheckPatternPredicate, 0,
 
9209
                  OPC_EmitInteger, MVT::i32, 14, 
 
9210
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9211
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr), 0,
 
9212
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
9213
                25, 
 
9214
                  OPC_CheckValueType, MVT::i16,
 
9215
                  OPC_MoveParent,
 
9216
                  OPC_MoveParent,
 
9217
                  OPC_CheckType, MVT::i32,
 
9218
                  OPC_CheckPatternPredicate, 0,
 
9219
                  OPC_EmitInteger, MVT::i32, 14, 
 
9220
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9221
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr), 0,
 
9222
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
9223
                0, 
 
9224
              0, 
 
9225
            64, 
 
9226
              OPC_MoveChild, 0,
 
9227
              OPC_SwitchOpcode , 30,  ISD::MUL,
 
9228
                OPC_RecordChild0,
 
9229
                OPC_RecordChild1,
 
9230
                OPC_MoveParent,
 
9231
                OPC_RecordChild1,
 
9232
                OPC_CheckType, MVT::i32,
 
9233
                OPC_CheckPatternPredicate, 5,
 
9234
                OPC_EmitInteger, MVT::i32, 14, 
 
9235
                OPC_EmitRegister, MVT::i32, 0 ,
 
9236
                OPC_EmitRegister, MVT::i32, 0 ,
 
9237
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::MLA), 0,
 
9238
                    1, MVT::i32, 6, 0, 1, 2, 3, 4, 5, 
 
9239
              26,  ISD::MULHS,
 
9240
                OPC_RecordChild0,
 
9241
                OPC_RecordChild1,
 
9242
                OPC_MoveParent,
 
9243
                OPC_RecordChild1,
 
9244
                OPC_CheckType, MVT::i32,
 
9245
                OPC_CheckPatternPredicate, 0,
 
9246
                OPC_EmitInteger, MVT::i32, 14, 
 
9247
                OPC_EmitRegister, MVT::i32, 0 ,
 
9248
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMLA), 0,
 
9249
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
9250
              0, 
 
9251
            62, 
 
9252
              OPC_RecordChild0,
 
9253
              OPC_MoveChild, 1,
 
9254
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
9255
              OPC_RecordChild0,
 
9256
              OPC_MoveChild, 1,
 
9257
              OPC_Scope, 25, 
 
9258
                OPC_CheckValueType, MVT::i8,
 
9259
                OPC_MoveParent,
 
9260
                OPC_MoveParent,
 
9261
                OPC_CheckType, MVT::i32,
 
9262
                OPC_CheckPatternPredicate, 2,
 
9263
                OPC_EmitInteger, MVT::i32, 14, 
 
9264
                OPC_EmitRegister, MVT::i32, 0 ,
 
9265
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr), 0,
 
9266
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
9267
              25, 
 
9268
                OPC_CheckValueType, MVT::i16,
 
9269
                OPC_MoveParent,
 
9270
                OPC_MoveParent,
 
9271
                OPC_CheckType, MVT::i32,
 
9272
                OPC_CheckPatternPredicate, 2,
 
9273
                OPC_EmitInteger, MVT::i32, 14, 
 
9274
                OPC_EmitRegister, MVT::i32, 0 ,
 
9275
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr), 0,
 
9276
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
9277
              0, 
 
9278
            60, 
 
9279
              OPC_MoveChild, 0,
 
9280
              OPC_SwitchOpcode , 26,  ISD::MUL,
 
9281
                OPC_RecordChild0,
 
9282
                OPC_RecordChild1,
 
9283
                OPC_MoveParent,
 
9284
                OPC_RecordChild1,
 
9285
                OPC_CheckType, MVT::i32,
 
9286
                OPC_CheckPatternPredicate, 2,
 
9287
                OPC_EmitInteger, MVT::i32, 14, 
 
9288
                OPC_EmitRegister, MVT::i32, 0 ,
 
9289
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MLA), 0,
 
9290
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
9291
              26,  ISD::MULHS,
 
9292
                OPC_RecordChild0,
 
9293
                OPC_RecordChild1,
 
9294
                OPC_MoveParent,
 
9295
                OPC_RecordChild1,
 
9296
                OPC_CheckType, MVT::i32,
 
9297
                OPC_CheckPatternPredicate, 2,
 
9298
                OPC_EmitInteger, MVT::i32, 14, 
 
9299
                OPC_EmitRegister, MVT::i32, 0 ,
 
9300
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMLA), 0,
 
9301
                    1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
9302
              0, 
 
9303
            14|128,1, 
 
9304
              OPC_RecordChild0,
 
9305
              OPC_MoveChild, 1,
 
9306
              OPC_CheckOpcode, ISD::MUL,
 
9307
              OPC_RecordChild0,
 
9308
              OPC_RecordChild1,
 
9309
              OPC_MoveParent,
 
9310
              OPC_SwitchType , 20,  MVT::v8i8,
 
9311
                OPC_CheckPatternPredicate, 3,
 
9312
                OPC_EmitInteger, MVT::i32, 14, 
 
9313
                OPC_EmitRegister, MVT::i32, 0 ,
 
9314
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i8), 0,
 
9315
                    1, MVT::v8i8, 5, 0, 1, 2, 3, 4, 
 
9316
              20,  MVT::v4i16,
 
9317
                OPC_CheckPatternPredicate, 3,
 
9318
                OPC_EmitInteger, MVT::i32, 14, 
 
9319
                OPC_EmitRegister, MVT::i32, 0 ,
 
9320
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i16), 0,
 
9321
                    1, MVT::v4i16, 5, 0, 1, 2, 3, 4, 
 
9322
              20,  MVT::v2i32,
 
9323
                OPC_CheckPatternPredicate, 3,
 
9324
                OPC_EmitInteger, MVT::i32, 14, 
 
9325
                OPC_EmitRegister, MVT::i32, 0 ,
 
9326
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv2i32), 0,
 
9327
                    1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
9328
              20,  MVT::v16i8,
 
9329
                OPC_CheckPatternPredicate, 3,
 
9330
                OPC_EmitInteger, MVT::i32, 14, 
 
9331
                OPC_EmitRegister, MVT::i32, 0 ,
 
9332
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv16i8), 0,
 
9333
                    1, MVT::v16i8, 5, 0, 1, 2, 3, 4, 
 
9334
              20,  MVT::v8i16,
 
9335
                OPC_CheckPatternPredicate, 3,
 
9336
                OPC_EmitInteger, MVT::i32, 14, 
 
9337
                OPC_EmitRegister, MVT::i32, 0 ,
 
9338
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i16), 0,
 
9339
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
9340
              20,  MVT::v4i32,
 
9341
                OPC_CheckPatternPredicate, 3,
 
9342
                OPC_EmitInteger, MVT::i32, 14, 
 
9343
                OPC_EmitRegister, MVT::i32, 0 ,
 
9344
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i32), 0,
 
9345
                    1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
9346
              0, 
 
9347
            63, 
 
9348
              OPC_MoveChild, 0,
 
9349
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
9350
              OPC_RecordChild0,
 
9351
              OPC_MoveChild, 1,
 
9352
              OPC_Scope, 26, 
 
9353
                OPC_CheckValueType, MVT::i8,
 
9354
                OPC_MoveParent,
 
9355
                OPC_MoveParent,
 
9356
                OPC_RecordChild1,
 
9357
                OPC_CheckType, MVT::i32,
 
9358
                OPC_CheckPatternPredicate, 0,
 
9359
                OPC_EmitInteger, MVT::i32, 14, 
 
9360
                OPC_EmitRegister, MVT::i32, 0 ,
 
9361
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTABrr), 0,
 
9362
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
9363
              26, 
 
9364
                OPC_CheckValueType, MVT::i16,
 
9365
                OPC_MoveParent,
 
9366
                OPC_MoveParent,
 
9367
                OPC_RecordChild1,
 
9368
                OPC_CheckType, MVT::i32,
 
9369
                OPC_CheckPatternPredicate, 0,
 
9370
                OPC_EmitInteger, MVT::i32, 14, 
 
9371
                OPC_EmitRegister, MVT::i32, 0 ,
 
9372
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTAHrr), 0,
 
9373
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
9374
              0, 
 
9375
            63, 
 
9376
              OPC_RecordChild0,
 
9377
              OPC_MoveChild, 1,
 
9378
              OPC_SwitchOpcode , 29,  ISD::MUL,
 
9379
                OPC_RecordChild0,
 
9380
                OPC_RecordChild1,
 
9381
                OPC_MoveParent,
 
9382
                OPC_CheckType, MVT::i32,
 
9383
                OPC_CheckPatternPredicate, 5,
 
9384
                OPC_EmitInteger, MVT::i32, 14, 
 
9385
                OPC_EmitRegister, MVT::i32, 0 ,
 
9386
                OPC_EmitRegister, MVT::i32, 0 ,
 
9387
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::MLA), 0,
 
9388
                    1, MVT::i32, 6, 1, 2, 0, 3, 4, 5, 
 
9389
              25,  ISD::MULHS,
 
9390
                OPC_RecordChild0,
 
9391
                OPC_RecordChild1,
 
9392
                OPC_MoveParent,
 
9393
                OPC_CheckType, MVT::i32,
 
9394
                OPC_CheckPatternPredicate, 0,
 
9395
                OPC_EmitInteger, MVT::i32, 14, 
 
9396
                OPC_EmitRegister, MVT::i32, 0 ,
 
9397
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMLA), 0,
 
9398
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
9399
              0, 
 
9400
            63, 
 
9401
              OPC_MoveChild, 0,
 
9402
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
9403
              OPC_RecordChild0,
 
9404
              OPC_MoveChild, 1,
 
9405
              OPC_Scope, 26, 
 
9406
                OPC_CheckValueType, MVT::i8,
 
9407
                OPC_MoveParent,
 
9408
                OPC_MoveParent,
 
9409
                OPC_RecordChild1,
 
9410
                OPC_CheckType, MVT::i32,
 
9411
                OPC_CheckPatternPredicate, 2,
 
9412
                OPC_EmitInteger, MVT::i32, 14, 
 
9413
                OPC_EmitRegister, MVT::i32, 0 ,
 
9414
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTABrr), 0,
 
9415
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
9416
              26, 
 
9417
                OPC_CheckValueType, MVT::i16,
 
9418
                OPC_MoveParent,
 
9419
                OPC_MoveParent,
 
9420
                OPC_RecordChild1,
 
9421
                OPC_CheckType, MVT::i32,
 
9422
                OPC_CheckPatternPredicate, 2,
 
9423
                OPC_EmitInteger, MVT::i32, 14, 
 
9424
                OPC_EmitRegister, MVT::i32, 0 ,
 
9425
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTAHrr), 0,
 
9426
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
9427
              0, 
 
9428
            59, 
 
9429
              OPC_RecordChild0,
 
9430
              OPC_MoveChild, 1,
 
9431
              OPC_SwitchOpcode , 25,  ISD::MUL,
 
9432
                OPC_RecordChild0,
 
9433
                OPC_RecordChild1,
 
9434
                OPC_MoveParent,
 
9435
                OPC_CheckType, MVT::i32,
 
9436
                OPC_CheckPatternPredicate, 2,
 
9437
                OPC_EmitInteger, MVT::i32, 14, 
 
9438
                OPC_EmitRegister, MVT::i32, 0 ,
 
9439
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MLA), 0,
 
9440
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
9441
              25,  ISD::MULHS,
 
9442
                OPC_RecordChild0,
 
9443
                OPC_RecordChild1,
 
9444
                OPC_MoveParent,
 
9445
                OPC_CheckType, MVT::i32,
 
9446
                OPC_CheckPatternPredicate, 2,
 
9447
                OPC_EmitInteger, MVT::i32, 14, 
 
9448
                OPC_EmitRegister, MVT::i32, 0 ,
 
9449
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMLA), 0,
 
9450
                    1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
9451
              0, 
 
9452
            14|128,1, 
 
9453
              OPC_MoveChild, 0,
 
9454
              OPC_CheckOpcode, ISD::MUL,
 
9455
              OPC_RecordChild0,
 
9456
              OPC_RecordChild1,
 
9457
              OPC_MoveParent,
 
9458
              OPC_RecordChild1,
 
9459
              OPC_SwitchType , 20,  MVT::v8i8,
 
9460
                OPC_CheckPatternPredicate, 3,
 
9461
                OPC_EmitInteger, MVT::i32, 14, 
 
9462
                OPC_EmitRegister, MVT::i32, 0 ,
 
9463
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i8), 0,
 
9464
                    1, MVT::v8i8, 5, 2, 0, 1, 3, 4, 
 
9465
              20,  MVT::v4i16,
 
9466
                OPC_CheckPatternPredicate, 3,
 
9467
                OPC_EmitInteger, MVT::i32, 14, 
 
9468
                OPC_EmitRegister, MVT::i32, 0 ,
 
9469
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i16), 0,
 
9470
                    1, MVT::v4i16, 5, 2, 0, 1, 3, 4, 
 
9471
              20,  MVT::v2i32,
 
9472
                OPC_CheckPatternPredicate, 3,
 
9473
                OPC_EmitInteger, MVT::i32, 14, 
 
9474
                OPC_EmitRegister, MVT::i32, 0 ,
 
9475
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv2i32), 0,
 
9476
                    1, MVT::v2i32, 5, 2, 0, 1, 3, 4, 
 
9477
              20,  MVT::v16i8,
 
9478
                OPC_CheckPatternPredicate, 3,
 
9479
                OPC_EmitInteger, MVT::i32, 14, 
 
9480
                OPC_EmitRegister, MVT::i32, 0 ,
 
9481
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv16i8), 0,
 
9482
                    1, MVT::v16i8, 5, 2, 0, 1, 3, 4, 
 
9483
              20,  MVT::v8i16,
 
9484
                OPC_CheckPatternPredicate, 3,
 
9485
                OPC_EmitInteger, MVT::i32, 14, 
 
9486
                OPC_EmitRegister, MVT::i32, 0 ,
 
9487
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv8i16), 0,
 
9488
                    1, MVT::v8i16, 5, 2, 0, 1, 3, 4, 
 
9489
              20,  MVT::v4i32,
 
9490
                OPC_CheckPatternPredicate, 3,
 
9491
                OPC_EmitInteger, MVT::i32, 14, 
 
9492
                OPC_EmitRegister, MVT::i32, 0 ,
 
9493
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAv4i32), 0,
 
9494
                    1, MVT::v4i32, 5, 2, 0, 1, 3, 4, 
 
9495
              0, 
 
9496
            120|128,1, 
 
9497
              OPC_RecordChild0,
 
9498
              OPC_RecordChild1,
 
9499
              OPC_SwitchType , 74,  MVT::i32,
 
9500
                OPC_Scope, 23, 
 
9501
                  OPC_CheckPatternPredicate, 5,
 
9502
                  OPC_EmitInteger, MVT::i32, 14, 
 
9503
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9504
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9505
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDrr), 0,
 
9506
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
9507
                23, 
 
9508
                  OPC_CheckPatternPredicate, 6,
 
9509
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
9510
                  OPC_EmitInteger, MVT::i32, 14, 
 
9511
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9512
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDrr), 0,
 
9513
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
9514
                23, 
 
9515
                  OPC_CheckPatternPredicate, 2,
 
9516
                  OPC_EmitInteger, MVT::i32, 14, 
 
9517
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9518
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9519
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDrr), 0,
 
9520
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
9521
                0, 
 
9522
              19,  MVT::v8i8,
 
9523
                OPC_CheckPatternPredicate, 3,
 
9524
                OPC_EmitInteger, MVT::i32, 14, 
 
9525
                OPC_EmitRegister, MVT::i32, 0 ,
 
9526
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv8i8), 0,
 
9527
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
9528
              19,  MVT::v4i16,
 
9529
                OPC_CheckPatternPredicate, 3,
 
9530
                OPC_EmitInteger, MVT::i32, 14, 
 
9531
                OPC_EmitRegister, MVT::i32, 0 ,
 
9532
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv4i16), 0,
 
9533
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
9534
              19,  MVT::v2i32,
 
9535
                OPC_CheckPatternPredicate, 3,
 
9536
                OPC_EmitInteger, MVT::i32, 14, 
 
9537
                OPC_EmitRegister, MVT::i32, 0 ,
 
9538
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv2i32), 0,
 
9539
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
9540
              19,  MVT::v16i8,
 
9541
                OPC_CheckPatternPredicate, 3,
 
9542
                OPC_EmitInteger, MVT::i32, 14, 
 
9543
                OPC_EmitRegister, MVT::i32, 0 ,
 
9544
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv16i8), 0,
 
9545
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
9546
              19,  MVT::v8i16,
 
9547
                OPC_CheckPatternPredicate, 3,
 
9548
                OPC_EmitInteger, MVT::i32, 14, 
 
9549
                OPC_EmitRegister, MVT::i32, 0 ,
 
9550
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv8i16), 0,
 
9551
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
9552
              19,  MVT::v4i32,
 
9553
                OPC_CheckPatternPredicate, 3,
 
9554
                OPC_EmitInteger, MVT::i32, 14, 
 
9555
                OPC_EmitRegister, MVT::i32, 0 ,
 
9556
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv4i32), 0,
 
9557
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
9558
              19,  MVT::v1i64,
 
9559
                OPC_CheckPatternPredicate, 3,
 
9560
                OPC_EmitInteger, MVT::i32, 14, 
 
9561
                OPC_EmitRegister, MVT::i32, 0 ,
 
9562
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv1i64), 0,
 
9563
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
9564
              19,  MVT::v2i64,
 
9565
                OPC_CheckPatternPredicate, 3,
 
9566
                OPC_EmitInteger, MVT::i32, 14, 
 
9567
                OPC_EmitRegister, MVT::i32, 0 ,
 
9568
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDv2i64), 0,
 
9569
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
9570
              0, 
 
9571
            0, 
 
9572
          80|128,11,  ISD::MUL,
 
9573
            OPC_Scope, 50|128,4, 
 
9574
              OPC_MoveChild, 0,
 
9575
              OPC_SwitchOpcode , 65|128,3,  ISD::SRA,
 
9576
                OPC_Scope, 116, 
 
9577
                  OPC_MoveChild, 0,
 
9578
                  OPC_CheckOpcode, ISD::SHL,
 
9579
                  OPC_RecordChild0,
 
9580
                  OPC_MoveChild, 1,
 
9581
                  OPC_CheckInteger, 16, 
 
9582
                  OPC_CheckType, MVT::i32,
 
9583
                  OPC_MoveParent,
 
9584
                  OPC_MoveParent,
 
9585
                  OPC_MoveChild, 1,
 
9586
                  OPC_CheckInteger, 16, 
 
9587
                  OPC_CheckType, MVT::i32,
 
9588
                  OPC_MoveParent,
 
9589
                  OPC_MoveParent,
 
9590
                  OPC_MoveChild, 1,
 
9591
                  OPC_CheckOpcode, ISD::SRA,
 
9592
                  OPC_Scope, 57, 
 
9593
                    OPC_MoveChild, 0,
 
9594
                    OPC_CheckOpcode, ISD::SHL,
 
9595
                    OPC_RecordChild0,
 
9596
                    OPC_MoveChild, 1,
 
9597
                    OPC_CheckInteger, 16, 
 
9598
                    OPC_CheckType, MVT::i32,
 
9599
                    OPC_MoveParent,
 
9600
                    OPC_MoveParent,
 
9601
                    OPC_MoveChild, 1,
 
9602
                    OPC_CheckInteger, 16, 
 
9603
                    OPC_CheckType, MVT::i32,
 
9604
                    OPC_MoveParent,
 
9605
                    OPC_MoveParent,
 
9606
                    OPC_CheckType, MVT::i32,
 
9607
                    OPC_CheckPatternPredicate, 7,
 
9608
                    OPC_EmitInteger, MVT::i32, 14, 
 
9609
                    OPC_EmitRegister, MVT::i32, 0 ,
 
9610
                    OPC_Scope, 11, 
 
9611
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
 
9612
                          1, MVT::i32, 4, 0, 1, 2, 3, 
 
9613
                    11, 
 
9614
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
 
9615
                          1, MVT::i32, 4, 1, 0, 2, 3, 
 
9616
                    0, 
 
9617
                  30, 
 
9618
                    OPC_RecordChild0,
 
9619
                    OPC_MoveChild, 1,
 
9620
                    OPC_CheckInteger, 16, 
 
9621
                    OPC_CheckType, MVT::i32,
 
9622
                    OPC_MoveParent,
 
9623
                    OPC_MoveParent,
 
9624
                    OPC_CheckType, MVT::i32,
 
9625
                    OPC_CheckPatternPredicate, 7,
 
9626
                    OPC_EmitInteger, MVT::i32, 14, 
 
9627
                    OPC_EmitRegister, MVT::i32, 0 ,
 
9628
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
 
9629
                        1, MVT::i32, 4, 0, 1, 2, 3, 
 
9630
                  0, 
 
9631
                70, 
 
9632
                  OPC_RecordChild0,
 
9633
                  OPC_MoveChild, 1,
 
9634
                  OPC_CheckInteger, 16, 
 
9635
                  OPC_CheckType, MVT::i32,
 
9636
                  OPC_MoveParent,
 
9637
                  OPC_MoveParent,
 
9638
                  OPC_MoveChild, 1,
 
9639
                  OPC_CheckOpcode, ISD::SRA,
 
9640
                  OPC_MoveChild, 0,
 
9641
                  OPC_CheckOpcode, ISD::SHL,
 
9642
                  OPC_RecordChild0,
 
9643
                  OPC_MoveChild, 1,
 
9644
                  OPC_CheckInteger, 16, 
 
9645
                  OPC_CheckType, MVT::i32,
 
9646
                  OPC_MoveParent,
 
9647
                  OPC_MoveParent,
 
9648
                  OPC_MoveChild, 1,
 
9649
                  OPC_CheckInteger, 16, 
 
9650
                  OPC_CheckType, MVT::i32,
 
9651
                  OPC_MoveParent,
 
9652
                  OPC_MoveParent,
 
9653
                  OPC_CheckType, MVT::i32,
 
9654
                  OPC_CheckPatternPredicate, 7,
 
9655
                  OPC_EmitInteger, MVT::i32, 14, 
 
9656
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9657
                  OPC_Scope, 11, 
 
9658
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
 
9659
                        1, MVT::i32, 4, 0, 1, 2, 3, 
 
9660
                  11, 
 
9661
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
 
9662
                        1, MVT::i32, 4, 1, 0, 2, 3, 
 
9663
                  0, 
 
9664
                55, 
 
9665
                  OPC_MoveChild, 0,
 
9666
                  OPC_CheckOpcode, ISD::SHL,
 
9667
                  OPC_RecordChild0,
 
9668
                  OPC_MoveChild, 1,
 
9669
                  OPC_CheckInteger, 16, 
 
9670
                  OPC_CheckType, MVT::i32,
 
9671
                  OPC_MoveParent,
 
9672
                  OPC_MoveParent,
 
9673
                  OPC_MoveChild, 1,
 
9674
                  OPC_CheckInteger, 16, 
 
9675
                  OPC_CheckType, MVT::i32,
 
9676
                  OPC_MoveParent,
 
9677
                  OPC_MoveParent,
 
9678
                  OPC_MoveChild, 1,
 
9679
                  OPC_CheckOpcode, ISD::SRA,
 
9680
                  OPC_RecordChild0,
 
9681
                  OPC_MoveChild, 1,
 
9682
                  OPC_CheckInteger, 16, 
 
9683
                  OPC_CheckType, MVT::i32,
 
9684
                  OPC_MoveParent,
 
9685
                  OPC_MoveParent,
 
9686
                  OPC_CheckType, MVT::i32,
 
9687
                  OPC_CheckPatternPredicate, 7,
 
9688
                  OPC_EmitInteger, MVT::i32, 14, 
 
9689
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9690
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
 
9691
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
9692
                73|128,1, 
 
9693
                  OPC_RecordChild0,
 
9694
                  OPC_MoveChild, 1,
 
9695
                  OPC_CheckInteger, 16, 
 
9696
                  OPC_CheckType, MVT::i32,
 
9697
                  OPC_MoveParent,
 
9698
                  OPC_MoveParent,
 
9699
                  OPC_MoveChild, 1,
 
9700
                  OPC_SwitchOpcode , 93,  ISD::SRA,
 
9701
                    OPC_RecordChild0,
 
9702
                    OPC_MoveChild, 1,
 
9703
                    OPC_CheckInteger, 16, 
 
9704
                    OPC_CheckType, MVT::i32,
 
9705
                    OPC_MoveParent,
 
9706
                    OPC_MoveParent,
 
9707
                    OPC_CheckType, MVT::i32,
 
9708
                    OPC_Scope, 19, 
 
9709
                      OPC_CheckPatternPredicate, 7,
 
9710
                      OPC_EmitInteger, MVT::i32, 14, 
 
9711
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9712
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTT), 0,
 
9713
                          1, MVT::i32, 4, 0, 1, 2, 3, 
 
9714
                    19, 
 
9715
                      OPC_CheckPatternPredicate, 2,
 
9716
                      OPC_EmitInteger, MVT::i32, 14, 
 
9717
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9718
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTT), 0,
 
9719
                          1, MVT::i32, 4, 0, 1, 2, 3, 
 
9720
                    19, 
 
9721
                      OPC_CheckPatternPredicate, 7,
 
9722
                      OPC_EmitInteger, MVT::i32, 14, 
 
9723
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9724
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTT), 0,
 
9725
                          1, MVT::i32, 4, 1, 0, 2, 3, 
 
9726
                    19, 
 
9727
                      OPC_CheckPatternPredicate, 2,
 
9728
                      OPC_EmitInteger, MVT::i32, 14, 
 
9729
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9730
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTT), 0,
 
9731
                          1, MVT::i32, 4, 1, 0, 2, 3, 
 
9732
                    0, 
 
9733
                  91,  ISD::SIGN_EXTEND_INREG,
 
9734
                    OPC_RecordChild0,
 
9735
                    OPC_MoveChild, 1,
 
9736
                    OPC_CheckValueType, MVT::i16,
 
9737
                    OPC_MoveParent,
 
9738
                    OPC_MoveParent,
 
9739
                    OPC_CheckType, MVT::i32,
 
9740
                    OPC_Scope, 19, 
 
9741
                      OPC_CheckPatternPredicate, 7,
 
9742
                      OPC_EmitInteger, MVT::i32, 14, 
 
9743
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9744
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
 
9745
                          1, MVT::i32, 4, 0, 1, 2, 3, 
 
9746
                    19, 
 
9747
                      OPC_CheckPatternPredicate, 2,
 
9748
                      OPC_EmitInteger, MVT::i32, 14, 
 
9749
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9750
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTB), 0,
 
9751
                          1, MVT::i32, 4, 0, 1, 2, 3, 
 
9752
                    19, 
 
9753
                      OPC_CheckPatternPredicate, 7,
 
9754
                      OPC_EmitInteger, MVT::i32, 14, 
 
9755
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9756
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
 
9757
                          1, MVT::i32, 4, 1, 0, 2, 3, 
 
9758
                    19, 
 
9759
                      OPC_CheckPatternPredicate, 2,
 
9760
                      OPC_EmitInteger, MVT::i32, 14, 
 
9761
                      OPC_EmitRegister, MVT::i32, 0 ,
 
9762
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULBT), 0,
 
9763
                          1, MVT::i32, 4, 1, 0, 2, 3, 
 
9764
                    0, 
 
9765
                  0, 
 
9766
                0, 
 
9767
              104,  ISD::SIGN_EXTEND_INREG,
 
9768
                OPC_RecordChild0,
 
9769
                OPC_MoveChild, 1,
 
9770
                OPC_CheckValueType, MVT::i16,
 
9771
                OPC_MoveParent,
 
9772
                OPC_MoveParent,
 
9773
                OPC_MoveChild, 1,
 
9774
                OPC_CheckOpcode, ISD::SRA,
 
9775
                OPC_RecordChild0,
 
9776
                OPC_MoveChild, 1,
 
9777
                OPC_CheckInteger, 16, 
 
9778
                OPC_CheckType, MVT::i32,
 
9779
                OPC_MoveParent,
 
9780
                OPC_MoveParent,
 
9781
                OPC_CheckType, MVT::i32,
 
9782
                OPC_Scope, 19, 
 
9783
                  OPC_CheckPatternPredicate, 7,
 
9784
                  OPC_EmitInteger, MVT::i32, 14, 
 
9785
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9786
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
 
9787
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
9788
                19, 
 
9789
                  OPC_CheckPatternPredicate, 2,
 
9790
                  OPC_EmitInteger, MVT::i32, 14, 
 
9791
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9792
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULBT), 0,
 
9793
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
9794
                19, 
 
9795
                  OPC_CheckPatternPredicate, 7,
 
9796
                  OPC_EmitInteger, MVT::i32, 14, 
 
9797
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9798
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
 
9799
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
9800
                19, 
 
9801
                  OPC_CheckPatternPredicate, 2,
 
9802
                  OPC_EmitInteger, MVT::i32, 14, 
 
9803
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9804
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULTB), 0,
 
9805
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
9806
                0, 
 
9807
              0, 
 
9808
            40, 
 
9809
              OPC_RecordChild0,
 
9810
              OPC_MoveChild, 0,
 
9811
              OPC_CheckPredicate, 10,
 
9812
              OPC_MoveParent,
 
9813
              OPC_MoveChild, 1,
 
9814
              OPC_CheckOpcode, ISD::SRA,
 
9815
              OPC_RecordChild0,
 
9816
              OPC_MoveChild, 1,
 
9817
              OPC_CheckInteger, 16, 
 
9818
              OPC_CheckType, MVT::i32,
 
9819
              OPC_MoveParent,
 
9820
              OPC_MoveParent,
 
9821
              OPC_CheckType, MVT::i32,
 
9822
              OPC_CheckPatternPredicate, 7,
 
9823
              OPC_EmitInteger, MVT::i32, 14, 
 
9824
              OPC_EmitRegister, MVT::i32, 0 ,
 
9825
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
 
9826
                  1, MVT::i32, 4, 0, 1, 2, 3, 
 
9827
            55, 
 
9828
              OPC_MoveChild, 0,
 
9829
              OPC_CheckOpcode, ISD::SRA,
 
9830
              OPC_RecordChild0,
 
9831
              OPC_MoveChild, 1,
 
9832
              OPC_CheckInteger, 16, 
 
9833
              OPC_CheckType, MVT::i32,
 
9834
              OPC_MoveParent,
 
9835
              OPC_MoveParent,
 
9836
              OPC_RecordChild1,
 
9837
              OPC_MoveChild, 1,
 
9838
              OPC_CheckPredicate, 10,
 
9839
              OPC_MoveParent,
 
9840
              OPC_CheckType, MVT::i32,
 
9841
              OPC_CheckPatternPredicate, 7,
 
9842
              OPC_EmitInteger, MVT::i32, 14, 
 
9843
              OPC_EmitRegister, MVT::i32, 0 ,
 
9844
              OPC_Scope, 11, 
 
9845
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
 
9846
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
9847
              11, 
 
9848
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBT), 0,
 
9849
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
9850
              0, 
 
9851
            40, 
 
9852
              OPC_RecordChild0,
 
9853
              OPC_MoveChild, 0,
 
9854
              OPC_CheckPredicate, 10,
 
9855
              OPC_MoveParent,
 
9856
              OPC_MoveChild, 1,
 
9857
              OPC_CheckOpcode, ISD::SRA,
 
9858
              OPC_RecordChild0,
 
9859
              OPC_MoveChild, 1,
 
9860
              OPC_CheckInteger, 16, 
 
9861
              OPC_CheckType, MVT::i32,
 
9862
              OPC_MoveParent,
 
9863
              OPC_MoveParent,
 
9864
              OPC_CheckType, MVT::i32,
 
9865
              OPC_CheckPatternPredicate, 7,
 
9866
              OPC_EmitInteger, MVT::i32, 14, 
 
9867
              OPC_EmitRegister, MVT::i32, 0 ,
 
9868
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULTB), 0,
 
9869
                  1, MVT::i32, 4, 1, 0, 2, 3, 
 
9870
            66, 
 
9871
              OPC_MoveChild, 0,
 
9872
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
9873
              OPC_RecordChild0,
 
9874
              OPC_MoveChild, 1,
 
9875
              OPC_CheckValueType, MVT::i16,
 
9876
              OPC_MoveParent,
 
9877
              OPC_MoveParent,
 
9878
              OPC_MoveChild, 1,
 
9879
              OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
9880
              OPC_RecordChild0,
 
9881
              OPC_MoveChild, 1,
 
9882
              OPC_CheckValueType, MVT::i16,
 
9883
              OPC_MoveParent,
 
9884
              OPC_MoveParent,
 
9885
              OPC_CheckType, MVT::i32,
 
9886
              OPC_Scope, 19, 
 
9887
                OPC_CheckPatternPredicate, 7,
 
9888
                OPC_EmitInteger, MVT::i32, 14, 
 
9889
                OPC_EmitRegister, MVT::i32, 0 ,
 
9890
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
 
9891
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
9892
              19, 
 
9893
                OPC_CheckPatternPredicate, 2,
 
9894
                OPC_EmitInteger, MVT::i32, 14, 
 
9895
                OPC_EmitRegister, MVT::i32, 0 ,
 
9896
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULBB), 0,
 
9897
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
9898
              0, 
 
9899
            0|128,1, 
 
9900
              OPC_RecordChild0,
 
9901
              OPC_MoveChild, 1,
 
9902
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
9903
              OPC_RecordChild0,
 
9904
              OPC_Scope, 59, 
 
9905
                OPC_CheckChild0Type, MVT::v4i16,
 
9906
                OPC_RecordChild1,
 
9907
                OPC_MoveChild, 1,
 
9908
                OPC_CheckOpcode, ISD::Constant,
 
9909
                OPC_MoveParent,
 
9910
                OPC_MoveParent,
 
9911
                OPC_SwitchType , 22,  MVT::v4i16,
 
9912
                  OPC_CheckPatternPredicate, 3,
 
9913
                  OPC_EmitConvertToTarget, 2,
 
9914
                  OPC_EmitInteger, MVT::i32, 14, 
 
9915
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9916
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i16), 0,
 
9917
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
9918
                22,  MVT::v8i16,
 
9919
                  OPC_CheckPatternPredicate, 3,
 
9920
                  OPC_EmitConvertToTarget, 2,
 
9921
                  OPC_EmitInteger, MVT::i32, 14, 
 
9922
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9923
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
 
9924
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
9925
                0, 
 
9926
              59, 
 
9927
                OPC_CheckChild0Type, MVT::v2i32,
 
9928
                OPC_RecordChild1,
 
9929
                OPC_MoveChild, 1,
 
9930
                OPC_CheckOpcode, ISD::Constant,
 
9931
                OPC_MoveParent,
 
9932
                OPC_MoveParent,
 
9933
                OPC_SwitchType , 22,  MVT::v2i32,
 
9934
                  OPC_CheckPatternPredicate, 3,
 
9935
                  OPC_EmitConvertToTarget, 2,
 
9936
                  OPC_EmitInteger, MVT::i32, 14, 
 
9937
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9938
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv2i32), 0,
 
9939
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
9940
                22,  MVT::v4i32,
 
9941
                  OPC_CheckPatternPredicate, 3,
 
9942
                  OPC_EmitConvertToTarget, 2,
 
9943
                  OPC_EmitInteger, MVT::i32, 14, 
 
9944
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9945
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
 
9946
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
9947
                0, 
 
9948
              0, 
 
9949
            1|128,1, 
 
9950
              OPC_MoveChild, 0,
 
9951
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
9952
              OPC_RecordChild0,
 
9953
              OPC_Scope, 60, 
 
9954
                OPC_CheckChild0Type, MVT::v4i16,
 
9955
                OPC_RecordChild1,
 
9956
                OPC_MoveChild, 1,
 
9957
                OPC_CheckOpcode, ISD::Constant,
 
9958
                OPC_MoveParent,
 
9959
                OPC_MoveParent,
 
9960
                OPC_RecordChild1,
 
9961
                OPC_SwitchType , 22,  MVT::v4i16,
 
9962
                  OPC_CheckPatternPredicate, 3,
 
9963
                  OPC_EmitConvertToTarget, 1,
 
9964
                  OPC_EmitInteger, MVT::i32, 14, 
 
9965
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9966
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i16), 0,
 
9967
                      1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
9968
                22,  MVT::v8i16,
 
9969
                  OPC_CheckPatternPredicate, 3,
 
9970
                  OPC_EmitConvertToTarget, 1,
 
9971
                  OPC_EmitInteger, MVT::i32, 14, 
 
9972
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9973
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
 
9974
                      1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
9975
                0, 
 
9976
              60, 
 
9977
                OPC_CheckChild0Type, MVT::v2i32,
 
9978
                OPC_RecordChild1,
 
9979
                OPC_MoveChild, 1,
 
9980
                OPC_CheckOpcode, ISD::Constant,
 
9981
                OPC_MoveParent,
 
9982
                OPC_MoveParent,
 
9983
                OPC_RecordChild1,
 
9984
                OPC_SwitchType , 22,  MVT::v2i32,
 
9985
                  OPC_CheckPatternPredicate, 3,
 
9986
                  OPC_EmitConvertToTarget, 1,
 
9987
                  OPC_EmitInteger, MVT::i32, 14, 
 
9988
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9989
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv2i32), 0,
 
9990
                      1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
9991
                22,  MVT::v4i32,
 
9992
                  OPC_CheckPatternPredicate, 3,
 
9993
                  OPC_EmitConvertToTarget, 1,
 
9994
                  OPC_EmitInteger, MVT::i32, 14, 
 
9995
                  OPC_EmitRegister, MVT::i32, 0 ,
 
9996
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
 
9997
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
9998
                0, 
 
9999
              0, 
 
10000
            106, 
 
10001
              OPC_RecordChild0,
 
10002
              OPC_MoveChild, 1,
 
10003
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
10004
              OPC_RecordChild0,
 
10005
              OPC_Scope, 48, 
 
10006
                OPC_CheckChild0Type, MVT::v8i16,
 
10007
                OPC_RecordChild1,
 
10008
                OPC_MoveChild, 1,
 
10009
                OPC_CheckOpcode, ISD::Constant,
 
10010
                OPC_MoveParent,
 
10011
                OPC_MoveParent,
 
10012
                OPC_CheckType, MVT::v8i16,
 
10013
                OPC_EmitConvertToTarget, 2,
 
10014
                OPC_EmitNodeXForm, 6, 3,
 
10015
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
10016
                    1, MVT::v4i16, 2, 1, 4, 
 
10017
                OPC_EmitConvertToTarget, 2,
 
10018
                OPC_EmitNodeXForm, 7, 6,
 
10019
                OPC_EmitInteger, MVT::i32, 14, 
 
10020
                OPC_EmitRegister, MVT::i32, 0 ,
 
10021
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
 
10022
                    1, MVT::v8i16, 5, 0, 5, 7, 8, 9, 
 
10023
              48, 
 
10024
                OPC_CheckChild0Type, MVT::v4i32,
 
10025
                OPC_RecordChild1,
 
10026
                OPC_MoveChild, 1,
 
10027
                OPC_CheckOpcode, ISD::Constant,
 
10028
                OPC_MoveParent,
 
10029
                OPC_MoveParent,
 
10030
                OPC_CheckType, MVT::v4i32,
 
10031
                OPC_EmitConvertToTarget, 2,
 
10032
                OPC_EmitNodeXForm, 8, 3,
 
10033
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
10034
                    1, MVT::v2i32, 2, 1, 4, 
 
10035
                OPC_EmitConvertToTarget, 2,
 
10036
                OPC_EmitNodeXForm, 9, 6,
 
10037
                OPC_EmitInteger, MVT::i32, 14, 
 
10038
                OPC_EmitRegister, MVT::i32, 0 ,
 
10039
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
 
10040
                    1, MVT::v4i32, 5, 0, 5, 7, 8, 9, 
 
10041
              0, 
 
10042
            107, 
 
10043
              OPC_MoveChild, 0,
 
10044
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
10045
              OPC_RecordChild0,
 
10046
              OPC_Scope, 49, 
 
10047
                OPC_CheckChild0Type, MVT::v8i16,
 
10048
                OPC_RecordChild1,
 
10049
                OPC_MoveChild, 1,
 
10050
                OPC_CheckOpcode, ISD::Constant,
 
10051
                OPC_MoveParent,
 
10052
                OPC_MoveParent,
 
10053
                OPC_RecordChild1,
 
10054
                OPC_CheckType, MVT::v8i16,
 
10055
                OPC_EmitConvertToTarget, 1,
 
10056
                OPC_EmitNodeXForm, 6, 3,
 
10057
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
10058
                    1, MVT::v4i16, 2, 0, 4, 
 
10059
                OPC_EmitConvertToTarget, 1,
 
10060
                OPC_EmitNodeXForm, 7, 6,
 
10061
                OPC_EmitInteger, MVT::i32, 14, 
 
10062
                OPC_EmitRegister, MVT::i32, 0 ,
 
10063
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv8i16), 0,
 
10064
                    1, MVT::v8i16, 5, 2, 5, 7, 8, 9, 
 
10065
              49, 
 
10066
                OPC_CheckChild0Type, MVT::v4i32,
 
10067
                OPC_RecordChild1,
 
10068
                OPC_MoveChild, 1,
 
10069
                OPC_CheckOpcode, ISD::Constant,
 
10070
                OPC_MoveParent,
 
10071
                OPC_MoveParent,
 
10072
                OPC_RecordChild1,
 
10073
                OPC_CheckType, MVT::v4i32,
 
10074
                OPC_EmitConvertToTarget, 1,
 
10075
                OPC_EmitNodeXForm, 8, 3,
 
10076
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
10077
                    1, MVT::v2i32, 2, 0, 4, 
 
10078
                OPC_EmitConvertToTarget, 1,
 
10079
                OPC_EmitNodeXForm, 9, 6,
 
10080
                OPC_EmitInteger, MVT::i32, 14, 
 
10081
                OPC_EmitRegister, MVT::i32, 0 ,
 
10082
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslv4i32), 0,
 
10083
                    1, MVT::v4i32, 5, 2, 5, 7, 8, 9, 
 
10084
              0, 
 
10085
            111|128,1, 
 
10086
              OPC_RecordChild0,
 
10087
              OPC_Scope, 32, 
 
10088
                OPC_MoveChild, 0,
 
10089
                OPC_CheckPredicate, 10,
 
10090
                OPC_MoveParent,
 
10091
                OPC_RecordChild1,
 
10092
                OPC_MoveChild, 1,
 
10093
                OPC_CheckPredicate, 10,
 
10094
                OPC_MoveParent,
 
10095
                OPC_CheckType, MVT::i32,
 
10096
                OPC_CheckPatternPredicate, 7,
 
10097
                OPC_EmitInteger, MVT::i32, 14, 
 
10098
                OPC_EmitRegister, MVT::i32, 0 ,
 
10099
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULBB), 0,
 
10100
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
10101
              73|128,1, 
 
10102
                OPC_RecordChild1,
 
10103
                OPC_SwitchType , 70,  MVT::i32,
 
10104
                  OPC_Scope, 23, 
 
10105
                    OPC_CheckPatternPredicate, 5,
 
10106
                    OPC_EmitInteger, MVT::i32, 14, 
 
10107
                    OPC_EmitRegister, MVT::i32, 0 ,
 
10108
                    OPC_EmitRegister, MVT::i32, 0 ,
 
10109
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::MUL), 0,
 
10110
                        1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
10111
                  23, 
 
10112
                    OPC_CheckPatternPredicate, 6,
 
10113
                    OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
10114
                    OPC_EmitInteger, MVT::i32, 14, 
 
10115
                    OPC_EmitRegister, MVT::i32, 0 ,
 
10116
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMUL), 0,
 
10117
                        1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
10118
                  19, 
 
10119
                    OPC_CheckPatternPredicate, 2,
 
10120
                    OPC_EmitInteger, MVT::i32, 14, 
 
10121
                    OPC_EmitRegister, MVT::i32, 0 ,
 
10122
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MUL), 0,
 
10123
                        1, MVT::i32, 4, 0, 1, 2, 3, 
 
10124
                  0, 
 
10125
                19,  MVT::v8i8,
 
10126
                  OPC_CheckPatternPredicate, 3,
 
10127
                  OPC_EmitInteger, MVT::i32, 14, 
 
10128
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10129
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv8i8), 0,
 
10130
                      1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
10131
                19,  MVT::v4i16,
 
10132
                  OPC_CheckPatternPredicate, 3,
 
10133
                  OPC_EmitInteger, MVT::i32, 14, 
 
10134
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10135
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv4i16), 0,
 
10136
                      1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
10137
                19,  MVT::v2i32,
 
10138
                  OPC_CheckPatternPredicate, 3,
 
10139
                  OPC_EmitInteger, MVT::i32, 14, 
 
10140
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10141
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv2i32), 0,
 
10142
                      1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
10143
                19,  MVT::v16i8,
 
10144
                  OPC_CheckPatternPredicate, 3,
 
10145
                  OPC_EmitInteger, MVT::i32, 14, 
 
10146
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10147
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv16i8), 0,
 
10148
                      1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
10149
                19,  MVT::v8i16,
 
10150
                  OPC_CheckPatternPredicate, 3,
 
10151
                  OPC_EmitInteger, MVT::i32, 14, 
 
10152
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10153
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv8i16), 0,
 
10154
                      1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
10155
                19,  MVT::v4i32,
 
10156
                  OPC_CheckPatternPredicate, 3,
 
10157
                  OPC_EmitInteger, MVT::i32, 14, 
 
10158
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10159
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULv4i32), 0,
 
10160
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
10161
                0, 
 
10162
              0, 
 
10163
            0, 
 
10164
          120|128,16,  ISD::AND,
 
10165
            OPC_Scope, 3|128,1, 
 
10166
              OPC_CheckAndImm, 127|128,1|128,124|128,7, 
 
10167
              OPC_MoveChild, 0,
 
10168
              OPC_SwitchOpcode , 59,  ISD::SHL,
 
10169
                OPC_RecordChild0,
 
10170
                OPC_MoveChild, 1,
 
10171
                OPC_CheckInteger, 8, 
 
10172
                OPC_CheckType, MVT::i32,
 
10173
                OPC_MoveParent,
 
10174
                OPC_MoveParent,
 
10175
                OPC_CheckType, MVT::i32,
 
10176
                OPC_Scope, 22, 
 
10177
                  OPC_CheckPatternPredicate, 0,
 
10178
                  OPC_EmitInteger, MVT::i32, 24, 
 
10179
                  OPC_EmitInteger, MVT::i32, 14, 
 
10180
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10181
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r_rot), 0,
 
10182
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
10183
                22, 
 
10184
                  OPC_CheckPatternPredicate, 2,
 
10185
                  OPC_EmitInteger, MVT::i32, 24, 
 
10186
                  OPC_EmitInteger, MVT::i32, 14, 
 
10187
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10188
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r_rot), 0,
 
10189
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
10190
                0, 
 
10191
              59,  ISD::SRL,
 
10192
                OPC_RecordChild0,
 
10193
                OPC_MoveChild, 1,
 
10194
                OPC_CheckInteger, 8, 
 
10195
                OPC_CheckType, MVT::i32,
 
10196
                OPC_MoveParent,
 
10197
                OPC_MoveParent,
 
10198
                OPC_CheckType, MVT::i32,
 
10199
                OPC_Scope, 22, 
 
10200
                  OPC_CheckPatternPredicate, 0,
 
10201
                  OPC_EmitInteger, MVT::i32, 8, 
 
10202
                  OPC_EmitInteger, MVT::i32, 14, 
 
10203
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10204
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r_rot), 0,
 
10205
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
10206
                22, 
 
10207
                  OPC_CheckPatternPredicate, 2,
 
10208
                  OPC_EmitInteger, MVT::i32, 8, 
 
10209
                  OPC_EmitInteger, MVT::i32, 14, 
 
10210
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10211
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r_rot), 0,
 
10212
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
10213
                0, 
 
10214
              0, 
 
10215
            42, 
 
10216
              OPC_CheckAndImm, 127|128,1, 
 
10217
              OPC_MoveChild, 0,
 
10218
              OPC_CheckOpcode, ISD::ROTR,
 
10219
              OPC_RecordChild0,
 
10220
              OPC_RecordChild1,
 
10221
              OPC_MoveChild, 1,
 
10222
              OPC_CheckOpcode, ISD::Constant,
 
10223
              OPC_CheckPredicate, 9,
 
10224
              OPC_CheckType, MVT::i32,
 
10225
              OPC_MoveParent,
 
10226
              OPC_MoveParent,
 
10227
              OPC_CheckType, MVT::i32,
 
10228
              OPC_CheckPatternPredicate, 0,
 
10229
              OPC_EmitConvertToTarget, 1,
 
10230
              OPC_EmitInteger, MVT::i32, 14, 
 
10231
              OPC_EmitRegister, MVT::i32, 0 ,
 
10232
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTBr_rot), 0,
 
10233
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
10234
            43, 
 
10235
              OPC_CheckAndImm, 127|128,127|128,3, 
 
10236
              OPC_MoveChild, 0,
 
10237
              OPC_CheckOpcode, ISD::ROTR,
 
10238
              OPC_RecordChild0,
 
10239
              OPC_RecordChild1,
 
10240
              OPC_MoveChild, 1,
 
10241
              OPC_CheckOpcode, ISD::Constant,
 
10242
              OPC_CheckPredicate, 9,
 
10243
              OPC_CheckType, MVT::i32,
 
10244
              OPC_MoveParent,
 
10245
              OPC_MoveParent,
 
10246
              OPC_CheckType, MVT::i32,
 
10247
              OPC_CheckPatternPredicate, 0,
 
10248
              OPC_EmitConvertToTarget, 1,
 
10249
              OPC_EmitInteger, MVT::i32, 14, 
 
10250
              OPC_EmitRegister, MVT::i32, 0 ,
 
10251
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTHr_rot), 0,
 
10252
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
10253
            44, 
 
10254
              OPC_CheckAndImm, 127|128,1|128,124|128,7, 
 
10255
              OPC_MoveChild, 0,
 
10256
              OPC_CheckOpcode, ISD::ROTR,
 
10257
              OPC_RecordChild0,
 
10258
              OPC_RecordChild1,
 
10259
              OPC_MoveChild, 1,
 
10260
              OPC_CheckOpcode, ISD::Constant,
 
10261
              OPC_CheckPredicate, 9,
 
10262
              OPC_CheckType, MVT::i32,
 
10263
              OPC_MoveParent,
 
10264
              OPC_MoveParent,
 
10265
              OPC_CheckType, MVT::i32,
 
10266
              OPC_CheckPatternPredicate, 0,
 
10267
              OPC_EmitConvertToTarget, 1,
 
10268
              OPC_EmitInteger, MVT::i32, 14, 
 
10269
              OPC_EmitRegister, MVT::i32, 0 ,
 
10270
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r_rot), 0,
 
10271
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
10272
            42, 
 
10273
              OPC_CheckAndImm, 127|128,1, 
 
10274
              OPC_MoveChild, 0,
 
10275
              OPC_CheckOpcode, ISD::ROTR,
 
10276
              OPC_RecordChild0,
 
10277
              OPC_RecordChild1,
 
10278
              OPC_MoveChild, 1,
 
10279
              OPC_CheckOpcode, ISD::Constant,
 
10280
              OPC_CheckPredicate, 9,
 
10281
              OPC_CheckType, MVT::i32,
 
10282
              OPC_MoveParent,
 
10283
              OPC_MoveParent,
 
10284
              OPC_CheckType, MVT::i32,
 
10285
              OPC_CheckPatternPredicate, 2,
 
10286
              OPC_EmitConvertToTarget, 1,
 
10287
              OPC_EmitInteger, MVT::i32, 14, 
 
10288
              OPC_EmitRegister, MVT::i32, 0 ,
 
10289
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTBr_rot), 0,
 
10290
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
10291
            43, 
 
10292
              OPC_CheckAndImm, 127|128,127|128,3, 
 
10293
              OPC_MoveChild, 0,
 
10294
              OPC_CheckOpcode, ISD::ROTR,
 
10295
              OPC_RecordChild0,
 
10296
              OPC_RecordChild1,
 
10297
              OPC_MoveChild, 1,
 
10298
              OPC_CheckOpcode, ISD::Constant,
 
10299
              OPC_CheckPredicate, 9,
 
10300
              OPC_CheckType, MVT::i32,
 
10301
              OPC_MoveParent,
 
10302
              OPC_MoveParent,
 
10303
              OPC_CheckType, MVT::i32,
 
10304
              OPC_CheckPatternPredicate, 2,
 
10305
              OPC_EmitConvertToTarget, 1,
 
10306
              OPC_EmitInteger, MVT::i32, 14, 
 
10307
              OPC_EmitRegister, MVT::i32, 0 ,
 
10308
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTHr_rot), 0,
 
10309
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
10310
            44, 
 
10311
              OPC_CheckAndImm, 127|128,1|128,124|128,7, 
 
10312
              OPC_MoveChild, 0,
 
10313
              OPC_CheckOpcode, ISD::ROTR,
 
10314
              OPC_RecordChild0,
 
10315
              OPC_RecordChild1,
 
10316
              OPC_MoveChild, 1,
 
10317
              OPC_CheckOpcode, ISD::Constant,
 
10318
              OPC_CheckPredicate, 9,
 
10319
              OPC_CheckType, MVT::i32,
 
10320
              OPC_MoveParent,
 
10321
              OPC_MoveParent,
 
10322
              OPC_CheckType, MVT::i32,
 
10323
              OPC_CheckPatternPredicate, 2,
 
10324
              OPC_EmitConvertToTarget, 1,
 
10325
              OPC_EmitInteger, MVT::i32, 14, 
 
10326
              OPC_EmitRegister, MVT::i32, 0 ,
 
10327
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r_rot), 0,
 
10328
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
10329
            24, 
 
10330
              OPC_CheckAndImm, 127|128,1, 
 
10331
              OPC_RecordChild0,
 
10332
              OPC_CheckType, MVT::i32,
 
10333
              OPC_CheckPatternPredicate, 0,
 
10334
              OPC_EmitInteger, MVT::i32, 14, 
 
10335
              OPC_EmitRegister, MVT::i32, 0 ,
 
10336
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTBr), 0,
 
10337
                  1, MVT::i32, 3, 0, 1, 2, 
 
10338
            25, 
 
10339
              OPC_CheckAndImm, 127|128,127|128,3, 
 
10340
              OPC_RecordChild0,
 
10341
              OPC_CheckType, MVT::i32,
 
10342
              OPC_CheckPatternPredicate, 0,
 
10343
              OPC_EmitInteger, MVT::i32, 14, 
 
10344
              OPC_EmitRegister, MVT::i32, 0 ,
 
10345
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTHr), 0,
 
10346
                  1, MVT::i32, 3, 0, 1, 2, 
 
10347
            26, 
 
10348
              OPC_CheckAndImm, 127|128,1|128,124|128,7, 
 
10349
              OPC_RecordChild0,
 
10350
              OPC_CheckType, MVT::i32,
 
10351
              OPC_CheckPatternPredicate, 0,
 
10352
              OPC_EmitInteger, MVT::i32, 14, 
 
10353
              OPC_EmitRegister, MVT::i32, 0 ,
 
10354
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::UXTB16r), 0,
 
10355
                  1, MVT::i32, 3, 0, 1, 2, 
 
10356
            24, 
 
10357
              OPC_CheckAndImm, 127|128,1, 
 
10358
              OPC_RecordChild0,
 
10359
              OPC_CheckType, MVT::i32,
 
10360
              OPC_CheckPatternPredicate, 2,
 
10361
              OPC_EmitInteger, MVT::i32, 14, 
 
10362
              OPC_EmitRegister, MVT::i32, 0 ,
 
10363
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTBr), 0,
 
10364
                  1, MVT::i32, 3, 0, 1, 2, 
 
10365
            25, 
 
10366
              OPC_CheckAndImm, 127|128,127|128,3, 
 
10367
              OPC_RecordChild0,
 
10368
              OPC_CheckType, MVT::i32,
 
10369
              OPC_CheckPatternPredicate, 2,
 
10370
              OPC_EmitInteger, MVT::i32, 14, 
 
10371
              OPC_EmitRegister, MVT::i32, 0 ,
 
10372
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTHr), 0,
 
10373
                  1, MVT::i32, 3, 0, 1, 2, 
 
10374
            26, 
 
10375
              OPC_CheckAndImm, 127|128,1|128,124|128,7, 
 
10376
              OPC_RecordChild0,
 
10377
              OPC_CheckType, MVT::i32,
 
10378
              OPC_CheckPatternPredicate, 2,
 
10379
              OPC_EmitInteger, MVT::i32, 14, 
 
10380
              OPC_EmitRegister, MVT::i32, 0 ,
 
10381
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2UXTB16r), 0,
 
10382
                  1, MVT::i32, 3, 0, 1, 2, 
 
10383
            51, 
 
10384
              OPC_RecordChild0,
 
10385
              OPC_MoveChild, 1,
 
10386
              OPC_CheckOpcode, ISD::XOR,
 
10387
              OPC_RecordChild0,
 
10388
              OPC_MoveChild, 1,
 
10389
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10390
              OPC_MoveParent,
 
10391
              OPC_MoveParent,
 
10392
              OPC_CheckType, MVT::i32,
 
10393
              OPC_CheckPatternPredicate, 5,
 
10394
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
10395
              OPC_EmitInteger, MVT::i32, 14, 
 
10396
              OPC_EmitRegister, MVT::i32, 0 ,
 
10397
              OPC_EmitRegister, MVT::i32, 0 ,
 
10398
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrs), 0,
 
10399
                  1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
10400
            51, 
 
10401
              OPC_MoveChild, 0,
 
10402
              OPC_CheckOpcode, ISD::XOR,
 
10403
              OPC_RecordChild0,
 
10404
              OPC_MoveChild, 1,
 
10405
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10406
              OPC_MoveParent,
 
10407
              OPC_MoveParent,
 
10408
              OPC_RecordChild1,
 
10409
              OPC_CheckType, MVT::i32,
 
10410
              OPC_CheckPatternPredicate, 5,
 
10411
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
10412
              OPC_EmitInteger, MVT::i32, 14, 
 
10413
              OPC_EmitRegister, MVT::i32, 0 ,
 
10414
              OPC_EmitRegister, MVT::i32, 0 ,
 
10415
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrs), 0,
 
10416
                  1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
10417
            50, 
 
10418
              OPC_RecordChild0,
 
10419
              OPC_MoveChild, 1,
 
10420
              OPC_CheckOpcode, ISD::XOR,
 
10421
              OPC_RecordChild0,
 
10422
              OPC_MoveChild, 1,
 
10423
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10424
              OPC_MoveParent,
 
10425
              OPC_MoveParent,
 
10426
              OPC_CheckType, MVT::i32,
 
10427
              OPC_CheckPatternPredicate, 2,
 
10428
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
10429
              OPC_EmitInteger, MVT::i32, 14, 
 
10430
              OPC_EmitRegister, MVT::i32, 0 ,
 
10431
              OPC_EmitRegister, MVT::i32, 0 ,
 
10432
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrs), 0,
 
10433
                  1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
10434
            50, 
 
10435
              OPC_MoveChild, 0,
 
10436
              OPC_CheckOpcode, ISD::XOR,
 
10437
              OPC_RecordChild0,
 
10438
              OPC_MoveChild, 1,
 
10439
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10440
              OPC_MoveParent,
 
10441
              OPC_MoveParent,
 
10442
              OPC_RecordChild1,
 
10443
              OPC_CheckType, MVT::i32,
 
10444
              OPC_CheckPatternPredicate, 2,
 
10445
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
10446
              OPC_EmitInteger, MVT::i32, 14, 
 
10447
              OPC_EmitRegister, MVT::i32, 0 ,
 
10448
              OPC_EmitRegister, MVT::i32, 0 ,
 
10449
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrs), 0,
 
10450
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
10451
            98|128,1, 
 
10452
              OPC_RecordChild0,
 
10453
              OPC_Scope, 31, 
 
10454
                OPC_RecordChild1,
 
10455
                OPC_CheckType, MVT::i32,
 
10456
                OPC_CheckPatternPredicate, 5,
 
10457
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
10458
                OPC_EmitInteger, MVT::i32, 14, 
 
10459
                OPC_EmitRegister, MVT::i32, 0 ,
 
10460
                OPC_EmitRegister, MVT::i32, 0 ,
 
10461
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDrs), 0,
 
10462
                    1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
10463
              103, 
 
10464
                OPC_MoveChild, 1,
 
10465
                OPC_CheckOpcode, ISD::XOR,
 
10466
                OPC_RecordChild0,
 
10467
                OPC_MoveChild, 0,
 
10468
                OPC_CheckOpcode, ISD::Constant,
 
10469
                OPC_Scope, 45, 
 
10470
                  OPC_CheckPredicate, 5,
 
10471
                  OPC_MoveParent,
 
10472
                  OPC_MoveChild, 1,
 
10473
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10474
                  OPC_MoveParent,
 
10475
                  OPC_MoveParent,
 
10476
                  OPC_CheckType, MVT::i32,
 
10477
                  OPC_CheckPatternPredicate, 5,
 
10478
                  OPC_EmitConvertToTarget, 1,
 
10479
                  OPC_EmitInteger, MVT::i32, 14, 
 
10480
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10481
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10482
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
 
10483
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
10484
                45, 
 
10485
                  OPC_CheckPredicate, 4,
 
10486
                  OPC_MoveParent,
 
10487
                  OPC_MoveChild, 1,
 
10488
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10489
                  OPC_MoveParent,
 
10490
                  OPC_MoveParent,
 
10491
                  OPC_CheckType, MVT::i32,
 
10492
                  OPC_CheckPatternPredicate, 2,
 
10493
                  OPC_EmitConvertToTarget, 1,
 
10494
                  OPC_EmitInteger, MVT::i32, 14, 
 
10495
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10496
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10497
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
 
10498
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
10499
                0, 
 
10500
              31, 
 
10501
                OPC_RecordChild1,
 
10502
                OPC_CheckType, MVT::i32,
 
10503
                OPC_CheckPatternPredicate, 5,
 
10504
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
10505
                OPC_EmitInteger, MVT::i32, 14, 
 
10506
                OPC_EmitRegister, MVT::i32, 0 ,
 
10507
                OPC_EmitRegister, MVT::i32, 0 ,
 
10508
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDrs), 0,
 
10509
                    1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
10510
              54, 
 
10511
                OPC_MoveChild, 1,
 
10512
                OPC_CheckOpcode, ISD::XOR,
 
10513
                OPC_MoveChild, 0,
 
10514
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10515
                OPC_MoveParent,
 
10516
                OPC_RecordChild1,
 
10517
                OPC_MoveChild, 1,
 
10518
                OPC_CheckOpcode, ISD::Constant,
 
10519
                OPC_CheckPredicate, 5,
 
10520
                OPC_MoveParent,
 
10521
                OPC_MoveParent,
 
10522
                OPC_CheckType, MVT::i32,
 
10523
                OPC_CheckPatternPredicate, 5,
 
10524
                OPC_EmitConvertToTarget, 1,
 
10525
                OPC_EmitInteger, MVT::i32, 14, 
 
10526
                OPC_EmitRegister, MVT::i32, 0 ,
 
10527
                OPC_EmitRegister, MVT::i32, 0 ,
 
10528
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
 
10529
                    1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
10530
              0, 
 
10531
            110, 
 
10532
              OPC_MoveChild, 0,
 
10533
              OPC_CheckOpcode, ISD::XOR,
 
10534
              OPC_Scope, 51, 
 
10535
                OPC_RecordChild0,
 
10536
                OPC_MoveChild, 0,
 
10537
                OPC_CheckOpcode, ISD::Constant,
 
10538
                OPC_CheckPredicate, 5,
 
10539
                OPC_MoveParent,
 
10540
                OPC_MoveChild, 1,
 
10541
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10542
                OPC_MoveParent,
 
10543
                OPC_MoveParent,
 
10544
                OPC_RecordChild1,
 
10545
                OPC_CheckType, MVT::i32,
 
10546
                OPC_CheckPatternPredicate, 5,
 
10547
                OPC_EmitConvertToTarget, 0,
 
10548
                OPC_EmitInteger, MVT::i32, 14, 
 
10549
                OPC_EmitRegister, MVT::i32, 0 ,
 
10550
                OPC_EmitRegister, MVT::i32, 0 ,
 
10551
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
 
10552
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
10553
              51, 
 
10554
                OPC_MoveChild, 0,
 
10555
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10556
                OPC_MoveParent,
 
10557
                OPC_RecordChild1,
 
10558
                OPC_MoveChild, 1,
 
10559
                OPC_CheckOpcode, ISD::Constant,
 
10560
                OPC_CheckPredicate, 5,
 
10561
                OPC_MoveParent,
 
10562
                OPC_MoveParent,
 
10563
                OPC_RecordChild1,
 
10564
                OPC_CheckType, MVT::i32,
 
10565
                OPC_CheckPatternPredicate, 5,
 
10566
                OPC_EmitConvertToTarget, 0,
 
10567
                OPC_EmitInteger, MVT::i32, 14, 
 
10568
                OPC_EmitRegister, MVT::i32, 0 ,
 
10569
                OPC_EmitRegister, MVT::i32, 0 ,
 
10570
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
 
10571
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
10572
              0, 
 
10573
            55, 
 
10574
              OPC_RecordChild0,
 
10575
              OPC_MoveChild, 1,
 
10576
              OPC_CheckOpcode, ISD::XOR,
 
10577
              OPC_MoveChild, 0,
 
10578
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10579
              OPC_MoveParent,
 
10580
              OPC_RecordChild1,
 
10581
              OPC_MoveChild, 1,
 
10582
              OPC_CheckOpcode, ISD::Constant,
 
10583
              OPC_CheckPredicate, 4,
 
10584
              OPC_MoveParent,
 
10585
              OPC_MoveParent,
 
10586
              OPC_CheckType, MVT::i32,
 
10587
              OPC_CheckPatternPredicate, 2,
 
10588
              OPC_EmitConvertToTarget, 1,
 
10589
              OPC_EmitInteger, MVT::i32, 14, 
 
10590
              OPC_EmitRegister, MVT::i32, 0 ,
 
10591
              OPC_EmitRegister, MVT::i32, 0 ,
 
10592
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
 
10593
                  1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
10594
            110, 
 
10595
              OPC_MoveChild, 0,
 
10596
              OPC_CheckOpcode, ISD::XOR,
 
10597
              OPC_Scope, 51, 
 
10598
                OPC_RecordChild0,
 
10599
                OPC_MoveChild, 0,
 
10600
                OPC_CheckOpcode, ISD::Constant,
 
10601
                OPC_CheckPredicate, 4,
 
10602
                OPC_MoveParent,
 
10603
                OPC_MoveChild, 1,
 
10604
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10605
                OPC_MoveParent,
 
10606
                OPC_MoveParent,
 
10607
                OPC_RecordChild1,
 
10608
                OPC_CheckType, MVT::i32,
 
10609
                OPC_CheckPatternPredicate, 2,
 
10610
                OPC_EmitConvertToTarget, 0,
 
10611
                OPC_EmitInteger, MVT::i32, 14, 
 
10612
                OPC_EmitRegister, MVT::i32, 0 ,
 
10613
                OPC_EmitRegister, MVT::i32, 0 ,
 
10614
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
 
10615
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
10616
              51, 
 
10617
                OPC_MoveChild, 0,
 
10618
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10619
                OPC_MoveParent,
 
10620
                OPC_RecordChild1,
 
10621
                OPC_MoveChild, 1,
 
10622
                OPC_CheckOpcode, ISD::Constant,
 
10623
                OPC_CheckPredicate, 4,
 
10624
                OPC_MoveParent,
 
10625
                OPC_MoveParent,
 
10626
                OPC_RecordChild1,
 
10627
                OPC_CheckType, MVT::i32,
 
10628
                OPC_CheckPatternPredicate, 2,
 
10629
                OPC_EmitConvertToTarget, 0,
 
10630
                OPC_EmitInteger, MVT::i32, 14, 
 
10631
                OPC_EmitRegister, MVT::i32, 0 ,
 
10632
                OPC_EmitRegister, MVT::i32, 0 ,
 
10633
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
 
10634
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
10635
              0, 
 
10636
            32|128,1, 
 
10637
              OPC_RecordChild0,
 
10638
              OPC_Scope, 59, 
 
10639
                OPC_RecordChild1,
 
10640
                OPC_CheckType, MVT::i32,
 
10641
                OPC_CheckPatternPredicate, 2,
 
10642
                OPC_Scope, 25, 
 
10643
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
10644
                  OPC_EmitInteger, MVT::i32, 14, 
 
10645
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10646
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10647
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDrs), 0,
 
10648
                      1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
10649
                25, 
 
10650
                  OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
10651
                  OPC_EmitInteger, MVT::i32, 14, 
 
10652
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10653
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10654
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDrs), 0,
 
10655
                      1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
10656
                0, 
 
10657
              96, 
 
10658
                OPC_MoveChild, 1,
 
10659
                OPC_CheckOpcode, ISD::XOR,
 
10660
                OPC_RecordChild0,
 
10661
                OPC_MoveChild, 1,
 
10662
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10663
                OPC_MoveParent,
 
10664
                OPC_MoveParent,
 
10665
                OPC_CheckType, MVT::i32,
 
10666
                OPC_Scope, 23, 
 
10667
                  OPC_CheckPatternPredicate, 5,
 
10668
                  OPC_EmitInteger, MVT::i32, 14, 
 
10669
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10670
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10671
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrr), 0,
 
10672
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
10673
                23, 
 
10674
                  OPC_CheckPatternPredicate, 6,
 
10675
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
10676
                  OPC_EmitInteger, MVT::i32, 14, 
 
10677
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10678
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBIC), 0,
 
10679
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
10680
                23, 
 
10681
                  OPC_CheckPatternPredicate, 2,
 
10682
                  OPC_EmitInteger, MVT::i32, 14, 
 
10683
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10684
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10685
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrr), 0,
 
10686
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
10687
                0, 
 
10688
              0, 
 
10689
            97, 
 
10690
              OPC_MoveChild, 0,
 
10691
              OPC_CheckOpcode, ISD::XOR,
 
10692
              OPC_RecordChild0,
 
10693
              OPC_MoveChild, 1,
 
10694
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
10695
              OPC_MoveParent,
 
10696
              OPC_MoveParent,
 
10697
              OPC_RecordChild1,
 
10698
              OPC_CheckType, MVT::i32,
 
10699
              OPC_Scope, 23, 
 
10700
                OPC_CheckPatternPredicate, 5,
 
10701
                OPC_EmitInteger, MVT::i32, 14, 
 
10702
                OPC_EmitRegister, MVT::i32, 0 ,
 
10703
                OPC_EmitRegister, MVT::i32, 0 ,
 
10704
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICrr), 0,
 
10705
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
10706
              23, 
 
10707
                OPC_CheckPatternPredicate, 6,
 
10708
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
10709
                OPC_EmitInteger, MVT::i32, 14, 
 
10710
                OPC_EmitRegister, MVT::i32, 0 ,
 
10711
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBIC), 0,
 
10712
                    1, MVT::i32, 5, 2, 1, 0, 3, 4, 
 
10713
              23, 
 
10714
                OPC_CheckPatternPredicate, 2,
 
10715
                OPC_EmitInteger, MVT::i32, 14, 
 
10716
                OPC_EmitRegister, MVT::i32, 0 ,
 
10717
                OPC_EmitRegister, MVT::i32, 0 ,
 
10718
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICrr), 0,
 
10719
                    1, MVT::i32, 5, 1, 0, 2, 3, 4, 
 
10720
              0, 
 
10721
            92, 
 
10722
              OPC_RecordChild0,
 
10723
              OPC_MoveChild, 1,
 
10724
              OPC_CheckOpcode, ISD::XOR,
 
10725
              OPC_Scope, 53, 
 
10726
                OPC_RecordChild0,
 
10727
                OPC_MoveChild, 1,
 
10728
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10729
                OPC_CheckPredicate, 2,
 
10730
                OPC_MoveParent,
 
10731
                OPC_MoveParent,
 
10732
                OPC_SwitchType , 19,  MVT::v2i32,
 
10733
                  OPC_CheckPatternPredicate, 3,
 
10734
                  OPC_EmitInteger, MVT::i32, 14, 
 
10735
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10736
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
 
10737
                      1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
10738
                19,  MVT::v4i32,
 
10739
                  OPC_CheckPatternPredicate, 3,
 
10740
                  OPC_EmitInteger, MVT::i32, 14, 
 
10741
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10742
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
 
10743
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
10744
                0, 
 
10745
              30, 
 
10746
                OPC_MoveChild, 0,
 
10747
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10748
                OPC_CheckPredicate, 2,
 
10749
                OPC_MoveParent,
 
10750
                OPC_RecordChild1,
 
10751
                OPC_MoveParent,
 
10752
                OPC_CheckType, MVT::v2i32,
 
10753
                OPC_CheckPatternPredicate, 3,
 
10754
                OPC_EmitInteger, MVT::i32, 14, 
 
10755
                OPC_EmitRegister, MVT::i32, 0 ,
 
10756
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
 
10757
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
10758
              0, 
 
10759
            70, 
 
10760
              OPC_MoveChild, 0,
 
10761
              OPC_CheckOpcode, ISD::XOR,
 
10762
              OPC_Scope, 31, 
 
10763
                OPC_RecordChild0,
 
10764
                OPC_MoveChild, 1,
 
10765
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10766
                OPC_CheckPredicate, 2,
 
10767
                OPC_MoveParent,
 
10768
                OPC_MoveParent,
 
10769
                OPC_RecordChild1,
 
10770
                OPC_CheckType, MVT::v2i32,
 
10771
                OPC_CheckPatternPredicate, 3,
 
10772
                OPC_EmitInteger, MVT::i32, 14, 
 
10773
                OPC_EmitRegister, MVT::i32, 0 ,
 
10774
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
 
10775
                    1, MVT::v2i32, 4, 1, 0, 2, 3, 
 
10776
              31, 
 
10777
                OPC_MoveChild, 0,
 
10778
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10779
                OPC_CheckPredicate, 2,
 
10780
                OPC_MoveParent,
 
10781
                OPC_RecordChild1,
 
10782
                OPC_MoveParent,
 
10783
                OPC_RecordChild1,
 
10784
                OPC_CheckType, MVT::v2i32,
 
10785
                OPC_CheckPatternPredicate, 3,
 
10786
                OPC_EmitInteger, MVT::i32, 14, 
 
10787
                OPC_EmitRegister, MVT::i32, 0 ,
 
10788
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICd), 0,
 
10789
                    1, MVT::v2i32, 4, 1, 0, 2, 3, 
 
10790
              0, 
 
10791
            35, 
 
10792
              OPC_RecordChild0,
 
10793
              OPC_MoveChild, 1,
 
10794
              OPC_CheckOpcode, ISD::XOR,
 
10795
              OPC_MoveChild, 0,
 
10796
              OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10797
              OPC_CheckPredicate, 2,
 
10798
              OPC_MoveParent,
 
10799
              OPC_RecordChild1,
 
10800
              OPC_MoveParent,
 
10801
              OPC_CheckType, MVT::v4i32,
 
10802
              OPC_CheckPatternPredicate, 3,
 
10803
              OPC_EmitInteger, MVT::i32, 14, 
 
10804
              OPC_EmitRegister, MVT::i32, 0 ,
 
10805
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
 
10806
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
10807
            70, 
 
10808
              OPC_MoveChild, 0,
 
10809
              OPC_CheckOpcode, ISD::XOR,
 
10810
              OPC_Scope, 31, 
 
10811
                OPC_RecordChild0,
 
10812
                OPC_MoveChild, 1,
 
10813
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10814
                OPC_CheckPredicate, 2,
 
10815
                OPC_MoveParent,
 
10816
                OPC_MoveParent,
 
10817
                OPC_RecordChild1,
 
10818
                OPC_CheckType, MVT::v4i32,
 
10819
                OPC_CheckPatternPredicate, 3,
 
10820
                OPC_EmitInteger, MVT::i32, 14, 
 
10821
                OPC_EmitRegister, MVT::i32, 0 ,
 
10822
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
 
10823
                    1, MVT::v4i32, 4, 1, 0, 2, 3, 
 
10824
              31, 
 
10825
                OPC_MoveChild, 0,
 
10826
                OPC_CheckOpcode, ISD::BIT_CONVERT,
 
10827
                OPC_CheckPredicate, 2,
 
10828
                OPC_MoveParent,
 
10829
                OPC_RecordChild1,
 
10830
                OPC_MoveParent,
 
10831
                OPC_RecordChild1,
 
10832
                OPC_CheckType, MVT::v4i32,
 
10833
                OPC_CheckPatternPredicate, 3,
 
10834
                OPC_EmitInteger, MVT::i32, 14, 
 
10835
                OPC_EmitRegister, MVT::i32, 0 ,
 
10836
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VBICq), 0,
 
10837
                    1, MVT::v4i32, 4, 1, 0, 2, 3, 
 
10838
              0, 
 
10839
            24, 
 
10840
              OPC_CheckAndImm, 127|128,1, 
 
10841
              OPC_RecordChild0,
 
10842
              OPC_CheckType, MVT::i32,
 
10843
              OPC_CheckPatternPredicate, 1,
 
10844
              OPC_EmitInteger, MVT::i32, 14, 
 
10845
              OPC_EmitRegister, MVT::i32, 0 ,
 
10846
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tUXTB), 0,
 
10847
                  1, MVT::i32, 3, 0, 1, 2, 
 
10848
            25, 
 
10849
              OPC_CheckAndImm, 127|128,127|128,3, 
 
10850
              OPC_RecordChild0,
 
10851
              OPC_CheckType, MVT::i32,
 
10852
              OPC_CheckPatternPredicate, 1,
 
10853
              OPC_EmitInteger, MVT::i32, 14, 
 
10854
              OPC_EmitRegister, MVT::i32, 0 ,
 
10855
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tUXTH), 0,
 
10856
                  1, MVT::i32, 3, 0, 1, 2, 
 
10857
            61|128,2, 
 
10858
              OPC_RecordChild0,
 
10859
              OPC_RecordChild1,
 
10860
              OPC_Scope, 62|128,1, 
 
10861
                OPC_MoveChild, 1,
 
10862
                OPC_CheckOpcode, ISD::Constant,
 
10863
                OPC_Scope, 30, 
 
10864
                  OPC_CheckPredicate, 5,
 
10865
                  OPC_MoveParent,
 
10866
                  OPC_CheckType, MVT::i32,
 
10867
                  OPC_CheckPatternPredicate, 5,
 
10868
                  OPC_EmitConvertToTarget, 1,
 
10869
                  OPC_EmitInteger, MVT::i32, 14, 
 
10870
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10871
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10872
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDri), 0,
 
10873
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
10874
                26, 
 
10875
                  OPC_CheckPredicate, 22,
 
10876
                  OPC_MoveParent,
 
10877
                  OPC_CheckType, MVT::i32,
 
10878
                  OPC_CheckPatternPredicate, 4,
 
10879
                  OPC_EmitConvertToTarget, 1,
 
10880
                  OPC_EmitInteger, MVT::i32, 14, 
 
10881
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10882
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BFC), 0,
 
10883
                      1, MVT::i32, 4, 0, 2, 3, 4, 
 
10884
                33, 
 
10885
                  OPC_CheckPredicate, 23,
 
10886
                  OPC_MoveParent,
 
10887
                  OPC_CheckType, MVT::i32,
 
10888
                  OPC_CheckPatternPredicate, 5,
 
10889
                  OPC_EmitConvertToTarget, 1,
 
10890
                  OPC_EmitNodeXForm, 17, 2,
 
10891
                  OPC_EmitInteger, MVT::i32, 14, 
 
10892
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10893
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10894
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BICri), 0,
 
10895
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
10896
                30, 
 
10897
                  OPC_CheckPredicate, 4,
 
10898
                  OPC_MoveParent,
 
10899
                  OPC_CheckType, MVT::i32,
 
10900
                  OPC_CheckPatternPredicate, 2,
 
10901
                  OPC_EmitConvertToTarget, 1,
 
10902
                  OPC_EmitInteger, MVT::i32, 14, 
 
10903
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10904
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10905
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDri), 0,
 
10906
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
10907
                26, 
 
10908
                  OPC_CheckPredicate, 22,
 
10909
                  OPC_MoveParent,
 
10910
                  OPC_CheckType, MVT::i32,
 
10911
                  OPC_CheckPatternPredicate, 2,
 
10912
                  OPC_EmitConvertToTarget, 1,
 
10913
                  OPC_EmitInteger, MVT::i32, 14, 
 
10914
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10915
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BFC), 0,
 
10916
                      1, MVT::i32, 4, 0, 2, 3, 4, 
 
10917
                33, 
 
10918
                  OPC_CheckPredicate, 6,
 
10919
                  OPC_MoveParent,
 
10920
                  OPC_CheckType, MVT::i32,
 
10921
                  OPC_CheckPatternPredicate, 2,
 
10922
                  OPC_EmitConvertToTarget, 1,
 
10923
                  OPC_EmitNodeXForm, 1, 2,
 
10924
                  OPC_EmitInteger, MVT::i32, 14, 
 
10925
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10926
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10927
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BICri), 0,
 
10928
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
10929
                0, 
 
10930
              76, 
 
10931
                OPC_CheckType, MVT::i32,
 
10932
                OPC_Scope, 23, 
 
10933
                  OPC_CheckPatternPredicate, 5,
 
10934
                  OPC_EmitInteger, MVT::i32, 14, 
 
10935
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10936
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10937
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ANDrr), 0,
 
10938
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
10939
                23, 
 
10940
                  OPC_CheckPatternPredicate, 6,
 
10941
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
10942
                  OPC_EmitInteger, MVT::i32, 14, 
 
10943
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10944
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tAND), 0,
 
10945
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
10946
                23, 
 
10947
                  OPC_CheckPatternPredicate, 2,
 
10948
                  OPC_EmitInteger, MVT::i32, 14, 
 
10949
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10950
                  OPC_EmitRegister, MVT::i32, 0 ,
 
10951
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ANDrr), 0,
 
10952
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
10953
                0, 
 
10954
              21, 
 
10955
                OPC_CheckType, MVT::v2i32,
 
10956
                OPC_CheckPatternPredicate, 3,
 
10957
                OPC_EmitInteger, MVT::i32, 14, 
 
10958
                OPC_EmitRegister, MVT::i32, 0 ,
 
10959
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VANDd), 0,
 
10960
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
10961
              21, 
 
10962
                OPC_CheckType, MVT::v4i32,
 
10963
                OPC_CheckPatternPredicate, 3,
 
10964
                OPC_EmitInteger, MVT::i32, 14, 
 
10965
                OPC_EmitRegister, MVT::i32, 0 ,
 
10966
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VANDq), 0,
 
10967
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
10968
              0, 
 
10969
            0, 
 
10970
          112|128,3,  ISD::SIGN_EXTEND_INREG,
 
10971
            OPC_Scope, 85|128,2, 
 
10972
              OPC_MoveChild, 0,
 
10973
              OPC_SwitchOpcode , 80|128,1,  ISD::OR,
 
10974
                OPC_MoveChild, 0,
 
10975
                OPC_SwitchOpcode , 100,  ISD::SRL,
 
10976
                  OPC_MoveChild, 0,
 
10977
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
10978
                  OPC_RecordChild0,
 
10979
                  OPC_MoveParent,
 
10980
                  OPC_MoveChild, 1,
 
10981
                  OPC_CheckInteger, 8, 
 
10982
                  OPC_CheckType, MVT::i32,
 
10983
                  OPC_MoveParent,
 
10984
                  OPC_MoveParent,
 
10985
                  OPC_MoveChild, 1,
 
10986
                  OPC_CheckOpcode, ISD::SHL,
 
10987
                  OPC_MoveChild, 0,
 
10988
                  OPC_CheckSame, 0,
 
10989
                  OPC_MoveParent,
 
10990
                  OPC_MoveChild, 1,
 
10991
                  OPC_CheckInteger, 8, 
 
10992
                  OPC_CheckType, MVT::i32,
 
10993
                  OPC_MoveParent,
 
10994
                  OPC_MoveParent,
 
10995
                  OPC_MoveParent,
 
10996
                  OPC_MoveChild, 1,
 
10997
                  OPC_CheckValueType, MVT::i16,
 
10998
                  OPC_MoveParent,
 
10999
                  OPC_CheckType, MVT::i32,
 
11000
                  OPC_Scope, 18, 
 
11001
                    OPC_CheckPatternPredicate, 0,
 
11002
                    OPC_EmitInteger, MVT::i32, 14, 
 
11003
                    OPC_EmitRegister, MVT::i32, 0 ,
 
11004
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REVSH), 0,
 
11005
                        1, MVT::i32, 3, 0, 1, 2, 
 
11006
                  18, 
 
11007
                    OPC_CheckPatternPredicate, 1,
 
11008
                    OPC_EmitInteger, MVT::i32, 14, 
 
11009
                    OPC_EmitRegister, MVT::i32, 0 ,
 
11010
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREVSH), 0,
 
11011
                        1, MVT::i32, 3, 0, 1, 2, 
 
11012
                  18, 
 
11013
                    OPC_CheckPatternPredicate, 2,
 
11014
                    OPC_EmitInteger, MVT::i32, 14, 
 
11015
                    OPC_EmitRegister, MVT::i32, 0 ,
 
11016
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REVSH), 0,
 
11017
                        1, MVT::i32, 3, 0, 1, 2, 
 
11018
                  0, 
 
11019
                100,  ISD::SHL,
 
11020
                  OPC_RecordChild0,
 
11021
                  OPC_MoveChild, 1,
 
11022
                  OPC_CheckInteger, 8, 
 
11023
                  OPC_CheckType, MVT::i32,
 
11024
                  OPC_MoveParent,
 
11025
                  OPC_MoveParent,
 
11026
                  OPC_MoveChild, 1,
 
11027
                  OPC_CheckOpcode, ISD::SRL,
 
11028
                  OPC_MoveChild, 0,
 
11029
                  OPC_CheckAndImm, 0|128,126|128,3, 
 
11030
                  OPC_MoveChild, 0,
 
11031
                  OPC_CheckSame, 0,
 
11032
                  OPC_MoveParent,
 
11033
                  OPC_MoveParent,
 
11034
                  OPC_MoveChild, 1,
 
11035
                  OPC_CheckInteger, 8, 
 
11036
                  OPC_CheckType, MVT::i32,
 
11037
                  OPC_MoveParent,
 
11038
                  OPC_MoveParent,
 
11039
                  OPC_MoveParent,
 
11040
                  OPC_MoveChild, 1,
 
11041
                  OPC_CheckValueType, MVT::i16,
 
11042
                  OPC_MoveParent,
 
11043
                  OPC_CheckType, MVT::i32,
 
11044
                  OPC_Scope, 18, 
 
11045
                    OPC_CheckPatternPredicate, 0,
 
11046
                    OPC_EmitInteger, MVT::i32, 14, 
 
11047
                    OPC_EmitRegister, MVT::i32, 0 ,
 
11048
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::REVSH), 0,
 
11049
                        1, MVT::i32, 3, 0, 1, 2, 
 
11050
                  18, 
 
11051
                    OPC_CheckPatternPredicate, 1,
 
11052
                    OPC_EmitInteger, MVT::i32, 14, 
 
11053
                    OPC_EmitRegister, MVT::i32, 0 ,
 
11054
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREVSH), 0,
 
11055
                        1, MVT::i32, 3, 0, 1, 2, 
 
11056
                  18, 
 
11057
                    OPC_CheckPatternPredicate, 2,
 
11058
                    OPC_EmitInteger, MVT::i32, 14, 
 
11059
                    OPC_EmitRegister, MVT::i32, 0 ,
 
11060
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REVSH), 0,
 
11061
                        1, MVT::i32, 3, 0, 1, 2, 
 
11062
                  0, 
 
11063
                0, 
 
11064
              124,  ISD::ROTR,
 
11065
                OPC_RecordChild0,
 
11066
                OPC_RecordChild1,
 
11067
                OPC_MoveChild, 1,
 
11068
                OPC_CheckOpcode, ISD::Constant,
 
11069
                OPC_CheckPredicate, 9,
 
11070
                OPC_CheckType, MVT::i32,
 
11071
                OPC_MoveParent,
 
11072
                OPC_MoveParent,
 
11073
                OPC_MoveChild, 1,
 
11074
                OPC_Scope, 26, 
 
11075
                  OPC_CheckValueType, MVT::i8,
 
11076
                  OPC_MoveParent,
 
11077
                  OPC_CheckType, MVT::i32,
 
11078
                  OPC_CheckPatternPredicate, 0,
 
11079
                  OPC_EmitConvertToTarget, 1,
 
11080
                  OPC_EmitInteger, MVT::i32, 14, 
 
11081
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11082
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTBr_rot), 0,
 
11083
                      1, MVT::i32, 4, 0, 2, 3, 4, 
 
11084
                26, 
 
11085
                  OPC_CheckValueType, MVT::i16,
 
11086
                  OPC_MoveParent,
 
11087
                  OPC_CheckType, MVT::i32,
 
11088
                  OPC_CheckPatternPredicate, 0,
 
11089
                  OPC_EmitConvertToTarget, 1,
 
11090
                  OPC_EmitInteger, MVT::i32, 14, 
 
11091
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11092
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTHr_rot), 0,
 
11093
                      1, MVT::i32, 4, 0, 2, 3, 4, 
 
11094
                26, 
 
11095
                  OPC_CheckValueType, MVT::i8,
 
11096
                  OPC_MoveParent,
 
11097
                  OPC_CheckType, MVT::i32,
 
11098
                  OPC_CheckPatternPredicate, 2,
 
11099
                  OPC_EmitConvertToTarget, 1,
 
11100
                  OPC_EmitInteger, MVT::i32, 14, 
 
11101
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11102
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTBr_rot), 0,
 
11103
                      1, MVT::i32, 4, 0, 2, 3, 4, 
 
11104
                26, 
 
11105
                  OPC_CheckValueType, MVT::i16,
 
11106
                  OPC_MoveParent,
 
11107
                  OPC_CheckType, MVT::i32,
 
11108
                  OPC_CheckPatternPredicate, 2,
 
11109
                  OPC_EmitConvertToTarget, 1,
 
11110
                  OPC_EmitInteger, MVT::i32, 14, 
 
11111
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11112
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTHr_rot), 0,
 
11113
                      1, MVT::i32, 4, 0, 2, 3, 4, 
 
11114
                0, 
 
11115
              0, 
 
11116
            21|128,1, 
 
11117
              OPC_RecordChild0,
 
11118
              OPC_MoveChild, 1,
 
11119
              OPC_Scope, 23, 
 
11120
                OPC_CheckValueType, MVT::i8,
 
11121
                OPC_MoveParent,
 
11122
                OPC_CheckType, MVT::i32,
 
11123
                OPC_CheckPatternPredicate, 0,
 
11124
                OPC_EmitInteger, MVT::i32, 14, 
 
11125
                OPC_EmitRegister, MVT::i32, 0 ,
 
11126
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTBr), 0,
 
11127
                    1, MVT::i32, 3, 0, 1, 2, 
 
11128
              23, 
 
11129
                OPC_CheckValueType, MVT::i16,
 
11130
                OPC_MoveParent,
 
11131
                OPC_CheckType, MVT::i32,
 
11132
                OPC_CheckPatternPredicate, 0,
 
11133
                OPC_EmitInteger, MVT::i32, 14, 
 
11134
                OPC_EmitRegister, MVT::i32, 0 ,
 
11135
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SXTHr), 0,
 
11136
                    1, MVT::i32, 3, 0, 1, 2, 
 
11137
              23, 
 
11138
                OPC_CheckValueType, MVT::i8,
 
11139
                OPC_MoveParent,
 
11140
                OPC_CheckType, MVT::i32,
 
11141
                OPC_CheckPatternPredicate, 1,
 
11142
                OPC_EmitInteger, MVT::i32, 14, 
 
11143
                OPC_EmitRegister, MVT::i32, 0 ,
 
11144
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSXTB), 0,
 
11145
                    1, MVT::i32, 3, 0, 1, 2, 
 
11146
              23, 
 
11147
                OPC_CheckValueType, MVT::i16,
 
11148
                OPC_MoveParent,
 
11149
                OPC_CheckType, MVT::i32,
 
11150
                OPC_CheckPatternPredicate, 1,
 
11151
                OPC_EmitInteger, MVT::i32, 14, 
 
11152
                OPC_EmitRegister, MVT::i32, 0 ,
 
11153
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSXTH), 0,
 
11154
                    1, MVT::i32, 3, 0, 1, 2, 
 
11155
              23, 
 
11156
                OPC_CheckValueType, MVT::i8,
 
11157
                OPC_MoveParent,
 
11158
                OPC_CheckType, MVT::i32,
 
11159
                OPC_CheckPatternPredicate, 2,
 
11160
                OPC_EmitInteger, MVT::i32, 14, 
 
11161
                OPC_EmitRegister, MVT::i32, 0 ,
 
11162
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTBr), 0,
 
11163
                    1, MVT::i32, 3, 0, 1, 2, 
 
11164
              23, 
 
11165
                OPC_CheckValueType, MVT::i16,
 
11166
                OPC_MoveParent,
 
11167
                OPC_CheckType, MVT::i32,
 
11168
                OPC_CheckPatternPredicate, 2,
 
11169
                OPC_EmitInteger, MVT::i32, 14, 
 
11170
                OPC_EmitRegister, MVT::i32, 0 ,
 
11171
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SXTHr), 0,
 
11172
                    1, MVT::i32, 3, 0, 1, 2, 
 
11173
              0, 
 
11174
            0, 
 
11175
          117|128,4,  ISD::SRA,
 
11176
            OPC_Scope, 126|128,2, 
 
11177
              OPC_MoveChild, 0,
 
11178
              OPC_CheckOpcode, ISD::MUL,
 
11179
              OPC_Scope, 55, 
 
11180
                OPC_RecordChild0,
 
11181
                OPC_MoveChild, 1,
 
11182
                OPC_CheckOpcode, ISD::SRA,
 
11183
                OPC_MoveChild, 0,
 
11184
                OPC_CheckOpcode, ISD::SHL,
 
11185
                OPC_RecordChild0,
 
11186
                OPC_MoveChild, 1,
 
11187
                OPC_CheckInteger, 16, 
 
11188
                OPC_CheckType, MVT::i32,
 
11189
                OPC_MoveParent,
 
11190
                OPC_MoveParent,
 
11191
                OPC_MoveChild, 1,
 
11192
                OPC_CheckInteger, 16, 
 
11193
                OPC_CheckType, MVT::i32,
 
11194
                OPC_MoveParent,
 
11195
                OPC_MoveParent,
 
11196
                OPC_MoveParent,
 
11197
                OPC_MoveChild, 1,
 
11198
                OPC_CheckInteger, 16, 
 
11199
                OPC_CheckType, MVT::i32,
 
11200
                OPC_MoveParent,
 
11201
                OPC_CheckType, MVT::i32,
 
11202
                OPC_CheckPatternPredicate, 7,
 
11203
                OPC_EmitInteger, MVT::i32, 14, 
 
11204
                OPC_EmitRegister, MVT::i32, 0 ,
 
11205
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
 
11206
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
11207
              55, 
 
11208
                OPC_MoveChild, 0,
 
11209
                OPC_CheckOpcode, ISD::SRA,
 
11210
                OPC_MoveChild, 0,
 
11211
                OPC_CheckOpcode, ISD::SHL,
 
11212
                OPC_RecordChild0,
 
11213
                OPC_MoveChild, 1,
 
11214
                OPC_CheckInteger, 16, 
 
11215
                OPC_CheckType, MVT::i32,
 
11216
                OPC_MoveParent,
 
11217
                OPC_MoveParent,
 
11218
                OPC_MoveChild, 1,
 
11219
                OPC_CheckInteger, 16, 
 
11220
                OPC_CheckType, MVT::i32,
 
11221
                OPC_MoveParent,
 
11222
                OPC_MoveParent,
 
11223
                OPC_RecordChild1,
 
11224
                OPC_MoveParent,
 
11225
                OPC_MoveChild, 1,
 
11226
                OPC_CheckInteger, 16, 
 
11227
                OPC_CheckType, MVT::i32,
 
11228
                OPC_MoveParent,
 
11229
                OPC_CheckType, MVT::i32,
 
11230
                OPC_CheckPatternPredicate, 7,
 
11231
                OPC_EmitInteger, MVT::i32, 14, 
 
11232
                OPC_EmitRegister, MVT::i32, 0 ,
 
11233
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
 
11234
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
11235
              66, 
 
11236
                OPC_RecordChild0,
 
11237
                OPC_MoveChild, 1,
 
11238
                OPC_CheckOpcode, ISD::SRA,
 
11239
                OPC_RecordChild0,
 
11240
                OPC_MoveChild, 1,
 
11241
                OPC_CheckInteger, 16, 
 
11242
                OPC_CheckType, MVT::i32,
 
11243
                OPC_MoveParent,
 
11244
                OPC_MoveParent,
 
11245
                OPC_MoveParent,
 
11246
                OPC_MoveChild, 1,
 
11247
                OPC_CheckInteger, 16, 
 
11248
                OPC_CheckType, MVT::i32,
 
11249
                OPC_MoveParent,
 
11250
                OPC_CheckType, MVT::i32,
 
11251
                OPC_Scope, 19, 
 
11252
                  OPC_CheckPatternPredicate, 7,
 
11253
                  OPC_EmitInteger, MVT::i32, 14, 
 
11254
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11255
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWT), 0,
 
11256
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
11257
                19, 
 
11258
                  OPC_CheckPatternPredicate, 2,
 
11259
                  OPC_EmitInteger, MVT::i32, 14, 
 
11260
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11261
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWT), 0,
 
11262
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
11263
                0, 
 
11264
              66, 
 
11265
                OPC_MoveChild, 0,
 
11266
                OPC_CheckOpcode, ISD::SRA,
 
11267
                OPC_RecordChild0,
 
11268
                OPC_MoveChild, 1,
 
11269
                OPC_CheckInteger, 16, 
 
11270
                OPC_CheckType, MVT::i32,
 
11271
                OPC_MoveParent,
 
11272
                OPC_MoveParent,
 
11273
                OPC_RecordChild1,
 
11274
                OPC_MoveParent,
 
11275
                OPC_MoveChild, 1,
 
11276
                OPC_CheckInteger, 16, 
 
11277
                OPC_CheckType, MVT::i32,
 
11278
                OPC_MoveParent,
 
11279
                OPC_CheckType, MVT::i32,
 
11280
                OPC_Scope, 19, 
 
11281
                  OPC_CheckPatternPredicate, 7,
 
11282
                  OPC_EmitInteger, MVT::i32, 14, 
 
11283
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11284
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWT), 0,
 
11285
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
11286
                19, 
 
11287
                  OPC_CheckPatternPredicate, 2,
 
11288
                  OPC_EmitInteger, MVT::i32, 14, 
 
11289
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11290
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWT), 0,
 
11291
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
11292
                0, 
 
11293
              64, 
 
11294
                OPC_RecordChild0,
 
11295
                OPC_MoveChild, 1,
 
11296
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
11297
                OPC_RecordChild0,
 
11298
                OPC_MoveChild, 1,
 
11299
                OPC_CheckValueType, MVT::i16,
 
11300
                OPC_MoveParent,
 
11301
                OPC_MoveParent,
 
11302
                OPC_MoveParent,
 
11303
                OPC_MoveChild, 1,
 
11304
                OPC_CheckInteger, 16, 
 
11305
                OPC_CheckType, MVT::i32,
 
11306
                OPC_MoveParent,
 
11307
                OPC_CheckType, MVT::i32,
 
11308
                OPC_Scope, 19, 
 
11309
                  OPC_CheckPatternPredicate, 7,
 
11310
                  OPC_EmitInteger, MVT::i32, 14, 
 
11311
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11312
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
 
11313
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
11314
                19, 
 
11315
                  OPC_CheckPatternPredicate, 2,
 
11316
                  OPC_EmitInteger, MVT::i32, 14, 
 
11317
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11318
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWB), 0,
 
11319
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
11320
                0, 
 
11321
              64, 
 
11322
                OPC_MoveChild, 0,
 
11323
                OPC_CheckOpcode, ISD::SIGN_EXTEND_INREG,
 
11324
                OPC_RecordChild0,
 
11325
                OPC_MoveChild, 1,
 
11326
                OPC_CheckValueType, MVT::i16,
 
11327
                OPC_MoveParent,
 
11328
                OPC_MoveParent,
 
11329
                OPC_RecordChild1,
 
11330
                OPC_MoveParent,
 
11331
                OPC_MoveChild, 1,
 
11332
                OPC_CheckInteger, 16, 
 
11333
                OPC_CheckType, MVT::i32,
 
11334
                OPC_MoveParent,
 
11335
                OPC_CheckType, MVT::i32,
 
11336
                OPC_Scope, 19, 
 
11337
                  OPC_CheckPatternPredicate, 7,
 
11338
                  OPC_EmitInteger, MVT::i32, 14, 
 
11339
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11340
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
 
11341
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
11342
                19, 
 
11343
                  OPC_CheckPatternPredicate, 2,
 
11344
                  OPC_EmitInteger, MVT::i32, 14, 
 
11345
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11346
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMULWB), 0,
 
11347
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
11348
                0, 
 
11349
              0, 
 
11350
            30, 
 
11351
              OPC_RecordNode,
 
11352
              OPC_CheckType, MVT::i32,
 
11353
              OPC_CheckPatternPredicate, 5,
 
11354
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
11355
              OPC_EmitInteger, MVT::i32, 14, 
 
11356
              OPC_EmitRegister, MVT::i32, 0 ,
 
11357
              OPC_EmitRegister, MVT::i32, 0 ,
 
11358
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
 
11359
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
11360
            79, 
 
11361
              OPC_MoveChild, 0,
 
11362
              OPC_CheckOpcode, ISD::MUL,
 
11363
              OPC_RecordChild0,
 
11364
              OPC_Scope, 35, 
 
11365
                OPC_RecordChild1,
 
11366
                OPC_MoveChild, 1,
 
11367
                OPC_CheckPredicate, 10,
 
11368
                OPC_MoveParent,
 
11369
                OPC_MoveParent,
 
11370
                OPC_MoveChild, 1,
 
11371
                OPC_CheckInteger, 16, 
 
11372
                OPC_CheckType, MVT::i32,
 
11373
                OPC_MoveParent,
 
11374
                OPC_CheckType, MVT::i32,
 
11375
                OPC_CheckPatternPredicate, 7,
 
11376
                OPC_EmitInteger, MVT::i32, 14, 
 
11377
                OPC_EmitRegister, MVT::i32, 0 ,
 
11378
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
 
11379
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
11380
              35, 
 
11381
                OPC_MoveChild, 0,
 
11382
                OPC_CheckPredicate, 10,
 
11383
                OPC_MoveParent,
 
11384
                OPC_RecordChild1,
 
11385
                OPC_MoveParent,
 
11386
                OPC_MoveChild, 1,
 
11387
                OPC_CheckInteger, 16, 
 
11388
                OPC_CheckType, MVT::i32,
 
11389
                OPC_MoveParent,
 
11390
                OPC_CheckType, MVT::i32,
 
11391
                OPC_CheckPatternPredicate, 7,
 
11392
                OPC_EmitInteger, MVT::i32, 14, 
 
11393
                OPC_EmitRegister, MVT::i32, 0 ,
 
11394
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMULWB), 0,
 
11395
                    1, MVT::i32, 4, 1, 0, 2, 3, 
 
11396
              0, 
 
11397
            2|128,1, 
 
11398
              OPC_RecordChild0,
 
11399
              OPC_RecordChild1,
 
11400
              OPC_Scope, 70, 
 
11401
                OPC_MoveChild, 1,
 
11402
                OPC_CheckOpcode, ISD::Constant,
 
11403
                OPC_Scope, 32, 
 
11404
                  OPC_CheckPredicate, 24,
 
11405
                  OPC_CheckType, MVT::i32,
 
11406
                  OPC_MoveParent,
 
11407
                  OPC_CheckType, MVT::i32,
 
11408
                  OPC_CheckPatternPredicate, 2,
 
11409
                  OPC_EmitConvertToTarget, 1,
 
11410
                  OPC_EmitInteger, MVT::i32, 14, 
 
11411
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11412
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11413
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ASRri), 0,
 
11414
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
11415
                30, 
 
11416
                  OPC_CheckType, MVT::i32,
 
11417
                  OPC_MoveParent,
 
11418
                  OPC_CheckType, MVT::i32,
 
11419
                  OPC_CheckPatternPredicate, 6,
 
11420
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
11421
                  OPC_EmitConvertToTarget, 1,
 
11422
                  OPC_EmitInteger, MVT::i32, 14, 
 
11423
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11424
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tASRri), 0,
 
11425
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
11426
                0, 
 
11427
              54, 
 
11428
                OPC_CheckChild1Type, MVT::i32,
 
11429
                OPC_CheckType, MVT::i32,
 
11430
                OPC_Scope, 23, 
 
11431
                  OPC_CheckPatternPredicate, 6,
 
11432
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
11433
                  OPC_EmitInteger, MVT::i32, 14, 
 
11434
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11435
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tASRrr), 0,
 
11436
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
11437
                23, 
 
11438
                  OPC_CheckPatternPredicate, 2,
 
11439
                  OPC_EmitInteger, MVT::i32, 14, 
 
11440
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11441
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11442
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ASRrr), 0,
 
11443
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
11444
                0, 
 
11445
              0, 
 
11446
            0, 
 
11447
          17|128,1,  ARMISD::BR_JT,
 
11448
            OPC_RecordNode,
 
11449
            OPC_Scope, 89, 
 
11450
              OPC_MoveChild, 1,
 
11451
              OPC_SwitchOpcode , 47,  ISD::LOAD,
 
11452
                OPC_CheckPredicate, 25,
 
11453
                OPC_CheckPredicate, 26,
 
11454
                OPC_RecordMemRef,
 
11455
                OPC_RecordNode,
 
11456
                OPC_CheckFoldableChainNode,
 
11457
                OPC_RecordChild1,
 
11458
                OPC_CheckChild1Type, MVT::i32,
 
11459
                OPC_CheckType, MVT::i32,
 
11460
                OPC_MoveParent,
 
11461
                OPC_RecordChild2,
 
11462
                OPC_MoveChild, 2,
 
11463
                OPC_CheckOpcode, ISD::TargetJumpTable,
 
11464
                OPC_MoveParent,
 
11465
                OPC_RecordChild3,
 
11466
                OPC_MoveChild, 3,
 
11467
                OPC_CheckOpcode, ISD::Constant,
 
11468
                OPC_MoveParent,
 
11469
                OPC_CheckPatternPredicate, 5,
 
11470
                OPC_CheckComplexPat, /*CP*/2, /*#*/2,
 
11471
                OPC_EmitMergeInputChains, 2, 0, 1, 
 
11472
                OPC_EmitConvertToTarget, 4,
 
11473
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BR_JTm), 0|OPFL_Chain|OPFL_MemRefs,
 
11474
                    0, 5, 5, 6, 7, 3, 8, 
 
11475
              34,  ISD::ADD,
 
11476
                OPC_RecordChild0,
 
11477
                OPC_RecordChild1,
 
11478
                OPC_CheckType, MVT::i32,
 
11479
                OPC_MoveParent,
 
11480
                OPC_RecordChild2,
 
11481
                OPC_MoveChild, 2,
 
11482
                OPC_CheckOpcode, ISD::TargetJumpTable,
 
11483
                OPC_MoveParent,
 
11484
                OPC_RecordChild3,
 
11485
                OPC_MoveChild, 3,
 
11486
                OPC_CheckOpcode, ISD::Constant,
 
11487
                OPC_MoveParent,
 
11488
                OPC_CheckPatternPredicate, 5,
 
11489
                OPC_EmitMergeInputChains, 1, 0, 
 
11490
                OPC_EmitConvertToTarget, 4,
 
11491
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BR_JTadd), 0|OPFL_Chain,
 
11492
                    0, 4, 1, 2, 3, 5, 
 
11493
              0, 
 
11494
            51, 
 
11495
              OPC_RecordChild1,
 
11496
              OPC_CheckChild1Type, MVT::i32,
 
11497
              OPC_RecordChild2,
 
11498
              OPC_MoveChild, 2,
 
11499
              OPC_CheckOpcode, ISD::TargetJumpTable,
 
11500
              OPC_MoveParent,
 
11501
              OPC_RecordChild3,
 
11502
              OPC_MoveChild, 3,
 
11503
              OPC_CheckOpcode, ISD::Constant,
 
11504
              OPC_MoveParent,
 
11505
              OPC_Scope, 16, 
 
11506
                OPC_CheckPatternPredicate, 5,
 
11507
                OPC_EmitMergeInputChains, 1, 0, 
 
11508
                OPC_EmitConvertToTarget, 3,
 
11509
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BR_JTr), 0|OPFL_Chain,
 
11510
                    0, 3, 1, 2, 4, 
 
11511
              16, 
 
11512
                OPC_CheckPatternPredicate, 6,
 
11513
                OPC_EmitMergeInputChains, 1, 0, 
 
11514
                OPC_EmitConvertToTarget, 3,
 
11515
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBR_JTr), 0|OPFL_Chain,
 
11516
                    0, 3, 1, 2, 4, 
 
11517
              0, 
 
11518
            0, 
 
11519
          94|128,20,  ISD::LOAD,
 
11520
            OPC_CheckPredicate, 25,
 
11521
            OPC_Scope, 34, 
 
11522
              OPC_CheckPredicate, 26,
 
11523
              OPC_RecordMemRef,
 
11524
              OPC_RecordNode,
 
11525
              OPC_RecordChild1,
 
11526
              OPC_CheckChild1Type, MVT::i32,
 
11527
              OPC_CheckType, MVT::i32,
 
11528
              OPC_CheckPatternPredicate, 5,
 
11529
              OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
11530
              OPC_EmitMergeInputChains, 1, 0, 
 
11531
              OPC_EmitInteger, MVT::i32, 14, 
 
11532
              OPC_EmitRegister, MVT::i32, 0 ,
 
11533
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDR), 0|OPFL_Chain|OPFL_MemRefs,
 
11534
                  1, MVT::i32, 4, 2, 3, 4, 5, 
 
11535
            74, 
 
11536
              OPC_CheckPredicate, 27,
 
11537
              OPC_Scope, 34, 
 
11538
                OPC_CheckPredicate, 28,
 
11539
                OPC_RecordMemRef,
 
11540
                OPC_RecordNode,
 
11541
                OPC_RecordChild1,
 
11542
                OPC_CheckChild1Type, MVT::i32,
 
11543
                OPC_CheckType, MVT::i32,
 
11544
                OPC_CheckPatternPredicate, 5,
 
11545
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
11546
                OPC_EmitMergeInputChains, 1, 0, 
 
11547
                OPC_EmitInteger, MVT::i32, 14, 
 
11548
                OPC_EmitRegister, MVT::i32, 0 ,
 
11549
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRH), 0|OPFL_Chain|OPFL_MemRefs,
 
11550
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
11551
              34, 
 
11552
                OPC_CheckPredicate, 29,
 
11553
                OPC_RecordMemRef,
 
11554
                OPC_RecordNode,
 
11555
                OPC_RecordChild1,
 
11556
                OPC_CheckChild1Type, MVT::i32,
 
11557
                OPC_CheckType, MVT::i32,
 
11558
                OPC_CheckPatternPredicate, 5,
 
11559
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
11560
                OPC_EmitMergeInputChains, 1, 0, 
 
11561
                OPC_EmitInteger, MVT::i32, 14, 
 
11562
                OPC_EmitRegister, MVT::i32, 0 ,
 
11563
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11564
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
11565
              0, 
 
11566
            10|128,1, 
 
11567
              OPC_CheckPredicate, 30,
 
11568
              OPC_Scope, 34, 
 
11569
                OPC_CheckPredicate, 31,
 
11570
                OPC_RecordMemRef,
 
11571
                OPC_RecordNode,
 
11572
                OPC_RecordChild1,
 
11573
                OPC_CheckChild1Type, MVT::i32,
 
11574
                OPC_CheckType, MVT::i32,
 
11575
                OPC_CheckPatternPredicate, 5,
 
11576
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
11577
                OPC_EmitMergeInputChains, 1, 0, 
 
11578
                OPC_EmitInteger, MVT::i32, 14, 
 
11579
                OPC_EmitRegister, MVT::i32, 0 ,
 
11580
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRSH), 0|OPFL_Chain|OPFL_MemRefs,
 
11581
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
11582
              63, 
 
11583
                OPC_CheckPredicate, 32,
 
11584
                OPC_RecordMemRef,
 
11585
                OPC_RecordNode,
 
11586
                OPC_RecordChild1,
 
11587
                OPC_CheckChild1Type, MVT::i32,
 
11588
                OPC_CheckType, MVT::i32,
 
11589
                OPC_Scope, 25, 
 
11590
                  OPC_CheckPatternPredicate, 5,
 
11591
                  OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
11592
                  OPC_EmitMergeInputChains, 1, 0, 
 
11593
                  OPC_EmitInteger, MVT::i32, 14, 
 
11594
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11595
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRSB), 0|OPFL_Chain|OPFL_MemRefs,
 
11596
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
11597
                25, 
 
11598
                  OPC_CheckPatternPredicate, 6,
 
11599
                  OPC_CheckComplexPat, /*CP*/4, /*#*/1,
 
11600
                  OPC_EmitMergeInputChains, 1, 0, 
 
11601
                  OPC_EmitInteger, MVT::i32, 14, 
 
11602
                  OPC_EmitRegister, MVT::i32, 0 ,
 
11603
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRSB), 0|OPFL_Chain|OPFL_MemRefs,
 
11604
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
11605
                0, 
 
11606
              34, 
 
11607
                OPC_CheckPredicate, 31,
 
11608
                OPC_RecordMemRef,
 
11609
                OPC_RecordNode,
 
11610
                OPC_RecordChild1,
 
11611
                OPC_CheckChild1Type, MVT::i32,
 
11612
                OPC_CheckType, MVT::i32,
 
11613
                OPC_CheckPatternPredicate, 6,
 
11614
                OPC_CheckComplexPat, /*CP*/4, /*#*/1,
 
11615
                OPC_EmitMergeInputChains, 1, 0, 
 
11616
                OPC_EmitInteger, MVT::i32, 14, 
 
11617
                OPC_EmitRegister, MVT::i32, 0 ,
 
11618
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRSH), 0|OPFL_Chain|OPFL_MemRefs,
 
11619
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
11620
              0, 
 
11621
            35, 
 
11622
              OPC_CheckPredicate, 26,
 
11623
              OPC_RecordMemRef,
 
11624
              OPC_RecordNode,
 
11625
              OPC_RecordChild1,
 
11626
              OPC_CheckChild1Type, MVT::i32,
 
11627
              OPC_CheckType, MVT::i32,
 
11628
              OPC_CheckPatternPredicate, 5,
 
11629
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
 
11630
              OPC_EmitMergeInputChains, 1, 0, 
 
11631
              OPC_EmitInteger, MVT::i32, 14, 
 
11632
              OPC_EmitRegister, MVT::i32, 0 ,
 
11633
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDR), 0|OPFL_Chain|OPFL_MemRefs,
 
11634
                  1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11635
            76, 
 
11636
              OPC_CheckPredicate, 27,
 
11637
              OPC_Scope, 35, 
 
11638
                OPC_CheckPredicate, 28,
 
11639
                OPC_RecordMemRef,
 
11640
                OPC_RecordNode,
 
11641
                OPC_RecordChild1,
 
11642
                OPC_CheckChild1Type, MVT::i32,
 
11643
                OPC_CheckType, MVT::i32,
 
11644
                OPC_CheckPatternPredicate, 5,
 
11645
                OPC_CheckComplexPat, /*CP*/5, /*#*/1,
 
11646
                OPC_EmitMergeInputChains, 1, 0, 
 
11647
                OPC_EmitInteger, MVT::i32, 14, 
 
11648
                OPC_EmitRegister, MVT::i32, 0 ,
 
11649
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
 
11650
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11651
              35, 
 
11652
                OPC_CheckPredicate, 29,
 
11653
                OPC_RecordMemRef,
 
11654
                OPC_RecordNode,
 
11655
                OPC_RecordChild1,
 
11656
                OPC_CheckChild1Type, MVT::i32,
 
11657
                OPC_CheckType, MVT::i32,
 
11658
                OPC_CheckPatternPredicate, 5,
 
11659
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
 
11660
                OPC_EmitMergeInputChains, 1, 0, 
 
11661
                OPC_EmitInteger, MVT::i32, 14, 
 
11662
                OPC_EmitRegister, MVT::i32, 0 ,
 
11663
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11664
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11665
              0, 
 
11666
            76, 
 
11667
              OPC_CheckPredicate, 30,
 
11668
              OPC_Scope, 35, 
 
11669
                OPC_CheckPredicate, 31,
 
11670
                OPC_RecordMemRef,
 
11671
                OPC_RecordNode,
 
11672
                OPC_RecordChild1,
 
11673
                OPC_CheckChild1Type, MVT::i32,
 
11674
                OPC_CheckType, MVT::i32,
 
11675
                OPC_CheckPatternPredicate, 5,
 
11676
                OPC_CheckComplexPat, /*CP*/5, /*#*/1,
 
11677
                OPC_EmitMergeInputChains, 1, 0, 
 
11678
                OPC_EmitInteger, MVT::i32, 14, 
 
11679
                OPC_EmitRegister, MVT::i32, 0 ,
 
11680
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRSH), 0|OPFL_Chain|OPFL_MemRefs,
 
11681
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11682
              35, 
 
11683
                OPC_CheckPredicate, 32,
 
11684
                OPC_RecordMemRef,
 
11685
                OPC_RecordNode,
 
11686
                OPC_RecordChild1,
 
11687
                OPC_CheckChild1Type, MVT::i32,
 
11688
                OPC_CheckType, MVT::i32,
 
11689
                OPC_CheckPatternPredicate, 5,
 
11690
                OPC_CheckComplexPat, /*CP*/5, /*#*/1,
 
11691
                OPC_EmitMergeInputChains, 1, 0, 
 
11692
                OPC_EmitInteger, MVT::i32, 14, 
 
11693
                OPC_EmitRegister, MVT::i32, 0 ,
 
11694
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRSB), 0|OPFL_Chain|OPFL_MemRefs,
 
11695
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11696
              0, 
 
11697
            37, 
 
11698
              OPC_CheckPredicate, 27,
 
11699
              OPC_CheckPredicate, 33,
 
11700
              OPC_RecordMemRef,
 
11701
              OPC_RecordNode,
 
11702
              OPC_RecordChild1,
 
11703
              OPC_CheckChild1Type, MVT::i32,
 
11704
              OPC_CheckType, MVT::i32,
 
11705
              OPC_CheckPatternPredicate, 5,
 
11706
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
 
11707
              OPC_EmitMergeInputChains, 1, 0, 
 
11708
              OPC_EmitInteger, MVT::i32, 14, 
 
11709
              OPC_EmitRegister, MVT::i32, 0 ,
 
11710
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11711
                  1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11712
            112, 
 
11713
              OPC_CheckPredicate, 34,
 
11714
              OPC_Scope, 35, 
 
11715
                OPC_CheckPredicate, 35,
 
11716
                OPC_RecordMemRef,
 
11717
                OPC_RecordNode,
 
11718
                OPC_RecordChild1,
 
11719
                OPC_CheckChild1Type, MVT::i32,
 
11720
                OPC_CheckType, MVT::i32,
 
11721
                OPC_CheckPatternPredicate, 5,
 
11722
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
 
11723
                OPC_EmitMergeInputChains, 1, 0, 
 
11724
                OPC_EmitInteger, MVT::i32, 14, 
 
11725
                OPC_EmitRegister, MVT::i32, 0 ,
 
11726
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11727
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11728
              35, 
 
11729
                OPC_CheckPredicate, 36,
 
11730
                OPC_RecordMemRef,
 
11731
                OPC_RecordNode,
 
11732
                OPC_RecordChild1,
 
11733
                OPC_CheckChild1Type, MVT::i32,
 
11734
                OPC_CheckType, MVT::i32,
 
11735
                OPC_CheckPatternPredicate, 5,
 
11736
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
 
11737
                OPC_EmitMergeInputChains, 1, 0, 
 
11738
                OPC_EmitInteger, MVT::i32, 14, 
 
11739
                OPC_EmitRegister, MVT::i32, 0 ,
 
11740
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11741
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11742
              35, 
 
11743
                OPC_CheckPredicate, 37,
 
11744
                OPC_RecordMemRef,
 
11745
                OPC_RecordNode,
 
11746
                OPC_RecordChild1,
 
11747
                OPC_CheckChild1Type, MVT::i32,
 
11748
                OPC_CheckType, MVT::i32,
 
11749
                OPC_CheckPatternPredicate, 5,
 
11750
                OPC_CheckComplexPat, /*CP*/5, /*#*/1,
 
11751
                OPC_EmitMergeInputChains, 1, 0, 
 
11752
                OPC_EmitInteger, MVT::i32, 14, 
 
11753
                OPC_EmitRegister, MVT::i32, 0 ,
 
11754
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LDRH), 0|OPFL_Chain|OPFL_MemRefs,
 
11755
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11756
              0, 
 
11757
            35, 
 
11758
              OPC_CheckPredicate, 26,
 
11759
              OPC_RecordMemRef,
 
11760
              OPC_RecordNode,
 
11761
              OPC_RecordChild1,
 
11762
              OPC_CheckChild1Type, MVT::i32,
 
11763
              OPC_CheckType, MVT::i32,
 
11764
              OPC_CheckPatternPredicate, 6,
 
11765
              OPC_CheckComplexPat, /*CP*/6, /*#*/1,
 
11766
              OPC_EmitMergeInputChains, 1, 0, 
 
11767
              OPC_EmitInteger, MVT::i32, 14, 
 
11768
              OPC_EmitRegister, MVT::i32, 0 ,
 
11769
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDR), 0|OPFL_Chain|OPFL_MemRefs,
 
11770
                  1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11771
            112, 
 
11772
              OPC_CheckPredicate, 27,
 
11773
              OPC_Scope, 35, 
 
11774
                OPC_CheckPredicate, 29,
 
11775
                OPC_RecordMemRef,
 
11776
                OPC_RecordNode,
 
11777
                OPC_RecordChild1,
 
11778
                OPC_CheckChild1Type, MVT::i32,
 
11779
                OPC_CheckType, MVT::i32,
 
11780
                OPC_CheckPatternPredicate, 6,
 
11781
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
11782
                OPC_EmitMergeInputChains, 1, 0, 
 
11783
                OPC_EmitInteger, MVT::i32, 14, 
 
11784
                OPC_EmitRegister, MVT::i32, 0 ,
 
11785
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11786
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11787
              35, 
 
11788
                OPC_CheckPredicate, 28,
 
11789
                OPC_RecordMemRef,
 
11790
                OPC_RecordNode,
 
11791
                OPC_RecordChild1,
 
11792
                OPC_CheckChild1Type, MVT::i32,
 
11793
                OPC_CheckType, MVT::i32,
 
11794
                OPC_CheckPatternPredicate, 6,
 
11795
                OPC_CheckComplexPat, /*CP*/8, /*#*/1,
 
11796
                OPC_EmitMergeInputChains, 1, 0, 
 
11797
                OPC_EmitInteger, MVT::i32, 14, 
 
11798
                OPC_EmitRegister, MVT::i32, 0 ,
 
11799
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain|OPFL_MemRefs,
 
11800
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11801
              35, 
 
11802
                OPC_CheckPredicate, 33,
 
11803
                OPC_RecordMemRef,
 
11804
                OPC_RecordNode,
 
11805
                OPC_RecordChild1,
 
11806
                OPC_CheckChild1Type, MVT::i32,
 
11807
                OPC_CheckType, MVT::i32,
 
11808
                OPC_CheckPatternPredicate, 6,
 
11809
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
11810
                OPC_EmitMergeInputChains, 1, 0, 
 
11811
                OPC_EmitInteger, MVT::i32, 14, 
 
11812
                OPC_EmitRegister, MVT::i32, 0 ,
 
11813
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11814
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11815
              0, 
 
11816
            112, 
 
11817
              OPC_CheckPredicate, 34,
 
11818
              OPC_Scope, 35, 
 
11819
                OPC_CheckPredicate, 35,
 
11820
                OPC_RecordMemRef,
 
11821
                OPC_RecordNode,
 
11822
                OPC_RecordChild1,
 
11823
                OPC_CheckChild1Type, MVT::i32,
 
11824
                OPC_CheckType, MVT::i32,
 
11825
                OPC_CheckPatternPredicate, 6,
 
11826
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
11827
                OPC_EmitMergeInputChains, 1, 0, 
 
11828
                OPC_EmitInteger, MVT::i32, 14, 
 
11829
                OPC_EmitRegister, MVT::i32, 0 ,
 
11830
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11831
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11832
              35, 
 
11833
                OPC_CheckPredicate, 36,
 
11834
                OPC_RecordMemRef,
 
11835
                OPC_RecordNode,
 
11836
                OPC_RecordChild1,
 
11837
                OPC_CheckChild1Type, MVT::i32,
 
11838
                OPC_CheckType, MVT::i32,
 
11839
                OPC_CheckPatternPredicate, 6,
 
11840
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
11841
                OPC_EmitMergeInputChains, 1, 0, 
 
11842
                OPC_EmitInteger, MVT::i32, 14, 
 
11843
                OPC_EmitRegister, MVT::i32, 0 ,
 
11844
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
11845
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11846
              35, 
 
11847
                OPC_CheckPredicate, 37,
 
11848
                OPC_RecordMemRef,
 
11849
                OPC_RecordNode,
 
11850
                OPC_RecordChild1,
 
11851
                OPC_CheckChild1Type, MVT::i32,
 
11852
                OPC_CheckType, MVT::i32,
 
11853
                OPC_CheckPatternPredicate, 6,
 
11854
                OPC_CheckComplexPat, /*CP*/8, /*#*/1,
 
11855
                OPC_EmitMergeInputChains, 1, 0, 
 
11856
                OPC_EmitInteger, MVT::i32, 14, 
 
11857
                OPC_EmitRegister, MVT::i32, 0 ,
 
11858
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain|OPFL_MemRefs,
 
11859
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11860
              0, 
 
11861
            35, 
 
11862
              OPC_CheckPredicate, 26,
 
11863
              OPC_RecordMemRef,
 
11864
              OPC_RecordNode,
 
11865
              OPC_RecordChild1,
 
11866
              OPC_CheckChild1Type, MVT::i32,
 
11867
              OPC_CheckType, MVT::i32,
 
11868
              OPC_CheckPatternPredicate, 2,
 
11869
              OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11870
              OPC_EmitMergeInputChains, 1, 0, 
 
11871
              OPC_EmitInteger, MVT::i32, 14, 
 
11872
              OPC_EmitRegister, MVT::i32, 0 ,
 
11873
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRs), 0|OPFL_Chain|OPFL_MemRefs,
 
11874
                  1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11875
            76, 
 
11876
              OPC_CheckPredicate, 27,
 
11877
              OPC_Scope, 35, 
 
11878
                OPC_CheckPredicate, 28,
 
11879
                OPC_RecordMemRef,
 
11880
                OPC_RecordNode,
 
11881
                OPC_RecordChild1,
 
11882
                OPC_CheckChild1Type, MVT::i32,
 
11883
                OPC_CheckType, MVT::i32,
 
11884
                OPC_CheckPatternPredicate, 2,
 
11885
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11886
                OPC_EmitMergeInputChains, 1, 0, 
 
11887
                OPC_EmitInteger, MVT::i32, 14, 
 
11888
                OPC_EmitRegister, MVT::i32, 0 ,
 
11889
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
 
11890
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11891
              35, 
 
11892
                OPC_CheckPredicate, 29,
 
11893
                OPC_RecordMemRef,
 
11894
                OPC_RecordNode,
 
11895
                OPC_RecordChild1,
 
11896
                OPC_CheckChild1Type, MVT::i32,
 
11897
                OPC_CheckType, MVT::i32,
 
11898
                OPC_CheckPatternPredicate, 2,
 
11899
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11900
                OPC_EmitMergeInputChains, 1, 0, 
 
11901
                OPC_EmitInteger, MVT::i32, 14, 
 
11902
                OPC_EmitRegister, MVT::i32, 0 ,
 
11903
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
 
11904
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11905
              0, 
 
11906
            76, 
 
11907
              OPC_CheckPredicate, 30,
 
11908
              OPC_Scope, 35, 
 
11909
                OPC_CheckPredicate, 31,
 
11910
                OPC_RecordMemRef,
 
11911
                OPC_RecordNode,
 
11912
                OPC_RecordChild1,
 
11913
                OPC_CheckChild1Type, MVT::i32,
 
11914
                OPC_CheckType, MVT::i32,
 
11915
                OPC_CheckPatternPredicate, 2,
 
11916
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11917
                OPC_EmitMergeInputChains, 1, 0, 
 
11918
                OPC_EmitInteger, MVT::i32, 14, 
 
11919
                OPC_EmitRegister, MVT::i32, 0 ,
 
11920
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHs), 0|OPFL_Chain|OPFL_MemRefs,
 
11921
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11922
              35, 
 
11923
                OPC_CheckPredicate, 32,
 
11924
                OPC_RecordMemRef,
 
11925
                OPC_RecordNode,
 
11926
                OPC_RecordChild1,
 
11927
                OPC_CheckChild1Type, MVT::i32,
 
11928
                OPC_CheckType, MVT::i32,
 
11929
                OPC_CheckPatternPredicate, 2,
 
11930
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11931
                OPC_EmitMergeInputChains, 1, 0, 
 
11932
                OPC_EmitInteger, MVT::i32, 14, 
 
11933
                OPC_EmitRegister, MVT::i32, 0 ,
 
11934
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBs), 0|OPFL_Chain|OPFL_MemRefs,
 
11935
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11936
              0, 
 
11937
            37, 
 
11938
              OPC_CheckPredicate, 27,
 
11939
              OPC_CheckPredicate, 33,
 
11940
              OPC_RecordMemRef,
 
11941
              OPC_RecordNode,
 
11942
              OPC_RecordChild1,
 
11943
              OPC_CheckChild1Type, MVT::i32,
 
11944
              OPC_CheckType, MVT::i32,
 
11945
              OPC_CheckPatternPredicate, 2,
 
11946
              OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11947
              OPC_EmitMergeInputChains, 1, 0, 
 
11948
              OPC_EmitInteger, MVT::i32, 14, 
 
11949
              OPC_EmitRegister, MVT::i32, 0 ,
 
11950
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
 
11951
                  1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11952
            112, 
 
11953
              OPC_CheckPredicate, 34,
 
11954
              OPC_Scope, 35, 
 
11955
                OPC_CheckPredicate, 35,
 
11956
                OPC_RecordMemRef,
 
11957
                OPC_RecordNode,
 
11958
                OPC_RecordChild1,
 
11959
                OPC_CheckChild1Type, MVT::i32,
 
11960
                OPC_CheckType, MVT::i32,
 
11961
                OPC_CheckPatternPredicate, 2,
 
11962
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11963
                OPC_EmitMergeInputChains, 1, 0, 
 
11964
                OPC_EmitInteger, MVT::i32, 14, 
 
11965
                OPC_EmitRegister, MVT::i32, 0 ,
 
11966
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
 
11967
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11968
              35, 
 
11969
                OPC_CheckPredicate, 36,
 
11970
                OPC_RecordMemRef,
 
11971
                OPC_RecordNode,
 
11972
                OPC_RecordChild1,
 
11973
                OPC_CheckChild1Type, MVT::i32,
 
11974
                OPC_CheckType, MVT::i32,
 
11975
                OPC_CheckPatternPredicate, 2,
 
11976
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11977
                OPC_EmitMergeInputChains, 1, 0, 
 
11978
                OPC_EmitInteger, MVT::i32, 14, 
 
11979
                OPC_EmitRegister, MVT::i32, 0 ,
 
11980
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBs), 0|OPFL_Chain|OPFL_MemRefs,
 
11981
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11982
              35, 
 
11983
                OPC_CheckPredicate, 37,
 
11984
                OPC_RecordMemRef,
 
11985
                OPC_RecordNode,
 
11986
                OPC_RecordChild1,
 
11987
                OPC_CheckChild1Type, MVT::i32,
 
11988
                OPC_CheckType, MVT::i32,
 
11989
                OPC_CheckPatternPredicate, 2,
 
11990
                OPC_CheckComplexPat, /*CP*/9, /*#*/1,
 
11991
                OPC_EmitMergeInputChains, 1, 0, 
 
11992
                OPC_EmitInteger, MVT::i32, 14, 
 
11993
                OPC_EmitRegister, MVT::i32, 0 ,
 
11994
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHs), 0|OPFL_Chain|OPFL_MemRefs,
 
11995
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
11996
              0, 
 
11997
            32|128,2, 
 
11998
              OPC_CheckPredicate, 30,
 
11999
              OPC_Scope, 54, 
 
12000
                OPC_CheckPredicate, 32,
 
12001
                OPC_RecordMemRef,
 
12002
                OPC_RecordNode,
 
12003
                OPC_RecordChild1,
 
12004
                OPC_CheckChild1Type, MVT::i32,
 
12005
                OPC_CheckType, MVT::i32,
 
12006
                OPC_CheckPatternPredicate, 1,
 
12007
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
12008
                OPC_EmitMergeInputChains, 1, 0, 
 
12009
                OPC_EmitInteger, MVT::i32, 14, 
 
12010
                OPC_EmitRegister, MVT::i32, 0 ,
 
12011
                OPC_EmitNode, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain,
 
12012
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
12013
                OPC_EmitInteger, MVT::i32, 14, 
 
12014
                OPC_EmitRegister, MVT::i32, 0 ,
 
12015
                OPC_EmitNode, TARGET_OPCODE(ARM::tSXTB), 0|OPFL_MemRefs,
 
12016
                    1, MVT::i32, 3, 7, 8, 9, 
 
12017
                OPC_CompleteMatch, 1, 10, 
 
12018
 
 
12019
              54, 
 
12020
                OPC_CheckPredicate, 31,
 
12021
                OPC_RecordMemRef,
 
12022
                OPC_RecordNode,
 
12023
                OPC_RecordChild1,
 
12024
                OPC_CheckChild1Type, MVT::i32,
 
12025
                OPC_CheckType, MVT::i32,
 
12026
                OPC_CheckPatternPredicate, 1,
 
12027
                OPC_CheckComplexPat, /*CP*/8, /*#*/1,
 
12028
                OPC_EmitMergeInputChains, 1, 0, 
 
12029
                OPC_EmitInteger, MVT::i32, 14, 
 
12030
                OPC_EmitRegister, MVT::i32, 0 ,
 
12031
                OPC_EmitNode, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain,
 
12032
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
 
12033
                OPC_EmitInteger, MVT::i32, 14, 
 
12034
                OPC_EmitRegister, MVT::i32, 0 ,
 
12035
                OPC_EmitNode, TARGET_OPCODE(ARM::tSXTH), 0|OPFL_MemRefs,
 
12036
                    1, MVT::i32, 3, 7, 8, 9, 
 
12037
                OPC_CompleteMatch, 1, 10, 
 
12038
 
 
12039
              86, 
 
12040
                OPC_CheckPredicate, 32,
 
12041
                OPC_RecordMemRef,
 
12042
                OPC_RecordNode,
 
12043
                OPC_RecordChild1,
 
12044
                OPC_CheckChild1Type, MVT::i32,
 
12045
                OPC_CheckType, MVT::i32,
 
12046
                OPC_CheckPatternPredicate, 6,
 
12047
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
12048
                OPC_EmitMergeInputChains, 1, 0, 
 
12049
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
12050
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
12051
                OPC_EmitInteger, MVT::i32, 14, 
 
12052
                OPC_EmitRegister, MVT::i32, 0 ,
 
12053
                OPC_EmitNode, TARGET_OPCODE(ARM::tLDRB), 0|OPFL_Chain,
 
12054
                    1, MVT::i32, 5, 2, 3, 4, 7, 8, 
 
12055
                OPC_EmitInteger, MVT::i32, 24, 
 
12056
                OPC_EmitInteger, MVT::i32, 14, 
 
12057
                OPC_EmitRegister, MVT::i32, 0 ,
 
12058
                OPC_EmitNode, TARGET_OPCODE(ARM::tLSLri), 0,
 
12059
                    1, MVT::i32, 5, 6, 9, 10, 11, 12, 
 
12060
                OPC_EmitInteger, MVT::i32, 24, 
 
12061
                OPC_EmitInteger, MVT::i32, 14, 
 
12062
                OPC_EmitRegister, MVT::i32, 0 ,
 
12063
                OPC_EmitNode, TARGET_OPCODE(ARM::tASRri), 0|OPFL_MemRefs,
 
12064
                    1, MVT::i32, 5, 5, 13, 14, 15, 16, 
 
12065
                OPC_CompleteMatch, 1, 17, 
 
12066
 
 
12067
              86, 
 
12068
                OPC_CheckPredicate, 31,
 
12069
                OPC_RecordMemRef,
 
12070
                OPC_RecordNode,
 
12071
                OPC_RecordChild1,
 
12072
                OPC_CheckChild1Type, MVT::i32,
 
12073
                OPC_CheckType, MVT::i32,
 
12074
                OPC_CheckPatternPredicate, 6,
 
12075
                OPC_CheckComplexPat, /*CP*/7, /*#*/1,
 
12076
                OPC_EmitMergeInputChains, 1, 0, 
 
12077
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
12078
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
12079
                OPC_EmitInteger, MVT::i32, 14, 
 
12080
                OPC_EmitRegister, MVT::i32, 0 ,
 
12081
                OPC_EmitNode, TARGET_OPCODE(ARM::tLDRH), 0|OPFL_Chain,
 
12082
                    1, MVT::i32, 5, 2, 3, 4, 7, 8, 
 
12083
                OPC_EmitInteger, MVT::i32, 16, 
 
12084
                OPC_EmitInteger, MVT::i32, 14, 
 
12085
                OPC_EmitRegister, MVT::i32, 0 ,
 
12086
                OPC_EmitNode, TARGET_OPCODE(ARM::tLSLri), 0,
 
12087
                    1, MVT::i32, 5, 6, 9, 10, 11, 12, 
 
12088
                OPC_EmitInteger, MVT::i32, 16, 
 
12089
                OPC_EmitInteger, MVT::i32, 14, 
 
12090
                OPC_EmitRegister, MVT::i32, 0 ,
 
12091
                OPC_EmitNode, TARGET_OPCODE(ARM::tASRri), 0|OPFL_MemRefs,
 
12092
                    1, MVT::i32, 5, 5, 13, 14, 15, 16, 
 
12093
                OPC_CompleteMatch, 1, 17, 
 
12094
 
 
12095
              0, 
 
12096
            74, 
 
12097
              OPC_CheckPredicate, 34,
 
12098
              OPC_Scope, 34, 
 
12099
                OPC_CheckPredicate, 36,
 
12100
                OPC_RecordMemRef,
 
12101
                OPC_RecordNode,
 
12102
                OPC_RecordChild1,
 
12103
                OPC_CheckChild1Type, MVT::i32,
 
12104
                OPC_CheckType, MVT::i32,
 
12105
                OPC_CheckPatternPredicate, 5,
 
12106
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
12107
                OPC_EmitMergeInputChains, 1, 0, 
 
12108
                OPC_EmitInteger, MVT::i32, 14, 
 
12109
                OPC_EmitRegister, MVT::i32, 0 ,
 
12110
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRB), 0|OPFL_Chain|OPFL_MemRefs,
 
12111
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
12112
              34, 
 
12113
                OPC_CheckPredicate, 37,
 
12114
                OPC_RecordMemRef,
 
12115
                OPC_RecordNode,
 
12116
                OPC_RecordChild1,
 
12117
                OPC_CheckChild1Type, MVT::i32,
 
12118
                OPC_CheckType, MVT::i32,
 
12119
                OPC_CheckPatternPredicate, 5,
 
12120
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
 
12121
                OPC_EmitMergeInputChains, 1, 0, 
 
12122
                OPC_EmitInteger, MVT::i32, 14, 
 
12123
                OPC_EmitRegister, MVT::i32, 0 ,
 
12124
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICLDRH), 0|OPFL_Chain|OPFL_MemRefs,
 
12125
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
12126
              0, 
 
12127
            90, 
 
12128
              OPC_CheckPredicate, 26,
 
12129
              OPC_RecordMemRef,
 
12130
              OPC_RecordNode,
 
12131
              OPC_RecordChild1,
 
12132
              OPC_CheckChild1Type, MVT::i32,
 
12133
              OPC_CheckType, MVT::i32,
 
12134
              OPC_Scope, 25, 
 
12135
                OPC_CheckPatternPredicate, 6,
 
12136
                OPC_CheckComplexPat, /*CP*/10, /*#*/1,
 
12137
                OPC_EmitMergeInputChains, 1, 0, 
 
12138
                OPC_EmitInteger, MVT::i32, 14, 
 
12139
                OPC_EmitRegister, MVT::i32, 0 ,
 
12140
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRspi), 0|OPFL_Chain|OPFL_MemRefs,
 
12141
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
12142
              52, 
 
12143
                OPC_CheckPatternPredicate, 2,
 
12144
                OPC_Scope, 23, 
 
12145
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12146
                  OPC_EmitMergeInputChains, 1, 0, 
 
12147
                  OPC_EmitInteger, MVT::i32, 14, 
 
12148
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12149
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12150
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12151
                23, 
 
12152
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12153
                  OPC_EmitMergeInputChains, 1, 0, 
 
12154
                  OPC_EmitInteger, MVT::i32, 14, 
 
12155
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12156
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12157
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12158
                0, 
 
12159
              0, 
 
12160
            0|128,1, 
 
12161
              OPC_CheckPredicate, 27,
 
12162
              OPC_Scope, 61, 
 
12163
                OPC_CheckPredicate, 28,
 
12164
                OPC_RecordMemRef,
 
12165
                OPC_RecordNode,
 
12166
                OPC_RecordChild1,
 
12167
                OPC_CheckChild1Type, MVT::i32,
 
12168
                OPC_CheckType, MVT::i32,
 
12169
                OPC_CheckPatternPredicate, 2,
 
12170
                OPC_Scope, 23, 
 
12171
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12172
                  OPC_EmitMergeInputChains, 1, 0, 
 
12173
                  OPC_EmitInteger, MVT::i32, 14, 
 
12174
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12175
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12176
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12177
                23, 
 
12178
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12179
                  OPC_EmitMergeInputChains, 1, 0, 
 
12180
                  OPC_EmitInteger, MVT::i32, 14, 
 
12181
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12182
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12183
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12184
                0, 
 
12185
              61, 
 
12186
                OPC_CheckPredicate, 29,
 
12187
                OPC_RecordMemRef,
 
12188
                OPC_RecordNode,
 
12189
                OPC_RecordChild1,
 
12190
                OPC_CheckChild1Type, MVT::i32,
 
12191
                OPC_CheckType, MVT::i32,
 
12192
                OPC_CheckPatternPredicate, 2,
 
12193
                OPC_Scope, 23, 
 
12194
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12195
                  OPC_EmitMergeInputChains, 1, 0, 
 
12196
                  OPC_EmitInteger, MVT::i32, 14, 
 
12197
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12198
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12199
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12200
                23, 
 
12201
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12202
                  OPC_EmitMergeInputChains, 1, 0, 
 
12203
                  OPC_EmitInteger, MVT::i32, 14, 
 
12204
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12205
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12206
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12207
                0, 
 
12208
              0, 
 
12209
            0|128,1, 
 
12210
              OPC_CheckPredicate, 30,
 
12211
              OPC_Scope, 61, 
 
12212
                OPC_CheckPredicate, 31,
 
12213
                OPC_RecordMemRef,
 
12214
                OPC_RecordNode,
 
12215
                OPC_RecordChild1,
 
12216
                OPC_CheckChild1Type, MVT::i32,
 
12217
                OPC_CheckType, MVT::i32,
 
12218
                OPC_CheckPatternPredicate, 2,
 
12219
                OPC_Scope, 23, 
 
12220
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12221
                  OPC_EmitMergeInputChains, 1, 0, 
 
12222
                  OPC_EmitInteger, MVT::i32, 14, 
 
12223
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12224
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12225
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12226
                23, 
 
12227
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12228
                  OPC_EmitMergeInputChains, 1, 0, 
 
12229
                  OPC_EmitInteger, MVT::i32, 14, 
 
12230
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12231
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12232
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12233
                0, 
 
12234
              61, 
 
12235
                OPC_CheckPredicate, 32,
 
12236
                OPC_RecordMemRef,
 
12237
                OPC_RecordNode,
 
12238
                OPC_RecordChild1,
 
12239
                OPC_CheckChild1Type, MVT::i32,
 
12240
                OPC_CheckType, MVT::i32,
 
12241
                OPC_CheckPatternPredicate, 2,
 
12242
                OPC_Scope, 23, 
 
12243
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12244
                  OPC_EmitMergeInputChains, 1, 0, 
 
12245
                  OPC_EmitInteger, MVT::i32, 14, 
 
12246
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12247
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12248
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12249
                23, 
 
12250
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12251
                  OPC_EmitMergeInputChains, 1, 0, 
 
12252
                  OPC_EmitInteger, MVT::i32, 14, 
 
12253
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12254
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12255
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12256
                0, 
 
12257
              0, 
 
12258
            63, 
 
12259
              OPC_CheckPredicate, 27,
 
12260
              OPC_CheckPredicate, 33,
 
12261
              OPC_RecordMemRef,
 
12262
              OPC_RecordNode,
 
12263
              OPC_RecordChild1,
 
12264
              OPC_CheckChild1Type, MVT::i32,
 
12265
              OPC_CheckType, MVT::i32,
 
12266
              OPC_CheckPatternPredicate, 2,
 
12267
              OPC_Scope, 23, 
 
12268
                OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12269
                OPC_EmitMergeInputChains, 1, 0, 
 
12270
                OPC_EmitInteger, MVT::i32, 14, 
 
12271
                OPC_EmitRegister, MVT::i32, 0 ,
 
12272
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12273
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
12274
              23, 
 
12275
                OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12276
                OPC_EmitMergeInputChains, 1, 0, 
 
12277
                OPC_EmitInteger, MVT::i32, 14, 
 
12278
                OPC_EmitRegister, MVT::i32, 0 ,
 
12279
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12280
                    1, MVT::i32, 4, 2, 3, 4, 5, 
 
12281
              0, 
 
12282
            62|128,1, 
 
12283
              OPC_CheckPredicate, 34,
 
12284
              OPC_Scope, 61, 
 
12285
                OPC_CheckPredicate, 35,
 
12286
                OPC_RecordMemRef,
 
12287
                OPC_RecordNode,
 
12288
                OPC_RecordChild1,
 
12289
                OPC_CheckChild1Type, MVT::i32,
 
12290
                OPC_CheckType, MVT::i32,
 
12291
                OPC_CheckPatternPredicate, 2,
 
12292
                OPC_Scope, 23, 
 
12293
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12294
                  OPC_EmitMergeInputChains, 1, 0, 
 
12295
                  OPC_EmitInteger, MVT::i32, 14, 
 
12296
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12297
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12298
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12299
                23, 
 
12300
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12301
                  OPC_EmitMergeInputChains, 1, 0, 
 
12302
                  OPC_EmitInteger, MVT::i32, 14, 
 
12303
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12304
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12305
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12306
                0, 
 
12307
              61, 
 
12308
                OPC_CheckPredicate, 36,
 
12309
                OPC_RecordMemRef,
 
12310
                OPC_RecordNode,
 
12311
                OPC_RecordChild1,
 
12312
                OPC_CheckChild1Type, MVT::i32,
 
12313
                OPC_CheckType, MVT::i32,
 
12314
                OPC_CheckPatternPredicate, 2,
 
12315
                OPC_Scope, 23, 
 
12316
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12317
                  OPC_EmitMergeInputChains, 1, 0, 
 
12318
                  OPC_EmitInteger, MVT::i32, 14, 
 
12319
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12320
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12321
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12322
                23, 
 
12323
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12324
                  OPC_EmitMergeInputChains, 1, 0, 
 
12325
                  OPC_EmitInteger, MVT::i32, 14, 
 
12326
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12327
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12328
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12329
                0, 
 
12330
              61, 
 
12331
                OPC_CheckPredicate, 37,
 
12332
                OPC_RecordMemRef,
 
12333
                OPC_RecordNode,
 
12334
                OPC_RecordChild1,
 
12335
                OPC_CheckChild1Type, MVT::i32,
 
12336
                OPC_CheckType, MVT::i32,
 
12337
                OPC_CheckPatternPredicate, 2,
 
12338
                OPC_Scope, 23, 
 
12339
                  OPC_CheckComplexPat, /*CP*/11, /*#*/1,
 
12340
                  OPC_EmitMergeInputChains, 1, 0, 
 
12341
                  OPC_EmitInteger, MVT::i32, 14, 
 
12342
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12343
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12344
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12345
                23, 
 
12346
                  OPC_CheckComplexPat, /*CP*/12, /*#*/1,
 
12347
                  OPC_EmitMergeInputChains, 1, 0, 
 
12348
                  OPC_EmitInteger, MVT::i32, 14, 
 
12349
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12350
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12351
                      1, MVT::i32, 4, 2, 3, 4, 5, 
 
12352
                0, 
 
12353
              0, 
 
12354
            25|128,1, 
 
12355
              OPC_CheckPredicate, 26,
 
12356
              OPC_RecordMemRef,
 
12357
              OPC_RecordNode,
 
12358
              OPC_Scope, 86, 
 
12359
                OPC_RecordChild1,
 
12360
                OPC_CheckChild1Type, MVT::i32,
 
12361
                OPC_SwitchType , 25,  MVT::f64,
 
12362
                  OPC_CheckPatternPredicate, 8,
 
12363
                  OPC_CheckComplexPat, /*CP*/13, /*#*/1,
 
12364
                  OPC_EmitMergeInputChains, 1, 0, 
 
12365
                  OPC_EmitInteger, MVT::i32, 14, 
 
12366
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12367
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLDRD), 0|OPFL_Chain|OPFL_MemRefs,
 
12368
                      1, MVT::f64, 4, 2, 3, 4, 5, 
 
12369
                25,  MVT::f32,
 
12370
                  OPC_CheckPatternPredicate, 8,
 
12371
                  OPC_CheckComplexPat, /*CP*/13, /*#*/1,
 
12372
                  OPC_EmitMergeInputChains, 1, 0, 
 
12373
                  OPC_EmitInteger, MVT::i32, 14, 
 
12374
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12375
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLDRS), 0|OPFL_Chain|OPFL_MemRefs,
 
12376
                      1, MVT::f32, 4, 2, 3, 4, 5, 
 
12377
                25,  MVT::v2f64,
 
12378
                  OPC_CheckPatternPredicate, 3,
 
12379
                  OPC_CheckComplexPat, /*CP*/14, /*#*/1,
 
12380
                  OPC_EmitMergeInputChains, 1, 0, 
 
12381
                  OPC_EmitInteger, MVT::i32, 14, 
 
12382
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12383
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLDRQ), 0|OPFL_Chain|OPFL_MemRefs,
 
12384
                      1, MVT::v2f64, 4, 2, 3, 4, 5, 
 
12385
                0, 
 
12386
              59, 
 
12387
                OPC_MoveChild, 1,
 
12388
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12389
                OPC_RecordChild0,
 
12390
                OPC_MoveChild, 0,
 
12391
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12392
                OPC_MoveParent,
 
12393
                OPC_MoveParent,
 
12394
                OPC_CheckType, MVT::i32,
 
12395
                OPC_Scope, 21, 
 
12396
                  OPC_CheckPatternPredicate, 6,
 
12397
                  OPC_EmitMergeInputChains, 1, 0, 
 
12398
                  OPC_EmitInteger, MVT::i32, 14, 
 
12399
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12400
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12401
                      1, MVT::i32, 3, 1, 2, 3, 
 
12402
                21, 
 
12403
                  OPC_CheckPatternPredicate, 2,
 
12404
                  OPC_EmitMergeInputChains, 1, 0, 
 
12405
                  OPC_EmitInteger, MVT::i32, 14, 
 
12406
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12407
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12408
                      1, MVT::i32, 3, 1, 2, 3, 
 
12409
                0, 
 
12410
              0, 
 
12411
            82, 
 
12412
              OPC_CheckPredicate, 27,
 
12413
              OPC_Scope, 38, 
 
12414
                OPC_CheckPredicate, 28,
 
12415
                OPC_RecordMemRef,
 
12416
                OPC_RecordNode,
 
12417
                OPC_MoveChild, 1,
 
12418
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12419
                OPC_RecordChild0,
 
12420
                OPC_MoveChild, 0,
 
12421
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12422
                OPC_MoveParent,
 
12423
                OPC_MoveParent,
 
12424
                OPC_CheckType, MVT::i32,
 
12425
                OPC_CheckPatternPredicate, 2,
 
12426
                OPC_EmitMergeInputChains, 1, 0, 
 
12427
                OPC_EmitInteger, MVT::i32, 14, 
 
12428
                OPC_EmitRegister, MVT::i32, 0 ,
 
12429
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12430
                    1, MVT::i32, 3, 1, 2, 3, 
 
12431
              38, 
 
12432
                OPC_CheckPredicate, 29,
 
12433
                OPC_RecordMemRef,
 
12434
                OPC_RecordNode,
 
12435
                OPC_MoveChild, 1,
 
12436
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12437
                OPC_RecordChild0,
 
12438
                OPC_MoveChild, 0,
 
12439
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12440
                OPC_MoveParent,
 
12441
                OPC_MoveParent,
 
12442
                OPC_CheckType, MVT::i32,
 
12443
                OPC_CheckPatternPredicate, 2,
 
12444
                OPC_EmitMergeInputChains, 1, 0, 
 
12445
                OPC_EmitInteger, MVT::i32, 14, 
 
12446
                OPC_EmitRegister, MVT::i32, 0 ,
 
12447
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12448
                    1, MVT::i32, 3, 1, 2, 3, 
 
12449
              0, 
 
12450
            82, 
 
12451
              OPC_CheckPredicate, 30,
 
12452
              OPC_Scope, 38, 
 
12453
                OPC_CheckPredicate, 31,
 
12454
                OPC_RecordMemRef,
 
12455
                OPC_RecordNode,
 
12456
                OPC_MoveChild, 1,
 
12457
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12458
                OPC_RecordChild0,
 
12459
                OPC_MoveChild, 0,
 
12460
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12461
                OPC_MoveParent,
 
12462
                OPC_MoveParent,
 
12463
                OPC_CheckType, MVT::i32,
 
12464
                OPC_CheckPatternPredicate, 2,
 
12465
                OPC_EmitMergeInputChains, 1, 0, 
 
12466
                OPC_EmitInteger, MVT::i32, 14, 
 
12467
                OPC_EmitRegister, MVT::i32, 0 ,
 
12468
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSHpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12469
                    1, MVT::i32, 3, 1, 2, 3, 
 
12470
              38, 
 
12471
                OPC_CheckPredicate, 32,
 
12472
                OPC_RecordMemRef,
 
12473
                OPC_RecordNode,
 
12474
                OPC_MoveChild, 1,
 
12475
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12476
                OPC_RecordChild0,
 
12477
                OPC_MoveChild, 0,
 
12478
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12479
                OPC_MoveParent,
 
12480
                OPC_MoveParent,
 
12481
                OPC_CheckType, MVT::i32,
 
12482
                OPC_CheckPatternPredicate, 2,
 
12483
                OPC_EmitMergeInputChains, 1, 0, 
 
12484
                OPC_EmitInteger, MVT::i32, 14, 
 
12485
                OPC_EmitRegister, MVT::i32, 0 ,
 
12486
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRSBpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12487
                    1, MVT::i32, 3, 1, 2, 3, 
 
12488
              0, 
 
12489
            40, 
 
12490
              OPC_CheckPredicate, 27,
 
12491
              OPC_CheckPredicate, 33,
 
12492
              OPC_RecordMemRef,
 
12493
              OPC_RecordNode,
 
12494
              OPC_MoveChild, 1,
 
12495
              OPC_CheckOpcode, ARMISD::Wrapper,
 
12496
              OPC_RecordChild0,
 
12497
              OPC_MoveChild, 0,
 
12498
              OPC_CheckOpcode, ISD::TargetConstantPool,
 
12499
              OPC_MoveParent,
 
12500
              OPC_MoveParent,
 
12501
              OPC_CheckType, MVT::i32,
 
12502
              OPC_CheckPatternPredicate, 2,
 
12503
              OPC_EmitMergeInputChains, 1, 0, 
 
12504
              OPC_EmitInteger, MVT::i32, 14, 
 
12505
              OPC_EmitRegister, MVT::i32, 0 ,
 
12506
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12507
                  1, MVT::i32, 3, 1, 2, 3, 
 
12508
            121, 
 
12509
              OPC_CheckPredicate, 34,
 
12510
              OPC_Scope, 38, 
 
12511
                OPC_CheckPredicate, 35,
 
12512
                OPC_RecordMemRef,
 
12513
                OPC_RecordNode,
 
12514
                OPC_MoveChild, 1,
 
12515
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12516
                OPC_RecordChild0,
 
12517
                OPC_MoveChild, 0,
 
12518
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12519
                OPC_MoveParent,
 
12520
                OPC_MoveParent,
 
12521
                OPC_CheckType, MVT::i32,
 
12522
                OPC_CheckPatternPredicate, 2,
 
12523
                OPC_EmitMergeInputChains, 1, 0, 
 
12524
                OPC_EmitInteger, MVT::i32, 14, 
 
12525
                OPC_EmitRegister, MVT::i32, 0 ,
 
12526
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12527
                    1, MVT::i32, 3, 1, 2, 3, 
 
12528
              38, 
 
12529
                OPC_CheckPredicate, 36,
 
12530
                OPC_RecordMemRef,
 
12531
                OPC_RecordNode,
 
12532
                OPC_MoveChild, 1,
 
12533
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12534
                OPC_RecordChild0,
 
12535
                OPC_MoveChild, 0,
 
12536
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12537
                OPC_MoveParent,
 
12538
                OPC_MoveParent,
 
12539
                OPC_CheckType, MVT::i32,
 
12540
                OPC_CheckPatternPredicate, 2,
 
12541
                OPC_EmitMergeInputChains, 1, 0, 
 
12542
                OPC_EmitInteger, MVT::i32, 14, 
 
12543
                OPC_EmitRegister, MVT::i32, 0 ,
 
12544
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRBpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12545
                    1, MVT::i32, 3, 1, 2, 3, 
 
12546
              38, 
 
12547
                OPC_CheckPredicate, 37,
 
12548
                OPC_RecordMemRef,
 
12549
                OPC_RecordNode,
 
12550
                OPC_MoveChild, 1,
 
12551
                OPC_CheckOpcode, ARMISD::Wrapper,
 
12552
                OPC_RecordChild0,
 
12553
                OPC_MoveChild, 0,
 
12554
                OPC_CheckOpcode, ISD::TargetConstantPool,
 
12555
                OPC_MoveParent,
 
12556
                OPC_MoveParent,
 
12557
                OPC_CheckType, MVT::i32,
 
12558
                OPC_CheckPatternPredicate, 2,
 
12559
                OPC_EmitMergeInputChains, 1, 0, 
 
12560
                OPC_EmitInteger, MVT::i32, 14, 
 
12561
                OPC_EmitRegister, MVT::i32, 0 ,
 
12562
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRHpci), 0|OPFL_Chain|OPFL_MemRefs,
 
12563
                    1, MVT::i32, 3, 1, 2, 3, 
 
12564
              0, 
 
12565
            0, 
 
12566
          44|128,10,  ISD::STORE,
 
12567
            OPC_Scope, 81|128,3, 
 
12568
              OPC_CheckPredicate, 38,
 
12569
              OPC_Scope, 35, 
 
12570
                OPC_CheckPredicate, 39,
 
12571
                OPC_RecordMemRef,
 
12572
                OPC_RecordNode,
 
12573
                OPC_RecordChild1,
 
12574
                OPC_CheckChild1Type, MVT::i32,
 
12575
                OPC_RecordChild2,
 
12576
                OPC_CheckChild2Type, MVT::i32,
 
12577
                OPC_CheckPatternPredicate, 5,
 
12578
                OPC_CheckComplexPat, /*CP*/3, /*#*/2,
 
12579
                OPC_EmitMergeInputChains, 1, 0, 
 
12580
                OPC_EmitInteger, MVT::i32, 14, 
 
12581
                OPC_EmitRegister, MVT::i32, 0 ,
 
12582
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICSTR), 0|OPFL_Chain|OPFL_MemRefs,
 
12583
                    0, 5, 1, 3, 4, 5, 6, 
 
12584
              76, 
 
12585
                OPC_CheckPredicate, 40,
 
12586
                OPC_Scope, 35, 
 
12587
                  OPC_CheckPredicate, 41,
 
12588
                  OPC_RecordMemRef,
 
12589
                  OPC_RecordNode,
 
12590
                  OPC_RecordChild1,
 
12591
                  OPC_CheckChild1Type, MVT::i32,
 
12592
                  OPC_RecordChild2,
 
12593
                  OPC_CheckChild2Type, MVT::i32,
 
12594
                  OPC_CheckPatternPredicate, 5,
 
12595
                  OPC_CheckComplexPat, /*CP*/3, /*#*/2,
 
12596
                  OPC_EmitMergeInputChains, 1, 0, 
 
12597
                  OPC_EmitInteger, MVT::i32, 14, 
 
12598
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12599
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICSTRH), 0|OPFL_Chain|OPFL_MemRefs,
 
12600
                      0, 5, 1, 3, 4, 5, 6, 
 
12601
                35, 
 
12602
                  OPC_CheckPredicate, 42,
 
12603
                  OPC_RecordMemRef,
 
12604
                  OPC_RecordNode,
 
12605
                  OPC_RecordChild1,
 
12606
                  OPC_CheckChild1Type, MVT::i32,
 
12607
                  OPC_RecordChild2,
 
12608
                  OPC_CheckChild2Type, MVT::i32,
 
12609
                  OPC_CheckPatternPredicate, 5,
 
12610
                  OPC_CheckComplexPat, /*CP*/3, /*#*/2,
 
12611
                  OPC_EmitMergeInputChains, 1, 0, 
 
12612
                  OPC_EmitInteger, MVT::i32, 14, 
 
12613
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12614
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICSTRB), 0|OPFL_Chain|OPFL_MemRefs,
 
12615
                      0, 5, 1, 3, 4, 5, 6, 
 
12616
                0, 
 
12617
              36, 
 
12618
                OPC_CheckPredicate, 39,
 
12619
                OPC_RecordMemRef,
 
12620
                OPC_RecordNode,
 
12621
                OPC_RecordChild1,
 
12622
                OPC_CheckChild1Type, MVT::i32,
 
12623
                OPC_RecordChild2,
 
12624
                OPC_CheckChild2Type, MVT::i32,
 
12625
                OPC_CheckPatternPredicate, 5,
 
12626
                OPC_CheckComplexPat, /*CP*/2, /*#*/2,
 
12627
                OPC_EmitMergeInputChains, 1, 0, 
 
12628
                OPC_EmitInteger, MVT::i32, 14, 
 
12629
                OPC_EmitRegister, MVT::i32, 0 ,
 
12630
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STR), 0|OPFL_Chain|OPFL_MemRefs,
 
12631
                    0, 6, 1, 3, 4, 5, 6, 7, 
 
12632
              78, 
 
12633
                OPC_CheckPredicate, 40,
 
12634
                OPC_Scope, 36, 
 
12635
                  OPC_CheckPredicate, 41,
 
12636
                  OPC_RecordMemRef,
 
12637
                  OPC_RecordNode,
 
12638
                  OPC_RecordChild1,
 
12639
                  OPC_CheckChild1Type, MVT::i32,
 
12640
                  OPC_RecordChild2,
 
12641
                  OPC_CheckChild2Type, MVT::i32,
 
12642
                  OPC_CheckPatternPredicate, 5,
 
12643
                  OPC_CheckComplexPat, /*CP*/5, /*#*/2,
 
12644
                  OPC_EmitMergeInputChains, 1, 0, 
 
12645
                  OPC_EmitInteger, MVT::i32, 14, 
 
12646
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12647
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRH), 0|OPFL_Chain|OPFL_MemRefs,
 
12648
                      0, 6, 1, 3, 4, 5, 6, 7, 
 
12649
                36, 
 
12650
                  OPC_CheckPredicate, 42,
 
12651
                  OPC_RecordMemRef,
 
12652
                  OPC_RecordNode,
 
12653
                  OPC_RecordChild1,
 
12654
                  OPC_CheckChild1Type, MVT::i32,
 
12655
                  OPC_RecordChild2,
 
12656
                  OPC_CheckChild2Type, MVT::i32,
 
12657
                  OPC_CheckPatternPredicate, 5,
 
12658
                  OPC_CheckComplexPat, /*CP*/2, /*#*/2,
 
12659
                  OPC_EmitMergeInputChains, 1, 0, 
 
12660
                  OPC_EmitInteger, MVT::i32, 14, 
 
12661
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12662
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRB), 0|OPFL_Chain|OPFL_MemRefs,
 
12663
                      0, 6, 1, 3, 4, 5, 6, 7, 
 
12664
                0, 
 
12665
              36, 
 
12666
                OPC_CheckPredicate, 39,
 
12667
                OPC_RecordMemRef,
 
12668
                OPC_RecordNode,
 
12669
                OPC_RecordChild1,
 
12670
                OPC_CheckChild1Type, MVT::i32,
 
12671
                OPC_RecordChild2,
 
12672
                OPC_CheckChild2Type, MVT::i32,
 
12673
                OPC_CheckPatternPredicate, 6,
 
12674
                OPC_CheckComplexPat, /*CP*/6, /*#*/2,
 
12675
                OPC_EmitMergeInputChains, 1, 0, 
 
12676
                OPC_EmitInteger, MVT::i32, 14, 
 
12677
                OPC_EmitRegister, MVT::i32, 0 ,
 
12678
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTR), 0|OPFL_Chain|OPFL_MemRefs,
 
12679
                    0, 6, 1, 3, 4, 5, 6, 7, 
 
12680
              78, 
 
12681
                OPC_CheckPredicate, 40,
 
12682
                OPC_Scope, 36, 
 
12683
                  OPC_CheckPredicate, 42,
 
12684
                  OPC_RecordMemRef,
 
12685
                  OPC_RecordNode,
 
12686
                  OPC_RecordChild1,
 
12687
                  OPC_CheckChild1Type, MVT::i32,
 
12688
                  OPC_RecordChild2,
 
12689
                  OPC_CheckChild2Type, MVT::i32,
 
12690
                  OPC_CheckPatternPredicate, 6,
 
12691
                  OPC_CheckComplexPat, /*CP*/7, /*#*/2,
 
12692
                  OPC_EmitMergeInputChains, 1, 0, 
 
12693
                  OPC_EmitInteger, MVT::i32, 14, 
 
12694
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12695
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTRB), 0|OPFL_Chain|OPFL_MemRefs,
 
12696
                      0, 6, 1, 3, 4, 5, 6, 7, 
 
12697
                36, 
 
12698
                  OPC_CheckPredicate, 41,
 
12699
                  OPC_RecordMemRef,
 
12700
                  OPC_RecordNode,
 
12701
                  OPC_RecordChild1,
 
12702
                  OPC_CheckChild1Type, MVT::i32,
 
12703
                  OPC_RecordChild2,
 
12704
                  OPC_CheckChild2Type, MVT::i32,
 
12705
                  OPC_CheckPatternPredicate, 6,
 
12706
                  OPC_CheckComplexPat, /*CP*/8, /*#*/2,
 
12707
                  OPC_EmitMergeInputChains, 1, 0, 
 
12708
                  OPC_EmitInteger, MVT::i32, 14, 
 
12709
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12710
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTRH), 0|OPFL_Chain|OPFL_MemRefs,
 
12711
                      0, 6, 1, 3, 4, 5, 6, 7, 
 
12712
                0, 
 
12713
              36, 
 
12714
                OPC_CheckPredicate, 39,
 
12715
                OPC_RecordMemRef,
 
12716
                OPC_RecordNode,
 
12717
                OPC_RecordChild1,
 
12718
                OPC_CheckChild1Type, MVT::i32,
 
12719
                OPC_RecordChild2,
 
12720
                OPC_CheckChild2Type, MVT::i32,
 
12721
                OPC_CheckPatternPredicate, 2,
 
12722
                OPC_CheckComplexPat, /*CP*/9, /*#*/2,
 
12723
                OPC_EmitMergeInputChains, 1, 0, 
 
12724
                OPC_EmitInteger, MVT::i32, 14, 
 
12725
                OPC_EmitRegister, MVT::i32, 0 ,
 
12726
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRs), 0|OPFL_Chain|OPFL_MemRefs,
 
12727
                    0, 6, 1, 3, 4, 5, 6, 7, 
 
12728
              78, 
 
12729
                OPC_CheckPredicate, 40,
 
12730
                OPC_Scope, 36, 
 
12731
                  OPC_CheckPredicate, 42,
 
12732
                  OPC_RecordMemRef,
 
12733
                  OPC_RecordNode,
 
12734
                  OPC_RecordChild1,
 
12735
                  OPC_CheckChild1Type, MVT::i32,
 
12736
                  OPC_RecordChild2,
 
12737
                  OPC_CheckChild2Type, MVT::i32,
 
12738
                  OPC_CheckPatternPredicate, 2,
 
12739
                  OPC_CheckComplexPat, /*CP*/9, /*#*/2,
 
12740
                  OPC_EmitMergeInputChains, 1, 0, 
 
12741
                  OPC_EmitInteger, MVT::i32, 14, 
 
12742
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12743
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRBs), 0|OPFL_Chain|OPFL_MemRefs,
 
12744
                      0, 6, 1, 3, 4, 5, 6, 7, 
 
12745
                36, 
 
12746
                  OPC_CheckPredicate, 41,
 
12747
                  OPC_RecordMemRef,
 
12748
                  OPC_RecordNode,
 
12749
                  OPC_RecordChild1,
 
12750
                  OPC_CheckChild1Type, MVT::i32,
 
12751
                  OPC_RecordChild2,
 
12752
                  OPC_CheckChild2Type, MVT::i32,
 
12753
                  OPC_CheckPatternPredicate, 2,
 
12754
                  OPC_CheckComplexPat, /*CP*/9, /*#*/2,
 
12755
                  OPC_EmitMergeInputChains, 1, 0, 
 
12756
                  OPC_EmitInteger, MVT::i32, 14, 
 
12757
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12758
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRHs), 0|OPFL_Chain|OPFL_MemRefs,
 
12759
                      0, 6, 1, 3, 4, 5, 6, 7, 
 
12760
                0, 
 
12761
              0, 
 
12762
            86, 
 
12763
              OPC_CheckPredicate, 43,
 
12764
              OPC_Scope, 40, 
 
12765
                OPC_CheckPredicate, 44,
 
12766
                OPC_RecordMemRef,
 
12767
                OPC_RecordNode,
 
12768
                OPC_RecordChild1,
 
12769
                OPC_CheckChild1Type, MVT::i32,
 
12770
                OPC_RecordChild2,
 
12771
                OPC_RecordChild3,
 
12772
                OPC_CheckChild3Type, MVT::i32,
 
12773
                OPC_CheckType, MVT::i32,
 
12774
                OPC_CheckPatternPredicate, 5,
 
12775
                OPC_CheckComplexPat, /*CP*/15, /*#*/3,
 
12776
                OPC_EmitMergeInputChains, 1, 0, 
 
12777
                OPC_EmitInteger, MVT::i32, 14, 
 
12778
                OPC_EmitRegister, MVT::i32, 0 ,
 
12779
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STR_PRE), 0|OPFL_Chain|OPFL_MemRefs,
 
12780
                    1, MVT::i32, 6, 1, 2, 4, 5, 6, 7, 
 
12781
              40, 
 
12782
                OPC_CheckPredicate, 45,
 
12783
                OPC_RecordMemRef,
 
12784
                OPC_RecordNode,
 
12785
                OPC_RecordChild1,
 
12786
                OPC_CheckChild1Type, MVT::i32,
 
12787
                OPC_RecordChild2,
 
12788
                OPC_RecordChild3,
 
12789
                OPC_CheckChild3Type, MVT::i32,
 
12790
                OPC_CheckType, MVT::i32,
 
12791
                OPC_CheckPatternPredicate, 5,
 
12792
                OPC_CheckComplexPat, /*CP*/15, /*#*/3,
 
12793
                OPC_EmitMergeInputChains, 1, 0, 
 
12794
                OPC_EmitInteger, MVT::i32, 14, 
 
12795
                OPC_EmitRegister, MVT::i32, 0 ,
 
12796
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STR_POST), 0|OPFL_Chain|OPFL_MemRefs,
 
12797
                    1, MVT::i32, 6, 1, 2, 4, 5, 6, 7, 
 
12798
              0, 
 
12799
            48|128,1, 
 
12800
              OPC_CheckPredicate, 46,
 
12801
              OPC_Scope, 42, 
 
12802
                OPC_CheckPredicate, 47,
 
12803
                OPC_CheckPredicate, 48,
 
12804
                OPC_RecordMemRef,
 
12805
                OPC_RecordNode,
 
12806
                OPC_RecordChild1,
 
12807
                OPC_CheckChild1Type, MVT::i32,
 
12808
                OPC_RecordChild2,
 
12809
                OPC_RecordChild3,
 
12810
                OPC_CheckChild3Type, MVT::i32,
 
12811
                OPC_CheckType, MVT::i32,
 
12812
                OPC_CheckPatternPredicate, 5,
 
12813
                OPC_CheckComplexPat, /*CP*/16, /*#*/3,
 
12814
                OPC_EmitMergeInputChains, 1, 0, 
 
12815
                OPC_EmitInteger, MVT::i32, 14, 
 
12816
                OPC_EmitRegister, MVT::i32, 0 ,
 
12817
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRH_PRE), 0|OPFL_Chain|OPFL_MemRefs,
 
12818
                    1, MVT::i32, 6, 1, 2, 4, 5, 6, 7, 
 
12819
              42, 
 
12820
                OPC_CheckPredicate, 49,
 
12821
                OPC_CheckPredicate, 50,
 
12822
                OPC_RecordMemRef,
 
12823
                OPC_RecordNode,
 
12824
                OPC_RecordChild1,
 
12825
                OPC_CheckChild1Type, MVT::i32,
 
12826
                OPC_RecordChild2,
 
12827
                OPC_RecordChild3,
 
12828
                OPC_CheckChild3Type, MVT::i32,
 
12829
                OPC_CheckType, MVT::i32,
 
12830
                OPC_CheckPatternPredicate, 5,
 
12831
                OPC_CheckComplexPat, /*CP*/16, /*#*/3,
 
12832
                OPC_EmitMergeInputChains, 1, 0, 
 
12833
                OPC_EmitInteger, MVT::i32, 14, 
 
12834
                OPC_EmitRegister, MVT::i32, 0 ,
 
12835
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRH_POST), 0|OPFL_Chain|OPFL_MemRefs,
 
12836
                    1, MVT::i32, 6, 1, 2, 4, 5, 6, 7, 
 
12837
              42, 
 
12838
                OPC_CheckPredicate, 47,
 
12839
                OPC_CheckPredicate, 51,
 
12840
                OPC_RecordMemRef,
 
12841
                OPC_RecordNode,
 
12842
                OPC_RecordChild1,
 
12843
                OPC_CheckChild1Type, MVT::i32,
 
12844
                OPC_RecordChild2,
 
12845
                OPC_RecordChild3,
 
12846
                OPC_CheckChild3Type, MVT::i32,
 
12847
                OPC_CheckType, MVT::i32,
 
12848
                OPC_CheckPatternPredicate, 5,
 
12849
                OPC_CheckComplexPat, /*CP*/15, /*#*/3,
 
12850
                OPC_EmitMergeInputChains, 1, 0, 
 
12851
                OPC_EmitInteger, MVT::i32, 14, 
 
12852
                OPC_EmitRegister, MVT::i32, 0 ,
 
12853
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRB_PRE), 0|OPFL_Chain|OPFL_MemRefs,
 
12854
                    1, MVT::i32, 6, 1, 2, 4, 5, 6, 7, 
 
12855
              42, 
 
12856
                OPC_CheckPredicate, 49,
 
12857
                OPC_CheckPredicate, 52,
 
12858
                OPC_RecordMemRef,
 
12859
                OPC_RecordNode,
 
12860
                OPC_RecordChild1,
 
12861
                OPC_CheckChild1Type, MVT::i32,
 
12862
                OPC_RecordChild2,
 
12863
                OPC_RecordChild3,
 
12864
                OPC_CheckChild3Type, MVT::i32,
 
12865
                OPC_CheckType, MVT::i32,
 
12866
                OPC_CheckPatternPredicate, 5,
 
12867
                OPC_CheckComplexPat, /*CP*/15, /*#*/3,
 
12868
                OPC_EmitMergeInputChains, 1, 0, 
 
12869
                OPC_EmitInteger, MVT::i32, 14, 
 
12870
                OPC_EmitRegister, MVT::i32, 0 ,
 
12871
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::STRB_POST), 0|OPFL_Chain|OPFL_MemRefs,
 
12872
                    1, MVT::i32, 6, 1, 2, 4, 5, 6, 7, 
 
12873
              0, 
 
12874
            73|128,2, 
 
12875
              OPC_CheckPredicate, 38,
 
12876
              OPC_Scope, 91, 
 
12877
                OPC_CheckPredicate, 39,
 
12878
                OPC_RecordMemRef,
 
12879
                OPC_RecordNode,
 
12880
                OPC_RecordChild1,
 
12881
                OPC_CheckChild1Type, MVT::i32,
 
12882
                OPC_RecordChild2,
 
12883
                OPC_CheckChild2Type, MVT::i32,
 
12884
                OPC_Scope, 25, 
 
12885
                  OPC_CheckPatternPredicate, 6,
 
12886
                  OPC_CheckComplexPat, /*CP*/10, /*#*/2,
 
12887
                  OPC_EmitMergeInputChains, 1, 0, 
 
12888
                  OPC_EmitInteger, MVT::i32, 14, 
 
12889
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12890
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSTRspi), 0|OPFL_Chain|OPFL_MemRefs,
 
12891
                      0, 5, 1, 3, 4, 5, 6, 
 
12892
                52, 
 
12893
                  OPC_CheckPatternPredicate, 2,
 
12894
                  OPC_Scope, 23, 
 
12895
                    OPC_CheckComplexPat, /*CP*/11, /*#*/2,
 
12896
                    OPC_EmitMergeInputChains, 1, 0, 
 
12897
                    OPC_EmitInteger, MVT::i32, 14, 
 
12898
                    OPC_EmitRegister, MVT::i32, 0 ,
 
12899
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12900
                        0, 5, 1, 3, 4, 5, 6, 
 
12901
                  23, 
 
12902
                    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
 
12903
                    OPC_EmitMergeInputChains, 1, 0, 
 
12904
                    OPC_EmitInteger, MVT::i32, 14, 
 
12905
                    OPC_EmitRegister, MVT::i32, 0 ,
 
12906
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12907
                        0, 5, 1, 3, 4, 5, 6, 
 
12908
                  0, 
 
12909
                0, 
 
12910
              2|128,1, 
 
12911
                OPC_CheckPredicate, 40,
 
12912
                OPC_Scope, 62, 
 
12913
                  OPC_CheckPredicate, 42,
 
12914
                  OPC_RecordMemRef,
 
12915
                  OPC_RecordNode,
 
12916
                  OPC_RecordChild1,
 
12917
                  OPC_CheckChild1Type, MVT::i32,
 
12918
                  OPC_RecordChild2,
 
12919
                  OPC_CheckChild2Type, MVT::i32,
 
12920
                  OPC_CheckPatternPredicate, 2,
 
12921
                  OPC_Scope, 23, 
 
12922
                    OPC_CheckComplexPat, /*CP*/11, /*#*/2,
 
12923
                    OPC_EmitMergeInputChains, 1, 0, 
 
12924
                    OPC_EmitInteger, MVT::i32, 14, 
 
12925
                    OPC_EmitRegister, MVT::i32, 0 ,
 
12926
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRBi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12927
                        0, 5, 1, 3, 4, 5, 6, 
 
12928
                  23, 
 
12929
                    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
 
12930
                    OPC_EmitMergeInputChains, 1, 0, 
 
12931
                    OPC_EmitInteger, MVT::i32, 14, 
 
12932
                    OPC_EmitRegister, MVT::i32, 0 ,
 
12933
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRBi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12934
                        0, 5, 1, 3, 4, 5, 6, 
 
12935
                  0, 
 
12936
                62, 
 
12937
                  OPC_CheckPredicate, 41,
 
12938
                  OPC_RecordMemRef,
 
12939
                  OPC_RecordNode,
 
12940
                  OPC_RecordChild1,
 
12941
                  OPC_CheckChild1Type, MVT::i32,
 
12942
                  OPC_RecordChild2,
 
12943
                  OPC_CheckChild2Type, MVT::i32,
 
12944
                  OPC_CheckPatternPredicate, 2,
 
12945
                  OPC_Scope, 23, 
 
12946
                    OPC_CheckComplexPat, /*CP*/11, /*#*/2,
 
12947
                    OPC_EmitMergeInputChains, 1, 0, 
 
12948
                    OPC_EmitInteger, MVT::i32, 14, 
 
12949
                    OPC_EmitRegister, MVT::i32, 0 ,
 
12950
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRHi12), 0|OPFL_Chain|OPFL_MemRefs,
 
12951
                        0, 5, 1, 3, 4, 5, 6, 
 
12952
                  23, 
 
12953
                    OPC_CheckComplexPat, /*CP*/12, /*#*/2,
 
12954
                    OPC_EmitMergeInputChains, 1, 0, 
 
12955
                    OPC_EmitInteger, MVT::i32, 14, 
 
12956
                    OPC_EmitRegister, MVT::i32, 0 ,
 
12957
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRHi8), 0|OPFL_Chain|OPFL_MemRefs,
 
12958
                        0, 5, 1, 3, 4, 5, 6, 
 
12959
                  0, 
 
12960
                0, 
 
12961
              100, 
 
12962
                OPC_CheckPredicate, 39,
 
12963
                OPC_RecordMemRef,
 
12964
                OPC_RecordNode,
 
12965
                OPC_RecordChild1,
 
12966
                OPC_Scope, 30, 
 
12967
                  OPC_CheckChild1Type, MVT::f64,
 
12968
                  OPC_RecordChild2,
 
12969
                  OPC_CheckChild2Type, MVT::i32,
 
12970
                  OPC_CheckPatternPredicate, 8,
 
12971
                  OPC_CheckComplexPat, /*CP*/13, /*#*/2,
 
12972
                  OPC_EmitMergeInputChains, 1, 0, 
 
12973
                  OPC_EmitInteger, MVT::i32, 14, 
 
12974
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12975
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSTRD), 0|OPFL_Chain|OPFL_MemRefs,
 
12976
                      0, 5, 1, 3, 4, 5, 6, 
 
12977
                30, 
 
12978
                  OPC_CheckChild1Type, MVT::f32,
 
12979
                  OPC_RecordChild2,
 
12980
                  OPC_CheckChild2Type, MVT::i32,
 
12981
                  OPC_CheckPatternPredicate, 8,
 
12982
                  OPC_CheckComplexPat, /*CP*/13, /*#*/2,
 
12983
                  OPC_EmitMergeInputChains, 1, 0, 
 
12984
                  OPC_EmitInteger, MVT::i32, 14, 
 
12985
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12986
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSTRS), 0|OPFL_Chain|OPFL_MemRefs,
 
12987
                      0, 5, 1, 3, 4, 5, 6, 
 
12988
                30, 
 
12989
                  OPC_CheckChild1Type, MVT::v2f64,
 
12990
                  OPC_RecordChild2,
 
12991
                  OPC_CheckChild2Type, MVT::i32,
 
12992
                  OPC_CheckPatternPredicate, 3,
 
12993
                  OPC_CheckComplexPat, /*CP*/14, /*#*/2,
 
12994
                  OPC_EmitMergeInputChains, 1, 0, 
 
12995
                  OPC_EmitInteger, MVT::i32, 14, 
 
12996
                  OPC_EmitRegister, MVT::i32, 0 ,
 
12997
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSTRQ), 0|OPFL_Chain|OPFL_MemRefs,
 
12998
                      0, 5, 1, 3, 4, 5, 6, 
 
12999
                0, 
 
13000
              0, 
 
13001
            84, 
 
13002
              OPC_CheckPredicate, 43,
 
13003
              OPC_Scope, 39, 
 
13004
                OPC_CheckPredicate, 44,
 
13005
                OPC_RecordMemRef,
 
13006
                OPC_RecordNode,
 
13007
                OPC_RecordChild1,
 
13008
                OPC_CheckChild1Type, MVT::i32,
 
13009
                OPC_RecordChild2,
 
13010
                OPC_RecordChild3,
 
13011
                OPC_CheckChild3Type, MVT::i32,
 
13012
                OPC_CheckType, MVT::i32,
 
13013
                OPC_CheckPatternPredicate, 2,
 
13014
                OPC_CheckComplexPat, /*CP*/17, /*#*/3,
 
13015
                OPC_EmitMergeInputChains, 1, 0, 
 
13016
                OPC_EmitInteger, MVT::i32, 14, 
 
13017
                OPC_EmitRegister, MVT::i32, 0 ,
 
13018
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STR_PRE), 0|OPFL_Chain|OPFL_MemRefs,
 
13019
                    1, MVT::i32, 5, 1, 2, 4, 5, 6, 
 
13020
              39, 
 
13021
                OPC_CheckPredicate, 45,
 
13022
                OPC_RecordMemRef,
 
13023
                OPC_RecordNode,
 
13024
                OPC_RecordChild1,
 
13025
                OPC_CheckChild1Type, MVT::i32,
 
13026
                OPC_RecordChild2,
 
13027
                OPC_RecordChild3,
 
13028
                OPC_CheckChild3Type, MVT::i32,
 
13029
                OPC_CheckType, MVT::i32,
 
13030
                OPC_CheckPatternPredicate, 2,
 
13031
                OPC_CheckComplexPat, /*CP*/17, /*#*/3,
 
13032
                OPC_EmitMergeInputChains, 1, 0, 
 
13033
                OPC_EmitInteger, MVT::i32, 14, 
 
13034
                OPC_EmitRegister, MVT::i32, 0 ,
 
13035
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STR_POST), 0|OPFL_Chain|OPFL_MemRefs,
 
13036
                    1, MVT::i32, 5, 1, 2, 4, 5, 6, 
 
13037
              0, 
 
13038
            44|128,1, 
 
13039
              OPC_CheckPredicate, 46,
 
13040
              OPC_Scope, 41, 
 
13041
                OPC_CheckPredicate, 47,
 
13042
                OPC_CheckPredicate, 48,
 
13043
                OPC_RecordMemRef,
 
13044
                OPC_RecordNode,
 
13045
                OPC_RecordChild1,
 
13046
                OPC_CheckChild1Type, MVT::i32,
 
13047
                OPC_RecordChild2,
 
13048
                OPC_RecordChild3,
 
13049
                OPC_CheckChild3Type, MVT::i32,
 
13050
                OPC_CheckType, MVT::i32,
 
13051
                OPC_CheckPatternPredicate, 2,
 
13052
                OPC_CheckComplexPat, /*CP*/17, /*#*/3,
 
13053
                OPC_EmitMergeInputChains, 1, 0, 
 
13054
                OPC_EmitInteger, MVT::i32, 14, 
 
13055
                OPC_EmitRegister, MVT::i32, 0 ,
 
13056
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRH_PRE), 0|OPFL_Chain|OPFL_MemRefs,
 
13057
                    1, MVT::i32, 5, 1, 2, 4, 5, 6, 
 
13058
              41, 
 
13059
                OPC_CheckPredicate, 49,
 
13060
                OPC_CheckPredicate, 50,
 
13061
                OPC_RecordMemRef,
 
13062
                OPC_RecordNode,
 
13063
                OPC_RecordChild1,
 
13064
                OPC_CheckChild1Type, MVT::i32,
 
13065
                OPC_RecordChild2,
 
13066
                OPC_RecordChild3,
 
13067
                OPC_CheckChild3Type, MVT::i32,
 
13068
                OPC_CheckType, MVT::i32,
 
13069
                OPC_CheckPatternPredicate, 2,
 
13070
                OPC_CheckComplexPat, /*CP*/17, /*#*/3,
 
13071
                OPC_EmitMergeInputChains, 1, 0, 
 
13072
                OPC_EmitInteger, MVT::i32, 14, 
 
13073
                OPC_EmitRegister, MVT::i32, 0 ,
 
13074
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRH_POST), 0|OPFL_Chain|OPFL_MemRefs,
 
13075
                    1, MVT::i32, 5, 1, 2, 4, 5, 6, 
 
13076
              41, 
 
13077
                OPC_CheckPredicate, 47,
 
13078
                OPC_CheckPredicate, 51,
 
13079
                OPC_RecordMemRef,
 
13080
                OPC_RecordNode,
 
13081
                OPC_RecordChild1,
 
13082
                OPC_CheckChild1Type, MVT::i32,
 
13083
                OPC_RecordChild2,
 
13084
                OPC_RecordChild3,
 
13085
                OPC_CheckChild3Type, MVT::i32,
 
13086
                OPC_CheckType, MVT::i32,
 
13087
                OPC_CheckPatternPredicate, 2,
 
13088
                OPC_CheckComplexPat, /*CP*/17, /*#*/3,
 
13089
                OPC_EmitMergeInputChains, 1, 0, 
 
13090
                OPC_EmitInteger, MVT::i32, 14, 
 
13091
                OPC_EmitRegister, MVT::i32, 0 ,
 
13092
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRB_PRE), 0|OPFL_Chain|OPFL_MemRefs,
 
13093
                    1, MVT::i32, 5, 1, 2, 4, 5, 6, 
 
13094
              41, 
 
13095
                OPC_CheckPredicate, 49,
 
13096
                OPC_CheckPredicate, 52,
 
13097
                OPC_RecordMemRef,
 
13098
                OPC_RecordNode,
 
13099
                OPC_RecordChild1,
 
13100
                OPC_CheckChild1Type, MVT::i32,
 
13101
                OPC_RecordChild2,
 
13102
                OPC_RecordChild3,
 
13103
                OPC_CheckChild3Type, MVT::i32,
 
13104
                OPC_CheckType, MVT::i32,
 
13105
                OPC_CheckPatternPredicate, 2,
 
13106
                OPC_CheckComplexPat, /*CP*/17, /*#*/3,
 
13107
                OPC_EmitMergeInputChains, 1, 0, 
 
13108
                OPC_EmitInteger, MVT::i32, 14, 
 
13109
                OPC_EmitRegister, MVT::i32, 0 ,
 
13110
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2STRB_POST), 0|OPFL_Chain|OPFL_MemRefs,
 
13111
                    1, MVT::i32, 5, 1, 2, 4, 5, 6, 
 
13112
              0, 
 
13113
            0, 
 
13114
          71|128,10,  ARMISD::CMPZ,
 
13115
            OPC_Scope, 74, 
 
13116
              OPC_MoveChild, 0,
 
13117
              OPC_SwitchOpcode , 33,  ISD::AND,
 
13118
                OPC_RecordChild0,
 
13119
                OPC_RecordChild1,
 
13120
                OPC_CheckType, MVT::i32,
 
13121
                OPC_MoveParent,
 
13122
                OPC_MoveChild, 1,
 
13123
                OPC_CheckInteger, 0, 
 
13124
                OPC_MoveParent,
 
13125
                OPC_CheckPatternPredicate, 5,
 
13126
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
13127
                OPC_EmitInteger, MVT::i32, 14, 
 
13128
                OPC_EmitRegister, MVT::i32, 0 ,
 
13129
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTrs), 0|OPFL_FlagOutput,
 
13130
                    0, 6, 0, 2, 3, 4, 5, 6, 
 
13131
              33,  ISD::XOR,
 
13132
                OPC_RecordChild0,
 
13133
                OPC_RecordChild1,
 
13134
                OPC_CheckType, MVT::i32,
 
13135
                OPC_MoveParent,
 
13136
                OPC_MoveChild, 1,
 
13137
                OPC_CheckInteger, 0, 
 
13138
                OPC_MoveParent,
 
13139
                OPC_CheckPatternPredicate, 5,
 
13140
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
13141
                OPC_EmitInteger, MVT::i32, 14, 
 
13142
                OPC_EmitRegister, MVT::i32, 0 ,
 
13143
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQrs), 0|OPFL_FlagOutput,
 
13144
                    0, 6, 0, 2, 3, 4, 5, 6, 
 
13145
              0, 
 
13146
            37, 
 
13147
              OPC_RecordChild0,
 
13148
              OPC_CheckChild0Type, MVT::i32,
 
13149
              OPC_MoveChild, 1,
 
13150
              OPC_CheckOpcode, ISD::SUB,
 
13151
              OPC_MoveChild, 0,
 
13152
              OPC_CheckInteger, 0, 
 
13153
              OPC_MoveParent,
 
13154
              OPC_RecordChild1,
 
13155
              OPC_MoveParent,
 
13156
              OPC_CheckPatternPredicate, 5,
 
13157
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
13158
              OPC_EmitInteger, MVT::i32, 14, 
 
13159
              OPC_EmitRegister, MVT::i32, 0 ,
 
13160
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrs), 0|OPFL_FlagOutput,
 
13161
                  0, 6, 0, 2, 3, 4, 5, 6, 
 
13162
            109, 
 
13163
              OPC_MoveChild, 0,
 
13164
              OPC_SwitchOpcode , 33,  ISD::AND,
 
13165
                OPC_RecordChild0,
 
13166
                OPC_RecordChild1,
 
13167
                OPC_CheckType, MVT::i32,
 
13168
                OPC_MoveParent,
 
13169
                OPC_MoveChild, 1,
 
13170
                OPC_CheckInteger, 0, 
 
13171
                OPC_MoveParent,
 
13172
                OPC_CheckPatternPredicate, 5,
 
13173
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
13174
                OPC_EmitInteger, MVT::i32, 14, 
 
13175
                OPC_EmitRegister, MVT::i32, 0 ,
 
13176
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTrs), 0|OPFL_FlagOutput,
 
13177
                    0, 6, 1, 2, 3, 4, 5, 6, 
 
13178
              33,  ISD::XOR,
 
13179
                OPC_RecordChild0,
 
13180
                OPC_RecordChild1,
 
13181
                OPC_CheckType, MVT::i32,
 
13182
                OPC_MoveParent,
 
13183
                OPC_MoveChild, 1,
 
13184
                OPC_CheckInteger, 0, 
 
13185
                OPC_MoveParent,
 
13186
                OPC_CheckPatternPredicate, 5,
 
13187
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
13188
                OPC_EmitInteger, MVT::i32, 14, 
 
13189
                OPC_EmitRegister, MVT::i32, 0 ,
 
13190
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQrs), 0|OPFL_FlagOutput,
 
13191
                    0, 6, 1, 2, 3, 4, 5, 6, 
 
13192
              33,  ISD::SUB,
 
13193
                OPC_MoveChild, 0,
 
13194
                OPC_CheckInteger, 0, 
 
13195
                OPC_MoveParent,
 
13196
                OPC_RecordChild1,
 
13197
                OPC_CheckType, MVT::i32,
 
13198
                OPC_MoveParent,
 
13199
                OPC_RecordChild1,
 
13200
                OPC_CheckPatternPredicate, 5,
 
13201
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
13202
                OPC_EmitInteger, MVT::i32, 14, 
 
13203
                OPC_EmitRegister, MVT::i32, 0 ,
 
13204
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrs), 0|OPFL_FlagOutput,
 
13205
                    0, 6, 1, 2, 3, 4, 5, 6, 
 
13206
              0, 
 
13207
            36, 
 
13208
              OPC_RecordChild0,
 
13209
              OPC_CheckChild0Type, MVT::i32,
 
13210
              OPC_MoveChild, 1,
 
13211
              OPC_CheckOpcode, ISD::SUB,
 
13212
              OPC_MoveChild, 0,
 
13213
              OPC_CheckInteger, 0, 
 
13214
              OPC_MoveParent,
 
13215
              OPC_RecordChild1,
 
13216
              OPC_MoveParent,
 
13217
              OPC_CheckPatternPredicate, 2,
 
13218
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
13219
              OPC_EmitInteger, MVT::i32, 14, 
 
13220
              OPC_EmitRegister, MVT::i32, 0 ,
 
13221
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrs), 0|OPFL_FlagOutput,
 
13222
                  0, 5, 0, 2, 3, 4, 5, 
 
13223
            104|128,1, 
 
13224
              OPC_MoveChild, 0,
 
13225
              OPC_SwitchOpcode , 95,  ISD::AND,
 
13226
                OPC_RecordChild0,
 
13227
                OPC_RecordChild1,
 
13228
                OPC_Scope, 54, 
 
13229
                  OPC_CheckType, MVT::i32,
 
13230
                  OPC_MoveParent,
 
13231
                  OPC_MoveChild, 1,
 
13232
                  OPC_CheckInteger, 0, 
 
13233
                  OPC_MoveParent,
 
13234
                  OPC_CheckPatternPredicate, 2,
 
13235
                  OPC_Scope, 20, 
 
13236
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
13237
                    OPC_EmitInteger, MVT::i32, 14, 
 
13238
                    OPC_EmitRegister, MVT::i32, 0 ,
 
13239
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTrs), 0|OPFL_FlagOutput,
 
13240
                        0, 5, 0, 2, 3, 4, 5, 
 
13241
                  20, 
 
13242
                    OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
13243
                    OPC_EmitInteger, MVT::i32, 14, 
 
13244
                    OPC_EmitRegister, MVT::i32, 0 ,
 
13245
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTrs), 0|OPFL_FlagOutput,
 
13246
                        0, 5, 1, 2, 3, 4, 5, 
 
13247
                  0, 
 
13248
                35, 
 
13249
                  OPC_MoveChild, 1,
 
13250
                  OPC_CheckOpcode, ISD::Constant,
 
13251
                  OPC_CheckPredicate, 5,
 
13252
                  OPC_MoveParent,
 
13253
                  OPC_CheckType, MVT::i32,
 
13254
                  OPC_MoveParent,
 
13255
                  OPC_MoveChild, 1,
 
13256
                  OPC_CheckInteger, 0, 
 
13257
                  OPC_MoveParent,
 
13258
                  OPC_CheckPatternPredicate, 5,
 
13259
                  OPC_EmitConvertToTarget, 1,
 
13260
                  OPC_EmitInteger, MVT::i32, 14, 
 
13261
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13262
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTri), 0|OPFL_FlagOutput,
 
13263
                      0, 4, 0, 2, 3, 4, 
 
13264
                0, 
 
13265
              95,  ISD::XOR,
 
13266
                OPC_RecordChild0,
 
13267
                OPC_RecordChild1,
 
13268
                OPC_Scope, 54, 
 
13269
                  OPC_CheckType, MVT::i32,
 
13270
                  OPC_MoveParent,
 
13271
                  OPC_MoveChild, 1,
 
13272
                  OPC_CheckInteger, 0, 
 
13273
                  OPC_MoveParent,
 
13274
                  OPC_CheckPatternPredicate, 2,
 
13275
                  OPC_Scope, 20, 
 
13276
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
13277
                    OPC_EmitInteger, MVT::i32, 14, 
 
13278
                    OPC_EmitRegister, MVT::i32, 0 ,
 
13279
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQrs), 0|OPFL_FlagOutput,
 
13280
                        0, 5, 0, 2, 3, 4, 5, 
 
13281
                  20, 
 
13282
                    OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
13283
                    OPC_EmitInteger, MVT::i32, 14, 
 
13284
                    OPC_EmitRegister, MVT::i32, 0 ,
 
13285
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQrs), 0|OPFL_FlagOutput,
 
13286
                        0, 5, 1, 2, 3, 4, 5, 
 
13287
                  0, 
 
13288
                35, 
 
13289
                  OPC_MoveChild, 1,
 
13290
                  OPC_CheckOpcode, ISD::Constant,
 
13291
                  OPC_CheckPredicate, 5,
 
13292
                  OPC_MoveParent,
 
13293
                  OPC_CheckType, MVT::i32,
 
13294
                  OPC_MoveParent,
 
13295
                  OPC_MoveChild, 1,
 
13296
                  OPC_CheckInteger, 0, 
 
13297
                  OPC_MoveParent,
 
13298
                  OPC_CheckPatternPredicate, 5,
 
13299
                  OPC_EmitConvertToTarget, 1,
 
13300
                  OPC_EmitInteger, MVT::i32, 14, 
 
13301
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13302
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQri), 0|OPFL_FlagOutput,
 
13303
                      0, 4, 0, 2, 3, 4, 
 
13304
                0, 
 
13305
              32,  ISD::SUB,
 
13306
                OPC_MoveChild, 0,
 
13307
                OPC_CheckInteger, 0, 
 
13308
                OPC_MoveParent,
 
13309
                OPC_RecordChild1,
 
13310
                OPC_CheckType, MVT::i32,
 
13311
                OPC_MoveParent,
 
13312
                OPC_RecordChild1,
 
13313
                OPC_CheckPatternPredicate, 2,
 
13314
                OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
13315
                OPC_EmitInteger, MVT::i32, 14, 
 
13316
                OPC_EmitRegister, MVT::i32, 0 ,
 
13317
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrs), 0|OPFL_FlagOutput,
 
13318
                    0, 5, 1, 2, 3, 4, 5, 
 
13319
              0, 
 
13320
            97, 
 
13321
              OPC_RecordChild0,
 
13322
              OPC_CheckChild0Type, MVT::i32,
 
13323
              OPC_Scope, 24, 
 
13324
                OPC_RecordChild1,
 
13325
                OPC_CheckPatternPredicate, 5,
 
13326
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
13327
                OPC_EmitInteger, MVT::i32, 14, 
 
13328
                OPC_EmitRegister, MVT::i32, 0 ,
 
13329
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzrs), 0|OPFL_FlagOutput,
 
13330
                    0, 6, 0, 2, 3, 4, 5, 6, 
 
13331
              66, 
 
13332
                OPC_MoveChild, 1,
 
13333
                OPC_CheckOpcode, ISD::SUB,
 
13334
                OPC_MoveChild, 0,
 
13335
                OPC_CheckInteger, 0, 
 
13336
                OPC_MoveParent,
 
13337
                OPC_RecordChild1,
 
13338
                OPC_MoveChild, 1,
 
13339
                OPC_CheckOpcode, ISD::Constant,
 
13340
                OPC_Scope, 24, 
 
13341
                  OPC_CheckPredicate, 5,
 
13342
                  OPC_MoveParent,
 
13343
                  OPC_MoveParent,
 
13344
                  OPC_CheckPatternPredicate, 5,
 
13345
                  OPC_EmitConvertToTarget, 1,
 
13346
                  OPC_EmitInteger, MVT::i32, 14, 
 
13347
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13348
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzri), 0|OPFL_FlagOutput,
 
13349
                      0, 4, 0, 2, 3, 4, 
 
13350
                24, 
 
13351
                  OPC_CheckPredicate, 4,
 
13352
                  OPC_MoveParent,
 
13353
                  OPC_MoveParent,
 
13354
                  OPC_CheckPatternPredicate, 2,
 
13355
                  OPC_EmitConvertToTarget, 1,
 
13356
                  OPC_EmitInteger, MVT::i32, 14, 
 
13357
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13358
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzri), 0|OPFL_FlagOutput,
 
13359
                      0, 4, 0, 2, 3, 4, 
 
13360
                0, 
 
13361
              0, 
 
13362
            82, 
 
13363
              OPC_MoveChild, 0,
 
13364
              OPC_SwitchOpcode , 37,  ISD::AND,
 
13365
                OPC_RecordChild0,
 
13366
                OPC_RecordChild1,
 
13367
                OPC_MoveChild, 1,
 
13368
                OPC_CheckOpcode, ISD::Constant,
 
13369
                OPC_CheckPredicate, 4,
 
13370
                OPC_MoveParent,
 
13371
                OPC_CheckType, MVT::i32,
 
13372
                OPC_MoveParent,
 
13373
                OPC_MoveChild, 1,
 
13374
                OPC_CheckInteger, 0, 
 
13375
                OPC_MoveParent,
 
13376
                OPC_CheckPatternPredicate, 2,
 
13377
                OPC_EmitConvertToTarget, 1,
 
13378
                OPC_EmitInteger, MVT::i32, 14, 
 
13379
                OPC_EmitRegister, MVT::i32, 0 ,
 
13380
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTri), 0|OPFL_FlagOutput,
 
13381
                    0, 4, 0, 2, 3, 4, 
 
13382
              37,  ISD::XOR,
 
13383
                OPC_RecordChild0,
 
13384
                OPC_RecordChild1,
 
13385
                OPC_MoveChild, 1,
 
13386
                OPC_CheckOpcode, ISD::Constant,
 
13387
                OPC_CheckPredicate, 4,
 
13388
                OPC_MoveParent,
 
13389
                OPC_CheckType, MVT::i32,
 
13390
                OPC_MoveParent,
 
13391
                OPC_MoveChild, 1,
 
13392
                OPC_CheckInteger, 0, 
 
13393
                OPC_MoveParent,
 
13394
                OPC_CheckPatternPredicate, 2,
 
13395
                OPC_EmitConvertToTarget, 1,
 
13396
                OPC_EmitInteger, MVT::i32, 14, 
 
13397
                OPC_EmitRegister, MVT::i32, 0 ,
 
13398
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQri), 0|OPFL_FlagOutput,
 
13399
                    0, 4, 0, 2, 3, 4, 
 
13400
              0, 
 
13401
            27, 
 
13402
              OPC_RecordChild0,
 
13403
              OPC_CheckChild0Type, MVT::i32,
 
13404
              OPC_RecordChild1,
 
13405
              OPC_CheckPatternPredicate, 5,
 
13406
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
13407
              OPC_EmitInteger, MVT::i32, 14, 
 
13408
              OPC_EmitRegister, MVT::i32, 0 ,
 
13409
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzrs), 0|OPFL_FlagOutput,
 
13410
                  0, 6, 1, 2, 3, 4, 5, 6, 
 
13411
            72, 
 
13412
              OPC_MoveChild, 0,
 
13413
              OPC_CheckOpcode, ISD::SUB,
 
13414
              OPC_MoveChild, 0,
 
13415
              OPC_CheckInteger, 0, 
 
13416
              OPC_MoveParent,
 
13417
              OPC_RecordChild1,
 
13418
              OPC_MoveChild, 1,
 
13419
              OPC_CheckOpcode, ISD::Constant,
 
13420
              OPC_Scope, 27, 
 
13421
                OPC_CheckPredicate, 5,
 
13422
                OPC_MoveParent,
 
13423
                OPC_CheckType, MVT::i32,
 
13424
                OPC_MoveParent,
 
13425
                OPC_RecordChild1,
 
13426
                OPC_CheckPatternPredicate, 5,
 
13427
                OPC_EmitConvertToTarget, 0,
 
13428
                OPC_EmitInteger, MVT::i32, 14, 
 
13429
                OPC_EmitRegister, MVT::i32, 0 ,
 
13430
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzri), 0|OPFL_FlagOutput,
 
13431
                    0, 4, 1, 2, 3, 4, 
 
13432
              27, 
 
13433
                OPC_CheckPredicate, 4,
 
13434
                OPC_MoveParent,
 
13435
                OPC_CheckType, MVT::i32,
 
13436
                OPC_MoveParent,
 
13437
                OPC_RecordChild1,
 
13438
                OPC_CheckPatternPredicate, 2,
 
13439
                OPC_EmitConvertToTarget, 0,
 
13440
                OPC_EmitInteger, MVT::i32, 14, 
 
13441
                OPC_EmitRegister, MVT::i32, 0 ,
 
13442
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzri), 0|OPFL_FlagOutput,
 
13443
                    0, 4, 1, 2, 3, 4, 
 
13444
              0, 
 
13445
            50, 
 
13446
              OPC_RecordChild0,
 
13447
              OPC_CheckChild0Type, MVT::i32,
 
13448
              OPC_RecordChild1,
 
13449
              OPC_CheckPatternPredicate, 2,
 
13450
              OPC_Scope, 20, 
 
13451
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
13452
                OPC_EmitInteger, MVT::i32, 14, 
 
13453
                OPC_EmitRegister, MVT::i32, 0 ,
 
13454
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzrs), 0|OPFL_FlagOutput,
 
13455
                    0, 5, 0, 2, 3, 4, 5, 
 
13456
              20, 
 
13457
                OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
13458
                OPC_EmitInteger, MVT::i32, 14, 
 
13459
                OPC_EmitRegister, MVT::i32, 0 ,
 
13460
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzrs), 0|OPFL_FlagOutput,
 
13461
                    0, 5, 1, 2, 3, 4, 5, 
 
13462
              0, 
 
13463
            64, 
 
13464
              OPC_MoveChild, 0,
 
13465
              OPC_SwitchOpcode , 28,  ISD::AND,
 
13466
                OPC_RecordChild0,
 
13467
                OPC_RecordChild1,
 
13468
                OPC_CheckType, MVT::i32,
 
13469
                OPC_MoveParent,
 
13470
                OPC_MoveChild, 1,
 
13471
                OPC_CheckInteger, 0, 
 
13472
                OPC_MoveParent,
 
13473
                OPC_CheckPatternPredicate, 5,
 
13474
                OPC_EmitInteger, MVT::i32, 14, 
 
13475
                OPC_EmitRegister, MVT::i32, 0 ,
 
13476
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::TSTrr), 0|OPFL_FlagOutput,
 
13477
                    0, 4, 0, 1, 2, 3, 
 
13478
              28,  ISD::XOR,
 
13479
                OPC_RecordChild0,
 
13480
                OPC_RecordChild1,
 
13481
                OPC_CheckType, MVT::i32,
 
13482
                OPC_MoveParent,
 
13483
                OPC_MoveChild, 1,
 
13484
                OPC_CheckInteger, 0, 
 
13485
                OPC_MoveParent,
 
13486
                OPC_CheckPatternPredicate, 5,
 
13487
                OPC_EmitInteger, MVT::i32, 14, 
 
13488
                OPC_EmitRegister, MVT::i32, 0 ,
 
13489
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::TEQrr), 0|OPFL_FlagOutput,
 
13490
                    0, 4, 0, 1, 2, 3, 
 
13491
              0, 
 
13492
            54, 
 
13493
              OPC_RecordChild0,
 
13494
              OPC_CheckChild0Type, MVT::i32,
 
13495
              OPC_MoveChild, 1,
 
13496
              OPC_CheckOpcode, ISD::SUB,
 
13497
              OPC_MoveChild, 0,
 
13498
              OPC_CheckInteger, 0, 
 
13499
              OPC_MoveParent,
 
13500
              OPC_RecordChild1,
 
13501
              OPC_MoveParent,
 
13502
              OPC_Scope, 18, 
 
13503
                OPC_CheckPatternPredicate, 5,
 
13504
                OPC_EmitInteger, MVT::i32, 14, 
 
13505
                OPC_EmitRegister, MVT::i32, 0 ,
 
13506
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrr), 0|OPFL_FlagOutput,
 
13507
                    0, 4, 0, 1, 2, 3, 
 
13508
              18, 
 
13509
                OPC_CheckPatternPredicate, 6,
 
13510
                OPC_EmitInteger, MVT::i32, 14, 
 
13511
                OPC_EmitRegister, MVT::i32, 0 ,
 
13512
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMNz), 0|OPFL_FlagOutput,
 
13513
                    0, 4, 0, 1, 2, 3, 
 
13514
              0, 
 
13515
            32, 
 
13516
              OPC_MoveChild, 0,
 
13517
              OPC_CheckOpcode, ISD::AND,
 
13518
              OPC_RecordChild0,
 
13519
              OPC_RecordChild1,
 
13520
              OPC_CheckType, MVT::i32,
 
13521
              OPC_MoveParent,
 
13522
              OPC_MoveChild, 1,
 
13523
              OPC_CheckInteger, 0, 
 
13524
              OPC_MoveParent,
 
13525
              OPC_CheckPatternPredicate, 6,
 
13526
              OPC_EmitInteger, MVT::i32, 14, 
 
13527
              OPC_EmitRegister, MVT::i32, 0 ,
 
13528
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tTST), 0|OPFL_FlagOutput,
 
13529
                  0, 4, 0, 1, 2, 3, 
 
13530
            32, 
 
13531
              OPC_RecordChild0,
 
13532
              OPC_CheckChild0Type, MVT::i32,
 
13533
              OPC_MoveChild, 1,
 
13534
              OPC_CheckOpcode, ISD::SUB,
 
13535
              OPC_MoveChild, 0,
 
13536
              OPC_CheckInteger, 0, 
 
13537
              OPC_MoveParent,
 
13538
              OPC_RecordChild1,
 
13539
              OPC_MoveParent,
 
13540
              OPC_CheckPatternPredicate, 2,
 
13541
              OPC_EmitInteger, MVT::i32, 14, 
 
13542
              OPC_EmitRegister, MVT::i32, 0 ,
 
13543
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrr), 0|OPFL_FlagOutput,
 
13544
                  0, 4, 0, 1, 2, 3, 
 
13545
            7|128,1, 
 
13546
              OPC_MoveChild, 0,
 
13547
              OPC_SwitchOpcode , 28,  ISD::AND,
 
13548
                OPC_RecordChild0,
 
13549
                OPC_RecordChild1,
 
13550
                OPC_CheckType, MVT::i32,
 
13551
                OPC_MoveParent,
 
13552
                OPC_MoveChild, 1,
 
13553
                OPC_CheckInteger, 0, 
 
13554
                OPC_MoveParent,
 
13555
                OPC_CheckPatternPredicate, 2,
 
13556
                OPC_EmitInteger, MVT::i32, 14, 
 
13557
                OPC_EmitRegister, MVT::i32, 0 ,
 
13558
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TSTrr), 0|OPFL_FlagOutput,
 
13559
                    0, 4, 0, 1, 2, 3, 
 
13560
              28,  ISD::XOR,
 
13561
                OPC_RecordChild0,
 
13562
                OPC_RecordChild1,
 
13563
                OPC_CheckType, MVT::i32,
 
13564
                OPC_MoveParent,
 
13565
                OPC_MoveChild, 1,
 
13566
                OPC_CheckInteger, 0, 
 
13567
                OPC_MoveParent,
 
13568
                OPC_CheckPatternPredicate, 2,
 
13569
                OPC_EmitInteger, MVT::i32, 14, 
 
13570
                OPC_EmitRegister, MVT::i32, 0 ,
 
13571
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TEQrr), 0|OPFL_FlagOutput,
 
13572
                    0, 4, 0, 1, 2, 3, 
 
13573
              69,  ISD::SUB,
 
13574
                OPC_MoveChild, 0,
 
13575
                OPC_CheckInteger, 0, 
 
13576
                OPC_MoveParent,
 
13577
                OPC_RecordChild1,
 
13578
                OPC_CheckType, MVT::i32,
 
13579
                OPC_MoveParent,
 
13580
                OPC_RecordChild1,
 
13581
                OPC_Scope, 18, 
 
13582
                  OPC_CheckPatternPredicate, 5,
 
13583
                  OPC_EmitInteger, MVT::i32, 14, 
 
13584
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13585
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzrr), 0|OPFL_FlagOutput,
 
13586
                      0, 4, 1, 0, 2, 3, 
 
13587
                18, 
 
13588
                  OPC_CheckPatternPredicate, 6,
 
13589
                  OPC_EmitInteger, MVT::i32, 14, 
 
13590
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13591
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMNz), 0|OPFL_FlagOutput,
 
13592
                      0, 4, 1, 0, 2, 3, 
 
13593
                18, 
 
13594
                  OPC_CheckPatternPredicate, 2,
 
13595
                  OPC_EmitInteger, MVT::i32, 14, 
 
13596
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13597
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzrr), 0|OPFL_FlagOutput,
 
13598
                      0, 4, 1, 0, 2, 3, 
 
13599
                0, 
 
13600
              0, 
 
13601
            69|128,1, 
 
13602
              OPC_RecordChild0,
 
13603
              OPC_CheckChild0Type, MVT::i32,
 
13604
              OPC_RecordChild1,
 
13605
              OPC_Scope, 4|128,1, 
 
13606
                OPC_MoveChild, 1,
 
13607
                OPC_CheckOpcode, ISD::Constant,
 
13608
                OPC_Scope, 23, 
 
13609
                  OPC_CheckPredicate, 5,
 
13610
                  OPC_MoveParent,
 
13611
                  OPC_CheckPatternPredicate, 5,
 
13612
                  OPC_EmitConvertToTarget, 1,
 
13613
                  OPC_EmitInteger, MVT::i32, 14, 
 
13614
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13615
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzri), 0|OPFL_FlagOutput,
 
13616
                      0, 4, 0, 2, 3, 4, 
 
13617
                26, 
 
13618
                  OPC_CheckPredicate, 12,
 
13619
                  OPC_MoveParent,
 
13620
                  OPC_CheckPatternPredicate, 5,
 
13621
                  OPC_EmitConvertToTarget, 1,
 
13622
                  OPC_EmitNodeXForm, 11, 2,
 
13623
                  OPC_EmitInteger, MVT::i32, 14, 
 
13624
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13625
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMNzri), 0|OPFL_FlagOutput,
 
13626
                      0, 4, 0, 3, 4, 5, 
 
13627
                23, 
 
13628
                  OPC_CheckPredicate, 53,
 
13629
                  OPC_MoveParent,
 
13630
                  OPC_CheckPatternPredicate, 6,
 
13631
                  OPC_EmitConvertToTarget, 1,
 
13632
                  OPC_EmitInteger, MVT::i32, 14, 
 
13633
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13634
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPzi8), 0|OPFL_FlagOutput,
 
13635
                      0, 4, 0, 2, 3, 4, 
 
13636
                23, 
 
13637
                  OPC_CheckPredicate, 4,
 
13638
                  OPC_MoveParent,
 
13639
                  OPC_CheckPatternPredicate, 2,
 
13640
                  OPC_EmitConvertToTarget, 1,
 
13641
                  OPC_EmitInteger, MVT::i32, 14, 
 
13642
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13643
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzri), 0|OPFL_FlagOutput,
 
13644
                      0, 4, 0, 2, 3, 4, 
 
13645
                26, 
 
13646
                  OPC_CheckPredicate, 18,
 
13647
                  OPC_MoveParent,
 
13648
                  OPC_CheckPatternPredicate, 2,
 
13649
                  OPC_EmitConvertToTarget, 1,
 
13650
                  OPC_EmitNodeXForm, 12, 2,
 
13651
                  OPC_EmitInteger, MVT::i32, 14, 
 
13652
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13653
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMNzri), 0|OPFL_FlagOutput,
 
13654
                      0, 4, 0, 3, 4, 5, 
 
13655
                0, 
 
13656
              18, 
 
13657
                OPC_CheckPatternPredicate, 5,
 
13658
                OPC_EmitInteger, MVT::i32, 14, 
 
13659
                OPC_EmitRegister, MVT::i32, 0 ,
 
13660
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPzrr), 0|OPFL_FlagOutput,
 
13661
                    0, 4, 0, 1, 2, 3, 
 
13662
              18, 
 
13663
                OPC_CheckPatternPredicate, 6,
 
13664
                OPC_EmitInteger, MVT::i32, 14, 
 
13665
                OPC_EmitRegister, MVT::i32, 0 ,
 
13666
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPzr), 0|OPFL_FlagOutput,
 
13667
                    0, 4, 0, 1, 2, 3, 
 
13668
              18, 
 
13669
                OPC_CheckPatternPredicate, 2,
 
13670
                OPC_EmitInteger, MVT::i32, 14, 
 
13671
                OPC_EmitRegister, MVT::i32, 0 ,
 
13672
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPzrr), 0|OPFL_FlagOutput,
 
13673
                    0, 4, 0, 1, 2, 3, 
 
13674
              0, 
 
13675
            0, 
 
13676
          45|128,2,  ISD::INTRINSIC_W_CHAIN,
 
13677
            OPC_RecordNode,
 
13678
            OPC_MoveChild, 1,
 
13679
            OPC_CheckInteger, 32, 
 
13680
            OPC_MoveParent,
 
13681
            OPC_RecordChild2,
 
13682
            OPC_CheckChild2Type, MVT::i32,
 
13683
            OPC_SwitchType , 27,  MVT::v8i8,
 
13684
              OPC_CheckPatternPredicate, 3,
 
13685
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13686
              OPC_EmitMergeInputChains, 1, 0, 
 
13687
              OPC_EmitInteger, MVT::i32, 14, 
 
13688
              OPC_EmitRegister, MVT::i32, 0 ,
 
13689
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d8), 0|OPFL_Chain,
 
13690
                  1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
 
13691
            27,  MVT::v4i16,
 
13692
              OPC_CheckPatternPredicate, 3,
 
13693
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13694
              OPC_EmitMergeInputChains, 1, 0, 
 
13695
              OPC_EmitInteger, MVT::i32, 14, 
 
13696
              OPC_EmitRegister, MVT::i32, 0 ,
 
13697
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d16), 0|OPFL_Chain,
 
13698
                  1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
 
13699
            27,  MVT::v2i32,
 
13700
              OPC_CheckPatternPredicate, 3,
 
13701
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13702
              OPC_EmitMergeInputChains, 1, 0, 
 
13703
              OPC_EmitInteger, MVT::i32, 14, 
 
13704
              OPC_EmitRegister, MVT::i32, 0 ,
 
13705
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d32), 0|OPFL_Chain,
 
13706
                  1, MVT::v2i32, 6, 2, 3, 4, 5, 6, 7, 
 
13707
            27,  MVT::v2f32,
 
13708
              OPC_CheckPatternPredicate, 3,
 
13709
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13710
              OPC_EmitMergeInputChains, 1, 0, 
 
13711
              OPC_EmitInteger, MVT::i32, 14, 
 
13712
              OPC_EmitRegister, MVT::i32, 0 ,
 
13713
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1df), 0|OPFL_Chain,
 
13714
                  1, MVT::v2f32, 6, 2, 3, 4, 5, 6, 7, 
 
13715
            27,  MVT::v1i64,
 
13716
              OPC_CheckPatternPredicate, 3,
 
13717
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13718
              OPC_EmitMergeInputChains, 1, 0, 
 
13719
              OPC_EmitInteger, MVT::i32, 14, 
 
13720
              OPC_EmitRegister, MVT::i32, 0 ,
 
13721
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1d64), 0|OPFL_Chain,
 
13722
                  1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
 
13723
            27,  MVT::v16i8,
 
13724
              OPC_CheckPatternPredicate, 3,
 
13725
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13726
              OPC_EmitMergeInputChains, 1, 0, 
 
13727
              OPC_EmitInteger, MVT::i32, 14, 
 
13728
              OPC_EmitRegister, MVT::i32, 0 ,
 
13729
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q8), 0|OPFL_Chain,
 
13730
                  1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
 
13731
            27,  MVT::v8i16,
 
13732
              OPC_CheckPatternPredicate, 3,
 
13733
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13734
              OPC_EmitMergeInputChains, 1, 0, 
 
13735
              OPC_EmitInteger, MVT::i32, 14, 
 
13736
              OPC_EmitRegister, MVT::i32, 0 ,
 
13737
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q16), 0|OPFL_Chain,
 
13738
                  1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
 
13739
            27,  MVT::v4i32,
 
13740
              OPC_CheckPatternPredicate, 3,
 
13741
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13742
              OPC_EmitMergeInputChains, 1, 0, 
 
13743
              OPC_EmitInteger, MVT::i32, 14, 
 
13744
              OPC_EmitRegister, MVT::i32, 0 ,
 
13745
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q32), 0|OPFL_Chain,
 
13746
                  1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
 
13747
            27,  MVT::v4f32,
 
13748
              OPC_CheckPatternPredicate, 3,
 
13749
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13750
              OPC_EmitMergeInputChains, 1, 0, 
 
13751
              OPC_EmitInteger, MVT::i32, 14, 
 
13752
              OPC_EmitRegister, MVT::i32, 0 ,
 
13753
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1qf), 0|OPFL_Chain,
 
13754
                  1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7, 
 
13755
            27,  MVT::v2i64,
 
13756
              OPC_CheckPatternPredicate, 3,
 
13757
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13758
              OPC_EmitMergeInputChains, 1, 0, 
 
13759
              OPC_EmitInteger, MVT::i32, 14, 
 
13760
              OPC_EmitRegister, MVT::i32, 0 ,
 
13761
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VLD1q64), 0|OPFL_Chain,
 
13762
                  1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
 
13763
            0, 
 
13764
          56|128,2,  ISD::INTRINSIC_VOID,
 
13765
            OPC_RecordNode,
 
13766
            OPC_MoveChild, 1,
 
13767
            OPC_CheckInteger, 105, 
 
13768
            OPC_MoveParent,
 
13769
            OPC_RecordChild2,
 
13770
            OPC_CheckChild2Type, MVT::i32,
 
13771
            OPC_RecordChild3,
 
13772
            OPC_Scope, 29, 
 
13773
              OPC_CheckChild3Type, MVT::v8i8,
 
13774
              OPC_CheckPatternPredicate, 3,
 
13775
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13776
              OPC_EmitMergeInputChains, 1, 0, 
 
13777
              OPC_EmitInteger, MVT::i32, 14, 
 
13778
              OPC_EmitRegister, MVT::i32, 0 ,
 
13779
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d8), 0|OPFL_Chain,
 
13780
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13781
            29, 
 
13782
              OPC_CheckChild3Type, MVT::v4i16,
 
13783
              OPC_CheckPatternPredicate, 3,
 
13784
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13785
              OPC_EmitMergeInputChains, 1, 0, 
 
13786
              OPC_EmitInteger, MVT::i32, 14, 
 
13787
              OPC_EmitRegister, MVT::i32, 0 ,
 
13788
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d16), 0|OPFL_Chain,
 
13789
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13790
            29, 
 
13791
              OPC_CheckChild3Type, MVT::v2i32,
 
13792
              OPC_CheckPatternPredicate, 3,
 
13793
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13794
              OPC_EmitMergeInputChains, 1, 0, 
 
13795
              OPC_EmitInteger, MVT::i32, 14, 
 
13796
              OPC_EmitRegister, MVT::i32, 0 ,
 
13797
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d32), 0|OPFL_Chain,
 
13798
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13799
            29, 
 
13800
              OPC_CheckChild3Type, MVT::v2f32,
 
13801
              OPC_CheckPatternPredicate, 3,
 
13802
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13803
              OPC_EmitMergeInputChains, 1, 0, 
 
13804
              OPC_EmitInteger, MVT::i32, 14, 
 
13805
              OPC_EmitRegister, MVT::i32, 0 ,
 
13806
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1df), 0|OPFL_Chain,
 
13807
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13808
            29, 
 
13809
              OPC_CheckChild3Type, MVT::v1i64,
 
13810
              OPC_CheckPatternPredicate, 3,
 
13811
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13812
              OPC_EmitMergeInputChains, 1, 0, 
 
13813
              OPC_EmitInteger, MVT::i32, 14, 
 
13814
              OPC_EmitRegister, MVT::i32, 0 ,
 
13815
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1d64), 0|OPFL_Chain,
 
13816
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13817
            29, 
 
13818
              OPC_CheckChild3Type, MVT::v16i8,
 
13819
              OPC_CheckPatternPredicate, 3,
 
13820
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13821
              OPC_EmitMergeInputChains, 1, 0, 
 
13822
              OPC_EmitInteger, MVT::i32, 14, 
 
13823
              OPC_EmitRegister, MVT::i32, 0 ,
 
13824
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q8), 0|OPFL_Chain,
 
13825
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13826
            29, 
 
13827
              OPC_CheckChild3Type, MVT::v8i16,
 
13828
              OPC_CheckPatternPredicate, 3,
 
13829
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13830
              OPC_EmitMergeInputChains, 1, 0, 
 
13831
              OPC_EmitInteger, MVT::i32, 14, 
 
13832
              OPC_EmitRegister, MVT::i32, 0 ,
 
13833
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q16), 0|OPFL_Chain,
 
13834
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13835
            29, 
 
13836
              OPC_CheckChild3Type, MVT::v4i32,
 
13837
              OPC_CheckPatternPredicate, 3,
 
13838
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13839
              OPC_EmitMergeInputChains, 1, 0, 
 
13840
              OPC_EmitInteger, MVT::i32, 14, 
 
13841
              OPC_EmitRegister, MVT::i32, 0 ,
 
13842
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q32), 0|OPFL_Chain,
 
13843
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13844
            29, 
 
13845
              OPC_CheckChild3Type, MVT::v4f32,
 
13846
              OPC_CheckPatternPredicate, 3,
 
13847
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13848
              OPC_EmitMergeInputChains, 1, 0, 
 
13849
              OPC_EmitInteger, MVT::i32, 14, 
 
13850
              OPC_EmitRegister, MVT::i32, 0 ,
 
13851
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1qf), 0|OPFL_Chain,
 
13852
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13853
            29, 
 
13854
              OPC_CheckChild3Type, MVT::v2i64,
 
13855
              OPC_CheckPatternPredicate, 3,
 
13856
              OPC_CheckComplexPat, /*CP*/18, /*#*/1,
 
13857
              OPC_EmitMergeInputChains, 1, 0, 
 
13858
              OPC_EmitInteger, MVT::i32, 14, 
 
13859
              OPC_EmitRegister, MVT::i32, 0 ,
 
13860
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VST1q64), 0|OPFL_Chain,
 
13861
                  0, 7, 3, 4, 5, 6, 2, 7, 8, 
 
13862
            0, 
 
13863
          5|128,7,  ISD::XOR,
 
13864
            OPC_Scope, 55|128,1, 
 
13865
              OPC_RecordChild0,
 
13866
              OPC_Scope, 69, 
 
13867
                OPC_MoveChild, 1,
 
13868
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
13869
                OPC_MoveParent,
 
13870
                OPC_CheckType, MVT::i32,
 
13871
                OPC_Scope, 27, 
 
13872
                  OPC_CheckPatternPredicate, 5,
 
13873
                  OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
13874
                  OPC_EmitInteger, MVT::i32, 14, 
 
13875
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13876
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13877
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::MVNs), 0,
 
13878
                      1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
13879
                22, 
 
13880
                  OPC_CheckPatternPredicate, 2,
 
13881
                  OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
13882
                  OPC_EmitInteger, MVT::i32, 14, 
 
13883
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13884
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNs), 0,
 
13885
                      1, MVT::i32, 4, 1, 2, 3, 4, 
 
13886
                0, 
 
13887
              61, 
 
13888
                OPC_RecordChild1,
 
13889
                OPC_CheckType, MVT::i32,
 
13890
                OPC_CheckPatternPredicate, 5,
 
13891
                OPC_Scope, 26, 
 
13892
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
13893
                  OPC_EmitInteger, MVT::i32, 14, 
 
13894
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13895
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13896
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORrs), 0,
 
13897
                      1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
13898
                26, 
 
13899
                  OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
13900
                  OPC_EmitInteger, MVT::i32, 14, 
 
13901
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13902
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13903
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORrs), 0,
 
13904
                      1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
13905
                0, 
 
13906
              47, 
 
13907
                OPC_MoveChild, 0,
 
13908
                OPC_CheckOpcode, ISD::Constant,
 
13909
                OPC_CheckPredicate, 4,
 
13910
                OPC_MoveParent,
 
13911
                OPC_MoveChild, 1,
 
13912
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
13913
                OPC_MoveParent,
 
13914
                OPC_CheckType, MVT::i32,
 
13915
                OPC_CheckPatternPredicate, 2,
 
13916
                OPC_EmitConvertToTarget, 0,
 
13917
                OPC_EmitInteger, MVT::i32, 14, 
 
13918
                OPC_EmitRegister, MVT::i32, 0 ,
 
13919
                OPC_EmitRegister, MVT::i32, 0 ,
 
13920
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNi), 0,
 
13921
                    1, MVT::i32, 4, 1, 2, 3, 4, 
 
13922
              0, 
 
13923
            48, 
 
13924
              OPC_MoveChild, 0,
 
13925
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
13926
              OPC_MoveParent,
 
13927
              OPC_RecordChild1,
 
13928
              OPC_MoveChild, 1,
 
13929
              OPC_CheckOpcode, ISD::Constant,
 
13930
              OPC_CheckPredicate, 4,
 
13931
              OPC_MoveParent,
 
13932
              OPC_CheckType, MVT::i32,
 
13933
              OPC_CheckPatternPredicate, 2,
 
13934
              OPC_EmitConvertToTarget, 0,
 
13935
              OPC_EmitInteger, MVT::i32, 14, 
 
13936
              OPC_EmitRegister, MVT::i32, 0 ,
 
13937
              OPC_EmitRegister, MVT::i32, 0 ,
 
13938
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNi), 0,
 
13939
                  1, MVT::i32, 4, 1, 2, 3, 4, 
 
13940
            56|128,2, 
 
13941
              OPC_RecordChild0,
 
13942
              OPC_Scope, 59, 
 
13943
                OPC_RecordChild1,
 
13944
                OPC_CheckType, MVT::i32,
 
13945
                OPC_CheckPatternPredicate, 2,
 
13946
                OPC_Scope, 25, 
 
13947
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
13948
                  OPC_EmitInteger, MVT::i32, 14, 
 
13949
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13950
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13951
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORrs), 0,
 
13952
                      1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
13953
                25, 
 
13954
                  OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
13955
                  OPC_EmitInteger, MVT::i32, 14, 
 
13956
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13957
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13958
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORrs), 0,
 
13959
                      1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
13960
                0, 
 
13961
              83, 
 
13962
                OPC_MoveChild, 1,
 
13963
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
 
13964
                OPC_MoveParent,
 
13965
                OPC_CheckType, MVT::i32,
 
13966
                OPC_Scope, 18, 
 
13967
                  OPC_CheckPatternPredicate, 2,
 
13968
                  OPC_EmitInteger, MVT::i32, 14, 
 
13969
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13970
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNr), 0,
 
13971
                      1, MVT::i32, 3, 0, 1, 2, 
 
13972
                22, 
 
13973
                  OPC_CheckPatternPredicate, 5,
 
13974
                  OPC_EmitInteger, MVT::i32, 14, 
 
13975
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13976
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13977
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::MVNr), 0,
 
13978
                      1, MVT::i32, 4, 0, 1, 2, 3, 
 
13979
                22, 
 
13980
                  OPC_CheckPatternPredicate, 6,
 
13981
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
13982
                  OPC_EmitInteger, MVT::i32, 14, 
 
13983
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13984
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMVN), 0,
 
13985
                      1, MVT::i32, 4, 1, 0, 2, 3, 
 
13986
                0, 
 
13987
              69, 
 
13988
                OPC_RecordChild1,
 
13989
                OPC_MoveChild, 1,
 
13990
                OPC_CheckOpcode, ISD::Constant,
 
13991
                OPC_Scope, 30, 
 
13992
                  OPC_CheckPredicate, 5,
 
13993
                  OPC_MoveParent,
 
13994
                  OPC_CheckType, MVT::i32,
 
13995
                  OPC_CheckPatternPredicate, 5,
 
13996
                  OPC_EmitConvertToTarget, 1,
 
13997
                  OPC_EmitInteger, MVT::i32, 14, 
 
13998
                  OPC_EmitRegister, MVT::i32, 0 ,
 
13999
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14000
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORri), 0,
 
14001
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14002
                30, 
 
14003
                  OPC_CheckPredicate, 4,
 
14004
                  OPC_MoveParent,
 
14005
                  OPC_CheckType, MVT::i32,
 
14006
                  OPC_CheckPatternPredicate, 2,
 
14007
                  OPC_EmitConvertToTarget, 1,
 
14008
                  OPC_EmitInteger, MVT::i32, 14, 
 
14009
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14010
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14011
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORri), 0,
 
14012
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14013
                0, 
 
14014
              94, 
 
14015
                OPC_MoveChild, 1,
 
14016
                OPC_SwitchOpcode , 45,  ISD::BUILD_VECTOR,
 
14017
                  OPC_CheckPredicate, 54,
 
14018
                  OPC_MoveParent,
 
14019
                  OPC_SwitchType , 18,  MVT::v2i32,
 
14020
                    OPC_CheckPatternPredicate, 3,
 
14021
                    OPC_EmitInteger, MVT::i32, 14, 
 
14022
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14023
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
 
14024
                        1, MVT::v2i32, 3, 0, 1, 2, 
 
14025
                  18,  MVT::v4i32,
 
14026
                    OPC_CheckPatternPredicate, 3,
 
14027
                    OPC_EmitInteger, MVT::i32, 14, 
 
14028
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14029
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
 
14030
                        1, MVT::v4i32, 3, 0, 1, 2, 
 
14031
                  0, 
 
14032
                41,  ISD::BIT_CONVERT,
 
14033
                  OPC_CheckPredicate, 2,
 
14034
                  OPC_MoveParent,
 
14035
                  OPC_SwitchType , 16,  MVT::v2i32,
 
14036
                    OPC_EmitInteger, MVT::i32, 14, 
 
14037
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14038
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
 
14039
                        1, MVT::v2i32, 3, 0, 1, 2, 
 
14040
                  16,  MVT::v4i32,
 
14041
                    OPC_EmitInteger, MVT::i32, 14, 
 
14042
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14043
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
 
14044
                        1, MVT::v4i32, 3, 0, 1, 2, 
 
14045
                  0, 
 
14046
                0, 
 
14047
              0, 
 
14048
            96, 
 
14049
              OPC_MoveChild, 0,
 
14050
              OPC_SwitchOpcode , 46,  ISD::BUILD_VECTOR,
 
14051
                OPC_CheckPredicate, 54,
 
14052
                OPC_MoveParent,
 
14053
                OPC_RecordChild1,
 
14054
                OPC_SwitchType , 18,  MVT::v2i32,
 
14055
                  OPC_CheckPatternPredicate, 3,
 
14056
                  OPC_EmitInteger, MVT::i32, 14, 
 
14057
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14058
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
 
14059
                      1, MVT::v2i32, 3, 0, 1, 2, 
 
14060
                18,  MVT::v4i32,
 
14061
                  OPC_CheckPatternPredicate, 3,
 
14062
                  OPC_EmitInteger, MVT::i32, 14, 
 
14063
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14064
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
 
14065
                      1, MVT::v4i32, 3, 0, 1, 2, 
 
14066
                0, 
 
14067
              42,  ISD::BIT_CONVERT,
 
14068
                OPC_CheckPredicate, 2,
 
14069
                OPC_MoveParent,
 
14070
                OPC_RecordChild1,
 
14071
                OPC_SwitchType , 16,  MVT::v2i32,
 
14072
                  OPC_EmitInteger, MVT::i32, 14, 
 
14073
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14074
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNd), 0,
 
14075
                      1, MVT::v2i32, 3, 0, 1, 2, 
 
14076
                16,  MVT::v4i32,
 
14077
                  OPC_EmitInteger, MVT::i32, 14, 
 
14078
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14079
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMVNq), 0,
 
14080
                      1, MVT::v4i32, 3, 0, 1, 2, 
 
14081
                0, 
 
14082
              0, 
 
14083
            124|128,1, 
 
14084
              OPC_RecordChild0,
 
14085
              OPC_RecordChild1,
 
14086
              OPC_Scope, 126, 
 
14087
                OPC_MoveChild, 1,
 
14088
                OPC_CheckOpcode, ISD::Constant,
 
14089
                OPC_Scope, 59, 
 
14090
                  OPC_CheckPredicate, 7,
 
14091
                  OPC_MoveParent,
 
14092
                  OPC_CheckType, MVT::i32,
 
14093
                  OPC_CheckPatternPredicate, 5,
 
14094
                  OPC_EmitConvertToTarget, 1,
 
14095
                  OPC_EmitNodeXForm, 2, 2,
 
14096
                  OPC_EmitInteger, MVT::i32, 14, 
 
14097
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14098
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14099
                  OPC_EmitNode, TARGET_OPCODE(ARM::EORri), 0,
 
14100
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
14101
                  OPC_EmitConvertToTarget, 1,
 
14102
                  OPC_EmitNodeXForm, 3, 8,
 
14103
                  OPC_EmitInteger, MVT::i32, 14, 
 
14104
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14105
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14106
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORri), 0,
 
14107
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
14108
                59, 
 
14109
                  OPC_CheckPredicate, 8,
 
14110
                  OPC_MoveParent,
 
14111
                  OPC_CheckType, MVT::i32,
 
14112
                  OPC_CheckPatternPredicate, 2,
 
14113
                  OPC_EmitConvertToTarget, 1,
 
14114
                  OPC_EmitNodeXForm, 4, 2,
 
14115
                  OPC_EmitInteger, MVT::i32, 14, 
 
14116
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14117
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14118
                  OPC_EmitNode, TARGET_OPCODE(ARM::t2EORri), 0,
 
14119
                      1, MVT::i32, 5, 0, 3, 4, 5, 6, 
 
14120
                  OPC_EmitConvertToTarget, 1,
 
14121
                  OPC_EmitNodeXForm, 5, 8,
 
14122
                  OPC_EmitInteger, MVT::i32, 14, 
 
14123
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14124
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14125
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORri), 0,
 
14126
                      1, MVT::i32, 5, 7, 9, 10, 11, 12, 
 
14127
                0, 
 
14128
              76, 
 
14129
                OPC_CheckType, MVT::i32,
 
14130
                OPC_Scope, 23, 
 
14131
                  OPC_CheckPatternPredicate, 5,
 
14132
                  OPC_EmitInteger, MVT::i32, 14, 
 
14133
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14134
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14135
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::EORrr), 0,
 
14136
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14137
                23, 
 
14138
                  OPC_CheckPatternPredicate, 6,
 
14139
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
14140
                  OPC_EmitInteger, MVT::i32, 14, 
 
14141
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14142
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tEOR), 0,
 
14143
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
14144
                23, 
 
14145
                  OPC_CheckPatternPredicate, 2,
 
14146
                  OPC_EmitInteger, MVT::i32, 14, 
 
14147
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14148
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14149
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2EORrr), 0,
 
14150
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14151
                0, 
 
14152
              21, 
 
14153
                OPC_CheckType, MVT::v2i32,
 
14154
                OPC_CheckPatternPredicate, 3,
 
14155
                OPC_EmitInteger, MVT::i32, 14, 
 
14156
                OPC_EmitRegister, MVT::i32, 0 ,
 
14157
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEORd), 0,
 
14158
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
14159
              21, 
 
14160
                OPC_CheckType, MVT::v4i32,
 
14161
                OPC_CheckPatternPredicate, 3,
 
14162
                OPC_EmitInteger, MVT::i32, 14, 
 
14163
                OPC_EmitRegister, MVT::i32, 0 ,
 
14164
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEORq), 0,
 
14165
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
14166
              0, 
 
14167
            0, 
 
14168
          39|128,4,  ISD::ADDE,
 
14169
            OPC_Scope, 35, 
 
14170
              OPC_CheckPredicate, 55,
 
14171
              OPC_CaptureFlagInput,
 
14172
              OPC_RecordChild0,
 
14173
              OPC_RecordChild1,
 
14174
              OPC_CheckType, MVT::i32,
 
14175
              OPC_CheckPatternPredicate, 5,
 
14176
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
14177
              OPC_EmitInteger, MVT::i32, 14, 
 
14178
              OPC_EmitRegister, MVT::i32, 0 ,
 
14179
              OPC_EmitRegister, MVT::i32, 0 ,
 
14180
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14181
                  1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
14182
            23, 
 
14183
              OPC_CheckPredicate, 56,
 
14184
              OPC_CaptureFlagInput,
 
14185
              OPC_RecordChild0,
 
14186
              OPC_RecordChild1,
 
14187
              OPC_CheckType, MVT::i32,
 
14188
              OPC_CheckPatternPredicate, 5,
 
14189
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
14190
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14191
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
14192
            35, 
 
14193
              OPC_CheckPredicate, 55,
 
14194
              OPC_CaptureFlagInput,
 
14195
              OPC_RecordChild0,
 
14196
              OPC_RecordChild1,
 
14197
              OPC_CheckType, MVT::i32,
 
14198
              OPC_CheckPatternPredicate, 5,
 
14199
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
14200
              OPC_EmitInteger, MVT::i32, 14, 
 
14201
              OPC_EmitRegister, MVT::i32, 0 ,
 
14202
              OPC_EmitRegister, MVT::i32, 0 ,
 
14203
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14204
                  1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
14205
            23, 
 
14206
              OPC_CheckPredicate, 56,
 
14207
              OPC_CaptureFlagInput,
 
14208
              OPC_RecordChild0,
 
14209
              OPC_RecordChild1,
 
14210
              OPC_CheckType, MVT::i32,
 
14211
              OPC_CheckPatternPredicate, 5,
 
14212
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
14213
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14214
                  1, MVT::i32, 4, 1, 2, 3, 4, 
 
14215
            34, 
 
14216
              OPC_CheckPredicate, 55,
 
14217
              OPC_CaptureFlagInput,
 
14218
              OPC_RecordChild0,
 
14219
              OPC_RecordChild1,
 
14220
              OPC_CheckType, MVT::i32,
 
14221
              OPC_CheckPatternPredicate, 2,
 
14222
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
14223
              OPC_EmitInteger, MVT::i32, 14, 
 
14224
              OPC_EmitRegister, MVT::i32, 0 ,
 
14225
              OPC_EmitRegister, MVT::i32, 0 ,
 
14226
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14227
                  1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
14228
            34, 
 
14229
              OPC_CheckPredicate, 56,
 
14230
              OPC_CaptureFlagInput,
 
14231
              OPC_RecordChild0,
 
14232
              OPC_RecordChild1,
 
14233
              OPC_CheckType, MVT::i32,
 
14234
              OPC_CheckPatternPredicate, 2,
 
14235
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
14236
              OPC_EmitInteger, MVT::i32, 14, 
 
14237
              OPC_EmitRegister, MVT::i32, 0 ,
 
14238
              OPC_EmitRegister, MVT::i32, 0 ,
 
14239
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14240
                  1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
14241
            34, 
 
14242
              OPC_CheckPredicate, 55,
 
14243
              OPC_CaptureFlagInput,
 
14244
              OPC_RecordChild0,
 
14245
              OPC_RecordChild1,
 
14246
              OPC_CheckType, MVT::i32,
 
14247
              OPC_CheckPatternPredicate, 2,
 
14248
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
14249
              OPC_EmitInteger, MVT::i32, 14, 
 
14250
              OPC_EmitRegister, MVT::i32, 0 ,
 
14251
              OPC_EmitRegister, MVT::i32, 0 ,
 
14252
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14253
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
14254
            34, 
 
14255
              OPC_CheckPredicate, 56,
 
14256
              OPC_CaptureFlagInput,
 
14257
              OPC_RecordChild0,
 
14258
              OPC_RecordChild1,
 
14259
              OPC_CheckType, MVT::i32,
 
14260
              OPC_CheckPatternPredicate, 2,
 
14261
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
14262
              OPC_EmitInteger, MVT::i32, 14, 
 
14263
              OPC_EmitRegister, MVT::i32, 0 ,
 
14264
              OPC_EmitRegister, MVT::i32, 0 ,
 
14265
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14266
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
14267
            39, 
 
14268
              OPC_CheckPredicate, 55,
 
14269
              OPC_CaptureFlagInput,
 
14270
              OPC_RecordChild0,
 
14271
              OPC_RecordChild1,
 
14272
              OPC_MoveChild, 1,
 
14273
              OPC_CheckOpcode, ISD::Constant,
 
14274
              OPC_CheckPredicate, 5,
 
14275
              OPC_MoveParent,
 
14276
              OPC_CheckType, MVT::i32,
 
14277
              OPC_CheckPatternPredicate, 5,
 
14278
              OPC_EmitConvertToTarget, 1,
 
14279
              OPC_EmitInteger, MVT::i32, 14, 
 
14280
              OPC_EmitRegister, MVT::i32, 0 ,
 
14281
              OPC_EmitRegister, MVT::i32, 0 ,
 
14282
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14283
                  1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14284
            27, 
 
14285
              OPC_CheckPredicate, 56,
 
14286
              OPC_CaptureFlagInput,
 
14287
              OPC_RecordChild0,
 
14288
              OPC_RecordChild1,
 
14289
              OPC_MoveChild, 1,
 
14290
              OPC_CheckOpcode, ISD::Constant,
 
14291
              OPC_CheckPredicate, 5,
 
14292
              OPC_MoveParent,
 
14293
              OPC_CheckType, MVT::i32,
 
14294
              OPC_CheckPatternPredicate, 5,
 
14295
              OPC_EmitConvertToTarget, 1,
 
14296
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14297
                  1, MVT::i32, 2, 0, 2, 
 
14298
            39, 
 
14299
              OPC_CheckPredicate, 55,
 
14300
              OPC_CaptureFlagInput,
 
14301
              OPC_RecordChild0,
 
14302
              OPC_RecordChild1,
 
14303
              OPC_MoveChild, 1,
 
14304
              OPC_CheckOpcode, ISD::Constant,
 
14305
              OPC_CheckPredicate, 4,
 
14306
              OPC_MoveParent,
 
14307
              OPC_CheckType, MVT::i32,
 
14308
              OPC_CheckPatternPredicate, 2,
 
14309
              OPC_EmitConvertToTarget, 1,
 
14310
              OPC_EmitInteger, MVT::i32, 14, 
 
14311
              OPC_EmitRegister, MVT::i32, 0 ,
 
14312
              OPC_EmitRegister, MVT::i32, 0 ,
 
14313
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14314
                  1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14315
            39, 
 
14316
              OPC_CheckPredicate, 56,
 
14317
              OPC_CaptureFlagInput,
 
14318
              OPC_RecordChild0,
 
14319
              OPC_RecordChild1,
 
14320
              OPC_MoveChild, 1,
 
14321
              OPC_CheckOpcode, ISD::Constant,
 
14322
              OPC_CheckPredicate, 4,
 
14323
              OPC_MoveParent,
 
14324
              OPC_CheckType, MVT::i32,
 
14325
              OPC_CheckPatternPredicate, 2,
 
14326
              OPC_EmitConvertToTarget, 1,
 
14327
              OPC_EmitInteger, MVT::i32, 14, 
 
14328
              OPC_EmitRegister, MVT::i32, 0 ,
 
14329
              OPC_EmitRegister, MVT::i32, 0 ,
 
14330
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14331
                  1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14332
            30, 
 
14333
              OPC_CheckPredicate, 55,
 
14334
              OPC_CaptureFlagInput,
 
14335
              OPC_RecordChild0,
 
14336
              OPC_RecordChild1,
 
14337
              OPC_CheckType, MVT::i32,
 
14338
              OPC_CheckPatternPredicate, 5,
 
14339
              OPC_EmitInteger, MVT::i32, 14, 
 
14340
              OPC_EmitRegister, MVT::i32, 0 ,
 
14341
              OPC_EmitRegister, MVT::i32, 0 ,
 
14342
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14343
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14344
            18, 
 
14345
              OPC_CheckPredicate, 56,
 
14346
              OPC_CaptureFlagInput,
 
14347
              OPC_RecordChild0,
 
14348
              OPC_RecordChild1,
 
14349
              OPC_CheckType, MVT::i32,
 
14350
              OPC_CheckPatternPredicate, 5,
 
14351
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADCSSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14352
                  1, MVT::i32, 2, 0, 1, 
 
14353
            30, 
 
14354
              OPC_CheckPredicate, 55,
 
14355
              OPC_CaptureFlagInput,
 
14356
              OPC_RecordChild0,
 
14357
              OPC_RecordChild1,
 
14358
              OPC_CheckType, MVT::i32,
 
14359
              OPC_CheckPatternPredicate, 2,
 
14360
              OPC_EmitInteger, MVT::i32, 14, 
 
14361
              OPC_EmitRegister, MVT::i32, 0 ,
 
14362
              OPC_EmitRegister, MVT::i32, 0 ,
 
14363
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14364
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14365
            30, 
 
14366
              OPC_CheckPredicate, 56,
 
14367
              OPC_CaptureFlagInput,
 
14368
              OPC_RecordChild0,
 
14369
              OPC_RecordChild1,
 
14370
              OPC_CheckType, MVT::i32,
 
14371
              OPC_CheckPatternPredicate, 2,
 
14372
              OPC_EmitInteger, MVT::i32, 14, 
 
14373
              OPC_EmitRegister, MVT::i32, 0 ,
 
14374
              OPC_EmitRegister, MVT::i32, 0 ,
 
14375
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADCSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14376
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14377
            28, 
 
14378
              OPC_CaptureFlagInput,
 
14379
              OPC_RecordChild0,
 
14380
              OPC_RecordChild1,
 
14381
              OPC_CheckType, MVT::i32,
 
14382
              OPC_CheckPatternPredicate, 6,
 
14383
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
14384
              OPC_EmitInteger, MVT::i32, 14, 
 
14385
              OPC_EmitRegister, MVT::i32, 0 ,
 
14386
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADC), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14387
                  1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
14388
            0, 
 
14389
          8|128,4,  ISD::SUBE,
 
14390
            OPC_Scope, 35, 
 
14391
              OPC_CheckPredicate, 57,
 
14392
              OPC_CaptureFlagInput,
 
14393
              OPC_RecordChild0,
 
14394
              OPC_RecordChild1,
 
14395
              OPC_CheckType, MVT::i32,
 
14396
              OPC_CheckPatternPredicate, 5,
 
14397
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
14398
              OPC_EmitInteger, MVT::i32, 14, 
 
14399
              OPC_EmitRegister, MVT::i32, 0 ,
 
14400
              OPC_EmitRegister, MVT::i32, 0 ,
 
14401
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14402
                  1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
14403
            23, 
 
14404
              OPC_CheckPredicate, 58,
 
14405
              OPC_CaptureFlagInput,
 
14406
              OPC_RecordChild0,
 
14407
              OPC_RecordChild1,
 
14408
              OPC_CheckType, MVT::i32,
 
14409
              OPC_CheckPatternPredicate, 5,
 
14410
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
14411
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCSSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14412
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
14413
            81, 
 
14414
              OPC_CheckPredicate, 57,
 
14415
              OPC_CaptureFlagInput,
 
14416
              OPC_RecordChild0,
 
14417
              OPC_RecordChild1,
 
14418
              OPC_CheckType, MVT::i32,
 
14419
              OPC_Scope, 43, 
 
14420
                OPC_CheckPatternPredicate, 5,
 
14421
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
14422
                OPC_Scope, 23, 
 
14423
                  OPC_EmitInteger, MVT::i32, 14, 
 
14424
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14425
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14426
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14427
                      1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
14428
                11, 
 
14429
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14430
                      1, MVT::i32, 4, 1, 2, 3, 4, 
 
14431
                0, 
 
14432
              27, 
 
14433
                OPC_CheckPatternPredicate, 2,
 
14434
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
14435
                OPC_EmitInteger, MVT::i32, 14, 
 
14436
                OPC_EmitRegister, MVT::i32, 0 ,
 
14437
                OPC_EmitRegister, MVT::i32, 0 ,
 
14438
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14439
                    1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
14440
              0, 
 
14441
            34, 
 
14442
              OPC_CheckPredicate, 58,
 
14443
              OPC_CaptureFlagInput,
 
14444
              OPC_RecordChild0,
 
14445
              OPC_RecordChild1,
 
14446
              OPC_CheckType, MVT::i32,
 
14447
              OPC_CheckPatternPredicate, 2,
 
14448
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
14449
              OPC_EmitInteger, MVT::i32, 14, 
 
14450
              OPC_EmitRegister, MVT::i32, 0 ,
 
14451
              OPC_EmitRegister, MVT::i32, 0 ,
 
14452
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCSrs), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14453
                  1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
14454
            39, 
 
14455
              OPC_CheckPredicate, 57,
 
14456
              OPC_CaptureFlagInput,
 
14457
              OPC_RecordChild0,
 
14458
              OPC_RecordChild1,
 
14459
              OPC_MoveChild, 1,
 
14460
              OPC_CheckOpcode, ISD::Constant,
 
14461
              OPC_CheckPredicate, 5,
 
14462
              OPC_MoveParent,
 
14463
              OPC_CheckType, MVT::i32,
 
14464
              OPC_CheckPatternPredicate, 5,
 
14465
              OPC_EmitConvertToTarget, 1,
 
14466
              OPC_EmitInteger, MVT::i32, 14, 
 
14467
              OPC_EmitRegister, MVT::i32, 0 ,
 
14468
              OPC_EmitRegister, MVT::i32, 0 ,
 
14469
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14470
                  1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14471
            27, 
 
14472
              OPC_CheckPredicate, 58,
 
14473
              OPC_CaptureFlagInput,
 
14474
              OPC_RecordChild0,
 
14475
              OPC_RecordChild1,
 
14476
              OPC_MoveChild, 1,
 
14477
              OPC_CheckOpcode, ISD::Constant,
 
14478
              OPC_CheckPredicate, 5,
 
14479
              OPC_MoveParent,
 
14480
              OPC_CheckType, MVT::i32,
 
14481
              OPC_CheckPatternPredicate, 5,
 
14482
              OPC_EmitConvertToTarget, 1,
 
14483
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCSSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14484
                  1, MVT::i32, 2, 0, 2, 
 
14485
            91, 
 
14486
              OPC_CheckPredicate, 57,
 
14487
              OPC_CaptureFlagInput,
 
14488
              OPC_RecordChild0,
 
14489
              OPC_Scope, 48, 
 
14490
                OPC_MoveChild, 0,
 
14491
                OPC_CheckOpcode, ISD::Constant,
 
14492
                OPC_CheckPredicate, 5,
 
14493
                OPC_MoveParent,
 
14494
                OPC_RecordChild1,
 
14495
                OPC_CheckType, MVT::i32,
 
14496
                OPC_CheckPatternPredicate, 5,
 
14497
                OPC_EmitConvertToTarget, 0,
 
14498
                OPC_Scope, 21, 
 
14499
                  OPC_EmitInteger, MVT::i32, 14, 
 
14500
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14501
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14502
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14503
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
14504
                9, 
 
14505
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSCSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14506
                      1, MVT::i32, 2, 1, 2, 
 
14507
                0, 
 
14508
              35, 
 
14509
                OPC_RecordChild1,
 
14510
                OPC_MoveChild, 1,
 
14511
                OPC_CheckOpcode, ISD::Constant,
 
14512
                OPC_CheckPredicate, 4,
 
14513
                OPC_MoveParent,
 
14514
                OPC_CheckType, MVT::i32,
 
14515
                OPC_CheckPatternPredicate, 2,
 
14516
                OPC_EmitConvertToTarget, 1,
 
14517
                OPC_EmitInteger, MVT::i32, 14, 
 
14518
                OPC_EmitRegister, MVT::i32, 0 ,
 
14519
                OPC_EmitRegister, MVT::i32, 0 ,
 
14520
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14521
                    1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14522
              0, 
 
14523
            39, 
 
14524
              OPC_CheckPredicate, 58,
 
14525
              OPC_CaptureFlagInput,
 
14526
              OPC_RecordChild0,
 
14527
              OPC_RecordChild1,
 
14528
              OPC_MoveChild, 1,
 
14529
              OPC_CheckOpcode, ISD::Constant,
 
14530
              OPC_CheckPredicate, 4,
 
14531
              OPC_MoveParent,
 
14532
              OPC_CheckType, MVT::i32,
 
14533
              OPC_CheckPatternPredicate, 2,
 
14534
              OPC_EmitConvertToTarget, 1,
 
14535
              OPC_EmitInteger, MVT::i32, 14, 
 
14536
              OPC_EmitRegister, MVT::i32, 0 ,
 
14537
              OPC_EmitRegister, MVT::i32, 0 ,
 
14538
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCSri), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14539
                  1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14540
            30, 
 
14541
              OPC_CheckPredicate, 57,
 
14542
              OPC_CaptureFlagInput,
 
14543
              OPC_RecordChild0,
 
14544
              OPC_RecordChild1,
 
14545
              OPC_CheckType, MVT::i32,
 
14546
              OPC_CheckPatternPredicate, 5,
 
14547
              OPC_EmitInteger, MVT::i32, 14, 
 
14548
              OPC_EmitRegister, MVT::i32, 0 ,
 
14549
              OPC_EmitRegister, MVT::i32, 0 ,
 
14550
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14551
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14552
            18, 
 
14553
              OPC_CheckPredicate, 58,
 
14554
              OPC_CaptureFlagInput,
 
14555
              OPC_RecordChild0,
 
14556
              OPC_RecordChild1,
 
14557
              OPC_CheckType, MVT::i32,
 
14558
              OPC_CheckPatternPredicate, 5,
 
14559
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SBCSSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14560
                  1, MVT::i32, 2, 0, 1, 
 
14561
            30, 
 
14562
              OPC_CheckPredicate, 57,
 
14563
              OPC_CaptureFlagInput,
 
14564
              OPC_RecordChild0,
 
14565
              OPC_RecordChild1,
 
14566
              OPC_CheckType, MVT::i32,
 
14567
              OPC_CheckPatternPredicate, 2,
 
14568
              OPC_EmitInteger, MVT::i32, 14, 
 
14569
              OPC_EmitRegister, MVT::i32, 0 ,
 
14570
              OPC_EmitRegister, MVT::i32, 0 ,
 
14571
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14572
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14573
            30, 
 
14574
              OPC_CheckPredicate, 58,
 
14575
              OPC_CaptureFlagInput,
 
14576
              OPC_RecordChild0,
 
14577
              OPC_RecordChild1,
 
14578
              OPC_CheckType, MVT::i32,
 
14579
              OPC_CheckPatternPredicate, 2,
 
14580
              OPC_EmitInteger, MVT::i32, 14, 
 
14581
              OPC_EmitRegister, MVT::i32, 0 ,
 
14582
              OPC_EmitRegister, MVT::i32, 0 ,
 
14583
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SBCSrr), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14584
                  1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
14585
            28, 
 
14586
              OPC_CaptureFlagInput,
 
14587
              OPC_RecordChild0,
 
14588
              OPC_RecordChild1,
 
14589
              OPC_CheckType, MVT::i32,
 
14590
              OPC_CheckPatternPredicate, 6,
 
14591
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
14592
              OPC_EmitInteger, MVT::i32, 14, 
 
14593
              OPC_EmitRegister, MVT::i32, 0 ,
 
14594
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSBC), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
14595
                  1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
14596
            0, 
 
14597
          118,  ARMISD::PIC_ADD,
 
14598
            OPC_Scope, 67, 
 
14599
              OPC_MoveChild, 0,
 
14600
              OPC_CheckOpcode, ISD::LOAD,
 
14601
              OPC_CheckPredicate, 25,
 
14602
              OPC_CheckPredicate, 26,
 
14603
              OPC_RecordMemRef,
 
14604
              OPC_RecordNode,
 
14605
              OPC_CheckFoldableChainNode,
 
14606
              OPC_MoveChild, 1,
 
14607
              OPC_CheckOpcode, ARMISD::Wrapper,
 
14608
              OPC_RecordChild0,
 
14609
              OPC_MoveChild, 0,
 
14610
              OPC_CheckOpcode, ISD::TargetConstantPool,
 
14611
              OPC_MoveParent,
 
14612
              OPC_MoveParent,
 
14613
              OPC_MoveParent,
 
14614
              OPC_RecordChild1,
 
14615
              OPC_MoveChild, 1,
 
14616
              OPC_CheckOpcode, ISD::Constant,
 
14617
              OPC_MoveParent,
 
14618
              OPC_CheckType, MVT::i32,
 
14619
              OPC_Scope, 16, 
 
14620
                OPC_CheckPatternPredicate, 6,
 
14621
                OPC_EmitMergeInputChains, 1, 0, 
 
14622
                OPC_EmitConvertToTarget, 2,
 
14623
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLDRpci_pic), 0|OPFL_Chain|OPFL_MemRefs,
 
14624
                    1, MVT::i32, 2, 1, 3, 
 
14625
              16, 
 
14626
                OPC_CheckPatternPredicate, 2,
 
14627
                OPC_EmitMergeInputChains, 1, 0, 
 
14628
                OPC_EmitConvertToTarget, 2,
 
14629
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LDRpci_pic), 0|OPFL_Chain|OPFL_MemRefs,
 
14630
                    1, MVT::i32, 2, 1, 3, 
 
14631
              0, 
 
14632
            47, 
 
14633
              OPC_RecordChild0,
 
14634
              OPC_RecordChild1,
 
14635
              OPC_MoveChild, 1,
 
14636
              OPC_CheckOpcode, ISD::Constant,
 
14637
              OPC_MoveParent,
 
14638
              OPC_CheckType, MVT::i32,
 
14639
              OPC_Scope, 21, 
 
14640
                OPC_CheckPatternPredicate, 5,
 
14641
                OPC_EmitConvertToTarget, 1,
 
14642
                OPC_EmitInteger, MVT::i32, 14, 
 
14643
                OPC_EmitRegister, MVT::i32, 0 ,
 
14644
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::PICADD), 0,
 
14645
                    1, MVT::i32, 4, 0, 2, 3, 4, 
 
14646
              13, 
 
14647
                OPC_CheckPatternPredicate, 9,
 
14648
                OPC_EmitConvertToTarget, 1,
 
14649
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tPICADD), 0,
 
14650
                    1, MVT::i32, 2, 0, 2, 
 
14651
              0, 
 
14652
            0, 
 
14653
          50|128,12,  ISD::SUB,
 
14654
            OPC_Scope, 113|128,4, 
 
14655
              OPC_RecordChild0,
 
14656
              OPC_Scope, 117, 
 
14657
                OPC_RecordChild1,
 
14658
                OPC_CheckType, MVT::i32,
 
14659
                OPC_Scope, 58, 
 
14660
                  OPC_CheckPatternPredicate, 5,
 
14661
                  OPC_Scope, 26, 
 
14662
                    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
14663
                    OPC_EmitInteger, MVT::i32, 14, 
 
14664
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14665
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14666
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBrs), 0,
 
14667
                        1, MVT::i32, 7, 0, 2, 3, 4, 5, 6, 7, 
 
14668
                  26, 
 
14669
                    OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
14670
                    OPC_EmitInteger, MVT::i32, 14, 
 
14671
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14672
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14673
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBrs), 0,
 
14674
                        1, MVT::i32, 7, 1, 2, 3, 4, 5, 6, 7, 
 
14675
                  0, 
 
14676
                52, 
 
14677
                  OPC_CheckPatternPredicate, 2,
 
14678
                  OPC_Scope, 25, 
 
14679
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
14680
                    OPC_EmitInteger, MVT::i32, 14, 
 
14681
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14682
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14683
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBrs), 0,
 
14684
                        1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
14685
                  21, 
 
14686
                    OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
14687
                    OPC_EmitInteger, MVT::i32, 14, 
 
14688
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14689
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBrs), 0,
 
14690
                        1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
14691
                  0, 
 
14692
                0, 
 
14693
              118|128,3, 
 
14694
                OPC_MoveChild, 1,
 
14695
                OPC_CheckOpcode, ISD::MUL,
 
14696
                OPC_Scope, 6|128,1, 
 
14697
                  OPC_RecordChild0,
 
14698
                  OPC_MoveChild, 1,
 
14699
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
14700
                  OPC_RecordChild0,
 
14701
                  OPC_Scope, 62, 
 
14702
                    OPC_CheckChild0Type, MVT::v4i16,
 
14703
                    OPC_RecordChild1,
 
14704
                    OPC_MoveChild, 1,
 
14705
                    OPC_CheckOpcode, ISD::Constant,
 
14706
                    OPC_MoveParent,
 
14707
                    OPC_MoveParent,
 
14708
                    OPC_MoveParent,
 
14709
                    OPC_SwitchType , 23,  MVT::v4i16,
 
14710
                      OPC_CheckPatternPredicate, 3,
 
14711
                      OPC_EmitConvertToTarget, 3,
 
14712
                      OPC_EmitInteger, MVT::i32, 14, 
 
14713
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14714
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i16), 0,
 
14715
                          1, MVT::v4i16, 6, 0, 1, 2, 4, 5, 6, 
 
14716
                    23,  MVT::v8i16,
 
14717
                      OPC_CheckPatternPredicate, 3,
 
14718
                      OPC_EmitConvertToTarget, 3,
 
14719
                      OPC_EmitInteger, MVT::i32, 14, 
 
14720
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14721
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
 
14722
                          1, MVT::v8i16, 6, 0, 1, 2, 4, 5, 6, 
 
14723
                    0, 
 
14724
                  62, 
 
14725
                    OPC_CheckChild0Type, MVT::v2i32,
 
14726
                    OPC_RecordChild1,
 
14727
                    OPC_MoveChild, 1,
 
14728
                    OPC_CheckOpcode, ISD::Constant,
 
14729
                    OPC_MoveParent,
 
14730
                    OPC_MoveParent,
 
14731
                    OPC_MoveParent,
 
14732
                    OPC_SwitchType , 23,  MVT::v2i32,
 
14733
                      OPC_CheckPatternPredicate, 3,
 
14734
                      OPC_EmitConvertToTarget, 3,
 
14735
                      OPC_EmitInteger, MVT::i32, 14, 
 
14736
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14737
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv2i32), 0,
 
14738
                          1, MVT::v2i32, 6, 0, 1, 2, 4, 5, 6, 
 
14739
                    23,  MVT::v4i32,
 
14740
                      OPC_CheckPatternPredicate, 3,
 
14741
                      OPC_EmitConvertToTarget, 3,
 
14742
                      OPC_EmitInteger, MVT::i32, 14, 
 
14743
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14744
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
 
14745
                          1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
14746
                    0, 
 
14747
                  0, 
 
14748
                7|128,1, 
 
14749
                  OPC_MoveChild, 0,
 
14750
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
14751
                  OPC_RecordChild0,
 
14752
                  OPC_Scope, 63, 
 
14753
                    OPC_CheckChild0Type, MVT::v4i16,
 
14754
                    OPC_RecordChild1,
 
14755
                    OPC_MoveChild, 1,
 
14756
                    OPC_CheckOpcode, ISD::Constant,
 
14757
                    OPC_MoveParent,
 
14758
                    OPC_MoveParent,
 
14759
                    OPC_RecordChild1,
 
14760
                    OPC_MoveParent,
 
14761
                    OPC_SwitchType , 23,  MVT::v4i16,
 
14762
                      OPC_CheckPatternPredicate, 3,
 
14763
                      OPC_EmitConvertToTarget, 2,
 
14764
                      OPC_EmitInteger, MVT::i32, 14, 
 
14765
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14766
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i16), 0,
 
14767
                          1, MVT::v4i16, 6, 0, 3, 1, 4, 5, 6, 
 
14768
                    23,  MVT::v8i16,
 
14769
                      OPC_CheckPatternPredicate, 3,
 
14770
                      OPC_EmitConvertToTarget, 2,
 
14771
                      OPC_EmitInteger, MVT::i32, 14, 
 
14772
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14773
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
 
14774
                          1, MVT::v8i16, 6, 0, 3, 1, 4, 5, 6, 
 
14775
                    0, 
 
14776
                  63, 
 
14777
                    OPC_CheckChild0Type, MVT::v2i32,
 
14778
                    OPC_RecordChild1,
 
14779
                    OPC_MoveChild, 1,
 
14780
                    OPC_CheckOpcode, ISD::Constant,
 
14781
                    OPC_MoveParent,
 
14782
                    OPC_MoveParent,
 
14783
                    OPC_RecordChild1,
 
14784
                    OPC_MoveParent,
 
14785
                    OPC_SwitchType , 23,  MVT::v2i32,
 
14786
                      OPC_CheckPatternPredicate, 3,
 
14787
                      OPC_EmitConvertToTarget, 2,
 
14788
                      OPC_EmitInteger, MVT::i32, 14, 
 
14789
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14790
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv2i32), 0,
 
14791
                          1, MVT::v2i32, 6, 0, 3, 1, 4, 5, 6, 
 
14792
                    23,  MVT::v4i32,
 
14793
                      OPC_CheckPatternPredicate, 3,
 
14794
                      OPC_EmitConvertToTarget, 2,
 
14795
                      OPC_EmitInteger, MVT::i32, 14, 
 
14796
                      OPC_EmitRegister, MVT::i32, 0 ,
 
14797
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
 
14798
                          1, MVT::v4i32, 6, 0, 3, 1, 4, 5, 6, 
 
14799
                    0, 
 
14800
                  0, 
 
14801
                110, 
 
14802
                  OPC_RecordChild0,
 
14803
                  OPC_MoveChild, 1,
 
14804
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
14805
                  OPC_RecordChild0,
 
14806
                  OPC_Scope, 50, 
 
14807
                    OPC_CheckChild0Type, MVT::v8i16,
 
14808
                    OPC_RecordChild1,
 
14809
                    OPC_MoveChild, 1,
 
14810
                    OPC_CheckOpcode, ISD::Constant,
 
14811
                    OPC_MoveParent,
 
14812
                    OPC_MoveParent,
 
14813
                    OPC_MoveParent,
 
14814
                    OPC_CheckType, MVT::v8i16,
 
14815
                    OPC_EmitConvertToTarget, 3,
 
14816
                    OPC_EmitNodeXForm, 6, 4,
 
14817
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
14818
                        1, MVT::v4i16, 2, 2, 5, 
 
14819
                    OPC_EmitConvertToTarget, 3,
 
14820
                    OPC_EmitNodeXForm, 7, 7,
 
14821
                    OPC_EmitInteger, MVT::i32, 14, 
 
14822
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14823
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
 
14824
                        1, MVT::v8i16, 6, 0, 1, 6, 8, 9, 10, 
 
14825
                  50, 
 
14826
                    OPC_CheckChild0Type, MVT::v4i32,
 
14827
                    OPC_RecordChild1,
 
14828
                    OPC_MoveChild, 1,
 
14829
                    OPC_CheckOpcode, ISD::Constant,
 
14830
                    OPC_MoveParent,
 
14831
                    OPC_MoveParent,
 
14832
                    OPC_MoveParent,
 
14833
                    OPC_CheckType, MVT::v4i32,
 
14834
                    OPC_EmitConvertToTarget, 3,
 
14835
                    OPC_EmitNodeXForm, 8, 4,
 
14836
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
14837
                        1, MVT::v2i32, 2, 2, 5, 
 
14838
                    OPC_EmitConvertToTarget, 3,
 
14839
                    OPC_EmitNodeXForm, 9, 7,
 
14840
                    OPC_EmitInteger, MVT::i32, 14, 
 
14841
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14842
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
 
14843
                        1, MVT::v4i32, 6, 0, 1, 6, 8, 9, 10, 
 
14844
                  0, 
 
14845
                111, 
 
14846
                  OPC_MoveChild, 0,
 
14847
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
14848
                  OPC_RecordChild0,
 
14849
                  OPC_Scope, 51, 
 
14850
                    OPC_CheckChild0Type, MVT::v8i16,
 
14851
                    OPC_RecordChild1,
 
14852
                    OPC_MoveChild, 1,
 
14853
                    OPC_CheckOpcode, ISD::Constant,
 
14854
                    OPC_MoveParent,
 
14855
                    OPC_MoveParent,
 
14856
                    OPC_RecordChild1,
 
14857
                    OPC_MoveParent,
 
14858
                    OPC_CheckType, MVT::v8i16,
 
14859
                    OPC_EmitConvertToTarget, 2,
 
14860
                    OPC_EmitNodeXForm, 6, 4,
 
14861
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
14862
                        1, MVT::v4i16, 2, 1, 5, 
 
14863
                    OPC_EmitConvertToTarget, 2,
 
14864
                    OPC_EmitNodeXForm, 7, 7,
 
14865
                    OPC_EmitInteger, MVT::i32, 14, 
 
14866
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14867
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv8i16), 0,
 
14868
                        1, MVT::v8i16, 6, 0, 3, 6, 8, 9, 10, 
 
14869
                  51, 
 
14870
                    OPC_CheckChild0Type, MVT::v4i32,
 
14871
                    OPC_RecordChild1,
 
14872
                    OPC_MoveChild, 1,
 
14873
                    OPC_CheckOpcode, ISD::Constant,
 
14874
                    OPC_MoveParent,
 
14875
                    OPC_MoveParent,
 
14876
                    OPC_RecordChild1,
 
14877
                    OPC_MoveParent,
 
14878
                    OPC_CheckType, MVT::v4i32,
 
14879
                    OPC_EmitConvertToTarget, 2,
 
14880
                    OPC_EmitNodeXForm, 8, 4,
 
14881
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
14882
                        1, MVT::v2i32, 2, 1, 5, 
 
14883
                    OPC_EmitConvertToTarget, 2,
 
14884
                    OPC_EmitNodeXForm, 9, 7,
 
14885
                    OPC_EmitInteger, MVT::i32, 14, 
 
14886
                    OPC_EmitRegister, MVT::i32, 0 ,
 
14887
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslv4i32), 0,
 
14888
                        1, MVT::v4i32, 6, 0, 3, 6, 8, 9, 10, 
 
14889
                  0, 
 
14890
                0, 
 
14891
              0, 
 
14892
            30, 
 
14893
              OPC_MoveChild, 0,
 
14894
              OPC_CheckInteger, 0, 
 
14895
              OPC_MoveParent,
 
14896
              OPC_RecordChild1,
 
14897
              OPC_CheckType, MVT::i32,
 
14898
              OPC_CheckPatternPredicate, 6,
 
14899
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
14900
              OPC_EmitInteger, MVT::i32, 14, 
 
14901
              OPC_EmitRegister, MVT::i32, 0 ,
 
14902
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tRSB), 0,
 
14903
                  1, MVT::i32, 4, 1, 0, 2, 3, 
 
14904
            49|128,1, 
 
14905
              OPC_RecordChild0,
 
14906
              OPC_Scope, 35, 
 
14907
                OPC_RecordChild1,
 
14908
                OPC_MoveChild, 1,
 
14909
                OPC_CheckOpcode, ISD::Constant,
 
14910
                OPC_CheckPredicate, 5,
 
14911
                OPC_MoveParent,
 
14912
                OPC_CheckType, MVT::i32,
 
14913
                OPC_CheckPatternPredicate, 5,
 
14914
                OPC_EmitConvertToTarget, 1,
 
14915
                OPC_EmitInteger, MVT::i32, 14, 
 
14916
                OPC_EmitRegister, MVT::i32, 0 ,
 
14917
                OPC_EmitRegister, MVT::i32, 0 ,
 
14918
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBri), 0,
 
14919
                    1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14920
              35, 
 
14921
                OPC_MoveChild, 0,
 
14922
                OPC_CheckOpcode, ISD::Constant,
 
14923
                OPC_CheckPredicate, 5,
 
14924
                OPC_MoveParent,
 
14925
                OPC_RecordChild1,
 
14926
                OPC_CheckType, MVT::i32,
 
14927
                OPC_CheckPatternPredicate, 5,
 
14928
                OPC_EmitConvertToTarget, 0,
 
14929
                OPC_EmitInteger, MVT::i32, 14, 
 
14930
                OPC_EmitRegister, MVT::i32, 0 ,
 
14931
                OPC_EmitRegister, MVT::i32, 0 ,
 
14932
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBri), 0,
 
14933
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
14934
              69, 
 
14935
                OPC_RecordChild1,
 
14936
                OPC_MoveChild, 1,
 
14937
                OPC_CheckOpcode, ISD::Constant,
 
14938
                OPC_Scope, 30, 
 
14939
                  OPC_CheckPredicate, 4,
 
14940
                  OPC_MoveParent,
 
14941
                  OPC_CheckType, MVT::i32,
 
14942
                  OPC_CheckPatternPredicate, 2,
 
14943
                  OPC_EmitConvertToTarget, 1,
 
14944
                  OPC_EmitInteger, MVT::i32, 14, 
 
14945
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14946
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14947
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri), 0,
 
14948
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14949
                30, 
 
14950
                  OPC_CheckPredicate, 17,
 
14951
                  OPC_MoveParent,
 
14952
                  OPC_CheckType, MVT::i32,
 
14953
                  OPC_CheckPatternPredicate, 2,
 
14954
                  OPC_EmitConvertToTarget, 1,
 
14955
                  OPC_EmitInteger, MVT::i32, 14, 
 
14956
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14957
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14958
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBri12), 0,
 
14959
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
14960
                0, 
 
14961
              31, 
 
14962
                OPC_MoveChild, 0,
 
14963
                OPC_CheckOpcode, ISD::Constant,
 
14964
                OPC_CheckPredicate, 4,
 
14965
                OPC_MoveParent,
 
14966
                OPC_RecordChild1,
 
14967
                OPC_CheckType, MVT::i32,
 
14968
                OPC_CheckPatternPredicate, 2,
 
14969
                OPC_EmitConvertToTarget, 0,
 
14970
                OPC_EmitInteger, MVT::i32, 14, 
 
14971
                OPC_EmitRegister, MVT::i32, 0 ,
 
14972
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBri), 0,
 
14973
                    1, MVT::i32, 4, 1, 2, 3, 4, 
 
14974
              0, 
 
14975
            120|128,1, 
 
14976
              OPC_MoveChild, 0,
 
14977
              OPC_SwitchOpcode , 126,  ISD::BUILD_VECTOR,
 
14978
                OPC_CheckPredicate, 59,
 
14979
                OPC_MoveParent,
 
14980
                OPC_RecordChild1,
 
14981
                OPC_SwitchType , 18,  MVT::v8i8,
 
14982
                  OPC_CheckPatternPredicate, 3,
 
14983
                  OPC_EmitInteger, MVT::i32, 14, 
 
14984
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14985
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8d), 0,
 
14986
                      1, MVT::v8i8, 3, 0, 1, 2, 
 
14987
                18,  MVT::v4i16,
 
14988
                  OPC_CheckPatternPredicate, 3,
 
14989
                  OPC_EmitInteger, MVT::i32, 14, 
 
14990
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14991
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16d), 0,
 
14992
                      1, MVT::v4i16, 3, 0, 1, 2, 
 
14993
                18,  MVT::v2i32,
 
14994
                  OPC_CheckPatternPredicate, 3,
 
14995
                  OPC_EmitInteger, MVT::i32, 14, 
 
14996
                  OPC_EmitRegister, MVT::i32, 0 ,
 
14997
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32d), 0,
 
14998
                      1, MVT::v2i32, 3, 0, 1, 2, 
 
14999
                18,  MVT::v16i8,
 
15000
                  OPC_CheckPatternPredicate, 3,
 
15001
                  OPC_EmitInteger, MVT::i32, 14, 
 
15002
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15003
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8q), 0,
 
15004
                      1, MVT::v16i8, 3, 0, 1, 2, 
 
15005
                18,  MVT::v8i16,
 
15006
                  OPC_CheckPatternPredicate, 3,
 
15007
                  OPC_EmitInteger, MVT::i32, 14, 
 
15008
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15009
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16q), 0,
 
15010
                      1, MVT::v8i16, 3, 0, 1, 2, 
 
15011
                18,  MVT::v4i32,
 
15012
                  OPC_CheckPatternPredicate, 3,
 
15013
                  OPC_EmitInteger, MVT::i32, 14, 
 
15014
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15015
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32q), 0,
 
15016
                      1, MVT::v4i32, 3, 0, 1, 2, 
 
15017
                0, 
 
15018
              114,  ISD::BIT_CONVERT,
 
15019
                OPC_CheckPredicate, 60,
 
15020
                OPC_MoveParent,
 
15021
                OPC_RecordChild1,
 
15022
                OPC_SwitchType , 16,  MVT::v8i8,
 
15023
                  OPC_EmitInteger, MVT::i32, 14, 
 
15024
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15025
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8d), 0,
 
15026
                      1, MVT::v8i8, 3, 0, 1, 2, 
 
15027
                16,  MVT::v4i16,
 
15028
                  OPC_EmitInteger, MVT::i32, 14, 
 
15029
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15030
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16d), 0,
 
15031
                      1, MVT::v4i16, 3, 0, 1, 2, 
 
15032
                16,  MVT::v2i32,
 
15033
                  OPC_EmitInteger, MVT::i32, 14, 
 
15034
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15035
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32d), 0,
 
15036
                      1, MVT::v2i32, 3, 0, 1, 2, 
 
15037
                16,  MVT::v16i8,
 
15038
                  OPC_EmitInteger, MVT::i32, 14, 
 
15039
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15040
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs8q), 0,
 
15041
                      1, MVT::v16i8, 3, 0, 1, 2, 
 
15042
                16,  MVT::v8i16,
 
15043
                  OPC_EmitInteger, MVT::i32, 14, 
 
15044
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15045
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs16q), 0,
 
15046
                      1, MVT::v8i16, 3, 0, 1, 2, 
 
15047
                16,  MVT::v4i32,
 
15048
                  OPC_EmitInteger, MVT::i32, 14, 
 
15049
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15050
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGs32q), 0,
 
15051
                      1, MVT::v4i32, 3, 0, 1, 2, 
 
15052
                0, 
 
15053
              0, 
 
15054
            111|128,3, 
 
15055
              OPC_RecordChild0,
 
15056
              OPC_Scope, 113|128,1, 
 
15057
                OPC_MoveChild, 1,
 
15058
                OPC_SwitchOpcode , 55|128,1,  ISD::MUL,
 
15059
                  OPC_RecordChild0,
 
15060
                  OPC_RecordChild1,
 
15061
                  OPC_MoveParent,
 
15062
                  OPC_SwitchType , 44,  MVT::i32,
 
15063
                    OPC_Scope, 20, 
 
15064
                      OPC_CheckPatternPredicate, 4,
 
15065
                      OPC_EmitInteger, MVT::i32, 14, 
 
15066
                      OPC_EmitRegister, MVT::i32, 0 ,
 
15067
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::MLS), 0,
 
15068
                          1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
15069
                    20, 
 
15070
                      OPC_CheckPatternPredicate, 2,
 
15071
                      OPC_EmitInteger, MVT::i32, 14, 
 
15072
                      OPC_EmitRegister, MVT::i32, 0 ,
 
15073
                      OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MLS), 0,
 
15074
                          1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
15075
                    0, 
 
15076
                  20,  MVT::v8i8,
 
15077
                    OPC_CheckPatternPredicate, 3,
 
15078
                    OPC_EmitInteger, MVT::i32, 14, 
 
15079
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15080
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv8i8), 0,
 
15081
                        1, MVT::v8i8, 5, 0, 1, 2, 3, 4, 
 
15082
                  20,  MVT::v4i16,
 
15083
                    OPC_CheckPatternPredicate, 3,
 
15084
                    OPC_EmitInteger, MVT::i32, 14, 
 
15085
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15086
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv4i16), 0,
 
15087
                        1, MVT::v4i16, 5, 0, 1, 2, 3, 4, 
 
15088
                  20,  MVT::v2i32,
 
15089
                    OPC_CheckPatternPredicate, 3,
 
15090
                    OPC_EmitInteger, MVT::i32, 14, 
 
15091
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15092
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv2i32), 0,
 
15093
                        1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
15094
                  20,  MVT::v16i8,
 
15095
                    OPC_CheckPatternPredicate, 3,
 
15096
                    OPC_EmitInteger, MVT::i32, 14, 
 
15097
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15098
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv16i8), 0,
 
15099
                        1, MVT::v16i8, 5, 0, 1, 2, 3, 4, 
 
15100
                  20,  MVT::v8i16,
 
15101
                    OPC_CheckPatternPredicate, 3,
 
15102
                    OPC_EmitInteger, MVT::i32, 14, 
 
15103
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15104
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv8i16), 0,
 
15105
                        1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
15106
                  20,  MVT::v4i32,
 
15107
                    OPC_CheckPatternPredicate, 3,
 
15108
                    OPC_EmitInteger, MVT::i32, 14, 
 
15109
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15110
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSv4i32), 0,
 
15111
                        1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
15112
                  0, 
 
15113
                49,  ISD::MULHS,
 
15114
                  OPC_RecordChild0,
 
15115
                  OPC_RecordChild1,
 
15116
                  OPC_MoveParent,
 
15117
                  OPC_CheckType, MVT::i32,
 
15118
                  OPC_Scope, 20, 
 
15119
                    OPC_CheckPatternPredicate, 0,
 
15120
                    OPC_EmitInteger, MVT::i32, 14, 
 
15121
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15122
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMLS), 0,
 
15123
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
15124
                  20, 
 
15125
                    OPC_CheckPatternPredicate, 2,
 
15126
                    OPC_EmitInteger, MVT::i32, 14, 
 
15127
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15128
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMLS), 0,
 
15129
                        1, MVT::i32, 5, 1, 2, 0, 3, 4, 
 
15130
                  0, 
 
15131
                0, 
 
15132
              119|128,1, 
 
15133
                OPC_RecordChild1,
 
15134
                OPC_SwitchType , 74,  MVT::i32,
 
15135
                  OPC_Scope, 23, 
 
15136
                    OPC_CheckPatternPredicate, 5,
 
15137
                    OPC_EmitInteger, MVT::i32, 14, 
 
15138
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15139
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15140
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBrr), 0,
 
15141
                        1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
15142
                  23, 
 
15143
                    OPC_CheckPatternPredicate, 6,
 
15144
                    OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15145
                    OPC_EmitInteger, MVT::i32, 14, 
 
15146
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15147
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBrr), 0,
 
15148
                        1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
15149
                  23, 
 
15150
                    OPC_CheckPatternPredicate, 2,
 
15151
                    OPC_EmitInteger, MVT::i32, 14, 
 
15152
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15153
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15154
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBrr), 0,
 
15155
                        1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
15156
                  0, 
 
15157
                19,  MVT::v8i8,
 
15158
                  OPC_CheckPatternPredicate, 3,
 
15159
                  OPC_EmitInteger, MVT::i32, 14, 
 
15160
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15161
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv8i8), 0,
 
15162
                      1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
15163
                19,  MVT::v4i16,
 
15164
                  OPC_CheckPatternPredicate, 3,
 
15165
                  OPC_EmitInteger, MVT::i32, 14, 
 
15166
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15167
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv4i16), 0,
 
15168
                      1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
15169
                19,  MVT::v2i32,
 
15170
                  OPC_CheckPatternPredicate, 3,
 
15171
                  OPC_EmitInteger, MVT::i32, 14, 
 
15172
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15173
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv2i32), 0,
 
15174
                      1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
15175
                19,  MVT::v16i8,
 
15176
                  OPC_CheckPatternPredicate, 3,
 
15177
                  OPC_EmitInteger, MVT::i32, 14, 
 
15178
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15179
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv16i8), 0,
 
15180
                      1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
15181
                19,  MVT::v8i16,
 
15182
                  OPC_CheckPatternPredicate, 3,
 
15183
                  OPC_EmitInteger, MVT::i32, 14, 
 
15184
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15185
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv8i16), 0,
 
15186
                      1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
15187
                19,  MVT::v4i32,
 
15188
                  OPC_CheckPatternPredicate, 3,
 
15189
                  OPC_EmitInteger, MVT::i32, 14, 
 
15190
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15191
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv4i32), 0,
 
15192
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
15193
                19,  MVT::v1i64,
 
15194
                  OPC_CheckPatternPredicate, 3,
 
15195
                  OPC_EmitInteger, MVT::i32, 14, 
 
15196
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15197
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv1i64), 0,
 
15198
                      1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
15199
                19,  MVT::v2i64,
 
15200
                  OPC_CheckPatternPredicate, 3,
 
15201
                  OPC_EmitInteger, MVT::i32, 14, 
 
15202
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15203
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBv2i64), 0,
 
15204
                      1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
15205
                0, 
 
15206
              0, 
 
15207
            0, 
 
15208
          114|128,2,  ISD::ADDC,
 
15209
            OPC_RecordChild0,
 
15210
            OPC_RecordChild1,
 
15211
            OPC_Scope, 104, 
 
15212
              OPC_CheckType, MVT::i32,
 
15213
              OPC_Scope, 50, 
 
15214
                OPC_CheckPatternPredicate, 5,
 
15215
                OPC_Scope, 22, 
 
15216
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
15217
                  OPC_EmitInteger, MVT::i32, 14, 
 
15218
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15219
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSrs), 0|OPFL_FlagOutput,
 
15220
                      1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
15221
                22, 
 
15222
                  OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
15223
                  OPC_EmitInteger, MVT::i32, 14, 
 
15224
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15225
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSrs), 0|OPFL_FlagOutput,
 
15226
                      1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
15227
                0, 
 
15228
              48, 
 
15229
                OPC_CheckPatternPredicate, 2,
 
15230
                OPC_Scope, 21, 
 
15231
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
15232
                  OPC_EmitInteger, MVT::i32, 14, 
 
15233
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15234
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSrs), 0|OPFL_FlagOutput,
 
15235
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
15236
                21, 
 
15237
                  OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
15238
                  OPC_EmitInteger, MVT::i32, 14, 
 
15239
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15240
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSrs), 0|OPFL_FlagOutput,
 
15241
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
 
15242
                0, 
 
15243
              0, 
 
15244
            62|128,1, 
 
15245
              OPC_MoveChild, 1,
 
15246
              OPC_CheckOpcode, ISD::Constant,
 
15247
              OPC_Scope, 26, 
 
15248
                OPC_CheckPredicate, 5,
 
15249
                OPC_MoveParent,
 
15250
                OPC_CheckType, MVT::i32,
 
15251
                OPC_CheckPatternPredicate, 5,
 
15252
                OPC_EmitConvertToTarget, 1,
 
15253
                OPC_EmitInteger, MVT::i32, 14, 
 
15254
                OPC_EmitRegister, MVT::i32, 0 ,
 
15255
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSri), 0|OPFL_FlagOutput,
 
15256
                    1, MVT::i32, 4, 0, 2, 3, 4, 
 
15257
              30, 
 
15258
                OPC_CheckPredicate, 13,
 
15259
                OPC_MoveParent,
 
15260
                OPC_CheckType, MVT::i32,
 
15261
                OPC_CheckPatternPredicate, 6,
 
15262
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15263
                OPC_EmitConvertToTarget, 1,
 
15264
                OPC_EmitInteger, MVT::i32, 14, 
 
15265
                OPC_EmitRegister, MVT::i32, 0 ,
 
15266
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi3), 0|OPFL_FlagOutput,
 
15267
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
15268
              30, 
 
15269
                OPC_CheckPredicate, 14,
 
15270
                OPC_MoveParent,
 
15271
                OPC_CheckType, MVT::i32,
 
15272
                OPC_CheckPatternPredicate, 6,
 
15273
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15274
                OPC_EmitConvertToTarget, 1,
 
15275
                OPC_EmitInteger, MVT::i32, 14, 
 
15276
                OPC_EmitRegister, MVT::i32, 0 ,
 
15277
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDi8), 0|OPFL_FlagOutput,
 
15278
                    1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
15279
              33, 
 
15280
                OPC_CheckPredicate, 15,
 
15281
                OPC_MoveParent,
 
15282
                OPC_CheckType, MVT::i32,
 
15283
                OPC_CheckPatternPredicate, 6,
 
15284
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15285
                OPC_EmitConvertToTarget, 1,
 
15286
                OPC_EmitNodeXForm, 10, 3,
 
15287
                OPC_EmitInteger, MVT::i32, 14, 
 
15288
                OPC_EmitRegister, MVT::i32, 0 ,
 
15289
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi3), 0|OPFL_FlagOutput,
 
15290
                    1, MVT::i32, 5, 2, 0, 4, 5, 6, 
 
15291
              33, 
 
15292
                OPC_CheckPredicate, 16,
 
15293
                OPC_MoveParent,
 
15294
                OPC_CheckType, MVT::i32,
 
15295
                OPC_CheckPatternPredicate, 6,
 
15296
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15297
                OPC_EmitConvertToTarget, 1,
 
15298
                OPC_EmitNodeXForm, 10, 3,
 
15299
                OPC_EmitInteger, MVT::i32, 14, 
 
15300
                OPC_EmitRegister, MVT::i32, 0 ,
 
15301
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBi8), 0|OPFL_FlagOutput,
 
15302
                    1, MVT::i32, 5, 2, 0, 4, 5, 6, 
 
15303
              26, 
 
15304
                OPC_CheckPredicate, 4,
 
15305
                OPC_MoveParent,
 
15306
                OPC_CheckType, MVT::i32,
 
15307
                OPC_CheckPatternPredicate, 2,
 
15308
                OPC_EmitConvertToTarget, 1,
 
15309
                OPC_EmitInteger, MVT::i32, 14, 
 
15310
                OPC_EmitRegister, MVT::i32, 0 ,
 
15311
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSri), 0|OPFL_FlagOutput,
 
15312
                    1, MVT::i32, 4, 0, 2, 3, 4, 
 
15313
              0, 
 
15314
            68, 
 
15315
              OPC_CheckType, MVT::i32,
 
15316
              OPC_Scope, 19, 
 
15317
                OPC_CheckPatternPredicate, 5,
 
15318
                OPC_EmitInteger, MVT::i32, 14, 
 
15319
                OPC_EmitRegister, MVT::i32, 0 ,
 
15320
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADDSrr), 0|OPFL_FlagOutput,
 
15321
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
15322
              23, 
 
15323
                OPC_CheckPatternPredicate, 6,
 
15324
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15325
                OPC_EmitInteger, MVT::i32, 14, 
 
15326
                OPC_EmitRegister, MVT::i32, 0 ,
 
15327
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADDrr), 0|OPFL_FlagOutput,
 
15328
                    1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
15329
              19, 
 
15330
                OPC_CheckPatternPredicate, 2,
 
15331
                OPC_EmitInteger, MVT::i32, 14, 
 
15332
                OPC_EmitRegister, MVT::i32, 0 ,
 
15333
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2ADDSrr), 0|OPFL_FlagOutput,
 
15334
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
15335
              0, 
 
15336
            0, 
 
15337
          46|128,2,  ISD::SUBC,
 
15338
            OPC_RecordChild0,
 
15339
            OPC_Scope, 7|128,1, 
 
15340
              OPC_RecordChild1,
 
15341
              OPC_Scope, 100, 
 
15342
                OPC_CheckType, MVT::i32,
 
15343
                OPC_Scope, 50, 
 
15344
                  OPC_CheckPatternPredicate, 5,
 
15345
                  OPC_Scope, 22, 
 
15346
                    OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
15347
                    OPC_EmitInteger, MVT::i32, 14, 
 
15348
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15349
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBSrs), 0|OPFL_FlagOutput,
 
15350
                        1, MVT::i32, 6, 0, 2, 3, 4, 5, 6, 
 
15351
                  22, 
 
15352
                    OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
15353
                    OPC_EmitInteger, MVT::i32, 14, 
 
15354
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15355
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBSrs), 0|OPFL_FlagOutput,
 
15356
                        1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
15357
                  0, 
 
15358
                44, 
 
15359
                  OPC_CheckPatternPredicate, 2,
 
15360
                  OPC_Scope, 21, 
 
15361
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
15362
                    OPC_EmitInteger, MVT::i32, 14, 
 
15363
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15364
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBSrs), 0|OPFL_FlagOutput,
 
15365
                        1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
15366
                  17, 
 
15367
                    OPC_CheckComplexPat, /*CP*/0, /*#*/0,
 
15368
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15369
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBSrs), 0|OPFL_FlagOutput,
 
15370
                        1, MVT::i32, 4, 1, 2, 3, 4, 
 
15371
                  0, 
 
15372
                0, 
 
15373
              30, 
 
15374
                OPC_MoveChild, 1,
 
15375
                OPC_CheckOpcode, ISD::Constant,
 
15376
                OPC_CheckPredicate, 5,
 
15377
                OPC_MoveParent,
 
15378
                OPC_CheckType, MVT::i32,
 
15379
                OPC_CheckPatternPredicate, 5,
 
15380
                OPC_EmitConvertToTarget, 1,
 
15381
                OPC_EmitInteger, MVT::i32, 14, 
 
15382
                OPC_EmitRegister, MVT::i32, 0 ,
 
15383
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBSri), 0|OPFL_FlagOutput,
 
15384
                    1, MVT::i32, 4, 0, 2, 3, 4, 
 
15385
              0, 
 
15386
            31, 
 
15387
              OPC_MoveChild, 0,
 
15388
              OPC_CheckOpcode, ISD::Constant,
 
15389
              OPC_CheckPredicate, 5,
 
15390
              OPC_MoveParent,
 
15391
              OPC_RecordChild1,
 
15392
              OPC_CheckType, MVT::i32,
 
15393
              OPC_CheckPatternPredicate, 5,
 
15394
              OPC_EmitConvertToTarget, 0,
 
15395
              OPC_EmitInteger, MVT::i32, 14, 
 
15396
              OPC_EmitRegister, MVT::i32, 0 ,
 
15397
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::RSBSri), 0|OPFL_FlagOutput,
 
15398
                  1, MVT::i32, 4, 1, 2, 3, 4, 
 
15399
            31, 
 
15400
              OPC_RecordChild1,
 
15401
              OPC_MoveChild, 1,
 
15402
              OPC_CheckOpcode, ISD::Constant,
 
15403
              OPC_CheckPredicate, 4,
 
15404
              OPC_MoveParent,
 
15405
              OPC_CheckType, MVT::i32,
 
15406
              OPC_CheckPatternPredicate, 2,
 
15407
              OPC_EmitConvertToTarget, 1,
 
15408
              OPC_EmitInteger, MVT::i32, 14, 
 
15409
              OPC_EmitRegister, MVT::i32, 0 ,
 
15410
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBSri), 0|OPFL_FlagOutput,
 
15411
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
15412
            27, 
 
15413
              OPC_MoveChild, 0,
 
15414
              OPC_CheckOpcode, ISD::Constant,
 
15415
              OPC_CheckPredicate, 4,
 
15416
              OPC_MoveParent,
 
15417
              OPC_RecordChild1,
 
15418
              OPC_CheckType, MVT::i32,
 
15419
              OPC_CheckPatternPredicate, 2,
 
15420
              OPC_EmitConvertToTarget, 0,
 
15421
              OPC_EmitRegister, MVT::i32, 0 ,
 
15422
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RSBSri), 0|OPFL_FlagOutput,
 
15423
                  1, MVT::i32, 3, 1, 2, 3, 
 
15424
            69, 
 
15425
              OPC_RecordChild1,
 
15426
              OPC_CheckType, MVT::i32,
 
15427
              OPC_Scope, 19, 
 
15428
                OPC_CheckPatternPredicate, 5,
 
15429
                OPC_EmitInteger, MVT::i32, 14, 
 
15430
                OPC_EmitRegister, MVT::i32, 0 ,
 
15431
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::SUBSrr), 0|OPFL_FlagOutput,
 
15432
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
15433
              23, 
 
15434
                OPC_CheckPatternPredicate, 6,
 
15435
                OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
15436
                OPC_EmitInteger, MVT::i32, 14, 
 
15437
                OPC_EmitRegister, MVT::i32, 0 ,
 
15438
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tSUBrr), 0|OPFL_FlagOutput,
 
15439
                    1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
15440
              19, 
 
15441
                OPC_CheckPatternPredicate, 2,
 
15442
                OPC_EmitInteger, MVT::i32, 14, 
 
15443
                OPC_EmitRegister, MVT::i32, 0 ,
 
15444
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SUBSrr), 0|OPFL_FlagOutput,
 
15445
                    1, MVT::i32, 4, 0, 1, 2, 3, 
 
15446
              0, 
 
15447
            0, 
 
15448
          61|128,1,  ARMISD::CMP,
 
15449
            OPC_RecordChild0,
 
15450
            OPC_CheckChild0Type, MVT::i32,
 
15451
            OPC_RecordChild1,
 
15452
            OPC_Scope, 23, 
 
15453
              OPC_CheckPatternPredicate, 5,
 
15454
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
 
15455
              OPC_EmitInteger, MVT::i32, 14, 
 
15456
              OPC_EmitRegister, MVT::i32, 0 ,
 
15457
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPrs), 0|OPFL_FlagOutput,
 
15458
                  0, 6, 0, 2, 3, 4, 5, 6, 
 
15459
            22, 
 
15460
              OPC_CheckPatternPredicate, 2,
 
15461
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
 
15462
              OPC_EmitInteger, MVT::i32, 14, 
 
15463
              OPC_EmitRegister, MVT::i32, 0 ,
 
15464
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPrs), 0|OPFL_FlagOutput,
 
15465
                  0, 5, 0, 2, 3, 4, 5, 
 
15466
            78, 
 
15467
              OPC_MoveChild, 1,
 
15468
              OPC_CheckOpcode, ISD::Constant,
 
15469
              OPC_Scope, 23, 
 
15470
                OPC_CheckPredicate, 5,
 
15471
                OPC_MoveParent,
 
15472
                OPC_CheckPatternPredicate, 5,
 
15473
                OPC_EmitConvertToTarget, 1,
 
15474
                OPC_EmitInteger, MVT::i32, 14, 
 
15475
                OPC_EmitRegister, MVT::i32, 0 ,
 
15476
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPri), 0|OPFL_FlagOutput,
 
15477
                    0, 4, 0, 2, 3, 4, 
 
15478
              23, 
 
15479
                OPC_CheckPredicate, 53,
 
15480
                OPC_MoveParent,
 
15481
                OPC_CheckPatternPredicate, 6,
 
15482
                OPC_EmitConvertToTarget, 1,
 
15483
                OPC_EmitInteger, MVT::i32, 14, 
 
15484
                OPC_EmitRegister, MVT::i32, 0 ,
 
15485
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPi8), 0|OPFL_FlagOutput,
 
15486
                    0, 4, 0, 2, 3, 4, 
 
15487
              23, 
 
15488
                OPC_CheckPredicate, 4,
 
15489
                OPC_MoveParent,
 
15490
                OPC_CheckPatternPredicate, 2,
 
15491
                OPC_EmitConvertToTarget, 1,
 
15492
                OPC_EmitInteger, MVT::i32, 14, 
 
15493
                OPC_EmitRegister, MVT::i32, 0 ,
 
15494
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPri), 0|OPFL_FlagOutput,
 
15495
                    0, 4, 0, 2, 3, 4, 
 
15496
              0, 
 
15497
            18, 
 
15498
              OPC_CheckPatternPredicate, 5,
 
15499
              OPC_EmitInteger, MVT::i32, 14, 
 
15500
              OPC_EmitRegister, MVT::i32, 0 ,
 
15501
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::CMPrr), 0|OPFL_FlagOutput,
 
15502
                  0, 4, 0, 1, 2, 3, 
 
15503
            18, 
 
15504
              OPC_CheckPatternPredicate, 6,
 
15505
              OPC_EmitInteger, MVT::i32, 14, 
 
15506
              OPC_EmitRegister, MVT::i32, 0 ,
 
15507
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tCMPr), 0|OPFL_FlagOutput,
 
15508
                  0, 4, 0, 1, 2, 3, 
 
15509
            18, 
 
15510
              OPC_CheckPatternPredicate, 2,
 
15511
              OPC_EmitInteger, MVT::i32, 14, 
 
15512
              OPC_EmitRegister, MVT::i32, 0 ,
 
15513
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CMPrr), 0|OPFL_FlagOutput,
 
15514
                  0, 4, 0, 1, 2, 3, 
 
15515
            0, 
 
15516
          15|128,114,  ISD::INTRINSIC_WO_CHAIN,
 
15517
            OPC_MoveChild, 0,
 
15518
            OPC_Scope, 41|128,5, 
 
15519
              OPC_CheckInteger, 68, 
 
15520
              OPC_MoveParent,
 
15521
              OPC_Scope, 47|128,1, 
 
15522
                OPC_RecordChild1,
 
15523
                OPC_Scope, 42, 
 
15524
                  OPC_CheckChild1Type, MVT::v4i16,
 
15525
                  OPC_MoveChild, 2,
 
15526
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15527
                  OPC_RecordChild0,
 
15528
                  OPC_CheckChild0Type, MVT::v4i16,
 
15529
                  OPC_RecordChild1,
 
15530
                  OPC_MoveChild, 1,
 
15531
                  OPC_CheckOpcode, ISD::Constant,
 
15532
                  OPC_MoveParent,
 
15533
                  OPC_CheckType, MVT::v4i16,
 
15534
                  OPC_MoveParent,
 
15535
                  OPC_CheckType, MVT::v4i16,
 
15536
                  OPC_CheckPatternPredicate, 3,
 
15537
                  OPC_EmitConvertToTarget, 2,
 
15538
                  OPC_EmitInteger, MVT::i32, 14, 
 
15539
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15540
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i16), 0,
 
15541
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
15542
                42, 
 
15543
                  OPC_CheckChild1Type, MVT::v2i32,
 
15544
                  OPC_MoveChild, 2,
 
15545
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15546
                  OPC_RecordChild0,
 
15547
                  OPC_CheckChild0Type, MVT::v2i32,
 
15548
                  OPC_RecordChild1,
 
15549
                  OPC_MoveChild, 1,
 
15550
                  OPC_CheckOpcode, ISD::Constant,
 
15551
                  OPC_MoveParent,
 
15552
                  OPC_CheckType, MVT::v2i32,
 
15553
                  OPC_MoveParent,
 
15554
                  OPC_CheckType, MVT::v2i32,
 
15555
                  OPC_CheckPatternPredicate, 3,
 
15556
                  OPC_EmitConvertToTarget, 2,
 
15557
                  OPC_EmitInteger, MVT::i32, 14, 
 
15558
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15559
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv2i32), 0,
 
15560
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
15561
                42, 
 
15562
                  OPC_CheckChild1Type, MVT::v8i16,
 
15563
                  OPC_MoveChild, 2,
 
15564
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15565
                  OPC_RecordChild0,
 
15566
                  OPC_CheckChild0Type, MVT::v4i16,
 
15567
                  OPC_RecordChild1,
 
15568
                  OPC_MoveChild, 1,
 
15569
                  OPC_CheckOpcode, ISD::Constant,
 
15570
                  OPC_MoveParent,
 
15571
                  OPC_CheckType, MVT::v8i16,
 
15572
                  OPC_MoveParent,
 
15573
                  OPC_CheckType, MVT::v8i16,
 
15574
                  OPC_CheckPatternPredicate, 3,
 
15575
                  OPC_EmitConvertToTarget, 2,
 
15576
                  OPC_EmitInteger, MVT::i32, 14, 
 
15577
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15578
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
 
15579
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
15580
                42, 
 
15581
                  OPC_CheckChild1Type, MVT::v4i32,
 
15582
                  OPC_MoveChild, 2,
 
15583
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15584
                  OPC_RecordChild0,
 
15585
                  OPC_CheckChild0Type, MVT::v2i32,
 
15586
                  OPC_RecordChild1,
 
15587
                  OPC_MoveChild, 1,
 
15588
                  OPC_CheckOpcode, ISD::Constant,
 
15589
                  OPC_MoveParent,
 
15590
                  OPC_CheckType, MVT::v4i32,
 
15591
                  OPC_MoveParent,
 
15592
                  OPC_CheckType, MVT::v4i32,
 
15593
                  OPC_CheckPatternPredicate, 3,
 
15594
                  OPC_EmitConvertToTarget, 2,
 
15595
                  OPC_EmitInteger, MVT::i32, 14, 
 
15596
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15597
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
 
15598
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
15599
                0, 
 
15600
              21|128,1, 
 
15601
                OPC_MoveChild, 1,
 
15602
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15603
                OPC_RecordChild0,
 
15604
                OPC_Scope, 70, 
 
15605
                  OPC_CheckChild0Type, MVT::v4i16,
 
15606
                  OPC_RecordChild1,
 
15607
                  OPC_MoveChild, 1,
 
15608
                  OPC_CheckOpcode, ISD::Constant,
 
15609
                  OPC_MoveParent,
 
15610
                  OPC_SwitchType , 28,  MVT::v4i16,
 
15611
                    OPC_MoveParent,
 
15612
                    OPC_RecordChild2,
 
15613
                    OPC_CheckChild2Type, MVT::v4i16,
 
15614
                    OPC_CheckType, MVT::v4i16,
 
15615
                    OPC_CheckPatternPredicate, 3,
 
15616
                    OPC_EmitConvertToTarget, 1,
 
15617
                    OPC_EmitInteger, MVT::i32, 14, 
 
15618
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15619
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i16), 0,
 
15620
                        1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
15621
                  28,  MVT::v8i16,
 
15622
                    OPC_MoveParent,
 
15623
                    OPC_RecordChild2,
 
15624
                    OPC_CheckChild2Type, MVT::v8i16,
 
15625
                    OPC_CheckType, MVT::v8i16,
 
15626
                    OPC_CheckPatternPredicate, 3,
 
15627
                    OPC_EmitConvertToTarget, 1,
 
15628
                    OPC_EmitInteger, MVT::i32, 14, 
 
15629
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15630
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
 
15631
                        1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
15632
                  0, 
 
15633
                70, 
 
15634
                  OPC_CheckChild0Type, MVT::v2i32,
 
15635
                  OPC_RecordChild1,
 
15636
                  OPC_MoveChild, 1,
 
15637
                  OPC_CheckOpcode, ISD::Constant,
 
15638
                  OPC_MoveParent,
 
15639
                  OPC_SwitchType , 28,  MVT::v2i32,
 
15640
                    OPC_MoveParent,
 
15641
                    OPC_RecordChild2,
 
15642
                    OPC_CheckChild2Type, MVT::v2i32,
 
15643
                    OPC_CheckType, MVT::v2i32,
 
15644
                    OPC_CheckPatternPredicate, 3,
 
15645
                    OPC_EmitConvertToTarget, 1,
 
15646
                    OPC_EmitInteger, MVT::i32, 14, 
 
15647
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15648
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv2i32), 0,
 
15649
                        1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
15650
                  28,  MVT::v4i32,
 
15651
                    OPC_MoveParent,
 
15652
                    OPC_RecordChild2,
 
15653
                    OPC_CheckChild2Type, MVT::v4i32,
 
15654
                    OPC_CheckType, MVT::v4i32,
 
15655
                    OPC_CheckPatternPredicate, 3,
 
15656
                    OPC_EmitConvertToTarget, 1,
 
15657
                    OPC_EmitInteger, MVT::i32, 14, 
 
15658
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15659
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
 
15660
                        1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
15661
                  0, 
 
15662
                0, 
 
15663
              119, 
 
15664
                OPC_RecordChild1,
 
15665
                OPC_Scope, 57, 
 
15666
                  OPC_CheckChild1Type, MVT::v8i16,
 
15667
                  OPC_MoveChild, 2,
 
15668
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15669
                  OPC_RecordChild0,
 
15670
                  OPC_CheckChild0Type, MVT::v8i16,
 
15671
                  OPC_RecordChild1,
 
15672
                  OPC_MoveChild, 1,
 
15673
                  OPC_CheckOpcode, ISD::Constant,
 
15674
                  OPC_MoveParent,
 
15675
                  OPC_CheckType, MVT::v8i16,
 
15676
                  OPC_MoveParent,
 
15677
                  OPC_CheckType, MVT::v8i16,
 
15678
                  OPC_EmitConvertToTarget, 2,
 
15679
                  OPC_EmitNodeXForm, 6, 3,
 
15680
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
15681
                      1, MVT::v4i16, 2, 1, 4, 
 
15682
                  OPC_EmitConvertToTarget, 2,
 
15683
                  OPC_EmitNodeXForm, 7, 6,
 
15684
                  OPC_EmitInteger, MVT::i32, 14, 
 
15685
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15686
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
 
15687
                      1, MVT::v8i16, 5, 0, 5, 7, 8, 9, 
 
15688
                57, 
 
15689
                  OPC_CheckChild1Type, MVT::v4i32,
 
15690
                  OPC_MoveChild, 2,
 
15691
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15692
                  OPC_RecordChild0,
 
15693
                  OPC_CheckChild0Type, MVT::v4i32,
 
15694
                  OPC_RecordChild1,
 
15695
                  OPC_MoveChild, 1,
 
15696
                  OPC_CheckOpcode, ISD::Constant,
 
15697
                  OPC_MoveParent,
 
15698
                  OPC_CheckType, MVT::v4i32,
 
15699
                  OPC_MoveParent,
 
15700
                  OPC_CheckType, MVT::v4i32,
 
15701
                  OPC_EmitConvertToTarget, 2,
 
15702
                  OPC_EmitNodeXForm, 8, 3,
 
15703
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
15704
                      1, MVT::v2i32, 2, 1, 4, 
 
15705
                  OPC_EmitConvertToTarget, 2,
 
15706
                  OPC_EmitNodeXForm, 9, 6,
 
15707
                  OPC_EmitInteger, MVT::i32, 14, 
 
15708
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15709
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
 
15710
                      1, MVT::v4i32, 5, 0, 5, 7, 8, 9, 
 
15711
                0, 
 
15712
              115, 
 
15713
                OPC_MoveChild, 1,
 
15714
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15715
                OPC_RecordChild0,
 
15716
                OPC_Scope, 53, 
 
15717
                  OPC_CheckChild0Type, MVT::v8i16,
 
15718
                  OPC_RecordChild1,
 
15719
                  OPC_MoveChild, 1,
 
15720
                  OPC_CheckOpcode, ISD::Constant,
 
15721
                  OPC_MoveParent,
 
15722
                  OPC_CheckType, MVT::v8i16,
 
15723
                  OPC_MoveParent,
 
15724
                  OPC_RecordChild2,
 
15725
                  OPC_CheckChild2Type, MVT::v8i16,
 
15726
                  OPC_CheckType, MVT::v8i16,
 
15727
                  OPC_EmitConvertToTarget, 1,
 
15728
                  OPC_EmitNodeXForm, 6, 3,
 
15729
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
15730
                      1, MVT::v4i16, 2, 0, 4, 
 
15731
                  OPC_EmitConvertToTarget, 1,
 
15732
                  OPC_EmitNodeXForm, 7, 6,
 
15733
                  OPC_EmitInteger, MVT::i32, 14, 
 
15734
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15735
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv8i16), 0,
 
15736
                      1, MVT::v8i16, 5, 2, 5, 7, 8, 9, 
 
15737
                53, 
 
15738
                  OPC_CheckChild0Type, MVT::v4i32,
 
15739
                  OPC_RecordChild1,
 
15740
                  OPC_MoveChild, 1,
 
15741
                  OPC_CheckOpcode, ISD::Constant,
 
15742
                  OPC_MoveParent,
 
15743
                  OPC_CheckType, MVT::v4i32,
 
15744
                  OPC_MoveParent,
 
15745
                  OPC_RecordChild2,
 
15746
                  OPC_CheckChild2Type, MVT::v4i32,
 
15747
                  OPC_CheckType, MVT::v4i32,
 
15748
                  OPC_EmitConvertToTarget, 1,
 
15749
                  OPC_EmitNodeXForm, 8, 3,
 
15750
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
15751
                      1, MVT::v2i32, 2, 0, 4, 
 
15752
                  OPC_EmitConvertToTarget, 1,
 
15753
                  OPC_EmitNodeXForm, 9, 6,
 
15754
                  OPC_EmitInteger, MVT::i32, 14, 
 
15755
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15756
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHslv4i32), 0,
 
15757
                      1, MVT::v4i32, 5, 2, 5, 7, 8, 9, 
 
15758
                0, 
 
15759
              111, 
 
15760
                OPC_RecordChild1,
 
15761
                OPC_Scope, 26, 
 
15762
                  OPC_CheckChild1Type, MVT::v4i16,
 
15763
                  OPC_RecordChild2,
 
15764
                  OPC_CheckChild2Type, MVT::v4i16,
 
15765
                  OPC_CheckType, MVT::v4i16,
 
15766
                  OPC_CheckPatternPredicate, 3,
 
15767
                  OPC_EmitInteger, MVT::i32, 14, 
 
15768
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15769
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv4i16), 0,
 
15770
                      1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
15771
                26, 
 
15772
                  OPC_CheckChild1Type, MVT::v2i32,
 
15773
                  OPC_RecordChild2,
 
15774
                  OPC_CheckChild2Type, MVT::v2i32,
 
15775
                  OPC_CheckType, MVT::v2i32,
 
15776
                  OPC_CheckPatternPredicate, 3,
 
15777
                  OPC_EmitInteger, MVT::i32, 14, 
 
15778
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15779
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv2i32), 0,
 
15780
                      1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
15781
                26, 
 
15782
                  OPC_CheckChild1Type, MVT::v8i16,
 
15783
                  OPC_RecordChild2,
 
15784
                  OPC_CheckChild2Type, MVT::v8i16,
 
15785
                  OPC_CheckType, MVT::v8i16,
 
15786
                  OPC_CheckPatternPredicate, 3,
 
15787
                  OPC_EmitInteger, MVT::i32, 14, 
 
15788
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15789
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv8i16), 0,
 
15790
                      1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
15791
                26, 
 
15792
                  OPC_CheckChild1Type, MVT::v4i32,
 
15793
                  OPC_RecordChild2,
 
15794
                  OPC_CheckChild2Type, MVT::v4i32,
 
15795
                  OPC_CheckType, MVT::v4i32,
 
15796
                  OPC_CheckPatternPredicate, 3,
 
15797
                  OPC_EmitInteger, MVT::i32, 14, 
 
15798
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15799
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULHv4i32), 0,
 
15800
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
15801
                0, 
 
15802
              0, 
 
15803
            41|128,5, 
 
15804
              OPC_CheckInteger, 74, 
 
15805
              OPC_MoveParent,
 
15806
              OPC_Scope, 47|128,1, 
 
15807
                OPC_RecordChild1,
 
15808
                OPC_Scope, 42, 
 
15809
                  OPC_CheckChild1Type, MVT::v4i16,
 
15810
                  OPC_MoveChild, 2,
 
15811
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15812
                  OPC_RecordChild0,
 
15813
                  OPC_CheckChild0Type, MVT::v4i16,
 
15814
                  OPC_RecordChild1,
 
15815
                  OPC_MoveChild, 1,
 
15816
                  OPC_CheckOpcode, ISD::Constant,
 
15817
                  OPC_MoveParent,
 
15818
                  OPC_CheckType, MVT::v4i16,
 
15819
                  OPC_MoveParent,
 
15820
                  OPC_CheckType, MVT::v4i16,
 
15821
                  OPC_CheckPatternPredicate, 3,
 
15822
                  OPC_EmitConvertToTarget, 2,
 
15823
                  OPC_EmitInteger, MVT::i32, 14, 
 
15824
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15825
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i16), 0,
 
15826
                      1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
15827
                42, 
 
15828
                  OPC_CheckChild1Type, MVT::v2i32,
 
15829
                  OPC_MoveChild, 2,
 
15830
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15831
                  OPC_RecordChild0,
 
15832
                  OPC_CheckChild0Type, MVT::v2i32,
 
15833
                  OPC_RecordChild1,
 
15834
                  OPC_MoveChild, 1,
 
15835
                  OPC_CheckOpcode, ISD::Constant,
 
15836
                  OPC_MoveParent,
 
15837
                  OPC_CheckType, MVT::v2i32,
 
15838
                  OPC_MoveParent,
 
15839
                  OPC_CheckType, MVT::v2i32,
 
15840
                  OPC_CheckPatternPredicate, 3,
 
15841
                  OPC_EmitConvertToTarget, 2,
 
15842
                  OPC_EmitInteger, MVT::i32, 14, 
 
15843
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15844
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv2i32), 0,
 
15845
                      1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
15846
                42, 
 
15847
                  OPC_CheckChild1Type, MVT::v8i16,
 
15848
                  OPC_MoveChild, 2,
 
15849
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15850
                  OPC_RecordChild0,
 
15851
                  OPC_CheckChild0Type, MVT::v4i16,
 
15852
                  OPC_RecordChild1,
 
15853
                  OPC_MoveChild, 1,
 
15854
                  OPC_CheckOpcode, ISD::Constant,
 
15855
                  OPC_MoveParent,
 
15856
                  OPC_CheckType, MVT::v8i16,
 
15857
                  OPC_MoveParent,
 
15858
                  OPC_CheckType, MVT::v8i16,
 
15859
                  OPC_CheckPatternPredicate, 3,
 
15860
                  OPC_EmitConvertToTarget, 2,
 
15861
                  OPC_EmitInteger, MVT::i32, 14, 
 
15862
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15863
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
 
15864
                      1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
15865
                42, 
 
15866
                  OPC_CheckChild1Type, MVT::v4i32,
 
15867
                  OPC_MoveChild, 2,
 
15868
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15869
                  OPC_RecordChild0,
 
15870
                  OPC_CheckChild0Type, MVT::v2i32,
 
15871
                  OPC_RecordChild1,
 
15872
                  OPC_MoveChild, 1,
 
15873
                  OPC_CheckOpcode, ISD::Constant,
 
15874
                  OPC_MoveParent,
 
15875
                  OPC_CheckType, MVT::v4i32,
 
15876
                  OPC_MoveParent,
 
15877
                  OPC_CheckType, MVT::v4i32,
 
15878
                  OPC_CheckPatternPredicate, 3,
 
15879
                  OPC_EmitConvertToTarget, 2,
 
15880
                  OPC_EmitInteger, MVT::i32, 14, 
 
15881
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15882
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
 
15883
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
15884
                0, 
 
15885
              21|128,1, 
 
15886
                OPC_MoveChild, 1,
 
15887
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15888
                OPC_RecordChild0,
 
15889
                OPC_Scope, 70, 
 
15890
                  OPC_CheckChild0Type, MVT::v4i16,
 
15891
                  OPC_RecordChild1,
 
15892
                  OPC_MoveChild, 1,
 
15893
                  OPC_CheckOpcode, ISD::Constant,
 
15894
                  OPC_MoveParent,
 
15895
                  OPC_SwitchType , 28,  MVT::v4i16,
 
15896
                    OPC_MoveParent,
 
15897
                    OPC_RecordChild2,
 
15898
                    OPC_CheckChild2Type, MVT::v4i16,
 
15899
                    OPC_CheckType, MVT::v4i16,
 
15900
                    OPC_CheckPatternPredicate, 3,
 
15901
                    OPC_EmitConvertToTarget, 1,
 
15902
                    OPC_EmitInteger, MVT::i32, 14, 
 
15903
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15904
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i16), 0,
 
15905
                        1, MVT::v4i16, 5, 2, 0, 3, 4, 5, 
 
15906
                  28,  MVT::v8i16,
 
15907
                    OPC_MoveParent,
 
15908
                    OPC_RecordChild2,
 
15909
                    OPC_CheckChild2Type, MVT::v8i16,
 
15910
                    OPC_CheckType, MVT::v8i16,
 
15911
                    OPC_CheckPatternPredicate, 3,
 
15912
                    OPC_EmitConvertToTarget, 1,
 
15913
                    OPC_EmitInteger, MVT::i32, 14, 
 
15914
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15915
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
 
15916
                        1, MVT::v8i16, 5, 2, 0, 3, 4, 5, 
 
15917
                  0, 
 
15918
                70, 
 
15919
                  OPC_CheckChild0Type, MVT::v2i32,
 
15920
                  OPC_RecordChild1,
 
15921
                  OPC_MoveChild, 1,
 
15922
                  OPC_CheckOpcode, ISD::Constant,
 
15923
                  OPC_MoveParent,
 
15924
                  OPC_SwitchType , 28,  MVT::v2i32,
 
15925
                    OPC_MoveParent,
 
15926
                    OPC_RecordChild2,
 
15927
                    OPC_CheckChild2Type, MVT::v2i32,
 
15928
                    OPC_CheckType, MVT::v2i32,
 
15929
                    OPC_CheckPatternPredicate, 3,
 
15930
                    OPC_EmitConvertToTarget, 1,
 
15931
                    OPC_EmitInteger, MVT::i32, 14, 
 
15932
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15933
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv2i32), 0,
 
15934
                        1, MVT::v2i32, 5, 2, 0, 3, 4, 5, 
 
15935
                  28,  MVT::v4i32,
 
15936
                    OPC_MoveParent,
 
15937
                    OPC_RecordChild2,
 
15938
                    OPC_CheckChild2Type, MVT::v4i32,
 
15939
                    OPC_CheckType, MVT::v4i32,
 
15940
                    OPC_CheckPatternPredicate, 3,
 
15941
                    OPC_EmitConvertToTarget, 1,
 
15942
                    OPC_EmitInteger, MVT::i32, 14, 
 
15943
                    OPC_EmitRegister, MVT::i32, 0 ,
 
15944
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
 
15945
                        1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
15946
                  0, 
 
15947
                0, 
 
15948
              119, 
 
15949
                OPC_RecordChild1,
 
15950
                OPC_Scope, 57, 
 
15951
                  OPC_CheckChild1Type, MVT::v8i16,
 
15952
                  OPC_MoveChild, 2,
 
15953
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15954
                  OPC_RecordChild0,
 
15955
                  OPC_CheckChild0Type, MVT::v8i16,
 
15956
                  OPC_RecordChild1,
 
15957
                  OPC_MoveChild, 1,
 
15958
                  OPC_CheckOpcode, ISD::Constant,
 
15959
                  OPC_MoveParent,
 
15960
                  OPC_CheckType, MVT::v8i16,
 
15961
                  OPC_MoveParent,
 
15962
                  OPC_CheckType, MVT::v8i16,
 
15963
                  OPC_EmitConvertToTarget, 2,
 
15964
                  OPC_EmitNodeXForm, 6, 3,
 
15965
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
15966
                      1, MVT::v4i16, 2, 1, 4, 
 
15967
                  OPC_EmitConvertToTarget, 2,
 
15968
                  OPC_EmitNodeXForm, 7, 6,
 
15969
                  OPC_EmitInteger, MVT::i32, 14, 
 
15970
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15971
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
 
15972
                      1, MVT::v8i16, 5, 0, 5, 7, 8, 9, 
 
15973
                57, 
 
15974
                  OPC_CheckChild1Type, MVT::v4i32,
 
15975
                  OPC_MoveChild, 2,
 
15976
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
15977
                  OPC_RecordChild0,
 
15978
                  OPC_CheckChild0Type, MVT::v4i32,
 
15979
                  OPC_RecordChild1,
 
15980
                  OPC_MoveChild, 1,
 
15981
                  OPC_CheckOpcode, ISD::Constant,
 
15982
                  OPC_MoveParent,
 
15983
                  OPC_CheckType, MVT::v4i32,
 
15984
                  OPC_MoveParent,
 
15985
                  OPC_CheckType, MVT::v4i32,
 
15986
                  OPC_EmitConvertToTarget, 2,
 
15987
                  OPC_EmitNodeXForm, 8, 3,
 
15988
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
15989
                      1, MVT::v2i32, 2, 1, 4, 
 
15990
                  OPC_EmitConvertToTarget, 2,
 
15991
                  OPC_EmitNodeXForm, 9, 6,
 
15992
                  OPC_EmitInteger, MVT::i32, 14, 
 
15993
                  OPC_EmitRegister, MVT::i32, 0 ,
 
15994
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
 
15995
                      1, MVT::v4i32, 5, 0, 5, 7, 8, 9, 
 
15996
                0, 
 
15997
              115, 
 
15998
                OPC_MoveChild, 1,
 
15999
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16000
                OPC_RecordChild0,
 
16001
                OPC_Scope, 53, 
 
16002
                  OPC_CheckChild0Type, MVT::v8i16,
 
16003
                  OPC_RecordChild1,
 
16004
                  OPC_MoveChild, 1,
 
16005
                  OPC_CheckOpcode, ISD::Constant,
 
16006
                  OPC_MoveParent,
 
16007
                  OPC_CheckType, MVT::v8i16,
 
16008
                  OPC_MoveParent,
 
16009
                  OPC_RecordChild2,
 
16010
                  OPC_CheckChild2Type, MVT::v8i16,
 
16011
                  OPC_CheckType, MVT::v8i16,
 
16012
                  OPC_EmitConvertToTarget, 1,
 
16013
                  OPC_EmitNodeXForm, 6, 3,
 
16014
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
16015
                      1, MVT::v4i16, 2, 0, 4, 
 
16016
                  OPC_EmitConvertToTarget, 1,
 
16017
                  OPC_EmitNodeXForm, 7, 6,
 
16018
                  OPC_EmitInteger, MVT::i32, 14, 
 
16019
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16020
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv8i16), 0,
 
16021
                      1, MVT::v8i16, 5, 2, 5, 7, 8, 9, 
 
16022
                53, 
 
16023
                  OPC_CheckChild0Type, MVT::v4i32,
 
16024
                  OPC_RecordChild1,
 
16025
                  OPC_MoveChild, 1,
 
16026
                  OPC_CheckOpcode, ISD::Constant,
 
16027
                  OPC_MoveParent,
 
16028
                  OPC_CheckType, MVT::v4i32,
 
16029
                  OPC_MoveParent,
 
16030
                  OPC_RecordChild2,
 
16031
                  OPC_CheckChild2Type, MVT::v4i32,
 
16032
                  OPC_CheckType, MVT::v4i32,
 
16033
                  OPC_EmitConvertToTarget, 1,
 
16034
                  OPC_EmitNodeXForm, 8, 3,
 
16035
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
16036
                      1, MVT::v2i32, 2, 0, 4, 
 
16037
                  OPC_EmitConvertToTarget, 1,
 
16038
                  OPC_EmitNodeXForm, 9, 6,
 
16039
                  OPC_EmitInteger, MVT::i32, 14, 
 
16040
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16041
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHslv4i32), 0,
 
16042
                      1, MVT::v4i32, 5, 2, 5, 7, 8, 9, 
 
16043
                0, 
 
16044
              111, 
 
16045
                OPC_RecordChild1,
 
16046
                OPC_Scope, 26, 
 
16047
                  OPC_CheckChild1Type, MVT::v4i16,
 
16048
                  OPC_RecordChild2,
 
16049
                  OPC_CheckChild2Type, MVT::v4i16,
 
16050
                  OPC_CheckType, MVT::v4i16,
 
16051
                  OPC_CheckPatternPredicate, 3,
 
16052
                  OPC_EmitInteger, MVT::i32, 14, 
 
16053
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16054
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv4i16), 0,
 
16055
                      1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
16056
                26, 
 
16057
                  OPC_CheckChild1Type, MVT::v2i32,
 
16058
                  OPC_RecordChild2,
 
16059
                  OPC_CheckChild2Type, MVT::v2i32,
 
16060
                  OPC_CheckType, MVT::v2i32,
 
16061
                  OPC_CheckPatternPredicate, 3,
 
16062
                  OPC_EmitInteger, MVT::i32, 14, 
 
16063
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16064
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv2i32), 0,
 
16065
                      1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
16066
                26, 
 
16067
                  OPC_CheckChild1Type, MVT::v8i16,
 
16068
                  OPC_RecordChild2,
 
16069
                  OPC_CheckChild2Type, MVT::v8i16,
 
16070
                  OPC_CheckType, MVT::v8i16,
 
16071
                  OPC_CheckPatternPredicate, 3,
 
16072
                  OPC_EmitInteger, MVT::i32, 14, 
 
16073
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16074
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv8i16), 0,
 
16075
                      1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
16076
                26, 
 
16077
                  OPC_CheckChild1Type, MVT::v4i32,
 
16078
                  OPC_RecordChild2,
 
16079
                  OPC_CheckChild2Type, MVT::v4i32,
 
16080
                  OPC_CheckType, MVT::v4i32,
 
16081
                  OPC_CheckPatternPredicate, 3,
 
16082
                  OPC_EmitInteger, MVT::i32, 14, 
 
16083
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16084
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRDMULHv4i32), 0,
 
16085
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
16086
                0, 
 
16087
              0, 
 
16088
            10|128,2, 
 
16089
              OPC_CheckInteger, 51, 
 
16090
              OPC_MoveParent,
 
16091
              OPC_Scope, 89, 
 
16092
                OPC_RecordChild1,
 
16093
                OPC_Scope, 42, 
 
16094
                  OPC_CheckChild1Type, MVT::v4i16,
 
16095
                  OPC_MoveChild, 2,
 
16096
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16097
                  OPC_RecordChild0,
 
16098
                  OPC_CheckChild0Type, MVT::v4i16,
 
16099
                  OPC_RecordChild1,
 
16100
                  OPC_MoveChild, 1,
 
16101
                  OPC_CheckOpcode, ISD::Constant,
 
16102
                  OPC_MoveParent,
 
16103
                  OPC_CheckType, MVT::v4i16,
 
16104
                  OPC_MoveParent,
 
16105
                  OPC_CheckType, MVT::v4i32,
 
16106
                  OPC_CheckPatternPredicate, 3,
 
16107
                  OPC_EmitConvertToTarget, 2,
 
16108
                  OPC_EmitInteger, MVT::i32, 14, 
 
16109
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16110
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv4i16), 0,
 
16111
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
16112
                42, 
 
16113
                  OPC_CheckChild1Type, MVT::v2i32,
 
16114
                  OPC_MoveChild, 2,
 
16115
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16116
                  OPC_RecordChild0,
 
16117
                  OPC_CheckChild0Type, MVT::v2i32,
 
16118
                  OPC_RecordChild1,
 
16119
                  OPC_MoveChild, 1,
 
16120
                  OPC_CheckOpcode, ISD::Constant,
 
16121
                  OPC_MoveParent,
 
16122
                  OPC_CheckType, MVT::v2i32,
 
16123
                  OPC_MoveParent,
 
16124
                  OPC_CheckType, MVT::v2i64,
 
16125
                  OPC_CheckPatternPredicate, 3,
 
16126
                  OPC_EmitConvertToTarget, 2,
 
16127
                  OPC_EmitInteger, MVT::i32, 14, 
 
16128
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16129
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv2i32), 0,
 
16130
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
16131
                0, 
 
16132
              85, 
 
16133
                OPC_MoveChild, 1,
 
16134
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16135
                OPC_RecordChild0,
 
16136
                OPC_Scope, 38, 
 
16137
                  OPC_CheckChild0Type, MVT::v4i16,
 
16138
                  OPC_RecordChild1,
 
16139
                  OPC_MoveChild, 1,
 
16140
                  OPC_CheckOpcode, ISD::Constant,
 
16141
                  OPC_MoveParent,
 
16142
                  OPC_CheckType, MVT::v4i16,
 
16143
                  OPC_MoveParent,
 
16144
                  OPC_RecordChild2,
 
16145
                  OPC_CheckChild2Type, MVT::v4i16,
 
16146
                  OPC_CheckType, MVT::v4i32,
 
16147
                  OPC_CheckPatternPredicate, 3,
 
16148
                  OPC_EmitConvertToTarget, 1,
 
16149
                  OPC_EmitInteger, MVT::i32, 14, 
 
16150
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16151
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv4i16), 0,
 
16152
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
16153
                38, 
 
16154
                  OPC_CheckChild0Type, MVT::v2i32,
 
16155
                  OPC_RecordChild1,
 
16156
                  OPC_MoveChild, 1,
 
16157
                  OPC_CheckOpcode, ISD::Constant,
 
16158
                  OPC_MoveParent,
 
16159
                  OPC_CheckType, MVT::v2i32,
 
16160
                  OPC_MoveParent,
 
16161
                  OPC_RecordChild2,
 
16162
                  OPC_CheckChild2Type, MVT::v2i32,
 
16163
                  OPC_CheckType, MVT::v2i64,
 
16164
                  OPC_CheckPatternPredicate, 3,
 
16165
                  OPC_EmitConvertToTarget, 1,
 
16166
                  OPC_EmitInteger, MVT::i32, 14, 
 
16167
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16168
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLslsv2i32), 0,
 
16169
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
16170
                0, 
 
16171
              84, 
 
16172
                OPC_RecordChild1,
 
16173
                OPC_Scope, 26, 
 
16174
                  OPC_CheckChild1Type, MVT::v4i16,
 
16175
                  OPC_RecordChild2,
 
16176
                  OPC_CheckChild2Type, MVT::v4i16,
 
16177
                  OPC_CheckType, MVT::v4i32,
 
16178
                  OPC_CheckPatternPredicate, 3,
 
16179
                  OPC_EmitInteger, MVT::i32, 14, 
 
16180
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16181
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsv4i32), 0,
 
16182
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
16183
                26, 
 
16184
                  OPC_CheckChild1Type, MVT::v2i32,
 
16185
                  OPC_RecordChild2,
 
16186
                  OPC_CheckChild2Type, MVT::v2i32,
 
16187
                  OPC_CheckType, MVT::v2i64,
 
16188
                  OPC_CheckPatternPredicate, 3,
 
16189
                  OPC_EmitInteger, MVT::i32, 14, 
 
16190
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16191
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsv2i64), 0,
 
16192
                      1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
16193
                26, 
 
16194
                  OPC_CheckChild1Type, MVT::v8i8,
 
16195
                  OPC_RecordChild2,
 
16196
                  OPC_CheckChild2Type, MVT::v8i8,
 
16197
                  OPC_CheckType, MVT::v8i16,
 
16198
                  OPC_CheckPatternPredicate, 3,
 
16199
                  OPC_EmitInteger, MVT::i32, 14, 
 
16200
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16201
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsv8i16), 0,
 
16202
                      1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
16203
                0, 
 
16204
              0, 
 
16205
            10|128,2, 
 
16206
              OPC_CheckInteger, 52, 
 
16207
              OPC_MoveParent,
 
16208
              OPC_Scope, 89, 
 
16209
                OPC_RecordChild1,
 
16210
                OPC_Scope, 42, 
 
16211
                  OPC_CheckChild1Type, MVT::v4i16,
 
16212
                  OPC_MoveChild, 2,
 
16213
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16214
                  OPC_RecordChild0,
 
16215
                  OPC_CheckChild0Type, MVT::v4i16,
 
16216
                  OPC_RecordChild1,
 
16217
                  OPC_MoveChild, 1,
 
16218
                  OPC_CheckOpcode, ISD::Constant,
 
16219
                  OPC_MoveParent,
 
16220
                  OPC_CheckType, MVT::v4i16,
 
16221
                  OPC_MoveParent,
 
16222
                  OPC_CheckType, MVT::v4i32,
 
16223
                  OPC_CheckPatternPredicate, 3,
 
16224
                  OPC_EmitConvertToTarget, 2,
 
16225
                  OPC_EmitInteger, MVT::i32, 14, 
 
16226
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16227
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv4i16), 0,
 
16228
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
16229
                42, 
 
16230
                  OPC_CheckChild1Type, MVT::v2i32,
 
16231
                  OPC_MoveChild, 2,
 
16232
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16233
                  OPC_RecordChild0,
 
16234
                  OPC_CheckChild0Type, MVT::v2i32,
 
16235
                  OPC_RecordChild1,
 
16236
                  OPC_MoveChild, 1,
 
16237
                  OPC_CheckOpcode, ISD::Constant,
 
16238
                  OPC_MoveParent,
 
16239
                  OPC_CheckType, MVT::v2i32,
 
16240
                  OPC_MoveParent,
 
16241
                  OPC_CheckType, MVT::v2i64,
 
16242
                  OPC_CheckPatternPredicate, 3,
 
16243
                  OPC_EmitConvertToTarget, 2,
 
16244
                  OPC_EmitInteger, MVT::i32, 14, 
 
16245
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16246
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv2i32), 0,
 
16247
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
16248
                0, 
 
16249
              85, 
 
16250
                OPC_MoveChild, 1,
 
16251
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16252
                OPC_RecordChild0,
 
16253
                OPC_Scope, 38, 
 
16254
                  OPC_CheckChild0Type, MVT::v4i16,
 
16255
                  OPC_RecordChild1,
 
16256
                  OPC_MoveChild, 1,
 
16257
                  OPC_CheckOpcode, ISD::Constant,
 
16258
                  OPC_MoveParent,
 
16259
                  OPC_CheckType, MVT::v4i16,
 
16260
                  OPC_MoveParent,
 
16261
                  OPC_RecordChild2,
 
16262
                  OPC_CheckChild2Type, MVT::v4i16,
 
16263
                  OPC_CheckType, MVT::v4i32,
 
16264
                  OPC_CheckPatternPredicate, 3,
 
16265
                  OPC_EmitConvertToTarget, 1,
 
16266
                  OPC_EmitInteger, MVT::i32, 14, 
 
16267
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16268
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv4i16), 0,
 
16269
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
16270
                38, 
 
16271
                  OPC_CheckChild0Type, MVT::v2i32,
 
16272
                  OPC_RecordChild1,
 
16273
                  OPC_MoveChild, 1,
 
16274
                  OPC_CheckOpcode, ISD::Constant,
 
16275
                  OPC_MoveParent,
 
16276
                  OPC_CheckType, MVT::v2i32,
 
16277
                  OPC_MoveParent,
 
16278
                  OPC_RecordChild2,
 
16279
                  OPC_CheckChild2Type, MVT::v2i32,
 
16280
                  OPC_CheckType, MVT::v2i64,
 
16281
                  OPC_CheckPatternPredicate, 3,
 
16282
                  OPC_EmitConvertToTarget, 1,
 
16283
                  OPC_EmitInteger, MVT::i32, 14, 
 
16284
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16285
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLsluv2i32), 0,
 
16286
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
16287
                0, 
 
16288
              84, 
 
16289
                OPC_RecordChild1,
 
16290
                OPC_Scope, 26, 
 
16291
                  OPC_CheckChild1Type, MVT::v4i16,
 
16292
                  OPC_RecordChild2,
 
16293
                  OPC_CheckChild2Type, MVT::v4i16,
 
16294
                  OPC_CheckType, MVT::v4i32,
 
16295
                  OPC_CheckPatternPredicate, 3,
 
16296
                  OPC_EmitInteger, MVT::i32, 14, 
 
16297
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16298
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLuv4i32), 0,
 
16299
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
16300
                26, 
 
16301
                  OPC_CheckChild1Type, MVT::v2i32,
 
16302
                  OPC_RecordChild2,
 
16303
                  OPC_CheckChild2Type, MVT::v2i32,
 
16304
                  OPC_CheckType, MVT::v2i64,
 
16305
                  OPC_CheckPatternPredicate, 3,
 
16306
                  OPC_EmitInteger, MVT::i32, 14, 
 
16307
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16308
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLuv2i64), 0,
 
16309
                      1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
16310
                26, 
 
16311
                  OPC_CheckChild1Type, MVT::v8i8,
 
16312
                  OPC_RecordChild2,
 
16313
                  OPC_CheckChild2Type, MVT::v8i8,
 
16314
                  OPC_CheckType, MVT::v8i16,
 
16315
                  OPC_CheckPatternPredicate, 3,
 
16316
                  OPC_EmitInteger, MVT::i32, 14, 
 
16317
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16318
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLuv8i16), 0,
 
16319
                      1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
16320
                0, 
 
16321
              0, 
 
16322
            111|128,1, 
 
16323
              OPC_CheckInteger, 69, 
 
16324
              OPC_MoveParent,
 
16325
              OPC_Scope, 89, 
 
16326
                OPC_RecordChild1,
 
16327
                OPC_Scope, 42, 
 
16328
                  OPC_CheckChild1Type, MVT::v4i16,
 
16329
                  OPC_MoveChild, 2,
 
16330
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16331
                  OPC_RecordChild0,
 
16332
                  OPC_CheckChild0Type, MVT::v4i16,
 
16333
                  OPC_RecordChild1,
 
16334
                  OPC_MoveChild, 1,
 
16335
                  OPC_CheckOpcode, ISD::Constant,
 
16336
                  OPC_MoveParent,
 
16337
                  OPC_CheckType, MVT::v4i16,
 
16338
                  OPC_MoveParent,
 
16339
                  OPC_CheckType, MVT::v4i32,
 
16340
                  OPC_CheckPatternPredicate, 3,
 
16341
                  OPC_EmitConvertToTarget, 2,
 
16342
                  OPC_EmitInteger, MVT::i32, 14, 
 
16343
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16344
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv4i16), 0,
 
16345
                      1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
16346
                42, 
 
16347
                  OPC_CheckChild1Type, MVT::v2i32,
 
16348
                  OPC_MoveChild, 2,
 
16349
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16350
                  OPC_RecordChild0,
 
16351
                  OPC_CheckChild0Type, MVT::v2i32,
 
16352
                  OPC_RecordChild1,
 
16353
                  OPC_MoveChild, 1,
 
16354
                  OPC_CheckOpcode, ISD::Constant,
 
16355
                  OPC_MoveParent,
 
16356
                  OPC_CheckType, MVT::v2i32,
 
16357
                  OPC_MoveParent,
 
16358
                  OPC_CheckType, MVT::v2i64,
 
16359
                  OPC_CheckPatternPredicate, 3,
 
16360
                  OPC_EmitConvertToTarget, 2,
 
16361
                  OPC_EmitInteger, MVT::i32, 14, 
 
16362
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16363
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv2i32), 0,
 
16364
                      1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
16365
                0, 
 
16366
              85, 
 
16367
                OPC_MoveChild, 1,
 
16368
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16369
                OPC_RecordChild0,
 
16370
                OPC_Scope, 38, 
 
16371
                  OPC_CheckChild0Type, MVT::v4i16,
 
16372
                  OPC_RecordChild1,
 
16373
                  OPC_MoveChild, 1,
 
16374
                  OPC_CheckOpcode, ISD::Constant,
 
16375
                  OPC_MoveParent,
 
16376
                  OPC_CheckType, MVT::v4i16,
 
16377
                  OPC_MoveParent,
 
16378
                  OPC_RecordChild2,
 
16379
                  OPC_CheckChild2Type, MVT::v4i16,
 
16380
                  OPC_CheckType, MVT::v4i32,
 
16381
                  OPC_CheckPatternPredicate, 3,
 
16382
                  OPC_EmitConvertToTarget, 1,
 
16383
                  OPC_EmitInteger, MVT::i32, 14, 
 
16384
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16385
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv4i16), 0,
 
16386
                      1, MVT::v4i32, 5, 2, 0, 3, 4, 5, 
 
16387
                38, 
 
16388
                  OPC_CheckChild0Type, MVT::v2i32,
 
16389
                  OPC_RecordChild1,
 
16390
                  OPC_MoveChild, 1,
 
16391
                  OPC_CheckOpcode, ISD::Constant,
 
16392
                  OPC_MoveParent,
 
16393
                  OPC_CheckType, MVT::v2i32,
 
16394
                  OPC_MoveParent,
 
16395
                  OPC_RecordChild2,
 
16396
                  OPC_CheckChild2Type, MVT::v2i32,
 
16397
                  OPC_CheckType, MVT::v2i64,
 
16398
                  OPC_CheckPatternPredicate, 3,
 
16399
                  OPC_EmitConvertToTarget, 1,
 
16400
                  OPC_EmitInteger, MVT::i32, 14, 
 
16401
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16402
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLslv2i32), 0,
 
16403
                      1, MVT::v2i64, 5, 2, 0, 3, 4, 5, 
 
16404
                0, 
 
16405
              57, 
 
16406
                OPC_RecordChild1,
 
16407
                OPC_Scope, 26, 
 
16408
                  OPC_CheckChild1Type, MVT::v4i16,
 
16409
                  OPC_RecordChild2,
 
16410
                  OPC_CheckChild2Type, MVT::v4i16,
 
16411
                  OPC_CheckType, MVT::v4i32,
 
16412
                  OPC_CheckPatternPredicate, 3,
 
16413
                  OPC_EmitInteger, MVT::i32, 14, 
 
16414
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16415
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLv4i32), 0,
 
16416
                      1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
16417
                26, 
 
16418
                  OPC_CheckChild1Type, MVT::v2i32,
 
16419
                  OPC_RecordChild2,
 
16420
                  OPC_CheckChild2Type, MVT::v2i32,
 
16421
                  OPC_CheckType, MVT::v2i64,
 
16422
                  OPC_CheckPatternPredicate, 3,
 
16423
                  OPC_EmitInteger, MVT::i32, 14, 
 
16424
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16425
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMULLv2i64), 0,
 
16426
                      1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
16427
                0, 
 
16428
              0, 
 
16429
            116|128,2, 
 
16430
              OPC_CheckInteger, 43, 
 
16431
              OPC_MoveParent,
 
16432
              OPC_RecordChild1,
 
16433
              OPC_Scope, 75, 
 
16434
                OPC_CheckChild1Type, MVT::v4i32,
 
16435
                OPC_RecordChild2,
 
16436
                OPC_CheckChild2Type, MVT::v4i16,
 
16437
                OPC_Scope, 41, 
 
16438
                  OPC_MoveChild, 3,
 
16439
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16440
                  OPC_RecordChild0,
 
16441
                  OPC_CheckChild0Type, MVT::v4i16,
 
16442
                  OPC_RecordChild1,
 
16443
                  OPC_MoveChild, 1,
 
16444
                  OPC_CheckOpcode, ISD::Constant,
 
16445
                  OPC_MoveParent,
 
16446
                  OPC_CheckType, MVT::v4i16,
 
16447
                  OPC_MoveParent,
 
16448
                  OPC_CheckType, MVT::v4i32,
 
16449
                  OPC_CheckPatternPredicate, 3,
 
16450
                  OPC_EmitConvertToTarget, 3,
 
16451
                  OPC_EmitInteger, MVT::i32, 14, 
 
16452
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16453
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv4i16), 0,
 
16454
                      1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
16455
                25, 
 
16456
                  OPC_RecordChild3,
 
16457
                  OPC_CheckChild3Type, MVT::v4i16,
 
16458
                  OPC_CheckType, MVT::v4i32,
 
16459
                  OPC_CheckPatternPredicate, 3,
 
16460
                  OPC_EmitInteger, MVT::i32, 14, 
 
16461
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16462
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv4i32), 0,
 
16463
                      1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
16464
                0, 
 
16465
              75, 
 
16466
                OPC_CheckChild1Type, MVT::v2i64,
 
16467
                OPC_RecordChild2,
 
16468
                OPC_CheckChild2Type, MVT::v2i32,
 
16469
                OPC_Scope, 41, 
 
16470
                  OPC_MoveChild, 3,
 
16471
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16472
                  OPC_RecordChild0,
 
16473
                  OPC_CheckChild0Type, MVT::v2i32,
 
16474
                  OPC_RecordChild1,
 
16475
                  OPC_MoveChild, 1,
 
16476
                  OPC_CheckOpcode, ISD::Constant,
 
16477
                  OPC_MoveParent,
 
16478
                  OPC_CheckType, MVT::v2i32,
 
16479
                  OPC_MoveParent,
 
16480
                  OPC_CheckType, MVT::v2i64,
 
16481
                  OPC_CheckPatternPredicate, 3,
 
16482
                  OPC_EmitConvertToTarget, 3,
 
16483
                  OPC_EmitInteger, MVT::i32, 14, 
 
16484
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16485
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv2i32), 0,
 
16486
                      1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6, 
 
16487
                25, 
 
16488
                  OPC_RecordChild3,
 
16489
                  OPC_CheckChild3Type, MVT::v2i32,
 
16490
                  OPC_CheckType, MVT::v2i64,
 
16491
                  OPC_CheckPatternPredicate, 3,
 
16492
                  OPC_EmitInteger, MVT::i32, 14, 
 
16493
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16494
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv2i64), 0,
 
16495
                      1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
16496
                0, 
 
16497
              75, 
 
16498
                OPC_CheckChild1Type, MVT::v4i16,
 
16499
                OPC_RecordChild2,
 
16500
                OPC_CheckChild2Type, MVT::v4i32,
 
16501
                OPC_Scope, 41, 
 
16502
                  OPC_MoveChild, 3,
 
16503
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16504
                  OPC_RecordChild0,
 
16505
                  OPC_CheckChild0Type, MVT::v4i16,
 
16506
                  OPC_RecordChild1,
 
16507
                  OPC_MoveChild, 1,
 
16508
                  OPC_CheckOpcode, ISD::Constant,
 
16509
                  OPC_MoveParent,
 
16510
                  OPC_CheckType, MVT::v4i16,
 
16511
                  OPC_MoveParent,
 
16512
                  OPC_CheckType, MVT::v4i32,
 
16513
                  OPC_CheckPatternPredicate, 3,
 
16514
                  OPC_EmitConvertToTarget, 3,
 
16515
                  OPC_EmitInteger, MVT::i32, 14, 
 
16516
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16517
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv4i16), 0,
 
16518
                      1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6, 
 
16519
                25, 
 
16520
                  OPC_RecordChild3,
 
16521
                  OPC_CheckChild3Type, MVT::v4i16,
 
16522
                  OPC_CheckType, MVT::v4i32,
 
16523
                  OPC_CheckPatternPredicate, 3,
 
16524
                  OPC_EmitInteger, MVT::i32, 14, 
 
16525
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16526
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv4i32), 0,
 
16527
                      1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
16528
                0, 
 
16529
              75, 
 
16530
                OPC_CheckChild1Type, MVT::v2i32,
 
16531
                OPC_RecordChild2,
 
16532
                OPC_CheckChild2Type, MVT::v2i64,
 
16533
                OPC_Scope, 41, 
 
16534
                  OPC_MoveChild, 3,
 
16535
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16536
                  OPC_RecordChild0,
 
16537
                  OPC_CheckChild0Type, MVT::v2i32,
 
16538
                  OPC_RecordChild1,
 
16539
                  OPC_MoveChild, 1,
 
16540
                  OPC_CheckOpcode, ISD::Constant,
 
16541
                  OPC_MoveParent,
 
16542
                  OPC_CheckType, MVT::v2i32,
 
16543
                  OPC_MoveParent,
 
16544
                  OPC_CheckType, MVT::v2i64,
 
16545
                  OPC_CheckPatternPredicate, 3,
 
16546
                  OPC_EmitConvertToTarget, 3,
 
16547
                  OPC_EmitInteger, MVT::i32, 14, 
 
16548
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16549
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALslsv2i32), 0,
 
16550
                      1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6, 
 
16551
                25, 
 
16552
                  OPC_RecordChild3,
 
16553
                  OPC_CheckChild3Type, MVT::v2i32,
 
16554
                  OPC_CheckType, MVT::v2i64,
 
16555
                  OPC_CheckPatternPredicate, 3,
 
16556
                  OPC_EmitInteger, MVT::i32, 14, 
 
16557
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16558
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv2i64), 0,
 
16559
                      1, MVT::v2i64, 5, 1, 0, 2, 3, 4, 
 
16560
                0, 
 
16561
              30, 
 
16562
                OPC_CheckChild1Type, MVT::v8i16,
 
16563
                OPC_RecordChild2,
 
16564
                OPC_CheckChild2Type, MVT::v8i8,
 
16565
                OPC_RecordChild3,
 
16566
                OPC_CheckChild3Type, MVT::v8i8,
 
16567
                OPC_CheckType, MVT::v8i16,
 
16568
                OPC_CheckPatternPredicate, 3,
 
16569
                OPC_EmitInteger, MVT::i32, 14, 
 
16570
                OPC_EmitRegister, MVT::i32, 0 ,
 
16571
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv8i16), 0,
 
16572
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
16573
              30, 
 
16574
                OPC_CheckChild1Type, MVT::v8i8,
 
16575
                OPC_RecordChild2,
 
16576
                OPC_CheckChild2Type, MVT::v8i16,
 
16577
                OPC_RecordChild3,
 
16578
                OPC_CheckChild3Type, MVT::v8i8,
 
16579
                OPC_CheckType, MVT::v8i16,
 
16580
                OPC_CheckPatternPredicate, 3,
 
16581
                OPC_EmitInteger, MVT::i32, 14, 
 
16582
                OPC_EmitRegister, MVT::i32, 0 ,
 
16583
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsv8i16), 0,
 
16584
                    1, MVT::v8i16, 5, 1, 0, 2, 3, 4, 
 
16585
              0, 
 
16586
            116|128,2, 
 
16587
              OPC_CheckInteger, 44, 
 
16588
              OPC_MoveParent,
 
16589
              OPC_RecordChild1,
 
16590
              OPC_Scope, 75, 
 
16591
                OPC_CheckChild1Type, MVT::v4i32,
 
16592
                OPC_RecordChild2,
 
16593
                OPC_CheckChild2Type, MVT::v4i16,
 
16594
                OPC_Scope, 41, 
 
16595
                  OPC_MoveChild, 3,
 
16596
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16597
                  OPC_RecordChild0,
 
16598
                  OPC_CheckChild0Type, MVT::v4i16,
 
16599
                  OPC_RecordChild1,
 
16600
                  OPC_MoveChild, 1,
 
16601
                  OPC_CheckOpcode, ISD::Constant,
 
16602
                  OPC_MoveParent,
 
16603
                  OPC_CheckType, MVT::v4i16,
 
16604
                  OPC_MoveParent,
 
16605
                  OPC_CheckType, MVT::v4i32,
 
16606
                  OPC_CheckPatternPredicate, 3,
 
16607
                  OPC_EmitConvertToTarget, 3,
 
16608
                  OPC_EmitInteger, MVT::i32, 14, 
 
16609
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16610
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv4i16), 0,
 
16611
                      1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
16612
                25, 
 
16613
                  OPC_RecordChild3,
 
16614
                  OPC_CheckChild3Type, MVT::v4i16,
 
16615
                  OPC_CheckType, MVT::v4i32,
 
16616
                  OPC_CheckPatternPredicate, 3,
 
16617
                  OPC_EmitInteger, MVT::i32, 14, 
 
16618
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16619
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv4i32), 0,
 
16620
                      1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
16621
                0, 
 
16622
              75, 
 
16623
                OPC_CheckChild1Type, MVT::v2i64,
 
16624
                OPC_RecordChild2,
 
16625
                OPC_CheckChild2Type, MVT::v2i32,
 
16626
                OPC_Scope, 41, 
 
16627
                  OPC_MoveChild, 3,
 
16628
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16629
                  OPC_RecordChild0,
 
16630
                  OPC_CheckChild0Type, MVT::v2i32,
 
16631
                  OPC_RecordChild1,
 
16632
                  OPC_MoveChild, 1,
 
16633
                  OPC_CheckOpcode, ISD::Constant,
 
16634
                  OPC_MoveParent,
 
16635
                  OPC_CheckType, MVT::v2i32,
 
16636
                  OPC_MoveParent,
 
16637
                  OPC_CheckType, MVT::v2i64,
 
16638
                  OPC_CheckPatternPredicate, 3,
 
16639
                  OPC_EmitConvertToTarget, 3,
 
16640
                  OPC_EmitInteger, MVT::i32, 14, 
 
16641
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16642
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv2i32), 0,
 
16643
                      1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6, 
 
16644
                25, 
 
16645
                  OPC_RecordChild3,
 
16646
                  OPC_CheckChild3Type, MVT::v2i32,
 
16647
                  OPC_CheckType, MVT::v2i64,
 
16648
                  OPC_CheckPatternPredicate, 3,
 
16649
                  OPC_EmitInteger, MVT::i32, 14, 
 
16650
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16651
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv2i64), 0,
 
16652
                      1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
16653
                0, 
 
16654
              75, 
 
16655
                OPC_CheckChild1Type, MVT::v4i16,
 
16656
                OPC_RecordChild2,
 
16657
                OPC_CheckChild2Type, MVT::v4i32,
 
16658
                OPC_Scope, 41, 
 
16659
                  OPC_MoveChild, 3,
 
16660
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16661
                  OPC_RecordChild0,
 
16662
                  OPC_CheckChild0Type, MVT::v4i16,
 
16663
                  OPC_RecordChild1,
 
16664
                  OPC_MoveChild, 1,
 
16665
                  OPC_CheckOpcode, ISD::Constant,
 
16666
                  OPC_MoveParent,
 
16667
                  OPC_CheckType, MVT::v4i16,
 
16668
                  OPC_MoveParent,
 
16669
                  OPC_CheckType, MVT::v4i32,
 
16670
                  OPC_CheckPatternPredicate, 3,
 
16671
                  OPC_EmitConvertToTarget, 3,
 
16672
                  OPC_EmitInteger, MVT::i32, 14, 
 
16673
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16674
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv4i16), 0,
 
16675
                      1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6, 
 
16676
                25, 
 
16677
                  OPC_RecordChild3,
 
16678
                  OPC_CheckChild3Type, MVT::v4i16,
 
16679
                  OPC_CheckType, MVT::v4i32,
 
16680
                  OPC_CheckPatternPredicate, 3,
 
16681
                  OPC_EmitInteger, MVT::i32, 14, 
 
16682
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16683
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv4i32), 0,
 
16684
                      1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
16685
                0, 
 
16686
              75, 
 
16687
                OPC_CheckChild1Type, MVT::v2i32,
 
16688
                OPC_RecordChild2,
 
16689
                OPC_CheckChild2Type, MVT::v2i64,
 
16690
                OPC_Scope, 41, 
 
16691
                  OPC_MoveChild, 3,
 
16692
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16693
                  OPC_RecordChild0,
 
16694
                  OPC_CheckChild0Type, MVT::v2i32,
 
16695
                  OPC_RecordChild1,
 
16696
                  OPC_MoveChild, 1,
 
16697
                  OPC_CheckOpcode, ISD::Constant,
 
16698
                  OPC_MoveParent,
 
16699
                  OPC_CheckType, MVT::v2i32,
 
16700
                  OPC_MoveParent,
 
16701
                  OPC_CheckType, MVT::v2i64,
 
16702
                  OPC_CheckPatternPredicate, 3,
 
16703
                  OPC_EmitConvertToTarget, 3,
 
16704
                  OPC_EmitInteger, MVT::i32, 14, 
 
16705
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16706
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALsluv2i32), 0,
 
16707
                      1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6, 
 
16708
                25, 
 
16709
                  OPC_RecordChild3,
 
16710
                  OPC_CheckChild3Type, MVT::v2i32,
 
16711
                  OPC_CheckType, MVT::v2i64,
 
16712
                  OPC_CheckPatternPredicate, 3,
 
16713
                  OPC_EmitInteger, MVT::i32, 14, 
 
16714
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16715
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv2i64), 0,
 
16716
                      1, MVT::v2i64, 5, 1, 0, 2, 3, 4, 
 
16717
                0, 
 
16718
              30, 
 
16719
                OPC_CheckChild1Type, MVT::v8i16,
 
16720
                OPC_RecordChild2,
 
16721
                OPC_CheckChild2Type, MVT::v8i8,
 
16722
                OPC_RecordChild3,
 
16723
                OPC_CheckChild3Type, MVT::v8i8,
 
16724
                OPC_CheckType, MVT::v8i16,
 
16725
                OPC_CheckPatternPredicate, 3,
 
16726
                OPC_EmitInteger, MVT::i32, 14, 
 
16727
                OPC_EmitRegister, MVT::i32, 0 ,
 
16728
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv8i16), 0,
 
16729
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
16730
              30, 
 
16731
                OPC_CheckChild1Type, MVT::v8i8,
 
16732
                OPC_RecordChild2,
 
16733
                OPC_CheckChild2Type, MVT::v8i16,
 
16734
                OPC_RecordChild3,
 
16735
                OPC_CheckChild3Type, MVT::v8i8,
 
16736
                OPC_CheckType, MVT::v8i16,
 
16737
                OPC_CheckPatternPredicate, 3,
 
16738
                OPC_EmitInteger, MVT::i32, 14, 
 
16739
                OPC_EmitRegister, MVT::i32, 0 ,
 
16740
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLALuv8i16), 0,
 
16741
                    1, MVT::v8i16, 5, 1, 0, 2, 3, 4, 
 
16742
              0, 
 
16743
            54|128,2, 
 
16744
              OPC_CheckInteger, 66, 
 
16745
              OPC_MoveParent,
 
16746
              OPC_RecordChild1,
 
16747
              OPC_Scope, 75, 
 
16748
                OPC_CheckChild1Type, MVT::v4i32,
 
16749
                OPC_RecordChild2,
 
16750
                OPC_CheckChild2Type, MVT::v4i16,
 
16751
                OPC_Scope, 41, 
 
16752
                  OPC_MoveChild, 3,
 
16753
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16754
                  OPC_RecordChild0,
 
16755
                  OPC_CheckChild0Type, MVT::v4i16,
 
16756
                  OPC_RecordChild1,
 
16757
                  OPC_MoveChild, 1,
 
16758
                  OPC_CheckOpcode, ISD::Constant,
 
16759
                  OPC_MoveParent,
 
16760
                  OPC_CheckType, MVT::v4i16,
 
16761
                  OPC_MoveParent,
 
16762
                  OPC_CheckType, MVT::v4i32,
 
16763
                  OPC_CheckPatternPredicate, 3,
 
16764
                  OPC_EmitConvertToTarget, 3,
 
16765
                  OPC_EmitInteger, MVT::i32, 14, 
 
16766
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16767
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv4i16), 0,
 
16768
                      1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
16769
                25, 
 
16770
                  OPC_RecordChild3,
 
16771
                  OPC_CheckChild3Type, MVT::v4i16,
 
16772
                  OPC_CheckType, MVT::v4i32,
 
16773
                  OPC_CheckPatternPredicate, 3,
 
16774
                  OPC_EmitInteger, MVT::i32, 14, 
 
16775
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16776
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv4i32), 0,
 
16777
                      1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
16778
                0, 
 
16779
              75, 
 
16780
                OPC_CheckChild1Type, MVT::v2i64,
 
16781
                OPC_RecordChild2,
 
16782
                OPC_CheckChild2Type, MVT::v2i32,
 
16783
                OPC_Scope, 41, 
 
16784
                  OPC_MoveChild, 3,
 
16785
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16786
                  OPC_RecordChild0,
 
16787
                  OPC_CheckChild0Type, MVT::v2i32,
 
16788
                  OPC_RecordChild1,
 
16789
                  OPC_MoveChild, 1,
 
16790
                  OPC_CheckOpcode, ISD::Constant,
 
16791
                  OPC_MoveParent,
 
16792
                  OPC_CheckType, MVT::v2i32,
 
16793
                  OPC_MoveParent,
 
16794
                  OPC_CheckType, MVT::v2i64,
 
16795
                  OPC_CheckPatternPredicate, 3,
 
16796
                  OPC_EmitConvertToTarget, 3,
 
16797
                  OPC_EmitInteger, MVT::i32, 14, 
 
16798
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16799
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv2i32), 0,
 
16800
                      1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6, 
 
16801
                25, 
 
16802
                  OPC_RecordChild3,
 
16803
                  OPC_CheckChild3Type, MVT::v2i32,
 
16804
                  OPC_CheckType, MVT::v2i64,
 
16805
                  OPC_CheckPatternPredicate, 3,
 
16806
                  OPC_EmitInteger, MVT::i32, 14, 
 
16807
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16808
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv2i64), 0,
 
16809
                      1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
16810
                0, 
 
16811
              75, 
 
16812
                OPC_CheckChild1Type, MVT::v4i16,
 
16813
                OPC_RecordChild2,
 
16814
                OPC_CheckChild2Type, MVT::v4i32,
 
16815
                OPC_Scope, 41, 
 
16816
                  OPC_MoveChild, 3,
 
16817
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16818
                  OPC_RecordChild0,
 
16819
                  OPC_CheckChild0Type, MVT::v4i16,
 
16820
                  OPC_RecordChild1,
 
16821
                  OPC_MoveChild, 1,
 
16822
                  OPC_CheckOpcode, ISD::Constant,
 
16823
                  OPC_MoveParent,
 
16824
                  OPC_CheckType, MVT::v4i16,
 
16825
                  OPC_MoveParent,
 
16826
                  OPC_CheckType, MVT::v4i32,
 
16827
                  OPC_CheckPatternPredicate, 3,
 
16828
                  OPC_EmitConvertToTarget, 3,
 
16829
                  OPC_EmitInteger, MVT::i32, 14, 
 
16830
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16831
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv4i16), 0,
 
16832
                      1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6, 
 
16833
                25, 
 
16834
                  OPC_RecordChild3,
 
16835
                  OPC_CheckChild3Type, MVT::v4i16,
 
16836
                  OPC_CheckType, MVT::v4i32,
 
16837
                  OPC_CheckPatternPredicate, 3,
 
16838
                  OPC_EmitInteger, MVT::i32, 14, 
 
16839
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16840
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv4i32), 0,
 
16841
                      1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
16842
                0, 
 
16843
              75, 
 
16844
                OPC_CheckChild1Type, MVT::v2i32,
 
16845
                OPC_RecordChild2,
 
16846
                OPC_CheckChild2Type, MVT::v2i64,
 
16847
                OPC_Scope, 41, 
 
16848
                  OPC_MoveChild, 3,
 
16849
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16850
                  OPC_RecordChild0,
 
16851
                  OPC_CheckChild0Type, MVT::v2i32,
 
16852
                  OPC_RecordChild1,
 
16853
                  OPC_MoveChild, 1,
 
16854
                  OPC_CheckOpcode, ISD::Constant,
 
16855
                  OPC_MoveParent,
 
16856
                  OPC_CheckType, MVT::v2i32,
 
16857
                  OPC_MoveParent,
 
16858
                  OPC_CheckType, MVT::v2i64,
 
16859
                  OPC_CheckPatternPredicate, 3,
 
16860
                  OPC_EmitConvertToTarget, 3,
 
16861
                  OPC_EmitInteger, MVT::i32, 14, 
 
16862
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16863
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALslv2i32), 0,
 
16864
                      1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6, 
 
16865
                25, 
 
16866
                  OPC_RecordChild3,
 
16867
                  OPC_CheckChild3Type, MVT::v2i32,
 
16868
                  OPC_CheckType, MVT::v2i64,
 
16869
                  OPC_CheckPatternPredicate, 3,
 
16870
                  OPC_EmitInteger, MVT::i32, 14, 
 
16871
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16872
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLALv2i64), 0,
 
16873
                      1, MVT::v2i64, 5, 1, 0, 2, 3, 4, 
 
16874
                0, 
 
16875
              0, 
 
16876
            116|128,2, 
 
16877
              OPC_CheckInteger, 45, 
 
16878
              OPC_MoveParent,
 
16879
              OPC_RecordChild1,
 
16880
              OPC_Scope, 75, 
 
16881
                OPC_CheckChild1Type, MVT::v4i32,
 
16882
                OPC_RecordChild2,
 
16883
                OPC_CheckChild2Type, MVT::v4i16,
 
16884
                OPC_Scope, 41, 
 
16885
                  OPC_MoveChild, 3,
 
16886
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16887
                  OPC_RecordChild0,
 
16888
                  OPC_CheckChild0Type, MVT::v4i16,
 
16889
                  OPC_RecordChild1,
 
16890
                  OPC_MoveChild, 1,
 
16891
                  OPC_CheckOpcode, ISD::Constant,
 
16892
                  OPC_MoveParent,
 
16893
                  OPC_CheckType, MVT::v4i16,
 
16894
                  OPC_MoveParent,
 
16895
                  OPC_CheckType, MVT::v4i32,
 
16896
                  OPC_CheckPatternPredicate, 3,
 
16897
                  OPC_EmitConvertToTarget, 3,
 
16898
                  OPC_EmitInteger, MVT::i32, 14, 
 
16899
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16900
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv4i16), 0,
 
16901
                      1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
16902
                25, 
 
16903
                  OPC_RecordChild3,
 
16904
                  OPC_CheckChild3Type, MVT::v4i16,
 
16905
                  OPC_CheckType, MVT::v4i32,
 
16906
                  OPC_CheckPatternPredicate, 3,
 
16907
                  OPC_EmitInteger, MVT::i32, 14, 
 
16908
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16909
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv4i32), 0,
 
16910
                      1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
16911
                0, 
 
16912
              75, 
 
16913
                OPC_CheckChild1Type, MVT::v2i64,
 
16914
                OPC_RecordChild2,
 
16915
                OPC_CheckChild2Type, MVT::v2i32,
 
16916
                OPC_Scope, 41, 
 
16917
                  OPC_MoveChild, 3,
 
16918
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16919
                  OPC_RecordChild0,
 
16920
                  OPC_CheckChild0Type, MVT::v2i32,
 
16921
                  OPC_RecordChild1,
 
16922
                  OPC_MoveChild, 1,
 
16923
                  OPC_CheckOpcode, ISD::Constant,
 
16924
                  OPC_MoveParent,
 
16925
                  OPC_CheckType, MVT::v2i32,
 
16926
                  OPC_MoveParent,
 
16927
                  OPC_CheckType, MVT::v2i64,
 
16928
                  OPC_CheckPatternPredicate, 3,
 
16929
                  OPC_EmitConvertToTarget, 3,
 
16930
                  OPC_EmitInteger, MVT::i32, 14, 
 
16931
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16932
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv2i32), 0,
 
16933
                      1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6, 
 
16934
                25, 
 
16935
                  OPC_RecordChild3,
 
16936
                  OPC_CheckChild3Type, MVT::v2i32,
 
16937
                  OPC_CheckType, MVT::v2i64,
 
16938
                  OPC_CheckPatternPredicate, 3,
 
16939
                  OPC_EmitInteger, MVT::i32, 14, 
 
16940
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16941
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv2i64), 0,
 
16942
                      1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
16943
                0, 
 
16944
              75, 
 
16945
                OPC_CheckChild1Type, MVT::v4i16,
 
16946
                OPC_RecordChild2,
 
16947
                OPC_CheckChild2Type, MVT::v4i32,
 
16948
                OPC_Scope, 41, 
 
16949
                  OPC_MoveChild, 3,
 
16950
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16951
                  OPC_RecordChild0,
 
16952
                  OPC_CheckChild0Type, MVT::v4i16,
 
16953
                  OPC_RecordChild1,
 
16954
                  OPC_MoveChild, 1,
 
16955
                  OPC_CheckOpcode, ISD::Constant,
 
16956
                  OPC_MoveParent,
 
16957
                  OPC_CheckType, MVT::v4i16,
 
16958
                  OPC_MoveParent,
 
16959
                  OPC_CheckType, MVT::v4i32,
 
16960
                  OPC_CheckPatternPredicate, 3,
 
16961
                  OPC_EmitConvertToTarget, 3,
 
16962
                  OPC_EmitInteger, MVT::i32, 14, 
 
16963
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16964
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv4i16), 0,
 
16965
                      1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6, 
 
16966
                25, 
 
16967
                  OPC_RecordChild3,
 
16968
                  OPC_CheckChild3Type, MVT::v4i16,
 
16969
                  OPC_CheckType, MVT::v4i32,
 
16970
                  OPC_CheckPatternPredicate, 3,
 
16971
                  OPC_EmitInteger, MVT::i32, 14, 
 
16972
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16973
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv4i32), 0,
 
16974
                      1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
16975
                0, 
 
16976
              75, 
 
16977
                OPC_CheckChild1Type, MVT::v2i32,
 
16978
                OPC_RecordChild2,
 
16979
                OPC_CheckChild2Type, MVT::v2i64,
 
16980
                OPC_Scope, 41, 
 
16981
                  OPC_MoveChild, 3,
 
16982
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
16983
                  OPC_RecordChild0,
 
16984
                  OPC_CheckChild0Type, MVT::v2i32,
 
16985
                  OPC_RecordChild1,
 
16986
                  OPC_MoveChild, 1,
 
16987
                  OPC_CheckOpcode, ISD::Constant,
 
16988
                  OPC_MoveParent,
 
16989
                  OPC_CheckType, MVT::v2i32,
 
16990
                  OPC_MoveParent,
 
16991
                  OPC_CheckType, MVT::v2i64,
 
16992
                  OPC_CheckPatternPredicate, 3,
 
16993
                  OPC_EmitConvertToTarget, 3,
 
16994
                  OPC_EmitInteger, MVT::i32, 14, 
 
16995
                  OPC_EmitRegister, MVT::i32, 0 ,
 
16996
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLslsv2i32), 0,
 
16997
                      1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6, 
 
16998
                25, 
 
16999
                  OPC_RecordChild3,
 
17000
                  OPC_CheckChild3Type, MVT::v2i32,
 
17001
                  OPC_CheckType, MVT::v2i64,
 
17002
                  OPC_CheckPatternPredicate, 3,
 
17003
                  OPC_EmitInteger, MVT::i32, 14, 
 
17004
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17005
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv2i64), 0,
 
17006
                      1, MVT::v2i64, 5, 1, 0, 2, 3, 4, 
 
17007
                0, 
 
17008
              30, 
 
17009
                OPC_CheckChild1Type, MVT::v8i16,
 
17010
                OPC_RecordChild2,
 
17011
                OPC_CheckChild2Type, MVT::v8i8,
 
17012
                OPC_RecordChild3,
 
17013
                OPC_CheckChild3Type, MVT::v8i8,
 
17014
                OPC_CheckType, MVT::v8i16,
 
17015
                OPC_CheckPatternPredicate, 3,
 
17016
                OPC_EmitInteger, MVT::i32, 14, 
 
17017
                OPC_EmitRegister, MVT::i32, 0 ,
 
17018
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv8i16), 0,
 
17019
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
17020
              30, 
 
17021
                OPC_CheckChild1Type, MVT::v8i8,
 
17022
                OPC_RecordChild2,
 
17023
                OPC_CheckChild2Type, MVT::v8i16,
 
17024
                OPC_RecordChild3,
 
17025
                OPC_CheckChild3Type, MVT::v8i8,
 
17026
                OPC_CheckType, MVT::v8i16,
 
17027
                OPC_CheckPatternPredicate, 3,
 
17028
                OPC_EmitInteger, MVT::i32, 14, 
 
17029
                OPC_EmitRegister, MVT::i32, 0 ,
 
17030
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsv8i16), 0,
 
17031
                    1, MVT::v8i16, 5, 1, 0, 2, 3, 4, 
 
17032
              0, 
 
17033
            116|128,2, 
 
17034
              OPC_CheckInteger, 46, 
 
17035
              OPC_MoveParent,
 
17036
              OPC_RecordChild1,
 
17037
              OPC_Scope, 75, 
 
17038
                OPC_CheckChild1Type, MVT::v4i32,
 
17039
                OPC_RecordChild2,
 
17040
                OPC_CheckChild2Type, MVT::v4i16,
 
17041
                OPC_Scope, 41, 
 
17042
                  OPC_MoveChild, 3,
 
17043
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17044
                  OPC_RecordChild0,
 
17045
                  OPC_CheckChild0Type, MVT::v4i16,
 
17046
                  OPC_RecordChild1,
 
17047
                  OPC_MoveChild, 1,
 
17048
                  OPC_CheckOpcode, ISD::Constant,
 
17049
                  OPC_MoveParent,
 
17050
                  OPC_CheckType, MVT::v4i16,
 
17051
                  OPC_MoveParent,
 
17052
                  OPC_CheckType, MVT::v4i32,
 
17053
                  OPC_CheckPatternPredicate, 3,
 
17054
                  OPC_EmitConvertToTarget, 3,
 
17055
                  OPC_EmitInteger, MVT::i32, 14, 
 
17056
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17057
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv4i16), 0,
 
17058
                      1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
17059
                25, 
 
17060
                  OPC_RecordChild3,
 
17061
                  OPC_CheckChild3Type, MVT::v4i16,
 
17062
                  OPC_CheckType, MVT::v4i32,
 
17063
                  OPC_CheckPatternPredicate, 3,
 
17064
                  OPC_EmitInteger, MVT::i32, 14, 
 
17065
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17066
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv4i32), 0,
 
17067
                      1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
17068
                0, 
 
17069
              75, 
 
17070
                OPC_CheckChild1Type, MVT::v2i64,
 
17071
                OPC_RecordChild2,
 
17072
                OPC_CheckChild2Type, MVT::v2i32,
 
17073
                OPC_Scope, 41, 
 
17074
                  OPC_MoveChild, 3,
 
17075
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17076
                  OPC_RecordChild0,
 
17077
                  OPC_CheckChild0Type, MVT::v2i32,
 
17078
                  OPC_RecordChild1,
 
17079
                  OPC_MoveChild, 1,
 
17080
                  OPC_CheckOpcode, ISD::Constant,
 
17081
                  OPC_MoveParent,
 
17082
                  OPC_CheckType, MVT::v2i32,
 
17083
                  OPC_MoveParent,
 
17084
                  OPC_CheckType, MVT::v2i64,
 
17085
                  OPC_CheckPatternPredicate, 3,
 
17086
                  OPC_EmitConvertToTarget, 3,
 
17087
                  OPC_EmitInteger, MVT::i32, 14, 
 
17088
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17089
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv2i32), 0,
 
17090
                      1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6, 
 
17091
                25, 
 
17092
                  OPC_RecordChild3,
 
17093
                  OPC_CheckChild3Type, MVT::v2i32,
 
17094
                  OPC_CheckType, MVT::v2i64,
 
17095
                  OPC_CheckPatternPredicate, 3,
 
17096
                  OPC_EmitInteger, MVT::i32, 14, 
 
17097
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17098
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv2i64), 0,
 
17099
                      1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
17100
                0, 
 
17101
              75, 
 
17102
                OPC_CheckChild1Type, MVT::v4i16,
 
17103
                OPC_RecordChild2,
 
17104
                OPC_CheckChild2Type, MVT::v4i32,
 
17105
                OPC_Scope, 41, 
 
17106
                  OPC_MoveChild, 3,
 
17107
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17108
                  OPC_RecordChild0,
 
17109
                  OPC_CheckChild0Type, MVT::v4i16,
 
17110
                  OPC_RecordChild1,
 
17111
                  OPC_MoveChild, 1,
 
17112
                  OPC_CheckOpcode, ISD::Constant,
 
17113
                  OPC_MoveParent,
 
17114
                  OPC_CheckType, MVT::v4i16,
 
17115
                  OPC_MoveParent,
 
17116
                  OPC_CheckType, MVT::v4i32,
 
17117
                  OPC_CheckPatternPredicate, 3,
 
17118
                  OPC_EmitConvertToTarget, 3,
 
17119
                  OPC_EmitInteger, MVT::i32, 14, 
 
17120
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17121
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv4i16), 0,
 
17122
                      1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6, 
 
17123
                25, 
 
17124
                  OPC_RecordChild3,
 
17125
                  OPC_CheckChild3Type, MVT::v4i16,
 
17126
                  OPC_CheckType, MVT::v4i32,
 
17127
                  OPC_CheckPatternPredicate, 3,
 
17128
                  OPC_EmitInteger, MVT::i32, 14, 
 
17129
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17130
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv4i32), 0,
 
17131
                      1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
17132
                0, 
 
17133
              75, 
 
17134
                OPC_CheckChild1Type, MVT::v2i32,
 
17135
                OPC_RecordChild2,
 
17136
                OPC_CheckChild2Type, MVT::v2i64,
 
17137
                OPC_Scope, 41, 
 
17138
                  OPC_MoveChild, 3,
 
17139
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17140
                  OPC_RecordChild0,
 
17141
                  OPC_CheckChild0Type, MVT::v2i32,
 
17142
                  OPC_RecordChild1,
 
17143
                  OPC_MoveChild, 1,
 
17144
                  OPC_CheckOpcode, ISD::Constant,
 
17145
                  OPC_MoveParent,
 
17146
                  OPC_CheckType, MVT::v2i32,
 
17147
                  OPC_MoveParent,
 
17148
                  OPC_CheckType, MVT::v2i64,
 
17149
                  OPC_CheckPatternPredicate, 3,
 
17150
                  OPC_EmitConvertToTarget, 3,
 
17151
                  OPC_EmitInteger, MVT::i32, 14, 
 
17152
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17153
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLsluv2i32), 0,
 
17154
                      1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6, 
 
17155
                25, 
 
17156
                  OPC_RecordChild3,
 
17157
                  OPC_CheckChild3Type, MVT::v2i32,
 
17158
                  OPC_CheckType, MVT::v2i64,
 
17159
                  OPC_CheckPatternPredicate, 3,
 
17160
                  OPC_EmitInteger, MVT::i32, 14, 
 
17161
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17162
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv2i64), 0,
 
17163
                      1, MVT::v2i64, 5, 1, 0, 2, 3, 4, 
 
17164
                0, 
 
17165
              30, 
 
17166
                OPC_CheckChild1Type, MVT::v8i16,
 
17167
                OPC_RecordChild2,
 
17168
                OPC_CheckChild2Type, MVT::v8i8,
 
17169
                OPC_RecordChild3,
 
17170
                OPC_CheckChild3Type, MVT::v8i8,
 
17171
                OPC_CheckType, MVT::v8i16,
 
17172
                OPC_CheckPatternPredicate, 3,
 
17173
                OPC_EmitInteger, MVT::i32, 14, 
 
17174
                OPC_EmitRegister, MVT::i32, 0 ,
 
17175
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv8i16), 0,
 
17176
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
17177
              30, 
 
17178
                OPC_CheckChild1Type, MVT::v8i8,
 
17179
                OPC_RecordChild2,
 
17180
                OPC_CheckChild2Type, MVT::v8i16,
 
17181
                OPC_RecordChild3,
 
17182
                OPC_CheckChild3Type, MVT::v8i8,
 
17183
                OPC_CheckType, MVT::v8i16,
 
17184
                OPC_CheckPatternPredicate, 3,
 
17185
                OPC_EmitInteger, MVT::i32, 14, 
 
17186
                OPC_EmitRegister, MVT::i32, 0 ,
 
17187
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSLuv8i16), 0,
 
17188
                    1, MVT::v8i16, 5, 1, 0, 2, 3, 4, 
 
17189
              0, 
 
17190
            54|128,2, 
 
17191
              OPC_CheckInteger, 67, 
 
17192
              OPC_MoveParent,
 
17193
              OPC_RecordChild1,
 
17194
              OPC_Scope, 75, 
 
17195
                OPC_CheckChild1Type, MVT::v4i32,
 
17196
                OPC_RecordChild2,
 
17197
                OPC_CheckChild2Type, MVT::v4i16,
 
17198
                OPC_Scope, 41, 
 
17199
                  OPC_MoveChild, 3,
 
17200
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17201
                  OPC_RecordChild0,
 
17202
                  OPC_CheckChild0Type, MVT::v4i16,
 
17203
                  OPC_RecordChild1,
 
17204
                  OPC_MoveChild, 1,
 
17205
                  OPC_CheckOpcode, ISD::Constant,
 
17206
                  OPC_MoveParent,
 
17207
                  OPC_CheckType, MVT::v4i16,
 
17208
                  OPC_MoveParent,
 
17209
                  OPC_CheckType, MVT::v4i32,
 
17210
                  OPC_CheckPatternPredicate, 3,
 
17211
                  OPC_EmitConvertToTarget, 3,
 
17212
                  OPC_EmitInteger, MVT::i32, 14, 
 
17213
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17214
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv4i16), 0,
 
17215
                      1, MVT::v4i32, 6, 0, 1, 2, 4, 5, 6, 
 
17216
                25, 
 
17217
                  OPC_RecordChild3,
 
17218
                  OPC_CheckChild3Type, MVT::v4i16,
 
17219
                  OPC_CheckType, MVT::v4i32,
 
17220
                  OPC_CheckPatternPredicate, 3,
 
17221
                  OPC_EmitInteger, MVT::i32, 14, 
 
17222
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17223
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv4i32), 0,
 
17224
                      1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
17225
                0, 
 
17226
              75, 
 
17227
                OPC_CheckChild1Type, MVT::v2i64,
 
17228
                OPC_RecordChild2,
 
17229
                OPC_CheckChild2Type, MVT::v2i32,
 
17230
                OPC_Scope, 41, 
 
17231
                  OPC_MoveChild, 3,
 
17232
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17233
                  OPC_RecordChild0,
 
17234
                  OPC_CheckChild0Type, MVT::v2i32,
 
17235
                  OPC_RecordChild1,
 
17236
                  OPC_MoveChild, 1,
 
17237
                  OPC_CheckOpcode, ISD::Constant,
 
17238
                  OPC_MoveParent,
 
17239
                  OPC_CheckType, MVT::v2i32,
 
17240
                  OPC_MoveParent,
 
17241
                  OPC_CheckType, MVT::v2i64,
 
17242
                  OPC_CheckPatternPredicate, 3,
 
17243
                  OPC_EmitConvertToTarget, 3,
 
17244
                  OPC_EmitInteger, MVT::i32, 14, 
 
17245
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17246
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv2i32), 0,
 
17247
                      1, MVT::v2i64, 6, 0, 1, 2, 4, 5, 6, 
 
17248
                25, 
 
17249
                  OPC_RecordChild3,
 
17250
                  OPC_CheckChild3Type, MVT::v2i32,
 
17251
                  OPC_CheckType, MVT::v2i64,
 
17252
                  OPC_CheckPatternPredicate, 3,
 
17253
                  OPC_EmitInteger, MVT::i32, 14, 
 
17254
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17255
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv2i64), 0,
 
17256
                      1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
17257
                0, 
 
17258
              75, 
 
17259
                OPC_CheckChild1Type, MVT::v4i16,
 
17260
                OPC_RecordChild2,
 
17261
                OPC_CheckChild2Type, MVT::v4i32,
 
17262
                OPC_Scope, 41, 
 
17263
                  OPC_MoveChild, 3,
 
17264
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17265
                  OPC_RecordChild0,
 
17266
                  OPC_CheckChild0Type, MVT::v4i16,
 
17267
                  OPC_RecordChild1,
 
17268
                  OPC_MoveChild, 1,
 
17269
                  OPC_CheckOpcode, ISD::Constant,
 
17270
                  OPC_MoveParent,
 
17271
                  OPC_CheckType, MVT::v4i16,
 
17272
                  OPC_MoveParent,
 
17273
                  OPC_CheckType, MVT::v4i32,
 
17274
                  OPC_CheckPatternPredicate, 3,
 
17275
                  OPC_EmitConvertToTarget, 3,
 
17276
                  OPC_EmitInteger, MVT::i32, 14, 
 
17277
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17278
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv4i16), 0,
 
17279
                      1, MVT::v4i32, 6, 1, 0, 2, 4, 5, 6, 
 
17280
                25, 
 
17281
                  OPC_RecordChild3,
 
17282
                  OPC_CheckChild3Type, MVT::v4i16,
 
17283
                  OPC_CheckType, MVT::v4i32,
 
17284
                  OPC_CheckPatternPredicate, 3,
 
17285
                  OPC_EmitInteger, MVT::i32, 14, 
 
17286
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17287
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv4i32), 0,
 
17288
                      1, MVT::v4i32, 5, 1, 0, 2, 3, 4, 
 
17289
                0, 
 
17290
              75, 
 
17291
                OPC_CheckChild1Type, MVT::v2i32,
 
17292
                OPC_RecordChild2,
 
17293
                OPC_CheckChild2Type, MVT::v2i64,
 
17294
                OPC_Scope, 41, 
 
17295
                  OPC_MoveChild, 3,
 
17296
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
17297
                  OPC_RecordChild0,
 
17298
                  OPC_CheckChild0Type, MVT::v2i32,
 
17299
                  OPC_RecordChild1,
 
17300
                  OPC_MoveChild, 1,
 
17301
                  OPC_CheckOpcode, ISD::Constant,
 
17302
                  OPC_MoveParent,
 
17303
                  OPC_CheckType, MVT::v2i32,
 
17304
                  OPC_MoveParent,
 
17305
                  OPC_CheckType, MVT::v2i64,
 
17306
                  OPC_CheckPatternPredicate, 3,
 
17307
                  OPC_EmitConvertToTarget, 3,
 
17308
                  OPC_EmitInteger, MVT::i32, 14, 
 
17309
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17310
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLslv2i32), 0,
 
17311
                      1, MVT::v2i64, 6, 1, 0, 2, 4, 5, 6, 
 
17312
                25, 
 
17313
                  OPC_RecordChild3,
 
17314
                  OPC_CheckChild3Type, MVT::v2i32,
 
17315
                  OPC_CheckType, MVT::v2i64,
 
17316
                  OPC_CheckPatternPredicate, 3,
 
17317
                  OPC_EmitInteger, MVT::i32, 14, 
 
17318
                  OPC_EmitRegister, MVT::i32, 0 ,
 
17319
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQDMLSLv2i64), 0,
 
17320
                      1, MVT::v2i64, 5, 1, 0, 2, 3, 4, 
 
17321
                0, 
 
17322
              0, 
 
17323
            70, 
 
17324
              OPC_CheckInteger, 24, 
 
17325
              OPC_MoveParent,
 
17326
              OPC_RecordChild1,
 
17327
              OPC_Scope, 31, 
 
17328
                OPC_CheckChild1Type, MVT::v2f32,
 
17329
                OPC_RecordChild2,
 
17330
                OPC_MoveChild, 2,
 
17331
                OPC_CheckOpcode, ISD::Constant,
 
17332
                OPC_MoveParent,
 
17333
                OPC_CheckType, MVT::v2i32,
 
17334
                OPC_CheckPatternPredicate, 3,
 
17335
                OPC_EmitConvertToTarget, 1,
 
17336
                OPC_EmitInteger, MVT::i32, 14, 
 
17337
                OPC_EmitRegister, MVT::i32, 0 ,
 
17338
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xsd), 0,
 
17339
                    1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
17340
              31, 
 
17341
                OPC_CheckChild1Type, MVT::v4f32,
 
17342
                OPC_RecordChild2,
 
17343
                OPC_MoveChild, 2,
 
17344
                OPC_CheckOpcode, ISD::Constant,
 
17345
                OPC_MoveParent,
 
17346
                OPC_CheckType, MVT::v4i32,
 
17347
                OPC_CheckPatternPredicate, 3,
 
17348
                OPC_EmitConvertToTarget, 1,
 
17349
                OPC_EmitInteger, MVT::i32, 14, 
 
17350
                OPC_EmitRegister, MVT::i32, 0 ,
 
17351
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xsq), 0,
 
17352
                    1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
17353
              0, 
 
17354
            70, 
 
17355
              OPC_CheckInteger, 25, 
 
17356
              OPC_MoveParent,
 
17357
              OPC_RecordChild1,
 
17358
              OPC_Scope, 31, 
 
17359
                OPC_CheckChild1Type, MVT::v2f32,
 
17360
                OPC_RecordChild2,
 
17361
                OPC_MoveChild, 2,
 
17362
                OPC_CheckOpcode, ISD::Constant,
 
17363
                OPC_MoveParent,
 
17364
                OPC_CheckType, MVT::v2i32,
 
17365
                OPC_CheckPatternPredicate, 3,
 
17366
                OPC_EmitConvertToTarget, 1,
 
17367
                OPC_EmitInteger, MVT::i32, 14, 
 
17368
                OPC_EmitRegister, MVT::i32, 0 ,
 
17369
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xud), 0,
 
17370
                    1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
17371
              31, 
 
17372
                OPC_CheckChild1Type, MVT::v4f32,
 
17373
                OPC_RecordChild2,
 
17374
                OPC_MoveChild, 2,
 
17375
                OPC_CheckOpcode, ISD::Constant,
 
17376
                OPC_MoveParent,
 
17377
                OPC_CheckType, MVT::v4i32,
 
17378
                OPC_CheckPatternPredicate, 3,
 
17379
                OPC_EmitConvertToTarget, 1,
 
17380
                OPC_EmitInteger, MVT::i32, 14, 
 
17381
                OPC_EmitRegister, MVT::i32, 0 ,
 
17382
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2xuq), 0,
 
17383
                    1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
17384
              0, 
 
17385
            70, 
 
17386
              OPC_CheckInteger, 26, 
 
17387
              OPC_MoveParent,
 
17388
              OPC_RecordChild1,
 
17389
              OPC_Scope, 31, 
 
17390
                OPC_CheckChild1Type, MVT::v2i32,
 
17391
                OPC_RecordChild2,
 
17392
                OPC_MoveChild, 2,
 
17393
                OPC_CheckOpcode, ISD::Constant,
 
17394
                OPC_MoveParent,
 
17395
                OPC_CheckType, MVT::v2f32,
 
17396
                OPC_CheckPatternPredicate, 3,
 
17397
                OPC_EmitConvertToTarget, 1,
 
17398
                OPC_EmitInteger, MVT::i32, 14, 
 
17399
                OPC_EmitRegister, MVT::i32, 0 ,
 
17400
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxs2fd), 0,
 
17401
                    1, MVT::v2f32, 4, 0, 2, 3, 4, 
 
17402
              31, 
 
17403
                OPC_CheckChild1Type, MVT::v4i32,
 
17404
                OPC_RecordChild2,
 
17405
                OPC_MoveChild, 2,
 
17406
                OPC_CheckOpcode, ISD::Constant,
 
17407
                OPC_MoveParent,
 
17408
                OPC_CheckType, MVT::v4f32,
 
17409
                OPC_CheckPatternPredicate, 3,
 
17410
                OPC_EmitConvertToTarget, 1,
 
17411
                OPC_EmitInteger, MVT::i32, 14, 
 
17412
                OPC_EmitRegister, MVT::i32, 0 ,
 
17413
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxs2fq), 0,
 
17414
                    1, MVT::v4f32, 4, 0, 2, 3, 4, 
 
17415
              0, 
 
17416
            70, 
 
17417
              OPC_CheckInteger, 27, 
 
17418
              OPC_MoveParent,
 
17419
              OPC_RecordChild1,
 
17420
              OPC_Scope, 31, 
 
17421
                OPC_CheckChild1Type, MVT::v2i32,
 
17422
                OPC_RecordChild2,
 
17423
                OPC_MoveChild, 2,
 
17424
                OPC_CheckOpcode, ISD::Constant,
 
17425
                OPC_MoveParent,
 
17426
                OPC_CheckType, MVT::v2f32,
 
17427
                OPC_CheckPatternPredicate, 3,
 
17428
                OPC_EmitConvertToTarget, 1,
 
17429
                OPC_EmitInteger, MVT::i32, 14, 
 
17430
                OPC_EmitRegister, MVT::i32, 0 ,
 
17431
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxu2fd), 0,
 
17432
                    1, MVT::v2f32, 4, 0, 2, 3, 4, 
 
17433
              31, 
 
17434
                OPC_CheckChild1Type, MVT::v4i32,
 
17435
                OPC_RecordChild2,
 
17436
                OPC_MoveChild, 2,
 
17437
                OPC_CheckOpcode, ISD::Constant,
 
17438
                OPC_MoveParent,
 
17439
                OPC_CheckType, MVT::v4f32,
 
17440
                OPC_CheckPatternPredicate, 3,
 
17441
                OPC_EmitConvertToTarget, 1,
 
17442
                OPC_EmitInteger, MVT::i32, 14, 
 
17443
                OPC_EmitRegister, MVT::i32, 0 ,
 
17444
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTxu2fq), 0,
 
17445
                    1, MVT::v4f32, 4, 0, 2, 3, 4, 
 
17446
              0, 
 
17447
            87, 
 
17448
              OPC_CheckInteger, 17, 
 
17449
              OPC_MoveParent,
 
17450
              OPC_RecordChild1,
 
17451
              OPC_Scope, 26, 
 
17452
                OPC_CheckChild1Type, MVT::v4i16,
 
17453
                OPC_RecordChild2,
 
17454
                OPC_CheckChild2Type, MVT::v4i16,
 
17455
                OPC_CheckType, MVT::v4i32,
 
17456
                OPC_CheckPatternPredicate, 3,
 
17457
                OPC_EmitInteger, MVT::i32, 14, 
 
17458
                OPC_EmitRegister, MVT::i32, 0 ,
 
17459
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLsv4i32), 0,
 
17460
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17461
              26, 
 
17462
                OPC_CheckChild1Type, MVT::v2i32,
 
17463
                OPC_RecordChild2,
 
17464
                OPC_CheckChild2Type, MVT::v2i32,
 
17465
                OPC_CheckType, MVT::v2i64,
 
17466
                OPC_CheckPatternPredicate, 3,
 
17467
                OPC_EmitInteger, MVT::i32, 14, 
 
17468
                OPC_EmitRegister, MVT::i32, 0 ,
 
17469
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLsv2i64), 0,
 
17470
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
17471
              26, 
 
17472
                OPC_CheckChild1Type, MVT::v8i8,
 
17473
                OPC_RecordChild2,
 
17474
                OPC_CheckChild2Type, MVT::v8i8,
 
17475
                OPC_CheckType, MVT::v8i16,
 
17476
                OPC_CheckPatternPredicate, 3,
 
17477
                OPC_EmitInteger, MVT::i32, 14, 
 
17478
                OPC_EmitRegister, MVT::i32, 0 ,
 
17479
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLsv8i16), 0,
 
17480
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17481
              0, 
 
17482
            87, 
 
17483
              OPC_CheckInteger, 18, 
 
17484
              OPC_MoveParent,
 
17485
              OPC_RecordChild1,
 
17486
              OPC_Scope, 26, 
 
17487
                OPC_CheckChild1Type, MVT::v4i16,
 
17488
                OPC_RecordChild2,
 
17489
                OPC_CheckChild2Type, MVT::v4i16,
 
17490
                OPC_CheckType, MVT::v4i32,
 
17491
                OPC_CheckPatternPredicate, 3,
 
17492
                OPC_EmitInteger, MVT::i32, 14, 
 
17493
                OPC_EmitRegister, MVT::i32, 0 ,
 
17494
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLuv4i32), 0,
 
17495
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17496
              26, 
 
17497
                OPC_CheckChild1Type, MVT::v2i32,
 
17498
                OPC_RecordChild2,
 
17499
                OPC_CheckChild2Type, MVT::v2i32,
 
17500
                OPC_CheckType, MVT::v2i64,
 
17501
                OPC_CheckPatternPredicate, 3,
 
17502
                OPC_EmitInteger, MVT::i32, 14, 
 
17503
                OPC_EmitRegister, MVT::i32, 0 ,
 
17504
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLuv2i64), 0,
 
17505
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
17506
              26, 
 
17507
                OPC_CheckChild1Type, MVT::v8i8,
 
17508
                OPC_RecordChild2,
 
17509
                OPC_CheckChild2Type, MVT::v8i8,
 
17510
                OPC_CheckType, MVT::v8i16,
 
17511
                OPC_CheckPatternPredicate, 3,
 
17512
                OPC_EmitInteger, MVT::i32, 14, 
 
17513
                OPC_EmitRegister, MVT::i32, 0 ,
 
17514
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDLuv8i16), 0,
 
17515
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17516
              0, 
 
17517
            40|128,1, 
 
17518
              OPC_CheckInteger, 19, 
 
17519
              OPC_MoveParent,
 
17520
              OPC_RecordChild1,
 
17521
              OPC_Scope, 26, 
 
17522
                OPC_CheckChild1Type, MVT::v8i16,
 
17523
                OPC_RecordChild2,
 
17524
                OPC_CheckChild2Type, MVT::v8i8,
 
17525
                OPC_CheckType, MVT::v8i16,
 
17526
                OPC_CheckPatternPredicate, 3,
 
17527
                OPC_EmitInteger, MVT::i32, 14, 
 
17528
                OPC_EmitRegister, MVT::i32, 0 ,
 
17529
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv8i16), 0,
 
17530
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17531
              26, 
 
17532
                OPC_CheckChild1Type, MVT::v4i32,
 
17533
                OPC_RecordChild2,
 
17534
                OPC_CheckChild2Type, MVT::v4i16,
 
17535
                OPC_CheckType, MVT::v4i32,
 
17536
                OPC_CheckPatternPredicate, 3,
 
17537
                OPC_EmitInteger, MVT::i32, 14, 
 
17538
                OPC_EmitRegister, MVT::i32, 0 ,
 
17539
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv4i32), 0,
 
17540
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17541
              26, 
 
17542
                OPC_CheckChild1Type, MVT::v2i64,
 
17543
                OPC_RecordChild2,
 
17544
                OPC_CheckChild2Type, MVT::v2i32,
 
17545
                OPC_CheckType, MVT::v2i64,
 
17546
                OPC_CheckPatternPredicate, 3,
 
17547
                OPC_EmitInteger, MVT::i32, 14, 
 
17548
                OPC_EmitRegister, MVT::i32, 0 ,
 
17549
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv2i64), 0,
 
17550
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
17551
              26, 
 
17552
                OPC_CheckChild1Type, MVT::v8i8,
 
17553
                OPC_RecordChild2,
 
17554
                OPC_CheckChild2Type, MVT::v8i16,
 
17555
                OPC_CheckType, MVT::v8i16,
 
17556
                OPC_CheckPatternPredicate, 3,
 
17557
                OPC_EmitInteger, MVT::i32, 14, 
 
17558
                OPC_EmitRegister, MVT::i32, 0 ,
 
17559
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv8i16), 0,
 
17560
                    1, MVT::v8i16, 4, 1, 0, 2, 3, 
 
17561
              26, 
 
17562
                OPC_CheckChild1Type, MVT::v4i16,
 
17563
                OPC_RecordChild2,
 
17564
                OPC_CheckChild2Type, MVT::v4i32,
 
17565
                OPC_CheckType, MVT::v4i32,
 
17566
                OPC_CheckPatternPredicate, 3,
 
17567
                OPC_EmitInteger, MVT::i32, 14, 
 
17568
                OPC_EmitRegister, MVT::i32, 0 ,
 
17569
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv4i32), 0,
 
17570
                    1, MVT::v4i32, 4, 1, 0, 2, 3, 
 
17571
              26, 
 
17572
                OPC_CheckChild1Type, MVT::v2i32,
 
17573
                OPC_RecordChild2,
 
17574
                OPC_CheckChild2Type, MVT::v2i64,
 
17575
                OPC_CheckType, MVT::v2i64,
 
17576
                OPC_CheckPatternPredicate, 3,
 
17577
                OPC_EmitInteger, MVT::i32, 14, 
 
17578
                OPC_EmitRegister, MVT::i32, 0 ,
 
17579
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWsv2i64), 0,
 
17580
                    1, MVT::v2i64, 4, 1, 0, 2, 3, 
 
17581
              0, 
 
17582
            40|128,1, 
 
17583
              OPC_CheckInteger, 20, 
 
17584
              OPC_MoveParent,
 
17585
              OPC_RecordChild1,
 
17586
              OPC_Scope, 26, 
 
17587
                OPC_CheckChild1Type, MVT::v8i16,
 
17588
                OPC_RecordChild2,
 
17589
                OPC_CheckChild2Type, MVT::v8i8,
 
17590
                OPC_CheckType, MVT::v8i16,
 
17591
                OPC_CheckPatternPredicate, 3,
 
17592
                OPC_EmitInteger, MVT::i32, 14, 
 
17593
                OPC_EmitRegister, MVT::i32, 0 ,
 
17594
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv8i16), 0,
 
17595
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17596
              26, 
 
17597
                OPC_CheckChild1Type, MVT::v4i32,
 
17598
                OPC_RecordChild2,
 
17599
                OPC_CheckChild2Type, MVT::v4i16,
 
17600
                OPC_CheckType, MVT::v4i32,
 
17601
                OPC_CheckPatternPredicate, 3,
 
17602
                OPC_EmitInteger, MVT::i32, 14, 
 
17603
                OPC_EmitRegister, MVT::i32, 0 ,
 
17604
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv4i32), 0,
 
17605
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17606
              26, 
 
17607
                OPC_CheckChild1Type, MVT::v2i64,
 
17608
                OPC_RecordChild2,
 
17609
                OPC_CheckChild2Type, MVT::v2i32,
 
17610
                OPC_CheckType, MVT::v2i64,
 
17611
                OPC_CheckPatternPredicate, 3,
 
17612
                OPC_EmitInteger, MVT::i32, 14, 
 
17613
                OPC_EmitRegister, MVT::i32, 0 ,
 
17614
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv2i64), 0,
 
17615
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
17616
              26, 
 
17617
                OPC_CheckChild1Type, MVT::v8i8,
 
17618
                OPC_RecordChild2,
 
17619
                OPC_CheckChild2Type, MVT::v8i16,
 
17620
                OPC_CheckType, MVT::v8i16,
 
17621
                OPC_CheckPatternPredicate, 3,
 
17622
                OPC_EmitInteger, MVT::i32, 14, 
 
17623
                OPC_EmitRegister, MVT::i32, 0 ,
 
17624
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv8i16), 0,
 
17625
                    1, MVT::v8i16, 4, 1, 0, 2, 3, 
 
17626
              26, 
 
17627
                OPC_CheckChild1Type, MVT::v4i16,
 
17628
                OPC_RecordChild2,
 
17629
                OPC_CheckChild2Type, MVT::v4i32,
 
17630
                OPC_CheckType, MVT::v4i32,
 
17631
                OPC_CheckPatternPredicate, 3,
 
17632
                OPC_EmitInteger, MVT::i32, 14, 
 
17633
                OPC_EmitRegister, MVT::i32, 0 ,
 
17634
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv4i32), 0,
 
17635
                    1, MVT::v4i32, 4, 1, 0, 2, 3, 
 
17636
              26, 
 
17637
                OPC_CheckChild1Type, MVT::v2i32,
 
17638
                OPC_RecordChild2,
 
17639
                OPC_CheckChild2Type, MVT::v2i64,
 
17640
                OPC_CheckType, MVT::v2i64,
 
17641
                OPC_CheckPatternPredicate, 3,
 
17642
                OPC_EmitInteger, MVT::i32, 14, 
 
17643
                OPC_EmitRegister, MVT::i32, 0 ,
 
17644
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDWuv2i64), 0,
 
17645
                    1, MVT::v2i64, 4, 1, 0, 2, 3, 
 
17646
              0, 
 
17647
            40|128,1, 
 
17648
              OPC_CheckInteger, 28, 
 
17649
              OPC_MoveParent,
 
17650
              OPC_RecordChild1,
 
17651
              OPC_Scope, 26, 
 
17652
                OPC_CheckChild1Type, MVT::v4i16,
 
17653
                OPC_RecordChild2,
 
17654
                OPC_CheckChild2Type, MVT::v4i16,
 
17655
                OPC_CheckType, MVT::v4i16,
 
17656
                OPC_CheckPatternPredicate, 3,
 
17657
                OPC_EmitInteger, MVT::i32, 14, 
 
17658
                OPC_EmitRegister, MVT::i32, 0 ,
 
17659
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv4i16), 0,
 
17660
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
17661
              26, 
 
17662
                OPC_CheckChild1Type, MVT::v2i32,
 
17663
                OPC_RecordChild2,
 
17664
                OPC_CheckChild2Type, MVT::v2i32,
 
17665
                OPC_CheckType, MVT::v2i32,
 
17666
                OPC_CheckPatternPredicate, 3,
 
17667
                OPC_EmitInteger, MVT::i32, 14, 
 
17668
                OPC_EmitRegister, MVT::i32, 0 ,
 
17669
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv2i32), 0,
 
17670
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
17671
              26, 
 
17672
                OPC_CheckChild1Type, MVT::v8i16,
 
17673
                OPC_RecordChild2,
 
17674
                OPC_CheckChild2Type, MVT::v8i16,
 
17675
                OPC_CheckType, MVT::v8i16,
 
17676
                OPC_CheckPatternPredicate, 3,
 
17677
                OPC_EmitInteger, MVT::i32, 14, 
 
17678
                OPC_EmitRegister, MVT::i32, 0 ,
 
17679
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv8i16), 0,
 
17680
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17681
              26, 
 
17682
                OPC_CheckChild1Type, MVT::v4i32,
 
17683
                OPC_RecordChild2,
 
17684
                OPC_CheckChild2Type, MVT::v4i32,
 
17685
                OPC_CheckType, MVT::v4i32,
 
17686
                OPC_CheckPatternPredicate, 3,
 
17687
                OPC_EmitInteger, MVT::i32, 14, 
 
17688
                OPC_EmitRegister, MVT::i32, 0 ,
 
17689
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv4i32), 0,
 
17690
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17691
              26, 
 
17692
                OPC_CheckChild1Type, MVT::v8i8,
 
17693
                OPC_RecordChild2,
 
17694
                OPC_CheckChild2Type, MVT::v8i8,
 
17695
                OPC_CheckType, MVT::v8i8,
 
17696
                OPC_CheckPatternPredicate, 3,
 
17697
                OPC_EmitInteger, MVT::i32, 14, 
 
17698
                OPC_EmitRegister, MVT::i32, 0 ,
 
17699
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv8i8), 0,
 
17700
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
17701
              26, 
 
17702
                OPC_CheckChild1Type, MVT::v16i8,
 
17703
                OPC_RecordChild2,
 
17704
                OPC_CheckChild2Type, MVT::v16i8,
 
17705
                OPC_CheckType, MVT::v16i8,
 
17706
                OPC_CheckPatternPredicate, 3,
 
17707
                OPC_EmitInteger, MVT::i32, 14, 
 
17708
                OPC_EmitRegister, MVT::i32, 0 ,
 
17709
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDsv16i8), 0,
 
17710
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
17711
              0, 
 
17712
            40|128,1, 
 
17713
              OPC_CheckInteger, 29, 
 
17714
              OPC_MoveParent,
 
17715
              OPC_RecordChild1,
 
17716
              OPC_Scope, 26, 
 
17717
                OPC_CheckChild1Type, MVT::v4i16,
 
17718
                OPC_RecordChild2,
 
17719
                OPC_CheckChild2Type, MVT::v4i16,
 
17720
                OPC_CheckType, MVT::v4i16,
 
17721
                OPC_CheckPatternPredicate, 3,
 
17722
                OPC_EmitInteger, MVT::i32, 14, 
 
17723
                OPC_EmitRegister, MVT::i32, 0 ,
 
17724
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv4i16), 0,
 
17725
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
17726
              26, 
 
17727
                OPC_CheckChild1Type, MVT::v2i32,
 
17728
                OPC_RecordChild2,
 
17729
                OPC_CheckChild2Type, MVT::v2i32,
 
17730
                OPC_CheckType, MVT::v2i32,
 
17731
                OPC_CheckPatternPredicate, 3,
 
17732
                OPC_EmitInteger, MVT::i32, 14, 
 
17733
                OPC_EmitRegister, MVT::i32, 0 ,
 
17734
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv2i32), 0,
 
17735
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
17736
              26, 
 
17737
                OPC_CheckChild1Type, MVT::v8i16,
 
17738
                OPC_RecordChild2,
 
17739
                OPC_CheckChild2Type, MVT::v8i16,
 
17740
                OPC_CheckType, MVT::v8i16,
 
17741
                OPC_CheckPatternPredicate, 3,
 
17742
                OPC_EmitInteger, MVT::i32, 14, 
 
17743
                OPC_EmitRegister, MVT::i32, 0 ,
 
17744
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv8i16), 0,
 
17745
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17746
              26, 
 
17747
                OPC_CheckChild1Type, MVT::v4i32,
 
17748
                OPC_RecordChild2,
 
17749
                OPC_CheckChild2Type, MVT::v4i32,
 
17750
                OPC_CheckType, MVT::v4i32,
 
17751
                OPC_CheckPatternPredicate, 3,
 
17752
                OPC_EmitInteger, MVT::i32, 14, 
 
17753
                OPC_EmitRegister, MVT::i32, 0 ,
 
17754
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv4i32), 0,
 
17755
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17756
              26, 
 
17757
                OPC_CheckChild1Type, MVT::v8i8,
 
17758
                OPC_RecordChild2,
 
17759
                OPC_CheckChild2Type, MVT::v8i8,
 
17760
                OPC_CheckType, MVT::v8i8,
 
17761
                OPC_CheckPatternPredicate, 3,
 
17762
                OPC_EmitInteger, MVT::i32, 14, 
 
17763
                OPC_EmitRegister, MVT::i32, 0 ,
 
17764
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv8i8), 0,
 
17765
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
17766
              26, 
 
17767
                OPC_CheckChild1Type, MVT::v16i8,
 
17768
                OPC_RecordChild2,
 
17769
                OPC_CheckChild2Type, MVT::v16i8,
 
17770
                OPC_CheckType, MVT::v16i8,
 
17771
                OPC_CheckPatternPredicate, 3,
 
17772
                OPC_EmitInteger, MVT::i32, 14, 
 
17773
                OPC_EmitRegister, MVT::i32, 0 ,
 
17774
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHADDuv16i8), 0,
 
17775
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
17776
              0, 
 
17777
            40|128,1, 
 
17778
              OPC_CheckInteger, 91, 
 
17779
              OPC_MoveParent,
 
17780
              OPC_RecordChild1,
 
17781
              OPC_Scope, 26, 
 
17782
                OPC_CheckChild1Type, MVT::v4i16,
 
17783
                OPC_RecordChild2,
 
17784
                OPC_CheckChild2Type, MVT::v4i16,
 
17785
                OPC_CheckType, MVT::v4i16,
 
17786
                OPC_CheckPatternPredicate, 3,
 
17787
                OPC_EmitInteger, MVT::i32, 14, 
 
17788
                OPC_EmitRegister, MVT::i32, 0 ,
 
17789
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv4i16), 0,
 
17790
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
17791
              26, 
 
17792
                OPC_CheckChild1Type, MVT::v2i32,
 
17793
                OPC_RecordChild2,
 
17794
                OPC_CheckChild2Type, MVT::v2i32,
 
17795
                OPC_CheckType, MVT::v2i32,
 
17796
                OPC_CheckPatternPredicate, 3,
 
17797
                OPC_EmitInteger, MVT::i32, 14, 
 
17798
                OPC_EmitRegister, MVT::i32, 0 ,
 
17799
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv2i32), 0,
 
17800
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
17801
              26, 
 
17802
                OPC_CheckChild1Type, MVT::v8i16,
 
17803
                OPC_RecordChild2,
 
17804
                OPC_CheckChild2Type, MVT::v8i16,
 
17805
                OPC_CheckType, MVT::v8i16,
 
17806
                OPC_CheckPatternPredicate, 3,
 
17807
                OPC_EmitInteger, MVT::i32, 14, 
 
17808
                OPC_EmitRegister, MVT::i32, 0 ,
 
17809
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv8i16), 0,
 
17810
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17811
              26, 
 
17812
                OPC_CheckChild1Type, MVT::v4i32,
 
17813
                OPC_RecordChild2,
 
17814
                OPC_CheckChild2Type, MVT::v4i32,
 
17815
                OPC_CheckType, MVT::v4i32,
 
17816
                OPC_CheckPatternPredicate, 3,
 
17817
                OPC_EmitInteger, MVT::i32, 14, 
 
17818
                OPC_EmitRegister, MVT::i32, 0 ,
 
17819
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv4i32), 0,
 
17820
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17821
              26, 
 
17822
                OPC_CheckChild1Type, MVT::v8i8,
 
17823
                OPC_RecordChild2,
 
17824
                OPC_CheckChild2Type, MVT::v8i8,
 
17825
                OPC_CheckType, MVT::v8i8,
 
17826
                OPC_CheckPatternPredicate, 3,
 
17827
                OPC_EmitInteger, MVT::i32, 14, 
 
17828
                OPC_EmitRegister, MVT::i32, 0 ,
 
17829
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv8i8), 0,
 
17830
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
17831
              26, 
 
17832
                OPC_CheckChild1Type, MVT::v16i8,
 
17833
                OPC_RecordChild2,
 
17834
                OPC_CheckChild2Type, MVT::v16i8,
 
17835
                OPC_CheckType, MVT::v16i8,
 
17836
                OPC_CheckPatternPredicate, 3,
 
17837
                OPC_EmitInteger, MVT::i32, 14, 
 
17838
                OPC_EmitRegister, MVT::i32, 0 ,
 
17839
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDsv16i8), 0,
 
17840
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
17841
              0, 
 
17842
            40|128,1, 
 
17843
              OPC_CheckInteger, 92, 
 
17844
              OPC_MoveParent,
 
17845
              OPC_RecordChild1,
 
17846
              OPC_Scope, 26, 
 
17847
                OPC_CheckChild1Type, MVT::v4i16,
 
17848
                OPC_RecordChild2,
 
17849
                OPC_CheckChild2Type, MVT::v4i16,
 
17850
                OPC_CheckType, MVT::v4i16,
 
17851
                OPC_CheckPatternPredicate, 3,
 
17852
                OPC_EmitInteger, MVT::i32, 14, 
 
17853
                OPC_EmitRegister, MVT::i32, 0 ,
 
17854
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv4i16), 0,
 
17855
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
17856
              26, 
 
17857
                OPC_CheckChild1Type, MVT::v2i32,
 
17858
                OPC_RecordChild2,
 
17859
                OPC_CheckChild2Type, MVT::v2i32,
 
17860
                OPC_CheckType, MVT::v2i32,
 
17861
                OPC_CheckPatternPredicate, 3,
 
17862
                OPC_EmitInteger, MVT::i32, 14, 
 
17863
                OPC_EmitRegister, MVT::i32, 0 ,
 
17864
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv2i32), 0,
 
17865
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
17866
              26, 
 
17867
                OPC_CheckChild1Type, MVT::v8i16,
 
17868
                OPC_RecordChild2,
 
17869
                OPC_CheckChild2Type, MVT::v8i16,
 
17870
                OPC_CheckType, MVT::v8i16,
 
17871
                OPC_CheckPatternPredicate, 3,
 
17872
                OPC_EmitInteger, MVT::i32, 14, 
 
17873
                OPC_EmitRegister, MVT::i32, 0 ,
 
17874
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv8i16), 0,
 
17875
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17876
              26, 
 
17877
                OPC_CheckChild1Type, MVT::v4i32,
 
17878
                OPC_RecordChild2,
 
17879
                OPC_CheckChild2Type, MVT::v4i32,
 
17880
                OPC_CheckType, MVT::v4i32,
 
17881
                OPC_CheckPatternPredicate, 3,
 
17882
                OPC_EmitInteger, MVT::i32, 14, 
 
17883
                OPC_EmitRegister, MVT::i32, 0 ,
 
17884
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv4i32), 0,
 
17885
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17886
              26, 
 
17887
                OPC_CheckChild1Type, MVT::v8i8,
 
17888
                OPC_RecordChild2,
 
17889
                OPC_CheckChild2Type, MVT::v8i8,
 
17890
                OPC_CheckType, MVT::v8i8,
 
17891
                OPC_CheckPatternPredicate, 3,
 
17892
                OPC_EmitInteger, MVT::i32, 14, 
 
17893
                OPC_EmitRegister, MVT::i32, 0 ,
 
17894
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv8i8), 0,
 
17895
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
17896
              26, 
 
17897
                OPC_CheckChild1Type, MVT::v16i8,
 
17898
                OPC_RecordChild2,
 
17899
                OPC_CheckChild2Type, MVT::v16i8,
 
17900
                OPC_CheckType, MVT::v16i8,
 
17901
                OPC_CheckPatternPredicate, 3,
 
17902
                OPC_EmitInteger, MVT::i32, 14, 
 
17903
                OPC_EmitRegister, MVT::i32, 0 ,
 
17904
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRHADDuv16i8), 0,
 
17905
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
17906
              0, 
 
17907
            94|128,1, 
 
17908
              OPC_CheckInteger, 64, 
 
17909
              OPC_MoveParent,
 
17910
              OPC_RecordChild1,
 
17911
              OPC_Scope, 26, 
 
17912
                OPC_CheckChild1Type, MVT::v4i16,
 
17913
                OPC_RecordChild2,
 
17914
                OPC_CheckChild2Type, MVT::v4i16,
 
17915
                OPC_CheckType, MVT::v4i16,
 
17916
                OPC_CheckPatternPredicate, 3,
 
17917
                OPC_EmitInteger, MVT::i32, 14, 
 
17918
                OPC_EmitRegister, MVT::i32, 0 ,
 
17919
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv4i16), 0,
 
17920
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
17921
              26, 
 
17922
                OPC_CheckChild1Type, MVT::v2i32,
 
17923
                OPC_RecordChild2,
 
17924
                OPC_CheckChild2Type, MVT::v2i32,
 
17925
                OPC_CheckType, MVT::v2i32,
 
17926
                OPC_CheckPatternPredicate, 3,
 
17927
                OPC_EmitInteger, MVT::i32, 14, 
 
17928
                OPC_EmitRegister, MVT::i32, 0 ,
 
17929
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv2i32), 0,
 
17930
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
17931
              26, 
 
17932
                OPC_CheckChild1Type, MVT::v8i16,
 
17933
                OPC_RecordChild2,
 
17934
                OPC_CheckChild2Type, MVT::v8i16,
 
17935
                OPC_CheckType, MVT::v8i16,
 
17936
                OPC_CheckPatternPredicate, 3,
 
17937
                OPC_EmitInteger, MVT::i32, 14, 
 
17938
                OPC_EmitRegister, MVT::i32, 0 ,
 
17939
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv8i16), 0,
 
17940
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
17941
              26, 
 
17942
                OPC_CheckChild1Type, MVT::v4i32,
 
17943
                OPC_RecordChild2,
 
17944
                OPC_CheckChild2Type, MVT::v4i32,
 
17945
                OPC_CheckType, MVT::v4i32,
 
17946
                OPC_CheckPatternPredicate, 3,
 
17947
                OPC_EmitInteger, MVT::i32, 14, 
 
17948
                OPC_EmitRegister, MVT::i32, 0 ,
 
17949
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv4i32), 0,
 
17950
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
17951
              26, 
 
17952
                OPC_CheckChild1Type, MVT::v8i8,
 
17953
                OPC_RecordChild2,
 
17954
                OPC_CheckChild2Type, MVT::v8i8,
 
17955
                OPC_CheckType, MVT::v8i8,
 
17956
                OPC_CheckPatternPredicate, 3,
 
17957
                OPC_EmitInteger, MVT::i32, 14, 
 
17958
                OPC_EmitRegister, MVT::i32, 0 ,
 
17959
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv8i8), 0,
 
17960
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
17961
              26, 
 
17962
                OPC_CheckChild1Type, MVT::v16i8,
 
17963
                OPC_RecordChild2,
 
17964
                OPC_CheckChild2Type, MVT::v16i8,
 
17965
                OPC_CheckType, MVT::v16i8,
 
17966
                OPC_CheckPatternPredicate, 3,
 
17967
                OPC_EmitInteger, MVT::i32, 14, 
 
17968
                OPC_EmitRegister, MVT::i32, 0 ,
 
17969
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv16i8), 0,
 
17970
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
17971
              26, 
 
17972
                OPC_CheckChild1Type, MVT::v1i64,
 
17973
                OPC_RecordChild2,
 
17974
                OPC_CheckChild2Type, MVT::v1i64,
 
17975
                OPC_CheckType, MVT::v1i64,
 
17976
                OPC_CheckPatternPredicate, 3,
 
17977
                OPC_EmitInteger, MVT::i32, 14, 
 
17978
                OPC_EmitRegister, MVT::i32, 0 ,
 
17979
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv1i64), 0,
 
17980
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
17981
              26, 
 
17982
                OPC_CheckChild1Type, MVT::v2i64,
 
17983
                OPC_RecordChild2,
 
17984
                OPC_CheckChild2Type, MVT::v2i64,
 
17985
                OPC_CheckType, MVT::v2i64,
 
17986
                OPC_CheckPatternPredicate, 3,
 
17987
                OPC_EmitInteger, MVT::i32, 14, 
 
17988
                OPC_EmitRegister, MVT::i32, 0 ,
 
17989
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDsv2i64), 0,
 
17990
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
17991
              0, 
 
17992
            94|128,1, 
 
17993
              OPC_CheckInteger, 65, 
 
17994
              OPC_MoveParent,
 
17995
              OPC_RecordChild1,
 
17996
              OPC_Scope, 26, 
 
17997
                OPC_CheckChild1Type, MVT::v4i16,
 
17998
                OPC_RecordChild2,
 
17999
                OPC_CheckChild2Type, MVT::v4i16,
 
18000
                OPC_CheckType, MVT::v4i16,
 
18001
                OPC_CheckPatternPredicate, 3,
 
18002
                OPC_EmitInteger, MVT::i32, 14, 
 
18003
                OPC_EmitRegister, MVT::i32, 0 ,
 
18004
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv4i16), 0,
 
18005
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18006
              26, 
 
18007
                OPC_CheckChild1Type, MVT::v2i32,
 
18008
                OPC_RecordChild2,
 
18009
                OPC_CheckChild2Type, MVT::v2i32,
 
18010
                OPC_CheckType, MVT::v2i32,
 
18011
                OPC_CheckPatternPredicate, 3,
 
18012
                OPC_EmitInteger, MVT::i32, 14, 
 
18013
                OPC_EmitRegister, MVT::i32, 0 ,
 
18014
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv2i32), 0,
 
18015
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18016
              26, 
 
18017
                OPC_CheckChild1Type, MVT::v8i16,
 
18018
                OPC_RecordChild2,
 
18019
                OPC_CheckChild2Type, MVT::v8i16,
 
18020
                OPC_CheckType, MVT::v8i16,
 
18021
                OPC_CheckPatternPredicate, 3,
 
18022
                OPC_EmitInteger, MVT::i32, 14, 
 
18023
                OPC_EmitRegister, MVT::i32, 0 ,
 
18024
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv8i16), 0,
 
18025
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18026
              26, 
 
18027
                OPC_CheckChild1Type, MVT::v4i32,
 
18028
                OPC_RecordChild2,
 
18029
                OPC_CheckChild2Type, MVT::v4i32,
 
18030
                OPC_CheckType, MVT::v4i32,
 
18031
                OPC_CheckPatternPredicate, 3,
 
18032
                OPC_EmitInteger, MVT::i32, 14, 
 
18033
                OPC_EmitRegister, MVT::i32, 0 ,
 
18034
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv4i32), 0,
 
18035
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18036
              26, 
 
18037
                OPC_CheckChild1Type, MVT::v8i8,
 
18038
                OPC_RecordChild2,
 
18039
                OPC_CheckChild2Type, MVT::v8i8,
 
18040
                OPC_CheckType, MVT::v8i8,
 
18041
                OPC_CheckPatternPredicate, 3,
 
18042
                OPC_EmitInteger, MVT::i32, 14, 
 
18043
                OPC_EmitRegister, MVT::i32, 0 ,
 
18044
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv8i8), 0,
 
18045
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18046
              26, 
 
18047
                OPC_CheckChild1Type, MVT::v16i8,
 
18048
                OPC_RecordChild2,
 
18049
                OPC_CheckChild2Type, MVT::v16i8,
 
18050
                OPC_CheckType, MVT::v16i8,
 
18051
                OPC_CheckPatternPredicate, 3,
 
18052
                OPC_EmitInteger, MVT::i32, 14, 
 
18053
                OPC_EmitRegister, MVT::i32, 0 ,
 
18054
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv16i8), 0,
 
18055
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18056
              26, 
 
18057
                OPC_CheckChild1Type, MVT::v1i64,
 
18058
                OPC_RecordChild2,
 
18059
                OPC_CheckChild2Type, MVT::v1i64,
 
18060
                OPC_CheckType, MVT::v1i64,
 
18061
                OPC_CheckPatternPredicate, 3,
 
18062
                OPC_EmitInteger, MVT::i32, 14, 
 
18063
                OPC_EmitRegister, MVT::i32, 0 ,
 
18064
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv1i64), 0,
 
18065
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
18066
              26, 
 
18067
                OPC_CheckChild1Type, MVT::v2i64,
 
18068
                OPC_RecordChild2,
 
18069
                OPC_CheckChild2Type, MVT::v2i64,
 
18070
                OPC_CheckType, MVT::v2i64,
 
18071
                OPC_CheckPatternPredicate, 3,
 
18072
                OPC_EmitInteger, MVT::i32, 14, 
 
18073
                OPC_EmitRegister, MVT::i32, 0 ,
 
18074
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQADDuv2i64), 0,
 
18075
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18076
              0, 
 
18077
            87, 
 
18078
              OPC_CheckInteger, 16, 
 
18079
              OPC_MoveParent,
 
18080
              OPC_RecordChild1,
 
18081
              OPC_Scope, 26, 
 
18082
                OPC_CheckChild1Type, MVT::v8i16,
 
18083
                OPC_RecordChild2,
 
18084
                OPC_CheckChild2Type, MVT::v8i16,
 
18085
                OPC_CheckType, MVT::v8i8,
 
18086
                OPC_CheckPatternPredicate, 3,
 
18087
                OPC_EmitInteger, MVT::i32, 14, 
 
18088
                OPC_EmitRegister, MVT::i32, 0 ,
 
18089
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDHNv8i8), 0,
 
18090
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18091
              26, 
 
18092
                OPC_CheckChild1Type, MVT::v4i32,
 
18093
                OPC_RecordChild2,
 
18094
                OPC_CheckChild2Type, MVT::v4i32,
 
18095
                OPC_CheckType, MVT::v4i16,
 
18096
                OPC_CheckPatternPredicate, 3,
 
18097
                OPC_EmitInteger, MVT::i32, 14, 
 
18098
                OPC_EmitRegister, MVT::i32, 0 ,
 
18099
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDHNv4i16), 0,
 
18100
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18101
              26, 
 
18102
                OPC_CheckChild1Type, MVT::v2i64,
 
18103
                OPC_RecordChild2,
 
18104
                OPC_CheckChild2Type, MVT::v2i64,
 
18105
                OPC_CheckType, MVT::v2i32,
 
18106
                OPC_CheckPatternPredicate, 3,
 
18107
                OPC_EmitInteger, MVT::i32, 14, 
 
18108
                OPC_EmitRegister, MVT::i32, 0 ,
 
18109
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDHNv2i32), 0,
 
18110
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18111
              0, 
 
18112
            87, 
 
18113
              OPC_CheckInteger, 88, 
 
18114
              OPC_MoveParent,
 
18115
              OPC_RecordChild1,
 
18116
              OPC_Scope, 26, 
 
18117
                OPC_CheckChild1Type, MVT::v8i16,
 
18118
                OPC_RecordChild2,
 
18119
                OPC_CheckChild2Type, MVT::v8i16,
 
18120
                OPC_CheckType, MVT::v8i8,
 
18121
                OPC_CheckPatternPredicate, 3,
 
18122
                OPC_EmitInteger, MVT::i32, 14, 
 
18123
                OPC_EmitRegister, MVT::i32, 0 ,
 
18124
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRADDHNv8i8), 0,
 
18125
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18126
              26, 
 
18127
                OPC_CheckChild1Type, MVT::v4i32,
 
18128
                OPC_RecordChild2,
 
18129
                OPC_CheckChild2Type, MVT::v4i32,
 
18130
                OPC_CheckType, MVT::v4i16,
 
18131
                OPC_CheckPatternPredicate, 3,
 
18132
                OPC_EmitInteger, MVT::i32, 14, 
 
18133
                OPC_EmitRegister, MVT::i32, 0 ,
 
18134
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRADDHNv4i16), 0,
 
18135
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18136
              26, 
 
18137
                OPC_CheckChild1Type, MVT::v2i64,
 
18138
                OPC_RecordChild2,
 
18139
                OPC_CheckChild2Type, MVT::v2i64,
 
18140
                OPC_CheckType, MVT::v2i32,
 
18141
                OPC_CheckPatternPredicate, 3,
 
18142
                OPC_EmitInteger, MVT::i32, 14, 
 
18143
                OPC_EmitRegister, MVT::i32, 0 ,
 
18144
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRADDHNv2i32), 0,
 
18145
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18146
              0, 
 
18147
            60, 
 
18148
              OPC_CheckInteger, 53, 
 
18149
              OPC_MoveParent,
 
18150
              OPC_RecordChild1,
 
18151
              OPC_Scope, 26, 
 
18152
                OPC_CheckChild1Type, MVT::v8i8,
 
18153
                OPC_RecordChild2,
 
18154
                OPC_CheckChild2Type, MVT::v8i8,
 
18155
                OPC_CheckType, MVT::v8i8,
 
18156
                OPC_CheckPatternPredicate, 3,
 
18157
                OPC_EmitInteger, MVT::i32, 14, 
 
18158
                OPC_EmitRegister, MVT::i32, 0 ,
 
18159
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULpd), 0,
 
18160
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18161
              26, 
 
18162
                OPC_CheckChild1Type, MVT::v16i8,
 
18163
                OPC_RecordChild2,
 
18164
                OPC_CheckChild2Type, MVT::v16i8,
 
18165
                OPC_CheckType, MVT::v16i8,
 
18166
                OPC_CheckPatternPredicate, 3,
 
18167
                OPC_EmitInteger, MVT::i32, 14, 
 
18168
                OPC_EmitRegister, MVT::i32, 0 ,
 
18169
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULpq), 0,
 
18170
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18171
              0, 
 
18172
            30, 
 
18173
              OPC_CheckInteger, 50, 
 
18174
              OPC_MoveParent,
 
18175
              OPC_RecordChild1,
 
18176
              OPC_CheckChild1Type, MVT::v8i8,
 
18177
              OPC_RecordChild2,
 
18178
              OPC_CheckChild2Type, MVT::v8i8,
 
18179
              OPC_CheckType, MVT::v8i16,
 
18180
              OPC_CheckPatternPredicate, 3,
 
18181
              OPC_EmitInteger, MVT::i32, 14, 
 
18182
              OPC_EmitRegister, MVT::i32, 0 ,
 
18183
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULLp), 0,
 
18184
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18185
            87, 
 
18186
              OPC_CheckInteger, 113, 
 
18187
              OPC_MoveParent,
 
18188
              OPC_RecordChild1,
 
18189
              OPC_Scope, 26, 
 
18190
                OPC_CheckChild1Type, MVT::v4i16,
 
18191
                OPC_RecordChild2,
 
18192
                OPC_CheckChild2Type, MVT::v4i16,
 
18193
                OPC_CheckType, MVT::v4i32,
 
18194
                OPC_CheckPatternPredicate, 3,
 
18195
                OPC_EmitInteger, MVT::i32, 14, 
 
18196
                OPC_EmitRegister, MVT::i32, 0 ,
 
18197
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLsv4i32), 0,
 
18198
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18199
              26, 
 
18200
                OPC_CheckChild1Type, MVT::v2i32,
 
18201
                OPC_RecordChild2,
 
18202
                OPC_CheckChild2Type, MVT::v2i32,
 
18203
                OPC_CheckType, MVT::v2i64,
 
18204
                OPC_CheckPatternPredicate, 3,
 
18205
                OPC_EmitInteger, MVT::i32, 14, 
 
18206
                OPC_EmitRegister, MVT::i32, 0 ,
 
18207
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLsv2i64), 0,
 
18208
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18209
              26, 
 
18210
                OPC_CheckChild1Type, MVT::v8i8,
 
18211
                OPC_RecordChild2,
 
18212
                OPC_CheckChild2Type, MVT::v8i8,
 
18213
                OPC_CheckType, MVT::v8i16,
 
18214
                OPC_CheckPatternPredicate, 3,
 
18215
                OPC_EmitInteger, MVT::i32, 14, 
 
18216
                OPC_EmitRegister, MVT::i32, 0 ,
 
18217
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLsv8i16), 0,
 
18218
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18219
              0, 
 
18220
            87, 
 
18221
              OPC_CheckInteger, 114, 
 
18222
              OPC_MoveParent,
 
18223
              OPC_RecordChild1,
 
18224
              OPC_Scope, 26, 
 
18225
                OPC_CheckChild1Type, MVT::v4i16,
 
18226
                OPC_RecordChild2,
 
18227
                OPC_CheckChild2Type, MVT::v4i16,
 
18228
                OPC_CheckType, MVT::v4i32,
 
18229
                OPC_CheckPatternPredicate, 3,
 
18230
                OPC_EmitInteger, MVT::i32, 14, 
 
18231
                OPC_EmitRegister, MVT::i32, 0 ,
 
18232
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLuv4i32), 0,
 
18233
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18234
              26, 
 
18235
                OPC_CheckChild1Type, MVT::v2i32,
 
18236
                OPC_RecordChild2,
 
18237
                OPC_CheckChild2Type, MVT::v2i32,
 
18238
                OPC_CheckType, MVT::v2i64,
 
18239
                OPC_CheckPatternPredicate, 3,
 
18240
                OPC_EmitInteger, MVT::i32, 14, 
 
18241
                OPC_EmitRegister, MVT::i32, 0 ,
 
18242
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLuv2i64), 0,
 
18243
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18244
              26, 
 
18245
                OPC_CheckChild1Type, MVT::v8i8,
 
18246
                OPC_RecordChild2,
 
18247
                OPC_CheckChild2Type, MVT::v8i8,
 
18248
                OPC_CheckType, MVT::v8i16,
 
18249
                OPC_CheckPatternPredicate, 3,
 
18250
                OPC_EmitInteger, MVT::i32, 14, 
 
18251
                OPC_EmitRegister, MVT::i32, 0 ,
 
18252
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBLuv8i16), 0,
 
18253
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18254
              0, 
 
18255
            87, 
 
18256
              OPC_CheckInteger, 115, 
 
18257
              OPC_MoveParent,
 
18258
              OPC_RecordChild1,
 
18259
              OPC_Scope, 26, 
 
18260
                OPC_CheckChild1Type, MVT::v8i16,
 
18261
                OPC_RecordChild2,
 
18262
                OPC_CheckChild2Type, MVT::v8i8,
 
18263
                OPC_CheckType, MVT::v8i16,
 
18264
                OPC_CheckPatternPredicate, 3,
 
18265
                OPC_EmitInteger, MVT::i32, 14, 
 
18266
                OPC_EmitRegister, MVT::i32, 0 ,
 
18267
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWsv8i16), 0,
 
18268
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18269
              26, 
 
18270
                OPC_CheckChild1Type, MVT::v4i32,
 
18271
                OPC_RecordChild2,
 
18272
                OPC_CheckChild2Type, MVT::v4i16,
 
18273
                OPC_CheckType, MVT::v4i32,
 
18274
                OPC_CheckPatternPredicate, 3,
 
18275
                OPC_EmitInteger, MVT::i32, 14, 
 
18276
                OPC_EmitRegister, MVT::i32, 0 ,
 
18277
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWsv4i32), 0,
 
18278
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18279
              26, 
 
18280
                OPC_CheckChild1Type, MVT::v2i64,
 
18281
                OPC_RecordChild2,
 
18282
                OPC_CheckChild2Type, MVT::v2i32,
 
18283
                OPC_CheckType, MVT::v2i64,
 
18284
                OPC_CheckPatternPredicate, 3,
 
18285
                OPC_EmitInteger, MVT::i32, 14, 
 
18286
                OPC_EmitRegister, MVT::i32, 0 ,
 
18287
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWsv2i64), 0,
 
18288
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18289
              0, 
 
18290
            87, 
 
18291
              OPC_CheckInteger, 116, 
 
18292
              OPC_MoveParent,
 
18293
              OPC_RecordChild1,
 
18294
              OPC_Scope, 26, 
 
18295
                OPC_CheckChild1Type, MVT::v8i16,
 
18296
                OPC_RecordChild2,
 
18297
                OPC_CheckChild2Type, MVT::v8i8,
 
18298
                OPC_CheckType, MVT::v8i16,
 
18299
                OPC_CheckPatternPredicate, 3,
 
18300
                OPC_EmitInteger, MVT::i32, 14, 
 
18301
                OPC_EmitRegister, MVT::i32, 0 ,
 
18302
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWuv8i16), 0,
 
18303
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18304
              26, 
 
18305
                OPC_CheckChild1Type, MVT::v4i32,
 
18306
                OPC_RecordChild2,
 
18307
                OPC_CheckChild2Type, MVT::v4i16,
 
18308
                OPC_CheckType, MVT::v4i32,
 
18309
                OPC_CheckPatternPredicate, 3,
 
18310
                OPC_EmitInteger, MVT::i32, 14, 
 
18311
                OPC_EmitRegister, MVT::i32, 0 ,
 
18312
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWuv4i32), 0,
 
18313
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18314
              26, 
 
18315
                OPC_CheckChild1Type, MVT::v2i64,
 
18316
                OPC_RecordChild2,
 
18317
                OPC_CheckChild2Type, MVT::v2i32,
 
18318
                OPC_CheckType, MVT::v2i64,
 
18319
                OPC_CheckPatternPredicate, 3,
 
18320
                OPC_EmitInteger, MVT::i32, 14, 
 
18321
                OPC_EmitRegister, MVT::i32, 0 ,
 
18322
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBWuv2i64), 0,
 
18323
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18324
              0, 
 
18325
            40|128,1, 
 
18326
              OPC_CheckInteger, 30, 
 
18327
              OPC_MoveParent,
 
18328
              OPC_RecordChild1,
 
18329
              OPC_Scope, 26, 
 
18330
                OPC_CheckChild1Type, MVT::v4i16,
 
18331
                OPC_RecordChild2,
 
18332
                OPC_CheckChild2Type, MVT::v4i16,
 
18333
                OPC_CheckType, MVT::v4i16,
 
18334
                OPC_CheckPatternPredicate, 3,
 
18335
                OPC_EmitInteger, MVT::i32, 14, 
 
18336
                OPC_EmitRegister, MVT::i32, 0 ,
 
18337
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv4i16), 0,
 
18338
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18339
              26, 
 
18340
                OPC_CheckChild1Type, MVT::v2i32,
 
18341
                OPC_RecordChild2,
 
18342
                OPC_CheckChild2Type, MVT::v2i32,
 
18343
                OPC_CheckType, MVT::v2i32,
 
18344
                OPC_CheckPatternPredicate, 3,
 
18345
                OPC_EmitInteger, MVT::i32, 14, 
 
18346
                OPC_EmitRegister, MVT::i32, 0 ,
 
18347
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv2i32), 0,
 
18348
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18349
              26, 
 
18350
                OPC_CheckChild1Type, MVT::v8i16,
 
18351
                OPC_RecordChild2,
 
18352
                OPC_CheckChild2Type, MVT::v8i16,
 
18353
                OPC_CheckType, MVT::v8i16,
 
18354
                OPC_CheckPatternPredicate, 3,
 
18355
                OPC_EmitInteger, MVT::i32, 14, 
 
18356
                OPC_EmitRegister, MVT::i32, 0 ,
 
18357
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv8i16), 0,
 
18358
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18359
              26, 
 
18360
                OPC_CheckChild1Type, MVT::v4i32,
 
18361
                OPC_RecordChild2,
 
18362
                OPC_CheckChild2Type, MVT::v4i32,
 
18363
                OPC_CheckType, MVT::v4i32,
 
18364
                OPC_CheckPatternPredicate, 3,
 
18365
                OPC_EmitInteger, MVT::i32, 14, 
 
18366
                OPC_EmitRegister, MVT::i32, 0 ,
 
18367
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv4i32), 0,
 
18368
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18369
              26, 
 
18370
                OPC_CheckChild1Type, MVT::v8i8,
 
18371
                OPC_RecordChild2,
 
18372
                OPC_CheckChild2Type, MVT::v8i8,
 
18373
                OPC_CheckType, MVT::v8i8,
 
18374
                OPC_CheckPatternPredicate, 3,
 
18375
                OPC_EmitInteger, MVT::i32, 14, 
 
18376
                OPC_EmitRegister, MVT::i32, 0 ,
 
18377
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv8i8), 0,
 
18378
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18379
              26, 
 
18380
                OPC_CheckChild1Type, MVT::v16i8,
 
18381
                OPC_RecordChild2,
 
18382
                OPC_CheckChild2Type, MVT::v16i8,
 
18383
                OPC_CheckType, MVT::v16i8,
 
18384
                OPC_CheckPatternPredicate, 3,
 
18385
                OPC_EmitInteger, MVT::i32, 14, 
 
18386
                OPC_EmitRegister, MVT::i32, 0 ,
 
18387
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBsv16i8), 0,
 
18388
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18389
              0, 
 
18390
            40|128,1, 
 
18391
              OPC_CheckInteger, 31, 
 
18392
              OPC_MoveParent,
 
18393
              OPC_RecordChild1,
 
18394
              OPC_Scope, 26, 
 
18395
                OPC_CheckChild1Type, MVT::v4i16,
 
18396
                OPC_RecordChild2,
 
18397
                OPC_CheckChild2Type, MVT::v4i16,
 
18398
                OPC_CheckType, MVT::v4i16,
 
18399
                OPC_CheckPatternPredicate, 3,
 
18400
                OPC_EmitInteger, MVT::i32, 14, 
 
18401
                OPC_EmitRegister, MVT::i32, 0 ,
 
18402
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv4i16), 0,
 
18403
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18404
              26, 
 
18405
                OPC_CheckChild1Type, MVT::v2i32,
 
18406
                OPC_RecordChild2,
 
18407
                OPC_CheckChild2Type, MVT::v2i32,
 
18408
                OPC_CheckType, MVT::v2i32,
 
18409
                OPC_CheckPatternPredicate, 3,
 
18410
                OPC_EmitInteger, MVT::i32, 14, 
 
18411
                OPC_EmitRegister, MVT::i32, 0 ,
 
18412
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv2i32), 0,
 
18413
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18414
              26, 
 
18415
                OPC_CheckChild1Type, MVT::v8i16,
 
18416
                OPC_RecordChild2,
 
18417
                OPC_CheckChild2Type, MVT::v8i16,
 
18418
                OPC_CheckType, MVT::v8i16,
 
18419
                OPC_CheckPatternPredicate, 3,
 
18420
                OPC_EmitInteger, MVT::i32, 14, 
 
18421
                OPC_EmitRegister, MVT::i32, 0 ,
 
18422
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv8i16), 0,
 
18423
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18424
              26, 
 
18425
                OPC_CheckChild1Type, MVT::v4i32,
 
18426
                OPC_RecordChild2,
 
18427
                OPC_CheckChild2Type, MVT::v4i32,
 
18428
                OPC_CheckType, MVT::v4i32,
 
18429
                OPC_CheckPatternPredicate, 3,
 
18430
                OPC_EmitInteger, MVT::i32, 14, 
 
18431
                OPC_EmitRegister, MVT::i32, 0 ,
 
18432
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv4i32), 0,
 
18433
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18434
              26, 
 
18435
                OPC_CheckChild1Type, MVT::v8i8,
 
18436
                OPC_RecordChild2,
 
18437
                OPC_CheckChild2Type, MVT::v8i8,
 
18438
                OPC_CheckType, MVT::v8i8,
 
18439
                OPC_CheckPatternPredicate, 3,
 
18440
                OPC_EmitInteger, MVT::i32, 14, 
 
18441
                OPC_EmitRegister, MVT::i32, 0 ,
 
18442
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv8i8), 0,
 
18443
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18444
              26, 
 
18445
                OPC_CheckChild1Type, MVT::v16i8,
 
18446
                OPC_RecordChild2,
 
18447
                OPC_CheckChild2Type, MVT::v16i8,
 
18448
                OPC_CheckType, MVT::v16i8,
 
18449
                OPC_CheckPatternPredicate, 3,
 
18450
                OPC_EmitInteger, MVT::i32, 14, 
 
18451
                OPC_EmitRegister, MVT::i32, 0 ,
 
18452
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VHSUBuv16i8), 0,
 
18453
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18454
              0, 
 
18455
            94|128,1, 
 
18456
              OPC_CheckInteger, 86, 
 
18457
              OPC_MoveParent,
 
18458
              OPC_RecordChild1,
 
18459
              OPC_Scope, 26, 
 
18460
                OPC_CheckChild1Type, MVT::v4i16,
 
18461
                OPC_RecordChild2,
 
18462
                OPC_CheckChild2Type, MVT::v4i16,
 
18463
                OPC_CheckType, MVT::v4i16,
 
18464
                OPC_CheckPatternPredicate, 3,
 
18465
                OPC_EmitInteger, MVT::i32, 14, 
 
18466
                OPC_EmitRegister, MVT::i32, 0 ,
 
18467
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv4i16), 0,
 
18468
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18469
              26, 
 
18470
                OPC_CheckChild1Type, MVT::v2i32,
 
18471
                OPC_RecordChild2,
 
18472
                OPC_CheckChild2Type, MVT::v2i32,
 
18473
                OPC_CheckType, MVT::v2i32,
 
18474
                OPC_CheckPatternPredicate, 3,
 
18475
                OPC_EmitInteger, MVT::i32, 14, 
 
18476
                OPC_EmitRegister, MVT::i32, 0 ,
 
18477
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv2i32), 0,
 
18478
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18479
              26, 
 
18480
                OPC_CheckChild1Type, MVT::v8i16,
 
18481
                OPC_RecordChild2,
 
18482
                OPC_CheckChild2Type, MVT::v8i16,
 
18483
                OPC_CheckType, MVT::v8i16,
 
18484
                OPC_CheckPatternPredicate, 3,
 
18485
                OPC_EmitInteger, MVT::i32, 14, 
 
18486
                OPC_EmitRegister, MVT::i32, 0 ,
 
18487
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv8i16), 0,
 
18488
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18489
              26, 
 
18490
                OPC_CheckChild1Type, MVT::v4i32,
 
18491
                OPC_RecordChild2,
 
18492
                OPC_CheckChild2Type, MVT::v4i32,
 
18493
                OPC_CheckType, MVT::v4i32,
 
18494
                OPC_CheckPatternPredicate, 3,
 
18495
                OPC_EmitInteger, MVT::i32, 14, 
 
18496
                OPC_EmitRegister, MVT::i32, 0 ,
 
18497
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv4i32), 0,
 
18498
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18499
              26, 
 
18500
                OPC_CheckChild1Type, MVT::v8i8,
 
18501
                OPC_RecordChild2,
 
18502
                OPC_CheckChild2Type, MVT::v8i8,
 
18503
                OPC_CheckType, MVT::v8i8,
 
18504
                OPC_CheckPatternPredicate, 3,
 
18505
                OPC_EmitInteger, MVT::i32, 14, 
 
18506
                OPC_EmitRegister, MVT::i32, 0 ,
 
18507
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv8i8), 0,
 
18508
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18509
              26, 
 
18510
                OPC_CheckChild1Type, MVT::v16i8,
 
18511
                OPC_RecordChild2,
 
18512
                OPC_CheckChild2Type, MVT::v16i8,
 
18513
                OPC_CheckType, MVT::v16i8,
 
18514
                OPC_CheckPatternPredicate, 3,
 
18515
                OPC_EmitInteger, MVT::i32, 14, 
 
18516
                OPC_EmitRegister, MVT::i32, 0 ,
 
18517
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv16i8), 0,
 
18518
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18519
              26, 
 
18520
                OPC_CheckChild1Type, MVT::v1i64,
 
18521
                OPC_RecordChild2,
 
18522
                OPC_CheckChild2Type, MVT::v1i64,
 
18523
                OPC_CheckType, MVT::v1i64,
 
18524
                OPC_CheckPatternPredicate, 3,
 
18525
                OPC_EmitInteger, MVT::i32, 14, 
 
18526
                OPC_EmitRegister, MVT::i32, 0 ,
 
18527
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv1i64), 0,
 
18528
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
18529
              26, 
 
18530
                OPC_CheckChild1Type, MVT::v2i64,
 
18531
                OPC_RecordChild2,
 
18532
                OPC_CheckChild2Type, MVT::v2i64,
 
18533
                OPC_CheckType, MVT::v2i64,
 
18534
                OPC_CheckPatternPredicate, 3,
 
18535
                OPC_EmitInteger, MVT::i32, 14, 
 
18536
                OPC_EmitRegister, MVT::i32, 0 ,
 
18537
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBsv2i64), 0,
 
18538
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18539
              0, 
 
18540
            94|128,1, 
 
18541
              OPC_CheckInteger, 87, 
 
18542
              OPC_MoveParent,
 
18543
              OPC_RecordChild1,
 
18544
              OPC_Scope, 26, 
 
18545
                OPC_CheckChild1Type, MVT::v4i16,
 
18546
                OPC_RecordChild2,
 
18547
                OPC_CheckChild2Type, MVT::v4i16,
 
18548
                OPC_CheckType, MVT::v4i16,
 
18549
                OPC_CheckPatternPredicate, 3,
 
18550
                OPC_EmitInteger, MVT::i32, 14, 
 
18551
                OPC_EmitRegister, MVT::i32, 0 ,
 
18552
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv4i16), 0,
 
18553
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18554
              26, 
 
18555
                OPC_CheckChild1Type, MVT::v2i32,
 
18556
                OPC_RecordChild2,
 
18557
                OPC_CheckChild2Type, MVT::v2i32,
 
18558
                OPC_CheckType, MVT::v2i32,
 
18559
                OPC_CheckPatternPredicate, 3,
 
18560
                OPC_EmitInteger, MVT::i32, 14, 
 
18561
                OPC_EmitRegister, MVT::i32, 0 ,
 
18562
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv2i32), 0,
 
18563
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18564
              26, 
 
18565
                OPC_CheckChild1Type, MVT::v8i16,
 
18566
                OPC_RecordChild2,
 
18567
                OPC_CheckChild2Type, MVT::v8i16,
 
18568
                OPC_CheckType, MVT::v8i16,
 
18569
                OPC_CheckPatternPredicate, 3,
 
18570
                OPC_EmitInteger, MVT::i32, 14, 
 
18571
                OPC_EmitRegister, MVT::i32, 0 ,
 
18572
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv8i16), 0,
 
18573
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18574
              26, 
 
18575
                OPC_CheckChild1Type, MVT::v4i32,
 
18576
                OPC_RecordChild2,
 
18577
                OPC_CheckChild2Type, MVT::v4i32,
 
18578
                OPC_CheckType, MVT::v4i32,
 
18579
                OPC_CheckPatternPredicate, 3,
 
18580
                OPC_EmitInteger, MVT::i32, 14, 
 
18581
                OPC_EmitRegister, MVT::i32, 0 ,
 
18582
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv4i32), 0,
 
18583
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18584
              26, 
 
18585
                OPC_CheckChild1Type, MVT::v8i8,
 
18586
                OPC_RecordChild2,
 
18587
                OPC_CheckChild2Type, MVT::v8i8,
 
18588
                OPC_CheckType, MVT::v8i8,
 
18589
                OPC_CheckPatternPredicate, 3,
 
18590
                OPC_EmitInteger, MVT::i32, 14, 
 
18591
                OPC_EmitRegister, MVT::i32, 0 ,
 
18592
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv8i8), 0,
 
18593
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18594
              26, 
 
18595
                OPC_CheckChild1Type, MVT::v16i8,
 
18596
                OPC_RecordChild2,
 
18597
                OPC_CheckChild2Type, MVT::v16i8,
 
18598
                OPC_CheckType, MVT::v16i8,
 
18599
                OPC_CheckPatternPredicate, 3,
 
18600
                OPC_EmitInteger, MVT::i32, 14, 
 
18601
                OPC_EmitRegister, MVT::i32, 0 ,
 
18602
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv16i8), 0,
 
18603
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18604
              26, 
 
18605
                OPC_CheckChild1Type, MVT::v1i64,
 
18606
                OPC_RecordChild2,
 
18607
                OPC_CheckChild2Type, MVT::v1i64,
 
18608
                OPC_CheckType, MVT::v1i64,
 
18609
                OPC_CheckPatternPredicate, 3,
 
18610
                OPC_EmitInteger, MVT::i32, 14, 
 
18611
                OPC_EmitRegister, MVT::i32, 0 ,
 
18612
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv1i64), 0,
 
18613
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
18614
              26, 
 
18615
                OPC_CheckChild1Type, MVT::v2i64,
 
18616
                OPC_RecordChild2,
 
18617
                OPC_CheckChild2Type, MVT::v2i64,
 
18618
                OPC_CheckType, MVT::v2i64,
 
18619
                OPC_CheckPatternPredicate, 3,
 
18620
                OPC_EmitInteger, MVT::i32, 14, 
 
18621
                OPC_EmitRegister, MVT::i32, 0 ,
 
18622
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSUBuv2i64), 0,
 
18623
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18624
              0, 
 
18625
            87, 
 
18626
              OPC_CheckInteger, 112, 
 
18627
              OPC_MoveParent,
 
18628
              OPC_RecordChild1,
 
18629
              OPC_Scope, 26, 
 
18630
                OPC_CheckChild1Type, MVT::v8i16,
 
18631
                OPC_RecordChild2,
 
18632
                OPC_CheckChild2Type, MVT::v8i16,
 
18633
                OPC_CheckType, MVT::v8i8,
 
18634
                OPC_CheckPatternPredicate, 3,
 
18635
                OPC_EmitInteger, MVT::i32, 14, 
 
18636
                OPC_EmitRegister, MVT::i32, 0 ,
 
18637
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBHNv8i8), 0,
 
18638
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18639
              26, 
 
18640
                OPC_CheckChild1Type, MVT::v4i32,
 
18641
                OPC_RecordChild2,
 
18642
                OPC_CheckChild2Type, MVT::v4i32,
 
18643
                OPC_CheckType, MVT::v4i16,
 
18644
                OPC_CheckPatternPredicate, 3,
 
18645
                OPC_EmitInteger, MVT::i32, 14, 
 
18646
                OPC_EmitRegister, MVT::i32, 0 ,
 
18647
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBHNv4i16), 0,
 
18648
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18649
              26, 
 
18650
                OPC_CheckChild1Type, MVT::v2i64,
 
18651
                OPC_RecordChild2,
 
18652
                OPC_CheckChild2Type, MVT::v2i64,
 
18653
                OPC_CheckType, MVT::v2i32,
 
18654
                OPC_CheckPatternPredicate, 3,
 
18655
                OPC_EmitInteger, MVT::i32, 14, 
 
18656
                OPC_EmitRegister, MVT::i32, 0 ,
 
18657
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBHNv2i32), 0,
 
18658
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18659
              0, 
 
18660
            87, 
 
18661
              OPC_CheckInteger, 98, 
 
18662
              OPC_MoveParent,
 
18663
              OPC_RecordChild1,
 
18664
              OPC_Scope, 26, 
 
18665
                OPC_CheckChild1Type, MVT::v8i16,
 
18666
                OPC_RecordChild2,
 
18667
                OPC_CheckChild2Type, MVT::v8i16,
 
18668
                OPC_CheckType, MVT::v8i8,
 
18669
                OPC_CheckPatternPredicate, 3,
 
18670
                OPC_EmitInteger, MVT::i32, 14, 
 
18671
                OPC_EmitRegister, MVT::i32, 0 ,
 
18672
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSUBHNv8i8), 0,
 
18673
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18674
              26, 
 
18675
                OPC_CheckChild1Type, MVT::v4i32,
 
18676
                OPC_RecordChild2,
 
18677
                OPC_CheckChild2Type, MVT::v4i32,
 
18678
                OPC_CheckType, MVT::v4i16,
 
18679
                OPC_CheckPatternPredicate, 3,
 
18680
                OPC_EmitInteger, MVT::i32, 14, 
 
18681
                OPC_EmitRegister, MVT::i32, 0 ,
 
18682
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSUBHNv4i16), 0,
 
18683
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18684
              26, 
 
18685
                OPC_CheckChild1Type, MVT::v2i64,
 
18686
                OPC_RecordChild2,
 
18687
                OPC_CheckChild2Type, MVT::v2i64,
 
18688
                OPC_CheckType, MVT::v2i32,
 
18689
                OPC_CheckPatternPredicate, 3,
 
18690
                OPC_EmitInteger, MVT::i32, 14, 
 
18691
                OPC_EmitRegister, MVT::i32, 0 ,
 
18692
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSUBHNv2i32), 0,
 
18693
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18694
              0, 
 
18695
            24, 
 
18696
              OPC_CheckInteger, 12, 
 
18697
              OPC_MoveParent,
 
18698
              OPC_RecordChild1,
 
18699
              OPC_RecordChild2,
 
18700
              OPC_CheckPatternPredicate, 3,
 
18701
              OPC_EmitInteger, MVT::i32, 14, 
 
18702
              OPC_EmitRegister, MVT::i32, 0 ,
 
18703
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGEd), 0,
 
18704
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18705
            24, 
 
18706
              OPC_CheckInteger, 13, 
 
18707
              OPC_MoveParent,
 
18708
              OPC_RecordChild1,
 
18709
              OPC_RecordChild2,
 
18710
              OPC_CheckPatternPredicate, 3,
 
18711
              OPC_EmitInteger, MVT::i32, 14, 
 
18712
              OPC_EmitRegister, MVT::i32, 0 ,
 
18713
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGEq), 0,
 
18714
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18715
            24, 
 
18716
              OPC_CheckInteger, 14, 
 
18717
              OPC_MoveParent,
 
18718
              OPC_RecordChild1,
 
18719
              OPC_RecordChild2,
 
18720
              OPC_CheckPatternPredicate, 3,
 
18721
              OPC_EmitInteger, MVT::i32, 14, 
 
18722
              OPC_EmitRegister, MVT::i32, 0 ,
 
18723
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGTd), 0,
 
18724
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18725
            24, 
 
18726
              OPC_CheckInteger, 15, 
 
18727
              OPC_MoveParent,
 
18728
              OPC_RecordChild1,
 
18729
              OPC_RecordChild2,
 
18730
              OPC_CheckPatternPredicate, 3,
 
18731
              OPC_EmitInteger, MVT::i32, 14, 
 
18732
              OPC_EmitRegister, MVT::i32, 0 ,
 
18733
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VACGTq), 0,
 
18734
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18735
            94|128,1, 
 
18736
              OPC_CheckInteger, 9, 
 
18737
              OPC_MoveParent,
 
18738
              OPC_RecordChild1,
 
18739
              OPC_Scope, 26, 
 
18740
                OPC_CheckChild1Type, MVT::v4i16,
 
18741
                OPC_RecordChild2,
 
18742
                OPC_CheckChild2Type, MVT::v4i16,
 
18743
                OPC_CheckType, MVT::v4i16,
 
18744
                OPC_CheckPatternPredicate, 3,
 
18745
                OPC_EmitInteger, MVT::i32, 14, 
 
18746
                OPC_EmitRegister, MVT::i32, 0 ,
 
18747
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv4i16), 0,
 
18748
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18749
              26, 
 
18750
                OPC_CheckChild1Type, MVT::v2i32,
 
18751
                OPC_RecordChild2,
 
18752
                OPC_CheckChild2Type, MVT::v2i32,
 
18753
                OPC_CheckType, MVT::v2i32,
 
18754
                OPC_CheckPatternPredicate, 3,
 
18755
                OPC_EmitInteger, MVT::i32, 14, 
 
18756
                OPC_EmitRegister, MVT::i32, 0 ,
 
18757
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv2i32), 0,
 
18758
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18759
              26, 
 
18760
                OPC_CheckChild1Type, MVT::v8i16,
 
18761
                OPC_RecordChild2,
 
18762
                OPC_CheckChild2Type, MVT::v8i16,
 
18763
                OPC_CheckType, MVT::v8i16,
 
18764
                OPC_CheckPatternPredicate, 3,
 
18765
                OPC_EmitInteger, MVT::i32, 14, 
 
18766
                OPC_EmitRegister, MVT::i32, 0 ,
 
18767
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv8i16), 0,
 
18768
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18769
              26, 
 
18770
                OPC_CheckChild1Type, MVT::v4i32,
 
18771
                OPC_RecordChild2,
 
18772
                OPC_CheckChild2Type, MVT::v4i32,
 
18773
                OPC_CheckType, MVT::v4i32,
 
18774
                OPC_CheckPatternPredicate, 3,
 
18775
                OPC_EmitInteger, MVT::i32, 14, 
 
18776
                OPC_EmitRegister, MVT::i32, 0 ,
 
18777
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv4i32), 0,
 
18778
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18779
              26, 
 
18780
                OPC_CheckChild1Type, MVT::v8i8,
 
18781
                OPC_RecordChild2,
 
18782
                OPC_CheckChild2Type, MVT::v8i8,
 
18783
                OPC_CheckType, MVT::v8i8,
 
18784
                OPC_CheckPatternPredicate, 3,
 
18785
                OPC_EmitInteger, MVT::i32, 14, 
 
18786
                OPC_EmitRegister, MVT::i32, 0 ,
 
18787
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv8i8), 0,
 
18788
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18789
              26, 
 
18790
                OPC_CheckChild1Type, MVT::v16i8,
 
18791
                OPC_RecordChild2,
 
18792
                OPC_CheckChild2Type, MVT::v16i8,
 
18793
                OPC_CheckType, MVT::v16i8,
 
18794
                OPC_CheckPatternPredicate, 3,
 
18795
                OPC_EmitInteger, MVT::i32, 14, 
 
18796
                OPC_EmitRegister, MVT::i32, 0 ,
 
18797
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDsv16i8), 0,
 
18798
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18799
              26, 
 
18800
                OPC_CheckChild1Type, MVT::v2f32,
 
18801
                OPC_RecordChild2,
 
18802
                OPC_CheckChild2Type, MVT::v2f32,
 
18803
                OPC_CheckType, MVT::v2f32,
 
18804
                OPC_CheckPatternPredicate, 3,
 
18805
                OPC_EmitInteger, MVT::i32, 14, 
 
18806
                OPC_EmitRegister, MVT::i32, 0 ,
 
18807
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDfd), 0,
 
18808
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
18809
              26, 
 
18810
                OPC_CheckChild1Type, MVT::v4f32,
 
18811
                OPC_RecordChild2,
 
18812
                OPC_CheckChild2Type, MVT::v4f32,
 
18813
                OPC_CheckType, MVT::v4f32,
 
18814
                OPC_CheckPatternPredicate, 3,
 
18815
                OPC_EmitInteger, MVT::i32, 14, 
 
18816
                OPC_EmitRegister, MVT::i32, 0 ,
 
18817
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDfq), 0,
 
18818
                    1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
18819
              0, 
 
18820
            40|128,1, 
 
18821
              OPC_CheckInteger, 10, 
 
18822
              OPC_MoveParent,
 
18823
              OPC_RecordChild1,
 
18824
              OPC_Scope, 26, 
 
18825
                OPC_CheckChild1Type, MVT::v4i16,
 
18826
                OPC_RecordChild2,
 
18827
                OPC_CheckChild2Type, MVT::v4i16,
 
18828
                OPC_CheckType, MVT::v4i16,
 
18829
                OPC_CheckPatternPredicate, 3,
 
18830
                OPC_EmitInteger, MVT::i32, 14, 
 
18831
                OPC_EmitRegister, MVT::i32, 0 ,
 
18832
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv4i16), 0,
 
18833
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
18834
              26, 
 
18835
                OPC_CheckChild1Type, MVT::v2i32,
 
18836
                OPC_RecordChild2,
 
18837
                OPC_CheckChild2Type, MVT::v2i32,
 
18838
                OPC_CheckType, MVT::v2i32,
 
18839
                OPC_CheckPatternPredicate, 3,
 
18840
                OPC_EmitInteger, MVT::i32, 14, 
 
18841
                OPC_EmitRegister, MVT::i32, 0 ,
 
18842
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv2i32), 0,
 
18843
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
18844
              26, 
 
18845
                OPC_CheckChild1Type, MVT::v8i16,
 
18846
                OPC_RecordChild2,
 
18847
                OPC_CheckChild2Type, MVT::v8i16,
 
18848
                OPC_CheckType, MVT::v8i16,
 
18849
                OPC_CheckPatternPredicate, 3,
 
18850
                OPC_EmitInteger, MVT::i32, 14, 
 
18851
                OPC_EmitRegister, MVT::i32, 0 ,
 
18852
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv8i16), 0,
 
18853
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18854
              26, 
 
18855
                OPC_CheckChild1Type, MVT::v4i32,
 
18856
                OPC_RecordChild2,
 
18857
                OPC_CheckChild2Type, MVT::v4i32,
 
18858
                OPC_CheckType, MVT::v4i32,
 
18859
                OPC_CheckPatternPredicate, 3,
 
18860
                OPC_EmitInteger, MVT::i32, 14, 
 
18861
                OPC_EmitRegister, MVT::i32, 0 ,
 
18862
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv4i32), 0,
 
18863
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18864
              26, 
 
18865
                OPC_CheckChild1Type, MVT::v8i8,
 
18866
                OPC_RecordChild2,
 
18867
                OPC_CheckChild2Type, MVT::v8i8,
 
18868
                OPC_CheckType, MVT::v8i8,
 
18869
                OPC_CheckPatternPredicate, 3,
 
18870
                OPC_EmitInteger, MVT::i32, 14, 
 
18871
                OPC_EmitRegister, MVT::i32, 0 ,
 
18872
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv8i8), 0,
 
18873
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
18874
              26, 
 
18875
                OPC_CheckChild1Type, MVT::v16i8,
 
18876
                OPC_RecordChild2,
 
18877
                OPC_CheckChild2Type, MVT::v16i8,
 
18878
                OPC_CheckType, MVT::v16i8,
 
18879
                OPC_CheckPatternPredicate, 3,
 
18880
                OPC_EmitInteger, MVT::i32, 14, 
 
18881
                OPC_EmitRegister, MVT::i32, 0 ,
 
18882
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDuv16i8), 0,
 
18883
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
18884
              0, 
 
18885
            87, 
 
18886
              OPC_CheckInteger, 7, 
 
18887
              OPC_MoveParent,
 
18888
              OPC_RecordChild1,
 
18889
              OPC_Scope, 26, 
 
18890
                OPC_CheckChild1Type, MVT::v4i16,
 
18891
                OPC_RecordChild2,
 
18892
                OPC_CheckChild2Type, MVT::v4i16,
 
18893
                OPC_CheckType, MVT::v4i32,
 
18894
                OPC_CheckPatternPredicate, 3,
 
18895
                OPC_EmitInteger, MVT::i32, 14, 
 
18896
                OPC_EmitRegister, MVT::i32, 0 ,
 
18897
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLsv4i32), 0,
 
18898
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18899
              26, 
 
18900
                OPC_CheckChild1Type, MVT::v2i32,
 
18901
                OPC_RecordChild2,
 
18902
                OPC_CheckChild2Type, MVT::v2i32,
 
18903
                OPC_CheckType, MVT::v2i64,
 
18904
                OPC_CheckPatternPredicate, 3,
 
18905
                OPC_EmitInteger, MVT::i32, 14, 
 
18906
                OPC_EmitRegister, MVT::i32, 0 ,
 
18907
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLsv2i64), 0,
 
18908
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18909
              26, 
 
18910
                OPC_CheckChild1Type, MVT::v8i8,
 
18911
                OPC_RecordChild2,
 
18912
                OPC_CheckChild2Type, MVT::v8i8,
 
18913
                OPC_CheckType, MVT::v8i16,
 
18914
                OPC_CheckPatternPredicate, 3,
 
18915
                OPC_EmitInteger, MVT::i32, 14, 
 
18916
                OPC_EmitRegister, MVT::i32, 0 ,
 
18917
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLsv8i16), 0,
 
18918
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18919
              0, 
 
18920
            87, 
 
18921
              OPC_CheckInteger, 8, 
 
18922
              OPC_MoveParent,
 
18923
              OPC_RecordChild1,
 
18924
              OPC_Scope, 26, 
 
18925
                OPC_CheckChild1Type, MVT::v4i16,
 
18926
                OPC_RecordChild2,
 
18927
                OPC_CheckChild2Type, MVT::v4i16,
 
18928
                OPC_CheckType, MVT::v4i32,
 
18929
                OPC_CheckPatternPredicate, 3,
 
18930
                OPC_EmitInteger, MVT::i32, 14, 
 
18931
                OPC_EmitRegister, MVT::i32, 0 ,
 
18932
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLuv4i32), 0,
 
18933
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
18934
              26, 
 
18935
                OPC_CheckChild1Type, MVT::v2i32,
 
18936
                OPC_RecordChild2,
 
18937
                OPC_CheckChild2Type, MVT::v2i32,
 
18938
                OPC_CheckType, MVT::v2i64,
 
18939
                OPC_CheckPatternPredicate, 3,
 
18940
                OPC_EmitInteger, MVT::i32, 14, 
 
18941
                OPC_EmitRegister, MVT::i32, 0 ,
 
18942
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLuv2i64), 0,
 
18943
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
18944
              26, 
 
18945
                OPC_CheckChild1Type, MVT::v8i8,
 
18946
                OPC_RecordChild2,
 
18947
                OPC_CheckChild2Type, MVT::v8i8,
 
18948
                OPC_CheckType, MVT::v8i16,
 
18949
                OPC_CheckPatternPredicate, 3,
 
18950
                OPC_EmitInteger, MVT::i32, 14, 
 
18951
                OPC_EmitRegister, MVT::i32, 0 ,
 
18952
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABDLuv8i16), 0,
 
18953
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
18954
              0, 
 
18955
            64|128,1, 
 
18956
              OPC_CheckInteger, 5, 
 
18957
              OPC_MoveParent,
 
18958
              OPC_RecordChild1,
 
18959
              OPC_Scope, 30, 
 
18960
                OPC_CheckChild1Type, MVT::v8i8,
 
18961
                OPC_RecordChild2,
 
18962
                OPC_CheckChild2Type, MVT::v8i8,
 
18963
                OPC_RecordChild3,
 
18964
                OPC_CheckChild3Type, MVT::v8i8,
 
18965
                OPC_CheckType, MVT::v8i8,
 
18966
                OPC_CheckPatternPredicate, 3,
 
18967
                OPC_EmitInteger, MVT::i32, 14, 
 
18968
                OPC_EmitRegister, MVT::i32, 0 ,
 
18969
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv8i8), 0,
 
18970
                    1, MVT::v8i8, 5, 0, 1, 2, 3, 4, 
 
18971
              30, 
 
18972
                OPC_CheckChild1Type, MVT::v4i16,
 
18973
                OPC_RecordChild2,
 
18974
                OPC_CheckChild2Type, MVT::v4i16,
 
18975
                OPC_RecordChild3,
 
18976
                OPC_CheckChild3Type, MVT::v4i16,
 
18977
                OPC_CheckType, MVT::v4i16,
 
18978
                OPC_CheckPatternPredicate, 3,
 
18979
                OPC_EmitInteger, MVT::i32, 14, 
 
18980
                OPC_EmitRegister, MVT::i32, 0 ,
 
18981
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv4i16), 0,
 
18982
                    1, MVT::v4i16, 5, 0, 1, 2, 3, 4, 
 
18983
              30, 
 
18984
                OPC_CheckChild1Type, MVT::v2i32,
 
18985
                OPC_RecordChild2,
 
18986
                OPC_CheckChild2Type, MVT::v2i32,
 
18987
                OPC_RecordChild3,
 
18988
                OPC_CheckChild3Type, MVT::v2i32,
 
18989
                OPC_CheckType, MVT::v2i32,
 
18990
                OPC_CheckPatternPredicate, 3,
 
18991
                OPC_EmitInteger, MVT::i32, 14, 
 
18992
                OPC_EmitRegister, MVT::i32, 0 ,
 
18993
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv2i32), 0,
 
18994
                    1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
18995
              30, 
 
18996
                OPC_CheckChild1Type, MVT::v16i8,
 
18997
                OPC_RecordChild2,
 
18998
                OPC_CheckChild2Type, MVT::v16i8,
 
18999
                OPC_RecordChild3,
 
19000
                OPC_CheckChild3Type, MVT::v16i8,
 
19001
                OPC_CheckType, MVT::v16i8,
 
19002
                OPC_CheckPatternPredicate, 3,
 
19003
                OPC_EmitInteger, MVT::i32, 14, 
 
19004
                OPC_EmitRegister, MVT::i32, 0 ,
 
19005
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv16i8), 0,
 
19006
                    1, MVT::v16i8, 5, 0, 1, 2, 3, 4, 
 
19007
              30, 
 
19008
                OPC_CheckChild1Type, MVT::v8i16,
 
19009
                OPC_RecordChild2,
 
19010
                OPC_CheckChild2Type, MVT::v8i16,
 
19011
                OPC_RecordChild3,
 
19012
                OPC_CheckChild3Type, MVT::v8i16,
 
19013
                OPC_CheckType, MVT::v8i16,
 
19014
                OPC_CheckPatternPredicate, 3,
 
19015
                OPC_EmitInteger, MVT::i32, 14, 
 
19016
                OPC_EmitRegister, MVT::i32, 0 ,
 
19017
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv8i16), 0,
 
19018
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
19019
              30, 
 
19020
                OPC_CheckChild1Type, MVT::v4i32,
 
19021
                OPC_RecordChild2,
 
19022
                OPC_CheckChild2Type, MVT::v4i32,
 
19023
                OPC_RecordChild3,
 
19024
                OPC_CheckChild3Type, MVT::v4i32,
 
19025
                OPC_CheckType, MVT::v4i32,
 
19026
                OPC_CheckPatternPredicate, 3,
 
19027
                OPC_EmitInteger, MVT::i32, 14, 
 
19028
                OPC_EmitRegister, MVT::i32, 0 ,
 
19029
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAsv4i32), 0,
 
19030
                    1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
19031
              0, 
 
19032
            64|128,1, 
 
19033
              OPC_CheckInteger, 6, 
 
19034
              OPC_MoveParent,
 
19035
              OPC_RecordChild1,
 
19036
              OPC_Scope, 30, 
 
19037
                OPC_CheckChild1Type, MVT::v8i8,
 
19038
                OPC_RecordChild2,
 
19039
                OPC_CheckChild2Type, MVT::v8i8,
 
19040
                OPC_RecordChild3,
 
19041
                OPC_CheckChild3Type, MVT::v8i8,
 
19042
                OPC_CheckType, MVT::v8i8,
 
19043
                OPC_CheckPatternPredicate, 3,
 
19044
                OPC_EmitInteger, MVT::i32, 14, 
 
19045
                OPC_EmitRegister, MVT::i32, 0 ,
 
19046
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv8i8), 0,
 
19047
                    1, MVT::v8i8, 5, 0, 1, 2, 3, 4, 
 
19048
              30, 
 
19049
                OPC_CheckChild1Type, MVT::v4i16,
 
19050
                OPC_RecordChild2,
 
19051
                OPC_CheckChild2Type, MVT::v4i16,
 
19052
                OPC_RecordChild3,
 
19053
                OPC_CheckChild3Type, MVT::v4i16,
 
19054
                OPC_CheckType, MVT::v4i16,
 
19055
                OPC_CheckPatternPredicate, 3,
 
19056
                OPC_EmitInteger, MVT::i32, 14, 
 
19057
                OPC_EmitRegister, MVT::i32, 0 ,
 
19058
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv4i16), 0,
 
19059
                    1, MVT::v4i16, 5, 0, 1, 2, 3, 4, 
 
19060
              30, 
 
19061
                OPC_CheckChild1Type, MVT::v2i32,
 
19062
                OPC_RecordChild2,
 
19063
                OPC_CheckChild2Type, MVT::v2i32,
 
19064
                OPC_RecordChild3,
 
19065
                OPC_CheckChild3Type, MVT::v2i32,
 
19066
                OPC_CheckType, MVT::v2i32,
 
19067
                OPC_CheckPatternPredicate, 3,
 
19068
                OPC_EmitInteger, MVT::i32, 14, 
 
19069
                OPC_EmitRegister, MVT::i32, 0 ,
 
19070
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv2i32), 0,
 
19071
                    1, MVT::v2i32, 5, 0, 1, 2, 3, 4, 
 
19072
              30, 
 
19073
                OPC_CheckChild1Type, MVT::v16i8,
 
19074
                OPC_RecordChild2,
 
19075
                OPC_CheckChild2Type, MVT::v16i8,
 
19076
                OPC_RecordChild3,
 
19077
                OPC_CheckChild3Type, MVT::v16i8,
 
19078
                OPC_CheckType, MVT::v16i8,
 
19079
                OPC_CheckPatternPredicate, 3,
 
19080
                OPC_EmitInteger, MVT::i32, 14, 
 
19081
                OPC_EmitRegister, MVT::i32, 0 ,
 
19082
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv16i8), 0,
 
19083
                    1, MVT::v16i8, 5, 0, 1, 2, 3, 4, 
 
19084
              30, 
 
19085
                OPC_CheckChild1Type, MVT::v8i16,
 
19086
                OPC_RecordChild2,
 
19087
                OPC_CheckChild2Type, MVT::v8i16,
 
19088
                OPC_RecordChild3,
 
19089
                OPC_CheckChild3Type, MVT::v8i16,
 
19090
                OPC_CheckType, MVT::v8i16,
 
19091
                OPC_CheckPatternPredicate, 3,
 
19092
                OPC_EmitInteger, MVT::i32, 14, 
 
19093
                OPC_EmitRegister, MVT::i32, 0 ,
 
19094
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv8i16), 0,
 
19095
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
19096
              30, 
 
19097
                OPC_CheckChild1Type, MVT::v4i32,
 
19098
                OPC_RecordChild2,
 
19099
                OPC_CheckChild2Type, MVT::v4i32,
 
19100
                OPC_RecordChild3,
 
19101
                OPC_CheckChild3Type, MVT::v4i32,
 
19102
                OPC_CheckType, MVT::v4i32,
 
19103
                OPC_CheckPatternPredicate, 3,
 
19104
                OPC_EmitInteger, MVT::i32, 14, 
 
19105
                OPC_EmitRegister, MVT::i32, 0 ,
 
19106
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABAuv4i32), 0,
 
19107
                    1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
19108
              0, 
 
19109
            99, 
 
19110
              OPC_CheckInteger, 3, 
 
19111
              OPC_MoveParent,
 
19112
              OPC_RecordChild1,
 
19113
              OPC_Scope, 30, 
 
19114
                OPC_CheckChild1Type, MVT::v4i32,
 
19115
                OPC_RecordChild2,
 
19116
                OPC_CheckChild2Type, MVT::v4i16,
 
19117
                OPC_RecordChild3,
 
19118
                OPC_CheckChild3Type, MVT::v4i16,
 
19119
                OPC_CheckType, MVT::v4i32,
 
19120
                OPC_CheckPatternPredicate, 3,
 
19121
                OPC_EmitInteger, MVT::i32, 14, 
 
19122
                OPC_EmitRegister, MVT::i32, 0 ,
 
19123
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALsv4i32), 0,
 
19124
                    1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
19125
              30, 
 
19126
                OPC_CheckChild1Type, MVT::v2i64,
 
19127
                OPC_RecordChild2,
 
19128
                OPC_CheckChild2Type, MVT::v2i32,
 
19129
                OPC_RecordChild3,
 
19130
                OPC_CheckChild3Type, MVT::v2i32,
 
19131
                OPC_CheckType, MVT::v2i64,
 
19132
                OPC_CheckPatternPredicate, 3,
 
19133
                OPC_EmitInteger, MVT::i32, 14, 
 
19134
                OPC_EmitRegister, MVT::i32, 0 ,
 
19135
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALsv2i64), 0,
 
19136
                    1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
19137
              30, 
 
19138
                OPC_CheckChild1Type, MVT::v8i16,
 
19139
                OPC_RecordChild2,
 
19140
                OPC_CheckChild2Type, MVT::v8i8,
 
19141
                OPC_RecordChild3,
 
19142
                OPC_CheckChild3Type, MVT::v8i8,
 
19143
                OPC_CheckType, MVT::v8i16,
 
19144
                OPC_CheckPatternPredicate, 3,
 
19145
                OPC_EmitInteger, MVT::i32, 14, 
 
19146
                OPC_EmitRegister, MVT::i32, 0 ,
 
19147
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALsv8i16), 0,
 
19148
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
19149
              0, 
 
19150
            99, 
 
19151
              OPC_CheckInteger, 4, 
 
19152
              OPC_MoveParent,
 
19153
              OPC_RecordChild1,
 
19154
              OPC_Scope, 30, 
 
19155
                OPC_CheckChild1Type, MVT::v4i32,
 
19156
                OPC_RecordChild2,
 
19157
                OPC_CheckChild2Type, MVT::v4i16,
 
19158
                OPC_RecordChild3,
 
19159
                OPC_CheckChild3Type, MVT::v4i16,
 
19160
                OPC_CheckType, MVT::v4i32,
 
19161
                OPC_CheckPatternPredicate, 3,
 
19162
                OPC_EmitInteger, MVT::i32, 14, 
 
19163
                OPC_EmitRegister, MVT::i32, 0 ,
 
19164
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALuv4i32), 0,
 
19165
                    1, MVT::v4i32, 5, 0, 1, 2, 3, 4, 
 
19166
              30, 
 
19167
                OPC_CheckChild1Type, MVT::v2i64,
 
19168
                OPC_RecordChild2,
 
19169
                OPC_CheckChild2Type, MVT::v2i32,
 
19170
                OPC_RecordChild3,
 
19171
                OPC_CheckChild3Type, MVT::v2i32,
 
19172
                OPC_CheckType, MVT::v2i64,
 
19173
                OPC_CheckPatternPredicate, 3,
 
19174
                OPC_EmitInteger, MVT::i32, 14, 
 
19175
                OPC_EmitRegister, MVT::i32, 0 ,
 
19176
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALuv2i64), 0,
 
19177
                    1, MVT::v2i64, 5, 0, 1, 2, 3, 4, 
 
19178
              30, 
 
19179
                OPC_CheckChild1Type, MVT::v8i16,
 
19180
                OPC_RecordChild2,
 
19181
                OPC_CheckChild2Type, MVT::v8i8,
 
19182
                OPC_RecordChild3,
 
19183
                OPC_CheckChild3Type, MVT::v8i8,
 
19184
                OPC_CheckType, MVT::v8i16,
 
19185
                OPC_CheckPatternPredicate, 3,
 
19186
                OPC_EmitInteger, MVT::i32, 14, 
 
19187
                OPC_EmitRegister, MVT::i32, 0 ,
 
19188
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABALuv8i16), 0,
 
19189
                    1, MVT::v8i16, 5, 0, 1, 2, 3, 4, 
 
19190
              0, 
 
19191
            94|128,1, 
 
19192
              OPC_CheckInteger, 39, 
 
19193
              OPC_MoveParent,
 
19194
              OPC_RecordChild1,
 
19195
              OPC_Scope, 26, 
 
19196
                OPC_CheckChild1Type, MVT::v4i16,
 
19197
                OPC_RecordChild2,
 
19198
                OPC_CheckChild2Type, MVT::v4i16,
 
19199
                OPC_CheckType, MVT::v4i16,
 
19200
                OPC_CheckPatternPredicate, 3,
 
19201
                OPC_EmitInteger, MVT::i32, 14, 
 
19202
                OPC_EmitRegister, MVT::i32, 0 ,
 
19203
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv4i16), 0,
 
19204
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19205
              26, 
 
19206
                OPC_CheckChild1Type, MVT::v2i32,
 
19207
                OPC_RecordChild2,
 
19208
                OPC_CheckChild2Type, MVT::v2i32,
 
19209
                OPC_CheckType, MVT::v2i32,
 
19210
                OPC_CheckPatternPredicate, 3,
 
19211
                OPC_EmitInteger, MVT::i32, 14, 
 
19212
                OPC_EmitRegister, MVT::i32, 0 ,
 
19213
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv2i32), 0,
 
19214
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19215
              26, 
 
19216
                OPC_CheckChild1Type, MVT::v8i16,
 
19217
                OPC_RecordChild2,
 
19218
                OPC_CheckChild2Type, MVT::v8i16,
 
19219
                OPC_CheckType, MVT::v8i16,
 
19220
                OPC_CheckPatternPredicate, 3,
 
19221
                OPC_EmitInteger, MVT::i32, 14, 
 
19222
                OPC_EmitRegister, MVT::i32, 0 ,
 
19223
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv8i16), 0,
 
19224
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
19225
              26, 
 
19226
                OPC_CheckChild1Type, MVT::v4i32,
 
19227
                OPC_RecordChild2,
 
19228
                OPC_CheckChild2Type, MVT::v4i32,
 
19229
                OPC_CheckType, MVT::v4i32,
 
19230
                OPC_CheckPatternPredicate, 3,
 
19231
                OPC_EmitInteger, MVT::i32, 14, 
 
19232
                OPC_EmitRegister, MVT::i32, 0 ,
 
19233
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv4i32), 0,
 
19234
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
19235
              26, 
 
19236
                OPC_CheckChild1Type, MVT::v8i8,
 
19237
                OPC_RecordChild2,
 
19238
                OPC_CheckChild2Type, MVT::v8i8,
 
19239
                OPC_CheckType, MVT::v8i8,
 
19240
                OPC_CheckPatternPredicate, 3,
 
19241
                OPC_EmitInteger, MVT::i32, 14, 
 
19242
                OPC_EmitRegister, MVT::i32, 0 ,
 
19243
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv8i8), 0,
 
19244
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19245
              26, 
 
19246
                OPC_CheckChild1Type, MVT::v16i8,
 
19247
                OPC_RecordChild2,
 
19248
                OPC_CheckChild2Type, MVT::v16i8,
 
19249
                OPC_CheckType, MVT::v16i8,
 
19250
                OPC_CheckPatternPredicate, 3,
 
19251
                OPC_EmitInteger, MVT::i32, 14, 
 
19252
                OPC_EmitRegister, MVT::i32, 0 ,
 
19253
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXsv16i8), 0,
 
19254
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
19255
              26, 
 
19256
                OPC_CheckChild1Type, MVT::v2f32,
 
19257
                OPC_RecordChild2,
 
19258
                OPC_CheckChild2Type, MVT::v2f32,
 
19259
                OPC_CheckType, MVT::v2f32,
 
19260
                OPC_CheckPatternPredicate, 3,
 
19261
                OPC_EmitInteger, MVT::i32, 14, 
 
19262
                OPC_EmitRegister, MVT::i32, 0 ,
 
19263
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXfd), 0,
 
19264
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
19265
              26, 
 
19266
                OPC_CheckChild1Type, MVT::v4f32,
 
19267
                OPC_RecordChild2,
 
19268
                OPC_CheckChild2Type, MVT::v4f32,
 
19269
                OPC_CheckType, MVT::v4f32,
 
19270
                OPC_CheckPatternPredicate, 3,
 
19271
                OPC_EmitInteger, MVT::i32, 14, 
 
19272
                OPC_EmitRegister, MVT::i32, 0 ,
 
19273
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXfq), 0,
 
19274
                    1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
19275
              0, 
 
19276
            40|128,1, 
 
19277
              OPC_CheckInteger, 40, 
 
19278
              OPC_MoveParent,
 
19279
              OPC_RecordChild1,
 
19280
              OPC_Scope, 26, 
 
19281
                OPC_CheckChild1Type, MVT::v4i16,
 
19282
                OPC_RecordChild2,
 
19283
                OPC_CheckChild2Type, MVT::v4i16,
 
19284
                OPC_CheckType, MVT::v4i16,
 
19285
                OPC_CheckPatternPredicate, 3,
 
19286
                OPC_EmitInteger, MVT::i32, 14, 
 
19287
                OPC_EmitRegister, MVT::i32, 0 ,
 
19288
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv4i16), 0,
 
19289
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19290
              26, 
 
19291
                OPC_CheckChild1Type, MVT::v2i32,
 
19292
                OPC_RecordChild2,
 
19293
                OPC_CheckChild2Type, MVT::v2i32,
 
19294
                OPC_CheckType, MVT::v2i32,
 
19295
                OPC_CheckPatternPredicate, 3,
 
19296
                OPC_EmitInteger, MVT::i32, 14, 
 
19297
                OPC_EmitRegister, MVT::i32, 0 ,
 
19298
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv2i32), 0,
 
19299
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19300
              26, 
 
19301
                OPC_CheckChild1Type, MVT::v8i16,
 
19302
                OPC_RecordChild2,
 
19303
                OPC_CheckChild2Type, MVT::v8i16,
 
19304
                OPC_CheckType, MVT::v8i16,
 
19305
                OPC_CheckPatternPredicate, 3,
 
19306
                OPC_EmitInteger, MVT::i32, 14, 
 
19307
                OPC_EmitRegister, MVT::i32, 0 ,
 
19308
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv8i16), 0,
 
19309
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
19310
              26, 
 
19311
                OPC_CheckChild1Type, MVT::v4i32,
 
19312
                OPC_RecordChild2,
 
19313
                OPC_CheckChild2Type, MVT::v4i32,
 
19314
                OPC_CheckType, MVT::v4i32,
 
19315
                OPC_CheckPatternPredicate, 3,
 
19316
                OPC_EmitInteger, MVT::i32, 14, 
 
19317
                OPC_EmitRegister, MVT::i32, 0 ,
 
19318
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv4i32), 0,
 
19319
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
19320
              26, 
 
19321
                OPC_CheckChild1Type, MVT::v8i8,
 
19322
                OPC_RecordChild2,
 
19323
                OPC_CheckChild2Type, MVT::v8i8,
 
19324
                OPC_CheckType, MVT::v8i8,
 
19325
                OPC_CheckPatternPredicate, 3,
 
19326
                OPC_EmitInteger, MVT::i32, 14, 
 
19327
                OPC_EmitRegister, MVT::i32, 0 ,
 
19328
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv8i8), 0,
 
19329
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19330
              26, 
 
19331
                OPC_CheckChild1Type, MVT::v16i8,
 
19332
                OPC_RecordChild2,
 
19333
                OPC_CheckChild2Type, MVT::v16i8,
 
19334
                OPC_CheckType, MVT::v16i8,
 
19335
                OPC_CheckPatternPredicate, 3,
 
19336
                OPC_EmitInteger, MVT::i32, 14, 
 
19337
                OPC_EmitRegister, MVT::i32, 0 ,
 
19338
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMAXuv16i8), 0,
 
19339
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
19340
              0, 
 
19341
            94|128,1, 
 
19342
              OPC_CheckInteger, 41, 
 
19343
              OPC_MoveParent,
 
19344
              OPC_RecordChild1,
 
19345
              OPC_Scope, 26, 
 
19346
                OPC_CheckChild1Type, MVT::v4i16,
 
19347
                OPC_RecordChild2,
 
19348
                OPC_CheckChild2Type, MVT::v4i16,
 
19349
                OPC_CheckType, MVT::v4i16,
 
19350
                OPC_CheckPatternPredicate, 3,
 
19351
                OPC_EmitInteger, MVT::i32, 14, 
 
19352
                OPC_EmitRegister, MVT::i32, 0 ,
 
19353
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv4i16), 0,
 
19354
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19355
              26, 
 
19356
                OPC_CheckChild1Type, MVT::v2i32,
 
19357
                OPC_RecordChild2,
 
19358
                OPC_CheckChild2Type, MVT::v2i32,
 
19359
                OPC_CheckType, MVT::v2i32,
 
19360
                OPC_CheckPatternPredicate, 3,
 
19361
                OPC_EmitInteger, MVT::i32, 14, 
 
19362
                OPC_EmitRegister, MVT::i32, 0 ,
 
19363
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv2i32), 0,
 
19364
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19365
              26, 
 
19366
                OPC_CheckChild1Type, MVT::v8i16,
 
19367
                OPC_RecordChild2,
 
19368
                OPC_CheckChild2Type, MVT::v8i16,
 
19369
                OPC_CheckType, MVT::v8i16,
 
19370
                OPC_CheckPatternPredicate, 3,
 
19371
                OPC_EmitInteger, MVT::i32, 14, 
 
19372
                OPC_EmitRegister, MVT::i32, 0 ,
 
19373
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv8i16), 0,
 
19374
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
19375
              26, 
 
19376
                OPC_CheckChild1Type, MVT::v4i32,
 
19377
                OPC_RecordChild2,
 
19378
                OPC_CheckChild2Type, MVT::v4i32,
 
19379
                OPC_CheckType, MVT::v4i32,
 
19380
                OPC_CheckPatternPredicate, 3,
 
19381
                OPC_EmitInteger, MVT::i32, 14, 
 
19382
                OPC_EmitRegister, MVT::i32, 0 ,
 
19383
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv4i32), 0,
 
19384
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
19385
              26, 
 
19386
                OPC_CheckChild1Type, MVT::v8i8,
 
19387
                OPC_RecordChild2,
 
19388
                OPC_CheckChild2Type, MVT::v8i8,
 
19389
                OPC_CheckType, MVT::v8i8,
 
19390
                OPC_CheckPatternPredicate, 3,
 
19391
                OPC_EmitInteger, MVT::i32, 14, 
 
19392
                OPC_EmitRegister, MVT::i32, 0 ,
 
19393
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv8i8), 0,
 
19394
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19395
              26, 
 
19396
                OPC_CheckChild1Type, MVT::v16i8,
 
19397
                OPC_RecordChild2,
 
19398
                OPC_CheckChild2Type, MVT::v16i8,
 
19399
                OPC_CheckType, MVT::v16i8,
 
19400
                OPC_CheckPatternPredicate, 3,
 
19401
                OPC_EmitInteger, MVT::i32, 14, 
 
19402
                OPC_EmitRegister, MVT::i32, 0 ,
 
19403
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINsv16i8), 0,
 
19404
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
19405
              26, 
 
19406
                OPC_CheckChild1Type, MVT::v2f32,
 
19407
                OPC_RecordChild2,
 
19408
                OPC_CheckChild2Type, MVT::v2f32,
 
19409
                OPC_CheckType, MVT::v2f32,
 
19410
                OPC_CheckPatternPredicate, 3,
 
19411
                OPC_EmitInteger, MVT::i32, 14, 
 
19412
                OPC_EmitRegister, MVT::i32, 0 ,
 
19413
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINfd), 0,
 
19414
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
19415
              26, 
 
19416
                OPC_CheckChild1Type, MVT::v4f32,
 
19417
                OPC_RecordChild2,
 
19418
                OPC_CheckChild2Type, MVT::v4f32,
 
19419
                OPC_CheckType, MVT::v4f32,
 
19420
                OPC_CheckPatternPredicate, 3,
 
19421
                OPC_EmitInteger, MVT::i32, 14, 
 
19422
                OPC_EmitRegister, MVT::i32, 0 ,
 
19423
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINfq), 0,
 
19424
                    1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
19425
              0, 
 
19426
            40|128,1, 
 
19427
              OPC_CheckInteger, 42, 
 
19428
              OPC_MoveParent,
 
19429
              OPC_RecordChild1,
 
19430
              OPC_Scope, 26, 
 
19431
                OPC_CheckChild1Type, MVT::v4i16,
 
19432
                OPC_RecordChild2,
 
19433
                OPC_CheckChild2Type, MVT::v4i16,
 
19434
                OPC_CheckType, MVT::v4i16,
 
19435
                OPC_CheckPatternPredicate, 3,
 
19436
                OPC_EmitInteger, MVT::i32, 14, 
 
19437
                OPC_EmitRegister, MVT::i32, 0 ,
 
19438
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv4i16), 0,
 
19439
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19440
              26, 
 
19441
                OPC_CheckChild1Type, MVT::v2i32,
 
19442
                OPC_RecordChild2,
 
19443
                OPC_CheckChild2Type, MVT::v2i32,
 
19444
                OPC_CheckType, MVT::v2i32,
 
19445
                OPC_CheckPatternPredicate, 3,
 
19446
                OPC_EmitInteger, MVT::i32, 14, 
 
19447
                OPC_EmitRegister, MVT::i32, 0 ,
 
19448
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv2i32), 0,
 
19449
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19450
              26, 
 
19451
                OPC_CheckChild1Type, MVT::v8i16,
 
19452
                OPC_RecordChild2,
 
19453
                OPC_CheckChild2Type, MVT::v8i16,
 
19454
                OPC_CheckType, MVT::v8i16,
 
19455
                OPC_CheckPatternPredicate, 3,
 
19456
                OPC_EmitInteger, MVT::i32, 14, 
 
19457
                OPC_EmitRegister, MVT::i32, 0 ,
 
19458
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv8i16), 0,
 
19459
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
19460
              26, 
 
19461
                OPC_CheckChild1Type, MVT::v4i32,
 
19462
                OPC_RecordChild2,
 
19463
                OPC_CheckChild2Type, MVT::v4i32,
 
19464
                OPC_CheckType, MVT::v4i32,
 
19465
                OPC_CheckPatternPredicate, 3,
 
19466
                OPC_EmitInteger, MVT::i32, 14, 
 
19467
                OPC_EmitRegister, MVT::i32, 0 ,
 
19468
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv4i32), 0,
 
19469
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
19470
              26, 
 
19471
                OPC_CheckChild1Type, MVT::v8i8,
 
19472
                OPC_RecordChild2,
 
19473
                OPC_CheckChild2Type, MVT::v8i8,
 
19474
                OPC_CheckType, MVT::v8i8,
 
19475
                OPC_CheckPatternPredicate, 3,
 
19476
                OPC_EmitInteger, MVT::i32, 14, 
 
19477
                OPC_EmitRegister, MVT::i32, 0 ,
 
19478
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv8i8), 0,
 
19479
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19480
              26, 
 
19481
                OPC_CheckChild1Type, MVT::v16i8,
 
19482
                OPC_RecordChild2,
 
19483
                OPC_CheckChild2Type, MVT::v16i8,
 
19484
                OPC_CheckType, MVT::v16i8,
 
19485
                OPC_CheckPatternPredicate, 3,
 
19486
                OPC_EmitInteger, MVT::i32, 14, 
 
19487
                OPC_EmitRegister, MVT::i32, 0 ,
 
19488
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMINuv16i8), 0,
 
19489
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
19490
              0, 
 
19491
            114, 
 
19492
              OPC_CheckInteger, 56, 
 
19493
              OPC_MoveParent,
 
19494
              OPC_RecordChild1,
 
19495
              OPC_Scope, 26, 
 
19496
                OPC_CheckChild1Type, MVT::v8i8,
 
19497
                OPC_RecordChild2,
 
19498
                OPC_CheckChild2Type, MVT::v8i8,
 
19499
                OPC_CheckType, MVT::v8i8,
 
19500
                OPC_CheckPatternPredicate, 3,
 
19501
                OPC_EmitInteger, MVT::i32, 14, 
 
19502
                OPC_EmitRegister, MVT::i32, 0 ,
 
19503
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDi8), 0,
 
19504
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19505
              26, 
 
19506
                OPC_CheckChild1Type, MVT::v4i16,
 
19507
                OPC_RecordChild2,
 
19508
                OPC_CheckChild2Type, MVT::v4i16,
 
19509
                OPC_CheckType, MVT::v4i16,
 
19510
                OPC_CheckPatternPredicate, 3,
 
19511
                OPC_EmitInteger, MVT::i32, 14, 
 
19512
                OPC_EmitRegister, MVT::i32, 0 ,
 
19513
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDi16), 0,
 
19514
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19515
              26, 
 
19516
                OPC_CheckChild1Type, MVT::v2i32,
 
19517
                OPC_RecordChild2,
 
19518
                OPC_CheckChild2Type, MVT::v2i32,
 
19519
                OPC_CheckType, MVT::v2i32,
 
19520
                OPC_CheckPatternPredicate, 3,
 
19521
                OPC_EmitInteger, MVT::i32, 14, 
 
19522
                OPC_EmitRegister, MVT::i32, 0 ,
 
19523
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDi32), 0,
 
19524
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19525
              26, 
 
19526
                OPC_CheckChild1Type, MVT::v2f32,
 
19527
                OPC_RecordChild2,
 
19528
                OPC_CheckChild2Type, MVT::v2f32,
 
19529
                OPC_CheckType, MVT::v2f32,
 
19530
                OPC_CheckPatternPredicate, 3,
 
19531
                OPC_EmitInteger, MVT::i32, 14, 
 
19532
                OPC_EmitRegister, MVT::i32, 0 ,
 
19533
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDf), 0,
 
19534
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
19535
              0, 
 
19536
            16|128,1, 
 
19537
              OPC_CheckInteger, 57, 
 
19538
              OPC_MoveParent,
 
19539
              OPC_RecordChild1,
 
19540
              OPC_Scope, 22, 
 
19541
                OPC_CheckChild1Type, MVT::v8i8,
 
19542
                OPC_CheckType, MVT::v4i16,
 
19543
                OPC_CheckPatternPredicate, 3,
 
19544
                OPC_EmitInteger, MVT::i32, 14, 
 
19545
                OPC_EmitRegister, MVT::i32, 0 ,
 
19546
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv8i8), 0,
 
19547
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
19548
              22, 
 
19549
                OPC_CheckChild1Type, MVT::v4i16,
 
19550
                OPC_CheckType, MVT::v2i32,
 
19551
                OPC_CheckPatternPredicate, 3,
 
19552
                OPC_EmitInteger, MVT::i32, 14, 
 
19553
                OPC_EmitRegister, MVT::i32, 0 ,
 
19554
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv4i16), 0,
 
19555
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
19556
              22, 
 
19557
                OPC_CheckChild1Type, MVT::v2i32,
 
19558
                OPC_CheckType, MVT::v1i64,
 
19559
                OPC_CheckPatternPredicate, 3,
 
19560
                OPC_EmitInteger, MVT::i32, 14, 
 
19561
                OPC_EmitRegister, MVT::i32, 0 ,
 
19562
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv2i32), 0,
 
19563
                    1, MVT::v1i64, 3, 0, 1, 2, 
 
19564
              22, 
 
19565
                OPC_CheckChild1Type, MVT::v16i8,
 
19566
                OPC_CheckType, MVT::v8i16,
 
19567
                OPC_CheckPatternPredicate, 3,
 
19568
                OPC_EmitInteger, MVT::i32, 14, 
 
19569
                OPC_EmitRegister, MVT::i32, 0 ,
 
19570
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv16i8), 0,
 
19571
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
19572
              22, 
 
19573
                OPC_CheckChild1Type, MVT::v8i16,
 
19574
                OPC_CheckType, MVT::v4i32,
 
19575
                OPC_CheckPatternPredicate, 3,
 
19576
                OPC_EmitInteger, MVT::i32, 14, 
 
19577
                OPC_EmitRegister, MVT::i32, 0 ,
 
19578
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv8i16), 0,
 
19579
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
19580
              22, 
 
19581
                OPC_CheckChild1Type, MVT::v4i32,
 
19582
                OPC_CheckType, MVT::v2i64,
 
19583
                OPC_CheckPatternPredicate, 3,
 
19584
                OPC_EmitInteger, MVT::i32, 14, 
 
19585
                OPC_EmitRegister, MVT::i32, 0 ,
 
19586
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLsv4i32), 0,
 
19587
                    1, MVT::v2i64, 3, 0, 1, 2, 
 
19588
              0, 
 
19589
            16|128,1, 
 
19590
              OPC_CheckInteger, 58, 
 
19591
              OPC_MoveParent,
 
19592
              OPC_RecordChild1,
 
19593
              OPC_Scope, 22, 
 
19594
                OPC_CheckChild1Type, MVT::v8i8,
 
19595
                OPC_CheckType, MVT::v4i16,
 
19596
                OPC_CheckPatternPredicate, 3,
 
19597
                OPC_EmitInteger, MVT::i32, 14, 
 
19598
                OPC_EmitRegister, MVT::i32, 0 ,
 
19599
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv8i8), 0,
 
19600
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
19601
              22, 
 
19602
                OPC_CheckChild1Type, MVT::v4i16,
 
19603
                OPC_CheckType, MVT::v2i32,
 
19604
                OPC_CheckPatternPredicate, 3,
 
19605
                OPC_EmitInteger, MVT::i32, 14, 
 
19606
                OPC_EmitRegister, MVT::i32, 0 ,
 
19607
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv4i16), 0,
 
19608
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
19609
              22, 
 
19610
                OPC_CheckChild1Type, MVT::v2i32,
 
19611
                OPC_CheckType, MVT::v1i64,
 
19612
                OPC_CheckPatternPredicate, 3,
 
19613
                OPC_EmitInteger, MVT::i32, 14, 
 
19614
                OPC_EmitRegister, MVT::i32, 0 ,
 
19615
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv2i32), 0,
 
19616
                    1, MVT::v1i64, 3, 0, 1, 2, 
 
19617
              22, 
 
19618
                OPC_CheckChild1Type, MVT::v16i8,
 
19619
                OPC_CheckType, MVT::v8i16,
 
19620
                OPC_CheckPatternPredicate, 3,
 
19621
                OPC_EmitInteger, MVT::i32, 14, 
 
19622
                OPC_EmitRegister, MVT::i32, 0 ,
 
19623
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv16i8), 0,
 
19624
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
19625
              22, 
 
19626
                OPC_CheckChild1Type, MVT::v8i16,
 
19627
                OPC_CheckType, MVT::v4i32,
 
19628
                OPC_CheckPatternPredicate, 3,
 
19629
                OPC_EmitInteger, MVT::i32, 14, 
 
19630
                OPC_EmitRegister, MVT::i32, 0 ,
 
19631
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv8i16), 0,
 
19632
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
19633
              22, 
 
19634
                OPC_CheckChild1Type, MVT::v4i32,
 
19635
                OPC_CheckType, MVT::v2i64,
 
19636
                OPC_CheckPatternPredicate, 3,
 
19637
                OPC_EmitInteger, MVT::i32, 14, 
 
19638
                OPC_EmitRegister, MVT::i32, 0 ,
 
19639
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADDLuv4i32), 0,
 
19640
                    1, MVT::v2i64, 3, 0, 1, 2, 
 
19641
              0, 
 
19642
            40|128,1, 
 
19643
              OPC_CheckInteger, 54, 
 
19644
              OPC_MoveParent,
 
19645
              OPC_RecordChild1,
 
19646
              OPC_Scope, 26, 
 
19647
                OPC_CheckChild1Type, MVT::v4i16,
 
19648
                OPC_RecordChild2,
 
19649
                OPC_CheckChild2Type, MVT::v8i8,
 
19650
                OPC_CheckType, MVT::v4i16,
 
19651
                OPC_CheckPatternPredicate, 3,
 
19652
                OPC_EmitInteger, MVT::i32, 14, 
 
19653
                OPC_EmitRegister, MVT::i32, 0 ,
 
19654
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv8i8), 0,
 
19655
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19656
              26, 
 
19657
                OPC_CheckChild1Type, MVT::v2i32,
 
19658
                OPC_RecordChild2,
 
19659
                OPC_CheckChild2Type, MVT::v4i16,
 
19660
                OPC_CheckType, MVT::v2i32,
 
19661
                OPC_CheckPatternPredicate, 3,
 
19662
                OPC_EmitInteger, MVT::i32, 14, 
 
19663
                OPC_EmitRegister, MVT::i32, 0 ,
 
19664
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv4i16), 0,
 
19665
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19666
              26, 
 
19667
                OPC_CheckChild1Type, MVT::v1i64,
 
19668
                OPC_RecordChild2,
 
19669
                OPC_CheckChild2Type, MVT::v2i32,
 
19670
                OPC_CheckType, MVT::v1i64,
 
19671
                OPC_CheckPatternPredicate, 3,
 
19672
                OPC_EmitInteger, MVT::i32, 14, 
 
19673
                OPC_EmitRegister, MVT::i32, 0 ,
 
19674
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv2i32), 0,
 
19675
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
19676
              26, 
 
19677
                OPC_CheckChild1Type, MVT::v8i16,
 
19678
                OPC_RecordChild2,
 
19679
                OPC_CheckChild2Type, MVT::v16i8,
 
19680
                OPC_CheckType, MVT::v8i16,
 
19681
                OPC_CheckPatternPredicate, 3,
 
19682
                OPC_EmitInteger, MVT::i32, 14, 
 
19683
                OPC_EmitRegister, MVT::i32, 0 ,
 
19684
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv16i8), 0,
 
19685
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
19686
              26, 
 
19687
                OPC_CheckChild1Type, MVT::v4i32,
 
19688
                OPC_RecordChild2,
 
19689
                OPC_CheckChild2Type, MVT::v8i16,
 
19690
                OPC_CheckType, MVT::v4i32,
 
19691
                OPC_CheckPatternPredicate, 3,
 
19692
                OPC_EmitInteger, MVT::i32, 14, 
 
19693
                OPC_EmitRegister, MVT::i32, 0 ,
 
19694
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv8i16), 0,
 
19695
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
19696
              26, 
 
19697
                OPC_CheckChild1Type, MVT::v2i64,
 
19698
                OPC_RecordChild2,
 
19699
                OPC_CheckChild2Type, MVT::v4i32,
 
19700
                OPC_CheckType, MVT::v2i64,
 
19701
                OPC_CheckPatternPredicate, 3,
 
19702
                OPC_EmitInteger, MVT::i32, 14, 
 
19703
                OPC_EmitRegister, MVT::i32, 0 ,
 
19704
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALsv4i32), 0,
 
19705
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
19706
              0, 
 
19707
            40|128,1, 
 
19708
              OPC_CheckInteger, 55, 
 
19709
              OPC_MoveParent,
 
19710
              OPC_RecordChild1,
 
19711
              OPC_Scope, 26, 
 
19712
                OPC_CheckChild1Type, MVT::v4i16,
 
19713
                OPC_RecordChild2,
 
19714
                OPC_CheckChild2Type, MVT::v8i8,
 
19715
                OPC_CheckType, MVT::v4i16,
 
19716
                OPC_CheckPatternPredicate, 3,
 
19717
                OPC_EmitInteger, MVT::i32, 14, 
 
19718
                OPC_EmitRegister, MVT::i32, 0 ,
 
19719
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv8i8), 0,
 
19720
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19721
              26, 
 
19722
                OPC_CheckChild1Type, MVT::v2i32,
 
19723
                OPC_RecordChild2,
 
19724
                OPC_CheckChild2Type, MVT::v4i16,
 
19725
                OPC_CheckType, MVT::v2i32,
 
19726
                OPC_CheckPatternPredicate, 3,
 
19727
                OPC_EmitInteger, MVT::i32, 14, 
 
19728
                OPC_EmitRegister, MVT::i32, 0 ,
 
19729
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv4i16), 0,
 
19730
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19731
              26, 
 
19732
                OPC_CheckChild1Type, MVT::v1i64,
 
19733
                OPC_RecordChild2,
 
19734
                OPC_CheckChild2Type, MVT::v2i32,
 
19735
                OPC_CheckType, MVT::v1i64,
 
19736
                OPC_CheckPatternPredicate, 3,
 
19737
                OPC_EmitInteger, MVT::i32, 14, 
 
19738
                OPC_EmitRegister, MVT::i32, 0 ,
 
19739
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv2i32), 0,
 
19740
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
19741
              26, 
 
19742
                OPC_CheckChild1Type, MVT::v8i16,
 
19743
                OPC_RecordChild2,
 
19744
                OPC_CheckChild2Type, MVT::v16i8,
 
19745
                OPC_CheckType, MVT::v8i16,
 
19746
                OPC_CheckPatternPredicate, 3,
 
19747
                OPC_EmitInteger, MVT::i32, 14, 
 
19748
                OPC_EmitRegister, MVT::i32, 0 ,
 
19749
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv16i8), 0,
 
19750
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
19751
              26, 
 
19752
                OPC_CheckChild1Type, MVT::v4i32,
 
19753
                OPC_RecordChild2,
 
19754
                OPC_CheckChild2Type, MVT::v8i16,
 
19755
                OPC_CheckType, MVT::v4i32,
 
19756
                OPC_CheckPatternPredicate, 3,
 
19757
                OPC_EmitInteger, MVT::i32, 14, 
 
19758
                OPC_EmitRegister, MVT::i32, 0 ,
 
19759
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv8i16), 0,
 
19760
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
19761
              26, 
 
19762
                OPC_CheckChild1Type, MVT::v2i64,
 
19763
                OPC_RecordChild2,
 
19764
                OPC_CheckChild2Type, MVT::v4i32,
 
19765
                OPC_CheckType, MVT::v2i64,
 
19766
                OPC_CheckPatternPredicate, 3,
 
19767
                OPC_EmitInteger, MVT::i32, 14, 
 
19768
                OPC_EmitRegister, MVT::i32, 0 ,
 
19769
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPADALuv4i32), 0,
 
19770
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
19771
              0, 
 
19772
            114, 
 
19773
              OPC_CheckInteger, 59, 
 
19774
              OPC_MoveParent,
 
19775
              OPC_RecordChild1,
 
19776
              OPC_Scope, 26, 
 
19777
                OPC_CheckChild1Type, MVT::v8i8,
 
19778
                OPC_RecordChild2,
 
19779
                OPC_CheckChild2Type, MVT::v8i8,
 
19780
                OPC_CheckType, MVT::v8i8,
 
19781
                OPC_CheckPatternPredicate, 3,
 
19782
                OPC_EmitInteger, MVT::i32, 14, 
 
19783
                OPC_EmitRegister, MVT::i32, 0 ,
 
19784
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXs8), 0,
 
19785
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19786
              26, 
 
19787
                OPC_CheckChild1Type, MVT::v4i16,
 
19788
                OPC_RecordChild2,
 
19789
                OPC_CheckChild2Type, MVT::v4i16,
 
19790
                OPC_CheckType, MVT::v4i16,
 
19791
                OPC_CheckPatternPredicate, 3,
 
19792
                OPC_EmitInteger, MVT::i32, 14, 
 
19793
                OPC_EmitRegister, MVT::i32, 0 ,
 
19794
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXs16), 0,
 
19795
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19796
              26, 
 
19797
                OPC_CheckChild1Type, MVT::v2i32,
 
19798
                OPC_RecordChild2,
 
19799
                OPC_CheckChild2Type, MVT::v2i32,
 
19800
                OPC_CheckType, MVT::v2i32,
 
19801
                OPC_CheckPatternPredicate, 3,
 
19802
                OPC_EmitInteger, MVT::i32, 14, 
 
19803
                OPC_EmitRegister, MVT::i32, 0 ,
 
19804
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXs32), 0,
 
19805
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19806
              26, 
 
19807
                OPC_CheckChild1Type, MVT::v2f32,
 
19808
                OPC_RecordChild2,
 
19809
                OPC_CheckChild2Type, MVT::v2f32,
 
19810
                OPC_CheckType, MVT::v2f32,
 
19811
                OPC_CheckPatternPredicate, 3,
 
19812
                OPC_EmitInteger, MVT::i32, 14, 
 
19813
                OPC_EmitRegister, MVT::i32, 0 ,
 
19814
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXf), 0,
 
19815
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
19816
              0, 
 
19817
            87, 
 
19818
              OPC_CheckInteger, 60, 
 
19819
              OPC_MoveParent,
 
19820
              OPC_RecordChild1,
 
19821
              OPC_Scope, 26, 
 
19822
                OPC_CheckChild1Type, MVT::v8i8,
 
19823
                OPC_RecordChild2,
 
19824
                OPC_CheckChild2Type, MVT::v8i8,
 
19825
                OPC_CheckType, MVT::v8i8,
 
19826
                OPC_CheckPatternPredicate, 3,
 
19827
                OPC_EmitInteger, MVT::i32, 14, 
 
19828
                OPC_EmitRegister, MVT::i32, 0 ,
 
19829
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXu8), 0,
 
19830
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19831
              26, 
 
19832
                OPC_CheckChild1Type, MVT::v4i16,
 
19833
                OPC_RecordChild2,
 
19834
                OPC_CheckChild2Type, MVT::v4i16,
 
19835
                OPC_CheckType, MVT::v4i16,
 
19836
                OPC_CheckPatternPredicate, 3,
 
19837
                OPC_EmitInteger, MVT::i32, 14, 
 
19838
                OPC_EmitRegister, MVT::i32, 0 ,
 
19839
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXu16), 0,
 
19840
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19841
              26, 
 
19842
                OPC_CheckChild1Type, MVT::v2i32,
 
19843
                OPC_RecordChild2,
 
19844
                OPC_CheckChild2Type, MVT::v2i32,
 
19845
                OPC_CheckType, MVT::v2i32,
 
19846
                OPC_CheckPatternPredicate, 3,
 
19847
                OPC_EmitInteger, MVT::i32, 14, 
 
19848
                OPC_EmitRegister, MVT::i32, 0 ,
 
19849
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMAXu32), 0,
 
19850
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19851
              0, 
 
19852
            114, 
 
19853
              OPC_CheckInteger, 61, 
 
19854
              OPC_MoveParent,
 
19855
              OPC_RecordChild1,
 
19856
              OPC_Scope, 26, 
 
19857
                OPC_CheckChild1Type, MVT::v8i8,
 
19858
                OPC_RecordChild2,
 
19859
                OPC_CheckChild2Type, MVT::v8i8,
 
19860
                OPC_CheckType, MVT::v8i8,
 
19861
                OPC_CheckPatternPredicate, 3,
 
19862
                OPC_EmitInteger, MVT::i32, 14, 
 
19863
                OPC_EmitRegister, MVT::i32, 0 ,
 
19864
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINs8), 0,
 
19865
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19866
              26, 
 
19867
                OPC_CheckChild1Type, MVT::v4i16,
 
19868
                OPC_RecordChild2,
 
19869
                OPC_CheckChild2Type, MVT::v4i16,
 
19870
                OPC_CheckType, MVT::v4i16,
 
19871
                OPC_CheckPatternPredicate, 3,
 
19872
                OPC_EmitInteger, MVT::i32, 14, 
 
19873
                OPC_EmitRegister, MVT::i32, 0 ,
 
19874
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINs16), 0,
 
19875
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19876
              26, 
 
19877
                OPC_CheckChild1Type, MVT::v2i32,
 
19878
                OPC_RecordChild2,
 
19879
                OPC_CheckChild2Type, MVT::v2i32,
 
19880
                OPC_CheckType, MVT::v2i32,
 
19881
                OPC_CheckPatternPredicate, 3,
 
19882
                OPC_EmitInteger, MVT::i32, 14, 
 
19883
                OPC_EmitRegister, MVT::i32, 0 ,
 
19884
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINs32), 0,
 
19885
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19886
              26, 
 
19887
                OPC_CheckChild1Type, MVT::v2f32,
 
19888
                OPC_RecordChild2,
 
19889
                OPC_CheckChild2Type, MVT::v2f32,
 
19890
                OPC_CheckType, MVT::v2f32,
 
19891
                OPC_CheckPatternPredicate, 3,
 
19892
                OPC_EmitInteger, MVT::i32, 14, 
 
19893
                OPC_EmitRegister, MVT::i32, 0 ,
 
19894
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINf), 0,
 
19895
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
19896
              0, 
 
19897
            87, 
 
19898
              OPC_CheckInteger, 62, 
 
19899
              OPC_MoveParent,
 
19900
              OPC_RecordChild1,
 
19901
              OPC_Scope, 26, 
 
19902
                OPC_CheckChild1Type, MVT::v8i8,
 
19903
                OPC_RecordChild2,
 
19904
                OPC_CheckChild2Type, MVT::v8i8,
 
19905
                OPC_CheckType, MVT::v8i8,
 
19906
                OPC_CheckPatternPredicate, 3,
 
19907
                OPC_EmitInteger, MVT::i32, 14, 
 
19908
                OPC_EmitRegister, MVT::i32, 0 ,
 
19909
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINu8), 0,
 
19910
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
19911
              26, 
 
19912
                OPC_CheckChild1Type, MVT::v4i16,
 
19913
                OPC_RecordChild2,
 
19914
                OPC_CheckChild2Type, MVT::v4i16,
 
19915
                OPC_CheckType, MVT::v4i16,
 
19916
                OPC_CheckPatternPredicate, 3,
 
19917
                OPC_EmitInteger, MVT::i32, 14, 
 
19918
                OPC_EmitRegister, MVT::i32, 0 ,
 
19919
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINu16), 0,
 
19920
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
19921
              26, 
 
19922
                OPC_CheckChild1Type, MVT::v2i32,
 
19923
                OPC_RecordChild2,
 
19924
                OPC_CheckChild2Type, MVT::v2i32,
 
19925
                OPC_CheckType, MVT::v2i32,
 
19926
                OPC_CheckPatternPredicate, 3,
 
19927
                OPC_EmitInteger, MVT::i32, 14, 
 
19928
                OPC_EmitRegister, MVT::i32, 0 ,
 
19929
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VPMINu32), 0,
 
19930
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
19931
              0, 
 
19932
            98, 
 
19933
              OPC_CheckInteger, 89, 
 
19934
              OPC_MoveParent,
 
19935
              OPC_RecordChild1,
 
19936
              OPC_Scope, 22, 
 
19937
                OPC_CheckChild1Type, MVT::v2i32,
 
19938
                OPC_CheckType, MVT::v2i32,
 
19939
                OPC_CheckPatternPredicate, 3,
 
19940
                OPC_EmitInteger, MVT::i32, 14, 
 
19941
                OPC_EmitRegister, MVT::i32, 0 ,
 
19942
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEd), 0,
 
19943
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
19944
              22, 
 
19945
                OPC_CheckChild1Type, MVT::v4i32,
 
19946
                OPC_CheckType, MVT::v4i32,
 
19947
                OPC_CheckPatternPredicate, 3,
 
19948
                OPC_EmitInteger, MVT::i32, 14, 
 
19949
                OPC_EmitRegister, MVT::i32, 0 ,
 
19950
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEq), 0,
 
19951
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
19952
              22, 
 
19953
                OPC_CheckChild1Type, MVT::v2f32,
 
19954
                OPC_CheckType, MVT::v2f32,
 
19955
                OPC_CheckPatternPredicate, 3,
 
19956
                OPC_EmitInteger, MVT::i32, 14, 
 
19957
                OPC_EmitRegister, MVT::i32, 0 ,
 
19958
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEfd), 0,
 
19959
                    1, MVT::v2f32, 3, 0, 1, 2, 
 
19960
              22, 
 
19961
                OPC_CheckChild1Type, MVT::v4f32,
 
19962
                OPC_CheckType, MVT::v4f32,
 
19963
                OPC_CheckPatternPredicate, 3,
 
19964
                OPC_EmitInteger, MVT::i32, 14, 
 
19965
                OPC_EmitRegister, MVT::i32, 0 ,
 
19966
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPEfq), 0,
 
19967
                    1, MVT::v4f32, 3, 0, 1, 2, 
 
19968
              0, 
 
19969
            60, 
 
19970
              OPC_CheckInteger, 90, 
 
19971
              OPC_MoveParent,
 
19972
              OPC_RecordChild1,
 
19973
              OPC_Scope, 26, 
 
19974
                OPC_CheckChild1Type, MVT::v2f32,
 
19975
                OPC_RecordChild2,
 
19976
                OPC_CheckChild2Type, MVT::v2f32,
 
19977
                OPC_CheckType, MVT::v2f32,
 
19978
                OPC_CheckPatternPredicate, 3,
 
19979
                OPC_EmitInteger, MVT::i32, 14, 
 
19980
                OPC_EmitRegister, MVT::i32, 0 ,
 
19981
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPSfd), 0,
 
19982
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
19983
              26, 
 
19984
                OPC_CheckChild1Type, MVT::v4f32,
 
19985
                OPC_RecordChild2,
 
19986
                OPC_CheckChild2Type, MVT::v4f32,
 
19987
                OPC_CheckType, MVT::v4f32,
 
19988
                OPC_CheckPatternPredicate, 3,
 
19989
                OPC_EmitInteger, MVT::i32, 14, 
 
19990
                OPC_EmitRegister, MVT::i32, 0 ,
 
19991
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRECPSfq), 0,
 
19992
                    1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
19993
              0, 
 
19994
            98, 
 
19995
              OPC_CheckInteger, 96, 
 
19996
              OPC_MoveParent,
 
19997
              OPC_RecordChild1,
 
19998
              OPC_Scope, 22, 
 
19999
                OPC_CheckChild1Type, MVT::v2i32,
 
20000
                OPC_CheckType, MVT::v2i32,
 
20001
                OPC_CheckPatternPredicate, 3,
 
20002
                OPC_EmitInteger, MVT::i32, 14, 
 
20003
                OPC_EmitRegister, MVT::i32, 0 ,
 
20004
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEd), 0,
 
20005
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
20006
              22, 
 
20007
                OPC_CheckChild1Type, MVT::v4i32,
 
20008
                OPC_CheckType, MVT::v4i32,
 
20009
                OPC_CheckPatternPredicate, 3,
 
20010
                OPC_EmitInteger, MVT::i32, 14, 
 
20011
                OPC_EmitRegister, MVT::i32, 0 ,
 
20012
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEq), 0,
 
20013
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
20014
              22, 
 
20015
                OPC_CheckChild1Type, MVT::v2f32,
 
20016
                OPC_CheckType, MVT::v2f32,
 
20017
                OPC_CheckPatternPredicate, 3,
 
20018
                OPC_EmitInteger, MVT::i32, 14, 
 
20019
                OPC_EmitRegister, MVT::i32, 0 ,
 
20020
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEfd), 0,
 
20021
                    1, MVT::v2f32, 3, 0, 1, 2, 
 
20022
              22, 
 
20023
                OPC_CheckChild1Type, MVT::v4f32,
 
20024
                OPC_CheckType, MVT::v4f32,
 
20025
                OPC_CheckPatternPredicate, 3,
 
20026
                OPC_EmitInteger, MVT::i32, 14, 
 
20027
                OPC_EmitRegister, MVT::i32, 0 ,
 
20028
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTEfq), 0,
 
20029
                    1, MVT::v4f32, 3, 0, 1, 2, 
 
20030
              0, 
 
20031
            60, 
 
20032
              OPC_CheckInteger, 97, 
 
20033
              OPC_MoveParent,
 
20034
              OPC_RecordChild1,
 
20035
              OPC_Scope, 26, 
 
20036
                OPC_CheckChild1Type, MVT::v2f32,
 
20037
                OPC_RecordChild2,
 
20038
                OPC_CheckChild2Type, MVT::v2f32,
 
20039
                OPC_CheckType, MVT::v2f32,
 
20040
                OPC_CheckPatternPredicate, 3,
 
20041
                OPC_EmitInteger, MVT::i32, 14, 
 
20042
                OPC_EmitRegister, MVT::i32, 0 ,
 
20043
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTSfd), 0,
 
20044
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
20045
              26, 
 
20046
                OPC_CheckChild1Type, MVT::v4f32,
 
20047
                OPC_RecordChild2,
 
20048
                OPC_CheckChild2Type, MVT::v4f32,
 
20049
                OPC_CheckType, MVT::v4f32,
 
20050
                OPC_CheckPatternPredicate, 3,
 
20051
                OPC_EmitInteger, MVT::i32, 14, 
 
20052
                OPC_EmitRegister, MVT::i32, 0 ,
 
20053
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSQRTSfq), 0,
 
20054
                    1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
20055
              0, 
 
20056
            94|128,1, 
 
20057
              OPC_CheckInteger, 103, 
 
20058
              OPC_MoveParent,
 
20059
              OPC_RecordChild1,
 
20060
              OPC_Scope, 26, 
 
20061
                OPC_CheckChild1Type, MVT::v4i16,
 
20062
                OPC_RecordChild2,
 
20063
                OPC_CheckChild2Type, MVT::v4i16,
 
20064
                OPC_CheckType, MVT::v4i16,
 
20065
                OPC_CheckPatternPredicate, 3,
 
20066
                OPC_EmitInteger, MVT::i32, 14, 
 
20067
                OPC_EmitRegister, MVT::i32, 0 ,
 
20068
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv4i16), 0,
 
20069
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20070
              26, 
 
20071
                OPC_CheckChild1Type, MVT::v2i32,
 
20072
                OPC_RecordChild2,
 
20073
                OPC_CheckChild2Type, MVT::v2i32,
 
20074
                OPC_CheckType, MVT::v2i32,
 
20075
                OPC_CheckPatternPredicate, 3,
 
20076
                OPC_EmitInteger, MVT::i32, 14, 
 
20077
                OPC_EmitRegister, MVT::i32, 0 ,
 
20078
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv2i32), 0,
 
20079
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20080
              26, 
 
20081
                OPC_CheckChild1Type, MVT::v8i16,
 
20082
                OPC_RecordChild2,
 
20083
                OPC_CheckChild2Type, MVT::v8i16,
 
20084
                OPC_CheckType, MVT::v8i16,
 
20085
                OPC_CheckPatternPredicate, 3,
 
20086
                OPC_EmitInteger, MVT::i32, 14, 
 
20087
                OPC_EmitRegister, MVT::i32, 0 ,
 
20088
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv8i16), 0,
 
20089
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20090
              26, 
 
20091
                OPC_CheckChild1Type, MVT::v4i32,
 
20092
                OPC_RecordChild2,
 
20093
                OPC_CheckChild2Type, MVT::v4i32,
 
20094
                OPC_CheckType, MVT::v4i32,
 
20095
                OPC_CheckPatternPredicate, 3,
 
20096
                OPC_EmitInteger, MVT::i32, 14, 
 
20097
                OPC_EmitRegister, MVT::i32, 0 ,
 
20098
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv4i32), 0,
 
20099
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20100
              26, 
 
20101
                OPC_CheckChild1Type, MVT::v8i8,
 
20102
                OPC_RecordChild2,
 
20103
                OPC_CheckChild2Type, MVT::v8i8,
 
20104
                OPC_CheckType, MVT::v8i8,
 
20105
                OPC_CheckPatternPredicate, 3,
 
20106
                OPC_EmitInteger, MVT::i32, 14, 
 
20107
                OPC_EmitRegister, MVT::i32, 0 ,
 
20108
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv8i8), 0,
 
20109
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20110
              26, 
 
20111
                OPC_CheckChild1Type, MVT::v16i8,
 
20112
                OPC_RecordChild2,
 
20113
                OPC_CheckChild2Type, MVT::v16i8,
 
20114
                OPC_CheckType, MVT::v16i8,
 
20115
                OPC_CheckPatternPredicate, 3,
 
20116
                OPC_EmitInteger, MVT::i32, 14, 
 
20117
                OPC_EmitRegister, MVT::i32, 0 ,
 
20118
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv16i8), 0,
 
20119
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20120
              26, 
 
20121
                OPC_CheckChild1Type, MVT::v1i64,
 
20122
                OPC_RecordChild2,
 
20123
                OPC_CheckChild2Type, MVT::v1i64,
 
20124
                OPC_CheckType, MVT::v1i64,
 
20125
                OPC_CheckPatternPredicate, 3,
 
20126
                OPC_EmitInteger, MVT::i32, 14, 
 
20127
                OPC_EmitRegister, MVT::i32, 0 ,
 
20128
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv1i64), 0,
 
20129
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20130
              26, 
 
20131
                OPC_CheckChild1Type, MVT::v2i64,
 
20132
                OPC_RecordChild2,
 
20133
                OPC_CheckChild2Type, MVT::v2i64,
 
20134
                OPC_CheckType, MVT::v2i64,
 
20135
                OPC_CheckPatternPredicate, 3,
 
20136
                OPC_EmitInteger, MVT::i32, 14, 
 
20137
                OPC_EmitRegister, MVT::i32, 0 ,
 
20138
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLsv2i64), 0,
 
20139
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20140
              0, 
 
20141
            94|128,1, 
 
20142
              OPC_CheckInteger, 104, 
 
20143
              OPC_MoveParent,
 
20144
              OPC_RecordChild1,
 
20145
              OPC_Scope, 26, 
 
20146
                OPC_CheckChild1Type, MVT::v4i16,
 
20147
                OPC_RecordChild2,
 
20148
                OPC_CheckChild2Type, MVT::v4i16,
 
20149
                OPC_CheckType, MVT::v4i16,
 
20150
                OPC_CheckPatternPredicate, 3,
 
20151
                OPC_EmitInteger, MVT::i32, 14, 
 
20152
                OPC_EmitRegister, MVT::i32, 0 ,
 
20153
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv4i16), 0,
 
20154
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20155
              26, 
 
20156
                OPC_CheckChild1Type, MVT::v2i32,
 
20157
                OPC_RecordChild2,
 
20158
                OPC_CheckChild2Type, MVT::v2i32,
 
20159
                OPC_CheckType, MVT::v2i32,
 
20160
                OPC_CheckPatternPredicate, 3,
 
20161
                OPC_EmitInteger, MVT::i32, 14, 
 
20162
                OPC_EmitRegister, MVT::i32, 0 ,
 
20163
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv2i32), 0,
 
20164
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20165
              26, 
 
20166
                OPC_CheckChild1Type, MVT::v8i16,
 
20167
                OPC_RecordChild2,
 
20168
                OPC_CheckChild2Type, MVT::v8i16,
 
20169
                OPC_CheckType, MVT::v8i16,
 
20170
                OPC_CheckPatternPredicate, 3,
 
20171
                OPC_EmitInteger, MVT::i32, 14, 
 
20172
                OPC_EmitRegister, MVT::i32, 0 ,
 
20173
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv8i16), 0,
 
20174
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20175
              26, 
 
20176
                OPC_CheckChild1Type, MVT::v4i32,
 
20177
                OPC_RecordChild2,
 
20178
                OPC_CheckChild2Type, MVT::v4i32,
 
20179
                OPC_CheckType, MVT::v4i32,
 
20180
                OPC_CheckPatternPredicate, 3,
 
20181
                OPC_EmitInteger, MVT::i32, 14, 
 
20182
                OPC_EmitRegister, MVT::i32, 0 ,
 
20183
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv4i32), 0,
 
20184
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20185
              26, 
 
20186
                OPC_CheckChild1Type, MVT::v8i8,
 
20187
                OPC_RecordChild2,
 
20188
                OPC_CheckChild2Type, MVT::v8i8,
 
20189
                OPC_CheckType, MVT::v8i8,
 
20190
                OPC_CheckPatternPredicate, 3,
 
20191
                OPC_EmitInteger, MVT::i32, 14, 
 
20192
                OPC_EmitRegister, MVT::i32, 0 ,
 
20193
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv8i8), 0,
 
20194
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20195
              26, 
 
20196
                OPC_CheckChild1Type, MVT::v16i8,
 
20197
                OPC_RecordChild2,
 
20198
                OPC_CheckChild2Type, MVT::v16i8,
 
20199
                OPC_CheckType, MVT::v16i8,
 
20200
                OPC_CheckPatternPredicate, 3,
 
20201
                OPC_EmitInteger, MVT::i32, 14, 
 
20202
                OPC_EmitRegister, MVT::i32, 0 ,
 
20203
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv16i8), 0,
 
20204
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20205
              26, 
 
20206
                OPC_CheckChild1Type, MVT::v1i64,
 
20207
                OPC_RecordChild2,
 
20208
                OPC_CheckChild2Type, MVT::v1i64,
 
20209
                OPC_CheckType, MVT::v1i64,
 
20210
                OPC_CheckPatternPredicate, 3,
 
20211
                OPC_EmitInteger, MVT::i32, 14, 
 
20212
                OPC_EmitRegister, MVT::i32, 0 ,
 
20213
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv1i64), 0,
 
20214
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20215
              26, 
 
20216
                OPC_CheckChild1Type, MVT::v2i64,
 
20217
                OPC_RecordChild2,
 
20218
                OPC_CheckChild2Type, MVT::v2i64,
 
20219
                OPC_CheckType, MVT::v2i64,
 
20220
                OPC_CheckPatternPredicate, 3,
 
20221
                OPC_EmitInteger, MVT::i32, 14, 
 
20222
                OPC_EmitRegister, MVT::i32, 0 ,
 
20223
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLuv2i64), 0,
 
20224
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20225
              0, 
 
20226
            94|128,1, 
 
20227
              OPC_CheckInteger, 94, 
 
20228
              OPC_MoveParent,
 
20229
              OPC_RecordChild1,
 
20230
              OPC_Scope, 26, 
 
20231
                OPC_CheckChild1Type, MVT::v4i16,
 
20232
                OPC_RecordChild2,
 
20233
                OPC_CheckChild2Type, MVT::v4i16,
 
20234
                OPC_CheckType, MVT::v4i16,
 
20235
                OPC_CheckPatternPredicate, 3,
 
20236
                OPC_EmitInteger, MVT::i32, 14, 
 
20237
                OPC_EmitRegister, MVT::i32, 0 ,
 
20238
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv4i16), 0,
 
20239
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20240
              26, 
 
20241
                OPC_CheckChild1Type, MVT::v2i32,
 
20242
                OPC_RecordChild2,
 
20243
                OPC_CheckChild2Type, MVT::v2i32,
 
20244
                OPC_CheckType, MVT::v2i32,
 
20245
                OPC_CheckPatternPredicate, 3,
 
20246
                OPC_EmitInteger, MVT::i32, 14, 
 
20247
                OPC_EmitRegister, MVT::i32, 0 ,
 
20248
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv2i32), 0,
 
20249
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20250
              26, 
 
20251
                OPC_CheckChild1Type, MVT::v8i16,
 
20252
                OPC_RecordChild2,
 
20253
                OPC_CheckChild2Type, MVT::v8i16,
 
20254
                OPC_CheckType, MVT::v8i16,
 
20255
                OPC_CheckPatternPredicate, 3,
 
20256
                OPC_EmitInteger, MVT::i32, 14, 
 
20257
                OPC_EmitRegister, MVT::i32, 0 ,
 
20258
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv8i16), 0,
 
20259
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20260
              26, 
 
20261
                OPC_CheckChild1Type, MVT::v4i32,
 
20262
                OPC_RecordChild2,
 
20263
                OPC_CheckChild2Type, MVT::v4i32,
 
20264
                OPC_CheckType, MVT::v4i32,
 
20265
                OPC_CheckPatternPredicate, 3,
 
20266
                OPC_EmitInteger, MVT::i32, 14, 
 
20267
                OPC_EmitRegister, MVT::i32, 0 ,
 
20268
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv4i32), 0,
 
20269
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20270
              26, 
 
20271
                OPC_CheckChild1Type, MVT::v8i8,
 
20272
                OPC_RecordChild2,
 
20273
                OPC_CheckChild2Type, MVT::v8i8,
 
20274
                OPC_CheckType, MVT::v8i8,
 
20275
                OPC_CheckPatternPredicate, 3,
 
20276
                OPC_EmitInteger, MVT::i32, 14, 
 
20277
                OPC_EmitRegister, MVT::i32, 0 ,
 
20278
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv8i8), 0,
 
20279
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20280
              26, 
 
20281
                OPC_CheckChild1Type, MVT::v16i8,
 
20282
                OPC_RecordChild2,
 
20283
                OPC_CheckChild2Type, MVT::v16i8,
 
20284
                OPC_CheckType, MVT::v16i8,
 
20285
                OPC_CheckPatternPredicate, 3,
 
20286
                OPC_EmitInteger, MVT::i32, 14, 
 
20287
                OPC_EmitRegister, MVT::i32, 0 ,
 
20288
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv16i8), 0,
 
20289
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20290
              26, 
 
20291
                OPC_CheckChild1Type, MVT::v1i64,
 
20292
                OPC_RecordChild2,
 
20293
                OPC_CheckChild2Type, MVT::v1i64,
 
20294
                OPC_CheckType, MVT::v1i64,
 
20295
                OPC_CheckPatternPredicate, 3,
 
20296
                OPC_EmitInteger, MVT::i32, 14, 
 
20297
                OPC_EmitRegister, MVT::i32, 0 ,
 
20298
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv1i64), 0,
 
20299
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20300
              26, 
 
20301
                OPC_CheckChild1Type, MVT::v2i64,
 
20302
                OPC_RecordChild2,
 
20303
                OPC_CheckChild2Type, MVT::v2i64,
 
20304
                OPC_CheckType, MVT::v2i64,
 
20305
                OPC_CheckPatternPredicate, 3,
 
20306
                OPC_EmitInteger, MVT::i32, 14, 
 
20307
                OPC_EmitRegister, MVT::i32, 0 ,
 
20308
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLsv2i64), 0,
 
20309
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20310
              0, 
 
20311
            94|128,1, 
 
20312
              OPC_CheckInteger, 95, 
 
20313
              OPC_MoveParent,
 
20314
              OPC_RecordChild1,
 
20315
              OPC_Scope, 26, 
 
20316
                OPC_CheckChild1Type, MVT::v4i16,
 
20317
                OPC_RecordChild2,
 
20318
                OPC_CheckChild2Type, MVT::v4i16,
 
20319
                OPC_CheckType, MVT::v4i16,
 
20320
                OPC_CheckPatternPredicate, 3,
 
20321
                OPC_EmitInteger, MVT::i32, 14, 
 
20322
                OPC_EmitRegister, MVT::i32, 0 ,
 
20323
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv4i16), 0,
 
20324
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20325
              26, 
 
20326
                OPC_CheckChild1Type, MVT::v2i32,
 
20327
                OPC_RecordChild2,
 
20328
                OPC_CheckChild2Type, MVT::v2i32,
 
20329
                OPC_CheckType, MVT::v2i32,
 
20330
                OPC_CheckPatternPredicate, 3,
 
20331
                OPC_EmitInteger, MVT::i32, 14, 
 
20332
                OPC_EmitRegister, MVT::i32, 0 ,
 
20333
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv2i32), 0,
 
20334
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20335
              26, 
 
20336
                OPC_CheckChild1Type, MVT::v8i16,
 
20337
                OPC_RecordChild2,
 
20338
                OPC_CheckChild2Type, MVT::v8i16,
 
20339
                OPC_CheckType, MVT::v8i16,
 
20340
                OPC_CheckPatternPredicate, 3,
 
20341
                OPC_EmitInteger, MVT::i32, 14, 
 
20342
                OPC_EmitRegister, MVT::i32, 0 ,
 
20343
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv8i16), 0,
 
20344
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20345
              26, 
 
20346
                OPC_CheckChild1Type, MVT::v4i32,
 
20347
                OPC_RecordChild2,
 
20348
                OPC_CheckChild2Type, MVT::v4i32,
 
20349
                OPC_CheckType, MVT::v4i32,
 
20350
                OPC_CheckPatternPredicate, 3,
 
20351
                OPC_EmitInteger, MVT::i32, 14, 
 
20352
                OPC_EmitRegister, MVT::i32, 0 ,
 
20353
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv4i32), 0,
 
20354
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20355
              26, 
 
20356
                OPC_CheckChild1Type, MVT::v8i8,
 
20357
                OPC_RecordChild2,
 
20358
                OPC_CheckChild2Type, MVT::v8i8,
 
20359
                OPC_CheckType, MVT::v8i8,
 
20360
                OPC_CheckPatternPredicate, 3,
 
20361
                OPC_EmitInteger, MVT::i32, 14, 
 
20362
                OPC_EmitRegister, MVT::i32, 0 ,
 
20363
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv8i8), 0,
 
20364
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20365
              26, 
 
20366
                OPC_CheckChild1Type, MVT::v16i8,
 
20367
                OPC_RecordChild2,
 
20368
                OPC_CheckChild2Type, MVT::v16i8,
 
20369
                OPC_CheckType, MVT::v16i8,
 
20370
                OPC_CheckPatternPredicate, 3,
 
20371
                OPC_EmitInteger, MVT::i32, 14, 
 
20372
                OPC_EmitRegister, MVT::i32, 0 ,
 
20373
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv16i8), 0,
 
20374
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20375
              26, 
 
20376
                OPC_CheckChild1Type, MVT::v1i64,
 
20377
                OPC_RecordChild2,
 
20378
                OPC_CheckChild2Type, MVT::v1i64,
 
20379
                OPC_CheckType, MVT::v1i64,
 
20380
                OPC_CheckPatternPredicate, 3,
 
20381
                OPC_EmitInteger, MVT::i32, 14, 
 
20382
                OPC_EmitRegister, MVT::i32, 0 ,
 
20383
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv1i64), 0,
 
20384
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20385
              26, 
 
20386
                OPC_CheckChild1Type, MVT::v2i64,
 
20387
                OPC_RecordChild2,
 
20388
                OPC_CheckChild2Type, MVT::v2i64,
 
20389
                OPC_CheckType, MVT::v2i64,
 
20390
                OPC_CheckPatternPredicate, 3,
 
20391
                OPC_EmitInteger, MVT::i32, 14, 
 
20392
                OPC_EmitRegister, MVT::i32, 0 ,
 
20393
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHLuv2i64), 0,
 
20394
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20395
              0, 
 
20396
            94|128,1, 
 
20397
              OPC_CheckInteger, 83, 
 
20398
              OPC_MoveParent,
 
20399
              OPC_RecordChild1,
 
20400
              OPC_Scope, 26, 
 
20401
                OPC_CheckChild1Type, MVT::v4i16,
 
20402
                OPC_RecordChild2,
 
20403
                OPC_CheckChild2Type, MVT::v4i16,
 
20404
                OPC_CheckType, MVT::v4i16,
 
20405
                OPC_CheckPatternPredicate, 3,
 
20406
                OPC_EmitInteger, MVT::i32, 14, 
 
20407
                OPC_EmitRegister, MVT::i32, 0 ,
 
20408
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv4i16), 0,
 
20409
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20410
              26, 
 
20411
                OPC_CheckChild1Type, MVT::v2i32,
 
20412
                OPC_RecordChild2,
 
20413
                OPC_CheckChild2Type, MVT::v2i32,
 
20414
                OPC_CheckType, MVT::v2i32,
 
20415
                OPC_CheckPatternPredicate, 3,
 
20416
                OPC_EmitInteger, MVT::i32, 14, 
 
20417
                OPC_EmitRegister, MVT::i32, 0 ,
 
20418
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv2i32), 0,
 
20419
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20420
              26, 
 
20421
                OPC_CheckChild1Type, MVT::v8i16,
 
20422
                OPC_RecordChild2,
 
20423
                OPC_CheckChild2Type, MVT::v8i16,
 
20424
                OPC_CheckType, MVT::v8i16,
 
20425
                OPC_CheckPatternPredicate, 3,
 
20426
                OPC_EmitInteger, MVT::i32, 14, 
 
20427
                OPC_EmitRegister, MVT::i32, 0 ,
 
20428
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv8i16), 0,
 
20429
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20430
              26, 
 
20431
                OPC_CheckChild1Type, MVT::v4i32,
 
20432
                OPC_RecordChild2,
 
20433
                OPC_CheckChild2Type, MVT::v4i32,
 
20434
                OPC_CheckType, MVT::v4i32,
 
20435
                OPC_CheckPatternPredicate, 3,
 
20436
                OPC_EmitInteger, MVT::i32, 14, 
 
20437
                OPC_EmitRegister, MVT::i32, 0 ,
 
20438
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv4i32), 0,
 
20439
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20440
              26, 
 
20441
                OPC_CheckChild1Type, MVT::v8i8,
 
20442
                OPC_RecordChild2,
 
20443
                OPC_CheckChild2Type, MVT::v8i8,
 
20444
                OPC_CheckType, MVT::v8i8,
 
20445
                OPC_CheckPatternPredicate, 3,
 
20446
                OPC_EmitInteger, MVT::i32, 14, 
 
20447
                OPC_EmitRegister, MVT::i32, 0 ,
 
20448
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv8i8), 0,
 
20449
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20450
              26, 
 
20451
                OPC_CheckChild1Type, MVT::v16i8,
 
20452
                OPC_RecordChild2,
 
20453
                OPC_CheckChild2Type, MVT::v16i8,
 
20454
                OPC_CheckType, MVT::v16i8,
 
20455
                OPC_CheckPatternPredicate, 3,
 
20456
                OPC_EmitInteger, MVT::i32, 14, 
 
20457
                OPC_EmitRegister, MVT::i32, 0 ,
 
20458
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv16i8), 0,
 
20459
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20460
              26, 
 
20461
                OPC_CheckChild1Type, MVT::v1i64,
 
20462
                OPC_RecordChild2,
 
20463
                OPC_CheckChild2Type, MVT::v1i64,
 
20464
                OPC_CheckType, MVT::v1i64,
 
20465
                OPC_CheckPatternPredicate, 3,
 
20466
                OPC_EmitInteger, MVT::i32, 14, 
 
20467
                OPC_EmitRegister, MVT::i32, 0 ,
 
20468
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv1i64), 0,
 
20469
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20470
              26, 
 
20471
                OPC_CheckChild1Type, MVT::v2i64,
 
20472
                OPC_RecordChild2,
 
20473
                OPC_CheckChild2Type, MVT::v2i64,
 
20474
                OPC_CheckType, MVT::v2i64,
 
20475
                OPC_CheckPatternPredicate, 3,
 
20476
                OPC_EmitInteger, MVT::i32, 14, 
 
20477
                OPC_EmitRegister, MVT::i32, 0 ,
 
20478
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsv2i64), 0,
 
20479
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20480
              0, 
 
20481
            94|128,1, 
 
20482
              OPC_CheckInteger, 85, 
 
20483
              OPC_MoveParent,
 
20484
              OPC_RecordChild1,
 
20485
              OPC_Scope, 26, 
 
20486
                OPC_CheckChild1Type, MVT::v4i16,
 
20487
                OPC_RecordChild2,
 
20488
                OPC_CheckChild2Type, MVT::v4i16,
 
20489
                OPC_CheckType, MVT::v4i16,
 
20490
                OPC_CheckPatternPredicate, 3,
 
20491
                OPC_EmitInteger, MVT::i32, 14, 
 
20492
                OPC_EmitRegister, MVT::i32, 0 ,
 
20493
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv4i16), 0,
 
20494
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20495
              26, 
 
20496
                OPC_CheckChild1Type, MVT::v2i32,
 
20497
                OPC_RecordChild2,
 
20498
                OPC_CheckChild2Type, MVT::v2i32,
 
20499
                OPC_CheckType, MVT::v2i32,
 
20500
                OPC_CheckPatternPredicate, 3,
 
20501
                OPC_EmitInteger, MVT::i32, 14, 
 
20502
                OPC_EmitRegister, MVT::i32, 0 ,
 
20503
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv2i32), 0,
 
20504
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20505
              26, 
 
20506
                OPC_CheckChild1Type, MVT::v8i16,
 
20507
                OPC_RecordChild2,
 
20508
                OPC_CheckChild2Type, MVT::v8i16,
 
20509
                OPC_CheckType, MVT::v8i16,
 
20510
                OPC_CheckPatternPredicate, 3,
 
20511
                OPC_EmitInteger, MVT::i32, 14, 
 
20512
                OPC_EmitRegister, MVT::i32, 0 ,
 
20513
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv8i16), 0,
 
20514
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20515
              26, 
 
20516
                OPC_CheckChild1Type, MVT::v4i32,
 
20517
                OPC_RecordChild2,
 
20518
                OPC_CheckChild2Type, MVT::v4i32,
 
20519
                OPC_CheckType, MVT::v4i32,
 
20520
                OPC_CheckPatternPredicate, 3,
 
20521
                OPC_EmitInteger, MVT::i32, 14, 
 
20522
                OPC_EmitRegister, MVT::i32, 0 ,
 
20523
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv4i32), 0,
 
20524
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20525
              26, 
 
20526
                OPC_CheckChild1Type, MVT::v8i8,
 
20527
                OPC_RecordChild2,
 
20528
                OPC_CheckChild2Type, MVT::v8i8,
 
20529
                OPC_CheckType, MVT::v8i8,
 
20530
                OPC_CheckPatternPredicate, 3,
 
20531
                OPC_EmitInteger, MVT::i32, 14, 
 
20532
                OPC_EmitRegister, MVT::i32, 0 ,
 
20533
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv8i8), 0,
 
20534
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20535
              26, 
 
20536
                OPC_CheckChild1Type, MVT::v16i8,
 
20537
                OPC_RecordChild2,
 
20538
                OPC_CheckChild2Type, MVT::v16i8,
 
20539
                OPC_CheckType, MVT::v16i8,
 
20540
                OPC_CheckPatternPredicate, 3,
 
20541
                OPC_EmitInteger, MVT::i32, 14, 
 
20542
                OPC_EmitRegister, MVT::i32, 0 ,
 
20543
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv16i8), 0,
 
20544
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20545
              26, 
 
20546
                OPC_CheckChild1Type, MVT::v1i64,
 
20547
                OPC_RecordChild2,
 
20548
                OPC_CheckChild2Type, MVT::v1i64,
 
20549
                OPC_CheckType, MVT::v1i64,
 
20550
                OPC_CheckPatternPredicate, 3,
 
20551
                OPC_EmitInteger, MVT::i32, 14, 
 
20552
                OPC_EmitRegister, MVT::i32, 0 ,
 
20553
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv1i64), 0,
 
20554
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20555
              26, 
 
20556
                OPC_CheckChild1Type, MVT::v2i64,
 
20557
                OPC_RecordChild2,
 
20558
                OPC_CheckChild2Type, MVT::v2i64,
 
20559
                OPC_CheckType, MVT::v2i64,
 
20560
                OPC_CheckPatternPredicate, 3,
 
20561
                OPC_EmitInteger, MVT::i32, 14, 
 
20562
                OPC_EmitRegister, MVT::i32, 0 ,
 
20563
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuv2i64), 0,
 
20564
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20565
              0, 
 
20566
            94|128,1, 
 
20567
              OPC_CheckInteger, 78, 
 
20568
              OPC_MoveParent,
 
20569
              OPC_RecordChild1,
 
20570
              OPC_Scope, 26, 
 
20571
                OPC_CheckChild1Type, MVT::v4i16,
 
20572
                OPC_RecordChild2,
 
20573
                OPC_CheckChild2Type, MVT::v4i16,
 
20574
                OPC_CheckType, MVT::v4i16,
 
20575
                OPC_CheckPatternPredicate, 3,
 
20576
                OPC_EmitInteger, MVT::i32, 14, 
 
20577
                OPC_EmitRegister, MVT::i32, 0 ,
 
20578
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv4i16), 0,
 
20579
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20580
              26, 
 
20581
                OPC_CheckChild1Type, MVT::v2i32,
 
20582
                OPC_RecordChild2,
 
20583
                OPC_CheckChild2Type, MVT::v2i32,
 
20584
                OPC_CheckType, MVT::v2i32,
 
20585
                OPC_CheckPatternPredicate, 3,
 
20586
                OPC_EmitInteger, MVT::i32, 14, 
 
20587
                OPC_EmitRegister, MVT::i32, 0 ,
 
20588
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv2i32), 0,
 
20589
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20590
              26, 
 
20591
                OPC_CheckChild1Type, MVT::v8i16,
 
20592
                OPC_RecordChild2,
 
20593
                OPC_CheckChild2Type, MVT::v8i16,
 
20594
                OPC_CheckType, MVT::v8i16,
 
20595
                OPC_CheckPatternPredicate, 3,
 
20596
                OPC_EmitInteger, MVT::i32, 14, 
 
20597
                OPC_EmitRegister, MVT::i32, 0 ,
 
20598
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv8i16), 0,
 
20599
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20600
              26, 
 
20601
                OPC_CheckChild1Type, MVT::v4i32,
 
20602
                OPC_RecordChild2,
 
20603
                OPC_CheckChild2Type, MVT::v4i32,
 
20604
                OPC_CheckType, MVT::v4i32,
 
20605
                OPC_CheckPatternPredicate, 3,
 
20606
                OPC_EmitInteger, MVT::i32, 14, 
 
20607
                OPC_EmitRegister, MVT::i32, 0 ,
 
20608
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv4i32), 0,
 
20609
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20610
              26, 
 
20611
                OPC_CheckChild1Type, MVT::v8i8,
 
20612
                OPC_RecordChild2,
 
20613
                OPC_CheckChild2Type, MVT::v8i8,
 
20614
                OPC_CheckType, MVT::v8i8,
 
20615
                OPC_CheckPatternPredicate, 3,
 
20616
                OPC_EmitInteger, MVT::i32, 14, 
 
20617
                OPC_EmitRegister, MVT::i32, 0 ,
 
20618
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv8i8), 0,
 
20619
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20620
              26, 
 
20621
                OPC_CheckChild1Type, MVT::v16i8,
 
20622
                OPC_RecordChild2,
 
20623
                OPC_CheckChild2Type, MVT::v16i8,
 
20624
                OPC_CheckType, MVT::v16i8,
 
20625
                OPC_CheckPatternPredicate, 3,
 
20626
                OPC_EmitInteger, MVT::i32, 14, 
 
20627
                OPC_EmitRegister, MVT::i32, 0 ,
 
20628
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv16i8), 0,
 
20629
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20630
              26, 
 
20631
                OPC_CheckChild1Type, MVT::v1i64,
 
20632
                OPC_RecordChild2,
 
20633
                OPC_CheckChild2Type, MVT::v1i64,
 
20634
                OPC_CheckType, MVT::v1i64,
 
20635
                OPC_CheckPatternPredicate, 3,
 
20636
                OPC_EmitInteger, MVT::i32, 14, 
 
20637
                OPC_EmitRegister, MVT::i32, 0 ,
 
20638
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv1i64), 0,
 
20639
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20640
              26, 
 
20641
                OPC_CheckChild1Type, MVT::v2i64,
 
20642
                OPC_RecordChild2,
 
20643
                OPC_CheckChild2Type, MVT::v2i64,
 
20644
                OPC_CheckType, MVT::v2i64,
 
20645
                OPC_CheckPatternPredicate, 3,
 
20646
                OPC_EmitInteger, MVT::i32, 14, 
 
20647
                OPC_EmitRegister, MVT::i32, 0 ,
 
20648
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLsv2i64), 0,
 
20649
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20650
              0, 
 
20651
            94|128,1, 
 
20652
              OPC_CheckInteger, 79, 
 
20653
              OPC_MoveParent,
 
20654
              OPC_RecordChild1,
 
20655
              OPC_Scope, 26, 
 
20656
                OPC_CheckChild1Type, MVT::v4i16,
 
20657
                OPC_RecordChild2,
 
20658
                OPC_CheckChild2Type, MVT::v4i16,
 
20659
                OPC_CheckType, MVT::v4i16,
 
20660
                OPC_CheckPatternPredicate, 3,
 
20661
                OPC_EmitInteger, MVT::i32, 14, 
 
20662
                OPC_EmitRegister, MVT::i32, 0 ,
 
20663
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv4i16), 0,
 
20664
                    1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
20665
              26, 
 
20666
                OPC_CheckChild1Type, MVT::v2i32,
 
20667
                OPC_RecordChild2,
 
20668
                OPC_CheckChild2Type, MVT::v2i32,
 
20669
                OPC_CheckType, MVT::v2i32,
 
20670
                OPC_CheckPatternPredicate, 3,
 
20671
                OPC_EmitInteger, MVT::i32, 14, 
 
20672
                OPC_EmitRegister, MVT::i32, 0 ,
 
20673
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv2i32), 0,
 
20674
                    1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
20675
              26, 
 
20676
                OPC_CheckChild1Type, MVT::v8i16,
 
20677
                OPC_RecordChild2,
 
20678
                OPC_CheckChild2Type, MVT::v8i16,
 
20679
                OPC_CheckType, MVT::v8i16,
 
20680
                OPC_CheckPatternPredicate, 3,
 
20681
                OPC_EmitInteger, MVT::i32, 14, 
 
20682
                OPC_EmitRegister, MVT::i32, 0 ,
 
20683
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv8i16), 0,
 
20684
                    1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
20685
              26, 
 
20686
                OPC_CheckChild1Type, MVT::v4i32,
 
20687
                OPC_RecordChild2,
 
20688
                OPC_CheckChild2Type, MVT::v4i32,
 
20689
                OPC_CheckType, MVT::v4i32,
 
20690
                OPC_CheckPatternPredicate, 3,
 
20691
                OPC_EmitInteger, MVT::i32, 14, 
 
20692
                OPC_EmitRegister, MVT::i32, 0 ,
 
20693
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv4i32), 0,
 
20694
                    1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
20695
              26, 
 
20696
                OPC_CheckChild1Type, MVT::v8i8,
 
20697
                OPC_RecordChild2,
 
20698
                OPC_CheckChild2Type, MVT::v8i8,
 
20699
                OPC_CheckType, MVT::v8i8,
 
20700
                OPC_CheckPatternPredicate, 3,
 
20701
                OPC_EmitInteger, MVT::i32, 14, 
 
20702
                OPC_EmitRegister, MVT::i32, 0 ,
 
20703
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv8i8), 0,
 
20704
                    1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
20705
              26, 
 
20706
                OPC_CheckChild1Type, MVT::v16i8,
 
20707
                OPC_RecordChild2,
 
20708
                OPC_CheckChild2Type, MVT::v16i8,
 
20709
                OPC_CheckType, MVT::v16i8,
 
20710
                OPC_CheckPatternPredicate, 3,
 
20711
                OPC_EmitInteger, MVT::i32, 14, 
 
20712
                OPC_EmitRegister, MVT::i32, 0 ,
 
20713
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv16i8), 0,
 
20714
                    1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
20715
              26, 
 
20716
                OPC_CheckChild1Type, MVT::v1i64,
 
20717
                OPC_RecordChild2,
 
20718
                OPC_CheckChild2Type, MVT::v1i64,
 
20719
                OPC_CheckType, MVT::v1i64,
 
20720
                OPC_CheckPatternPredicate, 3,
 
20721
                OPC_EmitInteger, MVT::i32, 14, 
 
20722
                OPC_EmitRegister, MVT::i32, 0 ,
 
20723
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv1i64), 0,
 
20724
                    1, MVT::v1i64, 4, 0, 1, 2, 3, 
 
20725
              26, 
 
20726
                OPC_CheckChild1Type, MVT::v2i64,
 
20727
                OPC_RecordChild2,
 
20728
                OPC_CheckChild2Type, MVT::v2i64,
 
20729
                OPC_CheckType, MVT::v2i64,
 
20730
                OPC_CheckPatternPredicate, 3,
 
20731
                OPC_EmitInteger, MVT::i32, 14, 
 
20732
                OPC_EmitRegister, MVT::i32, 0 ,
 
20733
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHLuv2i64), 0,
 
20734
                    1, MVT::v2i64, 4, 0, 1, 2, 3, 
 
20735
              0, 
 
20736
            62|128,1, 
 
20737
              OPC_CheckInteger, 11, 
 
20738
              OPC_MoveParent,
 
20739
              OPC_RecordChild1,
 
20740
              OPC_Scope, 22, 
 
20741
                OPC_CheckChild1Type, MVT::v8i8,
 
20742
                OPC_CheckType, MVT::v8i8,
 
20743
                OPC_CheckPatternPredicate, 3,
 
20744
                OPC_EmitInteger, MVT::i32, 14, 
 
20745
                OPC_EmitRegister, MVT::i32, 0 ,
 
20746
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv8i8), 0,
 
20747
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
20748
              22, 
 
20749
                OPC_CheckChild1Type, MVT::v4i16,
 
20750
                OPC_CheckType, MVT::v4i16,
 
20751
                OPC_CheckPatternPredicate, 3,
 
20752
                OPC_EmitInteger, MVT::i32, 14, 
 
20753
                OPC_EmitRegister, MVT::i32, 0 ,
 
20754
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv4i16), 0,
 
20755
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
20756
              22, 
 
20757
                OPC_CheckChild1Type, MVT::v2i32,
 
20758
                OPC_CheckType, MVT::v2i32,
 
20759
                OPC_CheckPatternPredicate, 3,
 
20760
                OPC_EmitInteger, MVT::i32, 14, 
 
20761
                OPC_EmitRegister, MVT::i32, 0 ,
 
20762
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv2i32), 0,
 
20763
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
20764
              22, 
 
20765
                OPC_CheckChild1Type, MVT::v16i8,
 
20766
                OPC_CheckType, MVT::v16i8,
 
20767
                OPC_CheckPatternPredicate, 3,
 
20768
                OPC_EmitInteger, MVT::i32, 14, 
 
20769
                OPC_EmitRegister, MVT::i32, 0 ,
 
20770
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv16i8), 0,
 
20771
                    1, MVT::v16i8, 3, 0, 1, 2, 
 
20772
              22, 
 
20773
                OPC_CheckChild1Type, MVT::v8i16,
 
20774
                OPC_CheckType, MVT::v8i16,
 
20775
                OPC_CheckPatternPredicate, 3,
 
20776
                OPC_EmitInteger, MVT::i32, 14, 
 
20777
                OPC_EmitRegister, MVT::i32, 0 ,
 
20778
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv8i16), 0,
 
20779
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
20780
              22, 
 
20781
                OPC_CheckChild1Type, MVT::v4i32,
 
20782
                OPC_CheckType, MVT::v4i32,
 
20783
                OPC_CheckPatternPredicate, 3,
 
20784
                OPC_EmitInteger, MVT::i32, 14, 
 
20785
                OPC_EmitRegister, MVT::i32, 0 ,
 
20786
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSv4i32), 0,
 
20787
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
20788
              22, 
 
20789
                OPC_CheckChild1Type, MVT::v2f32,
 
20790
                OPC_CheckType, MVT::v2f32,
 
20791
                OPC_CheckPatternPredicate, 3,
 
20792
                OPC_EmitInteger, MVT::i32, 14, 
 
20793
                OPC_EmitRegister, MVT::i32, 0 ,
 
20794
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSfd), 0,
 
20795
                    1, MVT::v2f32, 3, 0, 1, 2, 
 
20796
              22, 
 
20797
                OPC_CheckChild1Type, MVT::v4f32,
 
20798
                OPC_CheckType, MVT::v4f32,
 
20799
                OPC_CheckPatternPredicate, 3,
 
20800
                OPC_EmitInteger, MVT::i32, 14, 
 
20801
                OPC_EmitRegister, MVT::i32, 0 ,
 
20802
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSfq), 0,
 
20803
                    1, MVT::v4f32, 3, 0, 1, 2, 
 
20804
              0, 
 
20805
            16|128,1, 
 
20806
              OPC_CheckInteger, 63, 
 
20807
              OPC_MoveParent,
 
20808
              OPC_RecordChild1,
 
20809
              OPC_Scope, 22, 
 
20810
                OPC_CheckChild1Type, MVT::v8i8,
 
20811
                OPC_CheckType, MVT::v8i8,
 
20812
                OPC_CheckPatternPredicate, 3,
 
20813
                OPC_EmitInteger, MVT::i32, 14, 
 
20814
                OPC_EmitRegister, MVT::i32, 0 ,
 
20815
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv8i8), 0,
 
20816
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
20817
              22, 
 
20818
                OPC_CheckChild1Type, MVT::v4i16,
 
20819
                OPC_CheckType, MVT::v4i16,
 
20820
                OPC_CheckPatternPredicate, 3,
 
20821
                OPC_EmitInteger, MVT::i32, 14, 
 
20822
                OPC_EmitRegister, MVT::i32, 0 ,
 
20823
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv4i16), 0,
 
20824
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
20825
              22, 
 
20826
                OPC_CheckChild1Type, MVT::v2i32,
 
20827
                OPC_CheckType, MVT::v2i32,
 
20828
                OPC_CheckPatternPredicate, 3,
 
20829
                OPC_EmitInteger, MVT::i32, 14, 
 
20830
                OPC_EmitRegister, MVT::i32, 0 ,
 
20831
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv2i32), 0,
 
20832
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
20833
              22, 
 
20834
                OPC_CheckChild1Type, MVT::v16i8,
 
20835
                OPC_CheckType, MVT::v16i8,
 
20836
                OPC_CheckPatternPredicate, 3,
 
20837
                OPC_EmitInteger, MVT::i32, 14, 
 
20838
                OPC_EmitRegister, MVT::i32, 0 ,
 
20839
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv16i8), 0,
 
20840
                    1, MVT::v16i8, 3, 0, 1, 2, 
 
20841
              22, 
 
20842
                OPC_CheckChild1Type, MVT::v8i16,
 
20843
                OPC_CheckType, MVT::v8i16,
 
20844
                OPC_CheckPatternPredicate, 3,
 
20845
                OPC_EmitInteger, MVT::i32, 14, 
 
20846
                OPC_EmitRegister, MVT::i32, 0 ,
 
20847
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv8i16), 0,
 
20848
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
20849
              22, 
 
20850
                OPC_CheckChild1Type, MVT::v4i32,
 
20851
                OPC_CheckType, MVT::v4i32,
 
20852
                OPC_CheckPatternPredicate, 3,
 
20853
                OPC_EmitInteger, MVT::i32, 14, 
 
20854
                OPC_EmitRegister, MVT::i32, 0 ,
 
20855
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQABSv4i32), 0,
 
20856
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
20857
              0, 
 
20858
            16|128,1, 
 
20859
              OPC_CheckInteger, 73, 
 
20860
              OPC_MoveParent,
 
20861
              OPC_RecordChild1,
 
20862
              OPC_Scope, 22, 
 
20863
                OPC_CheckChild1Type, MVT::v8i8,
 
20864
                OPC_CheckType, MVT::v8i8,
 
20865
                OPC_CheckPatternPredicate, 3,
 
20866
                OPC_EmitInteger, MVT::i32, 14, 
 
20867
                OPC_EmitRegister, MVT::i32, 0 ,
 
20868
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv8i8), 0,
 
20869
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
20870
              22, 
 
20871
                OPC_CheckChild1Type, MVT::v4i16,
 
20872
                OPC_CheckType, MVT::v4i16,
 
20873
                OPC_CheckPatternPredicate, 3,
 
20874
                OPC_EmitInteger, MVT::i32, 14, 
 
20875
                OPC_EmitRegister, MVT::i32, 0 ,
 
20876
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv4i16), 0,
 
20877
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
20878
              22, 
 
20879
                OPC_CheckChild1Type, MVT::v2i32,
 
20880
                OPC_CheckType, MVT::v2i32,
 
20881
                OPC_CheckPatternPredicate, 3,
 
20882
                OPC_EmitInteger, MVT::i32, 14, 
 
20883
                OPC_EmitRegister, MVT::i32, 0 ,
 
20884
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv2i32), 0,
 
20885
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
20886
              22, 
 
20887
                OPC_CheckChild1Type, MVT::v16i8,
 
20888
                OPC_CheckType, MVT::v16i8,
 
20889
                OPC_CheckPatternPredicate, 3,
 
20890
                OPC_EmitInteger, MVT::i32, 14, 
 
20891
                OPC_EmitRegister, MVT::i32, 0 ,
 
20892
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv16i8), 0,
 
20893
                    1, MVT::v16i8, 3, 0, 1, 2, 
 
20894
              22, 
 
20895
                OPC_CheckChild1Type, MVT::v8i16,
 
20896
                OPC_CheckType, MVT::v8i16,
 
20897
                OPC_CheckPatternPredicate, 3,
 
20898
                OPC_EmitInteger, MVT::i32, 14, 
 
20899
                OPC_EmitRegister, MVT::i32, 0 ,
 
20900
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv8i16), 0,
 
20901
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
20902
              22, 
 
20903
                OPC_CheckChild1Type, MVT::v4i32,
 
20904
                OPC_CheckType, MVT::v4i32,
 
20905
                OPC_CheckPatternPredicate, 3,
 
20906
                OPC_EmitInteger, MVT::i32, 14, 
 
20907
                OPC_EmitRegister, MVT::i32, 0 ,
 
20908
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQNEGv4i32), 0,
 
20909
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
20910
              0, 
 
20911
            16|128,1, 
 
20912
              OPC_CheckInteger, 21, 
 
20913
              OPC_MoveParent,
 
20914
              OPC_RecordChild1,
 
20915
              OPC_Scope, 22, 
 
20916
                OPC_CheckChild1Type, MVT::v8i8,
 
20917
                OPC_CheckType, MVT::v8i8,
 
20918
                OPC_CheckPatternPredicate, 3,
 
20919
                OPC_EmitInteger, MVT::i32, 14, 
 
20920
                OPC_EmitRegister, MVT::i32, 0 ,
 
20921
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv8i8), 0,
 
20922
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
20923
              22, 
 
20924
                OPC_CheckChild1Type, MVT::v4i16,
 
20925
                OPC_CheckType, MVT::v4i16,
 
20926
                OPC_CheckPatternPredicate, 3,
 
20927
                OPC_EmitInteger, MVT::i32, 14, 
 
20928
                OPC_EmitRegister, MVT::i32, 0 ,
 
20929
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv4i16), 0,
 
20930
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
20931
              22, 
 
20932
                OPC_CheckChild1Type, MVT::v2i32,
 
20933
                OPC_CheckType, MVT::v2i32,
 
20934
                OPC_CheckPatternPredicate, 3,
 
20935
                OPC_EmitInteger, MVT::i32, 14, 
 
20936
                OPC_EmitRegister, MVT::i32, 0 ,
 
20937
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv2i32), 0,
 
20938
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
20939
              22, 
 
20940
                OPC_CheckChild1Type, MVT::v16i8,
 
20941
                OPC_CheckType, MVT::v16i8,
 
20942
                OPC_CheckPatternPredicate, 3,
 
20943
                OPC_EmitInteger, MVT::i32, 14, 
 
20944
                OPC_EmitRegister, MVT::i32, 0 ,
 
20945
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv16i8), 0,
 
20946
                    1, MVT::v16i8, 3, 0, 1, 2, 
 
20947
              22, 
 
20948
                OPC_CheckChild1Type, MVT::v8i16,
 
20949
                OPC_CheckType, MVT::v8i16,
 
20950
                OPC_CheckPatternPredicate, 3,
 
20951
                OPC_EmitInteger, MVT::i32, 14, 
 
20952
                OPC_EmitRegister, MVT::i32, 0 ,
 
20953
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv8i16), 0,
 
20954
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
20955
              22, 
 
20956
                OPC_CheckChild1Type, MVT::v4i32,
 
20957
                OPC_CheckType, MVT::v4i32,
 
20958
                OPC_CheckPatternPredicate, 3,
 
20959
                OPC_EmitInteger, MVT::i32, 14, 
 
20960
                OPC_EmitRegister, MVT::i32, 0 ,
 
20961
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLSv4i32), 0,
 
20962
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
20963
              0, 
 
20964
            16|128,1, 
 
20965
              OPC_CheckInteger, 22, 
 
20966
              OPC_MoveParent,
 
20967
              OPC_RecordChild1,
 
20968
              OPC_Scope, 22, 
 
20969
                OPC_CheckChild1Type, MVT::v8i8,
 
20970
                OPC_CheckType, MVT::v8i8,
 
20971
                OPC_CheckPatternPredicate, 3,
 
20972
                OPC_EmitInteger, MVT::i32, 14, 
 
20973
                OPC_EmitRegister, MVT::i32, 0 ,
 
20974
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv8i8), 0,
 
20975
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
20976
              22, 
 
20977
                OPC_CheckChild1Type, MVT::v4i16,
 
20978
                OPC_CheckType, MVT::v4i16,
 
20979
                OPC_CheckPatternPredicate, 3,
 
20980
                OPC_EmitInteger, MVT::i32, 14, 
 
20981
                OPC_EmitRegister, MVT::i32, 0 ,
 
20982
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv4i16), 0,
 
20983
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
20984
              22, 
 
20985
                OPC_CheckChild1Type, MVT::v2i32,
 
20986
                OPC_CheckType, MVT::v2i32,
 
20987
                OPC_CheckPatternPredicate, 3,
 
20988
                OPC_EmitInteger, MVT::i32, 14, 
 
20989
                OPC_EmitRegister, MVT::i32, 0 ,
 
20990
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv2i32), 0,
 
20991
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
20992
              22, 
 
20993
                OPC_CheckChild1Type, MVT::v16i8,
 
20994
                OPC_CheckType, MVT::v16i8,
 
20995
                OPC_CheckPatternPredicate, 3,
 
20996
                OPC_EmitInteger, MVT::i32, 14, 
 
20997
                OPC_EmitRegister, MVT::i32, 0 ,
 
20998
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv16i8), 0,
 
20999
                    1, MVT::v16i8, 3, 0, 1, 2, 
 
21000
              22, 
 
21001
                OPC_CheckChild1Type, MVT::v8i16,
 
21002
                OPC_CheckType, MVT::v8i16,
 
21003
                OPC_CheckPatternPredicate, 3,
 
21004
                OPC_EmitInteger, MVT::i32, 14, 
 
21005
                OPC_EmitRegister, MVT::i32, 0 ,
 
21006
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv8i16), 0,
 
21007
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
21008
              22, 
 
21009
                OPC_CheckChild1Type, MVT::v4i32,
 
21010
                OPC_CheckType, MVT::v4i32,
 
21011
                OPC_CheckPatternPredicate, 3,
 
21012
                OPC_EmitInteger, MVT::i32, 14, 
 
21013
                OPC_EmitRegister, MVT::i32, 0 ,
 
21014
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCLZv4i32), 0,
 
21015
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
21016
              0, 
 
21017
            52, 
 
21018
              OPC_CheckInteger, 23, 
 
21019
              OPC_MoveParent,
 
21020
              OPC_RecordChild1,
 
21021
              OPC_Scope, 22, 
 
21022
                OPC_CheckChild1Type, MVT::v8i8,
 
21023
                OPC_CheckType, MVT::v8i8,
 
21024
                OPC_CheckPatternPredicate, 3,
 
21025
                OPC_EmitInteger, MVT::i32, 14, 
 
21026
                OPC_EmitRegister, MVT::i32, 0 ,
 
21027
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCNTd), 0,
 
21028
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
21029
              22, 
 
21030
                OPC_CheckChild1Type, MVT::v16i8,
 
21031
                OPC_CheckType, MVT::v16i8,
 
21032
                OPC_CheckPatternPredicate, 3,
 
21033
                OPC_EmitInteger, MVT::i32, 14, 
 
21034
                OPC_EmitRegister, MVT::i32, 0 ,
 
21035
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCNTq), 0,
 
21036
                    1, MVT::v16i8, 3, 0, 1, 2, 
 
21037
              0, 
 
21038
            75, 
 
21039
              OPC_CheckInteger, 49, 
 
21040
              OPC_MoveParent,
 
21041
              OPC_RecordChild1,
 
21042
              OPC_Scope, 22, 
 
21043
                OPC_CheckChild1Type, MVT::v8i16,
 
21044
                OPC_CheckType, MVT::v8i8,
 
21045
                OPC_CheckPatternPredicate, 3,
 
21046
                OPC_EmitInteger, MVT::i32, 14, 
 
21047
                OPC_EmitRegister, MVT::i32, 0 ,
 
21048
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVNv8i8), 0,
 
21049
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
21050
              22, 
 
21051
                OPC_CheckChild1Type, MVT::v4i32,
 
21052
                OPC_CheckType, MVT::v4i16,
 
21053
                OPC_CheckPatternPredicate, 3,
 
21054
                OPC_EmitInteger, MVT::i32, 14, 
 
21055
                OPC_EmitRegister, MVT::i32, 0 ,
 
21056
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVNv4i16), 0,
 
21057
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
21058
              22, 
 
21059
                OPC_CheckChild1Type, MVT::v2i64,
 
21060
                OPC_CheckType, MVT::v2i32,
 
21061
                OPC_CheckPatternPredicate, 3,
 
21062
                OPC_EmitInteger, MVT::i32, 14, 
 
21063
                OPC_EmitRegister, MVT::i32, 0 ,
 
21064
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVNv2i32), 0,
 
21065
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
21066
              0, 
 
21067
            75, 
 
21068
              OPC_CheckInteger, 70, 
 
21069
              OPC_MoveParent,
 
21070
              OPC_RecordChild1,
 
21071
              OPC_Scope, 22, 
 
21072
                OPC_CheckChild1Type, MVT::v8i16,
 
21073
                OPC_CheckType, MVT::v8i8,
 
21074
                OPC_CheckPatternPredicate, 3,
 
21075
                OPC_EmitInteger, MVT::i32, 14, 
 
21076
                OPC_EmitRegister, MVT::i32, 0 ,
 
21077
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsv8i8), 0,
 
21078
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
21079
              22, 
 
21080
                OPC_CheckChild1Type, MVT::v4i32,
 
21081
                OPC_CheckType, MVT::v4i16,
 
21082
                OPC_CheckPatternPredicate, 3,
 
21083
                OPC_EmitInteger, MVT::i32, 14, 
 
21084
                OPC_EmitRegister, MVT::i32, 0 ,
 
21085
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsv4i16), 0,
 
21086
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
21087
              22, 
 
21088
                OPC_CheckChild1Type, MVT::v2i64,
 
21089
                OPC_CheckType, MVT::v2i32,
 
21090
                OPC_CheckPatternPredicate, 3,
 
21091
                OPC_EmitInteger, MVT::i32, 14, 
 
21092
                OPC_EmitRegister, MVT::i32, 0 ,
 
21093
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsv2i32), 0,
 
21094
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
21095
              0, 
 
21096
            75, 
 
21097
              OPC_CheckInteger, 72, 
 
21098
              OPC_MoveParent,
 
21099
              OPC_RecordChild1,
 
21100
              OPC_Scope, 22, 
 
21101
                OPC_CheckChild1Type, MVT::v8i16,
 
21102
                OPC_CheckType, MVT::v8i8,
 
21103
                OPC_CheckPatternPredicate, 3,
 
21104
                OPC_EmitInteger, MVT::i32, 14, 
 
21105
                OPC_EmitRegister, MVT::i32, 0 ,
 
21106
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNuv8i8), 0,
 
21107
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
21108
              22, 
 
21109
                OPC_CheckChild1Type, MVT::v4i32,
 
21110
                OPC_CheckType, MVT::v4i16,
 
21111
                OPC_CheckPatternPredicate, 3,
 
21112
                OPC_EmitInteger, MVT::i32, 14, 
 
21113
                OPC_EmitRegister, MVT::i32, 0 ,
 
21114
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNuv4i16), 0,
 
21115
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
21116
              22, 
 
21117
                OPC_CheckChild1Type, MVT::v2i64,
 
21118
                OPC_CheckType, MVT::v2i32,
 
21119
                OPC_CheckPatternPredicate, 3,
 
21120
                OPC_EmitInteger, MVT::i32, 14, 
 
21121
                OPC_EmitRegister, MVT::i32, 0 ,
 
21122
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNuv2i32), 0,
 
21123
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
21124
              0, 
 
21125
            75, 
 
21126
              OPC_CheckInteger, 71, 
 
21127
              OPC_MoveParent,
 
21128
              OPC_RecordChild1,
 
21129
              OPC_Scope, 22, 
 
21130
                OPC_CheckChild1Type, MVT::v8i16,
 
21131
                OPC_CheckType, MVT::v8i8,
 
21132
                OPC_CheckPatternPredicate, 3,
 
21133
                OPC_EmitInteger, MVT::i32, 14, 
 
21134
                OPC_EmitRegister, MVT::i32, 0 ,
 
21135
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsuv8i8), 0,
 
21136
                    1, MVT::v8i8, 3, 0, 1, 2, 
 
21137
              22, 
 
21138
                OPC_CheckChild1Type, MVT::v4i32,
 
21139
                OPC_CheckType, MVT::v4i16,
 
21140
                OPC_CheckPatternPredicate, 3,
 
21141
                OPC_EmitInteger, MVT::i32, 14, 
 
21142
                OPC_EmitRegister, MVT::i32, 0 ,
 
21143
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsuv4i16), 0,
 
21144
                    1, MVT::v4i16, 3, 0, 1, 2, 
 
21145
              22, 
 
21146
                OPC_CheckChild1Type, MVT::v2i64,
 
21147
                OPC_CheckType, MVT::v2i32,
 
21148
                OPC_CheckPatternPredicate, 3,
 
21149
                OPC_EmitInteger, MVT::i32, 14, 
 
21150
                OPC_EmitRegister, MVT::i32, 0 ,
 
21151
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQMOVNsuv2i32), 0,
 
21152
                    1, MVT::v2i32, 3, 0, 1, 2, 
 
21153
              0, 
 
21154
            75, 
 
21155
              OPC_CheckInteger, 47, 
 
21156
              OPC_MoveParent,
 
21157
              OPC_RecordChild1,
 
21158
              OPC_Scope, 22, 
 
21159
                OPC_CheckChild1Type, MVT::v8i8,
 
21160
                OPC_CheckType, MVT::v8i16,
 
21161
                OPC_CheckPatternPredicate, 3,
 
21162
                OPC_EmitInteger, MVT::i32, 14, 
 
21163
                OPC_EmitRegister, MVT::i32, 0 ,
 
21164
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLsv8i16), 0,
 
21165
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
21166
              22, 
 
21167
                OPC_CheckChild1Type, MVT::v4i16,
 
21168
                OPC_CheckType, MVT::v4i32,
 
21169
                OPC_CheckPatternPredicate, 3,
 
21170
                OPC_EmitInteger, MVT::i32, 14, 
 
21171
                OPC_EmitRegister, MVT::i32, 0 ,
 
21172
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLsv4i32), 0,
 
21173
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
21174
              22, 
 
21175
                OPC_CheckChild1Type, MVT::v2i32,
 
21176
                OPC_CheckType, MVT::v2i64,
 
21177
                OPC_CheckPatternPredicate, 3,
 
21178
                OPC_EmitInteger, MVT::i32, 14, 
 
21179
                OPC_EmitRegister, MVT::i32, 0 ,
 
21180
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLsv2i64), 0,
 
21181
                    1, MVT::v2i64, 3, 0, 1, 2, 
 
21182
              0, 
 
21183
            75, 
 
21184
              OPC_CheckInteger, 48, 
 
21185
              OPC_MoveParent,
 
21186
              OPC_RecordChild1,
 
21187
              OPC_Scope, 22, 
 
21188
                OPC_CheckChild1Type, MVT::v8i8,
 
21189
                OPC_CheckType, MVT::v8i16,
 
21190
                OPC_CheckPatternPredicate, 3,
 
21191
                OPC_EmitInteger, MVT::i32, 14, 
 
21192
                OPC_EmitRegister, MVT::i32, 0 ,
 
21193
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLuv8i16), 0,
 
21194
                    1, MVT::v8i16, 3, 0, 1, 2, 
 
21195
              22, 
 
21196
                OPC_CheckChild1Type, MVT::v4i16,
 
21197
                OPC_CheckType, MVT::v4i32,
 
21198
                OPC_CheckPatternPredicate, 3,
 
21199
                OPC_EmitInteger, MVT::i32, 14, 
 
21200
                OPC_EmitRegister, MVT::i32, 0 ,
 
21201
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLuv4i32), 0,
 
21202
                    1, MVT::v4i32, 3, 0, 1, 2, 
 
21203
              22, 
 
21204
                OPC_CheckChild1Type, MVT::v2i32,
 
21205
                OPC_CheckType, MVT::v2i64,
 
21206
                OPC_CheckPatternPredicate, 3,
 
21207
                OPC_EmitInteger, MVT::i32, 14, 
 
21208
                OPC_EmitRegister, MVT::i32, 0 ,
 
21209
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVLuv2i64), 0,
 
21210
                    1, MVT::v2i64, 3, 0, 1, 2, 
 
21211
              0, 
 
21212
            24, 
 
21213
              OPC_CheckInteger, 117, 
 
21214
              OPC_MoveParent,
 
21215
              OPC_RecordChild1,
 
21216
              OPC_RecordChild2,
 
21217
              OPC_CheckPatternPredicate, 3,
 
21218
              OPC_EmitInteger, MVT::i32, 14, 
 
21219
              OPC_EmitRegister, MVT::i32, 0 ,
 
21220
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL1), 0,
 
21221
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
21222
            26, 
 
21223
              OPC_CheckInteger, 118, 
 
21224
              OPC_MoveParent,
 
21225
              OPC_RecordChild1,
 
21226
              OPC_RecordChild2,
 
21227
              OPC_RecordChild3,
 
21228
              OPC_CheckPatternPredicate, 3,
 
21229
              OPC_EmitInteger, MVT::i32, 14, 
 
21230
              OPC_EmitRegister, MVT::i32, 0 ,
 
21231
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL2), 0,
 
21232
                  1, MVT::v8i8, 5, 0, 1, 2, 3, 4, 
 
21233
            28, 
 
21234
              OPC_CheckInteger, 119, 
 
21235
              OPC_MoveParent,
 
21236
              OPC_RecordChild1,
 
21237
              OPC_RecordChild2,
 
21238
              OPC_RecordChild3,
 
21239
              OPC_RecordChild4,
 
21240
              OPC_CheckPatternPredicate, 3,
 
21241
              OPC_EmitInteger, MVT::i32, 14, 
 
21242
              OPC_EmitRegister, MVT::i32, 0 ,
 
21243
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL3), 0,
 
21244
                  1, MVT::v8i8, 6, 0, 1, 2, 3, 4, 5, 
 
21245
            30, 
 
21246
              OPC_CheckInteger, 120, 
 
21247
              OPC_MoveParent,
 
21248
              OPC_RecordChild1,
 
21249
              OPC_RecordChild2,
 
21250
              OPC_RecordChild3,
 
21251
              OPC_RecordChild4,
 
21252
              OPC_RecordChild5,
 
21253
              OPC_CheckPatternPredicate, 3,
 
21254
              OPC_EmitInteger, MVT::i32, 14, 
 
21255
              OPC_EmitRegister, MVT::i32, 0 ,
 
21256
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBL4), 0,
 
21257
                  1, MVT::v8i8, 7, 0, 1, 2, 3, 4, 5, 6, 
 
21258
            26, 
 
21259
              OPC_CheckInteger, 121, 
 
21260
              OPC_MoveParent,
 
21261
              OPC_RecordChild1,
 
21262
              OPC_RecordChild2,
 
21263
              OPC_RecordChild3,
 
21264
              OPC_CheckPatternPredicate, 3,
 
21265
              OPC_EmitInteger, MVT::i32, 14, 
 
21266
              OPC_EmitRegister, MVT::i32, 0 ,
 
21267
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX1), 0,
 
21268
                  1, MVT::v8i8, 5, 0, 1, 2, 3, 4, 
 
21269
            28, 
 
21270
              OPC_CheckInteger, 122, 
 
21271
              OPC_MoveParent,
 
21272
              OPC_RecordChild1,
 
21273
              OPC_RecordChild2,
 
21274
              OPC_RecordChild3,
 
21275
              OPC_RecordChild4,
 
21276
              OPC_CheckPatternPredicate, 3,
 
21277
              OPC_EmitInteger, MVT::i32, 14, 
 
21278
              OPC_EmitRegister, MVT::i32, 0 ,
 
21279
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX2), 0,
 
21280
                  1, MVT::v8i8, 6, 0, 1, 2, 3, 4, 5, 
 
21281
            30, 
 
21282
              OPC_CheckInteger, 123, 
 
21283
              OPC_MoveParent,
 
21284
              OPC_RecordChild1,
 
21285
              OPC_RecordChild2,
 
21286
              OPC_RecordChild3,
 
21287
              OPC_RecordChild4,
 
21288
              OPC_RecordChild5,
 
21289
              OPC_CheckPatternPredicate, 3,
 
21290
              OPC_EmitInteger, MVT::i32, 14, 
 
21291
              OPC_EmitRegister, MVT::i32, 0 ,
 
21292
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX3), 0,
 
21293
                  1, MVT::v8i8, 7, 0, 1, 2, 3, 4, 5, 6, 
 
21294
            32, 
 
21295
              OPC_CheckInteger, 124, 
 
21296
              OPC_MoveParent,
 
21297
              OPC_RecordChild1,
 
21298
              OPC_RecordChild2,
 
21299
              OPC_RecordChild3,
 
21300
              OPC_RecordChild4,
 
21301
              OPC_RecordChild5,
 
21302
              OPC_RecordChild6,
 
21303
              OPC_CheckPatternPredicate, 3,
 
21304
              OPC_EmitInteger, MVT::i32, 14, 
 
21305
              OPC_EmitRegister, MVT::i32, 0 ,
 
21306
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTBX4), 0,
 
21307
                  1, MVT::v8i8, 8, 0, 1, 2, 3, 4, 5, 6, 7, 
 
21308
            0, 
 
21309
          37|128,1,  ISD::SHL,
 
21310
            OPC_Scope, 30, 
 
21311
              OPC_RecordNode,
 
21312
              OPC_CheckType, MVT::i32,
 
21313
              OPC_CheckPatternPredicate, 5,
 
21314
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
21315
              OPC_EmitInteger, MVT::i32, 14, 
 
21316
              OPC_EmitRegister, MVT::i32, 0 ,
 
21317
              OPC_EmitRegister, MVT::i32, 0 ,
 
21318
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
 
21319
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
21320
            2|128,1, 
 
21321
              OPC_RecordChild0,
 
21322
              OPC_RecordChild1,
 
21323
              OPC_Scope, 70, 
 
21324
                OPC_MoveChild, 1,
 
21325
                OPC_CheckOpcode, ISD::Constant,
 
21326
                OPC_Scope, 32, 
 
21327
                  OPC_CheckPredicate, 24,
 
21328
                  OPC_CheckType, MVT::i32,
 
21329
                  OPC_MoveParent,
 
21330
                  OPC_CheckType, MVT::i32,
 
21331
                  OPC_CheckPatternPredicate, 2,
 
21332
                  OPC_EmitConvertToTarget, 1,
 
21333
                  OPC_EmitInteger, MVT::i32, 14, 
 
21334
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21335
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21336
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSLri), 0,
 
21337
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
21338
                30, 
 
21339
                  OPC_CheckType, MVT::i32,
 
21340
                  OPC_MoveParent,
 
21341
                  OPC_CheckType, MVT::i32,
 
21342
                  OPC_CheckPatternPredicate, 6,
 
21343
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
21344
                  OPC_EmitConvertToTarget, 1,
 
21345
                  OPC_EmitInteger, MVT::i32, 14, 
 
21346
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21347
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSLri), 0,
 
21348
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
21349
                0, 
 
21350
              54, 
 
21351
                OPC_CheckChild1Type, MVT::i32,
 
21352
                OPC_CheckType, MVT::i32,
 
21353
                OPC_Scope, 23, 
 
21354
                  OPC_CheckPatternPredicate, 6,
 
21355
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
21356
                  OPC_EmitInteger, MVT::i32, 14, 
 
21357
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21358
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSLrr), 0,
 
21359
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
21360
                23, 
 
21361
                  OPC_CheckPatternPredicate, 2,
 
21362
                  OPC_EmitInteger, MVT::i32, 14, 
 
21363
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21364
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21365
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSLrr), 0,
 
21366
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
21367
                0, 
 
21368
              0, 
 
21369
            0, 
 
21370
          37|128,1,  ISD::SRL,
 
21371
            OPC_Scope, 30, 
 
21372
              OPC_RecordNode,
 
21373
              OPC_CheckType, MVT::i32,
 
21374
              OPC_CheckPatternPredicate, 5,
 
21375
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
21376
              OPC_EmitInteger, MVT::i32, 14, 
 
21377
              OPC_EmitRegister, MVT::i32, 0 ,
 
21378
              OPC_EmitRegister, MVT::i32, 0 ,
 
21379
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
 
21380
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
21381
            2|128,1, 
 
21382
              OPC_RecordChild0,
 
21383
              OPC_RecordChild1,
 
21384
              OPC_Scope, 70, 
 
21385
                OPC_MoveChild, 1,
 
21386
                OPC_CheckOpcode, ISD::Constant,
 
21387
                OPC_Scope, 32, 
 
21388
                  OPC_CheckPredicate, 24,
 
21389
                  OPC_CheckType, MVT::i32,
 
21390
                  OPC_MoveParent,
 
21391
                  OPC_CheckType, MVT::i32,
 
21392
                  OPC_CheckPatternPredicate, 2,
 
21393
                  OPC_EmitConvertToTarget, 1,
 
21394
                  OPC_EmitInteger, MVT::i32, 14, 
 
21395
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21396
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21397
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSRri), 0,
 
21398
                      1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
21399
                30, 
 
21400
                  OPC_CheckType, MVT::i32,
 
21401
                  OPC_MoveParent,
 
21402
                  OPC_CheckType, MVT::i32,
 
21403
                  OPC_CheckPatternPredicate, 6,
 
21404
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
21405
                  OPC_EmitConvertToTarget, 1,
 
21406
                  OPC_EmitInteger, MVT::i32, 14, 
 
21407
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21408
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSRri), 0,
 
21409
                      1, MVT::i32, 5, 2, 0, 3, 4, 5, 
 
21410
                0, 
 
21411
              54, 
 
21412
                OPC_CheckChild1Type, MVT::i32,
 
21413
                OPC_CheckType, MVT::i32,
 
21414
                OPC_Scope, 23, 
 
21415
                  OPC_CheckPatternPredicate, 6,
 
21416
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
21417
                  OPC_EmitInteger, MVT::i32, 14, 
 
21418
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21419
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSRrr), 0,
 
21420
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
21421
                23, 
 
21422
                  OPC_CheckPatternPredicate, 2,
 
21423
                  OPC_EmitInteger, MVT::i32, 14, 
 
21424
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21425
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21426
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LSRrr), 0,
 
21427
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
21428
                0, 
 
21429
              0, 
 
21430
            0, 
 
21431
          2|128,1,  ISD::ROTR,
 
21432
            OPC_Scope, 30, 
 
21433
              OPC_RecordNode,
 
21434
              OPC_CheckType, MVT::i32,
 
21435
              OPC_CheckPatternPredicate, 5,
 
21436
              OPC_CheckComplexPat, /*CP*/1, /*#*/0,
 
21437
              OPC_EmitInteger, MVT::i32, 14, 
 
21438
              OPC_EmitRegister, MVT::i32, 0 ,
 
21439
              OPC_EmitRegister, MVT::i32, 0 ,
 
21440
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVs), 0,
 
21441
                  1, MVT::i32, 6, 1, 2, 3, 4, 5, 6, 
 
21442
            96, 
 
21443
              OPC_RecordChild0,
 
21444
              OPC_RecordChild1,
 
21445
              OPC_Scope, 36, 
 
21446
                OPC_MoveChild, 1,
 
21447
                OPC_CheckOpcode, ISD::Constant,
 
21448
                OPC_CheckPredicate, 24,
 
21449
                OPC_CheckType, MVT::i32,
 
21450
                OPC_MoveParent,
 
21451
                OPC_CheckType, MVT::i32,
 
21452
                OPC_CheckPatternPredicate, 2,
 
21453
                OPC_EmitConvertToTarget, 1,
 
21454
                OPC_EmitInteger, MVT::i32, 14, 
 
21455
                OPC_EmitRegister, MVT::i32, 0 ,
 
21456
                OPC_EmitRegister, MVT::i32, 0 ,
 
21457
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RORri), 0,
 
21458
                    1, MVT::i32, 5, 0, 2, 3, 4, 5, 
 
21459
              54, 
 
21460
                OPC_CheckChild1Type, MVT::i32,
 
21461
                OPC_CheckType, MVT::i32,
 
21462
                OPC_Scope, 23, 
 
21463
                  OPC_CheckPatternPredicate, 6,
 
21464
                  OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
21465
                  OPC_EmitInteger, MVT::i32, 14, 
 
21466
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21467
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tROR), 0,
 
21468
                      1, MVT::i32, 5, 2, 0, 1, 3, 4, 
 
21469
                23, 
 
21470
                  OPC_CheckPatternPredicate, 2,
 
21471
                  OPC_EmitInteger, MVT::i32, 14, 
 
21472
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21473
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21474
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RORrr), 0,
 
21475
                      1, MVT::i32, 5, 0, 1, 2, 3, 4, 
 
21476
                0, 
 
21477
              0, 
 
21478
            0, 
 
21479
          69|128,8,  ISD::FADD,
 
21480
            OPC_Scope, 118, 
 
21481
              OPC_RecordChild0,
 
21482
              OPC_MoveChild, 1,
 
21483
              OPC_CheckOpcode, ISD::FMUL,
 
21484
              OPC_Scope, 68, 
 
21485
                OPC_RecordChild0,
 
21486
                OPC_MoveChild, 1,
 
21487
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21488
                OPC_RecordChild0,
 
21489
                OPC_CheckChild0Type, MVT::v2f32,
 
21490
                OPC_RecordChild1,
 
21491
                OPC_MoveChild, 1,
 
21492
                OPC_CheckOpcode, ISD::Constant,
 
21493
                OPC_MoveParent,
 
21494
                OPC_MoveParent,
 
21495
                OPC_MoveParent,
 
21496
                OPC_SwitchType , 23,  MVT::v2f32,
 
21497
                  OPC_CheckPatternPredicate, 3,
 
21498
                  OPC_EmitConvertToTarget, 3,
 
21499
                  OPC_EmitInteger, MVT::i32, 14, 
 
21500
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21501
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
 
21502
                      1, MVT::v2f32, 6, 0, 1, 2, 4, 5, 6, 
 
21503
                23,  MVT::v4f32,
 
21504
                  OPC_CheckPatternPredicate, 3,
 
21505
                  OPC_EmitConvertToTarget, 3,
 
21506
                  OPC_EmitInteger, MVT::i32, 14, 
 
21507
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21508
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21509
                      1, MVT::v4f32, 6, 0, 1, 2, 4, 5, 6, 
 
21510
                0, 
 
21511
              41, 
 
21512
                OPC_MoveChild, 0,
 
21513
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21514
                OPC_RecordChild0,
 
21515
                OPC_CheckChild0Type, MVT::v2f32,
 
21516
                OPC_RecordChild1,
 
21517
                OPC_MoveChild, 1,
 
21518
                OPC_CheckOpcode, ISD::Constant,
 
21519
                OPC_MoveParent,
 
21520
                OPC_MoveParent,
 
21521
                OPC_RecordChild1,
 
21522
                OPC_MoveParent,
 
21523
                OPC_CheckType, MVT::v2f32,
 
21524
                OPC_CheckPatternPredicate, 3,
 
21525
                OPC_EmitConvertToTarget, 2,
 
21526
                OPC_EmitInteger, MVT::i32, 14, 
 
21527
                OPC_EmitRegister, MVT::i32, 0 ,
 
21528
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
 
21529
                    1, MVT::v2f32, 6, 0, 3, 1, 4, 5, 6, 
 
21530
              0, 
 
21531
            92, 
 
21532
              OPC_MoveChild, 0,
 
21533
              OPC_CheckOpcode, ISD::FMUL,
 
21534
              OPC_Scope, 42, 
 
21535
                OPC_RecordChild0,
 
21536
                OPC_MoveChild, 1,
 
21537
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21538
                OPC_RecordChild0,
 
21539
                OPC_CheckChild0Type, MVT::v2f32,
 
21540
                OPC_RecordChild1,
 
21541
                OPC_MoveChild, 1,
 
21542
                OPC_CheckOpcode, ISD::Constant,
 
21543
                OPC_MoveParent,
 
21544
                OPC_MoveParent,
 
21545
                OPC_MoveParent,
 
21546
                OPC_RecordChild1,
 
21547
                OPC_CheckType, MVT::v2f32,
 
21548
                OPC_CheckPatternPredicate, 3,
 
21549
                OPC_EmitConvertToTarget, 2,
 
21550
                OPC_EmitInteger, MVT::i32, 14, 
 
21551
                OPC_EmitRegister, MVT::i32, 0 ,
 
21552
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
 
21553
                    1, MVT::v2f32, 6, 3, 0, 1, 4, 5, 6, 
 
21554
              42, 
 
21555
                OPC_MoveChild, 0,
 
21556
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21557
                OPC_RecordChild0,
 
21558
                OPC_CheckChild0Type, MVT::v2f32,
 
21559
                OPC_RecordChild1,
 
21560
                OPC_MoveChild, 1,
 
21561
                OPC_CheckOpcode, ISD::Constant,
 
21562
                OPC_MoveParent,
 
21563
                OPC_MoveParent,
 
21564
                OPC_RecordChild1,
 
21565
                OPC_MoveParent,
 
21566
                OPC_RecordChild1,
 
21567
                OPC_CheckType, MVT::v2f32,
 
21568
                OPC_CheckPatternPredicate, 3,
 
21569
                OPC_EmitConvertToTarget, 1,
 
21570
                OPC_EmitInteger, MVT::i32, 14, 
 
21571
                OPC_EmitRegister, MVT::i32, 0 ,
 
21572
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfd), 0,
 
21573
                    1, MVT::v2f32, 6, 3, 2, 0, 4, 5, 6, 
 
21574
              0, 
 
21575
            46, 
 
21576
              OPC_RecordChild0,
 
21577
              OPC_MoveChild, 1,
 
21578
              OPC_CheckOpcode, ISD::FMUL,
 
21579
              OPC_MoveChild, 0,
 
21580
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21581
              OPC_RecordChild0,
 
21582
              OPC_CheckChild0Type, MVT::v2f32,
 
21583
              OPC_RecordChild1,
 
21584
              OPC_MoveChild, 1,
 
21585
              OPC_CheckOpcode, ISD::Constant,
 
21586
              OPC_MoveParent,
 
21587
              OPC_MoveParent,
 
21588
              OPC_RecordChild1,
 
21589
              OPC_MoveParent,
 
21590
              OPC_CheckType, MVT::v4f32,
 
21591
              OPC_CheckPatternPredicate, 3,
 
21592
              OPC_EmitConvertToTarget, 2,
 
21593
              OPC_EmitInteger, MVT::i32, 14, 
 
21594
              OPC_EmitRegister, MVT::i32, 0 ,
 
21595
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21596
                  1, MVT::v4f32, 6, 0, 3, 1, 4, 5, 6, 
 
21597
            92, 
 
21598
              OPC_MoveChild, 0,
 
21599
              OPC_CheckOpcode, ISD::FMUL,
 
21600
              OPC_Scope, 42, 
 
21601
                OPC_RecordChild0,
 
21602
                OPC_MoveChild, 1,
 
21603
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21604
                OPC_RecordChild0,
 
21605
                OPC_CheckChild0Type, MVT::v2f32,
 
21606
                OPC_RecordChild1,
 
21607
                OPC_MoveChild, 1,
 
21608
                OPC_CheckOpcode, ISD::Constant,
 
21609
                OPC_MoveParent,
 
21610
                OPC_MoveParent,
 
21611
                OPC_MoveParent,
 
21612
                OPC_RecordChild1,
 
21613
                OPC_CheckType, MVT::v4f32,
 
21614
                OPC_CheckPatternPredicate, 3,
 
21615
                OPC_EmitConvertToTarget, 2,
 
21616
                OPC_EmitInteger, MVT::i32, 14, 
 
21617
                OPC_EmitRegister, MVT::i32, 0 ,
 
21618
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21619
                    1, MVT::v4f32, 6, 3, 0, 1, 4, 5, 6, 
 
21620
              42, 
 
21621
                OPC_MoveChild, 0,
 
21622
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21623
                OPC_RecordChild0,
 
21624
                OPC_CheckChild0Type, MVT::v2f32,
 
21625
                OPC_RecordChild1,
 
21626
                OPC_MoveChild, 1,
 
21627
                OPC_CheckOpcode, ISD::Constant,
 
21628
                OPC_MoveParent,
 
21629
                OPC_MoveParent,
 
21630
                OPC_RecordChild1,
 
21631
                OPC_MoveParent,
 
21632
                OPC_RecordChild1,
 
21633
                OPC_CheckType, MVT::v4f32,
 
21634
                OPC_CheckPatternPredicate, 3,
 
21635
                OPC_EmitConvertToTarget, 1,
 
21636
                OPC_EmitInteger, MVT::i32, 14, 
 
21637
                OPC_EmitRegister, MVT::i32, 0 ,
 
21638
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21639
                    1, MVT::v4f32, 6, 3, 2, 0, 4, 5, 6, 
 
21640
              0, 
 
21641
            121, 
 
21642
              OPC_RecordChild0,
 
21643
              OPC_MoveChild, 1,
 
21644
              OPC_CheckOpcode, ISD::FMUL,
 
21645
              OPC_Scope, 56, 
 
21646
                OPC_RecordChild0,
 
21647
                OPC_MoveChild, 1,
 
21648
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21649
                OPC_RecordChild0,
 
21650
                OPC_CheckChild0Type, MVT::v4f32,
 
21651
                OPC_RecordChild1,
 
21652
                OPC_MoveChild, 1,
 
21653
                OPC_CheckOpcode, ISD::Constant,
 
21654
                OPC_MoveParent,
 
21655
                OPC_MoveParent,
 
21656
                OPC_MoveParent,
 
21657
                OPC_CheckType, MVT::v4f32,
 
21658
                OPC_EmitConvertToTarget, 3,
 
21659
                OPC_EmitNodeXForm, 8, 4,
 
21660
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
21661
                    1, MVT::v2f32, 2, 2, 5, 
 
21662
                OPC_EmitConvertToTarget, 3,
 
21663
                OPC_EmitNodeXForm, 9, 7,
 
21664
                OPC_EmitInteger, MVT::i32, 14, 
 
21665
                OPC_EmitRegister, MVT::i32, 0 ,
 
21666
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21667
                    1, MVT::v4f32, 6, 0, 1, 6, 8, 9, 10, 
 
21668
              56, 
 
21669
                OPC_MoveChild, 0,
 
21670
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21671
                OPC_RecordChild0,
 
21672
                OPC_CheckChild0Type, MVT::v4f32,
 
21673
                OPC_RecordChild1,
 
21674
                OPC_MoveChild, 1,
 
21675
                OPC_CheckOpcode, ISD::Constant,
 
21676
                OPC_MoveParent,
 
21677
                OPC_MoveParent,
 
21678
                OPC_RecordChild1,
 
21679
                OPC_MoveParent,
 
21680
                OPC_CheckType, MVT::v4f32,
 
21681
                OPC_EmitConvertToTarget, 2,
 
21682
                OPC_EmitNodeXForm, 8, 4,
 
21683
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
21684
                    1, MVT::v2f32, 2, 1, 5, 
 
21685
                OPC_EmitConvertToTarget, 2,
 
21686
                OPC_EmitNodeXForm, 9, 7,
 
21687
                OPC_EmitInteger, MVT::i32, 14, 
 
21688
                OPC_EmitRegister, MVT::i32, 0 ,
 
21689
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21690
                    1, MVT::v4f32, 6, 0, 3, 6, 8, 9, 10, 
 
21691
              0, 
 
21692
            53|128,1, 
 
21693
              OPC_MoveChild, 0,
 
21694
              OPC_SwitchOpcode , 118,  ISD::FMUL,
 
21695
                OPC_Scope, 57, 
 
21696
                  OPC_RecordChild0,
 
21697
                  OPC_MoveChild, 1,
 
21698
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21699
                  OPC_RecordChild0,
 
21700
                  OPC_CheckChild0Type, MVT::v4f32,
 
21701
                  OPC_RecordChild1,
 
21702
                  OPC_MoveChild, 1,
 
21703
                  OPC_CheckOpcode, ISD::Constant,
 
21704
                  OPC_MoveParent,
 
21705
                  OPC_MoveParent,
 
21706
                  OPC_MoveParent,
 
21707
                  OPC_RecordChild1,
 
21708
                  OPC_CheckType, MVT::v4f32,
 
21709
                  OPC_EmitConvertToTarget, 2,
 
21710
                  OPC_EmitNodeXForm, 8, 4,
 
21711
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
21712
                      1, MVT::v2f32, 2, 1, 5, 
 
21713
                  OPC_EmitConvertToTarget, 2,
 
21714
                  OPC_EmitNodeXForm, 9, 7,
 
21715
                  OPC_EmitInteger, MVT::i32, 14, 
 
21716
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21717
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21718
                      1, MVT::v4f32, 6, 3, 0, 6, 8, 9, 10, 
 
21719
                57, 
 
21720
                  OPC_MoveChild, 0,
 
21721
                  OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21722
                  OPC_RecordChild0,
 
21723
                  OPC_CheckChild0Type, MVT::v4f32,
 
21724
                  OPC_RecordChild1,
 
21725
                  OPC_MoveChild, 1,
 
21726
                  OPC_CheckOpcode, ISD::Constant,
 
21727
                  OPC_MoveParent,
 
21728
                  OPC_MoveParent,
 
21729
                  OPC_RecordChild1,
 
21730
                  OPC_MoveParent,
 
21731
                  OPC_RecordChild1,
 
21732
                  OPC_CheckType, MVT::v4f32,
 
21733
                  OPC_EmitConvertToTarget, 1,
 
21734
                  OPC_EmitNodeXForm, 8, 4,
 
21735
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
21736
                      1, MVT::v2f32, 2, 0, 5, 
 
21737
                  OPC_EmitConvertToTarget, 1,
 
21738
                  OPC_EmitNodeXForm, 9, 7,
 
21739
                  OPC_EmitInteger, MVT::i32, 14, 
 
21740
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21741
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAslfq), 0,
 
21742
                      1, MVT::v4f32, 6, 3, 2, 6, 8, 9, 10, 
 
21743
                0, 
 
21744
              55,  ISD::FNEG,
 
21745
                OPC_MoveChild, 0,
 
21746
                OPC_CheckOpcode, ISD::FMUL,
 
21747
                OPC_RecordChild0,
 
21748
                OPC_RecordChild1,
 
21749
                OPC_MoveParent,
 
21750
                OPC_MoveParent,
 
21751
                OPC_RecordChild1,
 
21752
                OPC_SwitchType , 20,  MVT::f64,
 
21753
                  OPC_CheckPatternPredicate, 8,
 
21754
                  OPC_EmitInteger, MVT::i32, 14, 
 
21755
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21756
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSD), 0,
 
21757
                      1, MVT::f64, 5, 2, 0, 1, 3, 4, 
 
21758
                20,  MVT::f32,
 
21759
                  OPC_CheckPatternPredicate, 10,
 
21760
                  OPC_EmitInteger, MVT::i32, 14, 
 
21761
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21762
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSS), 0,
 
21763
                      1, MVT::f32, 5, 2, 0, 1, 3, 4, 
 
21764
                0, 
 
21765
              0, 
 
21766
            59, 
 
21767
              OPC_RecordChild0,
 
21768
              OPC_MoveChild, 1,
 
21769
              OPC_CheckOpcode, ISD::FNEG,
 
21770
              OPC_MoveChild, 0,
 
21771
              OPC_CheckOpcode, ISD::FMUL,
 
21772
              OPC_RecordChild0,
 
21773
              OPC_RecordChild1,
 
21774
              OPC_MoveParent,
 
21775
              OPC_MoveParent,
 
21776
              OPC_SwitchType , 20,  MVT::f64,
 
21777
                OPC_CheckPatternPredicate, 8,
 
21778
                OPC_EmitInteger, MVT::i32, 14, 
 
21779
                OPC_EmitRegister, MVT::i32, 0 ,
 
21780
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSD), 0,
 
21781
                    1, MVT::f64, 5, 0, 1, 2, 3, 4, 
 
21782
              20,  MVT::f32,
 
21783
                OPC_CheckPatternPredicate, 10,
 
21784
                OPC_EmitInteger, MVT::i32, 14, 
 
21785
                OPC_EmitRegister, MVT::i32, 0 ,
 
21786
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSS), 0,
 
21787
                    1, MVT::f32, 5, 0, 1, 2, 3, 4, 
 
21788
              0, 
 
21789
            54, 
 
21790
              OPC_MoveChild, 0,
 
21791
              OPC_CheckOpcode, ISD::FMUL,
 
21792
              OPC_RecordChild0,
 
21793
              OPC_RecordChild1,
 
21794
              OPC_MoveParent,
 
21795
              OPC_RecordChild1,
 
21796
              OPC_SwitchType , 20,  MVT::f64,
 
21797
                OPC_CheckPatternPredicate, 8,
 
21798
                OPC_EmitInteger, MVT::i32, 14, 
 
21799
                OPC_EmitRegister, MVT::i32, 0 ,
 
21800
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAD), 0,
 
21801
                    1, MVT::f64, 5, 2, 0, 1, 3, 4, 
 
21802
              20,  MVT::f32,
 
21803
                OPC_CheckPatternPredicate, 10,
 
21804
                OPC_EmitInteger, MVT::i32, 14, 
 
21805
                OPC_EmitRegister, MVT::i32, 0 ,
 
21806
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAS), 0,
 
21807
                    1, MVT::f32, 5, 2, 0, 1, 3, 4, 
 
21808
              0, 
 
21809
            98, 
 
21810
              OPC_RecordChild0,
 
21811
              OPC_MoveChild, 1,
 
21812
              OPC_CheckOpcode, ISD::FMUL,
 
21813
              OPC_RecordChild0,
 
21814
              OPC_RecordChild1,
 
21815
              OPC_MoveParent,
 
21816
              OPC_SwitchType , 20,  MVT::v2f32,
 
21817
                OPC_CheckPatternPredicate, 3,
 
21818
                OPC_EmitInteger, MVT::i32, 14, 
 
21819
                OPC_EmitRegister, MVT::i32, 0 ,
 
21820
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfd), 0,
 
21821
                    1, MVT::v2f32, 5, 0, 1, 2, 3, 4, 
 
21822
              20,  MVT::v4f32,
 
21823
                OPC_CheckPatternPredicate, 3,
 
21824
                OPC_EmitInteger, MVT::i32, 14, 
 
21825
                OPC_EmitRegister, MVT::i32, 0 ,
 
21826
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfq), 0,
 
21827
                    1, MVT::v4f32, 5, 0, 1, 2, 3, 4, 
 
21828
              20,  MVT::f64,
 
21829
                OPC_CheckPatternPredicate, 8,
 
21830
                OPC_EmitInteger, MVT::i32, 14, 
 
21831
                OPC_EmitRegister, MVT::i32, 0 ,
 
21832
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAD), 0,
 
21833
                    1, MVT::f64, 5, 0, 1, 2, 3, 4, 
 
21834
              20,  MVT::f32,
 
21835
                OPC_CheckPatternPredicate, 10,
 
21836
                OPC_EmitInteger, MVT::i32, 14, 
 
21837
                OPC_EmitRegister, MVT::i32, 0 ,
 
21838
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAS), 0,
 
21839
                    1, MVT::f32, 5, 0, 1, 2, 3, 4, 
 
21840
              0, 
 
21841
            54, 
 
21842
              OPC_MoveChild, 0,
 
21843
              OPC_CheckOpcode, ISD::FMUL,
 
21844
              OPC_RecordChild0,
 
21845
              OPC_RecordChild1,
 
21846
              OPC_MoveParent,
 
21847
              OPC_RecordChild1,
 
21848
              OPC_SwitchType , 20,  MVT::v2f32,
 
21849
                OPC_CheckPatternPredicate, 3,
 
21850
                OPC_EmitInteger, MVT::i32, 14, 
 
21851
                OPC_EmitRegister, MVT::i32, 0 ,
 
21852
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfd), 0,
 
21853
                    1, MVT::v2f32, 5, 2, 0, 1, 3, 4, 
 
21854
              20,  MVT::v4f32,
 
21855
                OPC_CheckPatternPredicate, 3,
 
21856
                OPC_EmitInteger, MVT::i32, 14, 
 
21857
                OPC_EmitRegister, MVT::i32, 0 ,
 
21858
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLAfq), 0,
 
21859
                    1, MVT::v4f32, 5, 2, 0, 1, 3, 4, 
 
21860
              0, 
 
21861
            35|128,1, 
 
21862
              OPC_RecordChild0,
 
21863
              OPC_RecordChild1,
 
21864
              OPC_SwitchType , 19,  MVT::f64,
 
21865
                OPC_CheckPatternPredicate, 8,
 
21866
                OPC_EmitInteger, MVT::i32, 14, 
 
21867
                OPC_EmitRegister, MVT::i32, 0 ,
 
21868
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDD), 0,
 
21869
                    1, MVT::f64, 4, 0, 1, 2, 3, 
 
21870
              94,  MVT::f32,
 
21871
                OPC_Scope, 19, 
 
21872
                  OPC_CheckPatternPredicate, 10,
 
21873
                  OPC_EmitInteger, MVT::i32, 14, 
 
21874
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21875
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDS), 0,
 
21876
                      1, MVT::f32, 4, 0, 1, 2, 3, 
 
21877
                71, 
 
21878
                  OPC_CheckPatternPredicate, 11,
 
21879
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
21880
                      1, MVT::v2f32, 0, 
 
21881
                  OPC_EmitInteger, MVT::i32, 1, 
 
21882
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
21883
                      1, MVT::f64, 3, 2, 0, 3, 
 
21884
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
21885
                      1, MVT::v2f32, 0, 
 
21886
                  OPC_EmitInteger, MVT::i32, 1, 
 
21887
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
21888
                      1, MVT::f64, 3, 5, 1, 6, 
 
21889
                  OPC_EmitInteger, MVT::i32, 14, 
 
21890
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21891
                  OPC_EmitNode, TARGET_OPCODE(ARM::VADDfd_sfp), 0,
 
21892
                      1, MVT::f64, 4, 4, 7, 8, 9, 
 
21893
                  OPC_EmitInteger, MVT::i32, 1, 
 
21894
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
21895
                      1, MVT::f32, 2, 10, 11, 
 
21896
                0, 
 
21897
              19,  MVT::v2f32,
 
21898
                OPC_CheckPatternPredicate, 3,
 
21899
                OPC_EmitInteger, MVT::i32, 14, 
 
21900
                OPC_EmitRegister, MVT::i32, 0 ,
 
21901
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDfd), 0,
 
21902
                    1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
21903
              19,  MVT::v4f32,
 
21904
                OPC_CheckPatternPredicate, 3,
 
21905
                OPC_EmitInteger, MVT::i32, 14, 
 
21906
                OPC_EmitRegister, MVT::i32, 0 ,
 
21907
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VADDfq), 0,
 
21908
                    1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
21909
              0, 
 
21910
            0, 
 
21911
          4|128,5,  ISD::FSUB,
 
21912
            OPC_Scope, 3|128,2, 
 
21913
              OPC_RecordChild0,
 
21914
              OPC_MoveChild, 1,
 
21915
              OPC_CheckOpcode, ISD::FMUL,
 
21916
              OPC_Scope, 68, 
 
21917
                OPC_RecordChild0,
 
21918
                OPC_MoveChild, 1,
 
21919
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21920
                OPC_RecordChild0,
 
21921
                OPC_CheckChild0Type, MVT::v2f32,
 
21922
                OPC_RecordChild1,
 
21923
                OPC_MoveChild, 1,
 
21924
                OPC_CheckOpcode, ISD::Constant,
 
21925
                OPC_MoveParent,
 
21926
                OPC_MoveParent,
 
21927
                OPC_MoveParent,
 
21928
                OPC_SwitchType , 23,  MVT::v2f32,
 
21929
                  OPC_CheckPatternPredicate, 3,
 
21930
                  OPC_EmitConvertToTarget, 3,
 
21931
                  OPC_EmitInteger, MVT::i32, 14, 
 
21932
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21933
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfd), 0,
 
21934
                      1, MVT::v2f32, 6, 0, 1, 2, 4, 5, 6, 
 
21935
                23,  MVT::v4f32,
 
21936
                  OPC_CheckPatternPredicate, 3,
 
21937
                  OPC_EmitConvertToTarget, 3,
 
21938
                  OPC_EmitInteger, MVT::i32, 14, 
 
21939
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21940
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
 
21941
                      1, MVT::v4f32, 6, 0, 1, 2, 4, 5, 6, 
 
21942
                0, 
 
21943
              68, 
 
21944
                OPC_MoveChild, 0,
 
21945
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21946
                OPC_RecordChild0,
 
21947
                OPC_CheckChild0Type, MVT::v2f32,
 
21948
                OPC_RecordChild1,
 
21949
                OPC_MoveChild, 1,
 
21950
                OPC_CheckOpcode, ISD::Constant,
 
21951
                OPC_MoveParent,
 
21952
                OPC_MoveParent,
 
21953
                OPC_RecordChild1,
 
21954
                OPC_MoveParent,
 
21955
                OPC_SwitchType , 23,  MVT::v2f32,
 
21956
                  OPC_CheckPatternPredicate, 3,
 
21957
                  OPC_EmitConvertToTarget, 2,
 
21958
                  OPC_EmitInteger, MVT::i32, 14, 
 
21959
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21960
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfd), 0,
 
21961
                      1, MVT::v2f32, 6, 0, 3, 1, 4, 5, 6, 
 
21962
                23,  MVT::v4f32,
 
21963
                  OPC_CheckPatternPredicate, 3,
 
21964
                  OPC_EmitConvertToTarget, 2,
 
21965
                  OPC_EmitInteger, MVT::i32, 14, 
 
21966
                  OPC_EmitRegister, MVT::i32, 0 ,
 
21967
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
 
21968
                      1, MVT::v4f32, 6, 0, 3, 1, 4, 5, 6, 
 
21969
                0, 
 
21970
              56, 
 
21971
                OPC_RecordChild0,
 
21972
                OPC_MoveChild, 1,
 
21973
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21974
                OPC_RecordChild0,
 
21975
                OPC_CheckChild0Type, MVT::v4f32,
 
21976
                OPC_RecordChild1,
 
21977
                OPC_MoveChild, 1,
 
21978
                OPC_CheckOpcode, ISD::Constant,
 
21979
                OPC_MoveParent,
 
21980
                OPC_MoveParent,
 
21981
                OPC_MoveParent,
 
21982
                OPC_CheckType, MVT::v4f32,
 
21983
                OPC_EmitConvertToTarget, 3,
 
21984
                OPC_EmitNodeXForm, 8, 4,
 
21985
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
21986
                    1, MVT::v2f32, 2, 2, 5, 
 
21987
                OPC_EmitConvertToTarget, 3,
 
21988
                OPC_EmitNodeXForm, 9, 7,
 
21989
                OPC_EmitInteger, MVT::i32, 14, 
 
21990
                OPC_EmitRegister, MVT::i32, 0 ,
 
21991
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
 
21992
                    1, MVT::v4f32, 6, 0, 1, 6, 8, 9, 10, 
 
21993
              56, 
 
21994
                OPC_MoveChild, 0,
 
21995
                OPC_CheckOpcode, ARMISD::VDUPLANE,
 
21996
                OPC_RecordChild0,
 
21997
                OPC_CheckChild0Type, MVT::v4f32,
 
21998
                OPC_RecordChild1,
 
21999
                OPC_MoveChild, 1,
 
22000
                OPC_CheckOpcode, ISD::Constant,
 
22001
                OPC_MoveParent,
 
22002
                OPC_MoveParent,
 
22003
                OPC_RecordChild1,
 
22004
                OPC_MoveParent,
 
22005
                OPC_CheckType, MVT::v4f32,
 
22006
                OPC_EmitConvertToTarget, 2,
 
22007
                OPC_EmitNodeXForm, 8, 4,
 
22008
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
22009
                    1, MVT::v2f32, 2, 1, 5, 
 
22010
                OPC_EmitConvertToTarget, 2,
 
22011
                OPC_EmitNodeXForm, 9, 7,
 
22012
                OPC_EmitInteger, MVT::i32, 14, 
 
22013
                OPC_EmitRegister, MVT::i32, 0 ,
 
22014
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSslfq), 0,
 
22015
                    1, MVT::v4f32, 6, 0, 3, 6, 8, 9, 10, 
 
22016
              0, 
 
22017
            113, 
 
22018
              OPC_MoveChild, 0,
 
22019
              OPC_SwitchOpcode , 55,  ISD::FNEG,
 
22020
                OPC_MoveChild, 0,
 
22021
                OPC_CheckOpcode, ISD::FMUL,
 
22022
                OPC_RecordChild0,
 
22023
                OPC_RecordChild1,
 
22024
                OPC_MoveParent,
 
22025
                OPC_MoveParent,
 
22026
                OPC_RecordChild1,
 
22027
                OPC_SwitchType , 20,  MVT::f64,
 
22028
                  OPC_CheckPatternPredicate, 8,
 
22029
                  OPC_EmitInteger, MVT::i32, 14, 
 
22030
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22031
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLAD), 0,
 
22032
                      1, MVT::f64, 5, 2, 0, 1, 3, 4, 
 
22033
                20,  MVT::f32,
 
22034
                  OPC_CheckPatternPredicate, 8,
 
22035
                  OPC_EmitInteger, MVT::i32, 14, 
 
22036
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22037
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLAS), 0,
 
22038
                      1, MVT::f32, 5, 2, 0, 1, 3, 4, 
 
22039
                0, 
 
22040
              50,  ISD::FMUL,
 
22041
                OPC_RecordChild0,
 
22042
                OPC_RecordChild1,
 
22043
                OPC_MoveParent,
 
22044
                OPC_RecordChild1,
 
22045
                OPC_SwitchType , 20,  MVT::f64,
 
22046
                  OPC_CheckPatternPredicate, 8,
 
22047
                  OPC_EmitInteger, MVT::i32, 14, 
 
22048
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22049
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLSD), 0,
 
22050
                      1, MVT::f64, 5, 2, 0, 1, 3, 4, 
 
22051
                20,  MVT::f32,
 
22052
                  OPC_CheckPatternPredicate, 8,
 
22053
                  OPC_EmitInteger, MVT::i32, 14, 
 
22054
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22055
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMLSS), 0,
 
22056
                      1, MVT::f32, 5, 2, 0, 1, 3, 4, 
 
22057
                0, 
 
22058
              0, 
 
22059
            9|128,2, 
 
22060
              OPC_RecordChild0,
 
22061
              OPC_Scope, 97, 
 
22062
                OPC_MoveChild, 1,
 
22063
                OPC_CheckOpcode, ISD::FMUL,
 
22064
                OPC_RecordChild0,
 
22065
                OPC_RecordChild1,
 
22066
                OPC_MoveParent,
 
22067
                OPC_SwitchType , 20,  MVT::f64,
 
22068
                  OPC_CheckPatternPredicate, 12,
 
22069
                  OPC_EmitInteger, MVT::i32, 14, 
 
22070
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22071
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSD), 0,
 
22072
                      1, MVT::f64, 5, 0, 1, 2, 3, 4, 
 
22073
                20,  MVT::f32,
 
22074
                  OPC_CheckPatternPredicate, 12,
 
22075
                  OPC_EmitInteger, MVT::i32, 14, 
 
22076
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22077
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSS), 0,
 
22078
                      1, MVT::f32, 5, 0, 1, 2, 3, 4, 
 
22079
                20,  MVT::v2f32,
 
22080
                  OPC_CheckPatternPredicate, 3,
 
22081
                  OPC_EmitInteger, MVT::i32, 14, 
 
22082
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22083
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSfd), 0,
 
22084
                      1, MVT::v2f32, 5, 0, 1, 2, 3, 4, 
 
22085
                20,  MVT::v4f32,
 
22086
                  OPC_CheckPatternPredicate, 3,
 
22087
                  OPC_EmitInteger, MVT::i32, 14, 
 
22088
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22089
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMLSfq), 0,
 
22090
                      1, MVT::v4f32, 5, 0, 1, 2, 3, 4, 
 
22091
                0, 
 
22092
              34|128,1, 
 
22093
                OPC_RecordChild1,
 
22094
                OPC_SwitchType , 19,  MVT::f64,
 
22095
                  OPC_CheckPatternPredicate, 8,
 
22096
                  OPC_EmitInteger, MVT::i32, 14, 
 
22097
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22098
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBD), 0,
 
22099
                      1, MVT::f64, 4, 0, 1, 2, 3, 
 
22100
                94,  MVT::f32,
 
22101
                  OPC_Scope, 19, 
 
22102
                    OPC_CheckPatternPredicate, 10,
 
22103
                    OPC_EmitInteger, MVT::i32, 14, 
 
22104
                    OPC_EmitRegister, MVT::i32, 0 ,
 
22105
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBS), 0,
 
22106
                        1, MVT::f32, 4, 0, 1, 2, 3, 
 
22107
                  71, 
 
22108
                    OPC_CheckPatternPredicate, 11,
 
22109
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
22110
                        1, MVT::v2f32, 0, 
 
22111
                    OPC_EmitInteger, MVT::i32, 1, 
 
22112
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
22113
                        1, MVT::f64, 3, 2, 0, 3, 
 
22114
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
22115
                        1, MVT::v2f32, 0, 
 
22116
                    OPC_EmitInteger, MVT::i32, 1, 
 
22117
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
22118
                        1, MVT::f64, 3, 5, 1, 6, 
 
22119
                    OPC_EmitInteger, MVT::i32, 14, 
 
22120
                    OPC_EmitRegister, MVT::i32, 0 ,
 
22121
                    OPC_EmitNode, TARGET_OPCODE(ARM::VSUBfd_sfp), 0,
 
22122
                        1, MVT::f64, 4, 4, 7, 8, 9, 
 
22123
                    OPC_EmitInteger, MVT::i32, 1, 
 
22124
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
22125
                        1, MVT::f32, 2, 10, 11, 
 
22126
                  0, 
 
22127
                19,  MVT::v2f32,
 
22128
                  OPC_CheckPatternPredicate, 3,
 
22129
                  OPC_EmitInteger, MVT::i32, 14, 
 
22130
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22131
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBfd), 0,
 
22132
                      1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
22133
                19,  MVT::v4f32,
 
22134
                  OPC_CheckPatternPredicate, 3,
 
22135
                  OPC_EmitInteger, MVT::i32, 14, 
 
22136
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22137
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSUBfq), 0,
 
22138
                      1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
22139
                0, 
 
22140
              0, 
 
22141
            0, 
 
22142
          61,  ISD::CALLSEQ_END,
 
22143
            OPC_RecordNode,
 
22144
            OPC_CaptureFlagInput,
 
22145
            OPC_RecordChild1,
 
22146
            OPC_MoveChild, 1,
 
22147
            OPC_SwitchOpcode , 26,  ISD::TargetConstant,
 
22148
              OPC_MoveParent,
 
22149
              OPC_RecordChild2,
 
22150
              OPC_MoveChild, 2,
 
22151
              OPC_CheckOpcode, ISD::TargetConstant,
 
22152
              OPC_MoveParent,
 
22153
              OPC_EmitMergeInputChains, 1, 0, 
 
22154
              OPC_EmitInteger, MVT::i32, 14, 
 
22155
              OPC_EmitRegister, MVT::i32, 0 ,
 
22156
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
 
22157
                  0, 4, 1, 2, 3, 4, 
 
22158
            24,  ISD::Constant,
 
22159
              OPC_MoveParent,
 
22160
              OPC_RecordChild2,
 
22161
              OPC_MoveChild, 2,
 
22162
              OPC_CheckOpcode, ISD::Constant,
 
22163
              OPC_MoveParent,
 
22164
              OPC_CheckPatternPredicate, 6,
 
22165
              OPC_EmitMergeInputChains, 1, 0, 
 
22166
              OPC_EmitConvertToTarget, 1,
 
22167
              OPC_EmitConvertToTarget, 2,
 
22168
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADJCALLSTACKUP), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
 
22169
                  0, 2, 3, 4, 
 
22170
            0, 
 
22171
          82,  ARMISD::WrapperJT,
 
22172
            OPC_RecordChild0,
 
22173
            OPC_MoveChild, 0,
 
22174
            OPC_CheckOpcode, ISD::TargetJumpTable,
 
22175
            OPC_MoveParent,
 
22176
            OPC_RecordChild1,
 
22177
            OPC_MoveChild, 1,
 
22178
            OPC_CheckOpcode, ISD::Constant,
 
22179
            OPC_MoveParent,
 
22180
            OPC_CheckType, MVT::i32,
 
22181
            OPC_Scope, 21, 
 
22182
              OPC_CheckPatternPredicate, 5,
 
22183
              OPC_EmitConvertToTarget, 1,
 
22184
              OPC_EmitInteger, MVT::i32, 14, 
 
22185
              OPC_EmitRegister, MVT::i32, 0 ,
 
22186
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::LEApcrelJT), 0,
 
22187
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
22188
            21, 
 
22189
              OPC_CheckPatternPredicate, 6,
 
22190
              OPC_EmitConvertToTarget, 1,
 
22191
              OPC_EmitInteger, MVT::i32, 14, 
 
22192
              OPC_EmitRegister, MVT::i32, 0 ,
 
22193
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLEApcrelJT), 0,
 
22194
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
22195
            21, 
 
22196
              OPC_CheckPatternPredicate, 2,
 
22197
              OPC_EmitConvertToTarget, 1,
 
22198
              OPC_EmitInteger, MVT::i32, 14, 
 
22199
              OPC_EmitRegister, MVT::i32, 0 ,
 
22200
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LEApcrelJT), 0,
 
22201
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
22202
            0, 
 
22203
          34,  ARMISD::BR2_JT,
 
22204
            OPC_RecordNode,
 
22205
            OPC_RecordChild1,
 
22206
            OPC_CheckChild1Type, MVT::i32,
 
22207
            OPC_RecordChild2,
 
22208
            OPC_RecordChild3,
 
22209
            OPC_MoveChild, 3,
 
22210
            OPC_CheckOpcode, ISD::TargetJumpTable,
 
22211
            OPC_MoveParent,
 
22212
            OPC_RecordChild4,
 
22213
            OPC_MoveChild, 4,
 
22214
            OPC_CheckOpcode, ISD::Constant,
 
22215
            OPC_MoveParent,
 
22216
            OPC_CheckPatternPredicate, 2,
 
22217
            OPC_EmitMergeInputChains, 1, 0, 
 
22218
            OPC_EmitConvertToTarget, 4,
 
22219
            OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2BR_JT), 0|OPFL_Chain,
 
22220
                0, 4, 1, 2, 3, 5, 
 
22221
          3|128,4,  ISD::FMUL,
 
22222
            OPC_Scope, 65, 
 
22223
              OPC_RecordChild0,
 
22224
              OPC_MoveChild, 1,
 
22225
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
22226
              OPC_RecordChild0,
 
22227
              OPC_CheckChild0Type, MVT::v2f32,
 
22228
              OPC_RecordChild1,
 
22229
              OPC_MoveChild, 1,
 
22230
              OPC_CheckOpcode, ISD::Constant,
 
22231
              OPC_MoveParent,
 
22232
              OPC_MoveParent,
 
22233
              OPC_SwitchType , 22,  MVT::v2f32,
 
22234
                OPC_CheckPatternPredicate, 3,
 
22235
                OPC_EmitConvertToTarget, 2,
 
22236
                OPC_EmitInteger, MVT::i32, 14, 
 
22237
                OPC_EmitRegister, MVT::i32, 0 ,
 
22238
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfd), 0,
 
22239
                    1, MVT::v2f32, 5, 0, 1, 3, 4, 5, 
 
22240
              22,  MVT::v4f32,
 
22241
                OPC_CheckPatternPredicate, 3,
 
22242
                OPC_EmitConvertToTarget, 2,
 
22243
                OPC_EmitInteger, MVT::i32, 14, 
 
22244
                OPC_EmitRegister, MVT::i32, 0 ,
 
22245
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
 
22246
                    1, MVT::v4f32, 5, 0, 1, 3, 4, 5, 
 
22247
              0, 
 
22248
            65, 
 
22249
              OPC_MoveChild, 0,
 
22250
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
22251
              OPC_RecordChild0,
 
22252
              OPC_CheckChild0Type, MVT::v2f32,
 
22253
              OPC_RecordChild1,
 
22254
              OPC_MoveChild, 1,
 
22255
              OPC_CheckOpcode, ISD::Constant,
 
22256
              OPC_MoveParent,
 
22257
              OPC_MoveParent,
 
22258
              OPC_RecordChild1,
 
22259
              OPC_SwitchType , 22,  MVT::v2f32,
 
22260
                OPC_CheckPatternPredicate, 3,
 
22261
                OPC_EmitConvertToTarget, 1,
 
22262
                OPC_EmitInteger, MVT::i32, 14, 
 
22263
                OPC_EmitRegister, MVT::i32, 0 ,
 
22264
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfd), 0,
 
22265
                    1, MVT::v2f32, 5, 2, 0, 3, 4, 5, 
 
22266
              22,  MVT::v4f32,
 
22267
                OPC_CheckPatternPredicate, 3,
 
22268
                OPC_EmitConvertToTarget, 1,
 
22269
                OPC_EmitInteger, MVT::i32, 14, 
 
22270
                OPC_EmitRegister, MVT::i32, 0 ,
 
22271
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
 
22272
                    1, MVT::v4f32, 5, 2, 0, 3, 4, 5, 
 
22273
              0, 
 
22274
            54, 
 
22275
              OPC_RecordChild0,
 
22276
              OPC_MoveChild, 1,
 
22277
              OPC_CheckOpcode, ARMISD::VDUPLANE,
 
22278
              OPC_RecordChild0,
 
22279
              OPC_CheckChild0Type, MVT::v4f32,
 
22280
              OPC_RecordChild1,
 
22281
              OPC_MoveChild, 1,
 
22282
              OPC_CheckOpcode, ISD::Constant,
 
22283
              OPC_MoveParent,
 
22284
              OPC_MoveParent,
 
22285
              OPC_CheckType, MVT::v4f32,
 
22286
              OPC_EmitConvertToTarget, 2,
 
22287
              OPC_EmitNodeXForm, 8, 3,
 
22288
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
22289
                  1, MVT::v2f32, 2, 1, 4, 
 
22290
              OPC_EmitConvertToTarget, 2,
 
22291
              OPC_EmitNodeXForm, 9, 6,
 
22292
              OPC_EmitInteger, MVT::i32, 14, 
 
22293
              OPC_EmitRegister, MVT::i32, 0 ,
 
22294
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
 
22295
                  1, MVT::v4f32, 5, 0, 5, 7, 8, 9, 
 
22296
            105, 
 
22297
              OPC_MoveChild, 0,
 
22298
              OPC_SwitchOpcode , 50,  ARMISD::VDUPLANE,
 
22299
                OPC_RecordChild0,
 
22300
                OPC_CheckChild0Type, MVT::v4f32,
 
22301
                OPC_RecordChild1,
 
22302
                OPC_MoveChild, 1,
 
22303
                OPC_CheckOpcode, ISD::Constant,
 
22304
                OPC_MoveParent,
 
22305
                OPC_MoveParent,
 
22306
                OPC_RecordChild1,
 
22307
                OPC_CheckType, MVT::v4f32,
 
22308
                OPC_EmitConvertToTarget, 1,
 
22309
                OPC_EmitNodeXForm, 8, 3,
 
22310
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
22311
                    1, MVT::v2f32, 2, 0, 4, 
 
22312
                OPC_EmitConvertToTarget, 1,
 
22313
                OPC_EmitNodeXForm, 9, 6,
 
22314
                OPC_EmitInteger, MVT::i32, 14, 
 
22315
                OPC_EmitRegister, MVT::i32, 0 ,
 
22316
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULslfq), 0,
 
22317
                    1, MVT::v4f32, 5, 2, 5, 7, 8, 9, 
 
22318
              47,  ISD::FNEG,
 
22319
                OPC_RecordChild0,
 
22320
                OPC_MoveParent,
 
22321
                OPC_RecordChild1,
 
22322
                OPC_SwitchType , 19,  MVT::f64,
 
22323
                  OPC_CheckPatternPredicate, 13,
 
22324
                  OPC_EmitInteger, MVT::i32, 14, 
 
22325
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22326
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULD), 0,
 
22327
                      1, MVT::f64, 4, 0, 1, 2, 3, 
 
22328
                19,  MVT::f32,
 
22329
                  OPC_CheckPatternPredicate, 13,
 
22330
                  OPC_EmitInteger, MVT::i32, 14, 
 
22331
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22332
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULS), 0,
 
22333
                      1, MVT::f32, 4, 0, 1, 2, 3, 
 
22334
                0, 
 
22335
              0, 
 
22336
            90|128,1, 
 
22337
              OPC_RecordChild0,
 
22338
              OPC_Scope, 50, 
 
22339
                OPC_MoveChild, 1,
 
22340
                OPC_CheckOpcode, ISD::FNEG,
 
22341
                OPC_RecordChild0,
 
22342
                OPC_MoveParent,
 
22343
                OPC_SwitchType , 19,  MVT::f64,
 
22344
                  OPC_CheckPatternPredicate, 13,
 
22345
                  OPC_EmitInteger, MVT::i32, 14, 
 
22346
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22347
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULD), 0,
 
22348
                      1, MVT::f64, 4, 1, 0, 2, 3, 
 
22349
                19,  MVT::f32,
 
22350
                  OPC_CheckPatternPredicate, 13,
 
22351
                  OPC_EmitInteger, MVT::i32, 14, 
 
22352
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22353
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULS), 0,
 
22354
                      1, MVT::f32, 4, 1, 0, 2, 3, 
 
22355
                0, 
 
22356
              34|128,1, 
 
22357
                OPC_RecordChild1,
 
22358
                OPC_SwitchType , 19,  MVT::f64,
 
22359
                  OPC_CheckPatternPredicate, 8,
 
22360
                  OPC_EmitInteger, MVT::i32, 14, 
 
22361
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22362
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULD), 0,
 
22363
                      1, MVT::f64, 4, 0, 1, 2, 3, 
 
22364
                94,  MVT::f32,
 
22365
                  OPC_Scope, 19, 
 
22366
                    OPC_CheckPatternPredicate, 10,
 
22367
                    OPC_EmitInteger, MVT::i32, 14, 
 
22368
                    OPC_EmitRegister, MVT::i32, 0 ,
 
22369
                    OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULS), 0,
 
22370
                        1, MVT::f32, 4, 0, 1, 2, 3, 
 
22371
                  71, 
 
22372
                    OPC_CheckPatternPredicate, 11,
 
22373
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
22374
                        1, MVT::v2f32, 0, 
 
22375
                    OPC_EmitInteger, MVT::i32, 1, 
 
22376
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
22377
                        1, MVT::f64, 3, 2, 0, 3, 
 
22378
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
22379
                        1, MVT::v2f32, 0, 
 
22380
                    OPC_EmitInteger, MVT::i32, 1, 
 
22381
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
22382
                        1, MVT::f64, 3, 5, 1, 6, 
 
22383
                    OPC_EmitInteger, MVT::i32, 14, 
 
22384
                    OPC_EmitRegister, MVT::i32, 0 ,
 
22385
                    OPC_EmitNode, TARGET_OPCODE(ARM::VMULfd_sfp), 0,
 
22386
                        1, MVT::f64, 4, 4, 7, 8, 9, 
 
22387
                    OPC_EmitInteger, MVT::i32, 1, 
 
22388
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
22389
                        1, MVT::f32, 2, 10, 11, 
 
22390
                  0, 
 
22391
                19,  MVT::v2f32,
 
22392
                  OPC_CheckPatternPredicate, 3,
 
22393
                  OPC_EmitInteger, MVT::i32, 14, 
 
22394
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22395
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULfd), 0,
 
22396
                      1, MVT::v2f32, 4, 0, 1, 2, 3, 
 
22397
                19,  MVT::v4f32,
 
22398
                  OPC_CheckPatternPredicate, 3,
 
22399
                  OPC_EmitInteger, MVT::i32, 14, 
 
22400
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22401
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMULfq), 0,
 
22402
                      1, MVT::v4f32, 4, 0, 1, 2, 3, 
 
22403
                0, 
 
22404
              0, 
 
22405
            0, 
 
22406
          44,  ISD::CALLSEQ_START,
 
22407
            OPC_RecordNode,
 
22408
            OPC_RecordChild1,
 
22409
            OPC_MoveChild, 1,
 
22410
            OPC_SwitchOpcode , 19,  ISD::TargetConstant,
 
22411
              OPC_MoveParent,
 
22412
              OPC_EmitMergeInputChains, 1, 0, 
 
22413
              OPC_EmitInteger, MVT::i32, 14, 
 
22414
              OPC_EmitRegister, MVT::i32, 0 ,
 
22415
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_FlagOutput,
 
22416
                  0, 3, 1, 2, 3, 
 
22417
            15,  ISD::Constant,
 
22418
              OPC_MoveParent,
 
22419
              OPC_CheckPatternPredicate, 6,
 
22420
              OPC_EmitMergeInputChains, 1, 0, 
 
22421
              OPC_EmitConvertToTarget, 1,
 
22422
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_FlagOutput,
 
22423
                  0, 1, 2, 
 
22424
            0, 
 
22425
          53|128,1,  ARMISD::CALL,
 
22426
            OPC_RecordNode,
 
22427
            OPC_CaptureFlagInput,
 
22428
            OPC_RecordChild1,
 
22429
            OPC_Scope, 118, 
 
22430
              OPC_MoveChild, 1,
 
22431
              OPC_SwitchOpcode , 55,  ISD::TargetGlobalAddress,
 
22432
                OPC_MoveParent,
 
22433
                OPC_Scope, 12, 
 
22434
                  OPC_CheckPatternPredicate, 14,
 
22435
                  OPC_EmitMergeInputChains, 1, 0, 
 
22436
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22437
                      0, 1, 1, 
 
22438
                12, 
 
22439
                  OPC_CheckPatternPredicate, 15,
 
22440
                  OPC_EmitMergeInputChains, 1, 0, 
 
22441
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22442
                      0, 1, 1, 
 
22443
                12, 
 
22444
                  OPC_CheckPatternPredicate, 16,
 
22445
                  OPC_EmitMergeInputChains, 1, 0, 
 
22446
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22447
                      0, 1, 1, 
 
22448
                12, 
 
22449
                  OPC_CheckPatternPredicate, 17,
 
22450
                  OPC_EmitMergeInputChains, 1, 0, 
 
22451
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22452
                      0, 1, 1, 
 
22453
                0, 
 
22454
              55,  ISD::TargetExternalSymbol,
 
22455
                OPC_MoveParent,
 
22456
                OPC_Scope, 12, 
 
22457
                  OPC_CheckPatternPredicate, 14,
 
22458
                  OPC_EmitMergeInputChains, 1, 0, 
 
22459
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22460
                      0, 1, 1, 
 
22461
                12, 
 
22462
                  OPC_CheckPatternPredicate, 15,
 
22463
                  OPC_EmitMergeInputChains, 1, 0, 
 
22464
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22465
                      0, 1, 1, 
 
22466
                12, 
 
22467
                  OPC_CheckPatternPredicate, 16,
 
22468
                  OPC_EmitMergeInputChains, 1, 0, 
 
22469
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22470
                      0, 1, 1, 
 
22471
                12, 
 
22472
                  OPC_CheckPatternPredicate, 17,
 
22473
                  OPC_EmitMergeInputChains, 1, 0, 
 
22474
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXi_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22475
                      0, 1, 1, 
 
22476
                0, 
 
22477
              0, 
 
22478
            56, 
 
22479
              OPC_CheckChild1Type, MVT::i32,
 
22480
              OPC_Scope, 12, 
 
22481
                OPC_CheckPatternPredicate, 18,
 
22482
                OPC_EmitMergeInputChains, 1, 0, 
 
22483
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22484
                    0, 1, 1, 
 
22485
              12, 
 
22486
                OPC_CheckPatternPredicate, 19,
 
22487
                OPC_EmitMergeInputChains, 1, 0, 
 
22488
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLXr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22489
                    0, 1, 1, 
 
22490
              12, 
 
22491
                OPC_CheckPatternPredicate, 16,
 
22492
                OPC_EmitMergeInputChains, 1, 0, 
 
22493
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22494
                    0, 1, 1, 
 
22495
              12, 
 
22496
                OPC_CheckPatternPredicate, 17,
 
22497
                OPC_EmitMergeInputChains, 1, 0, 
 
22498
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22499
                    0, 1, 1, 
 
22500
              0, 
 
22501
            0, 
 
22502
          52,  ARMISD::CALL_PRED,
 
22503
            OPC_RecordNode,
 
22504
            OPC_CaptureFlagInput,
 
22505
            OPC_RecordChild1,
 
22506
            OPC_MoveChild, 1,
 
22507
            OPC_CheckOpcode, ISD::TargetGlobalAddress,
 
22508
            OPC_MoveParent,
 
22509
            OPC_Scope, 20, 
 
22510
              OPC_CheckPatternPredicate, 14,
 
22511
              OPC_EmitMergeInputChains, 1, 0, 
 
22512
              OPC_EmitInteger, MVT::i32, 14, 
 
22513
              OPC_EmitRegister, MVT::i32, 0 ,
 
22514
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BL_pred), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22515
                  0, 3, 1, 2, 3, 
 
22516
            20, 
 
22517
              OPC_CheckPatternPredicate, 15,
 
22518
              OPC_EmitMergeInputChains, 1, 0, 
 
22519
              OPC_EmitInteger, MVT::i32, 14, 
 
22520
              OPC_EmitRegister, MVT::i32, 0 ,
 
22521
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BLr9_pred), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22522
                  0, 3, 1, 2, 3, 
 
22523
            0, 
 
22524
          43|128,1,  ARMISD::Wrapper,
 
22525
            OPC_RecordChild0,
 
22526
            OPC_MoveChild, 0,
 
22527
            OPC_SwitchOpcode , 100,  ISD::TargetGlobalAddress,
 
22528
              OPC_MoveParent,
 
22529
              OPC_CheckType, MVT::i32,
 
22530
              OPC_Scope, 18, 
 
22531
                OPC_CheckPatternPredicate, 20,
 
22532
                OPC_EmitInteger, MVT::i32, 14, 
 
22533
                OPC_EmitRegister, MVT::i32, 0 ,
 
22534
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LEApcrel), 0,
 
22535
                    1, MVT::i32, 3, 0, 1, 2, 
 
22536
              18, 
 
22537
                OPC_CheckPatternPredicate, 21,
 
22538
                OPC_EmitInteger, MVT::i32, 14, 
 
22539
                OPC_EmitRegister, MVT::i32, 0 ,
 
22540
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi32imm), 0,
 
22541
                    1, MVT::i32, 3, 0, 1, 2, 
 
22542
              18, 
 
22543
                OPC_CheckPatternPredicate, 6,
 
22544
                OPC_EmitInteger, MVT::i32, 14, 
 
22545
                OPC_EmitRegister, MVT::i32, 0 ,
 
22546
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLEApcrel), 0,
 
22547
                    1, MVT::i32, 3, 0, 1, 2, 
 
22548
              18, 
 
22549
                OPC_CheckPatternPredicate, 22,
 
22550
                OPC_EmitInteger, MVT::i32, 14, 
 
22551
                OPC_EmitRegister, MVT::i32, 0 ,
 
22552
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LEApcrel), 0,
 
22553
                    1, MVT::i32, 3, 0, 1, 2, 
 
22554
              18, 
 
22555
                OPC_CheckPatternPredicate, 23,
 
22556
                OPC_EmitInteger, MVT::i32, 14, 
 
22557
                OPC_EmitRegister, MVT::i32, 0 ,
 
22558
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi32imm), 0,
 
22559
                    1, MVT::i32, 3, 0, 1, 2, 
 
22560
              0, 
 
22561
            62,  ISD::TargetConstantPool,
 
22562
              OPC_MoveParent,
 
22563
              OPC_CheckType, MVT::i32,
 
22564
              OPC_Scope, 18, 
 
22565
                OPC_CheckPatternPredicate, 5,
 
22566
                OPC_EmitInteger, MVT::i32, 14, 
 
22567
                OPC_EmitRegister, MVT::i32, 0 ,
 
22568
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::LEApcrel), 0,
 
22569
                    1, MVT::i32, 3, 0, 1, 2, 
 
22570
              18, 
 
22571
                OPC_CheckPatternPredicate, 6,
 
22572
                OPC_EmitInteger, MVT::i32, 14, 
 
22573
                OPC_EmitRegister, MVT::i32, 0 ,
 
22574
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLEApcrel), 0,
 
22575
                    1, MVT::i32, 3, 0, 1, 2, 
 
22576
              18, 
 
22577
                OPC_CheckPatternPredicate, 2,
 
22578
                OPC_EmitInteger, MVT::i32, 14, 
 
22579
                OPC_EmitRegister, MVT::i32, 0 ,
 
22580
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2LEApcrel), 0,
 
22581
                    1, MVT::i32, 3, 0, 1, 2, 
 
22582
              0, 
 
22583
            0, 
 
22584
          103,  ARMISD::tCALL,
 
22585
            OPC_RecordNode,
 
22586
            OPC_CaptureFlagInput,
 
22587
            OPC_RecordChild1,
 
22588
            OPC_Scope, 66, 
 
22589
              OPC_MoveChild, 1,
 
22590
              OPC_SwitchOpcode , 29,  ISD::TargetGlobalAddress,
 
22591
                OPC_MoveParent,
 
22592
                OPC_Scope, 12, 
 
22593
                  OPC_CheckPatternPredicate, 24,
 
22594
                  OPC_EmitMergeInputChains, 1, 0, 
 
22595
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22596
                      0, 1, 1, 
 
22597
                12, 
 
22598
                  OPC_CheckPatternPredicate, 25,
 
22599
                  OPC_EmitMergeInputChains, 1, 0, 
 
22600
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22601
                      0, 1, 1, 
 
22602
                0, 
 
22603
              29,  ISD::TargetExternalSymbol,
 
22604
                OPC_MoveParent,
 
22605
                OPC_Scope, 12, 
 
22606
                  OPC_CheckPatternPredicate, 24,
 
22607
                  OPC_EmitMergeInputChains, 1, 0, 
 
22608
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22609
                      0, 1, 1, 
 
22610
                12, 
 
22611
                  OPC_CheckPatternPredicate, 25,
 
22612
                  OPC_EmitMergeInputChains, 1, 0, 
 
22613
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22614
                      0, 1, 1, 
 
22615
                0, 
 
22616
              0, 
 
22617
            30, 
 
22618
              OPC_CheckChild1Type, MVT::i32,
 
22619
              OPC_Scope, 12, 
 
22620
                OPC_CheckPatternPredicate, 16,
 
22621
                OPC_EmitMergeInputChains, 1, 0, 
 
22622
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22623
                    0, 1, 1, 
 
22624
              12, 
 
22625
                OPC_CheckPatternPredicate, 17,
 
22626
                OPC_EmitMergeInputChains, 1, 0, 
 
22627
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBLXr_r9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
22628
                    0, 1, 1, 
 
22629
              0, 
 
22630
            0, 
 
22631
          65|128,1,  ISD::FNEG,
 
22632
            OPC_Scope, 51, 
 
22633
              OPC_MoveChild, 0,
 
22634
              OPC_CheckOpcode, ISD::FMUL,
 
22635
              OPC_RecordChild0,
 
22636
              OPC_RecordChild1,
 
22637
              OPC_MoveParent,
 
22638
              OPC_SwitchType , 19,  MVT::f64,
 
22639
                OPC_CheckPatternPredicate, 8,
 
22640
                OPC_EmitInteger, MVT::i32, 14, 
 
22641
                OPC_EmitRegister, MVT::i32, 0 ,
 
22642
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULD), 0,
 
22643
                    1, MVT::f64, 4, 0, 1, 2, 3, 
 
22644
              19,  MVT::f32,
 
22645
                OPC_CheckPatternPredicate, 8,
 
22646
                OPC_EmitInteger, MVT::i32, 14, 
 
22647
                OPC_EmitRegister, MVT::i32, 0 ,
 
22648
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNMULS), 0,
 
22649
                    1, MVT::f32, 4, 0, 1, 2, 3, 
 
22650
              0, 
 
22651
            9|128,1, 
 
22652
              OPC_RecordChild0,
 
22653
              OPC_SwitchType , 18,  MVT::f64,
 
22654
                OPC_CheckPatternPredicate, 8,
 
22655
                OPC_EmitInteger, MVT::i32, 14, 
 
22656
                OPC_EmitRegister, MVT::i32, 0 ,
 
22657
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGD), 0,
 
22658
                    1, MVT::f64, 3, 0, 1, 2, 
 
22659
              72,  MVT::f32,
 
22660
                OPC_Scope, 18, 
 
22661
                  OPC_CheckPatternPredicate, 10,
 
22662
                  OPC_EmitInteger, MVT::i32, 14, 
 
22663
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22664
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGS), 0,
 
22665
                      1, MVT::f32, 3, 0, 1, 2, 
 
22666
                50, 
 
22667
                  OPC_CheckPatternPredicate, 11,
 
22668
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
22669
                      1, MVT::v2f32, 0, 
 
22670
                  OPC_EmitInteger, MVT::i32, 1, 
 
22671
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
22672
                      1, MVT::f64, 3, 1, 0, 2, 
 
22673
                  OPC_EmitInteger, MVT::i32, 14, 
 
22674
                  OPC_EmitRegister, MVT::i32, 0 ,
 
22675
                  OPC_EmitNode, TARGET_OPCODE(ARM::VNEGfd_sfp), 0,
 
22676
                      1, MVT::f64, 3, 3, 4, 5, 
 
22677
                  OPC_EmitInteger, MVT::i32, 1, 
 
22678
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
22679
                      1, MVT::f32, 2, 6, 7, 
 
22680
                0, 
 
22681
              18,  MVT::v2f32,
 
22682
                OPC_CheckPatternPredicate, 3,
 
22683
                OPC_EmitInteger, MVT::i32, 14, 
 
22684
                OPC_EmitRegister, MVT::i32, 0 ,
 
22685
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGfd), 0,
 
22686
                    1, MVT::v2f32, 3, 0, 1, 2, 
 
22687
              18,  MVT::v4f32,
 
22688
                OPC_CheckPatternPredicate, 3,
 
22689
                OPC_EmitInteger, MVT::i32, 14, 
 
22690
                OPC_EmitRegister, MVT::i32, 0 ,
 
22691
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VNEGf32q), 0,
 
22692
                    1, MVT::v4f32, 3, 0, 1, 2, 
 
22693
              0, 
 
22694
            0, 
 
22695
          65|128,1,  ARMISD::VSHL,
 
22696
            OPC_RecordChild0,
 
22697
            OPC_RecordChild1,
 
22698
            OPC_MoveChild, 1,
 
22699
            OPC_CheckOpcode, ISD::Constant,
 
22700
            OPC_MoveParent,
 
22701
            OPC_SwitchType , 21,  MVT::v8i8,
 
22702
              OPC_CheckPatternPredicate, 3,
 
22703
              OPC_EmitConvertToTarget, 1,
 
22704
              OPC_EmitInteger, MVT::i32, 14, 
 
22705
              OPC_EmitRegister, MVT::i32, 0 ,
 
22706
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv8i8), 0,
 
22707
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
22708
            21,  MVT::v4i16,
 
22709
              OPC_CheckPatternPredicate, 3,
 
22710
              OPC_EmitConvertToTarget, 1,
 
22711
              OPC_EmitInteger, MVT::i32, 14, 
 
22712
              OPC_EmitRegister, MVT::i32, 0 ,
 
22713
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv4i16), 0,
 
22714
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
22715
            21,  MVT::v2i32,
 
22716
              OPC_CheckPatternPredicate, 3,
 
22717
              OPC_EmitConvertToTarget, 1,
 
22718
              OPC_EmitInteger, MVT::i32, 14, 
 
22719
              OPC_EmitRegister, MVT::i32, 0 ,
 
22720
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv2i32), 0,
 
22721
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
22722
            21,  MVT::v1i64,
 
22723
              OPC_CheckPatternPredicate, 3,
 
22724
              OPC_EmitConvertToTarget, 1,
 
22725
              OPC_EmitInteger, MVT::i32, 14, 
 
22726
              OPC_EmitRegister, MVT::i32, 0 ,
 
22727
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv1i64), 0,
 
22728
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
22729
            21,  MVT::v16i8,
 
22730
              OPC_CheckPatternPredicate, 3,
 
22731
              OPC_EmitConvertToTarget, 1,
 
22732
              OPC_EmitInteger, MVT::i32, 14, 
 
22733
              OPC_EmitRegister, MVT::i32, 0 ,
 
22734
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv16i8), 0,
 
22735
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
22736
            21,  MVT::v8i16,
 
22737
              OPC_CheckPatternPredicate, 3,
 
22738
              OPC_EmitConvertToTarget, 1,
 
22739
              OPC_EmitInteger, MVT::i32, 14, 
 
22740
              OPC_EmitRegister, MVT::i32, 0 ,
 
22741
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv8i16), 0,
 
22742
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
22743
            21,  MVT::v4i32,
 
22744
              OPC_CheckPatternPredicate, 3,
 
22745
              OPC_EmitConvertToTarget, 1,
 
22746
              OPC_EmitInteger, MVT::i32, 14, 
 
22747
              OPC_EmitRegister, MVT::i32, 0 ,
 
22748
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv4i32), 0,
 
22749
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
22750
            21,  MVT::v2i64,
 
22751
              OPC_CheckPatternPredicate, 3,
 
22752
              OPC_EmitConvertToTarget, 1,
 
22753
              OPC_EmitInteger, MVT::i32, 14, 
 
22754
              OPC_EmitRegister, MVT::i32, 0 ,
 
22755
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLiv2i64), 0,
 
22756
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
22757
            0, 
 
22758
          65|128,1,  ARMISD::VSHRs,
 
22759
            OPC_RecordChild0,
 
22760
            OPC_RecordChild1,
 
22761
            OPC_MoveChild, 1,
 
22762
            OPC_CheckOpcode, ISD::Constant,
 
22763
            OPC_MoveParent,
 
22764
            OPC_SwitchType , 21,  MVT::v8i8,
 
22765
              OPC_CheckPatternPredicate, 3,
 
22766
              OPC_EmitConvertToTarget, 1,
 
22767
              OPC_EmitInteger, MVT::i32, 14, 
 
22768
              OPC_EmitRegister, MVT::i32, 0 ,
 
22769
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv8i8), 0,
 
22770
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
22771
            21,  MVT::v4i16,
 
22772
              OPC_CheckPatternPredicate, 3,
 
22773
              OPC_EmitConvertToTarget, 1,
 
22774
              OPC_EmitInteger, MVT::i32, 14, 
 
22775
              OPC_EmitRegister, MVT::i32, 0 ,
 
22776
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv4i16), 0,
 
22777
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
22778
            21,  MVT::v2i32,
 
22779
              OPC_CheckPatternPredicate, 3,
 
22780
              OPC_EmitConvertToTarget, 1,
 
22781
              OPC_EmitInteger, MVT::i32, 14, 
 
22782
              OPC_EmitRegister, MVT::i32, 0 ,
 
22783
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv2i32), 0,
 
22784
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
22785
            21,  MVT::v1i64,
 
22786
              OPC_CheckPatternPredicate, 3,
 
22787
              OPC_EmitConvertToTarget, 1,
 
22788
              OPC_EmitInteger, MVT::i32, 14, 
 
22789
              OPC_EmitRegister, MVT::i32, 0 ,
 
22790
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv1i64), 0,
 
22791
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
22792
            21,  MVT::v16i8,
 
22793
              OPC_CheckPatternPredicate, 3,
 
22794
              OPC_EmitConvertToTarget, 1,
 
22795
              OPC_EmitInteger, MVT::i32, 14, 
 
22796
              OPC_EmitRegister, MVT::i32, 0 ,
 
22797
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv16i8), 0,
 
22798
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
22799
            21,  MVT::v8i16,
 
22800
              OPC_CheckPatternPredicate, 3,
 
22801
              OPC_EmitConvertToTarget, 1,
 
22802
              OPC_EmitInteger, MVT::i32, 14, 
 
22803
              OPC_EmitRegister, MVT::i32, 0 ,
 
22804
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv8i16), 0,
 
22805
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
22806
            21,  MVT::v4i32,
 
22807
              OPC_CheckPatternPredicate, 3,
 
22808
              OPC_EmitConvertToTarget, 1,
 
22809
              OPC_EmitInteger, MVT::i32, 14, 
 
22810
              OPC_EmitRegister, MVT::i32, 0 ,
 
22811
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv4i32), 0,
 
22812
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
22813
            21,  MVT::v2i64,
 
22814
              OPC_CheckPatternPredicate, 3,
 
22815
              OPC_EmitConvertToTarget, 1,
 
22816
              OPC_EmitInteger, MVT::i32, 14, 
 
22817
              OPC_EmitRegister, MVT::i32, 0 ,
 
22818
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRsv2i64), 0,
 
22819
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
22820
            0, 
 
22821
          65|128,1,  ARMISD::VSHRu,
 
22822
            OPC_RecordChild0,
 
22823
            OPC_RecordChild1,
 
22824
            OPC_MoveChild, 1,
 
22825
            OPC_CheckOpcode, ISD::Constant,
 
22826
            OPC_MoveParent,
 
22827
            OPC_SwitchType , 21,  MVT::v8i8,
 
22828
              OPC_CheckPatternPredicate, 3,
 
22829
              OPC_EmitConvertToTarget, 1,
 
22830
              OPC_EmitInteger, MVT::i32, 14, 
 
22831
              OPC_EmitRegister, MVT::i32, 0 ,
 
22832
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv8i8), 0,
 
22833
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
22834
            21,  MVT::v4i16,
 
22835
              OPC_CheckPatternPredicate, 3,
 
22836
              OPC_EmitConvertToTarget, 1,
 
22837
              OPC_EmitInteger, MVT::i32, 14, 
 
22838
              OPC_EmitRegister, MVT::i32, 0 ,
 
22839
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv4i16), 0,
 
22840
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
22841
            21,  MVT::v2i32,
 
22842
              OPC_CheckPatternPredicate, 3,
 
22843
              OPC_EmitConvertToTarget, 1,
 
22844
              OPC_EmitInteger, MVT::i32, 14, 
 
22845
              OPC_EmitRegister, MVT::i32, 0 ,
 
22846
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv2i32), 0,
 
22847
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
22848
            21,  MVT::v1i64,
 
22849
              OPC_CheckPatternPredicate, 3,
 
22850
              OPC_EmitConvertToTarget, 1,
 
22851
              OPC_EmitInteger, MVT::i32, 14, 
 
22852
              OPC_EmitRegister, MVT::i32, 0 ,
 
22853
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv1i64), 0,
 
22854
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
22855
            21,  MVT::v16i8,
 
22856
              OPC_CheckPatternPredicate, 3,
 
22857
              OPC_EmitConvertToTarget, 1,
 
22858
              OPC_EmitInteger, MVT::i32, 14, 
 
22859
              OPC_EmitRegister, MVT::i32, 0 ,
 
22860
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv16i8), 0,
 
22861
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
22862
            21,  MVT::v8i16,
 
22863
              OPC_CheckPatternPredicate, 3,
 
22864
              OPC_EmitConvertToTarget, 1,
 
22865
              OPC_EmitInteger, MVT::i32, 14, 
 
22866
              OPC_EmitRegister, MVT::i32, 0 ,
 
22867
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv8i16), 0,
 
22868
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
22869
            21,  MVT::v4i32,
 
22870
              OPC_CheckPatternPredicate, 3,
 
22871
              OPC_EmitConvertToTarget, 1,
 
22872
              OPC_EmitInteger, MVT::i32, 14, 
 
22873
              OPC_EmitRegister, MVT::i32, 0 ,
 
22874
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv4i32), 0,
 
22875
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
22876
            21,  MVT::v2i64,
 
22877
              OPC_CheckPatternPredicate, 3,
 
22878
              OPC_EmitConvertToTarget, 1,
 
22879
              OPC_EmitInteger, MVT::i32, 14, 
 
22880
              OPC_EmitRegister, MVT::i32, 0 ,
 
22881
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRuv2i64), 0,
 
22882
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
22883
            0, 
 
22884
          99,  ARMISD::VSHLLs,
 
22885
            OPC_RecordChild0,
 
22886
            OPC_Scope, 31, 
 
22887
              OPC_CheckChild0Type, MVT::v8i8,
 
22888
              OPC_RecordChild1,
 
22889
              OPC_MoveChild, 1,
 
22890
              OPC_CheckOpcode, ISD::Constant,
 
22891
              OPC_MoveParent,
 
22892
              OPC_CheckType, MVT::v8i16,
 
22893
              OPC_CheckPatternPredicate, 3,
 
22894
              OPC_EmitConvertToTarget, 1,
 
22895
              OPC_EmitInteger, MVT::i32, 14, 
 
22896
              OPC_EmitRegister, MVT::i32, 0 ,
 
22897
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLsv8i16), 0,
 
22898
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
22899
            31, 
 
22900
              OPC_CheckChild0Type, MVT::v4i16,
 
22901
              OPC_RecordChild1,
 
22902
              OPC_MoveChild, 1,
 
22903
              OPC_CheckOpcode, ISD::Constant,
 
22904
              OPC_MoveParent,
 
22905
              OPC_CheckType, MVT::v4i32,
 
22906
              OPC_CheckPatternPredicate, 3,
 
22907
              OPC_EmitConvertToTarget, 1,
 
22908
              OPC_EmitInteger, MVT::i32, 14, 
 
22909
              OPC_EmitRegister, MVT::i32, 0 ,
 
22910
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLsv4i32), 0,
 
22911
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
22912
            31, 
 
22913
              OPC_CheckChild0Type, MVT::v2i32,
 
22914
              OPC_RecordChild1,
 
22915
              OPC_MoveChild, 1,
 
22916
              OPC_CheckOpcode, ISD::Constant,
 
22917
              OPC_MoveParent,
 
22918
              OPC_CheckType, MVT::v2i64,
 
22919
              OPC_CheckPatternPredicate, 3,
 
22920
              OPC_EmitConvertToTarget, 1,
 
22921
              OPC_EmitInteger, MVT::i32, 14, 
 
22922
              OPC_EmitRegister, MVT::i32, 0 ,
 
22923
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLsv2i64), 0,
 
22924
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
22925
            0, 
 
22926
          99,  ARMISD::VSHLLu,
 
22927
            OPC_RecordChild0,
 
22928
            OPC_Scope, 31, 
 
22929
              OPC_CheckChild0Type, MVT::v8i8,
 
22930
              OPC_RecordChild1,
 
22931
              OPC_MoveChild, 1,
 
22932
              OPC_CheckOpcode, ISD::Constant,
 
22933
              OPC_MoveParent,
 
22934
              OPC_CheckType, MVT::v8i16,
 
22935
              OPC_CheckPatternPredicate, 3,
 
22936
              OPC_EmitConvertToTarget, 1,
 
22937
              OPC_EmitInteger, MVT::i32, 14, 
 
22938
              OPC_EmitRegister, MVT::i32, 0 ,
 
22939
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLuv8i16), 0,
 
22940
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
22941
            31, 
 
22942
              OPC_CheckChild0Type, MVT::v4i16,
 
22943
              OPC_RecordChild1,
 
22944
              OPC_MoveChild, 1,
 
22945
              OPC_CheckOpcode, ISD::Constant,
 
22946
              OPC_MoveParent,
 
22947
              OPC_CheckType, MVT::v4i32,
 
22948
              OPC_CheckPatternPredicate, 3,
 
22949
              OPC_EmitConvertToTarget, 1,
 
22950
              OPC_EmitInteger, MVT::i32, 14, 
 
22951
              OPC_EmitRegister, MVT::i32, 0 ,
 
22952
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLuv4i32), 0,
 
22953
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
22954
            31, 
 
22955
              OPC_CheckChild0Type, MVT::v2i32,
 
22956
              OPC_RecordChild1,
 
22957
              OPC_MoveChild, 1,
 
22958
              OPC_CheckOpcode, ISD::Constant,
 
22959
              OPC_MoveParent,
 
22960
              OPC_CheckType, MVT::v2i64,
 
22961
              OPC_CheckPatternPredicate, 3,
 
22962
              OPC_EmitConvertToTarget, 1,
 
22963
              OPC_EmitInteger, MVT::i32, 14, 
 
22964
              OPC_EmitRegister, MVT::i32, 0 ,
 
22965
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLuv2i64), 0,
 
22966
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
22967
            0, 
 
22968
          99,  ARMISD::VSHLLi,
 
22969
            OPC_RecordChild0,
 
22970
            OPC_Scope, 31, 
 
22971
              OPC_CheckChild0Type, MVT::v8i8,
 
22972
              OPC_RecordChild1,
 
22973
              OPC_MoveChild, 1,
 
22974
              OPC_CheckOpcode, ISD::Constant,
 
22975
              OPC_MoveParent,
 
22976
              OPC_CheckType, MVT::v8i16,
 
22977
              OPC_CheckPatternPredicate, 3,
 
22978
              OPC_EmitConvertToTarget, 1,
 
22979
              OPC_EmitInteger, MVT::i32, 14, 
 
22980
              OPC_EmitRegister, MVT::i32, 0 ,
 
22981
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLi8), 0,
 
22982
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
22983
            31, 
 
22984
              OPC_CheckChild0Type, MVT::v4i16,
 
22985
              OPC_RecordChild1,
 
22986
              OPC_MoveChild, 1,
 
22987
              OPC_CheckOpcode, ISD::Constant,
 
22988
              OPC_MoveParent,
 
22989
              OPC_CheckType, MVT::v4i32,
 
22990
              OPC_CheckPatternPredicate, 3,
 
22991
              OPC_EmitConvertToTarget, 1,
 
22992
              OPC_EmitInteger, MVT::i32, 14, 
 
22993
              OPC_EmitRegister, MVT::i32, 0 ,
 
22994
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLi16), 0,
 
22995
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
22996
            31, 
 
22997
              OPC_CheckChild0Type, MVT::v2i32,
 
22998
              OPC_RecordChild1,
 
22999
              OPC_MoveChild, 1,
 
23000
              OPC_CheckOpcode, ISD::Constant,
 
23001
              OPC_MoveParent,
 
23002
              OPC_CheckType, MVT::v2i64,
 
23003
              OPC_CheckPatternPredicate, 3,
 
23004
              OPC_EmitConvertToTarget, 1,
 
23005
              OPC_EmitInteger, MVT::i32, 14, 
 
23006
              OPC_EmitRegister, MVT::i32, 0 ,
 
23007
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHLLi32), 0,
 
23008
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
23009
            0, 
 
23010
          99,  ARMISD::VSHRN,
 
23011
            OPC_RecordChild0,
 
23012
            OPC_Scope, 31, 
 
23013
              OPC_CheckChild0Type, MVT::v8i16,
 
23014
              OPC_RecordChild1,
 
23015
              OPC_MoveChild, 1,
 
23016
              OPC_CheckOpcode, ISD::Constant,
 
23017
              OPC_MoveParent,
 
23018
              OPC_CheckType, MVT::v8i8,
 
23019
              OPC_CheckPatternPredicate, 3,
 
23020
              OPC_EmitConvertToTarget, 1,
 
23021
              OPC_EmitInteger, MVT::i32, 14, 
 
23022
              OPC_EmitRegister, MVT::i32, 0 ,
 
23023
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRNv8i8), 0,
 
23024
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23025
            31, 
 
23026
              OPC_CheckChild0Type, MVT::v4i32,
 
23027
              OPC_RecordChild1,
 
23028
              OPC_MoveChild, 1,
 
23029
              OPC_CheckOpcode, ISD::Constant,
 
23030
              OPC_MoveParent,
 
23031
              OPC_CheckType, MVT::v4i16,
 
23032
              OPC_CheckPatternPredicate, 3,
 
23033
              OPC_EmitConvertToTarget, 1,
 
23034
              OPC_EmitInteger, MVT::i32, 14, 
 
23035
              OPC_EmitRegister, MVT::i32, 0 ,
 
23036
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRNv4i16), 0,
 
23037
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23038
            31, 
 
23039
              OPC_CheckChild0Type, MVT::v2i64,
 
23040
              OPC_RecordChild1,
 
23041
              OPC_MoveChild, 1,
 
23042
              OPC_CheckOpcode, ISD::Constant,
 
23043
              OPC_MoveParent,
 
23044
              OPC_CheckType, MVT::v2i32,
 
23045
              OPC_CheckPatternPredicate, 3,
 
23046
              OPC_EmitConvertToTarget, 1,
 
23047
              OPC_EmitInteger, MVT::i32, 14, 
 
23048
              OPC_EmitRegister, MVT::i32, 0 ,
 
23049
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSHRNv2i32), 0,
 
23050
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23051
            0, 
 
23052
          65|128,1,  ARMISD::VRSHRs,
 
23053
            OPC_RecordChild0,
 
23054
            OPC_RecordChild1,
 
23055
            OPC_MoveChild, 1,
 
23056
            OPC_CheckOpcode, ISD::Constant,
 
23057
            OPC_MoveParent,
 
23058
            OPC_SwitchType , 21,  MVT::v8i8,
 
23059
              OPC_CheckPatternPredicate, 3,
 
23060
              OPC_EmitConvertToTarget, 1,
 
23061
              OPC_EmitInteger, MVT::i32, 14, 
 
23062
              OPC_EmitRegister, MVT::i32, 0 ,
 
23063
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv8i8), 0,
 
23064
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23065
            21,  MVT::v4i16,
 
23066
              OPC_CheckPatternPredicate, 3,
 
23067
              OPC_EmitConvertToTarget, 1,
 
23068
              OPC_EmitInteger, MVT::i32, 14, 
 
23069
              OPC_EmitRegister, MVT::i32, 0 ,
 
23070
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv4i16), 0,
 
23071
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23072
            21,  MVT::v2i32,
 
23073
              OPC_CheckPatternPredicate, 3,
 
23074
              OPC_EmitConvertToTarget, 1,
 
23075
              OPC_EmitInteger, MVT::i32, 14, 
 
23076
              OPC_EmitRegister, MVT::i32, 0 ,
 
23077
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv2i32), 0,
 
23078
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23079
            21,  MVT::v1i64,
 
23080
              OPC_CheckPatternPredicate, 3,
 
23081
              OPC_EmitConvertToTarget, 1,
 
23082
              OPC_EmitInteger, MVT::i32, 14, 
 
23083
              OPC_EmitRegister, MVT::i32, 0 ,
 
23084
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv1i64), 0,
 
23085
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
23086
            21,  MVT::v16i8,
 
23087
              OPC_CheckPatternPredicate, 3,
 
23088
              OPC_EmitConvertToTarget, 1,
 
23089
              OPC_EmitInteger, MVT::i32, 14, 
 
23090
              OPC_EmitRegister, MVT::i32, 0 ,
 
23091
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv16i8), 0,
 
23092
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
23093
            21,  MVT::v8i16,
 
23094
              OPC_CheckPatternPredicate, 3,
 
23095
              OPC_EmitConvertToTarget, 1,
 
23096
              OPC_EmitInteger, MVT::i32, 14, 
 
23097
              OPC_EmitRegister, MVT::i32, 0 ,
 
23098
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv8i16), 0,
 
23099
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
23100
            21,  MVT::v4i32,
 
23101
              OPC_CheckPatternPredicate, 3,
 
23102
              OPC_EmitConvertToTarget, 1,
 
23103
              OPC_EmitInteger, MVT::i32, 14, 
 
23104
              OPC_EmitRegister, MVT::i32, 0 ,
 
23105
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv4i32), 0,
 
23106
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
23107
            21,  MVT::v2i64,
 
23108
              OPC_CheckPatternPredicate, 3,
 
23109
              OPC_EmitConvertToTarget, 1,
 
23110
              OPC_EmitInteger, MVT::i32, 14, 
 
23111
              OPC_EmitRegister, MVT::i32, 0 ,
 
23112
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRsv2i64), 0,
 
23113
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
23114
            0, 
 
23115
          65|128,1,  ARMISD::VRSHRu,
 
23116
            OPC_RecordChild0,
 
23117
            OPC_RecordChild1,
 
23118
            OPC_MoveChild, 1,
 
23119
            OPC_CheckOpcode, ISD::Constant,
 
23120
            OPC_MoveParent,
 
23121
            OPC_SwitchType , 21,  MVT::v8i8,
 
23122
              OPC_CheckPatternPredicate, 3,
 
23123
              OPC_EmitConvertToTarget, 1,
 
23124
              OPC_EmitInteger, MVT::i32, 14, 
 
23125
              OPC_EmitRegister, MVT::i32, 0 ,
 
23126
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv8i8), 0,
 
23127
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23128
            21,  MVT::v4i16,
 
23129
              OPC_CheckPatternPredicate, 3,
 
23130
              OPC_EmitConvertToTarget, 1,
 
23131
              OPC_EmitInteger, MVT::i32, 14, 
 
23132
              OPC_EmitRegister, MVT::i32, 0 ,
 
23133
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv4i16), 0,
 
23134
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23135
            21,  MVT::v2i32,
 
23136
              OPC_CheckPatternPredicate, 3,
 
23137
              OPC_EmitConvertToTarget, 1,
 
23138
              OPC_EmitInteger, MVT::i32, 14, 
 
23139
              OPC_EmitRegister, MVT::i32, 0 ,
 
23140
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv2i32), 0,
 
23141
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23142
            21,  MVT::v1i64,
 
23143
              OPC_CheckPatternPredicate, 3,
 
23144
              OPC_EmitConvertToTarget, 1,
 
23145
              OPC_EmitInteger, MVT::i32, 14, 
 
23146
              OPC_EmitRegister, MVT::i32, 0 ,
 
23147
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv1i64), 0,
 
23148
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
23149
            21,  MVT::v16i8,
 
23150
              OPC_CheckPatternPredicate, 3,
 
23151
              OPC_EmitConvertToTarget, 1,
 
23152
              OPC_EmitInteger, MVT::i32, 14, 
 
23153
              OPC_EmitRegister, MVT::i32, 0 ,
 
23154
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv16i8), 0,
 
23155
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
23156
            21,  MVT::v8i16,
 
23157
              OPC_CheckPatternPredicate, 3,
 
23158
              OPC_EmitConvertToTarget, 1,
 
23159
              OPC_EmitInteger, MVT::i32, 14, 
 
23160
              OPC_EmitRegister, MVT::i32, 0 ,
 
23161
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv8i16), 0,
 
23162
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
23163
            21,  MVT::v4i32,
 
23164
              OPC_CheckPatternPredicate, 3,
 
23165
              OPC_EmitConvertToTarget, 1,
 
23166
              OPC_EmitInteger, MVT::i32, 14, 
 
23167
              OPC_EmitRegister, MVT::i32, 0 ,
 
23168
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv4i32), 0,
 
23169
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
23170
            21,  MVT::v2i64,
 
23171
              OPC_CheckPatternPredicate, 3,
 
23172
              OPC_EmitConvertToTarget, 1,
 
23173
              OPC_EmitInteger, MVT::i32, 14, 
 
23174
              OPC_EmitRegister, MVT::i32, 0 ,
 
23175
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRuv2i64), 0,
 
23176
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
23177
            0, 
 
23178
          99,  ARMISD::VRSHRN,
 
23179
            OPC_RecordChild0,
 
23180
            OPC_Scope, 31, 
 
23181
              OPC_CheckChild0Type, MVT::v8i16,
 
23182
              OPC_RecordChild1,
 
23183
              OPC_MoveChild, 1,
 
23184
              OPC_CheckOpcode, ISD::Constant,
 
23185
              OPC_MoveParent,
 
23186
              OPC_CheckType, MVT::v8i8,
 
23187
              OPC_CheckPatternPredicate, 3,
 
23188
              OPC_EmitConvertToTarget, 1,
 
23189
              OPC_EmitInteger, MVT::i32, 14, 
 
23190
              OPC_EmitRegister, MVT::i32, 0 ,
 
23191
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRNv8i8), 0,
 
23192
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23193
            31, 
 
23194
              OPC_CheckChild0Type, MVT::v4i32,
 
23195
              OPC_RecordChild1,
 
23196
              OPC_MoveChild, 1,
 
23197
              OPC_CheckOpcode, ISD::Constant,
 
23198
              OPC_MoveParent,
 
23199
              OPC_CheckType, MVT::v4i16,
 
23200
              OPC_CheckPatternPredicate, 3,
 
23201
              OPC_EmitConvertToTarget, 1,
 
23202
              OPC_EmitInteger, MVT::i32, 14, 
 
23203
              OPC_EmitRegister, MVT::i32, 0 ,
 
23204
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRNv4i16), 0,
 
23205
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23206
            31, 
 
23207
              OPC_CheckChild0Type, MVT::v2i64,
 
23208
              OPC_RecordChild1,
 
23209
              OPC_MoveChild, 1,
 
23210
              OPC_CheckOpcode, ISD::Constant,
 
23211
              OPC_MoveParent,
 
23212
              OPC_CheckType, MVT::v2i32,
 
23213
              OPC_CheckPatternPredicate, 3,
 
23214
              OPC_EmitConvertToTarget, 1,
 
23215
              OPC_EmitInteger, MVT::i32, 14, 
 
23216
              OPC_EmitRegister, MVT::i32, 0 ,
 
23217
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VRSHRNv2i32), 0,
 
23218
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23219
            0, 
 
23220
          65|128,1,  ARMISD::VQSHLs,
 
23221
            OPC_RecordChild0,
 
23222
            OPC_RecordChild1,
 
23223
            OPC_MoveChild, 1,
 
23224
            OPC_CheckOpcode, ISD::Constant,
 
23225
            OPC_MoveParent,
 
23226
            OPC_SwitchType , 21,  MVT::v8i8,
 
23227
              OPC_CheckPatternPredicate, 3,
 
23228
              OPC_EmitConvertToTarget, 1,
 
23229
              OPC_EmitInteger, MVT::i32, 14, 
 
23230
              OPC_EmitRegister, MVT::i32, 0 ,
 
23231
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv8i8), 0,
 
23232
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23233
            21,  MVT::v4i16,
 
23234
              OPC_CheckPatternPredicate, 3,
 
23235
              OPC_EmitConvertToTarget, 1,
 
23236
              OPC_EmitInteger, MVT::i32, 14, 
 
23237
              OPC_EmitRegister, MVT::i32, 0 ,
 
23238
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv4i16), 0,
 
23239
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23240
            21,  MVT::v2i32,
 
23241
              OPC_CheckPatternPredicate, 3,
 
23242
              OPC_EmitConvertToTarget, 1,
 
23243
              OPC_EmitInteger, MVT::i32, 14, 
 
23244
              OPC_EmitRegister, MVT::i32, 0 ,
 
23245
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv2i32), 0,
 
23246
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23247
            21,  MVT::v1i64,
 
23248
              OPC_CheckPatternPredicate, 3,
 
23249
              OPC_EmitConvertToTarget, 1,
 
23250
              OPC_EmitInteger, MVT::i32, 14, 
 
23251
              OPC_EmitRegister, MVT::i32, 0 ,
 
23252
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv1i64), 0,
 
23253
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
23254
            21,  MVT::v16i8,
 
23255
              OPC_CheckPatternPredicate, 3,
 
23256
              OPC_EmitConvertToTarget, 1,
 
23257
              OPC_EmitInteger, MVT::i32, 14, 
 
23258
              OPC_EmitRegister, MVT::i32, 0 ,
 
23259
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv16i8), 0,
 
23260
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
23261
            21,  MVT::v8i16,
 
23262
              OPC_CheckPatternPredicate, 3,
 
23263
              OPC_EmitConvertToTarget, 1,
 
23264
              OPC_EmitInteger, MVT::i32, 14, 
 
23265
              OPC_EmitRegister, MVT::i32, 0 ,
 
23266
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv8i16), 0,
 
23267
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
23268
            21,  MVT::v4i32,
 
23269
              OPC_CheckPatternPredicate, 3,
 
23270
              OPC_EmitConvertToTarget, 1,
 
23271
              OPC_EmitInteger, MVT::i32, 14, 
 
23272
              OPC_EmitRegister, MVT::i32, 0 ,
 
23273
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv4i32), 0,
 
23274
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
23275
            21,  MVT::v2i64,
 
23276
              OPC_CheckPatternPredicate, 3,
 
23277
              OPC_EmitConvertToTarget, 1,
 
23278
              OPC_EmitInteger, MVT::i32, 14, 
 
23279
              OPC_EmitRegister, MVT::i32, 0 ,
 
23280
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsiv2i64), 0,
 
23281
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
23282
            0, 
 
23283
          65|128,1,  ARMISD::VQSHLu,
 
23284
            OPC_RecordChild0,
 
23285
            OPC_RecordChild1,
 
23286
            OPC_MoveChild, 1,
 
23287
            OPC_CheckOpcode, ISD::Constant,
 
23288
            OPC_MoveParent,
 
23289
            OPC_SwitchType , 21,  MVT::v8i8,
 
23290
              OPC_CheckPatternPredicate, 3,
 
23291
              OPC_EmitConvertToTarget, 1,
 
23292
              OPC_EmitInteger, MVT::i32, 14, 
 
23293
              OPC_EmitRegister, MVT::i32, 0 ,
 
23294
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv8i8), 0,
 
23295
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23296
            21,  MVT::v4i16,
 
23297
              OPC_CheckPatternPredicate, 3,
 
23298
              OPC_EmitConvertToTarget, 1,
 
23299
              OPC_EmitInteger, MVT::i32, 14, 
 
23300
              OPC_EmitRegister, MVT::i32, 0 ,
 
23301
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv4i16), 0,
 
23302
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23303
            21,  MVT::v2i32,
 
23304
              OPC_CheckPatternPredicate, 3,
 
23305
              OPC_EmitConvertToTarget, 1,
 
23306
              OPC_EmitInteger, MVT::i32, 14, 
 
23307
              OPC_EmitRegister, MVT::i32, 0 ,
 
23308
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv2i32), 0,
 
23309
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23310
            21,  MVT::v1i64,
 
23311
              OPC_CheckPatternPredicate, 3,
 
23312
              OPC_EmitConvertToTarget, 1,
 
23313
              OPC_EmitInteger, MVT::i32, 14, 
 
23314
              OPC_EmitRegister, MVT::i32, 0 ,
 
23315
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv1i64), 0,
 
23316
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
23317
            21,  MVT::v16i8,
 
23318
              OPC_CheckPatternPredicate, 3,
 
23319
              OPC_EmitConvertToTarget, 1,
 
23320
              OPC_EmitInteger, MVT::i32, 14, 
 
23321
              OPC_EmitRegister, MVT::i32, 0 ,
 
23322
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv16i8), 0,
 
23323
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
23324
            21,  MVT::v8i16,
 
23325
              OPC_CheckPatternPredicate, 3,
 
23326
              OPC_EmitConvertToTarget, 1,
 
23327
              OPC_EmitInteger, MVT::i32, 14, 
 
23328
              OPC_EmitRegister, MVT::i32, 0 ,
 
23329
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv8i16), 0,
 
23330
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
23331
            21,  MVT::v4i32,
 
23332
              OPC_CheckPatternPredicate, 3,
 
23333
              OPC_EmitConvertToTarget, 1,
 
23334
              OPC_EmitInteger, MVT::i32, 14, 
 
23335
              OPC_EmitRegister, MVT::i32, 0 ,
 
23336
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv4i32), 0,
 
23337
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
23338
            21,  MVT::v2i64,
 
23339
              OPC_CheckPatternPredicate, 3,
 
23340
              OPC_EmitConvertToTarget, 1,
 
23341
              OPC_EmitInteger, MVT::i32, 14, 
 
23342
              OPC_EmitRegister, MVT::i32, 0 ,
 
23343
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLuiv2i64), 0,
 
23344
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
23345
            0, 
 
23346
          65|128,1,  ARMISD::VQSHLsu,
 
23347
            OPC_RecordChild0,
 
23348
            OPC_RecordChild1,
 
23349
            OPC_MoveChild, 1,
 
23350
            OPC_CheckOpcode, ISD::Constant,
 
23351
            OPC_MoveParent,
 
23352
            OPC_SwitchType , 21,  MVT::v8i8,
 
23353
              OPC_CheckPatternPredicate, 3,
 
23354
              OPC_EmitConvertToTarget, 1,
 
23355
              OPC_EmitInteger, MVT::i32, 14, 
 
23356
              OPC_EmitRegister, MVT::i32, 0 ,
 
23357
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv8i8), 0,
 
23358
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23359
            21,  MVT::v4i16,
 
23360
              OPC_CheckPatternPredicate, 3,
 
23361
              OPC_EmitConvertToTarget, 1,
 
23362
              OPC_EmitInteger, MVT::i32, 14, 
 
23363
              OPC_EmitRegister, MVT::i32, 0 ,
 
23364
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv4i16), 0,
 
23365
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23366
            21,  MVT::v2i32,
 
23367
              OPC_CheckPatternPredicate, 3,
 
23368
              OPC_EmitConvertToTarget, 1,
 
23369
              OPC_EmitInteger, MVT::i32, 14, 
 
23370
              OPC_EmitRegister, MVT::i32, 0 ,
 
23371
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv2i32), 0,
 
23372
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23373
            21,  MVT::v1i64,
 
23374
              OPC_CheckPatternPredicate, 3,
 
23375
              OPC_EmitConvertToTarget, 1,
 
23376
              OPC_EmitInteger, MVT::i32, 14, 
 
23377
              OPC_EmitRegister, MVT::i32, 0 ,
 
23378
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv1i64), 0,
 
23379
                  1, MVT::v1i64, 4, 0, 2, 3, 4, 
 
23380
            21,  MVT::v16i8,
 
23381
              OPC_CheckPatternPredicate, 3,
 
23382
              OPC_EmitConvertToTarget, 1,
 
23383
              OPC_EmitInteger, MVT::i32, 14, 
 
23384
              OPC_EmitRegister, MVT::i32, 0 ,
 
23385
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv16i8), 0,
 
23386
                  1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
23387
            21,  MVT::v8i16,
 
23388
              OPC_CheckPatternPredicate, 3,
 
23389
              OPC_EmitConvertToTarget, 1,
 
23390
              OPC_EmitInteger, MVT::i32, 14, 
 
23391
              OPC_EmitRegister, MVT::i32, 0 ,
 
23392
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv8i16), 0,
 
23393
                  1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
23394
            21,  MVT::v4i32,
 
23395
              OPC_CheckPatternPredicate, 3,
 
23396
              OPC_EmitConvertToTarget, 1,
 
23397
              OPC_EmitInteger, MVT::i32, 14, 
 
23398
              OPC_EmitRegister, MVT::i32, 0 ,
 
23399
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv4i32), 0,
 
23400
                  1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
23401
            21,  MVT::v2i64,
 
23402
              OPC_CheckPatternPredicate, 3,
 
23403
              OPC_EmitConvertToTarget, 1,
 
23404
              OPC_EmitInteger, MVT::i32, 14, 
 
23405
              OPC_EmitRegister, MVT::i32, 0 ,
 
23406
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHLsuv2i64), 0,
 
23407
                  1, MVT::v2i64, 4, 0, 2, 3, 4, 
 
23408
            0, 
 
23409
          99,  ARMISD::VQSHRNs,
 
23410
            OPC_RecordChild0,
 
23411
            OPC_Scope, 31, 
 
23412
              OPC_CheckChild0Type, MVT::v8i16,
 
23413
              OPC_RecordChild1,
 
23414
              OPC_MoveChild, 1,
 
23415
              OPC_CheckOpcode, ISD::Constant,
 
23416
              OPC_MoveParent,
 
23417
              OPC_CheckType, MVT::v8i8,
 
23418
              OPC_CheckPatternPredicate, 3,
 
23419
              OPC_EmitConvertToTarget, 1,
 
23420
              OPC_EmitInteger, MVT::i32, 14, 
 
23421
              OPC_EmitRegister, MVT::i32, 0 ,
 
23422
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNsv8i8), 0,
 
23423
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23424
            31, 
 
23425
              OPC_CheckChild0Type, MVT::v4i32,
 
23426
              OPC_RecordChild1,
 
23427
              OPC_MoveChild, 1,
 
23428
              OPC_CheckOpcode, ISD::Constant,
 
23429
              OPC_MoveParent,
 
23430
              OPC_CheckType, MVT::v4i16,
 
23431
              OPC_CheckPatternPredicate, 3,
 
23432
              OPC_EmitConvertToTarget, 1,
 
23433
              OPC_EmitInteger, MVT::i32, 14, 
 
23434
              OPC_EmitRegister, MVT::i32, 0 ,
 
23435
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNsv4i16), 0,
 
23436
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23437
            31, 
 
23438
              OPC_CheckChild0Type, MVT::v2i64,
 
23439
              OPC_RecordChild1,
 
23440
              OPC_MoveChild, 1,
 
23441
              OPC_CheckOpcode, ISD::Constant,
 
23442
              OPC_MoveParent,
 
23443
              OPC_CheckType, MVT::v2i32,
 
23444
              OPC_CheckPatternPredicate, 3,
 
23445
              OPC_EmitConvertToTarget, 1,
 
23446
              OPC_EmitInteger, MVT::i32, 14, 
 
23447
              OPC_EmitRegister, MVT::i32, 0 ,
 
23448
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNsv2i32), 0,
 
23449
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23450
            0, 
 
23451
          99,  ARMISD::VQSHRNu,
 
23452
            OPC_RecordChild0,
 
23453
            OPC_Scope, 31, 
 
23454
              OPC_CheckChild0Type, MVT::v8i16,
 
23455
              OPC_RecordChild1,
 
23456
              OPC_MoveChild, 1,
 
23457
              OPC_CheckOpcode, ISD::Constant,
 
23458
              OPC_MoveParent,
 
23459
              OPC_CheckType, MVT::v8i8,
 
23460
              OPC_CheckPatternPredicate, 3,
 
23461
              OPC_EmitConvertToTarget, 1,
 
23462
              OPC_EmitInteger, MVT::i32, 14, 
 
23463
              OPC_EmitRegister, MVT::i32, 0 ,
 
23464
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNuv8i8), 0,
 
23465
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23466
            31, 
 
23467
              OPC_CheckChild0Type, MVT::v4i32,
 
23468
              OPC_RecordChild1,
 
23469
              OPC_MoveChild, 1,
 
23470
              OPC_CheckOpcode, ISD::Constant,
 
23471
              OPC_MoveParent,
 
23472
              OPC_CheckType, MVT::v4i16,
 
23473
              OPC_CheckPatternPredicate, 3,
 
23474
              OPC_EmitConvertToTarget, 1,
 
23475
              OPC_EmitInteger, MVT::i32, 14, 
 
23476
              OPC_EmitRegister, MVT::i32, 0 ,
 
23477
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNuv4i16), 0,
 
23478
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23479
            31, 
 
23480
              OPC_CheckChild0Type, MVT::v2i64,
 
23481
              OPC_RecordChild1,
 
23482
              OPC_MoveChild, 1,
 
23483
              OPC_CheckOpcode, ISD::Constant,
 
23484
              OPC_MoveParent,
 
23485
              OPC_CheckType, MVT::v2i32,
 
23486
              OPC_CheckPatternPredicate, 3,
 
23487
              OPC_EmitConvertToTarget, 1,
 
23488
              OPC_EmitInteger, MVT::i32, 14, 
 
23489
              OPC_EmitRegister, MVT::i32, 0 ,
 
23490
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRNuv2i32), 0,
 
23491
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23492
            0, 
 
23493
          99,  ARMISD::VQSHRNsu,
 
23494
            OPC_RecordChild0,
 
23495
            OPC_Scope, 31, 
 
23496
              OPC_CheckChild0Type, MVT::v8i16,
 
23497
              OPC_RecordChild1,
 
23498
              OPC_MoveChild, 1,
 
23499
              OPC_CheckOpcode, ISD::Constant,
 
23500
              OPC_MoveParent,
 
23501
              OPC_CheckType, MVT::v8i8,
 
23502
              OPC_CheckPatternPredicate, 3,
 
23503
              OPC_EmitConvertToTarget, 1,
 
23504
              OPC_EmitInteger, MVT::i32, 14, 
 
23505
              OPC_EmitRegister, MVT::i32, 0 ,
 
23506
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRUNv8i8), 0,
 
23507
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23508
            31, 
 
23509
              OPC_CheckChild0Type, MVT::v4i32,
 
23510
              OPC_RecordChild1,
 
23511
              OPC_MoveChild, 1,
 
23512
              OPC_CheckOpcode, ISD::Constant,
 
23513
              OPC_MoveParent,
 
23514
              OPC_CheckType, MVT::v4i16,
 
23515
              OPC_CheckPatternPredicate, 3,
 
23516
              OPC_EmitConvertToTarget, 1,
 
23517
              OPC_EmitInteger, MVT::i32, 14, 
 
23518
              OPC_EmitRegister, MVT::i32, 0 ,
 
23519
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRUNv4i16), 0,
 
23520
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23521
            31, 
 
23522
              OPC_CheckChild0Type, MVT::v2i64,
 
23523
              OPC_RecordChild1,
 
23524
              OPC_MoveChild, 1,
 
23525
              OPC_CheckOpcode, ISD::Constant,
 
23526
              OPC_MoveParent,
 
23527
              OPC_CheckType, MVT::v2i32,
 
23528
              OPC_CheckPatternPredicate, 3,
 
23529
              OPC_EmitConvertToTarget, 1,
 
23530
              OPC_EmitInteger, MVT::i32, 14, 
 
23531
              OPC_EmitRegister, MVT::i32, 0 ,
 
23532
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQSHRUNv2i32), 0,
 
23533
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23534
            0, 
 
23535
          99,  ARMISD::VQRSHRNs,
 
23536
            OPC_RecordChild0,
 
23537
            OPC_Scope, 31, 
 
23538
              OPC_CheckChild0Type, MVT::v8i16,
 
23539
              OPC_RecordChild1,
 
23540
              OPC_MoveChild, 1,
 
23541
              OPC_CheckOpcode, ISD::Constant,
 
23542
              OPC_MoveParent,
 
23543
              OPC_CheckType, MVT::v8i8,
 
23544
              OPC_CheckPatternPredicate, 3,
 
23545
              OPC_EmitConvertToTarget, 1,
 
23546
              OPC_EmitInteger, MVT::i32, 14, 
 
23547
              OPC_EmitRegister, MVT::i32, 0 ,
 
23548
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNsv8i8), 0,
 
23549
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23550
            31, 
 
23551
              OPC_CheckChild0Type, MVT::v4i32,
 
23552
              OPC_RecordChild1,
 
23553
              OPC_MoveChild, 1,
 
23554
              OPC_CheckOpcode, ISD::Constant,
 
23555
              OPC_MoveParent,
 
23556
              OPC_CheckType, MVT::v4i16,
 
23557
              OPC_CheckPatternPredicate, 3,
 
23558
              OPC_EmitConvertToTarget, 1,
 
23559
              OPC_EmitInteger, MVT::i32, 14, 
 
23560
              OPC_EmitRegister, MVT::i32, 0 ,
 
23561
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNsv4i16), 0,
 
23562
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23563
            31, 
 
23564
              OPC_CheckChild0Type, MVT::v2i64,
 
23565
              OPC_RecordChild1,
 
23566
              OPC_MoveChild, 1,
 
23567
              OPC_CheckOpcode, ISD::Constant,
 
23568
              OPC_MoveParent,
 
23569
              OPC_CheckType, MVT::v2i32,
 
23570
              OPC_CheckPatternPredicate, 3,
 
23571
              OPC_EmitConvertToTarget, 1,
 
23572
              OPC_EmitInteger, MVT::i32, 14, 
 
23573
              OPC_EmitRegister, MVT::i32, 0 ,
 
23574
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNsv2i32), 0,
 
23575
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23576
            0, 
 
23577
          99,  ARMISD::VQRSHRNu,
 
23578
            OPC_RecordChild0,
 
23579
            OPC_Scope, 31, 
 
23580
              OPC_CheckChild0Type, MVT::v8i16,
 
23581
              OPC_RecordChild1,
 
23582
              OPC_MoveChild, 1,
 
23583
              OPC_CheckOpcode, ISD::Constant,
 
23584
              OPC_MoveParent,
 
23585
              OPC_CheckType, MVT::v8i8,
 
23586
              OPC_CheckPatternPredicate, 3,
 
23587
              OPC_EmitConvertToTarget, 1,
 
23588
              OPC_EmitInteger, MVT::i32, 14, 
 
23589
              OPC_EmitRegister, MVT::i32, 0 ,
 
23590
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNuv8i8), 0,
 
23591
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23592
            31, 
 
23593
              OPC_CheckChild0Type, MVT::v4i32,
 
23594
              OPC_RecordChild1,
 
23595
              OPC_MoveChild, 1,
 
23596
              OPC_CheckOpcode, ISD::Constant,
 
23597
              OPC_MoveParent,
 
23598
              OPC_CheckType, MVT::v4i16,
 
23599
              OPC_CheckPatternPredicate, 3,
 
23600
              OPC_EmitConvertToTarget, 1,
 
23601
              OPC_EmitInteger, MVT::i32, 14, 
 
23602
              OPC_EmitRegister, MVT::i32, 0 ,
 
23603
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNuv4i16), 0,
 
23604
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23605
            31, 
 
23606
              OPC_CheckChild0Type, MVT::v2i64,
 
23607
              OPC_RecordChild1,
 
23608
              OPC_MoveChild, 1,
 
23609
              OPC_CheckOpcode, ISD::Constant,
 
23610
              OPC_MoveParent,
 
23611
              OPC_CheckType, MVT::v2i32,
 
23612
              OPC_CheckPatternPredicate, 3,
 
23613
              OPC_EmitConvertToTarget, 1,
 
23614
              OPC_EmitInteger, MVT::i32, 14, 
 
23615
              OPC_EmitRegister, MVT::i32, 0 ,
 
23616
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRNuv2i32), 0,
 
23617
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23618
            0, 
 
23619
          99,  ARMISD::VQRSHRNsu,
 
23620
            OPC_RecordChild0,
 
23621
            OPC_Scope, 31, 
 
23622
              OPC_CheckChild0Type, MVT::v8i16,
 
23623
              OPC_RecordChild1,
 
23624
              OPC_MoveChild, 1,
 
23625
              OPC_CheckOpcode, ISD::Constant,
 
23626
              OPC_MoveParent,
 
23627
              OPC_CheckType, MVT::v8i8,
 
23628
              OPC_CheckPatternPredicate, 3,
 
23629
              OPC_EmitConvertToTarget, 1,
 
23630
              OPC_EmitInteger, MVT::i32, 14, 
 
23631
              OPC_EmitRegister, MVT::i32, 0 ,
 
23632
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRUNv8i8), 0,
 
23633
                  1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
23634
            31, 
 
23635
              OPC_CheckChild0Type, MVT::v4i32,
 
23636
              OPC_RecordChild1,
 
23637
              OPC_MoveChild, 1,
 
23638
              OPC_CheckOpcode, ISD::Constant,
 
23639
              OPC_MoveParent,
 
23640
              OPC_CheckType, MVT::v4i16,
 
23641
              OPC_CheckPatternPredicate, 3,
 
23642
              OPC_EmitConvertToTarget, 1,
 
23643
              OPC_EmitInteger, MVT::i32, 14, 
 
23644
              OPC_EmitRegister, MVT::i32, 0 ,
 
23645
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRUNv4i16), 0,
 
23646
                  1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
23647
            31, 
 
23648
              OPC_CheckChild0Type, MVT::v2i64,
 
23649
              OPC_RecordChild1,
 
23650
              OPC_MoveChild, 1,
 
23651
              OPC_CheckOpcode, ISD::Constant,
 
23652
              OPC_MoveParent,
 
23653
              OPC_CheckType, MVT::v2i32,
 
23654
              OPC_CheckPatternPredicate, 3,
 
23655
              OPC_EmitConvertToTarget, 1,
 
23656
              OPC_EmitInteger, MVT::i32, 14, 
 
23657
              OPC_EmitRegister, MVT::i32, 0 ,
 
23658
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VQRSHRUNv2i32), 0,
 
23659
                  1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
23660
            0, 
 
23661
          74|128,1,  ARMISD::VSLI,
 
23662
            OPC_RecordChild0,
 
23663
            OPC_RecordChild1,
 
23664
            OPC_RecordChild2,
 
23665
            OPC_MoveChild, 2,
 
23666
            OPC_CheckOpcode, ISD::Constant,
 
23667
            OPC_MoveParent,
 
23668
            OPC_SwitchType , 22,  MVT::v8i8,
 
23669
              OPC_CheckPatternPredicate, 3,
 
23670
              OPC_EmitConvertToTarget, 2,
 
23671
              OPC_EmitInteger, MVT::i32, 14, 
 
23672
              OPC_EmitRegister, MVT::i32, 0 ,
 
23673
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv8i8), 0,
 
23674
                  1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
23675
            22,  MVT::v4i16,
 
23676
              OPC_CheckPatternPredicate, 3,
 
23677
              OPC_EmitConvertToTarget, 2,
 
23678
              OPC_EmitInteger, MVT::i32, 14, 
 
23679
              OPC_EmitRegister, MVT::i32, 0 ,
 
23680
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv4i16), 0,
 
23681
                  1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
23682
            22,  MVT::v2i32,
 
23683
              OPC_CheckPatternPredicate, 3,
 
23684
              OPC_EmitConvertToTarget, 2,
 
23685
              OPC_EmitInteger, MVT::i32, 14, 
 
23686
              OPC_EmitRegister, MVT::i32, 0 ,
 
23687
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv2i32), 0,
 
23688
                  1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
23689
            22,  MVT::v1i64,
 
23690
              OPC_CheckPatternPredicate, 3,
 
23691
              OPC_EmitConvertToTarget, 2,
 
23692
              OPC_EmitInteger, MVT::i32, 14, 
 
23693
              OPC_EmitRegister, MVT::i32, 0 ,
 
23694
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv1i64), 0,
 
23695
                  1, MVT::v1i64, 5, 0, 1, 3, 4, 5, 
 
23696
            22,  MVT::v16i8,
 
23697
              OPC_CheckPatternPredicate, 3,
 
23698
              OPC_EmitConvertToTarget, 2,
 
23699
              OPC_EmitInteger, MVT::i32, 14, 
 
23700
              OPC_EmitRegister, MVT::i32, 0 ,
 
23701
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv16i8), 0,
 
23702
                  1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
23703
            22,  MVT::v8i16,
 
23704
              OPC_CheckPatternPredicate, 3,
 
23705
              OPC_EmitConvertToTarget, 2,
 
23706
              OPC_EmitInteger, MVT::i32, 14, 
 
23707
              OPC_EmitRegister, MVT::i32, 0 ,
 
23708
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv8i16), 0,
 
23709
                  1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
23710
            22,  MVT::v4i32,
 
23711
              OPC_CheckPatternPredicate, 3,
 
23712
              OPC_EmitConvertToTarget, 2,
 
23713
              OPC_EmitInteger, MVT::i32, 14, 
 
23714
              OPC_EmitRegister, MVT::i32, 0 ,
 
23715
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv4i32), 0,
 
23716
                  1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
23717
            22,  MVT::v2i64,
 
23718
              OPC_CheckPatternPredicate, 3,
 
23719
              OPC_EmitConvertToTarget, 2,
 
23720
              OPC_EmitInteger, MVT::i32, 14, 
 
23721
              OPC_EmitRegister, MVT::i32, 0 ,
 
23722
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSLIv2i64), 0,
 
23723
                  1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
23724
            0, 
 
23725
          74|128,1,  ARMISD::VSRI,
 
23726
            OPC_RecordChild0,
 
23727
            OPC_RecordChild1,
 
23728
            OPC_RecordChild2,
 
23729
            OPC_MoveChild, 2,
 
23730
            OPC_CheckOpcode, ISD::Constant,
 
23731
            OPC_MoveParent,
 
23732
            OPC_SwitchType , 22,  MVT::v8i8,
 
23733
              OPC_CheckPatternPredicate, 3,
 
23734
              OPC_EmitConvertToTarget, 2,
 
23735
              OPC_EmitInteger, MVT::i32, 14, 
 
23736
              OPC_EmitRegister, MVT::i32, 0 ,
 
23737
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv8i8), 0,
 
23738
                  1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
23739
            22,  MVT::v4i16,
 
23740
              OPC_CheckPatternPredicate, 3,
 
23741
              OPC_EmitConvertToTarget, 2,
 
23742
              OPC_EmitInteger, MVT::i32, 14, 
 
23743
              OPC_EmitRegister, MVT::i32, 0 ,
 
23744
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv4i16), 0,
 
23745
                  1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
23746
            22,  MVT::v2i32,
 
23747
              OPC_CheckPatternPredicate, 3,
 
23748
              OPC_EmitConvertToTarget, 2,
 
23749
              OPC_EmitInteger, MVT::i32, 14, 
 
23750
              OPC_EmitRegister, MVT::i32, 0 ,
 
23751
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv2i32), 0,
 
23752
                  1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
23753
            22,  MVT::v1i64,
 
23754
              OPC_CheckPatternPredicate, 3,
 
23755
              OPC_EmitConvertToTarget, 2,
 
23756
              OPC_EmitInteger, MVT::i32, 14, 
 
23757
              OPC_EmitRegister, MVT::i32, 0 ,
 
23758
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv1i64), 0,
 
23759
                  1, MVT::v1i64, 5, 0, 1, 3, 4, 5, 
 
23760
            22,  MVT::v16i8,
 
23761
              OPC_CheckPatternPredicate, 3,
 
23762
              OPC_EmitConvertToTarget, 2,
 
23763
              OPC_EmitInteger, MVT::i32, 14, 
 
23764
              OPC_EmitRegister, MVT::i32, 0 ,
 
23765
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv16i8), 0,
 
23766
                  1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
23767
            22,  MVT::v8i16,
 
23768
              OPC_CheckPatternPredicate, 3,
 
23769
              OPC_EmitConvertToTarget, 2,
 
23770
              OPC_EmitInteger, MVT::i32, 14, 
 
23771
              OPC_EmitRegister, MVT::i32, 0 ,
 
23772
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv8i16), 0,
 
23773
                  1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
23774
            22,  MVT::v4i32,
 
23775
              OPC_CheckPatternPredicate, 3,
 
23776
              OPC_EmitConvertToTarget, 2,
 
23777
              OPC_EmitInteger, MVT::i32, 14, 
 
23778
              OPC_EmitRegister, MVT::i32, 0 ,
 
23779
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv4i32), 0,
 
23780
                  1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
23781
            22,  MVT::v2i64,
 
23782
              OPC_CheckPatternPredicate, 3,
 
23783
              OPC_EmitConvertToTarget, 2,
 
23784
              OPC_EmitInteger, MVT::i32, 14, 
 
23785
              OPC_EmitRegister, MVT::i32, 0 ,
 
23786
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSRIv2i64), 0,
 
23787
                  1, MVT::v2i64, 5, 0, 1, 3, 4, 5, 
 
23788
            0, 
 
23789
          25|128,1,  ARMISD::VGETLANEs,
 
23790
            OPC_RecordChild0,
 
23791
            OPC_Scope, 29, 
 
23792
              OPC_CheckChild0Type, MVT::v8i8,
 
23793
              OPC_RecordChild1,
 
23794
              OPC_MoveChild, 1,
 
23795
              OPC_CheckOpcode, ISD::Constant,
 
23796
              OPC_MoveParent,
 
23797
              OPC_CheckPatternPredicate, 3,
 
23798
              OPC_EmitConvertToTarget, 1,
 
23799
              OPC_EmitInteger, MVT::i32, 14, 
 
23800
              OPC_EmitRegister, MVT::i32, 0 ,
 
23801
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs8), 0,
 
23802
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
23803
            29, 
 
23804
              OPC_CheckChild0Type, MVT::v4i16,
 
23805
              OPC_RecordChild1,
 
23806
              OPC_MoveChild, 1,
 
23807
              OPC_CheckOpcode, ISD::Constant,
 
23808
              OPC_MoveParent,
 
23809
              OPC_CheckPatternPredicate, 3,
 
23810
              OPC_EmitConvertToTarget, 1,
 
23811
              OPC_EmitInteger, MVT::i32, 14, 
 
23812
              OPC_EmitRegister, MVT::i32, 0 ,
 
23813
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs16), 0,
 
23814
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
23815
            44, 
 
23816
              OPC_CheckChild0Type, MVT::v16i8,
 
23817
              OPC_RecordChild1,
 
23818
              OPC_MoveChild, 1,
 
23819
              OPC_CheckOpcode, ISD::Constant,
 
23820
              OPC_MoveParent,
 
23821
              OPC_EmitConvertToTarget, 1,
 
23822
              OPC_EmitNodeXForm, 18, 2,
 
23823
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23824
                  1, MVT::v8i8, 2, 0, 3, 
 
23825
              OPC_EmitConvertToTarget, 1,
 
23826
              OPC_EmitNodeXForm, 19, 5,
 
23827
              OPC_EmitInteger, MVT::i32, 14, 
 
23828
              OPC_EmitRegister, MVT::i32, 0 ,
 
23829
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs8), 0,
 
23830
                  1, MVT::i32, 4, 4, 6, 7, 8, 
 
23831
            44, 
 
23832
              OPC_CheckChild0Type, MVT::v8i16,
 
23833
              OPC_RecordChild1,
 
23834
              OPC_MoveChild, 1,
 
23835
              OPC_CheckOpcode, ISD::Constant,
 
23836
              OPC_MoveParent,
 
23837
              OPC_EmitConvertToTarget, 1,
 
23838
              OPC_EmitNodeXForm, 6, 2,
 
23839
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23840
                  1, MVT::v4i16, 2, 0, 3, 
 
23841
              OPC_EmitConvertToTarget, 1,
 
23842
              OPC_EmitNodeXForm, 7, 5,
 
23843
              OPC_EmitInteger, MVT::i32, 14, 
 
23844
              OPC_EmitRegister, MVT::i32, 0 ,
 
23845
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNs16), 0,
 
23846
                  1, MVT::i32, 4, 4, 6, 7, 8, 
 
23847
            0, 
 
23848
          25|128,1,  ARMISD::VGETLANEu,
 
23849
            OPC_RecordChild0,
 
23850
            OPC_Scope, 29, 
 
23851
              OPC_CheckChild0Type, MVT::v8i8,
 
23852
              OPC_RecordChild1,
 
23853
              OPC_MoveChild, 1,
 
23854
              OPC_CheckOpcode, ISD::Constant,
 
23855
              OPC_MoveParent,
 
23856
              OPC_CheckPatternPredicate, 3,
 
23857
              OPC_EmitConvertToTarget, 1,
 
23858
              OPC_EmitInteger, MVT::i32, 14, 
 
23859
              OPC_EmitRegister, MVT::i32, 0 ,
 
23860
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu8), 0,
 
23861
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
23862
            29, 
 
23863
              OPC_CheckChild0Type, MVT::v4i16,
 
23864
              OPC_RecordChild1,
 
23865
              OPC_MoveChild, 1,
 
23866
              OPC_CheckOpcode, ISD::Constant,
 
23867
              OPC_MoveParent,
 
23868
              OPC_CheckPatternPredicate, 3,
 
23869
              OPC_EmitConvertToTarget, 1,
 
23870
              OPC_EmitInteger, MVT::i32, 14, 
 
23871
              OPC_EmitRegister, MVT::i32, 0 ,
 
23872
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu16), 0,
 
23873
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
23874
            44, 
 
23875
              OPC_CheckChild0Type, MVT::v16i8,
 
23876
              OPC_RecordChild1,
 
23877
              OPC_MoveChild, 1,
 
23878
              OPC_CheckOpcode, ISD::Constant,
 
23879
              OPC_MoveParent,
 
23880
              OPC_EmitConvertToTarget, 1,
 
23881
              OPC_EmitNodeXForm, 18, 2,
 
23882
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23883
                  1, MVT::v8i8, 2, 0, 3, 
 
23884
              OPC_EmitConvertToTarget, 1,
 
23885
              OPC_EmitNodeXForm, 19, 5,
 
23886
              OPC_EmitInteger, MVT::i32, 14, 
 
23887
              OPC_EmitRegister, MVT::i32, 0 ,
 
23888
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu8), 0,
 
23889
                  1, MVT::i32, 4, 4, 6, 7, 8, 
 
23890
            44, 
 
23891
              OPC_CheckChild0Type, MVT::v8i16,
 
23892
              OPC_RecordChild1,
 
23893
              OPC_MoveChild, 1,
 
23894
              OPC_CheckOpcode, ISD::Constant,
 
23895
              OPC_MoveParent,
 
23896
              OPC_EmitConvertToTarget, 1,
 
23897
              OPC_EmitNodeXForm, 6, 2,
 
23898
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23899
                  1, MVT::v4i16, 2, 0, 3, 
 
23900
              OPC_EmitConvertToTarget, 1,
 
23901
              OPC_EmitNodeXForm, 7, 5,
 
23902
              OPC_EmitInteger, MVT::i32, 14, 
 
23903
              OPC_EmitRegister, MVT::i32, 0 ,
 
23904
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNu16), 0,
 
23905
                  1, MVT::i32, 4, 4, 6, 7, 8, 
 
23906
            0, 
 
23907
          53|128,1,  ISD::EXTRACT_VECTOR_ELT,
 
23908
            OPC_RecordChild0,
 
23909
            OPC_Scope, 31, 
 
23910
              OPC_CheckChild0Type, MVT::v2i32,
 
23911
              OPC_RecordChild1,
 
23912
              OPC_MoveChild, 1,
 
23913
              OPC_CheckOpcode, ISD::Constant,
 
23914
              OPC_MoveParent,
 
23915
              OPC_CheckType, MVT::i32,
 
23916
              OPC_CheckPatternPredicate, 3,
 
23917
              OPC_EmitConvertToTarget, 1,
 
23918
              OPC_EmitInteger, MVT::i32, 14, 
 
23919
              OPC_EmitRegister, MVT::i32, 0 ,
 
23920
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNi32), 0,
 
23921
                  1, MVT::i32, 4, 0, 2, 3, 4, 
 
23922
            24, 
 
23923
              OPC_CheckChild0Type, MVT::v2f64,
 
23924
              OPC_RecordChild1,
 
23925
              OPC_MoveChild, 1,
 
23926
              OPC_CheckOpcode, ISD::Constant,
 
23927
              OPC_MoveParent,
 
23928
              OPC_CheckType, MVT::f64,
 
23929
              OPC_EmitConvertToTarget, 1,
 
23930
              OPC_EmitNodeXForm, 20, 2,
 
23931
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23932
                  1, MVT::f64, 2, 0, 3, 
 
23933
            46, 
 
23934
              OPC_CheckChild0Type, MVT::v4i32,
 
23935
              OPC_RecordChild1,
 
23936
              OPC_MoveChild, 1,
 
23937
              OPC_CheckOpcode, ISD::Constant,
 
23938
              OPC_MoveParent,
 
23939
              OPC_CheckType, MVT::i32,
 
23940
              OPC_EmitConvertToTarget, 1,
 
23941
              OPC_EmitNodeXForm, 8, 2,
 
23942
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23943
                  1, MVT::v2i32, 2, 0, 3, 
 
23944
              OPC_EmitConvertToTarget, 1,
 
23945
              OPC_EmitNodeXForm, 9, 5,
 
23946
              OPC_EmitInteger, MVT::i32, 14, 
 
23947
              OPC_EmitRegister, MVT::i32, 0 ,
 
23948
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VGETLNi32), 0,
 
23949
                  1, MVT::i32, 4, 4, 6, 7, 8, 
 
23950
            36, 
 
23951
              OPC_CheckChild0Type, MVT::v2f32,
 
23952
              OPC_RecordChild1,
 
23953
              OPC_MoveChild, 1,
 
23954
              OPC_CheckOpcode, ISD::Constant,
 
23955
              OPC_MoveParent,
 
23956
              OPC_CheckType, MVT::f32,
 
23957
              OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
 
23958
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
 
23959
                  1, MVT::v2f32, 2, 0, 2, 
 
23960
              OPC_EmitConvertToTarget, 1,
 
23961
              OPC_EmitNodeXForm, 21, 4,
 
23962
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23963
                  1, MVT::f32, 2, 3, 5, 
 
23964
            36, 
 
23965
              OPC_CheckChild0Type, MVT::v4f32,
 
23966
              OPC_RecordChild1,
 
23967
              OPC_MoveChild, 1,
 
23968
              OPC_CheckOpcode, ISD::Constant,
 
23969
              OPC_MoveParent,
 
23970
              OPC_CheckType, MVT::f32,
 
23971
              OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
 
23972
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
 
23973
                  1, MVT::v4f32, 2, 0, 2, 
 
23974
              OPC_EmitConvertToTarget, 1,
 
23975
              OPC_EmitNodeXForm, 21, 4,
 
23976
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
23977
                  1, MVT::f32, 2, 3, 5, 
 
23978
            0, 
 
23979
          95|128,2,  ISD::INSERT_VECTOR_ELT,
 
23980
            OPC_RecordChild0,
 
23981
            OPC_RecordChild1,
 
23982
            OPC_Scope, 58, 
 
23983
              OPC_CheckChild1Type, MVT::i32,
 
23984
              OPC_RecordChild2,
 
23985
              OPC_MoveChild, 2,
 
23986
              OPC_CheckOpcode, ISD::Constant,
 
23987
              OPC_MoveParent,
 
23988
              OPC_SwitchType , 22,  MVT::v8i8,
 
23989
                OPC_CheckPatternPredicate, 3,
 
23990
                OPC_EmitConvertToTarget, 2,
 
23991
                OPC_EmitInteger, MVT::i32, 14, 
 
23992
                OPC_EmitRegister, MVT::i32, 0 ,
 
23993
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi8), 0,
 
23994
                    1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
23995
              22,  MVT::v4i16,
 
23996
                OPC_CheckPatternPredicate, 3,
 
23997
                OPC_EmitConvertToTarget, 2,
 
23998
                OPC_EmitInteger, MVT::i32, 14, 
 
23999
                OPC_EmitRegister, MVT::i32, 0 ,
 
24000
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi16), 0,
 
24001
                    1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
24002
              0, 
 
24003
            107, 
 
24004
              OPC_RecordChild2,
 
24005
              OPC_MoveChild, 2,
 
24006
              OPC_CheckOpcode, ISD::Constant,
 
24007
              OPC_MoveParent,
 
24008
              OPC_SwitchType , 22,  MVT::v2i32,
 
24009
                OPC_CheckPatternPredicate, 3,
 
24010
                OPC_EmitConvertToTarget, 2,
 
24011
                OPC_EmitInteger, MVT::i32, 14, 
 
24012
                OPC_EmitRegister, MVT::i32, 0 ,
 
24013
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi32), 0,
 
24014
                    1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
24015
              15,  MVT::v2f64,
 
24016
                OPC_EmitConvertToTarget, 2,
 
24017
                OPC_EmitNodeXForm, 20, 3,
 
24018
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24019
                    1, MVT::v2f64, 3, 0, 1, 4, 
 
24020
              27,  MVT::v2f32,
 
24021
                OPC_EmitInteger, MVT::i32, ARM::DPR_VFP2RegClassID,
 
24022
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
 
24023
                    1, MVT::v2f32, 2, 0, 3, 
 
24024
                OPC_EmitConvertToTarget, 2,
 
24025
                OPC_EmitNodeXForm, 21, 5,
 
24026
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24027
                    1, MVT::v2f32, 3, 4, 1, 6, 
 
24028
              27,  MVT::v4f32,
 
24029
                OPC_EmitInteger, MVT::i32, ARM::QPR_VFP2RegClassID,
 
24030
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
 
24031
                    1, MVT::v4f32, 2, 0, 3, 
 
24032
                OPC_EmitConvertToTarget, 2,
 
24033
                OPC_EmitNodeXForm, 21, 5,
 
24034
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24035
                    1, MVT::v4f32, 3, 4, 1, 6, 
 
24036
              0, 
 
24037
            118, 
 
24038
              OPC_CheckChild1Type, MVT::i32,
 
24039
              OPC_RecordChild2,
 
24040
              OPC_MoveChild, 2,
 
24041
              OPC_CheckOpcode, ISD::Constant,
 
24042
              OPC_MoveParent,
 
24043
              OPC_SwitchType , 52,  MVT::v16i8,
 
24044
                OPC_EmitConvertToTarget, 2,
 
24045
                OPC_EmitNodeXForm, 18, 3,
 
24046
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24047
                    1, MVT::v8i8, 2, 0, 4, 
 
24048
                OPC_EmitConvertToTarget, 2,
 
24049
                OPC_EmitNodeXForm, 19, 6,
 
24050
                OPC_EmitInteger, MVT::i32, 14, 
 
24051
                OPC_EmitRegister, MVT::i32, 0 ,
 
24052
                OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi8), 0,
 
24053
                    1, MVT::f64, 5, 5, 1, 7, 8, 9, 
 
24054
                OPC_EmitConvertToTarget, 2,
 
24055
                OPC_EmitNodeXForm, 18, 11,
 
24056
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24057
                    1, MVT::v16i8, 3, 0, 10, 12, 
 
24058
              52,  MVT::v8i16,
 
24059
                OPC_EmitConvertToTarget, 2,
 
24060
                OPC_EmitNodeXForm, 6, 3,
 
24061
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24062
                    1, MVT::v4i16, 2, 0, 4, 
 
24063
                OPC_EmitConvertToTarget, 2,
 
24064
                OPC_EmitNodeXForm, 7, 6,
 
24065
                OPC_EmitInteger, MVT::i32, 14, 
 
24066
                OPC_EmitRegister, MVT::i32, 0 ,
 
24067
                OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi16), 0,
 
24068
                    1, MVT::f64, 5, 5, 1, 7, 8, 9, 
 
24069
                OPC_EmitConvertToTarget, 2,
 
24070
                OPC_EmitNodeXForm, 6, 11,
 
24071
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24072
                    1, MVT::v8i16, 3, 0, 10, 12, 
 
24073
              0, 
 
24074
            60, 
 
24075
              OPC_RecordChild2,
 
24076
              OPC_MoveChild, 2,
 
24077
              OPC_CheckOpcode, ISD::Constant,
 
24078
              OPC_MoveParent,
 
24079
              OPC_CheckType, MVT::v4i32,
 
24080
              OPC_EmitConvertToTarget, 2,
 
24081
              OPC_EmitNodeXForm, 8, 3,
 
24082
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24083
                  1, MVT::v2i32, 2, 0, 4, 
 
24084
              OPC_EmitConvertToTarget, 2,
 
24085
              OPC_EmitNodeXForm, 9, 6,
 
24086
              OPC_EmitInteger, MVT::i32, 14, 
 
24087
              OPC_EmitRegister, MVT::i32, 0 ,
 
24088
              OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi32), 0,
 
24089
                  1, MVT::f64, 5, 5, 1, 7, 8, 9, 
 
24090
              OPC_EmitConvertToTarget, 2,
 
24091
              OPC_EmitNodeXForm, 8, 11,
 
24092
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24093
                  1, MVT::v4i32, 3, 0, 10, 12, 
 
24094
            0, 
 
24095
          102|128,1,  ARMISD::VDUP,
 
24096
            OPC_Scope, 52, 
 
24097
              OPC_MoveChild, 0,
 
24098
              OPC_CheckOpcode, ISD::BIT_CONVERT,
 
24099
              OPC_RecordChild0,
 
24100
              OPC_CheckChild0Type, MVT::i32,
 
24101
              OPC_CheckType, MVT::f32,
 
24102
              OPC_MoveParent,
 
24103
              OPC_SwitchType , 18,  MVT::v2f32,
 
24104
                OPC_CheckPatternPredicate, 3,
 
24105
                OPC_EmitInteger, MVT::i32, 14, 
 
24106
                OPC_EmitRegister, MVT::i32, 0 ,
 
24107
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfd), 0,
 
24108
                    1, MVT::v2f32, 3, 0, 1, 2, 
 
24109
              18,  MVT::v4f32,
 
24110
                OPC_CheckPatternPredicate, 3,
 
24111
                OPC_EmitInteger, MVT::i32, 14, 
 
24112
                OPC_EmitRegister, MVT::i32, 0 ,
 
24113
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfq), 0,
 
24114
                    1, MVT::v4f32, 3, 0, 1, 2, 
 
24115
              0, 
 
24116
            45|128,1, 
 
24117
              OPC_RecordChild0,
 
24118
              OPC_Scope, 124, 
 
24119
                OPC_CheckChild0Type, MVT::i32,
 
24120
                OPC_SwitchType , 18,  MVT::v8i8,
 
24121
                  OPC_CheckPatternPredicate, 3,
 
24122
                  OPC_EmitInteger, MVT::i32, 14, 
 
24123
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24124
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP8d), 0,
 
24125
                      1, MVT::v8i8, 3, 0, 1, 2, 
 
24126
                18,  MVT::v4i16,
 
24127
                  OPC_CheckPatternPredicate, 3,
 
24128
                  OPC_EmitInteger, MVT::i32, 14, 
 
24129
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24130
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP16d), 0,
 
24131
                      1, MVT::v4i16, 3, 0, 1, 2, 
 
24132
                18,  MVT::v2i32,
 
24133
                  OPC_CheckPatternPredicate, 3,
 
24134
                  OPC_EmitInteger, MVT::i32, 14, 
 
24135
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24136
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP32d), 0,
 
24137
                      1, MVT::v2i32, 3, 0, 1, 2, 
 
24138
                18,  MVT::v16i8,
 
24139
                  OPC_CheckPatternPredicate, 3,
 
24140
                  OPC_EmitInteger, MVT::i32, 14, 
 
24141
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24142
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP8q), 0,
 
24143
                      1, MVT::v16i8, 3, 0, 1, 2, 
 
24144
                18,  MVT::v8i16,
 
24145
                  OPC_CheckPatternPredicate, 3,
 
24146
                  OPC_EmitInteger, MVT::i32, 14, 
 
24147
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24148
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP16q), 0,
 
24149
                      1, MVT::v8i16, 3, 0, 1, 2, 
 
24150
                18,  MVT::v4i32,
 
24151
                  OPC_CheckPatternPredicate, 3,
 
24152
                  OPC_EmitInteger, MVT::i32, 14, 
 
24153
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24154
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUP32q), 0,
 
24155
                      1, MVT::v4i32, 3, 0, 1, 2, 
 
24156
                0, 
 
24157
              44, 
 
24158
                OPC_CheckChild0Type, MVT::f32,
 
24159
                OPC_SwitchType , 18,  MVT::v2f32,
 
24160
                  OPC_CheckPatternPredicate, 3,
 
24161
                  OPC_EmitInteger, MVT::i32, 14, 
 
24162
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24163
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfdf), 0,
 
24164
                      1, MVT::v2f32, 3, 0, 1, 2, 
 
24165
                18,  MVT::v4f32,
 
24166
                  OPC_CheckPatternPredicate, 3,
 
24167
                  OPC_EmitInteger, MVT::i32, 14, 
 
24168
                  OPC_EmitRegister, MVT::i32, 0 ,
 
24169
                  OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPfqf), 0,
 
24170
                      1, MVT::v4f32, 3, 0, 1, 2, 
 
24171
                0, 
 
24172
              0, 
 
24173
            0, 
 
24174
          115|128,3,  ARMISD::VDUPLANE,
 
24175
            OPC_RecordChild0,
 
24176
            OPC_Scope, 56, 
 
24177
              OPC_CheckChild0Type, MVT::v8i8,
 
24178
              OPC_RecordChild1,
 
24179
              OPC_MoveChild, 1,
 
24180
              OPC_CheckOpcode, ISD::Constant,
 
24181
              OPC_MoveParent,
 
24182
              OPC_SwitchType , 21,  MVT::v8i8,
 
24183
                OPC_CheckPatternPredicate, 3,
 
24184
                OPC_EmitConvertToTarget, 1,
 
24185
                OPC_EmitInteger, MVT::i32, 14, 
 
24186
                OPC_EmitRegister, MVT::i32, 0 ,
 
24187
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN8d), 0,
 
24188
                    1, MVT::v8i8, 4, 0, 2, 3, 4, 
 
24189
              21,  MVT::v16i8,
 
24190
                OPC_CheckPatternPredicate, 3,
 
24191
                OPC_EmitConvertToTarget, 1,
 
24192
                OPC_EmitInteger, MVT::i32, 14, 
 
24193
                OPC_EmitRegister, MVT::i32, 0 ,
 
24194
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN8q), 0,
 
24195
                    1, MVT::v16i8, 4, 0, 2, 3, 4, 
 
24196
              0, 
 
24197
            56, 
 
24198
              OPC_CheckChild0Type, MVT::v4i16,
 
24199
              OPC_RecordChild1,
 
24200
              OPC_MoveChild, 1,
 
24201
              OPC_CheckOpcode, ISD::Constant,
 
24202
              OPC_MoveParent,
 
24203
              OPC_SwitchType , 21,  MVT::v4i16,
 
24204
                OPC_CheckPatternPredicate, 3,
 
24205
                OPC_EmitConvertToTarget, 1,
 
24206
                OPC_EmitInteger, MVT::i32, 14, 
 
24207
                OPC_EmitRegister, MVT::i32, 0 ,
 
24208
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN16d), 0,
 
24209
                    1, MVT::v4i16, 4, 0, 2, 3, 4, 
 
24210
              21,  MVT::v8i16,
 
24211
                OPC_CheckPatternPredicate, 3,
 
24212
                OPC_EmitConvertToTarget, 1,
 
24213
                OPC_EmitInteger, MVT::i32, 14, 
 
24214
                OPC_EmitRegister, MVT::i32, 0 ,
 
24215
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN16q), 0,
 
24216
                    1, MVT::v8i16, 4, 0, 2, 3, 4, 
 
24217
              0, 
 
24218
            56, 
 
24219
              OPC_CheckChild0Type, MVT::v2i32,
 
24220
              OPC_RecordChild1,
 
24221
              OPC_MoveChild, 1,
 
24222
              OPC_CheckOpcode, ISD::Constant,
 
24223
              OPC_MoveParent,
 
24224
              OPC_SwitchType , 21,  MVT::v2i32,
 
24225
                OPC_CheckPatternPredicate, 3,
 
24226
                OPC_EmitConvertToTarget, 1,
 
24227
                OPC_EmitInteger, MVT::i32, 14, 
 
24228
                OPC_EmitRegister, MVT::i32, 0 ,
 
24229
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN32d), 0,
 
24230
                    1, MVT::v2i32, 4, 0, 2, 3, 4, 
 
24231
              21,  MVT::v4i32,
 
24232
                OPC_CheckPatternPredicate, 3,
 
24233
                OPC_EmitConvertToTarget, 1,
 
24234
                OPC_EmitInteger, MVT::i32, 14, 
 
24235
                OPC_EmitRegister, MVT::i32, 0 ,
 
24236
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN32q), 0,
 
24237
                    1, MVT::v4i32, 4, 0, 2, 3, 4, 
 
24238
              0, 
 
24239
            56, 
 
24240
              OPC_CheckChild0Type, MVT::v2f32,
 
24241
              OPC_RecordChild1,
 
24242
              OPC_MoveChild, 1,
 
24243
              OPC_CheckOpcode, ISD::Constant,
 
24244
              OPC_MoveParent,
 
24245
              OPC_SwitchType , 21,  MVT::v2f32,
 
24246
                OPC_CheckPatternPredicate, 3,
 
24247
                OPC_EmitConvertToTarget, 1,
 
24248
                OPC_EmitInteger, MVT::i32, 14, 
 
24249
                OPC_EmitRegister, MVT::i32, 0 ,
 
24250
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLNfd), 0,
 
24251
                    1, MVT::v2f32, 4, 0, 2, 3, 4, 
 
24252
              21,  MVT::v4f32,
 
24253
                OPC_CheckPatternPredicate, 3,
 
24254
                OPC_EmitConvertToTarget, 1,
 
24255
                OPC_EmitInteger, MVT::i32, 14, 
 
24256
                OPC_EmitRegister, MVT::i32, 0 ,
 
24257
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLNfq), 0,
 
24258
                    1, MVT::v4f32, 4, 0, 2, 3, 4, 
 
24259
              0, 
 
24260
            46, 
 
24261
              OPC_CheckChild0Type, MVT::v16i8,
 
24262
              OPC_RecordChild1,
 
24263
              OPC_MoveChild, 1,
 
24264
              OPC_CheckOpcode, ISD::Constant,
 
24265
              OPC_MoveParent,
 
24266
              OPC_CheckType, MVT::v16i8,
 
24267
              OPC_EmitConvertToTarget, 1,
 
24268
              OPC_EmitNodeXForm, 18, 2,
 
24269
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24270
                  1, MVT::v8i8, 2, 0, 3, 
 
24271
              OPC_EmitConvertToTarget, 1,
 
24272
              OPC_EmitNodeXForm, 19, 5,
 
24273
              OPC_EmitInteger, MVT::i32, 14, 
 
24274
              OPC_EmitRegister, MVT::i32, 0 ,
 
24275
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN8q), 0,
 
24276
                  1, MVT::v16i8, 4, 4, 6, 7, 8, 
 
24277
            46, 
 
24278
              OPC_CheckChild0Type, MVT::v8i16,
 
24279
              OPC_RecordChild1,
 
24280
              OPC_MoveChild, 1,
 
24281
              OPC_CheckOpcode, ISD::Constant,
 
24282
              OPC_MoveParent,
 
24283
              OPC_CheckType, MVT::v8i16,
 
24284
              OPC_EmitConvertToTarget, 1,
 
24285
              OPC_EmitNodeXForm, 6, 2,
 
24286
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24287
                  1, MVT::v4i16, 2, 0, 3, 
 
24288
              OPC_EmitConvertToTarget, 1,
 
24289
              OPC_EmitNodeXForm, 7, 5,
 
24290
              OPC_EmitInteger, MVT::i32, 14, 
 
24291
              OPC_EmitRegister, MVT::i32, 0 ,
 
24292
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN16q), 0,
 
24293
                  1, MVT::v8i16, 4, 4, 6, 7, 8, 
 
24294
            46, 
 
24295
              OPC_CheckChild0Type, MVT::v4i32,
 
24296
              OPC_RecordChild1,
 
24297
              OPC_MoveChild, 1,
 
24298
              OPC_CheckOpcode, ISD::Constant,
 
24299
              OPC_MoveParent,
 
24300
              OPC_CheckType, MVT::v4i32,
 
24301
              OPC_EmitConvertToTarget, 1,
 
24302
              OPC_EmitNodeXForm, 8, 2,
 
24303
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24304
                  1, MVT::v2i32, 2, 0, 3, 
 
24305
              OPC_EmitConvertToTarget, 1,
 
24306
              OPC_EmitNodeXForm, 9, 5,
 
24307
              OPC_EmitInteger, MVT::i32, 14, 
 
24308
              OPC_EmitRegister, MVT::i32, 0 ,
 
24309
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLN32q), 0,
 
24310
                  1, MVT::v4i32, 4, 4, 6, 7, 8, 
 
24311
            46, 
 
24312
              OPC_CheckChild0Type, MVT::v4f32,
 
24313
              OPC_RecordChild1,
 
24314
              OPC_MoveChild, 1,
 
24315
              OPC_CheckOpcode, ISD::Constant,
 
24316
              OPC_MoveParent,
 
24317
              OPC_CheckType, MVT::v4f32,
 
24318
              OPC_EmitConvertToTarget, 1,
 
24319
              OPC_EmitNodeXForm, 8, 2,
 
24320
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24321
                  1, MVT::v2f32, 2, 0, 3, 
 
24322
              OPC_EmitConvertToTarget, 1,
 
24323
              OPC_EmitNodeXForm, 9, 5,
 
24324
              OPC_EmitInteger, MVT::i32, 14, 
 
24325
              OPC_EmitRegister, MVT::i32, 0 ,
 
24326
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDUPLNfq), 0,
 
24327
                  1, MVT::v4f32, 4, 4, 6, 7, 8, 
 
24328
            39, 
 
24329
              OPC_CheckChild0Type, MVT::v2i64,
 
24330
              OPC_RecordChild1,
 
24331
              OPC_MoveChild, 1,
 
24332
              OPC_CheckOpcode, ISD::Constant,
 
24333
              OPC_MoveParent,
 
24334
              OPC_CheckType, MVT::v2i64,
 
24335
              OPC_EmitConvertToTarget, 1,
 
24336
              OPC_EmitNodeXForm, 20, 2,
 
24337
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24338
                  1, MVT::i64, 2, 0, 3, 
 
24339
              OPC_EmitConvertToTarget, 1,
 
24340
              OPC_EmitNodeXForm, 22, 5,
 
24341
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24342
                  1, MVT::v2i64, 3, 0, 4, 6, 
 
24343
            39, 
 
24344
              OPC_CheckChild0Type, MVT::v2f64,
 
24345
              OPC_RecordChild1,
 
24346
              OPC_MoveChild, 1,
 
24347
              OPC_CheckOpcode, ISD::Constant,
 
24348
              OPC_MoveParent,
 
24349
              OPC_CheckType, MVT::v2f64,
 
24350
              OPC_EmitConvertToTarget, 1,
 
24351
              OPC_EmitNodeXForm, 20, 2,
 
24352
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
24353
                  1, MVT::f64, 2, 0, 3, 
 
24354
              OPC_EmitConvertToTarget, 1,
 
24355
              OPC_EmitNodeXForm, 22, 5,
 
24356
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
24357
                  1, MVT::v2f64, 3, 0, 4, 6, 
 
24358
            0, 
 
24359
          74|128,1,  ARMISD::VEXT,
 
24360
            OPC_RecordChild0,
 
24361
            OPC_RecordChild1,
 
24362
            OPC_RecordChild2,
 
24363
            OPC_MoveChild, 2,
 
24364
            OPC_CheckOpcode, ISD::Constant,
 
24365
            OPC_MoveParent,
 
24366
            OPC_SwitchType , 22,  MVT::v8i8,
 
24367
              OPC_CheckPatternPredicate, 3,
 
24368
              OPC_EmitConvertToTarget, 2,
 
24369
              OPC_EmitInteger, MVT::i32, 14, 
 
24370
              OPC_EmitRegister, MVT::i32, 0 ,
 
24371
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTd8), 0,
 
24372
                  1, MVT::v8i8, 5, 0, 1, 3, 4, 5, 
 
24373
            22,  MVT::v4i16,
 
24374
              OPC_CheckPatternPredicate, 3,
 
24375
              OPC_EmitConvertToTarget, 2,
 
24376
              OPC_EmitInteger, MVT::i32, 14, 
 
24377
              OPC_EmitRegister, MVT::i32, 0 ,
 
24378
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTd16), 0,
 
24379
                  1, MVT::v4i16, 5, 0, 1, 3, 4, 5, 
 
24380
            22,  MVT::v2i32,
 
24381
              OPC_CheckPatternPredicate, 3,
 
24382
              OPC_EmitConvertToTarget, 2,
 
24383
              OPC_EmitInteger, MVT::i32, 14, 
 
24384
              OPC_EmitRegister, MVT::i32, 0 ,
 
24385
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTd32), 0,
 
24386
                  1, MVT::v2i32, 5, 0, 1, 3, 4, 5, 
 
24387
            22,  MVT::v2f32,
 
24388
              OPC_CheckPatternPredicate, 3,
 
24389
              OPC_EmitConvertToTarget, 2,
 
24390
              OPC_EmitInteger, MVT::i32, 14, 
 
24391
              OPC_EmitRegister, MVT::i32, 0 ,
 
24392
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTdf), 0,
 
24393
                  1, MVT::v2f32, 5, 0, 1, 3, 4, 5, 
 
24394
            22,  MVT::v16i8,
 
24395
              OPC_CheckPatternPredicate, 3,
 
24396
              OPC_EmitConvertToTarget, 2,
 
24397
              OPC_EmitInteger, MVT::i32, 14, 
 
24398
              OPC_EmitRegister, MVT::i32, 0 ,
 
24399
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTq8), 0,
 
24400
                  1, MVT::v16i8, 5, 0, 1, 3, 4, 5, 
 
24401
            22,  MVT::v8i16,
 
24402
              OPC_CheckPatternPredicate, 3,
 
24403
              OPC_EmitConvertToTarget, 2,
 
24404
              OPC_EmitInteger, MVT::i32, 14, 
 
24405
              OPC_EmitRegister, MVT::i32, 0 ,
 
24406
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTq16), 0,
 
24407
                  1, MVT::v8i16, 5, 0, 1, 3, 4, 5, 
 
24408
            22,  MVT::v4i32,
 
24409
              OPC_CheckPatternPredicate, 3,
 
24410
              OPC_EmitConvertToTarget, 2,
 
24411
              OPC_EmitInteger, MVT::i32, 14, 
 
24412
              OPC_EmitRegister, MVT::i32, 0 ,
 
24413
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTq32), 0,
 
24414
                  1, MVT::v4i32, 5, 0, 1, 3, 4, 5, 
 
24415
            22,  MVT::v4f32,
 
24416
              OPC_CheckPatternPredicate, 3,
 
24417
              OPC_EmitConvertToTarget, 2,
 
24418
              OPC_EmitInteger, MVT::i32, 14, 
 
24419
              OPC_EmitRegister, MVT::i32, 0 ,
 
24420
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VEXTqf), 0,
 
24421
                  1, MVT::v4f32, 5, 0, 1, 3, 4, 5, 
 
24422
            0, 
 
24423
          2|128,3,  ISD::Constant,
 
24424
            OPC_RecordNode,
 
24425
            OPC_Scope, 28, 
 
24426
              OPC_CheckPredicate, 4,
 
24427
              OPC_CheckType, MVT::i32,
 
24428
              OPC_CheckPatternPredicate, 2,
 
24429
              OPC_EmitConvertToTarget, 0,
 
24430
              OPC_EmitInteger, MVT::i32, 14, 
 
24431
              OPC_EmitRegister, MVT::i32, 0 ,
 
24432
              OPC_EmitRegister, MVT::i32, 0 ,
 
24433
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi), 0,
 
24434
                  1, MVT::i32, 4, 1, 2, 3, 4, 
 
24435
            28, 
 
24436
              OPC_CheckPredicate, 5,
 
24437
              OPC_CheckType, MVT::i32,
 
24438
              OPC_CheckPatternPredicate, 5,
 
24439
              OPC_EmitConvertToTarget, 0,
 
24440
              OPC_EmitInteger, MVT::i32, 14, 
 
24441
              OPC_EmitRegister, MVT::i32, 0 ,
 
24442
              OPC_EmitRegister, MVT::i32, 0 ,
 
24443
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi), 0,
 
24444
                  1, MVT::i32, 4, 1, 2, 3, 4, 
 
24445
            24, 
 
24446
              OPC_CheckPredicate, 61,
 
24447
              OPC_CheckType, MVT::i32,
 
24448
              OPC_CheckPatternPredicate, 4,
 
24449
              OPC_EmitConvertToTarget, 0,
 
24450
              OPC_EmitInteger, MVT::i32, 14, 
 
24451
              OPC_EmitRegister, MVT::i32, 0 ,
 
24452
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi16), 0,
 
24453
                  1, MVT::i32, 3, 1, 2, 3, 
 
24454
            31, 
 
24455
              OPC_CheckPredicate, 23,
 
24456
              OPC_CheckType, MVT::i32,
 
24457
              OPC_CheckPatternPredicate, 5,
 
24458
              OPC_EmitConvertToTarget, 0,
 
24459
              OPC_EmitNodeXForm, 17, 1,
 
24460
              OPC_EmitInteger, MVT::i32, 14, 
 
24461
              OPC_EmitRegister, MVT::i32, 0 ,
 
24462
              OPC_EmitRegister, MVT::i32, 0 ,
 
24463
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MVNi), 0,
 
24464
                  1, MVT::i32, 4, 2, 3, 4, 5, 
 
24465
            24, 
 
24466
              OPC_CheckPredicate, 7,
 
24467
              OPC_CheckType, MVT::i32,
 
24468
              OPC_CheckPatternPredicate, 26,
 
24469
              OPC_EmitConvertToTarget, 0,
 
24470
              OPC_EmitInteger, MVT::i32, 14, 
 
24471
              OPC_EmitRegister, MVT::i32, 0 ,
 
24472
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi2pieces), 0,
 
24473
                  1, MVT::i32, 3, 1, 2, 3, 
 
24474
            28, 
 
24475
              OPC_CheckPredicate, 53,
 
24476
              OPC_CheckType, MVT::i32,
 
24477
              OPC_CheckPatternPredicate, 6,
 
24478
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
24479
              OPC_EmitConvertToTarget, 0,
 
24480
              OPC_EmitInteger, MVT::i32, 14, 
 
24481
              OPC_EmitRegister, MVT::i32, 0 ,
 
24482
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMOVi8), 0,
 
24483
                  1, MVT::i32, 4, 1, 2, 3, 4, 
 
24484
            24, 
 
24485
              OPC_CheckPredicate, 61,
 
24486
              OPC_CheckType, MVT::i32,
 
24487
              OPC_CheckPatternPredicate, 2,
 
24488
              OPC_EmitConvertToTarget, 0,
 
24489
              OPC_EmitInteger, MVT::i32, 14, 
 
24490
              OPC_EmitRegister, MVT::i32, 0 ,
 
24491
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi16), 0,
 
24492
                  1, MVT::i32, 3, 1, 2, 3, 
 
24493
            31, 
 
24494
              OPC_CheckPredicate, 6,
 
24495
              OPC_CheckType, MVT::i32,
 
24496
              OPC_CheckPatternPredicate, 2,
 
24497
              OPC_EmitConvertToTarget, 0,
 
24498
              OPC_EmitNodeXForm, 1, 1,
 
24499
              OPC_EmitInteger, MVT::i32, 14, 
 
24500
              OPC_EmitRegister, MVT::i32, 0 ,
 
24501
              OPC_EmitRegister, MVT::i32, 0 ,
 
24502
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MVNi), 0,
 
24503
                  1, MVT::i32, 4, 2, 3, 4, 5, 
 
24504
            57, 
 
24505
              OPC_CheckPredicate, 62,
 
24506
              OPC_CheckType, MVT::i32,
 
24507
              OPC_CheckPatternPredicate, 6,
 
24508
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
24509
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
24510
              OPC_EmitConvertToTarget, 0,
 
24511
              OPC_EmitNodeXForm, 23, 3,
 
24512
              OPC_EmitInteger, MVT::i32, 14, 
 
24513
              OPC_EmitRegister, MVT::i32, 0 ,
 
24514
              OPC_EmitNode, TARGET_OPCODE(ARM::tMOVi8), 0,
 
24515
                  1, MVT::i32, 4, 2, 4, 5, 6, 
 
24516
              OPC_EmitConvertToTarget, 0,
 
24517
              OPC_EmitNodeXForm, 24, 8,
 
24518
              OPC_EmitInteger, MVT::i32, 14, 
 
24519
              OPC_EmitRegister, MVT::i32, 0 ,
 
24520
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tLSLri), 0,
 
24521
                  1, MVT::i32, 5, 1, 7, 9, 10, 11, 
 
24522
            51, 
 
24523
              OPC_CheckPredicate, 63,
 
24524
              OPC_CheckType, MVT::i32,
 
24525
              OPC_CheckPatternPredicate, 6,
 
24526
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
24527
              OPC_EmitRegister, MVT::i32, ARM::CPSR,
 
24528
              OPC_EmitConvertToTarget, 0,
 
24529
              OPC_EmitNodeXForm, 25, 3,
 
24530
              OPC_EmitInteger, MVT::i32, 14, 
 
24531
              OPC_EmitRegister, MVT::i32, 0 ,
 
24532
              OPC_EmitNode, TARGET_OPCODE(ARM::tMOVi8), 0,
 
24533
                  1, MVT::i32, 4, 2, 4, 5, 6, 
 
24534
              OPC_EmitInteger, MVT::i32, 14, 
 
24535
              OPC_EmitRegister, MVT::i32, 0 ,
 
24536
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tMVN), 0,
 
24537
                  1, MVT::i32, 4, 1, 7, 8, 9, 
 
24538
            46, 
 
24539
              OPC_CheckType, MVT::i32,
 
24540
              OPC_Scope, 20, 
 
24541
                OPC_CheckPatternPredicate, 4,
 
24542
                OPC_EmitConvertToTarget, 0,
 
24543
                OPC_EmitInteger, MVT::i32, 14, 
 
24544
                OPC_EmitRegister, MVT::i32, 0 ,
 
24545
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVi32imm), 0,
 
24546
                    1, MVT::i32, 3, 1, 2, 3, 
 
24547
              20, 
 
24548
                OPC_CheckPatternPredicate, 2,
 
24549
                OPC_EmitConvertToTarget, 0,
 
24550
                OPC_EmitInteger, MVT::i32, 14, 
 
24551
                OPC_EmitRegister, MVT::i32, 0 ,
 
24552
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVi32imm), 0,
 
24553
                    1, MVT::i32, 3, 1, 2, 3, 
 
24554
              0, 
 
24555
            0, 
 
24556
          53,  ISD::ConstantFP,
 
24557
            OPC_RecordNode,
 
24558
            OPC_Scope, 24, 
 
24559
              OPC_CheckPredicate, 64,
 
24560
              OPC_CheckType, MVT::f64,
 
24561
              OPC_CheckPatternPredicate, 27,
 
24562
              OPC_EmitConvertToTarget, 0,
 
24563
              OPC_EmitInteger, MVT::i32, 14, 
 
24564
              OPC_EmitRegister, MVT::i32, 0 ,
 
24565
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::FCONSTD), 0,
 
24566
                  1, MVT::f64, 3, 1, 2, 3, 
 
24567
            24, 
 
24568
              OPC_CheckPredicate, 65,
 
24569
              OPC_CheckType, MVT::f32,
 
24570
              OPC_CheckPatternPredicate, 27,
 
24571
              OPC_EmitConvertToTarget, 0,
 
24572
              OPC_EmitInteger, MVT::i32, 14, 
 
24573
              OPC_EmitRegister, MVT::i32, 0 ,
 
24574
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::FCONSTS), 0,
 
24575
                  1, MVT::f32, 3, 1, 2, 3, 
 
24576
            0, 
 
24577
          79|128,1,  ISD::BUILD_VECTOR,
 
24578
            OPC_RecordNode,
 
24579
            OPC_Scope, 50, 
 
24580
              OPC_CheckPredicate, 66,
 
24581
              OPC_SwitchType , 21,  MVT::v8i8,
 
24582
                OPC_CheckPatternPredicate, 3,
 
24583
                OPC_EmitNodeXForm, 26, 0,
 
24584
                OPC_EmitInteger, MVT::i32, 14, 
 
24585
                OPC_EmitRegister, MVT::i32, 0 ,
 
24586
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv8i8), 0,
 
24587
                    1, MVT::v8i8, 3, 1, 2, 3, 
 
24588
              21,  MVT::v16i8,
 
24589
                OPC_CheckPatternPredicate, 3,
 
24590
                OPC_EmitNodeXForm, 26, 0,
 
24591
                OPC_EmitInteger, MVT::i32, 14, 
 
24592
                OPC_EmitRegister, MVT::i32, 0 ,
 
24593
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv16i8), 0,
 
24594
                    1, MVT::v16i8, 3, 1, 2, 3, 
 
24595
              0, 
 
24596
            50, 
 
24597
              OPC_CheckPredicate, 67,
 
24598
              OPC_SwitchType , 21,  MVT::v4i16,
 
24599
                OPC_CheckPatternPredicate, 3,
 
24600
                OPC_EmitNodeXForm, 27, 0,
 
24601
                OPC_EmitInteger, MVT::i32, 14, 
 
24602
                OPC_EmitRegister, MVT::i32, 0 ,
 
24603
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv4i16), 0,
 
24604
                    1, MVT::v4i16, 3, 1, 2, 3, 
 
24605
              21,  MVT::v8i16,
 
24606
                OPC_CheckPatternPredicate, 3,
 
24607
                OPC_EmitNodeXForm, 27, 0,
 
24608
                OPC_EmitInteger, MVT::i32, 14, 
 
24609
                OPC_EmitRegister, MVT::i32, 0 ,
 
24610
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv8i16), 0,
 
24611
                    1, MVT::v8i16, 3, 1, 2, 3, 
 
24612
              0, 
 
24613
            50, 
 
24614
              OPC_CheckPredicate, 68,
 
24615
              OPC_SwitchType , 21,  MVT::v2i32,
 
24616
                OPC_CheckPatternPredicate, 3,
 
24617
                OPC_EmitNodeXForm, 28, 0,
 
24618
                OPC_EmitInteger, MVT::i32, 14, 
 
24619
                OPC_EmitRegister, MVT::i32, 0 ,
 
24620
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv2i32), 0,
 
24621
                    1, MVT::v2i32, 3, 1, 2, 3, 
 
24622
              21,  MVT::v4i32,
 
24623
                OPC_CheckPatternPredicate, 3,
 
24624
                OPC_EmitNodeXForm, 28, 0,
 
24625
                OPC_EmitInteger, MVT::i32, 14, 
 
24626
                OPC_EmitRegister, MVT::i32, 0 ,
 
24627
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv4i32), 0,
 
24628
                    1, MVT::v4i32, 3, 1, 2, 3, 
 
24629
              0, 
 
24630
            50, 
 
24631
              OPC_CheckPredicate, 69,
 
24632
              OPC_SwitchType , 21,  MVT::v1i64,
 
24633
                OPC_CheckPatternPredicate, 3,
 
24634
                OPC_EmitNodeXForm, 29, 0,
 
24635
                OPC_EmitInteger, MVT::i32, 14, 
 
24636
                OPC_EmitRegister, MVT::i32, 0 ,
 
24637
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv1i64), 0,
 
24638
                    1, MVT::v1i64, 3, 1, 2, 3, 
 
24639
              21,  MVT::v2i64,
 
24640
                OPC_CheckPatternPredicate, 3,
 
24641
                OPC_EmitNodeXForm, 29, 0,
 
24642
                OPC_EmitInteger, MVT::i32, 14, 
 
24643
                OPC_EmitRegister, MVT::i32, 0 ,
 
24644
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVv2i64), 0,
 
24645
                    1, MVT::v2i64, 3, 1, 2, 3, 
 
24646
              0, 
 
24647
            0, 
 
24648
          71,  ISD::ATOMIC_LOAD_ADD,
 
24649
            OPC_Scope, 22, 
 
24650
              OPC_CheckPredicate, 70,
 
24651
              OPC_RecordMemRef,
 
24652
              OPC_RecordNode,
 
24653
              OPC_RecordChild1,
 
24654
              OPC_CheckChild1Type, MVT::i32,
 
24655
              OPC_RecordChild2,
 
24656
              OPC_CheckType, MVT::i32,
 
24657
              OPC_EmitMergeInputChains, 1, 0, 
 
24658
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24659
                  1, MVT::i32, 2, 1, 2, 
 
24660
            22, 
 
24661
              OPC_CheckPredicate, 71,
 
24662
              OPC_RecordMemRef,
 
24663
              OPC_RecordNode,
 
24664
              OPC_RecordChild1,
 
24665
              OPC_CheckChild1Type, MVT::i32,
 
24666
              OPC_RecordChild2,
 
24667
              OPC_CheckType, MVT::i32,
 
24668
              OPC_EmitMergeInputChains, 1, 0, 
 
24669
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24670
                  1, MVT::i32, 2, 1, 2, 
 
24671
            22, 
 
24672
              OPC_CheckPredicate, 72,
 
24673
              OPC_RecordMemRef,
 
24674
              OPC_RecordNode,
 
24675
              OPC_RecordChild1,
 
24676
              OPC_CheckChild1Type, MVT::i32,
 
24677
              OPC_RecordChild2,
 
24678
              OPC_CheckType, MVT::i32,
 
24679
              OPC_EmitMergeInputChains, 1, 0, 
 
24680
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24681
                  1, MVT::i32, 2, 1, 2, 
 
24682
            0, 
 
24683
          71,  ISD::ATOMIC_LOAD_SUB,
 
24684
            OPC_Scope, 22, 
 
24685
              OPC_CheckPredicate, 73,
 
24686
              OPC_RecordMemRef,
 
24687
              OPC_RecordNode,
 
24688
              OPC_RecordChild1,
 
24689
              OPC_CheckChild1Type, MVT::i32,
 
24690
              OPC_RecordChild2,
 
24691
              OPC_CheckType, MVT::i32,
 
24692
              OPC_EmitMergeInputChains, 1, 0, 
 
24693
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24694
                  1, MVT::i32, 2, 1, 2, 
 
24695
            22, 
 
24696
              OPC_CheckPredicate, 74,
 
24697
              OPC_RecordMemRef,
 
24698
              OPC_RecordNode,
 
24699
              OPC_RecordChild1,
 
24700
              OPC_CheckChild1Type, MVT::i32,
 
24701
              OPC_RecordChild2,
 
24702
              OPC_CheckType, MVT::i32,
 
24703
              OPC_EmitMergeInputChains, 1, 0, 
 
24704
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24705
                  1, MVT::i32, 2, 1, 2, 
 
24706
            22, 
 
24707
              OPC_CheckPredicate, 75,
 
24708
              OPC_RecordMemRef,
 
24709
              OPC_RecordNode,
 
24710
              OPC_RecordChild1,
 
24711
              OPC_CheckChild1Type, MVT::i32,
 
24712
              OPC_RecordChild2,
 
24713
              OPC_CheckType, MVT::i32,
 
24714
              OPC_EmitMergeInputChains, 1, 0, 
 
24715
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24716
                  1, MVT::i32, 2, 1, 2, 
 
24717
            0, 
 
24718
          71,  ISD::ATOMIC_LOAD_AND,
 
24719
            OPC_Scope, 22, 
 
24720
              OPC_CheckPredicate, 76,
 
24721
              OPC_RecordMemRef,
 
24722
              OPC_RecordNode,
 
24723
              OPC_RecordChild1,
 
24724
              OPC_CheckChild1Type, MVT::i32,
 
24725
              OPC_RecordChild2,
 
24726
              OPC_CheckType, MVT::i32,
 
24727
              OPC_EmitMergeInputChains, 1, 0, 
 
24728
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24729
                  1, MVT::i32, 2, 1, 2, 
 
24730
            22, 
 
24731
              OPC_CheckPredicate, 77,
 
24732
              OPC_RecordMemRef,
 
24733
              OPC_RecordNode,
 
24734
              OPC_RecordChild1,
 
24735
              OPC_CheckChild1Type, MVT::i32,
 
24736
              OPC_RecordChild2,
 
24737
              OPC_CheckType, MVT::i32,
 
24738
              OPC_EmitMergeInputChains, 1, 0, 
 
24739
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24740
                  1, MVT::i32, 2, 1, 2, 
 
24741
            22, 
 
24742
              OPC_CheckPredicate, 78,
 
24743
              OPC_RecordMemRef,
 
24744
              OPC_RecordNode,
 
24745
              OPC_RecordChild1,
 
24746
              OPC_CheckChild1Type, MVT::i32,
 
24747
              OPC_RecordChild2,
 
24748
              OPC_CheckType, MVT::i32,
 
24749
              OPC_EmitMergeInputChains, 1, 0, 
 
24750
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24751
                  1, MVT::i32, 2, 1, 2, 
 
24752
            0, 
 
24753
          71,  ISD::ATOMIC_LOAD_OR,
 
24754
            OPC_Scope, 22, 
 
24755
              OPC_CheckPredicate, 79,
 
24756
              OPC_RecordMemRef,
 
24757
              OPC_RecordNode,
 
24758
              OPC_RecordChild1,
 
24759
              OPC_CheckChild1Type, MVT::i32,
 
24760
              OPC_RecordChild2,
 
24761
              OPC_CheckType, MVT::i32,
 
24762
              OPC_EmitMergeInputChains, 1, 0, 
 
24763
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24764
                  1, MVT::i32, 2, 1, 2, 
 
24765
            22, 
 
24766
              OPC_CheckPredicate, 80,
 
24767
              OPC_RecordMemRef,
 
24768
              OPC_RecordNode,
 
24769
              OPC_RecordChild1,
 
24770
              OPC_CheckChild1Type, MVT::i32,
 
24771
              OPC_RecordChild2,
 
24772
              OPC_CheckType, MVT::i32,
 
24773
              OPC_EmitMergeInputChains, 1, 0, 
 
24774
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24775
                  1, MVT::i32, 2, 1, 2, 
 
24776
            22, 
 
24777
              OPC_CheckPredicate, 81,
 
24778
              OPC_RecordMemRef,
 
24779
              OPC_RecordNode,
 
24780
              OPC_RecordChild1,
 
24781
              OPC_CheckChild1Type, MVT::i32,
 
24782
              OPC_RecordChild2,
 
24783
              OPC_CheckType, MVT::i32,
 
24784
              OPC_EmitMergeInputChains, 1, 0, 
 
24785
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24786
                  1, MVT::i32, 2, 1, 2, 
 
24787
            0, 
 
24788
          71,  ISD::ATOMIC_LOAD_XOR,
 
24789
            OPC_Scope, 22, 
 
24790
              OPC_CheckPredicate, 82,
 
24791
              OPC_RecordMemRef,
 
24792
              OPC_RecordNode,
 
24793
              OPC_RecordChild1,
 
24794
              OPC_CheckChild1Type, MVT::i32,
 
24795
              OPC_RecordChild2,
 
24796
              OPC_CheckType, MVT::i32,
 
24797
              OPC_EmitMergeInputChains, 1, 0, 
 
24798
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24799
                  1, MVT::i32, 2, 1, 2, 
 
24800
            22, 
 
24801
              OPC_CheckPredicate, 83,
 
24802
              OPC_RecordMemRef,
 
24803
              OPC_RecordNode,
 
24804
              OPC_RecordChild1,
 
24805
              OPC_CheckChild1Type, MVT::i32,
 
24806
              OPC_RecordChild2,
 
24807
              OPC_CheckType, MVT::i32,
 
24808
              OPC_EmitMergeInputChains, 1, 0, 
 
24809
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24810
                  1, MVT::i32, 2, 1, 2, 
 
24811
            22, 
 
24812
              OPC_CheckPredicate, 84,
 
24813
              OPC_RecordMemRef,
 
24814
              OPC_RecordNode,
 
24815
              OPC_RecordChild1,
 
24816
              OPC_CheckChild1Type, MVT::i32,
 
24817
              OPC_RecordChild2,
 
24818
              OPC_CheckType, MVT::i32,
 
24819
              OPC_EmitMergeInputChains, 1, 0, 
 
24820
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24821
                  1, MVT::i32, 2, 1, 2, 
 
24822
            0, 
 
24823
          71,  ISD::ATOMIC_LOAD_NAND,
 
24824
            OPC_Scope, 22, 
 
24825
              OPC_CheckPredicate, 85,
 
24826
              OPC_RecordMemRef,
 
24827
              OPC_RecordNode,
 
24828
              OPC_RecordChild1,
 
24829
              OPC_CheckChild1Type, MVT::i32,
 
24830
              OPC_RecordChild2,
 
24831
              OPC_CheckType, MVT::i32,
 
24832
              OPC_EmitMergeInputChains, 1, 0, 
 
24833
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24834
                  1, MVT::i32, 2, 1, 2, 
 
24835
            22, 
 
24836
              OPC_CheckPredicate, 86,
 
24837
              OPC_RecordMemRef,
 
24838
              OPC_RecordNode,
 
24839
              OPC_RecordChild1,
 
24840
              OPC_CheckChild1Type, MVT::i32,
 
24841
              OPC_RecordChild2,
 
24842
              OPC_CheckType, MVT::i32,
 
24843
              OPC_EmitMergeInputChains, 1, 0, 
 
24844
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24845
                  1, MVT::i32, 2, 1, 2, 
 
24846
            22, 
 
24847
              OPC_CheckPredicate, 87,
 
24848
              OPC_RecordMemRef,
 
24849
              OPC_RecordNode,
 
24850
              OPC_RecordChild1,
 
24851
              OPC_CheckChild1Type, MVT::i32,
 
24852
              OPC_RecordChild2,
 
24853
              OPC_CheckType, MVT::i32,
 
24854
              OPC_EmitMergeInputChains, 1, 0, 
 
24855
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24856
                  1, MVT::i32, 2, 1, 2, 
 
24857
            0, 
 
24858
          71,  ISD::ATOMIC_SWAP,
 
24859
            OPC_Scope, 22, 
 
24860
              OPC_CheckPredicate, 88,
 
24861
              OPC_RecordMemRef,
 
24862
              OPC_RecordNode,
 
24863
              OPC_RecordChild1,
 
24864
              OPC_CheckChild1Type, MVT::i32,
 
24865
              OPC_RecordChild2,
 
24866
              OPC_CheckType, MVT::i32,
 
24867
              OPC_EmitMergeInputChains, 1, 0, 
 
24868
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24869
                  1, MVT::i32, 2, 1, 2, 
 
24870
            22, 
 
24871
              OPC_CheckPredicate, 89,
 
24872
              OPC_RecordMemRef,
 
24873
              OPC_RecordNode,
 
24874
              OPC_RecordChild1,
 
24875
              OPC_CheckChild1Type, MVT::i32,
 
24876
              OPC_RecordChild2,
 
24877
              OPC_CheckType, MVT::i32,
 
24878
              OPC_EmitMergeInputChains, 1, 0, 
 
24879
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24880
                  1, MVT::i32, 2, 1, 2, 
 
24881
            22, 
 
24882
              OPC_CheckPredicate, 90,
 
24883
              OPC_RecordMemRef,
 
24884
              OPC_RecordNode,
 
24885
              OPC_RecordChild1,
 
24886
              OPC_CheckChild1Type, MVT::i32,
 
24887
              OPC_RecordChild2,
 
24888
              OPC_CheckType, MVT::i32,
 
24889
              OPC_EmitMergeInputChains, 1, 0, 
 
24890
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24891
                  1, MVT::i32, 2, 1, 2, 
 
24892
            0, 
 
24893
          77,  ISD::ATOMIC_CMP_SWAP,
 
24894
            OPC_Scope, 24, 
 
24895
              OPC_CheckPredicate, 91,
 
24896
              OPC_RecordMemRef,
 
24897
              OPC_RecordNode,
 
24898
              OPC_RecordChild1,
 
24899
              OPC_CheckChild1Type, MVT::i32,
 
24900
              OPC_RecordChild2,
 
24901
              OPC_RecordChild3,
 
24902
              OPC_CheckType, MVT::i32,
 
24903
              OPC_EmitMergeInputChains, 1, 0, 
 
24904
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
 
24905
                  1, MVT::i32, 3, 1, 2, 3, 
 
24906
            24, 
 
24907
              OPC_CheckPredicate, 92,
 
24908
              OPC_RecordMemRef,
 
24909
              OPC_RecordNode,
 
24910
              OPC_RecordChild1,
 
24911
              OPC_CheckChild1Type, MVT::i32,
 
24912
              OPC_RecordChild2,
 
24913
              OPC_RecordChild3,
 
24914
              OPC_CheckType, MVT::i32,
 
24915
              OPC_EmitMergeInputChains, 1, 0, 
 
24916
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
 
24917
                  1, MVT::i32, 3, 1, 2, 3, 
 
24918
            24, 
 
24919
              OPC_CheckPredicate, 93,
 
24920
              OPC_RecordMemRef,
 
24921
              OPC_RecordNode,
 
24922
              OPC_RecordChild1,
 
24923
              OPC_CheckChild1Type, MVT::i32,
 
24924
              OPC_RecordChild2,
 
24925
              OPC_RecordChild3,
 
24926
              OPC_CheckType, MVT::i32,
 
24927
              OPC_EmitMergeInputChains, 1, 0, 
 
24928
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
 
24929
                  1, MVT::i32, 3, 1, 2, 3, 
 
24930
            0, 
 
24931
          25|128,3,  ISD::BIT_CONVERT,
 
24932
            OPC_RecordChild0,
 
24933
            OPC_Scope, 29, 
 
24934
              OPC_CheckChild0Type, MVT::v2i32,
 
24935
              OPC_SwitchType , 3,  MVT::v1i64,
 
24936
                OPC_CompleteMatch, 1, 0, 
 
24937
 
 
24938
              3,  MVT::v4i16,
 
24939
                OPC_CompleteMatch, 1, 0, 
 
24940
 
 
24941
              3,  MVT::v8i8,
 
24942
                OPC_CompleteMatch, 1, 0, 
 
24943
 
 
24944
              3,  MVT::f64,
 
24945
                OPC_CompleteMatch, 1, 0, 
 
24946
 
 
24947
              3,  MVT::v2f32,
 
24948
                OPC_CompleteMatch, 1, 0, 
 
24949
 
 
24950
              0, 
 
24951
            29, 
 
24952
              OPC_CheckChild0Type, MVT::v4i16,
 
24953
              OPC_SwitchType , 3,  MVT::v1i64,
 
24954
                OPC_CompleteMatch, 1, 0, 
 
24955
 
 
24956
              3,  MVT::v2i32,
 
24957
                OPC_CompleteMatch, 1, 0, 
 
24958
 
 
24959
              3,  MVT::v8i8,
 
24960
                OPC_CompleteMatch, 1, 0, 
 
24961
 
 
24962
              3,  MVT::f64,
 
24963
                OPC_CompleteMatch, 1, 0, 
 
24964
 
 
24965
              3,  MVT::v2f32,
 
24966
                OPC_CompleteMatch, 1, 0, 
 
24967
 
 
24968
              0, 
 
24969
            29, 
 
24970
              OPC_CheckChild0Type, MVT::v8i8,
 
24971
              OPC_SwitchType , 3,  MVT::v1i64,
 
24972
                OPC_CompleteMatch, 1, 0, 
 
24973
 
 
24974
              3,  MVT::v2i32,
 
24975
                OPC_CompleteMatch, 1, 0, 
 
24976
 
 
24977
              3,  MVT::v4i16,
 
24978
                OPC_CompleteMatch, 1, 0, 
 
24979
 
 
24980
              3,  MVT::f64,
 
24981
                OPC_CompleteMatch, 1, 0, 
 
24982
 
 
24983
              3,  MVT::v2f32,
 
24984
                OPC_CompleteMatch, 1, 0, 
 
24985
 
 
24986
              0, 
 
24987
            29, 
 
24988
              OPC_CheckChild0Type, MVT::f64,
 
24989
              OPC_SwitchType , 3,  MVT::v1i64,
 
24990
                OPC_CompleteMatch, 1, 0, 
 
24991
 
 
24992
              3,  MVT::v2i32,
 
24993
                OPC_CompleteMatch, 1, 0, 
 
24994
 
 
24995
              3,  MVT::v4i16,
 
24996
                OPC_CompleteMatch, 1, 0, 
 
24997
 
 
24998
              3,  MVT::v8i8,
 
24999
                OPC_CompleteMatch, 1, 0, 
 
25000
 
 
25001
              3,  MVT::v2f32,
 
25002
                OPC_CompleteMatch, 1, 0, 
 
25003
 
 
25004
              0, 
 
25005
            29, 
 
25006
              OPC_CheckChild0Type, MVT::v2f32,
 
25007
              OPC_SwitchType , 3,  MVT::v1i64,
 
25008
                OPC_CompleteMatch, 1, 0, 
 
25009
 
 
25010
              3,  MVT::v2i32,
 
25011
                OPC_CompleteMatch, 1, 0, 
 
25012
 
 
25013
              3,  MVT::v4i16,
 
25014
                OPC_CompleteMatch, 1, 0, 
 
25015
 
 
25016
              3,  MVT::v8i8,
 
25017
                OPC_CompleteMatch, 1, 0, 
 
25018
 
 
25019
              3,  MVT::f64,
 
25020
                OPC_CompleteMatch, 1, 0, 
 
25021
 
 
25022
              0, 
 
25023
            29, 
 
25024
              OPC_CheckChild0Type, MVT::v1i64,
 
25025
              OPC_SwitchType , 3,  MVT::v2i32,
 
25026
                OPC_CompleteMatch, 1, 0, 
 
25027
 
 
25028
              3,  MVT::v4i16,
 
25029
                OPC_CompleteMatch, 1, 0, 
 
25030
 
 
25031
              3,  MVT::v8i8,
 
25032
                OPC_CompleteMatch, 1, 0, 
 
25033
 
 
25034
              3,  MVT::f64,
 
25035
                OPC_CompleteMatch, 1, 0, 
 
25036
 
 
25037
              3,  MVT::v2f32,
 
25038
                OPC_CompleteMatch, 1, 0, 
 
25039
 
 
25040
              0, 
 
25041
            29, 
 
25042
              OPC_CheckChild0Type, MVT::v4i32,
 
25043
              OPC_SwitchType , 3,  MVT::v2i64,
 
25044
                OPC_CompleteMatch, 1, 0, 
 
25045
 
 
25046
              3,  MVT::v8i16,
 
25047
                OPC_CompleteMatch, 1, 0, 
 
25048
 
 
25049
              3,  MVT::v16i8,
 
25050
                OPC_CompleteMatch, 1, 0, 
 
25051
 
 
25052
              3,  MVT::v4f32,
 
25053
                OPC_CompleteMatch, 1, 0, 
 
25054
 
 
25055
              3,  MVT::v2f64,
 
25056
                OPC_CompleteMatch, 1, 0, 
 
25057
 
 
25058
              0, 
 
25059
            29, 
 
25060
              OPC_CheckChild0Type, MVT::v8i16,
 
25061
              OPC_SwitchType , 3,  MVT::v2i64,
 
25062
                OPC_CompleteMatch, 1, 0, 
 
25063
 
 
25064
              3,  MVT::v4i32,
 
25065
                OPC_CompleteMatch, 1, 0, 
 
25066
 
 
25067
              3,  MVT::v16i8,
 
25068
                OPC_CompleteMatch, 1, 0, 
 
25069
 
 
25070
              3,  MVT::v4f32,
 
25071
                OPC_CompleteMatch, 1, 0, 
 
25072
 
 
25073
              3,  MVT::v2f64,
 
25074
                OPC_CompleteMatch, 1, 0, 
 
25075
 
 
25076
              0, 
 
25077
            29, 
 
25078
              OPC_CheckChild0Type, MVT::v16i8,
 
25079
              OPC_SwitchType , 3,  MVT::v2i64,
 
25080
                OPC_CompleteMatch, 1, 0, 
 
25081
 
 
25082
              3,  MVT::v4i32,
 
25083
                OPC_CompleteMatch, 1, 0, 
 
25084
 
 
25085
              3,  MVT::v8i16,
 
25086
                OPC_CompleteMatch, 1, 0, 
 
25087
 
 
25088
              3,  MVT::v4f32,
 
25089
                OPC_CompleteMatch, 1, 0, 
 
25090
 
 
25091
              3,  MVT::v2f64,
 
25092
                OPC_CompleteMatch, 1, 0, 
 
25093
 
 
25094
              0, 
 
25095
            29, 
 
25096
              OPC_CheckChild0Type, MVT::v2f64,
 
25097
              OPC_SwitchType , 3,  MVT::v2i64,
 
25098
                OPC_CompleteMatch, 1, 0, 
 
25099
 
 
25100
              3,  MVT::v4i32,
 
25101
                OPC_CompleteMatch, 1, 0, 
 
25102
 
 
25103
              3,  MVT::v8i16,
 
25104
                OPC_CompleteMatch, 1, 0, 
 
25105
 
 
25106
              3,  MVT::v16i8,
 
25107
                OPC_CompleteMatch, 1, 0, 
 
25108
 
 
25109
              3,  MVT::v4f32,
 
25110
                OPC_CompleteMatch, 1, 0, 
 
25111
 
 
25112
              0, 
 
25113
            29, 
 
25114
              OPC_CheckChild0Type, MVT::v4f32,
 
25115
              OPC_SwitchType , 3,  MVT::v2i64,
 
25116
                OPC_CompleteMatch, 1, 0, 
 
25117
 
 
25118
              3,  MVT::v4i32,
 
25119
                OPC_CompleteMatch, 1, 0, 
 
25120
 
 
25121
              3,  MVT::v8i16,
 
25122
                OPC_CompleteMatch, 1, 0, 
 
25123
 
 
25124
              3,  MVT::v16i8,
 
25125
                OPC_CompleteMatch, 1, 0, 
 
25126
 
 
25127
              3,  MVT::v2f64,
 
25128
                OPC_CompleteMatch, 1, 0, 
 
25129
 
 
25130
              0, 
 
25131
            29, 
 
25132
              OPC_CheckChild0Type, MVT::v2i64,
 
25133
              OPC_SwitchType , 3,  MVT::v4i32,
 
25134
                OPC_CompleteMatch, 1, 0, 
 
25135
 
 
25136
              3,  MVT::v8i16,
 
25137
                OPC_CompleteMatch, 1, 0, 
 
25138
 
 
25139
              3,  MVT::v16i8,
 
25140
                OPC_CompleteMatch, 1, 0, 
 
25141
 
 
25142
              3,  MVT::v4f32,
 
25143
                OPC_CompleteMatch, 1, 0, 
 
25144
 
 
25145
              3,  MVT::v2f64,
 
25146
                OPC_CompleteMatch, 1, 0, 
 
25147
 
 
25148
              0, 
 
25149
            22, 
 
25150
              OPC_CheckChild0Type, MVT::f32,
 
25151
              OPC_CheckType, MVT::i32,
 
25152
              OPC_CheckPatternPredicate, 8,
 
25153
              OPC_EmitInteger, MVT::i32, 14, 
 
25154
              OPC_EmitRegister, MVT::i32, 0 ,
 
25155
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVRS), 0,
 
25156
                  1, MVT::i32, 3, 0, 1, 2, 
 
25157
            22, 
 
25158
              OPC_CheckChild0Type, MVT::i32,
 
25159
              OPC_CheckType, MVT::f32,
 
25160
              OPC_CheckPatternPredicate, 8,
 
25161
              OPC_EmitInteger, MVT::i32, 14, 
 
25162
              OPC_EmitRegister, MVT::i32, 0 ,
 
25163
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVSR), 0,
 
25164
                  1, MVT::f32, 3, 0, 1, 2, 
 
25165
            0, 
 
25166
          36,  ARMISD::RET_FLAG,
 
25167
            OPC_RecordNode,
 
25168
            OPC_CaptureFlagInput,
 
25169
            OPC_Scope, 19, 
 
25170
              OPC_CheckPatternPredicate, 5,
 
25171
              OPC_EmitMergeInputChains, 1, 0, 
 
25172
              OPC_EmitInteger, MVT::i32, 14, 
 
25173
              OPC_EmitRegister, MVT::i32, 0 ,
 
25174
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BX_RET), 0|OPFL_Chain|OPFL_FlagInput,
 
25175
                  0, 2, 1, 2, 
 
25176
            11, 
 
25177
              OPC_CheckPatternPredicate, 9,
 
25178
              OPC_EmitMergeInputChains, 1, 0, 
 
25179
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBX_RET), 0|OPFL_Chain|OPFL_FlagInput,
 
25180
                  0, 0, 
 
25181
            0, 
 
25182
          32,  ISD::BRIND,
 
25183
            OPC_RecordNode,
 
25184
            OPC_RecordChild1,
 
25185
            OPC_CheckChild1Type, MVT::i32,
 
25186
            OPC_Scope, 12, 
 
25187
              OPC_CheckPatternPredicate, 5,
 
25188
              OPC_EmitMergeInputChains, 1, 0, 
 
25189
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BRIND), 0|OPFL_Chain,
 
25190
                  0, 1, 1, 
 
25191
            12, 
 
25192
              OPC_CheckPatternPredicate, 9,
 
25193
              OPC_EmitMergeInputChains, 1, 0, 
 
25194
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBRIND), 0|OPFL_Chain,
 
25195
                  0, 1, 1, 
 
25196
            0, 
 
25197
          59,  ARMISD::CALL_NOLINK,
 
25198
            OPC_RecordNode,
 
25199
            OPC_CaptureFlagInput,
 
25200
            OPC_RecordChild1,
 
25201
            OPC_CheckChild1Type, MVT::i32,
 
25202
            OPC_Scope, 12, 
 
25203
              OPC_CheckPatternPredicate, 14,
 
25204
              OPC_EmitMergeInputChains, 1, 0, 
 
25205
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
25206
                  0, 1, 1, 
 
25207
            12, 
 
25208
              OPC_CheckPatternPredicate, 15,
 
25209
              OPC_EmitMergeInputChains, 1, 0, 
 
25210
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::BXr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
25211
                  0, 1, 1, 
 
25212
            12, 
 
25213
              OPC_CheckPatternPredicate, 28,
 
25214
              OPC_EmitMergeInputChains, 1, 0, 
 
25215
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
25216
                  0, 1, 1, 
 
25217
            12, 
 
25218
              OPC_CheckPatternPredicate, 29,
 
25219
              OPC_EmitMergeInputChains, 1, 0, 
 
25220
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tBXr9), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
 
25221
                  0, 1, 1, 
 
25222
            0, 
 
25223
          48,  ISD::BR,
 
25224
            OPC_RecordNode,
 
25225
            OPC_RecordChild1,
 
25226
            OPC_MoveChild, 1,
 
25227
            OPC_CheckOpcode, ISD::BasicBlock,
 
25228
            OPC_MoveParent,
 
25229
            OPC_Scope, 12, 
 
25230
              OPC_CheckPatternPredicate, 5,
 
25231
              OPC_EmitMergeInputChains, 1, 0, 
 
25232
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::B), 0|OPFL_Chain,
 
25233
                  0, 1, 1, 
 
25234
            12, 
 
25235
              OPC_CheckPatternPredicate, 6,
 
25236
              OPC_EmitMergeInputChains, 1, 0, 
 
25237
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tB), 0|OPFL_Chain,
 
25238
                  0, 1, 1, 
 
25239
            12, 
 
25240
              OPC_CheckPatternPredicate, 2,
 
25241
              OPC_EmitMergeInputChains, 1, 0, 
 
25242
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2B), 0|OPFL_Chain,
 
25243
                  0, 1, 1, 
 
25244
            0, 
 
25245
          52,  ARMISD::RRX,
 
25246
            OPC_CaptureFlagInput,
 
25247
            OPC_RecordChild0,
 
25248
            OPC_CheckType, MVT::i32,
 
25249
            OPC_Scope, 22, 
 
25250
              OPC_CheckPatternPredicate, 5,
 
25251
              OPC_EmitInteger, MVT::i32, 14, 
 
25252
              OPC_EmitRegister, MVT::i32, 0 ,
 
25253
              OPC_EmitRegister, MVT::i32, 0 ,
 
25254
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVrx), 0|OPFL_FlagInput,
 
25255
                  1, MVT::i32, 4, 0, 1, 2, 3, 
 
25256
            22, 
 
25257
              OPC_CheckPatternPredicate, 2,
 
25258
              OPC_EmitInteger, MVT::i32, 14, 
 
25259
              OPC_EmitRegister, MVT::i32, 0 ,
 
25260
              OPC_EmitRegister, MVT::i32, 0 ,
 
25261
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVrx), 0|OPFL_FlagInput,
 
25262
                  1, MVT::i32, 4, 0, 1, 2, 3, 
 
25263
            0, 
 
25264
          35,  ARMISD::SRL_FLAG,
 
25265
            OPC_RecordChild0,
 
25266
            OPC_CheckType, MVT::i32,
 
25267
            OPC_Scope, 18, 
 
25268
              OPC_CheckPatternPredicate, 5,
 
25269
              OPC_EmitInteger, MVT::i32, 14, 
 
25270
              OPC_EmitRegister, MVT::i32, 0 ,
 
25271
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVsrl_flag), 0|OPFL_FlagOutput,
 
25272
                  1, MVT::i32, 3, 0, 1, 2, 
 
25273
            10, 
 
25274
              OPC_CheckPatternPredicate, 2,
 
25275
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVsrl_flag), 0|OPFL_FlagOutput,
 
25276
                  1, MVT::i32, 1, 0, 
 
25277
            0, 
 
25278
          35,  ARMISD::SRA_FLAG,
 
25279
            OPC_RecordChild0,
 
25280
            OPC_CheckType, MVT::i32,
 
25281
            OPC_Scope, 18, 
 
25282
              OPC_CheckPatternPredicate, 5,
 
25283
              OPC_EmitInteger, MVT::i32, 14, 
 
25284
              OPC_EmitRegister, MVT::i32, 0 ,
 
25285
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::MOVsra_flag), 0|OPFL_FlagOutput,
 
25286
                  1, MVT::i32, 3, 0, 1, 2, 
 
25287
            10, 
 
25288
              OPC_CheckPatternPredicate, 2,
 
25289
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2MOVsra_flag), 0|OPFL_FlagOutput,
 
25290
                  1, MVT::i32, 1, 0, 
 
25291
            0, 
 
25292
          46,  ISD::MULHS,
 
25293
            OPC_RecordChild0,
 
25294
            OPC_RecordChild1,
 
25295
            OPC_CheckType, MVT::i32,
 
25296
            OPC_Scope, 19, 
 
25297
              OPC_CheckPatternPredicate, 0,
 
25298
              OPC_EmitInteger, MVT::i32, 14, 
 
25299
              OPC_EmitRegister, MVT::i32, 0 ,
 
25300
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::SMMUL), 0,
 
25301
                  1, MVT::i32, 4, 0, 1, 2, 3, 
 
25302
            19, 
 
25303
              OPC_CheckPatternPredicate, 2,
 
25304
              OPC_EmitInteger, MVT::i32, 14, 
 
25305
              OPC_EmitRegister, MVT::i32, 0 ,
 
25306
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2SMMUL), 0,
 
25307
                  1, MVT::i32, 4, 0, 1, 2, 3, 
 
25308
            0, 
 
25309
          43,  ISD::CTLZ,
 
25310
            OPC_RecordChild0,
 
25311
            OPC_CheckType, MVT::i32,
 
25312
            OPC_Scope, 18, 
 
25313
              OPC_CheckPatternPredicate, 30,
 
25314
              OPC_EmitInteger, MVT::i32, 14, 
 
25315
              OPC_EmitRegister, MVT::i32, 0 ,
 
25316
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::CLZ), 0,
 
25317
                  1, MVT::i32, 3, 0, 1, 2, 
 
25318
            18, 
 
25319
              OPC_CheckPatternPredicate, 2,
 
25320
              OPC_EmitInteger, MVT::i32, 14, 
 
25321
              OPC_EmitRegister, MVT::i32, 0 ,
 
25322
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2CLZ), 0,
 
25323
                  1, MVT::i32, 3, 0, 1, 2, 
 
25324
            0, 
 
25325
          43,  ARMISD::RBIT,
 
25326
            OPC_RecordChild0,
 
25327
            OPC_CheckType, MVT::i32,
 
25328
            OPC_Scope, 18, 
 
25329
              OPC_CheckPatternPredicate, 4,
 
25330
              OPC_EmitInteger, MVT::i32, 14, 
 
25331
              OPC_EmitRegister, MVT::i32, 0 ,
 
25332
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::RBIT), 0,
 
25333
                  1, MVT::i32, 3, 0, 1, 2, 
 
25334
            18, 
 
25335
              OPC_CheckPatternPredicate, 2,
 
25336
              OPC_EmitInteger, MVT::i32, 14, 
 
25337
              OPC_EmitRegister, MVT::i32, 0 ,
 
25338
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2RBIT), 0,
 
25339
                  1, MVT::i32, 3, 0, 1, 2, 
 
25340
            0, 
 
25341
          62,  ISD::BSWAP,
 
25342
            OPC_RecordChild0,
 
25343
            OPC_CheckType, MVT::i32,
 
25344
            OPC_Scope, 18, 
 
25345
              OPC_CheckPatternPredicate, 0,
 
25346
              OPC_EmitInteger, MVT::i32, 14, 
 
25347
              OPC_EmitRegister, MVT::i32, 0 ,
 
25348
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::REV), 0,
 
25349
                  1, MVT::i32, 3, 0, 1, 2, 
 
25350
            18, 
 
25351
              OPC_CheckPatternPredicate, 1,
 
25352
              OPC_EmitInteger, MVT::i32, 14, 
 
25353
              OPC_EmitRegister, MVT::i32, 0 ,
 
25354
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tREV), 0,
 
25355
                  1, MVT::i32, 3, 0, 1, 2, 
 
25356
            18, 
 
25357
              OPC_CheckPatternPredicate, 2,
 
25358
              OPC_EmitInteger, MVT::i32, 14, 
 
25359
              OPC_EmitRegister, MVT::i32, 0 ,
 
25360
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2REV), 0,
 
25361
                  1, MVT::i32, 3, 0, 1, 2, 
 
25362
            0, 
 
25363
          43,  ARMISD::MEMBARRIER,
 
25364
            OPC_RecordNode,
 
25365
            OPC_Scope, 11, 
 
25366
              OPC_CheckPatternPredicate, 31,
 
25367
              OPC_EmitMergeInputChains, 1, 0, 
 
25368
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_MemBarrierV7), 0|OPFL_Chain,
 
25369
                  0, 0, 
 
25370
            15, 
 
25371
              OPC_RecordChild1,
 
25372
              OPC_CheckChild1Type, MVT::i32,
 
25373
              OPC_CheckPatternPredicate, 0,
 
25374
              OPC_EmitMergeInputChains, 1, 0, 
 
25375
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_MemBarrierV6), 0|OPFL_Chain,
 
25376
                  0, 1, 1, 
 
25377
            11, 
 
25378
              OPC_CheckPatternPredicate, 2,
 
25379
              OPC_EmitMergeInputChains, 1, 0, 
 
25380
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2Int_MemBarrierV7), 0|OPFL_Chain,
 
25381
                  0, 0, 
 
25382
            0, 
 
25383
          43,  ARMISD::SYNCBARRIER,
 
25384
            OPC_RecordNode,
 
25385
            OPC_Scope, 11, 
 
25386
              OPC_CheckPatternPredicate, 31,
 
25387
              OPC_EmitMergeInputChains, 1, 0, 
 
25388
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_SyncBarrierV7), 0|OPFL_Chain,
 
25389
                  0, 0, 
 
25390
            15, 
 
25391
              OPC_RecordChild1,
 
25392
              OPC_CheckChild1Type, MVT::i32,
 
25393
              OPC_CheckPatternPredicate, 0,
 
25394
              OPC_EmitMergeInputChains, 1, 0, 
 
25395
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_SyncBarrierV6), 0|OPFL_Chain,
 
25396
                  0, 1, 1, 
 
25397
            11, 
 
25398
              OPC_CheckPatternPredicate, 2,
 
25399
              OPC_EmitMergeInputChains, 1, 0, 
 
25400
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2Int_SyncBarrierV7), 0|OPFL_Chain,
 
25401
                  0, 0, 
 
25402
            0, 
 
25403
          34,  ARMISD::THREAD_POINTER,
 
25404
            OPC_CheckType, MVT::i32,
 
25405
            OPC_Scope, 9, 
 
25406
              OPC_CheckPatternPredicate, 5,
 
25407
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::TPsoft), 0,
 
25408
                  1, MVT::i32, 0, 
 
25409
            9, 
 
25410
              OPC_CheckPatternPredicate, 9,
 
25411
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tTPsoft), 0,
 
25412
                  1, MVT::i32, 0, 
 
25413
            9, 
 
25414
              OPC_CheckPatternPredicate, 2,
 
25415
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2TPsoft), 0,
 
25416
                  1, MVT::i32, 0, 
 
25417
            0, 
 
25418
          46,  ARMISD::EH_SJLJ_SETJMP,
 
25419
            OPC_RecordChild0,
 
25420
            OPC_CheckChild0Type, MVT::i32,
 
25421
            OPC_RecordChild1,
 
25422
            OPC_CheckChild1Type, MVT::i32,
 
25423
            OPC_CheckType, MVT::i32,
 
25424
            OPC_Scope, 11, 
 
25425
              OPC_CheckPatternPredicate, 5,
 
25426
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::Int_eh_sjlj_setjmp), 0,
 
25427
                  1, MVT::i32, 2, 0, 1, 
 
25428
            11, 
 
25429
              OPC_CheckPatternPredicate, 6,
 
25430
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::tInt_eh_sjlj_setjmp), 0,
 
25431
                  1, MVT::i32, 2, 0, 1, 
 
25432
            11, 
 
25433
              OPC_CheckPatternPredicate, 2,
 
25434
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::t2Int_eh_sjlj_setjmp), 0,
 
25435
                  1, MVT::i32, 2, 0, 1, 
 
25436
            0, 
 
25437
          47,  ARMISD::CMPFP,
 
25438
            OPC_RecordChild0,
 
25439
            OPC_Scope, 21, 
 
25440
              OPC_CheckChild0Type, MVT::f64,
 
25441
              OPC_RecordChild1,
 
25442
              OPC_CheckPatternPredicate, 8,
 
25443
              OPC_EmitInteger, MVT::i32, 14, 
 
25444
              OPC_EmitRegister, MVT::i32, 0 ,
 
25445
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPED), 0|OPFL_FlagOutput,
 
25446
                  0, 4, 0, 1, 2, 3, 
 
25447
            21, 
 
25448
              OPC_CheckChild0Type, MVT::f32,
 
25449
              OPC_RecordChild1,
 
25450
              OPC_CheckPatternPredicate, 8,
 
25451
              OPC_EmitInteger, MVT::i32, 14, 
 
25452
              OPC_EmitRegister, MVT::i32, 0 ,
 
25453
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPES), 0|OPFL_FlagOutput,
 
25454
                  0, 4, 0, 1, 2, 3, 
 
25455
            0, 
 
25456
          46,  ISD::FDIV,
 
25457
            OPC_RecordChild0,
 
25458
            OPC_RecordChild1,
 
25459
            OPC_SwitchType , 19,  MVT::f64,
 
25460
              OPC_CheckPatternPredicate, 8,
 
25461
              OPC_EmitInteger, MVT::i32, 14, 
 
25462
              OPC_EmitRegister, MVT::i32, 0 ,
 
25463
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDIVD), 0,
 
25464
                  1, MVT::f64, 4, 0, 1, 2, 3, 
 
25465
            19,  MVT::f32,
 
25466
              OPC_CheckPatternPredicate, 8,
 
25467
              OPC_EmitInteger, MVT::i32, 14, 
 
25468
              OPC_EmitRegister, MVT::i32, 0 ,
 
25469
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VDIVS), 0,
 
25470
                  1, MVT::f32, 4, 0, 1, 2, 3, 
 
25471
            0, 
 
25472
          97,  ISD::FABS,
 
25473
            OPC_RecordChild0,
 
25474
            OPC_SwitchType , 18,  MVT::f64,
 
25475
              OPC_CheckPatternPredicate, 8,
 
25476
              OPC_EmitInteger, MVT::i32, 14, 
 
25477
              OPC_EmitRegister, MVT::i32, 0 ,
 
25478
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSD), 0,
 
25479
                  1, MVT::f64, 3, 0, 1, 2, 
 
25480
            72,  MVT::f32,
 
25481
              OPC_Scope, 18, 
 
25482
                OPC_CheckPatternPredicate, 10,
 
25483
                OPC_EmitInteger, MVT::i32, 14, 
 
25484
                OPC_EmitRegister, MVT::i32, 0 ,
 
25485
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VABSS), 0,
 
25486
                    1, MVT::f32, 3, 0, 1, 2, 
 
25487
              50, 
 
25488
                OPC_CheckPatternPredicate, 11,
 
25489
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
25490
                    1, MVT::v2f32, 0, 
 
25491
                OPC_EmitInteger, MVT::i32, 1, 
 
25492
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
25493
                    1, MVT::f64, 3, 1, 0, 2, 
 
25494
                OPC_EmitInteger, MVT::i32, 14, 
 
25495
                OPC_EmitRegister, MVT::i32, 0 ,
 
25496
                OPC_EmitNode, TARGET_OPCODE(ARM::VABSfd_sfp), 0,
 
25497
                    1, MVT::f64, 3, 3, 4, 5, 
 
25498
                OPC_EmitInteger, MVT::i32, 1, 
 
25499
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
25500
                    1, MVT::f32, 2, 6, 7, 
 
25501
              0, 
 
25502
            0, 
 
25503
          43,  ARMISD::CMPFPw0,
 
25504
            OPC_RecordChild0,
 
25505
            OPC_Scope, 19, 
 
25506
              OPC_CheckChild0Type, MVT::f64,
 
25507
              OPC_CheckPatternPredicate, 8,
 
25508
              OPC_EmitInteger, MVT::i32, 14, 
 
25509
              OPC_EmitRegister, MVT::i32, 0 ,
 
25510
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPEZD), 0|OPFL_FlagOutput,
 
25511
                  0, 3, 0, 1, 2, 
 
25512
            19, 
 
25513
              OPC_CheckChild0Type, MVT::f32,
 
25514
              OPC_CheckPatternPredicate, 8,
 
25515
              OPC_EmitInteger, MVT::i32, 14, 
 
25516
              OPC_EmitRegister, MVT::i32, 0 ,
 
25517
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCMPEZS), 0|OPFL_FlagOutput,
 
25518
                  0, 3, 0, 1, 2, 
 
25519
            0, 
 
25520
          23,  ISD::FP_EXTEND,
 
25521
            OPC_RecordChild0,
 
25522
            OPC_CheckChild0Type, MVT::f32,
 
25523
            OPC_CheckType, MVT::f64,
 
25524
            OPC_CheckPatternPredicate, 8,
 
25525
            OPC_EmitInteger, MVT::i32, 14, 
 
25526
            OPC_EmitRegister, MVT::i32, 0 ,
 
25527
            OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTDS), 0,
 
25528
                1, MVT::f64, 3, 0, 1, 2, 
 
25529
          23,  ISD::FP_ROUND,
 
25530
            OPC_RecordChild0,
 
25531
            OPC_CheckChild0Type, MVT::f64,
 
25532
            OPC_CheckType, MVT::f32,
 
25533
            OPC_CheckPatternPredicate, 8,
 
25534
            OPC_EmitInteger, MVT::i32, 14, 
 
25535
            OPC_EmitRegister, MVT::i32, 0 ,
 
25536
            OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTSD), 0,
 
25537
                1, MVT::f32, 3, 0, 1, 2, 
 
25538
          43,  ISD::FSQRT,
 
25539
            OPC_RecordChild0,
 
25540
            OPC_SwitchType , 18,  MVT::f64,
 
25541
              OPC_CheckPatternPredicate, 8,
 
25542
              OPC_EmitInteger, MVT::i32, 14, 
 
25543
              OPC_EmitRegister, MVT::i32, 0 ,
 
25544
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSQRTD), 0,
 
25545
                  1, MVT::f64, 3, 0, 1, 2, 
 
25546
            18,  MVT::f32,
 
25547
              OPC_CheckPatternPredicate, 8,
 
25548
              OPC_EmitInteger, MVT::i32, 14, 
 
25549
              OPC_EmitRegister, MVT::i32, 0 ,
 
25550
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSQRTS), 0,
 
25551
                  1, MVT::f32, 3, 0, 1, 2, 
 
25552
            0, 
 
25553
          21,  ARMISD::VMOVDRR,
 
25554
            OPC_RecordChild0,
 
25555
            OPC_RecordChild1,
 
25556
            OPC_CheckPatternPredicate, 8,
 
25557
            OPC_EmitInteger, MVT::i32, 14, 
 
25558
            OPC_EmitRegister, MVT::i32, 0 ,
 
25559
            OPC_MorphNodeTo, TARGET_OPCODE(ARM::VMOVDRR), 0,
 
25560
                1, MVT::f64, 4, 0, 1, 2, 3, 
 
25561
          97,  ARMISD::SITOF,
 
25562
            OPC_RecordChild0,
 
25563
            OPC_SwitchType , 18,  MVT::f64,
 
25564
              OPC_CheckPatternPredicate, 8,
 
25565
              OPC_EmitInteger, MVT::i32, 14, 
 
25566
              OPC_EmitRegister, MVT::i32, 0 ,
 
25567
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSITOD), 0,
 
25568
                  1, MVT::f64, 3, 0, 1, 2, 
 
25569
            72,  MVT::f32,
 
25570
              OPC_Scope, 18, 
 
25571
                OPC_CheckPatternPredicate, 10,
 
25572
                OPC_EmitInteger, MVT::i32, 14, 
 
25573
                OPC_EmitRegister, MVT::i32, 0 ,
 
25574
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSITOS), 0,
 
25575
                    1, MVT::f32, 3, 0, 1, 2, 
 
25576
              50, 
 
25577
                OPC_CheckPatternPredicate, 11,
 
25578
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
25579
                    1, MVT::v2i32, 0, 
 
25580
                OPC_EmitInteger, MVT::i32, 1, 
 
25581
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
25582
                    1, MVT::f64, 3, 1, 0, 2, 
 
25583
                OPC_EmitInteger, MVT::i32, 14, 
 
25584
                OPC_EmitRegister, MVT::i32, 0 ,
 
25585
                OPC_EmitNode, TARGET_OPCODE(ARM::VCVTs2fd_sfp), 0,
 
25586
                    1, MVT::f64, 3, 3, 4, 5, 
 
25587
                OPC_EmitInteger, MVT::i32, 1, 
 
25588
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
25589
                    1, MVT::f32, 2, 6, 7, 
 
25590
              0, 
 
25591
            0, 
 
25592
          97,  ARMISD::UITOF,
 
25593
            OPC_RecordChild0,
 
25594
            OPC_SwitchType , 18,  MVT::f64,
 
25595
              OPC_CheckPatternPredicate, 8,
 
25596
              OPC_EmitInteger, MVT::i32, 14, 
 
25597
              OPC_EmitRegister, MVT::i32, 0 ,
 
25598
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VUITOD), 0,
 
25599
                  1, MVT::f64, 3, 0, 1, 2, 
 
25600
            72,  MVT::f32,
 
25601
              OPC_Scope, 18, 
 
25602
                OPC_CheckPatternPredicate, 10,
 
25603
                OPC_EmitInteger, MVT::i32, 14, 
 
25604
                OPC_EmitRegister, MVT::i32, 0 ,
 
25605
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VUITOS), 0,
 
25606
                    1, MVT::f32, 3, 0, 1, 2, 
 
25607
              50, 
 
25608
                OPC_CheckPatternPredicate, 11,
 
25609
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
25610
                    1, MVT::v2i32, 0, 
 
25611
                OPC_EmitInteger, MVT::i32, 1, 
 
25612
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
25613
                    1, MVT::f64, 3, 1, 0, 2, 
 
25614
                OPC_EmitInteger, MVT::i32, 14, 
 
25615
                OPC_EmitRegister, MVT::i32, 0 ,
 
25616
                OPC_EmitNode, TARGET_OPCODE(ARM::VCVTu2fd_sfp), 0,
 
25617
                    1, MVT::f64, 3, 3, 4, 5, 
 
25618
                OPC_EmitInteger, MVT::i32, 1, 
 
25619
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
25620
                    1, MVT::f32, 2, 6, 7, 
 
25621
              0, 
 
25622
            0, 
 
25623
          99,  ARMISD::FTOSI,
 
25624
            OPC_RecordChild0,
 
25625
            OPC_Scope, 20, 
 
25626
              OPC_CheckChild0Type, MVT::f64,
 
25627
              OPC_CheckPatternPredicate, 8,
 
25628
              OPC_EmitInteger, MVT::i32, 14, 
 
25629
              OPC_EmitRegister, MVT::i32, 0 ,
 
25630
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOSIZD), 0,
 
25631
                  1, MVT::f32, 3, 0, 1, 2, 
 
25632
            74, 
 
25633
              OPC_CheckChild0Type, MVT::f32,
 
25634
              OPC_Scope, 18, 
 
25635
                OPC_CheckPatternPredicate, 10,
 
25636
                OPC_EmitInteger, MVT::i32, 14, 
 
25637
                OPC_EmitRegister, MVT::i32, 0 ,
 
25638
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOSIZS), 0,
 
25639
                    1, MVT::f32, 3, 0, 1, 2, 
 
25640
              50, 
 
25641
                OPC_CheckPatternPredicate, 11,
 
25642
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
25643
                    1, MVT::v2f32, 0, 
 
25644
                OPC_EmitInteger, MVT::i32, 1, 
 
25645
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
25646
                    1, MVT::f64, 3, 1, 0, 2, 
 
25647
                OPC_EmitInteger, MVT::i32, 14, 
 
25648
                OPC_EmitRegister, MVT::i32, 0 ,
 
25649
                OPC_EmitNode, TARGET_OPCODE(ARM::VCVTf2sd_sfp), 0,
 
25650
                    1, MVT::f64, 3, 3, 4, 5, 
 
25651
                OPC_EmitInteger, MVT::i32, 1, 
 
25652
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
25653
                    1, MVT::f32, 2, 6, 7, 
 
25654
              0, 
 
25655
            0, 
 
25656
          99,  ARMISD::FTOUI,
 
25657
            OPC_RecordChild0,
 
25658
            OPC_Scope, 20, 
 
25659
              OPC_CheckChild0Type, MVT::f64,
 
25660
              OPC_CheckPatternPredicate, 8,
 
25661
              OPC_EmitInteger, MVT::i32, 14, 
 
25662
              OPC_EmitRegister, MVT::i32, 0 ,
 
25663
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOUIZD), 0,
 
25664
                  1, MVT::f32, 3, 0, 1, 2, 
 
25665
            74, 
 
25666
              OPC_CheckChild0Type, MVT::f32,
 
25667
              OPC_Scope, 18, 
 
25668
                OPC_CheckPatternPredicate, 10,
 
25669
                OPC_EmitInteger, MVT::i32, 14, 
 
25670
                OPC_EmitRegister, MVT::i32, 0 ,
 
25671
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTOUIZS), 0,
 
25672
                    1, MVT::f32, 3, 0, 1, 2, 
 
25673
              50, 
 
25674
                OPC_CheckPatternPredicate, 11,
 
25675
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
25676
                    1, MVT::v2f32, 0, 
 
25677
                OPC_EmitInteger, MVT::i32, 1, 
 
25678
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
25679
                    1, MVT::f64, 3, 1, 0, 2, 
 
25680
                OPC_EmitInteger, MVT::i32, 14, 
 
25681
                OPC_EmitRegister, MVT::i32, 0 ,
 
25682
                OPC_EmitNode, TARGET_OPCODE(ARM::VCVTf2ud_sfp), 0,
 
25683
                    1, MVT::f64, 3, 3, 4, 5, 
 
25684
                OPC_EmitInteger, MVT::i32, 1, 
 
25685
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
25686
                    1, MVT::f32, 2, 6, 7, 
 
25687
              0, 
 
25688
            0, 
 
25689
          17,  ARMISD::FMSTAT,
 
25690
            OPC_CaptureFlagInput,
 
25691
            OPC_CheckPatternPredicate, 8,
 
25692
            OPC_EmitInteger, MVT::i32, 14, 
 
25693
            OPC_EmitRegister, MVT::i32, 0 ,
 
25694
            OPC_MorphNodeTo, TARGET_OPCODE(ARM::FMSTAT), 0|OPFL_FlagInput|OPFL_FlagOutput,
 
25695
                0, 2, 0, 1, 
 
25696
          75|128,1,  ARMISD::VCEQ,
 
25697
            OPC_RecordChild0,
 
25698
            OPC_Scope, 24, 
 
25699
              OPC_CheckChild0Type, MVT::v8i8,
 
25700
              OPC_RecordChild1,
 
25701
              OPC_CheckType, MVT::v8i8,
 
25702
              OPC_CheckPatternPredicate, 3,
 
25703
              OPC_EmitInteger, MVT::i32, 14, 
 
25704
              OPC_EmitRegister, MVT::i32, 0 ,
 
25705
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv8i8), 0,
 
25706
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
25707
            24, 
 
25708
              OPC_CheckChild0Type, MVT::v4i16,
 
25709
              OPC_RecordChild1,
 
25710
              OPC_CheckType, MVT::v4i16,
 
25711
              OPC_CheckPatternPredicate, 3,
 
25712
              OPC_EmitInteger, MVT::i32, 14, 
 
25713
              OPC_EmitRegister, MVT::i32, 0 ,
 
25714
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv4i16), 0,
 
25715
                  1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
25716
            24, 
 
25717
              OPC_CheckChild0Type, MVT::v2i32,
 
25718
              OPC_RecordChild1,
 
25719
              OPC_CheckType, MVT::v2i32,
 
25720
              OPC_CheckPatternPredicate, 3,
 
25721
              OPC_EmitInteger, MVT::i32, 14, 
 
25722
              OPC_EmitRegister, MVT::i32, 0 ,
 
25723
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv2i32), 0,
 
25724
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25725
            24, 
 
25726
              OPC_CheckChild0Type, MVT::v16i8,
 
25727
              OPC_RecordChild1,
 
25728
              OPC_CheckType, MVT::v16i8,
 
25729
              OPC_CheckPatternPredicate, 3,
 
25730
              OPC_EmitInteger, MVT::i32, 14, 
 
25731
              OPC_EmitRegister, MVT::i32, 0 ,
 
25732
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv16i8), 0,
 
25733
                  1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
25734
            24, 
 
25735
              OPC_CheckChild0Type, MVT::v8i16,
 
25736
              OPC_RecordChild1,
 
25737
              OPC_CheckType, MVT::v8i16,
 
25738
              OPC_CheckPatternPredicate, 3,
 
25739
              OPC_EmitInteger, MVT::i32, 14, 
 
25740
              OPC_EmitRegister, MVT::i32, 0 ,
 
25741
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv8i16), 0,
 
25742
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
25743
            24, 
 
25744
              OPC_CheckChild0Type, MVT::v4i32,
 
25745
              OPC_RecordChild1,
 
25746
              OPC_CheckType, MVT::v4i32,
 
25747
              OPC_CheckPatternPredicate, 3,
 
25748
              OPC_EmitInteger, MVT::i32, 14, 
 
25749
              OPC_EmitRegister, MVT::i32, 0 ,
 
25750
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQv4i32), 0,
 
25751
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25752
            24, 
 
25753
              OPC_CheckChild0Type, MVT::v2f32,
 
25754
              OPC_RecordChild1,
 
25755
              OPC_CheckType, MVT::v2i32,
 
25756
              OPC_CheckPatternPredicate, 3,
 
25757
              OPC_EmitInteger, MVT::i32, 14, 
 
25758
              OPC_EmitRegister, MVT::i32, 0 ,
 
25759
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQfd), 0,
 
25760
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25761
            24, 
 
25762
              OPC_CheckChild0Type, MVT::v4f32,
 
25763
              OPC_RecordChild1,
 
25764
              OPC_CheckType, MVT::v4i32,
 
25765
              OPC_CheckPatternPredicate, 3,
 
25766
              OPC_EmitInteger, MVT::i32, 14, 
 
25767
              OPC_EmitRegister, MVT::i32, 0 ,
 
25768
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCEQfq), 0,
 
25769
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25770
            0, 
 
25771
          75|128,1,  ARMISD::VCGE,
 
25772
            OPC_RecordChild0,
 
25773
            OPC_Scope, 24, 
 
25774
              OPC_CheckChild0Type, MVT::v8i8,
 
25775
              OPC_RecordChild1,
 
25776
              OPC_CheckType, MVT::v8i8,
 
25777
              OPC_CheckPatternPredicate, 3,
 
25778
              OPC_EmitInteger, MVT::i32, 14, 
 
25779
              OPC_EmitRegister, MVT::i32, 0 ,
 
25780
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv8i8), 0,
 
25781
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
25782
            24, 
 
25783
              OPC_CheckChild0Type, MVT::v4i16,
 
25784
              OPC_RecordChild1,
 
25785
              OPC_CheckType, MVT::v4i16,
 
25786
              OPC_CheckPatternPredicate, 3,
 
25787
              OPC_EmitInteger, MVT::i32, 14, 
 
25788
              OPC_EmitRegister, MVT::i32, 0 ,
 
25789
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv4i16), 0,
 
25790
                  1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
25791
            24, 
 
25792
              OPC_CheckChild0Type, MVT::v2i32,
 
25793
              OPC_RecordChild1,
 
25794
              OPC_CheckType, MVT::v2i32,
 
25795
              OPC_CheckPatternPredicate, 3,
 
25796
              OPC_EmitInteger, MVT::i32, 14, 
 
25797
              OPC_EmitRegister, MVT::i32, 0 ,
 
25798
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv2i32), 0,
 
25799
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25800
            24, 
 
25801
              OPC_CheckChild0Type, MVT::v16i8,
 
25802
              OPC_RecordChild1,
 
25803
              OPC_CheckType, MVT::v16i8,
 
25804
              OPC_CheckPatternPredicate, 3,
 
25805
              OPC_EmitInteger, MVT::i32, 14, 
 
25806
              OPC_EmitRegister, MVT::i32, 0 ,
 
25807
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv16i8), 0,
 
25808
                  1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
25809
            24, 
 
25810
              OPC_CheckChild0Type, MVT::v8i16,
 
25811
              OPC_RecordChild1,
 
25812
              OPC_CheckType, MVT::v8i16,
 
25813
              OPC_CheckPatternPredicate, 3,
 
25814
              OPC_EmitInteger, MVT::i32, 14, 
 
25815
              OPC_EmitRegister, MVT::i32, 0 ,
 
25816
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv8i16), 0,
 
25817
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
25818
            24, 
 
25819
              OPC_CheckChild0Type, MVT::v4i32,
 
25820
              OPC_RecordChild1,
 
25821
              OPC_CheckType, MVT::v4i32,
 
25822
              OPC_CheckPatternPredicate, 3,
 
25823
              OPC_EmitInteger, MVT::i32, 14, 
 
25824
              OPC_EmitRegister, MVT::i32, 0 ,
 
25825
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEsv4i32), 0,
 
25826
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25827
            24, 
 
25828
              OPC_CheckChild0Type, MVT::v2f32,
 
25829
              OPC_RecordChild1,
 
25830
              OPC_CheckType, MVT::v2i32,
 
25831
              OPC_CheckPatternPredicate, 3,
 
25832
              OPC_EmitInteger, MVT::i32, 14, 
 
25833
              OPC_EmitRegister, MVT::i32, 0 ,
 
25834
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEfd), 0,
 
25835
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25836
            24, 
 
25837
              OPC_CheckChild0Type, MVT::v4f32,
 
25838
              OPC_RecordChild1,
 
25839
              OPC_CheckType, MVT::v4i32,
 
25840
              OPC_CheckPatternPredicate, 3,
 
25841
              OPC_EmitInteger, MVT::i32, 14, 
 
25842
              OPC_EmitRegister, MVT::i32, 0 ,
 
25843
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEfq), 0,
 
25844
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25845
            0, 
 
25846
          25|128,1,  ARMISD::VCGEU,
 
25847
            OPC_RecordChild0,
 
25848
            OPC_Scope, 24, 
 
25849
              OPC_CheckChild0Type, MVT::v8i8,
 
25850
              OPC_RecordChild1,
 
25851
              OPC_CheckType, MVT::v8i8,
 
25852
              OPC_CheckPatternPredicate, 3,
 
25853
              OPC_EmitInteger, MVT::i32, 14, 
 
25854
              OPC_EmitRegister, MVT::i32, 0 ,
 
25855
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv8i8), 0,
 
25856
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
25857
            24, 
 
25858
              OPC_CheckChild0Type, MVT::v4i16,
 
25859
              OPC_RecordChild1,
 
25860
              OPC_CheckType, MVT::v4i16,
 
25861
              OPC_CheckPatternPredicate, 3,
 
25862
              OPC_EmitInteger, MVT::i32, 14, 
 
25863
              OPC_EmitRegister, MVT::i32, 0 ,
 
25864
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv4i16), 0,
 
25865
                  1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
25866
            24, 
 
25867
              OPC_CheckChild0Type, MVT::v2i32,
 
25868
              OPC_RecordChild1,
 
25869
              OPC_CheckType, MVT::v2i32,
 
25870
              OPC_CheckPatternPredicate, 3,
 
25871
              OPC_EmitInteger, MVT::i32, 14, 
 
25872
              OPC_EmitRegister, MVT::i32, 0 ,
 
25873
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv2i32), 0,
 
25874
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25875
            24, 
 
25876
              OPC_CheckChild0Type, MVT::v16i8,
 
25877
              OPC_RecordChild1,
 
25878
              OPC_CheckType, MVT::v16i8,
 
25879
              OPC_CheckPatternPredicate, 3,
 
25880
              OPC_EmitInteger, MVT::i32, 14, 
 
25881
              OPC_EmitRegister, MVT::i32, 0 ,
 
25882
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv16i8), 0,
 
25883
                  1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
25884
            24, 
 
25885
              OPC_CheckChild0Type, MVT::v8i16,
 
25886
              OPC_RecordChild1,
 
25887
              OPC_CheckType, MVT::v8i16,
 
25888
              OPC_CheckPatternPredicate, 3,
 
25889
              OPC_EmitInteger, MVT::i32, 14, 
 
25890
              OPC_EmitRegister, MVT::i32, 0 ,
 
25891
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv8i16), 0,
 
25892
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
25893
            24, 
 
25894
              OPC_CheckChild0Type, MVT::v4i32,
 
25895
              OPC_RecordChild1,
 
25896
              OPC_CheckType, MVT::v4i32,
 
25897
              OPC_CheckPatternPredicate, 3,
 
25898
              OPC_EmitInteger, MVT::i32, 14, 
 
25899
              OPC_EmitRegister, MVT::i32, 0 ,
 
25900
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGEuv4i32), 0,
 
25901
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25902
            0, 
 
25903
          75|128,1,  ARMISD::VCGT,
 
25904
            OPC_RecordChild0,
 
25905
            OPC_Scope, 24, 
 
25906
              OPC_CheckChild0Type, MVT::v8i8,
 
25907
              OPC_RecordChild1,
 
25908
              OPC_CheckType, MVT::v8i8,
 
25909
              OPC_CheckPatternPredicate, 3,
 
25910
              OPC_EmitInteger, MVT::i32, 14, 
 
25911
              OPC_EmitRegister, MVT::i32, 0 ,
 
25912
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv8i8), 0,
 
25913
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
25914
            24, 
 
25915
              OPC_CheckChild0Type, MVT::v4i16,
 
25916
              OPC_RecordChild1,
 
25917
              OPC_CheckType, MVT::v4i16,
 
25918
              OPC_CheckPatternPredicate, 3,
 
25919
              OPC_EmitInteger, MVT::i32, 14, 
 
25920
              OPC_EmitRegister, MVT::i32, 0 ,
 
25921
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv4i16), 0,
 
25922
                  1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
25923
            24, 
 
25924
              OPC_CheckChild0Type, MVT::v2i32,
 
25925
              OPC_RecordChild1,
 
25926
              OPC_CheckType, MVT::v2i32,
 
25927
              OPC_CheckPatternPredicate, 3,
 
25928
              OPC_EmitInteger, MVT::i32, 14, 
 
25929
              OPC_EmitRegister, MVT::i32, 0 ,
 
25930
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv2i32), 0,
 
25931
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25932
            24, 
 
25933
              OPC_CheckChild0Type, MVT::v16i8,
 
25934
              OPC_RecordChild1,
 
25935
              OPC_CheckType, MVT::v16i8,
 
25936
              OPC_CheckPatternPredicate, 3,
 
25937
              OPC_EmitInteger, MVT::i32, 14, 
 
25938
              OPC_EmitRegister, MVT::i32, 0 ,
 
25939
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv16i8), 0,
 
25940
                  1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
25941
            24, 
 
25942
              OPC_CheckChild0Type, MVT::v8i16,
 
25943
              OPC_RecordChild1,
 
25944
              OPC_CheckType, MVT::v8i16,
 
25945
              OPC_CheckPatternPredicate, 3,
 
25946
              OPC_EmitInteger, MVT::i32, 14, 
 
25947
              OPC_EmitRegister, MVT::i32, 0 ,
 
25948
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv8i16), 0,
 
25949
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
25950
            24, 
 
25951
              OPC_CheckChild0Type, MVT::v4i32,
 
25952
              OPC_RecordChild1,
 
25953
              OPC_CheckType, MVT::v4i32,
 
25954
              OPC_CheckPatternPredicate, 3,
 
25955
              OPC_EmitInteger, MVT::i32, 14, 
 
25956
              OPC_EmitRegister, MVT::i32, 0 ,
 
25957
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTsv4i32), 0,
 
25958
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25959
            24, 
 
25960
              OPC_CheckChild0Type, MVT::v2f32,
 
25961
              OPC_RecordChild1,
 
25962
              OPC_CheckType, MVT::v2i32,
 
25963
              OPC_CheckPatternPredicate, 3,
 
25964
              OPC_EmitInteger, MVT::i32, 14, 
 
25965
              OPC_EmitRegister, MVT::i32, 0 ,
 
25966
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTfd), 0,
 
25967
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
25968
            24, 
 
25969
              OPC_CheckChild0Type, MVT::v4f32,
 
25970
              OPC_RecordChild1,
 
25971
              OPC_CheckType, MVT::v4i32,
 
25972
              OPC_CheckPatternPredicate, 3,
 
25973
              OPC_EmitInteger, MVT::i32, 14, 
 
25974
              OPC_EmitRegister, MVT::i32, 0 ,
 
25975
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTfq), 0,
 
25976
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
25977
            0, 
 
25978
          25|128,1,  ARMISD::VCGTU,
 
25979
            OPC_RecordChild0,
 
25980
            OPC_Scope, 24, 
 
25981
              OPC_CheckChild0Type, MVT::v8i8,
 
25982
              OPC_RecordChild1,
 
25983
              OPC_CheckType, MVT::v8i8,
 
25984
              OPC_CheckPatternPredicate, 3,
 
25985
              OPC_EmitInteger, MVT::i32, 14, 
 
25986
              OPC_EmitRegister, MVT::i32, 0 ,
 
25987
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv8i8), 0,
 
25988
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
25989
            24, 
 
25990
              OPC_CheckChild0Type, MVT::v4i16,
 
25991
              OPC_RecordChild1,
 
25992
              OPC_CheckType, MVT::v4i16,
 
25993
              OPC_CheckPatternPredicate, 3,
 
25994
              OPC_EmitInteger, MVT::i32, 14, 
 
25995
              OPC_EmitRegister, MVT::i32, 0 ,
 
25996
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv4i16), 0,
 
25997
                  1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
25998
            24, 
 
25999
              OPC_CheckChild0Type, MVT::v2i32,
 
26000
              OPC_RecordChild1,
 
26001
              OPC_CheckType, MVT::v2i32,
 
26002
              OPC_CheckPatternPredicate, 3,
 
26003
              OPC_EmitInteger, MVT::i32, 14, 
 
26004
              OPC_EmitRegister, MVT::i32, 0 ,
 
26005
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv2i32), 0,
 
26006
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
26007
            24, 
 
26008
              OPC_CheckChild0Type, MVT::v16i8,
 
26009
              OPC_RecordChild1,
 
26010
              OPC_CheckType, MVT::v16i8,
 
26011
              OPC_CheckPatternPredicate, 3,
 
26012
              OPC_EmitInteger, MVT::i32, 14, 
 
26013
              OPC_EmitRegister, MVT::i32, 0 ,
 
26014
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv16i8), 0,
 
26015
                  1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
26016
            24, 
 
26017
              OPC_CheckChild0Type, MVT::v8i16,
 
26018
              OPC_RecordChild1,
 
26019
              OPC_CheckType, MVT::v8i16,
 
26020
              OPC_CheckPatternPredicate, 3,
 
26021
              OPC_EmitInteger, MVT::i32, 14, 
 
26022
              OPC_EmitRegister, MVT::i32, 0 ,
 
26023
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv8i16), 0,
 
26024
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
26025
            24, 
 
26026
              OPC_CheckChild0Type, MVT::v4i32,
 
26027
              OPC_RecordChild1,
 
26028
              OPC_CheckType, MVT::v4i32,
 
26029
              OPC_CheckPatternPredicate, 3,
 
26030
              OPC_EmitInteger, MVT::i32, 14, 
 
26031
              OPC_EmitRegister, MVT::i32, 0 ,
 
26032
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCGTuv4i32), 0,
 
26033
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
26034
            0, 
 
26035
          25|128,1,  ARMISD::VTST,
 
26036
            OPC_RecordChild0,
 
26037
            OPC_Scope, 24, 
 
26038
              OPC_CheckChild0Type, MVT::v8i8,
 
26039
              OPC_RecordChild1,
 
26040
              OPC_CheckType, MVT::v8i8,
 
26041
              OPC_CheckPatternPredicate, 3,
 
26042
              OPC_EmitInteger, MVT::i32, 14, 
 
26043
              OPC_EmitRegister, MVT::i32, 0 ,
 
26044
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv8i8), 0,
 
26045
                  1, MVT::v8i8, 4, 0, 1, 2, 3, 
 
26046
            24, 
 
26047
              OPC_CheckChild0Type, MVT::v4i16,
 
26048
              OPC_RecordChild1,
 
26049
              OPC_CheckType, MVT::v4i16,
 
26050
              OPC_CheckPatternPredicate, 3,
 
26051
              OPC_EmitInteger, MVT::i32, 14, 
 
26052
              OPC_EmitRegister, MVT::i32, 0 ,
 
26053
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv4i16), 0,
 
26054
                  1, MVT::v4i16, 4, 0, 1, 2, 3, 
 
26055
            24, 
 
26056
              OPC_CheckChild0Type, MVT::v2i32,
 
26057
              OPC_RecordChild1,
 
26058
              OPC_CheckType, MVT::v2i32,
 
26059
              OPC_CheckPatternPredicate, 3,
 
26060
              OPC_EmitInteger, MVT::i32, 14, 
 
26061
              OPC_EmitRegister, MVT::i32, 0 ,
 
26062
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv2i32), 0,
 
26063
                  1, MVT::v2i32, 4, 0, 1, 2, 3, 
 
26064
            24, 
 
26065
              OPC_CheckChild0Type, MVT::v16i8,
 
26066
              OPC_RecordChild1,
 
26067
              OPC_CheckType, MVT::v16i8,
 
26068
              OPC_CheckPatternPredicate, 3,
 
26069
              OPC_EmitInteger, MVT::i32, 14, 
 
26070
              OPC_EmitRegister, MVT::i32, 0 ,
 
26071
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv16i8), 0,
 
26072
                  1, MVT::v16i8, 4, 0, 1, 2, 3, 
 
26073
            24, 
 
26074
              OPC_CheckChild0Type, MVT::v8i16,
 
26075
              OPC_RecordChild1,
 
26076
              OPC_CheckType, MVT::v8i16,
 
26077
              OPC_CheckPatternPredicate, 3,
 
26078
              OPC_EmitInteger, MVT::i32, 14, 
 
26079
              OPC_EmitRegister, MVT::i32, 0 ,
 
26080
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv8i16), 0,
 
26081
                  1, MVT::v8i16, 4, 0, 1, 2, 3, 
 
26082
            24, 
 
26083
              OPC_CheckChild0Type, MVT::v4i32,
 
26084
              OPC_RecordChild1,
 
26085
              OPC_CheckType, MVT::v4i32,
 
26086
              OPC_CheckPatternPredicate, 3,
 
26087
              OPC_EmitInteger, MVT::i32, 14, 
 
26088
              OPC_EmitRegister, MVT::i32, 0 ,
 
26089
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VTSTv4i32), 0,
 
26090
                  1, MVT::v4i32, 4, 0, 1, 2, 3, 
 
26091
            0, 
 
26092
          49,  ISD::FP_TO_SINT,
 
26093
            OPC_RecordChild0,
 
26094
            OPC_Scope, 22, 
 
26095
              OPC_CheckChild0Type, MVT::v2f32,
 
26096
              OPC_CheckType, MVT::v2i32,
 
26097
              OPC_CheckPatternPredicate, 3,
 
26098
              OPC_EmitInteger, MVT::i32, 14, 
 
26099
              OPC_EmitRegister, MVT::i32, 0 ,
 
26100
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2sd), 0,
 
26101
                  1, MVT::v2i32, 3, 0, 1, 2, 
 
26102
            22, 
 
26103
              OPC_CheckChild0Type, MVT::v4f32,
 
26104
              OPC_CheckType, MVT::v4i32,
 
26105
              OPC_CheckPatternPredicate, 3,
 
26106
              OPC_EmitInteger, MVT::i32, 14, 
 
26107
              OPC_EmitRegister, MVT::i32, 0 ,
 
26108
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2sq), 0,
 
26109
                  1, MVT::v4i32, 3, 0, 1, 2, 
 
26110
            0, 
 
26111
          49,  ISD::FP_TO_UINT,
 
26112
            OPC_RecordChild0,
 
26113
            OPC_Scope, 22, 
 
26114
              OPC_CheckChild0Type, MVT::v2f32,
 
26115
              OPC_CheckType, MVT::v2i32,
 
26116
              OPC_CheckPatternPredicate, 3,
 
26117
              OPC_EmitInteger, MVT::i32, 14, 
 
26118
              OPC_EmitRegister, MVT::i32, 0 ,
 
26119
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2ud), 0,
 
26120
                  1, MVT::v2i32, 3, 0, 1, 2, 
 
26121
            22, 
 
26122
              OPC_CheckChild0Type, MVT::v4f32,
 
26123
              OPC_CheckType, MVT::v4i32,
 
26124
              OPC_CheckPatternPredicate, 3,
 
26125
              OPC_EmitInteger, MVT::i32, 14, 
 
26126
              OPC_EmitRegister, MVT::i32, 0 ,
 
26127
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTf2uq), 0,
 
26128
                  1, MVT::v4i32, 3, 0, 1, 2, 
 
26129
            0, 
 
26130
          49,  ISD::SINT_TO_FP,
 
26131
            OPC_RecordChild0,
 
26132
            OPC_Scope, 22, 
 
26133
              OPC_CheckChild0Type, MVT::v2i32,
 
26134
              OPC_CheckType, MVT::v2f32,
 
26135
              OPC_CheckPatternPredicate, 3,
 
26136
              OPC_EmitInteger, MVT::i32, 14, 
 
26137
              OPC_EmitRegister, MVT::i32, 0 ,
 
26138
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTs2fd), 0,
 
26139
                  1, MVT::v2f32, 3, 0, 1, 2, 
 
26140
            22, 
 
26141
              OPC_CheckChild0Type, MVT::v4i32,
 
26142
              OPC_CheckType, MVT::v4f32,
 
26143
              OPC_CheckPatternPredicate, 3,
 
26144
              OPC_EmitInteger, MVT::i32, 14, 
 
26145
              OPC_EmitRegister, MVT::i32, 0 ,
 
26146
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTs2fq), 0,
 
26147
                  1, MVT::v4f32, 3, 0, 1, 2, 
 
26148
            0, 
 
26149
          49,  ISD::UINT_TO_FP,
 
26150
            OPC_RecordChild0,
 
26151
            OPC_Scope, 22, 
 
26152
              OPC_CheckChild0Type, MVT::v2i32,
 
26153
              OPC_CheckType, MVT::v2f32,
 
26154
              OPC_CheckPatternPredicate, 3,
 
26155
              OPC_EmitInteger, MVT::i32, 14, 
 
26156
              OPC_EmitRegister, MVT::i32, 0 ,
 
26157
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTu2fd), 0,
 
26158
                  1, MVT::v2f32, 3, 0, 1, 2, 
 
26159
            22, 
 
26160
              OPC_CheckChild0Type, MVT::v4i32,
 
26161
              OPC_CheckType, MVT::v4f32,
 
26162
              OPC_CheckPatternPredicate, 3,
 
26163
              OPC_EmitInteger, MVT::i32, 14, 
 
26164
              OPC_EmitRegister, MVT::i32, 0 ,
 
26165
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VCVTu2fq), 0,
 
26166
                  1, MVT::v4f32, 3, 0, 1, 2, 
 
26167
            0, 
 
26168
          35|128,1,  ARMISD::VREV64,
 
26169
            OPC_RecordChild0,
 
26170
            OPC_SwitchType , 18,  MVT::v8i8,
 
26171
              OPC_CheckPatternPredicate, 3,
 
26172
              OPC_EmitInteger, MVT::i32, 14, 
 
26173
              OPC_EmitRegister, MVT::i32, 0 ,
 
26174
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64d8), 0,
 
26175
                  1, MVT::v8i8, 3, 0, 1, 2, 
 
26176
            18,  MVT::v4i16,
 
26177
              OPC_CheckPatternPredicate, 3,
 
26178
              OPC_EmitInteger, MVT::i32, 14, 
 
26179
              OPC_EmitRegister, MVT::i32, 0 ,
 
26180
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64d16), 0,
 
26181
                  1, MVT::v4i16, 3, 0, 1, 2, 
 
26182
            18,  MVT::v2i32,
 
26183
              OPC_CheckPatternPredicate, 3,
 
26184
              OPC_EmitInteger, MVT::i32, 14, 
 
26185
              OPC_EmitRegister, MVT::i32, 0 ,
 
26186
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64d32), 0,
 
26187
                  1, MVT::v2i32, 3, 0, 1, 2, 
 
26188
            18,  MVT::v2f32,
 
26189
              OPC_CheckPatternPredicate, 3,
 
26190
              OPC_EmitInteger, MVT::i32, 14, 
 
26191
              OPC_EmitRegister, MVT::i32, 0 ,
 
26192
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64df), 0,
 
26193
                  1, MVT::v2f32, 3, 0, 1, 2, 
 
26194
            18,  MVT::v16i8,
 
26195
              OPC_CheckPatternPredicate, 3,
 
26196
              OPC_EmitInteger, MVT::i32, 14, 
 
26197
              OPC_EmitRegister, MVT::i32, 0 ,
 
26198
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64q8), 0,
 
26199
                  1, MVT::v16i8, 3, 0, 1, 2, 
 
26200
            18,  MVT::v8i16,
 
26201
              OPC_CheckPatternPredicate, 3,
 
26202
              OPC_EmitInteger, MVT::i32, 14, 
 
26203
              OPC_EmitRegister, MVT::i32, 0 ,
 
26204
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64q16), 0,
 
26205
                  1, MVT::v8i16, 3, 0, 1, 2, 
 
26206
            18,  MVT::v4i32,
 
26207
              OPC_CheckPatternPredicate, 3,
 
26208
              OPC_EmitInteger, MVT::i32, 14, 
 
26209
              OPC_EmitRegister, MVT::i32, 0 ,
 
26210
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64q32), 0,
 
26211
                  1, MVT::v4i32, 3, 0, 1, 2, 
 
26212
            18,  MVT::v4f32,
 
26213
              OPC_CheckPatternPredicate, 3,
 
26214
              OPC_EmitInteger, MVT::i32, 14, 
 
26215
              OPC_EmitRegister, MVT::i32, 0 ,
 
26216
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV64qf), 0,
 
26217
                  1, MVT::v4f32, 3, 0, 1, 2, 
 
26218
            0, 
 
26219
          83,  ARMISD::VREV32,
 
26220
            OPC_RecordChild0,
 
26221
            OPC_SwitchType , 18,  MVT::v8i8,
 
26222
              OPC_CheckPatternPredicate, 3,
 
26223
              OPC_EmitInteger, MVT::i32, 14, 
 
26224
              OPC_EmitRegister, MVT::i32, 0 ,
 
26225
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32d8), 0,
 
26226
                  1, MVT::v8i8, 3, 0, 1, 2, 
 
26227
            18,  MVT::v4i16,
 
26228
              OPC_CheckPatternPredicate, 3,
 
26229
              OPC_EmitInteger, MVT::i32, 14, 
 
26230
              OPC_EmitRegister, MVT::i32, 0 ,
 
26231
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32d16), 0,
 
26232
                  1, MVT::v4i16, 3, 0, 1, 2, 
 
26233
            18,  MVT::v16i8,
 
26234
              OPC_CheckPatternPredicate, 3,
 
26235
              OPC_EmitInteger, MVT::i32, 14, 
 
26236
              OPC_EmitRegister, MVT::i32, 0 ,
 
26237
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32q8), 0,
 
26238
                  1, MVT::v16i8, 3, 0, 1, 2, 
 
26239
            18,  MVT::v8i16,
 
26240
              OPC_CheckPatternPredicate, 3,
 
26241
              OPC_EmitInteger, MVT::i32, 14, 
 
26242
              OPC_EmitRegister, MVT::i32, 0 ,
 
26243
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV32q16), 0,
 
26244
                  1, MVT::v8i16, 3, 0, 1, 2, 
 
26245
            0, 
 
26246
          43,  ARMISD::VREV16,
 
26247
            OPC_RecordChild0,
 
26248
            OPC_SwitchType , 18,  MVT::v8i8,
 
26249
              OPC_CheckPatternPredicate, 3,
 
26250
              OPC_EmitInteger, MVT::i32, 14, 
 
26251
              OPC_EmitRegister, MVT::i32, 0 ,
 
26252
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV16d8), 0,
 
26253
                  1, MVT::v8i8, 3, 0, 1, 2, 
 
26254
            18,  MVT::v16i8,
 
26255
              OPC_CheckPatternPredicate, 3,
 
26256
              OPC_EmitInteger, MVT::i32, 14, 
 
26257
              OPC_EmitRegister, MVT::i32, 0 ,
 
26258
              OPC_MorphNodeTo, TARGET_OPCODE(ARM::VREV16q8), 0,
 
26259
                  1, MVT::v16i8, 3, 0, 1, 2, 
 
26260
            0, 
 
26261
          67|128,2,  ISD::SCALAR_TO_VECTOR,
 
26262
            OPC_RecordChild0,
 
26263
            OPC_Scope, 48, 
 
26264
              OPC_CheckChild0Type, MVT::f32,
 
26265
              OPC_SwitchType , 20,  MVT::v2f32,
 
26266
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26267
                    1, MVT::v2f32, 0, 
 
26268
                OPC_EmitInteger, MVT::i32, 1, 
 
26269
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26270
                    1, MVT::v2f32, 3, 1, 0, 2, 
 
26271
              20,  MVT::v4f32,
 
26272
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26273
                    1, MVT::v4f32, 0, 
 
26274
                OPC_EmitInteger, MVT::i32, 1, 
 
26275
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26276
                    1, MVT::v4f32, 3, 1, 0, 2, 
 
26277
              0, 
 
26278
            24, 
 
26279
              OPC_CheckChild0Type, MVT::f64,
 
26280
              OPC_CheckType, MVT::v2f64,
 
26281
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26282
                  1, MVT::v2f64, 0, 
 
26283
              OPC_EmitInteger, MVT::i32, 5, 
 
26284
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26285
                  1, MVT::v2f64, 3, 1, 0, 2, 
 
26286
            116|128,1, 
 
26287
              OPC_CheckChild0Type, MVT::i32,
 
26288
              OPC_SwitchType , 28,  MVT::v8i8,
 
26289
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26290
                    1, MVT::v8i8, 0, 
 
26291
                OPC_EmitInteger, MVT::i32, 0, 
 
26292
                OPC_EmitInteger, MVT::i32, 14, 
 
26293
                OPC_EmitRegister, MVT::i32, 0 ,
 
26294
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi8), 0,
 
26295
                    1, MVT::v8i8, 5, 1, 0, 2, 3, 4, 
 
26296
              28,  MVT::v4i16,
 
26297
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26298
                    1, MVT::v4i16, 0, 
 
26299
                OPC_EmitInteger, MVT::i32, 0, 
 
26300
                OPC_EmitInteger, MVT::i32, 14, 
 
26301
                OPC_EmitRegister, MVT::i32, 0 ,
 
26302
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi16), 0,
 
26303
                    1, MVT::v4i16, 5, 1, 0, 2, 3, 4, 
 
26304
              28,  MVT::v2i32,
 
26305
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26306
                    1, MVT::v2i32, 0, 
 
26307
                OPC_EmitInteger, MVT::i32, 0, 
 
26308
                OPC_EmitInteger, MVT::i32, 14, 
 
26309
                OPC_EmitRegister, MVT::i32, 0 ,
 
26310
                OPC_MorphNodeTo, TARGET_OPCODE(ARM::VSETLNi32), 0,
 
26311
                    1, MVT::v2i32, 5, 1, 0, 2, 3, 4, 
 
26312
              48,  MVT::v16i8,
 
26313
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26314
                    1, MVT::v16i8, 0, 
 
26315
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26316
                    1, MVT::v8i8, 0, 
 
26317
                OPC_EmitInteger, MVT::i32, 0, 
 
26318
                OPC_EmitInteger, MVT::i32, 14, 
 
26319
                OPC_EmitRegister, MVT::i32, 0 ,
 
26320
                OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi8), 0,
 
26321
                    1, MVT::f64, 5, 2, 0, 3, 4, 5, 
 
26322
                OPC_EmitInteger, MVT::i32, 5, 
 
26323
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26324
                    1, MVT::v16i8, 3, 1, 6, 7, 
 
26325
              48,  MVT::v8i16,
 
26326
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26327
                    1, MVT::v8i16, 0, 
 
26328
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26329
                    1, MVT::v4i16, 0, 
 
26330
                OPC_EmitInteger, MVT::i32, 0, 
 
26331
                OPC_EmitInteger, MVT::i32, 14, 
 
26332
                OPC_EmitRegister, MVT::i32, 0 ,
 
26333
                OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi16), 0,
 
26334
                    1, MVT::f64, 5, 2, 0, 3, 4, 5, 
 
26335
                OPC_EmitInteger, MVT::i32, 5, 
 
26336
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26337
                    1, MVT::v8i16, 3, 1, 6, 7, 
 
26338
              48,  MVT::v4i32,
 
26339
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26340
                    1, MVT::v4i32, 0, 
 
26341
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26342
                    1, MVT::v2i32, 0, 
 
26343
                OPC_EmitInteger, MVT::i32, 0, 
 
26344
                OPC_EmitInteger, MVT::i32, 14, 
 
26345
                OPC_EmitRegister, MVT::i32, 0 ,
 
26346
                OPC_EmitNode, TARGET_OPCODE(ARM::VSETLNi32), 0,
 
26347
                    1, MVT::f64, 5, 2, 0, 3, 4, 5, 
 
26348
                OPC_EmitInteger, MVT::i32, 5, 
 
26349
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26350
                    1, MVT::v4i32, 3, 1, 6, 7, 
 
26351
              0, 
 
26352
            0, 
 
26353
          73,  ARMISD::FMAX,
 
26354
            OPC_RecordChild0,
 
26355
            OPC_RecordChild1,
 
26356
            OPC_CheckPatternPredicate, 11,
 
26357
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26358
                1, MVT::v2f32, 0, 
 
26359
            OPC_EmitInteger, MVT::i32, 1, 
 
26360
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26361
                1, MVT::f64, 3, 2, 0, 3, 
 
26362
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26363
                1, MVT::v2f32, 0, 
 
26364
            OPC_EmitInteger, MVT::i32, 1, 
 
26365
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26366
                1, MVT::f64, 3, 5, 1, 6, 
 
26367
            OPC_EmitInteger, MVT::i32, 14, 
 
26368
            OPC_EmitRegister, MVT::i32, 0 ,
 
26369
            OPC_EmitNode, TARGET_OPCODE(ARM::VMAXfd_sfp), 0,
 
26370
                1, MVT::f64, 4, 4, 7, 8, 9, 
 
26371
            OPC_EmitInteger, MVT::i32, 1, 
 
26372
            OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
26373
                1, MVT::f32, 2, 10, 11, 
 
26374
          73,  ARMISD::FMIN,
 
26375
            OPC_RecordChild0,
 
26376
            OPC_RecordChild1,
 
26377
            OPC_CheckPatternPredicate, 11,
 
26378
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26379
                1, MVT::v2f32, 0, 
 
26380
            OPC_EmitInteger, MVT::i32, 1, 
 
26381
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26382
                1, MVT::f64, 3, 2, 0, 3, 
 
26383
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
 
26384
                1, MVT::v2f32, 0, 
 
26385
            OPC_EmitInteger, MVT::i32, 1, 
 
26386
            OPC_EmitNode, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
 
26387
                1, MVT::f64, 3, 5, 1, 6, 
 
26388
            OPC_EmitInteger, MVT::i32, 14, 
 
26389
            OPC_EmitRegister, MVT::i32, 0 ,
 
26390
            OPC_EmitNode, TARGET_OPCODE(ARM::VMINfd_sfp), 0,
 
26391
                1, MVT::f64, 4, 4, 7, 8, 9, 
 
26392
            OPC_EmitInteger, MVT::i32, 1, 
 
26393
            OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
 
26394
                1, MVT::f32, 2, 10, 11, 
 
26395
          0, 
 
26396
    0
 
26397
  }; // Total Array size is 63661 bytes
 
26398
 
 
26399
  #undef TARGET_OPCODE
 
26400
  return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
 
26401
}
 
26402
 
 
26403
bool CheckPatternPredicate(unsigned PredNo) const {
 
26404
  switch (PredNo) {
 
26405
  default: assert(0 && "Invalid predicate in table?");
 
26406
  case 0: return (!Subtarget->isThumb()) && (Subtarget->hasV6Ops());
 
26407
  case 1: return (Subtarget->isThumb1Only()) && (Subtarget->hasV6Ops());
 
26408
  case 2: return (Subtarget->isThumb2());
 
26409
  case 3: return (Subtarget->hasNEON());
 
26410
  case 4: return (!Subtarget->isThumb()) && (Subtarget->hasV6T2Ops());
 
26411
  case 5: return (!Subtarget->isThumb());
 
26412
  case 6: return (Subtarget->isThumb1Only());
 
26413
  case 7: return (!Subtarget->isThumb()) && (Subtarget->hasV5TEOps());
 
26414
  case 8: return (Subtarget->hasVFP2());
 
26415
  case 9: return (Subtarget->isThumb());
 
26416
  case 10: return (Subtarget->hasVFP2()) && (!Subtarget->useNEONForSinglePrecisionFP());
 
26417
  case 11: return (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP());
 
26418
  case 12: return (!Subtarget->useNEONForSinglePrecisionFP());
 
26419
  case 13: return (!HonorSignDependentRoundingFPMath());
 
26420
  case 14: return (!Subtarget->isThumb()) && (!Subtarget->isTargetDarwin());
 
26421
  case 15: return (!Subtarget->isThumb()) && (Subtarget->isTargetDarwin());
 
26422
  case 16: return (Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (!Subtarget->isTargetDarwin());
 
26423
  case 17: return (Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (Subtarget->isTargetDarwin());
 
26424
  case 18: return (!Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (!Subtarget->isTargetDarwin());
 
26425
  case 19: return (!Subtarget->isThumb()) && (Subtarget->hasV5TOps()) && (Subtarget->isTargetDarwin());
 
26426
  case 20: return (!Subtarget->isThumb()) && (!Subtarget->useMovt());
 
26427
  case 21: return (!Subtarget->isThumb()) && (Subtarget->useMovt());
 
26428
  case 22: return (Subtarget->isThumb2()) && (!Subtarget->useMovt());
 
26429
  case 23: return (Subtarget->isThumb2()) && (Subtarget->useMovt());
 
26430
  case 24: return (Subtarget->isThumb()) && (!Subtarget->isTargetDarwin());
 
26431
  case 25: return (Subtarget->isThumb()) && (Subtarget->isTargetDarwin());
 
26432
  case 26: return (!Subtarget->isThumb()) && (!Subtarget->hasV6T2Ops());
 
26433
  case 27: return (Subtarget->hasVFP3());
 
26434
  case 28: return (Subtarget->isThumb1Only()) && (!Subtarget->isTargetDarwin());
 
26435
  case 29: return (Subtarget->isThumb1Only()) && (Subtarget->isTargetDarwin());
 
26436
  case 30: return (!Subtarget->isThumb()) && (Subtarget->hasV5TOps());
 
26437
  case 31: return (!Subtarget->isThumb()) && (Subtarget->hasV7Ops());
 
26438
  }
 
26439
}
 
26440
 
 
26441
bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
 
26442
  switch (PredNo) {
 
26443
  default: assert(0 && "Invalid predicate in table?");
 
26444
  case 0: { // Predicate_imm16_31
 
26445
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26446
 
 
26447
  return (int32_t)N->getZExtValue() >= 16 && (int32_t)N->getZExtValue() < 32;
 
26448
 
 
26449
  }
 
26450
  case 1: { // Predicate_imm1_15
 
26451
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26452
 
 
26453
  return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 16;
 
26454
 
 
26455
  }
 
26456
  case 2: { // Predicate_immAllOnesV_bc
 
26457
    SDNode *N = Node;
 
26458
 
 
26459
  return ISD::isBuildVectorAllOnes(N);
 
26460
 
 
26461
  }
 
26462
  case 3: { // Predicate_lo16AllZero
 
26463
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26464
 
 
26465
  // Returns true if all low 16-bits are 0.
 
26466
  return (((uint32_t)N->getZExtValue()) & 0xFFFFUL) == 0;
 
26467
 
 
26468
  }
 
26469
  case 4: { // Predicate_t2_so_imm
 
26470
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26471
 
 
26472
  return ARM_AM::getT2SOImmVal((uint32_t)N->getZExtValue()) != -1;
 
26473
 
 
26474
  }
 
26475
  case 5: { // Predicate_so_imm
 
26476
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26477
 
 
26478
      return ARM_AM::getSOImmVal(N->getZExtValue()) != -1;
 
26479
    
 
26480
  }
 
26481
  case 6: { // Predicate_t2_so_imm_not
 
26482
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26483
 
 
26484
  return ARM_AM::getT2SOImmVal(~((uint32_t)N->getZExtValue())) != -1;
 
26485
 
 
26486
  }
 
26487
  case 7: { // Predicate_so_imm2part
 
26488
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26489
 
 
26490
      return ARM_AM::isSOImmTwoPartVal((unsigned)N->getZExtValue());
 
26491
    
 
26492
  }
 
26493
  case 8: { // Predicate_t2_so_imm2part
 
26494
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26495
 
 
26496
      return ARM_AM::isT2SOImmTwoPartVal((unsigned)N->getZExtValue());
 
26497
    
 
26498
  }
 
26499
  case 9: { // Predicate_rot_imm
 
26500
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26501
 
 
26502
  int32_t v = (int32_t)N->getZExtValue();
 
26503
  return v == 8 || v == 16 || v == 24;
 
26504
 
 
26505
  }
 
26506
  case 10: { // Predicate_sext_16_node
 
26507
    SDNode *N = Node;
 
26508
 
 
26509
  return CurDAG->ComputeNumSignBits(SDValue(N,0)) >= 17;
 
26510
 
 
26511
  }
 
26512
  case 11: { // Predicate_imm0_255_neg
 
26513
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26514
 
 
26515
  return (uint32_t)(-N->getZExtValue()) < 255;
 
26516
 
 
26517
  }
 
26518
  case 12: { // Predicate_so_imm_neg
 
26519
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26520
 
 
26521
    return ARM_AM::getSOImmVal(-(int)N->getZExtValue()) != -1;
 
26522
  
 
26523
  }
 
26524
  case 13: { // Predicate_imm0_7
 
26525
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26526
 
 
26527
  return (uint32_t)N->getZExtValue() < 8;
 
26528
 
 
26529
  }
 
26530
  case 14: { // Predicate_imm8_255
 
26531
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26532
 
 
26533
  return (uint32_t)N->getZExtValue() >= 8 && (uint32_t)N->getZExtValue() < 256;
 
26534
 
 
26535
  }
 
26536
  case 15: { // Predicate_imm0_7_neg
 
26537
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26538
 
 
26539
  return (uint32_t)-N->getZExtValue() < 8;
 
26540
 
 
26541
  }
 
26542
  case 16: { // Predicate_imm8_255_neg
 
26543
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26544
 
 
26545
  unsigned Val = -N->getZExtValue();
 
26546
  return Val >= 8 && Val < 256;
 
26547
 
 
26548
  }
 
26549
  case 17: { // Predicate_imm0_4095
 
26550
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26551
 
 
26552
  return (uint32_t)N->getZExtValue() < 4096;
 
26553
 
 
26554
  }
 
26555
  case 18: { // Predicate_t2_so_imm_neg
 
26556
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26557
 
 
26558
  return ARM_AM::getT2SOImmVal(-((int)N->getZExtValue())) != -1;
 
26559
 
 
26560
  }
 
26561
  case 19: { // Predicate_imm0_4095_neg
 
26562
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26563
 
 
26564
 return (uint32_t)(-N->getZExtValue()) < 4096;
 
26565
 
 
26566
  }
 
26567
  case 20: { // Predicate_so_neg_imm2part
 
26568
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26569
 
 
26570
      return ARM_AM::isSOImmTwoPartVal(-(int)N->getZExtValue());
 
26571
    
 
26572
  }
 
26573
  case 21: { // Predicate_t2_so_neg_imm2part
 
26574
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26575
 
 
26576
      return ARM_AM::isT2SOImmTwoPartVal(-(int)N->getZExtValue());
 
26577
    
 
26578
  }
 
26579
  case 22: { // Predicate_bf_inv_mask_imm
 
26580
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26581
 
 
26582
  uint32_t v = (uint32_t)N->getZExtValue();
 
26583
  if (v == 0xffffffff)
 
26584
    return 0;
 
26585
  // there can be 1's on either or both "outsides", all the "inside"
 
26586
  // bits must be 0's
 
26587
  unsigned int lsb = 0, msb = 31;
 
26588
  while (v & (1 << msb)) --msb;
 
26589
  while (v & (1 << lsb)) ++lsb;
 
26590
  for (unsigned int i = lsb; i <= msb; ++i) {
 
26591
    if (v & (1 << i))
 
26592
      return 0;
 
26593
  }
 
26594
  return 1;
 
26595
 
 
26596
  }
 
26597
  case 23: { // Predicate_so_imm_not
 
26598
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26599
 
 
26600
    return ARM_AM::getSOImmVal(~(int)N->getZExtValue()) != -1;
 
26601
  
 
26602
  }
 
26603
  case 24: { // Predicate_imm1_31
 
26604
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26605
 
 
26606
  return (int32_t)N->getZExtValue() >= 1 && (int32_t)N->getZExtValue() < 32;
 
26607
 
 
26608
  }
 
26609
  case 25: { // Predicate_unindexedload
 
26610
    SDNode *N = Node;
 
26611
 
 
26612
  return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
 
26613
 
 
26614
  }
 
26615
  case 26: { // Predicate_load
 
26616
    SDNode *N = Node;
 
26617
 
 
26618
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
 
26619
 
 
26620
  }
 
26621
  case 27: { // Predicate_zextload
 
26622
    SDNode *N = Node;
 
26623
 
 
26624
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
 
26625
 
 
26626
  }
 
26627
  case 28: { // Predicate_zextloadi16
 
26628
    SDNode *N = Node;
 
26629
 
 
26630
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
 
26631
 
 
26632
  }
 
26633
  case 29: { // Predicate_zextloadi8
 
26634
    SDNode *N = Node;
 
26635
 
 
26636
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
 
26637
 
 
26638
  }
 
26639
  case 30: { // Predicate_sextload
 
26640
    SDNode *N = Node;
 
26641
 
 
26642
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
 
26643
 
 
26644
  }
 
26645
  case 31: { // Predicate_sextloadi16
 
26646
    SDNode *N = Node;
 
26647
 
 
26648
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
 
26649
 
 
26650
  }
 
26651
  case 32: { // Predicate_sextloadi8
 
26652
    SDNode *N = Node;
 
26653
 
 
26654
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
 
26655
 
 
26656
  }
 
26657
  case 33: { // Predicate_zextloadi1
 
26658
    SDNode *N = Node;
 
26659
 
 
26660
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
 
26661
 
 
26662
  }
 
26663
  case 34: { // Predicate_extload
 
26664
    SDNode *N = Node;
 
26665
 
 
26666
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
 
26667
 
 
26668
  }
 
26669
  case 35: { // Predicate_extloadi1
 
26670
    SDNode *N = Node;
 
26671
 
 
26672
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
 
26673
 
 
26674
  }
 
26675
  case 36: { // Predicate_extloadi8
 
26676
    SDNode *N = Node;
 
26677
 
 
26678
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
 
26679
 
 
26680
  }
 
26681
  case 37: { // Predicate_extloadi16
 
26682
    SDNode *N = Node;
 
26683
 
 
26684
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
 
26685
 
 
26686
  }
 
26687
  case 38: { // Predicate_unindexedstore
 
26688
    SDNode *N = Node;
 
26689
 
 
26690
  return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
 
26691
 
 
26692
  }
 
26693
  case 39: { // Predicate_store
 
26694
    SDNode *N = Node;
 
26695
 
 
26696
  return !cast<StoreSDNode>(N)->isTruncatingStore();
 
26697
 
 
26698
  }
 
26699
  case 40: { // Predicate_truncstore
 
26700
    SDNode *N = Node;
 
26701
 
 
26702
  return cast<StoreSDNode>(N)->isTruncatingStore();
 
26703
 
 
26704
  }
 
26705
  case 41: { // Predicate_truncstorei16
 
26706
    SDNode *N = Node;
 
26707
 
 
26708
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
 
26709
 
 
26710
  }
 
26711
  case 42: { // Predicate_truncstorei8
 
26712
    SDNode *N = Node;
 
26713
 
 
26714
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
 
26715
 
 
26716
  }
 
26717
  case 43: { // Predicate_istore
 
26718
    SDNode *N = Node;
 
26719
 
 
26720
  return !cast<StoreSDNode>(N)->isTruncatingStore();
 
26721
 
 
26722
  }
 
26723
  case 44: { // Predicate_pre_store
 
26724
    SDNode *N = Node;
 
26725
 
 
26726
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
26727
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
 
26728
 
 
26729
  }
 
26730
  case 45: { // Predicate_post_store
 
26731
    SDNode *N = Node;
 
26732
 
 
26733
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
26734
  return AM == ISD::POST_INC || AM == ISD::POST_DEC;
 
26735
 
 
26736
  }
 
26737
  case 46: { // Predicate_itruncstore
 
26738
    SDNode *N = Node;
 
26739
 
 
26740
  return cast<StoreSDNode>(N)->isTruncatingStore();
 
26741
 
 
26742
  }
 
26743
  case 47: { // Predicate_pre_truncst
 
26744
    SDNode *N = Node;
 
26745
 
 
26746
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
26747
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
 
26748
 
 
26749
  }
 
26750
  case 48: { // Predicate_pre_truncsti16
 
26751
    SDNode *N = Node;
 
26752
 
 
26753
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
 
26754
 
 
26755
  }
 
26756
  case 49: { // Predicate_post_truncst
 
26757
    SDNode *N = Node;
 
26758
 
 
26759
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
 
26760
  return AM == ISD::POST_INC || AM == ISD::POST_DEC;
 
26761
 
 
26762
  }
 
26763
  case 50: { // Predicate_post_truncsti16
 
26764
    SDNode *N = Node;
 
26765
 
 
26766
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
 
26767
 
 
26768
  }
 
26769
  case 51: { // Predicate_pre_truncsti8
 
26770
    SDNode *N = Node;
 
26771
 
 
26772
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
 
26773
 
 
26774
  }
 
26775
  case 52: { // Predicate_post_truncsti8
 
26776
    SDNode *N = Node;
 
26777
 
 
26778
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
 
26779
 
 
26780
  }
 
26781
  case 53: { // Predicate_imm0_255
 
26782
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26783
 
 
26784
  return (uint32_t)N->getZExtValue() < 256;
 
26785
 
 
26786
  }
 
26787
  case 54: { // Predicate_immAllOnesV
 
26788
    SDNode *N = Node;
 
26789
 
 
26790
  return ISD::isBuildVectorAllOnes(N);
 
26791
 
 
26792
  }
 
26793
  case 55: { // Predicate_adde_dead_carry
 
26794
    SDNode *N = Node;
 
26795
return !N->hasAnyUseOfValue(1);
 
26796
  }
 
26797
  case 56: { // Predicate_adde_live_carry
 
26798
    SDNode *N = Node;
 
26799
return N->hasAnyUseOfValue(1);
 
26800
  }
 
26801
  case 57: { // Predicate_sube_dead_carry
 
26802
    SDNode *N = Node;
 
26803
return !N->hasAnyUseOfValue(1);
 
26804
  }
 
26805
  case 58: { // Predicate_sube_live_carry
 
26806
    SDNode *N = Node;
 
26807
return N->hasAnyUseOfValue(1);
 
26808
  }
 
26809
  case 59: { // Predicate_immAllZerosV
 
26810
    SDNode *N = Node;
 
26811
 
 
26812
  return ISD::isBuildVectorAllZeros(N);
 
26813
 
 
26814
  }
 
26815
  case 60: { // Predicate_immAllZerosV_bc
 
26816
    SDNode *N = Node;
 
26817
 
 
26818
  return ISD::isBuildVectorAllZeros(N);
 
26819
 
 
26820
  }
 
26821
  case 61: { // Predicate_imm0_65535
 
26822
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26823
 
 
26824
  return (uint32_t)N->getZExtValue() < 65536;
 
26825
 
 
26826
  }
 
26827
  case 62: { // Predicate_thumb_immshifted
 
26828
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26829
 
 
26830
  return ARM_AM::isThumbImmShiftedVal((unsigned)N->getZExtValue());
 
26831
 
 
26832
  }
 
26833
  case 63: { // Predicate_imm0_255_comp
 
26834
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 
26835
 
 
26836
  return ~((uint32_t)N->getZExtValue()) < 256;
 
26837
 
 
26838
  }
 
26839
  case 64: { // Predicate_vfp_f64imm
 
26840
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
 
26841
 
 
26842
      return ARM::getVFPf64Imm(N->getValueAPF()) != -1;
 
26843
    
 
26844
  }
 
26845
  case 65: { // Predicate_vfp_f32imm
 
26846
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
 
26847
 
 
26848
      return ARM::getVFPf32Imm(N->getValueAPF()) != -1;
 
26849
    
 
26850
  }
 
26851
  case 66: { // Predicate_vmovImm8
 
26852
    SDNode *N = Node;
 
26853
 
 
26854
  return ARM::getVMOVImm(N, 1, *CurDAG).getNode() != 0;
 
26855
 
 
26856
  }
 
26857
  case 67: { // Predicate_vmovImm16
 
26858
    SDNode *N = Node;
 
26859
 
 
26860
  return ARM::getVMOVImm(N, 2, *CurDAG).getNode() != 0;
 
26861
 
 
26862
  }
 
26863
  case 68: { // Predicate_vmovImm32
 
26864
    SDNode *N = Node;
 
26865
 
 
26866
  return ARM::getVMOVImm(N, 4, *CurDAG).getNode() != 0;
 
26867
 
 
26868
  }
 
26869
  case 69: { // Predicate_vmovImm64
 
26870
    SDNode *N = Node;
 
26871
 
 
26872
  return ARM::getVMOVImm(N, 8, *CurDAG).getNode() != 0;
 
26873
 
 
26874
  }
 
26875
  case 70: { // Predicate_atomic_load_add_8
 
26876
    SDNode *N = Node;
 
26877
 
 
26878
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26879
  
 
26880
  }
 
26881
  case 71: { // Predicate_atomic_load_add_16
 
26882
    SDNode *N = Node;
 
26883
 
 
26884
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26885
  
 
26886
  }
 
26887
  case 72: { // Predicate_atomic_load_add_32
 
26888
    SDNode *N = Node;
 
26889
 
 
26890
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26891
  
 
26892
  }
 
26893
  case 73: { // Predicate_atomic_load_sub_8
 
26894
    SDNode *N = Node;
 
26895
 
 
26896
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26897
  
 
26898
  }
 
26899
  case 74: { // Predicate_atomic_load_sub_16
 
26900
    SDNode *N = Node;
 
26901
 
 
26902
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26903
  
 
26904
  }
 
26905
  case 75: { // Predicate_atomic_load_sub_32
 
26906
    SDNode *N = Node;
 
26907
 
 
26908
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26909
  
 
26910
  }
 
26911
  case 76: { // Predicate_atomic_load_and_8
 
26912
    SDNode *N = Node;
 
26913
 
 
26914
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26915
  
 
26916
  }
 
26917
  case 77: { // Predicate_atomic_load_and_16
 
26918
    SDNode *N = Node;
 
26919
 
 
26920
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26921
  
 
26922
  }
 
26923
  case 78: { // Predicate_atomic_load_and_32
 
26924
    SDNode *N = Node;
 
26925
 
 
26926
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26927
  
 
26928
  }
 
26929
  case 79: { // Predicate_atomic_load_or_8
 
26930
    SDNode *N = Node;
 
26931
 
 
26932
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26933
  
 
26934
  }
 
26935
  case 80: { // Predicate_atomic_load_or_16
 
26936
    SDNode *N = Node;
 
26937
 
 
26938
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26939
  
 
26940
  }
 
26941
  case 81: { // Predicate_atomic_load_or_32
 
26942
    SDNode *N = Node;
 
26943
 
 
26944
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26945
  
 
26946
  }
 
26947
  case 82: { // Predicate_atomic_load_xor_8
 
26948
    SDNode *N = Node;
 
26949
 
 
26950
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26951
  
 
26952
  }
 
26953
  case 83: { // Predicate_atomic_load_xor_16
 
26954
    SDNode *N = Node;
 
26955
 
 
26956
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26957
  
 
26958
  }
 
26959
  case 84: { // Predicate_atomic_load_xor_32
 
26960
    SDNode *N = Node;
 
26961
 
 
26962
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26963
  
 
26964
  }
 
26965
  case 85: { // Predicate_atomic_load_nand_8
 
26966
    SDNode *N = Node;
 
26967
 
 
26968
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26969
  
 
26970
  }
 
26971
  case 86: { // Predicate_atomic_load_nand_16
 
26972
    SDNode *N = Node;
 
26973
 
 
26974
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26975
  
 
26976
  }
 
26977
  case 87: { // Predicate_atomic_load_nand_32
 
26978
    SDNode *N = Node;
 
26979
 
 
26980
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26981
  
 
26982
  }
 
26983
  case 88: { // Predicate_atomic_swap_8
 
26984
    SDNode *N = Node;
 
26985
 
 
26986
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
26987
  
 
26988
  }
 
26989
  case 89: { // Predicate_atomic_swap_16
 
26990
    SDNode *N = Node;
 
26991
 
 
26992
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
26993
  
 
26994
  }
 
26995
  case 90: { // Predicate_atomic_swap_32
 
26996
    SDNode *N = Node;
 
26997
 
 
26998
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
26999
  
 
27000
  }
 
27001
  case 91: { // Predicate_atomic_cmp_swap_8
 
27002
    SDNode *N = Node;
 
27003
 
 
27004
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
 
27005
 
 
27006
  }
 
27007
  case 92: { // Predicate_atomic_cmp_swap_16
 
27008
    SDNode *N = Node;
 
27009
 
 
27010
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
 
27011
 
 
27012
  }
 
27013
  case 93: { // Predicate_atomic_cmp_swap_32
 
27014
    SDNode *N = Node;
 
27015
 
 
27016
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
 
27017
 
 
27018
  }
 
27019
  }
 
27020
}
 
27021
 
 
27022
bool CheckComplexPattern(SDNode *Root, SDValue N,
 
27023
      unsigned PatternNo, SmallVectorImpl<SDValue> &Result) {
 
27024
  switch (PatternNo) {
 
27025
  default: assert(0 && "Invalid pattern # in table?");
 
27026
  case 0:
 
27027
    Result.resize(Result.size()+2);
 
27028
    return SelectT2ShifterOperandReg(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27029
  case 1:
 
27030
    Result.resize(Result.size()+3);
 
27031
    return SelectShifterOperandReg(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27032
  case 2:
 
27033
    Result.resize(Result.size()+3);
 
27034
    return SelectAddrMode2(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27035
  case 3:
 
27036
    Result.resize(Result.size()+2);
 
27037
    return SelectAddrModePC(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27038
  case 4:
 
27039
    Result.resize(Result.size()+2);
 
27040
    return SelectThumbAddrModeRR(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27041
  case 5:
 
27042
    Result.resize(Result.size()+3);
 
27043
    return SelectAddrMode3(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27044
  case 6:
 
27045
    Result.resize(Result.size()+3);
 
27046
    return SelectThumbAddrModeS4(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27047
  case 7:
 
27048
    Result.resize(Result.size()+3);
 
27049
    return SelectThumbAddrModeS1(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27050
  case 8:
 
27051
    Result.resize(Result.size()+3);
 
27052
    return SelectThumbAddrModeS2(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27053
  case 9:
 
27054
    Result.resize(Result.size()+3);
 
27055
    return SelectT2AddrModeSoReg(Root, N, Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27056
  case 10:
 
27057
    Result.resize(Result.size()+2);
 
27058
    return SelectThumbAddrModeSP(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27059
  case 11:
 
27060
    Result.resize(Result.size()+2);
 
27061
    return SelectT2AddrModeImm12(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27062
  case 12:
 
27063
    Result.resize(Result.size()+2);
 
27064
    return SelectT2AddrModeImm8(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27065
  case 13:
 
27066
    Result.resize(Result.size()+2);
 
27067
    return SelectAddrMode5(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27068
  case 14:
 
27069
    Result.resize(Result.size()+2);
 
27070
    return SelectAddrMode4(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27071
  case 15:
 
27072
    Result.resize(Result.size()+2);
 
27073
    return SelectAddrMode2Offset(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27074
  case 16:
 
27075
    Result.resize(Result.size()+2);
 
27076
    return SelectAddrMode3Offset(Root, N, Result[Result.size()-2], Result[Result.size()-1]);
 
27077
  case 17:
 
27078
    Result.resize(Result.size()+1);
 
27079
    return SelectT2AddrModeImm8Offset(Root, N, Result[Result.size()-1]);
 
27080
  case 18:
 
27081
    Result.resize(Result.size()+4);
 
27082
    return SelectAddrMode6(Root, N, Result[Result.size()-4], Result[Result.size()-3], Result[Result.size()-2], Result[Result.size()-1]);
 
27083
  }
 
27084
}
 
27085
 
 
27086
SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
 
27087
  switch (XFormNo) {
 
27088
  default: assert(0 && "Invalid xform # in table?");
 
27089
  case 0: {  
 
27090
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27091
 
 
27092
  return CurDAG->getTargetConstant((uint32_t)N->getZExtValue() >> 16, MVT::i32);
 
27093
 
 
27094
  }
 
27095
  case 1: {  
 
27096
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27097
 
 
27098
  return CurDAG->getTargetConstant(~((uint32_t)N->getZExtValue()), MVT::i32);
 
27099
 
 
27100
  }
 
27101
  case 2: {  
 
27102
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27103
 
 
27104
  unsigned V = ARM_AM::getSOImmTwoPartFirst((unsigned)N->getZExtValue());
 
27105
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27106
 
 
27107
  }
 
27108
  case 3: {  
 
27109
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27110
 
 
27111
  unsigned V = ARM_AM::getSOImmTwoPartSecond((unsigned)N->getZExtValue());
 
27112
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27113
 
 
27114
  }
 
27115
  case 4: {  
 
27116
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27117
 
 
27118
  unsigned V = ARM_AM::getT2SOImmTwoPartFirst((unsigned)N->getZExtValue());
 
27119
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27120
 
 
27121
  }
 
27122
  case 5: {  
 
27123
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27124
 
 
27125
  unsigned V = ARM_AM::getT2SOImmTwoPartSecond((unsigned)N->getZExtValue());
 
27126
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27127
 
 
27128
  }
 
27129
  case 6: {  
 
27130
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27131
 
 
27132
  return CurDAG->getTargetConstant(5 + N->getZExtValue() / 4, MVT::i32);
 
27133
 
 
27134
  }
 
27135
  case 7: {  
 
27136
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27137
 
 
27138
  return CurDAG->getTargetConstant(N->getZExtValue() & 3, MVT::i32);
 
27139
 
 
27140
  }
 
27141
  case 8: {  
 
27142
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27143
 
 
27144
  return CurDAG->getTargetConstant(5 + N->getZExtValue() / 2, MVT::i32);
 
27145
 
 
27146
  }
 
27147
  case 9: {  
 
27148
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27149
 
 
27150
  return CurDAG->getTargetConstant(N->getZExtValue() & 1, MVT::i32);
 
27151
 
 
27152
  }
 
27153
  case 10: {  
 
27154
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27155
 
 
27156
  return CurDAG->getTargetConstant(-(int)N->getZExtValue(), MVT::i32);
 
27157
 
 
27158
  }
 
27159
  case 11: {  
 
27160
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27161
 
 
27162
  return CurDAG->getTargetConstant(-(int)N->getZExtValue(), MVT::i32);
 
27163
 
 
27164
  }
 
27165
  case 12: {  
 
27166
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27167
 
 
27168
  return CurDAG->getTargetConstant(-((int)N->getZExtValue()), MVT::i32);
 
27169
 
 
27170
  }
 
27171
  case 13: {  
 
27172
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27173
 
 
27174
  unsigned V = ARM_AM::getSOImmTwoPartFirst(-(int)N->getZExtValue());
 
27175
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27176
 
 
27177
  }
 
27178
  case 14: {  
 
27179
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27180
 
 
27181
  unsigned V = ARM_AM::getSOImmTwoPartSecond(-(int)N->getZExtValue());
 
27182
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27183
 
 
27184
  }
 
27185
  case 15: {  
 
27186
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27187
 
 
27188
  unsigned V = ARM_AM::getT2SOImmTwoPartFirst(-(int)N->getZExtValue());
 
27189
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27190
 
 
27191
  }
 
27192
  case 16: {  
 
27193
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27194
 
 
27195
  unsigned V = ARM_AM::getT2SOImmTwoPartSecond(-(int)N->getZExtValue());
 
27196
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27197
 
 
27198
  }
 
27199
  case 17: {  
 
27200
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27201
 
 
27202
  return CurDAG->getTargetConstant(~(int)N->getZExtValue(), MVT::i32);
 
27203
 
 
27204
  }
 
27205
  case 18: {  
 
27206
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27207
 
 
27208
  return CurDAG->getTargetConstant(5 + N->getZExtValue() / 8, MVT::i32);
 
27209
 
 
27210
  }
 
27211
  case 19: {  
 
27212
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27213
 
 
27214
  return CurDAG->getTargetConstant(N->getZExtValue() & 7, MVT::i32);
 
27215
 
 
27216
  }
 
27217
  case 20: {  
 
27218
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27219
 
 
27220
  return CurDAG->getTargetConstant(5 + N->getZExtValue(), MVT::i32);
 
27221
 
 
27222
  }
 
27223
  case 21: {  
 
27224
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27225
 
 
27226
  return CurDAG->getTargetConstant(1 + N->getZExtValue(), MVT::i32);
 
27227
 
 
27228
  }
 
27229
  case 22: {  
 
27230
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27231
 
 
27232
  return CurDAG->getTargetConstant(5 + (1 - N->getZExtValue()), MVT::i32);
 
27233
 
 
27234
  }
 
27235
  case 23: {  
 
27236
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27237
 
 
27238
  unsigned V = ARM_AM::getThumbImmNonShiftedVal((unsigned)N->getZExtValue());
 
27239
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27240
 
 
27241
  }
 
27242
  case 24: {  
 
27243
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27244
 
 
27245
  unsigned V = ARM_AM::getThumbImmValShift((unsigned)N->getZExtValue());
 
27246
  return CurDAG->getTargetConstant(V, MVT::i32);
 
27247
 
 
27248
  }
 
27249
  case 25: {  
 
27250
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
 
27251
 
 
27252
  return CurDAG->getTargetConstant(~((uint32_t)N->getZExtValue()), MVT::i32);
 
27253
 
 
27254
  }
 
27255
  case 26: {  
 
27256
    SDNode *N = V.getNode();
 
27257
 
 
27258
  return ARM::getVMOVImm(N, 1, *CurDAG);
 
27259
 
 
27260
  }
 
27261
  case 27: {  
 
27262
    SDNode *N = V.getNode();
 
27263
 
 
27264
  return ARM::getVMOVImm(N, 2, *CurDAG);
 
27265
 
 
27266
  }
 
27267
  case 28: {  
 
27268
    SDNode *N = V.getNode();
 
27269
 
 
27270
  return ARM::getVMOVImm(N, 4, *CurDAG);
 
27271
 
 
27272
  }
 
27273
  case 29: {  
 
27274
    SDNode *N = V.getNode();
 
27275
 
 
27276
  return ARM::getVMOVImm(N, 8, *CurDAG);
 
27277
 
 
27278
  }
 
27279
  }
 
27280
}
 
27281