~ubuntu-branches/ubuntu/feisty/clamav/feisty

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2007-02-20 10:33:44 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20070220103344-zgcu2psnx9d98fpa
Tags: upstream-0.90
ImportĀ upstreamĀ versionĀ 0.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//===- TableGen'erated file -------------------------------------*- C++ -*-===//
2
 
//
3
 
// DAG Instruction Selector for the PPC 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
 
// The main instruction selector code.
13
 
SDNode *SelectCode(SDNode *N) {
14
 
  // Opcodes are emitted as 2 bytes, TARGET_OPCODE handles this.
15
 
  #define TARGET_OPCODE(X) X & 255, unsigned(X) >> 8
16
 
  static const unsigned char MatcherTable[] = {
17
 
          OPC_SwitchOpcode , 40,  TARGET_OPCODE(ISD::MEMBARRIER),
18
 
            OPC_RecordNode,
19
 
            OPC_MoveChild, 1,
20
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
21
 
            OPC_CheckType, MVT::i32,
22
 
            OPC_MoveParent,
23
 
            OPC_MoveChild, 2,
24
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
25
 
            OPC_MoveParent,
26
 
            OPC_MoveChild, 3,
27
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
28
 
            OPC_MoveParent,
29
 
            OPC_MoveChild, 4,
30
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
31
 
            OPC_MoveParent,
32
 
            OPC_MoveChild, 5,
33
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
34
 
            OPC_MoveParent,
35
 
            OPC_EmitMergeInputChains1_0,
36
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::SYNC), 0|OPFL_Chain,
37
 
                0, 0, 
38
 
          73|128,4,  TARGET_OPCODE(ISD::INTRINSIC_VOID),
39
 
            OPC_RecordNode,
40
 
            OPC_MoveChild, 1,
41
 
            OPC_Scope, 17, 
42
 
              OPC_CheckInteger, 67|128,2, 
43
 
              OPC_MoveParent,
44
 
              OPC_RecordChild2,
45
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
46
 
              OPC_EmitMergeInputChains1_0,
47
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBA), 0|OPFL_Chain,
48
 
                  0, 2, 2, 3, 
49
 
            17, 
50
 
              OPC_CheckInteger, 68|128,2, 
51
 
              OPC_MoveParent,
52
 
              OPC_RecordChild2,
53
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
54
 
              OPC_EmitMergeInputChains1_0,
55
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBF), 0|OPFL_Chain,
56
 
                  0, 2, 2, 3, 
57
 
            17, 
58
 
              OPC_CheckInteger, 69|128,2, 
59
 
              OPC_MoveParent,
60
 
              OPC_RecordChild2,
61
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
62
 
              OPC_EmitMergeInputChains1_0,
63
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBI), 0|OPFL_Chain,
64
 
                  0, 2, 2, 3, 
65
 
            17, 
66
 
              OPC_CheckInteger, 70|128,2, 
67
 
              OPC_MoveParent,
68
 
              OPC_RecordChild2,
69
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
70
 
              OPC_EmitMergeInputChains1_0,
71
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBST), 0|OPFL_Chain,
72
 
                  0, 2, 2, 3, 
73
 
            17, 
74
 
              OPC_CheckInteger, 71|128,2, 
75
 
              OPC_MoveParent,
76
 
              OPC_RecordChild2,
77
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
78
 
              OPC_EmitMergeInputChains1_0,
79
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBT), 0|OPFL_Chain,
80
 
                  0, 2, 2, 3, 
81
 
            17, 
82
 
              OPC_CheckInteger, 72|128,2, 
83
 
              OPC_MoveParent,
84
 
              OPC_RecordChild2,
85
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
86
 
              OPC_EmitMergeInputChains1_0,
87
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBTST), 0|OPFL_Chain,
88
 
                  0, 2, 2, 3, 
89
 
            17, 
90
 
              OPC_CheckInteger, 73|128,2, 
91
 
              OPC_MoveParent,
92
 
              OPC_RecordChild2,
93
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
94
 
              OPC_EmitMergeInputChains1_0,
95
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBZ), 0|OPFL_Chain,
96
 
                  0, 2, 2, 3, 
97
 
            17, 
98
 
              OPC_CheckInteger, 74|128,2, 
99
 
              OPC_MoveParent,
100
 
              OPC_RecordChild2,
101
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
102
 
              OPC_EmitMergeInputChains1_0,
103
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DCBZL), 0|OPFL_Chain,
104
 
                  0, 2, 2, 3, 
105
 
            19, 
106
 
              OPC_CheckInteger, 63|128,1, 
107
 
              OPC_MoveParent,
108
 
              OPC_RecordChild2,
109
 
              OPC_RecordChild3,
110
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
111
 
              OPC_EmitMergeInputChains1_0,
112
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVEBX), 0|OPFL_Chain,
113
 
                  0, 3, 1, 3, 4, 
114
 
            19, 
115
 
              OPC_CheckInteger, 64|128,1, 
116
 
              OPC_MoveParent,
117
 
              OPC_RecordChild2,
118
 
              OPC_RecordChild3,
119
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
120
 
              OPC_EmitMergeInputChains1_0,
121
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVEHX), 0|OPFL_Chain,
122
 
                  0, 3, 1, 3, 4, 
123
 
            19, 
124
 
              OPC_CheckInteger, 65|128,1, 
125
 
              OPC_MoveParent,
126
 
              OPC_RecordChild2,
127
 
              OPC_RecordChild3,
128
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
129
 
              OPC_EmitMergeInputChains1_0,
130
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVEWX), 0|OPFL_Chain,
131
 
                  0, 3, 1, 3, 4, 
132
 
            19, 
133
 
              OPC_CheckInteger, 66|128,1, 
134
 
              OPC_MoveParent,
135
 
              OPC_RecordChild2,
136
 
              OPC_RecordChild3,
137
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
138
 
              OPC_EmitMergeInputChains1_0,
139
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVX), 0|OPFL_Chain,
140
 
                  0, 3, 1, 3, 4, 
141
 
            19, 
142
 
              OPC_CheckInteger, 67|128,1, 
143
 
              OPC_MoveParent,
144
 
              OPC_RecordChild2,
145
 
              OPC_RecordChild3,
146
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
147
 
              OPC_EmitMergeInputChains1_0,
148
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVXL), 0|OPFL_Chain,
149
 
                  0, 3, 1, 3, 4, 
150
 
            33, 
151
 
              OPC_CheckInteger, 48|128,1, 
152
 
              OPC_MoveParent,
153
 
              OPC_RecordChild2,
154
 
              OPC_MoveChild, 2,
155
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
156
 
              OPC_MoveParent,
157
 
              OPC_EmitMergeInputChains1_0,
158
 
              OPC_EmitInteger, MVT::i32, 0, 
159
 
              OPC_EmitConvertToTarget, 1,
160
 
              OPC_EmitInteger, MVT::i32, 0, 
161
 
              OPC_EmitInteger, MVT::i32, 0, 
162
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSS), 0|OPFL_Chain,
163
 
                  0, 4, 2, 3, 4, 5, 
164
 
            61, 
165
 
              OPC_CheckInteger, 50|128,1, 
166
 
              OPC_MoveParent,
167
 
              OPC_RecordChild2,
168
 
              OPC_Scope, 26, 
169
 
                OPC_CheckChild2Type, MVT::i32,
170
 
                OPC_RecordChild3,
171
 
                OPC_RecordChild4,
172
 
                OPC_MoveChild, 4,
173
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
174
 
                OPC_MoveParent,
175
 
                OPC_EmitMergeInputChains1_0,
176
 
                OPC_EmitInteger, MVT::i32, 0, 
177
 
                OPC_EmitConvertToTarget, 3,
178
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DST), 0|OPFL_Chain,
179
 
                    0, 4, 4, 5, 1, 2, 
180
 
              26, 
181
 
                OPC_CheckChild2Type, MVT::i64,
182
 
                OPC_RecordChild3,
183
 
                OPC_RecordChild4,
184
 
                OPC_MoveChild, 4,
185
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
186
 
                OPC_MoveParent,
187
 
                OPC_EmitMergeInputChains1_0,
188
 
                OPC_EmitInteger, MVT::i32, 0, 
189
 
                OPC_EmitConvertToTarget, 3,
190
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DST64), 0|OPFL_Chain,
191
 
                    0, 4, 4, 5, 1, 2, 
192
 
              0, 
193
 
            61, 
194
 
              OPC_CheckInteger, 53|128,1, 
195
 
              OPC_MoveParent,
196
 
              OPC_RecordChild2,
197
 
              OPC_Scope, 26, 
198
 
                OPC_CheckChild2Type, MVT::i32,
199
 
                OPC_RecordChild3,
200
 
                OPC_RecordChild4,
201
 
                OPC_MoveChild, 4,
202
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
203
 
                OPC_MoveParent,
204
 
                OPC_EmitMergeInputChains1_0,
205
 
                OPC_EmitInteger, MVT::i32, 1, 
206
 
                OPC_EmitConvertToTarget, 3,
207
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTT), 0|OPFL_Chain,
208
 
                    0, 4, 4, 5, 1, 2, 
209
 
              26, 
210
 
                OPC_CheckChild2Type, MVT::i64,
211
 
                OPC_RecordChild3,
212
 
                OPC_RecordChild4,
213
 
                OPC_MoveChild, 4,
214
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
215
 
                OPC_MoveParent,
216
 
                OPC_EmitMergeInputChains1_0,
217
 
                OPC_EmitInteger, MVT::i32, 1, 
218
 
                OPC_EmitConvertToTarget, 3,
219
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTT64), 0|OPFL_Chain,
220
 
                    0, 4, 4, 5, 1, 2, 
221
 
              0, 
222
 
            61, 
223
 
              OPC_CheckInteger, 51|128,1, 
224
 
              OPC_MoveParent,
225
 
              OPC_RecordChild2,
226
 
              OPC_Scope, 26, 
227
 
                OPC_CheckChild2Type, MVT::i32,
228
 
                OPC_RecordChild3,
229
 
                OPC_RecordChild4,
230
 
                OPC_MoveChild, 4,
231
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
232
 
                OPC_MoveParent,
233
 
                OPC_EmitMergeInputChains1_0,
234
 
                OPC_EmitInteger, MVT::i32, 0, 
235
 
                OPC_EmitConvertToTarget, 3,
236
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTST), 0|OPFL_Chain,
237
 
                    0, 4, 4, 5, 1, 2, 
238
 
              26, 
239
 
                OPC_CheckChild2Type, MVT::i64,
240
 
                OPC_RecordChild3,
241
 
                OPC_RecordChild4,
242
 
                OPC_MoveChild, 4,
243
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
244
 
                OPC_MoveParent,
245
 
                OPC_EmitMergeInputChains1_0,
246
 
                OPC_EmitInteger, MVT::i32, 0, 
247
 
                OPC_EmitConvertToTarget, 3,
248
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTST64), 0|OPFL_Chain,
249
 
                    0, 4, 4, 5, 1, 2, 
250
 
              0, 
251
 
            61, 
252
 
              OPC_CheckInteger, 52|128,1, 
253
 
              OPC_MoveParent,
254
 
              OPC_RecordChild2,
255
 
              OPC_Scope, 26, 
256
 
                OPC_CheckChild2Type, MVT::i32,
257
 
                OPC_RecordChild3,
258
 
                OPC_RecordChild4,
259
 
                OPC_MoveChild, 4,
260
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
261
 
                OPC_MoveParent,
262
 
                OPC_EmitMergeInputChains1_0,
263
 
                OPC_EmitInteger, MVT::i32, 1, 
264
 
                OPC_EmitConvertToTarget, 3,
265
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTSTT), 0|OPFL_Chain,
266
 
                    0, 4, 4, 5, 1, 2, 
267
 
              26, 
268
 
                OPC_CheckChild2Type, MVT::i64,
269
 
                OPC_RecordChild3,
270
 
                OPC_RecordChild4,
271
 
                OPC_MoveChild, 4,
272
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
273
 
                OPC_MoveParent,
274
 
                OPC_EmitMergeInputChains1_0,
275
 
                OPC_EmitInteger, MVT::i32, 1, 
276
 
                OPC_EmitConvertToTarget, 3,
277
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSTSTT64), 0|OPFL_Chain,
278
 
                    0, 4, 4, 5, 1, 2, 
279
 
              0, 
280
 
            11, 
281
 
              OPC_CheckInteger, 75|128,2, 
282
 
              OPC_MoveParent,
283
 
              OPC_EmitMergeInputChains1_0,
284
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SYNC), 0|OPFL_Chain,
285
 
                  0, 0, 
286
 
            13, 
287
 
              OPC_CheckInteger, 62|128,1, 
288
 
              OPC_MoveParent,
289
 
              OPC_RecordChild2,
290
 
              OPC_EmitMergeInputChains1_0,
291
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTVSCR), 0|OPFL_Chain,
292
 
                  0, 1, 1, 
293
 
            27, 
294
 
              OPC_CheckInteger, 49|128,1, 
295
 
              OPC_MoveParent,
296
 
              OPC_EmitMergeInputChains1_0,
297
 
              OPC_EmitInteger, MVT::i32, 1, 
298
 
              OPC_EmitInteger, MVT::i32, 0, 
299
 
              OPC_EmitInteger, MVT::i32, 0, 
300
 
              OPC_EmitInteger, MVT::i32, 0, 
301
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DSSALL), 0|OPFL_Chain,
302
 
                  0, 4, 1, 2, 3, 4, 
303
 
            0, 
304
 
          32|128,4,  TARGET_OPCODE(ISD::ADD),
305
 
            OPC_Scope, 49|128,1, 
306
 
              OPC_RecordChild0,
307
 
              OPC_MoveChild, 1,
308
 
              OPC_SwitchOpcode , 24,  TARGET_OPCODE(PPCISD::Lo),
309
 
                OPC_RecordChild0,
310
 
                OPC_MoveChild, 0,
311
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalAddress),
312
 
                OPC_MoveParent,
313
 
                OPC_MoveChild, 1,
314
 
                OPC_CheckInteger, 0, 
315
 
                OPC_MoveParent,
316
 
                OPC_MoveParent,
317
 
                OPC_CheckType, MVT::i32,
318
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LA), 0,
319
 
                    1, MVT::i32, 2, 0, 1, 
320
 
              13|128,1,  TARGET_OPCODE(PPCISD::Hi),
321
 
                OPC_RecordChild0,
322
 
                OPC_MoveChild, 0,
323
 
                OPC_SwitchOpcode , 31,  TARGET_OPCODE(ISD::TargetGlobalAddress),
324
 
                  OPC_MoveParent,
325
 
                  OPC_MoveChild, 1,
326
 
                  OPC_CheckInteger, 0, 
327
 
                  OPC_MoveParent,
328
 
                  OPC_MoveParent,
329
 
                  OPC_SwitchType , 9,  MVT::i32,
330
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
331
 
                        1, MVT::i32, 2, 0, 1, 
332
 
                  9,  MVT::i64,
333
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
334
 
                        1, MVT::i64, 2, 0, 1, 
335
 
                  0, 
336
 
                31,  TARGET_OPCODE(ISD::TargetConstantPool),
337
 
                  OPC_MoveParent,
338
 
                  OPC_MoveChild, 1,
339
 
                  OPC_CheckInteger, 0, 
340
 
                  OPC_MoveParent,
341
 
                  OPC_MoveParent,
342
 
                  OPC_SwitchType , 9,  MVT::i32,
343
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
344
 
                        1, MVT::i32, 2, 0, 1, 
345
 
                  9,  MVT::i64,
346
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
347
 
                        1, MVT::i64, 2, 0, 1, 
348
 
                  0, 
349
 
                31,  TARGET_OPCODE(ISD::TargetJumpTable),
350
 
                  OPC_MoveParent,
351
 
                  OPC_MoveChild, 1,
352
 
                  OPC_CheckInteger, 0, 
353
 
                  OPC_MoveParent,
354
 
                  OPC_MoveParent,
355
 
                  OPC_SwitchType , 9,  MVT::i32,
356
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
357
 
                        1, MVT::i32, 2, 0, 1, 
358
 
                  9,  MVT::i64,
359
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
360
 
                        1, MVT::i64, 2, 0, 1, 
361
 
                  0, 
362
 
                31,  TARGET_OPCODE(ISD::TargetBlockAddress),
363
 
                  OPC_MoveParent,
364
 
                  OPC_MoveChild, 1,
365
 
                  OPC_CheckInteger, 0, 
366
 
                  OPC_MoveParent,
367
 
                  OPC_MoveParent,
368
 
                  OPC_SwitchType , 9,  MVT::i32,
369
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
370
 
                        1, MVT::i32, 2, 0, 1, 
371
 
                  9,  MVT::i64,
372
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
373
 
                        1, MVT::i64, 2, 0, 1, 
374
 
                  0, 
375
 
                0, 
376
 
              0, 
377
 
            53|128,1, 
378
 
              OPC_MoveChild, 0,
379
 
              OPC_SwitchOpcode , 25,  TARGET_OPCODE(PPCISD::Lo),
380
 
                OPC_RecordChild0,
381
 
                OPC_MoveChild, 0,
382
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalAddress),
383
 
                OPC_MoveParent,
384
 
                OPC_MoveChild, 1,
385
 
                OPC_CheckInteger, 0, 
386
 
                OPC_MoveParent,
387
 
                OPC_MoveParent,
388
 
                OPC_RecordChild1,
389
 
                OPC_CheckType, MVT::i32,
390
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LA), 0,
391
 
                    1, MVT::i32, 2, 1, 0, 
392
 
              17|128,1,  TARGET_OPCODE(PPCISD::Hi),
393
 
                OPC_RecordChild0,
394
 
                OPC_MoveChild, 0,
395
 
                OPC_SwitchOpcode , 32,  TARGET_OPCODE(ISD::TargetGlobalAddress),
396
 
                  OPC_MoveParent,
397
 
                  OPC_MoveChild, 1,
398
 
                  OPC_CheckInteger, 0, 
399
 
                  OPC_MoveParent,
400
 
                  OPC_MoveParent,
401
 
                  OPC_RecordChild1,
402
 
                  OPC_SwitchType , 9,  MVT::i64,
403
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
404
 
                        1, MVT::i64, 2, 1, 0, 
405
 
                  9,  MVT::i32,
406
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
407
 
                        1, MVT::i32, 2, 1, 0, 
408
 
                  0, 
409
 
                32,  TARGET_OPCODE(ISD::TargetConstantPool),
410
 
                  OPC_MoveParent,
411
 
                  OPC_MoveChild, 1,
412
 
                  OPC_CheckInteger, 0, 
413
 
                  OPC_MoveParent,
414
 
                  OPC_MoveParent,
415
 
                  OPC_RecordChild1,
416
 
                  OPC_SwitchType , 9,  MVT::i64,
417
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
418
 
                        1, MVT::i64, 2, 1, 0, 
419
 
                  9,  MVT::i32,
420
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
421
 
                        1, MVT::i32, 2, 1, 0, 
422
 
                  0, 
423
 
                32,  TARGET_OPCODE(ISD::TargetJumpTable),
424
 
                  OPC_MoveParent,
425
 
                  OPC_MoveChild, 1,
426
 
                  OPC_CheckInteger, 0, 
427
 
                  OPC_MoveParent,
428
 
                  OPC_MoveParent,
429
 
                  OPC_RecordChild1,
430
 
                  OPC_SwitchType , 9,  MVT::i64,
431
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
432
 
                        1, MVT::i64, 2, 1, 0, 
433
 
                  9,  MVT::i32,
434
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
435
 
                        1, MVT::i32, 2, 1, 0, 
436
 
                  0, 
437
 
                32,  TARGET_OPCODE(ISD::TargetBlockAddress),
438
 
                  OPC_MoveParent,
439
 
                  OPC_MoveChild, 1,
440
 
                  OPC_CheckInteger, 0, 
441
 
                  OPC_MoveParent,
442
 
                  OPC_MoveParent,
443
 
                  OPC_RecordChild1,
444
 
                  OPC_SwitchType , 9,  MVT::i64,
445
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
446
 
                        1, MVT::i64, 2, 1, 0, 
447
 
                  9,  MVT::i32,
448
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
449
 
                        1, MVT::i32, 2, 1, 0, 
450
 
                  0, 
451
 
                0, 
452
 
              0, 
453
 
            50|128,1, 
454
 
              OPC_RecordChild0,
455
 
              OPC_RecordChild1,
456
 
              OPC_Scope, 113, 
457
 
                OPC_MoveChild, 1,
458
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
459
 
                OPC_Scope, 16, 
460
 
                  OPC_CheckPredicate, 0,
461
 
                  OPC_MoveParent,
462
 
                  OPC_CheckType, MVT::i32,
463
 
                  OPC_EmitConvertToTarget, 1,
464
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDI), 0,
465
 
                      1, MVT::i32, 2, 0, 2, 
466
 
                19, 
467
 
                  OPC_CheckPredicate, 1,
468
 
                  OPC_MoveParent,
469
 
                  OPC_CheckType, MVT::i32,
470
 
                  OPC_EmitConvertToTarget, 1,
471
 
                  OPC_EmitNodeXForm, 0, 2,
472
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
473
 
                      1, MVT::i32, 2, 0, 3, 
474
 
                16, 
475
 
                  OPC_CheckPredicate, 0,
476
 
                  OPC_MoveParent,
477
 
                  OPC_CheckType, MVT::i64,
478
 
                  OPC_EmitConvertToTarget, 1,
479
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDI8), 0,
480
 
                      1, MVT::i64, 2, 0, 2, 
481
 
                19, 
482
 
                  OPC_CheckPredicate, 1,
483
 
                  OPC_MoveParent,
484
 
                  OPC_CheckType, MVT::i64,
485
 
                  OPC_EmitConvertToTarget, 1,
486
 
                  OPC_EmitNodeXForm, 0, 2,
487
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS8), 0,
488
 
                      1, MVT::i64, 2, 0, 3, 
489
 
                31, 
490
 
                  OPC_MoveParent,
491
 
                  OPC_CheckType, MVT::i32,
492
 
                  OPC_EmitConvertToTarget, 1,
493
 
                  OPC_EmitNodeXForm, 1, 2,
494
 
                  OPC_EmitNode, TARGET_OPCODE(PPC::ADDI), 0,
495
 
                      1, MVT::i32, 2, 0, 3, 
496
 
                  OPC_EmitConvertToTarget, 1,
497
 
                  OPC_EmitNodeXForm, 2, 5,
498
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIS), 0,
499
 
                      1, MVT::i32, 2, 4, 6, 
500
 
                0, 
501
 
              11, 
502
 
                OPC_CheckType, MVT::i32,
503
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADD4), 0,
504
 
                    1, MVT::i32, 2, 0, 1, 
505
 
              11, 
506
 
                OPC_CheckType, MVT::i64,
507
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADD8), 0,
508
 
                    1, MVT::i64, 2, 0, 1, 
509
 
              11, 
510
 
                OPC_CheckType, MVT::v16i8,
511
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUBM), 0,
512
 
                    1, MVT::v16i8, 2, 0, 1, 
513
 
              11, 
514
 
                OPC_CheckType, MVT::v8i16,
515
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUHM), 0,
516
 
                    1, MVT::v8i16, 2, 0, 1, 
517
 
              11, 
518
 
                OPC_CheckType, MVT::v4i32,
519
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUWM), 0,
520
 
                    1, MVT::v4i32, 2, 0, 1, 
521
 
              0, 
522
 
            0, 
523
 
          72|128,6,  TARGET_OPCODE(ISD::LOAD),
524
 
            OPC_RecordMemRef,
525
 
            OPC_RecordNode,
526
 
            OPC_RecordChild1,
527
 
            OPC_CheckPredicate, 2,
528
 
            OPC_Scope, 19, 
529
 
              OPC_CheckPredicate, 3,
530
 
              OPC_CheckPredicate, 4,
531
 
              OPC_CheckType, MVT::i32,
532
 
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
533
 
              OPC_EmitMergeInputChains1_0,
534
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
535
 
                  1, MVT::i32, 2, 2, 3, 
536
 
            19, 
537
 
              OPC_CheckPredicate, 5,
538
 
              OPC_CheckPredicate, 6,
539
 
              OPC_CheckType, MVT::i32,
540
 
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
541
 
              OPC_EmitMergeInputChains1_0,
542
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHA), 0|OPFL_Chain|OPFL_MemRefs,
543
 
                  1, MVT::i32, 2, 2, 3, 
544
 
            19, 
545
 
              OPC_CheckPredicate, 3,
546
 
              OPC_CheckPredicate, 7,
547
 
              OPC_CheckType, MVT::i32,
548
 
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
549
 
              OPC_EmitMergeInputChains1_0,
550
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
551
 
                  1, MVT::i32, 2, 2, 3, 
552
 
            17, 
553
 
              OPC_CheckPredicate, 8,
554
 
              OPC_CheckType, MVT::i32,
555
 
              OPC_CheckComplexPat, /*CP*/1, /*#*/1,
556
 
              OPC_EmitMergeInputChains1_0,
557
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZ), 0|OPFL_Chain|OPFL_MemRefs,
558
 
                  1, MVT::i32, 2, 2, 3, 
559
 
            19, 
560
 
              OPC_CheckPredicate, 3,
561
 
              OPC_CheckPredicate, 4,
562
 
              OPC_CheckType, MVT::i32,
563
 
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
564
 
              OPC_EmitMergeInputChains1_0,
565
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
566
 
                  1, MVT::i32, 2, 2, 3, 
567
 
            19, 
568
 
              OPC_CheckPredicate, 5,
569
 
              OPC_CheckPredicate, 6,
570
 
              OPC_CheckType, MVT::i32,
571
 
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
572
 
              OPC_EmitMergeInputChains1_0,
573
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHAX), 0|OPFL_Chain|OPFL_MemRefs,
574
 
                  1, MVT::i32, 2, 2, 3, 
575
 
            19, 
576
 
              OPC_CheckPredicate, 3,
577
 
              OPC_CheckPredicate, 7,
578
 
              OPC_CheckType, MVT::i32,
579
 
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
580
 
              OPC_EmitMergeInputChains1_0,
581
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
582
 
                  1, MVT::i32, 2, 2, 3, 
583
 
            17, 
584
 
              OPC_CheckPredicate, 8,
585
 
              OPC_CheckType, MVT::i32,
586
 
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
587
 
              OPC_EmitMergeInputChains1_0,
588
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZX), 0|OPFL_Chain|OPFL_MemRefs,
589
 
                  1, MVT::i32, 2, 2, 3, 
590
 
            36, 
591
 
              OPC_CheckPredicate, 3,
592
 
              OPC_CheckPredicate, 9,
593
 
              OPC_CheckType, MVT::i32,
594
 
              OPC_Scope, 13, 
595
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
596
 
                OPC_EmitMergeInputChains1_0,
597
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
598
 
                    1, MVT::i32, 2, 2, 3, 
599
 
              13, 
600
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
601
 
                OPC_EmitMergeInputChains1_0,
602
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
603
 
                    1, MVT::i32, 2, 2, 3, 
604
 
              0, 
605
 
            105, 
606
 
              OPC_CheckPredicate, 10,
607
 
              OPC_CheckType, MVT::i32,
608
 
              OPC_Scope, 32, 
609
 
                OPC_CheckPredicate, 11,
610
 
                OPC_Scope, 13, 
611
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
612
 
                  OPC_EmitMergeInputChains1_0,
613
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
614
 
                      1, MVT::i32, 2, 2, 3, 
615
 
                13, 
616
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
617
 
                  OPC_EmitMergeInputChains1_0,
618
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
619
 
                      1, MVT::i32, 2, 2, 3, 
620
 
                0, 
621
 
              32, 
622
 
                OPC_CheckPredicate, 12,
623
 
                OPC_Scope, 13, 
624
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
625
 
                  OPC_EmitMergeInputChains1_0,
626
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ), 0|OPFL_Chain|OPFL_MemRefs,
627
 
                      1, MVT::i32, 2, 2, 3, 
628
 
                13, 
629
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
630
 
                  OPC_EmitMergeInputChains1_0,
631
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX), 0|OPFL_Chain|OPFL_MemRefs,
632
 
                      1, MVT::i32, 2, 2, 3, 
633
 
                0, 
634
 
              32, 
635
 
                OPC_CheckPredicate, 13,
636
 
                OPC_Scope, 13, 
637
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
638
 
                  OPC_EmitMergeInputChains1_0,
639
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ), 0|OPFL_Chain|OPFL_MemRefs,
640
 
                      1, MVT::i32, 2, 2, 3, 
641
 
                13, 
642
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
643
 
                  OPC_EmitMergeInputChains1_0,
644
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX), 0|OPFL_Chain|OPFL_MemRefs,
645
 
                      1, MVT::i32, 2, 2, 3, 
646
 
                0, 
647
 
              0, 
648
 
            70, 
649
 
              OPC_CheckPredicate, 5,
650
 
              OPC_CheckType, MVT::i64,
651
 
              OPC_Scope, 15, 
652
 
                OPC_CheckPredicate, 6,
653
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
654
 
                OPC_EmitMergeInputChains1_0,
655
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHA8), 0|OPFL_Chain|OPFL_MemRefs,
656
 
                    1, MVT::i64, 2, 2, 3, 
657
 
              15, 
658
 
                OPC_CheckPredicate, 14,
659
 
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
660
 
                OPC_EmitMergeInputChains1_0,
661
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWA), 0|OPFL_Chain|OPFL_MemRefs,
662
 
                    1, MVT::i64, 2, 2, 3, 
663
 
              15, 
664
 
                OPC_CheckPredicate, 6,
665
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
666
 
                OPC_EmitMergeInputChains1_0,
667
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHAX8), 0|OPFL_Chain|OPFL_MemRefs,
668
 
                    1, MVT::i64, 2, 2, 3, 
669
 
              15, 
670
 
                OPC_CheckPredicate, 14,
671
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
672
 
                OPC_EmitMergeInputChains1_0,
673
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWAX), 0|OPFL_Chain|OPFL_MemRefs,
674
 
                    1, MVT::i64, 2, 2, 3, 
675
 
              0, 
676
 
            102, 
677
 
              OPC_CheckPredicate, 3,
678
 
              OPC_CheckType, MVT::i64,
679
 
              OPC_Scope, 15, 
680
 
                OPC_CheckPredicate, 4,
681
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
682
 
                OPC_EmitMergeInputChains1_0,
683
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
684
 
                    1, MVT::i64, 2, 2, 3, 
685
 
              15, 
686
 
                OPC_CheckPredicate, 7,
687
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
688
 
                OPC_EmitMergeInputChains1_0,
689
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ8), 0|OPFL_Chain|OPFL_MemRefs,
690
 
                    1, MVT::i64, 2, 2, 3, 
691
 
              15, 
692
 
                OPC_CheckPredicate, 15,
693
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
694
 
                OPC_EmitMergeInputChains1_0,
695
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZ8), 0|OPFL_Chain|OPFL_MemRefs,
696
 
                    1, MVT::i64, 2, 2, 3, 
697
 
              15, 
698
 
                OPC_CheckPredicate, 4,
699
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
700
 
                OPC_EmitMergeInputChains1_0,
701
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
702
 
                    1, MVT::i64, 2, 2, 3, 
703
 
              15, 
704
 
                OPC_CheckPredicate, 7,
705
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
706
 
                OPC_EmitMergeInputChains1_0,
707
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX8), 0|OPFL_Chain|OPFL_MemRefs,
708
 
                    1, MVT::i64, 2, 2, 3, 
709
 
              15, 
710
 
                OPC_CheckPredicate, 15,
711
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
712
 
                OPC_EmitMergeInputChains1_0,
713
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZX8), 0|OPFL_Chain|OPFL_MemRefs,
714
 
                    1, MVT::i64, 2, 2, 3, 
715
 
              0, 
716
 
            34, 
717
 
              OPC_CheckPredicate, 8,
718
 
              OPC_CheckType, MVT::i64,
719
 
              OPC_Scope, 13, 
720
 
                OPC_CheckComplexPat, /*CP*/3, /*#*/1,
721
 
                OPC_EmitMergeInputChains1_0,
722
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LD), 0|OPFL_Chain|OPFL_MemRefs,
723
 
                    1, MVT::i64, 2, 2, 3, 
724
 
              13, 
725
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
726
 
                OPC_EmitMergeInputChains1_0,
727
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDX), 0|OPFL_Chain|OPFL_MemRefs,
728
 
                    1, MVT::i64, 2, 2, 3, 
729
 
              0, 
730
 
            36, 
731
 
              OPC_CheckPredicate, 3,
732
 
              OPC_CheckPredicate, 9,
733
 
              OPC_CheckType, MVT::i64,
734
 
              OPC_Scope, 13, 
735
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
736
 
                OPC_EmitMergeInputChains1_0,
737
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
738
 
                    1, MVT::i64, 2, 2, 3, 
739
 
              13, 
740
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
741
 
                OPC_EmitMergeInputChains1_0,
742
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
743
 
                    1, MVT::i64, 2, 2, 3, 
744
 
              0, 
745
 
            10|128,1, 
746
 
              OPC_CheckPredicate, 10,
747
 
              OPC_CheckType, MVT::i64,
748
 
              OPC_Scope, 32, 
749
 
                OPC_CheckPredicate, 11,
750
 
                OPC_Scope, 13, 
751
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
752
 
                  OPC_EmitMergeInputChains1_0,
753
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
754
 
                      1, MVT::i64, 2, 2, 3, 
755
 
                13, 
756
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
757
 
                  OPC_EmitMergeInputChains1_0,
758
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
759
 
                      1, MVT::i64, 2, 2, 3, 
760
 
                0, 
761
 
              32, 
762
 
                OPC_CheckPredicate, 12,
763
 
                OPC_Scope, 13, 
764
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
765
 
                  OPC_EmitMergeInputChains1_0,
766
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZ8), 0|OPFL_Chain|OPFL_MemRefs,
767
 
                      1, MVT::i64, 2, 2, 3, 
768
 
                13, 
769
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
770
 
                  OPC_EmitMergeInputChains1_0,
771
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LBZX8), 0|OPFL_Chain|OPFL_MemRefs,
772
 
                      1, MVT::i64, 2, 2, 3, 
773
 
                0, 
774
 
              32, 
775
 
                OPC_CheckPredicate, 13,
776
 
                OPC_Scope, 13, 
777
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
778
 
                  OPC_EmitMergeInputChains1_0,
779
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZ8), 0|OPFL_Chain|OPFL_MemRefs,
780
 
                      1, MVT::i64, 2, 2, 3, 
781
 
                13, 
782
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
783
 
                  OPC_EmitMergeInputChains1_0,
784
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHZX8), 0|OPFL_Chain|OPFL_MemRefs,
785
 
                      1, MVT::i64, 2, 2, 3, 
786
 
                0, 
787
 
              32, 
788
 
                OPC_CheckPredicate, 16,
789
 
                OPC_Scope, 13, 
790
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
791
 
                  OPC_EmitMergeInputChains1_0,
792
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZ8), 0|OPFL_Chain|OPFL_MemRefs,
793
 
                      1, MVT::i64, 2, 2, 3, 
794
 
                13, 
795
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
796
 
                  OPC_EmitMergeInputChains1_0,
797
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWZX8), 0|OPFL_Chain|OPFL_MemRefs,
798
 
                      1, MVT::i64, 2, 2, 3, 
799
 
                0, 
800
 
              0, 
801
 
            68, 
802
 
              OPC_CheckPredicate, 8,
803
 
              OPC_SwitchType , 30,  MVT::f32,
804
 
                OPC_Scope, 13, 
805
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
806
 
                  OPC_EmitMergeInputChains1_0,
807
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFS), 0|OPFL_Chain|OPFL_MemRefs,
808
 
                      1, MVT::f32, 2, 2, 3, 
809
 
                13, 
810
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
811
 
                  OPC_EmitMergeInputChains1_0,
812
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFSX), 0|OPFL_Chain|OPFL_MemRefs,
813
 
                      1, MVT::f32, 2, 2, 3, 
814
 
                0, 
815
 
              30,  MVT::f64,
816
 
                OPC_Scope, 13, 
817
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/1,
818
 
                  OPC_EmitMergeInputChains1_0,
819
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFD), 0|OPFL_Chain|OPFL_MemRefs,
820
 
                      1, MVT::f64, 2, 2, 3, 
821
 
                13, 
822
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/1,
823
 
                  OPC_EmitMergeInputChains1_0,
824
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::LFDX), 0|OPFL_Chain|OPFL_MemRefs,
825
 
                      1, MVT::f64, 2, 2, 3, 
826
 
                0, 
827
 
              0, 
828
 
            60, 
829
 
              OPC_CheckPredicate, 10,
830
 
              OPC_CheckPredicate, 17,
831
 
              OPC_CheckType, MVT::f64,
832
 
              OPC_Scope, 25, 
833
 
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
834
 
                OPC_EmitMergeInputChains1_0,
835
 
                OPC_EmitNode, TARGET_OPCODE(PPC::LFS), 0|OPFL_Chain,
836
 
                    1, MVT::f32, 2, 2, 3, 
837
 
                OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
838
 
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain|OPFL_MemRefs,
839
 
                    1, MVT::f64, 2, 4, 5, 
840
 
              25, 
841
 
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
842
 
                OPC_EmitMergeInputChains1_0,
843
 
                OPC_EmitNode, TARGET_OPCODE(PPC::LFSX), 0|OPFL_Chain,
844
 
                    1, MVT::f32, 2, 2, 3, 
845
 
                OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
846
 
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain|OPFL_MemRefs,
847
 
                    1, MVT::f64, 2, 4, 5, 
848
 
              0, 
849
 
            17, 
850
 
              OPC_CheckPredicate, 8,
851
 
              OPC_CheckType, MVT::v4i32,
852
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
853
 
              OPC_EmitMergeInputChains1_0,
854
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVX), 0|OPFL_Chain|OPFL_MemRefs,
855
 
                  1, MVT::v4i32, 2, 2, 3, 
856
 
            0, 
857
 
          29|128,4,  TARGET_OPCODE(ISD::STORE),
858
 
            OPC_RecordMemRef,
859
 
            OPC_RecordNode,
860
 
            OPC_RecordChild1,
861
 
            OPC_Scope, 52|128,1, 
862
 
              OPC_CheckChild1Type, MVT::i32,
863
 
              OPC_RecordChild2,
864
 
              OPC_Scope, 110, 
865
 
                OPC_CheckPredicate, 18,
866
 
                OPC_Scope, 36, 
867
 
                  OPC_CheckPredicate, 19,
868
 
                  OPC_Scope, 15, 
869
 
                    OPC_CheckPredicate, 20,
870
 
                    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
871
 
                    OPC_EmitMergeInputChains1_0,
872
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STB), 0|OPFL_Chain|OPFL_MemRefs,
873
 
                        0, 3, 1, 3, 4, 
874
 
                  15, 
875
 
                    OPC_CheckPredicate, 21,
876
 
                    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
877
 
                    OPC_EmitMergeInputChains1_0,
878
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STH), 0|OPFL_Chain|OPFL_MemRefs,
879
 
                        0, 3, 1, 3, 4, 
880
 
                  0, 
881
 
                15, 
882
 
                  OPC_CheckPredicate, 22,
883
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/2,
884
 
                  OPC_EmitMergeInputChains1_0,
885
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STW), 0|OPFL_Chain|OPFL_MemRefs,
886
 
                      0, 3, 1, 3, 4, 
887
 
                36, 
888
 
                  OPC_CheckPredicate, 19,
889
 
                  OPC_Scope, 15, 
890
 
                    OPC_CheckPredicate, 20,
891
 
                    OPC_CheckComplexPat, /*CP*/2, /*#*/2,
892
 
                    OPC_EmitMergeInputChains1_0,
893
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBX), 0|OPFL_Chain|OPFL_MemRefs,
894
 
                        0, 3, 1, 3, 4, 
895
 
                  15, 
896
 
                    OPC_CheckPredicate, 21,
897
 
                    OPC_CheckComplexPat, /*CP*/2, /*#*/2,
898
 
                    OPC_EmitMergeInputChains1_0,
899
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHX), 0|OPFL_Chain|OPFL_MemRefs,
900
 
                        0, 3, 1, 3, 4, 
901
 
                  0, 
902
 
                15, 
903
 
                  OPC_CheckPredicate, 22,
904
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/2,
905
 
                  OPC_EmitMergeInputChains1_0,
906
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWX), 0|OPFL_Chain|OPFL_MemRefs,
907
 
                      0, 3, 1, 3, 4, 
908
 
                0, 
909
 
              63, 
910
 
                OPC_RecordChild3,
911
 
                OPC_Scope, 40, 
912
 
                  OPC_CheckPredicate, 23,
913
 
                  OPC_CheckPredicate, 24,
914
 
                  OPC_Scope, 16, 
915
 
                    OPC_CheckPredicate, 25,
916
 
                    OPC_CheckComplexPat, /*CP*/4, /*#*/3,
917
 
                    OPC_EmitMergeInputChains1_0,
918
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBU), 0|OPFL_Chain|OPFL_MemRefs,
919
 
                        1, MVT::iPTR, 3, 1, 4, 2, 
920
 
                  16, 
921
 
                    OPC_CheckPredicate, 26,
922
 
                    OPC_CheckComplexPat, /*CP*/4, /*#*/3,
923
 
                    OPC_EmitMergeInputChains1_0,
924
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHU), 0|OPFL_Chain|OPFL_MemRefs,
925
 
                        1, MVT::iPTR, 3, 1, 4, 2, 
926
 
                  0, 
927
 
                18, 
928
 
                  OPC_CheckPredicate, 27,
929
 
                  OPC_CheckPredicate, 28,
930
 
                  OPC_CheckComplexPat, /*CP*/4, /*#*/3,
931
 
                  OPC_EmitMergeInputChains1_0,
932
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWU), 0|OPFL_Chain|OPFL_MemRefs,
933
 
                      1, MVT::iPTR, 3, 1, 4, 2, 
934
 
                0, 
935
 
              0, 
936
 
            60, 
937
 
              OPC_CheckChild1Type, MVT::f32,
938
 
              OPC_RecordChild2,
939
 
              OPC_Scope, 34, 
940
 
                OPC_CheckPredicate, 18,
941
 
                OPC_CheckPredicate, 22,
942
 
                OPC_Scope, 13, 
943
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/2,
944
 
                  OPC_EmitMergeInputChains1_0,
945
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFS), 0|OPFL_Chain|OPFL_MemRefs,
946
 
                      0, 3, 1, 3, 4, 
947
 
                13, 
948
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/2,
949
 
                  OPC_EmitMergeInputChains1_0,
950
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFSX), 0|OPFL_Chain|OPFL_MemRefs,
951
 
                      0, 3, 1, 3, 4, 
952
 
                0, 
953
 
              19, 
954
 
                OPC_RecordChild3,
955
 
                OPC_CheckPredicate, 27,
956
 
                OPC_CheckPredicate, 28,
957
 
                OPC_CheckComplexPat, /*CP*/4, /*#*/3,
958
 
                OPC_EmitMergeInputChains1_0,
959
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFSU), 0|OPFL_Chain|OPFL_MemRefs,
960
 
                    1, MVT::iPTR, 3, 1, 4, 2, 
961
 
              0, 
962
 
            60, 
963
 
              OPC_CheckChild1Type, MVT::f64,
964
 
              OPC_RecordChild2,
965
 
              OPC_Scope, 34, 
966
 
                OPC_CheckPredicate, 18,
967
 
                OPC_CheckPredicate, 22,
968
 
                OPC_Scope, 13, 
969
 
                  OPC_CheckComplexPat, /*CP*/1, /*#*/2,
970
 
                  OPC_EmitMergeInputChains1_0,
971
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFD), 0|OPFL_Chain|OPFL_MemRefs,
972
 
                      0, 3, 1, 3, 4, 
973
 
                13, 
974
 
                  OPC_CheckComplexPat, /*CP*/2, /*#*/2,
975
 
                  OPC_EmitMergeInputChains1_0,
976
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFDX), 0|OPFL_Chain|OPFL_MemRefs,
977
 
                      0, 3, 1, 3, 4, 
978
 
                0, 
979
 
              19, 
980
 
                OPC_RecordChild3,
981
 
                OPC_CheckPredicate, 27,
982
 
                OPC_CheckPredicate, 28,
983
 
                OPC_CheckComplexPat, /*CP*/4, /*#*/3,
984
 
                OPC_EmitMergeInputChains1_0,
985
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFDU), 0|OPFL_Chain|OPFL_MemRefs,
986
 
                    1, MVT::iPTR, 3, 1, 4, 2, 
987
 
              0, 
988
 
            20, 
989
 
              OPC_CheckChild1Type, MVT::v4i32,
990
 
              OPC_RecordChild2,
991
 
              OPC_CheckPredicate, 18,
992
 
              OPC_CheckPredicate, 22,
993
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
994
 
              OPC_EmitMergeInputChains1_0,
995
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STVX), 0|OPFL_Chain|OPFL_MemRefs,
996
 
                  0, 3, 1, 3, 4, 
997
 
            81|128,1, 
998
 
              OPC_CheckChild1Type, MVT::i64,
999
 
              OPC_RecordChild2,
1000
 
              OPC_Scope, 10|128,1, 
1001
 
                OPC_CheckPredicate, 18,
1002
 
                OPC_Scope, 100, 
1003
 
                  OPC_CheckPredicate, 19,
1004
 
                  OPC_Scope, 15, 
1005
 
                    OPC_CheckPredicate, 20,
1006
 
                    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1007
 
                    OPC_EmitMergeInputChains1_0,
1008
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STB8), 0|OPFL_Chain|OPFL_MemRefs,
1009
 
                        0, 3, 1, 3, 4, 
1010
 
                  15, 
1011
 
                    OPC_CheckPredicate, 21,
1012
 
                    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1013
 
                    OPC_EmitMergeInputChains1_0,
1014
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STH8), 0|OPFL_Chain|OPFL_MemRefs,
1015
 
                        0, 3, 1, 3, 4, 
1016
 
                  15, 
1017
 
                    OPC_CheckPredicate, 29,
1018
 
                    OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1019
 
                    OPC_EmitMergeInputChains1_0,
1020
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STW8), 0|OPFL_Chain|OPFL_MemRefs,
1021
 
                        0, 3, 1, 3, 4, 
1022
 
                  15, 
1023
 
                    OPC_CheckPredicate, 20,
1024
 
                    OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1025
 
                    OPC_EmitMergeInputChains1_0,
1026
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBX8), 0|OPFL_Chain|OPFL_MemRefs,
1027
 
                        0, 3, 1, 3, 4, 
1028
 
                  15, 
1029
 
                    OPC_CheckPredicate, 21,
1030
 
                    OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1031
 
                    OPC_EmitMergeInputChains1_0,
1032
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHX8), 0|OPFL_Chain|OPFL_MemRefs,
1033
 
                        0, 3, 1, 3, 4, 
1034
 
                  15, 
1035
 
                    OPC_CheckPredicate, 29,
1036
 
                    OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1037
 
                    OPC_EmitMergeInputChains1_0,
1038
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWX8), 0|OPFL_Chain|OPFL_MemRefs,
1039
 
                        0, 3, 1, 3, 4, 
1040
 
                  0, 
1041
 
                32, 
1042
 
                  OPC_CheckPredicate, 22,
1043
 
                  OPC_Scope, 13, 
1044
 
                    OPC_CheckComplexPat, /*CP*/3, /*#*/2,
1045
 
                    OPC_EmitMergeInputChains1_0,
1046
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STD), 0|OPFL_Chain|OPFL_MemRefs,
1047
 
                        0, 3, 1, 3, 4, 
1048
 
                  13, 
1049
 
                    OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1050
 
                    OPC_EmitMergeInputChains1_0,
1051
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDX), 0|OPFL_Chain|OPFL_MemRefs,
1052
 
                        0, 3, 1, 3, 4, 
1053
 
                  0, 
1054
 
                0, 
1055
 
              63, 
1056
 
                OPC_RecordChild3,
1057
 
                OPC_Scope, 40, 
1058
 
                  OPC_CheckPredicate, 23,
1059
 
                  OPC_CheckPredicate, 24,
1060
 
                  OPC_Scope, 16, 
1061
 
                    OPC_CheckPredicate, 25,
1062
 
                    OPC_CheckComplexPat, /*CP*/4, /*#*/3,
1063
 
                    OPC_EmitMergeInputChains1_0,
1064
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STBU8), 0|OPFL_Chain|OPFL_MemRefs,
1065
 
                        1, MVT::iPTR, 3, 1, 4, 2, 
1066
 
                  16, 
1067
 
                    OPC_CheckPredicate, 26,
1068
 
                    OPC_CheckComplexPat, /*CP*/4, /*#*/3,
1069
 
                    OPC_EmitMergeInputChains1_0,
1070
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHU8), 0|OPFL_Chain|OPFL_MemRefs,
1071
 
                        1, MVT::iPTR, 3, 1, 4, 2, 
1072
 
                  0, 
1073
 
                18, 
1074
 
                  OPC_CheckPredicate, 27,
1075
 
                  OPC_CheckPredicate, 28,
1076
 
                  OPC_CheckComplexPat, /*CP*/4, /*#*/3,
1077
 
                  OPC_EmitMergeInputChains1_0,
1078
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDU), 0|OPFL_Chain|OPFL_MemRefs,
1079
 
                      1, MVT::iPTR, 3, 1, 4, 2, 
1080
 
                0, 
1081
 
              0, 
1082
 
            0, 
1083
 
          79,  TARGET_OPCODE(ISD::ATOMIC_LOAD_ADD),
1084
 
            OPC_RecordMemRef,
1085
 
            OPC_RecordNode,
1086
 
            OPC_RecordChild1,
1087
 
            OPC_RecordChild2,
1088
 
            OPC_SwitchType , 53,  MVT::i32,
1089
 
              OPC_Scope, 16, 
1090
 
                OPC_CheckPredicate, 30,
1091
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1092
 
                OPC_EmitMergeInputChains1_0,
1093
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I8), 0|OPFL_Chain|OPFL_MemRefs,
1094
 
                    1, MVT::i32, 3, 3, 4, 2, 
1095
 
              16, 
1096
 
                OPC_CheckPredicate, 31,
1097
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1098
 
                OPC_EmitMergeInputChains1_0,
1099
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I16), 0|OPFL_Chain|OPFL_MemRefs,
1100
 
                    1, MVT::i32, 3, 3, 4, 2, 
1101
 
              16, 
1102
 
                OPC_CheckPredicate, 32,
1103
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1104
 
                OPC_EmitMergeInputChains1_0,
1105
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I32), 0|OPFL_Chain|OPFL_MemRefs,
1106
 
                    1, MVT::i32, 3, 3, 4, 2, 
1107
 
              0, 
1108
 
            16,  MVT::i64,
1109
 
              OPC_CheckPredicate, 33,
1110
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1111
 
              OPC_EmitMergeInputChains1_0,
1112
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_ADD_I64), 0|OPFL_Chain|OPFL_MemRefs,
1113
 
                  1, MVT::i64, 3, 3, 4, 2, 
1114
 
            0, 
1115
 
          79,  TARGET_OPCODE(ISD::ATOMIC_LOAD_SUB),
1116
 
            OPC_RecordMemRef,
1117
 
            OPC_RecordNode,
1118
 
            OPC_RecordChild1,
1119
 
            OPC_RecordChild2,
1120
 
            OPC_SwitchType , 53,  MVT::i32,
1121
 
              OPC_Scope, 16, 
1122
 
                OPC_CheckPredicate, 34,
1123
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1124
 
                OPC_EmitMergeInputChains1_0,
1125
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I8), 0|OPFL_Chain|OPFL_MemRefs,
1126
 
                    1, MVT::i32, 3, 3, 4, 2, 
1127
 
              16, 
1128
 
                OPC_CheckPredicate, 35,
1129
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1130
 
                OPC_EmitMergeInputChains1_0,
1131
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I16), 0|OPFL_Chain|OPFL_MemRefs,
1132
 
                    1, MVT::i32, 3, 3, 4, 2, 
1133
 
              16, 
1134
 
                OPC_CheckPredicate, 36,
1135
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1136
 
                OPC_EmitMergeInputChains1_0,
1137
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I32), 0|OPFL_Chain|OPFL_MemRefs,
1138
 
                    1, MVT::i32, 3, 3, 4, 2, 
1139
 
              0, 
1140
 
            16,  MVT::i64,
1141
 
              OPC_CheckPredicate, 37,
1142
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1143
 
              OPC_EmitMergeInputChains1_0,
1144
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_SUB_I64), 0|OPFL_Chain|OPFL_MemRefs,
1145
 
                  1, MVT::i64, 3, 3, 4, 2, 
1146
 
            0, 
1147
 
          79,  TARGET_OPCODE(ISD::ATOMIC_LOAD_AND),
1148
 
            OPC_RecordMemRef,
1149
 
            OPC_RecordNode,
1150
 
            OPC_RecordChild1,
1151
 
            OPC_RecordChild2,
1152
 
            OPC_SwitchType , 53,  MVT::i32,
1153
 
              OPC_Scope, 16, 
1154
 
                OPC_CheckPredicate, 38,
1155
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1156
 
                OPC_EmitMergeInputChains1_0,
1157
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I8), 0|OPFL_Chain|OPFL_MemRefs,
1158
 
                    1, MVT::i32, 3, 3, 4, 2, 
1159
 
              16, 
1160
 
                OPC_CheckPredicate, 39,
1161
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1162
 
                OPC_EmitMergeInputChains1_0,
1163
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I16), 0|OPFL_Chain|OPFL_MemRefs,
1164
 
                    1, MVT::i32, 3, 3, 4, 2, 
1165
 
              16, 
1166
 
                OPC_CheckPredicate, 40,
1167
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1168
 
                OPC_EmitMergeInputChains1_0,
1169
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I32), 0|OPFL_Chain|OPFL_MemRefs,
1170
 
                    1, MVT::i32, 3, 3, 4, 2, 
1171
 
              0, 
1172
 
            16,  MVT::i64,
1173
 
              OPC_CheckPredicate, 41,
1174
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1175
 
              OPC_EmitMergeInputChains1_0,
1176
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_AND_I64), 0|OPFL_Chain|OPFL_MemRefs,
1177
 
                  1, MVT::i64, 3, 3, 4, 2, 
1178
 
            0, 
1179
 
          79,  TARGET_OPCODE(ISD::ATOMIC_LOAD_OR),
1180
 
            OPC_RecordMemRef,
1181
 
            OPC_RecordNode,
1182
 
            OPC_RecordChild1,
1183
 
            OPC_RecordChild2,
1184
 
            OPC_SwitchType , 53,  MVT::i32,
1185
 
              OPC_Scope, 16, 
1186
 
                OPC_CheckPredicate, 42,
1187
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1188
 
                OPC_EmitMergeInputChains1_0,
1189
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I8), 0|OPFL_Chain|OPFL_MemRefs,
1190
 
                    1, MVT::i32, 3, 3, 4, 2, 
1191
 
              16, 
1192
 
                OPC_CheckPredicate, 43,
1193
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1194
 
                OPC_EmitMergeInputChains1_0,
1195
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I16), 0|OPFL_Chain|OPFL_MemRefs,
1196
 
                    1, MVT::i32, 3, 3, 4, 2, 
1197
 
              16, 
1198
 
                OPC_CheckPredicate, 44,
1199
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1200
 
                OPC_EmitMergeInputChains1_0,
1201
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I32), 0|OPFL_Chain|OPFL_MemRefs,
1202
 
                    1, MVT::i32, 3, 3, 4, 2, 
1203
 
              0, 
1204
 
            16,  MVT::i64,
1205
 
              OPC_CheckPredicate, 45,
1206
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1207
 
              OPC_EmitMergeInputChains1_0,
1208
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_OR_I64), 0|OPFL_Chain|OPFL_MemRefs,
1209
 
                  1, MVT::i64, 3, 3, 4, 2, 
1210
 
            0, 
1211
 
          79,  TARGET_OPCODE(ISD::ATOMIC_LOAD_XOR),
1212
 
            OPC_RecordMemRef,
1213
 
            OPC_RecordNode,
1214
 
            OPC_RecordChild1,
1215
 
            OPC_RecordChild2,
1216
 
            OPC_SwitchType , 53,  MVT::i32,
1217
 
              OPC_Scope, 16, 
1218
 
                OPC_CheckPredicate, 46,
1219
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1220
 
                OPC_EmitMergeInputChains1_0,
1221
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I8), 0|OPFL_Chain|OPFL_MemRefs,
1222
 
                    1, MVT::i32, 3, 3, 4, 2, 
1223
 
              16, 
1224
 
                OPC_CheckPredicate, 47,
1225
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1226
 
                OPC_EmitMergeInputChains1_0,
1227
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I16), 0|OPFL_Chain|OPFL_MemRefs,
1228
 
                    1, MVT::i32, 3, 3, 4, 2, 
1229
 
              16, 
1230
 
                OPC_CheckPredicate, 48,
1231
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1232
 
                OPC_EmitMergeInputChains1_0,
1233
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I32), 0|OPFL_Chain|OPFL_MemRefs,
1234
 
                    1, MVT::i32, 3, 3, 4, 2, 
1235
 
              0, 
1236
 
            16,  MVT::i64,
1237
 
              OPC_CheckPredicate, 49,
1238
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1239
 
              OPC_EmitMergeInputChains1_0,
1240
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_XOR_I64), 0|OPFL_Chain|OPFL_MemRefs,
1241
 
                  1, MVT::i64, 3, 3, 4, 2, 
1242
 
            0, 
1243
 
          79,  TARGET_OPCODE(ISD::ATOMIC_LOAD_NAND),
1244
 
            OPC_RecordMemRef,
1245
 
            OPC_RecordNode,
1246
 
            OPC_RecordChild1,
1247
 
            OPC_RecordChild2,
1248
 
            OPC_SwitchType , 53,  MVT::i32,
1249
 
              OPC_Scope, 16, 
1250
 
                OPC_CheckPredicate, 50,
1251
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1252
 
                OPC_EmitMergeInputChains1_0,
1253
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I8), 0|OPFL_Chain|OPFL_MemRefs,
1254
 
                    1, MVT::i32, 3, 3, 4, 2, 
1255
 
              16, 
1256
 
                OPC_CheckPredicate, 51,
1257
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1258
 
                OPC_EmitMergeInputChains1_0,
1259
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I16), 0|OPFL_Chain|OPFL_MemRefs,
1260
 
                    1, MVT::i32, 3, 3, 4, 2, 
1261
 
              16, 
1262
 
                OPC_CheckPredicate, 52,
1263
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1264
 
                OPC_EmitMergeInputChains1_0,
1265
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I32), 0|OPFL_Chain|OPFL_MemRefs,
1266
 
                    1, MVT::i32, 3, 3, 4, 2, 
1267
 
              0, 
1268
 
            16,  MVT::i64,
1269
 
              OPC_CheckPredicate, 53,
1270
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1271
 
              OPC_EmitMergeInputChains1_0,
1272
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_LOAD_NAND_I64), 0|OPFL_Chain|OPFL_MemRefs,
1273
 
                  1, MVT::i64, 3, 3, 4, 2, 
1274
 
            0, 
1275
 
          84,  TARGET_OPCODE(ISD::ATOMIC_CMP_SWAP),
1276
 
            OPC_RecordMemRef,
1277
 
            OPC_RecordNode,
1278
 
            OPC_RecordChild1,
1279
 
            OPC_RecordChild2,
1280
 
            OPC_RecordChild3,
1281
 
            OPC_SwitchType , 56,  MVT::i32,
1282
 
              OPC_Scope, 17, 
1283
 
                OPC_CheckPredicate, 54,
1284
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1285
 
                OPC_EmitMergeInputChains1_0,
1286
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
1287
 
                    1, MVT::i32, 4, 4, 5, 2, 3, 
1288
 
              17, 
1289
 
                OPC_CheckPredicate, 55,
1290
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1291
 
                OPC_EmitMergeInputChains1_0,
1292
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
1293
 
                    1, MVT::i32, 4, 4, 5, 2, 3, 
1294
 
              17, 
1295
 
                OPC_CheckPredicate, 56,
1296
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1297
 
                OPC_EmitMergeInputChains1_0,
1298
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
1299
 
                    1, MVT::i32, 4, 4, 5, 2, 3, 
1300
 
              0, 
1301
 
            17,  MVT::i64,
1302
 
              OPC_CheckPredicate, 57,
1303
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1304
 
              OPC_EmitMergeInputChains1_0,
1305
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_CMP_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
1306
 
                  1, MVT::i64, 4, 4, 5, 2, 3, 
1307
 
            0, 
1308
 
          79,  TARGET_OPCODE(ISD::ATOMIC_SWAP),
1309
 
            OPC_RecordMemRef,
1310
 
            OPC_RecordNode,
1311
 
            OPC_RecordChild1,
1312
 
            OPC_RecordChild2,
1313
 
            OPC_SwitchType , 53,  MVT::i32,
1314
 
              OPC_Scope, 16, 
1315
 
                OPC_CheckPredicate, 58,
1316
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1317
 
                OPC_EmitMergeInputChains1_0,
1318
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I8), 0|OPFL_Chain|OPFL_MemRefs,
1319
 
                    1, MVT::i32, 3, 3, 4, 2, 
1320
 
              16, 
1321
 
                OPC_CheckPredicate, 59,
1322
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1323
 
                OPC_EmitMergeInputChains1_0,
1324
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I16), 0|OPFL_Chain|OPFL_MemRefs,
1325
 
                    1, MVT::i32, 3, 3, 4, 2, 
1326
 
              16, 
1327
 
                OPC_CheckPredicate, 60,
1328
 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1329
 
                OPC_EmitMergeInputChains1_0,
1330
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I32), 0|OPFL_Chain|OPFL_MemRefs,
1331
 
                    1, MVT::i32, 3, 3, 4, 2, 
1332
 
              0, 
1333
 
            16,  MVT::i64,
1334
 
              OPC_CheckPredicate, 61,
1335
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1336
 
              OPC_EmitMergeInputChains1_0,
1337
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ATOMIC_SWAP_I64), 0|OPFL_Chain|OPFL_MemRefs,
1338
 
                  1, MVT::i64, 3, 3, 4, 2, 
1339
 
            0, 
1340
 
          48,  TARGET_OPCODE(PPCISD::DYNALLOC),
1341
 
            OPC_RecordNode,
1342
 
            OPC_RecordChild1,
1343
 
            OPC_SwitchType , 20,  MVT::i32,
1344
 
              OPC_CheckChild1Type, MVT::i32,
1345
 
              OPC_RecordChild2,
1346
 
              OPC_CheckChild2Type, MVT::iPTR,
1347
 
              OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1348
 
              OPC_EmitMergeInputChains1_0,
1349
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DYNALLOC), 0|OPFL_Chain,
1350
 
                  2, MVT::i32, MVT::i32, 3, 1, 3, 4, 
1351
 
            20,  MVT::i64,
1352
 
              OPC_CheckChild1Type, MVT::i64,
1353
 
              OPC_RecordChild2,
1354
 
              OPC_CheckChild2Type, MVT::iPTR,
1355
 
              OPC_CheckComplexPat, /*CP*/1, /*#*/2,
1356
 
              OPC_EmitMergeInputChains1_0,
1357
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DYNALLOC8), 0|OPFL_Chain,
1358
 
                  2, MVT::i64, MVT::i64, 3, 1, 3, 4, 
1359
 
            0, 
1360
 
          34,  TARGET_OPCODE(PPCISD::LARX),
1361
 
            OPC_RecordNode,
1362
 
            OPC_RecordChild1,
1363
 
            OPC_SwitchType , 13,  MVT::i32,
1364
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1365
 
              OPC_EmitMergeInputChains1_0,
1366
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWARX), 0|OPFL_Chain,
1367
 
                  1, MVT::i32, 2, 2, 3, 
1368
 
            13,  MVT::i64,
1369
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1370
 
              OPC_EmitMergeInputChains1_0,
1371
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDARX), 0|OPFL_Chain,
1372
 
                  1, MVT::i64, 2, 2, 3, 
1373
 
            0, 
1374
 
          40,  TARGET_OPCODE(PPCISD::LBRX),
1375
 
            OPC_RecordNode,
1376
 
            OPC_RecordChild1,
1377
 
            OPC_MoveChild, 2,
1378
 
            OPC_Scope, 16, 
1379
 
              OPC_CheckValueType, MVT::i16,
1380
 
              OPC_MoveParent,
1381
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1382
 
              OPC_EmitMergeInputChains1_0,
1383
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LHBRX), 0|OPFL_Chain,
1384
 
                  1, MVT::i32, 2, 2, 3, 
1385
 
            16, 
1386
 
              OPC_CheckValueType, MVT::i32,
1387
 
              OPC_MoveParent,
1388
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
1389
 
              OPC_EmitMergeInputChains1_0,
1390
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWBRX), 0|OPFL_Chain,
1391
 
                  1, MVT::i32, 2, 2, 3, 
1392
 
            0, 
1393
 
          37,  TARGET_OPCODE(PPCISD::LOAD),
1394
 
            OPC_RecordNode,
1395
 
            OPC_CaptureFlagInput,
1396
 
            OPC_RecordChild1,
1397
 
            OPC_CheckChild1Type, MVT::iPTR,
1398
 
            OPC_CheckType, MVT::i64,
1399
 
            OPC_Scope, 13, 
1400
 
              OPC_CheckComplexPat, /*CP*/3, /*#*/1,
1401
 
              OPC_EmitMergeInputChains1_0,
1402
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LD), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
1403
 
                  1, MVT::i64, 2, 2, 3, 
1404
 
            13, 
1405
 
              OPC_CheckComplexPat, /*CP*/2, /*#*/1,
1406
 
              OPC_EmitMergeInputChains1_0,
1407
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
1408
 
                  1, MVT::i64, 2, 2, 3, 
1409
 
            0, 
1410
 
          84|128,4,  TARGET_OPCODE(ISD::XOR),
1411
 
            OPC_Scope, 39|128,1, 
1412
 
              OPC_MoveChild, 0,
1413
 
              OPC_SwitchOpcode , 41,  TARGET_OPCODE(ISD::AND),
1414
 
                OPC_RecordChild0,
1415
 
                OPC_RecordChild1,
1416
 
                OPC_MoveParent,
1417
 
                OPC_MoveChild, 1,
1418
 
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1419
 
                OPC_MoveParent,
1420
 
                OPC_SwitchType , 9,  MVT::i32,
1421
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::NAND), 0,
1422
 
                      1, MVT::i32, 2, 0, 1, 
1423
 
                9,  MVT::i64,
1424
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::NAND8), 0,
1425
 
                      1, MVT::i64, 2, 0, 1, 
1426
 
                0, 
1427
 
              41,  TARGET_OPCODE(ISD::OR),
1428
 
                OPC_RecordChild0,
1429
 
                OPC_RecordChild1,
1430
 
                OPC_MoveParent,
1431
 
                OPC_MoveChild, 1,
1432
 
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1433
 
                OPC_MoveParent,
1434
 
                OPC_SwitchType , 9,  MVT::i32,
1435
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOR), 0,
1436
 
                      1, MVT::i32, 2, 0, 1, 
1437
 
                9,  MVT::i64,
1438
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOR8), 0,
1439
 
                      1, MVT::i64, 2, 0, 1, 
1440
 
                0, 
1441
 
              72,  TARGET_OPCODE(ISD::XOR),
1442
 
                OPC_RecordChild0,
1443
 
                OPC_Scope, 40, 
1444
 
                  OPC_RecordChild1,
1445
 
                  OPC_MoveParent,
1446
 
                  OPC_MoveChild, 1,
1447
 
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1448
 
                  OPC_MoveParent,
1449
 
                  OPC_SwitchType , 9,  MVT::i32,
1450
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV), 0,
1451
 
                        1, MVT::i32, 2, 0, 1, 
1452
 
                  9,  MVT::i64,
1453
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV8), 0,
1454
 
                        1, MVT::i64, 2, 0, 1, 
1455
 
                  0, 
1456
 
                27, 
1457
 
                  OPC_MoveChild, 1,
1458
 
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1459
 
                  OPC_MoveParent,
1460
 
                  OPC_MoveParent,
1461
 
                  OPC_RecordChild1,
1462
 
                  OPC_CheckType, MVT::i32,
1463
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV), 0,
1464
 
                      1, MVT::i32, 2, 0, 1, 
1465
 
                0, 
1466
 
              0, 
1467
 
            33, 
1468
 
              OPC_RecordChild0,
1469
 
              OPC_MoveChild, 1,
1470
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1471
 
              OPC_RecordChild0,
1472
 
              OPC_MoveChild, 1,
1473
 
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1474
 
              OPC_MoveParent,
1475
 
              OPC_MoveParent,
1476
 
              OPC_CheckType, MVT::i32,
1477
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV), 0,
1478
 
                  1, MVT::i32, 2, 1, 0, 
1479
 
            33, 
1480
 
              OPC_MoveChild, 0,
1481
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1482
 
              OPC_RecordChild0,
1483
 
              OPC_MoveChild, 1,
1484
 
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1485
 
              OPC_MoveParent,
1486
 
              OPC_MoveParent,
1487
 
              OPC_RecordChild1,
1488
 
              OPC_CheckType, MVT::i64,
1489
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV8), 0,
1490
 
                  1, MVT::i64, 2, 0, 1, 
1491
 
            84|128,1, 
1492
 
              OPC_RecordChild0,
1493
 
              OPC_Scope, 59, 
1494
 
                OPC_MoveChild, 1,
1495
 
                OPC_Scope, 30, 
1496
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1497
 
                  OPC_RecordChild0,
1498
 
                  OPC_MoveChild, 1,
1499
 
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1500
 
                  OPC_MoveParent,
1501
 
                  OPC_MoveParent,
1502
 
                  OPC_CheckType, MVT::i64,
1503
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::EQV8), 0,
1504
 
                      1, MVT::i64, 2, 1, 0, 
1505
 
                23, 
1506
 
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1507
 
                  OPC_MoveParent,
1508
 
                  OPC_CheckType, MVT::i32,
1509
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOR), 0,
1510
 
                      1, MVT::i32, 2, 0, 0, 
1511
 
                0, 
1512
 
              19|128,1, 
1513
 
                OPC_RecordChild1,
1514
 
                OPC_Scope, 119, 
1515
 
                  OPC_MoveChild, 1,
1516
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1517
 
                  OPC_Scope, 19, 
1518
 
                    OPC_CheckPredicate, 62,
1519
 
                    OPC_MoveParent,
1520
 
                    OPC_CheckType, MVT::i32,
1521
 
                    OPC_EmitConvertToTarget, 1,
1522
 
                    OPC_EmitNodeXForm, 1, 2,
1523
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORI), 0,
1524
 
                        1, MVT::i32, 2, 0, 3, 
1525
 
                  19, 
1526
 
                    OPC_CheckPredicate, 63,
1527
 
                    OPC_MoveParent,
1528
 
                    OPC_CheckType, MVT::i32,
1529
 
                    OPC_EmitConvertToTarget, 1,
1530
 
                    OPC_EmitNodeXForm, 0, 2,
1531
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORIS), 0,
1532
 
                        1, MVT::i32, 2, 0, 3, 
1533
 
                  19, 
1534
 
                    OPC_CheckPredicate, 62,
1535
 
                    OPC_MoveParent,
1536
 
                    OPC_CheckType, MVT::i64,
1537
 
                    OPC_EmitConvertToTarget, 1,
1538
 
                    OPC_EmitNodeXForm, 1, 2,
1539
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORI8), 0,
1540
 
                        1, MVT::i64, 2, 0, 3, 
1541
 
                  19, 
1542
 
                    OPC_CheckPredicate, 63,
1543
 
                    OPC_MoveParent,
1544
 
                    OPC_CheckType, MVT::i64,
1545
 
                    OPC_EmitConvertToTarget, 1,
1546
 
                    OPC_EmitNodeXForm, 0, 2,
1547
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORIS8), 0,
1548
 
                        1, MVT::i64, 2, 0, 3, 
1549
 
                  31, 
1550
 
                    OPC_MoveParent,
1551
 
                    OPC_CheckType, MVT::i32,
1552
 
                    OPC_EmitConvertToTarget, 1,
1553
 
                    OPC_EmitNodeXForm, 1, 2,
1554
 
                    OPC_EmitNode, TARGET_OPCODE(PPC::XORI), 0,
1555
 
                        1, MVT::i32, 2, 0, 3, 
1556
 
                    OPC_EmitConvertToTarget, 1,
1557
 
                    OPC_EmitNodeXForm, 0, 5,
1558
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::XORIS), 0,
1559
 
                        1, MVT::i32, 2, 4, 6, 
1560
 
                  0, 
1561
 
                11, 
1562
 
                  OPC_CheckType, MVT::i32,
1563
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::XOR), 0,
1564
 
                      1, MVT::i32, 2, 0, 1, 
1565
 
                11, 
1566
 
                  OPC_CheckType, MVT::i64,
1567
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::XOR8), 0,
1568
 
                      1, MVT::i64, 2, 0, 1, 
1569
 
                0, 
1570
 
              0, 
1571
 
            70, 
1572
 
              OPC_MoveChild, 0,
1573
 
              OPC_SwitchOpcode , 30,  TARGET_OPCODE(ISD::OR),
1574
 
                OPC_RecordChild0,
1575
 
                OPC_RecordChild1,
1576
 
                OPC_MoveParent,
1577
 
                OPC_MoveChild, 1,
1578
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1579
 
                OPC_MoveChild, 0,
1580
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1581
 
                OPC_CheckPredicate, 64,
1582
 
                OPC_CheckType, MVT::v16i8,
1583
 
                OPC_MoveParent,
1584
 
                OPC_MoveParent,
1585
 
                OPC_CheckType, MVT::v4i32,
1586
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1587
 
                    1, MVT::v4i32, 2, 0, 1, 
1588
 
              30,  TARGET_OPCODE(ISD::BIT_CONVERT),
1589
 
                OPC_MoveChild, 0,
1590
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1591
 
                OPC_CheckPredicate, 64,
1592
 
                OPC_CheckType, MVT::v16i8,
1593
 
                OPC_MoveParent,
1594
 
                OPC_MoveParent,
1595
 
                OPC_MoveChild, 1,
1596
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::OR),
1597
 
                OPC_RecordChild0,
1598
 
                OPC_RecordChild1,
1599
 
                OPC_MoveParent,
1600
 
                OPC_CheckType, MVT::v4i32,
1601
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1602
 
                    1, MVT::v4i32, 2, 0, 1, 
1603
 
              0, 
1604
 
            28, 
1605
 
              OPC_RecordChild0,
1606
 
              OPC_MoveChild, 1,
1607
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1608
 
              OPC_MoveChild, 0,
1609
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1610
 
              OPC_CheckPredicate, 64,
1611
 
              OPC_CheckType, MVT::v16i8,
1612
 
              OPC_MoveParent,
1613
 
              OPC_MoveParent,
1614
 
              OPC_CheckType, MVT::v4i32,
1615
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1616
 
                  1, MVT::v4i32, 2, 0, 0, 
1617
 
            28, 
1618
 
              OPC_MoveChild, 0,
1619
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1620
 
              OPC_MoveChild, 0,
1621
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1622
 
              OPC_CheckPredicate, 64,
1623
 
              OPC_CheckType, MVT::v16i8,
1624
 
              OPC_MoveParent,
1625
 
              OPC_MoveParent,
1626
 
              OPC_RecordChild1,
1627
 
              OPC_CheckType, MVT::v4i32,
1628
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNOR), 0,
1629
 
                  1, MVT::v4i32, 2, 0, 0, 
1630
 
            13, 
1631
 
              OPC_RecordChild0,
1632
 
              OPC_RecordChild1,
1633
 
              OPC_CheckType, MVT::v4i32,
1634
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VXOR), 0,
1635
 
                  1, MVT::v4i32, 2, 0, 1, 
1636
 
            0, 
1637
 
          9|128,4,  TARGET_OPCODE(ISD::AND),
1638
 
            OPC_Scope, 46, 
1639
 
              OPC_RecordChild0,
1640
 
              OPC_MoveChild, 1,
1641
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1642
 
              OPC_RecordChild0,
1643
 
              OPC_MoveChild, 1,
1644
 
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1645
 
              OPC_MoveParent,
1646
 
              OPC_MoveParent,
1647
 
              OPC_SwitchType , 9,  MVT::i32,
1648
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC), 0,
1649
 
                    1, MVT::i32, 2, 0, 1, 
1650
 
              9,  MVT::i64,
1651
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC8), 0,
1652
 
                    1, MVT::i64, 2, 0, 1, 
1653
 
              0, 
1654
 
            88, 
1655
 
              OPC_MoveChild, 0,
1656
 
              OPC_SwitchOpcode , 41,  TARGET_OPCODE(ISD::XOR),
1657
 
                OPC_RecordChild0,
1658
 
                OPC_MoveChild, 1,
1659
 
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1660
 
                OPC_MoveParent,
1661
 
                OPC_MoveParent,
1662
 
                OPC_RecordChild1,
1663
 
                OPC_SwitchType , 9,  MVT::i32,
1664
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC), 0,
1665
 
                      1, MVT::i32, 2, 1, 0, 
1666
 
                9,  MVT::i64,
1667
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDC8), 0,
1668
 
                      1, MVT::i64, 2, 1, 0, 
1669
 
                0, 
1670
 
              37,  TARGET_OPCODE(ISD::ROTL),
1671
 
                OPC_RecordChild0,
1672
 
                OPC_RecordChild1,
1673
 
                OPC_CheckChild1Type, MVT::i32,
1674
 
                OPC_MoveParent,
1675
 
                OPC_RecordChild1,
1676
 
                OPC_MoveChild, 1,
1677
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1678
 
                OPC_CheckPredicate, 65,
1679
 
                OPC_MoveParent,
1680
 
                OPC_CheckType, MVT::i32,
1681
 
                OPC_EmitConvertToTarget, 2,
1682
 
                OPC_EmitNodeXForm, 3, 3,
1683
 
                OPC_EmitConvertToTarget, 2,
1684
 
                OPC_EmitNodeXForm, 4, 5,
1685
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWNM), 0,
1686
 
                    1, MVT::i32, 4, 0, 1, 4, 6, 
1687
 
              0, 
1688
 
            63|128,1, 
1689
 
              OPC_RecordChild0,
1690
 
              OPC_Scope, 119, 
1691
 
                OPC_RecordChild1,
1692
 
                OPC_Scope, 91, 
1693
 
                  OPC_MoveChild, 1,
1694
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1695
 
                  OPC_Scope, 20, 
1696
 
                    OPC_CheckPredicate, 62,
1697
 
                    OPC_MoveParent,
1698
 
                    OPC_CheckType, MVT::i32,
1699
 
                    OPC_EmitConvertToTarget, 1,
1700
 
                    OPC_EmitNodeXForm, 1, 2,
1701
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDIo), 0,
1702
 
                        2, MVT::i32, MVT::i32, 2, 0, 3, 
1703
 
                  20, 
1704
 
                    OPC_CheckPredicate, 63,
1705
 
                    OPC_MoveParent,
1706
 
                    OPC_CheckType, MVT::i32,
1707
 
                    OPC_EmitConvertToTarget, 1,
1708
 
                    OPC_EmitNodeXForm, 0, 2,
1709
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDISo), 0,
1710
 
                        2, MVT::i32, MVT::i32, 2, 0, 3, 
1711
 
                  20, 
1712
 
                    OPC_CheckPredicate, 62,
1713
 
                    OPC_MoveParent,
1714
 
                    OPC_CheckType, MVT::i64,
1715
 
                    OPC_EmitConvertToTarget, 1,
1716
 
                    OPC_EmitNodeXForm, 1, 2,
1717
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDIo8), 0,
1718
 
                        2, MVT::i64, MVT::i32, 2, 0, 3, 
1719
 
                  20, 
1720
 
                    OPC_CheckPredicate, 63,
1721
 
                    OPC_MoveParent,
1722
 
                    OPC_CheckType, MVT::i64,
1723
 
                    OPC_EmitConvertToTarget, 1,
1724
 
                    OPC_EmitNodeXForm, 0, 2,
1725
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::ANDISo8), 0,
1726
 
                        2, MVT::i64, MVT::i32, 2, 0, 3, 
1727
 
                  0, 
1728
 
                11, 
1729
 
                  OPC_CheckType, MVT::i32,
1730
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::AND), 0,
1731
 
                      1, MVT::i32, 2, 0, 1, 
1732
 
                11, 
1733
 
                  OPC_CheckType, MVT::i64,
1734
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::AND8), 0,
1735
 
                      1, MVT::i64, 2, 0, 1, 
1736
 
                0, 
1737
 
              67, 
1738
 
                OPC_MoveChild, 1,
1739
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1740
 
                OPC_Scope, 29, 
1741
 
                  OPC_RecordChild0,
1742
 
                  OPC_MoveChild, 1,
1743
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1744
 
                  OPC_MoveChild, 0,
1745
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1746
 
                  OPC_CheckPredicate, 64,
1747
 
                  OPC_CheckType, MVT::v16i8,
1748
 
                  OPC_MoveParent,
1749
 
                  OPC_MoveParent,
1750
 
                  OPC_MoveParent,
1751
 
                  OPC_CheckType, MVT::v4i32,
1752
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1753
 
                      1, MVT::v4i32, 2, 0, 1, 
1754
 
                29, 
1755
 
                  OPC_MoveChild, 0,
1756
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1757
 
                  OPC_MoveChild, 0,
1758
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1759
 
                  OPC_CheckPredicate, 64,
1760
 
                  OPC_CheckType, MVT::v16i8,
1761
 
                  OPC_MoveParent,
1762
 
                  OPC_MoveParent,
1763
 
                  OPC_RecordChild1,
1764
 
                  OPC_MoveParent,
1765
 
                  OPC_CheckType, MVT::v4i32,
1766
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1767
 
                      1, MVT::v4i32, 2, 0, 1, 
1768
 
                0, 
1769
 
              0, 
1770
 
            69, 
1771
 
              OPC_MoveChild, 0,
1772
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1773
 
              OPC_Scope, 30, 
1774
 
                OPC_RecordChild0,
1775
 
                OPC_MoveChild, 1,
1776
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1777
 
                OPC_MoveChild, 0,
1778
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1779
 
                OPC_CheckPredicate, 64,
1780
 
                OPC_CheckType, MVT::v16i8,
1781
 
                OPC_MoveParent,
1782
 
                OPC_MoveParent,
1783
 
                OPC_MoveParent,
1784
 
                OPC_RecordChild1,
1785
 
                OPC_CheckType, MVT::v4i32,
1786
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1787
 
                    1, MVT::v4i32, 2, 1, 0, 
1788
 
              30, 
1789
 
                OPC_MoveChild, 0,
1790
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1791
 
                OPC_MoveChild, 0,
1792
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1793
 
                OPC_CheckPredicate, 64,
1794
 
                OPC_CheckType, MVT::v16i8,
1795
 
                OPC_MoveParent,
1796
 
                OPC_MoveParent,
1797
 
                OPC_RecordChild1,
1798
 
                OPC_MoveParent,
1799
 
                OPC_RecordChild1,
1800
 
                OPC_CheckType, MVT::v4i32,
1801
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1802
 
                    1, MVT::v4i32, 2, 1, 0, 
1803
 
              0, 
1804
 
            35, 
1805
 
              OPC_RecordChild0,
1806
 
              OPC_MoveChild, 1,
1807
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1808
 
              OPC_MoveChild, 0,
1809
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1810
 
              OPC_MoveChild, 0,
1811
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1812
 
              OPC_CheckPredicate, 64,
1813
 
              OPC_CheckType, MVT::v16i8,
1814
 
              OPC_MoveParent,
1815
 
              OPC_MoveParent,
1816
 
              OPC_RecordChild1,
1817
 
              OPC_MoveParent,
1818
 
              OPC_CheckType, MVT::v4i32,
1819
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1820
 
                  1, MVT::v4i32, 2, 0, 1, 
1821
 
            69, 
1822
 
              OPC_MoveChild, 0,
1823
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1824
 
              OPC_Scope, 30, 
1825
 
                OPC_RecordChild0,
1826
 
                OPC_MoveChild, 1,
1827
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1828
 
                OPC_MoveChild, 0,
1829
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1830
 
                OPC_CheckPredicate, 64,
1831
 
                OPC_CheckType, MVT::v16i8,
1832
 
                OPC_MoveParent,
1833
 
                OPC_MoveParent,
1834
 
                OPC_MoveParent,
1835
 
                OPC_RecordChild1,
1836
 
                OPC_CheckType, MVT::v4i32,
1837
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1838
 
                    1, MVT::v4i32, 2, 1, 0, 
1839
 
              30, 
1840
 
                OPC_MoveChild, 0,
1841
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
1842
 
                OPC_MoveChild, 0,
1843
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
1844
 
                OPC_CheckPredicate, 64,
1845
 
                OPC_CheckType, MVT::v16i8,
1846
 
                OPC_MoveParent,
1847
 
                OPC_MoveParent,
1848
 
                OPC_RecordChild1,
1849
 
                OPC_MoveParent,
1850
 
                OPC_RecordChild1,
1851
 
                OPC_CheckType, MVT::v4i32,
1852
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VANDC), 0,
1853
 
                    1, MVT::v4i32, 2, 1, 0, 
1854
 
              0, 
1855
 
            13, 
1856
 
              OPC_RecordChild0,
1857
 
              OPC_RecordChild1,
1858
 
              OPC_CheckType, MVT::v4i32,
1859
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAND), 0,
1860
 
                  1, MVT::v4i32, 2, 0, 1, 
1861
 
            0, 
1862
 
          2|128,2,  TARGET_OPCODE(ISD::OR),
1863
 
            OPC_Scope, 46, 
1864
 
              OPC_RecordChild0,
1865
 
              OPC_MoveChild, 1,
1866
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1867
 
              OPC_RecordChild0,
1868
 
              OPC_MoveChild, 1,
1869
 
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1870
 
              OPC_MoveParent,
1871
 
              OPC_MoveParent,
1872
 
              OPC_SwitchType , 9,  MVT::i32,
1873
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC), 0,
1874
 
                    1, MVT::i32, 2, 0, 1, 
1875
 
              9,  MVT::i64,
1876
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC8), 0,
1877
 
                    1, MVT::i64, 2, 0, 1, 
1878
 
              0, 
1879
 
            46, 
1880
 
              OPC_MoveChild, 0,
1881
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
1882
 
              OPC_RecordChild0,
1883
 
              OPC_MoveChild, 1,
1884
 
              OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
1885
 
              OPC_MoveParent,
1886
 
              OPC_MoveParent,
1887
 
              OPC_RecordChild1,
1888
 
              OPC_SwitchType , 9,  MVT::i32,
1889
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC), 0,
1890
 
                    1, MVT::i32, 2, 1, 0, 
1891
 
              9,  MVT::i64,
1892
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORC8), 0,
1893
 
                    1, MVT::i64, 2, 1, 0, 
1894
 
              0, 
1895
 
            32|128,1, 
1896
 
              OPC_RecordChild0,
1897
 
              OPC_RecordChild1,
1898
 
              OPC_Scope, 119, 
1899
 
                OPC_MoveChild, 1,
1900
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
1901
 
                OPC_Scope, 19, 
1902
 
                  OPC_CheckPredicate, 62,
1903
 
                  OPC_MoveParent,
1904
 
                  OPC_CheckType, MVT::i32,
1905
 
                  OPC_EmitConvertToTarget, 1,
1906
 
                  OPC_EmitNodeXForm, 1, 2,
1907
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORI), 0,
1908
 
                      1, MVT::i32, 2, 0, 3, 
1909
 
                19, 
1910
 
                  OPC_CheckPredicate, 63,
1911
 
                  OPC_MoveParent,
1912
 
                  OPC_CheckType, MVT::i32,
1913
 
                  OPC_EmitConvertToTarget, 1,
1914
 
                  OPC_EmitNodeXForm, 0, 2,
1915
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORIS), 0,
1916
 
                      1, MVT::i32, 2, 0, 3, 
1917
 
                19, 
1918
 
                  OPC_CheckPredicate, 62,
1919
 
                  OPC_MoveParent,
1920
 
                  OPC_CheckType, MVT::i64,
1921
 
                  OPC_EmitConvertToTarget, 1,
1922
 
                  OPC_EmitNodeXForm, 1, 2,
1923
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORI8), 0,
1924
 
                      1, MVT::i64, 2, 0, 3, 
1925
 
                19, 
1926
 
                  OPC_CheckPredicate, 63,
1927
 
                  OPC_MoveParent,
1928
 
                  OPC_CheckType, MVT::i64,
1929
 
                  OPC_EmitConvertToTarget, 1,
1930
 
                  OPC_EmitNodeXForm, 0, 2,
1931
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORIS8), 0,
1932
 
                      1, MVT::i64, 2, 0, 3, 
1933
 
                31, 
1934
 
                  OPC_MoveParent,
1935
 
                  OPC_CheckType, MVT::i32,
1936
 
                  OPC_EmitConvertToTarget, 1,
1937
 
                  OPC_EmitNodeXForm, 1, 2,
1938
 
                  OPC_EmitNode, TARGET_OPCODE(PPC::ORI), 0,
1939
 
                      1, MVT::i32, 2, 0, 3, 
1940
 
                  OPC_EmitConvertToTarget, 1,
1941
 
                  OPC_EmitNodeXForm, 0, 5,
1942
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORIS), 0,
1943
 
                      1, MVT::i32, 2, 4, 6, 
1944
 
                0, 
1945
 
              11, 
1946
 
                OPC_CheckType, MVT::i32,
1947
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR), 0,
1948
 
                    1, MVT::i32, 2, 0, 1, 
1949
 
              11, 
1950
 
                OPC_CheckType, MVT::i64,
1951
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR8), 0,
1952
 
                    1, MVT::i64, 2, 0, 1, 
1953
 
              11, 
1954
 
                OPC_CheckType, MVT::v4i32,
1955
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VOR), 0,
1956
 
                    1, MVT::v4i32, 2, 0, 1, 
1957
 
              0, 
1958
 
            0, 
1959
 
          1|128,1,  TARGET_OPCODE(PPCISD::Hi),
1960
 
            OPC_RecordChild0,
1961
 
            OPC_MoveChild, 0,
1962
 
            OPC_SwitchOpcode , 28,  TARGET_OPCODE(ISD::TargetGlobalAddress),
1963
 
              OPC_MoveParent,
1964
 
              OPC_MoveChild, 1,
1965
 
              OPC_CheckInteger, 0, 
1966
 
              OPC_MoveParent,
1967
 
              OPC_SwitchType , 8,  MVT::i32,
1968
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
1969
 
                    1, MVT::i32, 1, 0, 
1970
 
              8,  MVT::i64,
1971
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
1972
 
                    1, MVT::i64, 1, 0, 
1973
 
              0, 
1974
 
            28,  TARGET_OPCODE(ISD::TargetConstantPool),
1975
 
              OPC_MoveParent,
1976
 
              OPC_MoveChild, 1,
1977
 
              OPC_CheckInteger, 0, 
1978
 
              OPC_MoveParent,
1979
 
              OPC_SwitchType , 8,  MVT::i32,
1980
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
1981
 
                    1, MVT::i32, 1, 0, 
1982
 
              8,  MVT::i64,
1983
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
1984
 
                    1, MVT::i64, 1, 0, 
1985
 
              0, 
1986
 
            28,  TARGET_OPCODE(ISD::TargetJumpTable),
1987
 
              OPC_MoveParent,
1988
 
              OPC_MoveChild, 1,
1989
 
              OPC_CheckInteger, 0, 
1990
 
              OPC_MoveParent,
1991
 
              OPC_SwitchType , 8,  MVT::i32,
1992
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
1993
 
                    1, MVT::i32, 1, 0, 
1994
 
              8,  MVT::i64,
1995
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
1996
 
                    1, MVT::i64, 1, 0, 
1997
 
              0, 
1998
 
            28,  TARGET_OPCODE(ISD::TargetBlockAddress),
1999
 
              OPC_MoveParent,
2000
 
              OPC_MoveChild, 1,
2001
 
              OPC_CheckInteger, 0, 
2002
 
              OPC_MoveParent,
2003
 
              OPC_SwitchType , 8,  MVT::i32,
2004
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
2005
 
                    1, MVT::i32, 1, 0, 
2006
 
              8,  MVT::i64,
2007
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
2008
 
                    1, MVT::i64, 1, 0, 
2009
 
              0, 
2010
 
            0, 
2011
 
          1|128,1,  TARGET_OPCODE(PPCISD::Lo),
2012
 
            OPC_RecordChild0,
2013
 
            OPC_MoveChild, 0,
2014
 
            OPC_SwitchOpcode , 28,  TARGET_OPCODE(ISD::TargetGlobalAddress),
2015
 
              OPC_MoveParent,
2016
 
              OPC_MoveChild, 1,
2017
 
              OPC_CheckInteger, 0, 
2018
 
              OPC_MoveParent,
2019
 
              OPC_SwitchType , 8,  MVT::i32,
2020
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2021
 
                    1, MVT::i32, 1, 0, 
2022
 
              8,  MVT::i64,
2023
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2024
 
                    1, MVT::i64, 1, 0, 
2025
 
              0, 
2026
 
            28,  TARGET_OPCODE(ISD::TargetConstantPool),
2027
 
              OPC_MoveParent,
2028
 
              OPC_MoveChild, 1,
2029
 
              OPC_CheckInteger, 0, 
2030
 
              OPC_MoveParent,
2031
 
              OPC_SwitchType , 8,  MVT::i32,
2032
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2033
 
                    1, MVT::i32, 1, 0, 
2034
 
              8,  MVT::i64,
2035
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2036
 
                    1, MVT::i64, 1, 0, 
2037
 
              0, 
2038
 
            28,  TARGET_OPCODE(ISD::TargetJumpTable),
2039
 
              OPC_MoveParent,
2040
 
              OPC_MoveChild, 1,
2041
 
              OPC_CheckInteger, 0, 
2042
 
              OPC_MoveParent,
2043
 
              OPC_SwitchType , 8,  MVT::i32,
2044
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2045
 
                    1, MVT::i32, 1, 0, 
2046
 
              8,  MVT::i64,
2047
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2048
 
                    1, MVT::i64, 1, 0, 
2049
 
              0, 
2050
 
            28,  TARGET_OPCODE(ISD::TargetBlockAddress),
2051
 
              OPC_MoveParent,
2052
 
              OPC_MoveChild, 1,
2053
 
              OPC_CheckInteger, 0, 
2054
 
              OPC_MoveParent,
2055
 
              OPC_SwitchType , 8,  MVT::i32,
2056
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2057
 
                    1, MVT::i32, 1, 0, 
2058
 
              8,  MVT::i64,
2059
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2060
 
                    1, MVT::i64, 1, 0, 
2061
 
              0, 
2062
 
            0, 
2063
 
          118,  TARGET_OPCODE(ISD::SUB),
2064
 
            OPC_Scope, 28, 
2065
 
              OPC_MoveChild, 0,
2066
 
              OPC_CheckInteger, 0, 
2067
 
              OPC_MoveParent,
2068
 
              OPC_RecordChild1,
2069
 
              OPC_SwitchType , 8,  MVT::i32,
2070
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::NEG), 0,
2071
 
                    1, MVT::i32, 1, 0, 
2072
 
              8,  MVT::i64,
2073
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::NEG8), 0,
2074
 
                    1, MVT::i64, 1, 0, 
2075
 
              0, 
2076
 
            86, 
2077
 
              OPC_RecordChild0,
2078
 
              OPC_Scope, 23, 
2079
 
                OPC_MoveChild, 0,
2080
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2081
 
                OPC_CheckPredicate, 0,
2082
 
                OPC_MoveParent,
2083
 
                OPC_RecordChild1,
2084
 
                OPC_CheckType, MVT::i32,
2085
 
                OPC_EmitConvertToTarget, 0,
2086
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFIC), 0,
2087
 
                    2, MVT::i32, MVT::i32, 2, 1, 2, 
2088
 
              58, 
2089
 
                OPC_RecordChild1,
2090
 
                OPC_SwitchType , 9,  MVT::i32,
2091
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBF), 0,
2092
 
                      1, MVT::i32, 2, 1, 0, 
2093
 
                9,  MVT::i64,
2094
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBF8), 0,
2095
 
                      1, MVT::i64, 2, 1, 0, 
2096
 
                9,  MVT::v16i8,
2097
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUBM), 0,
2098
 
                      1, MVT::v16i8, 2, 0, 1, 
2099
 
                9,  MVT::v8i16,
2100
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUHM), 0,
2101
 
                      1, MVT::v8i16, 2, 0, 1, 
2102
 
                9,  MVT::v4i32,
2103
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUWM), 0,
2104
 
                      1, MVT::v4i32, 2, 0, 1, 
2105
 
                0, 
2106
 
              0, 
2107
 
            0, 
2108
 
          102,  TARGET_OPCODE(ISD::ADDE),
2109
 
            OPC_CaptureFlagInput,
2110
 
            OPC_RecordChild0,
2111
 
            OPC_Scope, 69, 
2112
 
              OPC_MoveChild, 1,
2113
 
              OPC_Scope, 36, 
2114
 
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
2115
 
                OPC_MoveParent,
2116
 
                OPC_SwitchType , 9,  MVT::i32,
2117
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDME), 0|OPFL_FlagInput|OPFL_FlagOutput,
2118
 
                      2, MVT::i32, MVT::i32, 1, 0, 
2119
 
                9,  MVT::i64,
2120
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDME8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2121
 
                      2, MVT::i64, MVT::i32, 1, 0, 
2122
 
                0, 
2123
 
              27, 
2124
 
                OPC_CheckInteger, 0, 
2125
 
                OPC_MoveParent,
2126
 
                OPC_SwitchType , 9,  MVT::i32,
2127
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDZE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2128
 
                      2, MVT::i32, MVT::i32, 1, 0, 
2129
 
                9,  MVT::i64,
2130
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDZE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2131
 
                      2, MVT::i64, MVT::i32, 1, 0, 
2132
 
                0, 
2133
 
              0, 
2134
 
            27, 
2135
 
              OPC_RecordChild1,
2136
 
              OPC_SwitchType , 10,  MVT::i32,
2137
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2138
 
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
2139
 
              10,  MVT::i64,
2140
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2141
 
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
2142
 
              0, 
2143
 
            0, 
2144
 
          104,  TARGET_OPCODE(ISD::SUBE),
2145
 
            OPC_CaptureFlagInput,
2146
 
            OPC_Scope, 71, 
2147
 
              OPC_MoveChild, 0,
2148
 
              OPC_Scope, 37, 
2149
 
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
2150
 
                OPC_MoveParent,
2151
 
                OPC_RecordChild1,
2152
 
                OPC_SwitchType , 9,  MVT::i32,
2153
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFME), 0|OPFL_FlagInput|OPFL_FlagOutput,
2154
 
                      2, MVT::i32, MVT::i32, 1, 0, 
2155
 
                9,  MVT::i64,
2156
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFME8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2157
 
                      2, MVT::i64, MVT::i32, 1, 0, 
2158
 
                0, 
2159
 
              28, 
2160
 
                OPC_CheckInteger, 0, 
2161
 
                OPC_MoveParent,
2162
 
                OPC_RecordChild1,
2163
 
                OPC_SwitchType , 9,  MVT::i32,
2164
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFZE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2165
 
                      2, MVT::i32, MVT::i32, 1, 0, 
2166
 
                9,  MVT::i64,
2167
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFZE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2168
 
                      2, MVT::i64, MVT::i32, 1, 0, 
2169
 
                0, 
2170
 
              0, 
2171
 
            28, 
2172
 
              OPC_RecordChild0,
2173
 
              OPC_RecordChild1,
2174
 
              OPC_SwitchType , 10,  MVT::i32,
2175
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFE), 0|OPFL_FlagInput|OPFL_FlagOutput,
2176
 
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
2177
 
              10,  MVT::i64,
2178
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFE8), 0|OPFL_FlagInput|OPFL_FlagOutput,
2179
 
                    2, MVT::i64, MVT::i32, 2, 1, 0, 
2180
 
              0, 
2181
 
            0, 
2182
 
          69,  TARGET_OPCODE(ISD::ADDC),
2183
 
            OPC_RecordChild0,
2184
 
            OPC_RecordChild1,
2185
 
            OPC_Scope, 38, 
2186
 
              OPC_MoveChild, 1,
2187
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2188
 
              OPC_CheckPredicate, 0,
2189
 
              OPC_MoveParent,
2190
 
              OPC_SwitchType , 12,  MVT::i32,
2191
 
                OPC_EmitConvertToTarget, 1,
2192
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIC), 0|OPFL_FlagOutput,
2193
 
                    2, MVT::i32, MVT::i32, 2, 0, 2, 
2194
 
              12,  MVT::i64,
2195
 
                OPC_EmitConvertToTarget, 1,
2196
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDIC8), 0|OPFL_FlagOutput,
2197
 
                    2, MVT::i64, MVT::i32, 2, 0, 2, 
2198
 
              0, 
2199
 
            12, 
2200
 
              OPC_CheckType, MVT::i32,
2201
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDC), 0|OPFL_FlagOutput,
2202
 
                  2, MVT::i32, MVT::i32, 2, 0, 1, 
2203
 
            12, 
2204
 
              OPC_CheckType, MVT::i64,
2205
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADDC8), 0|OPFL_FlagOutput,
2206
 
                  2, MVT::i64, MVT::i32, 2, 0, 1, 
2207
 
            0, 
2208
 
          50,  TARGET_OPCODE(ISD::MUL),
2209
 
            OPC_RecordChild0,
2210
 
            OPC_RecordChild1,
2211
 
            OPC_Scope, 21, 
2212
 
              OPC_MoveChild, 1,
2213
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2214
 
              OPC_CheckPredicate, 0,
2215
 
              OPC_MoveParent,
2216
 
              OPC_CheckType, MVT::i32,
2217
 
              OPC_EmitConvertToTarget, 1,
2218
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULLI), 0,
2219
 
                  1, MVT::i32, 2, 0, 2, 
2220
 
            11, 
2221
 
              OPC_CheckType, MVT::i32,
2222
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULLW), 0,
2223
 
                  1, MVT::i32, 2, 0, 1, 
2224
 
            11, 
2225
 
              OPC_CheckType, MVT::i64,
2226
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULLD), 0,
2227
 
                  1, MVT::i64, 2, 0, 1, 
2228
 
            0, 
2229
 
          71,  TARGET_OPCODE(ISD::SUBC),
2230
 
            OPC_RecordChild0,
2231
 
            OPC_Scope, 39, 
2232
 
              OPC_MoveChild, 0,
2233
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2234
 
              OPC_CheckPredicate, 0,
2235
 
              OPC_MoveParent,
2236
 
              OPC_RecordChild1,
2237
 
              OPC_SwitchType , 12,  MVT::i32,
2238
 
                OPC_EmitConvertToTarget, 0,
2239
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFIC), 0|OPFL_FlagOutput,
2240
 
                    2, MVT::i32, MVT::i32, 2, 1, 2, 
2241
 
              12,  MVT::i64,
2242
 
                OPC_EmitConvertToTarget, 0,
2243
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFIC8), 0|OPFL_FlagOutput,
2244
 
                    2, MVT::i64, MVT::i32, 2, 1, 2, 
2245
 
              0, 
2246
 
            27, 
2247
 
              OPC_RecordChild1,
2248
 
              OPC_SwitchType , 10,  MVT::i32,
2249
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFC), 0|OPFL_FlagOutput,
2250
 
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
2251
 
              10,  MVT::i64,
2252
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SUBFC8), 0|OPFL_FlagOutput,
2253
 
                    2, MVT::i64, MVT::i32, 2, 1, 0, 
2254
 
              0, 
2255
 
            0, 
2256
 
          114,  TARGET_OPCODE(ISD::SRA),
2257
 
            OPC_RecordChild0,
2258
 
            OPC_RecordChild1,
2259
 
            OPC_Scope, 38, 
2260
 
              OPC_MoveChild, 1,
2261
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2262
 
              OPC_CheckType, MVT::i32,
2263
 
              OPC_MoveParent,
2264
 
              OPC_SwitchType , 12,  MVT::i32,
2265
 
                OPC_EmitConvertToTarget, 1,
2266
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAWI), 0,
2267
 
                    2, MVT::i32, MVT::i32, 2, 0, 2, 
2268
 
              12,  MVT::i64,
2269
 
                OPC_EmitConvertToTarget, 1,
2270
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRADI), 0,
2271
 
                    2, MVT::i64, MVT::i32, 2, 0, 2, 
2272
 
              0, 
2273
 
            28, 
2274
 
              OPC_CheckChild1Type, MVT::i32,
2275
 
              OPC_SwitchType , 10,  MVT::i32,
2276
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAW), 0,
2277
 
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
2278
 
              10,  MVT::i64,
2279
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAD), 0,
2280
 
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
2281
 
              0, 
2282
 
            13, 
2283
 
              OPC_CheckChild1Type, MVT::v16i8,
2284
 
              OPC_CheckType, MVT::v16i8,
2285
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAB), 0,
2286
 
                  1, MVT::v16i8, 2, 0, 1, 
2287
 
            13, 
2288
 
              OPC_CheckChild1Type, MVT::v8i16,
2289
 
              OPC_CheckType, MVT::v8i16,
2290
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAH), 0,
2291
 
                  1, MVT::v8i16, 2, 0, 1, 
2292
 
            13, 
2293
 
              OPC_CheckChild1Type, MVT::v4i32,
2294
 
              OPC_CheckType, MVT::v4i32,
2295
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAW), 0,
2296
 
                  1, MVT::v4i32, 2, 0, 1, 
2297
 
            0, 
2298
 
          126,  TARGET_OPCODE(ISD::SHL),
2299
 
            OPC_RecordChild0,
2300
 
            OPC_RecordChild1,
2301
 
            OPC_Scope, 52, 
2302
 
              OPC_MoveChild, 1,
2303
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2304
 
              OPC_CheckType, MVT::i32,
2305
 
              OPC_MoveParent,
2306
 
              OPC_SwitchType , 21,  MVT::i32,
2307
 
                OPC_EmitConvertToTarget, 1,
2308
 
                OPC_EmitInteger, MVT::i32, 0, 
2309
 
                OPC_EmitConvertToTarget, 1,
2310
 
                OPC_EmitNodeXForm, 5, 4,
2311
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWINM), 0,
2312
 
                    1, MVT::i32, 4, 0, 2, 3, 5, 
2313
 
              17,  MVT::i64,
2314
 
                OPC_EmitConvertToTarget, 1,
2315
 
                OPC_EmitConvertToTarget, 1,
2316
 
                OPC_EmitNodeXForm, 6, 3,
2317
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICR), 0,
2318
 
                    1, MVT::i64, 3, 0, 2, 4, 
2319
 
              0, 
2320
 
            26, 
2321
 
              OPC_CheckChild1Type, MVT::i32,
2322
 
              OPC_SwitchType , 9,  MVT::i32,
2323
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLW), 0,
2324
 
                    1, MVT::i32, 2, 0, 1, 
2325
 
              9,  MVT::i64,
2326
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLD), 0,
2327
 
                    1, MVT::i64, 2, 0, 1, 
2328
 
              0, 
2329
 
            13, 
2330
 
              OPC_CheckChild1Type, MVT::v16i8,
2331
 
              OPC_CheckType, MVT::v16i8,
2332
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLB), 0,
2333
 
                  1, MVT::v16i8, 2, 0, 1, 
2334
 
            13, 
2335
 
              OPC_CheckChild1Type, MVT::v8i16,
2336
 
              OPC_CheckType, MVT::v8i16,
2337
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLH), 0,
2338
 
                  1, MVT::v8i16, 2, 0, 1, 
2339
 
            13, 
2340
 
              OPC_CheckChild1Type, MVT::v4i32,
2341
 
              OPC_CheckType, MVT::v4i32,
2342
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLW), 0,
2343
 
                  1, MVT::v4i32, 2, 0, 1, 
2344
 
            0, 
2345
 
          126,  TARGET_OPCODE(ISD::SRL),
2346
 
            OPC_RecordChild0,
2347
 
            OPC_RecordChild1,
2348
 
            OPC_Scope, 52, 
2349
 
              OPC_MoveChild, 1,
2350
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2351
 
              OPC_CheckType, MVT::i32,
2352
 
              OPC_MoveParent,
2353
 
              OPC_SwitchType , 21,  MVT::i32,
2354
 
                OPC_EmitConvertToTarget, 1,
2355
 
                OPC_EmitNodeXForm, 7, 2,
2356
 
                OPC_EmitConvertToTarget, 1,
2357
 
                OPC_EmitInteger, MVT::i32, 31, 
2358
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWINM), 0,
2359
 
                    1, MVT::i32, 4, 0, 3, 4, 5, 
2360
 
              17,  MVT::i64,
2361
 
                OPC_EmitConvertToTarget, 1,
2362
 
                OPC_EmitNodeXForm, 8, 2,
2363
 
                OPC_EmitConvertToTarget, 1,
2364
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICL), 0,
2365
 
                    1, MVT::i64, 3, 0, 3, 4, 
2366
 
              0, 
2367
 
            26, 
2368
 
              OPC_CheckChild1Type, MVT::i32,
2369
 
              OPC_SwitchType , 9,  MVT::i32,
2370
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRW), 0,
2371
 
                    1, MVT::i32, 2, 0, 1, 
2372
 
              9,  MVT::i64,
2373
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRD), 0,
2374
 
                    1, MVT::i64, 2, 0, 1, 
2375
 
              0, 
2376
 
            13, 
2377
 
              OPC_CheckChild1Type, MVT::v16i8,
2378
 
              OPC_CheckType, MVT::v16i8,
2379
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRB), 0,
2380
 
                  1, MVT::v16i8, 2, 0, 1, 
2381
 
            13, 
2382
 
              OPC_CheckChild1Type, MVT::v8i16,
2383
 
              OPC_CheckType, MVT::v8i16,
2384
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRH), 0,
2385
 
                  1, MVT::v8i16, 2, 0, 1, 
2386
 
            13, 
2387
 
              OPC_CheckChild1Type, MVT::v4i32,
2388
 
              OPC_CheckType, MVT::v4i32,
2389
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRW), 0,
2390
 
                  1, MVT::v4i32, 2, 0, 1, 
2391
 
            0, 
2392
 
          92,  TARGET_OPCODE(ISD::ROTL),
2393
 
            OPC_RecordChild0,
2394
 
            OPC_RecordChild1,
2395
 
            OPC_Scope, 48, 
2396
 
              OPC_MoveChild, 1,
2397
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2398
 
              OPC_CheckType, MVT::i32,
2399
 
              OPC_MoveParent,
2400
 
              OPC_SwitchType , 19,  MVT::i32,
2401
 
                OPC_EmitConvertToTarget, 1,
2402
 
                OPC_EmitInteger, MVT::i32, 0, 
2403
 
                OPC_EmitInteger, MVT::i32, 31, 
2404
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWINM), 0,
2405
 
                    1, MVT::i32, 4, 0, 2, 3, 4, 
2406
 
              15,  MVT::i64,
2407
 
                OPC_EmitConvertToTarget, 1,
2408
 
                OPC_EmitInteger, MVT::i32, 0, 
2409
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICL), 0,
2410
 
                    1, MVT::i64, 3, 0, 2, 3, 
2411
 
              0, 
2412
 
            38, 
2413
 
              OPC_CheckChild1Type, MVT::i32,
2414
 
              OPC_SwitchType , 17,  MVT::i32,
2415
 
                OPC_EmitInteger, MVT::i32, 0, 
2416
 
                OPC_EmitInteger, MVT::i32, 31, 
2417
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLWNM), 0,
2418
 
                    1, MVT::i32, 4, 0, 1, 2, 3, 
2419
 
              13,  MVT::i64,
2420
 
                OPC_EmitInteger, MVT::i32, 0, 
2421
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDCL), 0,
2422
 
                    1, MVT::i64, 3, 0, 1, 2, 
2423
 
              0, 
2424
 
            0, 
2425
 
          19,  TARGET_OPCODE(PPCISD::TOC_ENTRY),
2426
 
            OPC_RecordChild0,
2427
 
            OPC_MoveChild, 0,
2428
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalAddress),
2429
 
            OPC_MoveParent,
2430
 
            OPC_RecordChild1,
2431
 
            OPC_CheckType, MVT::i64,
2432
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDtoc), 0,
2433
 
                1, MVT::i64, 2, 0, 1, 
2434
 
          97,  TARGET_OPCODE(ISD::Constant),
2435
 
            OPC_RecordNode,
2436
 
            OPC_SwitchType , 59,  MVT::i32,
2437
 
              OPC_Scope, 12, 
2438
 
                OPC_CheckPredicate, 0,
2439
 
                OPC_EmitConvertToTarget, 0,
2440
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI), 0,
2441
 
                    1, MVT::i32, 1, 1, 
2442
 
              15, 
2443
 
                OPC_CheckPredicate, 1,
2444
 
                OPC_EmitConvertToTarget, 0,
2445
 
                OPC_EmitNodeXForm, 0, 1,
2446
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS), 0,
2447
 
                    1, MVT::i32, 1, 2, 
2448
 
              27, 
2449
 
                OPC_EmitConvertToTarget, 0,
2450
 
                OPC_EmitNodeXForm, 0, 1,
2451
 
                OPC_EmitNode, TARGET_OPCODE(PPC::LIS), 0,
2452
 
                    1, MVT::i32, 1, 2, 
2453
 
                OPC_EmitConvertToTarget, 0,
2454
 
                OPC_EmitNodeXForm, 1, 4,
2455
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::ORI), 0,
2456
 
                    1, MVT::i32, 2, 3, 5, 
2457
 
              0, 
2458
 
            31,  MVT::i64,
2459
 
              OPC_Scope, 12, 
2460
 
                OPC_CheckPredicate, 0,
2461
 
                OPC_EmitConvertToTarget, 0,
2462
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LI8), 0,
2463
 
                    1, MVT::i64, 1, 1, 
2464
 
              15, 
2465
 
                OPC_CheckPredicate, 1,
2466
 
                OPC_EmitConvertToTarget, 0,
2467
 
                OPC_EmitNodeXForm, 0, 1,
2468
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::LIS8), 0,
2469
 
                    1, MVT::i64, 1, 2, 
2470
 
              0, 
2471
 
            0, 
2472
 
          28,  TARGET_OPCODE(PPCISD::SHL),
2473
 
            OPC_RecordChild0,
2474
 
            OPC_RecordChild1,
2475
 
            OPC_CheckChild1Type, MVT::i32,
2476
 
            OPC_SwitchType , 9,  MVT::i32,
2477
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLW), 0,
2478
 
                  1, MVT::i32, 2, 0, 1, 
2479
 
            9,  MVT::i64,
2480
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SLD), 0,
2481
 
                  1, MVT::i64, 2, 0, 1, 
2482
 
            0, 
2483
 
          28,  TARGET_OPCODE(PPCISD::SRL),
2484
 
            OPC_RecordChild0,
2485
 
            OPC_RecordChild1,
2486
 
            OPC_CheckChild1Type, MVT::i32,
2487
 
            OPC_SwitchType , 9,  MVT::i32,
2488
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRW), 0,
2489
 
                  1, MVT::i32, 2, 0, 1, 
2490
 
            9,  MVT::i64,
2491
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRD), 0,
2492
 
                  1, MVT::i64, 2, 0, 1, 
2493
 
            0, 
2494
 
          30,  TARGET_OPCODE(PPCISD::SRA),
2495
 
            OPC_RecordChild0,
2496
 
            OPC_RecordChild1,
2497
 
            OPC_CheckChild1Type, MVT::i32,
2498
 
            OPC_SwitchType , 10,  MVT::i32,
2499
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAW), 0,
2500
 
                  2, MVT::i32, MVT::i32, 2, 0, 1, 
2501
 
            10,  MVT::i64,
2502
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::SRAD), 0,
2503
 
                  2, MVT::i64, MVT::i32, 2, 0, 1, 
2504
 
            0, 
2505
 
          23,  TARGET_OPCODE(ISD::CTLZ),
2506
 
            OPC_RecordChild0,
2507
 
            OPC_SwitchType , 8,  MVT::i32,
2508
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::CNTLZW), 0,
2509
 
                  1, MVT::i32, 1, 0, 
2510
 
            8,  MVT::i64,
2511
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::CNTLZD), 0,
2512
 
                  1, MVT::i64, 1, 0, 
2513
 
            0, 
2514
 
          69,  TARGET_OPCODE(ISD::SIGN_EXTEND_INREG),
2515
 
            OPC_RecordChild0,
2516
 
            OPC_MoveChild, 1,
2517
 
            OPC_Scope, 25, 
2518
 
              OPC_CheckValueType, MVT::i8,
2519
 
              OPC_MoveParent,
2520
 
              OPC_SwitchType , 8,  MVT::i32,
2521
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSB), 0,
2522
 
                    1, MVT::i32, 1, 0, 
2523
 
              8,  MVT::i64,
2524
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSB8), 0,
2525
 
                    1, MVT::i64, 1, 0, 
2526
 
              0, 
2527
 
            25, 
2528
 
              OPC_CheckValueType, MVT::i16,
2529
 
              OPC_MoveParent,
2530
 
              OPC_SwitchType , 8,  MVT::i32,
2531
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSH), 0,
2532
 
                    1, MVT::i32, 1, 0, 
2533
 
              8,  MVT::i64,
2534
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSH8), 0,
2535
 
                    1, MVT::i64, 1, 0, 
2536
 
              0, 
2537
 
            11, 
2538
 
              OPC_CheckValueType, MVT::i32,
2539
 
              OPC_MoveParent,
2540
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSW), 0,
2541
 
                  1, MVT::i64, 1, 0, 
2542
 
            0, 
2543
 
          26,  TARGET_OPCODE(ISD::SDIV),
2544
 
            OPC_RecordChild0,
2545
 
            OPC_RecordChild1,
2546
 
            OPC_SwitchType , 9,  MVT::i32,
2547
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVW), 0,
2548
 
                  1, MVT::i32, 2, 0, 1, 
2549
 
            9,  MVT::i64,
2550
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVD), 0,
2551
 
                  1, MVT::i64, 2, 0, 1, 
2552
 
            0, 
2553
 
          26,  TARGET_OPCODE(ISD::UDIV),
2554
 
            OPC_RecordChild0,
2555
 
            OPC_RecordChild1,
2556
 
            OPC_SwitchType , 9,  MVT::i32,
2557
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVWU), 0,
2558
 
                  1, MVT::i32, 2, 0, 1, 
2559
 
            9,  MVT::i64,
2560
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::DIVDU), 0,
2561
 
                  1, MVT::i64, 2, 0, 1, 
2562
 
            0, 
2563
 
          26,  TARGET_OPCODE(ISD::MULHS),
2564
 
            OPC_RecordChild0,
2565
 
            OPC_RecordChild1,
2566
 
            OPC_SwitchType , 9,  MVT::i32,
2567
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHW), 0,
2568
 
                  1, MVT::i32, 2, 0, 1, 
2569
 
            9,  MVT::i64,
2570
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHD), 0,
2571
 
                  1, MVT::i64, 2, 0, 1, 
2572
 
            0, 
2573
 
          26,  TARGET_OPCODE(ISD::MULHU),
2574
 
            OPC_RecordChild0,
2575
 
            OPC_RecordChild1,
2576
 
            OPC_SwitchType , 9,  MVT::i32,
2577
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHWU), 0,
2578
 
                  1, MVT::i32, 2, 0, 1, 
2579
 
            9,  MVT::i64,
2580
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MULHDU), 0,
2581
 
                  1, MVT::i64, 2, 0, 1, 
2582
 
            0, 
2583
 
          11,  TARGET_OPCODE(PPCISD::EXTSW_32),
2584
 
            OPC_RecordChild0,
2585
 
            OPC_CheckType, MVT::i32,
2586
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSW_32), 0,
2587
 
                1, MVT::i32, 1, 0, 
2588
 
          13,  TARGET_OPCODE(ISD::SIGN_EXTEND),
2589
 
            OPC_RecordChild0,
2590
 
            OPC_CheckChild0Type, MVT::i32,
2591
 
            OPC_CheckType, MVT::i64,
2592
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::EXTSW_32_64), 0,
2593
 
                1, MVT::i64, 1, 0, 
2594
 
          14,  TARGET_OPCODE(ISD::ANY_EXTEND),
2595
 
            OPC_RecordChild0,
2596
 
            OPC_CheckChild0Type, MVT::i32,
2597
 
            OPC_CheckType, MVT::i64,
2598
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR4To8), 0,
2599
 
                1, MVT::i64, 2, 0, 0, 
2600
 
          12,  TARGET_OPCODE(ISD::TRUNCATE),
2601
 
            OPC_RecordChild0,
2602
 
            OPC_CheckType, MVT::i32,
2603
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::OR8To4), 0,
2604
 
                1, MVT::i32, 2, 0, 0, 
2605
 
          30,  TARGET_OPCODE(ISD::ZERO_EXTEND),
2606
 
            OPC_RecordChild0,
2607
 
            OPC_CheckChild0Type, MVT::i32,
2608
 
            OPC_CheckType, MVT::i64,
2609
 
            OPC_EmitNode, TARGET_OPCODE(PPC::OR4To8), 0,
2610
 
                1, MVT::i64, 2, 0, 0, 
2611
 
            OPC_EmitInteger, MVT::i32, 0, 
2612
 
            OPC_EmitInteger, MVT::i32, 32, 
2613
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::RLDICL), 0,
2614
 
                1, MVT::i64, 3, 1, 2, 3, 
2615
 
          61|128,1,  TARGET_OPCODE(ISD::FNEG),
2616
 
            OPC_Scope, 33|128,1, 
2617
 
              OPC_MoveChild, 0,
2618
 
              OPC_SwitchOpcode , 84,  TARGET_OPCODE(ISD::FADD),
2619
 
                OPC_Scope, 40, 
2620
 
                  OPC_MoveChild, 0,
2621
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2622
 
                  OPC_RecordChild0,
2623
 
                  OPC_RecordChild1,
2624
 
                  OPC_MoveParent,
2625
 
                  OPC_RecordChild1,
2626
 
                  OPC_MoveParent,
2627
 
                  OPC_SwitchType , 12,  MVT::f64,
2628
 
                    OPC_CheckPatternPredicate, 0,
2629
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADD), 0,
2630
 
                        1, MVT::f64, 3, 0, 1, 2, 
2631
 
                  12,  MVT::f32,
2632
 
                    OPC_CheckPatternPredicate, 0,
2633
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADDS), 0,
2634
 
                        1, MVT::f32, 3, 0, 1, 2, 
2635
 
                  0, 
2636
 
                40, 
2637
 
                  OPC_RecordChild0,
2638
 
                  OPC_MoveChild, 1,
2639
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2640
 
                  OPC_RecordChild0,
2641
 
                  OPC_RecordChild1,
2642
 
                  OPC_MoveParent,
2643
 
                  OPC_MoveParent,
2644
 
                  OPC_SwitchType , 12,  MVT::f64,
2645
 
                    OPC_CheckPatternPredicate, 0,
2646
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADD), 0,
2647
 
                        1, MVT::f64, 3, 1, 2, 0, 
2648
 
                  12,  MVT::f32,
2649
 
                    OPC_CheckPatternPredicate, 0,
2650
 
                    OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMADDS), 0,
2651
 
                        1, MVT::f32, 3, 1, 2, 0, 
2652
 
                  0, 
2653
 
                0, 
2654
 
              40,  TARGET_OPCODE(ISD::FSUB),
2655
 
                OPC_MoveChild, 0,
2656
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2657
 
                OPC_RecordChild0,
2658
 
                OPC_RecordChild1,
2659
 
                OPC_MoveParent,
2660
 
                OPC_RecordChild1,
2661
 
                OPC_MoveParent,
2662
 
                OPC_SwitchType , 12,  MVT::f64,
2663
 
                  OPC_CheckPatternPredicate, 0,
2664
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUB), 0,
2665
 
                      1, MVT::f64, 3, 0, 1, 2, 
2666
 
                12,  MVT::f32,
2667
 
                  OPC_CheckPatternPredicate, 0,
2668
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUBS), 0,
2669
 
                      1, MVT::f32, 3, 0, 1, 2, 
2670
 
                0, 
2671
 
              24,  TARGET_OPCODE(ISD::FABS),
2672
 
                OPC_RecordChild0,
2673
 
                OPC_MoveParent,
2674
 
                OPC_SwitchType , 8,  MVT::f32,
2675
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNABSS), 0,
2676
 
                      1, MVT::f32, 1, 0, 
2677
 
                8,  MVT::f64,
2678
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNABSD), 0,
2679
 
                      1, MVT::f64, 1, 0, 
2680
 
                0, 
2681
 
              0, 
2682
 
            23, 
2683
 
              OPC_RecordChild0,
2684
 
              OPC_SwitchType , 8,  MVT::f32,
2685
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNEGS), 0,
2686
 
                    1, MVT::f32, 1, 0, 
2687
 
              8,  MVT::f64,
2688
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNEGD), 0,
2689
 
                    1, MVT::f64, 1, 0, 
2690
 
              0, 
2691
 
            0, 
2692
 
          24,  TARGET_OPCODE(PPCISD::MTFSF),
2693
 
            OPC_CaptureFlagInput,
2694
 
            OPC_RecordChild0,
2695
 
            OPC_MoveChild, 0,
2696
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
2697
 
            OPC_CheckType, MVT::i32,
2698
 
            OPC_MoveParent,
2699
 
            OPC_RecordChild1,
2700
 
            OPC_RecordChild2,
2701
 
            OPC_EmitConvertToTarget, 0,
2702
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTFSF), 0|OPFL_FlagInput,
2703
 
                1, MVT::f64, 3, 3, 1, 2, 
2704
 
          47|128,1,  TARGET_OPCODE(ISD::FADD),
2705
 
            OPC_Scope, 39, 
2706
 
              OPC_MoveChild, 0,
2707
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2708
 
              OPC_RecordChild0,
2709
 
              OPC_RecordChild1,
2710
 
              OPC_MoveParent,
2711
 
              OPC_RecordChild1,
2712
 
              OPC_SwitchType , 12,  MVT::f64,
2713
 
                OPC_CheckPatternPredicate, 0,
2714
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADD), 0,
2715
 
                    1, MVT::f64, 3, 0, 1, 2, 
2716
 
              12,  MVT::f32,
2717
 
                OPC_CheckPatternPredicate, 0,
2718
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADDS), 0,
2719
 
                    1, MVT::f32, 3, 0, 1, 2, 
2720
 
              0, 
2721
 
            68, 
2722
 
              OPC_RecordChild0,
2723
 
              OPC_Scope, 38, 
2724
 
                OPC_MoveChild, 1,
2725
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2726
 
                OPC_RecordChild0,
2727
 
                OPC_RecordChild1,
2728
 
                OPC_MoveParent,
2729
 
                OPC_SwitchType , 12,  MVT::f64,
2730
 
                  OPC_CheckPatternPredicate, 0,
2731
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADD), 0,
2732
 
                      1, MVT::f64, 3, 1, 2, 0, 
2733
 
                12,  MVT::f32,
2734
 
                  OPC_CheckPatternPredicate, 0,
2735
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMADDS), 0,
2736
 
                      1, MVT::f32, 3, 1, 2, 0, 
2737
 
                0, 
2738
 
              25, 
2739
 
                OPC_RecordChild1,
2740
 
                OPC_SwitchType , 9,  MVT::f64,
2741
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FADD), 0,
2742
 
                      1, MVT::f64, 2, 0, 1, 
2743
 
                9,  MVT::f32,
2744
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FADDS), 0,
2745
 
                      1, MVT::f32, 2, 0, 1, 
2746
 
                0, 
2747
 
              0, 
2748
 
            23, 
2749
 
              OPC_MoveChild, 0,
2750
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2751
 
              OPC_RecordChild0,
2752
 
              OPC_RecordChild1,
2753
 
              OPC_MoveParent,
2754
 
              OPC_RecordChild1,
2755
 
              OPC_CheckType, MVT::v4f32,
2756
 
              OPC_CheckPatternPredicate, 0,
2757
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
2758
 
                  1, MVT::v4f32, 3, 0, 1, 2, 
2759
 
            39, 
2760
 
              OPC_RecordChild0,
2761
 
              OPC_Scope, 22, 
2762
 
                OPC_MoveChild, 1,
2763
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2764
 
                OPC_RecordChild0,
2765
 
                OPC_RecordChild1,
2766
 
                OPC_MoveParent,
2767
 
                OPC_CheckType, MVT::v4f32,
2768
 
                OPC_CheckPatternPredicate, 0,
2769
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
2770
 
                    1, MVT::v4f32, 3, 1, 2, 0, 
2771
 
              12, 
2772
 
                OPC_RecordChild1,
2773
 
                OPC_CheckType, MVT::v4f32,
2774
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDFP), 0,
2775
 
                    1, MVT::v4f32, 2, 0, 1, 
2776
 
              0, 
2777
 
            0, 
2778
 
          35|128,1,  TARGET_OPCODE(ISD::FSUB),
2779
 
            OPC_Scope, 39, 
2780
 
              OPC_MoveChild, 0,
2781
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2782
 
              OPC_RecordChild0,
2783
 
              OPC_RecordChild1,
2784
 
              OPC_MoveParent,
2785
 
              OPC_RecordChild1,
2786
 
              OPC_SwitchType , 12,  MVT::f64,
2787
 
                OPC_CheckPatternPredicate, 0,
2788
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMSUB), 0,
2789
 
                    1, MVT::f64, 3, 0, 1, 2, 
2790
 
              12,  MVT::f32,
2791
 
                OPC_CheckPatternPredicate, 0,
2792
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMSUBS), 0,
2793
 
                    1, MVT::f32, 3, 0, 1, 2, 
2794
 
              0, 
2795
 
            68, 
2796
 
              OPC_RecordChild0,
2797
 
              OPC_Scope, 38, 
2798
 
                OPC_MoveChild, 1,
2799
 
                OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2800
 
                OPC_RecordChild0,
2801
 
                OPC_RecordChild1,
2802
 
                OPC_MoveParent,
2803
 
                OPC_SwitchType , 12,  MVT::f64,
2804
 
                  OPC_CheckPatternPredicate, 0,
2805
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUB), 0,
2806
 
                      1, MVT::f64, 3, 1, 2, 0, 
2807
 
                12,  MVT::f32,
2808
 
                  OPC_CheckPatternPredicate, 0,
2809
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FNMSUBS), 0,
2810
 
                      1, MVT::f32, 3, 1, 2, 0, 
2811
 
                0, 
2812
 
              25, 
2813
 
                OPC_RecordChild1,
2814
 
                OPC_SwitchType , 9,  MVT::f64,
2815
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSUB), 0,
2816
 
                      1, MVT::f64, 2, 0, 1, 
2817
 
                9,  MVT::f32,
2818
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSUBS), 0,
2819
 
                      1, MVT::f32, 2, 0, 1, 
2820
 
                0, 
2821
 
              0, 
2822
 
            37, 
2823
 
              OPC_MoveChild, 0,
2824
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
2825
 
              OPC_CheckPredicate, 66,
2826
 
              OPC_MoveParent,
2827
 
              OPC_MoveChild, 1,
2828
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::FSUB),
2829
 
              OPC_MoveChild, 0,
2830
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::FMUL),
2831
 
              OPC_RecordChild0,
2832
 
              OPC_RecordChild1,
2833
 
              OPC_MoveParent,
2834
 
              OPC_RecordChild1,
2835
 
              OPC_MoveParent,
2836
 
              OPC_CheckType, MVT::v4f32,
2837
 
              OPC_CheckPatternPredicate, 0,
2838
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
2839
 
                  1, MVT::v4f32, 3, 0, 1, 2, 
2840
 
            13, 
2841
 
              OPC_RecordChild0,
2842
 
              OPC_RecordChild1,
2843
 
              OPC_CheckType, MVT::v4f32,
2844
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBFP), 0,
2845
 
                  1, MVT::v4f32, 2, 0, 1, 
2846
 
            0, 
2847
 
          11,  TARGET_OPCODE(PPCISD::FCTIWZ),
2848
 
            OPC_RecordChild0,
2849
 
            OPC_CheckType, MVT::f64,
2850
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::FCTIWZ), 0,
2851
 
                1, MVT::f64, 1, 0, 
2852
 
          9,  TARGET_OPCODE(ISD::FP_ROUND),
2853
 
            OPC_RecordChild0,
2854
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::FRSP), 0,
2855
 
                1, MVT::f32, 1, 0, 
2856
 
          23,  TARGET_OPCODE(ISD::FSQRT),
2857
 
            OPC_RecordChild0,
2858
 
            OPC_SwitchType , 8,  MVT::f64,
2859
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSQRT), 0,
2860
 
                  1, MVT::f64, 1, 0, 
2861
 
            8,  MVT::f32,
2862
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSQRTS), 0,
2863
 
                  1, MVT::f32, 1, 0, 
2864
 
            0, 
2865
 
          23,  TARGET_OPCODE(ISD::FABS),
2866
 
            OPC_RecordChild0,
2867
 
            OPC_SwitchType , 8,  MVT::f32,
2868
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FABSS), 0,
2869
 
                  1, MVT::f32, 1, 0, 
2870
 
            8,  MVT::f64,
2871
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FABSD), 0,
2872
 
                  1, MVT::f64, 1, 0, 
2873
 
            0, 
2874
 
          7,  TARGET_OPCODE(PPCISD::MFFS),
2875
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::MFFS), 0|OPFL_FlagOutput,
2876
 
                1, MVT::f64, 0, 
2877
 
          14,  TARGET_OPCODE(PPCISD::FADDRTZ),
2878
 
            OPC_CaptureFlagInput,
2879
 
            OPC_RecordChild0,
2880
 
            OPC_RecordChild1,
2881
 
            OPC_CheckType, MVT::f64,
2882
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::FADDrtz), 0|OPFL_FlagInput|OPFL_FlagOutput,
2883
 
                1, MVT::f64, 2, 0, 1, 
2884
 
          29,  TARGET_OPCODE(PPCISD::FSEL),
2885
 
            OPC_RecordChild0,
2886
 
            OPC_RecordChild1,
2887
 
            OPC_RecordChild2,
2888
 
            OPC_SwitchType , 10,  MVT::f64,
2889
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSELD), 0,
2890
 
                  1, MVT::f64, 3, 0, 1, 2, 
2891
 
            10,  MVT::f32,
2892
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FSELS), 0,
2893
 
                  1, MVT::f32, 3, 0, 1, 2, 
2894
 
            0, 
2895
 
          26,  TARGET_OPCODE(ISD::FDIV),
2896
 
            OPC_RecordChild0,
2897
 
            OPC_RecordChild1,
2898
 
            OPC_SwitchType , 9,  MVT::f64,
2899
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FDIV), 0,
2900
 
                  1, MVT::f64, 2, 0, 1, 
2901
 
            9,  MVT::f32,
2902
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FDIVS), 0,
2903
 
                  1, MVT::f32, 2, 0, 1, 
2904
 
            0, 
2905
 
          45,  TARGET_OPCODE(ISD::FMUL),
2906
 
            OPC_RecordChild0,
2907
 
            OPC_RecordChild1,
2908
 
            OPC_SwitchType , 9,  MVT::f64,
2909
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMUL), 0,
2910
 
                  1, MVT::f64, 2, 0, 1, 
2911
 
            9,  MVT::f32,
2912
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::FMULS), 0,
2913
 
                  1, MVT::f32, 2, 0, 1, 
2914
 
            17,  MVT::v4f32,
2915
 
              OPC_EmitNode, TARGET_OPCODE(PPC::V_SET0), 0,
2916
 
                  1, MVT::v4i32, 0, 
2917
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
2918
 
                  1, MVT::v4f32, 3, 0, 1, 2, 
2919
 
            0, 
2920
 
          13,  TARGET_OPCODE(ISD::FP_EXTEND),
2921
 
            OPC_RecordChild0,
2922
 
            OPC_EmitInteger, MVT::i32, PPC::F8RCRegClassID,
2923
 
            OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
2924
 
                1, MVT::f64, 2, 0, 1, 
2925
 
          11,  TARGET_OPCODE(PPCISD::FCFID),
2926
 
            OPC_RecordChild0,
2927
 
            OPC_CheckType, MVT::f64,
2928
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::FCFID), 0,
2929
 
                1, MVT::f64, 1, 0, 
2930
 
          11,  TARGET_OPCODE(PPCISD::FCTIDZ),
2931
 
            OPC_RecordChild0,
2932
 
            OPC_CheckType, MVT::f64,
2933
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::FCTIDZ), 0,
2934
 
                1, MVT::f64, 1, 0, 
2935
 
          113,  TARGET_OPCODE(ISD::INTRINSIC_W_CHAIN),
2936
 
            OPC_RecordNode,
2937
 
            OPC_MoveChild, 1,
2938
 
            OPC_Scope, 18, 
2939
 
              OPC_CheckInteger, 54|128,1, 
2940
 
              OPC_MoveParent,
2941
 
              OPC_RecordChild2,
2942
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2943
 
              OPC_EmitMergeInputChains1_0,
2944
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVEBX), 0|OPFL_Chain,
2945
 
                  1, MVT::v16i8, 2, 2, 3, 
2946
 
            18, 
2947
 
              OPC_CheckInteger, 55|128,1, 
2948
 
              OPC_MoveParent,
2949
 
              OPC_RecordChild2,
2950
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2951
 
              OPC_EmitMergeInputChains1_0,
2952
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVEHX), 0|OPFL_Chain,
2953
 
                  1, MVT::v8i16, 2, 2, 3, 
2954
 
            18, 
2955
 
              OPC_CheckInteger, 56|128,1, 
2956
 
              OPC_MoveParent,
2957
 
              OPC_RecordChild2,
2958
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2959
 
              OPC_EmitMergeInputChains1_0,
2960
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVEWX), 0|OPFL_Chain,
2961
 
                  1, MVT::v4i32, 2, 2, 3, 
2962
 
            18, 
2963
 
              OPC_CheckInteger, 59|128,1, 
2964
 
              OPC_MoveParent,
2965
 
              OPC_RecordChild2,
2966
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2967
 
              OPC_EmitMergeInputChains1_0,
2968
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVX), 0|OPFL_Chain,
2969
 
                  1, MVT::v4i32, 2, 2, 3, 
2970
 
            18, 
2971
 
              OPC_CheckInteger, 60|128,1, 
2972
 
              OPC_MoveParent,
2973
 
              OPC_RecordChild2,
2974
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
2975
 
              OPC_EmitMergeInputChains1_0,
2976
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVXL), 0|OPFL_Chain,
2977
 
                  1, MVT::v4i32, 2, 2, 3, 
2978
 
            12, 
2979
 
              OPC_CheckInteger, 61|128,1, 
2980
 
              OPC_MoveParent,
2981
 
              OPC_EmitMergeInputChains1_0,
2982
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MFVSCR), 0|OPFL_Chain,
2983
 
                  1, MVT::v8i16, 0, 
2984
 
            0, 
2985
 
          22|128,13,  TARGET_OPCODE(ISD::INTRINSIC_WO_CHAIN),
2986
 
            OPC_MoveChild, 0,
2987
 
            OPC_Scope, 17, 
2988
 
              OPC_CheckInteger, 57|128,1, 
2989
 
              OPC_MoveParent,
2990
 
              OPC_RecordChild1,
2991
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
2992
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVSL), 0,
2993
 
                  1, MVT::v16i8, 2, 1, 2, 
2994
 
            17, 
2995
 
              OPC_CheckInteger, 58|128,1, 
2996
 
              OPC_MoveParent,
2997
 
              OPC_RecordChild1,
2998
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
2999
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::LVSR), 0,
3000
 
                  1, MVT::v16i8, 2, 1, 2, 
3001
 
            23, 
3002
 
              OPC_CheckInteger, 109|128,1, 
3003
 
              OPC_MoveParent,
3004
 
              OPC_RecordChild1,
3005
 
              OPC_RecordChild2,
3006
 
              OPC_MoveChild, 2,
3007
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3008
 
              OPC_MoveParent,
3009
 
              OPC_EmitConvertToTarget, 1,
3010
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCTSXS), 0,
3011
 
                  1, MVT::v4i32, 2, 2, 0, 
3012
 
            23, 
3013
 
              OPC_CheckInteger, 110|128,1, 
3014
 
              OPC_MoveParent,
3015
 
              OPC_RecordChild1,
3016
 
              OPC_RecordChild2,
3017
 
              OPC_MoveChild, 2,
3018
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3019
 
              OPC_MoveParent,
3020
 
              OPC_EmitConvertToTarget, 1,
3021
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCTUXS), 0,
3022
 
                  1, MVT::v4i32, 2, 2, 0, 
3023
 
            17, 
3024
 
              OPC_CheckInteger, 121|128,1, 
3025
 
              OPC_MoveParent,
3026
 
              OPC_RecordChild1,
3027
 
              OPC_RecordChild2,
3028
 
              OPC_RecordChild3,
3029
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMHADDSHS), 0,
3030
 
                  1, MVT::v8i16, 3, 0, 1, 2, 
3031
 
            17, 
3032
 
              OPC_CheckInteger, 122|128,1, 
3033
 
              OPC_MoveParent,
3034
 
              OPC_RecordChild1,
3035
 
              OPC_RecordChild2,
3036
 
              OPC_RecordChild3,
3037
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMHRADDSHS), 0,
3038
 
                  1, MVT::v8i16, 3, 0, 1, 2, 
3039
 
            17, 
3040
 
              OPC_CheckInteger, 2|128,2, 
3041
 
              OPC_MoveParent,
3042
 
              OPC_RecordChild1,
3043
 
              OPC_RecordChild2,
3044
 
              OPC_RecordChild3,
3045
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMLADDUHM), 0,
3046
 
                  1, MVT::v8i16, 3, 0, 1, 2, 
3047
 
            17, 
3048
 
              OPC_CheckInteger, 18|128,2, 
3049
 
              OPC_MoveParent,
3050
 
              OPC_RecordChild1,
3051
 
              OPC_RecordChild2,
3052
 
              OPC_RecordChild3,
3053
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPERM), 0,
3054
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3055
 
            17, 
3056
 
              OPC_CheckInteger, 35|128,2, 
3057
 
              OPC_MoveParent,
3058
 
              OPC_RecordChild1,
3059
 
              OPC_RecordChild2,
3060
 
              OPC_RecordChild3,
3061
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSEL), 0,
3062
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3063
 
            15, 
3064
 
              OPC_CheckInteger, 68|128,1, 
3065
 
              OPC_MoveParent,
3066
 
              OPC_RecordChild1,
3067
 
              OPC_RecordChild2,
3068
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDCUW), 0,
3069
 
                  1, MVT::v4i32, 2, 0, 1, 
3070
 
            15, 
3071
 
              OPC_CheckInteger, 69|128,1, 
3072
 
              OPC_MoveParent,
3073
 
              OPC_RecordChild1,
3074
 
              OPC_RecordChild2,
3075
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDSBS), 0,
3076
 
                  1, MVT::v16i8, 2, 0, 1, 
3077
 
            15, 
3078
 
              OPC_CheckInteger, 70|128,1, 
3079
 
              OPC_MoveParent,
3080
 
              OPC_RecordChild1,
3081
 
              OPC_RecordChild2,
3082
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDSHS), 0,
3083
 
                  1, MVT::v8i16, 2, 0, 1, 
3084
 
            15, 
3085
 
              OPC_CheckInteger, 71|128,1, 
3086
 
              OPC_MoveParent,
3087
 
              OPC_RecordChild1,
3088
 
              OPC_RecordChild2,
3089
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDSWS), 0,
3090
 
                  1, MVT::v4i32, 2, 0, 1, 
3091
 
            15, 
3092
 
              OPC_CheckInteger, 72|128,1, 
3093
 
              OPC_MoveParent,
3094
 
              OPC_RecordChild1,
3095
 
              OPC_RecordChild2,
3096
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUBS), 0,
3097
 
                  1, MVT::v16i8, 2, 0, 1, 
3098
 
            15, 
3099
 
              OPC_CheckInteger, 73|128,1, 
3100
 
              OPC_MoveParent,
3101
 
              OPC_RecordChild1,
3102
 
              OPC_RecordChild2,
3103
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUHS), 0,
3104
 
                  1, MVT::v8i16, 2, 0, 1, 
3105
 
            15, 
3106
 
              OPC_CheckInteger, 74|128,1, 
3107
 
              OPC_MoveParent,
3108
 
              OPC_RecordChild1,
3109
 
              OPC_RecordChild2,
3110
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VADDUWS), 0,
3111
 
                  1, MVT::v4i32, 2, 0, 1, 
3112
 
            15, 
3113
 
              OPC_CheckInteger, 75|128,1, 
3114
 
              OPC_MoveParent,
3115
 
              OPC_RecordChild1,
3116
 
              OPC_RecordChild2,
3117
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGSB), 0,
3118
 
                  1, MVT::v16i8, 2, 0, 1, 
3119
 
            15, 
3120
 
              OPC_CheckInteger, 76|128,1, 
3121
 
              OPC_MoveParent,
3122
 
              OPC_RecordChild1,
3123
 
              OPC_RecordChild2,
3124
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGSH), 0,
3125
 
                  1, MVT::v8i16, 2, 0, 1, 
3126
 
            15, 
3127
 
              OPC_CheckInteger, 77|128,1, 
3128
 
              OPC_MoveParent,
3129
 
              OPC_RecordChild1,
3130
 
              OPC_RecordChild2,
3131
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGSW), 0,
3132
 
                  1, MVT::v4i32, 2, 0, 1, 
3133
 
            15, 
3134
 
              OPC_CheckInteger, 78|128,1, 
3135
 
              OPC_MoveParent,
3136
 
              OPC_RecordChild1,
3137
 
              OPC_RecordChild2,
3138
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGUB), 0,
3139
 
                  1, MVT::v16i8, 2, 0, 1, 
3140
 
            15, 
3141
 
              OPC_CheckInteger, 79|128,1, 
3142
 
              OPC_MoveParent,
3143
 
              OPC_RecordChild1,
3144
 
              OPC_RecordChild2,
3145
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGUH), 0,
3146
 
                  1, MVT::v8i16, 2, 0, 1, 
3147
 
            15, 
3148
 
              OPC_CheckInteger, 80|128,1, 
3149
 
              OPC_MoveParent,
3150
 
              OPC_RecordChild1,
3151
 
              OPC_RecordChild2,
3152
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VAVGUW), 0,
3153
 
                  1, MVT::v4i32, 2, 0, 1, 
3154
 
            15, 
3155
 
              OPC_CheckInteger, 115|128,1, 
3156
 
              OPC_MoveParent,
3157
 
              OPC_RecordChild1,
3158
 
              OPC_RecordChild2,
3159
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXSB), 0,
3160
 
                  1, MVT::v16i8, 2, 0, 1, 
3161
 
            15, 
3162
 
              OPC_CheckInteger, 116|128,1, 
3163
 
              OPC_MoveParent,
3164
 
              OPC_RecordChild1,
3165
 
              OPC_RecordChild2,
3166
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXSH), 0,
3167
 
                  1, MVT::v8i16, 2, 0, 1, 
3168
 
            15, 
3169
 
              OPC_CheckInteger, 117|128,1, 
3170
 
              OPC_MoveParent,
3171
 
              OPC_RecordChild1,
3172
 
              OPC_RecordChild2,
3173
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXSW), 0,
3174
 
                  1, MVT::v4i32, 2, 0, 1, 
3175
 
            15, 
3176
 
              OPC_CheckInteger, 118|128,1, 
3177
 
              OPC_MoveParent,
3178
 
              OPC_RecordChild1,
3179
 
              OPC_RecordChild2,
3180
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXUB), 0,
3181
 
                  1, MVT::v16i8, 2, 0, 1, 
3182
 
            15, 
3183
 
              OPC_CheckInteger, 119|128,1, 
3184
 
              OPC_MoveParent,
3185
 
              OPC_RecordChild1,
3186
 
              OPC_RecordChild2,
3187
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXUH), 0,
3188
 
                  1, MVT::v8i16, 2, 0, 1, 
3189
 
            15, 
3190
 
              OPC_CheckInteger, 120|128,1, 
3191
 
              OPC_MoveParent,
3192
 
              OPC_RecordChild1,
3193
 
              OPC_RecordChild2,
3194
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXUW), 0,
3195
 
                  1, MVT::v4i32, 2, 0, 1, 
3196
 
            15, 
3197
 
              OPC_CheckInteger, 124|128,1, 
3198
 
              OPC_MoveParent,
3199
 
              OPC_RecordChild1,
3200
 
              OPC_RecordChild2,
3201
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINSB), 0,
3202
 
                  1, MVT::v16i8, 2, 0, 1, 
3203
 
            15, 
3204
 
              OPC_CheckInteger, 125|128,1, 
3205
 
              OPC_MoveParent,
3206
 
              OPC_RecordChild1,
3207
 
              OPC_RecordChild2,
3208
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINSH), 0,
3209
 
                  1, MVT::v8i16, 2, 0, 1, 
3210
 
            15, 
3211
 
              OPC_CheckInteger, 126|128,1, 
3212
 
              OPC_MoveParent,
3213
 
              OPC_RecordChild1,
3214
 
              OPC_RecordChild2,
3215
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINSW), 0,
3216
 
                  1, MVT::v4i32, 2, 0, 1, 
3217
 
            15, 
3218
 
              OPC_CheckInteger, 127|128,1, 
3219
 
              OPC_MoveParent,
3220
 
              OPC_RecordChild1,
3221
 
              OPC_RecordChild2,
3222
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINUB), 0,
3223
 
                  1, MVT::v16i8, 2, 0, 1, 
3224
 
            15, 
3225
 
              OPC_CheckInteger, 0|128,2, 
3226
 
              OPC_MoveParent,
3227
 
              OPC_RecordChild1,
3228
 
              OPC_RecordChild2,
3229
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINUH), 0,
3230
 
                  1, MVT::v8i16, 2, 0, 1, 
3231
 
            15, 
3232
 
              OPC_CheckInteger, 1|128,2, 
3233
 
              OPC_MoveParent,
3234
 
              OPC_RecordChild1,
3235
 
              OPC_RecordChild2,
3236
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINUW), 0,
3237
 
                  1, MVT::v4i32, 2, 0, 1, 
3238
 
            17, 
3239
 
              OPC_CheckInteger, 3|128,2, 
3240
 
              OPC_MoveParent,
3241
 
              OPC_RecordChild1,
3242
 
              OPC_RecordChild2,
3243
 
              OPC_RecordChild3,
3244
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMMBM), 0,
3245
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3246
 
            17, 
3247
 
              OPC_CheckInteger, 4|128,2, 
3248
 
              OPC_MoveParent,
3249
 
              OPC_RecordChild1,
3250
 
              OPC_RecordChild2,
3251
 
              OPC_RecordChild3,
3252
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMSHM), 0,
3253
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3254
 
            17, 
3255
 
              OPC_CheckInteger, 5|128,2, 
3256
 
              OPC_MoveParent,
3257
 
              OPC_RecordChild1,
3258
 
              OPC_RecordChild2,
3259
 
              OPC_RecordChild3,
3260
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMSHS), 0,
3261
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3262
 
            17, 
3263
 
              OPC_CheckInteger, 6|128,2, 
3264
 
              OPC_MoveParent,
3265
 
              OPC_RecordChild1,
3266
 
              OPC_RecordChild2,
3267
 
              OPC_RecordChild3,
3268
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMUBM), 0,
3269
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3270
 
            17, 
3271
 
              OPC_CheckInteger, 7|128,2, 
3272
 
              OPC_MoveParent,
3273
 
              OPC_RecordChild1,
3274
 
              OPC_RecordChild2,
3275
 
              OPC_RecordChild3,
3276
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMUHM), 0,
3277
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3278
 
            17, 
3279
 
              OPC_CheckInteger, 8|128,2, 
3280
 
              OPC_MoveParent,
3281
 
              OPC_RecordChild1,
3282
 
              OPC_RecordChild2,
3283
 
              OPC_RecordChild3,
3284
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMSUMUHS), 0,
3285
 
                  1, MVT::v4i32, 3, 0, 1, 2, 
3286
 
            15, 
3287
 
              OPC_CheckInteger, 9|128,2, 
3288
 
              OPC_MoveParent,
3289
 
              OPC_RecordChild1,
3290
 
              OPC_RecordChild2,
3291
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULESB), 0,
3292
 
                  1, MVT::v8i16, 2, 0, 1, 
3293
 
            15, 
3294
 
              OPC_CheckInteger, 10|128,2, 
3295
 
              OPC_MoveParent,
3296
 
              OPC_RecordChild1,
3297
 
              OPC_RecordChild2,
3298
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULESH), 0,
3299
 
                  1, MVT::v4i32, 2, 0, 1, 
3300
 
            15, 
3301
 
              OPC_CheckInteger, 11|128,2, 
3302
 
              OPC_MoveParent,
3303
 
              OPC_RecordChild1,
3304
 
              OPC_RecordChild2,
3305
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULEUB), 0,
3306
 
                  1, MVT::v8i16, 2, 0, 1, 
3307
 
            15, 
3308
 
              OPC_CheckInteger, 12|128,2, 
3309
 
              OPC_MoveParent,
3310
 
              OPC_RecordChild1,
3311
 
              OPC_RecordChild2,
3312
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULEUH), 0,
3313
 
                  1, MVT::v4i32, 2, 0, 1, 
3314
 
            15, 
3315
 
              OPC_CheckInteger, 13|128,2, 
3316
 
              OPC_MoveParent,
3317
 
              OPC_RecordChild1,
3318
 
              OPC_RecordChild2,
3319
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOSB), 0,
3320
 
                  1, MVT::v8i16, 2, 0, 1, 
3321
 
            15, 
3322
 
              OPC_CheckInteger, 14|128,2, 
3323
 
              OPC_MoveParent,
3324
 
              OPC_RecordChild1,
3325
 
              OPC_RecordChild2,
3326
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOSH), 0,
3327
 
                  1, MVT::v4i32, 2, 0, 1, 
3328
 
            15, 
3329
 
              OPC_CheckInteger, 15|128,2, 
3330
 
              OPC_MoveParent,
3331
 
              OPC_RecordChild1,
3332
 
              OPC_RecordChild2,
3333
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOUB), 0,
3334
 
                  1, MVT::v8i16, 2, 0, 1, 
3335
 
            15, 
3336
 
              OPC_CheckInteger, 16|128,2, 
3337
 
              OPC_MoveParent,
3338
 
              OPC_RecordChild1,
3339
 
              OPC_RecordChild2,
3340
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMULOUH), 0,
3341
 
                  1, MVT::v4i32, 2, 0, 1, 
3342
 
            15, 
3343
 
              OPC_CheckInteger, 49|128,2, 
3344
 
              OPC_MoveParent,
3345
 
              OPC_RecordChild1,
3346
 
              OPC_RecordChild2,
3347
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBCUW), 0,
3348
 
                  1, MVT::v4i32, 2, 0, 1, 
3349
 
            15, 
3350
 
              OPC_CheckInteger, 50|128,2, 
3351
 
              OPC_MoveParent,
3352
 
              OPC_RecordChild1,
3353
 
              OPC_RecordChild2,
3354
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBSBS), 0,
3355
 
                  1, MVT::v16i8, 2, 0, 1, 
3356
 
            15, 
3357
 
              OPC_CheckInteger, 51|128,2, 
3358
 
              OPC_MoveParent,
3359
 
              OPC_RecordChild1,
3360
 
              OPC_RecordChild2,
3361
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBSHS), 0,
3362
 
                  1, MVT::v8i16, 2, 0, 1, 
3363
 
            15, 
3364
 
              OPC_CheckInteger, 52|128,2, 
3365
 
              OPC_MoveParent,
3366
 
              OPC_RecordChild1,
3367
 
              OPC_RecordChild2,
3368
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBSWS), 0,
3369
 
                  1, MVT::v4i32, 2, 0, 1, 
3370
 
            15, 
3371
 
              OPC_CheckInteger, 53|128,2, 
3372
 
              OPC_MoveParent,
3373
 
              OPC_RecordChild1,
3374
 
              OPC_RecordChild2,
3375
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUBS), 0,
3376
 
                  1, MVT::v16i8, 2, 0, 1, 
3377
 
            15, 
3378
 
              OPC_CheckInteger, 54|128,2, 
3379
 
              OPC_MoveParent,
3380
 
              OPC_RecordChild1,
3381
 
              OPC_RecordChild2,
3382
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUHS), 0,
3383
 
                  1, MVT::v8i16, 2, 0, 1, 
3384
 
            15, 
3385
 
              OPC_CheckInteger, 55|128,2, 
3386
 
              OPC_MoveParent,
3387
 
              OPC_RecordChild1,
3388
 
              OPC_RecordChild2,
3389
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUBUWS), 0,
3390
 
                  1, MVT::v4i32, 2, 0, 1, 
3391
 
            15, 
3392
 
              OPC_CheckInteger, 60|128,2, 
3393
 
              OPC_MoveParent,
3394
 
              OPC_RecordChild1,
3395
 
              OPC_RecordChild2,
3396
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUMSWS), 0,
3397
 
                  1, MVT::v4i32, 2, 0, 1, 
3398
 
            15, 
3399
 
              OPC_CheckInteger, 56|128,2, 
3400
 
              OPC_MoveParent,
3401
 
              OPC_RecordChild1,
3402
 
              OPC_RecordChild2,
3403
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM2SWS), 0,
3404
 
                  1, MVT::v4i32, 2, 0, 1, 
3405
 
            15, 
3406
 
              OPC_CheckInteger, 57|128,2, 
3407
 
              OPC_MoveParent,
3408
 
              OPC_RecordChild1,
3409
 
              OPC_RecordChild2,
3410
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM4SBS), 0,
3411
 
                  1, MVT::v4i32, 2, 0, 1, 
3412
 
            15, 
3413
 
              OPC_CheckInteger, 58|128,2, 
3414
 
              OPC_MoveParent,
3415
 
              OPC_RecordChild1,
3416
 
              OPC_RecordChild2,
3417
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM4SHS), 0,
3418
 
                  1, MVT::v4i32, 2, 0, 1, 
3419
 
            15, 
3420
 
              OPC_CheckInteger, 59|128,2, 
3421
 
              OPC_MoveParent,
3422
 
              OPC_RecordChild1,
3423
 
              OPC_RecordChild2,
3424
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSUM4UBS), 0,
3425
 
                  1, MVT::v4i32, 2, 0, 1, 
3426
 
            15, 
3427
 
              OPC_CheckInteger, 31|128,2, 
3428
 
              OPC_MoveParent,
3429
 
              OPC_RecordChild1,
3430
 
              OPC_RecordChild2,
3431
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRLB), 0,
3432
 
                  1, MVT::v16i8, 2, 0, 1, 
3433
 
            15, 
3434
 
              OPC_CheckInteger, 32|128,2, 
3435
 
              OPC_MoveParent,
3436
 
              OPC_RecordChild1,
3437
 
              OPC_RecordChild2,
3438
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRLH), 0,
3439
 
                  1, MVT::v8i16, 2, 0, 1, 
3440
 
            15, 
3441
 
              OPC_CheckInteger, 33|128,2, 
3442
 
              OPC_MoveParent,
3443
 
              OPC_RecordChild1,
3444
 
              OPC_RecordChild2,
3445
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRLW), 0,
3446
 
                  1, MVT::v4i32, 2, 0, 1, 
3447
 
            15, 
3448
 
              OPC_CheckInteger, 36|128,2, 
3449
 
              OPC_MoveParent,
3450
 
              OPC_RecordChild1,
3451
 
              OPC_RecordChild2,
3452
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSL), 0,
3453
 
                  1, MVT::v4i32, 2, 0, 1, 
3454
 
            15, 
3455
 
              OPC_CheckInteger, 39|128,2, 
3456
 
              OPC_MoveParent,
3457
 
              OPC_RecordChild1,
3458
 
              OPC_RecordChild2,
3459
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLO), 0,
3460
 
                  1, MVT::v4i32, 2, 0, 1, 
3461
 
            15, 
3462
 
              OPC_CheckInteger, 37|128,2, 
3463
 
              OPC_MoveParent,
3464
 
              OPC_RecordChild1,
3465
 
              OPC_RecordChild2,
3466
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLB), 0,
3467
 
                  1, MVT::v16i8, 2, 0, 1, 
3468
 
            15, 
3469
 
              OPC_CheckInteger, 38|128,2, 
3470
 
              OPC_MoveParent,
3471
 
              OPC_RecordChild1,
3472
 
              OPC_RecordChild2,
3473
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLH), 0,
3474
 
                  1, MVT::v8i16, 2, 0, 1, 
3475
 
            15, 
3476
 
              OPC_CheckInteger, 40|128,2, 
3477
 
              OPC_MoveParent,
3478
 
              OPC_RecordChild1,
3479
 
              OPC_RecordChild2,
3480
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLW), 0,
3481
 
                  1, MVT::v4i32, 2, 0, 1, 
3482
 
            15, 
3483
 
              OPC_CheckInteger, 41|128,2, 
3484
 
              OPC_MoveParent,
3485
 
              OPC_RecordChild1,
3486
 
              OPC_RecordChild2,
3487
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSR), 0,
3488
 
                  1, MVT::v4i32, 2, 0, 1, 
3489
 
            15, 
3490
 
              OPC_CheckInteger, 47|128,2, 
3491
 
              OPC_MoveParent,
3492
 
              OPC_RecordChild1,
3493
 
              OPC_RecordChild2,
3494
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRO), 0,
3495
 
                  1, MVT::v4i32, 2, 0, 1, 
3496
 
            15, 
3497
 
              OPC_CheckInteger, 42|128,2, 
3498
 
              OPC_MoveParent,
3499
 
              OPC_RecordChild1,
3500
 
              OPC_RecordChild2,
3501
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAB), 0,
3502
 
                  1, MVT::v16i8, 2, 0, 1, 
3503
 
            15, 
3504
 
              OPC_CheckInteger, 43|128,2, 
3505
 
              OPC_MoveParent,
3506
 
              OPC_RecordChild1,
3507
 
              OPC_RecordChild2,
3508
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAH), 0,
3509
 
                  1, MVT::v8i16, 2, 0, 1, 
3510
 
            15, 
3511
 
              OPC_CheckInteger, 44|128,2, 
3512
 
              OPC_MoveParent,
3513
 
              OPC_RecordChild1,
3514
 
              OPC_RecordChild2,
3515
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRAW), 0,
3516
 
                  1, MVT::v4i32, 2, 0, 1, 
3517
 
            15, 
3518
 
              OPC_CheckInteger, 45|128,2, 
3519
 
              OPC_MoveParent,
3520
 
              OPC_RecordChild1,
3521
 
              OPC_RecordChild2,
3522
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRB), 0,
3523
 
                  1, MVT::v16i8, 2, 0, 1, 
3524
 
            15, 
3525
 
              OPC_CheckInteger, 46|128,2, 
3526
 
              OPC_MoveParent,
3527
 
              OPC_RecordChild1,
3528
 
              OPC_RecordChild2,
3529
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRH), 0,
3530
 
                  1, MVT::v8i16, 2, 0, 1, 
3531
 
            15, 
3532
 
              OPC_CheckInteger, 48|128,2, 
3533
 
              OPC_MoveParent,
3534
 
              OPC_RecordChild1,
3535
 
              OPC_RecordChild2,
3536
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSRW), 0,
3537
 
                  1, MVT::v4i32, 2, 0, 1, 
3538
 
            15, 
3539
 
              OPC_CheckInteger, 19|128,2, 
3540
 
              OPC_MoveParent,
3541
 
              OPC_RecordChild1,
3542
 
              OPC_RecordChild2,
3543
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKPX), 0,
3544
 
                  1, MVT::v8i16, 2, 0, 1, 
3545
 
            15, 
3546
 
              OPC_CheckInteger, 20|128,2, 
3547
 
              OPC_MoveParent,
3548
 
              OPC_RecordChild1,
3549
 
              OPC_RecordChild2,
3550
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSHSS), 0,
3551
 
                  1, MVT::v16i8, 2, 0, 1, 
3552
 
            15, 
3553
 
              OPC_CheckInteger, 21|128,2, 
3554
 
              OPC_MoveParent,
3555
 
              OPC_RecordChild1,
3556
 
              OPC_RecordChild2,
3557
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSHUS), 0,
3558
 
                  1, MVT::v16i8, 2, 0, 1, 
3559
 
            15, 
3560
 
              OPC_CheckInteger, 22|128,2, 
3561
 
              OPC_MoveParent,
3562
 
              OPC_RecordChild1,
3563
 
              OPC_RecordChild2,
3564
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSWSS), 0,
3565
 
                  1, MVT::v16i8, 2, 0, 1, 
3566
 
            15, 
3567
 
              OPC_CheckInteger, 23|128,2, 
3568
 
              OPC_MoveParent,
3569
 
              OPC_RecordChild1,
3570
 
              OPC_RecordChild2,
3571
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKSWUS), 0,
3572
 
                  1, MVT::v8i16, 2, 0, 1, 
3573
 
            15, 
3574
 
              OPC_CheckInteger, 24|128,2, 
3575
 
              OPC_MoveParent,
3576
 
              OPC_RecordChild1,
3577
 
              OPC_RecordChild2,
3578
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUHUS), 0,
3579
 
                  1, MVT::v16i8, 2, 0, 1, 
3580
 
            15, 
3581
 
              OPC_CheckInteger, 25|128,2, 
3582
 
              OPC_MoveParent,
3583
 
              OPC_RecordChild1,
3584
 
              OPC_RecordChild2,
3585
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUWUS), 0,
3586
 
                  1, MVT::v8i16, 2, 0, 1, 
3587
 
            13, 
3588
 
              OPC_CheckInteger, 61|128,2, 
3589
 
              OPC_MoveParent,
3590
 
              OPC_RecordChild1,
3591
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKHPX), 0,
3592
 
                  1, MVT::v4i32, 1, 0, 
3593
 
            13, 
3594
 
              OPC_CheckInteger, 62|128,2, 
3595
 
              OPC_MoveParent,
3596
 
              OPC_RecordChild1,
3597
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKHSB), 0,
3598
 
                  1, MVT::v8i16, 1, 0, 
3599
 
            13, 
3600
 
              OPC_CheckInteger, 63|128,2, 
3601
 
              OPC_MoveParent,
3602
 
              OPC_RecordChild1,
3603
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKHSH), 0,
3604
 
                  1, MVT::v4i32, 1, 0, 
3605
 
            13, 
3606
 
              OPC_CheckInteger, 64|128,2, 
3607
 
              OPC_MoveParent,
3608
 
              OPC_RecordChild1,
3609
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKLPX), 0,
3610
 
                  1, MVT::v4i32, 1, 0, 
3611
 
            13, 
3612
 
              OPC_CheckInteger, 65|128,2, 
3613
 
              OPC_MoveParent,
3614
 
              OPC_RecordChild1,
3615
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKLSB), 0,
3616
 
                  1, MVT::v8i16, 1, 0, 
3617
 
            13, 
3618
 
              OPC_CheckInteger, 66|128,2, 
3619
 
              OPC_MoveParent,
3620
 
              OPC_RecordChild1,
3621
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VUPKLSH), 0,
3622
 
                  1, MVT::v4i32, 1, 0, 
3623
 
            23, 
3624
 
              OPC_CheckInteger, 81|128,1, 
3625
 
              OPC_MoveParent,
3626
 
              OPC_RecordChild1,
3627
 
              OPC_RecordChild2,
3628
 
              OPC_MoveChild, 2,
3629
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3630
 
              OPC_MoveParent,
3631
 
              OPC_EmitConvertToTarget, 1,
3632
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCFSX), 0,
3633
 
                  1, MVT::v4f32, 2, 2, 0, 
3634
 
            23, 
3635
 
              OPC_CheckInteger, 82|128,1, 
3636
 
              OPC_MoveParent,
3637
 
              OPC_RecordChild1,
3638
 
              OPC_RecordChild2,
3639
 
              OPC_MoveChild, 2,
3640
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3641
 
              OPC_MoveParent,
3642
 
              OPC_EmitConvertToTarget, 1,
3643
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCFUX), 0,
3644
 
                  1, MVT::v4f32, 2, 2, 0, 
3645
 
            13, 
3646
 
              OPC_CheckInteger, 111|128,1, 
3647
 
              OPC_MoveParent,
3648
 
              OPC_RecordChild1,
3649
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VEXPTEFP), 0,
3650
 
                  1, MVT::v4f32, 1, 0, 
3651
 
            13, 
3652
 
              OPC_CheckInteger, 112|128,1, 
3653
 
              OPC_MoveParent,
3654
 
              OPC_RecordChild1,
3655
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VLOGEFP), 0,
3656
 
                  1, MVT::v4f32, 1, 0, 
3657
 
            15, 
3658
 
              OPC_CheckInteger, 114|128,1, 
3659
 
              OPC_MoveParent,
3660
 
              OPC_RecordChild1,
3661
 
              OPC_RecordChild2,
3662
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMAXFP), 0,
3663
 
                  1, MVT::v4f32, 2, 0, 1, 
3664
 
            15, 
3665
 
              OPC_CheckInteger, 123|128,1, 
3666
 
              OPC_MoveParent,
3667
 
              OPC_RecordChild1,
3668
 
              OPC_RecordChild2,
3669
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMINFP), 0,
3670
 
                  1, MVT::v4f32, 2, 0, 1, 
3671
 
            13, 
3672
 
              OPC_CheckInteger, 26|128,2, 
3673
 
              OPC_MoveParent,
3674
 
              OPC_RecordChild1,
3675
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VREFP), 0,
3676
 
                  1, MVT::v4f32, 1, 0, 
3677
 
            13, 
3678
 
              OPC_CheckInteger, 27|128,2, 
3679
 
              OPC_MoveParent,
3680
 
              OPC_RecordChild1,
3681
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIM), 0,
3682
 
                  1, MVT::v4f32, 1, 0, 
3683
 
            13, 
3684
 
              OPC_CheckInteger, 28|128,2, 
3685
 
              OPC_MoveParent,
3686
 
              OPC_RecordChild1,
3687
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIN), 0,
3688
 
                  1, MVT::v4f32, 1, 0, 
3689
 
            13, 
3690
 
              OPC_CheckInteger, 29|128,2, 
3691
 
              OPC_MoveParent,
3692
 
              OPC_RecordChild1,
3693
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIP), 0,
3694
 
                  1, MVT::v4f32, 1, 0, 
3695
 
            13, 
3696
 
              OPC_CheckInteger, 30|128,2, 
3697
 
              OPC_MoveParent,
3698
 
              OPC_RecordChild1,
3699
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRFIZ), 0,
3700
 
                  1, MVT::v4f32, 1, 0, 
3701
 
            13, 
3702
 
              OPC_CheckInteger, 34|128,2, 
3703
 
              OPC_MoveParent,
3704
 
              OPC_RecordChild1,
3705
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VRSQRTEFP), 0,
3706
 
                  1, MVT::v4f32, 1, 0, 
3707
 
            17, 
3708
 
              OPC_CheckInteger, 113|128,1, 
3709
 
              OPC_MoveParent,
3710
 
              OPC_RecordChild1,
3711
 
              OPC_RecordChild2,
3712
 
              OPC_RecordChild3,
3713
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
3714
 
                  1, MVT::v4f32, 3, 0, 1, 2, 
3715
 
            17, 
3716
 
              OPC_CheckInteger, 17|128,2, 
3717
 
              OPC_MoveParent,
3718
 
              OPC_RecordChild1,
3719
 
              OPC_RecordChild2,
3720
 
              OPC_RecordChild3,
3721
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
3722
 
                  1, MVT::v4f32, 3, 0, 1, 2, 
3723
 
            0, 
3724
 
          40,  TARGET_OPCODE(PPCISD::STCX),
3725
 
            OPC_RecordNode,
3726
 
            OPC_RecordChild1,
3727
 
            OPC_Scope, 17, 
3728
 
              OPC_CheckChild1Type, MVT::i32,
3729
 
              OPC_RecordChild2,
3730
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3731
 
              OPC_EmitMergeInputChains1_0,
3732
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWCX), 0|OPFL_Chain,
3733
 
                  1, MVT::i32, 3, 1, 3, 4, 
3734
 
            17, 
3735
 
              OPC_CheckChild1Type, MVT::i64,
3736
 
              OPC_RecordChild2,
3737
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3738
 
              OPC_EmitMergeInputChains1_0,
3739
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDCX), 0|OPFL_Chain,
3740
 
                  1, MVT::i32, 3, 1, 3, 4, 
3741
 
            0, 
3742
 
          41,  TARGET_OPCODE(PPCISD::STBRX),
3743
 
            OPC_RecordNode,
3744
 
            OPC_RecordChild1,
3745
 
            OPC_RecordChild2,
3746
 
            OPC_MoveChild, 3,
3747
 
            OPC_Scope, 16, 
3748
 
              OPC_CheckValueType, MVT::i16,
3749
 
              OPC_MoveParent,
3750
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3751
 
              OPC_EmitMergeInputChains1_0,
3752
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHBRX), 0|OPFL_Chain,
3753
 
                  0, 3, 1, 3, 4, 
3754
 
            16, 
3755
 
              OPC_CheckValueType, MVT::i32,
3756
 
              OPC_MoveParent,
3757
 
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3758
 
              OPC_EmitMergeInputChains1_0,
3759
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWBRX), 0|OPFL_Chain,
3760
 
                  0, 3, 1, 3, 4, 
3761
 
            0, 
3762
 
          16,  TARGET_OPCODE(PPCISD::STFIWX),
3763
 
            OPC_RecordNode,
3764
 
            OPC_RecordChild1,
3765
 
            OPC_RecordChild2,
3766
 
            OPC_CheckComplexPat, /*CP*/0, /*#*/2,
3767
 
            OPC_EmitMergeInputChains1_0,
3768
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFIWX), 0|OPFL_Chain,
3769
 
                0, 3, 1, 3, 4, 
3770
 
          35,  TARGET_OPCODE(PPCISD::STD_32),
3771
 
            OPC_RecordNode,
3772
 
            OPC_RecordChild1,
3773
 
            OPC_CheckChild1Type, MVT::i32,
3774
 
            OPC_RecordChild2,
3775
 
            OPC_Scope, 13, 
3776
 
              OPC_CheckComplexPat, /*CP*/3, /*#*/2,
3777
 
              OPC_EmitMergeInputChains1_0,
3778
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STD_32), 0|OPFL_Chain,
3779
 
                  0, 3, 1, 3, 4, 
3780
 
            13, 
3781
 
              OPC_CheckComplexPat, /*CP*/2, /*#*/2,
3782
 
              OPC_EmitMergeInputChains1_0,
3783
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDX_32), 0|OPFL_Chain,
3784
 
                  0, 3, 1, 3, 4, 
3785
 
            0, 
3786
 
          26,  TARGET_OPCODE(ISD::CALLSEQ_END),
3787
 
            OPC_RecordNode,
3788
 
            OPC_CaptureFlagInput,
3789
 
            OPC_RecordChild1,
3790
 
            OPC_MoveChild, 1,
3791
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
3792
 
            OPC_MoveParent,
3793
 
            OPC_RecordChild2,
3794
 
            OPC_MoveChild, 2,
3795
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
3796
 
            OPC_MoveParent,
3797
 
            OPC_EmitMergeInputChains1_0,
3798
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
3799
 
                1, MVT::i32, 2, 1, 2, 
3800
 
          70|128,1,  TARGET_OPCODE(PPCISD::TC_RETURN),
3801
 
            OPC_RecordNode,
3802
 
            OPC_CaptureFlagInput,
3803
 
            OPC_RecordChild1,
3804
 
            OPC_Scope, 21|128,1, 
3805
 
              OPC_MoveChild, 1,
3806
 
              OPC_SwitchOpcode , 48,  TARGET_OPCODE(ISD::Constant),
3807
 
                OPC_SwitchType , 21,  MVT::i32,
3808
 
                  OPC_MoveParent,
3809
 
                  OPC_RecordChild2,
3810
 
                  OPC_MoveChild, 2,
3811
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3812
 
                  OPC_MoveParent,
3813
 
                  OPC_EmitMergeInputChains1_0,
3814
 
                  OPC_EmitConvertToTarget, 1,
3815
 
                  OPC_EmitConvertToTarget, 2,
3816
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNai), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3817
 
                      0, 2, 3, 4, 
3818
 
                21,  MVT::i64,
3819
 
                  OPC_MoveParent,
3820
 
                  OPC_RecordChild2,
3821
 
                  OPC_MoveChild, 2,
3822
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3823
 
                  OPC_MoveParent,
3824
 
                  OPC_EmitMergeInputChains1_0,
3825
 
                  OPC_EmitConvertToTarget, 1,
3826
 
                  OPC_EmitConvertToTarget, 2,
3827
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNai8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3828
 
                      0, 2, 3, 4, 
3829
 
                0, 
3830
 
              44,  TARGET_OPCODE(ISD::TargetGlobalAddress),
3831
 
                OPC_SwitchType , 19,  MVT::i32,
3832
 
                  OPC_MoveParent,
3833
 
                  OPC_RecordChild2,
3834
 
                  OPC_MoveChild, 2,
3835
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3836
 
                  OPC_MoveParent,
3837
 
                  OPC_EmitMergeInputChains1_0,
3838
 
                  OPC_EmitConvertToTarget, 2,
3839
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3840
 
                      0, 2, 1, 3, 
3841
 
                19,  MVT::i64,
3842
 
                  OPC_MoveParent,
3843
 
                  OPC_RecordChild2,
3844
 
                  OPC_MoveChild, 2,
3845
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3846
 
                  OPC_MoveParent,
3847
 
                  OPC_EmitMergeInputChains1_0,
3848
 
                  OPC_EmitConvertToTarget, 2,
3849
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3850
 
                      0, 2, 1, 3, 
3851
 
                0, 
3852
 
              44,  TARGET_OPCODE(ISD::TargetExternalSymbol),
3853
 
                OPC_SwitchType , 19,  MVT::i32,
3854
 
                  OPC_MoveParent,
3855
 
                  OPC_RecordChild2,
3856
 
                  OPC_MoveChild, 2,
3857
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3858
 
                  OPC_MoveParent,
3859
 
                  OPC_EmitMergeInputChains1_0,
3860
 
                  OPC_EmitConvertToTarget, 2,
3861
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3862
 
                      0, 2, 1, 3, 
3863
 
                19,  MVT::i64,
3864
 
                  OPC_MoveParent,
3865
 
                  OPC_RecordChild2,
3866
 
                  OPC_MoveChild, 2,
3867
 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3868
 
                  OPC_MoveParent,
3869
 
                  OPC_EmitMergeInputChains1_0,
3870
 
                  OPC_EmitConvertToTarget, 2,
3871
 
                  OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNdi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3872
 
                      0, 2, 1, 3, 
3873
 
                0, 
3874
 
              0, 
3875
 
            20, 
3876
 
              OPC_CheckChild1Type, MVT::i32,
3877
 
              OPC_RecordChild2,
3878
 
              OPC_MoveChild, 2,
3879
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3880
 
              OPC_MoveParent,
3881
 
              OPC_EmitMergeInputChains1_0,
3882
 
              OPC_EmitConvertToTarget, 2,
3883
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNri), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3884
 
                  0, 2, 1, 3, 
3885
 
            20, 
3886
 
              OPC_CheckChild1Type, MVT::i64,
3887
 
              OPC_RecordChild2,
3888
 
              OPC_MoveChild, 2,
3889
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
3890
 
              OPC_MoveParent,
3891
 
              OPC_EmitMergeInputChains1_0,
3892
 
              OPC_EmitConvertToTarget, 2,
3893
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::TCRETURNri8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
3894
 
                  0, 2, 1, 3, 
3895
 
            0, 
3896
 
          84|128,1,  TARGET_OPCODE(PPCISD::VCMP),
3897
 
            OPC_RecordChild0,
3898
 
            OPC_RecordChild1,
3899
 
            OPC_MoveChild, 2,
3900
 
            OPC_Scope, 14, 
3901
 
              OPC_CheckInteger, 6, 
3902
 
              OPC_MoveParent,
3903
 
              OPC_CheckType, MVT::v16i8,
3904
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUB), 0,
3905
 
                  1, MVT::v16i8, 2, 0, 1, 
3906
 
            15, 
3907
 
              OPC_CheckInteger, 6|128,6, 
3908
 
              OPC_MoveParent,
3909
 
              OPC_CheckType, MVT::v16i8,
3910
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSB), 0,
3911
 
                  1, MVT::v16i8, 2, 0, 1, 
3912
 
            15, 
3913
 
              OPC_CheckInteger, 6|128,4, 
3914
 
              OPC_MoveParent,
3915
 
              OPC_CheckType, MVT::v16i8,
3916
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUB), 0,
3917
 
                  1, MVT::v16i8, 2, 0, 1, 
3918
 
            14, 
3919
 
              OPC_CheckInteger, 70, 
3920
 
              OPC_MoveParent,
3921
 
              OPC_CheckType, MVT::v8i16,
3922
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUH), 0,
3923
 
                  1, MVT::v8i16, 2, 0, 1, 
3924
 
            15, 
3925
 
              OPC_CheckInteger, 70|128,6, 
3926
 
              OPC_MoveParent,
3927
 
              OPC_CheckType, MVT::v8i16,
3928
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSH), 0,
3929
 
                  1, MVT::v8i16, 2, 0, 1, 
3930
 
            15, 
3931
 
              OPC_CheckInteger, 70|128,4, 
3932
 
              OPC_MoveParent,
3933
 
              OPC_CheckType, MVT::v8i16,
3934
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUH), 0,
3935
 
                  1, MVT::v8i16, 2, 0, 1, 
3936
 
            15, 
3937
 
              OPC_CheckInteger, 6|128,1, 
3938
 
              OPC_MoveParent,
3939
 
              OPC_CheckType, MVT::v4i32,
3940
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUW), 0,
3941
 
                  1, MVT::v4i32, 2, 0, 1, 
3942
 
            15, 
3943
 
              OPC_CheckInteger, 6|128,7, 
3944
 
              OPC_MoveParent,
3945
 
              OPC_CheckType, MVT::v4i32,
3946
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSW), 0,
3947
 
                  1, MVT::v4i32, 2, 0, 1, 
3948
 
            15, 
3949
 
              OPC_CheckInteger, 6|128,5, 
3950
 
              OPC_MoveParent,
3951
 
              OPC_CheckType, MVT::v4i32,
3952
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUW), 0,
3953
 
                  1, MVT::v4i32, 2, 0, 1, 
3954
 
            15, 
3955
 
              OPC_CheckInteger, 70|128,7, 
3956
 
              OPC_MoveParent,
3957
 
              OPC_CheckType, MVT::v4f32,
3958
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPBFP), 0,
3959
 
                  1, MVT::v4f32, 2, 0, 1, 
3960
 
            15, 
3961
 
              OPC_CheckInteger, 70|128,1, 
3962
 
              OPC_MoveParent,
3963
 
              OPC_CheckType, MVT::v4f32,
3964
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQFP), 0,
3965
 
                  1, MVT::v4f32, 2, 0, 1, 
3966
 
            15, 
3967
 
              OPC_CheckInteger, 70|128,3, 
3968
 
              OPC_MoveParent,
3969
 
              OPC_CheckType, MVT::v4f32,
3970
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGEFP), 0,
3971
 
                  1, MVT::v4f32, 2, 0, 1, 
3972
 
            15, 
3973
 
              OPC_CheckInteger, 70|128,5, 
3974
 
              OPC_MoveParent,
3975
 
              OPC_CheckType, MVT::v4f32,
3976
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTFP), 0,
3977
 
                  1, MVT::v4f32, 2, 0, 1, 
3978
 
            0, 
3979
 
          97|128,1,  TARGET_OPCODE(PPCISD::VCMPo),
3980
 
            OPC_RecordChild0,
3981
 
            OPC_RecordChild1,
3982
 
            OPC_MoveChild, 2,
3983
 
            OPC_Scope, 15, 
3984
 
              OPC_CheckInteger, 6, 
3985
 
              OPC_MoveParent,
3986
 
              OPC_CheckType, MVT::v16i8,
3987
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUBo), 0|OPFL_FlagOutput,
3988
 
                  2, MVT::v16i8, MVT::i32, 2, 0, 1, 
3989
 
            16, 
3990
 
              OPC_CheckInteger, 6|128,6, 
3991
 
              OPC_MoveParent,
3992
 
              OPC_CheckType, MVT::v16i8,
3993
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSBo), 0|OPFL_FlagOutput,
3994
 
                  2, MVT::v16i8, MVT::i32, 2, 0, 1, 
3995
 
            16, 
3996
 
              OPC_CheckInteger, 6|128,4, 
3997
 
              OPC_MoveParent,
3998
 
              OPC_CheckType, MVT::v16i8,
3999
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUBo), 0|OPFL_FlagOutput,
4000
 
                  2, MVT::v16i8, MVT::i32, 2, 0, 1, 
4001
 
            15, 
4002
 
              OPC_CheckInteger, 70, 
4003
 
              OPC_MoveParent,
4004
 
              OPC_CheckType, MVT::v8i16,
4005
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUHo), 0|OPFL_FlagOutput,
4006
 
                  2, MVT::v8i16, MVT::i32, 2, 0, 1, 
4007
 
            16, 
4008
 
              OPC_CheckInteger, 70|128,6, 
4009
 
              OPC_MoveParent,
4010
 
              OPC_CheckType, MVT::v8i16,
4011
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSHo), 0|OPFL_FlagOutput,
4012
 
                  2, MVT::v8i16, MVT::i32, 2, 0, 1, 
4013
 
            16, 
4014
 
              OPC_CheckInteger, 70|128,4, 
4015
 
              OPC_MoveParent,
4016
 
              OPC_CheckType, MVT::v8i16,
4017
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUHo), 0|OPFL_FlagOutput,
4018
 
                  2, MVT::v8i16, MVT::i32, 2, 0, 1, 
4019
 
            16, 
4020
 
              OPC_CheckInteger, 6|128,1, 
4021
 
              OPC_MoveParent,
4022
 
              OPC_CheckType, MVT::v4i32,
4023
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQUWo), 0|OPFL_FlagOutput,
4024
 
                  2, MVT::v4i32, MVT::i32, 2, 0, 1, 
4025
 
            16, 
4026
 
              OPC_CheckInteger, 6|128,7, 
4027
 
              OPC_MoveParent,
4028
 
              OPC_CheckType, MVT::v4i32,
4029
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTSWo), 0|OPFL_FlagOutput,
4030
 
                  2, MVT::v4i32, MVT::i32, 2, 0, 1, 
4031
 
            16, 
4032
 
              OPC_CheckInteger, 6|128,5, 
4033
 
              OPC_MoveParent,
4034
 
              OPC_CheckType, MVT::v4i32,
4035
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTUWo), 0|OPFL_FlagOutput,
4036
 
                  2, MVT::v4i32, MVT::i32, 2, 0, 1, 
4037
 
            16, 
4038
 
              OPC_CheckInteger, 70|128,7, 
4039
 
              OPC_MoveParent,
4040
 
              OPC_CheckType, MVT::v4f32,
4041
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPBFPo), 0|OPFL_FlagOutput,
4042
 
                  2, MVT::v4f32, MVT::i32, 2, 0, 1, 
4043
 
            16, 
4044
 
              OPC_CheckInteger, 70|128,1, 
4045
 
              OPC_MoveParent,
4046
 
              OPC_CheckType, MVT::v4f32,
4047
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPEQFPo), 0|OPFL_FlagOutput,
4048
 
                  2, MVT::v4f32, MVT::i32, 2, 0, 1, 
4049
 
            16, 
4050
 
              OPC_CheckInteger, 70|128,3, 
4051
 
              OPC_MoveParent,
4052
 
              OPC_CheckType, MVT::v4f32,
4053
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGEFPo), 0|OPFL_FlagOutput,
4054
 
                  2, MVT::v4f32, MVT::i32, 2, 0, 1, 
4055
 
            16, 
4056
 
              OPC_CheckInteger, 70|128,5, 
4057
 
              OPC_MoveParent,
4058
 
              OPC_CheckType, MVT::v4f32,
4059
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VCMPGTFPo), 0|OPFL_FlagOutput,
4060
 
                  2, MVT::v4f32, MVT::i32, 2, 0, 1, 
4061
 
            0, 
4062
 
          52|128,2,  TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
4063
 
            OPC_Scope, 73, 
4064
 
              OPC_RecordNode,
4065
 
              OPC_RecordChild0,
4066
 
              OPC_MoveChild, 1,
4067
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
4068
 
              OPC_MoveParent,
4069
 
              OPC_CheckType, MVT::v16i8,
4070
 
              OPC_Scope, 14, 
4071
 
                OPC_CheckPredicate, 67,
4072
 
                OPC_EmitNodeXForm, 9, 0,
4073
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTB), 0,
4074
 
                    1, MVT::v16i8, 2, 2, 1, 
4075
 
              14, 
4076
 
                OPC_CheckPredicate, 68,
4077
 
                OPC_EmitNodeXForm, 10, 0,
4078
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTH), 0,
4079
 
                    1, MVT::v16i8, 2, 2, 1, 
4080
 
              14, 
4081
 
                OPC_CheckPredicate, 69,
4082
 
                OPC_EmitNodeXForm, 11, 0,
4083
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTW), 0,
4084
 
                    1, MVT::v16i8, 2, 2, 1, 
4085
 
              15, 
4086
 
                OPC_CheckPredicate, 70,
4087
 
                OPC_EmitNodeXForm, 12, 0,
4088
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLDOI), 0,
4089
 
                    1, MVT::v16i8, 3, 1, 1, 2, 
4090
 
              0, 
4091
 
            107, 
4092
 
              OPC_RecordChild0,
4093
 
              OPC_MoveChild, 1,
4094
 
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
4095
 
              OPC_MoveParent,
4096
 
              OPC_CheckType, MVT::v16i8,
4097
 
              OPC_Scope, 11, 
4098
 
                OPC_CheckPredicate, 71,
4099
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUWUM), 0,
4100
 
                    1, MVT::v16i8, 2, 0, 0, 
4101
 
              11, 
4102
 
                OPC_CheckPredicate, 72,
4103
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUHUM), 0,
4104
 
                    1, MVT::v16i8, 2, 0, 0, 
4105
 
              11, 
4106
 
                OPC_CheckPredicate, 73,
4107
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLB), 0,
4108
 
                    1, MVT::v16i8, 2, 0, 0, 
4109
 
              11, 
4110
 
                OPC_CheckPredicate, 74,
4111
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLH), 0,
4112
 
                    1, MVT::v16i8, 2, 0, 0, 
4113
 
              11, 
4114
 
                OPC_CheckPredicate, 75,
4115
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLW), 0,
4116
 
                    1, MVT::v16i8, 2, 0, 0, 
4117
 
              11, 
4118
 
                OPC_CheckPredicate, 76,
4119
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHB), 0,
4120
 
                    1, MVT::v16i8, 2, 0, 0, 
4121
 
              11, 
4122
 
                OPC_CheckPredicate, 77,
4123
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHH), 0,
4124
 
                    1, MVT::v16i8, 2, 0, 0, 
4125
 
              11, 
4126
 
                OPC_CheckPredicate, 78,
4127
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHW), 0,
4128
 
                    1, MVT::v16i8, 2, 0, 0, 
4129
 
              0, 
4130
 
            20, 
4131
 
              OPC_RecordNode,
4132
 
              OPC_RecordChild0,
4133
 
              OPC_RecordChild1,
4134
 
              OPC_CheckPredicate, 79,
4135
 
              OPC_CheckType, MVT::v16i8,
4136
 
              OPC_EmitNodeXForm, 13, 0,
4137
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSLDOI), 0,
4138
 
                  1, MVT::v16i8, 3, 1, 2, 3, 
4139
 
            102, 
4140
 
              OPC_RecordChild0,
4141
 
              OPC_RecordChild1,
4142
 
              OPC_CheckType, MVT::v16i8,
4143
 
              OPC_Scope, 11, 
4144
 
                OPC_CheckPredicate, 80,
4145
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHB), 0,
4146
 
                    1, MVT::v16i8, 2, 0, 1, 
4147
 
              11, 
4148
 
                OPC_CheckPredicate, 81,
4149
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHH), 0,
4150
 
                    1, MVT::v16i8, 2, 0, 1, 
4151
 
              11, 
4152
 
                OPC_CheckPredicate, 82,
4153
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGHW), 0,
4154
 
                    1, MVT::v16i8, 2, 0, 1, 
4155
 
              11, 
4156
 
                OPC_CheckPredicate, 83,
4157
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLB), 0,
4158
 
                    1, MVT::v16i8, 2, 0, 1, 
4159
 
              11, 
4160
 
                OPC_CheckPredicate, 84,
4161
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLH), 0,
4162
 
                    1, MVT::v16i8, 2, 0, 1, 
4163
 
              11, 
4164
 
                OPC_CheckPredicate, 85,
4165
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMRGLW), 0,
4166
 
                    1, MVT::v16i8, 2, 0, 1, 
4167
 
              11, 
4168
 
                OPC_CheckPredicate, 86,
4169
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUHUM), 0,
4170
 
                    1, MVT::v16i8, 2, 0, 1, 
4171
 
              11, 
4172
 
                OPC_CheckPredicate, 87,
4173
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPKUWUM), 0,
4174
 
                    1, MVT::v16i8, 2, 0, 1, 
4175
 
              0, 
4176
 
            0, 
4177
 
          17,  TARGET_OPCODE(ISD::CALLSEQ_START),
4178
 
            OPC_RecordNode,
4179
 
            OPC_RecordChild1,
4180
 
            OPC_MoveChild, 1,
4181
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
4182
 
            OPC_MoveParent,
4183
 
            OPC_EmitMergeInputChains1_0,
4184
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_FlagOutput,
4185
 
                1, MVT::i32, 1, 1, 
4186
 
          98,  TARGET_OPCODE(PPCISD::CALL_Darwin),
4187
 
            OPC_RecordNode,
4188
 
            OPC_CaptureFlagInput,
4189
 
            OPC_RecordChild1,
4190
 
            OPC_MoveChild, 1,
4191
 
            OPC_SwitchOpcode , 30,  TARGET_OPCODE(ISD::Constant),
4192
 
              OPC_SwitchType , 12,  MVT::i32,
4193
 
                OPC_MoveParent,
4194
 
                OPC_EmitMergeInputChains1_0,
4195
 
                OPC_EmitConvertToTarget, 1,
4196
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4197
 
                    1, MVT::i32, 1, 2, 
4198
 
              12,  MVT::i64,
4199
 
                OPC_MoveParent,
4200
 
                OPC_EmitMergeInputChains1_0,
4201
 
                OPC_EmitConvertToTarget, 1,
4202
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4203
 
                    1, MVT::i64, 1, 2, 
4204
 
              0, 
4205
 
            26,  TARGET_OPCODE(ISD::TargetGlobalAddress),
4206
 
              OPC_SwitchType , 10,  MVT::i32,
4207
 
                OPC_MoveParent,
4208
 
                OPC_EmitMergeInputChains1_0,
4209
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4210
 
                    1, MVT::i32, 1, 1, 
4211
 
              10,  MVT::i64,
4212
 
                OPC_MoveParent,
4213
 
                OPC_EmitMergeInputChains1_0,
4214
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4215
 
                    1, MVT::i64, 1, 1, 
4216
 
              0, 
4217
 
            26,  TARGET_OPCODE(ISD::TargetExternalSymbol),
4218
 
              OPC_SwitchType , 10,  MVT::i32,
4219
 
                OPC_MoveParent,
4220
 
                OPC_EmitMergeInputChains1_0,
4221
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4222
 
                    1, MVT::i32, 1, 1, 
4223
 
              10,  MVT::i64,
4224
 
                OPC_MoveParent,
4225
 
                OPC_EmitMergeInputChains1_0,
4226
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4227
 
                    1, MVT::i64, 1, 1, 
4228
 
              0, 
4229
 
            0, 
4230
 
          98,  TARGET_OPCODE(PPCISD::CALL_SVR4),
4231
 
            OPC_RecordNode,
4232
 
            OPC_CaptureFlagInput,
4233
 
            OPC_RecordChild1,
4234
 
            OPC_MoveChild, 1,
4235
 
            OPC_SwitchOpcode , 30,  TARGET_OPCODE(ISD::Constant),
4236
 
              OPC_SwitchType , 12,  MVT::i32,
4237
 
                OPC_MoveParent,
4238
 
                OPC_EmitMergeInputChains1_0,
4239
 
                OPC_EmitConvertToTarget, 1,
4240
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4241
 
                    1, MVT::i32, 1, 2, 
4242
 
              12,  MVT::i64,
4243
 
                OPC_MoveParent,
4244
 
                OPC_EmitMergeInputChains1_0,
4245
 
                OPC_EmitConvertToTarget, 1,
4246
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLA8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4247
 
                    1, MVT::i64, 1, 2, 
4248
 
              0, 
4249
 
            26,  TARGET_OPCODE(ISD::TargetGlobalAddress),
4250
 
              OPC_SwitchType , 10,  MVT::i32,
4251
 
                OPC_MoveParent,
4252
 
                OPC_EmitMergeInputChains1_0,
4253
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4254
 
                    1, MVT::i32, 1, 1, 
4255
 
              10,  MVT::i64,
4256
 
                OPC_MoveParent,
4257
 
                OPC_EmitMergeInputChains1_0,
4258
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4259
 
                    1, MVT::i64, 1, 1, 
4260
 
              0, 
4261
 
            26,  TARGET_OPCODE(ISD::TargetExternalSymbol),
4262
 
              OPC_SwitchType , 10,  MVT::i32,
4263
 
                OPC_MoveParent,
4264
 
                OPC_EmitMergeInputChains1_0,
4265
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4266
 
                    1, MVT::i32, 1, 1, 
4267
 
              10,  MVT::i64,
4268
 
                OPC_MoveParent,
4269
 
                OPC_EmitMergeInputChains1_0,
4270
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::BL8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
4271
 
                    1, MVT::i64, 1, 1, 
4272
 
              0, 
4273
 
            0, 
4274
 
          19,  TARGET_OPCODE(PPCISD::MTFSB0),
4275
 
            OPC_CaptureFlagInput,
4276
 
            OPC_RecordChild0,
4277
 
            OPC_MoveChild, 0,
4278
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
4279
 
            OPC_CheckType, MVT::i32,
4280
 
            OPC_MoveParent,
4281
 
            OPC_EmitConvertToTarget, 0,
4282
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTFSB0), 0|OPFL_FlagInput|OPFL_FlagOutput,
4283
 
                0, 1, 1, 
4284
 
          19,  TARGET_OPCODE(PPCISD::MTFSB1),
4285
 
            OPC_CaptureFlagInput,
4286
 
            OPC_RecordChild0,
4287
 
            OPC_MoveChild, 0,
4288
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
4289
 
            OPC_CheckType, MVT::i32,
4290
 
            OPC_MoveParent,
4291
 
            OPC_EmitConvertToTarget, 0,
4292
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTFSB1), 0|OPFL_FlagInput|OPFL_FlagOutput,
4293
 
                0, 1, 1, 
4294
 
          63,  TARGET_OPCODE(ISD::BUILD_VECTOR),
4295
 
            OPC_Scope, 48, 
4296
 
              OPC_RecordNode,
4297
 
              OPC_SwitchType , 13,  MVT::v16i8,
4298
 
                OPC_CheckPredicate, 88,
4299
 
                OPC_EmitNodeXForm, 14, 0,
4300
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTISB), 0,
4301
 
                    1, MVT::v16i8, 1, 1, 
4302
 
              13,  MVT::v8i16,
4303
 
                OPC_CheckPredicate, 89,
4304
 
                OPC_EmitNodeXForm, 15, 0,
4305
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTISH), 0,
4306
 
                    1, MVT::v8i16, 1, 1, 
4307
 
              13,  MVT::v4i32,
4308
 
                OPC_CheckPredicate, 90,
4309
 
                OPC_EmitNodeXForm, 16, 0,
4310
 
                OPC_MorphNodeTo, TARGET_OPCODE(PPC::VSPLTISW), 0,
4311
 
                    1, MVT::v4i32, 1, 1, 
4312
 
              0, 
4313
 
            11, 
4314
 
              OPC_CheckPredicate, 91,
4315
 
              OPC_CheckType, MVT::v4i32,
4316
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::V_SET0), 0,
4317
 
                  1, MVT::v4i32, 0, 
4318
 
            0, 
4319
 
          83,  TARGET_OPCODE(ISD::BIT_CONVERT),
4320
 
            OPC_RecordChild0,
4321
 
            OPC_Scope, 19, 
4322
 
              OPC_CheckChild0Type, MVT::v8i16,
4323
 
              OPC_SwitchType , 3,  MVT::v16i8,
4324
 
                OPC_CompleteMatch, 1, 0, 
4325
 
 
4326
 
              3,  MVT::v4i32,
4327
 
                OPC_CompleteMatch, 1, 0, 
4328
 
 
4329
 
              3,  MVT::v4f32,
4330
 
                OPC_CompleteMatch, 1, 0, 
4331
 
 
4332
 
              0, 
4333
 
            19, 
4334
 
              OPC_CheckChild0Type, MVT::v4i32,
4335
 
              OPC_SwitchType , 3,  MVT::v16i8,
4336
 
                OPC_CompleteMatch, 1, 0, 
4337
 
 
4338
 
              3,  MVT::v8i16,
4339
 
                OPC_CompleteMatch, 1, 0, 
4340
 
 
4341
 
              3,  MVT::v4f32,
4342
 
                OPC_CompleteMatch, 1, 0, 
4343
 
 
4344
 
              0, 
4345
 
            19, 
4346
 
              OPC_CheckChild0Type, MVT::v4f32,
4347
 
              OPC_SwitchType , 3,  MVT::v16i8,
4348
 
                OPC_CompleteMatch, 1, 0, 
4349
 
 
4350
 
              3,  MVT::v8i16,
4351
 
                OPC_CompleteMatch, 1, 0, 
4352
 
 
4353
 
              3,  MVT::v4i32,
4354
 
                OPC_CompleteMatch, 1, 0, 
4355
 
 
4356
 
              0, 
4357
 
            19, 
4358
 
              OPC_CheckChild0Type, MVT::v16i8,
4359
 
              OPC_SwitchType , 3,  MVT::v8i16,
4360
 
                OPC_CompleteMatch, 1, 0, 
4361
 
 
4362
 
              3,  MVT::v4i32,
4363
 
                OPC_CompleteMatch, 1, 0, 
4364
 
 
4365
 
              3,  MVT::v4f32,
4366
 
                OPC_CompleteMatch, 1, 0, 
4367
 
 
4368
 
              0, 
4369
 
            0, 
4370
 
          17,  TARGET_OPCODE(PPCISD::RET_FLAG),
4371
 
            OPC_RecordNode,
4372
 
            OPC_CaptureFlagInput,
4373
 
            OPC_EmitMergeInputChains1_0,
4374
 
            OPC_EmitInteger, MVT::i32, 20, 
4375
 
            OPC_EmitRegister, MVT::i32, 0 ,
4376
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::BLR), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic0,
4377
 
                0, 2, 1, 2, 
4378
 
          16,  TARGET_OPCODE(ISD::BR),
4379
 
            OPC_RecordNode,
4380
 
            OPC_RecordChild1,
4381
 
            OPC_MoveChild, 1,
4382
 
            OPC_CheckOpcode, TARGET_OPCODE(ISD::BasicBlock),
4383
 
            OPC_MoveParent,
4384
 
            OPC_EmitMergeInputChains1_0,
4385
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::B), 0|OPFL_Chain,
4386
 
                0, 1, 1, 
4387
 
          26,  TARGET_OPCODE(PPCISD::BCTRL_Darwin),
4388
 
            OPC_RecordNode,
4389
 
            OPC_CaptureFlagInput,
4390
 
            OPC_Scope, 10, 
4391
 
              OPC_CheckPatternPredicate, 1,
4392
 
              OPC_EmitMergeInputChains1_0,
4393
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4394
 
                  1, MVT::i32, 0, 
4395
 
            10, 
4396
 
              OPC_CheckPatternPredicate, 2,
4397
 
              OPC_EmitMergeInputChains1_0,
4398
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL8_Darwin), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4399
 
                  1, MVT::i64, 0, 
4400
 
            0, 
4401
 
          26,  TARGET_OPCODE(PPCISD::BCTRL_SVR4),
4402
 
            OPC_RecordNode,
4403
 
            OPC_CaptureFlagInput,
4404
 
            OPC_Scope, 10, 
4405
 
              OPC_CheckPatternPredicate, 1,
4406
 
              OPC_EmitMergeInputChains1_0,
4407
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL_SVR4), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4408
 
                  1, MVT::i32, 0, 
4409
 
            10, 
4410
 
              OPC_CheckPatternPredicate, 2,
4411
 
              OPC_EmitMergeInputChains1_0,
4412
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::BCTRL8_ELF), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic0,
4413
 
                  1, MVT::i64, 0, 
4414
 
            0, 
4415
 
          8,  TARGET_OPCODE(ISD::TRAP),
4416
 
            OPC_RecordNode,
4417
 
            OPC_EmitMergeInputChains1_0,
4418
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::TRAP), 0|OPFL_Chain,
4419
 
                0, 0, 
4420
 
          29,  TARGET_OPCODE(PPCISD::MTCTR),
4421
 
            OPC_RecordNode,
4422
 
            OPC_CaptureFlagInput,
4423
 
            OPC_RecordChild1,
4424
 
            OPC_Scope, 11, 
4425
 
              OPC_CheckChild1Type, MVT::i32,
4426
 
              OPC_EmitMergeInputChains1_0,
4427
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTCTR), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4428
 
                  1, MVT::i32, 1, 1, 
4429
 
            11, 
4430
 
              OPC_CheckChild1Type, MVT::i64,
4431
 
              OPC_EmitMergeInputChains1_0,
4432
 
              OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTCTR8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4433
 
                  1, MVT::i64, 1, 1, 
4434
 
            0, 
4435
 
          15,  TARGET_OPCODE(PPCISD::VPERM),
4436
 
            OPC_RecordChild0,
4437
 
            OPC_RecordChild1,
4438
 
            OPC_RecordChild2,
4439
 
            OPC_CheckType, MVT::v16i8,
4440
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPERM), 0,
4441
 
                1, MVT::v16i8, 3, 0, 1, 2, 
4442
 
          15,  TARGET_OPCODE(PPCISD::VMADDFP),
4443
 
            OPC_RecordChild0,
4444
 
            OPC_RecordChild1,
4445
 
            OPC_RecordChild2,
4446
 
            OPC_CheckType, MVT::v4f32,
4447
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::VMADDFP), 0,
4448
 
                1, MVT::v4f32, 3, 0, 1, 2, 
4449
 
          15,  TARGET_OPCODE(PPCISD::VNMSUBFP),
4450
 
            OPC_RecordChild0,
4451
 
            OPC_RecordChild1,
4452
 
            OPC_RecordChild2,
4453
 
            OPC_CheckType, MVT::v4f32,
4454
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
4455
 
                1, MVT::v4f32, 3, 0, 1, 2, 
4456
 
          7,  TARGET_OPCODE(PPCISD::NOP),
4457
 
            OPC_CaptureFlagInput,
4458
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::NOP), 0|OPFL_FlagInput|OPFL_FlagOutput,
4459
 
                0, 0, 
4460
 
          13,  TARGET_OPCODE(PPCISD::LOAD_TOC),
4461
 
            OPC_RecordNode,
4462
 
            OPC_CaptureFlagInput,
4463
 
            OPC_RecordChild1,
4464
 
            OPC_CheckChild1Type, MVT::i64,
4465
 
            OPC_EmitMergeInputChains1_0,
4466
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDinto_toc), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4467
 
                0, 1, 1, 
4468
 
          9,  TARGET_OPCODE(PPCISD::TOC_RESTORE),
4469
 
            OPC_RecordNode,
4470
 
            OPC_CaptureFlagInput,
4471
 
            OPC_EmitMergeInputChains1_0,
4472
 
            OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDtoc_restore), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4473
 
                0, 0, 
4474
 
          0, 
4475
 
    0
4476
 
  }; // Total Array size is 10997 bytes
4477
 
 
4478
 
  #undef TARGET_OPCODE
4479
 
  return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
4480
 
}
4481
 
 
4482
 
bool CheckPatternPredicate(unsigned PredNo) const {
4483
 
  switch (PredNo) {
4484
 
  default: assert(0 && "Invalid predicate in table?");
4485
 
  case 0: return (!NoExcessFPPrecision);
4486
 
  case 1: return (!PPCSubTarget.isPPC64());
4487
 
  case 2: return (PPCSubTarget.isPPC64());
4488
 
  }
4489
 
}
4490
 
 
4491
 
bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
4492
 
  switch (PredNo) {
4493
 
  default: assert(0 && "Invalid predicate in table?");
4494
 
  case 0: { // Predicate_immSExt16
4495
 
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
4496
 
 
4497
 
  // immSExt16 predicate - True if the immediate fits in a 16-bit sign extended
4498
 
  // field.  Used by instructions like 'addi'.
4499
 
  if (N->getValueType(0) == MVT::i32)
4500
 
    return (int32_t)N->getZExtValue() == (short)N->getZExtValue();
4501
 
  else
4502
 
    return (int64_t)N->getZExtValue() == (short)N->getZExtValue();
4503
 
 
4504
 
  }
4505
 
  case 1: { // Predicate_imm16ShiftedSExt
4506
 
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
4507
 
 
4508
 
  // imm16ShiftedSExt predicate - True if only bits in the top 16-bits of the
4509
 
  // immediate are set.  Used by instructions like 'addis'.  Identical to 
4510
 
  // imm16ShiftedZExt in 32-bit mode.
4511
 
  if (N->getZExtValue() & 0xFFFF) return false;
4512
 
  if (N->getValueType(0) == MVT::i32)
4513
 
    return true;
4514
 
  // For 64-bit, make sure it is sext right.
4515
 
  return N->getZExtValue() == (uint64_t)(int)N->getZExtValue();
4516
 
 
4517
 
  }
4518
 
  case 2: { // Predicate_unindexedload
4519
 
    SDNode *N = Node;
4520
 
 
4521
 
  return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
4522
 
 
4523
 
  }
4524
 
  case 3: { // Predicate_zextload
4525
 
    SDNode *N = Node;
4526
 
 
4527
 
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
4528
 
 
4529
 
  }
4530
 
  case 4: { // Predicate_zextloadi8
4531
 
    SDNode *N = Node;
4532
 
 
4533
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
4534
 
 
4535
 
  }
4536
 
  case 5: { // Predicate_sextload
4537
 
    SDNode *N = Node;
4538
 
 
4539
 
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
4540
 
 
4541
 
  }
4542
 
  case 6: { // Predicate_sextloadi16
4543
 
    SDNode *N = Node;
4544
 
 
4545
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
4546
 
 
4547
 
  }
4548
 
  case 7: { // Predicate_zextloadi16
4549
 
    SDNode *N = Node;
4550
 
 
4551
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
4552
 
 
4553
 
  }
4554
 
  case 8: { // Predicate_load
4555
 
    SDNode *N = Node;
4556
 
 
4557
 
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
4558
 
 
4559
 
  }
4560
 
  case 9: { // Predicate_zextloadi1
4561
 
    SDNode *N = Node;
4562
 
 
4563
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
4564
 
 
4565
 
  }
4566
 
  case 10: { // Predicate_extload
4567
 
    SDNode *N = Node;
4568
 
 
4569
 
  return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
4570
 
 
4571
 
  }
4572
 
  case 11: { // Predicate_extloadi1
4573
 
    SDNode *N = Node;
4574
 
 
4575
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
4576
 
 
4577
 
  }
4578
 
  case 12: { // Predicate_extloadi8
4579
 
    SDNode *N = Node;
4580
 
 
4581
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
4582
 
 
4583
 
  }
4584
 
  case 13: { // Predicate_extloadi16
4585
 
    SDNode *N = Node;
4586
 
 
4587
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
4588
 
 
4589
 
  }
4590
 
  case 14: { // Predicate_sextloadi32
4591
 
    SDNode *N = Node;
4592
 
 
4593
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
4594
 
 
4595
 
  }
4596
 
  case 15: { // Predicate_zextloadi32
4597
 
    SDNode *N = Node;
4598
 
 
4599
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
4600
 
 
4601
 
  }
4602
 
  case 16: { // Predicate_extloadi32
4603
 
    SDNode *N = Node;
4604
 
 
4605
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
4606
 
 
4607
 
  }
4608
 
  case 17: { // Predicate_extloadf32
4609
 
    SDNode *N = Node;
4610
 
 
4611
 
  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;
4612
 
 
4613
 
  }
4614
 
  case 18: { // Predicate_unindexedstore
4615
 
    SDNode *N = Node;
4616
 
 
4617
 
  return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
4618
 
 
4619
 
  }
4620
 
  case 19: { // Predicate_truncstore
4621
 
    SDNode *N = Node;
4622
 
 
4623
 
  return cast<StoreSDNode>(N)->isTruncatingStore();
4624
 
 
4625
 
  }
4626
 
  case 20: { // Predicate_truncstorei8
4627
 
    SDNode *N = Node;
4628
 
 
4629
 
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
4630
 
 
4631
 
  }
4632
 
  case 21: { // Predicate_truncstorei16
4633
 
    SDNode *N = Node;
4634
 
 
4635
 
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
4636
 
 
4637
 
  }
4638
 
  case 22: { // Predicate_store
4639
 
    SDNode *N = Node;
4640
 
 
4641
 
  return !cast<StoreSDNode>(N)->isTruncatingStore();
4642
 
 
4643
 
  }
4644
 
  case 23: { // Predicate_itruncstore
4645
 
    SDNode *N = Node;
4646
 
 
4647
 
  return cast<StoreSDNode>(N)->isTruncatingStore();
4648
 
 
4649
 
  }
4650
 
  case 24: { // Predicate_pre_truncst
4651
 
    SDNode *N = Node;
4652
 
 
4653
 
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
4654
 
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
4655
 
 
4656
 
  }
4657
 
  case 25: { // Predicate_pre_truncsti8
4658
 
    SDNode *N = Node;
4659
 
 
4660
 
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
4661
 
 
4662
 
  }
4663
 
  case 26: { // Predicate_pre_truncsti16
4664
 
    SDNode *N = Node;
4665
 
 
4666
 
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
4667
 
 
4668
 
  }
4669
 
  case 27: { // Predicate_istore
4670
 
    SDNode *N = Node;
4671
 
 
4672
 
  return !cast<StoreSDNode>(N)->isTruncatingStore();
4673
 
 
4674
 
  }
4675
 
  case 28: { // Predicate_pre_store
4676
 
    SDNode *N = Node;
4677
 
 
4678
 
  ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
4679
 
  return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
4680
 
 
4681
 
  }
4682
 
  case 29: { // Predicate_truncstorei32
4683
 
    SDNode *N = Node;
4684
 
 
4685
 
  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
4686
 
 
4687
 
  }
4688
 
  case 30: { // Predicate_atomic_load_add_8
4689
 
    SDNode *N = Node;
4690
 
 
4691
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4692
 
  
4693
 
  }
4694
 
  case 31: { // Predicate_atomic_load_add_16
4695
 
    SDNode *N = Node;
4696
 
 
4697
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4698
 
  
4699
 
  }
4700
 
  case 32: { // Predicate_atomic_load_add_32
4701
 
    SDNode *N = Node;
4702
 
 
4703
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4704
 
  
4705
 
  }
4706
 
  case 33: { // Predicate_atomic_load_add_64
4707
 
    SDNode *N = Node;
4708
 
 
4709
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4710
 
  
4711
 
  }
4712
 
  case 34: { // Predicate_atomic_load_sub_8
4713
 
    SDNode *N = Node;
4714
 
 
4715
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4716
 
  
4717
 
  }
4718
 
  case 35: { // Predicate_atomic_load_sub_16
4719
 
    SDNode *N = Node;
4720
 
 
4721
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4722
 
  
4723
 
  }
4724
 
  case 36: { // Predicate_atomic_load_sub_32
4725
 
    SDNode *N = Node;
4726
 
 
4727
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4728
 
  
4729
 
  }
4730
 
  case 37: { // Predicate_atomic_load_sub_64
4731
 
    SDNode *N = Node;
4732
 
 
4733
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4734
 
  
4735
 
  }
4736
 
  case 38: { // Predicate_atomic_load_and_8
4737
 
    SDNode *N = Node;
4738
 
 
4739
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4740
 
  
4741
 
  }
4742
 
  case 39: { // Predicate_atomic_load_and_16
4743
 
    SDNode *N = Node;
4744
 
 
4745
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4746
 
  
4747
 
  }
4748
 
  case 40: { // Predicate_atomic_load_and_32
4749
 
    SDNode *N = Node;
4750
 
 
4751
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4752
 
  
4753
 
  }
4754
 
  case 41: { // Predicate_atomic_load_and_64
4755
 
    SDNode *N = Node;
4756
 
 
4757
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4758
 
  
4759
 
  }
4760
 
  case 42: { // Predicate_atomic_load_or_8
4761
 
    SDNode *N = Node;
4762
 
 
4763
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4764
 
  
4765
 
  }
4766
 
  case 43: { // Predicate_atomic_load_or_16
4767
 
    SDNode *N = Node;
4768
 
 
4769
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4770
 
  
4771
 
  }
4772
 
  case 44: { // Predicate_atomic_load_or_32
4773
 
    SDNode *N = Node;
4774
 
 
4775
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4776
 
  
4777
 
  }
4778
 
  case 45: { // Predicate_atomic_load_or_64
4779
 
    SDNode *N = Node;
4780
 
 
4781
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4782
 
  
4783
 
  }
4784
 
  case 46: { // Predicate_atomic_load_xor_8
4785
 
    SDNode *N = Node;
4786
 
 
4787
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4788
 
  
4789
 
  }
4790
 
  case 47: { // Predicate_atomic_load_xor_16
4791
 
    SDNode *N = Node;
4792
 
 
4793
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4794
 
  
4795
 
  }
4796
 
  case 48: { // Predicate_atomic_load_xor_32
4797
 
    SDNode *N = Node;
4798
 
 
4799
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4800
 
  
4801
 
  }
4802
 
  case 49: { // Predicate_atomic_load_xor_64
4803
 
    SDNode *N = Node;
4804
 
 
4805
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4806
 
  
4807
 
  }
4808
 
  case 50: { // Predicate_atomic_load_nand_8
4809
 
    SDNode *N = Node;
4810
 
 
4811
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4812
 
  
4813
 
  }
4814
 
  case 51: { // Predicate_atomic_load_nand_16
4815
 
    SDNode *N = Node;
4816
 
 
4817
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4818
 
  
4819
 
  }
4820
 
  case 52: { // Predicate_atomic_load_nand_32
4821
 
    SDNode *N = Node;
4822
 
 
4823
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4824
 
  
4825
 
  }
4826
 
  case 53: { // Predicate_atomic_load_nand_64
4827
 
    SDNode *N = Node;
4828
 
 
4829
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4830
 
  
4831
 
  }
4832
 
  case 54: { // Predicate_atomic_cmp_swap_8
4833
 
    SDNode *N = Node;
4834
 
 
4835
 
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4836
 
 
4837
 
  }
4838
 
  case 55: { // Predicate_atomic_cmp_swap_16
4839
 
    SDNode *N = Node;
4840
 
 
4841
 
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4842
 
 
4843
 
  }
4844
 
  case 56: { // Predicate_atomic_cmp_swap_32
4845
 
    SDNode *N = Node;
4846
 
 
4847
 
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4848
 
 
4849
 
  }
4850
 
  case 57: { // Predicate_atomic_cmp_swap_64
4851
 
    SDNode *N = Node;
4852
 
 
4853
 
  return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4854
 
 
4855
 
  }
4856
 
  case 58: { // Predicate_atomic_swap_8
4857
 
    SDNode *N = Node;
4858
 
 
4859
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
4860
 
  
4861
 
  }
4862
 
  case 59: { // Predicate_atomic_swap_16
4863
 
    SDNode *N = Node;
4864
 
 
4865
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
4866
 
  
4867
 
  }
4868
 
  case 60: { // Predicate_atomic_swap_32
4869
 
    SDNode *N = Node;
4870
 
 
4871
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
4872
 
  
4873
 
  }
4874
 
  case 61: { // Predicate_atomic_swap_64
4875
 
    SDNode *N = Node;
4876
 
 
4877
 
    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
4878
 
  
4879
 
  }
4880
 
  case 62: { // Predicate_immZExt16
4881
 
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
4882
 
 
4883
 
  // immZExt16 predicate - True if the immediate fits in a 16-bit zero extended
4884
 
  // field.  Used by instructions like 'ori'.
4885
 
  return (uint64_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
4886
 
 
4887
 
  }
4888
 
  case 63: { // Predicate_imm16ShiftedZExt
4889
 
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
4890
 
 
4891
 
  // imm16ShiftedZExt predicate - True if only bits in the top 16-bits of the
4892
 
  // immediate are set.  Used by instructions like 'xoris'.
4893
 
  return (N->getZExtValue() & ~uint64_t(0xFFFF0000)) == 0;
4894
 
 
4895
 
  }
4896
 
  case 64: { // Predicate_immAllOnesV
4897
 
    SDNode *N = Node;
4898
 
 
4899
 
  return ISD::isBuildVectorAllOnes(N);
4900
 
 
4901
 
  }
4902
 
  case 65: { // Predicate_maskimm32
4903
 
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
4904
 
 
4905
 
  // maskImm predicate - True if immediate is a run of ones.
4906
 
  unsigned mb, me;
4907
 
  if (N->getValueType(0) == MVT::i32)
4908
 
    return isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
4909
 
  else
4910
 
    return false;
4911
 
 
4912
 
  }
4913
 
  case 66: { // Predicate_V_immneg0
4914
 
    SDNode *N = Node;
4915
 
 
4916
 
  return PPC::isAllNegativeZeroVector(N);
4917
 
 
4918
 
  }
4919
 
  case 67: { // Predicate_vspltb_shuffle
4920
 
    SDNode *N = Node;
4921
 
 
4922
 
  return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 1);
4923
 
 
4924
 
  }
4925
 
  case 68: { // Predicate_vsplth_shuffle
4926
 
    SDNode *N = Node;
4927
 
 
4928
 
  return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 2);
4929
 
 
4930
 
  }
4931
 
  case 69: { // Predicate_vspltw_shuffle
4932
 
    SDNode *N = Node;
4933
 
 
4934
 
  return PPC::isSplatShuffleMask(cast<ShuffleVectorSDNode>(N), 4);
4935
 
 
4936
 
  }
4937
 
  case 70: { // Predicate_vsldoi_unary_shuffle
4938
 
    SDNode *N = Node;
4939
 
 
4940
 
  return PPC::isVSLDOIShuffleMask(N, true) != -1;
4941
 
 
4942
 
  }
4943
 
  case 71: { // Predicate_vpkuwum_unary_shuffle
4944
 
    SDNode *N = Node;
4945
 
 
4946
 
  return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), true);
4947
 
 
4948
 
  }
4949
 
  case 72: { // Predicate_vpkuhum_unary_shuffle
4950
 
    SDNode *N = Node;
4951
 
 
4952
 
  return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), true);
4953
 
 
4954
 
  }
4955
 
  case 73: { // Predicate_vmrglb_unary_shuffle
4956
 
    SDNode *N = Node;
4957
 
 
4958
 
  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, true);
4959
 
 
4960
 
  }
4961
 
  case 74: { // Predicate_vmrglh_unary_shuffle
4962
 
    SDNode *N = Node;
4963
 
 
4964
 
  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, true);
4965
 
 
4966
 
  }
4967
 
  case 75: { // Predicate_vmrglw_unary_shuffle
4968
 
    SDNode *N = Node;
4969
 
 
4970
 
  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, true);
4971
 
 
4972
 
  }
4973
 
  case 76: { // Predicate_vmrghb_unary_shuffle
4974
 
    SDNode *N = Node;
4975
 
 
4976
 
  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, true);
4977
 
 
4978
 
  }
4979
 
  case 77: { // Predicate_vmrghh_unary_shuffle
4980
 
    SDNode *N = Node;
4981
 
 
4982
 
  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, true);
4983
 
 
4984
 
  }
4985
 
  case 78: { // Predicate_vmrghw_unary_shuffle
4986
 
    SDNode *N = Node;
4987
 
 
4988
 
  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, true);
4989
 
 
4990
 
  }
4991
 
  case 79: { // Predicate_vsldoi_shuffle
4992
 
    SDNode *N = Node;
4993
 
 
4994
 
  return PPC::isVSLDOIShuffleMask(N, false) != -1;
4995
 
 
4996
 
  }
4997
 
  case 80: { // Predicate_vmrghb_shuffle
4998
 
    SDNode *N = Node;
4999
 
 
5000
 
  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 1, false);
5001
 
 
5002
 
  }
5003
 
  case 81: { // Predicate_vmrghh_shuffle
5004
 
    SDNode *N = Node;
5005
 
 
5006
 
  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 2, false);
5007
 
 
5008
 
  }
5009
 
  case 82: { // Predicate_vmrghw_shuffle
5010
 
    SDNode *N = Node;
5011
 
 
5012
 
  return PPC::isVMRGHShuffleMask(cast<ShuffleVectorSDNode>(N), 4, false);
5013
 
 
5014
 
  }
5015
 
  case 83: { // Predicate_vmrglb_shuffle
5016
 
    SDNode *N = Node;
5017
 
 
5018
 
  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 1, false);
5019
 
 
5020
 
  }
5021
 
  case 84: { // Predicate_vmrglh_shuffle
5022
 
    SDNode *N = Node;
5023
 
 
5024
 
  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 2, false);
5025
 
 
5026
 
  }
5027
 
  case 85: { // Predicate_vmrglw_shuffle
5028
 
    SDNode *N = Node;
5029
 
 
5030
 
  return PPC::isVMRGLShuffleMask(cast<ShuffleVectorSDNode>(N), 4, false);
5031
 
 
5032
 
  }
5033
 
  case 86: { // Predicate_vpkuhum_shuffle
5034
 
    SDNode *N = Node;
5035
 
 
5036
 
  return PPC::isVPKUHUMShuffleMask(cast<ShuffleVectorSDNode>(N), false);
5037
 
 
5038
 
  }
5039
 
  case 87: { // Predicate_vpkuwum_shuffle
5040
 
    SDNode *N = Node;
5041
 
 
5042
 
  return PPC::isVPKUWUMShuffleMask(cast<ShuffleVectorSDNode>(N), false);
5043
 
 
5044
 
  }
5045
 
  case 88: { // Predicate_vecspltisb
5046
 
    SDNode *N = Node;
5047
 
 
5048
 
  return PPC::get_VSPLTI_elt(N, 1, *CurDAG).getNode() != 0;
5049
 
 
5050
 
  }
5051
 
  case 89: { // Predicate_vecspltish
5052
 
    SDNode *N = Node;
5053
 
 
5054
 
  return PPC::get_VSPLTI_elt(N, 2, *CurDAG).getNode() != 0;
5055
 
 
5056
 
  }
5057
 
  case 90: { // Predicate_vecspltisw
5058
 
    SDNode *N = Node;
5059
 
 
5060
 
  return PPC::get_VSPLTI_elt(N, 4, *CurDAG).getNode() != 0;
5061
 
 
5062
 
  }
5063
 
  case 91: { // Predicate_immAllZerosV
5064
 
    SDNode *N = Node;
5065
 
 
5066
 
  return ISD::isBuildVectorAllZeros(N);
5067
 
 
5068
 
  }
5069
 
  }
5070
 
}
5071
 
 
5072
 
bool CheckComplexPattern(SDNode *Root, SDValue N,
5073
 
      unsigned PatternNo, SmallVectorImpl<SDValue> &Result) {
5074
 
  unsigned NextRes = Result.size();
5075
 
  switch (PatternNo) {
5076
 
  default: assert(0 && "Invalid pattern # in table?");
5077
 
  case 0:
5078
 
    Result.resize(NextRes+2);
5079
 
    return SelectAddrIdxOnly(Root, N, Result[NextRes+0], Result[NextRes+1]);
5080
 
  case 1:
5081
 
    Result.resize(NextRes+2);
5082
 
    return SelectAddrImm(Root, N, Result[NextRes+0], Result[NextRes+1]);
5083
 
  case 2:
5084
 
    Result.resize(NextRes+2);
5085
 
    return SelectAddrIdx(Root, N, Result[NextRes+0], Result[NextRes+1]);
5086
 
  case 3:
5087
 
    Result.resize(NextRes+2);
5088
 
    return SelectAddrImmShift(Root, N, Result[NextRes+0], Result[NextRes+1]);
5089
 
  case 4:
5090
 
    Result.resize(NextRes+1);
5091
 
    return SelectAddrImmOffs(Root, N, Result[NextRes+0]);
5092
 
  }
5093
 
}
5094
 
 
5095
 
SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
5096
 
  switch (XFormNo) {
5097
 
  default: assert(0 && "Invalid xform # in table?");
5098
 
  case 0: {  
5099
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5100
 
 
5101
 
  // Transformation function: shift the immediate value down into the low bits.
5102
 
  return getI32Imm((unsigned)N->getZExtValue() >> 16);
5103
 
 
5104
 
  }
5105
 
  case 1: {  
5106
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5107
 
 
5108
 
  // Transformation function: get the low 16 bits.
5109
 
  return getI32Imm((unsigned short)N->getZExtValue());
5110
 
 
5111
 
  }
5112
 
  case 2: {  
5113
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5114
 
 
5115
 
  // Transformation function: shift the immediate value down into the low bits.
5116
 
  signed int Val = N->getZExtValue();
5117
 
  return getI32Imm((Val - (signed short)Val) >> 16);
5118
 
 
5119
 
  }
5120
 
  case 3: {  
5121
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5122
 
 
5123
 
  // Transformation function: get the start bit of a mask
5124
 
  unsigned mb = 0, me;
5125
 
  (void)isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
5126
 
  return getI32Imm(mb);
5127
 
 
5128
 
  }
5129
 
  case 4: {  
5130
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5131
 
 
5132
 
  // Transformation function: get the end bit of a mask
5133
 
  unsigned mb, me = 0;
5134
 
  (void)isRunOfOnes((unsigned)N->getZExtValue(), mb, me);
5135
 
  return getI32Imm(me);
5136
 
 
5137
 
  }
5138
 
  case 5: {  
5139
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5140
 
 
5141
 
  // Transformation function: 31 - imm
5142
 
  return getI32Imm(31 - N->getZExtValue());
5143
 
 
5144
 
  }
5145
 
  case 6: {  
5146
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5147
 
 
5148
 
  // Transformation function: 63 - imm
5149
 
  return getI32Imm(63 - N->getZExtValue());
5150
 
 
5151
 
  }
5152
 
  case 7: {  
5153
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5154
 
 
5155
 
  // Transformation function: 32 - imm
5156
 
  return N->getZExtValue() ? getI32Imm(32 - N->getZExtValue()) : getI32Imm(0);
5157
 
 
5158
 
  }
5159
 
  case 8: {  
5160
 
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
5161
 
 
5162
 
  // Transformation function: 64 - imm
5163
 
  return N->getZExtValue() ? getI32Imm(64 - N->getZExtValue()) : getI32Imm(0);
5164
 
 
5165
 
  }
5166
 
  case 9: {  
5167
 
    SDNode *N = V.getNode();
5168
 
 
5169
 
  return getI32Imm(PPC::getVSPLTImmediate(N, 1));
5170
 
 
5171
 
  }
5172
 
  case 10: {  
5173
 
    SDNode *N = V.getNode();
5174
 
 
5175
 
  return getI32Imm(PPC::getVSPLTImmediate(N, 2));
5176
 
 
5177
 
  }
5178
 
  case 11: {  
5179
 
    SDNode *N = V.getNode();
5180
 
 
5181
 
  return getI32Imm(PPC::getVSPLTImmediate(N, 4));
5182
 
 
5183
 
  }
5184
 
  case 12: {  
5185
 
    SDNode *N = V.getNode();
5186
 
 
5187
 
  return getI32Imm(PPC::isVSLDOIShuffleMask(N, true));
5188
 
 
5189
 
  }
5190
 
  case 13: {  
5191
 
    SDNode *N = V.getNode();
5192
 
 
5193
 
  return getI32Imm(PPC::isVSLDOIShuffleMask(N, false));
5194
 
 
5195
 
  }
5196
 
  case 14: {  
5197
 
    SDNode *N = V.getNode();
5198
 
 
5199
 
  return PPC::get_VSPLTI_elt(N, 1, *CurDAG);
5200
 
 
5201
 
  }
5202
 
  case 15: {  
5203
 
    SDNode *N = V.getNode();
5204
 
 
5205
 
  return PPC::get_VSPLTI_elt(N, 2, *CurDAG);
5206
 
 
5207
 
  }
5208
 
  case 16: {  
5209
 
    SDNode *N = V.getNode();
5210
 
 
5211
 
  return PPC::get_VSPLTI_elt(N, 4, *CurDAG);
5212
 
 
5213
 
  }
5214
 
  }
5215
 
}
5216